From 6fda6b8eee165cf1882b56ebc8a66dc843799ea3 Mon Sep 17 00:00:00 2001 From: Willem Wyndham Date: Fri, 5 Apr 2019 11:09:48 -0400 Subject: [PATCH 01/65] Update README.md --- README.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index eb7d4b8..e4e26df 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,18 @@ This is a kernel for running AssemblyScript/WebAssembly applications. It provides the following. -0. Synchronous file system -0. Implements the node `process` module. -0. Shared Memory between kernel threads to allow for atomic `wait/notify` for syscalls. -0. Networking interface for P2P applications. +1. Synchronous file system +1. Implements the node `process` module. +1. Shared Memory between kernel threads to allow for atomic `wait/notify` for syscalls. +1. Networking interface for P2P applications. + + +## Project Setup + +This project is [![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lernajs.io/), which allows this repo to host multiple project in one repo, making it a "mono-repo." The key idea is that each package in the repo must be a stand alone, but it makes it easy to have them depend on each other and you can use a scoping package name. For example, this project needs a wrapper around the assemblyscript compiler, which is conviently called `@wasmos/assemblyscript.` + +This project also uses a git submodule for `wasa`, a fork of [jedisct1/wasa](https://github.com/jedisct1/wasa), which is a library for interacting with the new [wasi](https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webassembly-system-interface/), WebAssembly Interface, a core API imported by the runtime. + +# First step + +After cloning, install with `npm run bootstrap` From 4d560b410bcf96f7e8e046afcc4a599a2199f3b3 Mon Sep 17 00:00:00 2001 From: Willem Wyndham Date: Fri, 5 Apr 2019 12:26:31 -0400 Subject: [PATCH 02/65] Cleaning up and Fixing tsconfigs --- assembly/bin/echo.ts | 7 - assembly/fs/index.ts | 15 - assembly/index.vue | 37 - assembly/os/index.ts | 454 - dist/assembly.zip | Bin 591 -> 0 bytes dist/build.zip | Bin 177442 -> 0 bytes dist/index.html | 12 - dist/index.js | 25079 --- dist/index.js.map | 1 - dist/main.js | 171881 --------------- dist/main.js.map | 1 - dist/worker.js | 36589 --- dist/worker.js.map | 1 - lerna-debug.log | 19 +- lerna.json | 4 +- package.json | 4 +- packages/as-node/assembly/process/global.d.ts | 2 + packages/as-node/assembly/process/index.ts | 2 - packages/as-node/assembly/tsconfig.json | 2 +- packages/ash/package-lock.json | 7986 +- packages/ash/package.json | 19 +- packages/ash/src/index.ts | 178 + packages/ash/webpack.config.js | 56 + packages/assemblyscript/assembly/testclass.ts | 1 + .../assemblyscript/assembly/tsconfig.json | 10 +- packages/assemblyscript/spec/compiler.spec.ts | 46 + packages/kernel/assembly/index.d.ts | 11 + packages/kernel/assembly/index.ts | 47 +- packages/kernel/assembly/process.ts | 51 + packages/kernel/assembly/screen.ts | 27 + packages/kernel/index.ts | 1 + packages/kernel/package.json | 1 - packages/kernel/packages/fs/assembly/index.ts | 60 +- packages/kernel/packages/fs/package-lock.json | 91 + packages/kernel/packages/fs/package.json | 4 +- packages/kernel/packages/fs/src/index.ts | 66 +- packages/kernel/packages/os/assembly/index.ts | 0 .../kernel/packages/os/docs/index.md | 0 packages/kernel/packages/os/index.ts | 1 + packages/kernel/packages/os/package-lock.json | 91 + packages/kernel/packages/os/package.json | 28 + .../kernel/packages/os/src/index.ts | 2 +- {spec => packages/kernel/spec}/build.zip | Bin .../kernel/spec}/build/worker.js | 0 {spec => packages/kernel/spec}/worker.spec.ts | 42 +- packages/kernel/spec/worker.ts | 52 + src/kernel.ts => packages/kernel/src/index.ts | 4 +- packages/kernel/src/process.ts | 91 + .../kernel/src}/threading/actor.ts | 4 +- .../kernel/src}/threading/worker.ts | 28 +- spec/worker.ts | 48 - src/fs.ts | 57 - src/index.ts | 8 +- src/loader/index.ts | 88 +- src/util.ts | 10 - tsconfig.json | 4 +- 56 files changed, 8892 insertions(+), 234431 deletions(-) delete mode 100644 assembly/bin/echo.ts delete mode 100644 assembly/fs/index.ts delete mode 100644 assembly/index.vue delete mode 100644 assembly/os/index.ts delete mode 100644 dist/assembly.zip delete mode 100644 dist/build.zip delete mode 100644 dist/index.html delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 dist/main.js delete mode 100644 dist/main.js.map delete mode 100644 dist/worker.js delete mode 100644 dist/worker.js.map create mode 100644 packages/ash/src/index.ts create mode 100644 packages/ash/webpack.config.js create mode 100644 packages/assemblyscript/assembly/testclass.ts create mode 100644 packages/assemblyscript/spec/compiler.spec.ts create mode 100644 packages/kernel/assembly/index.d.ts create mode 100644 packages/kernel/assembly/process.ts create mode 100644 packages/kernel/assembly/screen.ts create mode 100644 packages/kernel/index.ts create mode 100644 packages/kernel/packages/fs/package-lock.json create mode 100644 packages/kernel/packages/os/assembly/index.ts rename src/os.md => packages/kernel/packages/os/docs/index.md (100%) create mode 100644 packages/kernel/packages/os/index.ts create mode 100644 packages/kernel/packages/os/package-lock.json create mode 100644 packages/kernel/packages/os/package.json rename src/os.ts => packages/kernel/packages/os/src/index.ts (97%) rename {spec => packages/kernel/spec}/build.zip (100%) rename {spec => packages/kernel/spec}/build/worker.js (100%) rename {spec => packages/kernel/spec}/worker.spec.ts (75%) create mode 100644 packages/kernel/spec/worker.ts rename src/kernel.ts => packages/kernel/src/index.ts (84%) create mode 100644 packages/kernel/src/process.ts rename {src => packages/kernel/src}/threading/actor.ts (88%) rename {src => packages/kernel/src}/threading/worker.ts (56%) delete mode 100644 spec/worker.ts delete mode 100644 src/fs.ts delete mode 100644 src/util.ts diff --git a/assembly/bin/echo.ts b/assembly/bin/echo.ts deleted file mode 100644 index 8d212e4..0000000 --- a/assembly/bin/echo.ts +++ /dev/null @@ -1,7 +0,0 @@ -import 'allocator/arena'; - -export {memory} - -export function addHello(s: string): string { - return "hello ".concat(s); -} diff --git a/assembly/fs/index.ts b/assembly/fs/index.ts deleted file mode 100644 index 880af62..0000000 --- a/assembly/fs/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * This is the interface assemblyscript programs will use to access the filesystem. - */ - - export class File { - - } - -declare function open(path: string): File; - -declare function close(f: File): void; - -declare function write(f: File, c: Uint8Array | string): void; - -declare function read(f: File, bytes: number): Uint8Array; diff --git a/assembly/index.vue b/assembly/index.vue deleted file mode 100644 index a198560..0000000 --- a/assembly/index.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - - - diff --git a/assembly/os/index.ts b/assembly/os/index.ts deleted file mode 100644 index 354f240..0000000 --- a/assembly/os/index.ts +++ /dev/null @@ -1,454 +0,0 @@ -// # OS -// -// -// -// > Stability: 2 - Stable -// -// The `os` module provides a number of operating system-related utility methods. -// It can be accessed using: -// -// ```js -// const os = require('os'); -// ``` -// -// ## os.EOL -// -// -// * {string} -// -// A string constant defining the operating system-specific end-of-line marker: -// -// * `\n` on POSIX -// * `\r\n` on Windows -// -// ## os.arch() -// -// -// * Returns: {string} -// -// The `os.arch()` method returns a string identifying the operating system CPU -// architecture for which the Node.js binary was compiled. -// -// The current possible values are: `'arm'`, `'arm64'`, `'ia32'`, `'mips'`, -// `'mipsel'`, `'ppc'`, `'ppc64'`, `'s390'`, `'s390x'`, `'x32'`, and `'x64'`. -// -// Equivalent to [`process.arch`][]. -// -// ## os.constants -// -// -// * {Object} -// -// Returns an object containing commonly used operating system specific constants -// for error codes, process signals, and so on. The specific constants currently -// defined are described in [OS Constants](#os_os_constants_1). -// -// ## os.cpus() -// -// -// * Returns: {Object[]} -// -// The `os.cpus()` method returns an array of objects containing information about -// each logical CPU core. -// -// The properties included on each object include: -// -// * `model` {string} -// * `speed` {number} (in MHz) -// * `times` {Object} -// * `user` {number} The number of milliseconds the CPU has spent in user mode. -// * `nice` {number} The number of milliseconds the CPU has spent in nice mode. -// * `sys` {number} The number of milliseconds the CPU has spent in sys mode. -// * `idle` {number} The number of milliseconds the CPU has spent in idle mode. -// * `irq` {number} The number of milliseconds the CPU has spent in irq mode. -// -// -// ```js -// [ -// { -// model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', -// speed: 2926, -// times: { -// user: 252020, -// nice: 0, -// sys: 30340, -// idle: 1070356870, -// irq: 0 -// } -// }, -// { -// model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', -// speed: 2926, -// times: { -// user: 306960, -// nice: 0, -// sys: 26980, -// idle: 1071569080, -// irq: 0 -// } -// }, -// { -// model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', -// speed: 2926, -// times: { -// user: 248450, -// nice: 0, -// sys: 21750, -// idle: 1070919370, -// irq: 0 -// } -// }, -// { -// model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', -// speed: 2926, -// times: { -// user: 256880, -// nice: 0, -// sys: 19430, -// idle: 1070905480, -// irq: 20 -// } -// }, -// { -// model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', -// speed: 2926, -// times: { -// user: 511580, -// nice: 20, -// sys: 40900, -// idle: 1070842510, -// irq: 0 -// } -// }, -// { -// model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', -// speed: 2926, -// times: { -// user: 291660, -// nice: 0, -// sys: 34360, -// idle: 1070888000, -// irq: 10 -// } -// }, -// { -// model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', -// speed: 2926, -// times: { -// user: 308260, -// nice: 0, -// sys: 55410, -// idle: 1071129970, -// irq: 880 -// } -// }, -// { -// model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', -// speed: 2926, -// times: { -// user: 266450, -// nice: 1480, -// sys: 34920, -// idle: 1072572010, -// irq: 30 -// } -// } -// ] -// ``` -// -// Because `nice` values are UNIX-specific, on Windows the `nice` values of all -// processors are always 0. -// -// ## os.endianness() -// -// -// * Returns: {string} -// -// The `os.endianness()` method returns a string identifying the endianness of the -// CPU *for which the Node.js binary was compiled*. -// -// Possible values are: -// -// * `'BE'` for big endian -// * `'LE'` for little endian. -// -// ## os.freemem() -// -// -// * Returns: {integer} -// -// The `os.freemem()` method returns the amount of free system memory in bytes as -// an integer. -// -// ## os.getPriority([pid]) -// -// -// * `pid` {integer} The process ID to retrieve scheduling priority for. -// **Default** `0`. -// * Returns: {integer} -// -// The `os.getPriority()` method returns the scheduling priority for the process -// specified by `pid`. If `pid` is not provided, or is `0`, the priority of the -// current process is returned. -// -// ## os.homedir() -// -// -// * Returns: {string} -// -// The `os.homedir()` method returns the home directory of the current user as a -// string. -// -// ## os.hostname() -// -// -// * Returns: {string} -// -// The `os.hostname()` method returns the hostname of the operating system as a -// string. -// -// ## os.loadavg() -// -// -// * Returns: {number[]} -// -// The `os.loadavg()` method returns an array containing the 1, 5, and 15 minute -// load averages. -// -// The load average is a measure of system activity, calculated by the operating -// system and expressed as a fractional number. As a rule of thumb, the load -// average should ideally be less than the number of logical CPUs in the system. -// -// The load average is a UNIX-specific concept with no real equivalent on -// Windows platforms. On Windows, the return value is always `[0, 0, 0]`. -// -// ## os.networkInterfaces() -// -// -// * Returns: {Object} -// -// The `os.networkInterfaces()` method returns an object containing only network -// interfaces that have been assigned a network address. -// -// Each key on the returned object identifies a network interface. The associated -// value is an array of objects that each describe an assigned network address. -// -// The properties available on the assigned network address object include: -// -// * `address` {string} The assigned IPv4 or IPv6 address -// * `netmask` {string} The IPv4 or IPv6 network mask -// * `family` {string} Either `IPv4` or `IPv6` -// * `mac` {string} The MAC address of the network interface -// * `internal` {boolean} `true` if the network interface is a loopback or -// similar interface that is not remotely accessible; otherwise `false` -// * `scopeid` {number} The numeric IPv6 scope ID (only specified when `family` -// is `IPv6`) -// * `cidr` {string} The assigned IPv4 or IPv6 address with the routing prefix -// in CIDR notation. If the `netmask` is invalid, this property is set -// to `null`. -// -// -// ```js -// { -// lo: [ -// { -// address: '127.0.0.1', -// netmask: '255.0.0.0', -// family: 'IPv4', -// mac: '00:00:00:00:00:00', -// internal: true, -// cidr: '127.0.0.1/8' -// }, -// { -// address: '::1', -// netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', -// family: 'IPv6', -// mac: '00:00:00:00:00:00', -// scopeid: 0, -// internal: true, -// cidr: '::1/128' -// } -// ], -// eth0: [ -// { -// address: '192.168.1.108', -// netmask: '255.255.255.0', -// family: 'IPv4', -// mac: '01:02:03:0a:0b:0c', -// internal: false, -// cidr: '192.168.1.108/24' -// }, -// { -// address: 'fe80::a00:27ff:fe4e:66a1', -// netmask: 'ffff:ffff:ffff:ffff::', -// family: 'IPv6', -// mac: '01:02:03:0a:0b:0c', -// scopeid: 1, -// internal: false, -// cidr: 'fe80::a00:27ff:fe4e:66a1/64' -// } -// ] -// } -// ``` -// -// ## os.platform() -// -// -// * Returns: {string} -// -// The `os.platform()` method returns a string identifying the operating system -// platform as set during compile time of Node.js. -// -// Currently possible values are: -// -// * `'aix'` -// * `'darwin'` -// * `'freebsd'` -// * `'linux'` -// * `'openbsd'` -// * `'sunos'` -// * `'win32'` -// -// Equivalent to [`process.platform`][]. -// -// The value `'android'` may also be returned if the Node.js is built on the -// Android operating system. However, Android support in Node.js is considered -// [to be experimental][Android building] at this time. -// -// ## os.release() -// -// -// * Returns: {string} -// -// The `os.release()` method returns a string identifying the operating system -// release. -// -// On POSIX systems, the operating system release is determined by calling -// [uname(3)][]. On Windows, `GetVersionExW()` is used. Please see -// https://en.wikipedia.org/wiki/Uname#Examples for more information. -// -// ## os.setPriority([pid, ]priority) -// -// -// * `pid` {integer} The process ID to set scheduling priority for. -// **Default** `0`. -// * `priority` {integer} The scheduling priority to assign to the process. -// -// The `os.setPriority()` method attempts to set the scheduling priority for the -// process specified by `pid`. If `pid` is not provided, or is `0`, the priority -// of the current process is used. -// -// The `priority` input must be an integer between `-20` (high priority) and `19` -// (low priority). Due to differences between Unix priority levels and Windows -// priority classes, `priority` is mapped to one of six priority constants in -// `os.constants.priority`. When retrieving a process priority level, this range -// mapping may cause the return value to be slightly different on Windows. To avoid -// confusion, it is recommended to set `priority` to one of the priority constants. -// -// On Windows setting priority to `PRIORITY_HIGHEST` requires elevated user, -// otherwise the set priority will be silently reduced to `PRIORITY_HIGH`. -// -// ## os.tmpdir() -// -// -// * Returns: {string} -// -// The `os.tmpdir()` method returns a string specifying the operating system's -// default directory for temporary files. -// -// ## os.totalmem() -// -// -// * Returns: {integer} -// -// The `os.totalmem()` method returns the total amount of system memory in bytes -// as an integer. -// -// ## os.type() -// -// -// * Returns: {string} -// -// The `os.type()` method returns a string identifying the operating system name -// as returned by [uname(3)][]. For example, `'Linux'` on Linux, `'Darwin'` on -// macOS, and `'Windows_NT'` on Windows. -// -// Please see https://en.wikipedia.org/wiki/Uname#Examples for additional -// information about the output of running [uname(3)][] on various operating -// systems. -// -// ## os.uptime() -// -// -// * Returns: {integer} -// -// The `os.uptime()` method returns the system uptime in number of seconds. -// -// ## os.userInfo([options]) -// -// -// * `options` {Object} -// * `encoding` {string} Character encoding used to interpret resulting strings. -// If `encoding` is set to `'buffer'`, the `username`, `shell`, and `homedir` -// values will be `Buffer` instances. **Default:** `'utf8'`. -// * Returns: {Object} -// -// The `os.userInfo()` method returns information about the currently effective -// user — on POSIX platforms, this is typically a subset of the password file. The -// returned object includes the `username`, `uid`, `gid`, `shell`, and `homedir`. -// On Windows, the `uid` and `gid` fields are `-1`, and `shell` is `null`. -// -// The value of `homedir` returned by `os.userInfo()` is provided by the operating -// system. This differs from the result of `os.homedir()`, which queries several -// environment variables for the home directory before falling back to the -// operating system response. -// -// Throws a [`SystemError`][] if a user has no `username` or `homedir`. diff --git a/dist/assembly.zip b/dist/assembly.zip deleted file mode 100644 index 9cf1752428d4e9263d04d06497d923db8a65d357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmWIWW@h1H0D&c;;eKESl;C8LVMr`4PR&iqsnib*;bdTL$tsND-BT1(TEWf0$nt`j zfdNbe;5334*@&dfJc7oE0PW^rm=PA?$0cYOmI~xm0wPs;9+@R>H1+&+?RFoH}YEyUo}kDnaR=hqx>%GUenmv5}$a}t{;F28gyJ1GXvd*jpMe!j! z-#u*M4)A7Vl4Hgdd=k)r6kvGk2x1}yCMzT`(cFyBI9>*1Q#7IV< iVM`jj(2ax#GSFl!0UY4X$_CWJzzl?cfV3^h7zO~`qK?V{ diff --git a/dist/build.zip b/dist/build.zip deleted file mode 100644 index bc5d26634d883498d6385b8a82fad69273f393a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177442 zcmV(>K-j-fO9KQH000080O_DwPI(O?<9f6L0JjGX00{sb0C#V4Yh`jSYI9Xo2>=7d z;&oha;&ohgcnbgl1o!~}00a~O008X$dw<);u{aL@-Mk9er@xZ2DeB@RO{KayiY>Ql zZOg|}n)cDrSAs}TLQE1Y07_O9z4vEsd&L3-b#aoO=+nm1VlT6^v$M0ab6I;rKWkBU zG@lO2G@EuO*>FBiik0YxXl*UJO3r5S;KMgrRu*L*&pumIEq()E4=<94>qmolaFJMF zFXKE)r$rf$$I0*w_ZdBpez@7zm8yN^$-m}lo@^QqJ>fWtyfzKlwPz^0L^ro89=3 zhdGsoJ_1Ynn@I&<1DJrUrovrMdQktG@&F~Q)PnSC z9G~0p#6>jD;$bqZ0@NP^!peM})OPls7aqG4XrgRn^=?-eB5{GY3F4+Yin}wgO<^Mw zMmzgH8I)1ipg_I=3arKf4D}~4IjLN?6)OW)_DQJYL4XG9Mi?febecrxNm(Yjrj2Nn z<Bv zPRHsR7r^Vb7R>|2g-7v+gqE`aY$meP+`6zSlIVBQ#ug8RXGyHjm0?dGV`;eECUD;* zKZn7_<7mc{NfTlr(x2k^(<0cx=Ub6*6|R4EkxZd8n8ENG+BCuZ)sF!6S#l9yCeb+k zppV=IlvLW3M1vALPO8+TaI+$?Jr5q(^vzvw)Ap+sXL^1uRqgW?Bu=4T84QV+XHS&N zrRtZyp^}CX@JyYes3J7SgwdVO$72`Z;EwA~3%6F7a;HeNP!`X}Whcxxgob$vH+8t$ ztl;1gprD|A)>%P@+QkWdNUl-bVYG)pkB``H2j5PppB{{C_CPcZu)2GbVx{{ zMk_9S(qdY)+IqkoUot9oX+yi`!62K=;xau;$7y*TU8UtkG|i@~>X?wDYytgFZTg)E z3H;zMyKrfBJ|b%6*tWRu*AC~?pqfc^Eu3-lBfZp!x@fDm2Ofg4P*nSY#tSKM*yULO zeZ?Jp28LFLKebvRA!6WFWroDozle+dtEnPq65AH6KxVH1Z_%D&em0f08LHae!Hf&L z0cJKo8>fR4pr(tHlLg?;0Nlrq1AV%kzXlN!_HLP9Yq=5xcbQ7{kd_Z2ju-+0xzOYO zT9FUd$_wP~u&LLsviw7m_sin3y{b1_?7RDqHOKA`pV1#{2*(syj*>Ii&hqT4Nb*s! zHcX4s{MrA$c#H)8X!&s;J^A0yq6iyC?FWmnAvF8n+s*S4Fp~&m)-oMvQGS$x{1XWp zs#oJ)WQkIr>96Xl{OvToO!6Wg^JadDj6bF3Ib5QFyT*eu%aPbwi2@tXwhagiB8nuZY9cNgs@<$~%Zs$I&LYH@Y#&3NzbY+SC@t=)viRxM6_)d=xAWp} z(cgF8M|*Goy8GgAZ~rZHYMA;r^U(+e+4FIB7LU!A0;zA16v*s5b69M=?7;a0XUk`I z)e}Gu$fM3^;F_!JCf37RxbQV~{=j_!dOrJ2^dvecVLjt~2siFC5Hs?et~JA?=tn!l zAIT@dzY_&%Huf8BKuoU}R`z690;bPDi`~ZkI zB3V}#leiVZk1jbfzdhc4xBLDL$sil}ANhN`sm0s<-M5F-WRsh4L1UY}eQNLpH-Nty zYk#xz@)gzp1J|d&8(ZwWc(Kc()W$Pz!zInbe0%UuZu6y#g9VLEcK@+=z;oaDJ-6YK z1qeHQx%Zwiwysb{Ma?)n(5+-`xTLw!+rRI;=0>tQT+-O+)i-;8<~A}ZDp)Y5gLf~u z%~xtlSkl<&{l3V%&jbxrun2d%Z{8j9Iz9V?#vT_gYI^YPJEo&AbVDqHW*}zky3vn6 zTKk2hUexL!t1gQ%NOfCq_aX%q?6(wuSw$_W$28Q|FS0=jV&ae$HVGWU77q~~aFGs& z$yE4`-o&a87Q26Amzjz6X@}x;I{U!mW7_T0tc>7~Nm|0d{Z2z;+N;$1E!_U*0Nf}= z#d;nMfq~O4q_O?pJ~iH(g3P;?%}W%0X?l&Va064jZ{WD60fCPV@^n@%Xh^%5TE4^S z6$Q=~P?s*4ChlZv_C6`Hc|J(sWGk+5n&WKnVL@Zs($xADf|`7Un|HAQtGJy_6F3=g zN#eFhJ@8w%Zi$;)Rs@dpbO>k8`FsKrRbw;U-_CetmPKdj`GQHp2G^uRPXyy+RN|uy z?2iwPZE>Sh(--j+F#`fkI)Vc-Lfy`4HXUCxSrpernM@Ypnl?Xm_fla=p*)$)%4U=? z5AZgSv@Yf|l$V4)%>GZN3%39JWR@odpdFV^-|b~*MDKtr07EzfQ3)l7cs2v^nFfaH zBUHTN;|t7xNS)!WDw31*fRUf<#vJF}D~1@rJveSP8^b+W2WY7CGkL5PgcQJ@4# z?zg|)FfHH*F5O*KgY+Di8PL^wv|9+TLox}eW|J7i^sv|QOXbwK+6c4`oA zK46PJ5CWlrFAwfF!0Hs0syMFyZNMDdoC69trvg{La=r&USaU~`3$8~K+R2L3z|eG;$$vp3a*(ckn-p95B%TM zM6Uns-n4wS`FgjTuB@!Acxcii;sK@joSva6?Be1A8*}ES-r#H!;(89-!lGkrTQ@cf zOZLE0(hafATSVWpkhahzE%|!TD zEuS%5Uu|)F4!W#c3%ko8E2y#i_fHEc3HEK3;13-HTb7K_bHC$;-!fu?_Z1PiWyAyT zE1d#cmVDrSml^ zgTX3}xT8MEX4!y+7XEsW{yXWe*avmHBZjn&*MI;-Lz$qtf;lG$cs^{{umdg)JSdX| z3@FEoJ+RkaA2jwbIQ{B*ty?xM7e0IyFj@6_V6T~UusX`}3H^y9wpcxbLVM|~QkVQe zbpD+CCOZ*E4P3^i=jBDeGATTIW!13FYpT|aRGW)Pf1W6S6>j9Z!75+Amc+C4B$4x4 z#LQ8iBtRPg|8LHd(un4fZRVj%x1$@_TF&il%Q?64tAb)n!-EFUV(_3_(%RyeVK3;)_~ zJ5G54S3Q&klaGUBhFvxfb@-R}``?}H{^P~&JA6N|bh!SP_8{bds#qQZ@jl)I8pI1e zoD{H|@re`fxAy>s?D#?3TBNODq%>RLx_*c)#n6%=%!vl+}Nx z4e9@^KP?4d<#wM<^~N7%zyq&v=aK4SG>*^li2xv!(B*7`@;U@*@MM7^3iP+}sA4%ABZO{Y)md!+{oWQBJdp=cNZcwKQl z9RLYWvw1-Vl6_cJz9AO6b5`%5ZUYCP2TDGm3VWQEQ|Zwk8B{X^1Od@qUj;hWcsbNv z6hd&rsLNFEqGScth-$0oI;aRBgm27eA~!3{xcb!a0pUK*T5h`b|gHnQSnkVSp$I^_{Go98wcr1qq(Kn-Pb z1&mk#vvq-ZH6Vit?~aURUF1t}bm|k2PI@WC2K<}wVwBlb%RVWTU-9>%pH7F#$NiD% z?~l>CBbD$0=G?k{O?5ANtn}2_4Xegfhep+PWAWZUgUA4fqUc3(#ffqC5JBgFyQyKo z^1d>Q^LRoi#YvLH#xhc+JvQPtB8XsRjnBGKO)H)>nW3u>YAiBYqRGlqX~cpU6k0O7 zxUy{8CW^V{D9xD;{YAreFR+SdKB_wmU8Jh5kEHssS(SG6MR!*rzwPR>BErz$A|GGV zDQe*kHz_@^>qWKkX9QLei8 zHct7FD|v+ElrKH$CDw({p@j>xqpP`4TIDUFjBf)a9&NQkRvpX-R%Hih`$J2pi@QJ_ zIEL$BHYc+Ku_(S~m)@#vY}~c!(dE1>$ewcLo0&JBJ2YtvE#2VxVlG#G?{exMFJf%1yER*H zaliJ}GSF*dW4Ne?rH@awNLsX9yijkmvT3dS&+c+5#A-ecpB2xwc?hB#ZSZYbk^Ccb zWWhN4i%r_p9hT^eBvJO6XnFa4 zLFSq9EL|J1>E(Zoij%=OE{YTQ1sfKXhS2Hnso6N4&OhRxtF!n#De$+=HEh%0v`tTO zEolPwZl;1R?9<618Ev4_nSD=t5nuqlt|$D@0RM6JIahFX?@~nK`AdBGS2r#;_^39R zG&UGi8w^4XtXpTn3U2&o+bULo(ZBWw1;E7rpavRPA8Z}{w{H)=efMtv{o(G*Xy@?o z{oXg<9_}9K&wFU5H-{dk8F6;t-{%?K?J}~}#Z6cs#Q?V%7l7??33BB5MRbLFNfap2 zRa$pvb9b_Dl;$tUd02)BeB9Y?wuF;_I_S*ptiM zqcppkI+&TKLwAPfc{ZQbR6h4B6OGZFu3}5IHkjvmGA+l~aCg<_OEzN9(!9LzcY-!y zfsX(2kAG}M2bt=fCsZI0DlVd7T;ha@BPp>$Jt6UN3~gRwCFp%V9$Q=Tk@8E|M{IGG zmV=8(Gm#bl$#f7GiDuY+JOQ@c3T7{|Ma}xhjrjBJYMnDc&xh@%&hX_jw5>1#8q}kmp(lQDlISigCreyiImr{rM0NG!y3jn zC^FcuAQTVre9va9ldLGCvlM+Xt}aqo6eT6FLwQt@1LPgR}`%zFO(&^QNZC#+NHS zeZ-Fvn^Q+v^RtGX;Zd|p#mBhehns9!sTf4eaCuUa*m_|0I|+O!+^?J6s2 zzs=iMv?ovAW+eWj&(4!4ThWU#p6TkUR@fq;*76={yV^b;s(mFu9*aQcFX({!v{sV~ zDmnl|Ze~*&nzI(n`;63Q(B8AepPnW0_)1hWn=BhA@$@)4)XERkKI1{`yx4}OmKJ0L z?r1rvq%yg{oK{ExbPkZ)!e|WMYXLRZ-VU^;_!c1RW9hbV7Zl2RfXRtM6-YZk8@^_cbL7ITvemN&B(7xDC5dy1OpY`SiKm!Lq!bG%5#Gdo5V zNXN50fvagr=1w58Qhy*(`4?EW9guSlz2xvUe~215TklrcWEb$&*<@7Eb;KI`Xb)oG zM|I-MmH#_@(w=roTfns5?r~)D1SZ+CA6y`G87aM`;j+r2kk@t1sgM@mpfK^0#dD`S z`@@ob!gA*EpiJ^mzy8N1`+l|eYTx4wSkl;wA++!Ec!oO!4f)CULG{y*zD0isyfe(F zDXd7simyoG$Q0xy5xw1iSLZKv1zo>5vq9?)&Uz@;?d0c$58mL+-`q}zx({^I$jkRx zR(3~)bDy^Uw5MITg5`o2(0zLTOiQ?pp+IF^JIGTkcJ5De++Lm`;R+ z^O|P)gxaFAtjkgWh~0Wh>Y89eZn!rE668B9Gj}{e9d;O*uJ-7uPU$BGXJ4t4dxs zHx-c8`!>(1A4CG+-s&fO0jgBJS!$(8jH;-GNO)GtQdnseWrIe$My*oO%rlK><&PqZ zItzS~mZ|oWh;A;;O5x><2uNsrymBiHy#vzf8pi=xI@BhTr3aoCD1=|p4I7RjVWJd+ z1WB^6E@w0I*7Lt}nBY2~;!n?SV;j*ykfO;PFNzpuMBc)YJ7n{cVPT8XP6&$x46jM& zPJ`oP1OOnebly<1w1@?`dKKCDGU?8iWJCL`h3#hiFEOLt>45%yMSC57d1G@Sk3&hr z0F#oCJmJk0*xn?X0G78Rx9g*h`qDYBM27r2SZhm7qdE#3yZ9quX>;#VV@o5Z+VzBt z+FcH>+tY)=u|cQDyjn8iHrP{3SvU7Z6A%dN0c_-wji4=9l{-P^vK+J>5;%>}Lzje* zC=>nnEKe_iJy!P#$TnSvGf{JIB+>?t@@!frQ+gjle@P=8h)LxkO7i3QI>Gp|(;<9C z6e?@fgLsOu1qZ0SVmr>+ywt{+Z-uJxi)MRI=vlN#O0tMxSGi#_1Li@Nezsviru=IQ zxeH9SX_KmX@2!-gDXKcG-7awrQ9BgUdGT zG7M(sDxz6OJ$w_-)U&HDohBd4S9rk#IY0z*kZi5{hLMf!JBKNyIC8HJ9FgV`m)ZWP z_>z4Yr(^Yyz4TFdn9GYRi%KQE?D*pP6z(pu8picr4Nc-hj8<&t^XIm@@ zOS*^)VMQ#FCH7{}2Efi@0%qP5X?eDgQW&t^K}xLk+ry8|^171r4FfRd8mJA7_TNWZ z#TLEUJ^ai5%L9Y&9s9V*6J%I@pkIrRW`GrB&9L9%XqFX4dPXrhlm`R8x zWs})BVI7j38;)ggHXfq5YZn2%_(iH|2+<6yjb$n6O5Z)zBVJako_2#X@97+s8FcV( zt0!{`$DCY|nuGNnq~p*oo)|RE>efgu*%hA_&p%PQKbw1RpKX%lX+>5};IxyB)IN3;PaQboR%a5hU78aP##aS zi2HfO7jhivMt+mUoh`A!WE^Xyr9?SOf2w^Y94<^kf<{lNAg7FGca7#+$0> zF?%C8$|nhVAHr!fgmVGy^zb1$QHCsO8GR2|cc(+8$BuX2V5Od(8nu``p{6LaNLVCCGl8 zVba7eo}n+5XeH0GL_DS-9ICZ-$JZm7DEh7j9{a;e%}+q|}DvVOPGB zDpg&q1hStCZ(43zwQ99AFvhSW54dj?0L|z9SU=1J>CoR1PPw5+=%q@Ew01Uy8B#LD z6k3%fR^+C|ZnR-;T8-wzZ%zi!w-=t~%3xaKQc8YSHyDQL?l+j_$+Zc;VO;vOX_YR= zu1&)RvA@Eq$&1h$p8htA$yN$MMoq>EFg#g#;xD&k&0_cDzV`8mWSFhcPR;ANHr(E+ zbc-!x8c3>6dI_Ty5mHM@A@6tc4qs75BbN4|$LLZSQ5nKb${K1bY_lRObn1~A9s^OM%7%h73qj(!L4$%zzKrb8F!mt^T9ipkTavR}L z_3BZhq6{E8nRQ-nsf3q7l>>9dF9LI8#e7EG?xO;XIWAR~I#f)UjT z#(VX8AmlQ-Qy3$A@&c^@PVXQpb)|IiHCSz??LMK6i3I1c}=5thxi` z-Iev!5yh=|PYX&|g84XDybmG>awHCB8RjJ-Lz8%UrGUoN8--RFp{?NAwW(_CMq#+2tKS+8+iDL- z{xcO9bVtKa^+H7?${bvbIyXn8N*UU`fZPW8z3TpLhJKc7cbmtiQRuPB6e3PN#ifsO z^TgDswH}PKBDp2WQCrW+xk!Q}cV7z4CC<`_=<_$aI_6dfV;@oMPNw0Fh@ zXqIZ+FRjUd5`dFoyXjowK; zP2QWLs!?oP$N}Y13!%T?*G6Kk`c;vKco5UfkrN*?%s6VE4M%nFhVBQVk=wl)E?$KD zdsTEWPWxohE8z(Lxb+cVIS@3iKF!Nu^^hTH?ExsP22DYfRL@CO*vQ;et>y!Agd*o% z7EQHxAk>9F<>DzI9%KO<&{m70%0fCH8W+>9*$tjbq{yh~hwRgc?_luX&*{Hk+-YH~ z#5vh$R3v3DQXF}f6{&>c^dfRq4kvN2^vy>P((`EyVqX$%Z1D^VadbaYoqr9#tNYQ{ z$H%@4JY~+4&(U+acv{Db=RoURWz`S+fa>!z5RnUA@@?nP2u$t%s zp+OZ!dV0cNhXMlNkF_#209iOQsQKJkES4ia$9#-FR-GxE_Fn`gkuPjXWD!#8qoM&i z`u#rg0=UKLUNv);bnD?q@4X0&I6OxLHT$btE12`LXQ#LAhQO^`Av}w=5GIMi)^@vr&i;H5F zTjX6?Cr4_=RkB!9fC5^qZnGiYvpdVsW;Otc_J_xCu+A5HBJ^38g$a`3U@Khm(lrwt=0hmWst*tniW;#Jr`$yv0rfFhp-DDqjABE2K*7VJ2<*_Y=T zpOiiPyf}lk#~0tZZo6R@Y*tslZ1yUNf-UxIt$~hj>hNH)qTw7qj28IBE1LFa$T}Km zY@D3OgKJC>ndGB*kT@UJJ=tVW{oi<=~hMv%P6m zT;08CG8(0W6a+;LSzf%E}vesz)?dcT}ufT7IkAkmY-qETX3)T9=ePV$dVkX zo*UhjuekU?H=dt(tNe_PXoMlZRCN@owLPO1jE^i7hir!O%VvygFXCzil`0wpSfe-;P3zOK5LGzdh{DI-{%dhq~pvQiv{Xp-_~%%e=E8 zj9mlXgS_+J6769WSM-ji)IoK_Lz!xz=iTfpG@?+oP4G`RhFDud@gm_$2|=$SY&vXv z$yY7lx)LbUiuvhZvnnw(L1y#fcLop#HM-LMgV9P$T!--*pbk~4@$2ID9*`AA6dT8I z_dbDHVVc>BK?PwV8C9ail4C4p8rEhE80DA}2I)v<#-^bGWfXVZ!J%K!NU(E)&cUh_ zvE1RNtNA3)BkhGlC6hGAu)?283Y|C*+0-I+Z-mL>5h^)%CW}X))0ffRbuoQU+wbQ> ziZx_c+0a&Th5YJyzG-Fb)hNuE&IaL>PMi!77z0Fwxmw+S`+8BVtJ8ckO!M12mr`>_ z(5He=?OH0s*%pwFmz71ZHNFrCwt@N~&Wi?22eDeYLg~ValWEK8H+zGq?(J6flE&o2 zLb?gK_Wl0%zdvnDS~P-<04^|#R1rXyAuyXA>SMGao`5HC1kwTBEoD1oRSD_lnXnh1;ziyKlI?7 zQI<3hr=5Q1l%8MVH~97TtexlXYjGZuz1Nul-<`cP;1A5;mnD|k_%W;T92VtLk(9jf7989{`t7OSK9wjU<5o~Do92H=;14{1Vdg9Za zDhjN~oxRFRPC{FG%yu55@iDuD2ZYjeKe$7glA<_y01Zv~nspH{jOyib880!DV*~n> zfXSFavgQu@DR-Z&cVM|oN|gH$+fc^54GX138GwL+IW;(F>nW|zDF)R%<<&clx++RM zNF%B+7_eJFse}o%ifd5g22OWMh{l-K9ZC+x@M=$VOJ;L%Db0o86EY+VlXZw}5?=AV z#`bp-0DT^(%YKm}AZ^!&lmQpu+?DTYrMu9!a>^e}zSHzp74Y7@-+#CJ{_vj>{w^?_8B- zS(auSaAs3#1#it4`|*R)=(s|p;>uOQg47r0{}N?jJu1ow}H7Cey$ZV@T)L zo_B^bo8FH~^-k}W_qG!yF!@7n#AOH~ zy!e5$=)v~l#(nR_MVqYE%G4N|1YY*_gMY)@J`U2j9Cx!UsT!6jyAr)vKZS8gO;};J z!C3ehw$Q5JzAZOC{o01tu@b=9GSmpJ=Yj{wkjciakzVIFG8ToBtrFm}HsSeO(%v8* zTv&?cE{EJCwXvkMHQ_9DEJj<+Y_|x6z)&ML(E3AafCyif>I!H3V2^<`*rNAWMEA}# zV&q2Sv`q4Nj2mNuv8$N&3l1bCy4yJi%c5=~430IRB+VR0Xh01j%7{GYAjo+X)2id^ z9hN}%r=x=6_?!~YE3gyk?!y$XsR%re?Bx+`R$S491BxqC?x8+pSxofjniVriTH##p zN!_L4^1%x2z$+w(N^nzMSP8B?PKz>`CV6#^>Wdd|M3;KoviZDzyMK7_?Ykhv^Jx%f zyV!#Ir-zros$lo$h}n2BND4<9kdk}i#CHU&5>U{T*2tE(9&iBLs7%n_0a!x<9L>I6 z`rpjpe&X~yj!$t;>j1Dn-VX$d;lBdjI-jOxRDwW*u?eGh$ZHBo7d^-*0kp{&U1qS@ z=>La)ejGWK^GgSFsM3+B+d5v__J^+SQqP4CQ)r?;g-~b5uD82)%H1>vWXn8Mmdu<- z`RP-2TN2B4fc;mR7cr*+FBF3+d>8uplv01d2k2{ccu=F-F!#s_9A22%z}r;A#ES0s`zvPq zSvl+_Ir*p%lXc8XzTH&wWK_J#$W`fwo5qTx;vKFhRJ4~Cn(ULr*8h-P7hS2e(uYmG z3lfCob_?H~=WY>`N5v6*Ic_pL6%eJKm6fEpr_+&fT?Hf4jt`E^LFruU?!k{nIjXdMbwEuhi8-z#E#vFt zGMN?^Ws*)K*fo?TyQlrAqtow;)v>8^8ohn@#!x3-SF;)3JIOc`!_v}O&B>fUrsXvm z^9{+`GM;i`=oi^!l1=}5Al<;8#=x_1oxN7P-6S)IQ=vOt??pp6hK3*{oPC6qy7s3! zT#x<;RnSLrxJkd7HToLA{t3!mI`|rEK8-fq(k-m)ly1S0M0xRbrGskY4Qz~Px32T? zcrYKs*;+*70IHoUPi+5j<|D&u-i-kj&R&TL$g>br_j0XMZHbNnh&hvAtFb~UuY7D@ z72$8&|DUe1lbPE+1%||$u^WMd%CW_nTYhyxhZi*Y6Nq@f`yB!YJB5yvof6AeQ7K2W zb3UBW2RD-PI9^?~034s`KP~7g?!^Lvl>ZUIufV|{18~R(7Y;7e$Gr@Wb9pY`x$mHXG;@EKO#3|3~maCNDQW!T_ZsDYW$)2B$USlRCrmtnXW0&7^Qi=z+ML&zCk zTctOZJuw_woQM{28`i#-vVYq|r&Zdf-k(1G7$%fWMJSt0DEQmcr$KTVGFfS~ZB}T- zd?9qw%!vYr#Kxcme{~z-&(~bi_z`)!W zANb*gb4bEnIwg4w`Lwr=X%J^}5cu);H%U>%=Sg>#!<__#s^TrFX5cT*QzT5UqrF`CS1@39Mf=j4oi)}Wst?F< zi-Z0XNuhcMu#6Xeyc%0d{Nf^;kMa5(rIT4!6zQ3|bhrQ+RS2wqH=w3sO~vDHUL8ai zFw3)!1;2K`7^j0oLtxF~DFd z3>b{8<^{*qI0sfVHK56JsZhW-)jdo-!0hy@H?E=TcT=`uY{kGM)k2=z>&LZ1TLLNu z)*#SD4GE~dqQBY@wc2KGXwkeiY7IaQSZ$Bd>I~*zIVc6j)(WHZuWAtLFg%-$SzK!= zb`~2xY+#nA%i~@*?NwQ`4aicY?{U8H3c1{FG2OdUj?a8Wq(f0>p3Fd+Qsl|R)Rm^6 zL1ti^#zz1_)I6XA0jpz>-#9NZcHht;7cO@nPNhg+G^rjmbZb!o!D4iDrat%aN7hPV zRqNM3*{!gUEC0y>4u6bLb_hZv3uawyLC2Um%RqW8B7I;Ws-$PSSy)5Sg<>nB`w(1H?>uIZ)FH>KQI;0nsT zSErtr>&+q@^;1EG^ID|92p~*JOd1toNYAa?^ zm0-4&&%sE}s<%flQlHTihieH|-@CX(yWvs~)~{{0GrcA=q@47sYQw8`Uq|1ON-&$E z0GB6{W)Wma-2SQ-e*U_4gl;lSOa1N}ag259Cy)h4Azg#Cuk+U0#uTJf?F0KMfqxnr z$pAr$`#1i^qci=-wn_9DSO{xlPw<|AtXpgIYA6IrZ~+Gk z;j9)B;o`Qe&K@GV+-h+U2A&YSjl#No#ay69$K5$3dHdvO%m~(_uVIkrpV{1Ohxrt$ zX6MuN-`*&den5W1rvj4ZJKMmg^NV;^MAy*UB#Eab?KF&8Q2`Q8a*X8Cp{D;k6%j^R zox$%ModU_TZgd?*S=HB%3d)DU;o~dng`pj0 z>o8FrK0F$+Pz71LA$1rP>AUGD`IS)+qu>)-?`jlSWHWo45s4qSgq(?Jxl1I22A2sb zO=&CE5F#-UI6?8Y|AXGM)WP=|958sT=Lf_a+ViF%UHQ-ECBDQY>7^Q{jzS-dQD}V| z_MwI1+V!uDl7LfVi( zk$^2`_-YQOLZVd^X)Q5U_lG~Em(q1tv|X~4^ga7z`)Xosfdx{0(_O^9b<)c|U-Z9u zb?|MOjx7mnlqbo*lP)y=P4&%xD_{rEgPQmxyhRVg{Fi=4-Ll_Q@f$v7Zqbt_{$*bM zwyYOG{8D`y+X_6FSv8H8X{)Mu!g`*Hf6LeTW1WglWvi-Y(S12;)2)Ci6>HiG&MimX ziC-ng7f^k@ImyPddFRDJ&T7^pfCsZWCa1mC z;6DWA;jDE$&t98kOnN%{6+(DnlwHET2)jGGrf#u}!{m9s>V$Ii~M*1zKa+WI_B7Lh%^n+{6td%q1GhY6@2uXe8nu z8zxOv#q6D{2h81dqo>amkMYu_`cK|gSDO{ap>WgsobeV~{ZR6?GA_NtXM|-9>@7U2 zxa=3{zx`XBC%6X}{azM7FrdqZo!n&gL5o@pEtgF{TBy6OfKzXYWqVnrNUasA4dtpP znN7a`G9@+v-gQll%hCxwuZp@;KPFCt%;pPgNRVMUAVBeBP4Qk>fd@XqZ^z^;VzP!E zCYM{h4dJ(*1?Du9a`??EM@}Ih$n4U5nPO;A`9!~4-{$F1zF<^4Q+}??&zvZ?!G}VB#y^a{pamHhRWdGY zGR7D)WquoC4oI=s6)hTREA_Kfv&>ozi>ABrc__#Y^BG({6Ul3U{*Dp$6S4UqW}Bwr z<086B#$&g&K8MijN(~X-33@U*P|$)Ikt;`BdI_=Y4*a>;IIv>(Xe3~7{NGO{!2@>p z&ZlVckIF`je8k?|3GV-*9~m->hFMbB5sOeNh|<#Oi$pZ`iYQo(I7KrP3dSdkJ2A#ooo(usA< z%05>O;OM3xb>Zkdsul<9c*_+HaK^U3#e63prfyh8E(mnk!=up+t>*&W2oAU2))y+S zOuGqHuz0JY?zDT7cprh>g~5kh7I`3}w217O5JtwcXRb}X_^E-|=1@~DRjdANUR-oLeKgb2cs*swLkvM25Wu% z*%^51&c9zO>YKCs+|!1ud7t^koeLF(EUQR^y4Y6--4l>-q7x)W_{Zv<#ca$G(BwcLSK=JumB$94}|n=Apjww2+F z5(y`0^T+|_%H%vj(|z?wP1k~gWkd{*u(h@ZgfaivAEqF=CFR;Ao~}Jx!)I^ZCy0V{ zjrhJ;)e&z=5Tqx4t8WfsP{4Ix^^NVmFZx-2z825YH6X={ax(s}Q30TzVDl5C#uIuh zKS9t=tbpK(G1R=YzlrgdZBgZVwDx5Gmb>nuiw2lU!U5aH>L4+ z?*kvd{G7hNc)z=ISnc`CFRZSAbgH?%e5uE1sI{^A2e-T3f4q3j^**{4|L`m@ZbO4F zHa@ojIDG%@+ZR;t%B}YM--r9P8o2epGT8ZXVfVjZ51~uIcH4b)+f~sQZslTWeUoRs z^X}d5+m}=&_9}P)HPm!Ku&ghcB&740T@~{8QF7FT9%05O%$%9XUsWPjLK8<>~FjSgTlX zZp7y6AKPqR?hgj+O-05GJ{w|1=N*sVE$f;Y3o+HOB5%04zOy;qv5i`e3cAKv$CeW; z%^P~pfC#+S5mP6nNt~e9j0E!TMeBpwiZ0$XJ$)(3C$O3Qn3l0q84p9v|`tBNWmixSCd<(A@idSzwwqq6;-kt{@;1B z)i16K@u#G2Pi*J1kl3EnCG<#1auOGEYAL_)fo1B?o*ME!bgDFI_B~X{&FaUUnBShZ zytQq&?P@tbPGQ)mz|(-f(n(xf<_Xkp@xHGS*KFj~Rq3+Tq=(ER8NR}DbXZrReEDyD zAY-BPF`E5T-Mwka-Sps8Mf-mG!%SWG_PgiN`p1n|+U=d}QmpUkbdmTOa-m+(Gv02em+p9@8|V%7`$QQ zR_FGY@EGoauA+gnPxm)*AvYftDQ_GXML&9z6{S^NsCZ+^#}Z>l&|?%;?cpO7y&6AJ zZZH^GPf|Z)q+<*m9kYWb`^;a&)8S~&$w?@}U7=zd)Acwmv2Vxj7o03l#{FQc zh4}rO4ok=A$^B3b4=t`@v@CU<57Xkq!7Ls)XOJnxaAKCj`rxd)ZiyHstUxj?jGsK5 zM3i@B7G0(AkMXj{9fMwUQjdK0>9xX53qv)i2e{zkUDWxEop2xc3)H|+h4k!?RgqaK zK-7ZNP97Wh0snOwP92AE5OABs2rtZgXft{!yBJPw+T$C1T6$HeKf>aosj=AOPtGbe z)2k%cTV|4txUG5_)DNnT72K3sv$kz#V?uKIrZS~&LSb^sq9Vpr1(>z9h?;ASwy>)owtZGmQYTA-znh#r-P zJNw7tg}>dPd_~pZfRe@0!43C)P{EM@Qy-qenPngZgZ)$E&4@qRaMyx}ZUWZdd~@J8 zhZ;P4&?pKex_r6!-bc#HU7%esysU-UQ~~l{e)OPYyH8z*e|f+E9bVga-(m9c8VUee zK&HP_&m%6HcHbT%VgjSciMOz~1s>u`hqZm?$trJ+A-)Jkf61=!V$&0`OTNTWj&jBzn{qxjTuMnJQQL7` zII&s(HBUf}xB>|d?!r{!{kPr{l&80KuQpP+Je8_}7qorKUBmS9i%~_=Bv5F1TUu3je1z zBuJ|YcRUO@GVuek`?ve=n)yR5(S?top97-t1m3as6u%R=H zUM7~mD>B_Iye0+)3>?_impNnP?GVp)Gjhx^x@)-*!m_ zx59z;Gxi*_jl27m_ViSnmT0GhEz(gcK1}4<$LAQ`wXy-GujpX{0Qx(o30C@}Br$ON zE0X*&Ve9g<>=@P1F-T0`-Bm&lbBcxA8$nHM<@xeiup zUKREBJ-O@Oigy^_rHF|AUrVOgRCK+V)kfK;?2&vrHWF*=yP&61{|Q` zQDUW=XbFWsZ>!XvcECd079%lATEIr$3ZB*^TY7JYZCDo?T+9MS7*s}R#AHmB;NT3n z{e$G2BV!GcB3B4hnFXW#h|)vVo~aJ##c9s>0Ap z^Cdqd#bfVcUoz{{Uo1EliF2SMr28-Tx1s~mndW#2{2p(lv$!aTPUq(rqKX`)aAkn@ zbag1^g9~d+9d9qC2;T6|9}NsDVMCPGB=Cbx@{Uq#J+~ThJpOgKoKrplPYTiXj#3P- zPjjnSm#BX0MZ!RCowu2_O5Y`nj%k9r;|#O1rK4*WG19>0fk=Z(>A2P#4R1Uo4+i~_ z>%YpT6l<9U%KbWRU#n*nThG<@>{pv5!1qkK-blZ0qF>e~B7`<=BK%R7Z+b`yi0Y&1 zfwr3_r23R}7L2p-48kta3oo%Z?Y4+|f3UZQF2k)cMje%ZUZdQPAC**2mQwP27p?oz zUiRZg{CO|x+NXKtd4`^2s&QV8qTD1!^3YbI@LDo7#i#nOwR)q zd^Y3;I5fF177Jl^pokE2 zL5nWyj@VE+nGP~kEeFhz0B7Ij@eGR4D3Y$^2n62G(Z1GFNM_^V3(U z1+!&jU>;63h$HRRY>?(1Qny70XRbXDb|2^G^?Spq8{Qji#vA}h{lGUE727YR`6DzM z5G%XRp5eAb9CUZ^X6d|^EJ9@?Is;H+XhTc_gge8D8mWFL-}JnaGf2mq^81HLAZ=nK zL!gSD6__eoZ@LY&nb^X~1ty3;`WaholIA=km0>7aWXrK?LImQEmMx*Tewj(YSp`#D z?Q&!2KN%*d8oy~G!}hmO#d$*aZ}U78q&hX zG8Yo30YYT%)vYpo{AovyCQ)glL>MNhhdGUO)S60gRp&e!#${YRl`0yq|IoAPPREiy zKBBMb1lpn#sP!=t;6Nn1v+D(}3(;GL?_r%F2wcm_W9cqvI}^QHUS(mm2B$^t%|`>7!mwyNy{F12{eqMX34 zLHh%79JnDT(~1Oam3}&&Q^R2--}?U%2J=aXalsa6L28*@Zs^6|=H8bj_W3ViSGU-> zBzio|-lcG`E#&U=joVBaBvPr%rS`X{oUF`d94htXKw>=zw`Fr=lONM$Oo+8 z9Tw&60gOyTPxa=Z-XHy*4NM#2QB~(%QjXhuHaRsRrvgxfalnw=|0{TXc&GT8goo>&oX{GboZxBgG?8Az&Gf=X zIh$-S7NKn6@kJ#^?{SDaRnsP{SFly{#s{s4w-hNcBRl$Na%vhJe9AOVDp= z%O8-xcvqyYW46l1trODgF1t0i+_v*w%7VXUmRj{#F$7WO_@8)EjgG%Xjpy&eiP=v| zR!5(Da&67@YUZ@iEcDaUU_0ZyrukU0SAY8HEMt?`G$|`6c#TQ-r(dborg$|Ib9a;z zef3lCquX5`n-z$)bm;2^@LqhU zySUeTRr4Ta-CJG01EZk2)}Mzi>sBn#kwREEzMwxJa;H2TVoQDQHgsQilHHTSa|u=F zy=XUEh$Q!*!d^moeP?}jtK;_`)wD|~Xz#3@HC$MFf8TfP(#a5~Cnlu&NoSUuKYbLxV^ zd!ujNxX7XyMma0WJVx(uE52Mbh8_z1Tm`*@yRRbwRh~p0dXVY#quqFL;iP{-xUbUU z0-gQXW1XD(Xi|AX{(Guh^opn6Dgp1_Ic64O+^pL~<(^CDcK3OZ{kR z9vBJsC>f9IZ4usPWwIq(W(pLN##7vj(UWObK8YqET%drF2oyR_0iXw+O3#xLbCEbb zivR1d9~ftU3i}$i;+&p6Cvgd^p+MwPr)fd58o@2D^1)c4V{ktDM zdby8LwxT!R9_}3OK6(^=hwj!BG-;pDB4#;wVtlYXXpn){0}cD&8@2E3SgKMOR?1s6 zvF+Y^8s})ukKDt>Mzuze|9z&&N7w zOg0{8S4`{Y5eg8{3NM1}4kk&Z26HXnZ0Vl<1l%}!jd@K>*86y@GPDk}X$ORxEdQXQ z7bKbuNkE-c8TIHcBNL`3`jF()WE`cGJeD6eb+&Q!1W2M!Jidyr3+ak0;swd-R2B+Z zya<*xOZ;{|IZJY0;%0mGj#Mq%J)SMZWUE?R9uNoX{(WrrZc7~U+ zI+=r0Mj4sY+zitJ#rc~OmJpSyPGRAa!!c=84wJE2i$<))42g$1tF%jfHEa~9^Yl57 z*f8S**)ZXStxN!47_*|)42sISOG%eIX$Jkd4AlVolP51=Gdy{+746t>`1pH2dV_v~ zXNkEA@cpKkpV2iTk>~$Z&qYFOS7!c7pznSIQc98JuMYa^Hn(yN*UEOdSftOvpL)%q zrM5reFi>2iW0$-#$$ z)%z?fUmbK;TzjUPpmDyQ-Trn{p`2xjt=TO4+kOA07j;Nwh(6vT{ZsJC*wfJjgVh;mIhzoLMC0sTFHvjYJM6(s z;c^mGnRtNL_!D9WtDz1&w?SH7<&Hxk*FfHj{@cm25wraluCR`#gr{&8H7-v-vfL}sv5y~U!2R0jruTlRd4u@}_C!bnIig3EuI z&hXWQ-j6cAnp3PodD!LdaDQfV491?86eLhye^u_#D&O)12wtgU1+%EK(En(pz(Y&63Cw$J~F#=>BTRLrCh#=&SH^v7xBx2VU(%YV#?{6I=RyDs^4 zMnTvDFnx6v&?pfs0hgSoQ<}S_hd}*Ep19(;I1)*Yqchgsm&vpr?U`FQF0vAw1e3&s zO!X)(tuE~=e*L|-QAXq$R%At9+m&N$u)!H2Qgj8jK02`!2#j3?EqOF9r&8lp@x4K# zE|bA;f4k8WGU-K%x2mZxZ`_y$L^depB0maz+;tM1s{K^}CQOkfB>h{;4H4DSY4SdJSnhO`4zXGdtxvb#@>)W<2cqJbe1eU zId(|ANzSz}bghm#UmB8>M=g$!aG!EyWPGCNLk@9nL7kc>xtfE+IW#B`VH&qQ$ibvORs+l{vo;}q%oJLPslTvc*v zWhS+};G_(}n&qZXD>jOh_MZ7p3ptHyE|%1UsGnCvwpBeyJwW+o^gJLo1s2w@zY6Fz zVocm5#@H|4O}G%E%`aQOevQZoJMjL+bpNBWDX%CVEO2^$>3=>S~{uwV8mSS3`FF~4me|29JcsG7%HQ>dE9n?}o8 z$J;BRt>dxf!d?`v9qV4(x_`w2%Q5b)n$%hq8*F>+&VTp28jIkShAutRUQ=Ze|6=(o%^s3cu^OJSxNh>8HhY zOM{~&uw6f`R_I>J5~zZ3hZj0jf8+2Kmm7YEDV|Z3jj}o1XRaiMB07GcL)8p1Vy!yB zK+G*gOydn@Hm5occY8x$8@XH1|HriJB41yVDZ+giN zPjor^xH%?8vd~tWA{S&a2gW3ZE2qDDVq(u^OC|#5JY@v~wj&#TdUsP#M9!&-BlnP=hDnj; z;wShSdr-0mB2_80+TuepqqjIdyRgzEE6@pjGC}9kB3Y$efGKHRW^tOkD?(ix%vtNh zcYbeusu-dUc0a}_<8BG55Wc1$C=Qd4$?)Yj4mNnz0b*-N`PK(ceASDtvpL}mfT!L~ zKh9d3;ZILbzmG5DVvwgZcIY$*9W2i%J)h@E_XolGsMv}gTg3XfCm*sIQPftXYDP35 z{LO8Y;QKhb>FFA=S4BX5OuO}o?Aj;LLT^WPiG0H6k_I&*cR#qY$K&+hc##0{8Z|E0 zt7WzdxOl`J(Ke+y>-q0vx`iDaumo?=aQ8XuX4e1<)HpmF6$a*- z4j4DV_VR7TLTs=TYf-wUs#*orO;6#R;L_C`4EKcpBtv^pdsu_%uCBUmI@7u?IYU(~JJG_M0K z>U~0DXEt=V$vmC*!o( zvvx{tEnVk@7*Q1AG36qG|5U!I=o7K`m6RyNbr;*Fxt^(yIW2n*Y+5^A0avtX2~$%Q ztlC}6a6ZTDwvWSBwdTe zTA|s4)(fPY4}QU)mU&(9r!G06bR(HbD`Iz`x0}Gk?m;1JFI8IXT*m2`o>Ux#r73P3 zIy6k5=Slh2ix{ekf*t#Oq17PzLSqkO3cFr50K;+J^b=4|IrDZg&;8IiaO2;+a#*>V zE$ynK8<2ZVccqdLn?_Bhbhzx#y55?_v-AxG_SlL#8mLastE6J&Zbe6JVC7PRFbLkU zMI%i*lNYR4=2#CIT|Uqyoy=L1>};rFG-dwga}9!BzMw&ZphSN7fvV-92ZR(h5r4x>FXo&1>)^ zyEH!A)8u0rP2%r?JHvIez!%`?-8jLU6&ieYstmZRPSkGgVY#AD)NcKWx^hD-yMs&5 zXPS3>I7f$SRn*D`xJCm@8mg6)w%s;pS>|No2x>Us?5xOUkCN@0ii^cFT3Pk654V2| z_hX$VbeOqLL(SPc9tGsb%1q!^_KL(a92#gbJwK8yqG8~KYsjCf%*SB=havFeP- zSVc~CQxkJy801-vV41|U^>s*@d$=nRa!e#!%ITW1lP<=w8Ydsq0R^?0!YWbzUD!Uz z!h4OKW5Qevb%Sb(5oXb3O_FZij}GEdoTsq(qj@3rEOTNM&Hd6PJStM;(?;dJpqyhrByruHjSL6{M65cig6@@hu_6m zrm1m|bw;*jAe<_9qFKSiayP|3?mTFi0s>|3d_i&}$6AoM8~lV9L@#7vv+4P;<`zh{ zqZAU*(Maght|f4@)^$OTOXNs#^cyX^eVtA}6rpbU!>z$3Yq(Iq{J{a&Xf!-qIupMz z4t-t(i%HH>&H2K*l}gT*il$|7kqkaqmz{vQs2rTF62Y|Bqi}~!N)&&bCWT1NVl~DM zv2wgDhnB#)2J*(Vf>7mU@iV??2m`ql+W`p|ii3EHVP&b>RG|1Xs;7Q!HfO;Vs){X(6t*eRz13in^{YLX3{5WW7BbvQyHzkLWt_;% z(@?UorFTwUzMA%1g?nh)DzoMHhE6-<@D5#gml@Y&v{`~TU*kgFZ%w~PP z+iH{ySd&*!;kQm5;i!s^uxqu|kFA8Sx&{Mr54IJ~6zi?GYI^sTB5Ia(`V0Q8YP7J8 z_Q^r39x>$i4IBVO#}stit+LPNHc(5Z&Cj(q>xNAWRK+O*9$QQlNRpm=FuZp}7GE`1 zT=;s#7Kp}tI9#p&STG>N#CL(FVH^QR4_8So1It>Flbf+Q#b&3<&*Z;|(oXqeXWJ57 zW*-uCeS{LSqBQ1Br&#qgI!oE8FdK2nPJVt$@7;tNwM*zT67H$70sik{MK5Le2_2~& zNA))9>+yg`>&H%m%@z&hmkqb&vt?S!FPqW@aR$4!;dBNy$Qzi7qi^QvxLhR@bUL>4 zWR&CynoWq4BkE2xX;P>zO0x_nO$H@-bUMz4adB~~(*bFNVBQUH;*aQNg0Gj8_@lRZ zD3E~&J7P>iYkdZ2c%KyIDZV$u@|Af!EzsdXQw7?K0-@cF=m|IE%n$uhlcb~oUM@*< z%!Zrjh=M;nC$ustt!{8Ie~$O1z0Ae^!R@wR1DT#1^<<`IKKOgYw6(Vi%6n>Zm2HBa zA&Ai5ZpdCCh6+NrD?~ ze-xeY-)M_=jYPg0K}Ul`tHf!IK(>iGac3*q zU@?p(Q9I> z%nwX>I|+=a_j#Fdu!-&pHOi9-tS9_kSfgSW_O92IB_r4I1_iA?F32E>uX^ur8Jstv z?r7?FtOw=_NV98C`u%=S+p#@at6bsKCn56wEOSNQ(bRU;#44sceFZ0wX{)<}0-DUh zG!yt|0k|-o!Vx44gy$K+=HS7!^56-XlT#R@icP2m2SdjI*yyc&7YCH6Qy#rk32i{M zuzS!bu<~$P#h1pJX2PSe#N}5W_5QTrT~>DzxY$@C%9H3N9G?RWWtk)qrGP_g z@YC~gb{3CM+3Xh+3H86Xgb%FzXR3j?hPwcq$>;L-^Qglcwu6t7QmTLJ?+Y_{t{f=L zx9w(-iex-GbzwMwA_GA|f4SpRnfx0b8^7q0zb()_w;-uSL^b8JDKn9@xf+Z-%P4Px z!N`w48ra}>?GxXzbjh8Su6Fn~QX(^5BP5zp4z4F>*_f0sIAEXucELu8@~l?iG=1?5 z-k~PQc(G{3klQEP0;Aqc8nM`l?&wf|mgHq>cYF~S`&ZL<`~_tLYoxyW(UDZuNWdbp z@ns_BjZdPZQ^kM}&c;+3$3GG(y#TeeQUlT@@bK9 z3Az5yNr}i3$zJ8(I^_}U{!i`6*UR`?6hQHre}k3!*F4FueVKr9>)kNptH@c!itLQB z*W)YrsZ88%ebwkV)Wcu1a-*Fr<1t& zKXmIQq%)nnw)vw!7xlPI#2^r z^ci8_b9n;xiE&$QLu6maZ+;P+fM(##sKO1X!xz~UHfE`XW4aDUJftY?Pklt_o)+nv z!dr5{L$=wJQkCq~bBTiD-e;Xjhvexnay)X@1S50(FFixGD?$W=h8Tymdpk#Rb9f6y z$DM8dt~aDt>04D!HE+q8@4%NSmL@&vR8mTxo-3}bZW!7Pg}2f9`E`^`FVj4m(vAIL znQ}8jHm8WQ@W_OCC_kK{eZ{J%GMv@gQj1$rrggn#K)K8x|>+`5ZmnaDQs9b9HsqZ_RnIgf-%;s<&0_taJyKm$p-i{aSvg$^D+YW$Kt)lY z6$7th%I>_7^&k>`!aK|0Rv%khv{O7PPd!w}irMt|tU9H4oH}K~Ngs|uCW0Ssg8Bfz z+R;WY+U!Noj$73}=}$9xxm;A0c7R=x0I#Sd3WsKmY$Gn@a&b}G32!ew;*Exzq00@d zyA9kdbeS5jb9=5!uQVPYOK2ugag3DF$rF@=9Ge06$)PwclZx z;p6pNl>!D*!g0Q}>6f8Xby52T>;b*iTWzDJfzU%>sv748pmwNXgc8-gBG zp!HBVD6vF-MX{nMa6|*zf<$ta)6U+8ROPv*c-(SaBJ^zv^!71Dimoe?b6oiEK&a!O zP_4|-PZ{7C1pyPiZRZ~+2RpBJPxjs(?*4iAJ;45l_4VIx{NWFqUwr=i&)5I(hmFPC zC5|{zJz;2doPJ0|F>kiXlP8#RX6uQoiH6_CSyo^aO~e>FiHl%q!x|M8ZD7PQ&NMCpk zz=lbOu%{f_hNfxR;mA#BfMqx>F^3C2GWdam7xt7C$Q^dcm3Z*yMi-# zJRXxN!aAD`jFX~JHLR~{Nxi9_{t_r&gG7VIk`ukci?#Iw5=SF@@jU0X;b&4WXovouF=YUOo3WCSFNY0ov2JEvn-Eud27Q%le8fG zL^Qg_g~7uSIPlEM9Cemw9};|wMhA@~iT-P2{majL@XzKSp7EJ+29*2Zbw;LPKe(nf zp=ZWZeOX(MJ~#W%D)edI6sv?ncA#A#kHAVCX&8Fu?s)7k4K`D6-sq&CnRsC6ih|Fv z6w&a;d8ER?CV_`E^9ock2pu`u15~=qP?U>TsHq&;k@~SMwY18(rvI$Nuk^Nst9cMC zSqx%Lgt;-Oza8nHBTbQ_SGC(#9lyVi_#=4C^iVcF8DG;k$q&ZQ>CR01VAsUoW$~?=4N{#H< zUm4>N4Vq*2!p( z#9zRPYE5-XbqAe6?NlDi9KTkJrb97Qe>wd}>oc?>UCQn5_Ii!{yztc;isO0;hGs5B z7Jl6BmJ0eiX~|CYIiWNgy%3AoGf;-`9a;~-dR687{JFy1y*&Ipd&r08-)?%3GS6xr zo7+4G$Z*$t#V(u(&EcE?t3(d3@zp_K}}Ulgi-tZfuc>@a8cXJY2SqC zrn|C8npZuAS)I*|_$^tt5T(!Fa?nIy`>moaV}99wtNEnsJZE<(vrE!h(U<8*AyNys zsYqRI6sEAIBpv*+=#ZqPuN5zhbpqQ%xqQD#Wy(%DeYyV zjizf{!zwLU0qeR~l=HJ!I@YPa^Qizc_)q1or`vSh4W<;%3k=zkj}!>QGaTFHQgfk7 zRDo+gri$?rFTYbF#Y230G2a(hu1&Jxe4Kb7yrDud9oseI2tX70?7}0Z2oC@1K*L2o zFnGV1WwZGh27W=&`u}RTm5Zpm;ZJ}tgR z%deXYj&rNUx9PO}iW#KWs>&Sox_Arq~b){loG94xg<2cI{SgI&@pV^CiXi&tW~wa~~P( zqcfkO%Hu49EkIs#3MvE2t)E<|ivaPt7fnhmp@bsGuv)vfs9)r|`E_Vrx9k*_a?(6{ zBrTOx)~$U60m@U$*)P%JT|JiSrY)aGtkj%$y7&^Q)?9tL8cIY;Tv8* zU1bQw-+PG%}_-cnWPDv3Y5sm$j)E)~s$ULfXcp=FYU&elrA ze@~OE>S|E2!S^_e%V(Ru9S4`X>rYj`{5(|k%g^1a$hy6Hdy1Rel{UVt*4p^8Qmq2t z-n0VUJTRs?LfmRE#&A|u?FOw+)kYOizfG&K&O^X{o4U}thl76GIStrklSbMyWiY#% zN_S+>7V25YEj==edn^L3|B;pxK319vHUsSxE^1oU4L3JER+@Q>Qq#J2)VVV(+hKcE zG!qQ;tvFw(Yj@KH8VgelwY9cjprNqJP(#HfLyM-^W2hZ-#Xu{~5JRmrCk!;y95B?7 zSzn-)=6a!4hTR=o(Hhz-Uk`P6=A}s7k|ZH1;YT@4_J9`ba9xU#*ze{gK8R;l6oXNg`^!-8j}1)` z^R;f-IJ<9g9;D#&vRpuv+*5Q@l_E92zK=AOIMY%J*MQ_Dt3wDQWwb>u1L0a0Y0F9Ewb{t zDIJ&Pnxsh50!+Y=Kl>_XNVvF*fw#sTA!N@>Nfhm*NO1uT`({8Dn}OlgTg?JSSHC;_ zdU+#Wi=i&19(nc?Sq3&A0AU@8bqKgxk7h-Q)$C}|i$`UdoR$09Vvqhuj5pz*Roi!d z1l)YkM?l{*YqQDYlr!g;w*(baBr$J(>fwcyg(l~!QL@-^50;fTY*!trsEI9|UL+Vn ze;6I0pC?=qm>?ydq&|2Az^Mq%5j{fIlDcA_4vG&*E2icq6R(j~R8NL;#);zK&)l%$243hHpU z8~TNMq2I8Vs&S3o!`GIXjxD0~gZVap%qiySzl|OumX~P7xDZdxsH_T+;Iu* z8fpOe{O#a85<(xA4vHQYyEfqHVPd{T67yN??a}nc+8E{$Sli5ER$!PQ9JUw$)J-gd z;G~qpUHmiz3zgIFRLzPb z*b6quWPp_V*G~7Txy4KZHYnvYxAg5lvDBaw>BhymaF>eDCN-%T@~LAoqU)e_Z^I}n zZj?QKV#9c)Ce^G8jbvvRzs()-DvxLF0(@1+zNheBa2}{IPF_$i|3V2M1h12Jps4ee z%DwX8-!bt(M(P@AC&0@}7A@-seq1UbBJ&=dHqI46~$|c93X* z-lGC&tVpyM83uiw7Rdq%<~iS}SXVf<{95OkeFqs0XGP+fijqa-CSH1m*T`3&8Vxn5 z8pf{IiC7^C5`9TT+yMRFad>~ZSO`%bzId)6kHUT)0pqf`T<1QHqDIjkDXdYvKh4As zTQ9V6g?kHUzbvO{=s|{v23e91n4*Q2`{anB{l|9?C|1j@<5eJyvY$Av!2}~d50f%Z z$9IqU#*6rANw|6w))f6J%S83@B$7DLF;L*fwq0@tC7WDwqq~5Xb^vgw@@(6>G9wD< zh7I*xqoYpT>4B8hIR-gRS?WhwK19oXHbFn117cvc;M(K&*ttkMUU%!*-A1Qkzx1K9 zQMIPm_!p_~Uwij2RlZf(^V`063+HU5E|sT;>)oL;UOEvJK`MkItk<_5zN@}5n3pz~ z$@%HilwYd>_8(|-Y>8XQG41%RD7}%u4`w5WAm2UMT;KRYgRZcL+OqIl3uv?l|| zMqF##RHEoQnB;z#O%qEz#vg4BO5odmKW?H&sio#m-I=QwqM&*1y!G_lVTqk-XCL_J zR;0ADy>LaT$+AnTn7lMUg0(%a&a%4R0MZdOPzw(K@t3?pt!a=%Int5Y7W6Shb+yE9 z@NA*TI6hf!P)>c%^9km*fGD@ZE2sMO9nZ$s`_0a03w_T_+5yfv@K~iXj;>H?I>u}% z*W_RZ()Qz(PvxYh=XipF757K4(@9!($N1lRKRcioZA8@o^dw2?@bv53cDe*_7bH3@ zHD^|IRXrMd>1s!yfu+$+J-1N&5f3^&(TIr;)sA$C)TP``n3@z}1+&`H zT2ehf&eC#NRDC(C(Ug_45#Ir{*+1eKTm2ZQuK;>lrDK9wxf~)A)FDd0lNL*}Qh)1I zBeB-3aFr$kF_`6o4V?Aplo{LU@eluv$j?dcNz!qOTFAt#g&2gZW1~72&e=qqJM>FpvLoK3l@>-} z);RA55o?gz~{F08&(u!l**0h?qK+BW^n7NP98I zzlj+={G>@;Xb7N}SzM59GK^ufW2K#-bn|D4ob7ZPMzRp7q8?;;r7AHS&E5!(Mz*%3 zPuXBF&vSI8XJF(6H6a8rnY@^I2!J~AMb5gW7}KZC#_1qcF1flAj3?gCSd-e5Al+kJ z=u^FJ5sp-iW2Ol$&v59{LQVMU0)$QYmAWyG*(N|5%=Hojq~oT>$pY*MHlcw~P`IG- zVOi0t*a8eLc8|%fQBny=J<>MNs3J2BGj52{rx%D!sqCeNa+7K~wVKq=qrw5#1Pv9X z8QWNiR?s|y78L}#(t9JkZDl;$!F}DzL7++BE7uQe)q5?8ipmb$KN5pSpgue*cb7#{ zTb)=|Cv@Ey8LRvBsWrLh&$UH6U?w1c)eli4q zfBN4S+4M1>F)2zc!hcoSEXVYdkJs>DF5~ngtQN_DBN$718H4wM-a4$XFo&^G?fHk= z6XKMkLZ_GRo}3KRoHq5-NZLJ~m!q#9+a1yYg0{4FFU}F-Uy9YyVX7*VK~usef1N_FL7c90=|gv;l5KxAEMsbJ!N*X+Z@ij=fim@&=vT+!)y zR8eV0U;DyRwB;UPa%hG+Y!)!LJqZ(YsK72AHwM0HqmVO#B?CoAax0T2_jS(t}RQG{l5e1UV6a*`B=ps8&0lNyBBQmJ(6 zJPK%eN&4}&`(;2sNdTMhOP8KXqgHU#C=YI|K2 z@}slsNKzsZ3RP4mbr_S`dFTYi^y; zn8oN7W--hiylwA`t1MODyFhL2rO#}0iBm2t`Iz~b^N0r;PB@0r{Jv|E&?<}hx?1Zhyh?KDZ zfFy_F;B#9J(n5%<1K6=xA)FbP=`a~u*DXb`R-{K`@4`!;il>Ri$>R}cFCP0#=iUjg zvpFeH)W9a;qjTx&MW>@_LD`P^pktmS@v5vmhD1)#eL+3r{tk zy|$h)iUezwUQ%aTJysVvJfIbiVLHMSNgKu*-GZ%h;5cqR`>7*ZTc~0%0_L@=NH|2* z)%2yBl99b@A`*(G9+#o&g%s@|PN+Q5I-1PB$N0U&C}+C4@ueaE?3+Ya7S2u%#+D-+<>o} zGUAps9CEI%=BnIh(bEOXz_enTIr6jSxppSdiDI&W`>1;PSa2y_`~>6PO#=@y?Jug~ z_g@qt8`Poj`BpE#!B=1C?4F-|p~nTle_9dor+w1>1qht>FrO&}_b*T2j2}SYG$I{s z5=XA%9bY5d-C;x138qCOk1iWG@%+@ zvn`$77|+XWg0nXuu*Mo!Qu6&8TG0nj%>@;1m7Jj1bi`awJpgo%LKnyGsOVo|Famt^ zhKnmcz>5Zu|JdlP1aF*m4L4Q8%?`W39hxO3K zU(NYJu6NfFtm%hG@Nt6p*u&&0vkaIZx;QFE?Q(S3cqyyjEGptn&pJ%a)%kHop;Ksj3#!GC;BT?WFh4$kQmlIFB8>mZKpMKvC-B&d}K&Sb=HgK8bo-VshwA<1v{+TGnf)C(2yp z)L2Lwg0$kNsXLvY*l2-+vG`hYXu@N0c1JO9SsDG#`HD_y+-jHuDkcSzD8<{QDbmK8 zJRK9AcRkt?gDfX7N+o@f6YN*}^YPO=wfAimV~%k|k;5n$y&)8`s5AzPuETLGagb_a zB#^JU#s+!pvLk-P@q&m#_NJUKkpJ4hnl1_;q=Qi$p~(I|J-;ZAbz~q}GT5{v&*%6R z31Xa#Dw*Kx10OhmSC*Ci+`fT2ud=+WfvAaopv*Llwhf;^UzzxOwR9i`6P$0w^)a{V zpj)wWg~VP1RWw0SU6*(?`Ecp#skl4BiG6_T+Lg z0bMd;y<&gQ06VMLN-aP+unY>sWLQ6xypD@fN^J|@yRC;D)qIq?GQt!km$GghW_dEi z7o_F)fKuoqyQKNBPLFP8Kr zsKruJjK)mQOp$-J&q49Lw z#2*cEllg{kh(0ae#&5%HMqNfEW=bKvw?dVpdQVESmzwv^7-ID0I_Ez{n(agne;jcReug)iE4NCJoONvr# zO_75tANumb7O(MXt&EEgXjp@TpevGSRFX7TmMN@MWLs!U4?WdpSs;NAlUXvw=A!#` zt)9*j9NTE#NsrDp(w>c6K@LnYFt{wEf6@5ahT}8VlcE~0OpB4DpWYjh>PlAHOjDFv z#-f_1=h{@CqE_@2XzO2dj8;b-l0v^IvspiSHP2~cgf9Mo5ucKe$zTpLP`Ai`cU z;WZvK)SdTS0zHmmWk+2x&*F^p*W8F_4QQm$e7G!3Re(FQ*7)K&&78XC6@{K$&Jy#w ztMF3M=)d0s24r4nPr+v4F)(_`1IN(MgvO75oX1BEA+x{orEX-09-($zX~tF z;NbMspnXLe%nQskeWunaq(7c(?H%g~b=BxGIvrd;SH8^0Lc+qnqf<#VcdA!!D2Iu{ zb=BUAw*rxh0FI0ss8YR|^rLUC6=lURgC3IK1d$w@Cx>>X5EiKITuRlt%9HO|!Y`EC zfVwn9NUR?g!Z^VqVIY`tGP0_x`2;cM6!cO#zCumD(ur+H7s_8H)qcaaF-8yB;7HCF z8C5%&h{TUC%q~T!?C|EGBI1@!q76NzavR%xB}D0@lw4e6kP3Xa>log{_p%`> zTwJ%qmuAd0w&lO@DRR0x|U;)VG4vspivySB{Aaexnapu3H z8E1jMYNPi#(^1qZL{Y^93CjNSIc=T1|B<{t)|$;Y&? z?YgA{8df8S=s{uI?VuTV&;msb2Ybh6uml9&@d=tkA^M!D-X3G7)7xN7W?2vhVCSR3 z4zL006mUSMTcoD88G!VmSc#d4;>CugkmO~*m6*!?CS3kN$n0!Y#{fJNbe*jZ$Y!}> z)_pkbIyVmD6_;A*L*<|}A!lj8r5irLsbk!xJFb_o?OD}M-Nmk}jj!Qa$4#C60$;<` zBkF{ck(sPTYwguI#W)=#Mu`)fz>sXlhhDaeLg?3PaH#hhc@l0}dHH;uF-U))Fqbw+ zpde5`w^d}^6tx9j!zP3gNHlrZmcV*e=ktqw7Y|mzr^EFpv5TJ zq!#e6-~Yii{AcXd-&`M3{mu0XJf>m@z^Ao3fP&%NxE?q>?z&JCTBT>rw6lC&(xLQGf-w*@#^$$)UZ8ix_{%XEjB*`(33 zFsd3L;tw^nDplgT1dI;D(OWcRh^rIom!>DFHSAR|5h$q|CL(juZ3PpwuwHHEqt`U` zYbx9-APH;yRSZzpq63m|qG2{a8())z4O@B)*OG{GU=)}HW7@w;Kcq8+l+s_|Uu!R^ z#R<1K!4@l?tVI3KRbHBZ&69aTx=2#2J3Zm%pM+ zX8q_C_GD%#Y?_i{7&onc2Feizx{5J>R2Y$0OQ2$A3<VIDNo{p zo?Bp<(Sj4zVbEw=@S{HvKqAi=?bLmIasAS&}&FHh}`OqY3QIyLE>6gM3Y z$DfvmKDmjIHpN$J0c9@5eZ_aJ!hA~|(nfS0GY(p3PVV5khhoktM$1gxe+b~AlaKZe}uDF$Z7>L)LYw%$Dp*TAkYolt75qM`V3?%3A zM_gVqhP_V*XcHt!E$8AGvg(OWu|eKSVh0q8duu=SHil;5p1MaHz0KaUW4JC@I@aLy z-FQ_qxI~p>yv|T}Tl$+XXZtDNYqiC+rJmBLD@Flajil;KF%(2g#n2)vLq$X+)$*|f z1j!TB3-qO@^|c=T2}vA?RAc3?VczZ2R{GYH`v@b{1b@-q7YxWpA0^d5n}pK4h1XmV zT@y#B53Tukqa|nkBI`Shut}lC3l6(Q5sG-h@Lkih+@k(ae=j#4^&nx^)V8LuqHgZ# zy@U21P@8Ts9KiBOAZqY$ml`*QVHg=P$LI0FHs#v&&BByThiQI_g2QQamXdvyhZ^HN z?4O}U@~<`rXgkOL_S3E$tTm=a{eHjdOk9W;e7zID4CAS$O;52$D^g$VA9PozI?864 z;{j`U&(=Og#K~hRd_7tW1Mw8aGdfF#@GDx>bnqfD+3c%c-r>W6++}7n z2{<}R&^8mw+k(^{Qm>Dx&BsL_OU=s} z(+z-Y!fTPvq>psm#kx3pkNN^+BAgvn+M#=xi9yy)hdqytP>k*sr)v#A;t-}Y4Tb8S z%MdSM&Zr98j?_`mk8%f?Nsr?Y-;b zk6I~;;@?h@_JeuqZzc9KV2 zBGJ5JeOuL9IY+6RSvGSLncW1lvC-I8*lxj(`9nks%es$)@#*PKlPf8i8uK6PXJk?q zVsKHZuDrWl)DeNABv!$pf!C|#$qF|sPQtMp%m1|DN!}U20rvjZLjClv$nMIwfCAaP$H!DUy_(+eISow@WOcRK2>oc5yA zbNYwe;x4*)y(0CKeT`#eu<;MoP^_%r%*uOign?E?ckJ|0Y_)Z^VE1Cp5g0NSzEF#?tLz;?uNwua}G5zODw zsBBvhDqaMhqs}nRF<3nOv&sLcQ1Phq7^bi?*2B*{oME4Ecdz?{9hTyuMFcSV;F1hn<~quzS>KN zElWgmQmiscl-w?9ij?UG=g78Yt{C7dWrS`dOA(Vj$XM+Fhhm!?&q5;)gXR4Cm5;)0uD&VY5em|OZ>ME zDdlQ#+~8o;0y=f3sbqpStd_S`U;@|@eWU8;;5b7q3ApDOb&(Y%0=eZw|5(|Aktb{3 zpC;v+Jq0w5+Ct_ue3d83JNV0d8^Zj=XNFkK0%;&fZ6S7cv*S>ggPsodIR z>Rl{PFiZ<@M7qhX$kjA~y>!W{bGL2dnM*`ZYJOkZc`%3wo9ox(s>#4%m_I@&h^;i)*NsK5KeH0Kw5bYw`2 z**Lxy)te5Grj6Ng95RuRfNJ}ANL*$42hxSU&4y@Q6{#!;)95VEu8Jg=w;2@}!Wo*a zL!3p2OL;LzGyEcY^$NdJcP}pT4E6J#mbpu&0%QzCTQN zBySjFM73HTr9BMq ztQKUy-C7y?Q;N{d&&BG{v3z!02+&Kv5{tuat+TB~c#gZR7Q^dYZX4Wf54Ef+PR2+t zESOYym&wJ9uMxri#K=*QFH(jQD({Xl`|1Q<3NUa7 zj)9!cygoWn$=>Pgj$9QZpWrXnT<|9yb*WexxBn@6wi&rXg3~Q~5Ucr-O>34#<7|5F zhBMUspz}&s4%H0!7Ql>OW+VcOgDM3((etf?jK-1L$*=~RNu|Nha~Z|ym>He)uwZ4}KIn}R zsow;d)#z7V_#@!DZXiv2N7){dxIH*n06Q`^xJNQ0m3lS8pewsIB&$z?`E}j68}}15 zt_h;4vMhhQ69keLN1MNkA~#fa2uQBG;otMU5}+-5498)3San}NdV zPrWhQDApB~SwlJD&u^n_=RFk+CeOKvuS@uviz_6>_2>; z)kkAjxst-kD~CxkgOw~V7KNx+!N)Ow6AmbOoUDh_Yf0^~*kytqq>`(MrIIXnAKPkt zWvGGD;VI(?nGNjQ_0;Rrt$YoA*&lEoR2 z!j}Xls9)GE!FP348_co_wl(&+q3E8V^yO{u3yhp5p@VDOuQf3DdC%7d?sV}?svP3~ z^4;NArgJBzbH7{bmI6KZbKesE?f26!OsxNP3*2@KRCd5E4G=xELF&qw4z@5G9B1bZ zW`iOOi0R-R%m%3=Z93=;e+#ogXt#L3{%SV(;AVpz?jCIn$kO_r3!)mj5@hR*={Fu{P2l0gIC(P$5|sjhXMeaCO~>JG^~ z7}I88jx&@fiJEovw^Qf<9fb32etzK@+H#QqBevm9xW*Du4IX}* zGd75TW;#d;7k!J25$g;Q6BB-_WIaS-BBGnX(51011TL>s7HmyO{oy+?E-?jvu=*`A zc9uG`dQq2^0GzgypEsv)vrkqz$87MWTh0C1BMa*3^)92GS1deB}IE z?%BU*lbmk@pm#xC#*g-4YIp-!)Ex+*t}Tv#hUq&btvJUTAa2FnjBI=O{!5(#?bFiW zf|$K4Dcb2v1qn*$m}A6%)eEu&OovG*j8E$aN=@okl#J2FR-|+hrf^dVH|@e_QuwUn z>k1+{qw%v*6B#i`N%Y-**noT zG!nd8n}J%-Dz%;++m(D9t-1@EVY|%-DObAtHBEPQ-#0bgajSX!ESV=BjdZ%|b-E+Z zTxd7-E6@Cid8V8G6((uBZeYi8G{(S47$ju|0vpEPX0ZovEL4hXpf8Fff?ygqeOyvt zd6Og$4r8p3UC4D3iGm(0$i~d68>O5YA-;^$F{&m2xA<~(l}c50$1pj2!o@(u>SanJ!!VLV5wj>QUJ9aHKBb!*GD4Zt zDpEM`l(Q5Q(M7X)PMHFHW~9=R-1`2h6g~!L?eC?U-o1M%#wbQ=4=+CN!wLb|L`Dv- z{r*bLeO0civ3pe=4k=W2Ja%ub^h9PwY}G&u%~QG|z}klz34kK7Lz@$pnx98U$J>@@ z(3}^>H0;mj#YMLRmloR&8IC!tZ|haysFO{TPLJvz+XrE_ORQK4>18jdU!Co;CS@h%j;&8xxj0oObr4RLS*_QQ z^YXV|;=!&|PxcINd^ofGn(*{cpy)SX$k!3ED@im2298xAygPhm=cQD7@n&E8vS;ETVSkl zngL3OzU-Gg)zU9+uh&-^TO-*Fjm(Q%&elO8Pwl8{A4MX`O>Z>#pexFP#M-Xjrv^lJ6;2rm>(BpxD=P zhow-DiU-Ng1Tm^C^h2kjo>R8@;1g#w&xtYeSz_DG(Hw>ikiztC1FO2}`>;X-%3=wv zrvaFM7oDEXM9|#C@g_FNVwISIjH^59g+fslBmz|r4?xKBE!whAJxk#yIpf& zCM{H1d-l{qN7MQylUaG)4quchQ%4cd55d-;9D$mW9jl$%F!V6T2cY{H8o5FBg}Ma@ ztQT4cLd=_vYD--0zo=xjI)U7&twToNVQkYRBg|rAB({j)GkPT_=mTFTuANdsY3hKo z={7N5tmd9~63%O`!g*O7R0(p_-+T%e0M?gH@aQs#2{SnCvH9%ft^&~ThX6R%?pIq% zk%dBuU?MD{DA*f-`jC=wO%Z_faPFCh72UEtYpk4 zo9B##kRZSai~@Hpoa0QlGCPSB5!C^)q!5QM^+>w4z$}s|_B`-wX`OG#> z@pv|yj41mEwcprcBqi_hb4;Dt)5kKdl`JKb76ybnOWN&ch>%;+}6DGa64tC_b%~iXCEXClyn;a+dshzI037!96u5dt;p0 z#woY(#b7*k*U4x?XDuhIkSk@|qa7Rq$uF$S?~S=t^9F}OVPcrdQ*ESzC1tkc7|623 zWf>1HIC|s&cwEeTP=%<2UQjemnCO%-g3@CR=eY>b)Ymv2C4=k1SckB%@0$S|CB7pl z`gJ&yjiODhR{57s`9>{_3dJK0TcKiyt1uQyB=37>N`8Qln_je8iTVOZw?(vk&h%L- zu?(wfA>hsE-PrwjC9Z`OO7TTDkvpa0tcEMep80{3Ms!A5)@cZ6;y@F+4PkpX@v1+< zS)6xnyo7p74S^lFL$sJ{)IE#K!Nn>nVpnXijtpG?2Dr>$*Un!bJ2%I7Knnu26wuB! z%U&&YrFuYg*1y+VyQd+k4t>9oOrb0WpkAX8L%7%|w3S3-UW8G~EC%9%rt1YQH`Ukw zxrY{^8zo<_WxfnE!_Lk+{eA=!-5GK&RoYyS}Rq2-&IICJXg z)V6WGm7B-oRe55b7(TsY$gd6{|G^F*jmD2mcmLUrmy^`QC@hTJL$?D8l&EvNx0G^D z8EZ{!fot5aM<(}q&mNiF>EfAuT1N4!>*aq2+qvI8bW59F?&rP@dVii9=T}nyS&+KX zi~H((2?)quRTiZNN%BO#QONSm{^$L5kD4mRP)}~e==V^?6*1`>js73sY&{>p7J*Jw zs?bI5fv8H8t3vcVI_cw{EV`RL_*G{c{UPeaovmmCb7dH9hpmf{9^_1hQ~vp%q9fC+ z7n$FWn>sjJKc-wL>d%d1r%N=Ds4O24&p0a*&z%oY6pH<1u4Yu>hWxaE+SH9Bk7tE? zuESf^1fAR>Im4+5+W`Ur^1B*ZS$H00@=QathfUI|<(=;7{xlub<-+;4)pRgV`%!Ds zvl-FH4@4eY(HA|oJOrZMiq>y_jK08atP~NJR-))dKyd>!!6~g1g{|RvjcOPKEy1dB z6|N{)V5{JA)$EAkhISR!nBk+Y_AzD#sPqgQ~PSL65t#uU3u2Z^27mo-Y5w-%3MWWW(lebEqg9>*o8q)m zj~uJDE>5eYuL`+>x_+L_ZGsPasH?rBm?6Q}p%bkw1VO(6Ohd>xv`8iJMivJ=>$8Z~c z19C`z0KaeBAK%0u$@7rD!XXpzF)Uq;nZ7TbPETov7m`YEFqlu~V^R*OXA3L*Ds?!C zr&EBKp4aKcR7V9mn#8jO0fl@{LSx^bN?ViZBY zKfMMXxheIZPK6|?QoNjpUAW?-TV3rowfqhdRV@}MXs`ATwrWDosO*hNMnA+x&_|25 zIi*F72W2Kc9^?#2y2ft{at74WZ#t|oSaZc_SH@0Qk4#pwIpB>?KCy$H~5_qK!m*B#tq2Rj7v?R1!tw*LrLCQJYA%UR^-+?Q`Rw(2lP zf34D3;g=UC>bB%{oJu?L@0#?Zzrf_!H5-pmjHl+2j&8A-aB3W|ZHC`sLLR|11v{LI z{?*J$zHx)VD}?`qGSJ7Z!jpp{t2Ut>_e8q#sbUkeA@W(J1^3P`em~hq2K-~ z?k-~$3EhZvo=N~j>THzeg-Np}2{#u;9)dMi-gVl~pSn|`vbt&%RvZA^WzIPLqtSS) zo50imA6BOcH)Vo-KJlE%l1)v6sm z2fhq93R$-r)uN`r?vc?GsuMjV%>*PG4pb2NkqvHo)gECzfKuSUn_*c=g(HA!wrvrO zz>5z}oi8|OBXH>;T?TVzsV;eIZ*#K=?( zM;5cu`h}iczrqcuXufBCI7kNBbQt>bI`&)K$l-NXtH|G;@`QEOvA{Qfn*j1LBRIxG9p&KUE`oL^|MVtnny=4D|_-^3+6 z&~f*oEN5G5YZz1b`=X!a=X@@tXy`B|-@)iImG}kI*+hMaR#z!SHCqN_E?PQW0EZOq zgS=>mX`awKcj|-}63!}^(Ha%sg2Cw9@L|CV@6BqHNjyzwsEt7MmshG7*|>EZiaU-hcw zVQ&`yeUT1_i4rRD(oJH)3t02lS@vN*+qS~1$Nx@I;zCQ8d_IuW%<%URV~JzsUc?4H zFY|16mVNx|K{P>H#$_L8G5W(kAr0M==o?<}R|ip7g=H!6aDTKC088&*J@l>%WLF2> z!hl@f4D>hr;X`|y3vT!yuRdCC+(-@J0~|q$qsd5+>XOrIV>m*xz|C~b!zu3SBsUS` zQIx=-Q%M=^ew>Z793&&g$$%WiNh3lSTbO*uP@`$ejeIzLF z@61v{PXF!h;dlG*|8}zb{{8;@W0;i2S$}tL-<#hB8h%VIXKzU<|ChM9Fm@bPdfiy9 zasS0Qg^K@`Cm0rrg6w!-P}+w5SPm}4yL*xqXfHNEQB=kO!eMa{rz?gF#SB)PRNBTb zC8IR-(HZR6t8`di^z}3r<75Bi#s1sF-M5Fw_T=TpV4}1D;(zcP|CfU1Mrl|SK`4dw zbT%(7L=nkc#^aRZ30+-Ww_Ucqw}0Pxz4!9u-Ol@+H~zBWHy8N*9eO+fVRdRErLd^` zuQ@&`a6}BexQXj`Bw(Gx-Abb!wM4deP_i1&@#VN={oJy^AMXEc_pJx~yWRJ18g|v$ z{2UL1p>+8@b7iH^BKRqyD2dz1G4cuC5z>4xpP=F0ASnzn{J&^tz*z;@YrRu&s3DbG zj6#z#v7;^;O_|WKD8sjbY&@h)4}_RWk&G|#){I9AevUaSDn9N2fUJPWlC~Jy-}(0N zFTp(-z>m8t^J@v2gtOf-aOLWLwPdym+zu?r`Uu*SjsIrQ#}`UGph}f-EZN;RT>Ug${CI;@<=3qILWAuDkv z@dw_h8T(=iCvFYZ`<=txlh=E1_6~P_3jOBWgMYgGU$J?ccO&U2TX0%krG;-Z`oZq| zzwf>eawvE7g=nGImO^a|I>#?5f+${cvK)Ol|25CbxHaoUxc=wc{llFKe>r&ffSvMxr81cpRo;MWdck2(mw z`F7MfyDpR06rizlEH(M9gl@vtjJ^|FaYYTnODGa%Op>9oWa`)4OkPmD4e5dTto1G! z`rPGVG@g*B^iOylEGb`#Rge4&!Vmus^ol84%M8)bR|kLvhAQgLj3Kf7;3RM?dU3~J z=(SyaA+V5oYVMh`BUuS)CK1Ti@JH|AG6Uh-nln)~xZM)XJyLX{qB z2LRTd2!XqN2v?A)O*pL|DW|ytSHzvra079Wua~6KDdF@?6in5{>KAbAB;EBDdy*dF z>X0X0<5cP!w_AYuYzSh4N2wZ<3bnPsI=JqGynrc`EV4#X=sJj+!1z2k+Om9~rBeih znsdM!`J*ynzd)m010SNIm6i;Gt_==b`oQJHmr7?ou{TP?HIp#;vf7Czrt`Lf znc^lMP}^bDE@m;L*YkOdDWrweLwyqFtp|6<{ zz3Aw8Ia$Ng2uv-LQF@vs{n3?peWQ{(PAT)GuJugpC8?LU2|C)vd^imgU~Hs3RB8q? z;w3*S*P4*6kVHSZKZ}$}fCRVVatH7=@lGd8ddORGMQyL&WCN~>E(gz_yesiB1xhonkS)V+axYfwBdCkb~2Rd{d4Rq7Ukx0F*An76$m+-7(mVOkp-?x)vJ=x;$s7s+sH!F)u&PBm5NA@%SdpQTU>B{ z`r~aUsPBlMeue>Up*_dY=c*i65narE6EAU>Svri?qZO-E!Rg(g6%99`3{EvAPUsX4 zPppgK6Jt9<@mS>%H?<8C_RgpH@=KRw6+q}}4d31E3#h!nY>U%hEH(`6r2pvABi&th zmyL|K^lO7MMz*5^s?p#UsDD);if>*l7C0YEwxOP8Hb5(eW-6CuTaD1Qap}J$nQxUV zHFZ+CXIG?Lm+b}K9ceZ*2xJ>(5)za*_AaBLS+t6&}S#q z${?^h-b75>m8PEi+WIy_MTb?Vu@xD<+ph=scek}pMB$34g+#ORx?8;hVh5bG>$kcO z(~uz1e9k zEL;d>)`7dzO|=O1E{$)T3oldMhI>;DX;4r>Yn8dcUuM?%0|9i6Lit87wMdjMVcpm} zn)G(Y03U^)H8y4>6?}1BV7v@6W+U4+V{MYnhsx^6sDZv!r=qI&_YE{aHWl9PAMS2N z|IFs>V#fyCNp!j1-&j}YpmHWt21}OfMRf4;Z|p`VR7HUeaU=V#O1h_Si<1bCFV~C#_*;%uO2w|SNG6yzmVeH*`pPp z41ct#$uqUV;F}G0J61zAKFsb7YW&WVt_@PJI_3V`c#`0Y0e7|)J$7uGmA#-cMI!H& z=^%ORZkBqNgCIw*puuJ80-4R)D=n%UOiIp_R8l5;rbOs$ zVuHis!dA&x;n=wAauP!cf7#a^y^%P({24AaPn@-TVtJUz^63b$n7%Q%LG}JTzeQyMHX#|Kuh<+g3<3yHDovXWhh5zDHLx!(5=>K- zx|1HKXQWleM4RM^V<}^mc8cx#R11{4J6c5VEQHljV&K;ER2Nj#4e1)fJ9miz)8ajx z1p63{!oiX*4Gv3-;EiHknK16bv{OdKe1@N`9}1I~)UF;s^z%x!J>a8j&W_1}HF> z*V>jjNNRko;Ag?;>!^wg*jg*m7Mq{cJzoTc;6NEpPUrl3-V(k#>rVSeRx)5Yslf>s z*Dayf@e;j;<_#R|AOHBrR`kbsdi^Kl=@fy5{560H!wn^yqqi%de0;qMmkYYcU?6ao zZ*6EYf0k=VX5AT1-(%7fyK&tO}>CL}I=5ZYLV9 zcG&dNi9gL79@c?<9WOa5ALi&PDb3qR4Z-f7eR8=(1f2$coyYO+2=ngveEuXt-(t4r)YHp zIE4I-EP(;9*&6sWsAI0y_!TCrer~yAQCi@4E#-MPODGir(r92w)K8d;)-FyXit)!R z&%&zsQ-i8aP5ZTYQa?5LQa_9Erhc@F1MwB!(zgdBcv94~snl(6L4RMYuExj~@BkOL z9_;?tqEK9h%^5xZSR4{DH~H#98Q1CIpcIELB=Q;-%66Oz*n6_(4DV+drIo;>bklen z7Ous~?1ptbTVduylFTrIHlBs(nVE2oPC4_6jDldX)(JzR(hD7DH{j?*)t+YfYV^V zH8h9t5GLiCO?fk_3V8Li^uF~7K>akGA+7DbT&$&K2w$i_rlLF|UvETSPi5FnOOB8b zmyMlEh?}#7dc&mO6iTn=r^cX6dC%8aRH+}NT=dzbooT;c)LL++lH7c(p2BiMT7*)+bmZ9tc~ z8t<}um~X9|gFnqidg{k8>E*X>4TLwf93FofycgbPb&SY);tSt=)u#HsKtB{tDP8~r zKNY5XN-3Es#-Wpx3L{{M>L}PR56gzUhQErgi7s#eH;Pd?286j*7q-9^fP8Tn8102! zyG`r|O&UwRX5O8J+Fb|eSwL(#&@x+yPrY7L``U^>zSI!fDz_CHe7@%yNW0%qwKa^( zcuDzzG;49rZ(O8a8>Ts3a%T24EEg!MEDr;d>ii%DC9*nqKs~Q$*5o_+S zv-`f~JF@FNT`DUSYrmqs%hO8`KJ?!zRak6AO_Ox!IX;0F_%0^#<>+w_v%@&N&=_&4 zPHSJitc{`seP@U0!fs_5W!Ks!NMDmT8rJW>+IzhlZJEDc?!DiAak&5fpAUeEIAVPy zOL0T6lpO*)x!oO; z%&;nElXrt>@8H(p)C^hk@K&?njYntmvU~Hq-G!iLf^8;hjotJP*f2u)iSTwuvBSic z*!9eh9Q$7`vG;t{H15P-S7Z!mYSjux&0v=Rl$fORz&2sG)uq8?o0bMR#d_v;a5lKt z-cG+~#G_8+xX`Wu!$)6;A{wV3lIWBNTAg7e<33#UP}if(oSYub`9?vj;pD(jXB3{W z#He;`k#h~lkXFg{oenVYGDfN_njo>jz%asBRw#eU%K+yX`jD1R^%2bEPIV=VO9 zjO8xiLUou$a77-DC01=ZMYAx}c25V_J#=89S4tIjlojD<;)St^={)Te(y!C4%A_uS zcqoM>BYdeyDL;WoZjxF`XO+MiPjR9t>(QMqIfq1Alr9;xy@+{7sa(h&_9VT>tCw~F zZ+jNBI|mk?b-VxAJ2-r}YuBf^aQ#_y{1ofS&5ufs*|%b>O_AYhnCmSpl@EDdY~8}hqC?V)qzO^({{aNrj8A}6p3k)$UGIBY5Cxq zOY1_{MMtf&4tA+bBCNodCXC$iwmX#7%66ZsET!GMEtT$D{oS}-KMGCHT0DAe5I$hw zSi-A7`U&t7-J8L2wc92y0d0`BTNrIsw!aW*l>xNb{GHCW?Yar1K1HuUGJKjU2Wv-2N&1*?!}(HPAQ2uZ zZg6!W+N9hLZHhls749CzMLJR<42M4S7>OF~`Ew=m1$x6DKP4Tc9%J(>{1f6E7ymmCtB2l z*3P3%cC|U@^@730%G*q|hSUujz=xdd@MjRSZA0i(NB$6QHIlqOUYlx&*PCVLf8hCU znnD-Jb&~}G=Z?BI{VqFky7g7qvDq%SnO@l3&R2F+r=^8h{dUJ|x$K;LC(UKx_E$xh zEnE~Q4$a7d-yqXd%Wl8$t>b0Zyas z<{YV}&Iav|hP~((*mwvcVE0}>o?&FXwR>=39~DVS5T7Ff&$1%r*kjA?XX=}1p+)yA zHAV~%x&1YO6^!uOw*h+rMsN?!zcMcJ-@>i>D>4zO_mE#(vq0uVra8#%^D)_~p>FYt z;_3+qlmZ-eF23Ia?cd2eRqeTHp)(eIZG{cl(%(IJ96kqRP8f1Xya#iv;>e8sb0B@n z^W*7{9*FR<>z^~-EBJhL{7Ur=RF4Sy#Swk0a3T0uvj5IPqotx~H9|#%Qe_o)YBSDa zk@*52Cv0(<3cB+Yj?;7e&z&z1*dgsx)#uM!VA1eau)@gJvuG`^P~)nwa$9sf1O*Q+ zCfU%PFcx%c-zk?Q0qBQFU{bGu{n;$Pz*@luFF(y-iKU17)uq1;8XjWV=M2j?aM!9I+srPpGdhYzhZab=@`TCp|T!t4OTt zu%cBAM761F8zhv)@oj2B`Q7j8=e->rp#8kg~94?%iV@5`&)^J>!C;B#n$@Icl_ zd_?J324CxN4_hjr!L1E`ssp!p?rcd6jf&-&_CRlQkyiHT(nMmt(87(`x(Z+LbeR-w zS361p#zV^t9%a45Ot}z{88H|7jje}AHi%a}iA_6M#jD?0Fz4Sznvf6nAA{RSSz%h4 zwHBd*F3(Ptu^JVG|%ga{66*<|IS`puC zmQ`bwTXjRweA-EoNpa;E(1lA(i5mS3W<<7@{)|kavPy0}FKxSdf0x<2tQXrBhV-rN z*UVLps_^v4hB*d(r{5vl-cG;Y>67U*8T6tNucsajsWq7l`f&9slia#e%`91E#vu&* zl(bm=(eG^62E+Yy7;g8FH{(aRwnU_#@@Dt=cy~uK;ty3i(&e0@b&zq?1w3@x99!td zXCGQ_hB)#x-U^;zRU2XDRSwPz{=n{Pw_}tGaV`YG%hpHRz^*&m0=zdo|Ac73eOOeKhmR|b)Mvoi ziaKZMG|sO(Rf;rX5h*->E~mmGWiDS4sG#MdN^R$Q;Lh2;CH&m5(fqQZumJ_u>qHxj z;FFPy5q$BO*}XVe@xT7mn2{J_)fYBXj46#-c{?mh{so)1KIx>dN;mg0_q&~Up_x17 ziv_2Uxbrg+(oFV)wrz(qNHITjMA z4VB;=-9c9@mzmiB_r)P0~N`q59{B!Lr{`YCWZ@N4^ zJ^enuj2Smnq95k)IcJof&-0}F1AU325eR0Foyil@@sqsA@bWyNMPM+X1q`g~MTDYR zG6WGX%cSsz{turb*M9B=FefcI=hi$w`A9Y~f zonszFYQxMwGp~*AiY}Wj#A)5-dH2*rgMJUKUKeE@p9>}{-(>)(AOJ`}x4*w_YntU> zYEx=B0Jln~;kI~)R2nrSc(001Eom7}q2Vs+lJAHvFn4)CbZLWL4i$mWABsx+w?r3$ zr88OB4^D2!Hn#SrX_>;|@b5(X>?*Dk?M^WsTfzJYzbbOGYUz$Jh^s*=Pp}!M))S)v z!k(HbT`t>|vp3{PscUa2$Jv)Yhaa}WpJajCC?eF+&(R_o9`kZq?=5IfaC$}4eK7cU z^>e(_nZapG7d$O&DuiT;$o;29vW!t@F9lI$Q+z8HdWhB==5#Qnu5LQRO^=4 zZtz&p6_3_2<9HnvRI{phr$eh$@7oRvYcf|4&P=s-sC}iR`zd9XqoOp&$lCbpK?0KA z(7`q3fhfi)&;k7_I9iQ9U*Y#CWNt3zLE7ITn|C#GKRQ&n(qS$rARaDqHH(*7vb(Jp zR@M`&jS%Cls>vke$}4uYmch`}_#Rg40oZ5>1sk`sTyW0A zBP5_>p?&Ae?KS}>c4$Fn<=|o|8Ve}-?A81~OHKE(q=CL`6`%OS`ZSN#x>IR1AanWS zT12a-LF4pAgrm=XbJQ88#fO6#9C@8y)IpOe^)K-__#G{a)W52XZB)!}T+YLG$l3$H zXh?cq=yG_YEa+E_t93_5?P zubgN=eKvnN)29b7{H`C__>b&rs(;aVBptl@&4!aPY{97!eGE7Gd^ZO1+U#fw7oydb zVNsh2S2&<|DB^|P@*$_ImLVNfB+?c%1P;F?65j*Kh%GxAc4a7ve}ti&t*HT1%@78v%2J=Xj7vX7G9I<+ z1uI&8R4bg1v$J@-t%IoW->jH0b66-H(Q5|ZHg>0Q26PkruZBnou~^u*>NW|r2+avT zpdV;3;huk$oP9`3RGub9X_?vo_@k+lhrWt;&4PKHNZbFJXJxFSD6^^Pd@umfz9+%8 zvFF+dZMJFg?&lsc4>uM?dmgBb5>$z_sX12>+YM;8eOJ}h)s z(~Puz!#E%6!!{nLJTPq`Sl24nn60!lA^~_Sa+~{GCI!rL{FcmNc zrYsLQ33%tYcKhIu$}m%TmgX}TCakIL-R}E?y@SKuw}*i&8yb*)4IF)k;2KFSAZYmE znX1qo?!I}q|9d%WeLmNDo@Ic49>da)RK!;tUUZ;E4c6?$?q*#9l6@kaW7h5 zaoMPjkZAPTFZbW@XHYnD?1W$eE*AAdfU_8O&^uU>drz z(0k=yNVg$~J4DgD)FK%YRGkGto1l%3r_8~-7oK_xW)kg0IlplZ1FJEhd0@m|jCn{o zY2}p$JuU3Kc(Hp>rG-PvggZ<} zid2QC!t`c-&V80u+NcHC7+G9fhAB&xe#(mlA!{ZCYYF~?cI>$j2p)l|!EhuxxlDM(Xm*{KP!w-{2L|aaXTuI#Ep>Idl zGmpM~|C-*D#wnu@Cj$qdBqtejDD&X?uq&p&mD2(Hx7pn=L3IGi(CmSS*NVXf^PPCg z);A#eE16rZ60lFMO~2wg6aDIBCGu0Gc<$jz0yQY25Jgf&?M)DDAx`w7OG2QVqu8b@ z4$?(Cq00Lur;B|8@Fs`0)+tT1@pc>&9t!RGm^Pl_Y(ePXX7;Yy8IQ9oIqK|bgvHWU z+fBmQ&OE7a4M+y2mPi~Ryv8CLB%!F@724{EnjF$iYLWo=88R0~exA_DIGsL3;98;=yIf%oo=nL9WSq-}wMV3GeW>wO8U|j@*nXG;)=2eWK=L|*Aw8|YWTCpeKSXH?dr7yd3gF%%y$nSpV&$4Pt73|qFq_XNX zwrUkns@Wok0;Cg8Nq1F-OkYfp`x+BvYfS_--yxH6rJX3xSa~$W zOod3MZwl9$jaYI)W`uS$c`k{*@T^xPKcHPx_-{Zp>9@6EaQkq-DEmv(yrls!9K523 zir#!fm*?x!xd$^z@zgffH$R7kkbgWz!*O~g2n76NeNwOjrr)sHP1gp$r_fKPS?HUG zU2jEZF}4_GHHW7T6DlVer)A&iYHeTPp+sU0*h*3`MIZLu1ANvmRQ2ajix z+8AU)%nL%l@)oItpdJ-{pt6jZyTxcNQ$EZ!O3_8(LT56~6lgbClbcLU8UwU9MQG4A^WCxJ&HVel6unC?3zRlN!n zeJbJKuGx_z4&Cug!{)WH;t%rH3m{JkC==0`wTT1eQO;ldbVFRYQ%7?C0Z@1e zbZ*=wlLs$nDMnQf0}*J6*E^|C2$kLiY1gr>ih4B74bh%zQCW-8m$U&{b)D!ypD5?7Pjqz zP%{u}^ew)QP$oz~7JM_T=WlU7iQ#gQ#CajgJ?3HY2%Vd*vpH}x%=}oAHj}l2amIdip9M4!-Iw}S$ZI0$b|$m(I>Jm!pDOj7Z-2qBNmtMuNiTNe>pb0TO^Zbx|bh_@W3h7w zs!ugh;(){f>6L+<8K|1_Y6y0!-VU!jAhco&#UuLF>PbAfc%4qtvMVF^Y_jg@rpx#U zRu2m{P_4!`t;RK7GSe$J*!9&LI;k{sPHFjzHwUiUuJsUy*`(4!pw^lAWk z;hXn6c0LklZzYK#xv#DoVE_2M#-F5S2U?KS>OJeF#h^fn`o<8LPoKJY1L1G8DS%gt zyX|LH@3{hquUl~3kE-f zTU*oU_(S#|$omd6Gl0JX+~XGSxrDmtrq}Yc3(<#KEHcTk%sY@o6z!yiZ%kwL$gj-8 z-Gpq7Bx`6~lDShM&NRT9@dpWruwfsxjmNixaRIqOSObv1C4UlD?q6m3heF#yp{J8A zi%WMku;Pzg*Ce2-=IO2?vc9>R^5R+oyR{~8+MLB__&`y+7eYUYO10V~(&A5z?4bKu zAVXL{lh6Vu9vZu&1&W%4|H8khEB!(jjPM=u>|bI|m0)`d+ANfz7U4N0G_|_fyKgDq zVRTf);s?ZU>TT&KNY_u$$OeAbWb#Cx0eR9vJ4L6*tC;ox#pkA|to`U9i^lOB^`LZi ziP8g3jUq|JXeXN{p;JLIS2BFiONKnPUdvEr$SoQ+Xn2DOJ+;Mzgd$&35F?`;-&Vxf zo;al4(`LG*NUDN%5)hm|1@CtftiT9lA2;XE` zLJ^Zh7Yh8mQ;6wH^*C~YWwidiK%9?UM51j6OXLNpphOku(R|74@IQ+ zx0Cm`T=K{!$A+~h=GBMUYnXGx=DQ_wL;Tuc7|juFWI=8F1=$+jSc@^$(WB`gM#4J- zwg5+1J|UkQ{SqM0;s^L<-V+a>O1G|C&?;LU##7XtT?2Cf+@kf~a6Xw_W6t?GzL(R> zKp=aayyJep{)aEO17B;GS_igc6}G>UwaeUQfylm4kc2L$m1SXm8Q20gS=?3?ZA`Ur z-=d-9w^QWZ(+Du1qrU$Vas6biR#m<1yjVsvzd&P9d3K1MKI^E`o^)XU*DLw^ zRYtBS&+ovR;9Kvwx0!k~6UlEZCVd6VZ9?*h88WpOd+R(IB{_$r3(wgsIgvNpgShT- ztf=728*CgP_(EjdTS3C>Z?6!I!+IMe#Fb2``ih!wNfANWji|?m_&?z7aj+49m zdH0Wh{9}tksj&UF@$0cVXs;Sj4m=!dq}I?KtsV$!xDo6s)6X{XrIZuREp^p(n|Dc7 zM0mA(wMRM46sh5DR}H5p}Pn0b$PbaYdTYi>J;a=|33vp=maOO>dxor0d`HrF%atdn5C3U**Glz42YX=9^lr{1U)9Iu2=y zVHLZS{|sMudW@3iYOrl6{v(wMBfx^E&!Z~2IJ6d-# z$}xu$hg9slIa7&aoyNIK=&i{*uh&KEST5T{?@*A4r!_Bs<1AC|e zn;tD36y5Iwh33lYG+O4JqRtZ0e_E{pzwRbcH7E?a32Sv`C|);bxKMAAc`_O!j~CBk zq(FAa=D-cc>kO~+9~sW zqos!zibL>u+?+^R1<#U0vdHA!POPuf(gp6;Z$4~hR-p#`X`_2wX#7jK4yI_ill*Uu zQ0G6mT^nxO_KU$l+w%A0ZS$!TT$?T9ZK>I59RS>0%Fct5{)Tx+Di^NK=+z2`d)l)hVULi=CEs)fqO*E ziVAgnFc&COw_le>=FiDA$Ns_oo$24mY#5onh&~~caqn6gr zq=GIcGGh~UzVq7&rGO1Od8ODX8&!mKk%4iG2BLlRcg6u+p(oBksfXnI*y%pg+&zzWk6=5 z=ePUX$k~lAj&&IQx?hvLvJ)4BH0|`FXX`7Lh)*)sw|mp_+2-rrZury2m+_4Reu>{lN?qpw4STakCMv-~!6-<+Q1CHe*#DqitRC&5zQ zMLr6Z0Uqt1OynR!32`^=!W+UAoCOD71{76fFokhZ4i3J3^X_nO|Ls<^_Y$?OI|ncJ z_M+|v^^e*(3|y11^d00rTgPC3yxW!9!v&tADey`&OQJm|fn@ShxsWhH)vtGTE9x@Z z8r2&;XOFdS^pa0jvXPRv6{B4+(p@okdrA{azVLb{S&O}{cB@;Bc9lg4pI58ttzu}S z7k#;?o-o;sg&hvKBJ9IT#jY$9vWuR#W*F_5c!_G}CbqTL^V``lRtw5ocV4i+5t6^H*|;4w_q7JXlh-sRbO9#7~IwJ-*auwaEKi)>C| zHJHpx0+XYASrw7A`5CQ9(T5n7dg$v>!vEPI2s3_7k}@U*5C>~2B9t2Ng0Z?v(N6gf z3IbQ*R~8f$wjlrnTv;k3;AI=JfR+W~?=8UC>657Fzh!w2^EtggP>eb0<|2mc2}U@} zb91cw`)N*#=sXc|NtaekZzdE6F5=<^N36p7meZ|v+9SS%VOy!OcscqSTXpp7DwgQ! z3}L61@&+Q-Z3e1lv$cc?Q>FbtI9=M3ZwlRmm-*74JIg2tlQgUXAAOT$<0PIQ>wUZx0&^S73h+60!%koiqLM z4>ym!Xu@>OlZ=Ep9Em{WdoLTIS1sOC?Y)Ky-*PFJ18pJslYkMgrh|M?vMbFKbV zKOLQ*Y3=Ca_3_%dtuP-{G;AmkzM+&*G%1+UlW611=*Noh6~5^W*xKo12ZZ|^WchAR z)cFjnfBY)&&T?t4S{qtKyYUv{FUc5XW0S9iY!?coiB8htumf}hBo$_n^-$Ldot~d3 z;&W}e*FE8*9~+vt)PhglezcE9bysOYwlVw#*<$0WPqST>UD-=Gx zoT z$msodHkL?sl`n-!oE&{fu2)&Rh3@?3ZipMiIH2+QDOG&$0k|T%lF*{p(JW6hijBg5i=K9(9}!7mcZC+tq}0n$m5)>aY-y5~ zl^93_RR(mEPUG=Qe!=}A^uY02%ozwA9p+Sp@3cu#1nl5Qs^QPT&99*+5*dJ#48R#gyvg9OX)sN)RMWMJ zv_|$4Z64sx1n$Q{+Ypb8sac$g=K0jd)oD0pE_KD|aCsqZd|7{XLlC6{DL7bULz5bE z8-WJY(JUuR-DsL5LwxgyPJySKYM(OYN2R(FlHvY|i(|qvPA7poZ=S1%HH%}a<7V+* zaCn#JC1!oFaBs`3e@l`XJCf4NUYw5s(o#9aOhaHP6095(eYi&MUrjNfS%T3=k+iCJ z)e30?%rx9~kO1Dq=-+DM_8|$x=Cok}rVuK@VDSX0W$rHi`%2* zdk_dFO=a$}s_D8uUbLiPg#W8P^b>&!1FZg5QJzf+KQmQ~CB!&A7~0qi>eYlN)Ft~9 zHHF>kUeq(FjSU>Yc2j`h#|Ob%hNYi=+;?RDGFyX@@-(?rC8UmvnWI_x0=z4Wi75OX zN8O8|atdb@zD=Q&gOOw+c~0_;k@}SUfTFEX4a%)SosH6u!0NP~q|Am{v^OpDY&ahz z{Q3y}V_FA^lBO!LKf*-ijM0}V4}B8t*x@D?$`%AA4)@lTXs^!l)^!>V`s-ZPRPb2) z$|eUYhEI9FxAXRJE83kF^IZJsbi_0^&i5@K(dza+d^RR0VJ1}vbAVk*{y3Xy)wQnK zH_}4`6RQOW*jX)l7c(}0;05fBt2g)6G7zq#KCrg>LI@Yc!3|vDCRT4ZVvETK*mkW?kuiK*cro}&`#cqMc!bM&K5VZDjqz2Ax$3O~@o zJW{aPAzTdh=s^UPr+U6TF{u06Xd%Qj@iq7A*6&$eS1t^urz64EaX@rKt13U8oI+w) zQGg4ILc$*2i~@sLtt2c_b0s9{DRi2~({d|%LD3)x(IELyc4Lg`o1)lKVh-TG(~_c( z0Z~p7?`1hg(FMeggwEo^9L58ZMkuL}%B!Fw&o~`&*1Y){XUQ5FGU}sT#rdtH&Kkub zj>$}htg6Yqn4slBoj%b_fjTYdWklQWWM!F6Rwo&(wVtVtj?j0Pvuo)2DUQFQ@0N-l zxtMO5RcA_LJ{JlC_szEl|Fp?4yzpr9G&Eth00FJ2pXepI5;E<{????E#acU7MSsgf zF46$UJJHF2OikM`Pgc+K`0Pw4{Kaiu0jeif^%PH{(kJr!IK>FPOrxH5%S=I&{ae>k z!qk%OYv{hc%FP)jz$-M8{2P-qat-6qjeFKOHLEQvqBgGZ$|?)N?Tgx%j)~kM+dlQR zkwOXBk3B(v)0>~1C6%$gDGP|IKQR!f3ATVfgMniD^pSL#o_) zD=Srvw$-KCT#LFilMZ!hVW*aAYN@44C3Xt0kMc6JygZ27wTkjcm0@5C2~ZXaF>Xv+ z#h?|fYI@4J8Fjd9US6>flpp(EW%0#Dk|iGaC|J%`lo|B$)8I3 zDhrECEnO6h_6*3ziVPx4`IZZbjRFjw-8Gxn`tGr?F8i~@+-$12CR=b{eapI6Jy8M2 zAlDtJHIC6_HH2ZOT;cbYm{qhetvzCA2JNs-P&+=Y9to6aLpeZ)T^7tHY|Phub32qH zNO#3Idk^~9wn_og%GH!T);JpYtQSs5wD?kqK8lq)r7rZw)!|JjhDjyJ32hEfUbdr~ zkU|&senYU4>N=@dBg=Y}dFZKo_iT$O3gO`+$`s-d_sC}KldAK>O{by~ZRRvq5WFh8 zSwi8US1l0bB19j{?*8q{mJ>}UnznRngy&f=%q&)xo}hjwaol9h1I$brdbpP5vJ+Un zF4|_cOrDE_!HnJl#}W^j19;*E*bX#@ra9ET(<%RmMZ3I)r@7<8ehaE{hLC3oJZVk{ zhy2pO7H}%y=v87IlkvfweJ1F(klMiDS+%FN5b^@$E{v`7L6+|7cxEVX>0W|Yky+0k zW~IlHi)GlaK8kOEI0D#PrYdw|P-|RdTmj#Hf`v!ZEy|8e2q9Th^`yKa0-?=qfWwy} zZ^*r&HD~QY)UA{kgP^jqdH$;TDo>4OY3nfT2q zc~XbSB({n7$^t3G1eZe5B2`w~){jc1aLAqoUF~DHvSM5n>w~ik*8+C^2bkFJ4b$%h_;s&ArWF?UvBK@C=OUAz1TCV=?;QvlwlcBvrv7sUY2~ z1xjg2&mYL8QKwm!D0-37Eu(HLJz{l=nt3Q~=@03PZ-TX*fe?{S=Y{Sv65S|iW6eNv zf{Shy$AOi#pzRdei}KD7IOdFTj&4&bM-S`R)O?rBmqPBrA z$i@`(&s(CF@lkO~Goz#?jr$MPS!+tCO4T}oz;AXAb}6?-^j{lW;%8&8V+ErYu51=^ zJ2bffY@(;OBwAr#CoAzAFw9T}3<1R<*ls|O5@b6^Ry$!L1p88>Mo(GrE0P)fs@A2~ zLS$4ga-Q7C#VeuYk|73+IJG^0g)y;pqy5ffn6U6)eqtGC*$0rztNiZJ?~+>B73rQZ zf$M1c?_>=vbaXtQw(Ks*?R;hz^4tmv)3=k-o20%!6BbL&^5cj-{EYz>z5O{sfcK`M zlMe*4L)Z2dkq&7hw8`*EOy&3^J>E66^aT!dTL()UH^+Dsj za$wWbJWJq~KWNaZvZ9d!xwsaubfh~<%k&d#E$L+gh`LB<2;&IYxP^5Nce*HWa0Ik* zbbK`NXr$nDUr@Y*LM40#E{fQm&j8W7N3v}Hh+*vE+xVK)nIAB3B)$_3L?v>S(B+(h z9uUse8)|^ zA30BER~N*SREs}GUsP8-{5r~A!5G!MTj2FkE;rmrsV;)|7>jHw(0bHGU^G3M;!ukFs(EHv6g?CtlW&bL#t6~vs={N^Yox)tNwP9u%8Ld=8x6XbJGUp^3 za?(lp|7Y*tAKFNcg<<&TlfPojndOPr%+MezP|} zk(eWB6eT0?Q>+~$EW6dJnwa+k|7o~h>mqBFWr^h1JMSwN=F_ zYv}k03RRGSl5q9^%2!5BjUGoDhc=+M6o>?|7X>u^nx`d-(uA7`=bMfW%&$#xCY9d} z9NVTVI5o6KswG!uA)=uF))pf02pesa=KPVd$%qp|C{N=am|faOUvFI8lHG|1ldV(} z1?=b`6V9Fh0(c6k7>(0|%%=3cb$;elK{15tZXMcPuz8cIUX#Jhft8*kQ&TUGii;OHp*uDn>aX-*TvPN>+f7d%T6CX004mwLOXJdl8o>vPSk< zV0wMcGd6o2k3EY^Jl;$%HB86sbV#OLRXDfc&g}R%J98two0}@@w6o-Wlu_W^JdRfO z{6UoJx;G=dc&xiO#|7b;bcbRGXP-y08HBwW+u?9b;|&K;JDyC2cbvb()2sO?%toBb zK2G9sWH5iCE?6_J7`-Fm*A~!LBu0Brcbfc z=nOIYw&w%h)t~S<;E@@*ThPjXJe42VQ(2`>tm>^CQV2=z1`jAC%?S3V*NlRqEzw85 zw7`Hqrff5BWq8ea+&4hc(OG6l@;Dxfg!dWTINv4|VxA`w8qAsCVZaj-ai6la1560A z2dZco1nFkYX&T;pTpT4kRtz9HVQl3#ok1FkEHi8geP)E+n8_x0M1oSnK$KvfDc(L$ zJxMMGQ(+7KSgGae8Ys6K-eOVzVbdcpL z6Y*#Ql@a&3u#%{#Ner)EX+aFi>hj?^I63Y-Dle(Dnyx5jKY=Wi;wj5UsUgSb&fwGq zb7vvU{l#m{qd{c#=TUzao>Qw6l}BAXC8Li;?lFUbPhOCAUPgF~a3sa?FT}$Lp}|Gb zhHV6(Oa!zz8Fc5U-9egCh6$R<xg1d(m;C8g<&q5vtF=A>4Kz-pjH%2B~ z>jVf%%7OdBVMcm|0WGD}NiLR5WZzb0xYku&Xh^R&ZeCY^@rTR|rF#WMl_mvik zp)1k;4iKhxBDZW%ltBNeP@oS1_Qo+QyY}?PBC_KU=`o1>deOxqMffbIDoIZjHPJG^ zeQL&bS*}i51uOE0FtWlIJ+xxkAK=Iy^?LD*Y+gv!?maE2j&y8OXe=tkLR#)Liik+Q zC`sBBKG5VjYXfwLvt$x&?%*ct_+HyLk`K6y1S(rDDjt(E#K`oQvXF6X_!q!QFJ8g@ z%6>dryGfydS0J}l5pwI2yv48r1YZF`&ueF2zu&r{*j8?|D_k?a%XnY3D=b<6HV>j( zIpMB+4Hqxdn!&L2Kv+$4rA?<~Wtw}}8v7h#i14X`x>$I^=S7jXI7n~ktp#<`(u&K8 z#HG)i2j~I>g`v2d*jzF$*F6M~uMwMTK}sfS@&xCqPtCt$fh-&sg9EmA3gxM>r2RrN zVm&;W?hsP_%(G-ZdSM%c(hDneS$)p-e@$?+fbgS5M8QLz9mHdy7zh@f;aw6BN>)JH zip9k3Zo{Rx(ifxB>~#%DRA$l zuocK}YsiZ@a8Z+joAI#7s}=6eD#ePcG9tzC;}+L&FHO6>$XyjY6;;}m)Y%naRaHg9 z!)W0++fPXYg5zYFZHiacm8zWe-yo_aHPpL|PQelv zY%%#|5f3M_aE!?cXRC#ROfGQlX2M>7n8+>3dmEX^vu@}%F}#+&PH_P}QMEXc@<8ks zUu?DbRI9~tBLD9R6e$PGh`YEjSE(E;GJJR}4+~k#9I2)@rCOX*zfz}kuVMp4%jrTg zw+msTP2p?kb414HbDv|0{sh*hXFV?IQoK;iR(}T4#0&j_&ESDHj}cu^+6)BIa5V#F z@V0~VDWC!0dqeH#v4!BX85qIeEN*A%j&i?Xp5^;WrD&ctw~=M&v(iE}Ry7T+p^yTJ zd2!+9e|u2Ta!O3KFpP@mRsMzQBv&yoseAP%0+Loe##SJfnwPJYFJ0?ew~1ZZ34t2C zH7&4q`^_V!R-%F0AyXZKs2n!czDlI{Gc_VHENBf-Ll!B>M96zU1X2)CwWhIKY05!( zAQc!G!7*{=n$Zm|l{8l?1%qTMD#=mXn2nMdx)f%h%_syuV;izzC@UxmdDRe3YEu!k zZ_LPYN;Y|LLC+Xn31~A|CPNz#olj8QmmxYHWH0bUU*j&qW$SVFCI({2e9W|(* zjpAL3cnTF=7BA60S^fS`2}+DTI=UCU=ag(moJ;kImsDqo{4aXBjSZnq}9%x#`RJdA@Fu@a&2G?KuT|jL-CEVT&Ej zE=$YvZd|f)4qwz2@yPHLj_JU1Bb8ShO227TW#hi3j;cW@ym7yYRzePfk>gE&zS zAh6S4p$rUK))g~MKk`y78AFt(5H^Wz)oWlT##V@RzY|@?y-yVCK92qp-^AVCG@Z<% zjC@P~pi(Lvjo%`KE)PU63ElXh_5venJw{cA{~3ifS=^4MIkqFni;9{g5Aq7dEe}D( zfZ%2t40wTXZTt!W*|NJ1)A`nfDsmh+{&1r2;$(nt-q}z3K>$!$Eg2vtNm*txQIpN3 z-Hhthd-nB12~fuIbfEAPfC}}V3}q%;q0q82!Wk1Kv;&S6lNYcvIF=D_o|C#wD~L5j zIRZyDvu6}Os;E0`%hJ08KaDZ!i;#i7F)COy`hAtQUM$kb#e(``iiteV*eNWT=4^+6 z`Xl5((}--kyC4P$b`e0=$|bydplW?0Sox5dLDvP^(hhL1EPR zq<`>Q&%YwCJuzC_cotnwv)i1^Lmo%}eVz9E$yi%%3dpPIYM5QdLpJ~F<*&ce2*^*P z?4L*BueZtNr*u|OV3f;`8lTzE#*B~R?fJpU+s@}+GNFJ?Q~m~TcTq)v1S7yFH_$_j zJs2Y(Ae(+X?Wg}_Z00rf{IDDCogOLc5PKA~TV2Eg8~fuH$eP@M*kJkMCEi71)_@JR zs^!Zl(aaDf0p%Ekj>*Bextrt&LH1XUv)N%bANR5Gl^s(s(zZ>X5eq766tcTE?EiP3 z&EgK4DkTdx&^_JvHqcK7@q9S5z+o~6h(Df#Hz+dyJYmb4P17izpx^;%8}PD?=8NCo z!@aA0rC5R+SnybgF<$&d(H7f-`*YChl4V9V79kD6`GJbTa2=@lujyVM1WjDhJ2M1x|j1yuu&o_^&kajV;q?usBi3W)50MQ5ONQ1{B$a&H<2;C zyVXe_*s9GlLuWunBd1eZzp9tG!h68^hayV7$EJlnAn9P`10q1f!ojxpGKPSnF)~D> z@8zo<&DvdO{u&jzj8k%@R`pKNKm<;{mD2Kks@@3?k1J$$LJa<-)PC4O#}) zXsc%`=)uAp#6{f*sx8*eE0@shf;^Ll=_z^Ri+>3QCXAI6xzPOwoyi(4V*NyBf));sOjXc8fo!KShZ$SmpC?Q>%E^4?GP#a#QpaGB>=tuIQ^3ms6kjR4OV^wO4-?DRzD%ivE zS6+*G)`Go>uIgNQx7vdG$y`vH@b9O7pXBd@V$E4&f+f$f0_9e4Fmq14C3+F*xdZFuy%7G?}o zUCbB;KmYvmPITPq97N|Q(OKvG-Pv(;xc8>piGKQ_a~$m*97I3tG0{5uYv*s#{>ky- zo1^{nc659abgFK|SKmP3k*v+m8jXF^epksNUBtyS7+L z(aCvdCpzl9#3B~!*eXXzk?JY{gI=tm7w>NL1VP=xM~Scz2i4s7sPAWCsQ zUC(Bdo%MAlp!Yrj?G1+6Ehx>`gvCBf{(-62IGz|jyJ^;LMVn&$ zcn!8F=aZ{x%oq{s7D|>TwAH^X6{{Kb|1iI9lZ%7l?s$zk8+X}Jyg_~f;`F@Pj()nn z!^l%?d$c?);XuGPeXtawjq`i;4Nagg+jPUz6+MMWvEx~sj&mN$Sq*}F@5rhXn>$fJ z+-iPWWpzn#t5WxiGx*gwB8OLDURl*Gi`F2a!9qjGzce?5>M_&R}ZoB-e($=Fs ziB_UD_P-|%flKK=e$PW=a2D@z7b%uMc{v$el^?BCP-V$aYtaBUS8wt) zmM_uLNy&4CNVgcl_HQLbOI400VcMCbxCV1W?0fpmbGyFWYVCX;Ex z7DndP&-w+Vs^@MD5gs;uald%hPKPCX6(=JjNN-@7q`NTXZO|_ zf^g)+bUfSXr#bkWuZ@$>vo-c6*%@bR^D!LO*Ni;8#zM0g2(+Q^HE2j;nZWb*l5u%+ z&dE^gXqxZc#OV-ymkMfqtSlFfMpJ0i_jr$eL#jssBHI_vTI8 zhIN=ulR?Hd89ep^9MXdEdt#^jJ}U#G!iuk8ma^My`YB(bi!~Idav4Yg&js>+fqlD4 zxD&=zVgi0Qo+V(vvJ;&^4s^DpJG!%gd*~I`I*fp`fp*glS5W%x23sn4BL(lRBiPEt zg*?_>K=T(DD|JuL9$O==YWM(bnK=Yjv$S&v2>~Ra22Eip|aDZE&@b8ux~||Ot4O3HU%S~ID`V8JD_p}?G0wTTrngUCA)MPxr);)`X3!0 zBCW!mvi|z0BQMnFlL_c#(6tDNX9|JoSs8@4`F!mXGA_?Ym!KX@#&8FUx~^*i=?kWG6@^zQs{ZSy(a+fUP;5j$^RNn)0|joY0}jC4TBa|Jg_OQd_3dC@+xqv`WL z>k9~~&5h3oFE=*iNhN@bzl|%Wja3xj3fkGl>u6_<1HbDO@WhfKVj#^C0u_<3%J)%& z3SQ9aYeYNNn~OAoa}ruba#Qg%7hs!aE2}#Ghr&VvOfkl6XHj-LXnZ(gt0$g`6~OOy zP`n>Ptylsw&;e+pShx*2om>DiK+V4aw*P#4W!Jdn-^1(xY%s^!JTEX0HYQUe$T!-1 zM+xYDgl&`ffb*@kf<%X4+XWN1DQcs@IJju7D9uD!1NS(no9P=QLrs}X(Kd#ls#$Rn zo@J)R9-R=+K2^NZtqTwtYEf9Dgf?y6>4L6At(D~2&BvQbd!!8Ax3d395$l4lj*XFu>*u!ItqXC`0jmM}IQ;=a>WtAU!CnX?B zmG3FCtI9^uW{kRK%`o;Zo7!Tn3OC_f(I*G2M?iFFuUHzDq8Ti+E4L=hKOW>(Y%h$( zdk02ouKKEUyEjOIkye2O4k1`i}Pp9T!A zLmS5u4B!3W(AA^9&AZbrvU{&#@*dcm>X^L;Kzt3;_p+uf-GslmPdy<_;6t+?vVspF zbWcn85Y5=PK!Mh4YYEK5v6oNS2W1VD3bM~`scn9N%mgB${&{6LSUhN_568{7*_=tQ ztoPcy;;|`ekGCs*+2yHD&PH2Ux#o>XY>nvIyjc4nZ!}yx?I5DOv z1RL`n^dCcWKE^|YEVw?%vi9t=%tEB;{qR~jPZA9bR^>GmhC(es^JI*g)EY4kFi5XJ zM6%l1K@cB5e*7iAiAfcKZ{!iDEvq*Fg2W6 zh1DBBkA^?6_K)KMBc{jE zTR0}>$^$0pmyfx&c+G+0JXB6ajiGXT-HJY6PX|18FhKJn;F)L}3vGH4q8Mniv60@C z-WXhxr13EQXVQc+yK>mM2)x%v)esCP=xo;50-d$nZ4V?3MSboCzB)F;+(ah={MtB= zO-@I=(5@`=MgA@R@)1inh3L9IzKXtzcaR44GlYoc%Q}}#7IFh5;GHN8t+_=wHV7z*$;L+0P9Gj zfiY|WdUZPx5PpLg2W+t4>#_B|mS zuqOskAAvb3&9iKFn9B=W*U!;=z39w4liz(jN*CUpIvldEUV+5!Hq9h;mkwPCy|5ii zJol6>l+AsMO$g={Zx6#PzVhuMhB*>*>0P@T(doIc0orPtkxz%oaT<$20y+gcceEms zPpdL?-}qj=FtUjm*X1g-U2dNoeB-e2u|ZRcc;*kA${neXGjkDES+4aeGp6M+#fp0F zQhZ^Im)QOI14~PNe!ua7jy9f1wyG2yLDoTKphKC6xz~eNOLvtgRE!zTV5wxLC zY{6LTWmOO$+$e4oB>@p&Mjjx$ZY_7FMP$Zsy^8i+m#izF!c_}$#hht=qmKQbN)$%| z;Vi4i=`XGl5}{O*QF?^!Z07j1&KxAT6-v})E-m(asmM@=NyiuHi< zM8o3S1nE%tLUb7ol_s+VG}ed_TIkM~q@ zV`+ZIxbg|aw=m>c`PSP{BMwxhc7)>MO*;N$a47SGYnj&=p{kemL*OYGjA`w#%TAk6 z<1U%Gl(IN}5CY4KAAMNzXuvLZ?Q4xbEOL}MOh2=O;Cy1`lmxbj##3OPg0|_lmI!V# z@C!TNvp;TRK2qV;2dYb0cP*R{{&EseXK8OfWc>TE+sLtiiWmKMKErbVj&h|IBN$Dz+`2<#Q-|Lp7cAi)}k-ZZ@McfWwNpOCNk&_WC?{Z7LXvyHd z2Mu3|Q8GMlKtNX4I;Ng5#vH)&oNNet^L&<#B*bBMmG;{5Cu9SXI)5Nw;;%}PSun$9qcZ>8#t)Sr$ z*tEw$P16jbcxRBIW!%S;07T~j%7kVPyKNKVAm5zc2$R-|zRtaPVLmv#@&w0#>hix!JQc!@6Yxl{2XlQkL+`;xTth^RiHVY@`yPT9 zkJo=AoNY(W=hjYiAkAU}8ccM7j{7+AP^1-+U5-fR)Dj0ZQNZ1^E(ZDAtoI2|NkF`c zB(;$TW){qu%f9*}KgeuDP@?$6Bd|d95e>N@oV+oC=88}$MaP4ZjuvDs9DhdJ(T54zU(BxDZ9O6+0{7()& zJJ~EAv*}zd0=6vsD))EMAXZj-R^mJ!u7i1dYA5U|=SdD3H;r+$WGu8~@J^n)=%r@b zKbhg=@REUr)#T3f8mM@Y)Snv5M2-^xjVQlcUVX(-@rr9kJPRh^6(~B?SOC{|9w=g< z@PJUy*9V?)<(_10W^yA73~HG;4383tgXbZnN^|Ac7}jv=0(fL-g%F;>k%+ksVUAwC zl%T5O*es{d_NJ(3s>|#EQ4yQ9nq~pIzG*a$#-kzTS%>=1+ z-?wT4%tzyeqY4{(Jz0J^dsn^PWMuCpqX*ncYE7e^Hc8B3jY+g-t6<*>hOL-Rqwj+% z7~e9Bc1S#_pe`xA<($ruu~_K|#khgB+oD!2_TU@0p7uA-a#fdCdGYNgm0805=457q zbZ<8CCQn@hzKSOLwd1UvL4w7WSsZO_t6=cATFGmR)EVAjkg~;tfg`D#n3i0TvHIcWSJ0--Q5;6my#aA-#JXj;E%lyY^#`#z_O12#ssa@Rl4@u2`w;`{${!Vuxh7_-2l@E>J=xA}qW zH^dnF?Kl9R-lag-hTxgmKubkab)P9&($wffrX&Adv;n)J7-?bK%tlnmS%oL9kPyV- zRa-0Y1kSF#OTMN>=z4caW9{N)UYAp7YqKy3#30`v^~vu4J(t?nqfG#(c1?Q!zJVU~ zd7}j$ji6?3@FkeT|;cq6CfLmz26Jv!H+Z2O_~uCv>*UhbK{oYcbubPV50jehvUe*ua5WIi#b(s)*v|8TL6 z`lwLh<&@Z`pdtHVa@~+@?V!dkzWo+oDbVcIlUI>z$2S;r$!drubAQ}47gV7r{hlgg z>NdIg(>orhi%9{|6Vnc~3Pe_?0Rlq92U>m<**A?Qh>(j&`ErnVliAT|l=LCA#x8|& z;moy}Yo92h!ix0EU6G?_!GK^gCP;>ZzRy9sSKVHQ-XOvScvpR!Q2^3h_qf5c1{rh+ z;rE}(G+X0k*Z8*;t#~gUzsr-;ET6rV79;^?t@W7@Yo{YHAfi-|xf8nU*I%PYyx>H^ zuNi_%;Hg14$}!wl^vXVOV8G^K|75JX!rRZryz5$N`&02Q8={2Raawxn2G_FoDQA&O(6t@N-V#!MRbvl@NdjgMGrj`2Y5#DTT2GvxcMzgR9&Kh*(~l|V;jweT!%LFa4aFI&*t!W zg?(0ioS1iRXiR?jQ#SpSOe3?LxgvV>lKZrI0h?L9=v^DQ@n(Rdh1XJ5su4;ai(cGZ z68_0wGSkufyk)W3fVk?Tgqm3KG0*~l55|E2;3QUHEIzG)KR#tmxblROK8~~T+BE6S zr+JEIkhA1-Kq`3)-*klWg_T+PVwhow9&@vzPq%Rjfd_>I0f-|AP4fx0^(OGQ9td73 zsHq_*yuNIPCeliWhQn#jkcGC!0eRjMAD-;kU}4JNG!0B26`(4-spyQ>;Pv7343YQN zI6^ofdYEna2WA6e$jXDe=(5RDW%@M^dkxG!M0~A(%#%4JF(g1dQ>m`PZX4dXcNshT2p94RJaIT5L#cGQnjbW2Q+ENf!1TO6QX3@S#}`1B^$ zA~s^edp11A%$ci;zSko$8S&9WShMNf8;i2Ut7f%DP?FBtOX+SdYa6dLeRr?b+tC-yST&FoXB?d{ni|G; zU{+=LghSvGgaIT#F?^I)zZPEt6EJa;X*A)-d$tiHK-)(A52RM-AuZ@Dpn92c7xXzh zTu&);D72|zpGRwJ=&OJ*L^^I-Q)Ip+!v)2&Y?SsGQ6>|%8dUFiApMkLkI)RT*D!Dx zbRL!iB<#$<>LjOxL33I-y=)2{AHzWN=(N)AUF#2HB@la=Tgzy1(WoUejwZfqYSx!D z_k&z_`lWZHx$v5&jbm4axI-XyeUmt?HAMYy8zS=vYh8e7f)7IDyGCJKhuwGMp+ny0 zhX9RZ7Xy%0v=?L5sJHsY2IeeBKfmqlFi9g}s~s}(CMfB#A(x?1WMw2;bHMfJGPLal z@G5n}GOm^tVmtv5#*czg`QB<@g5VGeMy9%FmNnX1)gl6_?UH3TW0b4XQf23=P)k^@ zN=ua;t3oYdxuTXH#Fa$w0F?2X0o4arVP7bh4Y$Q&vj72sHAIqtb6#+b^OgNf>7XoR zK(F>|hLzYgEggv?5T-oo3hrGXN7+)KJ-wP8yMsvqRn20NeNmOXF6;Jm?Hk8`cEky9FnY>eih&s%Fod_V%k!n`*mwm*WO77P-+ooVmDn{g5nF zG^Vv>Ekzy*t?#%t*ISVWm<1LlV(D3#>b>m3*I%I$357$rGs4ix)K&9$0AQGmA8^J+ zQ?jMsXxkKc*mG*U=SY6#8P!n`7!>asVDV&c8ThU_Ad~5YXGamIl?UBZF-Ak6;VOY6 zs;_F>8NKp0EBxAhgGMv&#s4?he5D7zAE9tJrQM+3NA*&`qYxVQG(E87tU`HIz~VPz z5Jvn1?-&|{67IoQCK@wtLpgTg5m3gadiS-rzbOqVJbuSSq>!|!$olfTBO?>Pd(jcv zM(cg27hEZdKOUS~uoYj6zY$>|4mM4wmoBDXdHN+P9!!dQmEDfb9>EI9T2bR6BcdTV3)wKd@q69w2I9^u0?>RLlhW?3vyU` z;es?&RwIAF!x_0GoOP1|u@*_KVIaFfNVYMURh;&pT(wkdWu# zBsxAhkKT1V(ZSJKXaD@o-yUHhEVvJ`Qm~A{}kmb+h!z6n(*>Y22gee1ZWA+iHbC-PDN=gr;D$7!JP=e;ET^ zF_j`wUz#6Di)!1WNh>AG?DLQ|hL5x=sPBrAm7Gv7!M0M^M)e#f6m%9s3xKEKZ9);~ z^4@jQpM!r*EJARz%{H1(7}wT=qgue<;rG*I44OAjx6H;opfM{=lE_r05k|?A$f)uL zOkQ`u#w)*0oD_*Re#g{62tCMx49-lsj9f$wpz8yK;FU;F{#1WcBFBOiWtU0`Qexl5 zpH3M;WYH^0Z@V5oCt(@p>mH_8CB>GId5j!OBSv=QRJ zU(X?=I=rE9IpTQHxNT^qx*%saSKIQ|qDb&6oeo>xP%jZpSLO%|wbdziYjnq<>z$m1 z$D&Tx>t?c2Fg*FIjMTH_y_$h9;SA)UxDOt)qhuCi#D|=X7JkPq=hnlQ?YNIc-Kga* zR=$)d+6qY|d(&xrC%uI|63ebxkI4q6Gk;J?V#`R6?C=q?V7ZtCkAbmFma9pHJw3rE zr9H8tFk4BV84I{g8W<;^5^X6=`Yppv7(6*YQOsX~hHo!7y6g;$!pyS)yFK(csf%1i z5MB{W1MO*Kp#IETi0l;7WrGVix^a{5buR?0@W>1mmd5YuJ_-6OB&TN~@SEreg4WvEKBv z1PoQR{cV~|;%S~7s2On-1c33vyHq8|Pt%3H65JZTk*3m9h)T9|BnYJzz1r@RwGgY| zhfJQSd4IEX}Q5YNts$qy5DrthZ!d50ovh%x4Q$MA1-Prx@2OQX+3 zCeJPnac~ki>Eubi6a9)lHNSd`fzk=DZL*srdJLM*JCq962dwdA`dGxNVH=f{{k?#s zUI;|DS&llLp-4i?O+Uqbko72KaW=VQXR`flJcD4eB`Hxbz8bf%#Cx~m@M_2loHL>Q z_(@iO0-<7gXheRuWu&54v<iiA3=pgqkl+v%8yvqXc?!f+C0`0WrD+7k6BvGY{Nxjw#tH%`Jd|Ca z50mn2Gq7|A(`*D+=6d4J(Co)!90=ZvIXCDHu+8oTkXnS2keV4ddrBqS1R_tAaKLj80Hom%4qb+^>SZx&13ot1Ur#C*CX0c!*3^C zrIb|N_%b$IB?8H}m#DF^69HDx)&!L`KZ&ID*!mozXbP19JBRc*f6|lH!zU}}vY>Bq zS0>|bnHm|-kW^to3`@xPHR9nLccKG~J_`bI0_Q3W+{xg9aLhGH)`6s|t_dDT^Ja~i z=yUKqC$GG;AP|yA26a2$;WL#+zIDd2$ctnZKq#+y4&xSrD)@-#L6xBO@C1`p7Gz@g zjC9~tQG|X^%lbA|`^pF|7Qr65hX<~KeqlY$XYJ@MXuUu;LJ||2SYf6(vJ&tdmmT9jk!$_CtoH^qO2lE9(+>rWO_rTX4zzv z<+DPNlXyB4$rb1zb$gxmuDM=11wSa*^A2UtF!5Lm$o1;CVeo%}C%;XR+@brJ&$NRw!5+dbI1S?U6O}rLaXmkK zcf7xM-nlqDdehmds!l32PA?6)Yd?#rY)e#Q@YKDU@&)ZKz5omAaqV$FJ~^#Cy3W00 zm57}7Q}beQ31fldQT(~+pszoSXJLYM#+)WuI>ro3pT>+YqmvaXSIFBAK3rwU#o)%h z5@fO#=Eq0IWXdZEbq=Xr%B2RQo@ANft0(>OUW=e+dQzrT7bQET%60nzV$o_Zc*Uqg zSnh43(s||R8Nh_|HP=|X=+SHA*c9isUJy^TKcf3a!$F-Ul^wAQJj=@-?jX$|Ea#ea z0jAbZ2Jw72D`#ZJ0jKlxQMcj&r=pDoFnZFqf>L2~8i4tx$@WIwsnH#Y zUD2dh-^VL#Wi|G$W#mv3W3iOGS7-)tc!T+!^-u}nkZbjFL3*P+%Jx{TAYZTDA8ze6Om|zn_WygGv@9 zgR!&?ym~%Jc*?i$uee29sUr)9r^ZGLS_@3_&g#fpXSm2g^U8n^qGQN9sbs<$G+*`d z;o26eB@%-N=5HlLEHAw$Jj*rXs=1TZ+{i+=5FYbjCP-c;LpJKSAZ5}7(bGrJWV?wLHF3YBWfacMzm7Fc)7rz zw7wV~K5${!hQbq#xzH0>t3C6`_NjsCj_~f_|p% zm`sbC7CNXzlUEEc52214;(_?E8|BH20}VpN5WZ~HV|W0F#{d8Z*^t2iM<^KlfPzXN zv=YqWnHCOQVDLDSXM826WAxKv%NZp%EhsWy?v%_xiy_y@>1fY*OESH}h}1wMfi6*8 zoMikqp4h>m?P3h-ESX}sMIs3Zf7@d#o%-3P@0#bufZwzVDt+X&+HOvwC(+9K3i~fr z_<)fW!{EXLj^l<-E&Vy0TF5~f^3)KWnkM;t2o|J|_$a)`Wtdc$5taAN>b+7Oj)RTa4m;{6jIF2WQrf1E0LQv}B8_>^g(UrrBCi@uygAjysxuG^=Z=4bEUEr)_VgMbPp(XH5zg^Fq8~ ziJdIqe`0SH9d-M_a6ENd3vd-EYjYLzqo0$6xJRv3y`1d!d@Q+9%mk7)$SC*_-4z4C z@<^|(D9`xngEF6c$%MxhW-BJ{8vxmY27p?CTswMe`K?M73tnM5UvRh$7SRdfvI+B4 zQ7|l2KGM50U&;vafM{ow5p(>jsQzp=yj0KHWR8lPKR80qVJPkw|w@#9#xlS;9Y2Z z9wI-lpr?OBst%gw#FPm_#gLif3OABuP(esA8;X zWM!U%nI*ugcxFys2@AGLG~vzgNkJ>Nw>Au>5xg`uk}j0xSks3(92CU?EAo~3Kou#N z1NhMtRd2o|Gn=QbF9v=A(qB9pg-Xef+<5#(8YIu>=7P(nQvSYnJ{hL7X5;VUhA$Eh z&$a5)k5FnmRBt6?Q2bmbSCEGBc0FqJ8KtJ+6dy|;82@Fe#ippWc0NpdNpo}c1COY! z-Z2Vi$bfeaYh!Vd*W3n7`N{g`<^$!Sn2M9@6eq|7SD{w4qS8r1o~(s}kuvV%G9CKKc4Df^^GQLge;<<>2;E>ax!>tTQzopsJyZDeoFJ?2}6Z{STJM z1QGSSWf1~A!3am%Ear~6rr)T}O9Huj-XeZ2hNi$SJRCLJ6BLL{V$_Id6Q>ppn;FlG zRjU^*1|CQ@Vtp$q|?)0Ayjc;1|9hg<%$V*wbm%BgSRQ70K^fN56XtM#tsiQc?UPN_d6!$~rgv$`WctVNx1KA*A) zokZw*r)ZK3kC^W=ffIf^ItSTByM`?YgbSb{2Pz{~xTs~VGialTlw^VYP*q6Q(Xv?~ z9;}ZzV2;>R(X76R@`5(+n9YfXQhF_lr5WvKlRFp=d*SoJ_5$o($Kxv@<&XU4Vx*#E zz|S+KeJt6%2B8dX4{xRJS6mm)WT7BeqSW}m$c3tcT|h@fiO?q32_NDQiyY{B2+2xELzfc6^Ku{lQEXs7d3f{k zN)(|14tsQHq)~GH1`lKh<-yx~xFFr2GhXZKYT@jPbHqHLr;EBgnG~ggDI2RGGo!ya zf(`|<0$-Z1<38EHGhivnl>q&z0XrWktuCXHoUb1fdfeq2GAIw*L-cql9-h5f5YlY8Ib7#w!> z3jz66){(BkEy?yFl?kLtWx~MQ{K}E!jIXH7y2;Xhv=OaZUxa2#Ro75zgB>A{Bm}Bj zXU;r`8QZ;Ri}mJhlILu1Y3j|lR2SRFFb4)`unnrSm1dKkduJyiwAlYi)CA_ZtcNp$kKf8CQgU8 z1f;+AraE_bajiH$&`XDgjb*Qgmay1Wgk7vcRZu<<;jI z+kt+`z`h*E-5CFdGXein9L>kj*GXS(<%aSsRK&YT{1}2r(iQ7RA-NiA-dRolSVOl{^gz(!4B?w4AQqB? zO!-H^#9j0c|7C8E3^8>jy0WW(J|V6SmI(x1(UQ)q8G>xrq!7|8Eq$NPd((76dC6A5 zl~*S`e!@f@D}>M&d3a`7dxiI^CHf>teF?2z$MV9LiFlK2G9Q8~8A_{$m?e;41Bjz0 zB*y=~PW%02tVv;ANCFTK_oi16DUcP`_7wA*oN#otAa4qKVU~Mu{ao39y#h8C8}J|a zu`9vQ>6`aiB&jZec6fl$HW3>8p`h)Z9+9@O5*$|gqH}h3a)#ix5S)6apmwzw1BfHoJ^Jm+Rs=sW+`dz^z7ty2bvW zj^e90#mV%oKN|*b)r_JQETp(FX3p6|Vt zw~18HT``!-d(_n-VzA*<`t=1Ah-`$Qi6$Y_W;CDmw9E{vt!SgA)@WYdG2sQ8 z!6?jwpaQST#s5M#{$(-CP_tD$Cy02URgM>F3=5ip$II&u4_d{wi2s!of?n*9_OiGj z%+?P6x1=CkgzvDmTwDt1Xb1n>=IYY!43v+})o{IVd^eBUc0to2?dp~CDhq`RrNtU0 zF&G##@g5YVm{gQbzVT#|uzfxAn9e{hnduz-&6D+MG8x9bgf5dPa0g#%(HZRmGI4Co zNa>EK%X3v*MmqIKrjS&KM9}sWP~r?`V>M8`lu(KZqz++J$SsOR>TOqSDu;K6eJ1ap zCI6TwxslP*{n(t+A2qIoP~+F9?U2`QGx;%pzwyD?x_D#zaCM*LO|0UEMD0J!o&$#_ zXkSYntpK&?qg2U`t3Fv-vuXHTSf83x6pRl0jwm!xqLAHFQ3pEP61&sP-IdOTh#)KA z0EI*Ynm~dL zc_b2|V#b^fX}B1N$mcU`&P21hXE`(rKdNh`9Bbyn`yACS3z=wDjCjB-Mhh zS|Y-v@9&`!>)~kzMy5MaiRYBbfM9Y2S165|iFq;jvi0mF9%;77dQ^;i*jyyEj;tkQ zKV|ZkO71lhk;XKNZ95M0zK8Xd9R2N@XSYIm{R*q=wk?iSES+hk7290Vf>XD?bR})fEdwhVhaM78MJJp`6 zgSe)Fs*FA%zJiKedmH z-}gSjC;X$%KqdvFh&nsC;bp?c)iAq^hkx9BPlyRI5zTv9FW5?NV$oF!Z7JZJ@~8l& zyQO_mZ9()!y4}ZuP1#dH+7LbydkF5z^p~j`WCbeq8uv$I+RTl-;?&`-ggFhfyqxqM z6;z!G!^*~lc~P$=mU0b~z`i2w54g-}j3bJjHHT5$ifAJ_p!00e0k_(42_%gX<3h3r z)gqZ1UUR&v4N$4d%W9m;Z|T|tp&2W0tZ06Hjm4^!t=f$drpCnk+9;cNy0_A=ZcEn= zHdBWH2$(Vb@QR^eV_P~?G!3&$-W(qGAk-PLPdbPK@1zT`27E*D z<~q(#ZpWunFw&phH5-@U6_QK`Ik$altcs%V-ESZ2Ae&FJai08suss9QnVh6oU5W&w znKCDZlUHK-wV^T?m@11c&F`^eL2GR(+u)@vfE>NPJ0OzgcNXR`~s z2Dm__T_ld$N1%S-Qns<(nXTw1FJYh(kR~Pyqj1q&^h#@6ZKG;Owpxx>wGJ6}iDo$t zN-JAnn`kw`=G5x0YoX`^Y?&ykB1Lr=b3W5YL$?6ZK6uS*?7`es%mn_`t>M&S!Qblz z7*)Bt^I>D18meidK?`kn!zxnFND%-VFDZmr5J){;1p zLmjH#q7c47bTmW^9UW$2x0gZQR;W`$#Kx+qsvnhxA_5ja;}|Sg`wWloaBewjX$H8) zo@X$lFZ!lo*tqaw-DsGwjp{C&M{%#0K>Xb3HEnRZ-89*s<AKNB?N8>#xF|pHm@MZp{kl460@H=uYWo@`)hTayUEN}j0uF}oW5k)%<=g! z@Mn}UNU!G8r1`ICkncn*q8BSIVT`{M{fmo6I}|zN%NMm~#gcuDOMu5lzk9^reDQSi zIGb_u)r>uqi!ph&VDRWHZ*Ecnaw>BOGeu7#k&8$i%5A#F?rTq$RwA=FRdhi~ux>458CwT20 zC^kqxCvbZ!Tw_pw(1Z#i?24x%Tkr>IK0zOq1O|cpIi}$7$OKH^{TJh~%@hsWqBQze zHOpIJZ=XB~EA2(;_vr_|px_#sVQC!AV=7V4!O&eJnr$MEeYNa|BOWVK*>Qz%F0YL(6c-l6;lCu{d*e+@nH{ zSKc6QG)>0*I8N*m`9*!Dgz`Ea0nZ|-E9Xk=`M949(s9ynUHk)&Pd0uaDH3Mwv|oUnctoJhYPKhK zYtkDEkD2n9aa=5e;X6Kr$_CF0)Na9nAp}tvBS3(}@vKiNN^F1?;i=_v$%L`Jalf04 z`xM2uN?LjS0a8^M6(zF{J$irEHY@f(JbYA?<7}PBz82d-6+(%lfbRiX-ogJaP#KP5 zJJEZ;p%9ym5A{HXl23*neny{U`Anz*ENhTTtyU{qv6y`XcF4T&2<&^%4R|sGYrPc3 zD*>`Vma-r19F?|${JrS$itP68sy2BqIHh zV%XZ6#%|blTAy8s=U$vgJWJz1;<*_GOvmAaTv8c&BYw^5Q&Ig2K z5m2bz122AZFqq#0bh|LEE`>f9rpblrunz6rpWZ6WWf?*~Nm|H8 zX%b*r?O)R28`PyG3rbhSI?lSvSGQVL0jobCO5?R9Tz*zqc;Z48idPo~?j;1!<}XIA zUF!cY9@_iCQ{nrfvvI^u&J_;GRRjW$ARxx-em-@pLB}U}Lh4g^Xc1uSrDd%GB!MiO z9m4v)U~`)FKB1i_yz4fl+pSLFEeij1R*Q1HCYBiQsR9Kk6Nw#;ZCkx^Y#MzJH;%~B zghB!_-qwPHRu&E%d|MPE0-i6enu~7X1-HmzCTC`*BAy4}}bakH0qWL6fkx(y`YfWqAO8Nh^O9?+)tIWn|e0Ri7=PALN6pun;X;Cpe zjWUT3+4C9K;9BY$o$(beXki6qTlsm?+WM<$W`9Pj+TKcE5zp&uB2 zEdUnC#{th5`})G(I}Ag?5+%&S*5>f9Z{-+7>_eP@RURe66sN@R)UmgD+;zNb@(`CoI??e6QJDHc7^MbNIU{Lki0D3xO7)c+D2) z;~|@2GyE~W@uUaQTB1TV+nSCjL!g>Qd{NvImZ{kgrufhsq8HFm*$`sMy8TKZr@GlQ z{;H&JRH|lkl<-JzjlU^wj0)B7+HhheewFXAJusdu=_8h|*{}>`qC4z~chE4CsEe8v zWfz!A?vZNDCBAD8FziE=jC&a*f%8QA^h_{Rt%-$9%A%v8UJ5)YPLqvI8HGzYHIbrl zHa1q;+xwxV0M*0`V<8z{e)xhjY5Y;%Iu@(lFxj7I4Z{oBF#FMp=IlHjU8Viv##zz2 ze0!FT%=l~k4KyFapRCjLPXQOlDm7cS_Y2xB@@bDeru+G9QnC{-uyy2jBfDMk%G0#h z-%{V1spJ3CY`)GRa7ypMrq4dcv33^VU@m3;qe zWbYmBK}oZE_)*nNiIS1ysyW3#6bbGxjX^evfp{a$Pyvjg)2bK3hiXz-Nzo8&3FUSA zBH~Y-v8!_Ze$T7-dtAHU|H^&g>-PIzwJ&coue%vt)rKH?OFm6af%=bZPW{4VOBkS$o=& z`(5IJX6$N9Zo1NR`<=~dG+YdR<=yzx7*5uLGpv+@rd1`DxNlt+v$b}gjYTAa@facz z%rb~%LqS63Q!UsVP!fjD;XiqxoVMQTO#pvDfWJIUnRJ^$7)g1rcH{LwmT|yg1CFDQ z+Q#!yR`#TMxq08viZ(uk!agq;^%=YoL1f^}u8IHM&-zRzJUaey?@fyhHbqMr&GQ+g zmBgq#b`XsAiX-5AGC@#KEre-5**|>MiV9tWYZBu5{f}~NE227Lbk;D zryP^RB8;C$!yjg|iO2yF_oi8%3vnVBAzhTJ4>S)4Y$1w3OK(|Ur(?{FZYx~4=^>Y@ zet!E#Ye7E=bqaGAX92ji%-9-tT zpahNXl3Ao<%ar6yF-H1$uAr^2-U2%MM0i`^bwgW5{% zyNd9Bz&s0fv%rqplX!{|khC?(HtIr+Q@I+U;{F*}N{Uq3B4Q*#;$^j6QrlSaWZZA^ zXuyWM-&@VOu{FK%&Vop23DpIU3l>6#}v4GR~aF{MaU~$8Qt7L)aVw zYoBHPEINk`dytWOV>deLY;Hu5pzb#3(H~=|9A!h+zle#nIf{o2`aT0aO4bh#wUjkH z%?^--w)OIW@9HIpVZ%7j*^&Gj!n`v{Q1Z6RbR4t20U^b3#LqD-Xj>a9hQ&1PCvVdc zcD306k#L<2O*-C%%r1-&XRki5%^7!C6LEWtvHsu29Qk1bi2&nBay>{eU7C1MtpydV z-IKj4(jw9<8`%s|DlZQ!fPx819k=lv;>(yFBdp7m5(yVD3W5MO3gLQ&?P+@l@}=x-~s+eF_L)@R`OU*qHDw=N^?;0 z@GKZy6FSAbkTF+^x7z^$qJkRXgp)7KC_&p{BIA76mpOe!K8iJxo;*h+PtTWpI8)f& z>x3p&$)1s_TrvKbLT}>Hf>>jOx?tReNTp3txK$i%6sxb(X`di=C4Y9=ZX= zV-fD$%{`(G?XS|wee$>%Y;k+JZmv%5%NL%U?>7t#0ejqs7 zY>`Y;#v3RsJS2e^fzhwhn`A80;b0ngUoU*y05s8@nEd}n4|Aq(87MuH9BIaX!VL8` zL-%=!+xwWcZn0?qCbl`XqacHr-V`q22N@x3!!o$k2L;U^_%=$|Y4|ZDAXP%t162l| z^72_m1V||o$k#Jvq{ghqLQ!e#K7H08!i<&EijNtk?|BMXLjT z?*>{WwzMbn=_CU}Ncg&9Lyt?XpF+%V)<5nb*aJ7h={PYGG2sG$_H}tczElpAY(Km} zJaLO-13A7LCT#P$Nrus<nhdG}fjoBj0+dO0a z75NyH(YJ6rLN{7c%Ptcy_DGIxW-NUs_9(U+*% zSZ|;|k!*@I#CqCJkcZNqaPfq>kUpN2HKd>Rl3XP1K$Z)!rMW_kkvN?0*Z+wr(gg3kqZL;;( zO^$@YfztkGE$lR>3pK!deb{kuY*}ZHL4eV?7kiBZ$swq572$(AbmK?K#fy+&^YEHA=e*)b-uPaLNv<%ZCO7x+9T4I6=(WRs>{ zU~=2X9(|svl=tG>Y?>tE{PULnSt`g7H%QjP0C{C@_+aOAgG%AZEj>0a z{V6(_LFM;2XdZzPnmr1Q)_X@v-vpJ zw|MEycmv6Z*j{I3BBG7fVN}X=4@w`+fE{Lri=FYly1TkuVXzlL=7w~vyse>WM`|*@ z+Dnc@aaSE`qtGePsQ;cd})| z(Poe<3`lT>D(}+|yP?>|*d7Q*5 z(I%5IjHZp!#3s)18~nv(ygyLVCk;f~*!mmiOx$hoPTYcc*$31>wB%hO&(BuWz|#U2 zMNI{VjCDZV%Gv%34yho*h^%HQ3B%MpihVHUEqc%WPT{=A&w!E2mbS{##QVylfq*=S z(_v1LFqj;k_R<-MczkHJfyAp)Rukr=H%u6U^9gSPh7Y(WSqa#KA7CR~yfb_k`75!A z`CcN)6wQ9kS5c(vu1P1-AmK&`>nMQ_QtkHgivq`6Vgdu5O4l33pbf=%ouT4S-%>QCe9q>1#s{Cf{=*wgvD&nH zz}Y7EIhHk*ge4demrzs*$x>k-pWbQ94Q?r|l?uisQ<)UQ5X$u4aZL1t>Y^O$u2d<2 z!a-~&zG+oQ5WWwqPns+kkb_ig6>&o0ShaX%m#-SpAwv5%7u!d7n0<~7)9B7bPor0F zuMja_gQ14|ftVSwlom#fF^r?e2(vHp8EfHmDs&Ad8i_4O4xy)gKi&GMRwkWBYr_ZK zRpj=N3eF9}WX4!3Kgxr!9?#HGf(iK1FIh?{B7vj+68GSJp1=;m28nUaWY$~#&wlm4 zX1_X&^OsD&yhHW7s;chIwi#BqYmrB?BKPJq~eF z4;M99C#PM9dm0RiEu-6HIMmrEv_u()o6BdN;7}nn!NffQQd?+8`HcmtL=6Rk!(|e^fg@xXk0D zN6lDJkt0pJ*tiinThh?Aar^`8jv-L!SMj{)E3!_kjEGO9n7YWx1=5l+_OOIhIaQW7 zETtQ*uE4=QaHtp6tDoy-qa}xWncrJbyOi~wfTYL%i%*Kabl_ZYgP;%*U0G9Y7HbSmh;($6=@7z zDidRip%WDZtHz3eWA)(ywG-zP`o$o<^A6S5=f{G;!hHCvb6~ia0lO{*Pj>T_6wG|! zs97(0a6T;*fjXZyuF7DHgk^J6EjL;yIQ>|Sy-248Gp|jX;k&K9wl2-pOyVkLKcOL3 z$Um7AE|`j;5jRIq%)tT~`1=TK1vXc$tMK>oTrR+VumGAdzv?Jz=4?E5;i(Cq2xi9qEg| zG2%FakQaqP9GF4z=tUrYr4Itv2V1KhUpe6U_<6My#_ZR;SIZG4HAD_pz*CBiJq!MSsir4W~b zZVB;rQ0Y6k?Q42T?zns}RIH3oy}zG?quEh<=Zu->+VJ4$th0Z9a`v}Yw7v1ob8&lE zuwT1kj~p0{wolPogUdInO3XDeG7$zpRmu{L+#@)hS8cX%pggt<+FNI^c-r<)$z9$Q zi=bSN5ymxW$AMNDc-XX$nXc3#^=J|5JhFjQN7d=$5lMH3fCI0r{ml>phxz--2Xi~Z z@88ouJAzGEs!U5>b7oR9F3U`iS0N(>(xjo@E1RTApUzF_opTA-A~R{o!fHykC)J~| zd}oc}kq{0nO{AZ#R?|v~UV6dlJV8(`<50G$lKX71XOFW^kC~S+01%En-)yh|>Djxj>u;Btu0-kFo63k-?|q@r*fFBUt*K zTFdD^M=9g%8d#&&WCY9~jmva{QaGqbbW;geQ9_M}!R;&q>mYbbkx>pEm4v&Nc_mjy z^)%N;q9|^I%nt&j047E;!3_2@u^dGx7NQXdY%)s!Nd|$)ex@3+@>`AB^lqJu`8oLO zWC)IbqIcj6fzWuiF%Y-er))HWpsjH(*1Ugc81(b3OB!qFg&x{gvpTVy8;q3j?U?`| zs@mTFUS9+TL-%p|;;~}YELLIAh|ii%B6&OdTQ;XlWV*M|C0Mx=&%vBia>|dR_)~K6 z`Fc9Y=}`I+%@9F6x=H)g%xiMxKkO<)*P{U%cVlQ1wqj+8=xWHsDzr)kOR10J31igJ z+Lel3_OXREA*z=!euO|_9J$Lok~rpLy!-NCm!erY_{BoplX&QgEf~QDWxQef3HKDN zx+9VQ`0*qDYXgtIKab~x2&E(6K z9r>HR`Q;`ZellLMmmr41vTn~l&sJzxZ`t43!nCTP7NBF?KHX`bzsSGEU-a)6r?Zby z^i4j;NPO3EF8T=WFdx^U6YGfgN1AAMq(-IwM;-5vxa{E*ug8)8*nX^?kF4M{uk?gf zW~3xtcOlD|)rC##yXo*`%7j8lPR026XZE|rm^4r6@-}zFzNv!d=}UVZHFOtCI<09S zty7!vMeN3^y3@5bFhmqy9isrNQ;z1;`VN>XLe_CM6}!~6i#h8XGK~bY))-7fUO3yj zTrnz|-7OkN$oJqPy*G0Uu7N5$qyp9lTm6lCYJV?q!}ZqE$^(@R<#|HeyhU%g4~b1Y ztE32`J!~a3>Qa{ANs?$%$32%6$=T92dDCau?@edf3az{wLl{|LY)nGwOFY<~`R?q^ zPV~orSuKC5;1UUs&t_J2(gNzA4?*>8Wr~QA`a)<~%e74xpa0?bO`_*-nyh~A1dxNNfDdgxlR+UK9=%|+qL}51pR9Ezp{kbf z2dg`WjGWl|)apYQT7(LxQ7cM7h4m@LPjnhK_d>lTUn>RqkSyHOeD5YshsbseZJ&DW zO}8e-%oJ3K|F6i|Spo7ji(m=;nB^hDV2(B~9jQ!hAhd#0t&y?KB4RG%dDFCsI=P4V zx%N@Y*dF=Y(5x_mkgFhim-FKe%oBWyxZDMQ67xbW#~@*62qv22nLt(N$MoK%$Rvl3 zVJNq0OA=(c%LJ7==yaLF@Zs5;5xH<@jz-$2QmZlmNZu^eeq(Z z3?*Mi3|u=Oro9Agkl=@H-=v!rNuY~MXLxlMLKxQ_qk@cyxwr9j+-$DAH;3j!Xz{PY zsZ;{)8wxaO@G|CS-p}Az_e%z00g$*2B5(MqTyCX*Ujbj9If_p!f7iD``Xa^_zd{yL z#!eezZCEbe8V_>(lxe0{ka-%;sgxha>(b=+#Me*3o|fS$iqIM2f|RAEfc07JIJqf; znFJs9g~&$Ne?DS<{$RJNgM+vfwDs4oAKDP&jw8_Snfk2dLzQ4jQ8dYUvHA=?KEu zKs4KFdUZWx-*2^p45J#xO*SfzWTlLN?jEQjnU=OtBZ;5Wj-ey2+E9gDe#>d7LaxIq zBd72GJU;_Olaye0qEp5!F@liodhW3#SDWU0QrmsN`z+_9Qh-qqo)28hS-d@}L6{Iu z_NA--TCEKN?K4IcmUB8w5k@h#i3>cAZZp5gbmr?-v4C8fNKzVb2hvF{ zJio;gr=q)rCaxe61&(ihda5?j;FU5XMLpiOw|LMIh;GDXTat{J)Xe^i-nl%)7;iyd zJ873q+5^~X)bwo>h*jk1ZdBk2F=>WW;{@EW8!gVjq-G=-Ju473&{!H;qz?O$!Vp#H z4YP3)@U*|6rQeNsZ?SIu*KOd0pB@n z;cKvj%6$CaksBCm%*z_O8fW+|D8Al)R)wtn!1e4hRfWAkR%6LVhw)V&NYM#q`wXqK zqrKzv9lXcv#b9@ZNlZ!A4K~;rx3JL<2_{KmBTQ8P2`YkSsu}c6EC|YW+Bth$xbWe@ zRRQh<(mh1$jr7Z%2{$|8?S?L9!eOob;Ol*15uoA%uOZvC`xTcf7xM-noFN8-Y-lzCr5zeAM+1QmCcl zlhXivMiB2u_W-&(_XQ!uKbxFnMK z31PXSh@zA##~Cm_RQLeN%e5g_wIK?$EZIC5XFee6$nfWvjGxEnZTXbezs8{1@(p z#1Gl_l!vR=Ia;~(N{(6K{w_{KY6gPj6Z#MeK3kk&v2xCjh6q?JVh4&iT#Y(Xa0Nzf z9!D1uKw%HI1yK3UyEp%K`*LxxXmd~Y?^(a6jdu}2``>BLwa3TYZ~yJKTZ=~FTo0zFD@9W;n>_S_J{_t@wb+2m?(aQB!owWrnIohpUWFW8wD-k6rIBLzeHzUeq5 zUIp)nJTb+kaDn8;AsFZL0GAC01h=(vH9KVQv-)dqhyg2plM%NGp5M{VR6~oQJ7tI5 z;A@iH@yU5Ln$s_ceoBaEU|{$0ES)A!tn6L1MH&ISfXO=41cTCB9Z|uaak|eLP;?|^ zLJs`Er}p@18c)DzBjq<$j8&lZNH6Q#LP|F5?_WZ&fJ;-?@aJS^%QQ$Wm??lGLd|b{ z-i)`Mqt3uJkSaRY6rN@53hGzy&`^vVz6dJ&bnRCv~ZFtzOL(Wtb5tyjuq~r@eDOo zbVk7;3#k2d2MK~?xkwc3F!m+8=OUL$R$?*saUl&BS&cp(EZ_TArM)6O%ZX-5aA9$N z@~kbxu+-hMej8d43)Vvl#grg!{IRUZxy8@W2jG`6bowrqH;&vQyDS@upRcEO7$5B| zTGGH@j(wT`Ufo`Ia!~_!yPm*3g$-#Ggfpmv^)za%)ba>CP^&S!tp~e z7*ueo@cz;Q-f=pkHrvqw9sVF|LiABtqR`@Dj)9K`R8rF+9;m7#lQeLWesZ_`idB{!Y@6ZLJ{0H)k z`_Eui9xN1_#Cz(A#s|$0U}wk~m+_&^md+OBrZMd__`4?i3spCUBRO|ydj;i`8yqVo zetfV0*wKn{4(dyi8p@AK(cUQQC~q>9gp?9B@S@)_vGm2EBjo6c2SFo51(r@zw0nek zLCi4|755>hFFBf=44MKpM9U|$3UJ>=YyP`6t)HUo6V{EF8^yvZ&|V z7k_oWk$-K;zqT8E+ohiy^20Ovmju<>lYhOIf4!7{9h#sz@`J=+e_Q?~!S5@qp38U7 z4N!-&+Mz6RD7$bdaXFNr4iCj&2PUWkiOZoxeDA3&EZ-f7PH%pr#%j~-;DH1s0UXK^ zI^2|?+3xO)N6_Eo*cD3iRo+E&};c_PXT>xg2K_bF#m()p1XhTODOxYm-`zA zyuEKi0G`PI;5!Lm@0s~^O~PB#-)VI_a{Tt6I(7MfRJ#hEYFrVBB;W)2*S;L~eMu_& zIMb=o)qOe6`*Ifc4^4zZW4gc3Kj^fk=t_~J#PmQBuv`lV@~_v=%oQLJI#7SfZXL*O z9jFx`J9BVgPN>A?wZvslQP`%@!Pm02*J}1(n5aqi@LH~(*K+Ll)H_v9BKi8MNxNIJ z@u=~^kjmYxi|Kd(4mW4;8`9oE}Bm_SKF%4u7dRz(!uR#BgmMV zqboQ%UcUNH@na0}(ocH4kUu9NMt78DBp?~yPPDh(-fnNTw|1f<9>|MMGEk98mzU{q zmSUhbI?FY36nUl)JS3j6-RN>YQz6=gFbSVg*CI;5l{0HoQ%(nq$?Y{*;(hqb%G>V2 zNp}Ud$_@Ar|Gj$;h}p6{IN6Tn@#EsC|~4iWk0 zm(}nV1$op9zQP8Jhj)F8eWq=Z&hBn*jm~GeB|2Z;yKh#y=O<^K18ooFFLvv|_~Go` z@n5xFkH4q`gSGi?zjJW0scm%X-6D{-wEa!JTLjWmZC_LG7J;;_?Pcm+9Y{xSPv4vz zbhN!oyr~1_pmX?U@4Tb!E#l1rP@ZpV`-ys22hw@xtlPObd2^ueBI>W)=bpZUd_v7i_KCRAgh_{MYb-@#{_00J$rMUQN3G~AxrsKBCA#MlV1=I3ip>J|Db}S3AUuJv1L-J1 zv*JGJzSD8^w!6lJ^@#Gu3g!4;;+wdOw=K~DD~G_eyv?C_l%u?#$^dHY&8B#xB|{ixW7N(yn^^C=@1kd`2=#Ck zG>f~c(>OWK;B3vnhoMZ9>mmG*U40cP*^h;;pne zGFH&nZahfvT3iL%r8`089!Yj@tth#nO!E|*c>@)s5Ytiw?QI?d4G)K`VF*l!Ho(IE zV-@WEg$W%G06B}Nl(qumef8pbj@b?nRPwo(;7#LdA-(4ec`E=bgYxeD@MVj@x416e zh@C8MVIXyx?^=6BFchvxmUfIBwy%yE%C#|{4M54laiE?)iA=S<4&4RlzcwKCKiQV} zf!jf0@z-|yY5RF}!gvvcUTw3Dgl^r4>FlU5M(>9in>zYB*tMRv`_K0cb%eRum#jDl6;;`V}dw%CY89OsNCpf}^oWQ%Ic@?eRoAFrXA$Sq*!rANT91W0t&2gLK=fo!1+BQ-0$f|B7z_|&WcXluifHL= zejv)S^4ri`GgV3`0SX0fW53ZJ^xe^T_H^q_2h9B-prA&Y#sy_1&x#e{S@A#V1UtRs zt{IH3m-2FQf$T&Oa7|)tqb4ssVGlvOFV$FN)`eKuaRy zMw^%bnX&TOZN}u_;T*(6ws-8Gyghx>Iq$srTlB8mdDH1)kokyLVS+g}3)-h|&@Jlm z(ExXYr!om$XsciomnSp4{dzpZrjZ3vv+N7(LjO#rnTWSYI~-rfF#QxFKYGmeOxQqm ztl{h@;?7(02&;*;_-AJmHoBKZw@HHualb(LZHVgVt*%w}-6IfR*Z8*{!@ zX|9;d2>gA0@+?H-j3Zm*%z>Xsz)kS!27hOcPqU0ys2=+Jt)s-9h~e1A+7mmJ-QaGB zlX%Z9_}L!jQmiqYW0!n3)eW(Hsn1dv(QxZU^T)?rZ&DKRU(eyyGR?Z`S^a524Imp>3F&#z-i+BL$q+a%UnJ@r}4FO39vo_@kWJU)z z?j8|8xCg@z9Dq6%ez4DiAJ}Y75)1~#P)}lRpUgQmuaD2CHrFgyvUwr!>CsqA~+-V&hrSq)XybTuaO9i#V0JEBype8ZwJ2mp!)iMGJ(^8?a> zRBU#Xv~ZY^Qd0VtkZ02boXv;1K8oJJb6DWR+^C51qug%0WO;HwHu(f{t~;mCplC1I&WEefmq( z(BlRq_h=v5VqwH>x;itI^Vx+MK49~ zhw?P<$R(Rk8U0_Sn3X|}o5^sz*G4YKAcpg79P~Kom&c{38v9E-*hOkNjfB8vx zOA7WuLGsF%w*W8@tK8r@1Oe2L`a*8$Pz3G8=SYqE^$oF7{c31Vt=$3Gs zmkYG!?NuRc{?6un=7%E2_q-K77k$m~gzsZ}TZ(eEq?uyPXdF-|^+Px42KU?A*wnb6 zU@0S33DWTva=uzO?X|AiYu&Nex?!(%zh3KzTkC*Z>t?;yy?TvX^+?339D!WtD{T~p z9xj%DeIDNQ z7%8~?iEnEKwhCb!S6!th1tx^XxZaTmLc)XCA%EReS3vf_yEYDQ8PU8pCd>R#XO}2% zZ3z|?&nvWsjMXx$sAc6)0DJki6`LCsn*BYQSZo!TSZuFWqP_<-wAiYIz&*?@s!-rE z6`5OA=wsQs%&jV`da1SsRTkf}Ee@Vm8CvMeKJ9=0j+!5f5TUr}1BW7Ey#w{eY(7Q>D_6g!h&M!EgH3J%M=^H1 zY)9RU!Tc#5_p{p^gi0RN3rr&BxeBu$V-9ufDVz7HOm_;>FPWvi8>gSw^4Z;xXFCva zgo#RW8^`l3iZKmxo+O_zA2pkl>?YAd*|9?-h=}4H-XX7DW&D5!26;cQdKpQ+J0VSB&F@j;yYUoXt&Z_|NGz9*$l6& zuToDOOGiHCVcdKZxg2sigk zGk|1(@YKn+rj`Ni_B!od!x-EGOmN+8=-9(|PMHpas%%HLc|xE5`yu-4Vc7<*+jUCjzo1(SN^0s(@WREeId~GfIgf#G1)A$l8k84A@W$Z0oXbsXUxB`In za0}8AmZTIs3Y4aq=2!BJ(;BoVxVvWXW}XmCQ%Y$!3K~Vt%SzXF>df7dsYE@)P?b{P zgkUhH%gq2KJ8!O5+Z1?uD{I_~Ea`tEznER=Yf_m)<75b6bQd zpaij~kpc*iZc9iV9urkY=g$vX%E?^l%q(r4wo@CoUC(#QoL0H|-YHaITlCzx>gRVE z;_4jlH}uE2qtFW{R8~YjrUFEE{JV>@2@Q!-g9*jqIHsGAyD&uNJHoUgK>pp2l)taS z{vlM!xQ|iSFmeP86CYI($BPlk1dfukOd*C9Ve{6nnD}F~r5w=xmsVTFh3N@j;dI9R zlR?ovj<>)vuhgF}e5LNYj_DLHprzc(AfNG$i&vHB*W%T>WhrZ{*FW$!XS}a-(Ne9! z4*Pz$pUur()27s<+~*B;~tWcNOI=v2_#F za(lj3QR&whO$9&Ht|js9!PyR&CX;m6UUEMt!;DiXGU@G|bagp%gMIuwe?d@%Q0tb4$;#(I+!TCBQOwDKWK0|ta@AMRu5bg7y z&;KCIFn+p5buXSeKp!7R1Gb@oK4O?&PGjsps1vjRR!t_Qwxhpvp%ZX{%L=!D$yZwl zk3qUaK%hT}BUBlWFxMhLdChjrJeeML+tJY&O`y}>d>G@gAwlIlZxdlnk|`Ye8JJ;) z0?d5OZJKasc`hsR%uC{{WIDXl{nC<~gzc%)@sJw}N>$5z0(aC|EXKAc9oP2H_MdLy z%Dp2!f)2b-&?u%--i{9EQy9HbM)r|LFQWc@GQ?=al3-)Z+7S9cxZGoR09zMp% zLa0?#(}PQ8I*x@=_9z~wlld@Kag`7dYH$=qvGw%{E?fFHF(67jm|4?`%FnAb zucV8CL-II@0fWmVY9Qa~HxL|1uW)eY)WE$E*l)AF0aa5BTrZsfRd59$oE>07 z(aIDS&L!odWQ{R~i2AJFb(ZBsdQgDjf>yxDJdEu^Gw19kZqv}Khilil?aWWgCqsAq5sD`?R{cMf_Fuh=P4t(He>*W%*G~b zfXR~UopvNx^8gf)!)iPOPLK62(c_eJcD+lAMbeg{J04hCBQS2PEUd0C*+AItA2C^8 zrae7hdUQJlCF_*vqQ_&WaRkt(8-_ogUZ!kg=e&(q)zb1DW+HIAm`VsM@o^G=%09C7 zZZ34Si{xw@xngTzeu-NMWNz)n>rhKV-k(pWc)CkRDNou%_3_?S`D?e;OLo|MzAfBl z#QQTwg=^V(cqgpZF(bSv72Rg@VPDv;(^%Y+AuTJq7X1~{x`09JClng4>R(qOFra*pR(;D}M?>tbog7t3Fm${9I1<<~zJi>FEC#cFy znoHslPy=u(3k zjc8T495))fR#6?0S;hQOiF3;J9+thp6qLIdwcP(~O;W|=wx(BjB;zRC0yWtAW z#SV?Fk!F^1JW~`JV4%H(Ee4W?J;|Q+-jm&eA@`Q`o~neTVBe@v4P7SIOL5VdgVnS# zQH8Y7R(&7*NrrNfXM$BqA^ZdBGel*KKxwirF7W7dalzUQ6{a?*ygX>J@+TDKwTC`2 z1#SK5Pho0T@K(Lev|;bY-4Q*k@hk7Mo-cD>l*;LN#h8Vl9hENbDut+^lr%86%`~Xp zee8>2NKJ2=tXf_rZ9Bn%9d#}y395=413f$SKm8;P58k(lY+A&?sB|krXgo77-k$Bc z)n)GZL2iHk;;FWT?9hoqhfXi7PuypO%b{%r!5}Z4ENlx^ z`Myb7k=|w5KDGGf14hax2PZph7zZ&fEw*z{hV#)SRk`oZYtQ z0F0{Pwuwm)O(Yz)*fJ(EuoL{ax$+(d;)8EI@Miv2;oj%RB<`O!WwQK@I_r#+&v1+X z3&VYy;IydeA%W%&ViCis7CHx0)-dKw+n{twTkKC?aIrV!jIIP04CN9k+kBxE-#!Ql zc9!a#>>rRO-`e}2pr*iXlCB=#>KbK;GUDtYRb1hSKZ33fPXR(U%_s2~4wGUu^1?p% z`lpy0kfUYa!t$>0Qh3#H$e-n6{XY;swgl4-#UK-1{ToLQxmwK5^g7?%!Eeq z6+19$Ud>{j$uvi-dfsYF1R|6m`FFZ`y-a4eNn+FxF%MM}ZOW$!$2b#`nYtBI8q@hC z2T2tX=cf?i^2PFIZzBq}@@mBT-zx`TPY6G#iQ)GG?xn9kbKPSa%8 zsC)z6KT5|OI zWsH!G9sgHZX`6XQwO&xhQQ22F-zabIEs`VM3-3g@Fr+80S=b+v*Bqi$*x~qZTlu5e zJ%n$4`Nf0{-;wgX+^}XOV1Ajs!=!7_TEK+j**+21yslfjT3stPD)_h0s zYQRax3qvfqijuf$wuJG;L)3Og7UgIoemGmS>{ebijhEPp6WVzd)c>T4YlU5fs5LIR^>G(}fIGOjBrdtf{8i@-*= zY+z`@V)fHsrU@-*T4#LdOh_5aH3cQKL~KJ;a+ID}=M`yQ13QG+y4#)Olg{zE50=GJ z$?Tb0#wJ{*%4ZC}3UgGSa#0c-!IfNgSzujBtb0wu2guD)*6You?cz~6?VP=BD%&({ zn=H&YlC=olJL`M1Dzw2$HC;glvrVN_L1BKq^n0vlr@4P5>J`WiXK)=v0z^}bc_S7H z!WE+d;?|RBg^6l`DdE#6n)M2FCVN1E*%e)ty4~O$C8fPg#Xn#o$9*Y=r3RP5G6mRZ zcLAZML7mf`#65$1s+VFFI~r!T0_2sVekrOg0>-4cyME86gj-@0!Bz&!!5hNf1& z_4k)FiA8|9VkUo+jz1YQZhr8BN6mCa_@~os;)PEi?hPNWEPU|k!@|Qei)R4AfGplA zGD!0`@b>q*t#F0HEVr8~-)eI117K|m(mh}a+m6#jIpBp$ANDyAD5MV))Dp-(qO#3gM%8k~5vSBud7BO;Gw(7Q%_r36k#AQ>?*vv@|U7*)oQb#@&ZPKN-aH z;jFMnB|M-ZcmUw^7HE{`K5Z17D=RS{HIzr)gQK$o0u6B!&`2^t$z~|}Ywz(zU!>`b zFVElYdaQc}dBb{xX+G=j20Di4)n-ILxMFBdNIAL&76_yCpGhC5!noK898sYh*-f}p zDc?5-q@ha2WK>IQ!k$?;KYRG=KqjjY`;7nxK+v}?-ZspMT+;`Fvk&nO8IHDf41I;m zRs0IYU^?iw)!}q_56U|d7G1RYZ>RPL5PQBV#-o%AhD=R)aCv}h7Ra+zYm##l#@4onLJ+Ui)_%BV% z_=?XHBt@pzCuHo!zVMNhHXqu^!b04MR%qj1X{iq)4+$6(M=R%+O}4NU5j(zK6J-L( zTf4(8?tc_7cvpE@GJ$k)As-AKBAKnl!yR&$Dne2Z2O$w|3IMC^6^;WNSvgR?4Drr8 zS-Qab%FQ+3KIk02VbY^+`o>M13>WT}6E#oLKPQM7oGH@$dW&xwWD1^~#kcz1=!Ok= z6|7Nv*Yoiw__gB(=lg=BgbMaW`qw=_IqMwUzk9|OMj$pkwFIil=gLeu4oqU2^*)`Y z{j1~%B8sGg6dhAnjyj#r#p&kO%Pm+U{_46W3^RK3eUT8tyYwTvP_Xiq3vD6Hgi0?S z=e;y-m=)FEDj9g2l^->&jPGI0{*nz-I3-m>%}S;2h`U@i+lkJyYzBvlDH@sdxKn`A zpJH~+8Cax2LXq*+kW5ZAVTz9eVb%uQjQ#5vHxoqjy~6T?m0ca|Y|alipRc{{v}B+b zu$m{k5+-x-T?Yc@-?5`mKlw|S^B^IfGZ@@iG$+0JWr9W+6y|0EWIF=+w}&#!V3=i7 zO3#^&@j%AG00~Xvbeaoe5G*N%a6Q@*sN;ro9Z!X+D!My0v8pIym||>@0R|RujW4j- zEEgslfU*;x42 z&`Q)?*!pM`*w4^!nv0d_aR!yZt8O@K8)Pcun*d#b7H|w#xpys`m==s{3r3}7_USQ0 zaHBF&cdr>5huL&gjk@zLSi)_7v$4Uwf^{}$k}-O@TSai0I&|t5+WO#wi>=$G5>={n+X)%z~LLi$P&vEUX6|bGM!nL#c>;(?&`C%cD z^TXoV*`&2o45V8OWP>m{D<=E10NMNX{^FiaUEwayInyK;=3aOhfeYR2K)0-iyE;0e zPm@ucj(MV)bcPrY*i6nKsA)E7d&w(t987gZmVfnt`!w^y-j{B+O zZNi(j@VaD_@F{?fuVKEwIt{D&6z#C-VK@*3vb~{&A(ldo8yEo+m4^t>@A>K-=-?s- zqWCcz&PRzqjj#R9^o>y>n+k;k3N^cy9{rabXI0=|_}#QMD4Hy|@u3{3i27ludUV?o z`>WHSb;wcew?MRfwpxyZNX+G?nJMhv^9tSTTVX2uW`IfuD3?ZGuv6K__Dg|#m;g?v z=_sDwolLt-lINa3(>o7YXtuxhSBZ@*QVpu>Y~>7u3@zqpn7;bL1Dw1> zot~^#M9%OHw?FcxDncso8h6n9)1TZyaJYTL0hTo5fZgS6xO*`JCGLLC>ZmrFy9_1BLW|4QCZuszw0JL&yi6U*&;V>!&OK+pV|$+VyB0d&6A#P0s90gN}!!OqP_&HPY{$i(w`x>yl zKgIgTuMF!z*?QPNyFXonm=gA{@qBICCuSkh=weUUrdbn>=!X;l&h)l;+IB~L+ZF?%()6LISw)N)bHycdwUj~nzUk=m!I+^+r z^nI>`;M2{Q%Rvw({B)YYeQyBAK#59dZbQzZWuO^PDAp!J$d9GJKqVxfz1Ut3l3=|s zgcvi6r|TMsmzz(Qgx%Y$FGE%PF?32)$MWg2 z#QM(XNjfdS(fVE;!|i3wa%V6A#pg{DK+yPH9lz)I7wEv!tt(=w{^;tYyx&Viq4zIe z%FF3xaPW7zna#)kR3@2`eDd<;Q#NETpThn0<`Sf{Bu}O{CSvkkHHiq)DAsu|1miWNt{ zK-(xqZmCT%2D^^o9E9rR{YGOh&vRW=L~jHSkPT5 z+Wj#@&ORv8UbVIv;BJ-JnV*?O#G~x{&LVyWWlI>EmxER0HpP6c#&yY}+^y!_$;0qC zGSVsR?EN@huEVa#@8H3k@VpmKq^4KsI?T6DAWBvSmxx*Hy|k`_2Lri5F))f{XCX+V zAdVJ1dt_sn+$6(>@HBY0-?g&A%rb7l;6(r9#&PM)azeH++W5e;RBb(j6p_}~P5JeZ zeKm)_Nqwa6+ZemZc=ObG^Q^W%(+Q-&dN&4(jH@xa^AUnkE~W!ap9?96XTCB!ri|zH z%vbl`>#E=N)!OkEzWDnJ``%)AgG=mnot=<88tjd*YC{eqQ2DLRFIA5hpcHbBw3S8o zudq4Ocvan>>mNE6*`;mA6#aZ#x?`80JeIO=7tDr#Fr_aMd0ATaFZsNq47rpI0)2$@ z_Q{li^?fugXViPEJyyhevr8r&7Pi_XUdOpq%Ip0z-Um!b?AE_y#8lcKq(XJDHWI5^ zU#m5~Yuc_ndUSI9=5NuDdvA^oqLbt3?BwJ;IzBn*JbHxR@j@bpZ2_8#sGDgX@f1ZA zU;{(O!hTH_=pxBRxNqL84*TxLE#O?=@W59>M!C|~u6=P5q61bP>t!>t^Apu@)mlSr z!_;q%+!?kV!hT98l(bm7ezhSPEhHO-IAoYo;Os2=G|q0>$X@9VV1<P9nge zO8)1e7}H8D3>UI-kNZhqX5*$3Zr;J-f<;(tmSZuzG)%eRXOShBapAkQ%19hcx=LGt zx^Bm`x0Tx@pPu5@$Rd|Q1e69e} zyK(B+z8LQd8+l&dNIGUGi(wMqB!7-4c1!NZ!scF-H+N6NnG&;~Q z^7Cm+@AlKJ57kJ;4&5o=IhvjOP+ej1LgYe!ZFO$7!O?DOM4NJ zW31INO?%Oe6vj$4tOl;>FnT?VurxXL2yF;s*Jy|B0ML&K83x)uUr>~>tt^)&o^$`%JeiSeiSZ-D;f&Llx^W^g+ z2BwWcu5Yt7jFS#0ckl{eixsnA*hvO*&Dobj?GiG048mcdTuLW{W@ERZ53pOFO{%+% zb~Dxyl89vpnKQ_IqL#WV0yP_E9H?9+9|_RO#f zAOzpuJN;P$$6<_j-EP>u>Wn6{J2f}$=z!AcrQ_ak&IX!Q(L?)V>}x+xDq?{TfmIL6 zCMHL`Mas9}3}@|DwH8a*m|9x~AJblY1;FVIEB@#aEl{~vF`oA)(zB`RkJmMK+9M1^ z1$0BQt13p(iBd=fbH_dNAvnAq@^ld0CXJf}Gi6|kRU`MJY@?q{m}r3c|Ju3$%}!j@ zYK~DqC?6gy&bZ$P2j84x2Sl+DnA&QYJYxMNMN=U&#ZeJbard3=CjkS+c0x^|3ZWyU zpM&9?L0(|H(U(;rN`5D!dz=0d)0^_mD(~KnhUxf|ImhCqGsF6hWp-DN!hJi~4Rx^e zfX1-~6FBQ|rhoBL?F3?H2+fS?yA-8hA+GZ>N{q?n`{eli==dEtuli$L8Vxqq8v)QB^sQH4+|}|(5Iwq2;*J%Fw8>K&Vfv!6 zOgso)mW;i$-SW2UorQoY`vNKx#q%(&;^h5A%c}9go1g=3a;E7hl>CD;*@+SgCZ0qc z0TD!0t|~ULi3hpb;=hOF>=`}{b)<^|FiQucDjSChtQkTJgG z635pv;122y?>&xk7q=w@`MzKrl`7oR9p$PV5)^#MONgb&yC-nt{=)t06?Dd}m18&|X)v>nADa|Ei|BYV3q7j4m z^r>KrQkkWZNgDkhCV=?^wtY$`(FEccvq{4U2f8J}lP4DIfdLKOu&6bvUuA{EIv96) zg2Qu$uEIQ&T-_WVopsM6M!RQ!i%t$nB0D%b>+GMOoc)bo=bYi38=-lv!i6-NznC0?cD@>?L!4U2t2>fCYpLSB$s ze+NlX#Qe34i`W$)%jWqKOewG)(G4$h|}xBdt|qy?N*Ei?fD`t!cbgNHrH_ktNe_u`a#%R9Kq+ddps& zC9PNs)LXhDq9CPO!IbosdvfmEk#Wr?Yz9ktQ|t<(c@>IkY&Wi;k}9(vdOVm!b0fLx^Lj(Wp+GGDt1_ ziDarNfW1U|z6gNpEwT@vJ?K7sR&^gfdyswDfohS=RzFXBg$Sb2Md4SPYvic0<-%j z9e;8hH0k9%wRUcM^VB%a!Owdt*W5O)%r>rSx8VlxblMQP6k5Oh(jBPT-v?a7B0@m#U*5eME0xg zWF8WM6dH^-3RhU~p=l8!IekzfIju@0rw>9T4pjTl^rjGpHVt}+N<3eeL?)*TlgTs@ zIdGM$Zb*%}h;g2g;&}OL%&OLRqTrI%m?hSCXVR9(RAW{%@$t+S${dj6KA**-NgkLe zo)NmXzMmp)M(dig|&g3FyK2dXtu{ClwUvLp`=9z02lv73l@CVc79ZTq2~b@tAW zPL6#sCX^RAB$*bm?|lAkS`U2bLY~=YHp@LL6qce&^t~e3C5eh%*JG_xc+^Lbc*d|q z=Wj|!96h7oo*Wz<{>?Yu7`|qj+@#q&$B~9bSUPFnvv)hvU$SKGYR?>myf$%q9BsaE z&gsjXP+yaUEk4XN$Gu)++JEskrPGY=?tAMm952|YDR#i20A4JvQK(+6^4-0W<-=x#oJRU;)b=&;H{&YVpjKZcZ zV+`xdJx!_HmS+%J=>Q`FYprT;%QP)p8y`Z;pj&Mj6l8AEaZ=vug zdc-?Z8Y0?`3-)%-`hfw~<7oelaz^A2hL0U86qguo*^2W7ew;)1jz+qO>Se{a9E}I* zIGx=owgUfX_7POlvB?-FAgXip%@|E=Nd708W@{o;+GR4kO%ezZ4jAQaqvZL?!O2dv zkHOTl$&9u2&xGQa&N5ab`2_!tlX#lsvo(Sc%_kxjJqND@FYeYR`Yggig0+Vm`GT86m~lBxOAtz6K-a8OnINI*@tYOl<{+#)#Qkox*&oSR z4^JlgNB|+hLF4c94fZsEMcZ#T8_p1jHq`Bh+kjjgQ#-i!ufImqd(*PG1kfUD`=<*Y zG4z~6yvHtnfT7$iE)0x@EN`$%4FL!v0`jHuN-Y-OP#&fbUJe&Ol2XjN$p{yNzvF&j z4XVMId_2j*hs=X)%b+i&t;U}rOx<-NOqO^s;3T?YXAip2CmBYB`J0dX3F{I=k@Xbf z`%NGL^VrSMWV*V$WzfvBOO9ntajdn-AJC~dzFKfYhDQyDCRExLyz-?&%8a1q575Lx7zL|D zWHMqgmBdJ^6dkR&UT`LjBTBH)Vp)6*vhZXO3p;9A9n<0u)e9F^nXc?eO%G36R*Qwy zWtUwBfdyd}2ly(j{g9Ma6v%CHVsm>KqPMr%9MUwzNTA%g2vU^5@n2MfFJU2J|oAXa^)7~`8v%ySc^#OrMi@9m~g2Q$vfN05l zB!|tj!>)Z&ANQ`O**Kf$u)omp=#PKg^l)0J%*PfsF-RT6{odZ@SB{KqAAsam4s=gq zAQLKXva}y0}w~r2WO|4Ql0F-IGE53=A*f6|J@;qiT zpx$_k#-@FYqw+7Ty@Q$7NtJ>m@p?WOB-0fdyB+H97oXHSKv`<@x#!4$iKF`G$#j&C zA$!mvBR^b5F_YIUQ5%EMK6ej4cp_tzkuubh9}mK&|I>#@WCO`m57_X@`l*O;`vfh6o~1?;%hsHz$Y5|aVB02q#=FIFu) zzU&eby-HclYav;jto=TyK6?hp+912hOi@A@Ss#J&wOJJtJ0}Q8{}vg4G1-JMLWPH^ z3VGt+VVrNwrk+CDsVJYPsEMkPE8ak8kWD*r?^5DNNX})(8r$b!PMxHhG+OKU^T|U{(EuMfiQxTv=N&-ch;=cCe0iqDDjSw4QmHtwkBO z3Vs!3#e)ZNf^1Z4veb%y7K9kCt=7Px^wa!PcM_W+9n{O_B%WQf)#DH(M3)Z<(rV7N zTL)tNt;lh!wlPX`0DJ;)4FZsF7oGo{OZJWzy7|EiUYFv^;Ga&ji5EV7xHo*{a6b6- zVd3GK#WR3lKo;+s6F4ouf#1$jk@p`o+gI+PZ(^?iQ6-f8mIMJI1hhNHC!OPS6HF+8 zBYOVCvm7us{TV|Y&nC&(?znshVDN^wg<%owHE?wN%T_QF%MXjICL8 zcA~EfM>!5K8Lj^W#euDP)_buyblN$4+loSC!f?Yh^w1b=NwALDfi%rwbAfYenv2|2 z_nys1Q!|$PVzVgq+FUIlQ)_Bm#2q7j?!}}b(`rwXJR9C5iVm#2mj+mKl1mVLBr!Cj zg@A)&fXpG@11up4v*e+0tXM96god2buCf|fj>Su4FJ`YO~)Bbyc|=u zF64~jD7rzV#nVp)@q9Qd#5;H*VXOa5D{35#Z{lIvM+=R&5S=39?S89C^8yxgOKZjqT7)%T) z?401ylzfRg5*98r8t7#cNS@xs$)$Em?B0aDhGpBcjC&c2Rs-}AI28^0?cOlUaVC7% ztD&XsS#XBJ-t*bJ)Qe+SfYOtv^9G)52{0UK$%^V?yD1Uz?PSPb z87OZ<+LTyklAcNN{4BBe^uYA*b-a8(6}AyYG~VR`kds1Jc^o;$^`9U3 zhK3Yg92Whiytz1}&hi4hN?0xtY z<+ay)N@X?MCLZ!F*Z@3yD#>IJet44r!sE#z4v!ShoaVXVb7Av(mU_Y=oS|OttC2xI z>>y}Ag3_od@XOPJE|JBKg+yMNqq{_tPwMq6p9cg5=yx^)0EWdcn%-r9`A z_PP_T&>3~5r9OzOGghB{KPP(y8s~J(2K|y>lj~yG5H8ZP=??$+qjB%4sxJ0!;ZZt?~w2tzfVg?KFlw9Q&7^ z+bG;+ygW@uu32PW3r|SGrBNos6dKf))r*$VP&J(ok~&|jL9nvdx(fSCu~FUYxc4a; zW7xreMcV4viF`|Cr+CfmR9Qbef#tO0uB)Bm6}D5b*mittZl}%)+$mX>JH8dV6I`o1 z{&LygSj*11iz&6(M=lTZ&^RO8fKUA zkgTN-=6KUE1dHvMm?qR`wA9afm`t4gI|us$00Qn}lH0O!?R8$VP5M2cAUxSa3h_LD z-;mrkIY0kf-uNKbSg-`eCDgLofY>)2=F#iJE({afT*2as`Vf7b(yNbbzl@GywWgUem1uoeacH(KM7LjIVcuh4klL>u{bXlvm7)-wBcPLO`Rr~8+35O0C8LAV z8GSr;P5-7h&<8miSjN%Ox)v~8K2iN?GtM-;YXaUaGEmd65jE~qlwr-H)_1*@6hOxP1huu z&hFaY7B6)&*Ki~f520x+01eYYelee=!%#go%J1N_R?&YgBg%_;qs~d^LW}nZ-jr+X z)3VV)BMjRP*yINSN)yUz#AD88+bw94sWclh1X>H7UN#=2S96Lj!S89q-AK9PZ#PL0 zh9dQS9S&{?$Ua6OPp9KS7G-0R(o!qOZ>{Vh5QUN^{bk6G{Fa2TFi}ABurd}LJa{s7 z-PE=5GtGpMj4ngoM?T)svxGgtH>?>sOF#pI-jP+OggaVK;%PkMU!uL>xbyME`3aSQ zY3V1km{Gq8{4&~S{F6xpx7P_xmT?fuRc6ej--;L%EEkWX1O&V&>-FZ-+?h-NbZPTR zhGzV1N#EZCD-&xBHwY@=vom2sUu>_?c$?-qT+gfw@)gO0qHOG^#fI_(&~{aM#1#ng zHxf%IbsML%eGvFS?WVo&(Xg79*;+=5ahhMd(J&rSHHT~^G>;iAjU_09CBveT`(PF1 zgX-7)mJVrilFG) za|-=Lo~mpC>^dF+bW1)>V4*QqF}#CbWo)GaV#$yl!O-^_Dhon4eOM7K&ryHkw;%x# zl8}Bs@ljCUJCc2K4B=CsR=)1(b;4Q@maxunO&mW^Xag zY0-){%6U`@CE!DgNjz$Lg)AB>31gu#IIyNi=W2UFl#Z0(cgs=j7Oj8%n{VOjCW?wl zSe-QbW8qHXU%{E1t|BH`%KeC=qnSAGLFo9Q$hgX#qs1YT8_e+&76e~_Li#D5@3LSI z*opG_CEJ(T$vYv|%dImR)TZG*@|u;ZGL$5n?wEWI4*j$b3WF7yl*iSU?F4E*)+WZ0}MGF-a`eA zqV6VYj+rh{3W{q6rbkGc>(QyuM1Y|8j#1uA|6v&mcjG}kO_AF2jBVhwnQ&cD&PWOg ziag^<`bTqe&gl^_9q~9FNiX__z9T3soMLhgP$Kc6`@VtrTDwQMVS4HFP53 zv#mQ43Igy&zrrlZM(JeSH;Ki$8AZFwWH@l0AD2y#)!^wc?LH!j6;e4}u=az{o$+9} zvUdSYiy$dz_rVf-T7YSVg{@uPDXMG2l(tD{(TeED-Hdw^i}^vqi`F<2zU9m}5YWX= zXL+0N4G;^1{@PXFT=fzf2iPyQ8k!1J*TC)S?TI5WHYt8+CFD_Do_*#91VcV!WsKii zIZdnIC2aIJT0sMvIK}9I;4lKBbv#Kg@Z_m|WMh9c8YTUdZlLs^e|*Z-bm zLb+_Vy>+j)3&vQDo!B=1wf^`KibkMAr1c~;h`7~5?!opitU1`uw2KPmKmXtHe0I$~ zM$ut1&GJ0jyUgaFuH%0COL853JHVI!P5-pB>D719x7V}TWM_R{dqTBY4y?Xs8v@b4;`=w9<3FGO zfQD2r2J|QZpWeowWj-gpye|134a8kZ`}}XGor8l=etc?qzJDv%lu3>iKvn z?rpZ)pTT#XiI1Rr5&&Y>E6hK0Z=%V%hZ$$noV;e&GSsPlYPQr>GJCt)^VA$H>( zR}@39Sc{BvG7)`q<4FtRA|-?DbF|I=-oKuLy!C?p$z`x-?ae22y>!A3?s2ra*?!Kx zrYGHKyS?>9(fdyj)QDPwX7$TE=Llfn!X0w}B`R~-8^$>jH3FuwlWwzZh49+eH_?#M zXD$K5YUDx9U}IF;2Dl#lsOI$}LT+}GWG8}Em$PMeIluZRM7U^=GWwS-!1bKT`4{X< zyLXj-pY~rp|K{2D)0eAl8a=ahgb5fZ7hj+PoMFa8uCDI%j$1P;&Q4)+<@N}D>;R9> z(ZuD5LTW)pCG&!=G#e%!shDTTB@( zgESZC%6@ct7d4_M9Hd$^&)T2cxIE2e#5#YM&E@T2Htb6bcoXdgz*^-(jf&f752o}O z1f5nqHYbbQ?d9M!&kl7_JimguOZwkK4b7e(EjFi9?sBY&W}B;2fPFNa!2czG?0C-) zu*YOO+UY^t-?z7-FI+Cv!-eVp5^siB%CBaGEIAEPN~n)C&;)Gw$xrN+}M<-~I`rIU}P?}7ErHfEr5;m@Jz z58^5L%rq#Mv#AT$|yJCx*?8wBx`U#xM#zGVS#DXu-7CuDxY%{t{Z9Fs$KP(0)x5=IvZe~tW;zXvN_ z?JW+t7(=nbvkapXGamGE^P4RoL=buAIqiBFRn-&=3>wFiM-x#krEzVfv4WqZ6@7x? z9p}?4SYgGYJU|qwPr%?5B^pa}P47lXt~%Qd>wr_LkOGY+-2T`rPHTrdqy?JLL2H$W zb~yIdMsUcd0Ug*t+F+&7qAcU|XD+8zwwKIkfPw4D@kLmv=mm0gJ!w3r6kMLHckdOz z535cAT#)W-T6KZqd>OSOr5JiI2K)oHp~<00a=PlW8ujT+rhJkGn>o&AZ1wEp&ZzPK z$MIm6OpUIn>AxOYE@PDuwd)B6Sz2azH`&x?0mOrFr4<#V@WyEeyQoR=y|5;B&aj}}8i0qcfMzy^#dSUV(r4(V4$ zveqzld|LyflvQB4!k&*efrFWi*Zv9N*o#Kg9xmP=d(b?C#AQG=p?*A-lJ35^dNBp? z3t?-CKeVgEWzrO#^eyV}i0H&p`C5WNbmk&cTvokj0_kk4_1VyDIFh~>k{5R>RB;s-z4U;j8_(5Djx;#byTzOV)&sy$D>vy7M zfZnGc1Sat3pCFW`y%!X9QJu8e4_%D(oIte8N9ZkEebhxo&FsA@R3e)Ey+M2D-y0zR zfoCLJ=a(S%<<4=WupNj|$0y-e;NYe0QsJ_8`Am5_|4J88;Ebz<|8zwcuRcr4`npWF zAQ*ktbda?w`c7$ewRa0?<_wag6I-PDsld2MR?Qa+d^Jpa$(>)UJ8&GaR$bA$Th$|e zLKgzTTy@O3hKBxt_8{a6RBnMU{00u@sv#5dY8p-JzBta2`^Pl7r4o#!Il(qSOx0@{ zJEZEhaqNKl^yg8293Sh0#B-0+9o_;Wg%kJR;!_i2Fiw-arAX2lF7 zRG6X7=Ma0ef!rw9ZVxyW2;L4$*&KcCV%ojbcp_JW+R0!v&6{>Mzhfq$`~&`vdLg&> z4I2?%5EkGqouJ@RW{^*TmLV_ zcgl4#W-QBGCitcafn_{$?IUwTf>LE?Kq%u=*Ntia0Fg4ZQnaWzmW<(JGaI%@np&*g zFD;r(jIS>JK%s}`(btl!`b5Uz(Uz{cNVrU;8x84N0{u{f{wi565UPxh65BX3YQ?+E zY(CIsh~-S2lzl)l6jB}v3amT41a#~Poj27`SqCt*moj%R?Ko4U0kOMDMV;FiuJyDK z@C%k41Z)ZBMNctog|Go%XuL`J@yK_R!@q%s2JKdb(Y&b}K~q_)7gkz9b9Z68Ihc^d zNKeBoo1n;ocGKK}iLBxgJ}}S(Vl5`ZpGs2V?ylniZB0agar#-OpLuHIIZVc8Nu6bT znKpkZ7rF}*K%8fT6dIG^pxk;w!;EoO*E4n%Tw@mP2a{9ZYI(3wPllJNS1)L3gl=^(fY4nP=V(nGA(En8T6>L|8{R} z>-kpnoQ+GTpP~yphtN%EZZ@B`;s0JlXY(<}80#jZnElnuccQ;0cS-+siq}j>cAO{O zmBLgiG0yCISV)fw$$piFCW)uys!4^u)7>N5(Lu%zIe5}!gU7GJ*tUiDXz?(br;s<9 z1H`i=DrDF>lua8OUkg_m*6$@x_w z^^ymtK?O2f7#Tl1(<-@JhZ8nZ4;qT{e?g1dO3J(khOxc9;O%o8{*J5a06OYN`5>79oO=)$_+vJ{_mF)jg zCLbmF`sTB3pOuZK0i)^Gg_zrT5;ZSd5k!>Ky6RNf-!ngI7ZL?U$^L=Xa28G>7VUd<15tp`UuN+))>=K z$3M)PUd)i6=pLBsqubtswotNR+-eGChIW$T@!qJk1il*TV)BnUlM?j~@;A*w?J$z+Vj`K}QfnW9^k8Qgx&bm@zdK6mLi{MnHQaW5$lgo?K= z0kY5z5}u=D!D-QZ8nX{xh+y$nyN8 zUA>$D>_2q+`M9n%fcPeiQ0)m&?R@u2w(+Mwi9_NmBPxVaUV2ATL9lDk-P0Fy0Q|r= zH3ZF*s(p^t8aCc_v{DWi;`AH1QH6+tDme$H;D&48ED9vV1*2-iy=m0Siq{Gg>%)WGJfeFKD8jgwO}DgT^owq7 zH}MeccGMXl7G}&qQy-O0(8m@6JUK%!!?-GxZ%rt8wm?YoI+?8b*Tn77nmVMhgIJ!# z)7~{N!J5I(w#^2cJu+(%kd%4W8r!7rcQTnk( z{yCDjO{^``TuY&(lH;)UJEI9ZK=W}OCGi*zx)JWGf{N&)UxET!#yjRH@! zU*vR%dP7D-$I{~m+ttmjG|N2Q&{nNyd>;`(v5<{(HG)FIwGUl2(K2y);vp)1 z)~)geLq>Wxcq5NNSJ2)X-xvebvEer05-4xQ-jkiNWJ}drC%`DY3j{wHUR}7(4b_{b z(x!ZCk`OqLPX(`FEyCn8mPC4Eo7MR5lUa)fZR*+4cHma^6Rcn~0!Q9Lec;NVC?4KI z*ax&(QzOV=mY7kBiF5qj<2#OTRn}+Ct3Bkl`xOm2{1=j_93Ij|4vr_ro4}U%1=9PC zwXJ8*G@Ans+#487OoKPTfXVWFX|NECgaOE!Y@r`Bjm-ej%iJ ztoTk_a%(KM_EN-Wy1L+fgX;l9R}SpGA_S`dzkcvk6*mwT&8ogLPPqm3wB`M+rp5Fu zZ_RXAA7g1FpvHJzd#lD)f2(n1^;#F5ja;A+nPZ!>yoSRoGaH$*)R7{(y`)qTOhWqZ zXgu3|{<_ml!39_V_82D{R$Dp)z+k^{Z;ez7G6)|vX&$AzOa~M>Tzeq=F|J8Gffm-jWOy0k5g@g|qk_9XHq3w9%H7U|f=Ehtyx_ zkopUw0oe-sY0!W}1*{9dP%unI3BTCs07bLXB1$~k`P5j)Uv!$o+HzV`m-sb)5Yj~U zhVy=6XjSFAW{`uMmei;n;QM7!9U`1CDtrgmG2#13MMQjuIIfZ{*o;tI3t^@0)jDSS z>xab-DZ|-ruanQ-v_fD3nfxl9<)WW#px%T{9r;)7 zPSPtOiQr4hO|!A8Ss07%aA@n=9xZ#LzRBZmk>{aplsk#1ImQ#mKiF2t4e3PGXV?_C zTCCw#wE0{cYW;9bFjj5$0ef&Jcrdy*QbCEQDsGY_T>n(2NwFk`smQzSS_QUzl(>p- z9jJ~t3f3+6zy|AEMvB#1CgYd7O)Gp0>o`WtXd`ovetIoCt92Aa;QP%th`aZma))E1 z6SmH)=|$6zpTn#fGa-=wkM7MaZv+K1Ejv~yxA!P`<*Kpfjd0VpLZaAXRSQt4p<1LH zR2=^Pm}XWC96RKWj(wURLOkL`>_-we*_2R=fA^hG0U7mNM@osl;K8b<=MbmOUtr>F zQCKTx8b8a1CCs3l8wz8_?G^$t1l*xrr8F$jFdJW~_>4)Pqi#E{=o`F#himWfUYcT( zf^U=d?acyC)7W4^kqne6!1HTCabtmQHD~MrZBxY_Tot3QYNWa}PYtiV(_gwL$ELLtzG<2ghhQFPiL~Mh^@A)`q|t!FUEJ@B4F{A8?>}f-xagHKKj0?zaLCc^C@2Hh zG@k+PbQYBwK}@uk^^;RbwiA)>w)%qZ>!-=I3z>7rm?WgBAi+gu=Ma*vZwt!XvA-YS z_ou<{ukrhq`o5{hTS)n>nt{W&rj>|D71GPbeE^Fl6jT1^AcHuy{59Lt_C;6K>J=M} z-HxGDLZ-24B)O#UZlW)2yZ!vq&B&n-tt_k;`J(@@^i$aAmeHu{rkF=iNq(^LYHH=+ zPH2CF8_)T0G{(i8VW_*wX6Re!-t*|!$OioMaMc8cS4svzyzV}9S~bVUnj5{?ms-R1 zwC-?8V$n)$)f!Ng!4#PLj<*=@egAN4b78hwc`6PGVdD$HJb1Z5c4bbTgTuo^Tgm!h zGq}C{8B|CWW|l<+n_ERxuXTb0uo6G6@t?rl)r~x50~_Fki3hP(cbZIwaSvk{W0bb2`R)np z^1&))DDU5Z?@0s>q0uI8KT>qmdWpkyAij7uN?{G44(B~*l+8Y&R7Z|GAhbfhI3_4w zLDwd6I%T32Y)dXOYk4>l2~}O3I=sm8UMYGK`RUDdCES+q@CWU>?WBG zz>O1pdE)i0try!bwq9(lKYzLLVtcD)WcPqP!Q?;%CVxyY&S%ju9Z_C93dh@`WWszD z!E8P!_o1JX=qh7WFp96n>1@tsXPD$Xs}2N&nB7rA7_b-LJNxsyx1HnjuAUfX6K6#e z1-)I?XhWpt)PjJ?PaX#j?$>O$ZHv6zHvk0KeMa$^m6jX@y8LvbBLE)b7;+%_Je$T5 z3AvW#&H?rV&Ud}*`S??=;uNf4K0ll$au`WI_b^f8O52oUl@Wd_bYPkU%X+8v0>e>+ zdm*Tp_r@V=VQ5PZCV??Cl{_l7eUf`M;e`S{^>QYASt{U59f%>-(~SjWf-|lw0J48P znk3xgdVO)|>C4QoTmLHKv}j)s4MLP^*UDq|!3f^&cRD^f8YLGKxPXQ4ZM{(Vv)W zvD19qm_cSF(5&gIZWTRM#EUkABXUcbrcem7UD6YROWbPxpNMA*wzcyi7ac0W^T9)e z2jw~^?~uVk`#agDAJDn%S={R}sU^Bh?$|Lxbe}3qqeEwb34^dV9etH)Z)N{ge3ur( zc@M*u+h!8>wNoHKj4FT(S3%PT-rKHzxuFP?EMwstzkdH9zKrHW-7wM?Ko~>jY>wjv z=R2tLmLKR zWbpCV@#D8#HAdfP5imk2&SmF7~#$5{?&@_9|G;IN@#O6 zg*HQM%m4P<=w&JM0c%u$hhBf}4mFJ)A@6U-u@%>jHCu8dMZiwzSy(0!ufccPl z2TYBqJywO|=W9jx}v# zAauMxVmxU8y}3DGn}H>j>XF>XF*+6Zmz{&v6Jila)M=;b_2;JY=rwiIy-=!l4BDba zGYTs*QLpQ2GWFL@Ym^JbaGu;ZdV+sEgvO0WC40>;Y6=8c5d$KUM5A2aLfsLNHLJ_A z^Ov!wyy7E3p#~N^o;l~TSAxFQNp@GjO`V;rqn|`dX8pB))?fc;)_n&%0omgTbn==Rr?j*){vPW`6jM zy1hl+uF-KvSe1nUgO}dH*{U!&0d_zqx!?8RsD6jXrhszF2gg3(nIC?m!Pypr6Br;m zs2PK_we2aiWfkHsyj94o_9ES`Fw_A$q*LSXbEvBfvps^|VYcVON7YZ4G1Pvc?;&Nr z@a9e?hvv@S^la^`!nm^f?oOcBU~^f+zkPeW3`<~%dHMYE!2~^ZaQK!a0&Glp>R56B zbl`&(jXL7!nW43O0)#0+e1|c5*Rb}oqzS()`H-UI@0XZL1;#LC-CusJM^#UL_f+MI zsK2>{`hxL)3?FHo|Iuzqw2Ze3Px#L#&Ou=r0&Pg1{XK}YFL0OSK{kIYp*AGb{vJfy zssr?(f^A5y{XK}aFQlxc$8ud7B`qKT2Sn-GQkPf0{XK}c;UOzqBGu?EK}Z?s^VXD zbbBM~mSf~$9P*ZJDH!qF7aJwBNxC%pUD6h#q0RP-Z(cnA=IQ3s?U&EDo^C#S(RuQ8 z1Bff|WpU~fmsBowy)2wd-~FQbp~h@do%<7*?~2g;uq31cG)9Ti?s(3W*F3&3{lfeY zuQpmyp3SGd#QMpmW~rqTZAt0XB<$eoDbs}q*{P&4f5(yuGQQ(Qo1*fe^=B?d#+Kx2&hIb8JSl_ zzoZT{pwV6Eo>ux46+wV>DNcPpAbV`+Z<8p?F26Tt(!j5Twp5rca|E?yES6JKQN1TB zeu}2#AdfLmdY4pL8v=q_3K^9o=Ubxz&`H>MO8nTE^pm`oU^ZP^u$YyA=LXh7?gB<@ z(WZ*GySAq1xThx2pH6G-gD@9MML$1iIuA4K9m8x>_wL8M(Jp3kG(0))?PN3eLW{%j zMtf&WmZAxn?MTO8uOk|F&O@iSmRYf@I;E?-^yKD(fxpY+tAw(>M3KnJFi06L6bSUa z7FLc8-UqOga?8@+)yh%;DyOU!2hiCKpsv0f;BShnt7rRiLpA<@nWII9dkD&r??{?2 zN&ldgQE{1^QbtHCji9U)U)ln`wn8Vm=@A4MFK$e(t1x6k$*6O9J-E7vn?#Dtc8`0w z?#-Giq=Ja~01@S%JvX9e;P@c`@$QS$xR^sWgbELJMgdsVHSKOMHn}bxERro zd6F~~$0--Nl{5TXR}SD}i2GV+`To80q&zcQQ9^ELPAe{!k<6E-(xv(Rn{{+|L|QdH zU)m!!c&mJXwH#?_h%wkxBln6T-*>L+5cdPYJwbP5w+-I_PXXnz9ba3%{uiJUPeQ^dSob~trzbES(Yv1gx{ZG91&$WvW>sOxedc9%7XdU(# zwE-Lh(}HzAA&b3~uN>fVac`DPb9PAllth0YW5k@lYnhZ}$YBJ&_Djwr?F3z!i7cl` z0n;`sHfpZ6c_^NygMSNBaO>zW@%e_Gq;lRuP7zz=0^5Q$tg@;?6Y86lc2$66@3!PZD% zEQqM7tK?8xd#*aR0o-$}a*%TEqHvD4KDf~ddB|uL(Rn^jWh@%}J9@?cWz6kpJb-Y) zcY+J_^l(o`LR=>#JbjJ(T^ZX*1s&9vwFq)pHG;byzlb-gZOW;<2!-_Gd88sMK_*mo z78H@H+&E1KJYt%93z4uoW*jUA6_W{KIH}thGU!1kbxGin(Q88*V6`FWFr;|7OSF(# z9%No0+M)DV<@q@I42fd~fUJ`^j^riK|ru3~uUqwz3ksfdo)GI1=kS)1-OvQ>p_&>CO{b_;>z z5cepK*gkH{dRjQWeJfJhy}De0dNsspJj{q<;ANSfDn|j*Qd}n?AiXErsml#izp_An~PlvkBjz9AxU*CNGTpRy1*Km)T+2t?hoU#{@ z!c6a|%;N}^*vSZYVUVxcPu4oCGoANlY|g@;+G92pq-D?mgGNfSHJ+@6)zjT^biIU{ z1w0FGw3&3n^L^yeM-A>rE}8T`neW?a{$rZlehiHYeDsWrP?WfkoHVPf=WZ#4XfFpX z1yx`&;0Ox;f}E4HW9)3LpXTx9Fj-?iKoPcBvG;oapmX@= zACCU=*EesEPfq{ev+nu3AAkD!Z~qft_86qA>-3jT!_hdK{9~HW<~O&W@BX>5x%G7W z+4C1Kzj?CGhRNh~EiHVk7OK&?rJc99swBp2^1AhJD5q_c4b^^YZz&8^)7u8Rq5S5VOo}N8fp`QZ4z0s|X@aOiCF( znh$5`WC*FkqisV4%OeP@EO?C2<6)GiS7WxVA==S3;Vm>*DdrTPCa7$l-DcD|UI;vg z<1xa7PnvS=GGSB6MAR7vGfgJbBnKDTY@Eo5)H-}{t%Z2i>^lZO=3uXe z9Pc3m#s2>n7?2otlz0+dLnz-F?L7TVW{{lSrae6bBb$=(uRmowEnABWDQoO_8ux6PUO{eg%tvD4C^U1xj@B8y zthpqI?Ydex#WgIFWHR0_Y`w9eA5B^YxE7>SEuvh#F#8xn1&YSVZh)8>5=id;E~x8v zgZ@m~Lvn#zYd(q)8yipGYzG)7?0me9ql$Dfv=Bqfi|_f3^fsHrp&s@2jk+OFTJx63 z_lg{d$Bf;Ew@>i2DAwx;_-j*f3>Ykn_kbn>W3Lqy!{|0tbgR7R78Qk17*S!tr>k6h z&!*!2n@;vWRjby0u|2193WyeYR$BrKR6Gh0 zsrlfsrQ_@_xK<0yAD0S-_oz8zDo#S!2@Hw zA11)iFg`-PzfW+lS8KJep2XkC!*EP2yLyR{*pmjvjD1!U{u$!Q|@XiWZk0ki-HK6>BS}CYcg)Z)V$*xx$4i@$NxH80>-JA z!SzR4GOM}*!twkZBfe+jDr-yxdZ0IrBFBK zU~+3SCby)vPeBP6X?h5kU+YuuvyhJ#Wg!i_hw*o`8I+h_IcZT|zS(Id0|2#FGNc7p zcmrA;*za!$b8s1;y`I4eV>RspnY~Rv;qG*BNw7lGd;20!5fxA=Tz>On_<}X8%TFyy zi98mJ3=T#^dPILtCYZTM&lOqjaOyO1yiB&lfK2-{3Q>VOA~Ecd@hoB28a&*_G7Y0? zJVz6F`TY5oeU49fpwI-)&Ek+vdHx(JJZv@Ni2mpXSs90<;OMoa(()EU?vDZ<1FAh^ zOj-Sy2DM|tRtKLwCOVGB$k!N_BHBhYiCY>TT`G&49GdA2V6RX}vw_*B?7m?fMx#=1 zsg!CUqpJ$*{2sTnzO7!XmPy2y#cC0+JToO4M=S+V$m7_a0`vf>If z9qY>tu*(RIE(WUAMNk+(A1Kg?zV7~ zR~VYAiY#5o2XT8ytM-j%0$uEKO^^2BLpRzLJ=&V_dS{(?!CA1XMGw$K&5W_S8r(9U z-J0WX5Wqu+0IJI~u<#k2f9igb4p!Cb-74;WlaDaW;Mrybu@dU~gTy>CICem5`uIsp zj=zU&DamMt$DhUkoF84lggmM^o*om5kM^Ba`p#_MS+(y<8?ZFJljJA7CLaK|_N+>e zJYJL@;fHN`rf{nihf@E)FMjvC{Je2bii$-2UD3Zm+ifXe8tS10ubX;k8uRqtZt7Aa z*i&Xc_%ZSr=FK=Giw|c8dUj)sV09DS%e>zk6Y4gt#0Q8sBE7%G|Ct+)isEB<>Mz}s z`AZj7Ebw~XcPfJWn=DIzH!djA$yQVy@w6$$Mz$Er(xg(O*)lKS$tP3{z*2gN+i;Qo zl-)EwW)9zyEJRg1hLi#$<&Erz4+onxN~m`@%DOo)-0*NC*%=Z83SCY|J+ii% zp7rzY@_E`tHk>dqiK@#gqed^{wL{*Mtvc6tgE&W62`+Dk-#=>`-TWX zw;XV@o%y!*gz50ez;lF;v*1KDMnI(Xjz?sm4u53jZIgg8p+W9d>*e7V-84tL=iH63 z6$^Dhbuxl$cggCYafYNe%-S#Sezgb{W0$mLvJBZ3qLvzT{tQbZa)lcX4&{iJtFRcN zoorJ!$~5WbW+0e!yAy0`sZ8EQXUbAEIUE->2D>q?1^ZZRo?pO3BlJLn%jO z0Ss$CEPC0p6pLD(0B*%u{G%A0<=KiZ{skvu!)4!-_WxfR!kqQ@3P)Dv^zYKj@kzJ= zr@b*umfgn4pIa3mKftWFl9s6c<=Nr2K~;EQW(e)D+3s|Vl$RO4090gD90y|y*i3)> zy*Vj3K$)5c2*AS+yeSiIVYgN4NcC$RTBUCm&~XDK7bSl$e_bjB0}#ze`5*(V@9&9$ zs#8^8HUv-!MjF)AgAb5(lRYKtu=gYLe$EM)wV7_}-qu)@tDjnXuwd#wFh%MC3hhcn z3Mm(vG=4&IX&z7n)x&+9IbLrk?!E;I+G|&TA&{$uD39!3%WrnU322m?sR#C?Q=8ssnf=&~DDcDHyn7)9@b+1GQzFqpZTxqcWhNUt z-qC+6+r{`|B^~7}mid|t`dqf#PrcjQ@#yL_ot9IeNiCdMBDe9*Fq%>#BvLK&u0f2; z3cJ zuz-W)rkL`wPKN{(9z}pFB>R2L4tgj0z^$iLrORVvyFpw5SJ3|A0=5jr|=H;Ffi&lo?(bp-oUXpS)x%%hk#lF7h6U zt-|Ni`17l5Tq4}T`d>Y6uT~ac-XnMiI1kUu=_nn;mTe?Ut5CP)7r>JQZys0QTs@1| zm|n%7|D&Iu#oquNmhm@vcN%}e$b)KyuYivnmStb+Rpmc+Re<(6&o8QL!m&3_Mdk>7 z{Frpl`{@OIJ3a|I!;cg^<@TmyLV3{r0bs1O%);?Wm3)}hHOP!#h7eU(1lDq#j&p7T z1qA-qz$>((=CSuvjAO7GY2~sgC#NVyg3*3jUyF?t_y3e^=KKBA;b^cSL8RuCyiU*O zlpF!yn}33iYkMs(0Wf-}T?UVtjY&}tnir`6%ZT8*NKppgMM~nqm|1RG!ro5CX*XM- zU^cm4pp*srMFu#xFpGUo(|(?o6a=HLpd6LiAawPNhFA{MQF&QR>RW??!{W5kc?@!| z@-jcm`}yPsAt<@6p6(H$N>&+;f$}Z}4b&!aETNyOICqjy`egEsD;2rEx`^dziWRIp zNK0h&I?n=D+-fl3vY{IX&7sm>JNd2{f6T_qXzUvD;ebSj>@%%YAU>n*F8Bw@%S#R$ zf&`Hefyp(rj#oOMj|^pFwhveB!GpbGl0A5^k-Xsh`t_j=7{GowC>|!-i{uBUr6lc6 zrX-w#>#LlU)t3J|`;;Oj#{r2F`DI^|KX6$9-G^%2B?@rljgTO9b^GQL zsx+2XCWFzESHNq35AN^zxfBDN_Hjm(w5C1RQ;}9`&L=rI;(&vv~DxjXwSN1lo^KD zE7d`}Owr{5xICe~+tt}{^^>{7osK5VBg`Igqv3c6Nx14b3^bz%v7(t$wZ~yhum#^L z(iONF%8;hF8i3QB$XNXQmE(e}KhSCZ@L>hQvBBe0$;YteYQeLUSpcpChe*4CPXDnMPqT8{4L`aUH8Gh*2^NReADd$D>7YpMW&0bNZ8=C zenqB>tq8X`z59w(ImWpw@-c|e*8ozgMGj?YzYg@V4uYX7x&Sl|vH@Uaz8B_gz>moo z)ibND1f9Q*3ScwrFI0NK52xaZ@ytY$vlW>$y!6 z)mzf*VR?(IFpCi@p&R2;k@gG)fNiyG-IHLqHK}p@0%!_kB~FrEYiB^j+0oJWKvQ1j z02uQrpG6EhsOy#Fn`t`kCFun!T_?^dBp+TCT@rqj0qN?=^6Ds9Tyz|9oQUnLhSK&x zK!|Z1kG`+SB4 zAfdg3e|7+gOtNt^YF^?h-N}po{>uH(W&YWs_JtDYdYoTePLe+sH!#E&z-hNl5m7j- zgo&gFB>dSF=yU|1l@&Il$i@`uj=~twN}k;$7r@U0hulie(Ypu`6?)xWpo?(N*B2ny^DTZms@wQOXnV;j|jHXB? zTjgbo+5wp1HG>x=*>Yt=tO;{kDG-IBKCu|(nRP%mqogv}(+C%MLap(#QUBMM5;)P$ ziu9D@A#|Nly=MmxF zjNGQntMU>65>eiX z4)*`N`)cP^a)0{}e&25;-|ZfKyZ`O z+IhRPchrWSIdsT=vh!znkQ{!y{pJmIx&0nya&U;_e7XPb`-9zYzCB95-GB3H2OhrI zfe~)Mc(cRZ!31Bv+1`E2F!pNu?e;f2RC6C%I-sI5%J072p+~!WP%GJH`~hq9a)0mW z0DiV$#s^1GmDdQ%ez$wL(@M4vb`NoZULWkgZ6&zGP-~wWg1UQxiE#P-U4kO;n*&}S z?zl0%+Sz^s?HytRxXX@C0Sce0?cLg_UK5ou(dSUEyH1x(W~4 znq_+fDA|l*G{&G`X#&$C6bxj*0E0YGaEZ<;pgz+y1$M!x?iA+~5J^611DfD~4=JL; z^J(99b$yw4FX1BSj{qU%90i`)2n?k65w8w!LQ?OoKbg*|nZ^FuRbEWX{tbyf5uMn1 zxFAJ@r+IL&8$37{S&ZVfQe!MIEd)`GQTsyyjp!jdgOUVfI+XUpv3fjYFk*Yl>Ts*~ z@{%P*_!MAoX#9NG*JjuhUkQ#kqQYDcRcMh>Q38^_G9g4nei4OuHhEDT@g`eE*3Kgv zc#;lcEVL)q82C4`iW!reFUw@eDc8csrV93~Pp6%lcYc4o-E@()RTz?Ckt|WdizPPS zwC$U)B(Oj>kTx5FBE!Q~JcDL$5N%GPVS-2Dr;(RzWZI|}Y$|g#{oFkSgZ*2*4Yw8CT=AfoogAMpFh14tS~& z$~OIAqvsUb1Tz_!hxjAuY`7^(%S@5u1oYBSoVQJ{?%J%nEf1pRw6wl>OZwN^jCNtl zB_K-&FoK;`Pa-z1WY$31mbU&8*<+*2?;hr&1vljByOl$6&{7{W1DxMQU#E{4qlTnVoPSMRKMKutl1t{pSr_z z;(+%hIfvoFw|m!@z@77!r$R``M3LOidOpFTZ?-B~r-_b1l&dlLGvd5EkJNUk*Nta@ zV;`6_X^}ZdAhhR+_7bR_YiP1;w83!AiEcLc;`&uCE4&TQ$%Sak zqYN!yc;RHXv~gpAv8&8XN=ABNnv+pdi)wdF4<3kHq&(A>SZ~UOyBz{#OhdB^XNMEp zMGVq9z%V3fvgA+3Fje{axp#L`ynHU&tKCAssfDNzeAE)g6{V|u3V?6?r&1@#XxHDW z{tDtV?4*thNnCCcET&0AGfm?wV8+7DZMpqaY-l5xydod~=Xy`PCfsGv%P8Dp&0r&B zkH3wUYE`sP05d}VREU)riH>F5*mUwijvu?cOwksCDEU~6BFM%Ui55!AxaE-b@t(z( z2tR6b@>;gXVM(`kw&GWbOU+h=88?x-lyBZUrAnN)f#G#d?UW;8Slr3#C~Wd;Zv5w5 zAKdJAzaN#81)`>p+0EiYrRqM&9mx$KsfaM>&kOVFT52&HaG2bx#3)!UO{s;#0*UPu zBZ0I_fy+Zzhl}PzgFj;()Q;Gm07v8GQB>+^AeMuQYqXho&3wFLECCd}P4G`KmLTdS z0HdZ&EwkyZP!%jpNCb5j>q=HS*{o+lXRMo+1;0q{_l)Glxa$R?h-PFV>pDITD|28!vkJ38?v5wDzrX>9<~Bd?ns!!->f*86QqP-8 z)oKCPm@XKh-nDp0mV>9U&}wiP^7x8`=)eL42QX07VD0`?0Mu1$hBsCxL`AA>P}IHA zM2-#)w;Er7+Gz`G#n*}-@-~ar<#n>1s5}XFs(`uthJ>er=K&|R8Ag1yDw(-$h`uG# zf>1qkTVTNpB|XJw_qMD{TiBwL08|<^t+A=wW;K@7m%o1C5f?uv2s=U{Z2CEB644fe zQf%ZyxL}XRMFBiOFCTN#Lwtk7nVe9*n@@@OyipTNSa?YVkT3gb3H$=3Se#t44K^8l zVPELccYs{w%KtQeSo!*=X5;vW@`uBd2VXZEjjuO;X#d!0t=;}~{69aeoIJ$WKeUhk zrwu@-jc4SU%i^ zBIcbp&bT{+DF)Roo$oC)YaMS{jmbagDy0}2(+PUjpgjd%&m_kt3mQsL`~YM24okG| zBN_-V5entiP98jfd-TBrv9^Fc9AuNrqE{MgK#uIr`3?M*#A1vrL#Rb|>Se9nghUV1 z{=^93P-1p{nUUQPM-e0aF*L~OW4@T@3XF~p^?tzOMlmyZ2bNKGS#rs0c&1 z##9FoRQi!~SC2`+y3}qjk=4r*{N)IYv)EHwg_|YvkEY<~ z6!QbRg?=zj^Dx`wz%k@hjg#xTXellLGam;yW@vqb85qV_DAL*=Cg0`59!4-Y!%Q=( z_i35+?%?A=%RV&g(pXwKFN&43bi4xp`^QRJ_Rd%SKAnDAffZ@0YLsPyyiL?YSJ~8E zasvsxct!+PG;xZ%ECYzRT=;&@#!k;4w{I043eilgEtH>=SK9J(+*wzK_&&zmRRda# zo(!cG6Bz`Rn7|39pxXHWajpan!*tb>P=TkJqr?S{J?d>4zo9`kiplbc*I-v%$1b6P z>&%9qYqMqEIJ41}SS(IhSn`v&cF5D?tStIdiugC80Qi(ch2}}iS7xJ4ujd0IED>Tk z_tVNs>E4fwH_|E7pRcCKlR~+}Y*fOc`%N9OUltd|BvJ!30EC0JvV^~kw6`U5qEdL; zOg;(E0gn^kNa9rr$3+bBq+zC^JIBHoMbUeyE5yBB^4=%W>-8{9h3mp4!0CO8c)ZYf z$os=oIEI2@L<~w9$WYa;f)#!$d{PCz@Z<6iN@HyzEE;xuF@Eel`wL$A(|23@1tkfEW!1 z0Z0w82L6oV$eFPVGll8Iia<|X=&#_v`W zPt*vAHmd~P9}6)xwh}GCK^IJfa$-+IATXXl2sTt-m89FYjTmi%WOc8jr$Rc4(-0ue zSZXCpfGhZq&_eJXNh$pMGpVU~zufJQx6*acfdss=F|O2Gt8dv*OMoWmrtNS&YN)za zyWKt!;(sUYUOJp&Y`yW_ohUr&eWs_BidY=E;ZMbI=Pv%N)FL~yt}f`%O0*Mk*FCrv z$J1d({tkd#mu1N~U#D4vcCyP+Wk*z&F>sk(42+c4Hp@3@7w{*b(Ufs#me8`unrf>D zyC_UEl7_N|^l=7F%qUulr-t5<(aFh0Tc-%QBXST^mIw=8fH=l<`SzU7@4m^oXV#tV zgfu*EB=<3OiQijukt-Jm>5VQvF1vn`{#SZf2!qs ziz6^JtSx|sLW3YXyqVVQ&;?iy*;`~FuCspMq2;3rc4sMttbR|t zYCN`D_+`<8qwzP#4doUs+XlA@Qn<7eJ!6B0RIZ9%knGum?ys^WjH4+061&R{Ih#3x%OY+YwB)Jpf*+SCW@a0`pJ{p^$pwhmKg1%LH#9jLorv z5}g&fi{Sq$Qn}^y3?I9z!$DSws3*r@7?WZn+8qo{`UoGp{=zrycKAe(!=KG{uhK1t z0Xa8edh=38M&ZX3fxw=!k}Eh!3c&>OD2Rz|n`aWh?yfQvyU;6YrIB&?#~rWw+FL%_ zgWAglx-o_4_i=rFO|sb*B5>dyx~H@%E2H6sK+VcUe!h|qU`g8WE$kf-t(;>Dn4GL! z7K3bMaD!=sN%Ys^w4&89h6Pt-C@bDL{LbeSBzK}ZWEK812#>eLFvmdK*mW*fC$-d) z>lMYjQZ7{Q6pVAmDL}QHpNz}z?VY*^8i=uGS zH6RR0v%!msF=vV{9hIKRw@ZAnw*f7@3AC6{HH+b)5Vs9d(x_F-(Aa9^f3(#BrqRN33lY$6m?iQrYPp(Onqh8V9}4aLymeQ)%Pf#-!3oPKgtdJv%NG`-R5&vi z)T)oABDunj8>_7()>iE)w@b83w1L@l3Kqm7oh8J}v_@9mg9qINrbhyjjIq6DHN91d z#uP5ig513W_4bMpabL4ct{}KKBbnR#j1h=fl?0*TLUI7|pMI+BUbt6L=vS~5Z}@9e zA#7B3bZrivK>6H^X}83K@&WSNM26JS`wH$QMwpJl6~UNxMziq~HbyR@L(CCM$ufz= z1d6O3J%bTkqZW_s7u-R_)&Z;H9~#CACiJ#KpbZ+=LtFnd#iy!!7X~cSMwMMNHD|D6 zheQ*20%y7$iO*s7zR(fq9F0Grcp;_D3X3_&y{(l?S)Enjy7E|Wwo&R3Jwb#eAvQw! z=bCtc+yW}yGpE`GR>C%}&xFx!wNZ2mI&i)Kki4 z7%P}Fenq-l!Evm}F#I>z=E|bOKsLx$s3C7p2ncFlP8?IS7||G+Nc&W zTc5-S?c`0yH&AH~OUd9q2_ar9{(vO%TD#8jac_tyP0^DG?^{)v^I|_2VF?&{pc=$F zhZ*@1;@3Hf#7QA#;au03bT=NyKS!@LBV~eBJS!{(2WtbDM+2WEoViP{NmEY+I}Yqg z%sSM(;wT>2>X;YZNEAh~P*N`&UWEtAH*_gKn2sJKen?T9$x7&pwpN+zs=eZRIHxjm ztp9+2lYoJkj*Q*dYOwa$tgOCAfkM}>F`RQooDFKpNw+-V%nYdi!Zli=Rp7w7GJ#34 zqyZ}M>$D5IfFx9a2aCs<6e_c|CEEyPeun;6g0o=Q8Zu6y*{R4i9z9{*<1hq6myC?e z3RPM)yOs0RWUiiz!cT93AGb@vG6B_^2g47wR<|L9x~ag9sDWM+@T!rxsIHiZfXrwJ zj=cr}2+F*d8F4r;wj(-ha)M--DCYs1>Voo1jXByyFcmdr1$yQnl0|4995>&xWY=sC zUcf-$_+)gra5hbjg`|4zV*HT!3v0@BQ)CRnx#H3cZR}IirPn}%1agdMS8xg>we@uG zI1kg$^KkuUj5<79b#r)0Ll!JLgoS1H{$9ZCVc`BHZIKh6W$8J7hN1eyEjC4|Q9M!s z0|WK?&k6v9>?^=PJNcHFof6lM_3^N#(~+nrsh5!7x(b=lE6aXf-GTAMRe}nN;k=s9 zY8rC*YNlR748%3UCks$Av|t6-p%oWX!S`tT`9V@Kd@w@nDy@v+uURrOD*$$2S7nLa zl#AHbJ}2ri4POS@s48K}9PZb&g}cbY*xs_Vce9O?8O*kf`;P2njE&3+uXc-K9q!7s+jLGh9$tF=ECz4rX zma!P+1BFv&4yW0*RAF(iP*?%9qucNtz_GX)^-ok5>{*SnQ4V0`+xFm)bU6cs*1Y-p1hLee5T{*Z4|9?WLnRzBg+B74 z5pyu4`}a5F@>?MkoFO_1+yu`Oiw4`hxNUM^A{78CMjZ4EphQK@r&(F&4sW6?_b4Jx z50K|Ka#=ADEBp{ONL~;rlP5Veh&juWEnDk2#1rV(HisT31WwAY76%kFA~@>+(9b_& z9IXvvQN70AW+{4<0*s<%72>&zX-W}JnL8nG^g5xr8~==Zp)(JyMW(zq%LK{FASfYP z$q`P^nV&k#+7;lPbw%l2*deGkzYIxff7`*iCS!7FuQgbf@I(cR5OxO?>|J`CDeg55 zEk@q$CVin@yGg{)_*uh>)af(1xa_fJ{xX7o+$ZNHC~5gm8mAJseVCgDZ^!v&^pGffWV|42(=AoDO;2F#9^z8QQS^SMeN=QBOF^;VRRk_GZkH zbF!)O_~7gC!9(9-Ah-WFG13Gg7l4zi2v6Ql6( z{;tD2tR*qodzU3NZ&$pqGeqsca{VJj5JGyrjKgI|2D0G|#1_QiY>j!RlF-805 zYTO2zwaJ%_4)sJ@*m#fT4Mi#E-I2<=$U;E(KtZ4wp+#U&=SCOb422q8TyI_bICD%gs{+FvJfzPqF^YQPvalE&$& zU*7#{5tw6_Cb|d_*%PRZHU-hNHXQ>aocd;w?Bhq6dZ8xsIOVO;7(=p-N5e`Y7K}#cveZ6N`78jNoTF{CNFt1UeH1lL+OklChL7S&QTc~%ldtKo#yCa z@wyn>QhIoikPAn}1;#rV!&CsmE9rJ%JbrY2nDbjst*0`9g<1G)5FK74yyz-rD(g7# zQ}qd|!6Z#5w8u8jJ;%KupQ~w^S*e^+Mqg(6Si&k&6dR74;kU}45n1GVNtf)XH~<@t zi8IA6MefGBq*5oz`%%y6Nu5&Hz(jhL=6%dEok;qc38rlsrv2HA&+~g}0ZV5=q-T{a zFdgFhYp9Ixg9BOlR^5z)tVB^I2cEB8v@wFVSmUknO-!(fhItVQrI4-Mlj!tjc^F_bLPYU} z8;ie+;`l8DMEI!-WNYu=TYy!<=y)&@7`~D_kPQ}_pi&lSHYEsgiZ-v zB5|~{Q^OQLYkC>(gh9@SfQE8vD2hSXIDoh**5KX%Tz2pU|7st=rA<_LO(W~7EM7J< z%C0?CW%-JzEBQ>7JhIL)HHE)ah2H^&Jh~hg(~HZR;_ItC?Ri-QA7K(fY4y-ZB-DmT z8%4jjTuyHKnTRdQcA{)0Npq8rOmIg+&>Yy&B)esVW(_m|sZfN)CgL$bKI3uT>t!}a zkKGL_SV*i>ZLUWR!B3JOGHs0I?r6w@)~jZhK3ZO4E- zfuuFGxlkHNjbLl-YXOQNNHvKkh&;2UGSdX=HL1h)D1{5gqh9oj*?BdjB+P0F$G6my zfi@%KAH)6I@Ww8+$7aFZm@uBjKo81$ZpWmDLQ|xHU`IR>{APw?bMGZf*|4`H8(;!@ zqC~ZyBN;*MKnWNs*(aSLVcf?=br@DmT9Un@_!z3makA9y7iA`?ClF5e5fD|Im>a~V zXu3x)PV@3`(#s3-=e#F?fig(>iZzLaru|gu+}z@0_c&wtYt}}+Ko(^h%K~NeM{1sAZlya{wGApp78(Gv!LL zc^yN3swQuuh;W&+1l)zgY|lKR+(FBXlgDJwP2{btiZPXg(?AwMUard01W3Szp`=6J zn%D&hpf-r(UPT`ka4IF^=exG$`m+(1jGU9%EyvcgX4EySJ7?6gdJB$Qm7Xz@Na-lB zR0j}2DM6POm}b3aX&r*=QcK!Yz_yJHgQTR*KP{7q;uOuXHj-_+OB*km{P!iP$c;u5 zT4w!5z_G3^niO6k5KqGr&r*dP09-($zlSF@XPXG*IC?T9clNz{sdYfUn#h*cnjwo~loo2kmn!zBu<$e> zC8rs}B|OF}dxI|w_0EtY8-$(J3+Un;Jr~`}kggC dUPAg2G4vU^z+ec=7_0Raa- zJ7djj`D-pKX~D9==p`%YyqGvLaP!(*{m6RP>=W4`NE3}_tWcmN?8@M7t5NYg>;KHK z__#KfY}e7rXeFa<&* zMnXU!KPL~*TNc1JPMf$lqU&}bQGt=@fF7wzAybk6#rIzIgepm)7{PH*gCrC zT$b&zE9!IHBvSlWzA7z}ubNcJnSLcyEkxef8p?d@fsCPz7(gc{hSJ%uJ# z!ZvCf&P&P|T-V@}J2%K6T3gFZ)*gz(3EiQI_j}e-+(80kD%53RN$!${rQ{SW&Q16B zu1jO#x|*p$A;ZJ@rWY2IB@G11+fYA5XVjdrneA2AjPH$RqkiLYDy-3~Llw<7zu&A~ z3RbBc;%!|s(WiHYJfx)RS|ec=7HBUdk-JmBz3gmy@qR|9FHGJWQ?**4vBaDnDYi9bWUBZy$);pmnZ2`bIPGI}cUR4H*nav|)&*LYkDIr` z4RfSh2H$Ub!ZL}lYB>*k7KwpuCFes&OCP4a{*5*DrW7k__cEi4Gerf>026qgjZ+HP za5hC2Sj`3XQ3#IOh229J z6p17kBo;l(x~Vnp!M$bYTH7Gn`$%vOQvVd=kGy(7bHi{Xhf!%v@R7@*k@pJPIMK?u z<}R}eC^SV_%L#Ta3e=pDu8Ee9jU30uqYDR*hL8&Pnbp_X)PiTn^yj2$cZ!mQ+09W| z)#!q3)Kqu%{TDW}y=^RB4sFTKhpn2oCl(=lC&#-h8zKg5iNr@B(UOYt1(u+mXv7Le zu(*{d5u;99FIF!iS32*f7wzPI$r?TaQZj~sLn}rCLs1(_bt+Rim!nfCh$ke}1I!}@f{2!X(u07hc zi|;iCHL)vLDC!Y~kx&)CZ>aX&LUmJisLf6KjA)bp`@hx4O6UW~efTls1m-r>H8cwA zJ2t`P9F5k| zYP}=}X-4cQ@WGQro|-MYV{(zY+A>3cy-1-8hgEux8aHI(8&JK}`nD#3f;wb>p&4@zi zCm(ZmQjMPE@NMml(iH|IVZwEdzV6C?d$T-fUW&MGj6upL%0X$AOea z*9fRjW949O*z6+h-c%5fk4n{MlAjH8T$=o*em+@KNo zioHd%()LX;l^cxh|D+i4xPyX>(ySCsnUMgBm}L>JElFfEBU`Kih>B?f(d`hm9XA12 zK%Xf*%8dmGRw=!0Su|we!j;pVn0}S`sEw3by=A!?jrDWX+HV`-nAc#t*L#UgiOQYE z(Ml?|^=xRdX_7IM+MUQiLwP(%`@p=E6sp=m8OK8b@WYD&eJlvrqPr>FV|7Cp-p0Gl zZ3*v5fIl~>$e{A_T{`8k_Z0!AN{k+i#nGx;4)q6FtSe(I#SX4+2hv{esCYdth7+|Q zgrljbBr<5|>P>rnDEkXBmS&Z+(ZL%RHI<;=0X$wrsya@vNIp zxNv`P;OI-tlHJv0nx8^~g{xvTlm>OPFS7^?*~Gmm`3L~YHsOYAZghXm=w}4!IJD!{_Uz?0U18}K z#S}3N>TM`-&$jNZvCA--9@RS5L7J&R!TQJvxMwpl2`36|0mp$BOEmDFnNZC{!*;o-<{w#RX$im53g_)YL?F_m^=d{s;`D#BpM@ zS%gs}+Du)t)uEbH2WvBn28^zenj86dI>sDr6imp(YQDT4Y^@3fIPG3i*yT%3c@7QO z5s(~_5iuOaiwkr#5+4*xGmBh0mHZee(Kq52g5o}UwCoYr*W}KS;iEP@xxqE6N^pio zOo5Cs3Fl~?aE6qhnAt_nzDBK71Qf>f)egC>Zu7|Ac|^j!;NFUWs3RF|PFw!z6Ww7c zHjPw(a%RlS6E-i;&+>jgxrvj|urx|2pp?WG)BLjhWsF#w#cbj@YAgD5w$cIsNv#x5)H=dbWz6O|`eUjMGWBmtB9WccL*=D>O`= zZ<%K7!AB{AJd10-Ot{1$hKa;&&M3CqHA^zq2ujCBT!B_=luQu^k9k|ml11YA&?%Pk z;Z2ebPh>nu1HhAI<~~ zhd_JjkL6ic*tlTiSm zPmrm1oZ9Ln#PC)#ip;iV9Ij1ogQ62>19*GB=~~N%h~Wc{UUtvBkOT3u^1<~sS%Y)1 zdndV#m6IL^Qra`M|GX%uU9TP7@HO2YM1qc=RuU~l87x#G7x)OHaKx}SjBlZ8TD zL$SqnhZBVIj*xkaaLrg|xDVGFqF^NsVZdEATURe}cVbcoq8=pz5o(iF9du_>@_GM) z=K$kIN-RlgB_!(^O#KouA<-!!@MbU<5G2xC8duWb%H2(=JyHH8`URd{aKt@;aCfv} zM7L&N#|&Z?#?&Tlc(mtI%LAj9SA8=)`ZJLc{IL`*%l)j@J$UZHwUsLi`H7%YgC)bg zrSsJ@33Ls&bWJwxW>3y@^nyjru%r!%F1CLn;}ed}aOO9Y_O`kt8LI*w0Xzh>dok&JaWDV;m(h+u@vCP@eBV1^9f@#iN%Hh&e8R zSFUm*mKZ_unNt2+PBS=Ws`&vB!w;miD50e2VbPM_FbW!6&KvTg)7GhYu8k|A8WrW_ zF_bimJ}A9_K>$2xr;0X0Y1R9hM8{1hD#tT-K@B@xL(3~r>Ff!NLQT6%BA%A@S8Gm4 zTm1%5_#XF^;^;~%y$qO}n`C;?r-aR{PThXDTXL({=?&vJ*5OhH6`P?mvubtgwds3W z8rkYuMi?<4j3}HIDjJckVK6d@rD-r8MTJ9O;R`3d7#7fb*G&Eh>8fGja%Zr5fmR8< z|FI5Co+~%<%<^rvm^6es06vY-EwGYJ$4$Y;VpL89GP(|-J(8>-7h9(1r1Q)MoW?X@ zxF%hH&)3_@wu$sMn#vJJUW3D*iXDW=n3dFmlZr|10gcHx26pv2GF+m~yH_wDE!=zC zT$epUlvX~buZ~T1M^iInhxxf$h*ni?Nf_e4YDLj)FT3y)^+LBrc=jMbx@;JEid%QDNkQ<7B)Veyc zp8s4_&KT{RmmF;ZER6gk8y5~zA0Ui9sDQFE4UAo^^GIMaVnSRn#E@lhkrJ>mEz2cT zFrXMX#b&4%n|Tf~@S0N847!mNy6u}F{U2oUKG>T>yI8HPgvm0;*>Z+9Wq2h}wllng z`M%4<^ogYeg_SL7OUeLbBIFU$%D!sDc@9I{igO|L1w2YP=@nT;IqJ%=W=`2}YSP2F z>ZN|ujMYLYY49R`^{I+IO3Sw#sM>MOoz@^oj?R zWGJGER=0hOdz&@=V6Z>~7*HVPwiTN0?7x=bl0crK^ADX2h77e_|I8E-_r3t}9V{wt z;XS*BDkz(X>EXS(2&~$2Qq>dIEB68|pl2>}kFD_9d8q@DH7ojT9TeEAYV5H6CpOTp zQb}mRhtY-`NuG-&ykxSh4~yY4_qHN8G&R3u7ta}!k2gb8ky`DdljTHYHG!n2XJnW% zT1uN7)pa@V{6y(P19g^;$55}I&;>q6V{&U(N8fItg&sk)qN0%Y@{H;835RDG0hB|1 zVb5w5Be$ODl-jm842LB`V`Wk_Aa+MBSu3!kM*_z1=7gm=oRyqOx?i?PSk(PUvJ;eZ z8ASsT&d}$8y7HQ#qe?De;|y*^ii32WjyXAtp|zJJhy@VBsVAwAO}A=bAPTdHuq29w z+|8!ZmM<>}>4d0IKtz51^;s3XD5UQ|o7IDX+gw9;b7~FdtCE6KPbpTh(~1`L5oyAl z3i5tzg=ust0Spy|= z0x`Ksik1)JkR;*+KQ5FF{vJ4$k>DZ|KqnkeAv;?%`lcv~S)f~@V4oVZ8Fwi@-Z;6+ z$0WXMID(-?#KW1yF}EVL`&{)tNi6{CuZ=yp;Hq4*WnzhFSW~q+HMNe_PYxq>5^Y3mBx9{e@LH(a zj8s)Ht=vX{w(4jp46SSzUv2%qhX%Ce*6;sjuUuDAE%v4g1yyiprN%w;7Uc@&dk~3= z9a>AK{7rm-a?(T5RLv`ZA=Mi+_Zp8c_xd#l=|QTHqs9c(tTRH3T>RLQv7H%r+Zblc z#ITWfL4=y=P$JM2L;flkwIjg!absLV(wG8E8p&Czkucp@TQG&8ptPB4U9c_N70$$q zFBF8+a=r^>j)f~v_Wvxvg*$%Q&DcIgnf()#SY48^h7#n*P^Kc1<@+^5qwk@_@Jkb3 z<)#&mio5ENshuX%r)jTeJOIfFi=I=JLn@BPT5TI*v|$#TncoeD%AiH1$4T2eH(#0DUQ^*S3DAG4v_rv+k6 z)s|)D5*6mJca4ixTlOxIt7;BPLg#FeU|Y4t!su3!g3+jgiMO$#P(;b@*?HQy#Nb`) zyTyp=C3n8h_M&Ic8kake4+1lMImvz4K@3pScw(y?GAq4+PTKbIp)my$-|xUl$H|mP z#mlltjD&mbnqW~6yNiA#OG}oGmqg?n6$IIisOiE+RAi$H0Z_m}jzMVRHqkALI6v~3 z7(uGpY`Tb!0TPlRi^Rr|tg~d?Au2c|Q<)3Erg5AUI+-O_xCTowdAtRtBWW-<(Jy6H z9YbN@vC*(Cp2bV^Gm){*u z#swl)*hkEcO42oDy5vS-ahe%nZ(BQGIn=~gS2P;l>`KC7UZzR4OyLClNsZ>^27RX?cgt&ckdb<;wj2n4Oz@qQ9yN6et? z2g%XJ#9XW17(-$>*D-7E5IK$+E0bn9hjYzmJD(rE)6rjn>qsI%-T0hqmVJmDne>YcQZG(hKidxpy)KbL7D2okODRXPmz># zoT7sUa^Sb8i0yY!F2{*g84+{Ljz}<0Ca$F=B5l~-6pc5@CLfO_9x(O;#sX+rz^ZE( z*4P*C2Gb!@nVr#>e9}+FcJ`eGTyRe>zEHpxcsA%22ev@uT|sc0l|f3|mUphA${11A ztdzD!$x#~2nu>)O0fq>Nkni(~=EcQ_@K7y_nGK6%@T(DbMdUCHNEJ!Uot#OvF(gWX z1Vg988keu*G;;*7C(ED_^r+Hm{S$_^A!#OzC3)W4kC^DI6s-Sj<@v-DH@FPT(llOv@x^L zqo@G&bfFcHNl~E^t6->QjF?g#?jx$wN;*b&6)e{BmNM$EJ4^oBt6#^fCtBWCvqB18 zhdwMAUu8OCrcvT-FmZUpVJ=G4>7Ey?B;6Sj^|Ei;D;$5*uq%#VW1FqIt8$|-|bR6o}i#) zA+>S35j76+dKimHvZzL;%_E2fE?5MD=M$|Vy;@I%$y!u4{k9IY>>;!FXzIU8`lt*J}RrA zGO`;!Pff*L&Kx^rKZ)rO$dt)+h)Xa)krXs?NnzA#yp(CUUJB2;^_=D6HnNdi6m3hD z0iA1wx~!l}`4QoqWqWXBC_d22$av5V&ot5Ai;I~b&NM)z%cyE^XyX{T_XGzFwuTy0 zQxySwJorv!!oEdBeq&lXA`@0}C^#CQ zZfp=ewoYSf9jlGW2N-OhRMVtI!hIthSl*}jcu1u5D7c!4JQa_J<~{m^IkFmoEAKNh|<@*0Ud zudR6Zsb!S>Wd>;o3$~RUTdA;>fi6ihE&OT}4d&iu3m91JowR$&;g`#n$76+&nkY(h ziy;edp!OLsszkIRZ`BM=v@v=hEBKp=*`o{T(ZVQgpSMu zcx5OD4b#xOJ}TLY^YdgVaVkkUZbR$>$g??`7`wf(zB=SYS`5zUfH2OWOU@4kT^ctE zWX{|F$`}b%*AyFt-gtbNgwQ^X=(~*gUb#+2;2dJAP6L89we7q_#!|?6h$wjIT(AT7 zQk=t37Egw`fKZ3sRN@!m;?~|$k>3AS4qyjj0})In zQpn#)UY_4D0ZB1PoQvka1$e9Fz!htu=7z(~l%7mWJ8*r)r!$PIp<%B?;h{P9WeP|Z zQI9#}6i|sf(OVR>N^LY&6|(dT)Yb5FDmYL3xr65D&rIJ?DE1N1>lE$`rR|lGnlo7g zizUT79%1};7d6C%Hqp(wHBY{#9M`X5ci2gZpPTJzqSd4K-oB}@UOu?KC$Fh^6_*2F5b;*uZ;tY}5~TZ1ABONK2hrbm?y;csR~J^K`iG{!LE@ z4)E7M9nRHFdG_8}a3^Fl+oqy|jr?82&WJg&O8k2p4IyPQnY4katbjwHw5dsQ$fiVW zV#~4h1I50Mn9B*0m0QYvJ*(z@;~aGkOhi{1@8XDpF`nVV)6Hd`367hmJSUGD%$L0s` zwbH@LRE;3u6AA&OXJ6Y6*bV-CGAUF<`R=RU&!PTte$q`$wsHFV@=G23H^So^qed%hoZ44L}DBN*{Rg%$I zxo24No`Ts*qD|u}z3J!4tCTan=<>eO)EsBb+?9?mI`scF`v1Dpd5J9WoMXpDgn$k+ zsrUf*5fm_R>3u7=O9p7&L=mxEBM#1-5sVe|>Dw4z!wdBFVUfOgzd;chiE?-IeAonl z!v$%W^mSBtZC+usY!u=OAMFn_EyX++3kgo4gX?KUT&kP(J9l$*UCi!=w=LG$qq}!@ zInL(H%7YTWQ{U+iH%sD1aPm3a+~veBORj8{gw#R=h1IIW3qCyt#C4*<1JIUFBrHDB zV2&(kwv#M_iCI0{FOK`3ESk9eigIr-uLx`K<89mgA}m%p{pOknv9UI$k z8#RYp;wjK;Jn6?0E}fbC{Eztvf8MdT_y(v31V3GzY8ODul{8Q%quNMmxdb@WruE2UOhM z6Y-|0&~vjTkp>Tt>(nh$kn zi1?TW=8z=}T-1Hs)N!8to?7=%vCk4Bw}-`fY*kqwyl3jfJ2=eTSB{VH{AyS=hsM-j z_~_`C{{vxJrNatfO06u3g4B{y;vvb_X^z1Dc>nyIBJ6wDaCMovF>ifY$<8Rd{XQQ~ zp4kh?{o;zakgB0(&DJb5!svEUr8^+E`&1#MR|Uz{?O(O8@T6AvrDitqmTAT0dLr1f z7={*`J5~wORCy0s6x4^pbf#M+R0;|2z@4CWE}k;i8@=h(AGm7K4r|qK!*K&1u2M~# zP%H6vxh{>ajUt&hMzmJwNvi?NK%Q4CdDafGWBJ1pSN>rM52wT|J;PiYyd(>BSF>Ltdn@D+$qBR3345QBRe*2I`DI6<(_$aL-zB;nBF}Jz$!<937MCw(bOB_Dmk%5{mBpLEPm)aBny=hFUI81BuLo1f|XS z9kreBv~Ttj#c;1lMHu17O+cO(qD@``U|3S?(Bd&tC@V6RSnlT^Gcn?7F9ny3x=oRe zuDQYw$&7NrYnHOJEaxqRZ zLKAR8<18~;;tTZCD>xZ#Hpb}h#TnX!k^G(&Rxl2UYmU*U&L`L8i37t(%d+TVO6XqF zE4ot`9t&vNtVCNn&aiaTrx+zbe!=^-6LCRsu>yu)df#!sqh?G7N1pID8&PQgE9tugc4mLkaUbx`=!z<{_CUfwhwla-NWSF!Tz6jU+ug~?r$H$@B6LfyWOL2_un5SP~u>F z@96tv|8=sx_kHrG-Mv?>WalsM4t5R?sjYoD2yfrL+1-KXyL&I+ynnU3_f7Hw>hA3y zC2w}$?jAwINBh*NG`G8R2n}-H*PVlx-@>Eq7rSqEkG^juuXm63pzY)}G`yX>+deqj zefjzc50b-gx8J;>F1O#q zOb!lloGhJM?IG4{9abj0RwhUheN59l*~P%=q94s`46P+3$7_ci_f3*geDrdVR3} zww2%#L#=&k2xZ}q3YG?Zmw0DRN=n8F7q{AlcY#{8RMjNl` zE~=x*z*aC;Nk;HP{7T+-Y~zelsSl2P_`oTV9KBOSsU(Wfi0V&!(>8~jKFfZX_2jquN1@J6h- zWk$6b4E04(U;qy_Saaj>)eFzLn=>w0Xk{-x~_CuI1W>RbAVMdRFZY$%pw1BxFXlN6L=AWm^i{*Bd&kec@Ka_N}1Ve66&9 zGdL?E>tAV~%2nH^$J{=B4cni)5x}Pvd5_peuVsH1YS;fDyV&_OYK()de!+Rb*WPj9 zYSr_=oP8urJBd;WTHKg1T`vwJlV$IVfH{59X-Pjazi0cspA`*}A; zIxN4+W}_Ud3}*hl2HVXpB}aaCArs+!b|F4|xYB4}v2*w&;YTy-I377%C%Xi+Q1%zC zl)~IblM+Y{`~?j_r0`c%ZbIiS=4+^m&tZUK`k_vh@A-03g&Y)a{PbLwM(Xq*zWSOKecFzj_6Fu zX(Kk%nPaMf=lX8YOU3tyU1UL%r6s$jBR%tArI%2mr;JtWZCj0%wqO2s;ngBnn5aA1 z?1_Z7y~bC*1|XCKD}bQ+=E9WaR%O$SFPyVaF^gr_D6k^7MtW$}@-SvfoFs0gD?FH8 zQ~wI-{5%O9rqy6?P#0x|<4dLHfiX`#!$^15>XA|}NkmjO3O~#-zUUthZJs;Itl%Oe z$>x)s>oUWtP@Y}>Ie0vaj%+c?a7+coHr<$p+VluRbc6y9d6IXjIF_PDzH0|5O$)=U?Sp1hQIABTk5Qc9}@4VnEIWP-e ztgmR#>ZU{B>YL-%-R6($Z}XalrxU_o(bk?}YgnLdx2~q-T7AFRiHcwot^UZ^?3k^t zqj=WXs@WS;gIBL*dudwoNw(8LLc_w6#a>w2ZuAwMfB5qiZ?LhVy|U)BSc+Yhp(vI) zzB;iu>mCoqHEz6`n@QapXr($P^Kvt^-{e*r#fU^xI!H-_V=z0;iiGm2AsZ`Sm05KqU{f^xa7{DU7A%5h+zYQ6dWY!$`rEXBzCX&m z(5*F{1m%OC!qzI?>A?IpOt^8_q10r>@+H(?F0g?NgJ*Qnr!F2L-zJr$eiK(w%;*7N zC8n%hf|7DpQ}!8Y!33Vh0IDC`-o@%q2QVUs-0-7fhZ(q}*$q}Ye8Ne&uW#FqN zGi~~!p)WbCI8_6mMIp8d$Vo`}1z)I^tnD(#J8`B84KuP>; z=cvjZ+sxvU-s`;2xr=jyuPLaz8JQvbFRuq~JN-m*R)8SxFyB(qaFxDB-;WJ)07*Kl zYmbyvPB#WMu`5_p>XBT?zNYURs(rVnT}q3Ku%ov=Z1R8qxBA$%;U$j&SZu44BdJk5 z*GQA%F_U2GXlw%~54VkIFm+gaVHiFW+la|sOou>0*V&h~rLw(qoEp;+qQzmf5B9@Fms1L#VuE{cNKSL4#Nij?X-h&ECYrvs0L78?$UC?!7z!ys z6T15@cd@e2VMHh+>{ZscQL2W;D;}i-KOVM;!C|=- z2U0_;W;EUHa~8_(cv?P2U7t^uGbXZM=+59+05ywDb%ctouM-nUJ0IEyV$@w#i zD~X|N+G?saq#buJxK;Aspk*gDqPZC+io2AmQ1Akb`(u`k5)7Dw!J{PO7a|*s$c(q4 zLF4BxIk}|&Np1Qc^kbH^=oncC0mB95GLTqwKcc%cxpri3Ql1Ri965VWlv!p1gkhhu zT!Xxav^uKx778QN{oi0Kf?vo>6r#rUJ7{dIRPJflMv z9V%K*B13|vU}$(Id}}e}WG>yagt82iBfCPthKZ$QPk1g6X)(i?B;REeNSk@cLWV!# za5yf1aXP#)qY+ykKA?2=S*A(cC{OM_^>E*yh6@ZuOk^FV+EKtFl>|3Xhzl~YmFbxH z@3b<+X@wb{-O^ybE0A)b_<|&OqEHOrnH0^Z@VT4!Kt}OEeRx0 zLBWhB6!6*LD3fu^9$!pLMRs#T3f{kz~%2 znZP1ap#XvGQ*xAR;mK4qJ?GXSuWf)p8~AEQ$BB)@jOlawIg29n04xQnM?wXmoqv(ogvstFyz0 zH-LsGpYu2=r67cR(6X%dRNIF-pm}#X9%n9K074vPKPdRNcSp@QsgvPD*f<+rpz5i`m?g|&X z$-zFv;K^7ZR@@i)Mf=iKR1tBFd6?4ARLj?d%MFGDK(|~t?_8Al64z7LD!gTMYC@bD1S=zMu?br;?Ury`Mq0VM*zH}E>8<7sC~*A1};l!20> zb|o(6FuLrt|5he%(tq5z3))XEFElJCLZrY|z)D`BZw6oKLxKOi?FND(9C0fmr_CgRqGRI9aA zUO~LUGANT_0Nv4uI3UflB*5dFLGtU^ZKD~y#QFGXUs{Q%B)lDDd9$)0u-h8iF8GNH zT$m680?M`YE%5HRe+&*}q$=}3@s5k(=Y<89Bgx&|(>CEIp#(kk;`&#TBFr4t?vQ8e zmUl%6M`}LweN~+KOvsxBdqS_|zI<2H;`BCTGQ7+pp~RqGvsBG9a$TWJoH?Nz59umP z4!sgO$a|?UYNPE`y_ku0_H;BL!lzAy9h(7oQW3hNkpq-hB1XP z-&h7xj67wLG7#~RAk&Yq-flp=Za`6~bEoo1=~EYkZL~55o12;Ug}U4y%ldn5QD?SE z4+8XJMvPk{kcC`u><*a^MU0Gb4$Mi@1Zw+X!RqJte2svMhvc*fU8a=u;zDq>++@2I~u$h;s&Go_-dB;na*(bCf5w!*WU8XN-+0AqO zBB~Pn2DP6&qEg**P5v&gNwv);J&%9W9#HM<+ipS}vOwQgQF@O0GodG4=(@ zW}G4qg(IolN5&w*P)$~ZZ^Ve^Oxe7g5*(O_wb7I{7sgi|2_!fwQzMv5^9dz9$FACm zqm5fE>t|Zqq!_%;0!C1b{u0#NqB*!z?2`DO)h4Oc^7@pl#i#*QGy|uqZIZhwSltD- zdeb4L_|+P}@a(pPxpaM>}e=^eB)5d9@bz&0GYTbLl{rR{XuGT2_r-eyXa^{E*VN+ieH97`i zUu%ta)COV;IwlkRG}brsh7bl7kKQMXw4-Mf6|z4xvEltLd&PI2a!J5dP8PtyUC9a` z=fzuRPI*T2V&7^vJhL&fHiH*LsEOH=4i1>wDZBj&05BTCeS@=FcYG9=gk9sMAfJ@I5Zd8~Fw4#O#aM$uy02^Ulr)rFjORG|=BxiI@EJGyw=r+~9 zp#ggnkVURt4TaorBnv~qW{}5*Bg(rgxhr|H`DW(K~;~#D{rqA%`x`*wO{)g192&#f5n1hTf((XJN`>Me)7G z%br{~l&JyPx~P;4HqUm|?84~Dmxw-F($*x_jDr*YjZrGjS*ex?H7v;;Lyd?LB+`v6 zPRHykqFp0#KRhyhnC$WGDh`OPm0R0tas>y#mP83S&bZlNfHiqwLA>o1(aw*vrP2}5 zhEO&JT5LTaoYL2RXH0g|KG{QvHF3)K4NK-H94rbGa*iTA>NCJ; zsnC37`RryH{>%g_opzZ)$9W2v_nyE8iv;3UMXg8^g3i77cV#YrE;BLbP+0Fk$(Lho z0FCjSwxc8zscTLGn|YEHpg|l89@rK#pOD{oTUA4KZ;R`w>ZEw0Eg-YuGg88IjebW} zXA3z&)OdTB=tX#yX{1hPJ;M~=tkN3T{wo}>XAGlLM_KOABadV)tzKrK6LzZw1v6~5 z>KRpsR1)^>WOtqUWi&}#IT(zyiE zS0%Ko(VFO!Zg7CYTv07bMUVC?=x3Y~j#PSawVd)^u5iuD7J%JZVTJpY-x=|4>C*6g?mMuQbv+)`Kkg(b;B!b7~$)7&LVpA3RC69f(kpE zMSxaLom%>O^@X633QufJM{9{;X+YVShAJ!1`m~yAj7eWxsy3xqEgRy_6k+Z-hbp-N zGc`O1Hp+50NGMo0e~Vp%6^-Y;=P7#gs}d7)x-xvBGQG)qmHpCC7i#i-$(eOTvICyU z=*ek5i>#j8_o`^gmy2;s09gl5R9KsNPiiW&AMb`hq5lNEKL*I`_46T~bV~7w(hQC~ z3b@|5Y8zXvGqH?Vlc={P+hb`%j*PmtY)5K^U(7a-2f3Z7cq#XAw;UNwTU z&0i;X-`e^e!sXo|)f1L~00V!JyrsrWTX+Z6#LcmW%$w}@E!ENCQ7o7wREuxQKP}lE z<3Vyjs0EJ_h0{hWC#Mi&@6;6E<3Uc&ZjAFARi*}Z&yx>mX5T-Y6yx*)HnDgmgW~9t zc(BQ!iLx$`w1Q75T0SlpqZv(+vUYB3&Y0W9ET;D8;IqOv9WqVGo+Ykn4lKt;TSPTZ`ALHCy_$?y)wzY(36jYub3?w9Wv2SE?0&J0ruij?n)WAK zYucJZuHI%Ip+lFI)}EJTHm)^`Wr4U`x_jZi zxC)V6R(CKORVrP+bvXbD#dN#Md+4$;WWU#Qp!ZlJaekh6b9N3XNBw+4MlmTM-7(`^ z&a@)&StwYGdWrFBO&}L@8<28<8bRk2j$pftDfsyIf;%ql!U)QC@^a_!{qi%q5h>;! z-eBa>VvybYqu21>LYhT+|BaqI$+tF)3t&%Ehz^#0x>tOk;HCb-U#4CLiqBqjyO1tt&t`O^visU zI%ziX%j1mVM5uHZzD)Mf|dw}DY@4HK@MZCAvEy_dxht|+;NUl>LG&@zF*5spU~dDcP~F^qB>@T{!A=QXM@ z8ECt@-9sy$vwbwK@-+G2Ao2qSJ*MXP_kXcbG0$4=0Sy>-IHjBFbeP-AOj$DOqjm_q z@8x7NDmPYE=)%gb^6a{eQD+AEbkHuw7b~5$PUq?R>gty(39OcPz0Gh+Y@F!?&1}1p zj-fWXG%T4j0K^&kevr|=*oBdbh~_}#k`MYmNMR$Q2MOR`o1P(B1YU5Map*FH(*OvV zZD^!~dF1cyNm->~_1|_HQEtXUaN;P68R?@B*D>{bG0_hf(8P zg__19#;7i!b*7St$aeNEf0I1ByNhgMH-&p(%On6hB5#G1u!kks9~XQ%TtS;cDj@ZA z=X`f=a5M>r!Wyrht*$P=dhz;olkEXZUJZ5pyhG;>^h=J@D8p@=N86Kzd1UPNlaBVA zv323RtbW4o*?2^renn4dJU@Dbh&m<@w<1)LQ)h6`k_t3M)kq`%zB{H(J@25Zbx)Sjrw=_?~|^<@xy|6)SzXks8lHK{4qH#C#}M1+2dC_^pKYU z6(ceRdje8xyrRioO`5k+VU1#Pl!UNvgufGVb6FvefFa!~wxgE831wujq=li+kjTK$ zumBOAC3!rW$Z#NaWMK_Y8mAKD#F|ACCblkREv_&N7Ui0=mq&@Sbs)Wf0pEy{QRt|E zv3fHKxrfB*Ff)5XG-~cRSH$L)c>*eB*d+;{A#DBgNt6jC;lN}Y&oS#xzP#)mz^+BG z$03r-PxRemXm%jkvtj!>|Co=^`k82T{IxyI;(%dkGq3%)FE~V zLnP0iCy(*x>ZjEwGj3ijJ<+0rTdyPTNp}R8XU%r>NIKe?*->0@6m&#A1s$#1j@G%O z&g_mJ)paEQixCOA#R+xb?;8zQc_NesSqjBb1UPn|f;7m@*rJIwt$$NTX>A|KJc`o0 z4y`9mmF86MGxnp^7vrWI8{eUhMD30hRSMv3_nQ@AP?o_YIm9>lfK&)eHhgxP+&|Cz7{$6JdJ+!yu*41kX>x&i z=E<&v<8fk42uk$F60HFTM@|#z6vtx+f}Tzs!I`u{0EjJTZNSmDC==0**p&BRn2jSF zua5_m+4K$BrxdrCMV@w{T4Zr^!DTwZ@EH_Ud0L8JZ=Y-oCWa1# z0xez^nl!awtlM+cE8PrW@y2;K2_g#HQE;s5BzcV*DIRA_w)7wU{LJjvfb{GW3~cWb zBVy3Tm(`7hxexFXt3xGZ*ml$yrpryvGji_{}{rupQP)wHh~TLl7n@>`YA25_3Di@GU^giQ@*v^3z76riQo# z9zpblX&aLf!N+>8 zC?ga)7%2c8+Ilb337ZP{Vd4Q;!kRRhrgw_kllSDjGjgPDGh$HZ;!XM+R1d4b{cIb` z9)U^nZE=lWy#{xnFKE#(E-;-2hAr)rupA>B<5{%ug+_QhBmwbS`{hOO{9BzHmE;I4>}*jJPeKId;?g$66p z%YjK!C(-%Mgn1H@h<|Esd%`PtNt933P9hS(EtEgx&Qk*%IP0!UQ>v?_nnTPB?hVg71o92hJQO`q9PWP(ncNvKoGGiK! z#iV^Q@fs%HigKT|Q?Noz9R8#XBHNJpGkT0!FUClKAZ0=|lpG|O0Y_~u6I|?}E5oT- zo0=3QI1WOh+6&b_P)?{aKuVHewweUMIw%q`<$A@;-Rl-?%=vu7?WPFx3@tVR^iMxw zX&X^(93&(QgUK?%R4L_ImsJnPLiv$xX+K4BwGmkdN#IsZgjhg7A0D-;Xdikr65?UvWaxOaiet z6=VM%N&<-`BWrWw7+pRYpbu;x*C`q&Rq`cqlenH_);1k-XhIW7oUtZ7u<`DFtU{CDPJbpir3Ar!w;Lxgin1Rg_) z8)LQjDgz|BpgM2kRyD$`HwSN&^)qP9xK|Q_jhc&u@;#6%k18Yw+DfSGdC}3_r-938 zJYHz*6wbJ?Wb-HV{7V30T9xF z68#&Qp1gjsOO4e`Xb|a#$o{;47SEE(c&N-GU75z z8G|_w1uPQiqGBfPTBwP`VF4-H|6K!{PpmY&hOnuGi43U=m20<3czFVDx>f^P$rG)Q z-C(LTgCL!dm}L6kZX|>2Vg{vP4(qETD=}owAf;3z*CvP!aDptuB;J~(HE#DY7>*U7 zp}?&zC!ZteTwq#2Jo7K|^5KFTY!x2fmTDqU0RY#WOU}dV zQoc}-Iv8p`Nc(U=*i$7G{&Q_gup7vHDX^r-chhn?FBcTCymPupD`e3}Cn{%o{O=@Z zQ8Q>I9%53*Toqb~qg3U6o-)>ufR?)f;*2Gc!>azzAxR z3a>RSzBD!(P*l=9x|40*ZR!{k#1kgFyxd=ykP+WtK;OKZ{PA$PoZOJ~9#c27oj&QR zIgXp*wm9B3(mGU~ZwNB`&n{CG!;h0?N(M-z0O|8xz?E_%IX;#RKRKZWP!eRH9i-PM zClt_e}G?Pvkmye zomv7FK{$=hlRv3rY_{&hIKBRmG$gc66Q1;n1fH4AGsPwalww%ILI5{_*K+v8!|VE3CFUomOY9)md+K9<@4;Tb(DZ&eK-sS*rt; zH|-e7e%jJHcxrJxZG#Pdge|zr`Wwmmt*T@$JWfMS1C{{LTqsgtjU$*hH<>%fWc7f- z{5yiHqFt}US{QXGm`-d1sgqv}8zLOCP`r_Jo~%E6)Z)humu)1g@@!IUBuh&qwy}H^N)Ug%)e1Lw zVZ>-s#)(s2Q&IriMWR)$Kt` zV6u!hkn*8quaq!1y+-_q>!XkcD)DF)5NoUm3Ng!Yx4FX$qiMQlz=?8@o7}^;eC;wl z+)CEh0=3&Wh|XlYE;*kz-c}NXgDaQfl5@?m(%_;{Q$#x&X$vPRbA&6oAfVAOB>>ct z93pJnHb_4)?j^)(=$qO#N;;2g*67hQH*thYXnq}Uzb4`mY=)gSocR#% zJ8F*>(2N?8(^#5mwnbltR55d*maI3FsR`^v$t1{{6Pb~arEZhuD^<=10cVSW1x@HD zY1AbkZ(0T!kvEGuXt0jgZ6zPGY-FlobPzt!xgnZADWZ8FBXZ^aBw(fu=g*9{;(@L4 zyUY2=4Sh!=EQS~4&j5W6G7cn&WBlMCnf8Kro}!DQ;U%z%cm*4sJ~LYb3Q!_$nJ9Ar zjE-CvDG*>MwkewjOM^-PO5RhBKT5G1Df11rX01-qYlN(ob5f_vq#7o~DU65xCB2Q# z2dF~ID0m7E)Xf?9aGYIWviRf!&u+P-xL66G-o?^NPH`aiDMlj4Tj&&-RG2rwc#9a;QoQa>KZ_|{E17HAo0XNl00T-ENHHP!n6rHwg&x7c zn1I$6fB@d$eJMC@gMJtU zu2i!UJ4ej(&PjT~x>RLxMK7cIi7~n(nr3tGK`RwU+;ygL6Q`RSq3dzpwYjB$oM23` zWoow1kVnI>Yk+7Q&L~S~MiJRF>!Vn)O@lj@z;)^tJz3KBnyx#%Q52J1=_ghP3u(H7 zUJ@MUCVQnkWEv^wgiNLd-)kAja%I^TQdR+#O0NaTch9omZ!?c3&QmWr0Ni zesr07I5n*rSXH;n>J_L4ztNC zTU(R0*rtm)b30?R9HxZL3h)lZQhd{n=zdhaAdu6ig#90Gt zS&Hlt7jrACn5-Z-OeBP9FdB8Pf^hV)BW#jhtMyYefR~K`U6{NdcG!6K)imvHo|_ejf;zf*C6PBjMg@<@si!>0=F&wYR z8bt?gD3(>0dU|Wekc*s9Lzcy#W)(Apm2gDmC9K^?IAgQ6t*NGUtFVa&`NrJagiLa5 z9SNBvZmS}REYD;pDB+oGb4V&18j097a_wHeB}&VaHNZxYFWHbazqT>USEk7P zy^t6niXx+sWS{a94G2tOIq3?YwQYmnQcj|bq=V;X-AMLc0 zS1gfY!%Px7a-Uo~SMGx1tRTfWh91V~EqsepY)q;#Fa>8=NL{xe>HCeg(+)QjnW+Ni7uB+!BuU|7Sh4`H`%#Ktp!%aoQhEh8Zs&varw2G-YoN)ZbxtK7hXaGwQO~E$*4ZY#XYq(^s z@f@8aM;LY-Z(>!PqO!C+xK<}hj9(`(A|GPbO_s+eALOu4Zs@3907*+tOfHL(WDOr^ z;XkyKeb0YF>?&Gf_aG+2V%2ZWS*&$Hl_lp@t{TtzfksFo=A;14ncJp7IoLLVSrIIf z;E^#Hzla(_7#%N9iPcWZf`Glyvz*>KqY`vGcHZU26rJxC8;0Zy)&ojFriMGr7!t!; zUdT0q@71B8x@>P^d^SWjk2j9nd6@OziX6peFi?_0Ne}@RQel=6c3P%=KSxOVASadV zTcBkN8@Y&7>vnP{$VF;4;YUFU`*u-fR5gfGk+};Id6qKz205`m7*#)c1GFTWF5Gq# zIyj`!Mh|c}g{msiglL(3fx0xqT@mHW8nZNihM`uybUz}|=VUTQO49z~ z^DK2<*%p!y*y;zC>q_~R>5#N_2*MwvE}*Jyt3mrhNn|mkv2Poplgg3Qbg2X~;f8WM zlWKjm7chpaOii9c9d+{wQ<(qf&3nH1rLAv_ z*p7@~L_Iv){Dx=fY-3E`FuLH3^o^P`sDb(rixitL3~gD=+9)#?lc@6no4G_SSiE+f zmA#X`TRXh1Sq3Yn6cYu~7^?;>1?u!4>~JWm>i}GVtD|DDwdS~PG|k0iyYY;B>{Gt5i%BJ-2VtN^5hys9nrH~( zB`p^ckn3wuv+ImoLwLcJiGqwXTJj8yHq|?_?NKa@w<#4!tZokD`Tu~8`6H@;fp8p8 zx>K@c@pmV)A)K6PNh!A?)rV_Pj0FwqN?xHbf;H}dUx#@HH;l6N{o;2fzs#;R%ad=L z?wvE)%j@19&=$ELs)XF_x_01LvG!{?R(QS=bDbp&5YH_A$a+hRyS8j?>BpwDO#Ad4 zWdU`ipM<4N=IUtar_KlB<^HRkL*be6_nVzP{MnJ8uXYcQ@b{YdK_u@e8K1MKKyv&u zKL|t6;^#LIZBfR#jj|wgF(o4hPW`!wNxO|nSffek$Dn~GMcuy^qcN0SmZa2KSs^bJ zs|7N9hU;bCQ4+iDH&TEX&%ARy8`oP??_R%u^G3g0mqoYoa0?-i?3)*F_Fw)ay+}9PI6@_Le)921&nz zuh#6VSKCM1<^{cSyYY7Ct$Ty7)OJ{Hk-U1W2J+{fgTvkZJt+V$pO{m0bZOyG?}JH| z?bhbi&g(bZm|zjAKXV&;cmxj*f03i}>zzWJ0ersQ*?vWPCmVtuNgEWT%*4~dsCiw( zjG4K^2d4fFBcIxuyj~=`=%>K3H}JA(>PC)s-|o=as_&lCj!Twpiuze?W&e;)p@phy zE7_;XIF(UQNY;@t|B_H~)kb&z0@#+$@a#r~^@ufabg)fFeRcyJ{jXYoZ=2TUY5m$r zAal$X%OPv4jlA4{i#a+8Kxa0>CRLM26W_i(cnS5ttRIH}2i%;I>WBw+3C31yMxb=& ztj2L#d({TE&~Zzt8;I(c*(_DJLIC&uJ6zOGJ=Br`7e?|`*>g$Mzf9T~v;&T``D!0q zT~{+iDxAq~G9MEKRe`#oi6ax)@}I2)gJutp_78Sw;U3j29LbG)Y%kpqI3&Zs!URxh zhK*tt*3*RSjP3kaiVe#%;CsGodF-Sb<8V|a-P^njbVI@46V3T4!L*a4S#8l((J}l42bekTQd_hFU`l?!*3ktVR{52~`7HbKp zJ#48Hwlq|{g6K@{(kwCp33$L?Q&X5-=R z?Crn*=G#+2LeCx>Dp{TzrttBXj_l@F@Gxnp+7ERN$8^5k{>$liFLtRBaz`OH{!hu9 zzdn6xTy)IR0R?Q!+Im6>TQSi;%IkErzSj7=pNk=BG#YVY0jrL<6!37FHu)wW7%9{h`*844UndZ%3Dm*{(?;ycMyt;&26Aid;it`21Nxt%aR|RZt#)=mQe&+ zzhw@Dhzc2WhSck*-N23gDpV-@IS2lC=g>gQ8M`J{hu<$QD0xV-hC{a+6wlpGHzawz zstxH12zD6mP<%b7WzDF_%QMy(C%I4w@UmESv=y5*7QR9;@$o0G9={FO9O|JNQkNXx z{iSRZj9%$Hq4t(-&2-_M8l^@y18CnALM z251r*!P8JD1`oMpgdtc6-QkEgV{30{9o0;6evVgWq#1iW$)G48lSm5}41QvhX%LM^ z`Gtc)GvyZBc16=wH|sqAlricttO4~v9hSkObQ!S+XA(~sUg+fBWK)+pBAFJ9C3PB? z!4gE;MBU)R!B!)ct99*Y)ykRm;z6EG^M1G`X2Ggk;y`vL z4`tecXY)XRUK2QjIYX)Ey3}+GBps zgk6hGZDCLNinYy8iULab7f~9cnrxGVGpG!nN+eRJLmM_!3pzCDrLn8cjdGY%zIS)! z49IQ)TkxaR8-*kCYJbYI5m^O$u7G~P%zNY;_|s1beQDEc<T zAUUO8`y=2EatDO>NaZ{b8*etLMWv=439$-)kSwxpW`=!1DgUN>D!j?6dZf4m{aC2< z^|hx@p6Sw#pmo#K?+t0>9@(pj&$JB0-ow(JyGTokOa93%HysZ>ji9zW*HIinJa1D^ zF6>R6+;|I$Q#Osrq3r0X@}XMp$Xt)cfRL`xsvQXXaSJIrg6s{JL;NtjFP;ztJQ4(c2@#~=xwsPu)FLbSZN5Y23ZgWMxt02Jpg z!DNKOX?y&8J4yD)jHG|V?k6^jC6$#H2}8ob>0$d4ZB2I1lNaxI-@JOg`WJsk zn|7tR38BblIz3FIE)lTS{>1XE7RTGqK4JPh;nY%;w@ff8(Wk6Cwbl$O2cljD@i0Nj z+8NHvTJ20OG5Y~ZIYwxook|EulcN?-;kD!zlp(6EyvoNHG%^%Xa@*42a+#iI+VF>q zCMx?8J_VS8jcXCWz!!=U@|}z1rrE(i9#TdEj1^;sV65{!5GO$30u6I18`&FfvVhMe zaEk*#Ez%V7I<#w~<8M^vli+-s>hj_Fc-c3~8<(SqCl(?69&^ZaEF+VS6k1<%F0xLr zwjw8t89ht9-wgCM&km3H@T;Wr=nt=83e zT36%Q>`@7Qp-mebNNTqfoem(n+QOz<7KRdhB3QT>e{4Y?XB4UM%jDKuPRGA4x{w&8 zEk5GMwIe3dz7>vmeXZqozEwBk$Ki+z##WSufYOhdLEB^HocwP!H{n}P23?<{EeZ(=<926tFf@&q)6a=WzZHQR=xsuEnR3m ziplvoxxrX|Y=DkgMG~77iYyrzPeWVmcx@?3%qfHC`36zSlu~hyxr}IFFbv^YhGB6` zp5f`3V^fg}pAMqal5F3ZF?pIOJHOJUfo4QPUMy)B_1!RZx~C>Q9>8iYzpc#3jySMq z;+Q-^T$1P9M z-DpC=oB3v-MYfxZ4LKzix`7v?+$9M26(e~2jEbR+P9YaK4?%JlQy++l%~>tQ-O^pJ z+$S_9y>gJVlsqvLmAG7@KBc64XVDOiu9R5o?3aM%)*Lq%jWz9bjqZ(IeK`4F<<1rX zRxw@@m)kCGvo(9QHxm>6ya+;GmE$fZjsSuJl^lxR#(Db$cMaQ^6Q=-RhT=|wGBTqO zC~sK;R!K1{nz0JMvnBja$k7Pb-a*B;Vn8;%LLSQ=WA5Wjk{<;~b?5~@L`6BPgW&!0 z^J}9z?4z@w0d-LU3iNgJahF1#Rpv}BJ>Sx^voo&5!EmE>+a_MdQn%&*SZ&^6T~y6D zM=mM~y%Ed0WyO_K(dQbXR0H@_Gvmnq{9}*}x}%$hSyW!9hjx*%eKTLI&-9v^-l8kz zYPR&iO*6C^%Ucfe-5z;i+Jj<(s#Kc7c80VBOwBZ@S(= zoo;H&_Xi*uqX(}=#RsY)+R&nh~K&pocz@s5JI$kQSsGBkdD>}JIth>F2q;a4mE ztz@bZAXlUUPWQ!n@ZG&vJAaX5OpcS&XeC=q`Ul}seY`NOd79GV zV`F%C*ED7gQK*V;#;WjL8>eM49d{l0P~C{mN0~|ak_9-z=-sL|2U<8~Ng{nMM)Kt< z?Q*gAma{XvufG+ z1uF-grjVWrpX!u_n|4Y(JJ!TvtMo<`v2-6eX|1Tvcv$DB{S1n4AcS5N=z1{_c*ge# zrH#!^M>7KhjQ;a(-R&!qaH9@&BXW6@pg)Lpl|*;Xy*&eJ|D*kFNrIIXYzU7Io*WEE zZ_9{$DQJrkyJf$TzpK`lcm10;K#zl&)9s z<-yCfhN|46j&-y-M2p9(C=sF|v4L>-zJu=@RKPPr-mDuT56|xy8X~N;+6;%eVxy9} zk?-#99?{-6!~M}=RPAY5jkOsCLGsp{4}n}KYUxWl&k@EK)dso`R;ot=UqucBK5i4Y z>qp#7e46;44>+AB;%KHNXqm;B*bE>QS7Hq}jYdOlYjfoRE$K4=6=NZ8w>7~;5Wi2> zJHddRDMvn}fcD*qy&G{DOBEoHg?=HH7BiQb&W9c1svY7Z93pFxjBjb}xTeF8!{T}v z@lgGFW8+)o)xrKd84_M44zA2`V7F%ljm!E8HR39<&0p<|A1aihFzcDl!4gi%s8W%> zs?5Pg%*BqM>l!n*nXRRijq}f2N6&zUL@;`&vy_;L2jIm=r^~d1_N{*m{^_hdkXQ%x zIMSPl-H^4_)#PjAs<}ZImKtgeW~$(&3RVhml3ppgQwb|=_#JuIpE}n6SvR1MNG+9P z#@f*DjeE+!_~5&f=Z2N7u7-!NIuMhDJx13Jp9UaebMX)Z6B0(n-dmbq5*MqqPT_bans62YEqoMB{~|15ysKU@%;_y2F+N{a#WCv$CiRCHyl zsccay$Vi_3hJSxaaHS9=3qmZFjmRg|qCbi*dL3lXf$h6OcLcr{hwvDTC%W|-=GQvE zd5C%DIq;yHjC@a-dkLDjjkPud!WW0}`B1(%oPRc?N0u~P?q5(?QDxlbV=3b!7%{8# znhZ|V(ZTk@Cko2m?L?6rf6D{D0P0wWO=kg5j8wP`PfJ9V>JK6Uw}#D*!tZk3piHy( z!fKV)NgepUq!) zjQi`lsxxM}5m*r5=Qe(9W+LbXkfkWf+3G->LqvL|yKytezQ6!0h#}>qqSaddud=@P8-KYk^kNWCxsmm;gaNLD8RDgH*^m$;!XwlIa z0)jwl_!k~$ax}p+`CPlmtdtDGC7eMk!4Zty*lS798UIZA_!>1JI2M-kS*STfBJ*AFINX8SpmkNgL0&tH9V-dNx8TW=(lZZNCzQ_p;)m=1#L>af zh6@}W69Ms;KRwks{eSB0n1!8ve2l9yFh~m?5iC0U@`;NX{%>-;G&pP>)d(71geyEh z520Vn@|E4sATP=OYiY9zlu6W3*rlkkQ2{DmDIv&I11L9f*J!oKDtI~zb;nNCQNGc~YN}feFac%A<`hmCa0-riA z->XY}i6?$DTFe5h&T=l?)YyhrH#6AC3c1L~aKrC2ykUY6Ik_~&I?d`&BJ>5gKMnsQh84*4D_r{gH2*c2(yJKy-AG1yO+T-Br za988w+N<%gk3p98lK`@09O5WFV<4S>#xNuZ#|#_yM|H#anI`rtEB}?B4|~~p^6pQ6 z-FC>_5}wsz|5@Yiyu(--Q=KDRReh=v8flyNj{hbQNNVl2+phO=qn8dvqaA88dc8X zwExYe%@*^P$K=;}>=pyMIPp)y)8^*NN_G0dF<74=BUz6KN7lopB0}QWPIbPF2#aUU zWHp8oZQLuHb6P@E{Xs{K- zKdMT=CG0Xh=x%WM*0_#pv8Ojr zTfNY4mOl~#z}voK!2pehia;aVg$cwv&67>JBK>#1CfLRXKw=rYVH5PtN|}OUpxPo) zbN0lB6)>$S9xBAX4cm1y`HC50i-rT_%ed^_`!{cp7q5zY{|(T2gftIW3A;2A-DiNT zv1nU1vR-m!*Dor;iocCWvJ{H;kh5$dg=UCO$`9pInI`T;WulcU+fEf}+Rz|wn5cPR zf#AJ=#Sbfe-5oAyg{!b(7k(l5u-j09k&10)t&ZY)(+XQsZJ#vJIpBTJ|4aRcZ@^mh`}7A}9?x+jY&!4OXs;9Ee7TrWqilO#u1 z+nbm*{qPUc)4Lp`^?3(r{kMbk&pJpZBg-PtSVPK3rcx#6{V9YS93$&%hFpcl#R2c> zJivSU8{qw00A8o#LEh7I3wf0-4CeB5&K$xWHe(N;&x5?+0tyV<=aA9(`K+sH&c#%{ zmb@_wG~-B@musvcqlA_YUJ$gZjRO@oa+wZ$eMv^o!=j*RJc3x<5E}vsX64h_s#P{D zk;K)@#rd+yeAdH5noTh3C~ZeEv;m;~ZfJUIkDr`GV@uSqh5%oKoIP4}zn{w{stIwF zYn`fS868ECRqPccCXguN6uwoMT@k+FceN>$(y(NnwpHWtZZMZrYH*y1@)!!l0eiL_+qN3%e;FjfmS)nDn?b85j+T_qkin-UqFDs z@udU#fjf71lOy~}!W<=x2T3f2q;E`RAp2RPzcE;A@TIa>RxHgJ$}~w z|BywhIiwf^T%z0JV5^!1KN2E;>f#~tr#31gf9hi+@~19Bq8WEIP9lG5qb17gXv{?Z z#3LtqOQ!}=8*ow+chZ)Z$BaL>JSpDQ%RQ!__wJYQ(Mu*i5Jfw2{b zFrPR}SUgWu{4Z1Z*Q?R&>|nhxcbEN+O94Zy64Ew|ZW8ASCAO}4Ta3bYZovcb?j7_G zwjnPgy!lvzF9EfN8}mamz9xg5(d6UPwkpwv5)W3;pTyQ}`cl1rq4Gjc=l?^Bj6fJ* zw`_)X*{)Q0JeK3{YHaWc=RJ&7sWTC+le)~3x715oqJ}AEP}Sn0L1B2*^r4Try)Xf$ zC@`800_XEB3MohtU(K_xNQR^R`<=C6s2ojfZt|tycb9$`-cL5}R&Dju?^oA8p=qNX zzzpl|-6Os4^-<{@)(gy8BWqC|n$;;!tswDT61BKs*(l6 z3(ljb_<0al*~43Y{W`Q7UsQv?;&11m)>x$qPdM`!dWO$+cFw}Or)5%Oe6`0gl8Y*_cGC53(YucnC?Hlg?rrHcRENnr~@ztO_K(Zavc!gaLpooOa( z`us~#OU3zlNiyilIrph4GtA};dJ1ou#R)1Y{ToHK2t_5^^naeBBBuiMDcIekaO9ZS zX7}Y$6-H!1jMf|D-7kK4(5K)Wb8V%cuS%_R9+*i5+7WnkAkU>vTkv-K=;gNyo+&Ep zohX(a&xdQVejxGtvM+v*EV}ra*?F0KiOQ7hr?zOTU3k2kuGF*$xT6k9ZZJ7?k zm!G-qbGE*^{T2k0#=RzIlx1@O%p#tbsP@7H=A2IfpgGO^ld?q>dIe_S%!ZtRZ9=rv zSx!k?F|d9*$&caBx69 z*bl*D6&l-Jvk*ocpevdDifRXf5|wRop#WpUD00x_IE1r(b!zX1oZ;71K|Q zvgH{5v4zQMP{#(N$lr3Bn(m|S$Leu%#VkPyu607{wlgQnfQp%pvG65 zHP|fR&^<0~A$QuS=V=XW^GiQkUI@=>g2(t>2hEGXwj1popqeXHoKN5E9(~s36HXzz zve=lSx@tAsl~GY}nwk`9GkxaPW;o5Q{qi)VggIXNX$fkTJq$lsoF_{Um(U<(kbcaP za*D|^FHW$GZVou3qwl(qK{nT)8=Ra7GK7MG4R z>5(vT(dbU0Bw^*j`**M4hV-Kq@)5>{jiSC9c-RZi_H``gp>aUxc3hjyWFs*VrWUK< z$1}YRR<*LI01bODHh4&hIEJTYy8-@|(PA?nLLU;-OhRVaB5=w3YaC3Lz+}UZh{n+; z)O==y?sEysIGcHxp6uTzcHcb5I0h>UK8X2i$3U)SV_#Pi4;l$*=bNKNX>%@Im&%bc zecJ8$cS1}5+|ZGXB#caLUie4{gGPz;p9_UDgU^1QwD5N4t!{zi{J}%71&%uO{hkZ8T01l3u;4bVwpq!F>oS<* zA4)SW<4e9;W^pcDsTd|8S1;m6m6r?ewvJ>2`!Onv$3|^J;ygNO4Jdd#pbxUz+7xeZ#p(@ z**-9na=&F(BbA)X(h`}+x0B>0l;N>tOm#y&%nS{4nq)YX6<7g&Ppz9gg#>@n)*e}n zrzW5>Ti*Ng#bq59!(}+D#Z@*&?w4ynSkXy@E5?I$W`p$xgLS5YwMK$*^T4=apt5UI z_?!5vpMGL0Ms84Vcow5o1P0MnY|*6Q#}!`m&C)tlq93 zg*hW~Xq=ez;joUZyel~wYjr`wGFp`{id(y8NSK{sKsnD&6aAZn!{QisPaZ*^KpaF> zbV<~36KZwVp53V$+9kWlFZMA-$%5wA9zUVx?DjPpbWo9QG5cqzm>|5WoCYjK7t$6d zAd^+q>f_TAQJHs9wCTh)$Et=DPI$gc!$bu=ckp0Zw6E+qD1CW!{@-MiZz)K( zpcEDL+75ElTzPV5aX)-6>Xr*>(fBf$0oTsHlH%JExAhIm_)5I$CFnS`Jnc@9rRI^! zMSy(w7L}n6G%P_F+a{m7O!U?s3pXQZ;UydE8*lH;aa`t5EE{{;X|^VBmY^9INAx&oHv{;>W^s#Ix+DU9u$aWy48+p4$xJ z5xaA*M_$APo*CSjnpv4m92XWj_}QmXF`krdseO=@ z+Nq0vZpKTk1;y5C%Ka(JMnO@0R4u(b%vIO;D_&;JFBIw56{x<0E784%AJr1}(s1SM zqiSgnQ@R@7ud3PGE}onX^9e5y#CD%-zd)h1_%{ltW_Xk0K({nK1Uy~tUk~5GJ(7(lH;s`m{e$+8M<;g9@I4fbY59)eYN&*$T6Pui z{y6JRVeBjqp=ge+B)uwfa#J5<1G*^P{+E~IeE9Lj^xOjhN?(d~Wq>#bc&7Dd^45$4 z-U`uV%9hhJigfE2vX7Arp*EzNZk}G~8wp!?v&6MNA0AP@%qb(sDEh4G2zm#E z(IxRC>s=Ti_^lt+^N;U)53(yLcv2!(c}EYSHj+^Vf+mjfy)^hj8u}G zQq`ezoxp5Vls|KPR3=daRN#W$6VS=hL2nM4uxm51nn_t%fUG#Z;seFU>AfVN{e=$H zesQziAww2*8$2f8hwmo#5(6!?XeA~Yu@qQA zq26p_aG1J$hYIBu&Y06w0!;lZff^15H!B4?Po#j*4%HItNFzHUAt=B!K|_AF46c>g zdj>V(ux5>D)>sxBhQMgB4dHq=3<(D10^;t`XA^g*v1UyGGr7qm{Ro6lXYKd2!Tszi z>nE$E-tZnhX;a-@;N**}MDw_7=;hK{J*bSu#b}Zb@_(fC6V>4W-o-e-fLox?tsD+e zp+OS)yu@^m=T_UGL^OsCr@yU)?s9{AHSN|x%V(Aoy95nCt=h~5C2mYZO87nlK}my{ z6>W#O_MYdqf#c6i8q5DpCf7h9!njIQd8NbT@#DupXTq|41m@4yfHA--tas2L06@TG zzq}^p6$Z&>a{z$#vTZBjx}heC)oj1tVlE#I6{XCObSf0Edv$dc<+J!_L&amF^xlB& z?cJo!l6d7xjHQJs<6&7JK0Lt%+4PqV{{IjPt2fF-Y3NKQpd}dO6IcM_r3f{>CqB)G zUH?SQe?>t>rGs0>Nes_z0cR(csT_vKKmRbmK6FzA>I>Le+>87??_#pja)c?l&x!)b zXL3Sd_$`v_aX!f;G7}tue25^=QO7x#H$e48Hq6GPg5&@$R2NScBl}5F^h=47lnuLi zR<B~h`12J? z`QeMY-;kFz5M?WH2nYD{Rq_n}_!I!0xGtqp1h8zZe%g8U;@PwHwbkT*;JV^d*hDRg z`{5IjG|=NA-lE+I=+J8eE3jTKSry9DgZcN1wAW7lh+NOw7(?WZ98P?L=_mh3e0sgT$hk06 z8&KD$HY95${=ubthN)*J$MpMu=pg4OjNe|rK8c+=F4$PcHAggqjm$cCH0jEzd-8Km z-C>rAP#XC8(o;jX|5oyjp#F6$Szk5DwJ2>7ZX8k6tiN7fhFJ|#K$N6#hqICQkv7cO zoYcrMP@cH9X`9L6z^6IMMv16F-5cX&IAQ%MahRxeTSgrr1>Iu>xL6Ck;^bc98Ql`% zzC|b7bNyi}0mc-l7(>-O6Rt!a61aL|$;`ws3`40ticm{D1;g>}6Z^xyNn^4%re8vS&9k@@}ND5Ya&%VC0JGG`S|xp78|Lyks)TE zvhI}5UxX#vuKa52gbHAh;-iIpFezeUme`VvpA-%?WlpkGUkB<4YR=PDLwd zC4Ld}j=Y*$VFUgFw)h+2w6k7Ql3Hpf>|#Pz4rTJ_nP8LxWmlj0Sle)HM~JP?5yXKz zssdOG+aHP%5gkx<2x0L_4Ca{atozZRvS5FON~3Iqn6o^-;EZy}VmUQTXLP;03}%dY zG^kSxMiqsNpjwyZrslDMGhSM_o&8{4O(!Gx`!pY89Jtu&;^>|Lq;Q!RBfA>jGMJY1 zA;7gqEMB?YLXEHv9YzN@qDSXnX!(*vK5)Ze^7?+_f_aIi4Qt`W601f*QLh4w%lnrj zQATDUt{F0-ncKPNT7lKhvWvPg+w;AI92;DZwT%!(5^sbDjN3(oOUq1$5s?GW2P-q( z2uXDg5L7cm16vk6iGUzSE-@RB_N@mGHb^F5krr{-Vlao)JHXdJvT=b&6K`JDx_a(% z)EK8`i!~;(dg)Zrb(BS_lgZnxu`t=dp&GfKumvB=Q!erWJrE{n3GqQ5w9H{BU@uXR zis45OD7jUy8!@T&GDWD`P zJ_V9!w>P&Ep05QoIqPgOF}P+h&=LiKD+OV!~ZEkDL9;u}Is=lQsth`a)vA6P zk(LZF12dCzEAl|@oPy0A)G}waIF;#RLu^lnLL5x|#m#H6E7!M6>FOZzsHt;JSFjl- zw?MeYuPvTj!YzubfRiDL?;6Q@50OUgqG-XB01?_(kzJh?4R*?G5)6Ui6PnIB8mzL1 zs#;*Jtay<=2u|=ho7Gl=P}YQ>l+@W|>6tWqLS;F5%q+Xu_Ey7Y)&|UkODM5k%nhcJ zD>klFlKEyfDD?)wb=Mw0WzWyriv%wby9#up`1b;%G0zE8G`l9|W~w}F6UN(#=W|KV z4H}JkN5WN%_irQRlG|Ect#e0EaO*m#T})XH~O0 zCpk)e9d3!%+z8QdskJv#RT` zWsHS-8VmJ&EQFt4ff!mH8y_8AM9~p`7DGvQ->8MrQwX7Rju{*K3N=?bX|xoa{dbY$ zCc~V0rUsZK8?@(ZtmF8tgeEbLAQ}*o^{0M#0zrMkwn9lI6?gR?65J5 zCTv4GWV15WY9J81wy`r%dkQ`?`Vb`t3X>Yqi4r0>CemRUiEAq##-eNl%T7=fX{pTU z+M5|WNDYfxTaNIT{&_{+#IU|8K>*K_SbQN@WJZ)B{`?G};p%e$2S0VdgCC=y{CAE) z#q=UVFTU5SIfqO_LxtF$O@zP*u`;X1Y&>|D`l)=WreFnZetI{^1)3dTD5)} z3r<2!L4j+uXh3+!yOq#3a<)mF@e6E#JaCa_e(l|eq0Gv~VQ0Ha@)5xWB=U?EQ~`)i zgWyBvgG($ddX>FF(QL-YXMno=7|CD<1^1Z=$rL@;vYBKI7z9}>i$OLAQR2q}XcVXT z;e+(2vbkn8DuIOb$Ai=GI#KiXK~E%!fY9qAHTl(N#B8zynF|z_&*Gi@N?%MUlS5Cn zbX-hPw_d-%{w_XDOnj{9dLx$DN~$5c__NSni^lXna?8Uki*DLx3(U;DDYN8m-lT;r zs9W6m>oRL)K6h;vTAi9BfuF^X#li<8auOCkE%h7{q3erjF)e43Tk5>bIw!wjy;${M z1nVh#)8|PTA*f~zW<`;d%QP{EX!to`Fs9 z<6M8qUwSs=;W??!%{D~lsLu9+EHW_GK@5cF(~AF!8ud^V9+W5zxG-4F9mr=u)Z8}j z1Weu!OByw7Eb=O$3jnZ2`Wn<8d#d9K0C+ORh9@X%YDt;Owj79en&AX3f53vsdckn) zjNB=jI#-y)tjqS>l~VAk$bc1W2Cc>CjN zoqqn_sD07tnrpNh6r(PQePHaK%5RQp=yP%%&B$ov?PU;hRyXsDCo&2*O)QJbhorrqGYzF`5#vT>`!ksH#LDYq$lba7ItDCH&#yI^n}*DY#5KVcIhK`($ni zGV2z5Td|veI^S--m7JblXJ;eWwo|c&JUyN1tUsOPeH=ifUSoZoK?%#f-Tn*4Nldml zJp?}D?A@oBG#eg2d%Wg9r##2-;_;VjB<*ppa5Yushq{96@#X%jokL+U@wfETk)Njd zHCv%is+_Il7=h}IHlc!zX}8y&J=V&e^;Ytzl{{{t(d^R}o`El0NoN)Qb>QDR+V{dg zc+-LBYw&vwzOQ%4uy-9^J%UG%q3C0H{RA6;-(O-ARBs&{d4jEc2|w4c?%LyLl)!oQ zi{G8NF|$#~j3KkSh{xP{(whD6Y4Gov_m7(RvgQ3-TMhno{D0W&(>3__Ob@%Km->}& zW3~$8{!*_rw$yU#{ghXForkyvPuB4rE+c&Z5{JD;gIlKo!$LrbXOD5Uq1@9av`tv8 z^LQN_SjDRAt530!RjmG`^XM^EeTHp7YirNGq}{+q)*d~6`n0+aJ+%+f`OMsgaJj>^ zHS4)X|7ce00#uLW-(&grME*Uce^eA&q<>%XzbB9IpBemot7OhPj;<=Cyk>{xlJj=A zc#h)TC4bB-m1F#i-_aduj4qRSUT>j0=oQ-+!fI+8Lexa`rlWq|WqVR%#Uu86EYGbF z4Jlu_rDaNnT6;>Ss5gU}x@-lD&e3>3L%B2boO3k?bVtA*v9;H#&sG_3h@EWMa+uAV zB)h$9Xj~MN$QV4$FAv7L0#KESHEI@5yXkm*$9Av^IwuZDX@Fc2Ep zM$CM*i7z%p^@3ASH4MicLd53wgRST6A}d>JM(7ke(A1@86rfg$1GG%buoj~WrRJg& zd0BAsA8AS%J=8Qc!!-a4(pc~ua!UlSbee&`Mk-95AaqGfI8FsoH|&1jFci!~G%WyZ zbu14ac23MF9XK-_qqRnAO^3A!G=^okdl%RTr<+iK?%YzsUQBW>8_&@`^w!)S5tDzc zW%Av%blNYbwh3Fm8y8)4J5MqAnZ=F4h>6CR2 zmr#z)p@$bO!)T;{;w7@Oz*8~qNf>30LWqDs-Vi_+r-tb+d3fxj!FLO)G^8ZPC?HP| z+zs0l7UdCB1$Is3VP&NWao%$Ap&6B;BiC?}UC5X$@^bEEWje^b+SoPMOh@D*PN@Z) z2b*gM4i(PiwQ)?#*hLar9;6d;CM)HlAa_kpQ-Dn2bvo|J%y4a?U_NHo%V7!(46Kt3 z+6|Z&HaBYz9OtzxAhly$&BWuKIy{@^{fY5}VYgE9-8#$q=uE=lu(=yrEoz8YOgh!W zHBM|t%FB}-JCOo9n{t2(GDDV_yzJT5@0-1HmlQQbpnf79vX5>$gfRjT%fS~Q#vouY zMhc~c9g>G?E?#{dTN>fpx<{H#ODFn_L4yQXgDf4&Tl}AbdpC)q3%87QYo&8*S3rXo zo*zC>XdW`9vy=)NwWu(_QtaPIXo6hl7zoG@P(10+`9$DbKvsFT+J-C|kDbRbF|Nox zc4WjI9Q)@}f`at2u~~GkOU+PyS#;ebt}K$X7|4cBD2$doyhqExE!l0; zi)N7+M{*wvnSvAJcpIbXcvO_Qu+U+KAx85y4Cow}Ks>j}#W6xyYNsEJCp4iDeYAci zEIb|Q;f+PS&<(+7EAZtMM>0X~g0Xm6;rvj!6y4qUyi9^=Ax$W~XNo99ZFtFN7SCl* zquk)|2C?6Pga=R*;g-289CB^Q8MNoAkJv+Fw%f6-fA&#RwWK3b0tCK#mH@ zGj{yv&2{IMxpahllI4Z^3R|cg0+BAq;!&du`&Bkx28>vC$N3rH zeP$*L3{rstY!BU9srk7JN~{oAXC4BhieG)@*3~7FGnj4D&7DhoDZ*tRmQDRzb#B9n zs0FvJJ?DVl4NfpXq5M%G`_oT^iExEGE_$cyEQ%`l6niUWyOf1CguP;rCI)b7I3;2N zh4|;@u(-m9lFLa#4Vd32@E}-n6>lD4w!&|;@T=w~4Cb%0c?(}hqD_um zMnRCVgb5up{P^ufW-vDc0~y|==-Eq~AckZicpry%e3I-6X^AvBQ{%i(L{Tww0Cmw$ znFtjYML>&}Kpc^r%L%gDjwls^j0h{Jh=Lz#i|964JorO33~@~K?GS)^!kV;nXxhFZ z`PPV{nZp-qi4YbnkRj{OipiuH2p=R2AJJO~4mdv>qK#x_4{7i%A?ASELk*vPMHzO7 zj&IW3h)HgQcO;2c@aD8@r52HFLyZ!`l7Jbtl0jlgtdy~B;`1P3{i&N} z!ogvQmLv3d%q#)uiEA+}Dy*e#kVRI^><*RTt*odoqJoFGizd(sM%=-0?Fdv@5Geqk1d@nLXzd6NWFDmN!)c(V&q@U@QVdGrShQk@${JV$t&PN5o)!|; z_+pxld!{~8f553*PM#$R9Jxe+4{e0)0!E3^$GF=8%V2WSvrNVrtk$KK^pGF~o|70Q zFNS6z5x*+|j>ZL+LNekX4pKv4kxqp1Vt%dPcjC#u$tw3rI8FPurS@XP@;-r}+#GwB zfQ+yYnu@)jrGXL=Df6{7n)DpT!zdpkO5x!sMV4eDluZl<2*o)PPozS~S9wJw4yGf^ zA99d28^>f+;QAshrecKx!kv;0$}-!cNN^LBK|sIVOA{~G#{B7JNV$?E0dUIIGeh|J zw2r+~ML2Hcv3S86-lR7j3~m^cFE4Y{7fVl>CCDvFLX zl3R&jiCeGH>X?C836j$7)ad%+RfGuB1}uYU?4?Rgk4lr!4T?jGXt6vk96*|(o45(l z>mhQ9`P})n)iutwYgBn*ZC|B_XqV=~N-wA3>Ql6dIIWHv+i`w@B31vMyEdf5bHZMespIo+1JP*i##|D+*DLp?s% z7Y3#rV=#85`4Ci!vyn>3_k>_SG71)pt69?bF^evRbF>!L{ejWIR3q>tPS2CDrPVU+ zw_*l~0U*|Z?ZH$K4Au*IjvGcrB#4bFYQ{jj)!2rg*EUSJ;aH=hhpyd|Sg(j!juo1V zl-C1^^tp~x9ME%zyw4TH>BHLU7;+kC{&J zhBs%T;Wo%vD-vFi*LZN{G0Qk2if0}eWj15h7&|14q;tnJ3*;D{Iv-N+TpHDav(Cm}=fS+PDwW z7nT15mDKr0u;TOQPIPkX&IY{;Ic9E#m&=B|u`eEa>v$VNp}E4Uz(j_Wyj6S=wT!JJ zk>zBFV`oe3zB0L0E#h;;%E=Un&?w=>qXov=Gf ziDV}bYjc+IzDixlq`IT3Op(v@SLD%)BX zHwl!D(A<-3KK%nD_xi&sO@I*^6moo}1;8zk;oud@#TU z7Q(6KL!R$fNf_S1mkFw}+J4)~2O~mJH$Dq}wqY%O442n&>|UHkH)XmuAI4^O_gfi1 zcfFbM?U}EUs=yYpNj~kl&|V4AsiPu`L5XGVqSFCl ztkSa6A%Nk5#ZyI%XyuLtSF7ELS*SnzSr+OT-F-4<5Wyv0kyvt z0&07(LwCK%4jnns_jGdp%*sd`HY=90`$BgXlJUT91H@!ao0dZ?cOIiF)iM;G=DXZ+nNeM}q2f2XtmcaCGdh8ew+jf8(bdPYty z_9v!td1QaCJ%XR>=4a_*qeuRC5zdPifv^zBBB)rZnDY1JdiWhTY zP{u|Fi7xD3iva%FVkzqM8}IHk;KIb}yb<;8_>ZL4&f zo}U`)5W#;dV#XxlZ&03V`E6>B7oWd=W!jYoK^hb6sw=R+J>lv)8zUtxS^ae0U0oIL zy-&SotE@xi4jv*gWIEB5N_VZMeYPa^2q!38>4v^5x(A1g@Q68m9@5B`Wi)habTF%X zf-NnZ+KTj(xoet9{V|J-$<`=9<1+-g4gi(;xhg=$zj+W0g^#?uX~n7tBzFToWoQVF zjP%*myGk%;_fpc#sV&9)CsOaX?X2HUvYU{N^Vu~bpKd0a{G|*rtUT`e+^}vYXlHU= zc(Im)hE_klTqTl~0{lI3BlpTYlQOte>*vk7&S{B)?#X?9<^Xoo06J@PMnIzs#&MUy z>am>{)A8(~o$H}JTVQCNwZ+Ev`O{EGIFgza&gQp7t|bjt;12;8jQYSDq7#wD@=#^% zjH1iK70@sVk!0tf4W`K?6DY?oyD%vQtr7>WA=E_zA~**oz|iz9xw2`lPnq4esq?5@gSnu{jtCH{7MWZEkw`B<&b+xmQp zqI$zPGNKt-^p^2`wj-|D243hY^3SVl@8|PXWRzX>*lNd@x~1eol54iW2=Yibof_Y4 z=VOO7EP%S2jlEYf_x$)OAajN1Zmgl~uvenOn5`$J(%y>=B+945kHg{`p(-s4bTj1a z+i30K(&F`Rh}VJ^B-@HafvY`6Y^Xl1?(dZ4 zt&idzQg8=M_C|EssR+xXqd>Zg7M2uj06~tKGOO_i(+1Kb$TPsrdX5yGeYj2!SMeeI zdFrM?X@iX|06#T?OqoFkk!o%OL0Os!S)4ACGc2>RS5bIJQ9H}a72)-YGnOD8QS?82 zV!p1fWM}qD)+AJq(-|=ch~N5Ml-5cEoAuR&*8GWxJ-pUeo3apUC8E{3tKPLe=iXL0 z*|bKuBgDuyC$)zdOl}Um<%wOF9BfpFMRX`lB+i;5VHggwo$Q`dfhG1-F)fPFq(Q+J zOG@=h$x_Rv88h}zRymj)wrpFW3@*b7nt{+Th@_IF;qVeGC2W*O#)Fi9wJ}JCy>wEH zZ*Z~($zuI8w%MG6WHHMkFDKjS$FQn1q<^ljI{-Ycqc0T47F`q^|hCFc)cV32)cU?gcPpRSjd^I&`iFW`Ks0ll7fKTa_ks@fNn zq@0b5k7zk3gD_S$ZmYaxC1SuQZ&3<^HnA7z&~hzk9aoDvaTHh!ip&3xR@%EQ;_&nSw7eAQ)+U8v7T3N;lXlK!*?P9>FYP| z55INscR1bgUr*m{9~|v&zfrF{^5*dSy_bHiHF@*;{hK%bn|1SMcW+nsk|dAh&5Jkt zFaM-pB#-6I(ZSBnq4(xV%PztJ?~(Ic6N^0*?4cx=jsxQL2CyG`v+8D+0=QpeYCBf!<%(E6@NW_yQ8Zl%XTZ? zzxJvm%a3iHKkpnI?(XlI_seQ4^g2__Di6F~?!SF^uycr&t3dW*=kVzC@Ey$DU$2gS zA8FxBGs~UV+wb30iqQJ-_z?8o9PJ#0J-9x;egFFP+wHy6{k=Ee>oR5~58mvARq5kE z`!ChT69?dCjIdYRM?2rxK33fdzB8AtK%6nJOeg6nX++QS46tfra>-iQEOUpuX&3v& z?%wvn_tlY@#Xj2k%Ta759lOcfhc9<`D@8gj#HCx(Lel7=^qj1Io80jGy+7^kf45hu zxaMYfq#Tbmyx{#%^z0O1tuRD+WjUXj5$*wosm=kpaFhRTxkG7&rljHQ=fkWeIkfQ_ zf*vUeGpuO@VLw{^Y=j*{*RTLG)Flf3)yt_xV0V{V^ccES$KEWO!6F?~8T!dmiXbfY zTxEw%WUEZ&Ra0442`caZ$$z+NDlaW}mazWPIT96w7ArjyPO^_MTePjb#+A*m{p#MZ z5tm@)HCK6^E4viLm7X1DJGwT$WxUz>pq4E>1Tm{0;&!8GCG5gm;T78q=-NXoyDY8SH#HK<||cfG9+$oXga6%cMpmMB>uQ14g`(5{JA!C&^XLcNQjK9@%hD zrEb7vAGEPe&_odZ2QH>0ZaFh)&*``$R^BiIL8Rz#<5X+zI^0Uua7=RVxM8Keel}iT zlW;b2i%y5;!a*F29qF~k8nQ;WQA92$sd7x$eu-oH&0jeotvaWu>1Puhf6zd~OTJEW zGY=Pse)C7|I1GqnaxN3Pu7bZSRV4IIKfNfEhV^wIfh^{n<+u?S|HwyZMU*vlgP*uo z(4gc9g?i;pImrgzSt~7WS2g53QM61R4UsynlqT6tfC(|IY#g6NU;=HS zR)yu0r5TJYrNvpiY>i^rzhTHgbc{R9&}^2G1VnZvNk9|dWpwRZR+2rUJBG;oyFFJs zLvPGpiv~pxkKQjlIxNkDTX1yZ7Zx9zd096$^M2vsVTJ1O43^;A3ytK^tr7)sXBg2* z(p-1PT|Kr-{9QS1)D#V*$2NRC8am?A&K>apwPX5W^Pf8GY7n48uk@F`o;1I>ZEk+C z`Nhi0eoOakm+im7Rh5ox1I?ECdcVCggfn)^-Igo13Z*Gs zDKGN@JS2ken|^VY_Mxf!8&LV)gU|omd+@^-NrEjTpV57SEkOMre#Qv!Ub;sS88D@H z*IY*|KXlht5r050F{ym+_$@=wX1w-1uty+7`}JOZi~8g;F`;Ay@_kGIN(+n4PZ zuMZEn@rDrHOHEYNof9<7=;^kNF?$;90vodj#Mz&nm%OIQd^pgMbidhbE&xf=>52r& zS-H3~_$V-GNNde%b9VuUpS$g}!^j?A;QFtyA2)gukPjtXxXVn%;FXnqfux~pis%=S zo8rc7!pUvG+5Lhn3)$>XH3v5@`jzC)wzq*ojhBb-nqT}5TfRUsJ8Jx1n;!0~*6&l> z*7VS(A@jRH;!l!|j5B~LlA-5{6ZztI#!1s9sX@8${o?FzS$A^3ncz@NE~#5ulnb&W zEGL3$VP&)Pe26-0mI$)A8{P8?p>Oj^yWPgB-(@aTx2>hzSWRU_=^U(kvQ%QlEG=`s ziZ0V(ub)Y*ue8kCFwe$4h87fNLr*Zw%AvbZ=+%Sia@<`3u%Fa}t%uEQ@mXN`>tUb! zj*`B=xfm|urD-LMSFjZ_+&oP&J`GX+ghxA064R@1J~bH`E*(qi}Kj z#-zg6iL8aZZ_7wFXc^yC*Gw9yR)M~oZ44^cuq)TH6U4W6Tr?avJv=0KHQBT$vgNp+ z$0yAuuQyuvU{gq=+-?eBXOjiwi-0! z$O*u$WTTb>Ft_^MDFD+a8V{XzYP=4xkM;@{NgOi8pNLMO2^FI|pEM-))cq7V`oUTM zrVW(y{QzlL1~`Y7v$G=-rgod` z1o#qY1odvcUt-Bo-!MDL)HmRE17PSpznB7jTW#;W+(_=fMYDAzL|y|2bx6XI`>je* zjDZ1j*oce@KlfMe*S)eG?O$c%etPrzFw*>j-Ix!uhdAVU??71TIe5VE69lj+2&Yjk9&Jb(g#@|Gy zNrdpgtKYZYCH{r65JHrl zY!T*Gh&-K4((dJV1^NV1n1sxdeeTq|v)tyA@Qf=Sz&1{@H*nt|rC}P--RcgYd;K%G zPh=3k%mu=@k}tdVh;D`Rn??kYH5)%NOq!Y9Zz-5dct#sZnf1?+2&`RNJ45#ag**x0 z>S&HpCZ}+5lX2Aj^YT8u%vaKiQ;gGec%)2J{8yz+=&4Y^73t(503~XdlxwiTYVCU zO<4(8i9H;4k^g#?^*H1x-@bgI9Cl&*G;w6V8DxMIT1do67oz9!>)xu1|Jq#o*K*+_ zd)J+yi8K-niohXr-(Qrr!F_0Jy2%X`M$kU5)l4Aqp$g-WsW8`4t-y8{{jA+DE*f!i z3icNFtCx?Pjr;BUP1WkCC?{{(AOi?2GAG@rAF zM!}mI!it%%8sNTg3S3_Ai0)R1NLJkb{{c`-0RkQa6aWAK2mtAzT26TlBIA0r0syxM z4FCxM7ytkO00031005+c00000cW-iQWpXZRb5&FY00YJ1bzF6L3jhHG_yGU_1QY-O a08mQ>1^@s60096208an_0KK#V00004#8mA7 diff --git a/dist/index.html b/dist/index.html deleted file mode 100644 index 4faf06f..0000000 --- a/dist/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - Terminal basic example - - - -
- - - diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 6313ce0..0000000 --- a/dist/index.js +++ /dev/null @@ -1,25079 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./src/index.ts"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./node_modules/browserfs/dist/browserfs.js": -/*!**************************************************!*\ - !*** ./node_modules/browserfs/dist/browserfs.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["BrowserFS"] = factory(); - else - root["BrowserFS"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; -/******/ -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer, global, module, process) {'use strict'; - - Object.defineProperty(exports, '__esModule', { value: true }); - - var buffer = __webpack_require__(2); - var path = __webpack_require__(9); - - /** - * Standard libc error codes. Add more to this enum and ErrorStrings as they are - * needed. - * @url http://www.gnu.org/software/libc/manual/html_node/Error-Codes.html - */ - /** - * Standard libc error codes. Add more to this enum and ErrorStrings as they are - * needed. - * @url http://www.gnu.org/software/libc/manual/html_node/Error-Codes.html - */ var ErrorCode; - (function (ErrorCode) { - ErrorCode[ErrorCode["EPERM"] = 1] = "EPERM"; - ErrorCode[ErrorCode["ENOENT"] = 2] = "ENOENT"; - ErrorCode[ErrorCode["EIO"] = 5] = "EIO"; - ErrorCode[ErrorCode["EBADF"] = 9] = "EBADF"; - ErrorCode[ErrorCode["EACCES"] = 13] = "EACCES"; - ErrorCode[ErrorCode["EBUSY"] = 16] = "EBUSY"; - ErrorCode[ErrorCode["EEXIST"] = 17] = "EEXIST"; - ErrorCode[ErrorCode["ENOTDIR"] = 20] = "ENOTDIR"; - ErrorCode[ErrorCode["EISDIR"] = 21] = "EISDIR"; - ErrorCode[ErrorCode["EINVAL"] = 22] = "EINVAL"; - ErrorCode[ErrorCode["EFBIG"] = 27] = "EFBIG"; - ErrorCode[ErrorCode["ENOSPC"] = 28] = "ENOSPC"; - ErrorCode[ErrorCode["EROFS"] = 30] = "EROFS"; - ErrorCode[ErrorCode["ENOTEMPTY"] = 39] = "ENOTEMPTY"; - ErrorCode[ErrorCode["ENOTSUP"] = 95] = "ENOTSUP"; - })(ErrorCode || (ErrorCode = {})); - /* tslint:disable:variable-name */ - /** - * Strings associated with each error code. - * @hidden - */ - var ErrorStrings = {}; - ErrorStrings[ErrorCode.EPERM] = 'Operation not permitted.'; - ErrorStrings[ErrorCode.ENOENT] = 'No such file or directory.'; - ErrorStrings[ErrorCode.EIO] = 'Input/output error.'; - ErrorStrings[ErrorCode.EBADF] = 'Bad file descriptor.'; - ErrorStrings[ErrorCode.EACCES] = 'Permission denied.'; - ErrorStrings[ErrorCode.EBUSY] = 'Resource busy or locked.'; - ErrorStrings[ErrorCode.EEXIST] = 'File exists.'; - ErrorStrings[ErrorCode.ENOTDIR] = 'File is not a directory.'; - ErrorStrings[ErrorCode.EISDIR] = 'File is a directory.'; - ErrorStrings[ErrorCode.EINVAL] = 'Invalid argument.'; - ErrorStrings[ErrorCode.EFBIG] = 'File is too big.'; - ErrorStrings[ErrorCode.ENOSPC] = 'No space left on disk.'; - ErrorStrings[ErrorCode.EROFS] = 'Cannot modify a read-only file system.'; - ErrorStrings[ErrorCode.ENOTEMPTY] = 'Directory is not empty.'; - ErrorStrings[ErrorCode.ENOTSUP] = 'Operation is not supported.'; - /* tslint:enable:variable-name */ - /** - * Represents a BrowserFS error. Passed back to applications after a failed - * call to the BrowserFS API. - */ - var ApiError = (function (Error) { - function ApiError(type, message, path$$1) { - if ( message === void 0 ) message = ErrorStrings[type]; - - Error.call(this, message); - // Unsupported. - this.syscall = ""; - this.errno = type; - this.code = ErrorCode[type]; - this.path = path$$1; - this.stack = new Error().stack; - this.message = "Error: " + (this.code) + ": " + message + (this.path ? (", '" + (this.path) + "'") : ''); - } - - if ( Error ) ApiError.__proto__ = Error; - ApiError.prototype = Object.create( Error && Error.prototype ); - ApiError.prototype.constructor = ApiError; - ApiError.fromJSON = function fromJSON (json) { - var err = new ApiError(0); - err.errno = json.errno; - err.code = json.code; - err.path = json.path; - err.stack = json.stack; - err.message = json.message; - return err; - }; - /** - * Creates an ApiError object from a buffer. - */ - ApiError.fromBuffer = function fromBuffer (buffer$$1, i) { - if ( i === void 0 ) i = 0; - - return ApiError.fromJSON(JSON.parse(buffer$$1.toString('utf8', i + 4, i + 4 + buffer$$1.readUInt32LE(i)))); - }; - ApiError.FileError = function FileError (code, p) { - return new ApiError(code, ErrorStrings[code], p); - }; - ApiError.ENOENT = function ENOENT (path$$1) { - return this.FileError(ErrorCode.ENOENT, path$$1); - }; - ApiError.EEXIST = function EEXIST (path$$1) { - return this.FileError(ErrorCode.EEXIST, path$$1); - }; - ApiError.EISDIR = function EISDIR (path$$1) { - return this.FileError(ErrorCode.EISDIR, path$$1); - }; - ApiError.ENOTDIR = function ENOTDIR (path$$1) { - return this.FileError(ErrorCode.ENOTDIR, path$$1); - }; - ApiError.EPERM = function EPERM (path$$1) { - return this.FileError(ErrorCode.EPERM, path$$1); - }; - ApiError.ENOTEMPTY = function ENOTEMPTY (path$$1) { - return this.FileError(ErrorCode.ENOTEMPTY, path$$1); - }; - /** - * @return A friendly error message. - */ - ApiError.prototype.toString = function toString () { - return this.message; - }; - ApiError.prototype.toJSON = function toJSON () { - return { - errno: this.errno, - code: this.code, - path: this.path, - stack: this.stack, - message: this.message - }; - }; - /** - * Writes the API error into a buffer. - */ - ApiError.prototype.writeToBuffer = function writeToBuffer (buffer$$1, i) { - if ( buffer$$1 === void 0 ) buffer$$1 = Buffer.alloc(this.bufferSize()); - if ( i === void 0 ) i = 0; - - var bytesWritten = buffer$$1.write(JSON.stringify(this.toJSON()), i + 4); - buffer$$1.writeUInt32LE(bytesWritten, i); - return buffer$$1; - }; - /** - * The size of the API error in buffer-form in bytes. - */ - ApiError.prototype.bufferSize = function bufferSize () { - // 4 bytes for string length. - return 4 + Buffer.byteLength(JSON.stringify(this.toJSON())); - }; - - return ApiError; - }(Error)); - - - var api_error = Object.freeze({ - get ErrorCode () { return ErrorCode; }, - ErrorStrings: ErrorStrings, - ApiError: ApiError - }); - - var ActionType; - (function (ActionType) { - // Indicates that the code should not do anything. - ActionType[ActionType["NOP"] = 0] = "NOP"; - // Indicates that the code should throw an exception. - ActionType[ActionType["THROW_EXCEPTION"] = 1] = "THROW_EXCEPTION"; - // Indicates that the code should truncate the file, but only if it is a file. - ActionType[ActionType["TRUNCATE_FILE"] = 2] = "TRUNCATE_FILE"; - // Indicates that the code should create the file. - ActionType[ActionType["CREATE_FILE"] = 3] = "CREATE_FILE"; - })(ActionType || (ActionType = {})); - /** - * Represents one of the following file flags. A convenience object. - * - * * `'r'` - Open file for reading. An exception occurs if the file does not exist. - * * `'r+'` - Open file for reading and writing. An exception occurs if the file does not exist. - * * `'rs'` - Open file for reading in synchronous mode. Instructs the filesystem to not cache writes. - * * `'rs+'` - Open file for reading and writing, and opens the file in synchronous mode. - * * `'w'` - Open file for writing. The file is created (if it does not exist) or truncated (if it exists). - * * `'wx'` - Like 'w' but opens the file in exclusive mode. - * * `'w+'` - Open file for reading and writing. The file is created (if it does not exist) or truncated (if it exists). - * * `'wx+'` - Like 'w+' but opens the file in exclusive mode. - * * `'a'` - Open file for appending. The file is created if it does not exist. - * * `'ax'` - Like 'a' but opens the file in exclusive mode. - * * `'a+'` - Open file for reading and appending. The file is created if it does not exist. - * * `'ax+'` - Like 'a+' but opens the file in exclusive mode. - * - * Exclusive mode ensures that the file path is newly created. - */ - var FileFlag = function FileFlag(flagStr) { - this.flagStr = flagStr; - if (FileFlag.validFlagStrs.indexOf(flagStr) < 0) { - throw new ApiError(ErrorCode.EINVAL, "Invalid flag: " + flagStr); - } - }; - /** - * Get an object representing the given file flag. - * @param modeStr The string representing the flag - * @return The FileFlag object representing the flag - * @throw when the flag string is invalid - */ - FileFlag.getFileFlag = function getFileFlag (flagStr) { - // Check cache first. - if (FileFlag.flagCache.hasOwnProperty(flagStr)) { - return FileFlag.flagCache[flagStr]; - } - return FileFlag.flagCache[flagStr] = new FileFlag(flagStr); - }; - /** - * Get the underlying flag string for this flag. - */ - FileFlag.prototype.getFlagString = function getFlagString () { - return this.flagStr; - }; - /** - * Returns true if the file is readable. - */ - FileFlag.prototype.isReadable = function isReadable () { - return this.flagStr.indexOf('r') !== -1 || this.flagStr.indexOf('+') !== -1; - }; - /** - * Returns true if the file is writeable. - */ - FileFlag.prototype.isWriteable = function isWriteable () { - return this.flagStr.indexOf('w') !== -1 || this.flagStr.indexOf('a') !== -1 || this.flagStr.indexOf('+') !== -1; - }; - /** - * Returns true if the file mode should truncate. - */ - FileFlag.prototype.isTruncating = function isTruncating () { - return this.flagStr.indexOf('w') !== -1; - }; - /** - * Returns true if the file is appendable. - */ - FileFlag.prototype.isAppendable = function isAppendable () { - return this.flagStr.indexOf('a') !== -1; - }; - /** - * Returns true if the file is open in synchronous mode. - */ - FileFlag.prototype.isSynchronous = function isSynchronous () { - return this.flagStr.indexOf('s') !== -1; - }; - /** - * Returns true if the file is open in exclusive mode. - */ - FileFlag.prototype.isExclusive = function isExclusive () { - return this.flagStr.indexOf('x') !== -1; - }; - /** - * Returns one of the static fields on this object that indicates the - * appropriate response to the path existing. - */ - FileFlag.prototype.pathExistsAction = function pathExistsAction () { - if (this.isExclusive()) { - return ActionType.THROW_EXCEPTION; - } - else if (this.isTruncating()) { - return ActionType.TRUNCATE_FILE; - } - else { - return ActionType.NOP; - } - }; - /** - * Returns one of the static fields on this object that indicates the - * appropriate response to the path not existing. - */ - FileFlag.prototype.pathNotExistsAction = function pathNotExistsAction () { - if ((this.isWriteable() || this.isAppendable()) && this.flagStr !== 'r+') { - return ActionType.CREATE_FILE; - } - else { - return ActionType.THROW_EXCEPTION; - } - }; - // Contains cached FileMode instances. - FileFlag.flagCache = {}; - // Array of valid mode strings. - FileFlag.validFlagStrs = ['r', 'r+', 'rs', 'rs+', 'w', 'wx', 'w+', 'wx+', 'a', 'ax', 'a+', 'ax+']; - - /** - * Indicates the type of the given file. Applied to 'mode'. - */ - var FileType; - (function (FileType) { - FileType[FileType["FILE"] = 32768] = "FILE"; - FileType[FileType["DIRECTORY"] = 16384] = "DIRECTORY"; - FileType[FileType["SYMLINK"] = 40960] = "SYMLINK"; - })(FileType || (FileType = {})); - /** - * Emulation of Node's `fs.Stats` object. - * - * Attribute descriptions are from `man 2 stat' - * @see http://nodejs.org/api/fs.html#fs_class_fs_stats - * @see http://man7.org/linux/man-pages/man2/stat.2.html - */ - var Stats = function Stats(itemType, size, mode, atime, mtime, ctime) { - if ( atime === void 0 ) atime = new Date(); - if ( mtime === void 0 ) mtime = new Date(); - if ( ctime === void 0 ) ctime = new Date(); - - this.size = size; - this.atime = atime; - this.mtime = mtime; - this.ctime = ctime; - /** - * UNSUPPORTED ATTRIBUTES - * I assume no one is going to need these details, although we could fake - * appropriate values if need be. - */ - // ID of device containing file - this.dev = 0; - // inode number - this.ino = 0; - // device ID (if special file) - this.rdev = 0; - // number of hard links - this.nlink = 1; - // blocksize for file system I/O - this.blksize = 4096; - // @todo Maybe support these? atm, it's a one-user filesystem. - // user ID of owner - this.uid = 0; - // group ID of owner - this.gid = 0; - // time file was created (currently unsupported) - this.birthtime = new Date(0); - // XXX: Some file systems stash data on stats objects. - this.fileData = null; - if (!mode) { - switch (itemType) { - case FileType.FILE: - this.mode = 0x1a4; - break; - case FileType.DIRECTORY: - default: - this.mode = 0x1ff; - } - } - else { - this.mode = mode; - } - // number of 512B blocks allocated - this.blocks = Math.ceil(size / 512); - // Check if mode also includes top-most bits, which indicate the file's - // type. - if (this.mode < 0x1000) { - this.mode |= itemType; - } - }; - Stats.fromBuffer = function fromBuffer (buffer$$1) { - var size = buffer$$1.readUInt32LE(0), mode = buffer$$1.readUInt32LE(4), atime = buffer$$1.readDoubleLE(8), mtime = buffer$$1.readDoubleLE(16), ctime = buffer$$1.readDoubleLE(24); - return new Stats(mode & 0xF000, size, mode & 0xFFF, new Date(atime), new Date(mtime), new Date(ctime)); - }; - Stats.prototype.toBuffer = function toBuffer () { - var buffer$$1 = Buffer.alloc(32); - buffer$$1.writeUInt32LE(this.size, 0); - buffer$$1.writeUInt32LE(this.mode, 4); - buffer$$1.writeDoubleLE(this.atime.getTime(), 8); - buffer$$1.writeDoubleLE(this.mtime.getTime(), 16); - buffer$$1.writeDoubleLE(this.ctime.getTime(), 24); - return buffer$$1; - }; - /** - * **Nonstandard**: Clone the stats object. - * @return [BrowserFS.node.fs.Stats] - */ - Stats.prototype.clone = function clone () { - return new Stats(this.mode & 0xF000, this.size, this.mode & 0xFFF, this.atime, this.mtime, this.ctime); - }; - /** - * @return [Boolean] True if this item is a file. - */ - Stats.prototype.isFile = function isFile () { - return (this.mode & 0xF000) === FileType.FILE; - }; - /** - * @return [Boolean] True if this item is a directory. - */ - Stats.prototype.isDirectory = function isDirectory () { - return (this.mode & 0xF000) === FileType.DIRECTORY; - }; - /** - * @return [Boolean] True if this item is a symbolic link (only valid through lstat) - */ - Stats.prototype.isSymbolicLink = function isSymbolicLink () { - return (this.mode & 0xF000) === FileType.SYMLINK; - }; - /** - * Change the mode of the file. We use this helper function to prevent messing - * up the type of the file, which is encoded in mode. - */ - Stats.prototype.chmod = function chmod (mode) { - this.mode = (this.mode & 0xF000) | mode; - }; - // We don't support the following types of files. - Stats.prototype.isSocket = function isSocket () { - return false; - }; - Stats.prototype.isBlockDevice = function isBlockDevice () { - return false; - }; - Stats.prototype.isCharacterDevice = function isCharacterDevice () { - return false; - }; - Stats.prototype.isFIFO = function isFIFO () { - return false; - }; - - /** - * Wraps a callback function. Used for unit testing. Defaults to a NOP. - * @hidden - */ - var wrapCb = function (cb, numArgs) { - return cb; - }; - /** - * @hidden - */ - function assertRoot(fs) { - if (fs) { - return fs; - } - throw new ApiError(ErrorCode.EIO, "Initialize BrowserFS with a file system using BrowserFS.initialize(filesystem)"); - } - /** - * @hidden - */ - function normalizeMode(mode, def) { - switch (typeof mode) { - case 'number': - // (path, flag, mode, cb?) - return mode; - case 'string': - // (path, flag, modeString, cb?) - var trueMode = parseInt(mode, 8); - if (!isNaN(trueMode)) { - return trueMode; - } - // Invalid string. - return def; - default: - return def; - } - } - /** - * @hidden - */ - function normalizeTime(time) { - if (time instanceof Date) { - return time; - } - else if (typeof time === 'number') { - return new Date(time * 1000); - } - else { - throw new ApiError(ErrorCode.EINVAL, "Invalid time."); - } - } - /** - * @hidden - */ - function normalizePath(p) { - // Node doesn't allow null characters in paths. - if (p.indexOf('\u0000') >= 0) { - throw new ApiError(ErrorCode.EINVAL, 'Path must be a string without null bytes.'); - } - else if (p === '') { - throw new ApiError(ErrorCode.EINVAL, 'Path must not be empty.'); - } - return path.resolve(p); - } - /** - * @hidden - */ - function normalizeOptions(options, defEnc, defFlag, defMode) { - switch (typeof options) { - case 'object': - return { - encoding: typeof options['encoding'] !== 'undefined' ? options['encoding'] : defEnc, - flag: typeof options['flag'] !== 'undefined' ? options['flag'] : defFlag, - mode: normalizeMode(options['mode'], defMode) - }; - case 'string': - return { - encoding: options, - flag: defFlag, - mode: defMode - }; - default: - return { - encoding: defEnc, - flag: defFlag, - mode: defMode - }; - } - } - /** - * The default callback is a NOP. - * @hidden - * @private - */ - function nopCb() { - // NOP. - } - /** - * The node frontend to all filesystems. - * This layer handles: - * - * * Sanity checking inputs. - * * Normalizing paths. - * * Resetting stack depth for asynchronous operations which may not go through - * the browser by wrapping all input callbacks using `setImmediate`. - * * Performing the requested operation through the filesystem or the file - * descriptor, as appropriate. - * * Handling optional arguments and setting default arguments. - * @see http://nodejs.org/api/fs.html - */ - var FS = function FS() { - /* tslint:enable:variable-name */ - this.F_OK = 0; - this.R_OK = 4; - this.W_OK = 2; - this.X_OK = 1; - this.root = null; - this.fdMap = {}; - this.nextFd = 100; - }; - FS.prototype.initialize = function initialize (rootFS) { - if (!rootFS.constructor.isAvailable()) { - throw new ApiError(ErrorCode.EINVAL, 'Tried to instantiate BrowserFS with an unavailable file system.'); - } - return this.root = rootFS; - }; - /** - * converts Date or number to a fractional UNIX timestamp - * Grabbed from NodeJS sources (lib/fs.js) - */ - FS.prototype._toUnixTimestamp = function _toUnixTimestamp (time) { - if (typeof time === 'number') { - return time; - } - else if (time instanceof Date) { - return time.getTime() / 1000; - } - throw new Error("Cannot parse time: " + time); - }; - /** - * **NONSTANDARD**: Grab the FileSystem instance that backs this API. - * @return [BrowserFS.FileSystem | null] Returns null if the file system has - * not been initialized. - */ - FS.prototype.getRootFS = function getRootFS () { - if (this.root) { - return this.root; - } - else { - return null; - } - }; - // FILE OR DIRECTORY METHODS - /** - * Asynchronous rename. No arguments other than a possible exception are given - * to the completion callback. - * @param oldPath - * @param newPath - * @param callback - */ - FS.prototype.rename = function rename (oldPath, newPath, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - assertRoot(this.root).rename(normalizePath(oldPath), normalizePath(newPath), newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous rename. - * @param oldPath - * @param newPath - */ - FS.prototype.renameSync = function renameSync (oldPath, newPath) { - assertRoot(this.root).renameSync(normalizePath(oldPath), normalizePath(newPath)); - }; - /** - * Test whether or not the given path exists by checking with the file system. - * Then call the callback argument with either true or false. - * @example Sample invocation - * fs.exists('/etc/passwd', function (exists) { - * util.debug(exists ? "it's there" : "no passwd!"); - * }); - * @param path - * @param callback - */ - FS.prototype.exists = function exists (path$$1, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - return assertRoot(this.root).exists(normalizePath(path$$1), newCb); - } - catch (e) { - // Doesn't return an error. If something bad happens, we assume it just - // doesn't exist. - return newCb(false); - } - }; - /** - * Test whether or not the given path exists by checking with the file system. - * @param path - * @return [boolean] - */ - FS.prototype.existsSync = function existsSync (path$$1) { - try { - return assertRoot(this.root).existsSync(normalizePath(path$$1)); - } - catch (e) { - // Doesn't return an error. If something bad happens, we assume it just - // doesn't exist. - return false; - } - }; - /** - * Asynchronous `stat`. - * @param path - * @param callback - */ - FS.prototype.stat = function stat (path$$1, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 2); - try { - return assertRoot(this.root).stat(normalizePath(path$$1), false, newCb); - } - catch (e) { - return newCb(e); - } - }; - /** - * Synchronous `stat`. - * @param path - * @return [BrowserFS.node.fs.Stats] - */ - FS.prototype.statSync = function statSync (path$$1) { - return assertRoot(this.root).statSync(normalizePath(path$$1), false); - }; - /** - * Asynchronous `lstat`. - * `lstat()` is identical to `stat()`, except that if path is a symbolic link, - * then the link itself is stat-ed, not the file that it refers to. - * @param path - * @param callback - */ - FS.prototype.lstat = function lstat (path$$1, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 2); - try { - return assertRoot(this.root).stat(normalizePath(path$$1), true, newCb); - } - catch (e) { - return newCb(e); - } - }; - /** - * Synchronous `lstat`. - * `lstat()` is identical to `stat()`, except that if path is a symbolic link, - * then the link itself is stat-ed, not the file that it refers to. - * @param path - * @return [BrowserFS.node.fs.Stats] - */ - FS.prototype.lstatSync = function lstatSync (path$$1) { - return assertRoot(this.root).statSync(normalizePath(path$$1), true); - }; - FS.prototype.truncate = function truncate (path$$1, arg2, cb) { - if ( arg2 === void 0 ) arg2 = 0; - if ( cb === void 0 ) cb = nopCb; - - var len = 0; - if (typeof arg2 === 'function') { - cb = arg2; - } - else if (typeof arg2 === 'number') { - len = arg2; - } - var newCb = wrapCb(cb, 1); - try { - if (len < 0) { - throw new ApiError(ErrorCode.EINVAL); - } - return assertRoot(this.root).truncate(normalizePath(path$$1), len, newCb); - } - catch (e) { - return newCb(e); - } - }; - /** - * Synchronous `truncate`. - * @param path - * @param len - */ - FS.prototype.truncateSync = function truncateSync (path$$1, len) { - if ( len === void 0 ) len = 0; - - if (len < 0) { - throw new ApiError(ErrorCode.EINVAL); - } - return assertRoot(this.root).truncateSync(normalizePath(path$$1), len); - }; - /** - * Asynchronous `unlink`. - * @param path - * @param callback - */ - FS.prototype.unlink = function unlink (path$$1, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - return assertRoot(this.root).unlink(normalizePath(path$$1), newCb); - } - catch (e) { - return newCb(e); - } - }; - /** - * Synchronous `unlink`. - * @param path - */ - FS.prototype.unlinkSync = function unlinkSync (path$$1) { - return assertRoot(this.root).unlinkSync(normalizePath(path$$1)); - }; - FS.prototype.open = function open (path$$1, flag, arg2, cb) { - var this$1 = this; - if ( cb === void 0 ) cb = nopCb; - - var mode = normalizeMode(arg2, 0x1a4); - cb = typeof arg2 === 'function' ? arg2 : cb; - var newCb = wrapCb(cb, 2); - try { - assertRoot(this.root).open(normalizePath(path$$1), FileFlag.getFileFlag(flag), mode, function (e, file) { - if (file) { - newCb(e, this$1.getFdForFile(file)); - } - else { - newCb(e); - } - }); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous file open. - * @see http://www.manpagez.com/man/2/open/ - * @param path - * @param flags - * @param mode defaults to `0644` - * @return [BrowserFS.File] - */ - FS.prototype.openSync = function openSync (path$$1, flag, mode) { - if ( mode === void 0 ) mode = 0x1a4; - - return this.getFdForFile(assertRoot(this.root).openSync(normalizePath(path$$1), FileFlag.getFileFlag(flag), normalizeMode(mode, 0x1a4))); - }; - FS.prototype.readFile = function readFile (filename, arg2, cb) { - if ( arg2 === void 0 ) arg2 = {}; - if ( cb === void 0 ) cb = nopCb; - - var options = normalizeOptions(arg2, null, 'r', null); - cb = typeof arg2 === 'function' ? arg2 : cb; - var newCb = wrapCb(cb, 2); - try { - var flag = FileFlag.getFileFlag(options['flag']); - if (!flag.isReadable()) { - return newCb(new ApiError(ErrorCode.EINVAL, 'Flag passed to readFile must allow for reading.')); - } - return assertRoot(this.root).readFile(normalizePath(filename), options.encoding, flag, newCb); - } - catch (e) { - return newCb(e); - } - }; - FS.prototype.readFileSync = function readFileSync (filename, arg2) { - if ( arg2 === void 0 ) arg2 = {}; - - var options = normalizeOptions(arg2, null, 'r', null); - var flag = FileFlag.getFileFlag(options.flag); - if (!flag.isReadable()) { - throw new ApiError(ErrorCode.EINVAL, 'Flag passed to readFile must allow for reading.'); - } - return assertRoot(this.root).readFileSync(normalizePath(filename), options.encoding, flag); - }; - FS.prototype.writeFile = function writeFile (filename, data, arg3, cb) { - if ( arg3 === void 0 ) arg3 = {}; - if ( cb === void 0 ) cb = nopCb; - - var options = normalizeOptions(arg3, 'utf8', 'w', 0x1a4); - cb = typeof arg3 === 'function' ? arg3 : cb; - var newCb = wrapCb(cb, 1); - try { - var flag = FileFlag.getFileFlag(options.flag); - if (!flag.isWriteable()) { - return newCb(new ApiError(ErrorCode.EINVAL, 'Flag passed to writeFile must allow for writing.')); - } - return assertRoot(this.root).writeFile(normalizePath(filename), data, options.encoding, flag, options.mode, newCb); - } - catch (e) { - return newCb(e); - } - }; - FS.prototype.writeFileSync = function writeFileSync (filename, data, arg3) { - var options = normalizeOptions(arg3, 'utf8', 'w', 0x1a4); - var flag = FileFlag.getFileFlag(options.flag); - if (!flag.isWriteable()) { - throw new ApiError(ErrorCode.EINVAL, 'Flag passed to writeFile must allow for writing.'); - } - return assertRoot(this.root).writeFileSync(normalizePath(filename), data, options.encoding, flag, options.mode); - }; - FS.prototype.appendFile = function appendFile (filename, data, arg3, cb) { - if ( cb === void 0 ) cb = nopCb; - - var options = normalizeOptions(arg3, 'utf8', 'a', 0x1a4); - cb = typeof arg3 === 'function' ? arg3 : cb; - var newCb = wrapCb(cb, 1); - try { - var flag = FileFlag.getFileFlag(options.flag); - if (!flag.isAppendable()) { - return newCb(new ApiError(ErrorCode.EINVAL, 'Flag passed to appendFile must allow for appending.')); - } - assertRoot(this.root).appendFile(normalizePath(filename), data, options.encoding, flag, options.mode, newCb); - } - catch (e) { - newCb(e); - } - }; - FS.prototype.appendFileSync = function appendFileSync (filename, data, arg3) { - var options = normalizeOptions(arg3, 'utf8', 'a', 0x1a4); - var flag = FileFlag.getFileFlag(options.flag); - if (!flag.isAppendable()) { - throw new ApiError(ErrorCode.EINVAL, 'Flag passed to appendFile must allow for appending.'); - } - return assertRoot(this.root).appendFileSync(normalizePath(filename), data, options.encoding, flag, options.mode); - }; - // FILE DESCRIPTOR METHODS - /** - * Asynchronous `fstat`. - * `fstat()` is identical to `stat()`, except that the file to be stat-ed is - * specified by the file descriptor `fd`. - * @param fd - * @param callback - */ - FS.prototype.fstat = function fstat (fd, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 2); - try { - var file = this.fd2file(fd); - file.stat(newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `fstat`. - * `fstat()` is identical to `stat()`, except that the file to be stat-ed is - * specified by the file descriptor `fd`. - * @param fd - * @return [BrowserFS.node.fs.Stats] - */ - FS.prototype.fstatSync = function fstatSync (fd) { - return this.fd2file(fd).statSync(); - }; - /** - * Asynchronous close. - * @param fd - * @param callback - */ - FS.prototype.close = function close (fd, cb) { - var this$1 = this; - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - this.fd2file(fd).close(function (e) { - if (!e) { - this$1.closeFd(fd); - } - newCb(e); - }); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous close. - * @param fd - */ - FS.prototype.closeSync = function closeSync (fd) { - this.fd2file(fd).closeSync(); - this.closeFd(fd); - }; - FS.prototype.ftruncate = function ftruncate (fd, arg2, cb) { - if ( cb === void 0 ) cb = nopCb; - - var length = typeof arg2 === 'number' ? arg2 : 0; - cb = typeof arg2 === 'function' ? arg2 : cb; - var newCb = wrapCb(cb, 1); - try { - var file = this.fd2file(fd); - if (length < 0) { - throw new ApiError(ErrorCode.EINVAL); - } - file.truncate(length, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous ftruncate. - * @param fd - * @param len - */ - FS.prototype.ftruncateSync = function ftruncateSync (fd, len) { - if ( len === void 0 ) len = 0; - - var file = this.fd2file(fd); - if (len < 0) { - throw new ApiError(ErrorCode.EINVAL); - } - file.truncateSync(len); - }; - /** - * Asynchronous fsync. - * @param fd - * @param callback - */ - FS.prototype.fsync = function fsync (fd, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - this.fd2file(fd).sync(newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous fsync. - * @param fd - */ - FS.prototype.fsyncSync = function fsyncSync (fd) { - this.fd2file(fd).syncSync(); - }; - /** - * Asynchronous fdatasync. - * @param fd - * @param callback - */ - FS.prototype.fdatasync = function fdatasync (fd, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - this.fd2file(fd).datasync(newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous fdatasync. - * @param fd - */ - FS.prototype.fdatasyncSync = function fdatasyncSync (fd) { - this.fd2file(fd).datasyncSync(); - }; - FS.prototype.write = function write (fd, arg2, arg3, arg4, arg5, cb) { - if ( cb === void 0 ) cb = nopCb; - - var buffer$$1, offset, length, position = null; - if (typeof arg2 === 'string') { - // Signature 1: (fd, string, [position?, [encoding?]], cb?) - var encoding = 'utf8'; - switch (typeof arg3) { - case 'function': - // (fd, string, cb) - cb = arg3; - break; - case 'number': - // (fd, string, position, encoding?, cb?) - position = arg3; - encoding = typeof arg4 === 'string' ? arg4 : 'utf8'; - cb = typeof arg5 === 'function' ? arg5 : cb; - break; - default: - // ...try to find the callback and get out of here! - cb = typeof arg4 === 'function' ? arg4 : typeof arg5 === 'function' ? arg5 : cb; - return cb(new ApiError(ErrorCode.EINVAL, 'Invalid arguments.')); - } - buffer$$1 = Buffer.from(arg2, encoding); - offset = 0; - length = buffer$$1.length; - } - else { - // Signature 2: (fd, buffer, offset, length, position?, cb?) - buffer$$1 = arg2; - offset = arg3; - length = arg4; - position = typeof arg5 === 'number' ? arg5 : null; - cb = typeof arg5 === 'function' ? arg5 : cb; - } - var newCb = wrapCb(cb, 3); - try { - var file = this.fd2file(fd); - if (position === undefined || position === null) { - position = file.getPos(); - } - file.write(buffer$$1, offset, length, position, newCb); - } - catch (e) { - newCb(e); - } - }; - FS.prototype.writeSync = function writeSync (fd, arg2, arg3, arg4, arg5) { - var buffer$$1, offset = 0, length, position; - if (typeof arg2 === 'string') { - // Signature 1: (fd, string, [position?, [encoding?]]) - position = typeof arg3 === 'number' ? arg3 : null; - var encoding = typeof arg4 === 'string' ? arg4 : 'utf8'; - offset = 0; - buffer$$1 = Buffer.from(arg2, encoding); - length = buffer$$1.length; - } - else { - // Signature 2: (fd, buffer, offset, length, position?) - buffer$$1 = arg2; - offset = arg3; - length = arg4; - position = typeof arg5 === 'number' ? arg5 : null; - } - var file = this.fd2file(fd); - if (position === undefined || position === null) { - position = file.getPos(); - } - return file.writeSync(buffer$$1, offset, length, position); - }; - FS.prototype.read = function read (fd, arg2, arg3, arg4, arg5, cb) { - if ( cb === void 0 ) cb = nopCb; - - var position, offset, length, buffer$$1, newCb; - if (typeof arg2 === 'number') { - // legacy interface - // (fd, length, position, encoding, callback) - length = arg2; - position = arg3; - var encoding = arg4; - cb = typeof arg5 === 'function' ? arg5 : cb; - offset = 0; - buffer$$1 = Buffer.alloc(length); - // XXX: Inefficient. - // Wrap the cb so we shelter upper layers of the API from these - // shenanigans. - newCb = wrapCb(function (err, bytesRead, buf) { - if (err) { - return cb(err); - } - cb(err, buf.toString(encoding), bytesRead); - }, 3); - } - else { - buffer$$1 = arg2; - offset = arg3; - length = arg4; - position = arg5; - newCb = wrapCb(cb, 3); - } - try { - var file = this.fd2file(fd); - if (position === undefined || position === null) { - position = file.getPos(); - } - file.read(buffer$$1, offset, length, position, newCb); - } - catch (e) { - newCb(e); - } - }; - FS.prototype.readSync = function readSync (fd, arg2, arg3, arg4, arg5) { - var shenanigans = false; - var buffer$$1, offset, length, position, encoding = 'utf8'; - if (typeof arg2 === 'number') { - length = arg2; - position = arg3; - encoding = arg4; - offset = 0; - buffer$$1 = Buffer.alloc(length); - shenanigans = true; - } - else { - buffer$$1 = arg2; - offset = arg3; - length = arg4; - position = arg5; - } - var file = this.fd2file(fd); - if (position === undefined || position === null) { - position = file.getPos(); - } - var rv = file.readSync(buffer$$1, offset, length, position); - if (!shenanigans) { - return rv; - } - else { - return [buffer$$1.toString(encoding), rv]; - } - }; - /** - * Asynchronous `fchown`. - * @param fd - * @param uid - * @param gid - * @param callback - */ - FS.prototype.fchown = function fchown (fd, uid, gid, callback) { - if ( callback === void 0 ) callback = nopCb; - - var newCb = wrapCb(callback, 1); - try { - this.fd2file(fd).chown(uid, gid, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `fchown`. - * @param fd - * @param uid - * @param gid - */ - FS.prototype.fchownSync = function fchownSync (fd, uid, gid) { - this.fd2file(fd).chownSync(uid, gid); - }; - /** - * Asynchronous `fchmod`. - * @param fd - * @param mode - * @param callback - */ - FS.prototype.fchmod = function fchmod (fd, mode, cb) { - var newCb = wrapCb(cb, 1); - try { - var numMode = typeof mode === 'string' ? parseInt(mode, 8) : mode; - this.fd2file(fd).chmod(numMode, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `fchmod`. - * @param fd - * @param mode - */ - FS.prototype.fchmodSync = function fchmodSync (fd, mode) { - var numMode = typeof mode === 'string' ? parseInt(mode, 8) : mode; - this.fd2file(fd).chmodSync(numMode); - }; - /** - * Change the file timestamps of a file referenced by the supplied file - * descriptor. - * @param fd - * @param atime - * @param mtime - * @param callback - */ - FS.prototype.futimes = function futimes (fd, atime, mtime, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - var file = this.fd2file(fd); - if (typeof atime === 'number') { - atime = new Date(atime * 1000); - } - if (typeof mtime === 'number') { - mtime = new Date(mtime * 1000); - } - file.utimes(atime, mtime, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Change the file timestamps of a file referenced by the supplied file - * descriptor. - * @param fd - * @param atime - * @param mtime - */ - FS.prototype.futimesSync = function futimesSync (fd, atime, mtime) { - this.fd2file(fd).utimesSync(normalizeTime(atime), normalizeTime(mtime)); - }; - // DIRECTORY-ONLY METHODS - /** - * Asynchronous `rmdir`. - * @param path - * @param callback - */ - FS.prototype.rmdir = function rmdir (path$$1, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).rmdir(path$$1, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `rmdir`. - * @param path - */ - FS.prototype.rmdirSync = function rmdirSync (path$$1) { - path$$1 = normalizePath(path$$1); - return assertRoot(this.root).rmdirSync(path$$1); - }; - /** - * Asynchronous `mkdir`. - * @param path - * @param mode defaults to `0777` - * @param callback - */ - FS.prototype.mkdir = function mkdir (path$$1, mode, cb) { - if ( cb === void 0 ) cb = nopCb; - - if (typeof mode === 'function') { - cb = mode; - mode = 0x1ff; - } - var newCb = wrapCb(cb, 1); - try { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).mkdir(path$$1, mode, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `mkdir`. - * @param path - * @param mode defaults to `0777` - */ - FS.prototype.mkdirSync = function mkdirSync (path$$1, mode) { - assertRoot(this.root).mkdirSync(normalizePath(path$$1), normalizeMode(mode, 0x1ff)); - }; - /** - * Asynchronous `readdir`. Reads the contents of a directory. - * The callback gets two arguments `(err, files)` where `files` is an array of - * the names of the files in the directory excluding `'.'` and `'..'`. - * @param path - * @param callback - */ - FS.prototype.readdir = function readdir (path$$1, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 2); - try { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).readdir(path$$1, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `readdir`. Reads the contents of a directory. - * @param path - * @return [String[]] - */ - FS.prototype.readdirSync = function readdirSync (path$$1) { - path$$1 = normalizePath(path$$1); - return assertRoot(this.root).readdirSync(path$$1); - }; - // SYMLINK METHODS - /** - * Asynchronous `link`. - * @param srcpath - * @param dstpath - * @param callback - */ - FS.prototype.link = function link (srcpath, dstpath, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - srcpath = normalizePath(srcpath); - dstpath = normalizePath(dstpath); - assertRoot(this.root).link(srcpath, dstpath, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `link`. - * @param srcpath - * @param dstpath - */ - FS.prototype.linkSync = function linkSync (srcpath, dstpath) { - srcpath = normalizePath(srcpath); - dstpath = normalizePath(dstpath); - return assertRoot(this.root).linkSync(srcpath, dstpath); - }; - FS.prototype.symlink = function symlink (srcpath, dstpath, arg3, cb) { - if ( cb === void 0 ) cb = nopCb; - - var type = typeof arg3 === 'string' ? arg3 : 'file'; - cb = typeof arg3 === 'function' ? arg3 : cb; - var newCb = wrapCb(cb, 1); - try { - if (type !== 'file' && type !== 'dir') { - return newCb(new ApiError(ErrorCode.EINVAL, "Invalid type: " + type)); - } - srcpath = normalizePath(srcpath); - dstpath = normalizePath(dstpath); - assertRoot(this.root).symlink(srcpath, dstpath, type, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `symlink`. - * @param srcpath - * @param dstpath - * @param type can be either `'dir'` or `'file'` (default is `'file'`) - */ - FS.prototype.symlinkSync = function symlinkSync (srcpath, dstpath, type) { - if (!type) { - type = 'file'; - } - else if (type !== 'file' && type !== 'dir') { - throw new ApiError(ErrorCode.EINVAL, "Invalid type: " + type); - } - srcpath = normalizePath(srcpath); - dstpath = normalizePath(dstpath); - return assertRoot(this.root).symlinkSync(srcpath, dstpath, type); - }; - /** - * Asynchronous readlink. - * @param path - * @param callback - */ - FS.prototype.readlink = function readlink (path$$1, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 2); - try { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).readlink(path$$1, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous readlink. - * @param path - * @return [String] - */ - FS.prototype.readlinkSync = function readlinkSync (path$$1) { - path$$1 = normalizePath(path$$1); - return assertRoot(this.root).readlinkSync(path$$1); - }; - // PROPERTY OPERATIONS - /** - * Asynchronous `chown`. - * @param path - * @param uid - * @param gid - * @param callback - */ - FS.prototype.chown = function chown (path$$1, uid, gid, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).chown(path$$1, false, uid, gid, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `chown`. - * @param path - * @param uid - * @param gid - */ - FS.prototype.chownSync = function chownSync (path$$1, uid, gid) { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).chownSync(path$$1, false, uid, gid); - }; - /** - * Asynchronous `lchown`. - * @param path - * @param uid - * @param gid - * @param callback - */ - FS.prototype.lchown = function lchown (path$$1, uid, gid, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).chown(path$$1, true, uid, gid, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `lchown`. - * @param path - * @param uid - * @param gid - */ - FS.prototype.lchownSync = function lchownSync (path$$1, uid, gid) { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).chownSync(path$$1, true, uid, gid); - }; - /** - * Asynchronous `chmod`. - * @param path - * @param mode - * @param callback - */ - FS.prototype.chmod = function chmod (path$$1, mode, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - var numMode = normalizeMode(mode, -1); - if (numMode < 0) { - throw new ApiError(ErrorCode.EINVAL, "Invalid mode."); - } - assertRoot(this.root).chmod(normalizePath(path$$1), false, numMode, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `chmod`. - * @param path - * @param mode - */ - FS.prototype.chmodSync = function chmodSync (path$$1, mode) { - var numMode = normalizeMode(mode, -1); - if (numMode < 0) { - throw new ApiError(ErrorCode.EINVAL, "Invalid mode."); - } - path$$1 = normalizePath(path$$1); - assertRoot(this.root).chmodSync(path$$1, false, numMode); - }; - /** - * Asynchronous `lchmod`. - * @param path - * @param mode - * @param callback - */ - FS.prototype.lchmod = function lchmod (path$$1, mode, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - var numMode = normalizeMode(mode, -1); - if (numMode < 0) { - throw new ApiError(ErrorCode.EINVAL, "Invalid mode."); - } - assertRoot(this.root).chmod(normalizePath(path$$1), true, numMode, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `lchmod`. - * @param path - * @param mode - */ - FS.prototype.lchmodSync = function lchmodSync (path$$1, mode) { - var numMode = normalizeMode(mode, -1); - if (numMode < 1) { - throw new ApiError(ErrorCode.EINVAL, "Invalid mode."); - } - assertRoot(this.root).chmodSync(normalizePath(path$$1), true, numMode); - }; - /** - * Change file timestamps of the file referenced by the supplied path. - * @param path - * @param atime - * @param mtime - * @param callback - */ - FS.prototype.utimes = function utimes (path$$1, atime, mtime, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - assertRoot(this.root).utimes(normalizePath(path$$1), normalizeTime(atime), normalizeTime(mtime), newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Change file timestamps of the file referenced by the supplied path. - * @param path - * @param atime - * @param mtime - */ - FS.prototype.utimesSync = function utimesSync (path$$1, atime, mtime) { - assertRoot(this.root).utimesSync(normalizePath(path$$1), normalizeTime(atime), normalizeTime(mtime)); - }; - FS.prototype.realpath = function realpath (path$$1, arg2, cb) { - if ( cb === void 0 ) cb = nopCb; - - var cache = typeof (arg2) === 'object' ? arg2 : {}; - cb = typeof (arg2) === 'function' ? arg2 : nopCb; - var newCb = wrapCb(cb, 2); - try { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).realpath(path$$1, cache, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `realpath`. - * @param path - * @param cache An object literal of mapped paths that can be used to - * force a specific path resolution or avoid additional `fs.stat` calls for - * known real paths. - * @return [String] - */ - FS.prototype.realpathSync = function realpathSync (path$$1, cache) { - if ( cache === void 0 ) cache = {}; - - path$$1 = normalizePath(path$$1); - return assertRoot(this.root).realpathSync(path$$1, cache); - }; - FS.prototype.watchFile = function watchFile (filename, arg2, listener) { - if ( listener === void 0 ) listener = nopCb; - - throw new ApiError(ErrorCode.ENOTSUP); - }; - FS.prototype.unwatchFile = function unwatchFile (filename, listener) { - if ( listener === void 0 ) listener = nopCb; - - throw new ApiError(ErrorCode.ENOTSUP); - }; - FS.prototype.watch = function watch (filename, arg2, listener) { - if ( listener === void 0 ) listener = nopCb; - - throw new ApiError(ErrorCode.ENOTSUP); - }; - FS.prototype.access = function access (path$$1, arg2, cb) { - if ( cb === void 0 ) cb = nopCb; - - throw new ApiError(ErrorCode.ENOTSUP); - }; - FS.prototype.accessSync = function accessSync (path$$1, mode) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - FS.prototype.createReadStream = function createReadStream (path$$1, options) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - FS.prototype.createWriteStream = function createWriteStream (path$$1, options) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - /** - * For unit testing. Passes all incoming callbacks to cbWrapper for wrapping. - */ - FS.prototype.wrapCallbacks = function wrapCallbacks (cbWrapper) { - wrapCb = cbWrapper; - }; - FS.prototype.getFdForFile = function getFdForFile (file) { - var fd = this.nextFd++; - this.fdMap[fd] = file; - return fd; - }; - FS.prototype.fd2file = function fd2file (fd) { - var rv = this.fdMap[fd]; - if (rv) { - return rv; - } - else { - throw new ApiError(ErrorCode.EBADF, 'Invalid file descriptor.'); - } - }; - FS.prototype.closeFd = function closeFd (fd) { - delete this.fdMap[fd]; - }; - - /* tslint:disable:variable-name */ - // Exported fs.Stats. - FS.Stats = Stats; - - // Manually export the individual public functions of fs. - // Required because some code will invoke functions off of the module. - // e.g.: - // let writeFile = fs.writeFile; - // writeFile(...) - /** - * @hidden - */ - var fs = new FS(); - /** - * @hidden - */ - var _fsMock = {}; - /** - * @hidden - */ - var fsProto = FS.prototype; - Object.keys(fsProto).forEach(function (key) { - if (typeof fs[key] === 'function') { - _fsMock[key] = function () { - return fs[key].apply(fs, arguments); - }; - } - else { - _fsMock[key] = fs[key]; - } - }); - _fsMock['changeFSModule'] = function (newFs) { - fs = newFs; - }; - _fsMock['getFSModule'] = function () { - return fs; - }; - _fsMock['FS'] = FS; - - /* - * Levenshtein distance, from the `js-levenshtein` NPM module. - * Copied here to avoid complexity of adding another CommonJS module dependency. - */ - function _min(d0, d1, d2, bx, ay) { - return d0 < d1 || d2 < d1 - ? d0 > d2 - ? d2 + 1 - : d0 + 1 - : bx === ay - ? d1 - : d1 + 1; - } - /** - * Calculates levenshtein distance. - * @param a - * @param b - */ - function levenshtein(a, b) { - if (a === b) { - return 0; - } - if (a.length > b.length) { - var tmp = a; - a = b; - b = tmp; - } - var la = a.length; - var lb = b.length; - while (la > 0 && (a.charCodeAt(la - 1) === b.charCodeAt(lb - 1))) { - la--; - lb--; - } - var offset = 0; - while (offset < la && (a.charCodeAt(offset) === b.charCodeAt(offset))) { - offset++; - } - la -= offset; - lb -= offset; - if (la === 0 || lb === 1) { - return lb; - } - var vector = new Array(la << 1); - for (var y = 0; y < la;) { - vector[la + y] = a.charCodeAt(offset + y); - vector[y] = ++y; - } - var x; - var d0; - var d1; - var d2; - var d3; - for (x = 0; (x + 3) < lb;) { - var bx0 = b.charCodeAt(offset + (d0 = x)); - var bx1 = b.charCodeAt(offset + (d1 = x + 1)); - var bx2 = b.charCodeAt(offset + (d2 = x + 2)); - var bx3 = b.charCodeAt(offset + (d3 = x + 3)); - var dd$1 = (x += 4); - for (var y$1 = 0; y$1 < la;) { - var ay = vector[la + y$1]; - var dy = vector[y$1]; - d0 = _min(dy, d0, d1, bx0, ay); - d1 = _min(d0, d1, d2, bx1, ay); - d2 = _min(d1, d2, d3, bx2, ay); - dd$1 = _min(d2, d3, dd$1, bx3, ay); - vector[y$1++] = dd$1; - d3 = d2; - d2 = d1; - d1 = d0; - d0 = dy; - } - } - var dd = 0; - for (; x < lb;) { - var bx0$1 = b.charCodeAt(offset + (d0 = x)); - dd = ++x; - for (var y$2 = 0; y$2 < la; y$2++) { - var dy$1 = vector[y$2]; - vector[y$2] = dd = dy$1 < d0 || dd < d0 - ? dy$1 > dd ? dd + 1 : dy$1 + 1 - : bx0$1 === vector[la + y$2] - ? d0 - : d0 + 1; - d0 = dy$1; - } - } - return dd; - } - - function deprecationMessage(print, fsName, opts) { - if (print) { - console.warn(("[" + fsName + "] Direct file system constructor usage is deprecated for this file system, and will be removed in the next major version. Please use the '" + fsName + ".Create(" + (JSON.stringify(opts)) + ", callback)' method instead. See https://github.com/jvilk/BrowserFS/issues/176 for more details.")); - } - } - /** - * Checks for any IE version, including IE11 which removed MSIE from the - * userAgent string. - * @hidden - */ - var isIE = typeof navigator !== "undefined" && !!(/(msie) ([\w.]+)/.exec(navigator.userAgent.toLowerCase()) || navigator.userAgent.indexOf('Trident') !== -1); - /** - * Check if we're in a web worker. - * @hidden - */ - var isWebWorker = typeof window === "undefined"; - /** - * Throws an exception. Called on code paths that should be impossible. - * @hidden - */ - function fail() { - throw new Error("BFS has reached an impossible code path; please file a bug."); - } - /** - * Synchronous recursive makedir. - * @hidden - */ - function mkdirpSync(p, mode, fs) { - if (!fs.existsSync(p)) { - mkdirpSync(path.dirname(p), mode, fs); - fs.mkdirSync(p, mode); - } - } - /** - * Converts a buffer into an array buffer. Attempts to do so in a - * zero-copy manner, e.g. the array references the same memory. - * @hidden - */ - function buffer2ArrayBuffer(buff) { - var u8 = buffer2Uint8array(buff), u8offset = u8.byteOffset, u8Len = u8.byteLength; - if (u8offset === 0 && u8Len === u8.buffer.byteLength) { - return u8.buffer; - } - else { - return u8.buffer.slice(u8offset, u8offset + u8Len); - } - } - /** - * Converts a buffer into a Uint8Array. Attempts to do so in a - * zero-copy manner, e.g. the array references the same memory. - * @hidden - */ - function buffer2Uint8array(buff) { - if (buff instanceof Uint8Array) { - // BFS & Node v4.0 buffers *are* Uint8Arrays. - return buff; - } - else { - // Uint8Arrays can be constructed from arrayish numbers. - // At this point, we assume this isn't a BFS array. - return new Uint8Array(buff); - } - } - /** - * Converts the given arrayish object into a Buffer. Attempts to - * be zero-copy. - * @hidden - */ - function arrayish2Buffer(arr) { - if (arr instanceof Buffer) { - return arr; - } - else if (arr instanceof Uint8Array) { - return uint8Array2Buffer(arr); - } - else { - return Buffer.from(arr); - } - } - /** - * Converts the given Uint8Array into a Buffer. Attempts to be zero-copy. - * @hidden - */ - function uint8Array2Buffer(u8) { - if (u8 instanceof Buffer) { - return u8; - } - else if (u8.byteOffset === 0 && u8.byteLength === u8.buffer.byteLength) { - return arrayBuffer2Buffer(u8.buffer); - } - else { - return Buffer.from(u8.buffer, u8.byteOffset, u8.byteLength); - } - } - /** - * Converts the given array buffer into a Buffer. Attempts to be - * zero-copy. - * @hidden - */ - function arrayBuffer2Buffer(ab) { - return Buffer.from(ab); - } - /** - * Copies a slice of the given buffer - * @hidden - */ - function copyingSlice(buff, start, end) { - if ( start === void 0 ) start = 0; - if ( end === void 0 ) end = buff.length; - - if (start < 0 || end < 0 || end > buff.length || start > end) { - throw new TypeError(("Invalid slice bounds on buffer of length " + (buff.length) + ": [" + start + ", " + end + "]")); - } - if (buff.length === 0) { - // Avoid s0 corner case in ArrayBuffer case. - return emptyBuffer(); - } - else { - var u8 = buffer2Uint8array(buff), s0 = buff[0], newS0 = (s0 + 1) % 0xFF; - buff[0] = newS0; - if (u8[0] === newS0) { - // Same memory. Revert & copy. - u8[0] = s0; - return uint8Array2Buffer(u8.slice(start, end)); - } - else { - // Revert. - buff[0] = s0; - return uint8Array2Buffer(u8.subarray(start, end)); - } - } - } - /** - * @hidden - */ - var emptyBuff = null; - /** - * Returns an empty buffer. - * @hidden - */ - function emptyBuffer() { - if (emptyBuff) { - return emptyBuff; - } - return emptyBuff = Buffer.alloc(0); - } - /** - * Option validator for a Buffer file system option. - * @hidden - */ - function bufferValidator(v, cb) { - if (Buffer.isBuffer(v)) { - cb(); - } - else { - cb(new ApiError(ErrorCode.EINVAL, "option must be a Buffer.")); - } - } - /** - * Checks that the given options object is valid for the file system options. - * @hidden - */ - function checkOptions(fsType, opts, cb) { - var optsInfo = fsType.Options; - var fsName = fsType.Name; - var pendingValidators = 0; - var callbackCalled = false; - var loopEnded = false; - function validatorCallback(e) { - if (!callbackCalled) { - if (e) { - callbackCalled = true; - cb(e); - } - pendingValidators--; - if (pendingValidators === 0 && loopEnded) { - cb(); - } - } - } - // Check for required options. - var loop = function ( optName ) { - if (optsInfo.hasOwnProperty(optName)) { - var opt = optsInfo[optName]; - var providedValue = opts[optName]; - if (providedValue === undefined || providedValue === null) { - if (!opt.optional) { - // Required option, not provided. - // Any incorrect options provided? Which ones are close to the provided one? - // (edit distance 5 === close) - var incorrectOptions = Object.keys(opts).filter(function (o) { return !(o in optsInfo); }).map(function (a) { - return { str: a, distance: levenshtein(optName, a) }; - }).filter(function (o) { return o.distance < 5; }).sort(function (a, b) { return a.distance - b.distance; }); - // Validators may be synchronous. - if (callbackCalled) { - return {}; - } - callbackCalled = true; - return { v: cb(new ApiError(ErrorCode.EINVAL, ("[" + fsName + "] Required option '" + optName + "' not provided." + (incorrectOptions.length > 0 ? (" You provided unrecognized option '" + (incorrectOptions[0].str) + "'; perhaps you meant to type '" + optName + "'.") : '') + "\nOption description: " + (opt.description)))) }; - } - // Else: Optional option, not provided. That is OK. - } - else { - // Option provided! Check type. - var typeMatches = false; - if (Array.isArray(opt.type)) { - typeMatches = opt.type.indexOf(typeof (providedValue)) !== -1; - } - else { - typeMatches = typeof (providedValue) === opt.type; - } - if (!typeMatches) { - // Validators may be synchronous. - if (callbackCalled) { - return {}; - } - callbackCalled = true; - return { v: cb(new ApiError(ErrorCode.EINVAL, ("[" + fsName + "] Value provided for option " + optName + " is not the proper type. Expected " + (Array.isArray(opt.type) ? ("one of {" + (opt.type.join(", ")) + "}") : opt.type) + ", but received " + (typeof (providedValue)) + "\nOption description: " + (opt.description)))) }; - } - else if (opt.validator) { - pendingValidators++; - opt.validator(providedValue, validatorCallback); - } - // Otherwise: All good! - } - } - }; - - for (var optName in optsInfo) { - var returned = loop( optName ); - - if ( returned ) return returned.v; - } - loopEnded = true; - if (pendingValidators === 0 && !callbackCalled) { - cb(); - } - } - - - var BFSUtils = Object.freeze({ - deprecationMessage: deprecationMessage, - isIE: isIE, - isWebWorker: isWebWorker, - fail: fail, - mkdirpSync: mkdirpSync, - buffer2ArrayBuffer: buffer2ArrayBuffer, - buffer2Uint8array: buffer2Uint8array, - arrayish2Buffer: arrayish2Buffer, - uint8Array2Buffer: uint8Array2Buffer, - arrayBuffer2Buffer: arrayBuffer2Buffer, - copyingSlice: copyingSlice, - emptyBuffer: emptyBuffer, - bufferValidator: bufferValidator, - checkOptions: checkOptions - }); - - var BFSEmscriptenStreamOps = function BFSEmscriptenStreamOps(fs) { - this.fs = fs; - this.nodefs = fs.getNodeFS(); - this.FS = fs.getFS(); - this.PATH = fs.getPATH(); - this.ERRNO_CODES = fs.getERRNO_CODES(); - }; - BFSEmscriptenStreamOps.prototype.open = function open (stream) { - var path$$1 = this.fs.realPath(stream.node); - var FS = this.FS; - try { - if (FS.isFile(stream.node.mode)) { - stream.nfd = this.nodefs.openSync(path$$1, this.fs.flagsToPermissionString(stream.flags)); - } - } - catch (e) { - if (!e.code) { - throw e; - } - throw new FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenStreamOps.prototype.close = function close (stream) { - var FS = this.FS; - try { - if (FS.isFile(stream.node.mode) && stream.nfd) { - this.nodefs.closeSync(stream.nfd); - } - } - catch (e) { - if (!e.code) { - throw e; - } - throw new FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenStreamOps.prototype.read = function read (stream, buffer$$1, offset, length, position) { - // Avoid copying overhead by reading directly into buffer. - try { - return this.nodefs.readSync(stream.nfd, uint8Array2Buffer(buffer$$1), offset, length, position); - } - catch (e) { - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenStreamOps.prototype.write = function write (stream, buffer$$1, offset, length, position) { - // Avoid copying overhead. - try { - return this.nodefs.writeSync(stream.nfd, uint8Array2Buffer(buffer$$1), offset, length, position); - } - catch (e) { - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenStreamOps.prototype.llseek = function llseek (stream, offset, whence) { - var position = offset; - if (whence === 1) { - position += stream.position; - } - else if (whence === 2) { - if (this.FS.isFile(stream.node.mode)) { - try { - var stat = this.nodefs.fstatSync(stream.nfd); - position += stat.size; - } - catch (e) { - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - } - } - if (position < 0) { - throw new this.FS.ErrnoError(this.ERRNO_CODES.EINVAL); - } - stream.position = position; - return position; - }; - var BFSEmscriptenNodeOps = function BFSEmscriptenNodeOps(fs) { - this.fs = fs; - this.nodefs = fs.getNodeFS(); - this.FS = fs.getFS(); - this.PATH = fs.getPATH(); - this.ERRNO_CODES = fs.getERRNO_CODES(); - }; - BFSEmscriptenNodeOps.prototype.getattr = function getattr (node) { - var path$$1 = this.fs.realPath(node); - var stat; - try { - stat = this.nodefs.lstatSync(path$$1); - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - 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 - }; - }; - BFSEmscriptenNodeOps.prototype.setattr = function setattr (node, attr) { - var path$$1 = this.fs.realPath(node); - try { - if (attr.mode !== undefined) { - this.nodefs.chmodSync(path$$1, attr.mode); - // update the common node structure mode as well - node.mode = attr.mode; - } - if (attr.timestamp !== undefined) { - var date = new Date(attr.timestamp); - this.nodefs.utimesSync(path$$1, date, date); - } - } - catch (e) { - if (!e.code) { - throw e; - } - // Ignore not supported errors. Emscripten does utimesSync when it - // writes files, but never really requires the value to be set. - if (e.code !== "ENOTSUP") { - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - } - if (attr.size !== undefined) { - try { - this.nodefs.truncateSync(path$$1, attr.size); - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - } - }; - BFSEmscriptenNodeOps.prototype.lookup = function lookup (parent, name) { - var path$$1 = this.PATH.join2(this.fs.realPath(parent), name); - var mode = this.fs.getMode(path$$1); - return this.fs.createNode(parent, name, mode); - }; - BFSEmscriptenNodeOps.prototype.mknod = function mknod (parent, name, mode, dev) { - var node = this.fs.createNode(parent, name, mode, dev); - // create the backing node for this in the fs root as well - var path$$1 = this.fs.realPath(node); - try { - if (this.FS.isDir(node.mode)) { - this.nodefs.mkdirSync(path$$1, node.mode); - } - else { - this.nodefs.writeFileSync(path$$1, '', { mode: node.mode }); - } - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - return node; - }; - BFSEmscriptenNodeOps.prototype.rename = function rename (oldNode, newDir, newName) { - var oldPath = this.fs.realPath(oldNode); - var newPath = this.PATH.join2(this.fs.realPath(newDir), newName); - try { - this.nodefs.renameSync(oldPath, newPath); - // This logic is missing from the original NodeFS, - // causing Emscripten's filesystem to think that the old file still exists. - oldNode.name = newName; - oldNode.parent = newDir; - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenNodeOps.prototype.unlink = function unlink (parent, name) { - var path$$1 = this.PATH.join2(this.fs.realPath(parent), name); - try { - this.nodefs.unlinkSync(path$$1); - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenNodeOps.prototype.rmdir = function rmdir (parent, name) { - var path$$1 = this.PATH.join2(this.fs.realPath(parent), name); - try { - this.nodefs.rmdirSync(path$$1); - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenNodeOps.prototype.readdir = function readdir (node) { - var path$$1 = this.fs.realPath(node); - try { - // Node does not list . and .. in directory listings, - // but Emscripten expects it. - var contents = this.nodefs.readdirSync(path$$1); - contents.push('.', '..'); - return contents; - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenNodeOps.prototype.symlink = function symlink (parent, newName, oldPath) { - var newPath = this.PATH.join2(this.fs.realPath(parent), newName); - try { - this.nodefs.symlinkSync(oldPath, newPath); - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenNodeOps.prototype.readlink = function readlink (node) { - var path$$1 = this.fs.realPath(node); - try { - return this.nodefs.readlinkSync(path$$1); - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - var BFSEmscriptenFS = function BFSEmscriptenFS(_FS, _PATH, _ERRNO_CODES, nodefs) { - if ( _FS === void 0 ) _FS = self['FS']; - if ( _PATH === void 0 ) _PATH = self['PATH']; - if ( _ERRNO_CODES === void 0 ) _ERRNO_CODES = self['ERRNO_CODES']; - if ( nodefs === void 0 ) nodefs = _fsMock; - - // This maps the integer permission modes from http://linux.die.net/man/3/open - // to node.js-specific file open permission strings at http://nodejs.org/api/fs.html#fs_fs_open_path_flags_mode_callback - this.flagsToPermissionStringMap = { - 0 /*O_RDONLY*/: 'r', - 1 /*O_WRONLY*/: 'r+', - 2 /*O_RDWR*/: 'r+', - 64 /*O_CREAT*/: 'r', - 65 /*O_WRONLY|O_CREAT*/: 'r+', - 66 /*O_RDWR|O_CREAT*/: 'r+', - 129 /*O_WRONLY|O_EXCL*/: 'rx+', - 193 /*O_WRONLY|O_CREAT|O_EXCL*/: 'rx+', - 514 /*O_RDWR|O_TRUNC*/: 'w+', - 577 /*O_WRONLY|O_CREAT|O_TRUNC*/: 'w', - 578 /*O_CREAT|O_RDWR|O_TRUNC*/: 'w+', - 705 /*O_WRONLY|O_CREAT|O_EXCL|O_TRUNC*/: 'wx', - 706 /*O_RDWR|O_CREAT|O_EXCL|O_TRUNC*/: 'wx+', - 1024 /*O_APPEND*/: 'a', - 1025 /*O_WRONLY|O_APPEND*/: 'a', - 1026 /*O_RDWR|O_APPEND*/: 'a+', - 1089 /*O_WRONLY|O_CREAT|O_APPEND*/: 'a', - 1090 /*O_RDWR|O_CREAT|O_APPEND*/: 'a+', - 1153 /*O_WRONLY|O_EXCL|O_APPEND*/: 'ax', - 1154 /*O_RDWR|O_EXCL|O_APPEND*/: 'ax+', - 1217 /*O_WRONLY|O_CREAT|O_EXCL|O_APPEND*/: 'ax', - 1218 /*O_RDWR|O_CREAT|O_EXCL|O_APPEND*/: 'ax+', - 4096 /*O_RDONLY|O_DSYNC*/: 'rs', - 4098 /*O_RDWR|O_DSYNC*/: 'rs+' - }; - this.nodefs = nodefs; - this.FS = _FS; - this.PATH = _PATH; - this.ERRNO_CODES = _ERRNO_CODES; - this.node_ops = new BFSEmscriptenNodeOps(this); - this.stream_ops = new BFSEmscriptenStreamOps(this); - }; - BFSEmscriptenFS.prototype.mount = function mount (m) { - return this.createNode(null, '/', this.getMode(m.opts.root), 0); - }; - BFSEmscriptenFS.prototype.createNode = function createNode (parent, name, mode, dev) { - var FS = this.FS; - if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { - throw new FS.ErrnoError(this.ERRNO_CODES.EINVAL); - } - var node = FS.createNode(parent, name, mode); - node.node_ops = this.node_ops; - node.stream_ops = this.stream_ops; - return node; - }; - BFSEmscriptenFS.prototype.getMode = function getMode (path$$1) { - var stat; - try { - stat = this.nodefs.lstatSync(path$$1); - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - return stat.mode; - }; - BFSEmscriptenFS.prototype.realPath = function realPath (node) { - var parts = []; - while (node.parent !== node) { - parts.push(node.name); - node = node.parent; - } - parts.push(node.mount.opts.root); - parts.reverse(); - return this.PATH.join.apply(null, parts); - }; - BFSEmscriptenFS.prototype.flagsToPermissionString = function flagsToPermissionString (flags) { - var parsedFlags = (typeof flags === "string") ? parseInt(flags, 10) : flags; - parsedFlags &= 0x1FFF; - if (parsedFlags in this.flagsToPermissionStringMap) { - return this.flagsToPermissionStringMap[parsedFlags]; - } - else { - return flags; - } - }; - BFSEmscriptenFS.prototype.getNodeFS = function getNodeFS () { - return this.nodefs; - }; - BFSEmscriptenFS.prototype.getFS = function getFS () { - return this.FS; - }; - BFSEmscriptenFS.prototype.getPATH = function getPATH () { - return this.PATH; - }; - BFSEmscriptenFS.prototype.getERRNO_CODES = function getERRNO_CODES () { - return this.ERRNO_CODES; - }; - - /** - * Basic filesystem class. Most filesystems should extend this class, as it - * provides default implementations for a handful of methods. - */ - var BaseFileSystem = function BaseFileSystem () {}; - - BaseFileSystem.prototype.supportsLinks = function supportsLinks () { - return false; - }; - BaseFileSystem.prototype.diskSpace = function diskSpace (p, cb) { - cb(0, 0); - }; - /** - * Opens the file at path p with the given flag. The file must exist. - * @param p The path to open. - * @param flag The flag to use when opening the file. - */ - BaseFileSystem.prototype.openFile = function openFile (p, flag, cb) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - /** - * Create the file at path p with the given mode. Then, open it with the given - * flag. - */ - BaseFileSystem.prototype.createFile = function createFile (p, flag, mode, cb) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.open = function open (p, flag, mode, cb) { - var this$1 = this; - - var mustBeFile = function (e, stats) { - if (e) { - // File does not exist. - switch (flag.pathNotExistsAction()) { - case ActionType.CREATE_FILE: - // Ensure parent exists. - return this$1.stat(path.dirname(p), false, function (e, parentStats) { - if (e) { - cb(e); - } - else if (parentStats && !parentStats.isDirectory()) { - cb(ApiError.ENOTDIR(path.dirname(p))); - } - else { - this$1.createFile(p, flag, mode, cb); - } - }); - case ActionType.THROW_EXCEPTION: - return cb(ApiError.ENOENT(p)); - default: - return cb(new ApiError(ErrorCode.EINVAL, 'Invalid FileFlag object.')); - } - } - else { - // File exists. - if (stats && stats.isDirectory()) { - return cb(ApiError.EISDIR(p)); - } - switch (flag.pathExistsAction()) { - case ActionType.THROW_EXCEPTION: - return cb(ApiError.EEXIST(p)); - case ActionType.TRUNCATE_FILE: - // NOTE: In a previous implementation, we deleted the file and - // re-created it. However, this created a race condition if another - // asynchronous request was trying to read the file, as the file - // would not exist for a small period of time. - return this$1.openFile(p, flag, function (e, fd) { - if (e) { - cb(e); - } - else if (fd) { - fd.truncate(0, function () { - fd.sync(function () { - cb(null, fd); - }); - }); - } - else { - fail(); - } - }); - case ActionType.NOP: - return this$1.openFile(p, flag, cb); - default: - return cb(new ApiError(ErrorCode.EINVAL, 'Invalid FileFlag object.')); - } - } - }; - this.stat(p, false, mustBeFile); - }; - BaseFileSystem.prototype.rename = function rename (oldPath, newPath, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.renameSync = function renameSync (oldPath, newPath) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.stat = function stat (p, isLstat, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.statSync = function statSync (p, isLstat) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - /** - * Opens the file at path p with the given flag. The file must exist. - * @param p The path to open. - * @param flag The flag to use when opening the file. - * @return A File object corresponding to the opened file. - */ - BaseFileSystem.prototype.openFileSync = function openFileSync (p, flag, mode) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - /** - * Create the file at path p with the given mode. Then, open it with the given - * flag. - */ - BaseFileSystem.prototype.createFileSync = function createFileSync (p, flag, mode) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.openSync = function openSync (p, flag, mode) { - // Check if the path exists, and is a file. - var stats; - try { - stats = this.statSync(p, false); - } - catch (e) { - // File does not exist. - switch (flag.pathNotExistsAction()) { - case ActionType.CREATE_FILE: - // Ensure parent exists. - var parentStats = this.statSync(path.dirname(p), false); - if (!parentStats.isDirectory()) { - throw ApiError.ENOTDIR(path.dirname(p)); - } - return this.createFileSync(p, flag, mode); - case ActionType.THROW_EXCEPTION: - throw ApiError.ENOENT(p); - default: - throw new ApiError(ErrorCode.EINVAL, 'Invalid FileFlag object.'); - } - } - // File exists. - if (stats.isDirectory()) { - throw ApiError.EISDIR(p); - } - switch (flag.pathExistsAction()) { - case ActionType.THROW_EXCEPTION: - throw ApiError.EEXIST(p); - case ActionType.TRUNCATE_FILE: - // Delete file. - this.unlinkSync(p); - // Create file. Use the same mode as the old file. - // Node itself modifies the ctime when this occurs, so this action - // will preserve that behavior if the underlying file system - // supports those properties. - return this.createFileSync(p, flag, stats.mode); - case ActionType.NOP: - return this.openFileSync(p, flag, mode); - default: - throw new ApiError(ErrorCode.EINVAL, 'Invalid FileFlag object.'); - } - }; - BaseFileSystem.prototype.unlink = function unlink (p, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.unlinkSync = function unlinkSync (p) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.rmdir = function rmdir (p, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.rmdirSync = function rmdirSync (p) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.mkdir = function mkdir (p, mode, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.mkdirSync = function mkdirSync (p, mode) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.readdir = function readdir (p, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.readdirSync = function readdirSync (p) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.exists = function exists (p, cb) { - this.stat(p, null, function (err) { - cb(!err); - }); - }; - BaseFileSystem.prototype.existsSync = function existsSync (p) { - try { - this.statSync(p, true); - return true; - } - catch (e) { - return false; - } - }; - BaseFileSystem.prototype.realpath = function realpath (p, cache, cb) { - if (this.supportsLinks()) { - // The path could contain symlinks. Split up the path, - // resolve any symlinks, return the resolved string. - var splitPath = p.split(path.sep); - // TODO: Simpler to just pass through file, find sep and such. - for (var i = 0; i < splitPath.length; i++) { - var addPaths = splitPath.slice(0, i + 1); - splitPath[i] = path.join.apply(null, addPaths); - } - } - else { - // No symlinks. We just need to verify that it exists. - this.exists(p, function (doesExist) { - if (doesExist) { - cb(null, p); - } - else { - cb(ApiError.ENOENT(p)); - } - }); - } - }; - BaseFileSystem.prototype.realpathSync = function realpathSync (p, cache) { - if (this.supportsLinks()) { - // The path could contain symlinks. Split up the path, - // resolve any symlinks, return the resolved string. - var splitPath = p.split(path.sep); - // TODO: Simpler to just pass through file, find sep and such. - for (var i = 0; i < splitPath.length; i++) { - var addPaths = splitPath.slice(0, i + 1); - splitPath[i] = path.join.apply(path, addPaths); - } - return splitPath.join(path.sep); - } - else { - // No symlinks. We just need to verify that it exists. - if (this.existsSync(p)) { - return p; - } - else { - throw ApiError.ENOENT(p); - } - } - }; - BaseFileSystem.prototype.truncate = function truncate (p, len, cb) { - this.open(p, FileFlag.getFileFlag('r+'), 0x1a4, (function (er, fd) { - if (er) { - return cb(er); - } - fd.truncate(len, (function (er) { - fd.close((function (er2) { - cb(er || er2); - })); - })); - })); - }; - BaseFileSystem.prototype.truncateSync = function truncateSync (p, len) { - var fd = this.openSync(p, FileFlag.getFileFlag('r+'), 0x1a4); - // Need to safely close FD, regardless of whether or not truncate succeeds. - try { - fd.truncateSync(len); - } - catch (e) { - throw e; - } - finally { - fd.closeSync(); - } - }; - BaseFileSystem.prototype.readFile = function readFile (fname, encoding, flag, cb) { - // Wrap cb in file closing code. - var oldCb = cb; - // Get file. - this.open(fname, flag, 0x1a4, function (err, fd) { - if (err) { - return cb(err); - } - cb = function (err, arg) { - fd.close(function (err2) { - if (!err) { - err = err2; - } - return oldCb(err, arg); - }); - }; - fd.stat(function (err, stat) { - if (err) { - return cb(err); - } - // Allocate buffer. - var buf = Buffer.alloc(stat.size); - fd.read(buf, 0, stat.size, 0, function (err) { - if (err) { - return cb(err); - } - else if (encoding === null) { - return cb(err, buf); - } - try { - cb(null, buf.toString(encoding)); - } - catch (e) { - cb(e); - } - }); - }); - }); - }; - BaseFileSystem.prototype.readFileSync = function readFileSync (fname, encoding, flag) { - // Get file. - var fd = this.openSync(fname, flag, 0x1a4); - try { - var stat = fd.statSync(); - // Allocate buffer. - var buf = Buffer.alloc(stat.size); - fd.readSync(buf, 0, stat.size, 0); - fd.closeSync(); - if (encoding === null) { - return buf; - } - return buf.toString(encoding); - } - finally { - fd.closeSync(); - } - }; - BaseFileSystem.prototype.writeFile = function writeFile (fname, data, encoding, flag, mode, cb) { - // Wrap cb in file closing code. - var oldCb = cb; - // Get file. - this.open(fname, flag, 0x1a4, function (err, fd) { - if (err) { - return cb(err); - } - cb = function (err) { - fd.close(function (err2) { - oldCb(err ? err : err2); - }); - }; - try { - if (typeof data === 'string') { - data = Buffer.from(data, encoding); - } - } - catch (e) { - return cb(e); - } - // Write into file. - fd.write(data, 0, data.length, 0, cb); - }); - }; - BaseFileSystem.prototype.writeFileSync = function writeFileSync (fname, data, encoding, flag, mode) { - // Get file. - var fd = this.openSync(fname, flag, mode); - try { - if (typeof data === 'string') { - data = Buffer.from(data, encoding); - } - // Write into file. - fd.writeSync(data, 0, data.length, 0); - } - finally { - fd.closeSync(); - } - }; - BaseFileSystem.prototype.appendFile = function appendFile (fname, data, encoding, flag, mode, cb) { - // Wrap cb in file closing code. - var oldCb = cb; - this.open(fname, flag, mode, function (err, fd) { - if (err) { - return cb(err); - } - cb = function (err) { - fd.close(function (err2) { - oldCb(err ? err : err2); - }); - }; - if (typeof data === 'string') { - data = Buffer.from(data, encoding); - } - fd.write(data, 0, data.length, null, cb); - }); - }; - BaseFileSystem.prototype.appendFileSync = function appendFileSync (fname, data, encoding, flag, mode) { - var fd = this.openSync(fname, flag, mode); - try { - if (typeof data === 'string') { - data = Buffer.from(data, encoding); - } - fd.writeSync(data, 0, data.length, null); - } - finally { - fd.closeSync(); - } - }; - BaseFileSystem.prototype.chmod = function chmod (p, isLchmod, mode, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.chmodSync = function chmodSync (p, isLchmod, mode) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.chown = function chown (p, isLchown, uid, gid, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.chownSync = function chownSync (p, isLchown, uid, gid) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.utimes = function utimes (p, atime, mtime, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.utimesSync = function utimesSync (p, atime, mtime) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.link = function link (srcpath, dstpath, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.linkSync = function linkSync (srcpath, dstpath) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.symlink = function symlink (srcpath, dstpath, type, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.symlinkSync = function symlinkSync (srcpath, dstpath, type) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.readlink = function readlink (p, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.readlinkSync = function readlinkSync (p) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - /** - * Implements the asynchronous API in terms of the synchronous API. - * @class SynchronousFileSystem - */ - var SynchronousFileSystem = (function (BaseFileSystem) { - function SynchronousFileSystem () { - BaseFileSystem.apply(this, arguments); - } - - if ( BaseFileSystem ) SynchronousFileSystem.__proto__ = BaseFileSystem; - SynchronousFileSystem.prototype = Object.create( BaseFileSystem && BaseFileSystem.prototype ); - SynchronousFileSystem.prototype.constructor = SynchronousFileSystem; - - SynchronousFileSystem.prototype.supportsSynch = function supportsSynch () { - return true; - }; - SynchronousFileSystem.prototype.rename = function rename (oldPath, newPath, cb) { - try { - this.renameSync(oldPath, newPath); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.stat = function stat (p, isLstat, cb) { - try { - cb(null, this.statSync(p, isLstat)); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.open = function open (p, flags, mode, cb) { - try { - cb(null, this.openSync(p, flags, mode)); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.unlink = function unlink (p, cb) { - try { - this.unlinkSync(p); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.rmdir = function rmdir (p, cb) { - try { - this.rmdirSync(p); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.mkdir = function mkdir (p, mode, cb) { - try { - this.mkdirSync(p, mode); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.readdir = function readdir (p, cb) { - try { - cb(null, this.readdirSync(p)); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.chmod = function chmod (p, isLchmod, mode, cb) { - try { - this.chmodSync(p, isLchmod, mode); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.chown = function chown (p, isLchown, uid, gid, cb) { - try { - this.chownSync(p, isLchown, uid, gid); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.utimes = function utimes (p, atime, mtime, cb) { - try { - this.utimesSync(p, atime, mtime); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.link = function link (srcpath, dstpath, cb) { - try { - this.linkSync(srcpath, dstpath); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.symlink = function symlink (srcpath, dstpath, type, cb) { - try { - this.symlinkSync(srcpath, dstpath, type); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.readlink = function readlink (p, cb) { - try { - cb(null, this.readlinkSync(p)); - } - catch (e) { - cb(e); - } - }; - - return SynchronousFileSystem; - }(BaseFileSystem)); - - /** - * Base class that contains shared implementations of functions for the file - * object. - */ - var BaseFile = function BaseFile () {}; - - BaseFile.prototype.sync = function sync (cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFile.prototype.syncSync = function syncSync () { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFile.prototype.datasync = function datasync (cb) { - this.sync(cb); - }; - BaseFile.prototype.datasyncSync = function datasyncSync () { - return this.syncSync(); - }; - BaseFile.prototype.chown = function chown (uid, gid, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFile.prototype.chownSync = function chownSync (uid, gid) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFile.prototype.chmod = function chmod (mode, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFile.prototype.chmodSync = function chmodSync (mode) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFile.prototype.utimes = function utimes (atime, mtime, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFile.prototype.utimesSync = function utimesSync (atime, mtime) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - - /** - * An implementation of the File interface that operates on a file that is - * completely in-memory. PreloadFiles are backed by a Buffer. - * - * This is also an abstract class, as it lacks an implementation of 'sync' and - * 'close'. Each filesystem that wishes to use this file representation must - * extend this class and implement those two methods. - * @todo 'close' lever that disables functionality once closed. - */ - var PreloadFile = (function (BaseFile$$1) { - function PreloadFile(_fs, _path, _flag, _stat, contents) { - BaseFile$$1.call(this); - this._pos = 0; - this._dirty = false; - this._fs = _fs; - this._path = _path; - this._flag = _flag; - this._stat = _stat; - if (contents) { - this._buffer = contents; - } - else { - // Empty buffer. It'll expand once we write stuff to it. - this._buffer = emptyBuffer(); - } - // Note: This invariant is *not* maintained once the file starts getting - // modified. - // Note: Only actually matters if file is readable, as writeable modes may - // truncate/append to file. - if (this._stat.size !== this._buffer.length && this._flag.isReadable()) { - throw new Error(("Invalid buffer: Buffer is " + (this._buffer.length) + " long, yet Stats object specifies that file is " + (this._stat.size) + " long.")); - } - } - - if ( BaseFile$$1 ) PreloadFile.__proto__ = BaseFile$$1; - PreloadFile.prototype = Object.create( BaseFile$$1 && BaseFile$$1.prototype ); - PreloadFile.prototype.constructor = PreloadFile; - /** - * NONSTANDARD: Get the underlying buffer for this file. !!DO NOT MUTATE!! Will mess up dirty tracking. - */ - PreloadFile.prototype.getBuffer = function getBuffer () { - return this._buffer; - }; - /** - * NONSTANDARD: Get underlying stats for this file. !!DO NOT MUTATE!! - */ - PreloadFile.prototype.getStats = function getStats () { - return this._stat; - }; - PreloadFile.prototype.getFlag = function getFlag () { - return this._flag; - }; - /** - * Get the path to this file. - * @return [String] The path to the file. - */ - PreloadFile.prototype.getPath = function getPath () { - return this._path; - }; - /** - * Get the current file position. - * - * We emulate the following bug mentioned in the Node documentation: - * > On Linux, positional writes don't work when the file is opened in append - * mode. The kernel ignores the position argument and always appends the data - * to the end of the file. - * @return [Number] The current file position. - */ - PreloadFile.prototype.getPos = function getPos () { - if (this._flag.isAppendable()) { - return this._stat.size; - } - return this._pos; - }; - /** - * Advance the current file position by the indicated number of positions. - * @param [Number] delta - */ - PreloadFile.prototype.advancePos = function advancePos (delta) { - return this._pos += delta; - }; - /** - * Set the file position. - * @param [Number] newPos - */ - PreloadFile.prototype.setPos = function setPos (newPos) { - return this._pos = newPos; - }; - /** - * **Core**: Asynchronous sync. Must be implemented by subclasses of this - * class. - * @param [Function(BrowserFS.ApiError)] cb - */ - PreloadFile.prototype.sync = function sync (cb) { - try { - this.syncSync(); - cb(); - } - catch (e) { - cb(e); - } - }; - /** - * **Core**: Synchronous sync. - */ - PreloadFile.prototype.syncSync = function syncSync () { - throw new ApiError(ErrorCode.ENOTSUP); - }; - /** - * **Core**: Asynchronous close. Must be implemented by subclasses of this - * class. - * @param [Function(BrowserFS.ApiError)] cb - */ - PreloadFile.prototype.close = function close (cb) { - try { - this.closeSync(); - cb(); - } - catch (e) { - cb(e); - } - }; - /** - * **Core**: Synchronous close. - */ - PreloadFile.prototype.closeSync = function closeSync () { - throw new ApiError(ErrorCode.ENOTSUP); - }; - /** - * Asynchronous `stat`. - * @param [Function(BrowserFS.ApiError, BrowserFS.node.fs.Stats)] cb - */ - PreloadFile.prototype.stat = function stat (cb) { - try { - cb(null, this._stat.clone()); - } - catch (e) { - cb(e); - } - }; - /** - * Synchronous `stat`. - */ - PreloadFile.prototype.statSync = function statSync () { - return this._stat.clone(); - }; - /** - * Asynchronous truncate. - * @param [Number] len - * @param [Function(BrowserFS.ApiError)] cb - */ - PreloadFile.prototype.truncate = function truncate (len, cb) { - try { - this.truncateSync(len); - if (this._flag.isSynchronous() && !_fsMock.getRootFS().supportsSynch()) { - this.sync(cb); - } - cb(); - } - catch (e) { - return cb(e); - } - }; - /** - * Synchronous truncate. - * @param [Number] len - */ - PreloadFile.prototype.truncateSync = function truncateSync (len) { - this._dirty = true; - if (!this._flag.isWriteable()) { - throw new ApiError(ErrorCode.EPERM, 'File not opened with a writeable mode.'); - } - this._stat.mtime = new Date(); - if (len > this._buffer.length) { - var buf = Buffer.alloc(len - this._buffer.length, 0); - // Write will set @_stat.size for us. - this.writeSync(buf, 0, buf.length, this._buffer.length); - if (this._flag.isSynchronous() && _fsMock.getRootFS().supportsSynch()) { - this.syncSync(); - } - return; - } - this._stat.size = len; - // Truncate buffer to 'len'. - var newBuff = Buffer.alloc(len); - this._buffer.copy(newBuff, 0, 0, len); - this._buffer = newBuff; - if (this._flag.isSynchronous() && _fsMock.getRootFS().supportsSynch()) { - this.syncSync(); - } - }; - /** - * Write buffer to the file. - * Note that it is unsafe to use fs.write multiple times on the same file - * without waiting for the callback. - * @param [BrowserFS.node.Buffer] buffer Buffer containing the data to write to - * the file. - * @param [Number] offset Offset in the buffer to start reading data from. - * @param [Number] length The amount of bytes to write to the file. - * @param [Number] position Offset from the beginning of the file where this - * data should be written. If position is null, the data will be written at - * the current position. - * @param [Function(BrowserFS.ApiError, Number, BrowserFS.node.Buffer)] - * cb The number specifies the number of bytes written into the file. - */ - PreloadFile.prototype.write = function write (buffer$$1, offset, length, position, cb) { - try { - cb(null, this.writeSync(buffer$$1, offset, length, position), buffer$$1); - } - catch (e) { - cb(e); - } - }; - /** - * Write buffer to the file. - * Note that it is unsafe to use fs.writeSync multiple times on the same file - * without waiting for the callback. - * @param [BrowserFS.node.Buffer] buffer Buffer containing the data to write to - * the file. - * @param [Number] offset Offset in the buffer to start reading data from. - * @param [Number] length The amount of bytes to write to the file. - * @param [Number] position Offset from the beginning of the file where this - * data should be written. If position is null, the data will be written at - * the current position. - * @return [Number] - */ - PreloadFile.prototype.writeSync = function writeSync (buffer$$1, offset, length, position) { - this._dirty = true; - if (position === undefined || position === null) { - position = this.getPos(); - } - if (!this._flag.isWriteable()) { - throw new ApiError(ErrorCode.EPERM, 'File not opened with a writeable mode.'); - } - var endFp = position + length; - if (endFp > this._stat.size) { - this._stat.size = endFp; - if (endFp > this._buffer.length) { - // Extend the buffer! - var newBuff = Buffer.alloc(endFp); - this._buffer.copy(newBuff); - this._buffer = newBuff; - } - } - var len = buffer$$1.copy(this._buffer, position, offset, offset + length); - this._stat.mtime = new Date(); - if (this._flag.isSynchronous()) { - this.syncSync(); - return len; - } - this.setPos(position + len); - return len; - }; - /** - * Read data from the file. - * @param [BrowserFS.node.Buffer] buffer The buffer that the data will be - * written to. - * @param [Number] offset The offset within the buffer where writing will - * start. - * @param [Number] length An integer specifying the number of bytes to read. - * @param [Number] position An integer specifying where to begin reading from - * in the file. If position is null, data will be read from the current file - * position. - * @param [Function(BrowserFS.ApiError, Number, BrowserFS.node.Buffer)] cb The - * number is the number of bytes read - */ - PreloadFile.prototype.read = function read (buffer$$1, offset, length, position, cb) { - try { - cb(null, this.readSync(buffer$$1, offset, length, position), buffer$$1); - } - catch (e) { - cb(e); - } - }; - /** - * Read data from the file. - * @param [BrowserFS.node.Buffer] buffer The buffer that the data will be - * written to. - * @param [Number] offset The offset within the buffer where writing will - * start. - * @param [Number] length An integer specifying the number of bytes to read. - * @param [Number] position An integer specifying where to begin reading from - * in the file. If position is null, data will be read from the current file - * position. - * @return [Number] - */ - PreloadFile.prototype.readSync = function readSync (buffer$$1, offset, length, position) { - if (!this._flag.isReadable()) { - throw new ApiError(ErrorCode.EPERM, 'File not opened with a readable mode.'); - } - if (position === undefined || position === null) { - position = this.getPos(); - } - var endRead = position + length; - if (endRead > this._stat.size) { - length = this._stat.size - position; - } - var rv = this._buffer.copy(buffer$$1, offset, position, position + length); - this._stat.atime = new Date(); - this._pos = position + length; - return rv; - }; - /** - * Asynchronous `fchmod`. - * @param [Number|String] mode - * @param [Function(BrowserFS.ApiError)] cb - */ - PreloadFile.prototype.chmod = function chmod (mode, cb) { - try { - this.chmodSync(mode); - cb(); - } - catch (e) { - cb(e); - } - }; - /** - * Asynchronous `fchmod`. - * @param [Number] mode - */ - PreloadFile.prototype.chmodSync = function chmodSync (mode) { - if (!this._fs.supportsProps()) { - throw new ApiError(ErrorCode.ENOTSUP); - } - this._dirty = true; - this._stat.chmod(mode); - this.syncSync(); - }; - PreloadFile.prototype.isDirty = function isDirty () { - return this._dirty; - }; - /** - * Resets the dirty bit. Should only be called after a sync has completed successfully. - */ - PreloadFile.prototype.resetDirty = function resetDirty () { - this._dirty = false; - }; - - return PreloadFile; - }(BaseFile)); - - /** - * File class for the InMemory and XHR file systems. - * Doesn't sync to anything, so it works nicely for memory-only files. - */ - var NoSyncFile = (function (PreloadFile) { - function NoSyncFile(_fs, _path, _flag, _stat, contents) { - PreloadFile.call(this, _fs, _path, _flag, _stat, contents); - } - - if ( PreloadFile ) NoSyncFile.__proto__ = PreloadFile; - NoSyncFile.prototype = Object.create( PreloadFile && PreloadFile.prototype ); - NoSyncFile.prototype.constructor = NoSyncFile; - /** - * Asynchronous sync. Doesn't do anything, simply calls the cb. - * @param [Function(BrowserFS.ApiError)] cb - */ - NoSyncFile.prototype.sync = function sync (cb) { - cb(); - }; - /** - * Synchronous sync. Doesn't do anything. - */ - NoSyncFile.prototype.syncSync = function syncSync () { - // NOP. - }; - /** - * Asynchronous close. Doesn't do anything, simply calls the cb. - * @param [Function(BrowserFS.ApiError)] cb - */ - NoSyncFile.prototype.close = function close (cb) { - cb(); - }; - /** - * Synchronous close. Doesn't do anything. - */ - NoSyncFile.prototype.closeSync = function closeSync () { - // NOP. - }; - - return NoSyncFile; - }(PreloadFile)); - - /** - * We define our own file to interpose on syncSync() for mirroring purposes. - */ - var MirrorFile = (function (PreloadFile$$1) { - function MirrorFile(fs, path$$1, flag, stat, data) { - PreloadFile$$1.call(this, fs, path$$1, flag, stat, data); - } - - if ( PreloadFile$$1 ) MirrorFile.__proto__ = PreloadFile$$1; - MirrorFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype ); - MirrorFile.prototype.constructor = MirrorFile; - MirrorFile.prototype.syncSync = function syncSync () { - if (this.isDirty()) { - this._fs._syncSync(this); - this.resetDirty(); - } - }; - MirrorFile.prototype.closeSync = function closeSync () { - this.syncSync(); - }; - - return MirrorFile; - }(PreloadFile)); - /** - * AsyncMirrorFS mirrors a synchronous filesystem into an asynchronous filesystem - * by: - * - * * Performing operations over the in-memory copy, while asynchronously pipelining them - * to the backing store. - * * During application loading, the contents of the async file system can be reloaded into - * the synchronous store, if desired. - * - * The two stores will be kept in sync. The most common use-case is to pair a synchronous - * in-memory filesystem with an asynchronous backing store. - * - * Example: Mirroring an IndexedDB file system to an in memory file system. Now, you can use - * IndexedDB synchronously. - * - * ```javascript - * BrowserFS.configure({ - * fs: "AsyncMirror", - * options: { - * sync: { fs: "InMemory" }, - * async: { fs: "IndexedDB" } - * } - * }, function(e) { - * // BrowserFS is initialized and ready-to-use! - * }); - * ``` - * - * Or, alternatively: - * - * ```javascript - * BrowserFS.FileSystem.IndexedDB.Create(function(e, idbfs) { - * BrowserFS.FileSystem.InMemory.Create(function(e, inMemory) { - * BrowserFS.FileSystem.AsyncMirror({ - * sync: inMemory, async: idbfs - * }, function(e, mirrored) { - * BrowserFS.initialize(mirrored); - * }); - * }); - * }); - * ``` - */ - var AsyncMirror = (function (SynchronousFileSystem$$1) { - function AsyncMirror(sync, async, deprecateMsg) { - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - SynchronousFileSystem$$1.call(this); - /** - * Queue of pending asynchronous operations. - */ - this._queue = []; - this._queueRunning = false; - this._isInitialized = false; - this._initializeCallbacks = []; - this._sync = sync; - this._async = async; - if (!sync.supportsSynch()) { - throw new Error("The first argument to AsyncMirror needs to be a synchronous file system."); - } - deprecationMessage(deprecateMsg, AsyncMirror.Name, { sync: "sync file system instance", async: "async file system instance" }); - } - - if ( SynchronousFileSystem$$1 ) AsyncMirror.__proto__ = SynchronousFileSystem$$1; - AsyncMirror.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype ); - AsyncMirror.prototype.constructor = AsyncMirror; - /** - * Constructs and initializes an AsyncMirror file system with the given options. - */ - AsyncMirror.Create = function Create (opts, cb) { - try { - var fs = new AsyncMirror(opts.sync, opts.async, false); - fs.initialize(function (e) { - if (e) { - cb(e); - } - else { - cb(null, fs); - } - }, false); - } - catch (e) { - cb(e); - } - }; - AsyncMirror.isAvailable = function isAvailable () { - return true; - }; - AsyncMirror.prototype.getName = function getName () { - return AsyncMirror.Name; - }; - AsyncMirror.prototype._syncSync = function _syncSync (fd) { - this._sync.writeFileSync(fd.getPath(), fd.getBuffer(), null, FileFlag.getFileFlag('w'), fd.getStats().mode); - this.enqueueOp({ - apiMethod: 'writeFile', - arguments: [fd.getPath(), fd.getBuffer(), null, fd.getFlag(), fd.getStats().mode] - }); - }; - /** - * Called once to load up files from async storage into sync storage. - */ - AsyncMirror.prototype.initialize = function initialize (userCb, deprecateMsg) { - var this$1 = this; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - if (deprecateMsg) { - console.warn("[AsyncMirror] AsyncMirror.initialize() is deprecated and will be removed in the next major version. Please use 'AsyncMirror.Create({ sync: (sync file system instance), async: (async file system instance)}, cb)' to create and initialize AsyncMirror instances."); - } - var callbacks = this._initializeCallbacks; - var end = function (e) { - this$1._isInitialized = !e; - this$1._initializeCallbacks = []; - callbacks.forEach(function (cb) { return cb(e); }); - }; - if (!this._isInitialized) { - // First call triggers initialization, the rest wait. - if (callbacks.push(userCb) === 1) { - var copyDirectory = function (p, mode, cb) { - if (p !== '/') { - this$1._sync.mkdirSync(p, mode); - } - this$1._async.readdir(p, function (err, files) { - var i = 0; - // NOTE: This function must not be in a lexically nested statement, - // such as an if or while statement. Safari refuses to run the - // script since it is undefined behavior. - function copyNextFile(err) { - if (err) { - cb(err); - } - else if (i < files.length) { - copyItem(path.join(p, files[i]), copyNextFile); - i++; - } - else { - cb(); - } - } - if (err) { - cb(err); - } - else { - copyNextFile(); - } - }); - }, copyFile = function (p, mode, cb) { - this$1._async.readFile(p, null, FileFlag.getFileFlag('r'), function (err, data) { - if (err) { - cb(err); - } - else { - try { - this$1._sync.writeFileSync(p, data, null, FileFlag.getFileFlag('w'), mode); - } - catch (e) { - err = e; - } - finally { - cb(err); - } - } - }); - }, copyItem = function (p, cb) { - this$1._async.stat(p, false, function (err, stats) { - if (err) { - cb(err); - } - else if (stats.isDirectory()) { - copyDirectory(p, stats.mode, cb); - } - else { - copyFile(p, stats.mode, cb); - } - }); - }; - copyDirectory('/', 0, end); - } - } - else { - userCb(); - } - }; - AsyncMirror.prototype.isReadOnly = function isReadOnly () { return false; }; - AsyncMirror.prototype.supportsSynch = function supportsSynch () { return true; }; - AsyncMirror.prototype.supportsLinks = function supportsLinks () { return false; }; - AsyncMirror.prototype.supportsProps = function supportsProps () { return this._sync.supportsProps() && this._async.supportsProps(); }; - AsyncMirror.prototype.renameSync = function renameSync (oldPath, newPath) { - this.checkInitialized(); - this._sync.renameSync(oldPath, newPath); - this.enqueueOp({ - apiMethod: 'rename', - arguments: [oldPath, newPath] - }); - }; - AsyncMirror.prototype.statSync = function statSync (p, isLstat) { - this.checkInitialized(); - return this._sync.statSync(p, isLstat); - }; - AsyncMirror.prototype.openSync = function openSync (p, flag, mode) { - this.checkInitialized(); - // Sanity check: Is this open/close permitted? - var fd = this._sync.openSync(p, flag, mode); - fd.closeSync(); - return new MirrorFile(this, p, flag, this._sync.statSync(p, false), this._sync.readFileSync(p, null, FileFlag.getFileFlag('r'))); - }; - AsyncMirror.prototype.unlinkSync = function unlinkSync (p) { - this.checkInitialized(); - this._sync.unlinkSync(p); - this.enqueueOp({ - apiMethod: 'unlink', - arguments: [p] - }); - }; - AsyncMirror.prototype.rmdirSync = function rmdirSync (p) { - this.checkInitialized(); - this._sync.rmdirSync(p); - this.enqueueOp({ - apiMethod: 'rmdir', - arguments: [p] - }); - }; - AsyncMirror.prototype.mkdirSync = function mkdirSync (p, mode) { - this.checkInitialized(); - this._sync.mkdirSync(p, mode); - this.enqueueOp({ - apiMethod: 'mkdir', - arguments: [p, mode] - }); - }; - AsyncMirror.prototype.readdirSync = function readdirSync (p) { - this.checkInitialized(); - return this._sync.readdirSync(p); - }; - AsyncMirror.prototype.existsSync = function existsSync (p) { - this.checkInitialized(); - return this._sync.existsSync(p); - }; - AsyncMirror.prototype.chmodSync = function chmodSync (p, isLchmod, mode) { - this.checkInitialized(); - this._sync.chmodSync(p, isLchmod, mode); - this.enqueueOp({ - apiMethod: 'chmod', - arguments: [p, isLchmod, mode] - }); - }; - AsyncMirror.prototype.chownSync = function chownSync (p, isLchown, uid, gid) { - this.checkInitialized(); - this._sync.chownSync(p, isLchown, uid, gid); - this.enqueueOp({ - apiMethod: 'chown', - arguments: [p, isLchown, uid, gid] - }); - }; - AsyncMirror.prototype.utimesSync = function utimesSync (p, atime, mtime) { - this.checkInitialized(); - this._sync.utimesSync(p, atime, mtime); - this.enqueueOp({ - apiMethod: 'utimes', - arguments: [p, atime, mtime] - }); - }; - AsyncMirror.prototype.checkInitialized = function checkInitialized () { - if (!this._isInitialized) { - throw new ApiError(ErrorCode.EPERM, "AsyncMirrorFS is not initialized. Please initialize AsyncMirrorFS using its initialize() method before using it."); - } - }; - AsyncMirror.prototype.enqueueOp = function enqueueOp (op) { - var this$1 = this; - - this._queue.push(op); - if (!this._queueRunning) { - this._queueRunning = true; - var doNextOp = function (err) { - if (err) { - console.error(("WARNING: File system has desynchronized. Received following error: " + err + "\n$")); - } - if (this$1._queue.length > 0) { - var op = this$1._queue.shift(), args = op.arguments; - args.push(doNextOp); - this$1._async[op.apiMethod].apply(this$1._async, args); - } - else { - this$1._queueRunning = false; - } - }; - doNextOp(); - } - }; - - return AsyncMirror; - }(SynchronousFileSystem)); - - AsyncMirror.Name = "AsyncMirror"; - AsyncMirror.Options = { - sync: { - type: "object", - description: "The synchronous file system to mirror the asynchronous file system to." - }, - async: { - type: "object", - description: "The asynchronous file system to mirror." - } - }; - - /** - * A faster alternative to `Function#apply`, this function invokes `func` - * with the `this` binding of `thisArg` and the arguments of `args`. - * - * @private - * @param {Function} func The function to invoke. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} args The arguments to invoke `func` with. - * @returns {*} Returns the result of `func`. - */ - function apply(func, thisArg, args) { - switch (args.length) { - case 0: return func.call(thisArg); - case 1: return func.call(thisArg, args[0]); - case 2: return func.call(thisArg, args[0], args[1]); - case 3: return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); - } - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeMax = Math.max; - - /** - * A specialized version of `baseRest` which transforms the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @param {Function} transform The rest array transform. - * @returns {Function} Returns the new function. - */ - function overRest$1(func, start, transform) { - start = nativeMax(start === undefined ? (func.length - 1) : start, 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); - - while (++index < length) { - array[index] = args[start + index]; - } - index = -1; - var otherArgs = Array(start + 1); - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = transform(array); - return apply(func, this, otherArgs); - }; - } - - /** - * This method returns the first argument it receives. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Util - * @param {*} value Any value. - * @returns {*} Returns `value`. - * @example - * - * var object = { 'a': 1 }; - * - * console.log(_.identity(object) === object); - * // => true - */ - function identity(value) { - return value; - } - - // Lodash rest function without function.toString() - // remappings - function rest(func, start) { - return overRest$1(func, start, identity); - } - - var initialParams = function (fn) { - return rest(function (args/*..., callback*/) { - var callback = args.pop(); - fn.call(this, args, callback); - }); - }; - - function applyEach$1(eachfn) { - return rest(function(fns, args) { - var go = initialParams(function(args, callback) { - var that = this; - return eachfn(fns, function (fn, cb) { - fn.apply(that, args.concat(cb)); - }, callback); - }); - if (args.length) { - return go.apply(this, args); - } - else { - return go; - } - }); - } - - /** Detect free variable `global` from Node.js. */ - var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; - - /** Detect free variable `self`. */ - var freeSelf = typeof self == 'object' && self && self.Object === Object && self; - - /** Used as a reference to the global object. */ - var root = freeGlobal || freeSelf || Function('return this')(); - - /** Built-in value references. */ - var Symbol$1 = root.Symbol; - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - var nativeObjectToString = objectProto.toString; - - /** Built-in value references. */ - var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined; - - /** - * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the raw `toStringTag`. - */ - function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag$1), - tag = value[symToStringTag$1]; - - try { - value[symToStringTag$1] = undefined; - var unmasked = true; - } catch (e) {} - - var result = nativeObjectToString.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag$1] = tag; - } else { - delete value[symToStringTag$1]; - } - } - return result; - } - - /** Used for built-in method references. */ - var objectProto$1 = Object.prototype; - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - var nativeObjectToString$1 = objectProto$1.toString; - - /** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ - function objectToString(value) { - return nativeObjectToString$1.call(value); - } - - /** `Object#toString` result references. */ - var nullTag = '[object Null]'; - var undefinedTag = '[object Undefined]'; - - /** Built-in value references. */ - var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : undefined; - - /** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - function baseGetTag(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; - } - return (symToStringTag && symToStringTag in Object(value)) - ? getRawTag(value) - : objectToString(value); - } - - /** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ - function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); - } - - /** `Object#toString` result references. */ - var asyncTag = '[object AsyncFunction]'; - var funcTag = '[object Function]'; - var genTag = '[object GeneratorFunction]'; - var proxyTag = '[object Proxy]'; - - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - if (!isObject(value)) { - return false; - } - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 9 which returns 'object' for typed arrays and other constructors. - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; - } - - /** Used as references for various `Number` constants. */ - var MAX_SAFE_INTEGER = 9007199254740991; - - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ - function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ - function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); - } - - // A temporary value used to identify if the loop should be broken. - // See #1064, #1293 - var breakLoop = {}; - - /** - * This method returns `undefined`. - * - * @static - * @memberOf _ - * @since 2.3.0 - * @category Util - * @example - * - * _.times(2, _.noop); - * // => [undefined, undefined] - */ - function noop() { - // No operation performed. - } - - function once(fn) { - return function () { - if (fn === null) { return; } - var callFn = fn; - fn = null; - callFn.apply(this, arguments); - }; - } - - var iteratorSymbol = typeof Symbol === 'function' && Symbol.iterator; - - var getIterator = function (coll) { - return iteratorSymbol && coll[iteratorSymbol] && coll[iteratorSymbol](); - }; - - /** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ - function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); - - while (++index < n) { - result[index] = iteratee(index); - } - return result; - } - - /** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ - function isObjectLike(value) { - return value != null && typeof value == 'object'; - } - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]'; - - /** - * The base implementation of `_.isArguments`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - */ - function baseIsArguments(value) { - return isObjectLike(value) && baseGetTag(value) == argsTag; - } - - /** Used for built-in method references. */ - var objectProto$3 = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty$2 = objectProto$3.hasOwnProperty; - - /** Built-in value references. */ - var propertyIsEnumerable = objectProto$3.propertyIsEnumerable; - - /** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { - return isObjectLike(value) && hasOwnProperty$2.call(value, 'callee') && - !propertyIsEnumerable.call(value, 'callee'); - }; - - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ - var isArray = Array.isArray; - - /** - * This method returns `false`. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {boolean} Returns `false`. - * @example - * - * _.times(2, _.stubFalse); - * // => [false, false] - */ - function stubFalse() { - return false; - } - - /** Detect free variable `exports`. */ - var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports; - - /** Built-in value references. */ - var Buffer$1 = moduleExports ? root.Buffer : undefined; - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeIsBuffer = Buffer$1 ? Buffer$1.isBuffer : undefined; - - /** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ - var isBuffer = nativeIsBuffer || stubFalse; - - /** Used as references for various `Number` constants. */ - var MAX_SAFE_INTEGER$1 = 9007199254740991; - - /** Used to detect unsigned integer values. */ - var reIsUint = /^(?:0|[1-9]\d*)$/; - - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex(value, length) { - length = length == null ? MAX_SAFE_INTEGER$1 : length; - return !!length && - (typeof value == 'number' || reIsUint.test(value)) && - (value > -1 && value % 1 == 0 && value < length); - } - - /** `Object#toString` result references. */ - var argsTag$1 = '[object Arguments]'; - var arrayTag = '[object Array]'; - var boolTag = '[object Boolean]'; - var dateTag = '[object Date]'; - var errorTag = '[object Error]'; - var funcTag$1 = '[object Function]'; - var mapTag = '[object Map]'; - var numberTag = '[object Number]'; - var objectTag = '[object Object]'; - var regexpTag = '[object RegExp]'; - var setTag = '[object Set]'; - var stringTag = '[object String]'; - var weakMapTag = '[object WeakMap]'; - - var arrayBufferTag = '[object ArrayBuffer]'; - var dataViewTag = '[object DataView]'; - var float32Tag = '[object Float32Array]'; - var float64Tag = '[object Float64Array]'; - var int8Tag = '[object Int8Array]'; - var int16Tag = '[object Int16Array]'; - var int32Tag = '[object Int32Array]'; - var uint8Tag = '[object Uint8Array]'; - var uint8ClampedTag = '[object Uint8ClampedArray]'; - var uint16Tag = '[object Uint16Array]'; - var uint32Tag = '[object Uint32Array]'; - - /** Used to identify `toStringTag` values of typed arrays. */ - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = - typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = - typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = - typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = - typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag$1] = typedArrayTags[arrayTag] = - typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = - typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = - typedArrayTags[errorTag] = typedArrayTags[funcTag$1] = - typedArrayTags[mapTag] = typedArrayTags[numberTag] = - typedArrayTags[objectTag] = typedArrayTags[regexpTag] = - typedArrayTags[setTag] = typedArrayTags[stringTag] = - typedArrayTags[weakMapTag] = false; - - /** - * The base implementation of `_.isTypedArray` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - */ - function baseIsTypedArray(value) { - return isObjectLike(value) && - isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; - } - - /** - * The base implementation of `_.unary` without support for storing metadata. - * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - */ - function baseUnary(func) { - return function(value) { - return func(value); - }; - } - - /** Detect free variable `exports`. */ - var freeExports$1 = typeof exports == 'object' && exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule$1 = freeExports$1 && typeof module == 'object' && module && !module.nodeType && module; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1; - - /** Detect free variable `process` from Node.js. */ - var freeProcess = moduleExports$1 && freeGlobal.process; - - /** Used to access faster Node.js helpers. */ - var nodeUtil = (function() { - try { - return freeProcess && freeProcess.binding && freeProcess.binding('util'); - } catch (e) {} - }()); - - /* Node.js helper references. */ - var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; - - /** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ - var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; - - /** Used for built-in method references. */ - var objectProto$2 = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty$1 = objectProto$2.hasOwnProperty; - - /** - * Creates an array of the enumerable property names of the array-like `value`. - * - * @private - * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. - */ - function arrayLikeKeys(value, inherited) { - var isArr = isArray(value), - isArg = !isArr && isArguments(value), - isBuff = !isArr && !isArg && isBuffer(value), - isType = !isArr && !isArg && !isBuff && isTypedArray(value), - skipIndexes = isArr || isArg || isBuff || isType, - result = skipIndexes ? baseTimes(value.length, String) : [], - length = result.length; - - for (var key in value) { - if ((inherited || hasOwnProperty$1.call(value, key)) && - !(skipIndexes && ( - // Safari 9 has enumerable `arguments.length` in strict mode. - key == 'length' || - // Node.js 0.10 has enumerable non-index properties on buffers. - (isBuff && (key == 'offset' || key == 'parent')) || - // PhantomJS 2 has enumerable non-index properties on typed arrays. - (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || - // Skip index properties. - isIndex(key, length) - ))) { - result.push(key); - } - } - return result; - } - - /** Used for built-in method references. */ - var objectProto$5 = Object.prototype; - - /** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ - function isPrototype(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$5; - - return value === proto; - } - - /** - * Creates a unary function that invokes `func` with its argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ - function overArg(func, transform) { - return function(arg) { - return func(transform(arg)); - }; - } - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeKeys = overArg(Object.keys, Object); - - /** Used for built-in method references. */ - var objectProto$4 = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty$3 = objectProto$4.hasOwnProperty; - - /** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } - var result = []; - for (var key in Object(object)) { - if (hasOwnProperty$3.call(object, key) && key != 'constructor') { - result.push(key); - } - } - return result; - } - - /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ - function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); - } - - function createArrayIterator(coll) { - var i = -1; - var len = coll.length; - return function next() { - return ++i < len ? {value: coll[i], key: i} : null; - } - } - - function createES2015Iterator(iterator) { - var i = -1; - return function next() { - var item = iterator.next(); - if (item.done) - { return null; } - i++; - return {value: item.value, key: i}; - } - } - - function createObjectIterator(obj) { - var okeys = keys(obj); - var i = -1; - var len = okeys.length; - return function next() { - var key = okeys[++i]; - return i < len ? {value: obj[key], key: key} : null; - }; - } - - function iterator(coll) { - if (isArrayLike(coll)) { - return createArrayIterator(coll); - } - - var iterator = getIterator(coll); - return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll); - } - - function onlyOnce(fn) { - return function() { - if (fn === null) { throw new Error("Callback was already called."); } - var callFn = fn; - fn = null; - callFn.apply(this, arguments); - }; - } - - function _eachOfLimit(limit) { - return function (obj, iteratee, callback) { - callback = once(callback || noop); - if (limit <= 0 || !obj) { - return callback(null); - } - var nextElem = iterator(obj); - var done = false; - var running = 0; - - function iterateeCallback(err, value) { - running -= 1; - if (err) { - done = true; - callback(err); - } - else if (value === breakLoop || (done && running <= 0)) { - done = true; - return callback(null); - } - else { - replenish(); - } - } - - function replenish () { - while (running < limit && !done) { - var elem = nextElem(); - if (elem === null) { - done = true; - if (running <= 0) { - callback(null); - } - return; - } - running += 1; - iteratee(elem.value, elem.key, onlyOnce(iterateeCallback)); - } - } - - replenish(); - }; - } - - /** - * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a - * time. - * - * @name eachOfLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.eachOf]{@link module:Collections.eachOf} - * @alias forEachOfLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A function to apply to each - * item in `coll`. The `key` is the item's key, or index in the case of an - * array. The iteratee is passed a `callback(err)` which must be called once it - * has completed. If no error has occurred, the callback should be run without - * arguments or with an explicit `null` argument. Invoked with - * (item, key, callback). - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - */ - function eachOfLimit(coll, limit, iteratee, callback) { - _eachOfLimit(limit)(coll, iteratee, callback); - } - - function doLimit(fn, limit) { - return function (iterable, iteratee, callback) { - return fn(iterable, limit, iteratee, callback); - }; - } - - // eachOf implementation optimized for array-likes - function eachOfArrayLike(coll, iteratee, callback) { - callback = once(callback || noop); - var index = 0, - completed = 0, - length = coll.length; - if (length === 0) { - callback(null); - } - - function iteratorCallback(err, value) { - if (err) { - callback(err); - } else if ((++completed === length) || value === breakLoop) { - callback(null); - } - } - - for (; index < length; index++) { - iteratee(coll[index], index, onlyOnce(iteratorCallback)); - } - } - - // a generic version of eachOf which can handle array, object, and iterator cases. - var eachOfGeneric = doLimit(eachOfLimit, Infinity); - - /** - * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument - * to the iteratee. - * - * @name eachOf - * @static - * @memberOf module:Collections - * @method - * @alias forEachOf - * @category Collection - * @see [async.each]{@link module:Collections.each} - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each - * item in `coll`. The `key` is the item's key, or index in the case of an - * array. The iteratee is passed a `callback(err)` which must be called once it - * has completed. If no error has occurred, the callback should be run without - * arguments or with an explicit `null` argument. Invoked with - * (item, key, callback). - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - * @example - * - * var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"}; - * var configs = {}; - * - * async.forEachOf(obj, function (value, key, callback) { - * fs.readFile(__dirname + value, "utf8", function (err, data) { - * if (err) return callback(err); - * try { - * configs[key] = JSON.parse(data); - * } catch (e) { - * return callback(e); - * } - * callback(); - * }); - * }, function (err) { - * if (err) console.error(err.message); - * // configs is now a map of JSON data - * doSomethingWith(configs); - * }); - */ - var eachOf = function(coll, iteratee, callback) { - var eachOfImplementation = isArrayLike(coll) ? eachOfArrayLike : eachOfGeneric; - eachOfImplementation(coll, iteratee, callback); - }; - - function doParallel(fn) { - return function (obj, iteratee, callback) { - return fn(eachOf, obj, iteratee, callback); - }; - } - - function _asyncMap(eachfn, arr, iteratee, callback) { - callback = callback || noop; - arr = arr || []; - var results = []; - var counter = 0; - - eachfn(arr, function (value, _, callback) { - var index = counter++; - iteratee(value, function (err, v) { - results[index] = v; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - - /** - * Produces a new collection of values by mapping each value in `coll` through - * the `iteratee` function. The `iteratee` is called with an item from `coll` - * and a callback for when it has finished processing. Each of these callback - * takes 2 arguments: an `error`, and the transformed item from `coll`. If - * `iteratee` passes an error to its callback, the main `callback` (for the - * `map` function) is immediately called with the error. - * - * Note, that since this function applies the `iteratee` to each item in - * parallel, there is no guarantee that the `iteratee` functions will complete - * in order. However, the results array will be in the same order as the - * original `coll`. - * - * If `map` is passed an Object, the results will be an Array. The results - * will roughly be in the order of the original Objects' keys (but this can - * vary across JavaScript engines) - * - * @name map - * @static - * @memberOf module:Collections - * @method - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a - * transformed item. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Results is an Array of the - * transformed items from the `coll`. Invoked with (err, results). - * @example - * - * async.map(['file1','file2','file3'], fs.stat, function(err, results) { - * // results is now an array of stats for each file - * }); - */ - var map = doParallel(_asyncMap); - - /** - * Applies the provided arguments to each function in the array, calling - * `callback` after all functions have completed. If you only provide the first - * argument, `fns`, then it will return a function which lets you pass in the - * arguments as if it were a single function call. If more arguments are - * provided, `callback` is required while `args` is still optional. - * - * @name applyEach - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Array|Iterable|Object} fns - A collection of asynchronous functions - * to all call with the same arguments - * @param {...*} [args] - any number of separate arguments to pass to the - * function. - * @param {Function} [callback] - the final argument should be the callback, - * called when all functions have completed processing. - * @returns {Function} - If only the first argument, `fns`, is provided, it will - * return a function which lets you pass in the arguments as if it were a single - * function call. The signature is `(..args, callback)`. If invoked with any - * arguments, `callback` is required. - * @example - * - * async.applyEach([enableSearch, updateSchema], 'bucket', callback); - * - * // partial application example: - * async.each( - * buckets, - * async.applyEach([enableSearch, updateSchema]), - * callback - * ); - */ - applyEach$1(map); - - function doParallelLimit(fn) { - return function (obj, limit, iteratee, callback) { - return fn(_eachOfLimit(limit), obj, iteratee, callback); - }; - } - - /** - * The same as [`map`]{@link module:Collections.map} but runs a maximum of `limit` async operations at a time. - * - * @name mapLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.map]{@link module:Collections.map} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a transformed - * item. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Results is an array of the - * transformed items from the `coll`. Invoked with (err, results). - */ - var mapLimit = doParallelLimit(_asyncMap); - - /** - * The same as [`map`]{@link module:Collections.map} but runs only a single async operation at a time. - * - * @name mapSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.map]{@link module:Collections.map} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a - * transformed item. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Results is an array of the - * transformed items from the `coll`. Invoked with (err, results). - */ - var mapSeries = doLimit(mapLimit, 1); - - /** - * The same as [`applyEach`]{@link module:ControlFlow.applyEach} but runs only a single async operation at a time. - * - * @name applyEachSeries - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.applyEach]{@link module:ControlFlow.applyEach} - * @category Control Flow - * @param {Array|Iterable|Object} fns - A collection of asynchronous functions to all - * call with the same arguments - * @param {...*} [args] - any number of separate arguments to pass to the - * function. - * @param {Function} [callback] - the final argument should be the callback, - * called when all functions have completed processing. - * @returns {Function} - If only the first argument is provided, it will return - * a function which lets you pass in the arguments as if it were a single - * function call. - */ - applyEach$1(mapSeries); - - /** - * Creates a continuation function with some arguments already applied. - * - * Useful as a shorthand when combined with other control flow functions. Any - * arguments passed to the returned function are added to the arguments - * originally passed to apply. - * - * @name apply - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} function - The function you want to eventually apply all - * arguments to. Invokes with (arguments...). - * @param {...*} arguments... - Any number of arguments to automatically apply - * when the continuation is called. - * @example - * - * // using apply - * async.parallel([ - * async.apply(fs.writeFile, 'testfile1', 'test1'), - * async.apply(fs.writeFile, 'testfile2', 'test2') - * ]); - * - * - * // the same process without using apply - * async.parallel([ - * function(callback) { - * fs.writeFile('testfile1', 'test1', callback); - * }, - * function(callback) { - * fs.writeFile('testfile2', 'test2', callback); - * } - * ]); - * - * // It's possible to pass any number of additional arguments when calling the - * // continuation: - * - * node> var fn = async.apply(sys.puts, 'one'); - * node> fn('two', 'three'); - * one - * two - * three - */ - rest(function(fn, args) { - return rest(function(callArgs) { - return fn.apply(null, args.concat(callArgs)); - }); - }); - - /** - * A specialized version of `_.forEach` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEach(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; - } - - /** - * Creates a base function for methods like `_.forIn` and `_.forOwn`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; - - while (length--) { - var key = props[fromRight ? length : ++index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - - /** - * The base implementation of `baseForOwn` which iterates over `object` - * properties returned by `keysFunc` and invokes `iteratee` for each property. - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseFor = createBaseFor(); - - /** - * The base implementation of `_.forOwn` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwn(object, iteratee) { - return object && baseFor(object, iteratee, keys); - } - - /** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); - - while ((fromRight ? index-- : ++index < length)) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.isNaN` without support for number objects. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - */ - function baseIsNaN(value) { - return value !== value; - } - - /** - * A specialized version of `_.indexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOf(array, value, fromIndex) { - return value === value - ? strictIndexOf(array, value, fromIndex) - : baseFindIndex(array, baseIsNaN, fromIndex); - } - - /** - * Determines the best order for running the functions in `tasks`, based on - * their requirements. Each function can optionally depend on other functions - * being completed first, and each function is run as soon as its requirements - * are satisfied. - * - * If any of the functions pass an error to their callback, the `auto` sequence - * will stop. Further tasks will not execute (so any other functions depending - * on it will not run), and the main `callback` is immediately called with the - * error. - * - * Functions also receive an object containing the results of functions which - * have completed so far as the first argument, if they have dependencies. If a - * task function has no dependencies, it will only be passed a callback. - * - * @name auto - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Object} tasks - An object. Each of its properties is either a - * function or an array of requirements, with the function itself the last item - * in the array. The object's key of a property serves as the name of the task - * defined by that property, i.e. can be used when specifying requirements for - * other tasks. The function receives one or two arguments: - * * a `results` object, containing the results of the previously executed - * functions, only passed if the task has any dependencies, - * * a `callback(err, result)` function, which must be called when finished, - * passing an `error` (which can be `null`) and the result of the function's - * execution. - * @param {number} [concurrency=Infinity] - An optional `integer` for - * determining the maximum number of tasks that can be run in parallel. By - * default, as many as possible. - * @param {Function} [callback] - An optional callback which is called when all - * the tasks have been completed. It receives the `err` argument if any `tasks` - * pass an error to their callback. Results are always returned; however, if an - * error occurs, no further `tasks` will be performed, and the results object - * will only contain partial results. Invoked with (err, results). - * @returns undefined - * @example - * - * async.auto({ - * // this function will just be passed a callback - * readData: async.apply(fs.readFile, 'data.txt', 'utf-8'), - * showData: ['readData', function(results, cb) { - * // results.readData is the file's contents - * // ... - * }] - * }, callback); - * - * async.auto({ - * get_data: function(callback) { - * console.log('in get_data'); - * // async code to get some data - * callback(null, 'data', 'converted to array'); - * }, - * make_folder: function(callback) { - * console.log('in make_folder'); - * // async code to create a directory to store a file in - * // this is run at the same time as getting the data - * callback(null, 'folder'); - * }, - * write_file: ['get_data', 'make_folder', function(results, callback) { - * console.log('in write_file', JSON.stringify(results)); - * // once there is some data and the directory exists, - * // write the data to a file in the directory - * callback(null, 'filename'); - * }], - * email_link: ['write_file', function(results, callback) { - * console.log('in email_link', JSON.stringify(results)); - * // once the file is written let's email a link to it... - * // results.write_file contains the filename returned by write_file. - * callback(null, {'file':results.write_file, 'email':'user@example.com'}); - * }] - * }, function(err, results) { - * console.log('err = ', err); - * console.log('results = ', results); - * }); - */ - - /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - - /** - * The base implementation of `_.slice` without an iteratee call guard. - * - * @private - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - - /** - * Converts an ASCII `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - - /** Used to compose unicode character classes. */ - - /** Used to compose unicode character classes. */ - var rsAstralRange$1 = '\\ud800-\\udfff'; - var rsComboMarksRange$1 = '\\u0300-\\u036f'; - var reComboHalfMarksRange$1 = '\\ufe20-\\ufe2f'; - var rsComboSymbolsRange$1 = '\\u20d0-\\u20ff'; - var rsComboRange$1 = rsComboMarksRange$1 + reComboHalfMarksRange$1 + rsComboSymbolsRange$1; - var rsVarRange$1 = '\\ufe0e\\ufe0f'; - - /** Used to compose unicode capture groups. */ - var rsAstral = '[' + rsAstralRange$1 + ']'; - var rsCombo = '[' + rsComboRange$1 + ']'; - var rsFitz = '\\ud83c[\\udffb-\\udfff]'; - var rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')'; - var rsNonAstral = '[^' + rsAstralRange$1 + ']'; - var rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}'; - var rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]'; - var rsZWJ$1 = '\\u200d'; - - /** Used to compose unicode regexes. */ - var reOptMod = rsModifier + '?'; - var rsOptVar = '[' + rsVarRange$1 + ']?'; - var rsOptJoin = '(?:' + rsZWJ$1 + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*'; - var rsSeq = rsOptVar + reOptMod + rsOptJoin; - var rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; - - var hasSetImmediate = typeof setImmediate === 'function' && setImmediate; - var hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function'; - - function fallback(fn) { - setTimeout(fn, 0); - } - - function wrap(defer) { - return rest(function (fn, args) { - defer(function () { - fn.apply(null, args); - }); - }); - } - - var _defer; - - if (hasSetImmediate) { - _defer = setImmediate; - } else if (hasNextTick) { - _defer = process.nextTick; - } else { - _defer = fallback; - } - - wrap(_defer); - - // Simple doubly linked list (https://en.wikipedia.org/wiki/Doubly_linked_list) implementation - // used for queues. This implementation assumes that the node provided by the user can be modified - // to adjust the next and last properties. We implement only the minimal functionality - // for queue support. - - /** - * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time. - * - * @name eachOfSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.eachOf]{@link module:Collections.eachOf} - * @alias forEachOfSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. The - * `key` is the item's key, or index in the case of an array. The iteratee is - * passed a `callback(err)` which must be called once it has completed. If no - * error has occurred, the callback should be run without arguments or with an - * explicit `null` argument. Invoked with (item, key, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Invoked with (err). - */ - var eachOfSeries = doLimit(eachOfLimit, 1); - - /** - * Reduces `coll` into a single value using an async `iteratee` to return each - * successive step. `memo` is the initial state of the reduction. This function - * only operates in series. - * - * For performance reasons, it may make sense to split a call to this function - * into a parallel map, and then use the normal `Array.prototype.reduce` on the - * results. This function is for situations where each step in the reduction - * needs to be async; if you can get the data before reducing it, then it's - * probably a good idea to do so. - * - * @name reduce - * @static - * @memberOf module:Collections - * @method - * @alias inject - * @alias foldl - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {*} memo - The initial state of the reduction. - * @param {Function} iteratee - A function applied to each item in the - * array to produce the next step in the reduction. The `iteratee` is passed a - * `callback(err, reduction)` which accepts an optional error as its first - * argument, and the state of the reduction as the second. If an error is - * passed to the callback, the reduction is stopped and the main `callback` is - * immediately called with the error. Invoked with (memo, item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result is the reduced value. Invoked with - * (err, result). - * @example - * - * async.reduce([1,2,3], 0, function(memo, item, callback) { - * // pointless async: - * process.nextTick(function() { - * callback(null, memo + item) - * }); - * }, function(err, result) { - * // result is now equal to the last value of memo, which is 6 - * }); - */ - function reduce(coll, memo, iteratee, callback) { - callback = once(callback || noop); - eachOfSeries(coll, function(x, i, callback) { - iteratee(memo, x, function(err, v) { - memo = v; - callback(err); - }); - }, function(err) { - callback(err, memo); - }); - } - - /** - * Version of the compose function that is more natural to read. Each function - * consumes the return value of the previous function. It is the equivalent of - * [compose]{@link module:ControlFlow.compose} with the arguments reversed. - * - * Each function is executed with the `this` binding of the composed function. - * - * @name seq - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.compose]{@link module:ControlFlow.compose} - * @category Control Flow - * @param {...Function} functions - the asynchronous functions to compose - * @returns {Function} a function that composes the `functions` in order - * @example - * - * // Requires lodash (or underscore), express3 and dresende's orm2. - * // Part of an app, that fetches cats of the logged user. - * // This example uses `seq` function to avoid overnesting and error - * // handling clutter. - * app.get('/cats', function(request, response) { - * var User = request.models.User; - * async.seq( - * _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) - * function(user, fn) { - * user.getCats(fn); // 'getCats' has signature (callback(err, data)) - * } - * )(req.session.user_id, function (err, cats) { - * if (err) { - * console.error(err); - * response.json({ status: 'error', message: err.message }); - * } else { - * response.json({ status: 'ok', message: 'Cats found', data: cats }); - * } - * }); - * }); - */ - var seq = rest(function seq(functions) { - return rest(function(args) { - var that = this; - - var cb = args[args.length - 1]; - if (typeof cb == 'function') { - args.pop(); - } else { - cb = noop; - } - - reduce(functions, args, function(newargs, fn, cb) { - fn.apply(that, newargs.concat(rest(function(err, nextargs) { - cb(err, nextargs); - }))); - }, - function(err, results) { - cb.apply(that, [err].concat(results)); - }); - }); - }); - - /** - * Creates a function which is a composition of the passed asynchronous - * functions. Each function consumes the return value of the function that - * follows. Composing functions `f()`, `g()`, and `h()` would produce the result - * of `f(g(h()))`, only this version uses callbacks to obtain the return values. - * - * Each function is executed with the `this` binding of the composed function. - * - * @name compose - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {...Function} functions - the asynchronous functions to compose - * @returns {Function} an asynchronous function that is the composed - * asynchronous `functions` - * @example - * - * function add1(n, callback) { - * setTimeout(function () { - * callback(null, n + 1); - * }, 10); - * } - * - * function mul3(n, callback) { - * setTimeout(function () { - * callback(null, n * 3); - * }, 10); - * } - * - * var add1mul3 = async.compose(mul3, add1); - * add1mul3(4, function (err, result) { - * // result now equals 15 - * }); - */ - rest(function(args) { - return seq.apply(null, args.reverse()); - }); - - /** - * Applies `iteratee` to each item in `coll`, concatenating the results. Returns - * the concatenated list. The `iteratee`s are called in parallel, and the - * results are concatenated as they return. There is no guarantee that the - * results array will be returned in the original order of `coll` passed to the - * `iteratee` function. - * - * @name concat - * @static - * @memberOf module:Collections - * @method - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, results)` which must be called once - * it has completed with an error (which can be `null`) and an array of results. - * Invoked with (item, callback). - * @param {Function} [callback(err)] - A callback which is called after all the - * `iteratee` functions have finished, or an error occurs. Results is an array - * containing the concatenated results of the `iteratee` function. Invoked with - * (err, results). - * @example - * - * async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files) { - * // files is now a list of filenames that exist in the 3 directories - * }); - */ - - /** - * The same as [`concat`]{@link module:Collections.concat} but runs only a single async operation at a time. - * - * @name concatSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.concat]{@link module:Collections.concat} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, results)` which must be called once - * it has completed with an error (which can be `null`) and an array of results. - * Invoked with (item, callback). - * @param {Function} [callback(err)] - A callback which is called after all the - * `iteratee` functions have finished, or an error occurs. Results is an array - * containing the concatenated results of the `iteratee` function. Invoked with - * (err, results). - */ - - /** - * Returns a function that when called, calls-back with the values provided. - * Useful as the first function in a [`waterfall`]{@link module:ControlFlow.waterfall}, or for plugging values in to - * [`auto`]{@link module:ControlFlow.auto}. - * - * @name constant - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {...*} arguments... - Any number of arguments to automatically invoke - * callback with. - * @returns {Function} Returns a function that when invoked, automatically - * invokes the callback with the previous given arguments. - * @example - * - * async.waterfall([ - * async.constant(42), - * function (value, next) { - * // value === 42 - * }, - * //... - * ], callback); - * - * async.waterfall([ - * async.constant(filename, "utf8"), - * fs.readFile, - * function (fileData, next) { - * //... - * } - * //... - * ], callback); - * - * async.auto({ - * hostname: async.constant("https://server.net/"), - * port: findFreePort, - * launchServer: ["hostname", "port", function (options, cb) { - * startServer(options, cb); - * }], - * //... - * }, callback); - */ - rest(function(values) { - var args = [null].concat(values); - return initialParams(function (ignoredArgs, callback) { - return callback.apply(this, args); - }); - }); - - /** - * Returns the first value in `coll` that passes an async truth test. The - * `iteratee` is applied in parallel, meaning the first iteratee to return - * `true` will fire the detect `callback` with that result. That means the - * result might not be the first item in the original `coll` (in terms of order) - * that passes the test. - - * If order within the original `coll` is important, then look at - * [`detectSeries`]{@link module:Collections.detectSeries}. - * - * @name detect - * @static - * @memberOf module:Collections - * @method - * @alias find - * @category Collections - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The iteratee is passed a `callback(err, truthValue)` which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the `iteratee` functions have finished. - * Result will be the first item in the array that passes the truth test - * (iteratee) or the value `undefined` if none passed. Invoked with - * (err, result). - * @example - * - * async.detect(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, result) { - * // result now equals the first file in the list that exists - * }); - */ - - /** - * The same as [`detect`]{@link module:Collections.detect} but runs a maximum of `limit` async operations at a - * time. - * - * @name detectLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.detect]{@link module:Collections.detect} - * @alias findLimit - * @category Collections - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The iteratee is passed a `callback(err, truthValue)` which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the `iteratee` functions have finished. - * Result will be the first item in the array that passes the truth test - * (iteratee) or the value `undefined` if none passed. Invoked with - * (err, result). - */ - - /** - * The same as [`detect`]{@link module:Collections.detect} but runs only a single async operation at a time. - * - * @name detectSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.detect]{@link module:Collections.detect} - * @alias findSeries - * @category Collections - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The iteratee is passed a `callback(err, truthValue)` which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the `iteratee` functions have finished. - * Result will be the first item in the array that passes the truth test - * (iteratee) or the value `undefined` if none passed. Invoked with - * (err, result). - */ - - function consoleFunc(name) { - return rest(function (fn, args) { - fn.apply(null, args.concat(rest(function (err, args) { - if (typeof console === 'object') { - if (err) { - if (console.error) { - console.error(err); - } - } - else if (console[name]) { - arrayEach(args, function (x) { - console[name](x); - }); - } - } - }))); - }); - } - - /** - * Logs the result of an `async` function to the `console` using `console.dir` - * to display the properties of the resulting object. Only works in Node.js or - * in browsers that support `console.dir` and `console.error` (such as FF and - * Chrome). If multiple arguments are returned from the async function, - * `console.dir` is called on each argument in order. - * - * @name dir - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} function - The function you want to eventually apply all - * arguments to. - * @param {...*} arguments... - Any number of arguments to apply to the function. - * @example - * - * // in a module - * var hello = function(name, callback) { - * setTimeout(function() { - * callback(null, {hello: name}); - * }, 1000); - * }; - * - * // in the node repl - * node> async.dir(hello, 'world'); - * {hello: 'world'} - */ - consoleFunc('dir'); - - function _withoutIndex(iteratee) { - return function (value, index, callback) { - return iteratee(value, callback); - }; - } - - /** - * Applies the function `iteratee` to each item in `coll`, in parallel. - * The `iteratee` is called with an item from the list, and a callback for when - * it has finished. If the `iteratee` passes an error to its `callback`, the - * main `callback` (for the `each` function) is immediately called with the - * error. - * - * Note, that since this function applies `iteratee` to each item in parallel, - * there is no guarantee that the iteratee functions will complete in order. - * - * @name each - * @static - * @memberOf module:Collections - * @method - * @alias forEach - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item - * in `coll`. The iteratee is passed a `callback(err)` which must be called once - * it has completed. If no error has occurred, the `callback` should be run - * without arguments or with an explicit `null` argument. The array index is not - * passed to the iteratee. Invoked with (item, callback). If you need the index, - * use `eachOf`. - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - * @example - * - * // assuming openFiles is an array of file names and saveFile is a function - * // to save the modified contents of that file: - * - * async.each(openFiles, saveFile, function(err){ - * // if any of the saves produced an error, err would equal that error - * }); - * - * // assuming openFiles is an array of file names - * async.each(openFiles, function(file, callback) { - * - * // Perform operation on file here. - * console.log('Processing file ' + file); - * - * if( file.length > 32 ) { - * console.log('This file name is too long'); - * callback('File name too long'); - * } else { - * // Do work to process file here - * console.log('File processed'); - * callback(); - * } - * }, function(err) { - * // if any of the file processing produced an error, err would equal that error - * if( err ) { - * // One of the iterations produced an error. - * // All processing will now stop. - * console.log('A file failed to process'); - * } else { - * console.log('All files have been processed successfully'); - * } - * }); - */ - function eachLimit(coll, iteratee, callback) { - eachOf(coll, _withoutIndex(iteratee), callback); - } - - /** - * The same as [`each`]{@link module:Collections.each} but runs only a single async operation at a time. - * - * @name eachSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.each]{@link module:Collections.each} - * @alias forEachSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each - * item in `coll`. The iteratee is passed a `callback(err)` which must be called - * once it has completed. If no error has occurred, the `callback` should be run - * without arguments or with an explicit `null` argument. The array index is - * not passed to the iteratee. Invoked with (item, callback). If you need the - * index, use `eachOfSeries`. - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - */ - - /** - * Returns `true` if every element in `coll` satisfies an async test. If any - * iteratee call returns `false`, the main `callback` is immediately called. - * - * @name every - * @static - * @memberOf module:Collections - * @method - * @alias all - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the - * collection in parallel. The iteratee is passed a `callback(err, truthValue)` - * which must be called with a boolean argument once it has completed. Invoked - * with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result will be either `true` or `false` - * depending on the values of the async tests. Invoked with (err, result). - * @example - * - * async.every(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, result) { - * // if result is true then every file exists - * }); - */ - - /** - * The same as [`every`]{@link module:Collections.every} but runs a maximum of `limit` async operations at a time. - * - * @name everyLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.every]{@link module:Collections.every} - * @alias allLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in the - * collection in parallel. The iteratee is passed a `callback(err, truthValue)` - * which must be called with a boolean argument once it has completed. Invoked - * with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result will be either `true` or `false` - * depending on the values of the async tests. Invoked with (err, result). - */ - - /** - * The same as [`every`]{@link module:Collections.every} but runs only a single async operation at a time. - * - * @name everySeries - * @static - * @memberOf module:Collections - * @method - * @see [async.every]{@link module:Collections.every} - * @alias allSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the - * collection in parallel. The iteratee is passed a `callback(err, truthValue)` - * which must be called with a boolean argument once it has completed. Invoked - * with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result will be either `true` or `false` - * depending on the values of the async tests. Invoked with (err, result). - */ - - /** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ - - /** - * Returns a new array of all the values in `coll` which pass an async truth - * test. This operation is performed in parallel, but the results array will be - * in the same order as the original. - * - * @name filter - * @static - * @memberOf module:Collections - * @method - * @alias select - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - * @example - * - * async.filter(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, results) { - * // results now equals an array of the existing files - * }); - */ - - /** - * The same as [`filter`]{@link module:Collections.filter} but runs a maximum of `limit` async operations at a - * time. - * - * @name filterLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.filter]{@link module:Collections.filter} - * @alias selectLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - */ - - /** - * The same as [`filter`]{@link module:Collections.filter} but runs only a single async operation at a time. - * - * @name filterSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.filter]{@link module:Collections.filter} - * @alias selectSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results) - */ - - /** - * Logs the result of an `async` function to the `console`. Only works in - * Node.js or in browsers that support `console.log` and `console.error` (such - * as FF and Chrome). If multiple arguments are returned from the async - * function, `console.log` is called on each argument in order. - * - * @name log - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} function - The function you want to eventually apply all - * arguments to. - * @param {...*} arguments... - Any number of arguments to apply to the function. - * @example - * - * // in a module - * var hello = function(name, callback) { - * setTimeout(function() { - * callback(null, 'hello ' + name); - * }, 1000); - * }; - * - * // in the node repl - * node> async.log(hello, 'world'); - * 'hello world' - */ - consoleFunc('log'); - - /** - * A relative of [`map`]{@link module:Collections.map}, designed for use with objects. - * - * Produces a new Object by mapping each value of `obj` through the `iteratee` - * function. The `iteratee` is called each `value` and `key` from `obj` and a - * callback for when it has finished processing. Each of these callbacks takes - * two arguments: an `error`, and the transformed item from `obj`. If `iteratee` - * passes an error to its callback, the main `callback` (for the `mapValues` - * function) is immediately called with the error. - * - * Note, the order of the keys in the result is not guaranteed. The keys will - * be roughly in the order they complete, (but this is very engine-specific) - * - * @name mapValues - * @static - * @memberOf module:Collections - * @method - * @category Collection - * @param {Object} obj - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each value and key in - * `coll`. The iteratee is passed a `callback(err, transformed)` which must be - * called once it has completed with an error (which can be `null`) and a - * transformed value. Invoked with (value, key, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. `result` is a new object consisting - * of each key from `obj`, with each transformed value on the right-hand side. - * Invoked with (err, result). - * @example - * - * async.mapValues({ - * f1: 'file1', - * f2: 'file2', - * f3: 'file3' - * }, function (file, key, callback) { - * fs.stat(file, callback); - * }, function(err, result) { - * // result is now a map of stats for each file, e.g. - * // { - * // f1: [stats for file1], - * // f2: [stats for file2], - * // f3: [stats for file3] - * // } - * }); - */ - - /** - * The same as [`mapValues`]{@link module:Collections.mapValues} but runs only a single async operation at a time. - * - * @name mapValuesSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.mapValues]{@link module:Collections.mapValues} - * @category Collection - * @param {Object} obj - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each value in `obj`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a - * transformed value. Invoked with (value, key, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. `result` is a new object consisting - * of each key from `obj`, with each transformed value on the right-hand side. - * Invoked with (err, result). - */ - - /** - * Calls `callback` on a later loop around the event loop. In Node.js this just - * calls `setImmediate`. In the browser it will use `setImmediate` if - * available, otherwise `setTimeout(callback, 0)`, which means other higher - * priority events may precede the execution of `callback`. - * - * This is used internally for browser-compatibility purposes. - * - * @name nextTick - * @static - * @memberOf module:Utils - * @method - * @alias setImmediate - * @category Util - * @param {Function} callback - The function to call on a later loop around - * the event loop. Invoked with (args...). - * @param {...*} args... - any number of additional arguments to pass to the - * callback on the next tick. - * @example - * - * var call_order = []; - * async.nextTick(function() { - * call_order.push('two'); - * // call_order now equals ['one','two'] - * }); - * call_order.push('one'); - * - * async.setImmediate(function (a, b, c) { - * // a, b, and c equal 1, 2, and 3 - * }, 1, 2, 3); - */ - var _defer$1; - - if (hasNextTick) { - _defer$1 = process.nextTick; - } else if (hasSetImmediate) { - _defer$1 = setImmediate; - } else { - _defer$1 = fallback; - } - - wrap(_defer$1); - - /** - * Calls `callback` on a later loop around the event loop. In Node.js this just - * calls `setImmediate`. In the browser it will use `setImmediate` if - * available, otherwise `setTimeout(callback, 0)`, which means other higher - * priority events may precede the execution of `callback`. - * - * This is used internally for browser-compatibility purposes. - * - * @name setImmediate - * @static - * @memberOf module:Utils - * @method - * @alias nextTick - * @category Util - * @param {Function} callback - The function to call on a later loop around - * the event loop. Invoked with (args...). - * @param {...*} args... - any number of additional arguments to pass to the - * callback on the next tick. - * @example - * - * var call_order = []; - * async.nextTick(function() { - * call_order.push('two'); - * // call_order now equals ['one','two'] - * }); - * call_order.push('one'); - * - * async.setImmediate(function (a, b, c) { - * // a, b, and c equal 1, 2, and 3 - * }, 1, 2, 3); - */ - - /** - * A queue of tasks for the worker function to complete. - * @typedef {Object} QueueObject - * @memberOf module:ControlFlow - * @property {Function} length - a function returning the number of items - * waiting to be processed. Invoke with `queue.length()`. - * @property {boolean} started - a boolean indicating whether or not any - * items have been pushed and processed by the queue. - * @property {Function} running - a function returning the number of items - * currently being processed. Invoke with `queue.running()`. - * @property {Function} workersList - a function returning the array of items - * currently being processed. Invoke with `queue.workersList()`. - * @property {Function} idle - a function returning false if there are items - * waiting or being processed, or true if not. Invoke with `queue.idle()`. - * @property {number} concurrency - an integer for determining how many `worker` - * functions should be run in parallel. This property can be changed after a - * `queue` is created to alter the concurrency on-the-fly. - * @property {Function} push - add a new task to the `queue`. Calls `callback` - * once the `worker` has finished processing the task. Instead of a single task, - * a `tasks` array can be submitted. The respective callback is used for every - * task in the list. Invoke with `queue.push(task, [callback])`, - * @property {Function} unshift - add a new task to the front of the `queue`. - * Invoke with `queue.unshift(task, [callback])`. - * @property {Function} saturated - a callback that is called when the number of - * running workers hits the `concurrency` limit, and further tasks will be - * queued. - * @property {Function} unsaturated - a callback that is called when the number - * of running workers is less than the `concurrency` & `buffer` limits, and - * further tasks will not be queued. - * @property {number} buffer - A minimum threshold buffer in order to say that - * the `queue` is `unsaturated`. - * @property {Function} empty - a callback that is called when the last item - * from the `queue` is given to a `worker`. - * @property {Function} drain - a callback that is called when the last item - * from the `queue` has returned from the `worker`. - * @property {Function} error - a callback that is called when a task errors. - * Has the signature `function(error, task)`. - * @property {boolean} paused - a boolean for determining whether the queue is - * in a paused state. - * @property {Function} pause - a function that pauses the processing of tasks - * until `resume()` is called. Invoke with `queue.pause()`. - * @property {Function} resume - a function that resumes the processing of - * queued tasks when the queue is paused. Invoke with `queue.resume()`. - * @property {Function} kill - a function that removes the `drain` callback and - * empties remaining tasks from the queue forcing it to go idle. Invoke with `queue.kill()`. - */ - - /** - * Creates a `queue` object with the specified `concurrency`. Tasks added to the - * `queue` are processed in parallel (up to the `concurrency` limit). If all - * `worker`s are in progress, the task is queued until one becomes available. - * Once a `worker` completes a `task`, that `task`'s callback is called. - * - * @name queue - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Function} worker - An asynchronous function for processing a queued - * task, which must call its `callback(err)` argument when finished, with an - * optional `error` as an argument. If you want to handle errors from an - * individual task, pass a callback to `q.push()`. Invoked with - * (task, callback). - * @param {number} [concurrency=1] - An `integer` for determining how many - * `worker` functions should be run in parallel. If omitted, the concurrency - * defaults to `1`. If the concurrency is `0`, an error is thrown. - * @returns {module:ControlFlow.QueueObject} A queue object to manage the tasks. Callbacks can - * attached as certain properties to listen for specific events during the - * lifecycle of the queue. - * @example - * - * // create a queue object with concurrency 2 - * var q = async.queue(function(task, callback) { - * console.log('hello ' + task.name); - * callback(); - * }, 2); - * - * // assign a callback - * q.drain = function() { - * console.log('all items have been processed'); - * }; - * - * // add some items to the queue - * q.push({name: 'foo'}, function(err) { - * console.log('finished processing foo'); - * }); - * q.push({name: 'bar'}, function (err) { - * console.log('finished processing bar'); - * }); - * - * // add some items to the queue (batch-wise) - * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) { - * console.log('finished processing item'); - * }); - * - * // add some items to the front of the queue - * q.unshift({name: 'bar'}, function (err) { - * console.log('finished processing bar'); - * }); - */ - - /** - * The same as [async.queue]{@link module:ControlFlow.queue} only tasks are assigned a priority and - * completed in ascending priority order. - * - * @name priorityQueue - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.queue]{@link module:ControlFlow.queue} - * @category Control Flow - * @param {Function} worker - An asynchronous function for processing a queued - * task, which must call its `callback(err)` argument when finished, with an - * optional `error` as an argument. If you want to handle errors from an - * individual task, pass a callback to `q.push()`. Invoked with - * (task, callback). - * @param {number} concurrency - An `integer` for determining how many `worker` - * functions should be run in parallel. If omitted, the concurrency defaults to - * `1`. If the concurrency is `0`, an error is thrown. - * @returns {module:ControlFlow.QueueObject} A priorityQueue object to manage the tasks. There are two - * differences between `queue` and `priorityQueue` objects: - * * `push(task, priority, [callback])` - `priority` should be a number. If an - * array of `tasks` is given, all tasks will be assigned the same priority. - * * The `unshift` method was removed. - */ - - /** - * The opposite of [`filter`]{@link module:Collections.filter}. Removes values that pass an `async` truth test. - * - * @name reject - * @static - * @memberOf module:Collections - * @method - * @see [async.filter]{@link module:Collections.filter} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - * @example - * - * async.reject(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, results) { - * // results now equals an array of missing files - * createFiles(results); - * }); - */ - - /** - * The same as [`reject`]{@link module:Collections.reject} but runs a maximum of `limit` async operations at a - * time. - * - * @name rejectLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.reject]{@link module:Collections.reject} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - */ - - /** - * The same as [`reject`]{@link module:Collections.reject} but runs only a single async operation at a time. - * - * @name rejectSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.reject]{@link module:Collections.reject} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - */ - - /** - * Creates a function that returns `value`. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Util - * @param {*} value The value to return from the new function. - * @returns {Function} Returns the new constant function. - * @example - * - * var objects = _.times(2, _.constant({ 'a': 1 })); - * - * console.log(objects); - * // => [{ 'a': 1 }, { 'a': 1 }] - * - * console.log(objects[0] === objects[1]); - * // => true - */ - - /** - * A close relative of [`retry`]{@link module:ControlFlow.retry}. This method wraps a task and makes it - * retryable, rather than immediately calling it with retries. - * - * @name retryable - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.retry]{@link module:ControlFlow.retry} - * @category Control Flow - * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional - * options, exactly the same as from `retry` - * @param {Function} task - the asynchronous function to wrap - * @returns {Functions} The wrapped function, which when invoked, will retry on - * an error, based on the parameters specified in `opts`. - * @example - * - * async.auto({ - * dep1: async.retryable(3, getFromFlakyService), - * process: ["dep1", async.retryable(3, function (results, cb) { - * maybeProcessData(results.dep1, cb); - * })] - * }, callback); - */ - - /** - * Returns `true` if at least one element in the `coll` satisfies an async test. - * If any iteratee call returns `true`, the main `callback` is immediately - * called. - * - * @name some - * @static - * @memberOf module:Collections - * @method - * @alias any - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the array - * in parallel. The iteratee is passed a `callback(err, truthValue)` which must - * be called with a boolean argument once it has completed. Invoked with - * (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the iteratee functions have finished. - * Result will be either `true` or `false` depending on the values of the async - * tests. Invoked with (err, result). - * @example - * - * async.some(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, result) { - * // if result is true then at least one of the files exists - * }); - */ - - /** - * The same as [`some`]{@link module:Collections.some} but runs a maximum of `limit` async operations at a time. - * - * @name someLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.some]{@link module:Collections.some} - * @alias anyLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in the array - * in parallel. The iteratee is passed a `callback(err, truthValue)` which must - * be called with a boolean argument once it has completed. Invoked with - * (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the iteratee functions have finished. - * Result will be either `true` or `false` depending on the values of the async - * tests. Invoked with (err, result). - */ - - /** - * The same as [`some`]{@link module:Collections.some} but runs only a single async operation at a time. - * - * @name someSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.some]{@link module:Collections.some} - * @alias anySeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the array - * in parallel. The iteratee is passed a `callback(err, truthValue)` which must - * be called with a boolean argument once it has completed. Invoked with - * (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the iteratee functions have finished. - * Result will be either `true` or `false` depending on the values of the async - * tests. Invoked with (err, result). - */ - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeCeil = Math.ceil; - var nativeMax$1 = Math.max; - - /** - * Calls the `iteratee` function `n` times, and accumulates results in the same - * manner you would use with [map]{@link module:Collections.map}. - * - * @name times - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.map]{@link module:Collections.map} - * @category Control Flow - * @param {number} n - The number of times to run the function. - * @param {Function} iteratee - The function to call `n` times. Invoked with the - * iteration index and a callback (n, next). - * @param {Function} callback - see {@link module:Collections.map}. - * @example - * - * // Pretend this is some complicated async factory - * var createUser = function(id, callback) { - * callback(null, { - * id: 'user' + id - * }); - * }; - * - * // generate 5 users - * async.times(5, function(n, next) { - * createUser(n, function(err, user) { - * next(err, user); - * }); - * }, function(err, users) { - * // we should now have 5 users - * }); - */ - - /** - * The same as [times]{@link module:ControlFlow.times} but runs only a single async operation at a time. - * - * @name timesSeries - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.times]{@link module:ControlFlow.times} - * @category Control Flow - * @param {number} n - The number of times to run the function. - * @param {Function} iteratee - The function to call `n` times. Invoked with the - * iteration index and a callback (n, next). - * @param {Function} callback - see {@link module:Collections.map}. - */ - - /** - * Undoes a [memoize]{@link module:Utils.memoize}d function, reverting it to the original, - * unmemoized form. Handy for testing. - * - * @name unmemoize - * @static - * @memberOf module:Utils - * @method - * @see [async.memoize]{@link module:Utils.memoize} - * @category Util - * @param {Function} fn - the memoized function - * @returns {Function} a function that calls the original unmemoized function - */ - - /** - * Runs the `tasks` array of functions in series, each passing their results to - * the next in the array. However, if any of the `tasks` pass an error to their - * own callback, the next function is not executed, and the main `callback` is - * immediately called with the error. - * - * @name waterfall - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Array} tasks - An array of functions to run, each function is passed - * a `callback(err, result1, result2, ...)` it must call on completion. The - * first argument is an error (which can be `null`) and any further arguments - * will be passed as arguments in order to the next task. - * @param {Function} [callback] - An optional callback to run once all the - * functions have completed. This will be passed the results of the last task's - * callback. Invoked with (err, [results]). - * @returns undefined - * @example - * - * async.waterfall([ - * function(callback) { - * callback(null, 'one', 'two'); - * }, - * function(arg1, arg2, callback) { - * // arg1 now equals 'one' and arg2 now equals 'two' - * callback(null, 'three'); - * }, - * function(arg1, callback) { - * // arg1 now equals 'three' - * callback(null, 'done'); - * } - * ], function (err, result) { - * // result now equals 'done' - * }); - * - * // Or, with named functions: - * async.waterfall([ - * myFirstFunction, - * mySecondFunction, - * myLastFunction, - * ], function (err, result) { - * // result now equals 'done' - * }); - * function myFirstFunction(callback) { - * callback(null, 'one', 'two'); - * } - * function mySecondFunction(arg1, arg2, callback) { - * // arg1 now equals 'one' and arg2 now equals 'two' - * callback(null, 'three'); - * } - * function myLastFunction(arg1, callback) { - * // arg1 now equals 'three' - * callback(null, 'done'); - * } - */ - - /** - * Async is a utility module which provides straight-forward, powerful functions - * for working with asynchronous JavaScript. Although originally designed for - * use with [Node.js](http://nodejs.org) and installable via - * `npm install --save async`, it can also be used directly in the browser. - * @module async - */ - - /** - * A collection of `async` functions for manipulating collections, such as - * arrays and objects. - * @module Collections - */ - - /** - * A collection of `async` functions for controlling the flow through a script. - * @module ControlFlow - */ - - /** - * A collection of `async` utility functions. - * @module Utils - */ - - /** - * @hidden - */ - var errorCodeLookup; - /** - * Lazily construct error code lookup, since DropboxJS might be loaded *after* BrowserFS (or not at all!) - * @hidden - */ - function constructErrorCodeLookup() { - if (errorCodeLookup) { - return; - } - errorCodeLookup = {}; - // This indicates a network transmission error on modern browsers. Internet Explorer might cause this code to be reported on some API server errors. - errorCodeLookup[Dropbox.ApiError.NETWORK_ERROR] = ErrorCode.EIO; - // This happens when the contentHash parameter passed to a Dropbox.Client#readdir or Dropbox.Client#stat matches the most recent content, so the API call response is omitted, to save bandwidth. - // errorCodeLookup[Dropbox.ApiError.NO_CONTENT]; - // The error property on {Dropbox.ApiError#response} should indicate which input parameter is invalid and why. - errorCodeLookup[Dropbox.ApiError.INVALID_PARAM] = ErrorCode.EINVAL; - // The OAuth token used for the request will never become valid again, so the user should be re-authenticated. - errorCodeLookup[Dropbox.ApiError.INVALID_TOKEN] = ErrorCode.EPERM; - // This indicates a bug in dropbox.js and should never occur under normal circumstances. - // ^ Actually, that's false. This occurs when you try to move folders to themselves, or move a file over another file. - errorCodeLookup[Dropbox.ApiError.OAUTH_ERROR] = ErrorCode.EPERM; - // This happens when trying to read from a non-existing file, readdir a non-existing directory, write a file into a non-existing directory, etc. - errorCodeLookup[Dropbox.ApiError.NOT_FOUND] = ErrorCode.ENOENT; - // This indicates a bug in dropbox.js and should never occur under normal circumstances. - errorCodeLookup[Dropbox.ApiError.INVALID_METHOD] = ErrorCode.EINVAL; - // This happens when a Dropbox.Client#readdir or Dropbox.Client#stat call would return more than a maximum amount of directory entries. - errorCodeLookup[Dropbox.ApiError.NOT_ACCEPTABLE] = ErrorCode.EINVAL; - // This is used by some backend methods to indicate that the client needs to download server-side changes and perform conflict resolution. Under normal usage, errors with this code should never surface to the code using dropbox.js. - errorCodeLookup[Dropbox.ApiError.CONFLICT] = ErrorCode.EINVAL; - // Status value indicating that the application is making too many requests. - errorCodeLookup[Dropbox.ApiError.RATE_LIMITED] = ErrorCode.EBUSY; - // The request should be retried after some time. - errorCodeLookup[Dropbox.ApiError.SERVER_ERROR] = ErrorCode.EBUSY; - // Status value indicating that the user's Dropbox is over its storage quota. - errorCodeLookup[Dropbox.ApiError.OVER_QUOTA] = ErrorCode.ENOSPC; - } - /** - * @hidden - */ - function isFileInfo(cache) { - return cache && cache.stat.isFile; - } - /** - * @hidden - */ - function isDirInfo(cache) { - return cache && cache.stat.isFolder; - } - /** - * @hidden - */ - function isArrayBuffer(ab) { - // Accept null / undefined, too. - return ab === null || ab === undefined || (typeof (ab) === 'object' && typeof (ab['byteLength']) === 'number'); - } - /** - * Wraps a Dropbox client and caches operations. - * @hidden - */ - var CachedDropboxClient = function CachedDropboxClient(client) { - this._cache = {}; - this._client = client; - }; - CachedDropboxClient.prototype.readdir = function readdir (p, cb) { - var this$1 = this; - - var cacheInfo = this.getCachedDirInfo(p); - this._wrap(function (interceptCb) { - if (cacheInfo !== null && cacheInfo.contents) { - this$1._client.readdir(p, { - contentHash: cacheInfo.stat.contentHash - }, interceptCb); - } - else { - this$1._client.readdir(p, interceptCb); - } - }, function (err, filenames, stat, folderEntries) { - if (err) { - if (err.status === Dropbox.ApiError.NO_CONTENT && cacheInfo !== null) { - cb(null, cacheInfo.contents.slice(0)); - } - else { - cb(err); - } - } - else { - this$1.updateCachedDirInfo(p, stat, filenames.slice(0)); - folderEntries.forEach(function (entry) { - this$1.updateCachedInfo(path.join(p, entry.name), entry); - }); - cb(null, filenames); - } - }); - }; - CachedDropboxClient.prototype.remove = function remove (p, cb) { - var this$1 = this; - - this._wrap(function (interceptCb) { - this$1._client.remove(p, interceptCb); - }, function (err, stat) { - if (!err) { - this$1.updateCachedInfo(p, stat); - } - cb(err); - }); - }; - CachedDropboxClient.prototype.move = function move (src, dest, cb) { - var this$1 = this; - - this._wrap(function (interceptCb) { - this$1._client.move(src, dest, interceptCb); - }, function (err, stat) { - if (!err) { - this$1.deleteCachedInfo(src); - this$1.updateCachedInfo(dest, stat); - } - cb(err); - }); - }; - CachedDropboxClient.prototype.stat = function stat (p, cb) { - var this$1 = this; - - this._wrap(function (interceptCb) { - this$1._client.stat(p, interceptCb); - }, function (err, stat) { - if (!err) { - this$1.updateCachedInfo(p, stat); - } - cb(err, stat); - }); - }; - CachedDropboxClient.prototype.readFile = function readFile (p, cb) { - var this$1 = this; - - var cacheInfo = this.getCachedFileInfo(p); - if (cacheInfo !== null && cacheInfo.contents !== null) { - // Try to use cached info; issue a stat to see if contents are up-to-date. - this.stat(p, function (error, stat) { - if (error) { - cb(error); - } - else if (stat.contentHash === cacheInfo.stat.contentHash) { - // No file changes. - cb(error, cacheInfo.contents.slice(0), cacheInfo.stat); - } - else { - // File changes; rerun to trigger actual readFile. - this$1.readFile(p, cb); - } - }); - } - else { - this._wrap(function (interceptCb) { - this$1._client.readFile(p, { arrayBuffer: true }, interceptCb); - }, function (err, contents, stat) { - if (!err) { - this$1.updateCachedInfo(p, stat, contents.slice(0)); - } - cb(err, contents, stat); - }); - } - }; - CachedDropboxClient.prototype.writeFile = function writeFile (p, contents, cb) { - var this$1 = this; - - this._wrap(function (interceptCb) { - this$1._client.writeFile(p, contents, interceptCb); - }, function (err, stat) { - if (!err) { - this$1.updateCachedInfo(p, stat, contents.slice(0)); - } - cb(err, stat); - }); - }; - CachedDropboxClient.prototype.mkdir = function mkdir (p, cb) { - var this$1 = this; - - this._wrap(function (interceptCb) { - this$1._client.mkdir(p, interceptCb); - }, function (err, stat) { - if (!err) { - this$1.updateCachedInfo(p, stat, []); - } - cb(err); - }); - }; - /** - * Wraps an operation such that we retry a failed operation 3 times. - * Necessary to deal with Dropbox rate limiting. - * - * @param performOp Function that performs the operation. Will be called up to three times. - * @param cb Called when the operation succeeds, fails in a non-temporary manner, or fails three times. - */ - CachedDropboxClient.prototype._wrap = function _wrap (performOp, cb) { - var numRun = 0; - var interceptCb = function (error) { - // Timeout duration, in seconds. - var timeoutDuration = 2; - if (error && 3 > (++numRun)) { - switch (error.status) { - case Dropbox.ApiError.SERVER_ERROR: - case Dropbox.ApiError.NETWORK_ERROR: - case Dropbox.ApiError.RATE_LIMITED: - setTimeout(function () { - performOp(interceptCb); - }, timeoutDuration * 1000); - break; - default: - cb.apply(null, arguments); - break; - } - } - else { - cb.apply(null, arguments); - } - }; - performOp(interceptCb); - }; - CachedDropboxClient.prototype.getCachedInfo = function getCachedInfo (p) { - return this._cache[p.toLowerCase()]; - }; - CachedDropboxClient.prototype.putCachedInfo = function putCachedInfo (p, cache) { - this._cache[p.toLowerCase()] = cache; - }; - CachedDropboxClient.prototype.deleteCachedInfo = function deleteCachedInfo (p) { - delete this._cache[p.toLowerCase()]; - }; - CachedDropboxClient.prototype.getCachedDirInfo = function getCachedDirInfo (p) { - var info = this.getCachedInfo(p); - if (isDirInfo(info)) { - return info; - } - else { - return null; - } - }; - CachedDropboxClient.prototype.getCachedFileInfo = function getCachedFileInfo (p) { - var info = this.getCachedInfo(p); - if (isFileInfo(info)) { - return info; - } - else { - return null; - } - }; - CachedDropboxClient.prototype.updateCachedDirInfo = function updateCachedDirInfo (p, stat, contents) { - if ( contents === void 0 ) contents = null; - - var cachedInfo = this.getCachedInfo(p); - // Dropbox uses the *contentHash* property for directories. - // Ignore stat objects w/o a contentHash defined; those actually exist!!! - // (Example: readdir returns an array of stat objs; stat objs for dirs in that context have no contentHash) - if (stat.contentHash !== null && (cachedInfo === undefined || cachedInfo.stat.contentHash !== stat.contentHash)) { - this.putCachedInfo(p, { - stat: stat, - contents: contents - }); - } - }; - CachedDropboxClient.prototype.updateCachedFileInfo = function updateCachedFileInfo (p, stat, contents) { - if ( contents === void 0 ) contents = null; - - var cachedInfo = this.getCachedInfo(p); - // Dropbox uses the *versionTag* property for files. - // Ignore stat objects w/o a versionTag defined. - if (stat.versionTag !== null && (cachedInfo === undefined || cachedInfo.stat.versionTag !== stat.versionTag)) { - this.putCachedInfo(p, { - stat: stat, - contents: contents - }); - } - }; - CachedDropboxClient.prototype.updateCachedInfo = function updateCachedInfo (p, stat, contents) { - if ( contents === void 0 ) contents = null; - - if (stat.isFile && isArrayBuffer(contents)) { - this.updateCachedFileInfo(p, stat, contents); - } - else if (stat.isFolder && Array.isArray(contents)) { - this.updateCachedDirInfo(p, stat, contents); - } - }; - var DropboxFile = (function (PreloadFile$$1) { - function DropboxFile(_fs, _path, _flag, _stat, contents) { - PreloadFile$$1.call(this, _fs, _path, _flag, _stat, contents); - } - - if ( PreloadFile$$1 ) DropboxFile.__proto__ = PreloadFile$$1; - DropboxFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype ); - DropboxFile.prototype.constructor = DropboxFile; - DropboxFile.prototype.sync = function sync (cb) { - var this$1 = this; - - if (this.isDirty()) { - var buffer$$1 = this.getBuffer(), arrayBuffer = buffer2ArrayBuffer(buffer$$1); - this._fs._writeFileStrict(this.getPath(), arrayBuffer, function (e) { - if (!e) { - this$1.resetDirty(); - } - cb(e); - }); - } - else { - cb(); - } - }; - DropboxFile.prototype.close = function close (cb) { - this.sync(cb); - }; - - return DropboxFile; - }(PreloadFile)); - /** - * A read/write file system backed by Dropbox cloud storage. - * - * Uses the Dropbox V1 API. - * - * NOTE: You must use the v0.10 version of the [Dropbox JavaScript SDK](https://www.npmjs.com/package/dropbox). - */ - var DropboxFileSystem = (function (BaseFileSystem$$1) { - function DropboxFileSystem(client, deprecateMsg) { - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - BaseFileSystem$$1.call(this); - this._client = new CachedDropboxClient(client); - deprecationMessage(deprecateMsg, DropboxFileSystem.Name, { client: "authenticated dropbox client instance" }); - constructErrorCodeLookup(); - } - - if ( BaseFileSystem$$1 ) DropboxFileSystem.__proto__ = BaseFileSystem$$1; - DropboxFileSystem.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - DropboxFileSystem.prototype.constructor = DropboxFileSystem; - /** - * Creates a new DropboxFileSystem instance with the given options. - * Must be given an *authenticated* DropboxJS client from the old v0.10 version of the Dropbox JS SDK. - */ - DropboxFileSystem.Create = function Create (opts, cb) { - cb(null, new DropboxFileSystem(opts.client, false)); - }; - DropboxFileSystem.isAvailable = function isAvailable () { - // Checks if the Dropbox library is loaded. - return typeof Dropbox !== 'undefined'; - }; - DropboxFileSystem.prototype.getName = function getName () { - return DropboxFileSystem.Name; - }; - DropboxFileSystem.prototype.isReadOnly = function isReadOnly () { - return false; - }; - // Dropbox doesn't support symlinks, properties, or synchronous calls - DropboxFileSystem.prototype.supportsSymlinks = function supportsSymlinks () { - return false; - }; - DropboxFileSystem.prototype.supportsProps = function supportsProps () { - return false; - }; - DropboxFileSystem.prototype.supportsSynch = function supportsSynch () { - return false; - }; - DropboxFileSystem.prototype.empty = function empty (mainCb) { - var this$1 = this; - - this._client.readdir('/', function (error, files) { - if (error) { - mainCb(this$1.convert(error, '/')); - } - else { - var deleteFile = function (file, cb) { - var p = path.join('/', file); - this$1._client.remove(p, function (err) { - cb(err ? this$1.convert(err, p) : null); - }); - }; - var finished = function (err) { - if (err) { - mainCb(err); - } - else { - mainCb(); - } - }; - // XXX: typing is to get around overly-restrictive ErrorCallback typing. - eachLimit(files, deleteFile, finished); - } - }); - }; - DropboxFileSystem.prototype.rename = function rename (oldPath, newPath, cb) { - var this$1 = this; - - this._client.move(oldPath, newPath, function (error) { - if (error) { - // the move is permitted if newPath is a file. - // Check if this is the case, and remove if so. - this$1._client.stat(newPath, function (error2, stat) { - if (error2 || stat.isFolder) { - var missingPath = error.response.error.indexOf(oldPath) > -1 ? oldPath : newPath; - cb(this$1.convert(error, missingPath)); - } - else { - // Delete file, repeat rename. - this$1._client.remove(newPath, function (error2) { - if (error2) { - cb(this$1.convert(error2, newPath)); - } - else { - this$1.rename(oldPath, newPath, cb); - } - }); - } - }); - } - else { - cb(); - } - }); - }; - DropboxFileSystem.prototype.stat = function stat (path$$1, isLstat, cb) { - var this$1 = this; - - // Ignore lstat case -- Dropbox doesn't support symlinks - // Stat the file - this._client.stat(path$$1, function (error, stat) { - if (error) { - cb(this$1.convert(error, path$$1)); - } - else if (stat && stat.isRemoved) { - // Dropbox keeps track of deleted files, so if a file has existed in the - // past but doesn't any longer, you wont get an error - cb(ApiError.FileError(ErrorCode.ENOENT, path$$1)); - } - else { - var stats = new Stats(this$1._statType(stat), stat.size); - return cb(null, stats); - } - }); - }; - DropboxFileSystem.prototype.open = function open (path$$1, flags, mode, cb) { - var this$1 = this; - - // Try and get the file's contents - this._client.readFile(path$$1, function (error, content, dbStat) { - if (error) { - // If the file's being opened for reading and doesn't exist, return an - // error - if (flags.isReadable()) { - cb(this$1.convert(error, path$$1)); - } - else { - switch (error.status) { - // If it's being opened for writing or appending, create it so that - // it can be written to - case Dropbox.ApiError.NOT_FOUND: - var ab = new ArrayBuffer(0); - return this$1._writeFileStrict(path$$1, ab, function (error2, stat) { - if (error2) { - cb(error2); - } - else { - var file = this$1._makeFile(path$$1, flags, stat, arrayBuffer2Buffer(ab)); - cb(null, file); - } - }); - default: - return cb(this$1.convert(error, path$$1)); - } - } - } - else { - // No error - var buffer$$1; - // Dropbox.js seems to set `content` to `null` rather than to an empty - // buffer when reading an empty file. Not sure why this is. - if (content === null) { - buffer$$1 = emptyBuffer(); - } - else { - buffer$$1 = arrayBuffer2Buffer(content); - } - var file = this$1._makeFile(path$$1, flags, dbStat, buffer$$1); - return cb(null, file); - } - }); - }; - DropboxFileSystem.prototype._writeFileStrict = function _writeFileStrict (p, data, cb) { - var this$1 = this; - - var parent = path.dirname(p); - this.stat(parent, false, function (error, stat) { - if (error) { - cb(ApiError.FileError(ErrorCode.ENOENT, parent)); - } - else { - this$1._client.writeFile(p, data, function (error2, stat) { - if (error2) { - cb(this$1.convert(error2, p)); - } - else { - cb(null, stat); - } - }); - } - }); - }; - /** - * Private - * Returns a BrowserFS object representing the type of a Dropbox.js stat object - */ - DropboxFileSystem.prototype._statType = function _statType (stat) { - return stat.isFile ? FileType.FILE : FileType.DIRECTORY; - }; - /** - * Private - * Returns a BrowserFS object representing a File, created from the data - * returned by calls to the Dropbox API. - */ - DropboxFileSystem.prototype._makeFile = function _makeFile (path$$1, flag, stat, buffer$$1) { - var type = this._statType(stat); - var stats = new Stats(type, stat.size); - return new DropboxFile(this, path$$1, flag, stats, buffer$$1); - }; - /** - * Private - * Delete a file or directory from Dropbox - * isFile should reflect which call was made to remove the it (`unlink` or - * `rmdir`). If this doesn't match what's actually at `path`, an error will be - * returned - */ - DropboxFileSystem.prototype._remove = function _remove (path$$1, cb, isFile) { - var this$1 = this; - - this._client.stat(path$$1, function (error, stat) { - if (error) { - cb(this$1.convert(error, path$$1)); - } - else { - if (stat.isFile && !isFile) { - cb(ApiError.FileError(ErrorCode.ENOTDIR, path$$1)); - } - else if (!stat.isFile && isFile) { - cb(ApiError.FileError(ErrorCode.EISDIR, path$$1)); - } - else { - this$1._client.remove(path$$1, function (error) { - if (error) { - cb(this$1.convert(error, path$$1)); - } - else { - cb(null); - } - }); - } - } - }); - }; - /** - * Delete a file - */ - DropboxFileSystem.prototype.unlink = function unlink (path$$1, cb) { - this._remove(path$$1, cb, true); - }; - /** - * Delete a directory - */ - DropboxFileSystem.prototype.rmdir = function rmdir (path$$1, cb) { - this._remove(path$$1, cb, false); - }; - /** - * Create a directory - */ - DropboxFileSystem.prototype.mkdir = function mkdir (p, mode, cb) { - var this$1 = this; - - // Dropbox.js' client.mkdir() behaves like `mkdir -p`, i.e. it creates a - // directory and all its ancestors if they don't exist. - // Node's fs.mkdir() behaves like `mkdir`, i.e. it throws an error if an attempt - // is made to create a directory without a parent. - // To handle this inconsistency, a check for the existence of `path`'s parent - // must be performed before it is created, and an error thrown if it does - // not exist - var parent = path.dirname(p); - this._client.stat(parent, function (error, stat) { - if (error) { - cb(this$1.convert(error, parent)); - } - else { - this$1._client.mkdir(p, function (error) { - if (error) { - cb(ApiError.FileError(ErrorCode.EEXIST, p)); - } - else { - cb(null); - } - }); - } - }); - }; - /** - * Get the names of the files in a directory - */ - DropboxFileSystem.prototype.readdir = function readdir (path$$1, cb) { - var this$1 = this; - - this._client.readdir(path$$1, function (error, files) { - if (error) { - return cb(this$1.convert(error)); - } - else { - return cb(null, files); - } - }); - }; - /** - * Converts a Dropbox-JS error into a BFS error. - */ - DropboxFileSystem.prototype.convert = function convert (err, path$$1) { - if ( path$$1 === void 0 ) path$$1 = null; - - var errorCode = errorCodeLookup[err.status]; - if (errorCode === undefined) { - errorCode = ErrorCode.EIO; - } - if (!path$$1) { - return new ApiError(errorCode); - } - else { - return ApiError.FileError(errorCode, path$$1); - } - }; - - return DropboxFileSystem; - }(BaseFileSystem)); - - DropboxFileSystem.Name = "Dropbox"; - DropboxFileSystem.Options = { - client: { - type: "object", - description: "An *authenticated* Dropbox client. Must be from the 0.10 JS SDK.", - validator: function (opt, cb) { - if (opt.isAuthenticated && opt.isAuthenticated()) { - cb(); - } - else { - cb(new ApiError(ErrorCode.EINVAL, "'client' option must be an authenticated Dropbox client from the v0.10 JS SDK.")); - } - } - } - }; - - /** - * @hidden - */ - function convertError(e, path$$1) { - if ( path$$1 === void 0 ) path$$1 = ''; - - var errno = e.errno; - var parent = e.node; - var paths = []; - while (parent) { - paths.unshift(parent.name); - if (parent === parent.parent) { - break; - } - parent = parent.parent; - } - return new ApiError(errno, ErrorStrings[errno], paths.length > 0 ? '/' + paths.join('/') : path$$1); - } - var EmscriptenFile = (function (BaseFile$$1) { - function EmscriptenFile(_fs, _FS, _path, _stream) { - BaseFile$$1.call(this); - this._fs = _fs; - this._FS = _FS; - this._path = _path; - this._stream = _stream; - } - - if ( BaseFile$$1 ) EmscriptenFile.__proto__ = BaseFile$$1; - EmscriptenFile.prototype = Object.create( BaseFile$$1 && BaseFile$$1.prototype ); - EmscriptenFile.prototype.constructor = EmscriptenFile; - EmscriptenFile.prototype.getPos = function getPos () { - return undefined; - }; - EmscriptenFile.prototype.close = function close (cb) { - var err = null; - try { - this.closeSync(); - } - catch (e) { - err = e; - } - finally { - cb(err); - } - }; - EmscriptenFile.prototype.closeSync = function closeSync () { - try { - this._FS.close(this._stream); - } - catch (e) { - throw convertError(e, this._path); - } - }; - EmscriptenFile.prototype.stat = function stat (cb) { - try { - cb(null, this.statSync()); - } - catch (e) { - cb(e); - } - }; - EmscriptenFile.prototype.statSync = function statSync () { - try { - return this._fs.statSync(this._path, false); - } - catch (e) { - throw convertError(e, this._path); - } - }; - EmscriptenFile.prototype.truncate = function truncate (len, cb) { - var err = null; - try { - this.truncateSync(len); - } - catch (e) { - err = e; - } - finally { - cb(err); - } - }; - EmscriptenFile.prototype.truncateSync = function truncateSync (len) { - try { - this._FS.ftruncate(this._stream.fd, len); - } - catch (e) { - throw convertError(e, this._path); - } - }; - EmscriptenFile.prototype.write = function write (buffer$$1, offset, length, position, cb) { - try { - cb(null, this.writeSync(buffer$$1, offset, length, position), buffer$$1); - } - catch (e) { - cb(e); - } - }; - EmscriptenFile.prototype.writeSync = function writeSync (buffer$$1, offset, length, position) { - try { - var u8 = buffer2Uint8array(buffer$$1); - // Emscripten is particular about what position is set to. - var emPosition = position === null ? undefined : position; - return this._FS.write(this._stream, u8, offset, length, emPosition); - } - catch (e) { - throw convertError(e, this._path); - } - }; - EmscriptenFile.prototype.read = function read (buffer$$1, offset, length, position, cb) { - try { - cb(null, this.readSync(buffer$$1, offset, length, position), buffer$$1); - } - catch (e) { - cb(e); - } - }; - EmscriptenFile.prototype.readSync = function readSync (buffer$$1, offset, length, position) { - try { - var u8 = buffer2Uint8array(buffer$$1); - // Emscripten is particular about what position is set to. - var emPosition = position === null ? undefined : position; - return this._FS.read(this._stream, u8, offset, length, emPosition); - } - catch (e) { - throw convertError(e, this._path); - } - }; - EmscriptenFile.prototype.sync = function sync (cb) { - // NOP. - cb(); - }; - EmscriptenFile.prototype.syncSync = function syncSync () { - // NOP. - }; - EmscriptenFile.prototype.chown = function chown (uid, gid, cb) { - var err = null; - try { - this.chownSync(uid, gid); - } - catch (e) { - err = e; - } - finally { - cb(err); - } - }; - EmscriptenFile.prototype.chownSync = function chownSync (uid, gid) { - try { - this._FS.fchown(this._stream.fd, uid, gid); - } - catch (e) { - throw convertError(e, this._path); - } - }; - EmscriptenFile.prototype.chmod = function chmod (mode, cb) { - var err = null; - try { - this.chmodSync(mode); - } - catch (e) { - err = e; - } - finally { - cb(err); - } - }; - EmscriptenFile.prototype.chmodSync = function chmodSync (mode) { - try { - this._FS.fchmod(this._stream.fd, mode); - } - catch (e) { - throw convertError(e, this._path); - } - }; - EmscriptenFile.prototype.utimes = function utimes (atime, mtime, cb) { - var err = null; - try { - this.utimesSync(atime, mtime); - } - catch (e) { - err = e; - } - finally { - cb(err); - } - }; - EmscriptenFile.prototype.utimesSync = function utimesSync (atime, mtime) { - this._fs.utimesSync(this._path, atime, mtime); - }; - - return EmscriptenFile; - }(BaseFile)); - /** - * Mounts an Emscripten file system into the BrowserFS file system. - */ - var EmscriptenFileSystem = (function (SynchronousFileSystem$$1) { - function EmscriptenFileSystem(_FS) { - SynchronousFileSystem$$1.call(this); - this._FS = _FS; - } - - if ( SynchronousFileSystem$$1 ) EmscriptenFileSystem.__proto__ = SynchronousFileSystem$$1; - EmscriptenFileSystem.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype ); - EmscriptenFileSystem.prototype.constructor = EmscriptenFileSystem; - /** - * Create an EmscriptenFileSystem instance with the given options. - */ - EmscriptenFileSystem.Create = function Create (opts, cb) { - cb(null, new EmscriptenFileSystem(opts.FS)); - }; - EmscriptenFileSystem.isAvailable = function isAvailable () { return true; }; - EmscriptenFileSystem.prototype.getName = function getName () { return this._FS.DB_NAME(); }; - EmscriptenFileSystem.prototype.isReadOnly = function isReadOnly () { return false; }; - EmscriptenFileSystem.prototype.supportsLinks = function supportsLinks () { return true; }; - EmscriptenFileSystem.prototype.supportsProps = function supportsProps () { return true; }; - EmscriptenFileSystem.prototype.supportsSynch = function supportsSynch () { return true; }; - EmscriptenFileSystem.prototype.renameSync = function renameSync (oldPath, newPath) { - try { - this._FS.rename(oldPath, newPath); - } - catch (e) { - if (e.errno === ErrorCode.ENOENT) { - throw convertError(e, this.existsSync(oldPath) ? newPath : oldPath); - } - else { - throw convertError(e); - } - } - }; - EmscriptenFileSystem.prototype.statSync = function statSync (p, isLstat) { - try { - var stats = isLstat ? this._FS.lstat(p) : this._FS.stat(p); - var itemType = this.modeToFileType(stats.mode); - return new Stats(itemType, stats.size, stats.mode, stats.atime, stats.mtime, stats.ctime); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.openSync = function openSync (p, flag, mode) { - try { - var stream = this._FS.open(p, flag.getFlagString(), mode); - if (this._FS.isDir(stream.node.mode)) { - this._FS.close(stream); - throw ApiError.EISDIR(p); - } - return new EmscriptenFile(this, this._FS, p, stream); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.unlinkSync = function unlinkSync (p) { - try { - this._FS.unlink(p); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.rmdirSync = function rmdirSync (p) { - try { - this._FS.rmdir(p); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.mkdirSync = function mkdirSync (p, mode) { - try { - this._FS.mkdir(p, mode); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.readdirSync = function readdirSync (p) { - try { - // Emscripten returns items for '.' and '..'. Node does not. - return this._FS.readdir(p).filter(function (p) { return p !== '.' && p !== '..'; }); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.truncateSync = function truncateSync (p, len) { - try { - this._FS.truncate(p, len); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.readFileSync = function readFileSync (p, encoding, flag) { - try { - var data = this._FS.readFile(p, { flags: flag.getFlagString() }); - var buff = uint8Array2Buffer(data); - if (encoding) { - return buff.toString(encoding); - } - else { - return buff; - } - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.writeFileSync = function writeFileSync (p, data, encoding, flag, mode) { - try { - if (encoding) { - data = Buffer.from(data, encoding); - } - var u8 = buffer2Uint8array(data); - this._FS.writeFile(p, u8, { flags: flag.getFlagString(), encoding: 'binary' }); - this._FS.chmod(p, mode); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.chmodSync = function chmodSync (p, isLchmod, mode) { - try { - isLchmod ? this._FS.lchmod(p, mode) : this._FS.chmod(p, mode); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.chownSync = function chownSync (p, isLchown, uid, gid) { - try { - isLchown ? this._FS.lchown(p, uid, gid) : this._FS.chown(p, uid, gid); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.symlinkSync = function symlinkSync (srcpath, dstpath, type) { - try { - this._FS.symlink(srcpath, dstpath); - } - catch (e) { - throw convertError(e); - } - }; - EmscriptenFileSystem.prototype.readlinkSync = function readlinkSync (p) { - try { - return this._FS.readlink(p); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.utimesSync = function utimesSync (p, atime, mtime) { - try { - this._FS.utime(p, atime.getTime(), mtime.getTime()); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.modeToFileType = function modeToFileType (mode) { - if (this._FS.isDir(mode)) { - return FileType.DIRECTORY; - } - else if (this._FS.isFile(mode)) { - return FileType.FILE; - } - else if (this._FS.isLink(mode)) { - return FileType.SYMLINK; - } - else { - throw ApiError.EPERM(("Invalid mode: " + mode)); - } - }; - - return EmscriptenFileSystem; - }(SynchronousFileSystem)); - - EmscriptenFileSystem.Name = "EmscriptenFileSystem"; - EmscriptenFileSystem.Options = { - FS: { - type: "object", - description: "The Emscripten file system to use (the `FS` variable)" - } - }; - - /** - * The FolderAdapter file system wraps a file system, and scopes all interactions to a subfolder of that file system. - * - * Example: Given a file system `foo` with folder `bar` and file `bar/baz`... - * - * ```javascript - * BrowserFS.configure({ - * fs: "FolderAdapter", - * options: { - * folder: "bar", - * wrapped: foo - * } - * }, function(e) { - * var fs = BrowserFS.BFSRequire('fs'); - * fs.readdirSync('/'); // ['baz'] - * }); - * ``` - */ - var FolderAdapter = (function (BaseFileSystem$$1) { - function FolderAdapter(folder, wrapped) { - BaseFileSystem$$1.call(this); - this._folder = folder; - this._wrapped = wrapped; - } - - if ( BaseFileSystem$$1 ) FolderAdapter.__proto__ = BaseFileSystem$$1; - FolderAdapter.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - FolderAdapter.prototype.constructor = FolderAdapter; - /** - * Creates a FolderAdapter instance with the given options. - */ - FolderAdapter.Create = function Create (opts, cb) { - cb(null, new FolderAdapter(opts.folder, opts.wrapped)); - }; - FolderAdapter.isAvailable = function isAvailable () { - return true; - }; - /** - * Initialize the file system. Ensures that the wrapped file system - * has the given folder. - */ - FolderAdapter.prototype.initialize = function initialize (cb) { - var this$1 = this; - - this._wrapped.exists(this._folder, function (exists) { - if (exists) { - cb(); - } - else if (this$1._wrapped.isReadOnly()) { - cb(ApiError.ENOENT(this$1._folder)); - } - else { - this$1._wrapped.mkdir(this$1._folder, 0x1ff, cb); - } - }); - }; - FolderAdapter.prototype.getName = function getName () { return this._wrapped.getName(); }; - FolderAdapter.prototype.isReadOnly = function isReadOnly () { return this._wrapped.isReadOnly(); }; - FolderAdapter.prototype.supportsProps = function supportsProps () { return this._wrapped.supportsProps(); }; - FolderAdapter.prototype.supportsSynch = function supportsSynch () { return this._wrapped.supportsSynch(); }; - FolderAdapter.prototype.supportsLinks = function supportsLinks () { return false; }; - - return FolderAdapter; - }(BaseFileSystem)); - - FolderAdapter.Name = "FolderAdapter"; - FolderAdapter.Options = { - folder: { - type: "string", - description: "The folder to use as the root directory" - }, - wrapped: { - type: "object", - description: "The file system to wrap" - } - }; - /** - * @hidden - */ - function translateError(folder, e) { - if (e !== null && typeof e === 'object') { - var err = e; - var p = err.path; - if (p) { - p = '/' + path.relative(folder, p); - err.message = err.message.replace(err.path, p); - err.path = p; - } - } - return e; - } - /** - * @hidden - */ - function wrapCallback(folder, cb) { - if (typeof cb === 'function') { - return function (err) { - if (arguments.length > 0) { - arguments[0] = translateError(folder, err); - } - cb.apply(null, arguments); - }; - } - else { - return cb; - } - } - /** - * @hidden - */ - function wrapFunction(name, wrapFirst, wrapSecond) { - if (name.slice(name.length - 4) !== 'Sync') { - // Async function. Translate error in callback. - return function () { - if (arguments.length > 0) { - if (wrapFirst) { - arguments[0] = path.join(this._folder, arguments[0]); - } - if (wrapSecond) { - arguments[1] = path.join(this._folder, arguments[1]); - } - arguments[arguments.length - 1] = wrapCallback(this._folder, arguments[arguments.length - 1]); - } - return this._wrapped[name].apply(this._wrapped, arguments); - }; - } - else { - // Sync function. Translate error in catch. - return function () { - try { - if (wrapFirst) { - arguments[0] = path.join(this._folder, arguments[0]); - } - if (wrapSecond) { - arguments[1] = path.join(this._folder, arguments[1]); - } - return this._wrapped[name].apply(this._wrapped, arguments); - } - catch (e) { - throw translateError(this._folder, e); - } - }; - } - } - // First argument is a path. - ['diskSpace', 'stat', 'statSync', 'open', 'openSync', 'unlink', 'unlinkSync', - 'rmdir', 'rmdirSync', 'mkdir', 'mkdirSync', 'readdir', 'readdirSync', 'exists', - 'existsSync', 'realpath', 'realpathSync', 'truncate', 'truncateSync', 'readFile', - 'readFileSync', 'writeFile', 'writeFileSync', 'appendFile', 'appendFileSync', - 'chmod', 'chmodSync', 'chown', 'chownSync', 'utimes', 'utimesSync', 'readlink', - 'readlinkSync'].forEach(function (name) { - FolderAdapter.prototype[name] = wrapFunction(name, true, false); - }); - // First and second arguments are paths. - ['rename', 'renameSync', 'link', 'linkSync', 'symlink', 'symlinkSync'].forEach(function (name) { - FolderAdapter.prototype[name] = wrapFunction(name, true, true); - }); - - /** - * @hidden - */ - var toExport; - if (typeof (window) !== 'undefined') { - toExport = window; - } - else if (typeof (self) !== 'undefined') { - toExport = self; - } - else { - toExport = global; - } - var global$1 = toExport; - - /** - * @hidden - */ - function isDirectoryEntry(entry) { - return entry.isDirectory; - } - /** - * @hidden - */ - var _getFS = global$1.webkitRequestFileSystem || global$1.requestFileSystem || null; - /** - * @hidden - */ - function _requestQuota(type, size, success, errorCallback) { - // We cast navigator and window to '' because everything here is - // nonstandard functionality, despite the fact that Chrome has the only - // implementation of the HTML5FS and is likely driving the standardization - // process. Thus, these objects defined off of navigator and window are not - // present in the DefinitelyTyped TypeScript typings for FileSystem. - if (typeof navigator['webkitPersistentStorage'] !== 'undefined') { - switch (type) { - case global$1.PERSISTENT: - navigator.webkitPersistentStorage.requestQuota(size, success, errorCallback); - break; - case global$1.TEMPORARY: - navigator.webkitTemporaryStorage.requestQuota(size, success, errorCallback); - break; - default: - errorCallback(new TypeError(("Invalid storage type: " + type))); - break; - } - } - else { - global$1.webkitStorageInfo.requestQuota(type, size, success, errorCallback); - } - } - /** - * @hidden - */ - function _toArray(list) { - return Array.prototype.slice.call(list || [], 0); - } - /** - * Converts the given DOMError into an appropriate ApiError. - * @url https://developer.mozilla.org/en-US/docs/Web/API/DOMError - * @hidden - */ - function convertError$1(err, p, expectedDir) { - switch (err.name) { - /* The user agent failed to create a file or directory due to the existence of a file or - directory with the same path. */ - case "PathExistsError": - return ApiError.EEXIST(p); - /* The operation failed because it would cause the application to exceed its storage quota. */ - case 'QuotaExceededError': - return ApiError.FileError(ErrorCode.ENOSPC, p); - /* A required file or directory could not be found at the time an operation was processed. */ - case 'NotFoundError': - return ApiError.ENOENT(p); - /* This is a security error code to be used in situations not covered by any other error codes. - - A required file was unsafe for access within a Web application - - Too many calls are being made on filesystem resources */ - case 'SecurityError': - return ApiError.FileError(ErrorCode.EACCES, p); - /* The modification requested was illegal. Examples of invalid modifications include moving a - directory into its own child, moving a file into its parent directory without changing its name, - or copying a directory to a path occupied by a file. */ - case 'InvalidModificationError': - return ApiError.FileError(ErrorCode.EPERM, p); - /* The user has attempted to look up a file or directory, but the Entry found is of the wrong type - [e.g. is a DirectoryEntry when the user requested a FileEntry]. */ - case 'TypeMismatchError': - return ApiError.FileError(expectedDir ? ErrorCode.ENOTDIR : ErrorCode.EISDIR, p); - /* A path or URL supplied to the API was malformed. */ - case "EncodingError": - /* An operation depended on state cached in an interface object, but that state that has changed - since it was read from disk. */ - case "InvalidStateError": - /* The user attempted to write to a file or directory which could not be modified due to the state - of the underlying filesystem. */ - case "NoModificationAllowedError": - default: - return ApiError.FileError(ErrorCode.EINVAL, p); - } - } - // A note about getFile and getDirectory options: - // These methods are called at numerous places in this file, and are passed - // some combination of these two options: - // - create: If true, the entry will be created if it doesn't exist. - // If false, an error will be thrown if it doesn't exist. - // - exclusive: If true, only create the entry if it doesn't already exist, - // and throw an error if it does. - var HTML5FSFile = (function (PreloadFile$$1) { - function HTML5FSFile(fs, entry, path$$1, flag, stat, contents) { - PreloadFile$$1.call(this, fs, path$$1, flag, stat, contents); - this._entry = entry; - } - - if ( PreloadFile$$1 ) HTML5FSFile.__proto__ = PreloadFile$$1; - HTML5FSFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype ); - HTML5FSFile.prototype.constructor = HTML5FSFile; - HTML5FSFile.prototype.sync = function sync (cb) { - var this$1 = this; - - if (!this.isDirty()) { - return cb(); - } - this._entry.createWriter(function (writer) { - var buffer$$1 = this$1.getBuffer(); - var blob = new Blob([buffer2ArrayBuffer(buffer$$1)]); - var length = blob.size; - writer.onwriteend = function (err) { - writer.onwriteend = null; - writer.onerror = null; - writer.truncate(length); - this$1.resetDirty(); - cb(); - }; - writer.onerror = function (err) { - cb(convertError$1(err, this$1.getPath(), false)); - }; - writer.write(blob); - }); - }; - HTML5FSFile.prototype.close = function close (cb) { - this.sync(cb); - }; - - return HTML5FSFile; - }(PreloadFile)); - /** - * A read-write filesystem backed by the HTML5 FileSystem API. - * - * As the HTML5 FileSystem is only implemented in Blink, this interface is - * only available in Chrome. - */ - var HTML5FS = (function (BaseFileSystem$$1) { - function HTML5FS(size, type, deprecateMsg) { - if ( size === void 0 ) size = 5; - if ( type === void 0 ) type = global$1.PERSISTENT; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - BaseFileSystem$$1.call(this); - // Convert MB to bytes. - this.size = 1024 * 1024 * size; - this.type = type; - deprecationMessage(deprecateMsg, HTML5FS.Name, { size: size, type: type }); - } - - if ( BaseFileSystem$$1 ) HTML5FS.__proto__ = BaseFileSystem$$1; - HTML5FS.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - HTML5FS.prototype.constructor = HTML5FS; - /** - * Creates an HTML5FS instance with the given options. - */ - HTML5FS.Create = function Create (opts, cb) { - var fs = new HTML5FS(opts.size, opts.type, false); - fs.allocate(function (e) { return e ? cb(e) : cb(null, fs); }, false); - }; - HTML5FS.isAvailable = function isAvailable () { - return !!_getFS; - }; - HTML5FS.prototype.getName = function getName () { - return HTML5FS.Name; - }; - HTML5FS.prototype.isReadOnly = function isReadOnly () { - return false; - }; - HTML5FS.prototype.supportsSymlinks = function supportsSymlinks () { - return false; - }; - HTML5FS.prototype.supportsProps = function supportsProps () { - return false; - }; - HTML5FS.prototype.supportsSynch = function supportsSynch () { - return false; - }; - /** - * **Deprecated. Please use Create() method instead to create and allocate an HTML5FS.** - * - * Requests a storage quota from the browser to back this FS. - * Must be called before file system can be used! - */ - HTML5FS.prototype.allocate = function allocate (cb, deprecateMsg) { - var this$1 = this; - if ( cb === void 0 ) cb = function () { }; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - if (deprecateMsg) { - console.warn(("[HTML5FS] HTML5FS.allocate() is deprecated and will be removed in the next major release. Please use 'HTML5FS.Create({type: " + (this.type) + ", size: " + (this.size) + "}, cb)' to create and allocate HTML5FS instances.")); - } - var success = function (fs) { - this$1.fs = fs; - cb(); - }; - var error = function (err) { - cb(convertError$1(err, "/", true)); - }; - if (this.type === global$1.PERSISTENT) { - _requestQuota(this.type, this.size, function (granted) { - _getFS(this$1.type, granted, success, error); - }, error); - } - else { - _getFS(this.type, this.size, success, error); - } - }; - /** - * Deletes everything in the FS. Used for testing. - * Karma clears the storage after you quit it but not between runs of the test - * suite, and the tests expect an empty FS every time. - */ - HTML5FS.prototype.empty = function empty (mainCb) { - // Get a list of all entries in the root directory to delete them - this._readdir('/', function (err, entries) { - if (err) { - console.error('Failed to empty FS'); - mainCb(err); - } - else { - // Called when every entry has been operated on - var finished = function (er) { - if (err) { - console.error("Failed to empty FS"); - mainCb(err); - } - else { - mainCb(); - } - }; - // Removes files and recursively removes directories - var deleteEntry = function (entry, cb) { - var succ = function () { - cb(); - }; - var error = function (err) { - cb(convertError$1(err, entry.fullPath, !entry.isDirectory)); - }; - if (isDirectoryEntry(entry)) { - entry.removeRecursively(succ, error); - } - else { - entry.remove(succ, error); - } - }; - // Loop through the entries and remove them, then call the callback - // when they're all finished. - eachLimit(entries, deleteEntry, finished); - } - }); - }; - HTML5FS.prototype.rename = function rename (oldPath, newPath, cb) { - var this$1 = this; - - var semaphore = 2; - var successCount = 0; - var root = this.fs.root; - var currentPath = oldPath; - var error = function (err) { - if (--semaphore <= 0) { - cb(convertError$1(err, currentPath, false)); - } - }; - var success = function (file) { - if (++successCount === 2) { - return cb(new ApiError(ErrorCode.EINVAL, "Something was identified as both a file and a directory. This should never happen.")); - } - // SPECIAL CASE: If newPath === oldPath, and the path exists, then - // this operation trivially succeeds. - if (oldPath === newPath) { - return cb(); - } - // Get the new parent directory. - currentPath = path.dirname(newPath); - root.getDirectory(currentPath, {}, function (parentDir) { - currentPath = path.basename(newPath); - file.moveTo(parentDir, currentPath, function (entry) { cb(); }, function (err) { - // SPECIAL CASE: If oldPath is a directory, and newPath is a - // file, rename should delete the file and perform the move. - if (file.isDirectory) { - currentPath = newPath; - // Unlink only works on files. Try to delete newPath. - this$1.unlink(newPath, function (e) { - if (e) { - // newPath is probably a directory. - error(err); - } - else { - // Recur, now that newPath doesn't exist. - this$1.rename(oldPath, newPath, cb); - } - }); - } - else { - error(err); - } - }); - }, error); - }; - // We don't know if oldPath is a *file* or a *directory*, and there's no - // way to stat items. So launch both requests, see which one succeeds. - root.getFile(oldPath, {}, success, error); - root.getDirectory(oldPath, {}, success, error); - }; - HTML5FS.prototype.stat = function stat (path$$1, isLstat, cb) { - var this$1 = this; - - // Throw an error if the entry doesn't exist, because then there's nothing - // to stat. - var opts = { - create: false - }; - // Called when the path has been successfully loaded as a file. - var loadAsFile = function (entry) { - var fileFromEntry = function (file) { - var stat = new Stats(FileType.FILE, file.size); - cb(null, stat); - }; - entry.file(fileFromEntry, failedToLoad); - }; - // Called when the path has been successfully loaded as a directory. - var loadAsDir = function (dir$$1) { - // Directory entry size can't be determined from the HTML5 FS API, and is - // implementation-dependant anyway, so a dummy value is used. - var size = 4096; - var stat = new Stats(FileType.DIRECTORY, size); - cb(null, stat); - }; - // Called when the path couldn't be opened as a directory or a file. - var failedToLoad = function (err) { - cb(convertError$1(err, path$$1, false /* Unknown / irrelevant */)); - }; - // Called when the path couldn't be opened as a file, but might still be a - // directory. - var failedToLoadAsFile = function () { - this$1.fs.root.getDirectory(path$$1, opts, loadAsDir, failedToLoad); - }; - // No method currently exists to determine whether a path refers to a - // directory or a file, so this implementation tries both and uses the first - // one that succeeds. - this.fs.root.getFile(path$$1, opts, loadAsFile, failedToLoadAsFile); - }; - HTML5FS.prototype.open = function open (p, flags, mode, cb) { - var this$1 = this; - - // XXX: err is a DOMError - var error = function (err) { - if (err.name === 'InvalidModificationError' && flags.isExclusive()) { - cb(ApiError.EEXIST(p)); - } - else { - cb(convertError$1(err, p, false)); - } - }; - this.fs.root.getFile(p, { - create: flags.pathNotExistsAction() === ActionType.CREATE_FILE, - exclusive: flags.isExclusive() - }, function (entry) { - // Try to fetch corresponding file. - entry.file(function (file) { - var reader = new FileReader(); - reader.onloadend = function (event) { - var bfsFile = this$1._makeFile(p, entry, flags, file, reader.result); - cb(null, bfsFile); - }; - reader.onerror = function (ev) { - error(reader.error); - }; - reader.readAsArrayBuffer(file); - }, error); - }, error); - }; - HTML5FS.prototype.unlink = function unlink (path$$1, cb) { - this._remove(path$$1, cb, true); - }; - HTML5FS.prototype.rmdir = function rmdir (path$$1, cb) { - var this$1 = this; - - // Check if directory is non-empty, first. - this.readdir(path$$1, function (e, files) { - if (e) { - cb(e); - } - else if (files.length > 0) { - cb(ApiError.ENOTEMPTY(path$$1)); - } - else { - this$1._remove(path$$1, cb, false); - } - }); - }; - HTML5FS.prototype.mkdir = function mkdir (path$$1, mode, cb) { - // Create the directory, but throw an error if it already exists, as per - // mkdir(1) - var opts = { - create: true, - exclusive: true - }; - var success = function (dir$$1) { - cb(); - }; - var error = function (err) { - cb(convertError$1(err, path$$1, true)); - }; - this.fs.root.getDirectory(path$$1, opts, success, error); - }; - /** - * Map _readdir's list of `FileEntry`s to their names and return that. - */ - HTML5FS.prototype.readdir = function readdir (path$$1, cb) { - this._readdir(path$$1, function (e, entries) { - if (entries) { - var rv = []; - for (var i = 0, list = entries; i < list.length; i += 1) { - var entry = list[i]; - - rv.push(entry.name); - } - cb(null, rv); - } - else { - return cb(e); - } - }); - }; - /** - * Returns a BrowserFS object representing a File. - */ - HTML5FS.prototype._makeFile = function _makeFile (path$$1, entry, flag, stat, data) { - if ( data === void 0 ) data = new ArrayBuffer(0); - - var stats = new Stats(FileType.FILE, stat.size); - var buffer$$1 = arrayBuffer2Buffer(data); - return new HTML5FSFile(this, entry, path$$1, flag, stats, buffer$$1); - }; - /** - * Returns an array of `FileEntry`s. Used internally by empty and readdir. - */ - HTML5FS.prototype._readdir = function _readdir (path$$1, cb) { - var error = function (err) { - cb(convertError$1(err, path$$1, true)); - }; - // Grab the requested directory. - this.fs.root.getDirectory(path$$1, { create: false }, function (dirEntry) { - var reader = dirEntry.createReader(); - var entries = []; - // Call the reader.readEntries() until no more results are returned. - var readEntries = function () { - reader.readEntries((function (results) { - if (results.length) { - entries = entries.concat(_toArray(results)); - readEntries(); - } - else { - cb(null, entries); - } - }), error); - }; - readEntries(); - }, error); - }; - /** - * Delete a file or directory from the file system - * isFile should reflect which call was made to remove the it (`unlink` or - * `rmdir`). If this doesn't match what's actually at `path`, an error will be - * returned - */ - HTML5FS.prototype._remove = function _remove (path$$1, cb, isFile) { - var success = function (entry) { - var succ = function () { - cb(); - }; - var err = function (err) { - cb(convertError$1(err, path$$1, !isFile)); - }; - entry.remove(succ, err); - }; - var error = function (err) { - cb(convertError$1(err, path$$1, !isFile)); - }; - // Deleting the entry, so don't create it - var opts = { - create: false - }; - if (isFile) { - this.fs.root.getFile(path$$1, opts, success, error); - } - else { - this.fs.root.getDirectory(path$$1, opts, success, error); - } - }; - - return HTML5FS; - }(BaseFileSystem)); - - HTML5FS.Name = "HTML5FS"; - HTML5FS.Options = { - size: { - type: "number", - optional: true, - description: "Storage quota to request, in megabytes. Allocated value may be less. Defaults to 5." - }, - type: { - type: "number", - optional: true, - description: "window.PERSISTENT or window.TEMPORARY. Defaults to PERSISTENT." - } - }; - - /** - * Generic inode definition that can easily be serialized. - */ - var Inode = function Inode(id, size, mode, atime, mtime, ctime) { - this.id = id; - this.size = size; - this.mode = mode; - this.atime = atime; - this.mtime = mtime; - this.ctime = ctime; - }; - /** - * Converts the buffer into an Inode. - */ - Inode.fromBuffer = function fromBuffer (buffer$$1) { - if (buffer$$1 === undefined) { - throw new Error("NO"); - } - return new Inode(buffer$$1.toString('ascii', 30), buffer$$1.readUInt32LE(0), buffer$$1.readUInt16LE(4), buffer$$1.readDoubleLE(6), buffer$$1.readDoubleLE(14), buffer$$1.readDoubleLE(22)); - }; - /** - * Handy function that converts the Inode to a Node Stats object. - */ - Inode.prototype.toStats = function toStats () { - return new Stats((this.mode & 0xF000) === FileType.DIRECTORY ? FileType.DIRECTORY : FileType.FILE, this.size, this.mode, new Date(this.atime), new Date(this.mtime), new Date(this.ctime)); - }; - /** - * Get the size of this Inode, in bytes. - */ - Inode.prototype.getSize = function getSize () { - // ASSUMPTION: ID is ASCII (1 byte per char). - return 30 + this.id.length; - }; - /** - * Writes the inode into the start of the buffer. - */ - Inode.prototype.toBuffer = function toBuffer (buff) { - if ( buff === void 0 ) buff = Buffer.alloc(this.getSize()); - - buff.writeUInt32LE(this.size, 0); - buff.writeUInt16LE(this.mode, 4); - buff.writeDoubleLE(this.atime, 6); - buff.writeDoubleLE(this.mtime, 14); - buff.writeDoubleLE(this.ctime, 22); - buff.write(this.id, 30, this.id.length, 'ascii'); - return buff; - }; - /** - * Updates the Inode using information from the stats object. Used by file - * systems at sync time, e.g.: - * - Program opens file and gets a File object. - * - Program mutates file. File object is responsible for maintaining - * metadata changes locally -- typically in a Stats object. - * - Program closes file. File object's metadata changes are synced with the - * file system. - * @return True if any changes have occurred. - */ - Inode.prototype.update = function update (stats) { - var hasChanged = false; - if (this.size !== stats.size) { - this.size = stats.size; - hasChanged = true; - } - if (this.mode !== stats.mode) { - this.mode = stats.mode; - hasChanged = true; - } - var atimeMs = stats.atime.getTime(); - if (this.atime !== atimeMs) { - this.atime = atimeMs; - hasChanged = true; - } - var mtimeMs = stats.mtime.getTime(); - if (this.mtime !== mtimeMs) { - this.mtime = mtimeMs; - hasChanged = true; - } - var ctimeMs = stats.ctime.getTime(); - if (this.ctime !== ctimeMs) { - this.ctime = ctimeMs; - hasChanged = true; - } - return hasChanged; - }; - // XXX: Copied from Stats. Should reconcile these two into something more - // compact. - /** - * @return [Boolean] True if this item is a file. - */ - Inode.prototype.isFile = function isFile () { - return (this.mode & 0xF000) === FileType.FILE; - }; - /** - * @return [Boolean] True if this item is a directory. - */ - Inode.prototype.isDirectory = function isDirectory () { - return (this.mode & 0xF000) === FileType.DIRECTORY; - }; - - /** - * @hidden - */ - var ROOT_NODE_ID = "/"; - /** - * @hidden - */ - var emptyDirNode = null; - /** - * Returns an empty directory node. - * @hidden - */ - function getEmptyDirNode() { - if (emptyDirNode) { - return emptyDirNode; - } - return emptyDirNode = Buffer.from("{}"); - } - /** - * Generates a random ID. - * @hidden - */ - function GenerateRandomID() { - // From http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { - var r = Math.random() * 16 | 0; - var v = c === 'x' ? r : (r & 0x3 | 0x8); - return v.toString(16); - }); - } - /** - * Helper function. Checks if 'e' is defined. If so, it triggers the callback - * with 'e' and returns false. Otherwise, returns true. - * @hidden - */ - function noError(e, cb) { - if (e) { - cb(e); - return false; - } - return true; - } - /** - * Helper function. Checks if 'e' is defined. If so, it aborts the transaction, - * triggers the callback with 'e', and returns false. Otherwise, returns true. - * @hidden - */ - function noErrorTx(e, tx, cb) { - if (e) { - tx.abort(function () { - cb(e); - }); - return false; - } - return true; - } - /** - * A simple RW transaction for simple synchronous key-value stores. - */ - var SimpleSyncRWTransaction = function SimpleSyncRWTransaction(store) { - this.store = store; - /** - * Stores data in the keys we modify prior to modifying them. - * Allows us to roll back commits. - */ - this.originalData = {}; - /** - * List of keys modified in this transaction, if any. - */ - this.modifiedKeys = []; - }; - SimpleSyncRWTransaction.prototype.get = function get (key) { - var val = this.store.get(key); - this.stashOldValue(key, val); - return val; - }; - SimpleSyncRWTransaction.prototype.put = function put (key, data, overwrite) { - this.markModified(key); - return this.store.put(key, data, overwrite); - }; - SimpleSyncRWTransaction.prototype.del = function del (key) { - this.markModified(key); - this.store.del(key); - }; - SimpleSyncRWTransaction.prototype.commit = function commit () { }; - SimpleSyncRWTransaction.prototype.abort = function abort () { - var this$1 = this; - - // Rollback old values. - for (var i = 0, list = this$1.modifiedKeys; i < list.length; i += 1) { - var key = list[i]; - - var value = this$1.originalData[key]; - if (!value) { - // Key didn't exist. - this$1.store.del(key); - } - else { - // Key existed. Store old value. - this$1.store.put(key, value, true); - } - } - }; - /** - * Stashes given key value pair into `originalData` if it doesn't already - * exist. Allows us to stash values the program is requesting anyway to - * prevent needless `get` requests if the program modifies the data later - * on during the transaction. - */ - SimpleSyncRWTransaction.prototype.stashOldValue = function stashOldValue (key, value) { - // Keep only the earliest value in the transaction. - if (!this.originalData.hasOwnProperty(key)) { - this.originalData[key] = value; - } - }; - /** - * Marks the given key as modified, and stashes its value if it has not been - * stashed already. - */ - SimpleSyncRWTransaction.prototype.markModified = function markModified (key) { - if (this.modifiedKeys.indexOf(key) === -1) { - this.modifiedKeys.push(key); - if (!this.originalData.hasOwnProperty(key)) { - this.originalData[key] = this.store.get(key); - } - } - }; - var SyncKeyValueFile = (function (PreloadFile$$1) { - function SyncKeyValueFile(_fs, _path, _flag, _stat, contents) { - PreloadFile$$1.call(this, _fs, _path, _flag, _stat, contents); - } - - if ( PreloadFile$$1 ) SyncKeyValueFile.__proto__ = PreloadFile$$1; - SyncKeyValueFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype ); - SyncKeyValueFile.prototype.constructor = SyncKeyValueFile; - SyncKeyValueFile.prototype.syncSync = function syncSync () { - if (this.isDirty()) { - this._fs._syncSync(this.getPath(), this.getBuffer(), this.getStats()); - this.resetDirty(); - } - }; - SyncKeyValueFile.prototype.closeSync = function closeSync () { - this.syncSync(); - }; - - return SyncKeyValueFile; - }(PreloadFile)); - /** - * A "Synchronous key-value file system". Stores data to/retrieves data from an - * underlying key-value store. - * - * We use a unique ID for each node in the file system. The root node has a - * fixed ID. - * @todo Introduce Node ID caching. - * @todo Check modes. - */ - var SyncKeyValueFileSystem = (function (SynchronousFileSystem$$1) { - function SyncKeyValueFileSystem(options) { - SynchronousFileSystem$$1.call(this); - this.store = options.store; - // INVARIANT: Ensure that the root exists. - this.makeRootDirectory(); - } - - if ( SynchronousFileSystem$$1 ) SyncKeyValueFileSystem.__proto__ = SynchronousFileSystem$$1; - SyncKeyValueFileSystem.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype ); - SyncKeyValueFileSystem.prototype.constructor = SyncKeyValueFileSystem; - SyncKeyValueFileSystem.isAvailable = function isAvailable () { return true; }; - - SyncKeyValueFileSystem.prototype.getName = function getName () { return this.store.name(); }; - SyncKeyValueFileSystem.prototype.isReadOnly = function isReadOnly () { return false; }; - SyncKeyValueFileSystem.prototype.supportsSymlinks = function supportsSymlinks () { return false; }; - SyncKeyValueFileSystem.prototype.supportsProps = function supportsProps () { return false; }; - SyncKeyValueFileSystem.prototype.supportsSynch = function supportsSynch () { return true; }; - /** - * Delete all contents stored in the file system. - */ - SyncKeyValueFileSystem.prototype.empty = function empty () { - this.store.clear(); - // INVARIANT: Root always exists. - this.makeRootDirectory(); - }; - SyncKeyValueFileSystem.prototype.renameSync = function renameSync (oldPath, newPath) { - var tx = this.store.beginTransaction('readwrite'), oldParent = path.dirname(oldPath), oldName = path.basename(oldPath), newParent = path.dirname(newPath), newName = path.basename(newPath), - // Remove oldPath from parent's directory listing. - oldDirNode = this.findINode(tx, oldParent), oldDirList = this.getDirListing(tx, oldParent, oldDirNode); - if (!oldDirList[oldName]) { - throw ApiError.ENOENT(oldPath); - } - var nodeId = oldDirList[oldName]; - delete oldDirList[oldName]; - // Invariant: Can't move a folder inside itself. - // This funny little hack ensures that the check passes only if oldPath - // is a subpath of newParent. We append '/' to avoid matching folders that - // are a substring of the bottom-most folder in the path. - if ((newParent + '/').indexOf(oldPath + '/') === 0) { - throw new ApiError(ErrorCode.EBUSY, oldParent); - } - // Add newPath to parent's directory listing. - var newDirNode, newDirList; - if (newParent === oldParent) { - // Prevent us from re-grabbing the same directory listing, which still - // contains oldName. - newDirNode = oldDirNode; - newDirList = oldDirList; - } - else { - newDirNode = this.findINode(tx, newParent); - newDirList = this.getDirListing(tx, newParent, newDirNode); - } - if (newDirList[newName]) { - // If it's a file, delete it. - var newNameNode = this.getINode(tx, newPath, newDirList[newName]); - if (newNameNode.isFile()) { - try { - tx.del(newNameNode.id); - tx.del(newDirList[newName]); - } - catch (e) { - tx.abort(); - throw e; - } - } - else { - // If it's a directory, throw a permissions error. - throw ApiError.EPERM(newPath); - } - } - newDirList[newName] = nodeId; - // Commit the two changed directory listings. - try { - tx.put(oldDirNode.id, Buffer.from(JSON.stringify(oldDirList)), true); - tx.put(newDirNode.id, Buffer.from(JSON.stringify(newDirList)), true); - } - catch (e) { - tx.abort(); - throw e; - } - tx.commit(); - }; - SyncKeyValueFileSystem.prototype.statSync = function statSync (p, isLstat) { - // Get the inode to the item, convert it into a Stats object. - return this.findINode(this.store.beginTransaction('readonly'), p).toStats(); - }; - SyncKeyValueFileSystem.prototype.createFileSync = function createFileSync (p, flag, mode) { - var tx = this.store.beginTransaction('readwrite'), data = emptyBuffer(), newFile = this.commitNewFile(tx, p, FileType.FILE, mode, data); - // Open the file. - return new SyncKeyValueFile(this, p, flag, newFile.toStats(), data); - }; - SyncKeyValueFileSystem.prototype.openFileSync = function openFileSync (p, flag) { - var tx = this.store.beginTransaction('readonly'), node = this.findINode(tx, p), data = tx.get(node.id); - if (data === undefined) { - throw ApiError.ENOENT(p); - } - return new SyncKeyValueFile(this, p, flag, node.toStats(), data); - }; - SyncKeyValueFileSystem.prototype.unlinkSync = function unlinkSync (p) { - this.removeEntry(p, false); - }; - SyncKeyValueFileSystem.prototype.rmdirSync = function rmdirSync (p) { - // Check first if directory is empty. - if (this.readdirSync(p).length > 0) { - throw ApiError.ENOTEMPTY(p); - } - else { - this.removeEntry(p, true); - } - }; - SyncKeyValueFileSystem.prototype.mkdirSync = function mkdirSync (p, mode) { - var tx = this.store.beginTransaction('readwrite'), data = Buffer.from('{}'); - this.commitNewFile(tx, p, FileType.DIRECTORY, mode, data); - }; - SyncKeyValueFileSystem.prototype.readdirSync = function readdirSync (p) { - var tx = this.store.beginTransaction('readonly'); - return Object.keys(this.getDirListing(tx, p, this.findINode(tx, p))); - }; - SyncKeyValueFileSystem.prototype._syncSync = function _syncSync (p, data, stats) { - // @todo Ensure mtime updates properly, and use that to determine if a data - // update is required. - var tx = this.store.beginTransaction('readwrite'), - // We use the _findInode helper because we actually need the INode id. - fileInodeId = this._findINode(tx, path.dirname(p), path.basename(p)), fileInode = this.getINode(tx, p, fileInodeId), inodeChanged = fileInode.update(stats); - try { - // Sync data. - tx.put(fileInode.id, data, true); - // Sync metadata. - if (inodeChanged) { - tx.put(fileInodeId, fileInode.toBuffer(), true); - } - } - catch (e) { - tx.abort(); - throw e; - } - tx.commit(); - }; - /** - * Checks if the root directory exists. Creates it if it doesn't. - */ - SyncKeyValueFileSystem.prototype.makeRootDirectory = function makeRootDirectory () { - var tx = this.store.beginTransaction('readwrite'); - if (tx.get(ROOT_NODE_ID) === undefined) { - // Create new inode. - var currTime = (new Date()).getTime(), - // Mode 0666 - dirInode = new Inode(GenerateRandomID(), 4096, 511 | FileType.DIRECTORY, currTime, currTime, currTime); - // If the root doesn't exist, the first random ID shouldn't exist, - // either. - tx.put(dirInode.id, getEmptyDirNode(), false); - tx.put(ROOT_NODE_ID, dirInode.toBuffer(), false); - tx.commit(); - } - }; - /** - * Helper function for findINode. - * @param parent The parent directory of the file we are attempting to find. - * @param filename The filename of the inode we are attempting to find, minus - * the parent. - * @return string The ID of the file's inode in the file system. - */ - SyncKeyValueFileSystem.prototype._findINode = function _findINode (tx, parent, filename) { - var this$1 = this; - - var readDirectory = function (inode) { - // Get the root's directory listing. - var dirList = this$1.getDirListing(tx, parent, inode); - // Get the file's ID. - if (dirList[filename]) { - return dirList[filename]; - } - else { - throw ApiError.ENOENT(path.resolve(parent, filename)); - } - }; - if (parent === '/') { - if (filename === '') { - // BASE CASE #1: Return the root's ID. - return ROOT_NODE_ID; - } - else { - // BASE CASE #2: Find the item in the root ndoe. - return readDirectory(this.getINode(tx, parent, ROOT_NODE_ID)); - } - } - else { - return readDirectory(this.getINode(tx, parent + path.sep + filename, this._findINode(tx, path.dirname(parent), path.basename(parent)))); - } - }; - /** - * Finds the Inode of the given path. - * @param p The path to look up. - * @return The Inode of the path p. - * @todo memoize/cache - */ - SyncKeyValueFileSystem.prototype.findINode = function findINode (tx, p) { - return this.getINode(tx, p, this._findINode(tx, path.dirname(p), path.basename(p))); - }; - /** - * Given the ID of a node, retrieves the corresponding Inode. - * @param tx The transaction to use. - * @param p The corresponding path to the file (used for error messages). - * @param id The ID to look up. - */ - SyncKeyValueFileSystem.prototype.getINode = function getINode (tx, p, id) { - var inode = tx.get(id); - if (inode === undefined) { - throw ApiError.ENOENT(p); - } - return Inode.fromBuffer(inode); - }; - /** - * Given the Inode of a directory, retrieves the corresponding directory - * listing. - */ - SyncKeyValueFileSystem.prototype.getDirListing = function getDirListing (tx, p, inode) { - if (!inode.isDirectory()) { - throw ApiError.ENOTDIR(p); - } - var data = tx.get(inode.id); - if (data === undefined) { - throw ApiError.ENOENT(p); - } - return JSON.parse(data.toString()); - }; - /** - * Creates a new node under a random ID. Retries 5 times before giving up in - * the exceedingly unlikely chance that we try to reuse a random GUID. - * @return The GUID that the data was stored under. - */ - SyncKeyValueFileSystem.prototype.addNewNode = function addNewNode (tx, data) { - var retries = 0; - var currId; - while (retries < 5) { - try { - currId = GenerateRandomID(); - tx.put(currId, data, false); - return currId; - } - catch (e) { - // Ignore and reroll. - } - } - throw new ApiError(ErrorCode.EIO, 'Unable to commit data to key-value store.'); - }; - /** - * Commits a new file (well, a FILE or a DIRECTORY) to the file system with - * the given mode. - * Note: This will commit the transaction. - * @param p The path to the new file. - * @param type The type of the new file. - * @param mode The mode to create the new file with. - * @param data The data to store at the file's data node. - * @return The Inode for the new file. - */ - SyncKeyValueFileSystem.prototype.commitNewFile = function commitNewFile (tx, p, type, mode, data) { - var parentDir = path.dirname(p), fname = path.basename(p), parentNode = this.findINode(tx, parentDir), dirListing = this.getDirListing(tx, parentDir, parentNode), currTime = (new Date()).getTime(); - // Invariant: The root always exists. - // If we don't check this prior to taking steps below, we will create a - // file with name '' in root should p == '/'. - if (p === '/') { - throw ApiError.EEXIST(p); - } - // Check if file already exists. - if (dirListing[fname]) { - throw ApiError.EEXIST(p); - } - var fileNode; - try { - // Commit data. - var dataId = this.addNewNode(tx, data); - fileNode = new Inode(dataId, data.length, mode | type, currTime, currTime, currTime); - // Commit file node. - var fileNodeId = this.addNewNode(tx, fileNode.toBuffer()); - // Update and commit parent directory listing. - dirListing[fname] = fileNodeId; - tx.put(parentNode.id, Buffer.from(JSON.stringify(dirListing)), true); - } - catch (e) { - tx.abort(); - throw e; - } - tx.commit(); - return fileNode; - }; - /** - * Remove all traces of the given path from the file system. - * @param p The path to remove from the file system. - * @param isDir Does the path belong to a directory, or a file? - * @todo Update mtime. - */ - SyncKeyValueFileSystem.prototype.removeEntry = function removeEntry (p, isDir) { - var tx = this.store.beginTransaction('readwrite'), parent = path.dirname(p), parentNode = this.findINode(tx, parent), parentListing = this.getDirListing(tx, parent, parentNode), fileName = path.basename(p); - if (!parentListing[fileName]) { - throw ApiError.ENOENT(p); - } - // Remove from directory listing of parent. - var fileNodeId = parentListing[fileName]; - delete parentListing[fileName]; - // Get file inode. - var fileNode = this.getINode(tx, p, fileNodeId); - if (!isDir && fileNode.isDirectory()) { - throw ApiError.EISDIR(p); - } - else if (isDir && !fileNode.isDirectory()) { - throw ApiError.ENOTDIR(p); - } - try { - // Delete data. - tx.del(fileNode.id); - // Delete node. - tx.del(fileNodeId); - // Update directory listing. - tx.put(parentNode.id, Buffer.from(JSON.stringify(parentListing)), true); - } - catch (e) { - tx.abort(); - throw e; - } - // Success. - tx.commit(); - }; - - return SyncKeyValueFileSystem; - }(SynchronousFileSystem)); - var AsyncKeyValueFile = (function (PreloadFile$$1) { - function AsyncKeyValueFile(_fs, _path, _flag, _stat, contents) { - PreloadFile$$1.call(this, _fs, _path, _flag, _stat, contents); - } - - if ( PreloadFile$$1 ) AsyncKeyValueFile.__proto__ = PreloadFile$$1; - AsyncKeyValueFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype ); - AsyncKeyValueFile.prototype.constructor = AsyncKeyValueFile; - AsyncKeyValueFile.prototype.sync = function sync (cb) { - var this$1 = this; - - if (this.isDirty()) { - this._fs._sync(this.getPath(), this.getBuffer(), this.getStats(), function (e) { - if (!e) { - this$1.resetDirty(); - } - cb(e); - }); - } - else { - cb(); - } - }; - AsyncKeyValueFile.prototype.close = function close (cb) { - this.sync(cb); - }; - - return AsyncKeyValueFile; - }(PreloadFile)); - /** - * An "Asynchronous key-value file system". Stores data to/retrieves data from - * an underlying asynchronous key-value store. - */ - var AsyncKeyValueFileSystem = (function (BaseFileSystem$$1) { - function AsyncKeyValueFileSystem () { - BaseFileSystem$$1.apply(this, arguments); - } - - if ( BaseFileSystem$$1 ) AsyncKeyValueFileSystem.__proto__ = BaseFileSystem$$1; - AsyncKeyValueFileSystem.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - AsyncKeyValueFileSystem.prototype.constructor = AsyncKeyValueFileSystem; - - AsyncKeyValueFileSystem.isAvailable = function isAvailable () { return true; }; - /** - * Initializes the file system. Typically called by subclasses' async - * constructors. - */ - AsyncKeyValueFileSystem.prototype.init = function init (store, cb) { - this.store = store; - // INVARIANT: Ensure that the root exists. - this.makeRootDirectory(cb); - }; - AsyncKeyValueFileSystem.prototype.getName = function getName () { return this.store.name(); }; - AsyncKeyValueFileSystem.prototype.isReadOnly = function isReadOnly () { return false; }; - AsyncKeyValueFileSystem.prototype.supportsSymlinks = function supportsSymlinks () { return false; }; - AsyncKeyValueFileSystem.prototype.supportsProps = function supportsProps () { return false; }; - AsyncKeyValueFileSystem.prototype.supportsSynch = function supportsSynch () { return false; }; - /** - * Delete all contents stored in the file system. - */ - AsyncKeyValueFileSystem.prototype.empty = function empty (cb) { - var this$1 = this; - - this.store.clear(function (e) { - if (noError(e, cb)) { - // INVARIANT: Root always exists. - this$1.makeRootDirectory(cb); - } - }); - }; - AsyncKeyValueFileSystem.prototype.rename = function rename (oldPath, newPath, cb) { - var this$1 = this; - - var tx = this.store.beginTransaction('readwrite'); - var oldParent = path.dirname(oldPath), oldName = path.basename(oldPath); - var newParent = path.dirname(newPath), newName = path.basename(newPath); - var inodes = {}; - var lists = {}; - var errorOccurred = false; - // Invariant: Can't move a folder inside itself. - // This funny little hack ensures that the check passes only if oldPath - // is a subpath of newParent. We append '/' to avoid matching folders that - // are a substring of the bottom-most folder in the path. - if ((newParent + '/').indexOf(oldPath + '/') === 0) { - return cb(new ApiError(ErrorCode.EBUSY, oldParent)); - } - /** - * Responsible for Phase 2 of the rename operation: Modifying and - * committing the directory listings. Called once we have successfully - * retrieved both the old and new parent's inodes and listings. - */ - var theOleSwitcharoo = function () { - // Sanity check: Ensure both paths are present, and no error has occurred. - if (errorOccurred || !lists.hasOwnProperty(oldParent) || !lists.hasOwnProperty(newParent)) { - return; - } - var oldParentList = lists[oldParent], oldParentINode = inodes[oldParent], newParentList = lists[newParent], newParentINode = inodes[newParent]; - // Delete file from old parent. - if (!oldParentList[oldName]) { - cb(ApiError.ENOENT(oldPath)); - } - else { - var fileId = oldParentList[oldName]; - delete oldParentList[oldName]; - // Finishes off the renaming process by adding the file to the new - // parent. - var completeRename = function () { - newParentList[newName] = fileId; - // Commit old parent's list. - tx.put(oldParentINode.id, Buffer.from(JSON.stringify(oldParentList)), true, function (e) { - if (noErrorTx(e, tx, cb)) { - if (oldParent === newParent) { - // DONE! - tx.commit(cb); - } - else { - // Commit new parent's list. - tx.put(newParentINode.id, Buffer.from(JSON.stringify(newParentList)), true, function (e) { - if (noErrorTx(e, tx, cb)) { - tx.commit(cb); - } - }); - } - } - }); - }; - if (newParentList[newName]) { - // 'newPath' already exists. Check if it's a file or a directory, and - // act accordingly. - this$1.getINode(tx, newPath, newParentList[newName], function (e, inode) { - if (noErrorTx(e, tx, cb)) { - if (inode.isFile()) { - // Delete the file and continue. - tx.del(inode.id, function (e) { - if (noErrorTx(e, tx, cb)) { - tx.del(newParentList[newName], function (e) { - if (noErrorTx(e, tx, cb)) { - completeRename(); - } - }); - } - }); - } - else { - // Can't overwrite a directory using rename. - tx.abort(function (e) { - cb(ApiError.EPERM(newPath)); - }); - } - } - }); - } - else { - completeRename(); - } - } - }; - /** - * Grabs a path's inode and directory listing, and shoves it into the - * inodes and lists hashes. - */ - var processInodeAndListings = function (p) { - this$1.findINodeAndDirListing(tx, p, function (e, node, dirList) { - if (e) { - if (!errorOccurred) { - errorOccurred = true; - tx.abort(function () { - cb(e); - }); - } - // If error has occurred already, just stop here. - } - else { - inodes[p] = node; - lists[p] = dirList; - theOleSwitcharoo(); - } - }); - }; - processInodeAndListings(oldParent); - if (oldParent !== newParent) { - processInodeAndListings(newParent); - } - }; - AsyncKeyValueFileSystem.prototype.stat = function stat (p, isLstat, cb) { - var tx = this.store.beginTransaction('readonly'); - this.findINode(tx, p, function (e, inode) { - if (noError(e, cb)) { - cb(null, inode.toStats()); - } - }); - }; - AsyncKeyValueFileSystem.prototype.createFile = function createFile (p, flag, mode, cb) { - var this$1 = this; - - var tx = this.store.beginTransaction('readwrite'), data = emptyBuffer(); - this.commitNewFile(tx, p, FileType.FILE, mode, data, function (e, newFile) { - if (noError(e, cb)) { - cb(null, new AsyncKeyValueFile(this$1, p, flag, newFile.toStats(), data)); - } - }); - }; - AsyncKeyValueFileSystem.prototype.openFile = function openFile (p, flag, cb) { - var this$1 = this; - - var tx = this.store.beginTransaction('readonly'); - // Step 1: Grab the file's inode. - this.findINode(tx, p, function (e, inode) { - if (noError(e, cb)) { - // Step 2: Grab the file's data. - tx.get(inode.id, function (e, data) { - if (noError(e, cb)) { - if (data === undefined) { - cb(ApiError.ENOENT(p)); - } - else { - cb(null, new AsyncKeyValueFile(this$1, p, flag, inode.toStats(), data)); - } - } - }); - } - }); - }; - AsyncKeyValueFileSystem.prototype.unlink = function unlink (p, cb) { - this.removeEntry(p, false, cb); - }; - AsyncKeyValueFileSystem.prototype.rmdir = function rmdir (p, cb) { - var this$1 = this; - - // Check first if directory is empty. - this.readdir(p, function (err, files) { - if (err) { - cb(err); - } - else if (files.length > 0) { - cb(ApiError.ENOTEMPTY(p)); - } - else { - this$1.removeEntry(p, true, cb); - } - }); - }; - AsyncKeyValueFileSystem.prototype.mkdir = function mkdir (p, mode, cb) { - var tx = this.store.beginTransaction('readwrite'), data = Buffer.from('{}'); - this.commitNewFile(tx, p, FileType.DIRECTORY, mode, data, cb); - }; - AsyncKeyValueFileSystem.prototype.readdir = function readdir (p, cb) { - var this$1 = this; - - var tx = this.store.beginTransaction('readonly'); - this.findINode(tx, p, function (e, inode) { - if (noError(e, cb)) { - this$1.getDirListing(tx, p, inode, function (e, dirListing) { - if (noError(e, cb)) { - cb(null, Object.keys(dirListing)); - } - }); - } - }); - }; - AsyncKeyValueFileSystem.prototype._sync = function _sync (p, data, stats, cb) { - var this$1 = this; - - // @todo Ensure mtime updates properly, and use that to determine if a data - // update is required. - var tx = this.store.beginTransaction('readwrite'); - // Step 1: Get the file node's ID. - this._findINode(tx, path.dirname(p), path.basename(p), function (e, fileInodeId) { - if (noErrorTx(e, tx, cb)) { - // Step 2: Get the file inode. - this$1.getINode(tx, p, fileInodeId, function (e, fileInode) { - if (noErrorTx(e, tx, cb)) { - var inodeChanged = fileInode.update(stats); - // Step 3: Sync the data. - tx.put(fileInode.id, data, true, function (e) { - if (noErrorTx(e, tx, cb)) { - // Step 4: Sync the metadata (if it changed)! - if (inodeChanged) { - tx.put(fileInodeId, fileInode.toBuffer(), true, function (e) { - if (noErrorTx(e, tx, cb)) { - tx.commit(cb); - } - }); - } - else { - // No need to sync metadata; return. - tx.commit(cb); - } - } - }); - } - }); - } - }); - }; - /** - * Checks if the root directory exists. Creates it if it doesn't. - */ - AsyncKeyValueFileSystem.prototype.makeRootDirectory = function makeRootDirectory (cb) { - var tx = this.store.beginTransaction('readwrite'); - tx.get(ROOT_NODE_ID, function (e, data) { - if (e || data === undefined) { - // Create new inode. - var currTime = (new Date()).getTime(), - // Mode 0666 - dirInode = new Inode(GenerateRandomID(), 4096, 511 | FileType.DIRECTORY, currTime, currTime, currTime); - // If the root doesn't exist, the first random ID shouldn't exist, - // either. - tx.put(dirInode.id, getEmptyDirNode(), false, function (e) { - if (noErrorTx(e, tx, cb)) { - tx.put(ROOT_NODE_ID, dirInode.toBuffer(), false, function (e) { - if (e) { - tx.abort(function () { cb(e); }); - } - else { - tx.commit(cb); - } - }); - } - }); - } - else { - // We're good. - tx.commit(cb); - } - }); - }; - /** - * Helper function for findINode. - * @param parent The parent directory of the file we are attempting to find. - * @param filename The filename of the inode we are attempting to find, minus - * the parent. - * @param cb Passed an error or the ID of the file's inode in the file system. - */ - AsyncKeyValueFileSystem.prototype._findINode = function _findINode (tx, parent, filename, cb) { - var this$1 = this; - - var handleDirectoryListings = function (e, inode, dirList) { - if (e) { - cb(e); - } - else if (dirList[filename]) { - cb(null, dirList[filename]); - } - else { - cb(ApiError.ENOENT(path.resolve(parent, filename))); - } - }; - if (parent === '/') { - if (filename === '') { - // BASE CASE #1: Return the root's ID. - cb(null, ROOT_NODE_ID); - } - else { - // BASE CASE #2: Find the item in the root node. - this.getINode(tx, parent, ROOT_NODE_ID, function (e, inode) { - if (noError(e, cb)) { - this$1.getDirListing(tx, parent, inode, function (e, dirList) { - // handle_directory_listings will handle e for us. - handleDirectoryListings(e, inode, dirList); - }); - } - }); - } - } - else { - // Get the parent directory's INode, and find the file in its directory - // listing. - this.findINodeAndDirListing(tx, parent, handleDirectoryListings); - } - }; - /** - * Finds the Inode of the given path. - * @param p The path to look up. - * @param cb Passed an error or the Inode of the path p. - * @todo memoize/cache - */ - AsyncKeyValueFileSystem.prototype.findINode = function findINode (tx, p, cb) { - var this$1 = this; - - this._findINode(tx, path.dirname(p), path.basename(p), function (e, id) { - if (noError(e, cb)) { - this$1.getINode(tx, p, id, cb); - } - }); - }; - /** - * Given the ID of a node, retrieves the corresponding Inode. - * @param tx The transaction to use. - * @param p The corresponding path to the file (used for error messages). - * @param id The ID to look up. - * @param cb Passed an error or the inode under the given id. - */ - AsyncKeyValueFileSystem.prototype.getINode = function getINode (tx, p, id, cb) { - tx.get(id, function (e, data) { - if (noError(e, cb)) { - if (data === undefined) { - cb(ApiError.ENOENT(p)); - } - else { - cb(null, Inode.fromBuffer(data)); - } - } - }); - }; - /** - * Given the Inode of a directory, retrieves the corresponding directory - * listing. - */ - AsyncKeyValueFileSystem.prototype.getDirListing = function getDirListing (tx, p, inode, cb) { - if (!inode.isDirectory()) { - cb(ApiError.ENOTDIR(p)); - } - else { - tx.get(inode.id, function (e, data) { - if (noError(e, cb)) { - try { - cb(null, JSON.parse(data.toString())); - } - catch (e) { - // Occurs when data is undefined, or corresponds to something other - // than a directory listing. The latter should never occur unless - // the file system is corrupted. - cb(ApiError.ENOENT(p)); - } - } - }); - } - }; - /** - * Given a path to a directory, retrieves the corresponding INode and - * directory listing. - */ - AsyncKeyValueFileSystem.prototype.findINodeAndDirListing = function findINodeAndDirListing (tx, p, cb) { - var this$1 = this; - - this.findINode(tx, p, function (e, inode) { - if (noError(e, cb)) { - this$1.getDirListing(tx, p, inode, function (e, listing) { - if (noError(e, cb)) { - cb(null, inode, listing); - } - }); - } - }); - }; - /** - * Adds a new node under a random ID. Retries 5 times before giving up in - * the exceedingly unlikely chance that we try to reuse a random GUID. - * @param cb Passed an error or the GUID that the data was stored under. - */ - AsyncKeyValueFileSystem.prototype.addNewNode = function addNewNode (tx, data, cb) { - var retries = 0, currId; - var reroll = function () { - if (++retries === 5) { - // Max retries hit. Return with an error. - cb(new ApiError(ErrorCode.EIO, 'Unable to commit data to key-value store.')); - } - else { - // Try again. - currId = GenerateRandomID(); - tx.put(currId, data, false, function (e, committed) { - if (e || !committed) { - reroll(); - } - else { - // Successfully stored under 'currId'. - cb(null, currId); - } - }); - } - }; - reroll(); - }; - /** - * Commits a new file (well, a FILE or a DIRECTORY) to the file system with - * the given mode. - * Note: This will commit the transaction. - * @param p The path to the new file. - * @param type The type of the new file. - * @param mode The mode to create the new file with. - * @param data The data to store at the file's data node. - * @param cb Passed an error or the Inode for the new file. - */ - AsyncKeyValueFileSystem.prototype.commitNewFile = function commitNewFile (tx, p, type, mode, data, cb) { - var this$1 = this; - - var parentDir = path.dirname(p), fname = path.basename(p), currTime = (new Date()).getTime(); - // Invariant: The root always exists. - // If we don't check this prior to taking steps below, we will create a - // file with name '' in root should p == '/'. - if (p === '/') { - return cb(ApiError.EEXIST(p)); - } - // Let's build a pyramid of code! - // Step 1: Get the parent directory's inode and directory listing - this.findINodeAndDirListing(tx, parentDir, function (e, parentNode, dirListing) { - if (noErrorTx(e, tx, cb)) { - if (dirListing[fname]) { - // File already exists. - tx.abort(function () { - cb(ApiError.EEXIST(p)); - }); - } - else { - // Step 2: Commit data to store. - this$1.addNewNode(tx, data, function (e, dataId) { - if (noErrorTx(e, tx, cb)) { - // Step 3: Commit the file's inode to the store. - var fileInode = new Inode(dataId, data.length, mode | type, currTime, currTime, currTime); - this$1.addNewNode(tx, fileInode.toBuffer(), function (e, fileInodeId) { - if (noErrorTx(e, tx, cb)) { - // Step 4: Update parent directory's listing. - dirListing[fname] = fileInodeId; - tx.put(parentNode.id, Buffer.from(JSON.stringify(dirListing)), true, function (e) { - if (noErrorTx(e, tx, cb)) { - // Step 5: Commit and return the new inode. - tx.commit(function (e) { - if (noErrorTx(e, tx, cb)) { - cb(null, fileInode); - } - }); - } - }); - } - }); - } - }); - } - } - }); - }; - /** - * Remove all traces of the given path from the file system. - * @param p The path to remove from the file system. - * @param isDir Does the path belong to a directory, or a file? - * @todo Update mtime. - */ - AsyncKeyValueFileSystem.prototype.removeEntry = function removeEntry (p, isDir, cb) { - var this$1 = this; - - var tx = this.store.beginTransaction('readwrite'), parent = path.dirname(p), fileName = path.basename(p); - // Step 1: Get parent directory's node and directory listing. - this.findINodeAndDirListing(tx, parent, function (e, parentNode, parentListing) { - if (noErrorTx(e, tx, cb)) { - if (!parentListing[fileName]) { - tx.abort(function () { - cb(ApiError.ENOENT(p)); - }); - } - else { - // Remove from directory listing of parent. - var fileNodeId = parentListing[fileName]; - delete parentListing[fileName]; - // Step 2: Get file inode. - this$1.getINode(tx, p, fileNodeId, function (e, fileNode) { - if (noErrorTx(e, tx, cb)) { - if (!isDir && fileNode.isDirectory()) { - tx.abort(function () { - cb(ApiError.EISDIR(p)); - }); - } - else if (isDir && !fileNode.isDirectory()) { - tx.abort(function () { - cb(ApiError.ENOTDIR(p)); - }); - } - else { - // Step 3: Delete data. - tx.del(fileNode.id, function (e) { - if (noErrorTx(e, tx, cb)) { - // Step 4: Delete node. - tx.del(fileNodeId, function (e) { - if (noErrorTx(e, tx, cb)) { - // Step 5: Update directory listing. - tx.put(parentNode.id, Buffer.from(JSON.stringify(parentListing)), true, function (e) { - if (noErrorTx(e, tx, cb)) { - tx.commit(cb); - } - }); - } - }); - } - }); - } - } - }); - } - } - }); - }; - - return AsyncKeyValueFileSystem; - }(BaseFileSystem)); - - /** - * A simple in-memory key-value store backed by a JavaScript object. - */ - var InMemoryStore = function InMemoryStore() { - this.store = {}; - }; - InMemoryStore.prototype.name = function name () { return InMemoryFileSystem.Name; }; - InMemoryStore.prototype.clear = function clear () { this.store = {}; }; - InMemoryStore.prototype.beginTransaction = function beginTransaction (type) { - return new SimpleSyncRWTransaction(this); - }; - InMemoryStore.prototype.get = function get (key) { - return this.store[key]; - }; - InMemoryStore.prototype.put = function put (key, data, overwrite) { - if (!overwrite && this.store.hasOwnProperty(key)) { - return false; - } - this.store[key] = data; - return true; - }; - InMemoryStore.prototype.del = function del (key) { - delete this.store[key]; - }; - /** - * A simple in-memory file system backed by an InMemoryStore. - * Files are not persisted across page loads. - */ - var InMemoryFileSystem = (function (SyncKeyValueFileSystem$$1) { - function InMemoryFileSystem() { - SyncKeyValueFileSystem$$1.call(this, { store: new InMemoryStore() }); - } - - if ( SyncKeyValueFileSystem$$1 ) InMemoryFileSystem.__proto__ = SyncKeyValueFileSystem$$1; - InMemoryFileSystem.prototype = Object.create( SyncKeyValueFileSystem$$1 && SyncKeyValueFileSystem$$1.prototype ); - InMemoryFileSystem.prototype.constructor = InMemoryFileSystem; - /** - * Creates an InMemoryFileSystem instance. - */ - InMemoryFileSystem.Create = function Create (options, cb) { - cb(null, new InMemoryFileSystem()); - }; - - return InMemoryFileSystem; - }(SyncKeyValueFileSystem)); - - InMemoryFileSystem.Name = "InMemory"; - InMemoryFileSystem.Options = {}; - - /** - * Get the indexedDB constructor for the current browser. - * @hidden - */ - var indexedDB = global$1.indexedDB || - global$1.mozIndexedDB || - global$1.webkitIndexedDB || - global$1.msIndexedDB; - /** - * Converts a DOMException or a DOMError from an IndexedDB event into a - * standardized BrowserFS API error. - * @hidden - */ - function convertError$2(e, message) { - if ( message === void 0 ) message = e.toString(); - - switch (e.name) { - case "NotFoundError": - return new ApiError(ErrorCode.ENOENT, message); - case "QuotaExceededError": - return new ApiError(ErrorCode.ENOSPC, message); - default: - // The rest do not seem to map cleanly to standard error codes. - return new ApiError(ErrorCode.EIO, message); - } - } - /** - * Produces a new onerror handler for IDB. Our errors are always fatal, so we - * handle them generically: Call the user-supplied callback with a translated - * version of the error, and let the error bubble up. - * @hidden - */ - function onErrorHandler(cb, code, message) { - if ( code === void 0 ) code = ErrorCode.EIO; - if ( message === void 0 ) message = null; - - return function (e) { - // Prevent the error from canceling the transaction. - e.preventDefault(); - cb(new ApiError(code, message !== null ? message : undefined)); - }; - } - /** - * @hidden - */ - var IndexedDBROTransaction = function IndexedDBROTransaction(tx, store) { - this.tx = tx; - this.store = store; - }; - IndexedDBROTransaction.prototype.get = function get (key, cb) { - try { - var r = this.store.get(key); - r.onerror = onErrorHandler(cb); - r.onsuccess = function (event) { - // IDB returns the value 'undefined' when you try to get keys that - // don't exist. The caller expects this behavior. - var result = event.target.result; - if (result === undefined) { - cb(null, result); - } - else { - // IDB data is stored as an ArrayBuffer - cb(null, arrayBuffer2Buffer(result)); - } - }; - } - catch (e) { - cb(convertError$2(e)); - } - }; - /** - * @hidden - */ - var IndexedDBRWTransaction = (function (IndexedDBROTransaction) { - function IndexedDBRWTransaction(tx, store) { - IndexedDBROTransaction.call(this, tx, store); - } - - if ( IndexedDBROTransaction ) IndexedDBRWTransaction.__proto__ = IndexedDBROTransaction; - IndexedDBRWTransaction.prototype = Object.create( IndexedDBROTransaction && IndexedDBROTransaction.prototype ); - IndexedDBRWTransaction.prototype.constructor = IndexedDBRWTransaction; - IndexedDBRWTransaction.prototype.put = function put (key, data, overwrite, cb) { - try { - var arraybuffer = buffer2ArrayBuffer(data); - var r; - if (overwrite) { - r = this.store.put(arraybuffer, key); - } - else { - // 'add' will never overwrite an existing key. - r = this.store.add(arraybuffer, key); - } - // XXX: NEED TO RETURN FALSE WHEN ADD HAS A KEY CONFLICT. NO ERROR. - r.onerror = onErrorHandler(cb); - r.onsuccess = function (event) { - cb(null, true); - }; - } - catch (e) { - cb(convertError$2(e)); - } - }; - IndexedDBRWTransaction.prototype.del = function del (key, cb) { - try { - // NOTE: IE8 has a bug with identifiers named 'delete' unless used as a string - // like this. - // http://stackoverflow.com/a/26479152 - var r = this.store['delete'](key); - r.onerror = onErrorHandler(cb); - r.onsuccess = function (event) { - cb(); - }; - } - catch (e) { - cb(convertError$2(e)); - } - }; - IndexedDBRWTransaction.prototype.commit = function commit (cb) { - // Return to the event loop to commit the transaction. - setTimeout(cb, 0); - }; - IndexedDBRWTransaction.prototype.abort = function abort (cb) { - var _e = null; - try { - this.tx.abort(); - } - catch (e) { - _e = convertError$2(e); - } - finally { - cb(_e); - } - }; - - return IndexedDBRWTransaction; - }(IndexedDBROTransaction)); - var IndexedDBStore = function IndexedDBStore(cb, storeName) { - var this$1 = this; - if ( storeName === void 0 ) storeName = 'browserfs'; - - this.storeName = storeName; - var openReq = indexedDB.open(this.storeName, 1); - openReq.onupgradeneeded = function (event) { - var db = event.target.result; - // Huh. This should never happen; we're at version 1. Why does another - // database exist? - if (db.objectStoreNames.contains(this$1.storeName)) { - db.deleteObjectStore(this$1.storeName); - } - db.createObjectStore(this$1.storeName); - }; - openReq.onsuccess = function (event) { - this$1.db = event.target.result; - cb(null, this$1); - }; - openReq.onerror = onErrorHandler(cb, ErrorCode.EACCES); - }; - IndexedDBStore.prototype.name = function name () { - return IndexedDBFileSystem.Name + " - " + this.storeName; - }; - IndexedDBStore.prototype.clear = function clear (cb) { - try { - var tx = this.db.transaction(this.storeName, 'readwrite'), objectStore = tx.objectStore(this.storeName), r = objectStore.clear(); - r.onsuccess = function (event) { - // Use setTimeout to commit transaction. - setTimeout(cb, 0); - }; - r.onerror = onErrorHandler(cb); - } - catch (e) { - cb(convertError$2(e)); - } - }; - IndexedDBStore.prototype.beginTransaction = function beginTransaction (type) { - if ( type === void 0 ) type = 'readonly'; - - var tx = this.db.transaction(this.storeName, type), objectStore = tx.objectStore(this.storeName); - if (type === 'readwrite') { - return new IndexedDBRWTransaction(tx, objectStore); - } - else if (type === 'readonly') { - return new IndexedDBROTransaction(tx, objectStore); - } - else { - throw new ApiError(ErrorCode.EINVAL, 'Invalid transaction type.'); - } - }; - /** - * A file system that uses the IndexedDB key value file system. - */ - var IndexedDBFileSystem = (function (AsyncKeyValueFileSystem$$1) { - function IndexedDBFileSystem(cb, storeName, deprecateMsg) { - var this$1 = this; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - AsyncKeyValueFileSystem$$1.call(this); - this.store = new IndexedDBStore(function (e) { - if (e) { - cb(e); - } - else { - this$1.init(this$1.store, function (e) { - cb(e, this$1); - }); - } - }, storeName); - deprecationMessage(deprecateMsg, IndexedDBFileSystem.Name, { storeName: storeName }); - } - - if ( AsyncKeyValueFileSystem$$1 ) IndexedDBFileSystem.__proto__ = AsyncKeyValueFileSystem$$1; - IndexedDBFileSystem.prototype = Object.create( AsyncKeyValueFileSystem$$1 && AsyncKeyValueFileSystem$$1.prototype ); - IndexedDBFileSystem.prototype.constructor = IndexedDBFileSystem; - /** - * Constructs an IndexedDB file system with the given options. - */ - IndexedDBFileSystem.Create = function Create (opts, cb) { - // tslint:disable-next-line:no-unused-new - new IndexedDBFileSystem(cb, opts.storeName, false); - // tslint:enable-next-line:no-unused-new - }; - IndexedDBFileSystem.isAvailable = function isAvailable () { - // In Safari's private browsing mode, indexedDB.open returns NULL. - // In Firefox, it throws an exception. - // In Chrome, it "just works", and clears the database when you leave the page. - // Untested: Opera, IE. - try { - return typeof indexedDB !== 'undefined' && null !== indexedDB.open("__browserfs_test__"); - } - catch (e) { - return false; - } - }; - - return IndexedDBFileSystem; - }(AsyncKeyValueFileSystem)); - - IndexedDBFileSystem.Name = "IndexedDB"; - IndexedDBFileSystem.Options = { - storeName: { - type: "string", - optional: true, - description: "The name of this file system. You can have multiple IndexedDB file systems operating at once, but each must have a different name." - } - }; - - /** - * Some versions of FF and all versions of IE do not support the full range of - * 16-bit numbers encoded as characters, as they enforce UTF-16 restrictions. - * @url http://stackoverflow.com/questions/11170716/are-there-any-characters-that-are-not-allowed-in-localstorage/11173673#11173673 - * @hidden - */ - var supportsBinaryString = false; - var binaryEncoding; - try { - global$1.localStorage.setItem("__test__", String.fromCharCode(0xD800)); - supportsBinaryString = global$1.localStorage.getItem("__test__") === String.fromCharCode(0xD800); - } - catch (e) { - // IE throws an exception. - supportsBinaryString = false; - } - binaryEncoding = supportsBinaryString ? 'binary_string' : 'binary_string_ie'; - if (!Buffer.isEncoding(binaryEncoding)) { - // Fallback for non BrowserFS implementations of buffer that lack a - // binary_string format. - binaryEncoding = "base64"; - } - /** - * A synchronous key-value store backed by localStorage. - */ - var LocalStorageStore = function LocalStorageStore () {}; - - LocalStorageStore.prototype.name = function name () { - return LocalStorageFileSystem.Name; - }; - LocalStorageStore.prototype.clear = function clear () { - global$1.localStorage.clear(); - }; - LocalStorageStore.prototype.beginTransaction = function beginTransaction (type) { - // No need to differentiate. - return new SimpleSyncRWTransaction(this); - }; - LocalStorageStore.prototype.get = function get (key) { - try { - var data = global$1.localStorage.getItem(key); - if (data !== null) { - return Buffer.from(data, binaryEncoding); - } - } - catch (e) { - // Do nothing. - } - // Key doesn't exist, or a failure occurred. - return undefined; - }; - LocalStorageStore.prototype.put = function put (key, data, overwrite) { - try { - if (!overwrite && global$1.localStorage.getItem(key) !== null) { - // Don't want to overwrite the key! - return false; - } - global$1.localStorage.setItem(key, data.toString(binaryEncoding)); - return true; - } - catch (e) { - throw new ApiError(ErrorCode.ENOSPC, "LocalStorage is full."); - } - }; - LocalStorageStore.prototype.del = function del (key) { - try { - global$1.localStorage.removeItem(key); - } - catch (e) { - throw new ApiError(ErrorCode.EIO, "Unable to delete key " + key + ": " + e); - } - }; - /** - * A synchronous file system backed by localStorage. Connects our - * LocalStorageStore to our SyncKeyValueFileSystem. - */ - var LocalStorageFileSystem = (function (SyncKeyValueFileSystem$$1) { - function LocalStorageFileSystem() { SyncKeyValueFileSystem$$1.call(this, { store: new LocalStorageStore() }); } - - if ( SyncKeyValueFileSystem$$1 ) LocalStorageFileSystem.__proto__ = SyncKeyValueFileSystem$$1; - LocalStorageFileSystem.prototype = Object.create( SyncKeyValueFileSystem$$1 && SyncKeyValueFileSystem$$1.prototype ); - LocalStorageFileSystem.prototype.constructor = LocalStorageFileSystem; - /** - * Creates a LocalStorageFileSystem instance. - */ - LocalStorageFileSystem.Create = function Create (options, cb) { - cb(null, new LocalStorageFileSystem()); - }; - LocalStorageFileSystem.isAvailable = function isAvailable () { - return typeof global$1.localStorage !== 'undefined'; - }; - - return LocalStorageFileSystem; - }(SyncKeyValueFileSystem)); - - LocalStorageFileSystem.Name = "LocalStorage"; - LocalStorageFileSystem.Options = {}; - - /** - * The MountableFileSystem allows you to mount multiple backend types or - * multiple instantiations of the same backend into a single file system tree. - * The file systems do not need to know about each other; all interactions are - * automatically facilitated through this interface. - * - * For example, if a file system is mounted at /mnt/blah, and a request came in - * for /mnt/blah/foo.txt, the file system would see a request for /foo.txt. - * - * You can mount file systems when you configure the file system: - * ```javascript - * BrowserFS.configure({ - * fs: "MountableFileSystem", - * options: { - * '/data': { fs: 'XmlHttpRequest', options: { index: "http://mysite.com/files/index.json" } }, - * '/home': { fs: 'LocalStorage' } - * } - * }, function(e) { - * - * }); - * ``` - * - * For advanced users, you can also mount file systems *after* MFS is constructed: - * ```javascript - * BrowserFS.FileSystem.XmlHttpRequest.Create({ - * index: "http://mysite.com/files/index.json" - * }, function(e, xhrfs) { - * BrowserFS.FileSystem.MountableFileSystem.Create({ - * '/data': xhrfs - * }, function(e, mfs) { - * BrowserFS.initialize(mfs); - * - * // Added after-the-fact... - * BrowserFS.FileSystem.LocalStorage.Create(function(e, lsfs) { - * mfs.mount('/home', lsfs); - * }); - * }); - * }); - * ``` - * - * Since MountableFileSystem simply proxies requests to mounted file systems, it supports all of the operations that the mounted file systems support. - * - * With no mounted file systems, `MountableFileSystem` acts as a simple `InMemory` filesystem. - */ - var MountableFileSystem = (function (BaseFileSystem$$1) { - function MountableFileSystem() { - BaseFileSystem$$1.call(this); - // Contains the list of mount points in mntMap, sorted by string length in decreasing order. - // Ensures that we scan the most specific mount points for a match first, which lets us - // nest mount points. - this.mountList = []; - this.mntMap = {}; - // The InMemory file system serves purely to provide directory listings for - // mounted file systems. - this.rootFs = new InMemoryFileSystem(); - } - - if ( BaseFileSystem$$1 ) MountableFileSystem.__proto__ = BaseFileSystem$$1; - MountableFileSystem.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - MountableFileSystem.prototype.constructor = MountableFileSystem; - /** - * Creates a MountableFileSystem instance with the given options. - */ - MountableFileSystem.Create = function Create (opts, cb) { - var fs = new MountableFileSystem(); - Object.keys(opts).forEach(function (mountPoint) { - fs.mount(mountPoint, opts[mountPoint]); - }); - cb(null, fs); - }; - MountableFileSystem.isAvailable = function isAvailable () { - return true; - }; - /** - * Mounts the file system at the given mount point. - */ - MountableFileSystem.prototype.mount = function mount (mountPoint, fs) { - if (mountPoint[0] !== '/') { - mountPoint = "/" + mountPoint; - } - mountPoint = path.resolve(mountPoint); - if (this.mntMap[mountPoint]) { - throw new ApiError(ErrorCode.EINVAL, "Mount point " + mountPoint + " is already taken."); - } - mkdirpSync(mountPoint, 0x1ff, this.rootFs); - this.mntMap[mountPoint] = fs; - this.mountList.push(mountPoint); - this.mountList = this.mountList.sort(function (a, b) { return b.length - a.length; }); - }; - MountableFileSystem.prototype.umount = function umount (mountPoint) { - var this$1 = this; - - if (mountPoint[0] !== '/') { - mountPoint = "/" + mountPoint; - } - mountPoint = path.resolve(mountPoint); - if (!this.mntMap[mountPoint]) { - throw new ApiError(ErrorCode.EINVAL, "Mount point " + mountPoint + " is already unmounted."); - } - delete this.mntMap[mountPoint]; - this.mountList.splice(this.mountList.indexOf(mountPoint), 1); - while (mountPoint !== '/') { - if (this$1.rootFs.readdirSync(mountPoint).length === 0) { - this$1.rootFs.rmdirSync(mountPoint); - mountPoint = path.dirname(mountPoint); - } - else { - break; - } - } - }; - /** - * Returns the file system that the path points to. - */ - MountableFileSystem.prototype._getFs = function _getFs (path$$1) { - var this$1 = this; - - var mountList = this.mountList, len = mountList.length; - for (var i = 0; i < len; i++) { - var mountPoint = mountList[i]; - // We know path is normalized, so it is a substring of the mount point. - if (mountPoint.length <= path$$1.length && path$$1.indexOf(mountPoint) === 0) { - path$$1 = path$$1.substr(mountPoint.length > 1 ? mountPoint.length : 0); - if (path$$1 === '') { - path$$1 = '/'; - } - return { fs: this$1.mntMap[mountPoint], path: path$$1 }; - } - } - // Query our root file system. - return { fs: this.rootFs, path: path$$1 }; - }; - // Global information methods - MountableFileSystem.prototype.getName = function getName () { - return MountableFileSystem.Name; - }; - MountableFileSystem.prototype.diskSpace = function diskSpace (path$$1, cb) { - cb(0, 0); - }; - MountableFileSystem.prototype.isReadOnly = function isReadOnly () { - return false; - }; - MountableFileSystem.prototype.supportsLinks = function supportsLinks () { - // I'm not ready for cross-FS links yet. - return false; - }; - MountableFileSystem.prototype.supportsProps = function supportsProps () { - return false; - }; - MountableFileSystem.prototype.supportsSynch = function supportsSynch () { - return true; - }; - /** - * Fixes up error messages so they mention the mounted file location relative - * to the MFS root, not to the particular FS's root. - * Mutates the input error, and returns it. - */ - MountableFileSystem.prototype.standardizeError = function standardizeError (err, path$$1, realPath) { - var index = err.message.indexOf(path$$1); - if (index !== -1) { - err.message = err.message.substr(0, index) + realPath + err.message.substr(index + path$$1.length); - err.path = realPath; - } - return err; - }; - // The following methods involve multiple file systems, and thus have custom - // logic. - // Note that we go through the Node API to use its robust default argument - // processing. - MountableFileSystem.prototype.rename = function rename (oldPath, newPath, cb) { - var this$1 = this; - - // Scenario 1: old and new are on same FS. - var fs1rv = this._getFs(oldPath); - var fs2rv = this._getFs(newPath); - if (fs1rv.fs === fs2rv.fs) { - return fs1rv.fs.rename(fs1rv.path, fs2rv.path, function (e) { - if (e) { - this$1.standardizeError(this$1.standardizeError(e, fs1rv.path, oldPath), fs2rv.path, newPath); - } - cb(e); - }); - } - // Scenario 2: Different file systems. - // Read old file, write new file, delete old file. - return _fsMock.readFile(oldPath, function (err, data) { - if (err) { - return cb(err); - } - _fsMock.writeFile(newPath, data, function (err) { - if (err) { - return cb(err); - } - _fsMock.unlink(oldPath, cb); - }); - }); - }; - MountableFileSystem.prototype.renameSync = function renameSync (oldPath, newPath) { - // Scenario 1: old and new are on same FS. - var fs1rv = this._getFs(oldPath); - var fs2rv = this._getFs(newPath); - if (fs1rv.fs === fs2rv.fs) { - try { - return fs1rv.fs.renameSync(fs1rv.path, fs2rv.path); - } - catch (e) { - this.standardizeError(this.standardizeError(e, fs1rv.path, oldPath), fs2rv.path, newPath); - throw e; - } - } - // Scenario 2: Different file systems. - var data = _fsMock.readFileSync(oldPath); - _fsMock.writeFileSync(newPath, data); - return _fsMock.unlinkSync(oldPath); - }; - MountableFileSystem.prototype.readdirSync = function readdirSync (p) { - var fsInfo = this._getFs(p); - // If null, rootfs did not have the directory - // (or the target FS is the root fs). - var rv = null; - // Mount points are all defined in the root FS. - // Ensure that we list those, too. - if (fsInfo.fs !== this.rootFs) { - try { - rv = this.rootFs.readdirSync(p); - } - catch (e) { - // Ignore. - } - } - try { - var rv2 = fsInfo.fs.readdirSync(fsInfo.path); - if (rv === null) { - return rv2; - } - else { - // Filter out duplicates. - return rv2.concat(rv.filter(function (val) { return rv2.indexOf(val) === -1; })); - } - } - catch (e) { - if (rv === null) { - throw this.standardizeError(e, fsInfo.path, p); - } - else { - // The root FS had something. - return rv; - } - } - }; - MountableFileSystem.prototype.readdir = function readdir (p, cb) { - var this$1 = this; - - var fsInfo = this._getFs(p); - fsInfo.fs.readdir(fsInfo.path, function (err, files) { - if (fsInfo.fs !== this$1.rootFs) { - try { - var rv = this$1.rootFs.readdirSync(p); - if (files) { - // Filter out duplicates. - files = files.concat(rv.filter(function (val) { return files.indexOf(val) === -1; })); - } - else { - files = rv; - } - } - catch (e) { - // Root FS and target FS did not have directory. - if (err) { - return cb(this$1.standardizeError(err, fsInfo.path, p)); - } - } - } - else if (err) { - // Root FS and target FS are the same, and did not have directory. - return cb(this$1.standardizeError(err, fsInfo.path, p)); - } - cb(null, files); - }); - }; - MountableFileSystem.prototype.rmdirSync = function rmdirSync (p) { - var fsInfo = this._getFs(p); - if (this._containsMountPt(p)) { - throw ApiError.ENOTEMPTY(p); - } - else { - try { - fsInfo.fs.rmdirSync(fsInfo.path); - } - catch (e) { - throw this.standardizeError(e, fsInfo.path, p); - } - } - }; - MountableFileSystem.prototype.rmdir = function rmdir (p, cb) { - var this$1 = this; - - var fsInfo = this._getFs(p); - if (this._containsMountPt(p)) { - cb(ApiError.ENOTEMPTY(p)); - } - else { - fsInfo.fs.rmdir(fsInfo.path, function (err) { - cb(err ? this$1.standardizeError(err, fsInfo.path, p) : null); - }); - } - }; - /** - * Returns true if the given path contains a mount point. - */ - MountableFileSystem.prototype._containsMountPt = function _containsMountPt (p) { - var mountPoints = this.mountList, len = mountPoints.length; - for (var i = 0; i < len; i++) { - var pt = mountPoints[i]; - if (pt.length >= p.length && pt.slice(0, p.length) === p) { - return true; - } - } - return false; - }; - - return MountableFileSystem; - }(BaseFileSystem)); - - MountableFileSystem.Name = "MountableFileSystem"; - MountableFileSystem.Options = {}; - /** - * Tricky: Define all of the functions that merely forward arguments to the - * relevant file system, or return/throw an error. - * Take advantage of the fact that the *first* argument is always the path, and - * the *last* is the callback function (if async). - * @todo Can use numArgs to make proxying more efficient. - * @hidden - */ - function defineFcn(name, isSync, numArgs) { - if (isSync) { - return function () { - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - var path$$1 = args[0]; - var rv = this._getFs(path$$1); - args[0] = rv.path; - try { - return rv.fs[name].apply(rv.fs, args); - } - catch (e) { - this.standardizeError(e, rv.path, path$$1); - throw e; - } - }; - } - else { - return function () { - var this$1 = this; - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - var path$$1 = args[0]; - var rv = this._getFs(path$$1); - args[0] = rv.path; - if (typeof args[args.length - 1] === 'function') { - var cb = args[args.length - 1]; - args[args.length - 1] = function () { - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - if (args.length > 0 && args[0] instanceof ApiError) { - this$1.standardizeError(args[0], rv.path, path$$1); - } - cb.apply(null, args); - }; - } - return rv.fs[name].apply(rv.fs, args); - }; - } - } - /** - * @hidden - */ - var fsCmdMap = [ - // 1 arg functions - ['exists', 'unlink', 'readlink'], - // 2 arg functions - ['stat', 'mkdir', 'realpath', 'truncate'], - // 3 arg functions - ['open', 'readFile', 'chmod', 'utimes'], - // 4 arg functions - ['chown'], - // 5 arg functions - ['writeFile', 'appendFile'] - ]; - for (var i = 0; i < fsCmdMap.length; i++) { - var cmds = fsCmdMap[i]; - for (var i$1 = 0, list = cmds; i$1 < list.length; i$1 += 1) { - var fnName = list[i$1]; - - MountableFileSystem.prototype[fnName] = defineFcn(fnName, false, i + 1); - MountableFileSystem.prototype[fnName + 'Sync'] = defineFcn(fnName + 'Sync', true, i + 1); - } - } - - /** - * @hidden - */ - var bfsSetImmediate; - if (typeof (setImmediate) !== "undefined") { - bfsSetImmediate = setImmediate; - } - else { - var gScope = global$1; - var timeouts = []; - var messageName = "zero-timeout-message"; - var canUsePostMessage = function () { - if (typeof gScope.importScripts !== 'undefined' || !gScope.postMessage) { - return false; - } - var postMessageIsAsync = true; - var oldOnMessage = gScope.onmessage; - gScope.onmessage = function () { - postMessageIsAsync = false; - }; - gScope.postMessage('', '*'); - gScope.onmessage = oldOnMessage; - return postMessageIsAsync; - }; - if (canUsePostMessage()) { - bfsSetImmediate = function (fn) { - timeouts.push(fn); - gScope.postMessage(messageName, "*"); - }; - var handleMessage = function (event) { - if (event.source === self && event.data === messageName) { - if (event.stopPropagation) { - event.stopPropagation(); - } - else { - event.cancelBubble = true; - } - if (timeouts.length > 0) { - var fn = timeouts.shift(); - return fn(); - } - } - }; - if (gScope.addEventListener) { - gScope.addEventListener('message', handleMessage, true); - } - else { - gScope.attachEvent('onmessage', handleMessage); - } - } - else if (gScope.MessageChannel) { - // WebWorker MessageChannel - var channel = new gScope.MessageChannel(); - channel.port1.onmessage = function (event) { - if (timeouts.length > 0) { - return timeouts.shift()(); - } - }; - bfsSetImmediate = function (fn) { - timeouts.push(fn); - channel.port2.postMessage(''); - }; - } - else { - bfsSetImmediate = function (fn) { - return setTimeout(fn, 0); - }; - } - } - var setImmediate$3 = bfsSetImmediate; - - /** - * Non-recursive mutex - * @hidden - */ - var Mutex = function Mutex() { - this._locked = false; - this._waiters = []; - }; - Mutex.prototype.lock = function lock (cb) { - if (this._locked) { - this._waiters.push(cb); - return; - } - this._locked = true; - cb(); - }; - Mutex.prototype.unlock = function unlock () { - if (!this._locked) { - throw new Error('unlock of a non-locked mutex'); - } - var next = this._waiters.shift(); - // don't unlock - we want to queue up next for the - // _end_ of the current task execution, but we don't - // want it to be called inline with whatever the - // current stack is. This way we still get the nice - // behavior that an unlock immediately followed by a - // lock won't cause starvation. - if (next) { - setImmediate$3(next); - return; - } - this._locked = false; - }; - Mutex.prototype.tryLock = function tryLock () { - if (this._locked) { - return false; - } - this._locked = true; - return true; - }; - Mutex.prototype.isLocked = function isLocked () { - return this._locked; - }; - - /** - * This class serializes access to an underlying async filesystem. - * For example, on an OverlayFS instance with an async lower - * directory operations like rename and rmdir may involve multiple - * requests involving both the upper and lower filesystems -- they - * are not executed in a single atomic step. OverlayFS uses this - * LockedFS to avoid having to reason about the correctness of - * multiple requests interleaving. - */ - var LockedFS = function LockedFS(fs) { - this._fs = fs; - this._mu = new Mutex(); - }; - LockedFS.prototype.getName = function getName () { - return 'LockedFS<' + this._fs.getName() + '>'; - }; - LockedFS.prototype.getFSUnlocked = function getFSUnlocked () { - return this._fs; - }; - LockedFS.prototype.initialize = function initialize (cb) { - // FIXME: check to see if FS supports initialization - this._fs.initialize(cb); - }; - LockedFS.prototype.diskSpace = function diskSpace (p, cb) { - // FIXME: should this lock? - this._fs.diskSpace(p, cb); - }; - LockedFS.prototype.isReadOnly = function isReadOnly () { - return this._fs.isReadOnly(); - }; - LockedFS.prototype.supportsLinks = function supportsLinks () { - return this._fs.supportsLinks(); - }; - LockedFS.prototype.supportsProps = function supportsProps () { - return this._fs.supportsProps(); - }; - LockedFS.prototype.supportsSynch = function supportsSynch () { - return this._fs.supportsSynch(); - }; - LockedFS.prototype.rename = function rename (oldPath, newPath, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.rename(oldPath, newPath, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.renameSync = function renameSync (oldPath, newPath) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.renameSync(oldPath, newPath); - }; - LockedFS.prototype.stat = function stat (p, isLstat, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.stat(p, isLstat, function (err, stat) { - this$1._mu.unlock(); - cb(err, stat); - }); - }); - }; - LockedFS.prototype.statSync = function statSync (p, isLstat) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.statSync(p, isLstat); - }; - LockedFS.prototype.open = function open (p, flag, mode, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.open(p, flag, mode, function (err, fd) { - this$1._mu.unlock(); - cb(err, fd); - }); - }); - }; - LockedFS.prototype.openSync = function openSync (p, flag, mode) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.openSync(p, flag, mode); - }; - LockedFS.prototype.unlink = function unlink (p, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.unlink(p, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.unlinkSync = function unlinkSync (p) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.unlinkSync(p); - }; - LockedFS.prototype.rmdir = function rmdir (p, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.rmdir(p, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.rmdirSync = function rmdirSync (p) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.rmdirSync(p); - }; - LockedFS.prototype.mkdir = function mkdir (p, mode, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.mkdir(p, mode, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.mkdirSync = function mkdirSync (p, mode) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.mkdirSync(p, mode); - }; - LockedFS.prototype.readdir = function readdir (p, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.readdir(p, function (err, files) { - this$1._mu.unlock(); - cb(err, files); - }); - }); - }; - LockedFS.prototype.readdirSync = function readdirSync (p) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.readdirSync(p); - }; - LockedFS.prototype.exists = function exists (p, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.exists(p, function (exists) { - this$1._mu.unlock(); - cb(exists); - }); - }); - }; - LockedFS.prototype.existsSync = function existsSync (p) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.existsSync(p); - }; - LockedFS.prototype.realpath = function realpath (p, cache, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.realpath(p, cache, function (err, resolvedPath) { - this$1._mu.unlock(); - cb(err, resolvedPath); - }); - }); - }; - LockedFS.prototype.realpathSync = function realpathSync (p, cache) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.realpathSync(p, cache); - }; - LockedFS.prototype.truncate = function truncate (p, len, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.truncate(p, len, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.truncateSync = function truncateSync (p, len) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.truncateSync(p, len); - }; - LockedFS.prototype.readFile = function readFile (fname, encoding, flag, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.readFile(fname, encoding, flag, function (err, data) { - this$1._mu.unlock(); - cb(err, data); - }); - }); - }; - LockedFS.prototype.readFileSync = function readFileSync (fname, encoding, flag) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.readFileSync(fname, encoding, flag); - }; - LockedFS.prototype.writeFile = function writeFile (fname, data, encoding, flag, mode, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.writeFile(fname, data, encoding, flag, mode, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.writeFileSync = function writeFileSync (fname, data, encoding, flag, mode) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.writeFileSync(fname, data, encoding, flag, mode); - }; - LockedFS.prototype.appendFile = function appendFile (fname, data, encoding, flag, mode, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.appendFile(fname, data, encoding, flag, mode, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.appendFileSync = function appendFileSync (fname, data, encoding, flag, mode) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.appendFileSync(fname, data, encoding, flag, mode); - }; - LockedFS.prototype.chmod = function chmod (p, isLchmod, mode, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.chmod(p, isLchmod, mode, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.chmodSync = function chmodSync (p, isLchmod, mode) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.chmodSync(p, isLchmod, mode); - }; - LockedFS.prototype.chown = function chown (p, isLchown, uid, gid, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.chown(p, isLchown, uid, gid, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.chownSync = function chownSync (p, isLchown, uid, gid) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.chownSync(p, isLchown, uid, gid); - }; - LockedFS.prototype.utimes = function utimes (p, atime, mtime, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.utimes(p, atime, mtime, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.utimesSync = function utimesSync (p, atime, mtime) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.utimesSync(p, atime, mtime); - }; - LockedFS.prototype.link = function link (srcpath, dstpath, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.link(srcpath, dstpath, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.linkSync = function linkSync (srcpath, dstpath) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.linkSync(srcpath, dstpath); - }; - LockedFS.prototype.symlink = function symlink (srcpath, dstpath, type, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.symlink(srcpath, dstpath, type, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.symlinkSync = function symlinkSync (srcpath, dstpath, type) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.symlinkSync(srcpath, dstpath, type); - }; - LockedFS.prototype.readlink = function readlink (p, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.readlink(p, function (err, linkString) { - this$1._mu.unlock(); - cb(err, linkString); - }); - }); - }; - LockedFS.prototype.readlinkSync = function readlinkSync (p) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.readlinkSync(p); - }; - - /** - * @hidden - */ - var deletionLogPath = '/.deletedFiles.log'; - /** - * Given a read-only mode, makes it writable. - * @hidden - */ - function makeModeWritable(mode) { - return 146 | mode; - } - /** - * @hidden - */ - function getFlag(f) { - return FileFlag.getFileFlag(f); - } - /** - * Overlays a RO file to make it writable. - */ - var OverlayFile = (function (PreloadFile$$1) { - function OverlayFile(fs, path$$1, flag, stats, data) { - PreloadFile$$1.call(this, fs, path$$1, flag, stats, data); - } - - if ( PreloadFile$$1 ) OverlayFile.__proto__ = PreloadFile$$1; - OverlayFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype ); - OverlayFile.prototype.constructor = OverlayFile; - OverlayFile.prototype.sync = function sync (cb) { - var this$1 = this; - - if (!this.isDirty()) { - cb(null); - return; - } - this._fs._syncAsync(this, function (err) { - this$1.resetDirty(); - cb(err); - }); - }; - OverlayFile.prototype.syncSync = function syncSync () { - if (this.isDirty()) { - this._fs._syncSync(this); - this.resetDirty(); - } - }; - OverlayFile.prototype.close = function close (cb) { - this.sync(cb); - }; - OverlayFile.prototype.closeSync = function closeSync () { - this.syncSync(); - }; - - return OverlayFile; - }(PreloadFile)); - /** - * *INTERNAL, DO NOT USE DIRECTLY!* - * - * Core OverlayFS class that contains no locking whatsoever. We wrap these objects - * in a LockedFS to prevent races. - */ - var UnlockedOverlayFS = (function (BaseFileSystem$$1) { - function UnlockedOverlayFS(writable, readable) { - BaseFileSystem$$1.call(this); - this._isInitialized = false; - this._initializeCallbacks = []; - this._deletedFiles = {}; - this._deleteLog = ''; - // If 'true', we have scheduled a delete log update. - this._deleteLogUpdatePending = false; - // If 'true', a delete log update is needed after the scheduled delete log - // update finishes. - this._deleteLogUpdateNeeded = false; - // If there was an error updating the delete log... - this._deleteLogError = null; - this._writable = writable; - this._readable = readable; - if (this._writable.isReadOnly()) { - throw new ApiError(ErrorCode.EINVAL, "Writable file system must be writable."); - } - } - - if ( BaseFileSystem$$1 ) UnlockedOverlayFS.__proto__ = BaseFileSystem$$1; - UnlockedOverlayFS.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - UnlockedOverlayFS.prototype.constructor = UnlockedOverlayFS; - UnlockedOverlayFS.isAvailable = function isAvailable () { - return true; - }; - UnlockedOverlayFS.prototype.getOverlayedFileSystems = function getOverlayedFileSystems () { - return { - readable: this._readable, - writable: this._writable - }; - }; - UnlockedOverlayFS.prototype._syncAsync = function _syncAsync (file, cb) { - var this$1 = this; - - this.createParentDirectoriesAsync(file.getPath(), function (err) { - if (err) { - return cb(err); - } - this$1._writable.writeFile(file.getPath(), file.getBuffer(), null, getFlag('w'), file.getStats().mode, cb); - }); - }; - UnlockedOverlayFS.prototype._syncSync = function _syncSync (file) { - this.createParentDirectories(file.getPath()); - this._writable.writeFileSync(file.getPath(), file.getBuffer(), null, getFlag('w'), file.getStats().mode); - }; - UnlockedOverlayFS.prototype.getName = function getName () { - return OverlayFS.Name; - }; - /** - * Called once to load up metadata stored on the writable file system. - */ - UnlockedOverlayFS.prototype.initialize = function initialize (cb) { - var this$1 = this; - - var callbackArray = this._initializeCallbacks; - var end = function (e) { - this$1._isInitialized = !e; - this$1._initializeCallbacks = []; - callbackArray.forEach((function (cb) { return cb(e); })); - }; - // if we're already initialized, immediately invoke the callback - if (this._isInitialized) { - return cb(); - } - callbackArray.push(cb); - // The first call to initialize initializes, the rest wait for it to complete. - if (callbackArray.length !== 1) { - return; - } - // Read deletion log, process into metadata. - this._writable.readFile(deletionLogPath, 'utf8', getFlag('r'), function (err, data) { - if (err) { - // ENOENT === Newly-instantiated file system, and thus empty log. - if (err.errno !== ErrorCode.ENOENT) { - return end(err); - } - } - else { - this$1._deleteLog = data; - } - this$1._reparseDeletionLog(); - end(); - }); - }; - UnlockedOverlayFS.prototype.isReadOnly = function isReadOnly () { return false; }; - UnlockedOverlayFS.prototype.supportsSynch = function supportsSynch () { return this._readable.supportsSynch() && this._writable.supportsSynch(); }; - UnlockedOverlayFS.prototype.supportsLinks = function supportsLinks () { return false; }; - UnlockedOverlayFS.prototype.supportsProps = function supportsProps () { return this._readable.supportsProps() && this._writable.supportsProps(); }; - UnlockedOverlayFS.prototype.getDeletionLog = function getDeletionLog () { - return this._deleteLog; - }; - UnlockedOverlayFS.prototype.restoreDeletionLog = function restoreDeletionLog (log) { - this._deleteLog = log; - this._reparseDeletionLog(); - this.updateLog(''); - }; - UnlockedOverlayFS.prototype.rename = function rename (oldPath, newPath, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb) || this.checkPathAsync(oldPath, cb) || this.checkPathAsync(newPath, cb)) { - return; - } - if (oldPath === deletionLogPath || newPath === deletionLogPath) { - return cb(ApiError.EPERM('Cannot rename deletion log.')); - } - // nothing to do if paths match - if (oldPath === newPath) { - return cb(); - } - this.stat(oldPath, false, function (oldErr, oldStats) { - if (oldErr) { - return cb(oldErr); - } - return this$1.stat(newPath, false, function (newErr, newStats) { - var self = this$1; - // precondition: both oldPath and newPath exist and are dirs. - // decreases: |files| - // Need to move *every file/folder* currently stored on - // readable to its new location on writable. - function copyDirContents(files) { - var file = files.shift(); - if (!file) { - return cb(); - } - var oldFile = path.resolve(oldPath, file); - var newFile = path.resolve(newPath, file); - // Recursion! Should work for any nested files / folders. - self.rename(oldFile, newFile, function (err) { - if (err) { - return cb(err); - } - copyDirContents(files); - }); - } - var mode = 511; - // from linux's rename(2) manpage: oldpath can specify a - // directory. In this case, newpath must either not exist, or - // it must specify an empty directory. - if (oldStats.isDirectory()) { - if (newErr) { - if (newErr.errno !== ErrorCode.ENOENT) { - return cb(newErr); - } - return this$1._writable.exists(oldPath, function (exists) { - // simple case - both old and new are on the writable layer - if (exists) { - return this$1._writable.rename(oldPath, newPath, cb); - } - this$1._writable.mkdir(newPath, mode, function (mkdirErr) { - if (mkdirErr) { - return cb(mkdirErr); - } - this$1._readable.readdir(oldPath, function (err, files) { - if (err) { - return cb(); - } - copyDirContents(files); - }); - }); - }); - } - mode = newStats.mode; - if (!newStats.isDirectory()) { - return cb(ApiError.ENOTDIR(newPath)); - } - this$1.readdir(newPath, function (readdirErr, files) { - if (files && files.length) { - return cb(ApiError.ENOTEMPTY(newPath)); - } - this$1._readable.readdir(oldPath, function (err, files) { - if (err) { - return cb(); - } - copyDirContents(files); - }); - }); - } - if (newStats && newStats.isDirectory()) { - return cb(ApiError.EISDIR(newPath)); - } - this$1.readFile(oldPath, null, getFlag('r'), function (err, data) { - if (err) { - return cb(err); - } - return this$1.writeFile(newPath, data, null, getFlag('w'), oldStats.mode, function (err) { - if (err) { - return cb(err); - } - return this$1.unlink(oldPath, cb); - }); - }); - }); - }); - }; - UnlockedOverlayFS.prototype.renameSync = function renameSync (oldPath, newPath) { - var this$1 = this; - - this.checkInitialized(); - this.checkPath(oldPath); - this.checkPath(newPath); - if (oldPath === deletionLogPath || newPath === deletionLogPath) { - throw ApiError.EPERM('Cannot rename deletion log.'); - } - // Write newPath using oldPath's contents, delete oldPath. - var oldStats = this.statSync(oldPath, false); - if (oldStats.isDirectory()) { - // Optimization: Don't bother moving if old === new. - if (oldPath === newPath) { - return; - } - var mode = 511; - if (this.existsSync(newPath)) { - var stats = this.statSync(newPath, false); - mode = stats.mode; - if (stats.isDirectory()) { - if (this.readdirSync(newPath).length > 0) { - throw ApiError.ENOTEMPTY(newPath); - } - } - else { - throw ApiError.ENOTDIR(newPath); - } - } - // Take care of writable first. Move any files there, or create an empty directory - // if it doesn't exist. - if (this._writable.existsSync(oldPath)) { - this._writable.renameSync(oldPath, newPath); - } - else if (!this._writable.existsSync(newPath)) { - this._writable.mkdirSync(newPath, mode); - } - // Need to move *every file/folder* currently stored on readable to its new location - // on writable. - if (this._readable.existsSync(oldPath)) { - this._readable.readdirSync(oldPath).forEach(function (name) { - // Recursion! Should work for any nested files / folders. - this$1.renameSync(path.resolve(oldPath, name), path.resolve(newPath, name)); - }); - } - } - else { - if (this.existsSync(newPath) && this.statSync(newPath, false).isDirectory()) { - throw ApiError.EISDIR(newPath); - } - this.writeFileSync(newPath, this.readFileSync(oldPath, null, getFlag('r')), null, getFlag('w'), oldStats.mode); - } - if (oldPath !== newPath && this.existsSync(oldPath)) { - this.unlinkSync(oldPath); - } - }; - UnlockedOverlayFS.prototype.stat = function stat (p, isLstat, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb)) { - return; - } - this._writable.stat(p, isLstat, function (err, stat) { - if (err && err.errno === ErrorCode.ENOENT) { - if (this$1._deletedFiles[p]) { - cb(ApiError.ENOENT(p)); - } - this$1._readable.stat(p, isLstat, function (err, stat) { - if (stat) { - // Make the oldStat's mode writable. Preserve the topmost - // part of the mode, which specifies if it is a file or a - // directory. - stat = stat.clone(); - stat.mode = makeModeWritable(stat.mode); - } - cb(err, stat); - }); - } - else { - cb(err, stat); - } - }); - }; - UnlockedOverlayFS.prototype.statSync = function statSync (p, isLstat) { - this.checkInitialized(); - try { - return this._writable.statSync(p, isLstat); - } - catch (e) { - if (this._deletedFiles[p]) { - throw ApiError.ENOENT(p); - } - var oldStat = this._readable.statSync(p, isLstat).clone(); - // Make the oldStat's mode writable. Preserve the topmost part of the - // mode, which specifies if it is a file or a directory. - oldStat.mode = makeModeWritable(oldStat.mode); - return oldStat; - } - }; - UnlockedOverlayFS.prototype.open = function open (p, flag, mode, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb) || this.checkPathAsync(p, cb)) { - return; - } - this.stat(p, false, function (err, stats) { - if (stats) { - switch (flag.pathExistsAction()) { - case ActionType.TRUNCATE_FILE: - return this$1.createParentDirectoriesAsync(p, function (err) { - if (err) { - return cb(err); - } - this$1._writable.open(p, flag, mode, cb); - }); - case ActionType.NOP: - return this$1._writable.exists(p, function (exists) { - if (exists) { - this$1._writable.open(p, flag, mode, cb); - } - else { - // at this point we know the stats object we got is from - // the readable FS. - stats = stats.clone(); - stats.mode = mode; - this$1._readable.readFile(p, null, getFlag('r'), function (readFileErr, data) { - if (readFileErr) { - return cb(readFileErr); - } - if (stats.size === -1) { - stats.size = data.length; - } - var f = new OverlayFile(this$1, p, flag, stats, data); - cb(null, f); - }); - } - }); - default: - return cb(ApiError.EEXIST(p)); - } - } - else { - switch (flag.pathNotExistsAction()) { - case ActionType.CREATE_FILE: - return this$1.createParentDirectoriesAsync(p, function (err) { - if (err) { - return cb(err); - } - return this$1._writable.open(p, flag, mode, cb); - }); - default: - return cb(ApiError.ENOENT(p)); - } - } - }); - }; - UnlockedOverlayFS.prototype.openSync = function openSync (p, flag, mode) { - this.checkInitialized(); - this.checkPath(p); - if (p === deletionLogPath) { - throw ApiError.EPERM('Cannot open deletion log.'); - } - if (this.existsSync(p)) { - switch (flag.pathExistsAction()) { - case ActionType.TRUNCATE_FILE: - this.createParentDirectories(p); - return this._writable.openSync(p, flag, mode); - case ActionType.NOP: - if (this._writable.existsSync(p)) { - return this._writable.openSync(p, flag, mode); - } - else { - // Create an OverlayFile. - var buf = this._readable.readFileSync(p, null, getFlag('r')); - var stats = this._readable.statSync(p, false).clone(); - stats.mode = mode; - return new OverlayFile(this, p, flag, stats, buf); - } - default: - throw ApiError.EEXIST(p); - } - } - else { - switch (flag.pathNotExistsAction()) { - case ActionType.CREATE_FILE: - this.createParentDirectories(p); - return this._writable.openSync(p, flag, mode); - default: - throw ApiError.ENOENT(p); - } - } - }; - UnlockedOverlayFS.prototype.unlink = function unlink (p, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb) || this.checkPathAsync(p, cb)) { - return; - } - this.exists(p, function (exists) { - if (!exists) { - return cb(ApiError.ENOENT(p)); - } - this$1._writable.exists(p, function (writableExists) { - if (writableExists) { - return this$1._writable.unlink(p, function (err) { - if (err) { - return cb(err); - } - this$1.exists(p, function (readableExists) { - if (readableExists) { - this$1.deletePath(p); - } - cb(null); - }); - }); - } - else { - // if this only exists on the readable FS, add it to the - // delete map. - this$1.deletePath(p); - cb(null); - } - }); - }); - }; - UnlockedOverlayFS.prototype.unlinkSync = function unlinkSync (p) { - this.checkInitialized(); - this.checkPath(p); - if (this.existsSync(p)) { - if (this._writable.existsSync(p)) { - this._writable.unlinkSync(p); - } - // if it still exists add to the delete log - if (this.existsSync(p)) { - this.deletePath(p); - } - } - else { - throw ApiError.ENOENT(p); - } - }; - UnlockedOverlayFS.prototype.rmdir = function rmdir (p, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb)) { - return; - } - var rmdirLower = function () { - this$1.readdir(p, function (err, files) { - if (err) { - return cb(err); - } - if (files.length) { - return cb(ApiError.ENOTEMPTY(p)); - } - this$1.deletePath(p); - cb(null); - }); - }; - this.exists(p, function (exists) { - if (!exists) { - return cb(ApiError.ENOENT(p)); - } - this$1._writable.exists(p, function (writableExists) { - if (writableExists) { - this$1._writable.rmdir(p, function (err) { - if (err) { - return cb(err); - } - this$1._readable.exists(p, function (readableExists) { - if (readableExists) { - rmdirLower(); - } - else { - cb(); - } - }); - }); - } - else { - rmdirLower(); - } - }); - }); - }; - UnlockedOverlayFS.prototype.rmdirSync = function rmdirSync (p) { - this.checkInitialized(); - if (this.existsSync(p)) { - if (this._writable.existsSync(p)) { - this._writable.rmdirSync(p); - } - if (this.existsSync(p)) { - // Check if directory is empty. - if (this.readdirSync(p).length > 0) { - throw ApiError.ENOTEMPTY(p); - } - else { - this.deletePath(p); - } - } - } - else { - throw ApiError.ENOENT(p); - } - }; - UnlockedOverlayFS.prototype.mkdir = function mkdir (p, mode, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb)) { - return; - } - this.exists(p, function (exists) { - if (exists) { - return cb(ApiError.EEXIST(p)); - } - // The below will throw should any of the parent directories - // fail to exist on _writable. - this$1.createParentDirectoriesAsync(p, function (err) { - if (err) { - return cb(err); - } - this$1._writable.mkdir(p, mode, cb); - }); - }); - }; - UnlockedOverlayFS.prototype.mkdirSync = function mkdirSync (p, mode) { - this.checkInitialized(); - if (this.existsSync(p)) { - throw ApiError.EEXIST(p); - } - else { - // The below will throw should any of the parent directories fail to exist - // on _writable. - this.createParentDirectories(p); - this._writable.mkdirSync(p, mode); - } - }; - UnlockedOverlayFS.prototype.readdir = function readdir (p, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb)) { - return; - } - this.stat(p, false, function (err, dirStats) { - if (err) { - return cb(err); - } - if (!dirStats.isDirectory()) { - return cb(ApiError.ENOTDIR(p)); - } - this$1._writable.readdir(p, function (err, wFiles) { - if (err && err.code !== 'ENOENT') { - return cb(err); - } - else if (err || !wFiles) { - wFiles = []; - } - this$1._readable.readdir(p, function (err, rFiles) { - // if the directory doesn't exist on the lower FS set rFiles - // here to simplify the following code. - if (err || !rFiles) { - rFiles = []; - } - // Readdir in both, check delete log on read-only file system's files, merge, return. - var seenMap = {}; - var filtered = wFiles.concat(rFiles.filter(function (fPath) { return !this$1._deletedFiles[(p + "/" + fPath)]; })).filter(function (fPath) { - // Remove duplicates. - var result = !seenMap[fPath]; - seenMap[fPath] = true; - return result; - }); - cb(null, filtered); - }); - }); - }); - }; - UnlockedOverlayFS.prototype.readdirSync = function readdirSync (p) { - var this$1 = this; - - this.checkInitialized(); - var dirStats = this.statSync(p, false); - if (!dirStats.isDirectory()) { - throw ApiError.ENOTDIR(p); - } - // Readdir in both, check delete log on RO file system's listing, merge, return. - var contents = []; - try { - contents = contents.concat(this._writable.readdirSync(p)); - } - catch (e) { - // NOP. - } - try { - contents = contents.concat(this._readable.readdirSync(p).filter(function (fPath) { return !this$1._deletedFiles[(p + "/" + fPath)]; })); - } - catch (e) { - // NOP. - } - var seenMap = {}; - return contents.filter(function (fileP) { - var result = !seenMap[fileP]; - seenMap[fileP] = true; - return result; - }); - }; - UnlockedOverlayFS.prototype.exists = function exists (p, cb) { - var this$1 = this; - - // Cannot pass an error back to callback, so throw an exception instead - // if not initialized. - this.checkInitialized(); - this._writable.exists(p, function (existsWritable) { - if (existsWritable) { - return cb(true); - } - this$1._readable.exists(p, function (existsReadable) { - cb(existsReadable && this$1._deletedFiles[p] !== true); - }); - }); - }; - UnlockedOverlayFS.prototype.existsSync = function existsSync (p) { - this.checkInitialized(); - return this._writable.existsSync(p) || (this._readable.existsSync(p) && this._deletedFiles[p] !== true); - }; - UnlockedOverlayFS.prototype.chmod = function chmod (p, isLchmod, mode, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb)) { - return; - } - this.operateOnWritableAsync(p, function (err) { - if (err) { - return cb(err); - } - else { - this$1._writable.chmod(p, isLchmod, mode, cb); - } - }); - }; - UnlockedOverlayFS.prototype.chmodSync = function chmodSync (p, isLchmod, mode) { - var this$1 = this; - - this.checkInitialized(); - this.operateOnWritable(p, function () { - this$1._writable.chmodSync(p, isLchmod, mode); - }); - }; - UnlockedOverlayFS.prototype.chown = function chown (p, isLchmod, uid, gid, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb)) { - return; - } - this.operateOnWritableAsync(p, function (err) { - if (err) { - return cb(err); - } - else { - this$1._writable.chown(p, isLchmod, uid, gid, cb); - } - }); - }; - UnlockedOverlayFS.prototype.chownSync = function chownSync (p, isLchown, uid, gid) { - var this$1 = this; - - this.checkInitialized(); - this.operateOnWritable(p, function () { - this$1._writable.chownSync(p, isLchown, uid, gid); - }); - }; - UnlockedOverlayFS.prototype.utimes = function utimes (p, atime, mtime, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb)) { - return; - } - this.operateOnWritableAsync(p, function (err) { - if (err) { - return cb(err); - } - else { - this$1._writable.utimes(p, atime, mtime, cb); - } - }); - }; - UnlockedOverlayFS.prototype.utimesSync = function utimesSync (p, atime, mtime) { - var this$1 = this; - - this.checkInitialized(); - this.operateOnWritable(p, function () { - this$1._writable.utimesSync(p, atime, mtime); - }); - }; - UnlockedOverlayFS.prototype.deletePath = function deletePath (p) { - this._deletedFiles[p] = true; - this.updateLog(("d" + p + "\n")); - }; - UnlockedOverlayFS.prototype.updateLog = function updateLog (addition) { - var this$1 = this; - - this._deleteLog += addition; - if (this._deleteLogUpdatePending) { - this._deleteLogUpdateNeeded = true; - } - else { - this._deleteLogUpdatePending = true; - this._writable.writeFile(deletionLogPath, this._deleteLog, 'utf8', FileFlag.getFileFlag('w'), 420, function (e) { - this$1._deleteLogUpdatePending = false; - if (e) { - this$1._deleteLogError = e; - } - else if (this$1._deleteLogUpdateNeeded) { - this$1._deleteLogUpdateNeeded = false; - this$1.updateLog(''); - } - }); - } - }; - UnlockedOverlayFS.prototype._reparseDeletionLog = function _reparseDeletionLog () { - var this$1 = this; - - this._deletedFiles = {}; - this._deleteLog.split('\n').forEach(function (path$$1) { - // If the log entry begins w/ 'd', it's a deletion. - this$1._deletedFiles[path$$1.slice(1)] = path$$1.slice(0, 1) === 'd'; - }); - }; - UnlockedOverlayFS.prototype.checkInitialized = function checkInitialized () { - if (!this._isInitialized) { - throw new ApiError(ErrorCode.EPERM, "OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it."); - } - else if (this._deleteLogError !== null) { - var e = this._deleteLogError; - this._deleteLogError = null; - throw e; - } - }; - UnlockedOverlayFS.prototype.checkInitAsync = function checkInitAsync (cb) { - if (!this._isInitialized) { - cb(new ApiError(ErrorCode.EPERM, "OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it.")); - return false; - } - else if (this._deleteLogError !== null) { - var e = this._deleteLogError; - this._deleteLogError = null; - cb(e); - return false; - } - return true; - }; - UnlockedOverlayFS.prototype.checkPath = function checkPath (p) { - if (p === deletionLogPath) { - throw ApiError.EPERM(p); - } - }; - UnlockedOverlayFS.prototype.checkPathAsync = function checkPathAsync (p, cb) { - if (p === deletionLogPath) { - cb(ApiError.EPERM(p)); - return true; - } - return false; - }; - UnlockedOverlayFS.prototype.createParentDirectoriesAsync = function createParentDirectoriesAsync (p, cb) { - var parent = path.dirname(p); - var toCreate = []; - var self = this; - this._writable.stat(parent, false, statDone); - function statDone(err, stat) { - if (err) { - toCreate.push(parent); - parent = path.dirname(parent); - self._writable.stat(parent, false, statDone); - } - else { - createParents(); - } - } - function createParents() { - if (!toCreate.length) { - return cb(); - } - var dir = toCreate.pop(); - self._readable.stat(dir, false, function (err, stats) { - // stop if we couldn't read the dir - if (!stats) { - return cb(); - } - self._writable.mkdir(dir, stats.mode, function (err) { - if (err) { - return cb(err); - } - createParents(); - }); - }); - } - }; - /** - * With the given path, create the needed parent directories on the writable storage - * should they not exist. Use modes from the read-only storage. - */ - UnlockedOverlayFS.prototype.createParentDirectories = function createParentDirectories (p) { - var this$1 = this; - - var parent = path.dirname(p), toCreate = []; - while (!this._writable.existsSync(parent)) { - toCreate.push(parent); - parent = path.dirname(parent); - } - toCreate = toCreate.reverse(); - toCreate.forEach(function (p) { - this$1._writable.mkdirSync(p, this$1.statSync(p, false).mode); - }); - }; - /** - * Helper function: - * - Ensures p is on writable before proceeding. Throws an error if it doesn't exist. - * - Calls f to perform operation on writable. - */ - UnlockedOverlayFS.prototype.operateOnWritable = function operateOnWritable (p, f) { - if (this.existsSync(p)) { - if (!this._writable.existsSync(p)) { - // File is on readable storage. Copy to writable storage before - // changing its mode. - this.copyToWritable(p); - } - f(); - } - else { - throw ApiError.ENOENT(p); - } - }; - UnlockedOverlayFS.prototype.operateOnWritableAsync = function operateOnWritableAsync (p, cb) { - var this$1 = this; - - this.exists(p, function (exists) { - if (!exists) { - return cb(ApiError.ENOENT(p)); - } - this$1._writable.exists(p, function (existsWritable) { - if (existsWritable) { - cb(); - } - else { - return this$1.copyToWritableAsync(p, cb); - } - }); - }); - }; - /** - * Copy from readable to writable storage. - * PRECONDITION: File does not exist on writable storage. - */ - UnlockedOverlayFS.prototype.copyToWritable = function copyToWritable (p) { - var pStats = this.statSync(p, false); - if (pStats.isDirectory()) { - this._writable.mkdirSync(p, pStats.mode); - } - else { - this.writeFileSync(p, this._readable.readFileSync(p, null, getFlag('r')), null, getFlag('w'), this.statSync(p, false).mode); - } - }; - UnlockedOverlayFS.prototype.copyToWritableAsync = function copyToWritableAsync (p, cb) { - var this$1 = this; - - this.stat(p, false, function (err, pStats) { - if (err) { - return cb(err); - } - if (pStats.isDirectory()) { - return this$1._writable.mkdir(p, pStats.mode, cb); - } - // need to copy file. - this$1._readable.readFile(p, null, getFlag('r'), function (err, data) { - if (err) { - return cb(err); - } - this$1.writeFile(p, data, null, getFlag('w'), pStats.mode, cb); - }); - }); - }; - - return UnlockedOverlayFS; - }(BaseFileSystem)); - /** - * OverlayFS makes a read-only filesystem writable by storing writes on a second, - * writable file system. Deletes are persisted via metadata stored on the writable - * file system. - */ - var OverlayFS = (function (LockedFS$$1) { - function OverlayFS(writable, readable, deprecateMsg) { - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - LockedFS$$1.call(this, new UnlockedOverlayFS(writable, readable)); - deprecationMessage(deprecateMsg, OverlayFS.Name, { readable: "readable file system", writable: "writable file system" }); - } - - if ( LockedFS$$1 ) OverlayFS.__proto__ = LockedFS$$1; - OverlayFS.prototype = Object.create( LockedFS$$1 && LockedFS$$1.prototype ); - OverlayFS.prototype.constructor = OverlayFS; - /** - * Constructs and initializes an OverlayFS instance with the given options. - */ - OverlayFS.Create = function Create (opts, cb) { - try { - var fs = new OverlayFS(opts.writable, opts.readable, false); - fs.initialize(function (e) { - cb(e, fs); - }, false); - } - catch (e) { - cb(e); - } - }; - OverlayFS.isAvailable = function isAvailable () { - return UnlockedOverlayFS.isAvailable(); - }; - /** - * **Deprecated. Please use OverlayFS.Create() to construct and initialize OverlayFS instances.** - */ - OverlayFS.prototype.initialize = function initialize (cb, deprecateMsg) { - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - if (deprecateMsg) { - console.warn("[OverlayFS] OverlayFS.initialize() is deprecated and will be removed in the next major release. Please use 'OverlayFS.Create({readable: readable file system instance, writable: writable file system instance}, cb)' to create and initialize OverlayFS instances."); - } - LockedFS$$1.prototype.initialize.call(this, cb); - }; - OverlayFS.prototype.getOverlayedFileSystems = function getOverlayedFileSystems () { - return LockedFS$$1.prototype.getFSUnlocked.call(this).getOverlayedFileSystems(); - }; - OverlayFS.prototype.unwrap = function unwrap () { - return LockedFS$$1.prototype.getFSUnlocked.call(this); - }; - - return OverlayFS; - }(LockedFS)); - - OverlayFS.Name = "OverlayFS"; - OverlayFS.Options = { - writable: { - type: "object", - description: "The file system to write modified files to." - }, - readable: { - type: "object", - description: "The file system that initially populates this file system." - } - }; - - /** - * @hidden - */ - var SpecialArgType; - (function (SpecialArgType) { - // Callback - SpecialArgType[SpecialArgType["CB"] = 0] = "CB"; - // File descriptor - SpecialArgType[SpecialArgType["FD"] = 1] = "FD"; - // API error - SpecialArgType[SpecialArgType["API_ERROR"] = 2] = "API_ERROR"; - // Stats object - SpecialArgType[SpecialArgType["STATS"] = 3] = "STATS"; - // Initial probe for file system information. - SpecialArgType[SpecialArgType["PROBE"] = 4] = "PROBE"; - // FileFlag object. - SpecialArgType[SpecialArgType["FILEFLAG"] = 5] = "FILEFLAG"; - // Buffer object. - SpecialArgType[SpecialArgType["BUFFER"] = 6] = "BUFFER"; - // Generic Error object. - SpecialArgType[SpecialArgType["ERROR"] = 7] = "ERROR"; - })(SpecialArgType || (SpecialArgType = {})); - /** - * Converts callback arguments into ICallbackArgument objects, and back - * again. - * @hidden - */ - var CallbackArgumentConverter = function CallbackArgumentConverter() { - this._callbacks = {}; - this._nextId = 0; - }; - CallbackArgumentConverter.prototype.toRemoteArg = function toRemoteArg (cb) { - var id = this._nextId++; - this._callbacks[id] = cb; - return { - type: SpecialArgType.CB, - id: id - }; - }; - CallbackArgumentConverter.prototype.toLocalArg = function toLocalArg (id) { - var cb = this._callbacks[id]; - delete this._callbacks[id]; - return cb; - }; - /** - * @hidden - */ - var FileDescriptorArgumentConverter = function FileDescriptorArgumentConverter() { - this._fileDescriptors = {}; - this._nextId = 0; - }; - FileDescriptorArgumentConverter.prototype.toRemoteArg = function toRemoteArg (fd, p, flag, cb) { - var id = this._nextId++; - var data; - var stat; - this._fileDescriptors[id] = fd; - // Extract needed information asynchronously. - fd.stat(function (err, stats) { - if (err) { - cb(err); - } - else { - stat = bufferToTransferrableObject(stats.toBuffer()); - // If it's a readable flag, we need to grab contents. - if (flag.isReadable()) { - fd.read(Buffer.alloc(stats.size), 0, stats.size, 0, function (err, bytesRead, buff) { - if (err) { - cb(err); - } - else { - data = bufferToTransferrableObject(buff); - cb(null, { - type: SpecialArgType.FD, - id: id, - data: data, - stat: stat, - path: p, - flag: flag.getFlagString() - }); - } - }); - } - else { - // File is not readable, which means writing to it will append or - // truncate/replace existing contents. Return an empty arraybuffer. - cb(null, { - type: SpecialArgType.FD, - id: id, - data: new ArrayBuffer(0), - stat: stat, - path: p, - flag: flag.getFlagString() - }); - } - } - }); - }; - FileDescriptorArgumentConverter.prototype.applyFdAPIRequest = function applyFdAPIRequest (request, cb) { - var this$1 = this; - - var fdArg = request.args[0]; - this._applyFdChanges(fdArg, function (err, fd) { - if (err) { - cb(err); - } - else { - // Apply method on now-changed file descriptor. - fd[request.method](function (e) { - if (request.method === 'close') { - delete this$1._fileDescriptors[fdArg.id]; - } - cb(e); - }); - } - }); - }; - FileDescriptorArgumentConverter.prototype._applyFdChanges = function _applyFdChanges (remoteFd, cb) { - var fd = this._fileDescriptors[remoteFd.id], data = transferrableObjectToBuffer(remoteFd.data), remoteStats = Stats.fromBuffer(transferrableObjectToBuffer(remoteFd.stat)); - // Write data if the file is writable. - var flag = FileFlag.getFileFlag(remoteFd.flag); - if (flag.isWriteable()) { - // Appendable: Write to end of file. - // Writeable: Replace entire contents of file. - fd.write(data, 0, data.length, flag.isAppendable() ? fd.getPos() : 0, function (e) { - function applyStatChanges() { - // Check if mode changed. - fd.stat(function (e, stats) { - if (e) { - cb(e); - } - else { - if (stats.mode !== remoteStats.mode) { - fd.chmod(remoteStats.mode, function (e) { - cb(e, fd); - }); - } - else { - cb(e, fd); - } - } - }); - } - if (e) { - cb(e); - } - else { - // If writeable & not appendable, we need to ensure file contents are - // identical to those from the remote FD. Thus, we truncate to the - // length of the remote file. - if (!flag.isAppendable()) { - fd.truncate(data.length, function () { - applyStatChanges(); - }); - } - else { - applyStatChanges(); - } - } - }); - } - else { - cb(null, fd); - } - }; - /** - * @hidden - */ - function apiErrorLocal2Remote(e) { - return { - type: SpecialArgType.API_ERROR, - errorData: bufferToTransferrableObject(e.writeToBuffer()) - }; - } - /** - * @hidden - */ - function apiErrorRemote2Local(e) { - return ApiError.fromBuffer(transferrableObjectToBuffer(e.errorData)); - } - /** - * @hidden - */ - function errorLocal2Remote(e) { - return { - type: SpecialArgType.ERROR, - name: e.name, - message: e.message, - stack: e.stack - }; - } - /** - * @hidden - */ - function errorRemote2Local(e) { - var cnstr = global$1[e.name]; - if (typeof (cnstr) !== 'function') { - cnstr = Error; - } - var err = new cnstr(e.message); - err.stack = e.stack; - return err; - } - /** - * @hidden - */ - function statsLocal2Remote(stats) { - return { - type: SpecialArgType.STATS, - statsData: bufferToTransferrableObject(stats.toBuffer()) - }; - } - /** - * @hidden - */ - function statsRemote2Local(stats) { - return Stats.fromBuffer(transferrableObjectToBuffer(stats.statsData)); - } - /** - * @hidden - */ - function fileFlagLocal2Remote(flag) { - return { - type: SpecialArgType.FILEFLAG, - flagStr: flag.getFlagString() - }; - } - /** - * @hidden - */ - function fileFlagRemote2Local(remoteFlag) { - return FileFlag.getFileFlag(remoteFlag.flagStr); - } - /** - * @hidden - */ - function bufferToTransferrableObject(buff) { - return buffer2ArrayBuffer(buff); - } - /** - * @hidden - */ - function transferrableObjectToBuffer(buff) { - return arrayBuffer2Buffer(buff); - } - /** - * @hidden - */ - function bufferLocal2Remote(buff) { - return { - type: SpecialArgType.BUFFER, - data: bufferToTransferrableObject(buff) - }; - } - /** - * @hidden - */ - function bufferRemote2Local(buffArg) { - return transferrableObjectToBuffer(buffArg.data); - } - /** - * @hidden - */ - function isAPIRequest(data) { - return data && typeof data === 'object' && data.hasOwnProperty('browserfsMessage') && data['browserfsMessage']; - } - /** - * @hidden - */ - function isAPIResponse(data) { - return data && typeof data === 'object' && data.hasOwnProperty('browserfsMessage') && data['browserfsMessage']; - } - /** - * Represents a remote file in a different worker/thread. - */ - var WorkerFile = (function (PreloadFile$$1) { - function WorkerFile(_fs, _path, _flag, _stat, remoteFdId, contents) { - PreloadFile$$1.call(this, _fs, _path, _flag, _stat, contents); - this._remoteFdId = remoteFdId; - } - - if ( PreloadFile$$1 ) WorkerFile.__proto__ = PreloadFile$$1; - WorkerFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype ); - WorkerFile.prototype.constructor = WorkerFile; - WorkerFile.prototype.getRemoteFdId = function getRemoteFdId () { - return this._remoteFdId; - }; - /** - * @hidden - */ - WorkerFile.prototype.toRemoteArg = function toRemoteArg () { - return { - type: SpecialArgType.FD, - id: this._remoteFdId, - data: bufferToTransferrableObject(this.getBuffer()), - stat: bufferToTransferrableObject(this.getStats().toBuffer()), - path: this.getPath(), - flag: this.getFlag().getFlagString() - }; - }; - WorkerFile.prototype.sync = function sync (cb) { - this._syncClose('sync', cb); - }; - WorkerFile.prototype.close = function close (cb) { - this._syncClose('close', cb); - }; - WorkerFile.prototype._syncClose = function _syncClose (type, cb) { - var this$1 = this; - - if (this.isDirty()) { - this._fs.syncClose(type, this, function (e) { - if (!e) { - this$1.resetDirty(); - } - cb(e); - }); - } - else { - cb(); - } - }; - - return WorkerFile; - }(PreloadFile)); - /** - * WorkerFS lets you access a BrowserFS instance that is running in a different - * JavaScript context (e.g. access BrowserFS in one of your WebWorkers, or - * access BrowserFS running on the main page from a WebWorker). - * - * For example, to have a WebWorker access files in the main browser thread, - * do the following: - * - * MAIN BROWSER THREAD: - * - * ```javascript - * // Listen for remote file system requests. - * BrowserFS.FileSystem.WorkerFS.attachRemoteListener(webWorkerObject); - * ``` - * - * WEBWORKER THREAD: - * - * ```javascript - * // Set the remote file system as the root file system. - * BrowserFS.configure({ fs: "WorkerFS", options: { worker: self }}, function(e) { - * // Ready! - * }); - * ``` - * - * Note that synchronous operations are not permitted on the WorkerFS, regardless - * of the configuration option of the remote FS. - */ - var WorkerFS = (function (BaseFileSystem$$1) { - function WorkerFS(worker, deprecateMsg) { - var this$1 = this; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - BaseFileSystem$$1.call(this); - this._callbackConverter = new CallbackArgumentConverter(); - this._isInitialized = false; - this._isReadOnly = false; - this._supportLinks = false; - this._supportProps = false; - this._worker = worker; - deprecationMessage(deprecateMsg, WorkerFS.Name, { worker: "Web Worker instance" }); - this._worker.addEventListener('message', function (e) { - var resp = e.data; - if (isAPIResponse(resp)) { - var i; - var args = resp.args; - var fixedArgs = new Array(args.length); - // Dispatch event to correct id. - for (i = 0; i < fixedArgs.length; i++) { - fixedArgs[i] = this$1._argRemote2Local(args[i]); - } - this$1._callbackConverter.toLocalArg(resp.cbId).apply(null, fixedArgs); - } - }); - } - - if ( BaseFileSystem$$1 ) WorkerFS.__proto__ = BaseFileSystem$$1; - WorkerFS.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - WorkerFS.prototype.constructor = WorkerFS; - WorkerFS.Create = function Create (opts, cb) { - var fs = new WorkerFS(opts.worker, false); - fs.initialize(function () { - cb(null, fs); - }); - }; - WorkerFS.isAvailable = function isAvailable () { - return typeof (importScripts) !== 'undefined' || typeof (Worker) !== 'undefined'; - }; - /** - * Attaches a listener to the remote worker for file system requests. - */ - WorkerFS.attachRemoteListener = function attachRemoteListener (worker) { - var fdConverter = new FileDescriptorArgumentConverter(); - function argLocal2Remote(arg, requestArgs, cb) { - switch (typeof arg) { - case 'object': - if (arg instanceof Stats) { - cb(null, statsLocal2Remote(arg)); - } - else if (arg instanceof ApiError) { - cb(null, apiErrorLocal2Remote(arg)); - } - else if (arg instanceof BaseFile) { - // Pass in p and flags from original request. - cb(null, fdConverter.toRemoteArg(arg, requestArgs[0], requestArgs[1], cb)); - } - else if (arg instanceof FileFlag) { - cb(null, fileFlagLocal2Remote(arg)); - } - else if (arg instanceof Buffer) { - cb(null, bufferLocal2Remote(arg)); - } - else if (arg instanceof Error) { - cb(null, errorLocal2Remote(arg)); - } - else { - cb(null, arg); - } - break; - default: - cb(null, arg); - break; - } - } - function argRemote2Local(arg, fixedRequestArgs) { - if (!arg) { - return arg; - } - switch (typeof arg) { - case 'object': - if (typeof arg['type'] === 'number') { - var specialArg = arg; - switch (specialArg.type) { - case SpecialArgType.CB: - var cbId = arg.id; - return function () { - var arguments$1 = arguments; - - var i; - var fixedArgs = new Array(arguments.length); - var message, countdown = arguments.length; - function abortAndSendError(err) { - if (countdown > 0) { - countdown = -1; - message = { - browserfsMessage: true, - cbId: cbId, - args: [apiErrorLocal2Remote(err)] - }; - worker.postMessage(message); - } - } - for (i = 0; i < arguments.length; i++) { - // Capture i and argument. - (function (i, arg) { - argLocal2Remote(arg, fixedRequestArgs, function (err, fixedArg) { - fixedArgs[i] = fixedArg; - if (err) { - abortAndSendError(err); - } - else if (--countdown === 0) { - message = { - browserfsMessage: true, - cbId: cbId, - args: fixedArgs - }; - worker.postMessage(message); - } - }); - })(i, arguments$1[i]); - } - if (arguments.length === 0) { - message = { - browserfsMessage: true, - cbId: cbId, - args: fixedArgs - }; - worker.postMessage(message); - } - }; - case SpecialArgType.API_ERROR: - return apiErrorRemote2Local(specialArg); - case SpecialArgType.STATS: - return statsRemote2Local(specialArg); - case SpecialArgType.FILEFLAG: - return fileFlagRemote2Local(specialArg); - case SpecialArgType.BUFFER: - return bufferRemote2Local(specialArg); - case SpecialArgType.ERROR: - return errorRemote2Local(specialArg); - default: - // No idea what this is. - return arg; - } - } - else { - return arg; - } - default: - return arg; - } - } - worker.addEventListener('message', function (e) { - var request = e.data; - if (isAPIRequest(request)) { - var args = request.args, fixedArgs = new Array(args.length); - switch (request.method) { - case 'close': - case 'sync': - (function () { - // File descriptor-relative methods. - var remoteCb = args[1]; - fdConverter.applyFdAPIRequest(request, function (err) { - // Send response. - var response = { - browserfsMessage: true, - cbId: remoteCb.id, - args: err ? [apiErrorLocal2Remote(err)] : [] - }; - worker.postMessage(response); - }); - })(); - break; - case 'probe': - (function () { - var rootFs = _fsMock.getRootFS(), remoteCb = args[1], probeResponse = { - type: SpecialArgType.PROBE, - isReadOnly: rootFs.isReadOnly(), - supportsLinks: rootFs.supportsLinks(), - supportsProps: rootFs.supportsProps() - }, response = { - browserfsMessage: true, - cbId: remoteCb.id, - args: [probeResponse] - }; - worker.postMessage(response); - })(); - break; - default: - // File system methods. - for (var i = 0; i < args.length; i++) { - fixedArgs[i] = argRemote2Local(args[i], fixedArgs); - } - var rootFS = _fsMock.getRootFS(); - rootFS[request.method].apply(rootFS, fixedArgs); - break; - } - } - }); - }; - WorkerFS.prototype.getName = function getName () { - return WorkerFS.Name; - }; - /** - * **Deprecated. Please use WorkerFS.Create() method to construct and initialize WorkerFS instances.** - * - * Called once both local and remote sides are set up. - */ - WorkerFS.prototype.initialize = function initialize (cb) { - var this$1 = this; - - if (!this._isInitialized) { - var message = { - browserfsMessage: true, - method: 'probe', - args: [this._argLocal2Remote(emptyBuffer()), this._callbackConverter.toRemoteArg(function (probeResponse) { - this$1._isInitialized = true; - this$1._isReadOnly = probeResponse.isReadOnly; - this$1._supportLinks = probeResponse.supportsLinks; - this$1._supportProps = probeResponse.supportsProps; - cb(); - })] - }; - this._worker.postMessage(message); - } - else { - cb(); - } - }; - WorkerFS.prototype.isReadOnly = function isReadOnly () { return this._isReadOnly; }; - WorkerFS.prototype.supportsSynch = function supportsSynch () { return false; }; - WorkerFS.prototype.supportsLinks = function supportsLinks () { return this._supportLinks; }; - WorkerFS.prototype.supportsProps = function supportsProps () { return this._supportProps; }; - WorkerFS.prototype.rename = function rename (oldPath, newPath, cb) { - this._rpc('rename', arguments); - }; - WorkerFS.prototype.stat = function stat (p, isLstat, cb) { - this._rpc('stat', arguments); - }; - WorkerFS.prototype.open = function open (p, flag, mode, cb) { - this._rpc('open', arguments); - }; - WorkerFS.prototype.unlink = function unlink (p, cb) { - this._rpc('unlink', arguments); - }; - WorkerFS.prototype.rmdir = function rmdir (p, cb) { - this._rpc('rmdir', arguments); - }; - WorkerFS.prototype.mkdir = function mkdir (p, mode, cb) { - this._rpc('mkdir', arguments); - }; - WorkerFS.prototype.readdir = function readdir (p, cb) { - this._rpc('readdir', arguments); - }; - WorkerFS.prototype.exists = function exists (p, cb) { - this._rpc('exists', arguments); - }; - WorkerFS.prototype.realpath = function realpath (p, cache, cb) { - this._rpc('realpath', arguments); - }; - WorkerFS.prototype.truncate = function truncate (p, len, cb) { - this._rpc('truncate', arguments); - }; - WorkerFS.prototype.readFile = function readFile (fname, encoding, flag, cb) { - this._rpc('readFile', arguments); - }; - WorkerFS.prototype.writeFile = function writeFile (fname, data, encoding, flag, mode, cb) { - this._rpc('writeFile', arguments); - }; - WorkerFS.prototype.appendFile = function appendFile (fname, data, encoding, flag, mode, cb) { - this._rpc('appendFile', arguments); - }; - WorkerFS.prototype.chmod = function chmod (p, isLchmod, mode, cb) { - this._rpc('chmod', arguments); - }; - WorkerFS.prototype.chown = function chown (p, isLchown, uid, gid, cb) { - this._rpc('chown', arguments); - }; - WorkerFS.prototype.utimes = function utimes (p, atime, mtime, cb) { - this._rpc('utimes', arguments); - }; - WorkerFS.prototype.link = function link (srcpath, dstpath, cb) { - this._rpc('link', arguments); - }; - WorkerFS.prototype.symlink = function symlink (srcpath, dstpath, type, cb) { - this._rpc('symlink', arguments); - }; - WorkerFS.prototype.readlink = function readlink (p, cb) { - this._rpc('readlink', arguments); - }; - WorkerFS.prototype.syncClose = function syncClose (method, fd, cb) { - this._worker.postMessage({ - browserfsMessage: true, - method: method, - args: [fd.toRemoteArg(), this._callbackConverter.toRemoteArg(cb)] - }); - }; - WorkerFS.prototype._argRemote2Local = function _argRemote2Local (arg) { - if (!arg) { - return arg; - } - switch (typeof arg) { - case 'object': - if (typeof arg['type'] === 'number') { - var specialArg = arg; - switch (specialArg.type) { - case SpecialArgType.API_ERROR: - return apiErrorRemote2Local(specialArg); - case SpecialArgType.FD: - var fdArg = specialArg; - return new WorkerFile(this, fdArg.path, FileFlag.getFileFlag(fdArg.flag), Stats.fromBuffer(transferrableObjectToBuffer(fdArg.stat)), fdArg.id, transferrableObjectToBuffer(fdArg.data)); - case SpecialArgType.STATS: - return statsRemote2Local(specialArg); - case SpecialArgType.FILEFLAG: - return fileFlagRemote2Local(specialArg); - case SpecialArgType.BUFFER: - return bufferRemote2Local(specialArg); - case SpecialArgType.ERROR: - return errorRemote2Local(specialArg); - default: - return arg; - } - } - else { - return arg; - } - default: - return arg; - } - }; - WorkerFS.prototype._rpc = function _rpc (methodName, args) { - var this$1 = this; - - var fixedArgs = new Array(args.length); - for (var i = 0; i < args.length; i++) { - fixedArgs[i] = this$1._argLocal2Remote(args[i]); - } - var message = { - browserfsMessage: true, - method: methodName, - args: fixedArgs - }; - this._worker.postMessage(message); - }; - /** - * Converts a local argument into a remote argument. Public so WorkerFile objects can call it. - */ - WorkerFS.prototype._argLocal2Remote = function _argLocal2Remote (arg) { - if (!arg) { - return arg; - } - switch (typeof arg) { - case "object": - if (arg instanceof Stats) { - return statsLocal2Remote(arg); - } - else if (arg instanceof ApiError) { - return apiErrorLocal2Remote(arg); - } - else if (arg instanceof WorkerFile) { - return arg.toRemoteArg(); - } - else if (arg instanceof FileFlag) { - return fileFlagLocal2Remote(arg); - } - else if (arg instanceof Buffer) { - return bufferLocal2Remote(arg); - } - else if (arg instanceof Error) { - return errorLocal2Remote(arg); - } - else { - return "Unknown argument"; - } - case "function": - return this._callbackConverter.toRemoteArg(arg); - default: - return arg; - } - }; - - return WorkerFS; - }(BaseFileSystem)); - - WorkerFS.Name = "WorkerFS"; - WorkerFS.Options = { - worker: { - type: "object", - description: "The target worker that you want to connect to, or the current worker if in a worker context.", - validator: function (v, cb) { - // Check for a `postMessage` function. - if (v['postMessage']) { - cb(); - } - else { - cb(new ApiError(ErrorCode.EINVAL, "option must be a Web Worker instance.")); - } - } - } - }; - - /** - * Contains utility methods for performing a variety of tasks with - * XmlHttpRequest across browsers. - */ - function asyncDownloadFileModern(p, type, cb) { - var req = new XMLHttpRequest(); - req.open('GET', p, true); - var jsonSupported = true; - switch (type) { - case 'buffer': - req.responseType = 'arraybuffer'; - break; - case 'json': - // Some browsers don't support the JSON response type. - // They either reset responseType, or throw an exception. - // @see https://github.com/Modernizr/Modernizr/blob/master/src/testXhrType.js - try { - req.responseType = 'json'; - jsonSupported = req.responseType === 'json'; - } - catch (e) { - jsonSupported = false; - } - break; - default: - return cb(new ApiError(ErrorCode.EINVAL, "Invalid download type: " + type)); - } - req.onreadystatechange = function (e) { - if (req.readyState === 4) { - if (req.status === 200) { - switch (type) { - case 'buffer': - // XXX: WebKit-based browsers return *null* when XHRing an empty file. - return cb(null, req.response ? Buffer.from(req.response) : emptyBuffer()); - case 'json': - if (jsonSupported) { - return cb(null, req.response); - } - else { - return cb(null, JSON.parse(req.responseText)); - } - } - } - else { - return cb(new ApiError(req.status, "XHR error.")); - } - } - }; - req.send(); - } - function syncDownloadFileModern(p, type) { - var req = new XMLHttpRequest(); - req.open('GET', p, false); - // On most platforms, we cannot set the responseType of synchronous downloads. - // @todo Test for this; IE10 allows this, as do older versions of Chrome/FF. - var data = null; - var err = null; - // Classic hack to download binary data as a string. - req.overrideMimeType('text/plain; charset=x-user-defined'); - req.onreadystatechange = function (e) { - if (req.readyState === 4) { - if (req.status === 200) { - switch (type) { - case 'buffer': - // Convert the text into a buffer. - var text = req.responseText; - data = Buffer.alloc(text.length); - // Throw away the upper bits of each character. - for (var i = 0; i < text.length; i++) { - // This will automatically throw away the upper bit of each - // character for us. - data[i] = text.charCodeAt(i); - } - return; - case 'json': - data = JSON.parse(req.responseText); - return; - } - } - else { - err = new ApiError(req.status, "XHR error."); - return; - } - } - }; - req.send(); - if (err) { - throw err; - } - return data; - } - function syncDownloadFileIE10(p, type) { - var req = new XMLHttpRequest(); - req.open('GET', p, false); - switch (type) { - case 'buffer': - req.responseType = 'arraybuffer'; - break; - case 'json': - // IE10 does not support the JSON type. - break; - default: - throw new ApiError(ErrorCode.EINVAL, "Invalid download type: " + type); - } - var data; - var err; - req.onreadystatechange = function (e) { - if (req.readyState === 4) { - if (req.status === 200) { - switch (type) { - case 'buffer': - data = Buffer.from(req.response); - break; - case 'json': - data = JSON.parse(req.response); - break; - } - } - else { - err = new ApiError(req.status, "XHR error."); - } - } - }; - req.send(); - if (err) { - throw err; - } - return data; - } - /** - * @hidden - */ - function getFileSize(async, p, cb) { - var req = new XMLHttpRequest(); - req.open('HEAD', p, async); - req.onreadystatechange = function (e) { - if (req.readyState === 4) { - if (req.status === 200) { - try { - return cb(null, parseInt(req.getResponseHeader('Content-Length') || '-1', 10)); - } - catch (e) { - // In the event that the header isn't present or there is an error... - return cb(new ApiError(ErrorCode.EIO, "XHR HEAD error: Could not read content-length.")); - } - } - else { - return cb(new ApiError(req.status, "XHR HEAD error.")); - } - } - }; - req.send(); - } - /** - * Asynchronously download a file as a buffer or a JSON object. - * Note that the third function signature with a non-specialized type is - * invalid, but TypeScript requires it when you specialize string arguments to - * constants. - * @hidden - */ - var asyncDownloadFile = asyncDownloadFileModern; - /** - * Synchronously download a file as a buffer or a JSON object. - * Note that the third function signature with a non-specialized type is - * invalid, but TypeScript requires it when you specialize string arguments to - * constants. - * @hidden - */ - var syncDownloadFile = (isIE && typeof Blob !== 'undefined') ? syncDownloadFileIE10 : syncDownloadFileModern; - /** - * Synchronously retrieves the size of the given file in bytes. - * @hidden - */ - function getFileSizeSync(p) { - var rv = -1; - getFileSize(false, p, function (err, size) { - if (err) { - throw err; - } - rv = size; - }); - return rv; - } - /** - * Asynchronously retrieves the size of the given file in bytes. - * @hidden - */ - function getFileSizeAsync(p, cb) { - getFileSize(true, p, cb); - } - - /** - * A simple class for storing a filesystem index. Assumes that all paths passed - * to it are *absolute* paths. - * - * Can be used as a partial or a full index, although care must be taken if used - * for the former purpose, especially when directories are concerned. - */ - var FileIndex = function FileIndex() { - // _index is a single-level key,value store that maps *directory* paths to - // DirInodes. File information is only contained in DirInodes themselves. - this._index = {}; - // Create the root directory. - this.addPath('/', new DirInode()); - }; - /** - * Static method for constructing indices from a JSON listing. - * @param listing Directory listing generated by tools/XHRIndexer.coffee - * @return A new FileIndex object. - */ - FileIndex.fromListing = function fromListing (listing) { - var idx = new FileIndex(); - // Add a root DirNode. - var rootInode = new DirInode(); - idx._index['/'] = rootInode; - var queue = [['', listing, rootInode]]; - while (queue.length > 0) { - var inode = (void 0); - var next = queue.pop(); - var pwd = next[0]; - var tree = next[1]; - var parent = next[2]; - for (var node in tree) { - if (tree.hasOwnProperty(node)) { - var children = tree[node]; - var name = pwd + "/" + node; - if (children) { - idx._index[name] = inode = new DirInode(); - queue.push([name, children, inode]); - } - else { - // This inode doesn't have correct size information, noted with -1. - inode = new FileInode(new Stats(FileType.FILE, -1, 0x16D)); - } - if (parent) { - parent._ls[node] = inode; - } - } - } - } - return idx; - }; - /** - * Runs the given function over all files in the index. - */ - FileIndex.prototype.fileIterator = function fileIterator (cb) { - var this$1 = this; - - for (var path$$1 in this$1._index) { - if (this$1._index.hasOwnProperty(path$$1)) { - var dir = this$1._index[path$$1]; - var files = dir.getListing(); - for (var i = 0, list = files; i < list.length; i += 1) { - var file = list[i]; - - var item = dir.getItem(file); - if (isFileInode(item)) { - cb(item.getData()); - } - } - } - } - }; - /** - * Adds the given absolute path to the index if it is not already in the index. - * Creates any needed parent directories. - * @param path The path to add to the index. - * @param inode The inode for the - * path to add. - * @return 'True' if it was added or already exists, 'false' if there - * was an issue adding it (e.g. item in path is a file, item exists but is - * different). - * @todo If adding fails and implicitly creates directories, we do not clean up - * the new empty directories. - */ - FileIndex.prototype.addPath = function addPath (path$$1, inode) { - if (!inode) { - throw new Error('Inode must be specified'); - } - if (path$$1[0] !== '/') { - throw new Error('Path must be absolute, got: ' + path$$1); - } - // Check if it already exists. - if (this._index.hasOwnProperty(path$$1)) { - return this._index[path$$1] === inode; - } - var splitPath = this._split_path(path$$1); - var dirpath = splitPath[0]; - var itemname = splitPath[1]; - // Try to add to its parent directory first. - var parent = this._index[dirpath]; - if (parent === undefined && path$$1 !== '/') { - // Create parent. - parent = new DirInode(); - if (!this.addPath(dirpath, parent)) { - return false; - } - } - // Add myself to my parent. - if (path$$1 !== '/') { - if (!parent.addItem(itemname, inode)) { - return false; - } - } - // If I'm a directory, add myself to the index. - if (isDirInode(inode)) { - this._index[path$$1] = inode; - } - return true; - }; - /** - * Adds the given absolute path to the index if it is not already in the index. - * The path is added without special treatment (no joining of adjacent separators, etc). - * Creates any needed parent directories. - * @param path The path to add to the index. - * @param inode The inode for the - * path to add. - * @return 'True' if it was added or already exists, 'false' if there - * was an issue adding it (e.g. item in path is a file, item exists but is - * different). - * @todo If adding fails and implicitly creates directories, we do not clean up - * the new empty directories. - */ - FileIndex.prototype.addPathFast = function addPathFast (path$$1, inode) { - var itemNameMark = path$$1.lastIndexOf('/'); - var parentPath = itemNameMark === 0 ? "/" : path$$1.substring(0, itemNameMark); - var itemName = path$$1.substring(itemNameMark + 1); - // Try to add to its parent directory first. - var parent = this._index[parentPath]; - if (parent === undefined) { - // Create parent. - parent = new DirInode(); - this.addPathFast(parentPath, parent); - } - if (!parent.addItem(itemName, inode)) { - return false; - } - // If adding a directory, add to the index as well. - if (inode.isDir()) { - this._index[path$$1] = inode; - } - return true; - }; - /** - * Removes the given path. Can be a file or a directory. - * @return The removed item, - * or null if it did not exist. - */ - FileIndex.prototype.removePath = function removePath (path$$1) { - var this$1 = this; - - var splitPath = this._split_path(path$$1); - var dirpath = splitPath[0]; - var itemname = splitPath[1]; - // Try to remove it from its parent directory first. - var parent = this._index[dirpath]; - if (parent === undefined) { - return null; - } - // Remove myself from my parent. - var inode = parent.remItem(itemname); - if (inode === null) { - return null; - } - // If I'm a directory, remove myself from the index, and remove my children. - if (isDirInode(inode)) { - var children = inode.getListing(); - for (var i = 0, list = children; i < list.length; i += 1) { - var child = list[i]; - - this$1.removePath(path$$1 + '/' + child); - } - // Remove the directory from the index, unless it's the root. - if (path$$1 !== '/') { - delete this._index[path$$1]; - } - } - return inode; - }; - /** - * Retrieves the directory listing of the given path. - * @return An array of files in the given path, or 'null' if it does not exist. - */ - FileIndex.prototype.ls = function ls (path$$1) { - var item = this._index[path$$1]; - if (item === undefined) { - return null; - } - return item.getListing(); - }; - /** - * Returns the inode of the given item. - * @return Returns null if the item does not exist. - */ - FileIndex.prototype.getInode = function getInode (path$$1) { - var splitPath = this._split_path(path$$1); - var dirpath = splitPath[0]; - var itemname = splitPath[1]; - // Retrieve from its parent directory. - var parent = this._index[dirpath]; - if (parent === undefined) { - return null; - } - // Root case - if (dirpath === path$$1) { - return parent; - } - return parent.getItem(itemname); - }; - /** - * Split into a (directory path, item name) pair - */ - FileIndex.prototype._split_path = function _split_path (p) { - var dirpath = path.dirname(p); - var itemname = p.substr(dirpath.length + (dirpath === "/" ? 0 : 1)); - return [dirpath, itemname]; - }; - /** - * Inode for a file. Stores an arbitrary (filesystem-specific) data payload. - */ - var FileInode = function FileInode(data) { - this.data = data; - }; - FileInode.prototype.isFile = function isFile () { return true; }; - FileInode.prototype.isDir = function isDir () { return false; }; - FileInode.prototype.getData = function getData () { return this.data; }; - FileInode.prototype.setData = function setData (data) { this.data = data; }; - /** - * Inode for a directory. Currently only contains the directory listing. - */ - var DirInode = function DirInode(data) { - if ( data === void 0 ) data = null; - - this.data = data; - this._ls = {}; - }; - DirInode.prototype.isFile = function isFile () { - return false; - }; - DirInode.prototype.isDir = function isDir () { - return true; - }; - DirInode.prototype.getData = function getData () { return this.data; }; - /** - * Return a Stats object for this inode. - * @todo Should probably remove this at some point. This isn't the - * responsibility of the FileIndex. - */ - DirInode.prototype.getStats = function getStats () { - return new Stats(FileType.DIRECTORY, 4096, 0x16D); - }; - /** - * Returns the directory listing for this directory. Paths in the directory are - * relative to the directory's path. - * @return The directory listing for this directory. - */ - DirInode.prototype.getListing = function getListing () { - return Object.keys(this._ls); - }; - /** - * Returns the inode for the indicated item, or null if it does not exist. - * @param p Name of item in this directory. - */ - DirInode.prototype.getItem = function getItem (p) { - var item = this._ls[p]; - return item ? item : null; - }; - /** - * Add the given item to the directory listing. Note that the given inode is - * not copied, and will be mutated by the DirInode if it is a DirInode. - * @param p Item name to add to the directory listing. - * @param inode The inode for the - * item to add to the directory inode. - * @return True if it was added, false if it already existed. - */ - DirInode.prototype.addItem = function addItem (p, inode) { - if (p in this._ls) { - return false; - } - this._ls[p] = inode; - return true; - }; - /** - * Removes the given item from the directory listing. - * @param p Name of item to remove from the directory listing. - * @return Returns the item - * removed, or null if the item did not exist. - */ - DirInode.prototype.remItem = function remItem (p) { - var item = this._ls[p]; - if (item === undefined) { - return null; - } - delete this._ls[p]; - return item; - }; - /** - * @hidden - */ - function isFileInode(inode) { - return !!inode && inode.isFile(); - } - /** - * @hidden - */ - function isDirInode(inode) { - return !!inode && inode.isDir(); - } - - /** - * Try to convert the given buffer into a string, and pass it to the callback. - * Optimization that removes the needed try/catch into a helper function, as - * this is an uncommon case. - * @hidden - */ - function tryToString(buff, encoding, cb) { - try { - cb(null, buff.toString(encoding)); - } - catch (e) { - cb(e); - } - } - /** - * A simple filesystem backed by XMLHttpRequests. You must create a directory listing using the - * `make_xhrfs_index` tool provided by BrowserFS. - * - * If you install BrowserFS globally with `npm i -g browserfs`, you can generate a listing by - * running `make_xhrfs_index` in your terminal in the directory you would like to index: - * - * ``` - * make_xhrfs_index > index.json - * ``` - * - * Listings objects look like the following: - * - * ```json - * { - * "home": { - * "jvilk": { - * "someFile.txt": null, - * "someDir": { - * // Empty directory - * } - * } - * } - * } - * ``` - * - * *This example has the folder `/home/jvilk` with subfile `someFile.txt` and subfolder `someDir`.* - */ - var XmlHttpRequest = (function (BaseFileSystem$$1) { - function XmlHttpRequest(listingUrlOrObj, prefixUrl, deprecateMsg) { - if ( prefixUrl === void 0 ) prefixUrl = ''; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - BaseFileSystem$$1.call(this); - if (!listingUrlOrObj) { - listingUrlOrObj = 'index.json'; - } - // prefix_url must end in a directory separator. - if (prefixUrl.length > 0 && prefixUrl.charAt(prefixUrl.length - 1) !== '/') { - prefixUrl = prefixUrl + '/'; - } - this.prefixUrl = prefixUrl; - var listing = null; - if (typeof (listingUrlOrObj) === "string") { - listing = this._requestFileSync(listingUrlOrObj, 'json'); - if (!listing) { - throw new Error("Unable to find listing at URL: ${listingUrlOrObj}"); - } - } - else { - listing = listingUrlOrObj; - } - deprecationMessage(deprecateMsg, XmlHttpRequest.Name, { index: typeof (listingUrlOrObj) === "string" ? listingUrlOrObj : "file index as an object", baseUrl: prefixUrl }); - this._index = FileIndex.fromListing(listing); - } - - if ( BaseFileSystem$$1 ) XmlHttpRequest.__proto__ = BaseFileSystem$$1; - XmlHttpRequest.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - XmlHttpRequest.prototype.constructor = XmlHttpRequest; - /** - * Construct an XmlHttpRequest file system backend with the given options. - */ - XmlHttpRequest.Create = function Create (opts, cb) { - if (opts.index === undefined) { - opts.index = "index.json"; - } - if (typeof (opts.index) === "string") { - XmlHttpRequest.FromURL(opts.index, cb, opts.baseUrl, false); - } - else { - cb(null, new XmlHttpRequest(opts.index, opts.baseUrl, false)); - } - }; - XmlHttpRequest.isAvailable = function isAvailable () { - return typeof (XMLHttpRequest) !== "undefined" && XMLHttpRequest !== null; - }; - /** - * **Deprecated. Please use XmlHttpRequest.Create() method instead to construct XmlHttpRequest objects.** - * - * Constructs an XmlHttpRequest object using the directory listing at the given URL. - * Uses the base URL as the URL prefix for fetched files. - * @param cb Called when the file system has been instantiated, or if an error occurs. - */ - XmlHttpRequest.FromURL = function FromURL (url, cb, baseUrl, deprecateMsg) { - if ( baseUrl === void 0 ) baseUrl = url.slice(0, url.lastIndexOf('/') + 1); - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - if (deprecateMsg) { - console.warn(("[XmlHttpRequest] XmlHttpRequest.FromURL() is deprecated and will be removed in the next major release. Please use 'XmlHttpRequest.Create({ index: \"" + url + "\", baseUrl: \"" + baseUrl + "\" }, cb)' instead.")); - } - asyncDownloadFile(url, "json", function (e, data) { - if (e) { - cb(e); - } - else { - cb(null, new XmlHttpRequest(data, baseUrl, false)); - } - }); - }; - XmlHttpRequest.prototype.empty = function empty () { - this._index.fileIterator(function (file) { - file.fileData = null; - }); - }; - XmlHttpRequest.prototype.getName = function getName () { - return XmlHttpRequest.Name; - }; - XmlHttpRequest.prototype.diskSpace = function diskSpace (path$$1, cb) { - // Read-only file system. We could calculate the total space, but that's not - // important right now. - cb(0, 0); - }; - XmlHttpRequest.prototype.isReadOnly = function isReadOnly () { - return true; - }; - XmlHttpRequest.prototype.supportsLinks = function supportsLinks () { - return false; - }; - XmlHttpRequest.prototype.supportsProps = function supportsProps () { - return false; - }; - XmlHttpRequest.prototype.supportsSynch = function supportsSynch () { - return true; - }; - /** - * Special XHR function: Preload the given file into the index. - * @param [String] path - * @param [BrowserFS.Buffer] buffer - */ - XmlHttpRequest.prototype.preloadFile = function preloadFile (path$$1, buffer$$1) { - var inode = this._index.getInode(path$$1); - if (isFileInode(inode)) { - if (inode === null) { - throw ApiError.ENOENT(path$$1); - } - var stats = inode.getData(); - stats.size = buffer$$1.length; - stats.fileData = buffer$$1; - } - else { - throw ApiError.EISDIR(path$$1); - } - }; - XmlHttpRequest.prototype.stat = function stat (path$$1, isLstat, cb) { - var inode = this._index.getInode(path$$1); - if (inode === null) { - return cb(ApiError.ENOENT(path$$1)); - } - var stats; - if (isFileInode(inode)) { - stats = inode.getData(); - // At this point, a non-opened file will still have default stats from the listing. - if (stats.size < 0) { - this._requestFileSizeAsync(path$$1, function (e, size) { - if (e) { - return cb(e); - } - stats.size = size; - cb(null, stats.clone()); - }); - } - else { - cb(null, stats.clone()); - } - } - else if (isDirInode(inode)) { - stats = inode.getStats(); - cb(null, stats); - } - else { - cb(ApiError.FileError(ErrorCode.EINVAL, path$$1)); - } - }; - XmlHttpRequest.prototype.statSync = function statSync (path$$1, isLstat) { - var inode = this._index.getInode(path$$1); - if (inode === null) { - throw ApiError.ENOENT(path$$1); - } - var stats; - if (isFileInode(inode)) { - stats = inode.getData(); - // At this point, a non-opened file will still have default stats from the listing. - if (stats.size < 0) { - stats.size = this._requestFileSizeSync(path$$1); - } - } - else if (isDirInode(inode)) { - stats = inode.getStats(); - } - else { - throw ApiError.FileError(ErrorCode.EINVAL, path$$1); - } - return stats; - }; - XmlHttpRequest.prototype.open = function open (path$$1, flags, mode, cb) { - // INVARIANT: You can't write to files on this file system. - if (flags.isWriteable()) { - return cb(new ApiError(ErrorCode.EPERM, path$$1)); - } - var self = this; - // Check if the path exists, and is a file. - var inode = this._index.getInode(path$$1); - if (inode === null) { - return cb(ApiError.ENOENT(path$$1)); - } - if (isFileInode(inode)) { - var stats = inode.getData(); - switch (flags.pathExistsAction()) { - case ActionType.THROW_EXCEPTION: - case ActionType.TRUNCATE_FILE: - return cb(ApiError.EEXIST(path$$1)); - case ActionType.NOP: - // Use existing file contents. - // XXX: Uh, this maintains the previously-used flag. - if (stats.fileData) { - return cb(null, new NoSyncFile(self, path$$1, flags, stats.clone(), stats.fileData)); - } - // @todo be lazier about actually requesting the file - this._requestFileAsync(path$$1, 'buffer', function (err, buffer$$1) { - if (err) { - return cb(err); - } - // we don't initially have file sizes - stats.size = buffer$$1.length; - stats.fileData = buffer$$1; - return cb(null, new NoSyncFile(self, path$$1, flags, stats.clone(), buffer$$1)); - }); - break; - default: - return cb(new ApiError(ErrorCode.EINVAL, 'Invalid FileMode object.')); - } - } - else { - return cb(ApiError.EISDIR(path$$1)); - } - }; - XmlHttpRequest.prototype.openSync = function openSync (path$$1, flags, mode) { - // INVARIANT: You can't write to files on this file system. - if (flags.isWriteable()) { - throw new ApiError(ErrorCode.EPERM, path$$1); - } - // Check if the path exists, and is a file. - var inode = this._index.getInode(path$$1); - if (inode === null) { - throw ApiError.ENOENT(path$$1); - } - if (isFileInode(inode)) { - var stats = inode.getData(); - switch (flags.pathExistsAction()) { - case ActionType.THROW_EXCEPTION: - case ActionType.TRUNCATE_FILE: - throw ApiError.EEXIST(path$$1); - case ActionType.NOP: - // Use existing file contents. - // XXX: Uh, this maintains the previously-used flag. - if (stats.fileData) { - return new NoSyncFile(this, path$$1, flags, stats.clone(), stats.fileData); - } - // @todo be lazier about actually requesting the file - var buffer$$1 = this._requestFileSync(path$$1, 'buffer'); - // we don't initially have file sizes - stats.size = buffer$$1.length; - stats.fileData = buffer$$1; - return new NoSyncFile(this, path$$1, flags, stats.clone(), buffer$$1); - default: - throw new ApiError(ErrorCode.EINVAL, 'Invalid FileMode object.'); - } - } - else { - throw ApiError.EISDIR(path$$1); - } - }; - XmlHttpRequest.prototype.readdir = function readdir (path$$1, cb) { - try { - cb(null, this.readdirSync(path$$1)); - } - catch (e) { - cb(e); - } - }; - XmlHttpRequest.prototype.readdirSync = function readdirSync (path$$1) { - // Check if it exists. - var inode = this._index.getInode(path$$1); - if (inode === null) { - throw ApiError.ENOENT(path$$1); - } - else if (isDirInode(inode)) { - return inode.getListing(); - } - else { - throw ApiError.ENOTDIR(path$$1); - } - }; - /** - * We have the entire file as a buffer; optimize readFile. - */ - XmlHttpRequest.prototype.readFile = function readFile (fname, encoding, flag, cb) { - // Wrap cb in file closing code. - var oldCb = cb; - // Get file. - this.open(fname, flag, 0x1a4, function (err, fd) { - if (err) { - return cb(err); - } - cb = function (err, arg) { - fd.close(function (err2) { - if (!err) { - err = err2; - } - return oldCb(err, arg); - }); - }; - var fdCast = fd; - var fdBuff = fdCast.getBuffer(); - if (encoding === null) { - cb(err, copyingSlice(fdBuff)); - } - else { - tryToString(fdBuff, encoding, cb); - } - }); - }; - /** - * Specially-optimized readfile. - */ - XmlHttpRequest.prototype.readFileSync = function readFileSync (fname, encoding, flag) { - // Get file. - var fd = this.openSync(fname, flag, 0x1a4); - try { - var fdCast = fd; - var fdBuff = fdCast.getBuffer(); - if (encoding === null) { - return copyingSlice(fdBuff); - } - return fdBuff.toString(encoding); - } - finally { - fd.closeSync(); - } - }; - XmlHttpRequest.prototype.getXhrPath = function getXhrPath (filePath) { - if (filePath.charAt(0) === '/') { - filePath = filePath.slice(1); - } - return this.prefixUrl + filePath; - }; - XmlHttpRequest.prototype._requestFileAsync = function _requestFileAsync (p, type, cb) { - asyncDownloadFile(this.getXhrPath(p), type, cb); - }; - XmlHttpRequest.prototype._requestFileSync = function _requestFileSync (p, type) { - return syncDownloadFile(this.getXhrPath(p), type); - }; - /** - * Only requests the HEAD content, for the file size. - */ - XmlHttpRequest.prototype._requestFileSizeAsync = function _requestFileSizeAsync (path$$1, cb) { - getFileSizeAsync(this.getXhrPath(path$$1), cb); - }; - XmlHttpRequest.prototype._requestFileSizeSync = function _requestFileSizeSync (path$$1) { - return getFileSizeSync(this.getXhrPath(path$$1)); - }; - - return XmlHttpRequest; - }(BaseFileSystem)); - - XmlHttpRequest.Name = "XmlHttpRequest"; - XmlHttpRequest.Options = { - index: { - type: ["string", "object"], - optional: true, - description: "URL to a file index as a JSON file or the file index object itself, generated with the make_xhrfs_index script. Defaults to `index.json`." - }, - baseUrl: { - type: "string", - optional: true, - description: "Used as the URL prefix for fetched files. Default: Fetch files relative to the index." - } - }; - - /** - * (Nonstandard) String utility function for 8-bit ASCII with the extended - * character set. Unlike the ASCII above, we do not mask the high bits. - * - * Placed into a separate file so it can be used with other Buffer implementations. - * @see http://en.wikipedia.org/wiki/Extended_ASCII - */ - /** - * (Nonstandard) String utility function for 8-bit ASCII with the extended - * character set. Unlike the ASCII above, we do not mask the high bits. - * - * Placed into a separate file so it can be used with other Buffer implementations. - * @see http://en.wikipedia.org/wiki/Extended_ASCII - */ var ExtendedASCII = function ExtendedASCII () {}; - - ExtendedASCII.str2byte = function str2byte (str, buf) { - var length = str.length > buf.length ? buf.length : str.length; - for (var i = 0; i < length; i++) { - var charCode = str.charCodeAt(i); - if (charCode > 0x7F) { - // Check if extended ASCII. - var charIdx = ExtendedASCII.extendedChars.indexOf(str.charAt(i)); - if (charIdx > -1) { - charCode = charIdx + 0x80; - } - // Otherwise, keep it as-is. - } - buf[charCode] = i; - } - return length; - }; - ExtendedASCII.byte2str = function byte2str (buff) { - var chars = new Array(buff.length); - for (var i = 0; i < buff.length; i++) { - var charCode = buff[i]; - if (charCode > 0x7F) { - chars[i] = ExtendedASCII.extendedChars[charCode - 128]; - } - else { - chars[i] = String.fromCharCode(charCode); - } - } - return chars.join(''); - }; - ExtendedASCII.byteLength = function byteLength (str) { return str.length; }; - - ExtendedASCII.extendedChars = ['\u00C7', '\u00FC', '\u00E9', '\u00E2', '\u00E4', - '\u00E0', '\u00E5', '\u00E7', '\u00EA', '\u00EB', '\u00E8', '\u00EF', - '\u00EE', '\u00EC', '\u00C4', '\u00C5', '\u00C9', '\u00E6', '\u00C6', - '\u00F4', '\u00F6', '\u00F2', '\u00FB', '\u00F9', '\u00FF', '\u00D6', - '\u00DC', '\u00F8', '\u00A3', '\u00D8', '\u00D7', '\u0192', '\u00E1', - '\u00ED', '\u00F3', '\u00FA', '\u00F1', '\u00D1', '\u00AA', '\u00BA', - '\u00BF', '\u00AE', '\u00AC', '\u00BD', '\u00BC', '\u00A1', '\u00AB', - '\u00BB', '_', '_', '_', '\u00A6', '\u00A6', '\u00C1', '\u00C2', '\u00C0', - '\u00A9', '\u00A6', '\u00A6', '+', '+', '\u00A2', '\u00A5', '+', '+', '-', - '-', '+', '-', '+', '\u00E3', '\u00C3', '+', '+', '-', '-', '\u00A6', '-', - '+', '\u00A4', '\u00F0', '\u00D0', '\u00CA', '\u00CB', '\u00C8', 'i', - '\u00CD', '\u00CE', '\u00CF', '+', '+', '_', '_', '\u00A6', '\u00CC', '_', - '\u00D3', '\u00DF', '\u00D4', '\u00D2', '\u00F5', '\u00D5', '\u00B5', - '\u00FE', '\u00DE', '\u00DA', '\u00DB', '\u00D9', '\u00FD', '\u00DD', - '\u00AF', '\u00B4', '\u00AD', '\u00B1', '_', '\u00BE', '\u00B6', '\u00A7', - '\u00F7', '\u00B8', '\u00B0', '\u00A8', '\u00B7', '\u00B9', '\u00B3', - '\u00B2', '_', ' ']; - - /** - * @hidden - */ - var inflateRaw = __webpack_require__(31).inflateRaw; - /** - * Maps CompressionMethod => function that decompresses. - * @hidden - */ - var decompressionMethods = {}; - /** - * 4.4.2.2: Indicates the compatibiltiy of a file's external attributes. - */ - var ExternalFileAttributeType; - (function (ExternalFileAttributeType) { - ExternalFileAttributeType[ExternalFileAttributeType["MSDOS"] = 0] = "MSDOS"; - ExternalFileAttributeType[ExternalFileAttributeType["AMIGA"] = 1] = "AMIGA"; - ExternalFileAttributeType[ExternalFileAttributeType["OPENVMS"] = 2] = "OPENVMS"; - ExternalFileAttributeType[ExternalFileAttributeType["UNIX"] = 3] = "UNIX"; - ExternalFileAttributeType[ExternalFileAttributeType["VM_CMS"] = 4] = "VM_CMS"; - ExternalFileAttributeType[ExternalFileAttributeType["ATARI_ST"] = 5] = "ATARI_ST"; - ExternalFileAttributeType[ExternalFileAttributeType["OS2_HPFS"] = 6] = "OS2_HPFS"; - ExternalFileAttributeType[ExternalFileAttributeType["MAC"] = 7] = "MAC"; - ExternalFileAttributeType[ExternalFileAttributeType["Z_SYSTEM"] = 8] = "Z_SYSTEM"; - ExternalFileAttributeType[ExternalFileAttributeType["CP_M"] = 9] = "CP_M"; - ExternalFileAttributeType[ExternalFileAttributeType["NTFS"] = 10] = "NTFS"; - ExternalFileAttributeType[ExternalFileAttributeType["MVS"] = 11] = "MVS"; - ExternalFileAttributeType[ExternalFileAttributeType["VSE"] = 12] = "VSE"; - ExternalFileAttributeType[ExternalFileAttributeType["ACORN_RISC"] = 13] = "ACORN_RISC"; - ExternalFileAttributeType[ExternalFileAttributeType["VFAT"] = 14] = "VFAT"; - ExternalFileAttributeType[ExternalFileAttributeType["ALT_MVS"] = 15] = "ALT_MVS"; - ExternalFileAttributeType[ExternalFileAttributeType["BEOS"] = 16] = "BEOS"; - ExternalFileAttributeType[ExternalFileAttributeType["TANDEM"] = 17] = "TANDEM"; - ExternalFileAttributeType[ExternalFileAttributeType["OS_400"] = 18] = "OS_400"; - ExternalFileAttributeType[ExternalFileAttributeType["OSX"] = 19] = "OSX"; - })(ExternalFileAttributeType || (ExternalFileAttributeType = {})); - /** - * 4.4.5 - */ - var CompressionMethod; - (function (CompressionMethod) { - CompressionMethod[CompressionMethod["STORED"] = 0] = "STORED"; - CompressionMethod[CompressionMethod["SHRUNK"] = 1] = "SHRUNK"; - CompressionMethod[CompressionMethod["REDUCED_1"] = 2] = "REDUCED_1"; - CompressionMethod[CompressionMethod["REDUCED_2"] = 3] = "REDUCED_2"; - CompressionMethod[CompressionMethod["REDUCED_3"] = 4] = "REDUCED_3"; - CompressionMethod[CompressionMethod["REDUCED_4"] = 5] = "REDUCED_4"; - CompressionMethod[CompressionMethod["IMPLODE"] = 6] = "IMPLODE"; - CompressionMethod[CompressionMethod["DEFLATE"] = 8] = "DEFLATE"; - CompressionMethod[CompressionMethod["DEFLATE64"] = 9] = "DEFLATE64"; - CompressionMethod[CompressionMethod["TERSE_OLD"] = 10] = "TERSE_OLD"; - CompressionMethod[CompressionMethod["BZIP2"] = 12] = "BZIP2"; - CompressionMethod[CompressionMethod["LZMA"] = 14] = "LZMA"; - CompressionMethod[CompressionMethod["TERSE_NEW"] = 18] = "TERSE_NEW"; - CompressionMethod[CompressionMethod["LZ77"] = 19] = "LZ77"; - CompressionMethod[CompressionMethod["WAVPACK"] = 97] = "WAVPACK"; - CompressionMethod[CompressionMethod["PPMD"] = 98] = "PPMD"; // PPMd version I, Rev 1 - })(CompressionMethod || (CompressionMethod = {})); - /** - * Converts the input time and date in MS-DOS format into a JavaScript Date - * object. - * @hidden - */ - function msdos2date(time, date) { - // MS-DOS Date - // |0 0 0 0 0|0 0 0 0|0 0 0 0 0 0 0 - // D (1-31) M (1-23) Y (from 1980) - var day = date & 0x1F; - // JS date is 0-indexed, DOS is 1-indexed. - var month = ((date >> 5) & 0xF) - 1; - var year = (date >> 9) + 1980; - // MS DOS Time - // |0 0 0 0 0|0 0 0 0 0 0|0 0 0 0 0 - // Second Minute Hour - var second = time & 0x1F; - var minute = (time >> 5) & 0x3F; - var hour = time >> 11; - return new Date(year, month, day, hour, minute, second); - } - /** - * Safely returns the string from the buffer, even if it is 0 bytes long. - * (Normally, calling toString() on a buffer with start === end causes an - * exception). - * @hidden - */ - function safeToString(buff, useUTF8, start, length) { - if (length === 0) { - return ""; - } - else if (useUTF8) { - return buff.toString('utf8', start, start + length); - } - else { - return ExtendedASCII.byte2str(buff.slice(start, start + length)); - } - } - /* - 4.3.6 Overall .ZIP file format: - - [local file header 1] - [encryption header 1] - [file data 1] - [data descriptor 1] - . - . - . - [local file header n] - [encryption header n] - [file data n] - [data descriptor n] - [archive decryption header] - [archive extra data record] - [central directory header 1] - . - . - . - [central directory header n] - [zip64 end of central directory record] - [zip64 end of central directory locator] - [end of central directory record] - */ - /** - * 4.3.7 Local file header: - * - * local file header signature 4 bytes (0x04034b50) - * version needed to extract 2 bytes - * general purpose bit flag 2 bytes - * compression method 2 bytes - * last mod file time 2 bytes - * last mod file date 2 bytes - * crc-32 4 bytes - * compressed size 4 bytes - * uncompressed size 4 bytes - * file name length 2 bytes - * extra field length 2 bytes - * - * file name (variable size) - * extra field (variable size) - */ - var FileHeader = function FileHeader(data) { - this.data = data; - if (data.readUInt32LE(0) !== 0x04034b50) { - throw new ApiError(ErrorCode.EINVAL, "Invalid Zip file: Local file header has invalid signature: " + this.data.readUInt32LE(0)); - } - }; - FileHeader.prototype.versionNeeded = function versionNeeded () { return this.data.readUInt16LE(4); }; - FileHeader.prototype.flags = function flags () { return this.data.readUInt16LE(6); }; - FileHeader.prototype.compressionMethod = function compressionMethod () { return this.data.readUInt16LE(8); }; - FileHeader.prototype.lastModFileTime = function lastModFileTime () { - // Time and date is in MS-DOS format. - return msdos2date(this.data.readUInt16LE(10), this.data.readUInt16LE(12)); - }; - FileHeader.prototype.rawLastModFileTime = function rawLastModFileTime () { - return this.data.readUInt32LE(10); - }; - FileHeader.prototype.crc32 = function crc32 () { return this.data.readUInt32LE(14); }; - /** - * These two values are COMPLETELY USELESS. - * - * Section 4.4.9: - *If bit 3 of the general purpose bit flag is set, - *these fields are set to zero in the local header and the - *correct values are put in the data descriptor and - *in the central directory. - * - * So we'll just use the central directory's values. - */ - // public compressedSize(): number { return this.data.readUInt32LE(18); } - // public uncompressedSize(): number { return this.data.readUInt32LE(22); } - FileHeader.prototype.fileNameLength = function fileNameLength () { return this.data.readUInt16LE(26); }; - FileHeader.prototype.extraFieldLength = function extraFieldLength () { return this.data.readUInt16LE(28); }; - FileHeader.prototype.fileName = function fileName () { - return safeToString(this.data, this.useUTF8(), 30, this.fileNameLength()); - }; - FileHeader.prototype.extraField = function extraField () { - var start = 30 + this.fileNameLength(); - return this.data.slice(start, start + this.extraFieldLength()); - }; - FileHeader.prototype.totalSize = function totalSize () { return 30 + this.fileNameLength() + this.extraFieldLength(); }; - FileHeader.prototype.useUTF8 = function useUTF8 () { return (this.flags() & 0x800) === 0x800; }; - /** - * 4.3.8 File data - * - * Immediately following the local header for a file - * SHOULD be placed the compressed or stored data for the file. - * If the file is encrypted, the encryption header for the file - * SHOULD be placed after the local header and before the file - * data. The series of [local file header][encryption header] - * [file data][data descriptor] repeats for each file in the - * .ZIP archive. - * - * Zero-byte files, directories, and other file types that - * contain no content MUST not include file data. - */ - var FileData = function FileData(header, record, data) { - this.header = header; - this.record = record; - this.data = data; - }; - FileData.prototype.decompress = function decompress () { - // Check the compression - var compressionMethod = this.header.compressionMethod(); - var fcn = decompressionMethods[compressionMethod]; - if (fcn) { - return fcn(this.data, this.record.compressedSize(), this.record.uncompressedSize(), this.record.flag()); - } - else { - var name = CompressionMethod[compressionMethod]; - if (!name) { - name = "Unknown: " + compressionMethod; - } - throw new ApiError(ErrorCode.EINVAL, ("Invalid compression method on file '" + (this.header.fileName()) + "': " + name)); - } - }; - FileData.prototype.getHeader = function getHeader () { - return this.header; - }; - FileData.prototype.getRecord = function getRecord () { - return this.record; - }; - FileData.prototype.getRawData = function getRawData () { - return this.data; - }; - /** - * 4.3.9 Data descriptor: - * - * crc-32 4 bytes - * compressed size 4 bytes - * uncompressed size 4 bytes - */ - var DataDescriptor = function DataDescriptor(data) { - this.data = data; - }; - DataDescriptor.prototype.crc32 = function crc32 () { return this.data.readUInt32LE(0); }; - DataDescriptor.prototype.compressedSize = function compressedSize () { return this.data.readUInt32LE(4); }; - DataDescriptor.prototype.uncompressedSize = function uncompressedSize () { return this.data.readUInt32LE(8); }; - /* - ` 4.3.10 Archive decryption header: - - 4.3.10.1 The Archive Decryption Header is introduced in version 6.2 - of the ZIP format specification. This record exists in support - of the Central Directory Encryption Feature implemented as part of - the Strong Encryption Specification as described in this document. - When the Central Directory Structure is encrypted, this decryption - header MUST precede the encrypted data segment. - */ - /** - * 4.3.11 Archive extra data record: - * - * archive extra data signature 4 bytes (0x08064b50) - * extra field length 4 bytes - * extra field data (variable size) - * - * 4.3.11.1 The Archive Extra Data Record is introduced in version 6.2 - * of the ZIP format specification. This record MAY be used in support - * of the Central Directory Encryption Feature implemented as part of - * the Strong Encryption Specification as described in this document. - * When present, this record MUST immediately precede the central - * directory data structure. - */ - var ArchiveExtraDataRecord = function ArchiveExtraDataRecord(data) { - this.data = data; - if (this.data.readUInt32LE(0) !== 0x08064b50) { - throw new ApiError(ErrorCode.EINVAL, "Invalid archive extra data record signature: " + this.data.readUInt32LE(0)); - } - }; - ArchiveExtraDataRecord.prototype.length = function length () { return this.data.readUInt32LE(4); }; - ArchiveExtraDataRecord.prototype.extraFieldData = function extraFieldData () { return this.data.slice(8, 8 + this.length()); }; - /** - * 4.3.13 Digital signature: - * - * header signature 4 bytes (0x05054b50) - * size of data 2 bytes - * signature data (variable size) - * - * With the introduction of the Central Directory Encryption - * feature in version 6.2 of this specification, the Central - * Directory Structure MAY be stored both compressed and encrypted. - * Although not required, it is assumed when encrypting the - * Central Directory Structure, that it will be compressed - * for greater storage efficiency. Information on the - * Central Directory Encryption feature can be found in the section - * describing the Strong Encryption Specification. The Digital - * Signature record will be neither compressed nor encrypted. - */ - var DigitalSignature = function DigitalSignature(data) { - this.data = data; - if (this.data.readUInt32LE(0) !== 0x05054b50) { - throw new ApiError(ErrorCode.EINVAL, "Invalid digital signature signature: " + this.data.readUInt32LE(0)); - } - }; - DigitalSignature.prototype.size = function size () { return this.data.readUInt16LE(4); }; - DigitalSignature.prototype.signatureData = function signatureData () { return this.data.slice(6, 6 + this.size()); }; - /** - * 4.3.12 Central directory structure: - * - * central file header signature 4 bytes (0x02014b50) - * version made by 2 bytes - * version needed to extract 2 bytes - * general purpose bit flag 2 bytes - * compression method 2 bytes - * last mod file time 2 bytes - * last mod file date 2 bytes - * crc-32 4 bytes - * compressed size 4 bytes - * uncompressed size 4 bytes - * file name length 2 bytes - * extra field length 2 bytes - * file comment length 2 bytes - * disk number start 2 bytes - * internal file attributes 2 bytes - * external file attributes 4 bytes - * relative offset of local header 4 bytes - * - * file name (variable size) - * extra field (variable size) - * file comment (variable size) - */ - var CentralDirectory = function CentralDirectory(zipData, data) { - this.zipData = zipData; - this.data = data; - // Sanity check. - if (this.data.readUInt32LE(0) !== 0x02014b50) { - throw new ApiError(ErrorCode.EINVAL, ("Invalid Zip file: Central directory record has invalid signature: " + (this.data.readUInt32LE(0)))); - } - this._filename = this.produceFilename(); - }; - CentralDirectory.prototype.versionMadeBy = function versionMadeBy () { return this.data.readUInt16LE(4); }; - CentralDirectory.prototype.versionNeeded = function versionNeeded () { return this.data.readUInt16LE(6); }; - CentralDirectory.prototype.flag = function flag () { return this.data.readUInt16LE(8); }; - CentralDirectory.prototype.compressionMethod = function compressionMethod () { return this.data.readUInt16LE(10); }; - CentralDirectory.prototype.lastModFileTime = function lastModFileTime () { - // Time and date is in MS-DOS format. - return msdos2date(this.data.readUInt16LE(12), this.data.readUInt16LE(14)); - }; - CentralDirectory.prototype.rawLastModFileTime = function rawLastModFileTime () { - return this.data.readUInt32LE(12); - }; - CentralDirectory.prototype.crc32 = function crc32 () { return this.data.readUInt32LE(16); }; - CentralDirectory.prototype.compressedSize = function compressedSize () { return this.data.readUInt32LE(20); }; - CentralDirectory.prototype.uncompressedSize = function uncompressedSize () { return this.data.readUInt32LE(24); }; - CentralDirectory.prototype.fileNameLength = function fileNameLength () { return this.data.readUInt16LE(28); }; - CentralDirectory.prototype.extraFieldLength = function extraFieldLength () { return this.data.readUInt16LE(30); }; - CentralDirectory.prototype.fileCommentLength = function fileCommentLength () { return this.data.readUInt16LE(32); }; - CentralDirectory.prototype.diskNumberStart = function diskNumberStart () { return this.data.readUInt16LE(34); }; - CentralDirectory.prototype.internalAttributes = function internalAttributes () { return this.data.readUInt16LE(36); }; - CentralDirectory.prototype.externalAttributes = function externalAttributes () { return this.data.readUInt32LE(38); }; - CentralDirectory.prototype.headerRelativeOffset = function headerRelativeOffset () { return this.data.readUInt32LE(42); }; - CentralDirectory.prototype.produceFilename = function produceFilename () { - /* - 4.4.17.1 claims: - * All slashes are forward ('/') slashes. - * Filename doesn't begin with a slash. - * No drive letters or any nonsense like that. - * If filename is missing, the input came from standard input. - - Unfortunately, this isn't true in practice. Some Windows zip utilities use - a backslash here, but the correct Unix-style path in file headers. - - To avoid seeking all over the file to recover the known-good filenames - from file headers, we simply convert '/' to '\' here. - */ - var fileName = safeToString(this.data, this.useUTF8(), 46, this.fileNameLength()); - return fileName.replace(/\\/g, "/"); - }; - CentralDirectory.prototype.fileName = function fileName () { - return this._filename; - }; - CentralDirectory.prototype.rawFileName = function rawFileName () { - return this.data.slice(46, 46 + this.fileNameLength()); - }; - CentralDirectory.prototype.extraField = function extraField () { - var start = 44 + this.fileNameLength(); - return this.data.slice(start, start + this.extraFieldLength()); - }; - CentralDirectory.prototype.fileComment = function fileComment () { - var start = 46 + this.fileNameLength() + this.extraFieldLength(); - return safeToString(this.data, this.useUTF8(), start, this.fileCommentLength()); - }; - CentralDirectory.prototype.rawFileComment = function rawFileComment () { - var start = 46 + this.fileNameLength() + this.extraFieldLength(); - return this.data.slice(start, start + this.fileCommentLength()); - }; - CentralDirectory.prototype.totalSize = function totalSize () { - return 46 + this.fileNameLength() + this.extraFieldLength() + this.fileCommentLength(); - }; - CentralDirectory.prototype.isDirectory = function isDirectory () { - // NOTE: This assumes that the zip file implementation uses the lower byte - // of external attributes for DOS attributes for - // backwards-compatibility. This is not mandated, but appears to be - // commonplace. - // According to the spec, the layout of external attributes is - // platform-dependent. - // If that fails, we also check if the name of the file ends in '/', - // which is what Java's ZipFile implementation does. - var fileName = this.fileName(); - return (this.externalAttributes() & 0x10 ? true : false) || (fileName.charAt(fileName.length - 1) === '/'); - }; - CentralDirectory.prototype.isFile = function isFile () { return !this.isDirectory(); }; - CentralDirectory.prototype.useUTF8 = function useUTF8 () { return (this.flag() & 0x800) === 0x800; }; - CentralDirectory.prototype.isEncrypted = function isEncrypted () { return (this.flag() & 0x1) === 0x1; }; - CentralDirectory.prototype.getFileData = function getFileData () { - // Need to grab the header before we can figure out where the actual - // compressed data starts. - var start = this.headerRelativeOffset(); - var header = new FileHeader(this.zipData.slice(start)); - return new FileData(header, this, this.zipData.slice(start + header.totalSize())); - }; - CentralDirectory.prototype.getData = function getData () { - return this.getFileData().decompress(); - }; - CentralDirectory.prototype.getRawData = function getRawData () { - return this.getFileData().getRawData(); - }; - CentralDirectory.prototype.getStats = function getStats () { - return new Stats(FileType.FILE, this.uncompressedSize(), 0x16D, new Date(), this.lastModFileTime()); - }; - /** - * 4.3.16: end of central directory record - * end of central dir signature 4 bytes (0x06054b50) - * number of this disk 2 bytes - * number of the disk with the - * start of the central directory 2 bytes - * total number of entries in the - * central directory on this disk 2 bytes - * total number of entries in - * the central directory 2 bytes - * size of the central directory 4 bytes - * offset of start of central - * directory with respect to - * the starting disk number 4 bytes - * .ZIP file comment length 2 bytes - * .ZIP file comment (variable size) - */ - var EndOfCentralDirectory = function EndOfCentralDirectory(data) { - this.data = data; - if (this.data.readUInt32LE(0) !== 0x06054b50) { - throw new ApiError(ErrorCode.EINVAL, ("Invalid Zip file: End of central directory record has invalid signature: " + (this.data.readUInt32LE(0)))); - } - }; - EndOfCentralDirectory.prototype.diskNumber = function diskNumber () { return this.data.readUInt16LE(4); }; - EndOfCentralDirectory.prototype.cdDiskNumber = function cdDiskNumber () { return this.data.readUInt16LE(6); }; - EndOfCentralDirectory.prototype.cdDiskEntryCount = function cdDiskEntryCount () { return this.data.readUInt16LE(8); }; - EndOfCentralDirectory.prototype.cdTotalEntryCount = function cdTotalEntryCount () { return this.data.readUInt16LE(10); }; - EndOfCentralDirectory.prototype.cdSize = function cdSize () { return this.data.readUInt32LE(12); }; - EndOfCentralDirectory.prototype.cdOffset = function cdOffset () { return this.data.readUInt32LE(16); }; - EndOfCentralDirectory.prototype.cdZipCommentLength = function cdZipCommentLength () { return this.data.readUInt16LE(20); }; - EndOfCentralDirectory.prototype.cdZipComment = function cdZipComment () { - // Assuming UTF-8. The specification doesn't specify. - return safeToString(this.data, true, 22, this.cdZipCommentLength()); - }; - EndOfCentralDirectory.prototype.rawCdZipComment = function rawCdZipComment () { - return this.data.slice(22, 22 + this.cdZipCommentLength()); - }; - /** - * Contains the table of contents of a Zip file. - */ - var ZipTOC = function ZipTOC(index, directoryEntries, eocd, data) { - this.index = index; - this.directoryEntries = directoryEntries; - this.eocd = eocd; - this.data = data; - }; - /** - * Zip file-backed filesystem - * Implemented according to the standard: - * http://www.pkware.com/documents/casestudies/APPNOTE.TXT - * - * While there are a few zip libraries for JavaScript (e.g. JSZip and zip.js), - * they are not a good match for BrowserFS. In particular, these libraries - * perform a lot of unneeded data copying, and eagerly decompress every file - * in the zip file upon loading to check the CRC32. They also eagerly decode - * strings. Furthermore, these libraries duplicate functionality already present - * in BrowserFS (e.g. UTF-8 decoding and binary data manipulation). - * - * This filesystem takes advantage of BrowserFS's Buffer implementation, which - * efficiently represents the zip file in memory (in both ArrayBuffer-enabled - * browsers *and* non-ArrayBuffer browsers), and which can neatly be 'sliced' - * without copying data. Each struct defined in the standard is represented with - * a buffer slice pointing to an offset in the zip file, and has getters for - * each field. As we anticipate that this data will not be read often, we choose - * not to store each struct field in the JavaScript object; instead, to reduce - * memory consumption, we retrieve it directly from the binary data each time it - * is requested. - * - * When the filesystem is instantiated, we determine the directory structure - * of the zip file as quickly as possible. We lazily decompress and check the - * CRC32 of files. We do not cache decompressed files; if this is a desired - * feature, it is best implemented as a generic file system wrapper that can - * cache data from arbitrary file systems. - * - * For inflation, we use `pako`'s implementation: - * https://github.com/nodeca/pako - * - * Current limitations: - * * No encryption. - * * No ZIP64 support. - * * Read-only. - * Write support would require that we: - * - Keep track of changed/new files. - * - Compress changed files, and generate appropriate metadata for each. - * - Update file offsets for other files in the zip file. - * - Stream it out to a location. - * This isn't that bad, so we might do this at a later date. - */ - var ZipFS = (function (SynchronousFileSystem$$1) { - function ZipFS(input, name, deprecateMsg) { - if ( name === void 0 ) name = ''; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - SynchronousFileSystem$$1.call(this); - this.name = name; - this._index = new FileIndex(); - this._directoryEntries = []; - this._eocd = null; - deprecationMessage(deprecateMsg, ZipFS.Name, { zipData: "zip data as a Buffer", name: name }); - if (input instanceof ZipTOC) { - this._index = input.index; - this._directoryEntries = input.directoryEntries; - this._eocd = input.eocd; - this.data = input.data; - } - else { - this.data = input; - this.populateIndex(); - } - } - - if ( SynchronousFileSystem$$1 ) ZipFS.__proto__ = SynchronousFileSystem$$1; - ZipFS.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype ); - ZipFS.prototype.constructor = ZipFS; - /** - * Constructs a ZipFS instance with the given options. - */ - ZipFS.Create = function Create (opts, cb) { - try { - ZipFS.computeIndex(opts.zipData, function (zipTOC) { - var fs = new ZipFS(zipTOC, opts.name, false); - cb(null, fs); - }, false); - } - catch (e) { - cb(e); - } - }; - ZipFS.isAvailable = function isAvailable () { return true; }; - ZipFS.RegisterDecompressionMethod = function RegisterDecompressionMethod (m, fcn) { - decompressionMethods[m] = fcn; - }; - /** - * **Deprecated. Please use ZipFS.Create() method instead.** - */ - ZipFS.computeIndex = function computeIndex (data, cb, deprecateMsg) { - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - // TODO: Refactor to plumb errors through. Right now, they throw. - if (deprecateMsg) { - console.warn("[ZipFS] ZipFS.computeIndex is now deprecated, and will be removed in the next major release. Please update your code to use 'ZipFS.Create({ zipData: zip file as a Buffer}, cb)' instead."); - } - var index = new FileIndex(); - var eocd = ZipFS.getEOCD(data); - if (eocd.diskNumber() !== eocd.cdDiskNumber()) { - throw new ApiError(ErrorCode.EINVAL, "ZipFS does not support spanned zip files."); - } - var cdPtr = eocd.cdOffset(); - if (cdPtr === 0xFFFFFFFF) { - throw new ApiError(ErrorCode.EINVAL, "ZipFS does not support Zip64."); - } - var cdEnd = cdPtr + eocd.cdSize(); - ZipFS.computeIndexResponsive(data, index, cdPtr, cdEnd, cb, [], eocd); - }; - /** - * Locates the end of central directory record at the end of the file. - * Throws an exception if it cannot be found. - */ - ZipFS.getEOCD = function getEOCD (data) { - // Unfortunately, the comment is variable size and up to 64K in size. - // We assume that the magic signature does not appear in the comment, and - // in the bytes between the comment and the signature. Other ZIP - // implementations make this same assumption, since the alternative is to - // read thread every entry in the file to get to it. :( - // These are *negative* offsets from the end of the file. - var startOffset = 22; - var endOffset = Math.min(startOffset + 0xFFFF, data.length - 1); - // There's not even a byte alignment guarantee on the comment so we need to - // search byte by byte. *grumble grumble* - for (var i = startOffset; i < endOffset; i++) { - // Magic number: EOCD Signature - if (data.readUInt32LE(data.length - i) === 0x06054b50) { - return new EndOfCentralDirectory(data.slice(data.length - i)); - } - } - throw new ApiError(ErrorCode.EINVAL, "Invalid ZIP file: Could not locate End of Central Directory signature."); - }; - ZipFS.addToIndex = function addToIndex (cd, index) { - // Paths must be absolute, yet zip file paths are always relative to the - // zip root. So we append '/' and call it a day. - var filename = cd.fileName(); - if (filename.charAt(0) === '/') { - throw new Error("WHY IS THIS ABSOLUTE"); - } - // XXX: For the file index, strip the trailing '/'. - if (filename.charAt(filename.length - 1) === '/') { - filename = filename.substr(0, filename.length - 1); - } - if (cd.isDirectory()) { - index.addPathFast('/' + filename, new DirInode(cd)); - } - else { - index.addPathFast('/' + filename, new FileInode(cd)); - } - }; - ZipFS.computeIndexResponsive = function computeIndexResponsive (data, index, cdPtr, cdEnd, cb, cdEntries, eocd) { - if (cdPtr < cdEnd) { - var count = 0; - while (count++ < 200 && cdPtr < cdEnd) { - var cd = new CentralDirectory(data, data.slice(cdPtr)); - ZipFS.addToIndex(cd, index); - cdPtr += cd.totalSize(); - cdEntries.push(cd); - } - setImmediate$3(function () { - ZipFS.computeIndexResponsive(data, index, cdPtr, cdEnd, cb, cdEntries, eocd); - }); - } - else { - cb(new ZipTOC(index, cdEntries, eocd, data)); - } - }; - ZipFS.prototype.getName = function getName () { - return ZipFS.Name + (this.name !== '' ? (" " + (this.name)) : ''); - }; - /** - * Get the CentralDirectory object for the given path. - */ - ZipFS.prototype.getCentralDirectoryEntry = function getCentralDirectoryEntry (path$$1) { - var inode = this._index.getInode(path$$1); - if (inode === null) { - throw ApiError.ENOENT(path$$1); - } - if (isFileInode(inode)) { - return inode.getData(); - } - else if (isDirInode(inode)) { - return inode.getData(); - } - else { - // Should never occur. - throw ApiError.EPERM(("Invalid inode: " + inode)); - } - }; - ZipFS.prototype.getCentralDirectoryEntryAt = function getCentralDirectoryEntryAt (index) { - var dirEntry = this._directoryEntries[index]; - if (!dirEntry) { - throw new RangeError(("Invalid directory index: " + index + ".")); - } - return dirEntry; - }; - ZipFS.prototype.getNumberOfCentralDirectoryEntries = function getNumberOfCentralDirectoryEntries () { - return this._directoryEntries.length; - }; - ZipFS.prototype.getEndOfCentralDirectory = function getEndOfCentralDirectory () { - return this._eocd; - }; - ZipFS.prototype.diskSpace = function diskSpace (path$$1, cb) { - // Read-only file system. - cb(this.data.length, 0); - }; - ZipFS.prototype.isReadOnly = function isReadOnly () { - return true; - }; - ZipFS.prototype.supportsLinks = function supportsLinks () { - return false; - }; - ZipFS.prototype.supportsProps = function supportsProps () { - return false; - }; - ZipFS.prototype.supportsSynch = function supportsSynch () { - return true; - }; - ZipFS.prototype.statSync = function statSync (path$$1, isLstat) { - var inode = this._index.getInode(path$$1); - if (inode === null) { - throw ApiError.ENOENT(path$$1); - } - var stats; - if (isFileInode(inode)) { - stats = inode.getData().getStats(); - } - else if (isDirInode(inode)) { - stats = inode.getStats(); - } - else { - throw new ApiError(ErrorCode.EINVAL, "Invalid inode."); - } - return stats; - }; - ZipFS.prototype.openSync = function openSync (path$$1, flags, mode) { - // INVARIANT: Cannot write to RO file systems. - if (flags.isWriteable()) { - throw new ApiError(ErrorCode.EPERM, path$$1); - } - // Check if the path exists, and is a file. - var inode = this._index.getInode(path$$1); - if (!inode) { - throw ApiError.ENOENT(path$$1); - } - else if (isFileInode(inode)) { - var cdRecord = inode.getData(); - var stats = cdRecord.getStats(); - switch (flags.pathExistsAction()) { - case ActionType.THROW_EXCEPTION: - case ActionType.TRUNCATE_FILE: - throw ApiError.EEXIST(path$$1); - case ActionType.NOP: - return new NoSyncFile(this, path$$1, flags, stats, cdRecord.getData()); - default: - throw new ApiError(ErrorCode.EINVAL, 'Invalid FileMode object.'); - } - } - else { - throw ApiError.EISDIR(path$$1); - } - }; - ZipFS.prototype.readdirSync = function readdirSync (path$$1) { - // Check if it exists. - var inode = this._index.getInode(path$$1); - if (!inode) { - throw ApiError.ENOENT(path$$1); - } - else if (isDirInode(inode)) { - return inode.getListing(); - } - else { - throw ApiError.ENOTDIR(path$$1); - } - }; - /** - * Specially-optimized readfile. - */ - ZipFS.prototype.readFileSync = function readFileSync (fname, encoding, flag) { - // Get file. - var fd = this.openSync(fname, flag, 0x1a4); - try { - var fdCast = fd; - var fdBuff = fdCast.getBuffer(); - if (encoding === null) { - return copyingSlice(fdBuff); - } - return fdBuff.toString(encoding); - } - finally { - fd.closeSync(); - } - }; - ZipFS.prototype.populateIndex = function populateIndex () { - var this$1 = this; - - var eocd = this._eocd = ZipFS.getEOCD(this.data); - if (eocd.diskNumber() !== eocd.cdDiskNumber()) { - throw new ApiError(ErrorCode.EINVAL, "ZipFS does not support spanned zip files."); - } - var cdPtr = eocd.cdOffset(); - if (cdPtr === 0xFFFFFFFF) { - throw new ApiError(ErrorCode.EINVAL, "ZipFS does not support Zip64."); - } - var cdEnd = cdPtr + eocd.cdSize(); - while (cdPtr < cdEnd) { - var cd = new CentralDirectory(this$1.data, this$1.data.slice(cdPtr)); - cdPtr += cd.totalSize(); - ZipFS.addToIndex(cd, this$1._index); - this$1._directoryEntries.push(cd); - } - }; - - return ZipFS; - }(SynchronousFileSystem)); - - ZipFS.Name = "ZipFS"; - ZipFS.Options = { - zipData: { - type: "object", - description: "The zip file as a Buffer object.", - validator: bufferValidator - }, - name: { - type: "string", - optional: true, - description: "The name of the zip file (optional)." - } - }; - ZipFS.CompressionMethod = CompressionMethod; - ZipFS.RegisterDecompressionMethod(CompressionMethod.DEFLATE, function (data, compressedSize, uncompressedSize) { - return arrayish2Buffer(inflateRaw(data.slice(0, compressedSize), { chunkSize: uncompressedSize })); - }); - ZipFS.RegisterDecompressionMethod(CompressionMethod.STORED, function (data, compressedSize, uncompressedSize) { - return copyingSlice(data, 0, uncompressedSize); - }); - - /** - * @hidden - */ - var rockRidgeIdentifier = "IEEE_P1282"; - /** - * @hidden - */ - function getASCIIString(data, startIndex, length) { - return data.toString('ascii', startIndex, startIndex + length).trim(); - } - /** - * @hidden - */ - function getJolietString(data, startIndex, length) { - if (length === 1) { - // Special: Root, parent, current directory are still a single byte. - return String.fromCharCode(data[startIndex]); - } - // UTF16-BE, which isn't natively supported by NodeJS Buffers. - // Length should be even, but pessimistically floor just in case. - var pairs = Math.floor(length / 2); - var chars = new Array(pairs); - for (var i = 0; i < pairs; i++) { - var pos = startIndex + (i << 1); - chars[i] = String.fromCharCode(data[pos + 1] | (data[pos] << 8)); - } - return chars.join(''); - } - /** - * @hidden - */ - function getDate(data, startIndex) { - var year = parseInt(getASCIIString(data, startIndex, 4), 10); - var mon = parseInt(getASCIIString(data, startIndex + 4, 2), 10); - var day = parseInt(getASCIIString(data, startIndex + 6, 2), 10); - var hour = parseInt(getASCIIString(data, startIndex + 8, 2), 10); - var min = parseInt(getASCIIString(data, startIndex + 10, 2), 10); - var sec = parseInt(getASCIIString(data, startIndex + 12, 2), 10); - var hundrethsSec = parseInt(getASCIIString(data, startIndex + 14, 2), 10); - // Last is a time-zone offset, but JavaScript dates don't support time zones well. - return new Date(year, mon, day, hour, min, sec, hundrethsSec * 100); - } - /** - * @hidden - */ - function getShortFormDate(data, startIndex) { - var yearsSince1900 = data[startIndex]; - var month = data[startIndex + 1]; - var day = data[startIndex + 2]; - var hour = data[startIndex + 3]; - var minute = data[startIndex + 4]; - var second = data[startIndex + 5]; - // JavaScript's Date support isn't so great; ignore timezone. - // const offsetFromGMT = this._data[24]; - return new Date(yearsSince1900, month - 1, day, hour, minute, second); - } - /** - * @hidden - */ - function constructSystemUseEntry(bigData, i) { - var data = bigData.slice(i); - var sue = new SystemUseEntry(data); - switch (sue.signatureWord()) { - case 17221 /* CE */: - return new CEEntry(data); - case 20548 /* PD */: - return new PDEntry(data); - case 21328 /* SP */: - return new SPEntry(data); - case 21332 /* ST */: - return new STEntry(data); - case 17746 /* ER */: - return new EREntry(data); - case 17747 /* ES */: - return new ESEntry(data); - case 20568 /* PX */: - return new PXEntry(data); - case 20558 /* PN */: - return new PNEntry(data); - case 21324 /* SL */: - return new SLEntry(data); - case 20045 /* NM */: - return new NMEntry(data); - case 17228 /* CL */: - return new CLEntry(data); - case 20556 /* PL */: - return new PLEntry(data); - case 21061 /* RE */: - return new REEntry(data); - case 21574 /* TF */: - return new TFEntry(data); - case 21318 /* SF */: - return new SFEntry(data); - case 21074 /* RR */: - return new RREntry(data); - default: - return sue; - } - } - /** - * @hidden - */ - function constructSystemUseEntries(data, i, len, isoData) { - // If the remaining allocated space following the last recorded System Use Entry in a System - // Use field or Continuation Area is less than four bytes long, it cannot contain a System - // Use Entry and shall be ignored - len = len - 4; - var entries = new Array(); - while (i < len) { - var entry = constructSystemUseEntry(data, i); - var length = entry.length(); - if (length === 0) { - // Invalid SU section; prevent infinite loop. - return entries; - } - i += length; - if (entry instanceof STEntry) { - // ST indicates the end of entries. - break; - } - if (entry instanceof CEEntry) { - entries = entries.concat(entry.getEntries(isoData)); - } - else { - entries.push(entry); - } - } - return entries; - } - /** - * @hidden - */ - var VolumeDescriptor = function VolumeDescriptor(data) { - this._data = data; - }; - VolumeDescriptor.prototype.type = function type () { - return this._data[0]; - }; - VolumeDescriptor.prototype.standardIdentifier = function standardIdentifier () { - return getASCIIString(this._data, 1, 5); - }; - VolumeDescriptor.prototype.version = function version () { - return this._data[6]; - }; - VolumeDescriptor.prototype.data = function data () { - return this._data.slice(7, 2048); - }; - /** - * @hidden - */ - var PrimaryOrSupplementaryVolumeDescriptor = (function (VolumeDescriptor) { - function PrimaryOrSupplementaryVolumeDescriptor(data) { - VolumeDescriptor.call(this, data); - this._root = null; - } - - if ( VolumeDescriptor ) PrimaryOrSupplementaryVolumeDescriptor.__proto__ = VolumeDescriptor; - PrimaryOrSupplementaryVolumeDescriptor.prototype = Object.create( VolumeDescriptor && VolumeDescriptor.prototype ); - PrimaryOrSupplementaryVolumeDescriptor.prototype.constructor = PrimaryOrSupplementaryVolumeDescriptor; - PrimaryOrSupplementaryVolumeDescriptor.prototype.systemIdentifier = function systemIdentifier () { - return this._getString32(8); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeIdentifier = function volumeIdentifier () { - return this._getString32(40); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeSpaceSize = function volumeSpaceSize () { - return this._data.readUInt32LE(80); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeSetSize = function volumeSetSize () { - return this._data.readUInt16LE(120); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeSequenceNumber = function volumeSequenceNumber () { - return this._data.readUInt16LE(124); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.logicalBlockSize = function logicalBlockSize () { - return this._data.readUInt16LE(128); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.pathTableSize = function pathTableSize () { - return this._data.readUInt32LE(132); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.locationOfTypeLPathTable = function locationOfTypeLPathTable () { - return this._data.readUInt32LE(140); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.locationOfOptionalTypeLPathTable = function locationOfOptionalTypeLPathTable () { - return this._data.readUInt32LE(144); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.locationOfTypeMPathTable = function locationOfTypeMPathTable () { - return this._data.readUInt32BE(148); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.locationOfOptionalTypeMPathTable = function locationOfOptionalTypeMPathTable () { - return this._data.readUInt32BE(152); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.rootDirectoryEntry = function rootDirectoryEntry (isoData) { - if (this._root === null) { - this._root = this._constructRootDirectoryRecord(this._data.slice(156)); - this._root.rootCheckForRockRidge(isoData); - } - return this._root; - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeSetIdentifier = function volumeSetIdentifier () { - return this._getString(190, 128); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.publisherIdentifier = function publisherIdentifier () { - return this._getString(318, 128); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.dataPreparerIdentifier = function dataPreparerIdentifier () { - return this._getString(446, 128); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.applicationIdentifier = function applicationIdentifier () { - return this._getString(574, 128); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.copyrightFileIdentifier = function copyrightFileIdentifier () { - return this._getString(702, 38); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.abstractFileIdentifier = function abstractFileIdentifier () { - return this._getString(740, 36); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.bibliographicFileIdentifier = function bibliographicFileIdentifier () { - return this._getString(776, 37); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeCreationDate = function volumeCreationDate () { - return getDate(this._data, 813); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeModificationDate = function volumeModificationDate () { - return getDate(this._data, 830); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeExpirationDate = function volumeExpirationDate () { - return getDate(this._data, 847); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeEffectiveDate = function volumeEffectiveDate () { - return getDate(this._data, 864); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.fileStructureVersion = function fileStructureVersion () { - return this._data[881]; - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.applicationUsed = function applicationUsed () { - return this._data.slice(883, 883 + 512); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.reserved = function reserved () { - return this._data.slice(1395, 1395 + 653); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype._getString32 = function _getString32 (idx) { - return this._getString(idx, 32); - }; - - return PrimaryOrSupplementaryVolumeDescriptor; - }(VolumeDescriptor)); - /** - * @hidden - */ - var PrimaryVolumeDescriptor = (function (PrimaryOrSupplementaryVolumeDescriptor) { - function PrimaryVolumeDescriptor(data) { - PrimaryOrSupplementaryVolumeDescriptor.call(this, data); - if (this.type() !== 1 /* PrimaryVolumeDescriptor */) { - throw new ApiError(ErrorCode.EIO, "Invalid primary volume descriptor."); - } - } - - if ( PrimaryOrSupplementaryVolumeDescriptor ) PrimaryVolumeDescriptor.__proto__ = PrimaryOrSupplementaryVolumeDescriptor; - PrimaryVolumeDescriptor.prototype = Object.create( PrimaryOrSupplementaryVolumeDescriptor && PrimaryOrSupplementaryVolumeDescriptor.prototype ); - PrimaryVolumeDescriptor.prototype.constructor = PrimaryVolumeDescriptor; - PrimaryVolumeDescriptor.prototype.name = function name () { - return "ISO9660"; - }; - PrimaryVolumeDescriptor.prototype._constructRootDirectoryRecord = function _constructRootDirectoryRecord (data) { - return new ISODirectoryRecord(data, -1); - }; - PrimaryVolumeDescriptor.prototype._getString = function _getString (idx, len) { - return this._getString(idx, len); - }; - - return PrimaryVolumeDescriptor; - }(PrimaryOrSupplementaryVolumeDescriptor)); - /** - * @hidden - */ - var SupplementaryVolumeDescriptor = (function (PrimaryOrSupplementaryVolumeDescriptor) { - function SupplementaryVolumeDescriptor(data) { - PrimaryOrSupplementaryVolumeDescriptor.call(this, data); - if (this.type() !== 2 /* SupplementaryVolumeDescriptor */) { - throw new ApiError(ErrorCode.EIO, "Invalid supplementary volume descriptor."); - } - var escapeSequence = this.escapeSequence(); - var third = escapeSequence[2]; - // Third character identifies what 'level' of the UCS specification to follow. - // We ignore it. - if (escapeSequence[0] !== 0x25 || escapeSequence[1] !== 0x2F || - (third !== 0x40 && third !== 0x43 && third !== 0x45)) { - throw new ApiError(ErrorCode.EIO, ("Unrecognized escape sequence for SupplementaryVolumeDescriptor: " + (escapeSequence.toString()))); - } - } - - if ( PrimaryOrSupplementaryVolumeDescriptor ) SupplementaryVolumeDescriptor.__proto__ = PrimaryOrSupplementaryVolumeDescriptor; - SupplementaryVolumeDescriptor.prototype = Object.create( PrimaryOrSupplementaryVolumeDescriptor && PrimaryOrSupplementaryVolumeDescriptor.prototype ); - SupplementaryVolumeDescriptor.prototype.constructor = SupplementaryVolumeDescriptor; - SupplementaryVolumeDescriptor.prototype.name = function name () { - return "Joliet"; - }; - SupplementaryVolumeDescriptor.prototype.escapeSequence = function escapeSequence () { - return this._data.slice(88, 120); - }; - SupplementaryVolumeDescriptor.prototype._constructRootDirectoryRecord = function _constructRootDirectoryRecord (data) { - return new JolietDirectoryRecord(data, -1); - }; - SupplementaryVolumeDescriptor.prototype._getString = function _getString (idx, len) { - return getJolietString(this._data, idx, len); - }; - - return SupplementaryVolumeDescriptor; - }(PrimaryOrSupplementaryVolumeDescriptor)); - /** - * @hidden - */ - var DirectoryRecord = function DirectoryRecord(data, rockRidgeOffset) { - this._suEntries = null; - this._fileOrDir = null; - this._data = data; - this._rockRidgeOffset = rockRidgeOffset; - }; - DirectoryRecord.prototype.hasRockRidge = function hasRockRidge () { - return this._rockRidgeOffset > -1; - }; - DirectoryRecord.prototype.getRockRidgeOffset = function getRockRidgeOffset () { - return this._rockRidgeOffset; - }; - /** - * !!ONLY VALID ON ROOT NODE!! - * Checks if Rock Ridge is enabled, and sets the offset. - */ - DirectoryRecord.prototype.rootCheckForRockRidge = function rootCheckForRockRidge (isoData) { - var dir = this.getDirectory(isoData); - this._rockRidgeOffset = dir.getDotEntry(isoData)._getRockRidgeOffset(isoData); - if (this._rockRidgeOffset > -1) { - // Wipe out directory. Start over with RR knowledge. - this._fileOrDir = null; - } - }; - DirectoryRecord.prototype.length = function length () { - return this._data[0]; - }; - DirectoryRecord.prototype.extendedAttributeRecordLength = function extendedAttributeRecordLength () { - return this._data[1]; - }; - DirectoryRecord.prototype.lba = function lba () { - return this._data.readUInt32LE(2) * 2048; - }; - DirectoryRecord.prototype.dataLength = function dataLength () { - return this._data.readUInt32LE(10); - }; - DirectoryRecord.prototype.recordingDate = function recordingDate () { - return getShortFormDate(this._data, 18); - }; - DirectoryRecord.prototype.fileFlags = function fileFlags () { - return this._data[25]; - }; - DirectoryRecord.prototype.fileUnitSize = function fileUnitSize () { - return this._data[26]; - }; - DirectoryRecord.prototype.interleaveGapSize = function interleaveGapSize () { - return this._data[27]; - }; - DirectoryRecord.prototype.volumeSequenceNumber = function volumeSequenceNumber () { - return this._data.readUInt16LE(28); - }; - DirectoryRecord.prototype.identifier = function identifier () { - return this._getString(33, this._data[32]); - }; - DirectoryRecord.prototype.fileName = function fileName (isoData) { - if (this.hasRockRidge()) { - var fn = this._rockRidgeFilename(isoData); - if (fn !== null) { - return fn; - } - } - var ident = this.identifier(); - if (this.isDirectory(isoData)) { - return ident; - } - // Files: - // - MUST have 0x2E (.) separating the name from the extension - // - MUST have 0x3B (;) separating the file name and extension from the version - // Gets expanded to two-byte char in Unicode directory records. - var versionSeparator = ident.indexOf(';'); - if (versionSeparator === -1) { - // Some Joliet filenames lack the version separator, despite the standard - // specifying that it should be there. - return ident; - } - else if (ident[versionSeparator - 1] === '.') { - // Empty extension. Do not include '.' in the filename. - return ident.slice(0, versionSeparator - 1); - } - else { - // Include up to version separator. - return ident.slice(0, versionSeparator); - } - }; - DirectoryRecord.prototype.isDirectory = function isDirectory (isoData) { - var rv = !!(this.fileFlags() & 2 /* Directory */); - // If it lacks the Directory flag, it may still be a directory if we've exceeded the directory - // depth limit. Rock Ridge marks these as files and adds a special attribute. - if (!rv && this.hasRockRidge()) { - rv = this.getSUEntries(isoData).filter(function (e) { return e instanceof CLEntry; }).length > 0; - } - return rv; - }; - DirectoryRecord.prototype.isSymlink = function isSymlink (isoData) { - return this.hasRockRidge() && this.getSUEntries(isoData).filter(function (e) { return e instanceof SLEntry; }).length > 0; - }; - DirectoryRecord.prototype.getSymlinkPath = function getSymlinkPath (isoData) { - var p = ""; - var entries = this.getSUEntries(isoData); - var getStr = this._getGetString(); - for (var i = 0, list = entries; i < list.length; i += 1) { - var entry = list[i]; - - if (entry instanceof SLEntry) { - var components = entry.componentRecords(); - for (var i$1 = 0, list$1 = components; i$1 < list$1.length; i$1 += 1) { - var component = list$1[i$1]; - - var flags = component.flags(); - if (flags & 2 /* CURRENT */) { - p += "./"; - } - else if (flags & 4 /* PARENT */) { - p += "../"; - } - else if (flags & 8 /* ROOT */) { - p += "/"; - } - else { - p += component.content(getStr); - if (!(flags & 1 /* CONTINUE */)) { - p += '/'; - } - } - } - if (!entry.continueFlag()) { - // We are done with this link. - break; - } - } - } - if (p.length > 1 && p[p.length - 1] === '/') { - // Trim trailing '/'. - return p.slice(0, p.length - 1); - } - else { - return p; - } - }; - DirectoryRecord.prototype.getFile = function getFile (isoData) { - if (this.isDirectory(isoData)) { - throw new Error("Tried to get a File from a directory."); - } - if (this._fileOrDir === null) { - this._fileOrDir = isoData.slice(this.lba(), this.lba() + this.dataLength()); - } - return this._fileOrDir; - }; - DirectoryRecord.prototype.getDirectory = function getDirectory (isoData) { - if (!this.isDirectory(isoData)) { - throw new Error("Tried to get a Directory from a file."); - } - if (this._fileOrDir === null) { - this._fileOrDir = this._constructDirectory(isoData); - } - return this._fileOrDir; - }; - DirectoryRecord.prototype.getSUEntries = function getSUEntries (isoData) { - if (!this._suEntries) { - this._constructSUEntries(isoData); - } - return this._suEntries; - }; - DirectoryRecord.prototype._rockRidgeFilename = function _rockRidgeFilename (isoData) { - var nmEntries = this.getSUEntries(isoData).filter(function (e) { return e instanceof NMEntry; }); - if (nmEntries.length === 0 || nmEntries[0].flags() & (2 /* CURRENT */ | 4 /* PARENT */)) { - return null; - } - var str = ''; - var getString = this._getGetString(); - for (var i = 0, list = nmEntries; i < list.length; i += 1) { - var e = list[i]; - - str += e.name(getString); - if (!(e.flags() & 1 /* CONTINUE */)) { - break; - } - } - return str; - }; - DirectoryRecord.prototype._constructSUEntries = function _constructSUEntries (isoData) { - var i = 33 + this._data[32]; - if (i % 2 === 1) { - // Skip padding field. - i++; - } - i += this._rockRidgeOffset; - this._suEntries = constructSystemUseEntries(this._data, i, this.length(), isoData); - }; - /** - * !!ONLY VALID ON FIRST ENTRY OF ROOT DIRECTORY!! - * Returns -1 if rock ridge is not enabled. Otherwise, returns the offset - * at which system use fields begin. - */ - DirectoryRecord.prototype._getRockRidgeOffset = function _getRockRidgeOffset (isoData) { - // In the worst case, we get some garbage SU entries. - // Fudge offset to 0 before proceeding. - this._rockRidgeOffset = 0; - var suEntries = this.getSUEntries(isoData); - if (suEntries.length > 0) { - var spEntry = suEntries[0]; - if (spEntry instanceof SPEntry && spEntry.checkBytesPass()) { - // SUSP is in use. - for (var i = 1; i < suEntries.length; i++) { - var entry = suEntries[i]; - if (entry instanceof RREntry || (entry instanceof EREntry && entry.extensionIdentifier() === rockRidgeIdentifier)) { - // Rock Ridge is in use! - return spEntry.bytesSkipped(); - } - } - } - } - // Failed. - this._rockRidgeOffset = -1; - return -1; - }; - /** - * @hidden - */ - var ISODirectoryRecord = (function (DirectoryRecord) { - function ISODirectoryRecord(data, rockRidgeOffset) { - DirectoryRecord.call(this, data, rockRidgeOffset); - } - - if ( DirectoryRecord ) ISODirectoryRecord.__proto__ = DirectoryRecord; - ISODirectoryRecord.prototype = Object.create( DirectoryRecord && DirectoryRecord.prototype ); - ISODirectoryRecord.prototype.constructor = ISODirectoryRecord; - ISODirectoryRecord.prototype._getString = function _getString (i, len) { - return getASCIIString(this._data, i, len); - }; - ISODirectoryRecord.prototype._constructDirectory = function _constructDirectory (isoData) { - return new ISODirectory(this, isoData); - }; - ISODirectoryRecord.prototype._getGetString = function _getGetString () { - return getASCIIString; - }; - - return ISODirectoryRecord; - }(DirectoryRecord)); - /** - * @hidden - */ - var JolietDirectoryRecord = (function (DirectoryRecord) { - function JolietDirectoryRecord(data, rockRidgeOffset) { - DirectoryRecord.call(this, data, rockRidgeOffset); - } - - if ( DirectoryRecord ) JolietDirectoryRecord.__proto__ = DirectoryRecord; - JolietDirectoryRecord.prototype = Object.create( DirectoryRecord && DirectoryRecord.prototype ); - JolietDirectoryRecord.prototype.constructor = JolietDirectoryRecord; - JolietDirectoryRecord.prototype._getString = function _getString (i, len) { - return getJolietString(this._data, i, len); - }; - JolietDirectoryRecord.prototype._constructDirectory = function _constructDirectory (isoData) { - return new JolietDirectory(this, isoData); - }; - JolietDirectoryRecord.prototype._getGetString = function _getGetString () { - return getJolietString; - }; - - return JolietDirectoryRecord; - }(DirectoryRecord)); - /** - * @hidden - */ - var SystemUseEntry = function SystemUseEntry(data) { - this._data = data; - }; - SystemUseEntry.prototype.signatureWord = function signatureWord () { - return this._data.readUInt16BE(0); - }; - SystemUseEntry.prototype.signatureWordString = function signatureWordString () { - return getASCIIString(this._data, 0, 2); - }; - SystemUseEntry.prototype.length = function length () { - return this._data[2]; - }; - SystemUseEntry.prototype.suVersion = function suVersion () { - return this._data[3]; - }; - /** - * Continuation entry. - * @hidden - */ - var CEEntry = (function (SystemUseEntry) { - function CEEntry(data) { - SystemUseEntry.call(this, data); - this._entries = null; - } - - if ( SystemUseEntry ) CEEntry.__proto__ = SystemUseEntry; - CEEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - CEEntry.prototype.constructor = CEEntry; - /** - * Logical block address of the continuation area. - */ - CEEntry.prototype.continuationLba = function continuationLba () { - return this._data.readUInt32LE(4); - }; - /** - * Offset into the logical block. - */ - CEEntry.prototype.continuationLbaOffset = function continuationLbaOffset () { - return this._data.readUInt32LE(12); - }; - /** - * Length of the continuation area. - */ - CEEntry.prototype.continuationLength = function continuationLength () { - return this._data.readUInt32LE(20); - }; - CEEntry.prototype.getEntries = function getEntries (isoData) { - if (!this._entries) { - var start = this.continuationLba() * 2048 + this.continuationLbaOffset(); - this._entries = constructSystemUseEntries(isoData, start, this.continuationLength(), isoData); - } - return this._entries; - }; - - return CEEntry; - }(SystemUseEntry)); - /** - * Padding entry. - * @hidden - */ - var PDEntry = (function (SystemUseEntry) { - function PDEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) PDEntry.__proto__ = SystemUseEntry; - PDEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - PDEntry.prototype.constructor = PDEntry; - - return PDEntry; - }(SystemUseEntry)); - /** - * Identifies that SUSP is in-use. - * @hidden - */ - var SPEntry = (function (SystemUseEntry) { - function SPEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) SPEntry.__proto__ = SystemUseEntry; - SPEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - SPEntry.prototype.constructor = SPEntry; - SPEntry.prototype.checkBytesPass = function checkBytesPass () { - return this._data[4] === 0xBE && this._data[5] === 0xEF; - }; - SPEntry.prototype.bytesSkipped = function bytesSkipped () { - return this._data[6]; - }; - - return SPEntry; - }(SystemUseEntry)); - /** - * Identifies the end of the SUSP entries. - * @hidden - */ - var STEntry = (function (SystemUseEntry) { - function STEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) STEntry.__proto__ = SystemUseEntry; - STEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - STEntry.prototype.constructor = STEntry; - - return STEntry; - }(SystemUseEntry)); - /** - * Specifies system-specific extensions to SUSP. - * @hidden - */ - var EREntry = (function (SystemUseEntry) { - function EREntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) EREntry.__proto__ = SystemUseEntry; - EREntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - EREntry.prototype.constructor = EREntry; - EREntry.prototype.identifierLength = function identifierLength () { - return this._data[4]; - }; - EREntry.prototype.descriptorLength = function descriptorLength () { - return this._data[5]; - }; - EREntry.prototype.sourceLength = function sourceLength () { - return this._data[6]; - }; - EREntry.prototype.extensionVersion = function extensionVersion () { - return this._data[7]; - }; - EREntry.prototype.extensionIdentifier = function extensionIdentifier () { - return getASCIIString(this._data, 8, this.identifierLength()); - }; - EREntry.prototype.extensionDescriptor = function extensionDescriptor () { - return getASCIIString(this._data, 8 + this.identifierLength(), this.descriptorLength()); - }; - EREntry.prototype.extensionSource = function extensionSource () { - return getASCIIString(this._data, 8 + this.identifierLength() + this.descriptorLength(), this.sourceLength()); - }; - - return EREntry; - }(SystemUseEntry)); - /** - * @hidden - */ - var ESEntry = (function (SystemUseEntry) { - function ESEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) ESEntry.__proto__ = SystemUseEntry; - ESEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - ESEntry.prototype.constructor = ESEntry; - ESEntry.prototype.extensionSequence = function extensionSequence () { - return this._data[4]; - }; - - return ESEntry; - }(SystemUseEntry)); - /** - * RockRidge: Marks that RockRidge is in use [deprecated] - * @hidden - */ - var RREntry = (function (SystemUseEntry) { - function RREntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) RREntry.__proto__ = SystemUseEntry; - RREntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - RREntry.prototype.constructor = RREntry; - - return RREntry; - }(SystemUseEntry)); - /** - * RockRidge: Records POSIX file attributes. - * @hidden - */ - var PXEntry = (function (SystemUseEntry) { - function PXEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) PXEntry.__proto__ = SystemUseEntry; - PXEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - PXEntry.prototype.constructor = PXEntry; - PXEntry.prototype.mode = function mode () { - return this._data.readUInt32LE(4); - }; - PXEntry.prototype.fileLinks = function fileLinks () { - return this._data.readUInt32LE(12); - }; - PXEntry.prototype.uid = function uid () { - return this._data.readUInt32LE(20); - }; - PXEntry.prototype.gid = function gid () { - return this._data.readUInt32LE(28); - }; - PXEntry.prototype.inode = function inode () { - return this._data.readUInt32LE(36); - }; - - return PXEntry; - }(SystemUseEntry)); - /** - * RockRidge: Records POSIX device number. - * @hidden - */ - var PNEntry = (function (SystemUseEntry) { - function PNEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) PNEntry.__proto__ = SystemUseEntry; - PNEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - PNEntry.prototype.constructor = PNEntry; - PNEntry.prototype.devTHigh = function devTHigh () { - return this._data.readUInt32LE(4); - }; - PNEntry.prototype.devTLow = function devTLow () { - return this._data.readUInt32LE(12); - }; - - return PNEntry; - }(SystemUseEntry)); - /** - * RockRidge: Records symbolic link - * @hidden - */ - var SLEntry = (function (SystemUseEntry) { - function SLEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) SLEntry.__proto__ = SystemUseEntry; - SLEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - SLEntry.prototype.constructor = SLEntry; - SLEntry.prototype.flags = function flags () { - return this._data[4]; - }; - SLEntry.prototype.continueFlag = function continueFlag () { - return this.flags() & 0x1; - }; - SLEntry.prototype.componentRecords = function componentRecords () { - var this$1 = this; - - var records = new Array(); - var i = 5; - while (i < this.length()) { - var record = new SLComponentRecord(this$1._data.slice(i)); - records.push(record); - i += record.length(); - } - return records; - }; - - return SLEntry; - }(SystemUseEntry)); - /** - * @hidden - */ - var SLComponentRecord = function SLComponentRecord(data) { - this._data = data; - }; - SLComponentRecord.prototype.flags = function flags () { - return this._data[0]; - }; - SLComponentRecord.prototype.length = function length () { - return 2 + this.componentLength(); - }; - SLComponentRecord.prototype.componentLength = function componentLength () { - return this._data[1]; - }; - SLComponentRecord.prototype.content = function content (getString) { - return getString(this._data, 2, this.componentLength()); - }; - /** - * RockRidge: Records alternate file name - * @hidden - */ - var NMEntry = (function (SystemUseEntry) { - function NMEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) NMEntry.__proto__ = SystemUseEntry; - NMEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - NMEntry.prototype.constructor = NMEntry; - NMEntry.prototype.flags = function flags () { - return this._data[4]; - }; - NMEntry.prototype.name = function name (getString) { - return getString(this._data, 5, this.length() - 5); - }; - - return NMEntry; - }(SystemUseEntry)); - /** - * RockRidge: Records child link - * @hidden - */ - var CLEntry = (function (SystemUseEntry) { - function CLEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) CLEntry.__proto__ = SystemUseEntry; - CLEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - CLEntry.prototype.constructor = CLEntry; - CLEntry.prototype.childDirectoryLba = function childDirectoryLba () { - return this._data.readUInt32LE(4); - }; - - return CLEntry; - }(SystemUseEntry)); - /** - * RockRidge: Records parent link. - * @hidden - */ - var PLEntry = (function (SystemUseEntry) { - function PLEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) PLEntry.__proto__ = SystemUseEntry; - PLEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - PLEntry.prototype.constructor = PLEntry; - PLEntry.prototype.parentDirectoryLba = function parentDirectoryLba () { - return this._data.readUInt32LE(4); - }; - - return PLEntry; - }(SystemUseEntry)); - /** - * RockRidge: Records relocated directory. - * @hidden - */ - var REEntry = (function (SystemUseEntry) { - function REEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) REEntry.__proto__ = SystemUseEntry; - REEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - REEntry.prototype.constructor = REEntry; - - return REEntry; - }(SystemUseEntry)); - /** - * RockRidge: Records file timestamps - * @hidden - */ - var TFEntry = (function (SystemUseEntry) { - function TFEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) TFEntry.__proto__ = SystemUseEntry; - TFEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - TFEntry.prototype.constructor = TFEntry; - TFEntry.prototype.flags = function flags () { - return this._data[4]; - }; - TFEntry.prototype.creation = function creation () { - if (this.flags() & 1 /* CREATION */) { - if (this._longFormDates()) { - return getDate(this._data, 5); - } - else { - return getShortFormDate(this._data, 5); - } - } - else { - return null; - } - }; - TFEntry.prototype.modify = function modify () { - if (this.flags() & 2 /* MODIFY */) { - var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0; - if (this._longFormDates) { - return getDate(this._data, 5 + (previousDates * 17)); - } - else { - return getShortFormDate(this._data, 5 + (previousDates * 7)); - } - } - else { - return null; - } - }; - TFEntry.prototype.access = function access () { - if (this.flags() & 4 /* ACCESS */) { - var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0; - previousDates += (this.flags() & 2 /* MODIFY */) ? 1 : 0; - if (this._longFormDates) { - return getDate(this._data, 5 + (previousDates * 17)); - } - else { - return getShortFormDate(this._data, 5 + (previousDates * 7)); - } - } - else { - return null; - } - }; - TFEntry.prototype.backup = function backup () { - if (this.flags() & 16 /* BACKUP */) { - var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0; - previousDates += (this.flags() & 2 /* MODIFY */) ? 1 : 0; - previousDates += (this.flags() & 4 /* ACCESS */) ? 1 : 0; - if (this._longFormDates) { - return getDate(this._data, 5 + (previousDates * 17)); - } - else { - return getShortFormDate(this._data, 5 + (previousDates * 7)); - } - } - else { - return null; - } - }; - TFEntry.prototype.expiration = function expiration () { - if (this.flags() & 32 /* EXPIRATION */) { - var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0; - previousDates += (this.flags() & 2 /* MODIFY */) ? 1 : 0; - previousDates += (this.flags() & 4 /* ACCESS */) ? 1 : 0; - previousDates += (this.flags() & 16 /* BACKUP */) ? 1 : 0; - if (this._longFormDates) { - return getDate(this._data, 5 + (previousDates * 17)); - } - else { - return getShortFormDate(this._data, 5 + (previousDates * 7)); - } - } - else { - return null; - } - }; - TFEntry.prototype.effective = function effective () { - if (this.flags() & 64 /* EFFECTIVE */) { - var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0; - previousDates += (this.flags() & 2 /* MODIFY */) ? 1 : 0; - previousDates += (this.flags() & 4 /* ACCESS */) ? 1 : 0; - previousDates += (this.flags() & 16 /* BACKUP */) ? 1 : 0; - previousDates += (this.flags() & 32 /* EXPIRATION */) ? 1 : 0; - if (this._longFormDates) { - return getDate(this._data, 5 + (previousDates * 17)); - } - else { - return getShortFormDate(this._data, 5 + (previousDates * 7)); - } - } - else { - return null; - } - }; - TFEntry.prototype._longFormDates = function _longFormDates () { - return !!(this.flags() && 128 /* LONG_FORM */); - }; - - return TFEntry; - }(SystemUseEntry)); - /** - * RockRidge: File data in sparse format. - * @hidden - */ - var SFEntry = (function (SystemUseEntry) { - function SFEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) SFEntry.__proto__ = SystemUseEntry; - SFEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - SFEntry.prototype.constructor = SFEntry; - SFEntry.prototype.virtualSizeHigh = function virtualSizeHigh () { - return this._data.readUInt32LE(4); - }; - SFEntry.prototype.virtualSizeLow = function virtualSizeLow () { - return this._data.readUInt32LE(12); - }; - SFEntry.prototype.tableDepth = function tableDepth () { - return this._data[20]; - }; - - return SFEntry; - }(SystemUseEntry)); - /** - * @hidden - */ - var Directory = function Directory(record, isoData) { - var this$1 = this; - - this._fileList = []; - this._fileMap = {}; - this._record = record; - var i = record.lba(); - var iLimit = i + record.dataLength(); - if (!(record.fileFlags() & 2 /* Directory */)) { - // Must have a CL entry. - var cl = record.getSUEntries(isoData).filter(function (e) { return e instanceof CLEntry; })[0]; - i = cl.childDirectoryLba() * 2048; - iLimit = Infinity; - } - while (i < iLimit) { - var len = isoData[i]; - // Zero-padding between sectors. - // TODO: Could optimize this to seek to nearest-sector upon - // seeing a 0. - if (len === 0) { - i++; - continue; - } - var r = this$1._constructDirectoryRecord(isoData.slice(i)); - var fname = r.fileName(isoData); - // Skip '.' and '..' entries. - if (fname !== '\u0000' && fname !== '\u0001') { - // Skip relocated entries. - if (!r.hasRockRidge() || r.getSUEntries(isoData).filter(function (e) { return e instanceof REEntry; }).length === 0) { - this$1._fileMap[fname] = r; - this$1._fileList.push(fname); - } - } - else if (iLimit === Infinity) { - // First entry contains needed data. - iLimit = i + r.dataLength(); - } - i += r.length(); - } - }; - /** - * Get the record with the given name. - * Returns undefined if not present. - */ - Directory.prototype.getRecord = function getRecord (name) { - return this._fileMap[name]; - }; - Directory.prototype.getFileList = function getFileList () { - return this._fileList; - }; - Directory.prototype.getDotEntry = function getDotEntry (isoData) { - return this._constructDirectoryRecord(isoData.slice(this._record.lba())); - }; - /** - * @hidden - */ - var ISODirectory = (function (Directory) { - function ISODirectory(record, isoData) { - Directory.call(this, record, isoData); - } - - if ( Directory ) ISODirectory.__proto__ = Directory; - ISODirectory.prototype = Object.create( Directory && Directory.prototype ); - ISODirectory.prototype.constructor = ISODirectory; - ISODirectory.prototype._constructDirectoryRecord = function _constructDirectoryRecord (data) { - return new ISODirectoryRecord(data, this._record.getRockRidgeOffset()); - }; - - return ISODirectory; - }(Directory)); - /** - * @hidden - */ - var JolietDirectory = (function (Directory) { - function JolietDirectory(record, isoData) { - Directory.call(this, record, isoData); - } - - if ( Directory ) JolietDirectory.__proto__ = Directory; - JolietDirectory.prototype = Object.create( Directory && Directory.prototype ); - JolietDirectory.prototype.constructor = JolietDirectory; - JolietDirectory.prototype._constructDirectoryRecord = function _constructDirectoryRecord (data) { - return new JolietDirectoryRecord(data, this._record.getRockRidgeOffset()); - }; - - return JolietDirectory; - }(Directory)); - /** - * Mounts an ISO file as a read-only file system. - * - * Supports: - * * Vanilla ISO9660 ISOs - * * Microsoft Joliet and Rock Ridge extensions to the ISO9660 standard - */ - var IsoFS = (function (SynchronousFileSystem$$1) { - function IsoFS(data, name, deprecateMsg) { - var this$1 = this; - if ( name === void 0 ) name = ""; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - SynchronousFileSystem$$1.call(this); - this._data = data; - deprecationMessage(deprecateMsg, IsoFS.Name, { data: "ISO data as a Buffer", name: name }); - // Skip first 16 sectors. - var vdTerminatorFound = false; - var i = 16 * 2048; - var candidateVDs = new Array(); - while (!vdTerminatorFound) { - var slice = data.slice(i); - var vd = new VolumeDescriptor(slice); - switch (vd.type()) { - case 1 /* PrimaryVolumeDescriptor */: - candidateVDs.push(new PrimaryVolumeDescriptor(slice)); - break; - case 2 /* SupplementaryVolumeDescriptor */: - candidateVDs.push(new SupplementaryVolumeDescriptor(slice)); - break; - case 255 /* VolumeDescriptorSetTerminator */: - vdTerminatorFound = true; - break; - } - i += 2048; - } - if (candidateVDs.length === 0) { - throw new ApiError(ErrorCode.EIO, "Unable to find a suitable volume descriptor."); - } - candidateVDs.forEach(function (v) { - // Take an SVD over a PVD. - if (!this$1._pvd || this$1._pvd.type() !== 2 /* SupplementaryVolumeDescriptor */) { - this$1._pvd = v; - } - }); - this._root = this._pvd.rootDirectoryEntry(data); - this._name = name; - } - - if ( SynchronousFileSystem$$1 ) IsoFS.__proto__ = SynchronousFileSystem$$1; - IsoFS.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype ); - IsoFS.prototype.constructor = IsoFS; - /** - * Creates an IsoFS instance with the given options. - */ - IsoFS.Create = function Create (opts, cb) { - var fs; - var e; - try { - fs = new IsoFS(opts.data, opts.name, false); - } - catch (e) { - e = e; - } - finally { - cb(e, fs); - } - }; - IsoFS.isAvailable = function isAvailable () { - return true; - }; - IsoFS.prototype.getName = function getName () { - var name = "IsoFS" + (this._name) + (this._pvd ? ("-" + (this._pvd.name())) : ''); - if (this._root && this._root.hasRockRidge()) { - name += "-RockRidge"; - } - return name; - }; - IsoFS.prototype.diskSpace = function diskSpace (path$$1, cb) { - // Read-only file system. - cb(this._data.length, 0); - }; - IsoFS.prototype.isReadOnly = function isReadOnly () { - return true; - }; - IsoFS.prototype.supportsLinks = function supportsLinks () { - return false; - }; - IsoFS.prototype.supportsProps = function supportsProps () { - return false; - }; - IsoFS.prototype.supportsSynch = function supportsSynch () { - return true; - }; - IsoFS.prototype.statSync = function statSync (p, isLstat) { - var record = this._getDirectoryRecord(p); - if (record === null) { - throw ApiError.ENOENT(p); - } - return this._getStats(p, record); - }; - IsoFS.prototype.openSync = function openSync (p, flags, mode) { - // INVARIANT: Cannot write to RO file systems. - if (flags.isWriteable()) { - throw new ApiError(ErrorCode.EPERM, p); - } - // Check if the path exists, and is a file. - var record = this._getDirectoryRecord(p); - if (!record) { - throw ApiError.ENOENT(p); - } - else if (record.isSymlink(this._data)) { - return this.openSync(path.resolve(p, record.getSymlinkPath(this._data)), flags, mode); - } - else if (!record.isDirectory(this._data)) { - var data = record.getFile(this._data); - var stats = this._getStats(p, record); - switch (flags.pathExistsAction()) { - case ActionType.THROW_EXCEPTION: - case ActionType.TRUNCATE_FILE: - throw ApiError.EEXIST(p); - case ActionType.NOP: - return new NoSyncFile(this, p, flags, stats, data); - default: - throw new ApiError(ErrorCode.EINVAL, 'Invalid FileMode object.'); - } - } - else { - throw ApiError.EISDIR(p); - } - }; - IsoFS.prototype.readdirSync = function readdirSync (path$$1) { - // Check if it exists. - var record = this._getDirectoryRecord(path$$1); - if (!record) { - throw ApiError.ENOENT(path$$1); - } - else if (record.isDirectory(this._data)) { - return record.getDirectory(this._data).getFileList().slice(0); - } - else { - throw ApiError.ENOTDIR(path$$1); - } - }; - /** - * Specially-optimized readfile. - */ - IsoFS.prototype.readFileSync = function readFileSync (fname, encoding, flag) { - // Get file. - var fd = this.openSync(fname, flag, 0x1a4); - try { - var fdCast = fd; - var fdBuff = fdCast.getBuffer(); - if (encoding === null) { - return copyingSlice(fdBuff); - } - return fdBuff.toString(encoding); - } - finally { - fd.closeSync(); - } - }; - IsoFS.prototype._getDirectoryRecord = function _getDirectoryRecord (path$$1) { - var this$1 = this; - - // Special case. - if (path$$1 === '/') { - return this._root; - } - var components = path$$1.split('/').slice(1); - var dir = this._root; - for (var i = 0, list = components; i < list.length; i += 1) { - var component = list[i]; - - if (dir.isDirectory(this$1._data)) { - dir = dir.getDirectory(this$1._data).getRecord(component); - if (!dir) { - return null; - } - } - else { - return null; - } - } - return dir; - }; - IsoFS.prototype._getStats = function _getStats (p, record) { - if (record.isSymlink(this._data)) { - var newP = path.resolve(p, record.getSymlinkPath(this._data)); - var dirRec = this._getDirectoryRecord(newP); - if (!dirRec) { - return null; - } - return this._getStats(newP, dirRec); - } - else { - var len = record.dataLength(); - var mode = 0x16D; - var date = record.recordingDate(); - var atime = date; - var mtime = date; - var ctime = date; - if (record.hasRockRidge()) { - var entries = record.getSUEntries(this._data); - for (var i = 0, list = entries; i < list.length; i += 1) { - var entry = list[i]; - - if (entry instanceof PXEntry) { - mode = entry.mode(); - } - else if (entry instanceof TFEntry) { - var flags = entry.flags(); - if (flags & 4 /* ACCESS */) { - atime = entry.access(); - } - if (flags & 2 /* MODIFY */) { - mtime = entry.modify(); - } - if (flags & 1 /* CREATION */) { - ctime = entry.creation(); - } - } - } - } - // Mask out writeable flags. This is a RO file system. - mode = mode & 0x16D; - return new Stats(record.isDirectory(this._data) ? FileType.DIRECTORY : FileType.FILE, len, mode, atime, mtime, ctime); - } - }; - - return IsoFS; - }(SynchronousFileSystem)); - - IsoFS.Name = "IsoFS"; - IsoFS.Options = { - data: { - type: "object", - description: "The ISO file in a buffer", - validator: bufferValidator - } - }; - - // Monkey-patch `Create` functions to check options before file system initialization. - [AsyncMirror, DropboxFileSystem, EmscriptenFileSystem, FolderAdapter, HTML5FS, InMemoryFileSystem, IndexedDBFileSystem, IsoFS, LocalStorageFileSystem, MountableFileSystem, OverlayFS, WorkerFS, XmlHttpRequest, ZipFS].forEach(function (fsType) { - var create = fsType.Create; - fsType.Create = function (opts, cb) { - var oneArg = typeof (opts) === "function"; - var normalizedCb = oneArg ? opts : cb; - var normalizedOpts = oneArg ? {} : opts; - function wrappedCb(e) { - if (e) { - normalizedCb(e); - } - else { - create.call(fsType, normalizedOpts, normalizedCb); - } - } - checkOptions(fsType, normalizedOpts, wrappedCb); - }; - }); - /** - * @hidden - */ - var Backends = { AsyncMirror: AsyncMirror, Dropbox: DropboxFileSystem, Emscripten: EmscriptenFileSystem, FolderAdapter: FolderAdapter, HTML5FS: HTML5FS, InMemory: InMemoryFileSystem, IndexedDB: IndexedDBFileSystem, IsoFS: IsoFS, LocalStorage: LocalStorageFileSystem, MountableFileSystem: MountableFileSystem, OverlayFS: OverlayFS, WorkerFS: WorkerFS, XmlHttpRequest: XmlHttpRequest, ZipFS: ZipFS }; - - /** - * BrowserFS's main module. This is exposed in the browser via the BrowserFS global. - * Due to limitations in typedoc, we document these functions in ./typedoc.ts. - */ - if (process['initializeTTYs']) { - process['initializeTTYs'](); - } - /** - * Installs BFSRequire as global `require`, a Node Buffer polyfill as the global `Buffer` variable, - * and a Node process polyfill as the global `process` variable. - */ - function install(obj) { - obj.Buffer = Buffer; - obj.process = process; - var oldRequire = obj.require ? obj.require : null; - // Monkey-patch require for Node-style code. - obj.require = function (arg) { - var rv = BFSRequire(arg); - if (!rv) { - return oldRequire.apply(null, Array.prototype.slice.call(arguments, 0)); - } - else { - return rv; - } - }; - } - /** - * @hidden - */ - function registerFileSystem(name, fs) { - Backends[name] = fs; - } - function BFSRequire(module) { - switch (module) { - case 'fs': - return _fsMock; - case 'path': - return path; - case 'buffer': - // The 'buffer' module has 'Buffer' as a property. - return buffer; - case 'process': - return process; - case 'bfs_utils': - return BFSUtils; - default: - return Backends[module]; - } - } - /** - * Initializes BrowserFS with the given root file system. - */ - function initialize(rootfs) { - return _fsMock.initialize(rootfs); - } - /** - * Creates a file system with the given configuration, and initializes BrowserFS with it. - * See the FileSystemConfiguration type for more info on the configuration object. - */ - function configure(config, cb) { - getFileSystem(config, function (e, fs) { - if (fs) { - initialize(fs); - cb(); - } - else { - cb(e); - } - }); - } - /** - * Retrieve a file system with the given configuration. - * @param config A FileSystemConfiguration object. See FileSystemConfiguration for details. - * @param cb Called when the file system is constructed, or when an error occurs. - */ - function getFileSystem(config, cb) { - var fsName = config['fs']; - if (!fsName) { - return cb(new ApiError(ErrorCode.EPERM, 'Missing "fs" property on configuration object.')); - } - var options = config['options']; - var waitCount = 0; - var called = false; - function finish() { - if (!called) { - called = true; - var fsc = Backends[fsName]; - if (!fsc) { - cb(new ApiError(ErrorCode.EPERM, ("File system " + fsName + " is not available in BrowserFS."))); - } - else { - fsc.Create(options, cb); - } - } - } - if (options !== null && typeof (options) === "object") { - var finishedIterating = false; - var props = Object.keys(options).filter(function (k) { return k !== 'fs'; }); - // Check recursively if other fields have 'fs' properties. - props.forEach(function (p) { - var d = options[p]; - if (d !== null && typeof (d) === "object" && d['fs']) { - waitCount++; - getFileSystem(d, function (e, fs) { - waitCount--; - if (e) { - if (called) { - return; - } - called = true; - cb(e); - } - else { - options[p] = fs; - if (waitCount === 0 && finishedIterating) { - finish(); - } - } - }); - } - }); - finishedIterating = true; - } - if (waitCount === 0) { - finish(); - } - } - - /** - * BrowserFS's main entry point. - * It installs all of the needed polyfills, and requires() the main module. - */ - // IE substr does not support negative indices - if ('ab'.substr(-1) !== 'b') { - String.prototype.substr = function (substr) { - return function (start, length) { - // did we get a negative start, calculate how much it is from the - // beginning of the string - if (start < 0) { - start = this.length + start; - } - // call the original function - return substr.call(this, start, length); - }; - }(String.prototype.substr); - } - // Polyfill for Uint8Array.prototype.slice. - // Safari and some other browsers do not define it. - if (typeof (ArrayBuffer) !== 'undefined' && typeof (Uint8Array) !== 'undefined') { - if (!Uint8Array.prototype['slice']) { - Uint8Array.prototype.slice = function (start, end) { - if ( start === void 0 ) start = 0; - if ( end === void 0 ) end = this.length; - - var self = this; - if (start < 0) { - start = this.length + start; - if (start < 0) { - start = 0; - } - } - if (end < 0) { - end = this.length + end; - if (end < 0) { - end = 0; - } - } - if (end < start) { - end = start; - } - return new Uint8Array(self.buffer, self.byteOffset + start, end - start); - }; - } - } - - exports.install = install; - exports.registerFileSystem = registerFileSystem; - exports.BFSRequire = BFSRequire; - exports.initialize = initialize; - exports.configure = configure; - exports.getFileSystem = getFileSystem; - exports.EmscriptenFS = BFSEmscriptenFS; - exports.FileSystem = Backends; - exports.Errors = api_error; - exports.setImmediate = setImmediate$3; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1), (function() { return this; }()), __webpack_require__(5)(module), __webpack_require__(6))) - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(2).Buffer; - - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer) {/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ - /* eslint-disable no-proto */ - - 'use strict' - - var base64 = __webpack_require__(3) - var ieee754 = __webpack_require__(4) - - exports.Buffer = Buffer - exports.SlowBuffer = SlowBuffer - exports.INSPECT_MAX_BYTES = 50 - - var K_MAX_LENGTH = 0x7fffffff - exports.kMaxLength = K_MAX_LENGTH - - /** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Print warning and recommend using `buffer` v4.x which has an Object - * implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * We report that the browser does not support typed arrays if the are not subclassable - * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` - * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support - * for __proto__ and has a buggy typed array implementation. - */ - Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() - - if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && - typeof console.error === 'function') { - console.error( - 'This browser lacks typed array (Uint8Array) support which is required by ' + - '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' - ) - } - - function typedArraySupport () { - // Can typed array instances can be augmented? - try { - var arr = new Uint8Array(1) - arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} - return arr.foo() === 42 - } catch (e) { - return false - } - } - - function createBuffer (length) { - if (length > K_MAX_LENGTH) { - throw new RangeError('Invalid typed array length') - } - // Return an augmented `Uint8Array` instance - var buf = new Uint8Array(length) - buf.__proto__ = Buffer.prototype - return buf - } - - /** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ - - function Buffer (arg, encodingOrOffset, length) { - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new Error( - 'If encoding is specified then the first argument must be a string' - ) - } - return allocUnsafe(arg) - } - return from(arg, encodingOrOffset, length) - } - - // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 - if (typeof Symbol !== 'undefined' && Symbol.species && - Buffer[Symbol.species] === Buffer) { - Object.defineProperty(Buffer, Symbol.species, { - value: null, - configurable: true, - enumerable: false, - writable: false - }) - } - - Buffer.poolSize = 8192 // not used by this implementation - - function from (value, encodingOrOffset, length) { - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number') - } - - if (isArrayBuffer(value)) { - return fromArrayBuffer(value, encodingOrOffset, length) - } - - if (typeof value === 'string') { - return fromString(value, encodingOrOffset) - } - - return fromObject(value) - } - - /** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ - Buffer.from = function (value, encodingOrOffset, length) { - return from(value, encodingOrOffset, length) - } - - // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: - // https://github.com/feross/buffer/pull/148 - Buffer.prototype.__proto__ = Uint8Array.prototype - Buffer.__proto__ = Uint8Array - - function assertSize (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be a number') - } else if (size < 0) { - throw new RangeError('"size" argument must not be negative') - } - } - - function alloc (size, fill, encoding) { - assertSize(size) - if (size <= 0) { - return createBuffer(size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpretted as a start offset. - return typeof encoding === 'string' - ? createBuffer(size).fill(fill, encoding) - : createBuffer(size).fill(fill) - } - return createBuffer(size) - } - - /** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ - Buffer.alloc = function (size, fill, encoding) { - return alloc(size, fill, encoding) - } - - function allocUnsafe (size) { - assertSize(size) - return createBuffer(size < 0 ? 0 : checked(size) | 0) - } - - /** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ - Buffer.allocUnsafe = function (size) { - return allocUnsafe(size) - } - /** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ - Buffer.allocUnsafeSlow = function (size) { - return allocUnsafe(size) - } - - function fromString (string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('"encoding" must be a valid string encoding') - } - - var length = byteLength(string, encoding) | 0 - var buf = createBuffer(length) - - var actual = buf.write(string, encoding) - - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - buf = buf.slice(0, actual) - } - - return buf - } - - function fromArrayLike (array) { - var length = array.length < 0 ? 0 : checked(array.length) | 0 - var buf = createBuffer(length) - for (var i = 0; i < length; i += 1) { - buf[i] = array[i] & 255 - } - return buf - } - - function fromArrayBuffer (array, byteOffset, length) { - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('\'offset\' is out of bounds') - } - - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('\'length\' is out of bounds') - } - - var buf - if (byteOffset === undefined && length === undefined) { - buf = new Uint8Array(array) - } else if (length === undefined) { - buf = new Uint8Array(array, byteOffset) - } else { - buf = new Uint8Array(array, byteOffset, length) - } - - // Return an augmented `Uint8Array` instance - buf.__proto__ = Buffer.prototype - return buf - } - - function fromObject (obj) { - if (Buffer.isBuffer(obj)) { - var len = checked(obj.length) | 0 - var buf = createBuffer(len) - - if (buf.length === 0) { - return buf - } - - obj.copy(buf, 0, 0, len) - return buf - } - - if (obj) { - if (isArrayBufferView(obj) || 'length' in obj) { - if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { - return createBuffer(0) - } - return fromArrayLike(obj) - } - - if (obj.type === 'Buffer' && Array.isArray(obj.data)) { - return fromArrayLike(obj.data) - } - } - - throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') - } - - function checked (length) { - // Note: cannot use `length < K_MAX_LENGTH` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= K_MAX_LENGTH) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') - } - return length | 0 - } - - function SlowBuffer (length) { - if (+length != length) { // eslint-disable-line eqeqeq - length = 0 - } - return Buffer.alloc(+length) - } - - Buffer.isBuffer = function isBuffer (b) { - return b != null && b._isBuffer === true - } - - Buffer.compare = function compare (a, b) { - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError('Arguments must be Buffers') - } - - if (a === b) return 0 - - var x = a.length - var y = b.length - - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i] - y = b[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - } - - Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } - } - - Buffer.concat = function concat (list, length) { - if (!Array.isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - - if (list.length === 0) { - return Buffer.alloc(0) - } - - var i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; ++i) { - length += list[i].length - } - } - - var buffer = Buffer.allocUnsafe(length) - var pos = 0 - for (i = 0; i < list.length; ++i) { - var buf = list[i] - if (!Buffer.isBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - buf.copy(buffer, pos) - pos += buf.length - } - return buffer - } - - function byteLength (string, encoding) { - if (Buffer.isBuffer(string)) { - return string.length - } - if (isArrayBufferView(string) || isArrayBuffer(string)) { - return string.byteLength - } - if (typeof string !== 'string') { - string = '' + string - } - - var len = string.length - if (len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - case undefined: - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) return utf8ToBytes(string).length // assume utf8 - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } - } - Buffer.byteLength = byteLength - - function slowToString (encoding, start, end) { - var loweredCase = false - - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. - - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0 - } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' - } - - if (end === undefined || end > this.length) { - end = this.length - } - - if (end <= 0) { - return '' - } - - // Force coersion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0 - start >>>= 0 - - if (end <= start) { - return '' - } - - if (!encoding) encoding = 'utf8' - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } - } - - // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) - // to detect a Buffer instance. It's not possible to use `instanceof Buffer` - // reliably in a browserify context because there could be multiple different - // copies of the 'buffer' package in use. This method works even for Buffer - // instances that were created from another copy of the `buffer` package. - // See: https://github.com/feross/buffer/issues/154 - Buffer.prototype._isBuffer = true - - function swap (b, n, m) { - var i = b[n] - b[n] = b[m] - b[m] = i - } - - Buffer.prototype.swap16 = function swap16 () { - var len = this.length - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (var i = 0; i < len; i += 2) { - swap(this, i, i + 1) - } - return this - } - - Buffer.prototype.swap32 = function swap32 () { - var len = this.length - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (var i = 0; i < len; i += 4) { - swap(this, i, i + 3) - swap(this, i + 1, i + 2) - } - return this - } - - Buffer.prototype.swap64 = function swap64 () { - var len = this.length - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (var i = 0; i < len; i += 8) { - swap(this, i, i + 7) - swap(this, i + 1, i + 6) - swap(this, i + 2, i + 5) - swap(this, i + 3, i + 4) - } - return this - } - - Buffer.prototype.toString = function toString () { - var length = this.length - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) - } - - Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 - } - - Buffer.prototype.inspect = function inspect () { - var str = '' - var max = exports.INSPECT_MAX_BYTES - if (this.length > 0) { - str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') - if (this.length > max) str += ' ... ' - } - return '' - } - - Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (!Buffer.isBuffer(target)) { - throw new TypeError('Argument must be a Buffer') - } - - if (start === undefined) { - start = 0 - } - if (end === undefined) { - end = target ? target.length : 0 - } - if (thisStart === undefined) { - thisStart = 0 - } - if (thisEnd === undefined) { - thisEnd = this.length - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0 - end >>>= 0 - thisStart >>>= 0 - thisEnd >>>= 0 - - if (this === target) return 0 - - var x = thisEnd - thisStart - var y = end - start - var len = Math.min(x, y) - - var thisCopy = this.slice(thisStart, thisEnd) - var targetCopy = target.slice(start, end) - - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i] - y = targetCopy[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - } - - // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, - // OR the last index of `val` in `buffer` at offset <= `byteOffset`. - // - // Arguments: - // - buffer - a Buffer to search - // - val - a string, Buffer, or number - // - byteOffset - an index into `buffer`; will be clamped to an int32 - // - encoding - an optional encoding, relevant is val is a string - // - dir - true for indexOf, false for lastIndexOf - function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset - byteOffset = 0 - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000 - } - byteOffset = +byteOffset // Coerce to Number. - if (numberIsNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1) - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1 - } else if (byteOffset < 0) { - if (dir) byteOffset = 0 - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer.from(val, encoding) - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (Buffer.isBuffer(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 - } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF // Search for a byte value [0-255] - if (typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } - } - return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') - } - - function arrayIndexOf (arr, val, byteOffset, encoding, dir) { - var indexSize = 1 - var arrLength = arr.length - var valLength = val.length - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase() - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2 - arrLength /= 2 - valLength /= 2 - byteOffset /= 2 - } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - - var i - if (dir) { - var foundIndex = -1 - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex - foundIndex = -1 - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength - for (i = byteOffset; i >= 0; i--) { - var found = true - for (var j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false - break - } - } - if (found) return i - } - } - - return -1 - } - - Buffer.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 - } - - Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) - } - - Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) - } - - function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - var remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining - } - } - - // must be an even number of digits - var strLen = string.length - if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') - - if (length > strLen / 2) { - length = strLen / 2 - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16) - if (numberIsNaN(parsed)) return i - buf[offset + i] = parsed - } - return i - } - - function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) - } - - function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) - } - - function latin1Write (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) - } - - function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) - } - - function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) - } - - Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset >>> 0 - if (isFinite(length)) { - length = length >>> 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - var remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - var loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'latin1': - case 'binary': - return latin1Write(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } - } - - Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } - } - - function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } - } - - function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - var res = [] - - var i = start - while (i < end) { - var firstByte = buf[i] - var codePoint = null - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1 - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF - } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) - } - - // Based on http://stackoverflow.com/a/22747272/680742, the browser with - // the lowest limit is Chrome, with 0x10000 args. - // We go 1 magnitude less, for safety - var MAX_ARGUMENTS_LENGTH = 0x1000 - - function decodeCodePointsArray (codePoints) { - var len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = '' - var i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res - } - - function asciiSlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret - } - - function latin1Slice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]) - } - return ret - } - - function hexSlice (buf, start, end) { - var len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - var out = '' - for (var i = start; i < end; ++i) { - out += toHex(buf[i]) - } - return out - } - - function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end) - var res = '' - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256)) - } - return res - } - - Buffer.prototype.slice = function slice (start, end) { - var len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - var newBuf = this.subarray(start, end) - // Return an augmented `Uint8Array` instance - newBuf.__proto__ = Buffer.prototype - return newBuf - } - - /* - * Need to make sure that buffer isn't trying to write out of bounds. - */ - function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') - } - - Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val - } - - Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - var val = this[offset + --byteLength] - var mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } - - return val - } - - Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] - } - - Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) - } - - Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] - } - - Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) - } - - Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) - } - - Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val - } - - Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var i = byteLength - var mul = 1 - var val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val - } - - Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) - } - - Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val - } - - Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val - } - - Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) - } - - Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) - } - - Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) - } - - Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) - } - - Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) - } - - Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) - } - - function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') - } - - Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var mul = 1 - var i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var i = byteLength - 1 - var mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - this[offset] = (value & 0xff) - return offset + 1 - } - - Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - return offset + 2 - } - - Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - return offset + 2 - } - - Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = (value & 0xff) - return offset + 4 - } - - Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - return offset + 4 - } - - Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - var limit = Math.pow(2, (8 * byteLength) - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = 0 - var mul = 1 - var sub = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - var limit = Math.pow(2, (8 * byteLength) - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = byteLength - 1 - var mul = 1 - var sub = 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (value < 0) value = 0xff + value + 1 - this[offset] = (value & 0xff) - return offset + 1 - } - - Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - return offset + 2 - } - - Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - return offset + 2 - } - - Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - return offset + 4 - } - - Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - return offset + 4 - } - - function checkIEEE754 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') - } - - function writeFloat (buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 - } - - Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) - } - - Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) - } - - function writeDouble (buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 - } - - Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) - } - - Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) - } - - // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) - Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - - var len = end - start - var i - - if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start] - } - } else if (len < 1000) { - // ascending copy from start - for (i = 0; i < len; ++i) { - target[i + targetStart] = this[i + start] - } - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, start + len), - targetStart - ) - } - - return len - } - - // Usage: - // buffer.fill(number[, offset[, end]]) - // buffer.fill(buffer[, offset[, end]]) - // buffer.fill(string[, offset[, end]][, encoding]) - Buffer.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start - start = 0 - end = this.length - } else if (typeof end === 'string') { - encoding = end - end = this.length - } - if (val.length === 1) { - var code = val.charCodeAt(0) - if (code < 256) { - val = code - } - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - } else if (typeof val === 'number') { - val = val & 255 - } - - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return this - } - - start = start >>> 0 - end = end === undefined ? this.length : end >>> 0 - - if (!val) val = 0 - - var i - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val - } - } else { - var bytes = Buffer.isBuffer(val) - ? val - : new Buffer(val, encoding) - var len = bytes.length - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len] - } - } - - return this - } - - // HELPER FUNCTIONS - // ================ - - var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g - - function base64clean (str) { - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = str.trim().replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str - } - - function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) - } - - function utf8ToBytes (string, units) { - units = units || Infinity - var codePoint - var length = string.length - var leadSurrogate = null - var bytes = [] - - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i) - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } - - // valid lead - leadSurrogate = codePoint - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - } - - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') - } - } - - return bytes - } - - function asciiToBytes (str) { - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray - } - - function utf16leToBytes (str, units) { - var c, hi, lo - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - - return byteArray - } - - function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) - } - - function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] - } - return i - } - - // ArrayBuffers from another context (i.e. an iframe) do not pass the `instanceof` check - // but they should be treated as valid. See: https://github.com/feross/buffer/issues/166 - function isArrayBuffer (obj) { - return obj instanceof ArrayBuffer || - (obj != null && obj.constructor != null && obj.constructor.name === 'ArrayBuffer' && - typeof obj.byteLength === 'number') - } - - // Node 0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView` - function isArrayBufferView (obj) { - return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj) - } - - function numberIsNaN (obj) { - return obj !== obj // eslint-disable-line no-self-compare - } - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) - -/***/ }, -/* 3 */ -/***/ function(module, exports) { - - 'use strict' - - exports.byteLength = byteLength - exports.toByteArray = toByteArray - exports.fromByteArray = fromByteArray - - var lookup = [] - var revLookup = [] - var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array - - var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' - for (var i = 0, len = code.length; i < len; ++i) { - lookup[i] = code[i] - revLookup[code.charCodeAt(i)] = i - } - - revLookup['-'.charCodeAt(0)] = 62 - revLookup['_'.charCodeAt(0)] = 63 - - function placeHoldersCount (b64) { - var len = b64.length - if (len % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // the number of equal signs (place holders) - // if there are two placeholders, than the two characters before it - // represent one byte - // if there is only one, then the three characters before it represent 2 bytes - // this is just a cheap hack to not do indexOf twice - return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0 - } - - function byteLength (b64) { - // base64 is 4/3 + up to two characters of the original data - return b64.length * 3 / 4 - placeHoldersCount(b64) - } - - function toByteArray (b64) { - var i, j, l, tmp, placeHolders, arr - var len = b64.length - placeHolders = placeHoldersCount(b64) - - arr = new Arr(len * 3 / 4 - placeHolders) - - // if there are placeholders, only get up to the last complete 4 chars - l = placeHolders > 0 ? len - 4 : len - - var L = 0 - - for (i = 0, j = 0; i < l; i += 4, j += 3) { - tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] - arr[L++] = (tmp >> 16) & 0xFF - arr[L++] = (tmp >> 8) & 0xFF - arr[L++] = tmp & 0xFF - } - - if (placeHolders === 2) { - tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) - arr[L++] = tmp & 0xFF - } else if (placeHolders === 1) { - tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) - arr[L++] = (tmp >> 8) & 0xFF - arr[L++] = tmp & 0xFF - } - - return arr - } - - function tripletToBase64 (num) { - return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] - } - - function encodeChunk (uint8, start, end) { - var tmp - var output = [] - for (var i = start; i < end; i += 3) { - tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) - output.push(tripletToBase64(tmp)) - } - return output.join('') - } - - function fromByteArray (uint8) { - var tmp - var len = uint8.length - var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes - var output = '' - var parts = [] - var maxChunkLength = 16383 // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) - } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1] - output += lookup[tmp >> 2] - output += lookup[(tmp << 4) & 0x3F] - output += '==' - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + (uint8[len - 1]) - output += lookup[tmp >> 10] - output += lookup[(tmp >> 4) & 0x3F] - output += lookup[(tmp << 2) & 0x3F] - output += '=' - } - - parts.push(output) - - return parts.join('') - } - - -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - exports.read = function (buffer, offset, isLE, mLen, nBytes) { - var e, m - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var nBits = -7 - var i = isLE ? (nBytes - 1) : 0 - var d = isLE ? -1 : 1 - var s = buffer[offset + i] - - i += d - - e = s & ((1 << (-nBits)) - 1) - s >>= (-nBits) - nBits += eLen - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1) - e >>= (-nBits) - nBits += mLen - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen) - e = e - eBias - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) - } - - exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) - var i = isLE ? 0 : (nBytes - 1) - var d = isLE ? 1 : -1 - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 - - value = Math.abs(value) - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0 - e = eMax - } else { - e = Math.floor(Math.log(value) / Math.LN2) - if (value * (c = Math.pow(2, -e)) < 1) { - e-- - c *= 2 - } - if (e + eBias >= 1) { - value += rt / c - } else { - value += rt * Math.pow(2, 1 - eBias) - } - if (value * c >= 2) { - e++ - c /= 2 - } - - if (e + eBias >= eMax) { - m = 0 - e = eMax - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen) - e = e + eBias - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) - e = 0 - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m - eLen += mLen - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128 - } - - -/***/ }, -/* 5 */ -/***/ function(module, exports) { - - module.exports = function(module) { - if(!module.webpackPolyfill) { - module.deprecate = function() {}; - module.paths = []; - // module.parent = undefined by default - module.children = []; - module.webpackPolyfill = 1; - } - return module; - } - - -/***/ }, -/* 6 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var Process = __webpack_require__(7); - var process = new Process(), processProxy = {}; - function defineKey(key) { - if (processProxy[key]) { - // Probably a builtin Object property we don't care about. - return; - } - if (typeof process[key] === 'function') { - processProxy[key] = function () { - return process[key].apply(process, arguments); - }; - } - else { - processProxy[key] = process[key]; - } - } - for (var key in process) { - // Don't check if process.hasOwnProperty; we want to also expose objects - // up the prototype hierarchy. - defineKey(key); - } - // Special key: Ensure we update public-facing values of stdin/stdout/stderr. - processProxy.initializeTTYs = function () { - if (process.stdin === null) { - process.initializeTTYs(); - processProxy.stdin = process.stdin; - processProxy.stdout = process.stdout; - processProxy.stderr = process.stderr; - } - }; - process.nextTick(function () { - processProxy.initializeTTYs(); - }); - module.exports = processProxy; - - -/***/ }, -/* 7 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(__dirname) {"use strict"; - var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - var events = __webpack_require__(8); - // Path depends on process. Avoid a circular reference by dynamically including path when we need it. - var path = null; - var Item = (function () { - function Item(fun, array) { - this.fun = fun; - this.array = array; - } - Item.prototype.run = function () { - this.fun.apply(null, this.array); - }; - return Item; - }()); - /** - * Contains a queue of Items for process.nextTick. - * Inspired by node-process: https://github.com/defunctzombie/node-process - */ - var NextTickQueue = (function () { - function NextTickQueue() { - this._queue = []; - this._draining = false; - // Used/assigned by the drainQueue function. - this._currentQueue = null; - this._queueIndex = -1; - } - NextTickQueue.prototype.push = function (item) { - var _this = this; - if (this._queue.push(item) === 1 && !this._draining) { - setTimeout(function () { return _this._drainQueue(); }, 0); - } - }; - NextTickQueue.prototype._cleanUpNextTick = function () { - this._draining = false; - if (this._currentQueue && this._currentQueue.length) { - this._queue = this._currentQueue.concat(this._queue); - } - else { - this._queueIndex = -1; - } - if (this._queue.length) { - this._drainQueue(); - } - }; - NextTickQueue.prototype._drainQueue = function () { - var _this = this; - if (this._draining) { - return; - } - // If an Item throws an unhandled exception, this function will clean things up. - var timeout = setTimeout(function () { return _this._cleanUpNextTick(); }); - this._draining = true; - var len = this._queue.length; - while (len) { - this._currentQueue = this._queue; - this._queue = []; - while (++this._queueIndex < len) { - if (this._currentQueue) { - this._currentQueue[this._queueIndex].run(); - } - } - this._queueIndex = -1; - len = this._queue.length; - } - this._currentQueue = null; - this._draining = false; - clearTimeout(timeout); - }; - return NextTickQueue; - }()); - /** - * Partial implementation of Node's `process` module. - * We implement the portions that are relevant for the filesystem. - * @see http://nodejs.org/api/process.html - * @class - */ - var Process = (function (_super) { - __extends(Process, _super); - function Process() { - _super.apply(this, arguments); - this.startTime = Date.now(); - this._cwd = '/'; - /** - * Returns what platform you are running on. - * @return [String] - */ - this.platform = 'browser'; - this.argv = []; - this.execArgv = []; - this.stdout = null; - this.stderr = null; - this.stdin = null; - this.domain = null; - this._queue = new NextTickQueue(); - this.execPath = __dirname; - this.env = {}; - this.exitCode = 0; - this._gid = 1; - this._uid = 1; - this.version = 'v5.0'; - this.versions = { - http_parser: '0.0', - node: '5.0', - v8: '0.0', - uv: '0.0', - zlib: '0.0', - ares: '0.0', - icu: '0.0', - modules: '0', - openssl: '0.0' - }; - this.config = { - target_defaults: { cflags: [], - default_configuration: 'Release', - defines: [], - include_dirs: [], - libraries: [] }, - variables: { clang: 0, - host_arch: 'x32', - node_install_npm: false, - node_install_waf: false, - node_prefix: '', - node_shared_cares: false, - node_shared_http_parser: false, - node_shared_libuv: false, - node_shared_zlib: false, - node_shared_v8: false, - node_use_dtrace: false, - node_use_etw: false, - node_use_openssl: false, - node_shared_openssl: false, - strict_aliasing: false, - target_arch: 'x32', - v8_use_snapshot: false, - v8_no_strict_aliasing: 0, - visibility: '' } }; - this.pid = (Math.random() * 1000) | 0; - this.title = 'node'; - this.arch = 'x32'; - this._mask = 18; - // Undefined in main thread. Worker-only. - this.connected = undefined; - } - /** - * Changes the current working directory. - * - * **Note**: BrowserFS does not validate that the directory actually exists. - * - * @example Usage example - * console.log('Starting directory: ' + process.cwd()); - * process.chdir('/tmp'); - * console.log('New directory: ' + process.cwd()); - * @param [String] dir The directory to change to. - */ - Process.prototype.chdir = function (dir) { - // XXX: Circular dependency hack. - if (path === null) { - path = __webpack_require__(9); - } - this._cwd = path.resolve(dir); - }; - /** - * Returns the current working directory. - * @example Usage example - * console.log('Current directory: ' + process.cwd()); - * @return [String] The current working directory. - */ - Process.prototype.cwd = function () { - return this._cwd; - }; - /** - * Number of seconds BrowserFS has been running. - * @return [Number] - */ - Process.prototype.uptime = function () { - return ((Date.now() - this.startTime) / 1000) | 0; - }; - Process.prototype.nextTick = function (fun) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - this._queue.push(new Item(fun, args)); - }; - Process.prototype.abort = function () { - this.emit('abort'); - }; - Process.prototype.exit = function (code) { - this.exitCode = code; - this.emit('exit', [code]); - }; - Process.prototype.getgid = function () { - return this._gid; - }; - Process.prototype.setgid = function (gid) { - if (typeof gid === 'number') { - this._gid = gid; - } - else { - this._gid = 1; - } - }; - Process.prototype.getuid = function () { - return this._uid; - }; - Process.prototype.setuid = function (uid) { - if (typeof uid === 'number') { - this._uid = uid; - } - else { - this._uid = 1; - } - }; - Process.prototype.kill = function (pid, signal) { - this.emit('kill', [pid, signal]); - }; - Process.prototype.memoryUsage = function () { - return { rss: 0, heapTotal: 0, heapUsed: 0 }; - }; - Process.prototype.umask = function (mask) { - if (mask === void 0) { mask = this._mask; } - var oldMask = this._mask; - this._mask = mask; - this.emit('umask', [mask]); - return oldMask; - }; - Process.prototype.hrtime = function () { - var timeinfo; - if (typeof performance !== 'undefined') { - timeinfo = performance.now(); - } - else if (Date['now']) { - timeinfo = Date.now(); - } - else { - timeinfo = (new Date()).getTime(); - } - var secs = (timeinfo / 1000) | 0; - timeinfo -= secs * 1000; - timeinfo = (timeinfo * 1000000) | 0; - return [secs, timeinfo]; - }; - /** - * [BFS only] Initialize the TTY devices. - */ - Process.prototype.initializeTTYs = function () { - // Guard against multiple invocations. - if (this.stdout === null) { - var TTY = __webpack_require__(10); - this.stdout = new TTY(); - this.stderr = new TTY(); - this.stdin = new TTY(); - } - }; - /** - * Worker-only function; irrelevant here. - */ - Process.prototype.disconnect = function () { - }; - return Process; - }(events.EventEmitter)); - module.exports = Process; - - /* WEBPACK VAR INJECTION */}.call(exports, "/")) - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - // Copyright Joyent, Inc. and other Node contributors. - // - // 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. - - function EventEmitter() { - this._events = this._events || {}; - this._maxListeners = this._maxListeners || undefined; - } - module.exports = EventEmitter; - - // Backwards-compat with node 0.10.x - EventEmitter.EventEmitter = EventEmitter; - - EventEmitter.prototype._events = undefined; - EventEmitter.prototype._maxListeners = undefined; - - // By default EventEmitters will print a warning if more than 10 listeners are - // added to it. This is a useful default which helps finding memory leaks. - EventEmitter.defaultMaxListeners = 10; - - // Obviously not all Emitters should be limited to 10. This function allows - // that to be increased. Set to zero for unlimited. - EventEmitter.prototype.setMaxListeners = function(n) { - if (!isNumber(n) || n < 0 || isNaN(n)) - throw TypeError('n must be a positive number'); - this._maxListeners = n; - return this; - }; - - EventEmitter.prototype.emit = function(type) { - var er, handler, len, args, i, listeners; - - if (!this._events) - this._events = {}; - - // If there is no 'error' event listener then throw. - if (type === 'error') { - if (!this._events.error || - (isObject(this._events.error) && !this._events.error.length)) { - er = arguments[1]; - if (er instanceof Error) { - throw er; // Unhandled 'error' event - } else { - // At least give some kind of context to the user - var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); - err.context = er; - throw err; - } - } - } - - handler = this._events[type]; - - if (isUndefined(handler)) - return false; - - if (isFunction(handler)) { - switch (arguments.length) { - // fast cases - case 1: - handler.call(this); - break; - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; - // slower - default: - args = Array.prototype.slice.call(arguments, 1); - handler.apply(this, args); - } - } else if (isObject(handler)) { - args = Array.prototype.slice.call(arguments, 1); - listeners = handler.slice(); - len = listeners.length; - for (i = 0; i < len; i++) - listeners[i].apply(this, args); - } - - return true; - }; - - EventEmitter.prototype.addListener = function(type, listener) { - var m; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events) - this._events = {}; - - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (this._events.newListener) - this.emit('newListener', type, - isFunction(listener.listener) ? - listener.listener : listener); - - if (!this._events[type]) - // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - else if (isObject(this._events[type])) - // If we've already got an array, just append. - this._events[type].push(listener); - else - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - - // Check for listener leak - if (isObject(this._events[type]) && !this._events[type].warned) { - if (!isUndefined(this._maxListeners)) { - m = this._maxListeners; - } else { - m = EventEmitter.defaultMaxListeners; - } - - if (m && m > 0 && this._events[type].length > m) { - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - if (typeof console.trace === 'function') { - // not supported in IE 10 - console.trace(); - } - } - } - - return this; - }; - - EventEmitter.prototype.on = EventEmitter.prototype.addListener; - - EventEmitter.prototype.once = function(type, listener) { - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - var fired = false; - - function g() { - this.removeListener(type, g); - - if (!fired) { - fired = true; - listener.apply(this, arguments); - } - } - - g.listener = listener; - this.on(type, g); - - return this; - }; - - // emits a 'removeListener' event iff the listener was removed - EventEmitter.prototype.removeListener = function(type, listener) { - var list, position, length, i; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events || !this._events[type]) - return this; - - list = this._events[type]; - length = list.length; - position = -1; - - if (list === listener || - (isFunction(list.listener) && list.listener === listener)) { - delete this._events[type]; - if (this._events.removeListener) - this.emit('removeListener', type, listener); - - } else if (isObject(list)) { - for (i = length; i-- > 0;) { - if (list[i] === listener || - (list[i].listener && list[i].listener === listener)) { - position = i; - break; - } - } - - if (position < 0) - return this; - - if (list.length === 1) { - list.length = 0; - delete this._events[type]; - } else { - list.splice(position, 1); - } - - if (this._events.removeListener) - this.emit('removeListener', type, listener); - } - - return this; - }; - - EventEmitter.prototype.removeAllListeners = function(type) { - var key, listeners; - - if (!this._events) - return this; - - // not listening for removeListener, no need to emit - if (!this._events.removeListener) { - if (arguments.length === 0) - this._events = {}; - else if (this._events[type]) - delete this._events[type]; - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - for (key in this._events) { - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = {}; - return this; - } - - listeners = this._events[type]; - - if (isFunction(listeners)) { - this.removeListener(type, listeners); - } else if (listeners) { - // LIFO order - while (listeners.length) - this.removeListener(type, listeners[listeners.length - 1]); - } - delete this._events[type]; - - return this; - }; - - EventEmitter.prototype.listeners = function(type) { - var ret; - if (!this._events || !this._events[type]) - ret = []; - else if (isFunction(this._events[type])) - ret = [this._events[type]]; - else - ret = this._events[type].slice(); - return ret; - }; - - EventEmitter.prototype.listenerCount = function(type) { - if (this._events) { - var evlistener = this._events[type]; - - if (isFunction(evlistener)) - return 1; - else if (evlistener) - return evlistener.length; - } - return 0; - }; - - EventEmitter.listenerCount = function(emitter, type) { - return emitter.listenerCount(type); - }; - - function isFunction(arg) { - return typeof arg === 'function'; - } - - function isNumber(arg) { - return typeof arg === 'number'; - } - - function isObject(arg) { - return typeof arg === 'object' && arg !== null; - } - - function isUndefined(arg) { - return arg === void 0; - } - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {"use strict"; - // Split a filename into [root, dir, basename, ext], unix version - // 'root' is just a slash, or nothing. - var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - function posixSplitPath(filename) { - var out = splitPathRe.exec(filename); - out.shift(); - return out; - } - /** - * Emulates Node's `path` module. This module contains utilities for handling and - * transforming file paths. **All** of these methods perform only string - * transformations. The file system is not consulted to check whether paths are - * valid. - * @see http://nodejs.org/api/path.html - * @class - */ - var path = (function () { - function path() { - } - /** - * Normalize a string path, taking care of '..' and '.' parts. - * - * When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used. - * @example Usage example - * path.normalize('/foo/bar//baz/asdf/quux/..') - * // returns - * '/foo/bar/baz/asdf' - * @param [String] p The path to normalize. - * @return [String] - */ - path.normalize = function (p) { - // Special case: '' -> '.' - if (p === '') { - p = '.'; - } - // It's very important to know if the path is relative or not, since it - // changes how we process .. and reconstruct the split string. - var absolute = p.charAt(0) === path.sep; - // Remove repeated //s - p = path._removeDuplicateSeps(p); - // Try to remove as many '../' as possible, and remove '.' completely. - var components = p.split(path.sep); - var goodComponents = []; - for (var idx = 0; idx < components.length; idx++) { - var c = components[idx]; - if (c === '.') { - continue; - } - else if (c === '..' && (absolute || (!absolute && goodComponents.length > 0 && goodComponents[0] !== '..'))) { - // In the absolute case: Path is relative to root, so we may pop even if - // goodComponents is empty (e.g. /../ => /) - // In the relative case: We're getting rid of a directory that preceded - // it (e.g. /foo/../bar -> /bar) - goodComponents.pop(); - } - else { - goodComponents.push(c); - } - } - // Add in '.' when it's a relative path with no other nonempty components. - // Possible results: '.' and './' (input: [''] or []) - // @todo Can probably simplify this logic. - if (!absolute && goodComponents.length < 2) { - switch (goodComponents.length) { - case 1: - if (goodComponents[0] === '') { - goodComponents.unshift('.'); - } - break; - default: - goodComponents.push('.'); - } - } - p = goodComponents.join(path.sep); - if (absolute && p.charAt(0) !== path.sep) { - p = path.sep + p; - } - return p; - }; - /** - * Join all arguments together and normalize the resulting path. - * - * Arguments must be strings. - * @example Usage - * path.join('/foo', 'bar', 'baz/asdf', 'quux', '..') - * // returns - * '/foo/bar/baz/asdf' - * - * path.join('foo', {}, 'bar') - * // throws exception - * TypeError: Arguments to path.join must be strings - * @param [String,...] paths Each component of the path - * @return [String] - */ - path.join = function () { - var paths = []; - for (var _i = 0; _i < arguments.length; _i++) { - paths[_i - 0] = arguments[_i]; - } - // Required: Prune any non-strings from the path. I also prune empty segments - // so we can do a simple join of the array. - var processed = []; - for (var i = 0; i < paths.length; i++) { - var segment = paths[i]; - if (typeof segment !== 'string') { - throw new TypeError("Invalid argument type to path.join: " + (typeof segment)); - } - else if (segment !== '') { - processed.push(segment); - } - } - return path.normalize(processed.join(path.sep)); - }; - /** - * Resolves to to an absolute path. - * - * If to isn't already absolute from arguments are prepended in right to left - * order, until an absolute path is found. If after using all from paths still - * no absolute path is found, the current working directory is used as well. - * The resulting path is normalized, and trailing slashes are removed unless - * the path gets resolved to the root directory. Non-string arguments are - * ignored. - * - * Another way to think of it is as a sequence of cd commands in a shell. - * - * path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile') - * - * Is similar to: - * - * cd foo/bar - * cd /tmp/file/ - * cd .. - * cd a/../subfile - * pwd - * - * The difference is that the different paths don't need to exist and may also - * be files. - * @example Usage example - * path.resolve('/foo/bar', './baz') - * // returns - * '/foo/bar/baz' - * - * path.resolve('/foo/bar', '/tmp/file/') - * // returns - * '/tmp/file' - * - * path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif') - * // if currently in /home/myself/node, it returns - * '/home/myself/node/wwwroot/static_files/gif/image.gif' - * @param [String,...] paths - * @return [String] - */ - path.resolve = function () { - var paths = []; - for (var _i = 0; _i < arguments.length; _i++) { - paths[_i - 0] = arguments[_i]; - } - // Monitor for invalid paths, throw out empty paths, and look for the *last* - // absolute path that we see. - var processed = []; - for (var i = 0; i < paths.length; i++) { - var p = paths[i]; - if (typeof p !== 'string') { - throw new TypeError("Invalid argument type to path.join: " + (typeof p)); - } - else if (p !== '') { - // Remove anything that has occurred before this absolute path, as it - // doesn't matter. - if (p.charAt(0) === path.sep) { - processed = []; - } - processed.push(p); - } - } - // Special: Remove trailing slash unless it's the root - var resolved = path.normalize(processed.join(path.sep)); - if (resolved.length > 1 && resolved.charAt(resolved.length - 1) === path.sep) { - return resolved.substr(0, resolved.length - 1); - } - // Special: If it doesn't start with '/', it's relative and we need to append - // the current directory. - if (resolved.charAt(0) !== path.sep) { - // Remove ./, since we're going to append the current directory. - if (resolved.charAt(0) === '.' && (resolved.length === 1 || resolved.charAt(1) === path.sep)) { - resolved = resolved.length === 1 ? '' : resolved.substr(2); - } - // Append the current directory, which *must* be an absolute path. - var cwd = process.cwd(); - if (resolved !== '') { - // cwd will never end in a /... unless it's the root. - resolved = this.normalize(cwd + (cwd !== '/' ? path.sep : '') + resolved); - } - else { - resolved = cwd; - } - } - return resolved; - }; - /** - * Solve the relative path from from to to. - * - * At times we have two absolute paths, and we need to derive the relative path - * from one to the other. This is actually the reverse transform of - * path.resolve, which means we see that: - * - * path.resolve(from, path.relative(from, to)) == path.resolve(to) - * - * @example Usage example - * path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb') - * // returns - * '..\\..\\impl\\bbb' - * - * path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb') - * // returns - * '../../impl/bbb' - * @param [String] from - * @param [String] to - * @return [String] - */ - path.relative = function (from, to) { - var i; - // Alright. Let's resolve these two to absolute paths and remove any - // weirdness. - from = path.resolve(from); - to = path.resolve(to); - var fromSegs = from.split(path.sep); - var toSegs = to.split(path.sep); - // Remove the first segment on both, as it's '' (both are absolute paths) - toSegs.shift(); - fromSegs.shift(); - // There are two segments to this path: - // * Going *up* the directory hierarchy with '..' - // * Going *down* the directory hierarchy with foo/baz/bat. - var upCount = 0; - var downSegs = []; - // Figure out how many things in 'from' are shared with 'to'. - for (i = 0; i < fromSegs.length; i++) { - var seg = fromSegs[i]; - if (seg === toSegs[i]) { - continue; - } - // The rest of 'from', including the current element, indicates how many - // directories we need to go up. - upCount = fromSegs.length - i; - break; - } - // The rest of 'to' indicates where we need to change to. We place this - // outside of the loop, as toSegs.length may be greater than fromSegs.length. - downSegs = toSegs.slice(i); - // Special case: If 'from' is '/' - if (fromSegs.length === 1 && fromSegs[0] === '') { - upCount = 0; - } - // upCount can't be greater than the number of fromSegs - // (cd .. from / is still /) - if (upCount > fromSegs.length) { - upCount = fromSegs.length; - } - // Create the final string! - var rv = ''; - for (i = 0; i < upCount; i++) { - rv += '../'; - } - rv += downSegs.join(path.sep); - // Special case: Remove trailing '/'. Happens if it's all up and no down. - if (rv.length > 1 && rv.charAt(rv.length - 1) === path.sep) { - rv = rv.substr(0, rv.length - 1); - } - return rv; - }; - /** - * Return the directory name of a path. Similar to the Unix `dirname` command. - * - * Note that BrowserFS does not validate if the path is actually a valid - * directory. - * @example Usage example - * path.dirname('/foo/bar/baz/asdf/quux') - * // returns - * '/foo/bar/baz/asdf' - * @param [String] p The path to get the directory name of. - * @return [String] - */ - path.dirname = function (p) { - // We get rid of //, but we don't modify anything else (e.g. any extraneous . - // and ../ are kept intact) - p = path._removeDuplicateSeps(p); - var absolute = p.charAt(0) === path.sep; - var sections = p.split(path.sep); - // Do 1 if it's /foo/bar, 2 if it's /foo/bar/ - if (sections.pop() === '' && sections.length > 0) { - sections.pop(); - } - // # of sections needs to be > 1 if absolute, since the first section is '' for '/'. - // If not absolute, the first section is the first part of the path, and is OK - // to return. - if (sections.length > 1 || (sections.length === 1 && !absolute)) { - return sections.join(path.sep); - } - else if (absolute) { - return path.sep; - } - else { - return '.'; - } - }; - /** - * Return the last portion of a path. Similar to the Unix basename command. - * @example Usage example - * path.basename('/foo/bar/baz/asdf/quux.html') - * // returns - * 'quux.html' - * - * path.basename('/foo/bar/baz/asdf/quux.html', '.html') - * // returns - * 'quux' - * @param [String] p - * @param [String?] ext - * @return [String] - */ - path.basename = function (p, ext) { - if (ext === void 0) { ext = ""; } - // Special case: Normalize will modify this to '.' - if (p === '') { - return p; - } - // Normalize the string first to remove any weirdness. - p = path.normalize(p); - // Get the last part of the string. - var sections = p.split(path.sep); - var lastPart = sections[sections.length - 1]; - // Special case: If it's empty, then we have a string like so: foo/ - // Meaning, 'foo' is guaranteed to be a directory. - if (lastPart === '' && sections.length > 1) { - return sections[sections.length - 2]; - } - // Remove the extension, if need be. - if (ext.length > 0) { - var lastPartExt = lastPart.substr(lastPart.length - ext.length); - if (lastPartExt === ext) { - return lastPart.substr(0, lastPart.length - ext.length); - } - } - return lastPart; - }; - /** - * Return the extension of the path, from the last '.' to end of string in the - * last portion of the path. If there is no '.' in the last portion of the path - * or the first character of it is '.', then it returns an empty string. - * @example Usage example - * path.extname('index.html') - * // returns - * '.html' - * - * path.extname('index.') - * // returns - * '.' - * - * path.extname('index') - * // returns - * '' - * @param [String] p - * @return [String] - */ - path.extname = function (p) { - p = path.normalize(p); - var sections = p.split(path.sep); - p = sections.pop(); - // Special case: foo/file.ext/ should return '.ext' - if (p === '' && sections.length > 0) { - p = sections.pop(); - } - if (p === '..') { - return ''; - } - var i = p.lastIndexOf('.'); - if (i === -1 || i === 0) { - return ''; - } - return p.substr(i); - }; - /** - * Checks if the given path is an absolute path. - * - * Despite not being documented, this is a tested part of Node's path API. - * @param [String] p - * @return [Boolean] True if the path appears to be an absolute path. - */ - path.isAbsolute = function (p) { - return p.length > 0 && p.charAt(0) === path.sep; - }; - /** - * Unknown. Undocumented. - */ - path._makeLong = function (p) { - return p; - }; - /** - * Returns an object from a path string. - */ - path.parse = function (p) { - var allParts = posixSplitPath(p); - return { - root: allParts[0], - dir: allParts[0] + allParts[1].slice(0, -1), - base: allParts[2], - ext: allParts[3], - name: allParts[2].slice(0, allParts[2].length - allParts[3].length) - }; - }; - path.format = function (pathObject) { - if (pathObject === null || typeof pathObject !== 'object') { - throw new TypeError("Parameter 'pathObject' must be an object, not " + typeof pathObject); - } - var root = pathObject.root || ''; - if (typeof root !== 'string') { - throw new TypeError("'pathObject.root' must be a string or undefined, not " + - typeof pathObject.root); - } - var dir = pathObject.dir ? pathObject.dir + path.sep : ''; - var base = pathObject.base || ''; - return dir + base; - }; - path._removeDuplicateSeps = function (p) { - p = p.replace(this._replaceRegex, this.sep); - return p; - }; - // The platform-specific file separator. BrowserFS uses `/`. - path.sep = '/'; - path._replaceRegex = new RegExp("//+", 'g'); - // The platform-specific path delimiter. BrowserFS uses `:`. - path.delimiter = ':'; - path.posix = path; - // XXX: Typing hack. We don't actually support win32. - path.win32 = path; - return path; - }()); - var _ = path; - module.exports = path; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6))) - -/***/ }, -/* 10 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer) {"use strict"; - var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - var stream = __webpack_require__(11); - var TTY = (function (_super) { - __extends(TTY, _super); - function TTY() { - _super.call(this); - this.isRaw = false; - this.columns = 80; - this.rows = 120; - this.isTTY = true; - this._bufferedWrites = []; - this._waitingForWrites = false; - } - /** - * Toggle raw mode. - */ - TTY.prototype.setRawMode = function (mode) { - if (this.isRaw !== mode) { - this.isRaw = mode; - // [BFS] TTY implementations can use this to change their event emitting - // patterns. - this.emit('modeChange'); - } - }; - /** - * [BFS] Update the number of columns available on the terminal. - */ - TTY.prototype.changeColumns = function (columns) { - if (columns !== this.columns) { - this.columns = columns; - // Resize event. - this.emit('resize'); - } - }; - /** - * [BFS] Update the number of rows available on the terminal. - */ - TTY.prototype.changeRows = function (rows) { - if (rows !== this.rows) { - this.rows = rows; - // Resize event. - this.emit('resize'); - } - }; - /** - * Returns 'true' if the given object is a TTY. - */ - TTY.isatty = function (fd) { - return fd && fd instanceof TTY; - }; - TTY.prototype._write = function (chunk, encoding, cb) { - var error; - try { - var data; - if (typeof (chunk) === 'string') { - data = new Buffer(chunk, encoding); - } - else { - data = chunk; - } - this._bufferedWrites.push(data); - if (this._waitingForWrites) { - this._read(1024); - } - } - catch (e) { - error = e; - } - finally { - cb(error); - } - }; - TTY.prototype._read = function (size) { - // Size is advisory -- we can ignore it. - if (this._bufferedWrites.length === 0) { - this._waitingForWrites = true; - } - else { - while (this._bufferedWrites.length > 0) { - this._waitingForWrites = this.push(this._bufferedWrites.shift()); - if (!this._waitingForWrites) { - break; - } - } - } - }; - return TTY; - }(stream.Duplex)); - module.exports = TTY; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) - -/***/ }, -/* 11 */ -/***/ function(module, exports, __webpack_require__) { - - // Copyright Joyent, Inc. and other Node contributors. - // - // 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. - - module.exports = Stream; - - var EE = __webpack_require__(8).EventEmitter; - var inherits = __webpack_require__(12); - - inherits(Stream, EE); - Stream.Readable = __webpack_require__(13); - Stream.Writable = __webpack_require__(27); - Stream.Duplex = __webpack_require__(28); - Stream.Transform = __webpack_require__(29); - Stream.PassThrough = __webpack_require__(30); - - // Backwards-compat with node 0.4.x - Stream.Stream = Stream; - - - - // old-style streams. Note that the pipe method (the only relevant - // part of this class) is overridden in the Readable class. - - function Stream() { - EE.call(this); - } - - Stream.prototype.pipe = function(dest, options) { - var source = this; - - function ondata(chunk) { - if (dest.writable) { - if (false === dest.write(chunk) && source.pause) { - source.pause(); - } - } - } - - source.on('data', ondata); - - function ondrain() { - if (source.readable && source.resume) { - source.resume(); - } - } - - dest.on('drain', ondrain); - - // If the 'end' option is not supplied, dest.end() will be called when - // source gets the 'end' or 'close' events. Only dest.end() once. - if (!dest._isStdio && (!options || options.end !== false)) { - source.on('end', onend); - source.on('close', onclose); - } - - var didOnEnd = false; - function onend() { - if (didOnEnd) return; - didOnEnd = true; - - dest.end(); - } - - - function onclose() { - if (didOnEnd) return; - didOnEnd = true; - - if (typeof dest.destroy === 'function') dest.destroy(); - } - - // don't leave dangling pipes when there are errors. - function onerror(er) { - cleanup(); - if (EE.listenerCount(this, 'error') === 0) { - throw er; // Unhandled stream error in pipe. - } - } - - source.on('error', onerror); - dest.on('error', onerror); - - // remove all the event listeners that were added. - function cleanup() { - source.removeListener('data', ondata); - dest.removeListener('drain', ondrain); - - source.removeListener('end', onend); - source.removeListener('close', onclose); - - source.removeListener('error', onerror); - dest.removeListener('error', onerror); - - source.removeListener('end', cleanup); - source.removeListener('close', cleanup); - - dest.removeListener('close', cleanup); - } - - source.on('end', cleanup); - source.on('close', cleanup); - - dest.on('close', cleanup); - - dest.emit('pipe', source); - - // Allow for unix-like usage: A.pipe(B).pipe(C) - return dest; - }; - - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; - } else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } - } - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {var Stream = (function (){ - try { - return __webpack_require__(11); // hack to fix a circular dependency issue when used with browserify - } catch(_){} - }()); - exports = module.exports = __webpack_require__(14); - exports.Stream = Stream || exports; - exports.Readable = exports; - exports.Writable = __webpack_require__(22); - exports.Duplex = __webpack_require__(21); - exports.Transform = __webpack_require__(25); - exports.PassThrough = __webpack_require__(26); - - if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) { - module.exports = Stream; - } - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6))) - -/***/ }, -/* 14 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {'use strict'; - - module.exports = Readable; - - /**/ - var processNextTick = __webpack_require__(15); - /**/ - - /**/ - var isArray = __webpack_require__(16); - /**/ - - /**/ - var Duplex; - /**/ - - Readable.ReadableState = ReadableState; - - /**/ - var EE = __webpack_require__(8).EventEmitter; - - var EElistenerCount = function (emitter, type) { - return emitter.listeners(type).length; - }; - /**/ - - /**/ - var Stream; - (function () { - try { - Stream = __webpack_require__(11); - } catch (_) {} finally { - if (!Stream) Stream = __webpack_require__(8).EventEmitter; - } - })(); - /**/ - - var Buffer = __webpack_require__(2).Buffer; - /**/ - var bufferShim = __webpack_require__(17); - /**/ - - /**/ - var util = __webpack_require__(18); - util.inherits = __webpack_require__(12); - /**/ - - /**/ - var debugUtil = __webpack_require__(19); - var debug = void 0; - if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); - } else { - debug = function () {}; - } - /**/ - - var BufferList = __webpack_require__(20); - var StringDecoder; - - util.inherits(Readable, Stream); - - function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') { - return emitter.prependListener(event, fn); - } else { - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; - } - } - - function ReadableState(options, stream) { - Duplex = Duplex || __webpack_require__(21); - - options = options || {}; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~~this.highWaterMark; - - // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // when piping, we only care about 'readable' events that happen - // after read()ing all the bytes and not getting any pushback. - this.ranOut = false; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = __webpack_require__(24).StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } - } - - function Readable(options) { - Duplex = Duplex || __webpack_require__(21); - - if (!(this instanceof Readable)) return new Readable(options); - - this._readableState = new ReadableState(options, this); - - // legacy - this.readable = true; - - if (options && typeof options.read === 'function') this._read = options.read; - - Stream.call(this); - } - - // Manually shove something into the read() buffer. - // This returns true if the highWaterMark has not been hit yet, - // similar to how Writable.write() returns true if you should - // write() some more. - Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - - if (!state.objectMode && typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = bufferShim.from(chunk, encoding); - encoding = ''; - } - } - - return readableAddChunk(this, state, chunk, encoding, false); - }; - - // Unshift should *always* be something directly out of read() - Readable.prototype.unshift = function (chunk) { - var state = this._readableState; - return readableAddChunk(this, state, chunk, '', true); - }; - - Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; - }; - - function readableAddChunk(stream, state, chunk, encoding, addToFront) { - var er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (state.ended && !addToFront) { - var e = new Error('stream.push() after EOF'); - stream.emit('error', e); - } else if (state.endEmitted && addToFront) { - var _e = new Error('stream.unshift() after end event'); - stream.emit('error', _e); - } else { - var skipAdd; - if (state.decoder && !addToFront && !encoding) { - chunk = state.decoder.write(chunk); - skipAdd = !state.objectMode && chunk.length === 0; - } - - if (!addToFront) state.reading = false; - - // Don't add to the buffer if we've decoded to an empty string chunk and - // we're not in object mode - if (!skipAdd) { - // if we want the data now, just emit it. - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - - if (state.needReadable) emitReadable(stream); - } - } - - maybeReadMore(stream, state); - } - } else if (!addToFront) { - state.reading = false; - } - - return needMoreData(state); - } - - // if it's past the high water mark, we can push in some more. - // Also, if we have no data yet, we can stand some - // more bytes. This is to work around cases where hwm=0, - // such as the repl. Also, if the push() triggered a - // readable event, and the user called read(largeNumber) such that - // needReadable was set, then we ought to push more, so that another - // 'readable' event will be triggered. - function needMoreData(state) { - return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); - } - - // backwards compatibility. - Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = __webpack_require__(24).StringDecoder; - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; - }; - - // Don't raise the hwm > 8MB - var MAX_HWM = 0x800000; - function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; - } - - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } - // If we're asking for more than the current hwm, then raise the hwm. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; - // Don't have enough - if (!state.ended) { - state.needReadable = true; - return 0; - } - return state.length; - } - - // you can override either this method, or the async _read(n) below. - Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - - if (n !== 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); - } - - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - - if (ret === null) { - state.needReadable = true; - n = 0; - } else { - state.length -= n; - } - - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) endReadable(this); - } - - if (ret !== null) this.emit('data', ret); - - return ret; - }; - - function chunkInvalid(state, chunk) { - var er = null; - if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; - } - - function onEofChunk(stream, state) { - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); - } - - // Don't emit readable right away in sync mode, because this can trigger - // another read() call => stack overflow. This way, it might trigger - // a nextTick recursion warning, but that's not so bad. - function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); - } - } - - function emitReadable_(stream) { - debug('emit readable'); - stream.emit('readable'); - flow(stream); - } - - // at this point, the user has presumably seen the 'readable' event, - // and called read() to consume some data. that may have triggered - // in turn another _read(n) call, in which case reading = true if - // it's in progress. - // However, if we're not ended, or reading, and the length < hwm, - // then go ahead and try to read some more preemptively. - function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - processNextTick(maybeReadMore_, stream, state); - } - } - - function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break;else len = state.length; - } - state.readingMore = false; - } - - // abstract method. to be overridden in specific implementation classes. - // call cb(er, data) where data is <= n in length. - // for virtual (non-string, non-buffer) streams, "length" is somewhat - // arbitrary, and perhaps not very meaningful. - Readable.prototype._read = function (n) { - this.emit('error', new Error('_read() is not implemented')); - }; - - Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - - var endFn = doEnd ? onend : cleanup; - if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); - - dest.on('unpipe', onunpipe); - function onunpipe(readable) { - debug('onunpipe'); - if (readable === src) { - cleanup(); - } - } - - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', cleanup); - src.removeListener('data', ondata); - - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - - // If the user pushes more data while we're writing to dest then we'll end up - // in ondata again. However, we only want to increase awaitDrain once because - // dest will only emit one 'drain' event for the multiple writes. - // => Introduce a guard on increasing awaitDrain. - var increasedAwaitDrain = false; - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - increasedAwaitDrain = false; - var ret = dest.write(chunk); - if (false === ret && !increasedAwaitDrain) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; - increasedAwaitDrain = true; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); - } - - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - - return dest; - }; - - function pipeOnDrain(src) { - return function () { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; - } - - Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this); - }return this; - } - - // try to find the right one. - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - - dest.emit('unpipe', this); - - return this; - }; - - // set up data events if they are asked for - // Ensure readable listeners eventually get something - Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - - if (ev === 'data') { - // Start flowing on next tick if stream isn't explicitly paused - if (this._readableState.flowing !== false) this.resume(); - } else if (ev === 'readable') { - var state = this._readableState; - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.emittedReadable = false; - if (!state.reading) { - processNextTick(nReadingNextTick, this); - } else if (state.length) { - emitReadable(this, state); - } - } - } - - return res; - }; - Readable.prototype.addListener = Readable.prototype.on; - - function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); - } - - // pause() and resume() are remnants of the legacy readable stream API - // If the user uses them, then switch into old mode. - Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - state.flowing = true; - resume(this, state); - } - return this; - }; - - function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - processNextTick(resume_, stream, state); - } - } - - function resume_(stream, state) { - if (!state.reading) { - debug('resume read 0'); - stream.read(0); - } - - state.resumeScheduled = false; - state.awaitDrain = 0; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); - } - - Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; - }; - - function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null) {} - } - - // wrap an old-style stream as the async data source. - // This is *not* part of the readable stream interface. - // It is an ugly unfortunate mess of history. - Readable.prototype.wrap = function (stream) { - var state = this._readableState; - var paused = false; - - var self = this; - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) self.push(chunk); - } - - self.push(null); - }); - - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - - var ret = self.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function (method) { - return function () { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - var events = ['error', 'close', 'destroy', 'pause', 'resume']; - forEach(events, function (ev) { - stream.on(ev, self.emit.bind(self, ev)); - }); - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - self._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - - return self; - }; - - // exposed for testing purposes only. - Readable._fromList = fromList; - - // Pluck off n bytes from an array of buffers. - // Length is the combined lengths of all the buffers in the list. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = fromListPartial(n, state.buffer, state.decoder); - } - - return ret; - } - - // Extracts only enough buffered data to satisfy the amount requested. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function fromListPartial(n, list, hasStrings) { - var ret; - if (n < list.head.data.length) { - // slice is the same for buffers and strings - ret = list.head.data.slice(0, n); - list.head.data = list.head.data.slice(n); - } else if (n === list.head.data.length) { - // first chunk is a perfect match - ret = list.shift(); - } else { - // result spans more than one buffer - ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); - } - return ret; - } - - // Copies a specified amount of characters from the list of buffered data - // chunks. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function copyFromBufferString(n, list) { - var p = list.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = str.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; - } - - // Copies a specified amount of bytes from the list of buffered data chunks. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function copyFromBuffer(n, list) { - var ret = bufferShim.allocUnsafe(n); - var p = list.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = buf.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; - } - - function endReadable(stream) { - var state = stream._readableState; - - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); - - if (!state.endEmitted) { - state.ended = true; - processNextTick(endReadableNT, state, stream); - } - } - - function endReadableNT(state, stream) { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } - } - - function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } - } - - function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; - } - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6))) - -/***/ }, -/* 15 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {'use strict'; - - if (!process.version || - process.version.indexOf('v0.') === 0 || - process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { - module.exports = nextTick; - } else { - module.exports = process.nextTick; - } - - function nextTick(fn, arg1, arg2, arg3) { - if (typeof fn !== 'function') { - throw new TypeError('"callback" argument must be a function'); - } - var len = arguments.length; - var args, i; - switch (len) { - case 0: - case 1: - return process.nextTick(fn); - case 2: - return process.nextTick(function afterTickOne() { - fn.call(null, arg1); - }); - case 3: - return process.nextTick(function afterTickTwo() { - fn.call(null, arg1, arg2); - }); - case 4: - return process.nextTick(function afterTickThree() { - fn.call(null, arg1, arg2, arg3); - }); - default: - args = new Array(len - 1); - i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - return process.nextTick(function afterTick() { - fn.apply(null, args); - }); - } - } - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6))) - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; - }; - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(global) {'use strict'; - - var buffer = __webpack_require__(2); - var Buffer = buffer.Buffer; - var SlowBuffer = buffer.SlowBuffer; - var MAX_LEN = buffer.kMaxLength || 2147483647; - exports.alloc = function alloc(size, fill, encoding) { - if (typeof Buffer.alloc === 'function') { - return Buffer.alloc(size, fill, encoding); - } - if (typeof encoding === 'number') { - throw new TypeError('encoding must not be number'); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size > MAX_LEN) { - throw new RangeError('size is too large'); - } - var enc = encoding; - var _fill = fill; - if (_fill === undefined) { - enc = undefined; - _fill = 0; - } - var buf = new Buffer(size); - if (typeof _fill === 'string') { - var fillBuf = new Buffer(_fill, enc); - var flen = fillBuf.length; - var i = -1; - while (++i < size) { - buf[i] = fillBuf[i % flen]; - } - } else { - buf.fill(_fill); - } - return buf; - } - exports.allocUnsafe = function allocUnsafe(size) { - if (typeof Buffer.allocUnsafe === 'function') { - return Buffer.allocUnsafe(size); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size > MAX_LEN) { - throw new RangeError('size is too large'); - } - return new Buffer(size); - } - exports.from = function from(value, encodingOrOffset, length) { - if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) { - return Buffer.from(value, encodingOrOffset, length); - } - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number'); - } - if (typeof value === 'string') { - return new Buffer(value, encodingOrOffset); - } - if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { - var offset = encodingOrOffset; - if (arguments.length === 1) { - return new Buffer(value); - } - if (typeof offset === 'undefined') { - offset = 0; - } - var len = length; - if (typeof len === 'undefined') { - len = value.byteLength - offset; - } - if (offset >= value.byteLength) { - throw new RangeError('\'offset\' is out of bounds'); - } - if (len > value.byteLength - offset) { - throw new RangeError('\'length\' is out of bounds'); - } - return new Buffer(value.slice(offset, offset + len)); - } - if (Buffer.isBuffer(value)) { - var out = new Buffer(value.length); - value.copy(out, 0, 0, value.length); - return out; - } - if (value) { - if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) { - return new Buffer(value); - } - if (value.type === 'Buffer' && Array.isArray(value.data)) { - return new Buffer(value.data); - } - } - - throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.'); - } - exports.allocUnsafeSlow = function allocUnsafeSlow(size) { - if (typeof Buffer.allocUnsafeSlow === 'function') { - return Buffer.allocUnsafeSlow(size); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size >= MAX_LEN) { - throw new RangeError('size is too large'); - } - return new SlowBuffer(size); - } - - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) - -/***/ }, -/* 18 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors. - // - // 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. - - // NOTE: These type checking functions intentionally don't use `instanceof` - // because it is fragile and can be easily faked with `Object.create()`. - - function isArray(arg) { - if (Array.isArray) { - return Array.isArray(arg); - } - return objectToString(arg) === '[object Array]'; - } - exports.isArray = isArray; - - function isBoolean(arg) { - return typeof arg === 'boolean'; - } - exports.isBoolean = isBoolean; - - function isNull(arg) { - return arg === null; - } - exports.isNull = isNull; - - function isNullOrUndefined(arg) { - return arg == null; - } - exports.isNullOrUndefined = isNullOrUndefined; - - function isNumber(arg) { - return typeof arg === 'number'; - } - exports.isNumber = isNumber; - - function isString(arg) { - return typeof arg === 'string'; - } - exports.isString = isString; - - function isSymbol(arg) { - return typeof arg === 'symbol'; - } - exports.isSymbol = isSymbol; - - function isUndefined(arg) { - return arg === void 0; - } - exports.isUndefined = isUndefined; - - function isRegExp(re) { - return objectToString(re) === '[object RegExp]'; - } - exports.isRegExp = isRegExp; - - function isObject(arg) { - return typeof arg === 'object' && arg !== null; - } - exports.isObject = isObject; - - function isDate(d) { - return objectToString(d) === '[object Date]'; - } - exports.isDate = isDate; - - function isError(e) { - return (objectToString(e) === '[object Error]' || e instanceof Error); - } - exports.isError = isError; - - function isFunction(arg) { - return typeof arg === 'function'; - } - exports.isFunction = isFunction; - - function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; - } - exports.isPrimitive = isPrimitive; - - exports.isBuffer = Buffer.isBuffer; - - function objectToString(o) { - return Object.prototype.toString.call(o); - } - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - /* (ignored) */ - -/***/ }, -/* 20 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var Buffer = __webpack_require__(2).Buffer; - /**/ - var bufferShim = __webpack_require__(17); - /**/ - - module.exports = BufferList; - - function BufferList() { - this.head = null; - this.tail = null; - this.length = 0; - } - - BufferList.prototype.push = function (v) { - var entry = { data: v, next: null }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; - }; - - BufferList.prototype.unshift = function (v) { - var entry = { data: v, next: this.head }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - }; - - BufferList.prototype.shift = function () { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; - }; - - BufferList.prototype.clear = function () { - this.head = this.tail = null; - this.length = 0; - }; - - BufferList.prototype.join = function (s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) { - ret += s + p.data; - }return ret; - }; - - BufferList.prototype.concat = function (n) { - if (this.length === 0) return bufferShim.alloc(0); - if (this.length === 1) return this.head.data; - var ret = bufferShim.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - p.data.copy(ret, i); - i += p.data.length; - p = p.next; - } - return ret; - }; - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - // a duplex stream is just a stream that is both readable and writable. - // Since JS doesn't have multiple prototypal inheritance, this class - // prototypally inherits from Readable, and then parasitically from - // Writable. - - 'use strict'; - - /**/ - - var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - keys.push(key); - }return keys; - }; - /**/ - - module.exports = Duplex; - - /**/ - var processNextTick = __webpack_require__(15); - /**/ - - /**/ - var util = __webpack_require__(18); - util.inherits = __webpack_require__(12); - /**/ - - var Readable = __webpack_require__(14); - var Writable = __webpack_require__(22); - - util.inherits(Duplex, Readable); - - var keys = objectKeys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; - } - - function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - - Readable.call(this, options); - Writable.call(this, options); - - if (options && options.readable === false) this.readable = false; - - if (options && options.writable === false) this.writable = false; - - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; - - this.once('end', onend); - } - - // the no-half-open enforcer - function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - processNextTick(onEndNT, this); - } - - function onEndNT(self) { - self.end(); - } - - function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } - } - -/***/ }, -/* 22 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {// A bit simpler than readable streams. - // Implement an async ._write(chunk, encoding, cb), and it'll handle all - // the drain event emission and buffering. - - 'use strict'; - - module.exports = Writable; - - /**/ - var processNextTick = __webpack_require__(15); - /**/ - - /**/ - var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; - /**/ - - /**/ - var Duplex; - /**/ - - Writable.WritableState = WritableState; - - /**/ - var util = __webpack_require__(18); - util.inherits = __webpack_require__(12); - /**/ - - /**/ - var internalUtil = { - deprecate: __webpack_require__(23) - }; - /**/ - - /**/ - var Stream; - (function () { - try { - Stream = __webpack_require__(11); - } catch (_) {} finally { - if (!Stream) Stream = __webpack_require__(8).EventEmitter; - } - })(); - /**/ - - var Buffer = __webpack_require__(2).Buffer; - /**/ - var bufferShim = __webpack_require__(17); - /**/ - - util.inherits(Writable, Stream); - - function nop() {} - - function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; - } - - function WritableState(options, stream) { - Duplex = Duplex || __webpack_require__(21); - - options = options || {}; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~~this.highWaterMark; - - // drain event flag. - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // count buffered requests - this.bufferedRequestCount = 0; - - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); - } - - WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; - }; - - (function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function () { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.') - }); - } catch (_) {} - })(); - - // Test _writableState for inheritance to account for Duplex streams, - // whose prototype chain only points to Readable. - var realHasInstance; - if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function (object) { - if (realHasInstance.call(this, object)) return true; - - return object && object._writableState instanceof WritableState; - } - }); - } else { - realHasInstance = function (object) { - return object instanceof this; - }; - } - - function Writable(options) { - Duplex = Duplex || __webpack_require__(21); - - // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { - return new Writable(options); - } - - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - if (options) { - if (typeof options.write === 'function') this._write = options.write; - - if (typeof options.writev === 'function') this._writev = options.writev; - } - - Stream.call(this); - } - - // Otherwise people can pipe Writable streams, which is just wrong. - Writable.prototype.pipe = function () { - this.emit('error', new Error('Cannot pipe, not readable')); - }; - - function writeAfterEnd(stream, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - processNextTick(cb, er); - } - - // Checks that a user-supplied chunk is valid, especially for the particular - // mode the stream is in. Currently this means that `null` is never accepted - // and undefined/non-string values are only allowed in object mode. - function validChunk(stream, state, chunk, cb) { - var valid = true; - var er = false; - - if (chunk === null) { - er = new TypeError('May not write null values to stream'); - } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - if (er) { - stream.emit('error', er); - processNextTick(cb, er); - valid = false; - } - return valid; - } - - Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - var isBuf = Buffer.isBuffer(chunk); - - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - - if (typeof cb !== 'function') cb = nop; - - if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); - } - - return ret; - }; - - Writable.prototype.cork = function () { - var state = this._writableState; - - state.corked++; - }; - - Writable.prototype.uncork = function () { - var state = this._writableState; - - if (state.corked) { - state.corked--; - - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } - }; - - Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); - this._writableState.defaultEncoding = encoding; - return this; - }; - - function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = bufferShim.from(chunk, encoding); - } - return chunk; - } - - // if we're already writing something, then just put this - // in the queue, and wait our turn. Otherwise, call _write - // If we return false, then we need a drain event, so set that flag. - function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - chunk = decodeChunk(state, chunk, encoding); - if (Buffer.isBuffer(chunk)) encoding = 'buffer'; - } - var len = state.objectMode ? 1 : chunk.length; - - state.length += len; - - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = new WriteReq(chunk, encoding, cb); - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - - return ret; - } - - function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; - } - - function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - if (sync) processNextTick(cb, er);else cb(er); - - stream._writableState.errorEmitted = true; - stream.emit('error', er); - } - - function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; - } - - function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - - onwriteStateUpdate(state); - - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state); - - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - - if (sync) { - /**/ - asyncWrite(afterWrite, stream, state, finished, cb); - /**/ - } else { - afterWrite(stream, state, finished, cb); - } - } - } - - function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); - } - - // Must force callback to be called on nextTick, so that we don't - // emit 'drain' before the write() consumer gets the 'false' return - // value, and has a chance to attach a 'drain' listener. - function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } - } - - // if there's something in the buffer waiting, then process it - function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - - var count = 0; - while (entry) { - buffer[count] = entry; - entry = entry.next; - count += 1; - } - - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - - if (entry === null) state.lastBufferedRequest = null; - } - - state.bufferedRequestCount = 0; - state.bufferedRequest = entry; - state.bufferProcessing = false; - } - - Writable.prototype._write = function (chunk, encoding, cb) { - cb(new Error('_write() is not implemented')); - }; - - Writable.prototype._writev = null; - - Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); - }; - - function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; - } - - function prefinish(stream, state) { - if (!state.prefinished) { - state.prefinished = true; - stream.emit('prefinish'); - } - } - - function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - if (state.pendingcb === 0) { - prefinish(stream, state); - state.finished = true; - stream.emit('finish'); - } else { - prefinish(stream, state); - } - } - return need; - } - - function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) processNextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; - } - - // It seems a linked list but it is not - // there will be only 2 of these for each stream - function CorkedRequest(state) { - var _this = this; - - this.next = null; - this.entry = null; - this.finish = function (err) { - var entry = _this.entry; - _this.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = _this; - } else { - state.corkedRequestsFree = _this; - } - }; - } - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6))) - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - /* WEBPACK VAR INJECTION */(function(global) { - /** - * Module exports. - */ - - module.exports = deprecate; - - /** - * Mark that a method should not be used. - * Returns a modified function which warns once by default. - * - * If `localStorage.noDeprecation = true` is set, then it is a no-op. - * - * If `localStorage.throwDeprecation = true` is set, then deprecated functions - * will throw an Error when invoked. - * - * If `localStorage.traceDeprecation = true` is set, then deprecated functions - * will invoke `console.trace()` instead of `console.error()`. - * - * @param {Function} fn - the function to deprecate - * @param {String} msg - the string to print to the console when `fn` is invoked - * @returns {Function} a new "deprecated" version of `fn` - * @api public - */ - - function deprecate (fn, msg) { - if (config('noDeprecation')) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg); - } else if (config('traceDeprecation')) { - console.trace(msg); - } else { - console.warn(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; - } - - /** - * Checks `localStorage` for boolean values for the given `name`. - * - * @param {String} name - * @returns {Boolean} - * @api private - */ - - function config (name) { - // accessing global.localStorage can trigger a DOMException in sandboxed iframes - try { - if (!global.localStorage) return false; - } catch (_) { - return false; - } - var val = global.localStorage[name]; - if (null == val) return false; - return String(val).toLowerCase() === 'true'; - } - - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) - -/***/ }, -/* 24 */ -/***/ function(module, exports, __webpack_require__) { - - // Copyright Joyent, Inc. and other Node contributors. - // - // 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. - - var Buffer = __webpack_require__(2).Buffer; - - var isBufferEncoding = Buffer.isEncoding - || function(encoding) { - switch (encoding && encoding.toLowerCase()) { - case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true; - default: return false; - } - } - - - function assertEncoding(encoding) { - if (encoding && !isBufferEncoding(encoding)) { - throw new Error('Unknown encoding: ' + encoding); - } - } - - // StringDecoder provides an interface for efficiently splitting a series of - // buffers into a series of JS strings without breaking apart multi-byte - // characters. CESU-8 is handled as part of the UTF-8 encoding. - // - // @TODO Handling all encodings inside a single object makes it very difficult - // to reason about this code, so it should be split up in the future. - // @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code - // points as used by CESU-8. - var StringDecoder = exports.StringDecoder = function(encoding) { - this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); - assertEncoding(encoding); - switch (this.encoding) { - case 'utf8': - // CESU-8 represents each of Surrogate Pair by 3-bytes - this.surrogateSize = 3; - break; - case 'ucs2': - case 'utf16le': - // UTF-16 represents each of Surrogate Pair by 2-bytes - this.surrogateSize = 2; - this.detectIncompleteChar = utf16DetectIncompleteChar; - break; - case 'base64': - // Base-64 stores 3 bytes in 4 chars, and pads the remainder. - this.surrogateSize = 3; - this.detectIncompleteChar = base64DetectIncompleteChar; - break; - default: - this.write = passThroughWrite; - return; - } - - // Enough space to store all bytes of a single character. UTF-8 needs 4 - // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). - this.charBuffer = new Buffer(6); - // Number of bytes received for the current incomplete multi-byte character. - this.charReceived = 0; - // Number of bytes expected for the current incomplete multi-byte character. - this.charLength = 0; - }; - - - // write decodes the given buffer and returns it as JS string that is - // guaranteed to not contain any partial multi-byte characters. Any partial - // character found at the end of the buffer is buffered up, and will be - // returned when calling write again with the remaining bytes. - // - // Note: Converting a Buffer containing an orphan surrogate to a String - // currently works, but converting a String to a Buffer (via `new Buffer`, or - // Buffer#write) will replace incomplete surrogates with the unicode - // replacement character. See https://codereview.chromium.org/121173009/ . - StringDecoder.prototype.write = function(buffer) { - var charStr = ''; - // if our last write ended with an incomplete multibyte character - while (this.charLength) { - // determine how many remaining bytes this buffer has to offer for this char - var available = (buffer.length >= this.charLength - this.charReceived) ? - this.charLength - this.charReceived : - buffer.length; - - // add the new bytes to the char buffer - buffer.copy(this.charBuffer, this.charReceived, 0, available); - this.charReceived += available; - - if (this.charReceived < this.charLength) { - // still not enough chars in this buffer? wait for more ... - return ''; - } - - // remove bytes belonging to the current character from the buffer - buffer = buffer.slice(available, buffer.length); - - // get the character that was split - charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); - - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - var charCode = charStr.charCodeAt(charStr.length - 1); - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - this.charLength += this.surrogateSize; - charStr = ''; - continue; - } - this.charReceived = this.charLength = 0; - - // if there are no more bytes in this buffer, just emit our char - if (buffer.length === 0) { - return charStr; - } - break; - } - - // determine and set charLength / charReceived - this.detectIncompleteChar(buffer); - - var end = buffer.length; - if (this.charLength) { - // buffer the incomplete character bytes we got - buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end); - end -= this.charReceived; - } - - charStr += buffer.toString(this.encoding, 0, end); - - var end = charStr.length - 1; - var charCode = charStr.charCodeAt(end); - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - var size = this.surrogateSize; - this.charLength += size; - this.charReceived += size; - this.charBuffer.copy(this.charBuffer, size, 0, size); - buffer.copy(this.charBuffer, 0, 0, size); - return charStr.substring(0, end); - } - - // or just emit the charStr - return charStr; - }; - - // detectIncompleteChar determines if there is an incomplete UTF-8 character at - // the end of the given buffer. If so, it sets this.charLength to the byte - // length that character, and sets this.charReceived to the number of bytes - // that are available for this character. - StringDecoder.prototype.detectIncompleteChar = function(buffer) { - // determine how many bytes we have to check at the end of this buffer - var i = (buffer.length >= 3) ? 3 : buffer.length; - - // Figure out if one of the last i bytes of our buffer announces an - // incomplete char. - for (; i > 0; i--) { - var c = buffer[buffer.length - i]; - - // See http://en.wikipedia.org/wiki/UTF-8#Description - - // 110XXXXX - if (i == 1 && c >> 5 == 0x06) { - this.charLength = 2; - break; - } - - // 1110XXXX - if (i <= 2 && c >> 4 == 0x0E) { - this.charLength = 3; - break; - } - - // 11110XXX - if (i <= 3 && c >> 3 == 0x1E) { - this.charLength = 4; - break; - } - } - this.charReceived = i; - }; - - StringDecoder.prototype.end = function(buffer) { - var res = ''; - if (buffer && buffer.length) - res = this.write(buffer); - - if (this.charReceived) { - var cr = this.charReceived; - var buf = this.charBuffer; - var enc = this.encoding; - res += buf.slice(0, cr).toString(enc); - } - - return res; - }; - - function passThroughWrite(buffer) { - return buffer.toString(this.encoding); - } - - function utf16DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 2; - this.charLength = this.charReceived ? 2 : 0; - } - - function base64DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 3; - this.charLength = this.charReceived ? 3 : 0; - } - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - // a transform stream is a readable/writable stream where you do - // something with the data. Sometimes it's called a "filter", - // but that's not a great name for it, since that implies a thing where - // some bits pass through, and others are simply ignored. (That would - // be a valid example of a transform, of course.) - // - // While the output is causally related to the input, it's not a - // necessarily symmetric or synchronous transformation. For example, - // a zlib stream might take multiple plain-text writes(), and then - // emit a single compressed chunk some time in the future. - // - // Here's how this works: - // - // The Transform stream has all the aspects of the readable and writable - // stream classes. When you write(chunk), that calls _write(chunk,cb) - // internally, and returns false if there's a lot of pending writes - // buffered up. When you call read(), that calls _read(n) until - // there's enough pending readable data buffered up. - // - // In a transform stream, the written data is placed in a buffer. When - // _read(n) is called, it transforms the queued up data, calling the - // buffered _write cb's as it consumes chunks. If consuming a single - // written chunk would result in multiple output chunks, then the first - // outputted bit calls the readcb, and subsequent chunks just go into - // the read buffer, and will cause it to emit 'readable' if necessary. - // - // This way, back-pressure is actually determined by the reading side, - // since _read has to be called to start processing a new chunk. However, - // a pathological inflate type of transform can cause excessive buffering - // here. For example, imagine a stream where every byte of input is - // interpreted as an integer from 0-255, and then results in that many - // bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in - // 1kb of data being output. In this case, you could write a very small - // amount of input, and end up with a very large amount of output. In - // such a pathological inflating mechanism, there'd be no way to tell - // the system to stop doing the transform. A single 4MB write could - // cause the system to run out of memory. - // - // However, even in such a pathological case, only a single written chunk - // would be consumed, and then the rest would wait (un-transformed) until - // the results of the previous transformed chunk were consumed. - - 'use strict'; - - module.exports = Transform; - - var Duplex = __webpack_require__(21); - - /**/ - var util = __webpack_require__(18); - util.inherits = __webpack_require__(12); - /**/ - - util.inherits(Transform, Duplex); - - function TransformState(stream) { - this.afterTransform = function (er, data) { - return afterTransform(stream, er, data); - }; - - this.needTransform = false; - this.transforming = false; - this.writecb = null; - this.writechunk = null; - this.writeencoding = null; - } - - function afterTransform(stream, er, data) { - var ts = stream._transformState; - ts.transforming = false; - - var cb = ts.writecb; - - if (!cb) return stream.emit('error', new Error('no writecb in Transform class')); - - ts.writechunk = null; - ts.writecb = null; - - if (data !== null && data !== undefined) stream.push(data); - - cb(er); - - var rs = stream._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - stream._read(rs.highWaterMark); - } - } - - function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - - Duplex.call(this, options); - - this._transformState = new TransformState(this); - - var stream = this; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - - if (typeof options.flush === 'function') this._flush = options.flush; - } - - // When the writable side finishes, then flush out anything remaining. - this.once('prefinish', function () { - if (typeof this._flush === 'function') this._flush(function (er, data) { - done(stream, er, data); - });else done(stream); - }); - } - - Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); - }; - - // This is the part where you do stuff! - // override this function in implementation classes. - // 'chunk' is an input chunk. - // - // Call `push(newChunk)` to pass along transformed output - // to the readable side. You may call 'push' zero or more times. - // - // Call `cb(err)` when you are done with this chunk. If you pass - // an error, then that'll put the hurt on the whole operation. If you - // never call cb(), then you'll never get another chunk. - Transform.prototype._transform = function (chunk, encoding, cb) { - throw new Error('_transform() is not implemented'); - }; - - Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } - }; - - // Doesn't matter what the args are here. - // _transform does all the work. - // That we got here means that the readable side wants more data. - Transform.prototype._read = function (n) { - var ts = this._transformState; - - if (ts.writechunk !== null && ts.writecb && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } - }; - - function done(stream, er, data) { - if (er) return stream.emit('error', er); - - if (data !== null && data !== undefined) stream.push(data); - - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - var ws = stream._writableState; - var ts = stream._transformState; - - if (ws.length) throw new Error('Calling transform done when ws.length != 0'); - - if (ts.transforming) throw new Error('Calling transform done when still transforming'); - - return stream.push(null); - } - -/***/ }, -/* 26 */ -/***/ function(module, exports, __webpack_require__) { - - // a passthrough stream. - // basically just the most minimal sort of Transform stream. - // Every written chunk gets output as-is. - - 'use strict'; - - module.exports = PassThrough; - - var Transform = __webpack_require__(25); - - /**/ - var util = __webpack_require__(18); - util.inherits = __webpack_require__(12); - /**/ - - util.inherits(PassThrough, Transform); - - function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - - Transform.call(this, options); - } - - PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); - }; - -/***/ }, -/* 27 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(22) - - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(21) - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(25) - - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(26) - - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - - var zlib_inflate = __webpack_require__(32); - var utils = __webpack_require__(33); - var strings = __webpack_require__(38); - var c = __webpack_require__(39); - var msg = __webpack_require__(40); - var ZStream = __webpack_require__(41); - var GZheader = __webpack_require__(42); - - var toString = Object.prototype.toString; - - /** - * class Inflate - * - * Generic JS-style wrapper for zlib calls. If you don't need - * streaming behaviour - use more simple functions: [[inflate]] - * and [[inflateRaw]]. - **/ - - /* internal - * inflate.chunks -> Array - * - * Chunks of output data, if [[Inflate#onData]] not overriden. - **/ - - /** - * Inflate.result -> Uint8Array|Array|String - * - * Uncompressed result, generated by default [[Inflate#onData]] - * and [[Inflate#onEnd]] handlers. Filled after you push last chunk - * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you - * push a chunk with explicit flush (call [[Inflate#push]] with - * `Z_SYNC_FLUSH` param). - **/ - - /** - * Inflate.err -> Number - * - * Error code after inflate finished. 0 (Z_OK) on success. - * Should be checked if broken data possible. - **/ - - /** - * Inflate.msg -> String - * - * Error message, if [[Inflate.err]] != 0 - **/ - - - /** - * new Inflate(options) - * - options (Object): zlib inflate options. - * - * Creates new inflator instance with specified params. Throws exception - * on bad params. Supported options: - * - * - `windowBits` - * - `dictionary` - * - * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) - * for more information on these. - * - * Additional options, for internal needs: - * - * - `chunkSize` - size of generated data chunks (16K by default) - * - `raw` (Boolean) - do raw inflate - * - `to` (String) - if equal to 'string', then result will be converted - * from utf8 to utf16 (javascript) string. When string output requested, - * chunk length can differ from `chunkSize`, depending on content. - * - * By default, when no options set, autodetect deflate/gzip data format via - * wrapper header. - * - * ##### Example: - * - * ```javascript - * var pako = require('pako') - * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9]) - * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]); - * - * var inflate = new pako.Inflate({ level: 3}); - * - * inflate.push(chunk1, false); - * inflate.push(chunk2, true); // true -> last chunk - * - * if (inflate.err) { throw new Error(inflate.err); } - * - * console.log(inflate.result); - * ``` - **/ - function Inflate(options) { - if (!(this instanceof Inflate)) return new Inflate(options); - - this.options = utils.assign({ - chunkSize: 16384, - windowBits: 0, - to: '' - }, options || {}); - - var opt = this.options; - - // Force window size for `raw` data, if not set directly, - // because we have no header for autodetect. - if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) { - opt.windowBits = -opt.windowBits; - if (opt.windowBits === 0) { opt.windowBits = -15; } - } - - // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate - if ((opt.windowBits >= 0) && (opt.windowBits < 16) && - !(options && options.windowBits)) { - opt.windowBits += 32; - } - - // Gzip header has no info about windows size, we can do autodetect only - // for deflate. So, if window size not set, force it to max when gzip possible - if ((opt.windowBits > 15) && (opt.windowBits < 48)) { - // bit 3 (16) -> gzipped data - // bit 4 (32) -> autodetect gzip/deflate - if ((opt.windowBits & 15) === 0) { - opt.windowBits |= 15; - } - } - - this.err = 0; // error code, if happens (0 = Z_OK) - this.msg = ''; // error message - this.ended = false; // used to avoid multiple onEnd() calls - this.chunks = []; // chunks of compressed data - - this.strm = new ZStream(); - this.strm.avail_out = 0; - - var status = zlib_inflate.inflateInit2( - this.strm, - opt.windowBits - ); - - if (status !== c.Z_OK) { - throw new Error(msg[status]); - } - - this.header = new GZheader(); - - zlib_inflate.inflateGetHeader(this.strm, this.header); - } - - /** - * Inflate#push(data[, mode]) -> Boolean - * - data (Uint8Array|Array|ArrayBuffer|String): input data - * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes. - * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH. - * - * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with - * new output chunks. Returns `true` on success. The last data block must have - * mode Z_FINISH (or `true`). That will flush internal pending buffers and call - * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you - * can use mode Z_SYNC_FLUSH, keeping the decompression context. - * - * On fail call [[Inflate#onEnd]] with error code and return false. - * - * We strongly recommend to use `Uint8Array` on input for best speed (output - * format is detected automatically). Also, don't skip last param and always - * use the same type in your code (boolean or number). That will improve JS speed. - * - * For regular `Array`-s make sure all elements are [0..255]. - * - * ##### Example - * - * ```javascript - * push(chunk, false); // push one of data chunks - * ... - * push(chunk, true); // push last chunk - * ``` - **/ - Inflate.prototype.push = function (data, mode) { - var strm = this.strm; - var chunkSize = this.options.chunkSize; - var dictionary = this.options.dictionary; - var status, _mode; - var next_out_utf8, tail, utf8str; - var dict; - - // Flag to properly process Z_BUF_ERROR on testing inflate call - // when we check that all output data was flushed. - var allowBufError = false; - - if (this.ended) { return false; } - _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH); - - // Convert data if needed - if (typeof data === 'string') { - // Only binary strings can be decompressed on practice - strm.input = strings.binstring2buf(data); - } else if (toString.call(data) === '[object ArrayBuffer]') { - strm.input = new Uint8Array(data); - } else { - strm.input = data; - } - - strm.next_in = 0; - strm.avail_in = strm.input.length; - - do { - if (strm.avail_out === 0) { - strm.output = new utils.Buf8(chunkSize); - strm.next_out = 0; - strm.avail_out = chunkSize; - } - - status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */ - - if (status === c.Z_NEED_DICT && dictionary) { - // Convert data if needed - if (typeof dictionary === 'string') { - dict = strings.string2buf(dictionary); - } else if (toString.call(dictionary) === '[object ArrayBuffer]') { - dict = new Uint8Array(dictionary); - } else { - dict = dictionary; - } - - status = zlib_inflate.inflateSetDictionary(this.strm, dict); - - } - - if (status === c.Z_BUF_ERROR && allowBufError === true) { - status = c.Z_OK; - allowBufError = false; - } - - if (status !== c.Z_STREAM_END && status !== c.Z_OK) { - this.onEnd(status); - this.ended = true; - return false; - } - - if (strm.next_out) { - if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) { - - if (this.options.to === 'string') { - - next_out_utf8 = strings.utf8border(strm.output, strm.next_out); - - tail = strm.next_out - next_out_utf8; - utf8str = strings.buf2string(strm.output, next_out_utf8); - - // move tail - strm.next_out = tail; - strm.avail_out = chunkSize - tail; - if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); } - - this.onData(utf8str); - - } else { - this.onData(utils.shrinkBuf(strm.output, strm.next_out)); - } - } - } - - // When no more input data, we should check that internal inflate buffers - // are flushed. The only way to do it when avail_out = 0 - run one more - // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR. - // Here we set flag to process this error properly. - // - // NOTE. Deflate does not return error in this case and does not needs such - // logic. - if (strm.avail_in === 0 && strm.avail_out === 0) { - allowBufError = true; - } - - } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END); - - if (status === c.Z_STREAM_END) { - _mode = c.Z_FINISH; - } - - // Finalize on the last chunk. - if (_mode === c.Z_FINISH) { - status = zlib_inflate.inflateEnd(this.strm); - this.onEnd(status); - this.ended = true; - return status === c.Z_OK; - } - - // callback interim results if Z_SYNC_FLUSH. - if (_mode === c.Z_SYNC_FLUSH) { - this.onEnd(c.Z_OK); - strm.avail_out = 0; - return true; - } - - return true; - }; - - - /** - * Inflate#onData(chunk) -> Void - * - chunk (Uint8Array|Array|String): ouput data. Type of array depends - * on js engine support. When string output requested, each chunk - * will be string. - * - * By default, stores data blocks in `chunks[]` property and glue - * those in `onEnd`. Override this handler, if you need another behaviour. - **/ - Inflate.prototype.onData = function (chunk) { - this.chunks.push(chunk); - }; - - - /** - * Inflate#onEnd(status) -> Void - * - status (Number): inflate status. 0 (Z_OK) on success, - * other if not. - * - * Called either after you tell inflate that the input stream is - * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH) - * or if an error happened. By default - join collected chunks, - * free memory and fill `results` / `err` properties. - **/ - Inflate.prototype.onEnd = function (status) { - // On success - join - if (status === c.Z_OK) { - if (this.options.to === 'string') { - // Glue & convert here, until we teach pako to send - // utf8 alligned strings to onData - this.result = this.chunks.join(''); - } else { - this.result = utils.flattenChunks(this.chunks); - } - } - this.chunks = []; - this.err = status; - this.msg = this.strm.msg; - }; - - - /** - * inflate(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to decompress. - * - options (Object): zlib inflate options. - * - * Decompress `data` with inflate/ungzip and `options`. Autodetect - * format via wrapper header by default. That's why we don't provide - * separate `ungzip` method. - * - * Supported options are: - * - * - windowBits - * - * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) - * for more information. - * - * Sugar (options): - * - * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify - * negative windowBits implicitly. - * - `to` (String) - if equal to 'string', then result will be converted - * from utf8 to utf16 (javascript) string. When string output requested, - * chunk length can differ from `chunkSize`, depending on content. - * - * - * ##### Example: - * - * ```javascript - * var pako = require('pako') - * , input = pako.deflate([1,2,3,4,5,6,7,8,9]) - * , output; - * - * try { - * output = pako.inflate(input); - * } catch (err) - * console.log(err); - * } - * ``` - **/ - function inflate(input, options) { - var inflator = new Inflate(options); - - inflator.push(input, true); - - // That will never happens, if you don't cheat with options :) - if (inflator.err) { throw inflator.msg || msg[inflator.err]; } - - return inflator.result; - } - - - /** - * inflateRaw(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to decompress. - * - options (Object): zlib inflate options. - * - * The same as [[inflate]], but creates raw data, without wrapper - * (header and adler32 crc). - **/ - function inflateRaw(input, options) { - options = options || {}; - options.raw = true; - return inflate(input, options); - } - - - /** - * ungzip(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to decompress. - * - options (Object): zlib inflate options. - * - * Just shortcut to [[inflate]], because it autodetects format - * by header.content. Done for convenience. - **/ - - - exports.Inflate = Inflate; - exports.inflate = inflate; - exports.inflateRaw = inflateRaw; - exports.ungzip = inflate; - - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - - var utils = __webpack_require__(33); - var adler32 = __webpack_require__(34); - var crc32 = __webpack_require__(35); - var inflate_fast = __webpack_require__(36); - var inflate_table = __webpack_require__(37); - - var CODES = 0; - var LENS = 1; - var DISTS = 2; - - /* Public constants ==========================================================*/ - /* ===========================================================================*/ - - - /* Allowed flush values; see deflate() and inflate() below for details */ - //var Z_NO_FLUSH = 0; - //var Z_PARTIAL_FLUSH = 1; - //var Z_SYNC_FLUSH = 2; - //var Z_FULL_FLUSH = 3; - var Z_FINISH = 4; - var Z_BLOCK = 5; - var Z_TREES = 6; - - - /* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ - var Z_OK = 0; - var Z_STREAM_END = 1; - var Z_NEED_DICT = 2; - //var Z_ERRNO = -1; - var Z_STREAM_ERROR = -2; - var Z_DATA_ERROR = -3; - var Z_MEM_ERROR = -4; - var Z_BUF_ERROR = -5; - //var Z_VERSION_ERROR = -6; - - /* The deflate compression method */ - var Z_DEFLATED = 8; - - - /* STATES ====================================================================*/ - /* ===========================================================================*/ - - - var HEAD = 1; /* i: waiting for magic header */ - var FLAGS = 2; /* i: waiting for method and flags (gzip) */ - var TIME = 3; /* i: waiting for modification time (gzip) */ - var OS = 4; /* i: waiting for extra flags and operating system (gzip) */ - var EXLEN = 5; /* i: waiting for extra length (gzip) */ - var EXTRA = 6; /* i: waiting for extra bytes (gzip) */ - var NAME = 7; /* i: waiting for end of file name (gzip) */ - var COMMENT = 8; /* i: waiting for end of comment (gzip) */ - var HCRC = 9; /* i: waiting for header crc (gzip) */ - var DICTID = 10; /* i: waiting for dictionary check value */ - var DICT = 11; /* waiting for inflateSetDictionary() call */ - var TYPE = 12; /* i: waiting for type bits, including last-flag bit */ - var TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */ - var STORED = 14; /* i: waiting for stored size (length and complement) */ - var COPY_ = 15; /* i/o: same as COPY below, but only first time in */ - var COPY = 16; /* i/o: waiting for input or output to copy stored block */ - var TABLE = 17; /* i: waiting for dynamic block table lengths */ - var LENLENS = 18; /* i: waiting for code length code lengths */ - var CODELENS = 19; /* i: waiting for length/lit and distance code lengths */ - var LEN_ = 20; /* i: same as LEN below, but only first time in */ - var LEN = 21; /* i: waiting for length/lit/eob code */ - var LENEXT = 22; /* i: waiting for length extra bits */ - var DIST = 23; /* i: waiting for distance code */ - var DISTEXT = 24; /* i: waiting for distance extra bits */ - var MATCH = 25; /* o: waiting for output space to copy string */ - var LIT = 26; /* o: waiting for output space to write literal */ - var CHECK = 27; /* i: waiting for 32-bit check value */ - var LENGTH = 28; /* i: waiting for 32-bit length (gzip) */ - var DONE = 29; /* finished check, done -- remain here until reset */ - var BAD = 30; /* got a data error -- remain here until reset */ - var MEM = 31; /* got an inflate() memory error -- remain here until reset */ - var SYNC = 32; /* looking for synchronization bytes to restart inflate() */ - - /* ===========================================================================*/ - - - - var ENOUGH_LENS = 852; - var ENOUGH_DISTS = 592; - //var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); - - var MAX_WBITS = 15; - /* 32K LZ77 window */ - var DEF_WBITS = MAX_WBITS; - - - function zswap32(q) { - return (((q >>> 24) & 0xff) + - ((q >>> 8) & 0xff00) + - ((q & 0xff00) << 8) + - ((q & 0xff) << 24)); - } - - - function InflateState() { - this.mode = 0; /* current inflate mode */ - this.last = false; /* true if processing last block */ - this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */ - this.havedict = false; /* true if dictionary provided */ - this.flags = 0; /* gzip header method and flags (0 if zlib) */ - this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */ - this.check = 0; /* protected copy of check value */ - this.total = 0; /* protected copy of output count */ - // TODO: may be {} - this.head = null; /* where to save gzip header information */ - - /* sliding window */ - this.wbits = 0; /* log base 2 of requested window size */ - this.wsize = 0; /* window size or zero if not using window */ - this.whave = 0; /* valid bytes in the window */ - this.wnext = 0; /* window write index */ - this.window = null; /* allocated sliding window, if needed */ - - /* bit accumulator */ - this.hold = 0; /* input bit accumulator */ - this.bits = 0; /* number of bits in "in" */ - - /* for string and stored block copying */ - this.length = 0; /* literal or length of data to copy */ - this.offset = 0; /* distance back to copy string from */ - - /* for table and code decoding */ - this.extra = 0; /* extra bits needed */ - - /* fixed and dynamic code tables */ - this.lencode = null; /* starting table for length/literal codes */ - this.distcode = null; /* starting table for distance codes */ - this.lenbits = 0; /* index bits for lencode */ - this.distbits = 0; /* index bits for distcode */ - - /* dynamic table building */ - this.ncode = 0; /* number of code length code lengths */ - this.nlen = 0; /* number of length code lengths */ - this.ndist = 0; /* number of distance code lengths */ - this.have = 0; /* number of code lengths in lens[] */ - this.next = null; /* next available space in codes[] */ - - this.lens = new utils.Buf16(320); /* temporary storage for code lengths */ - this.work = new utils.Buf16(288); /* work area for code table building */ - - /* - because we don't have pointers in js, we use lencode and distcode directly - as buffers so we don't need codes - */ - //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */ - this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */ - this.distdyn = null; /* dynamic table for distance codes (JS specific) */ - this.sane = 0; /* if false, allow invalid distance too far */ - this.back = 0; /* bits back of last unprocessed length/lit */ - this.was = 0; /* initial length of match */ - } - - function inflateResetKeep(strm) { - var state; - - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - strm.total_in = strm.total_out = state.total = 0; - strm.msg = ''; /*Z_NULL*/ - if (state.wrap) { /* to support ill-conceived Java test suite */ - strm.adler = state.wrap & 1; - } - state.mode = HEAD; - state.last = 0; - state.havedict = 0; - state.dmax = 32768; - state.head = null/*Z_NULL*/; - state.hold = 0; - state.bits = 0; - //state.lencode = state.distcode = state.next = state.codes; - state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS); - state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS); - - state.sane = 1; - state.back = -1; - //Tracev((stderr, "inflate: reset\n")); - return Z_OK; - } - - function inflateReset(strm) { - var state; - - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - state.wsize = 0; - state.whave = 0; - state.wnext = 0; - return inflateResetKeep(strm); - - } - - function inflateReset2(strm, windowBits) { - var wrap; - var state; - - /* get the state */ - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - - /* extract wrap request from windowBits parameter */ - if (windowBits < 0) { - wrap = 0; - windowBits = -windowBits; - } - else { - wrap = (windowBits >> 4) + 1; - if (windowBits < 48) { - windowBits &= 15; - } - } - - /* set number of window bits, free window if different */ - if (windowBits && (windowBits < 8 || windowBits > 15)) { - return Z_STREAM_ERROR; - } - if (state.window !== null && state.wbits !== windowBits) { - state.window = null; - } - - /* update state and reset the rest of it */ - state.wrap = wrap; - state.wbits = windowBits; - return inflateReset(strm); - } - - function inflateInit2(strm, windowBits) { - var ret; - var state; - - if (!strm) { return Z_STREAM_ERROR; } - //strm.msg = Z_NULL; /* in case we return an error */ - - state = new InflateState(); - - //if (state === Z_NULL) return Z_MEM_ERROR; - //Tracev((stderr, "inflate: allocated\n")); - strm.state = state; - state.window = null/*Z_NULL*/; - ret = inflateReset2(strm, windowBits); - if (ret !== Z_OK) { - strm.state = null/*Z_NULL*/; - } - return ret; - } - - function inflateInit(strm) { - return inflateInit2(strm, DEF_WBITS); - } - - - /* - Return state with length and distance decoding tables and index sizes set to - fixed code decoding. Normally this returns fixed tables from inffixed.h. - If BUILDFIXED is defined, then instead this routine builds the tables the - first time it's called, and returns those tables the first time and - thereafter. This reduces the size of the code by about 2K bytes, in - exchange for a little execution time. However, BUILDFIXED should not be - used for threaded applications, since the rewriting of the tables and virgin - may not be thread-safe. - */ - var virgin = true; - - var lenfix, distfix; // We have no pointers in JS, so keep tables separate - - function fixedtables(state) { - /* build fixed huffman tables if first call (may not be thread safe) */ - if (virgin) { - var sym; - - lenfix = new utils.Buf32(512); - distfix = new utils.Buf32(32); - - /* literal/length table */ - sym = 0; - while (sym < 144) { state.lens[sym++] = 8; } - while (sym < 256) { state.lens[sym++] = 9; } - while (sym < 280) { state.lens[sym++] = 7; } - while (sym < 288) { state.lens[sym++] = 8; } - - inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); - - /* distance table */ - sym = 0; - while (sym < 32) { state.lens[sym++] = 5; } - - inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); - - /* do this just once */ - virgin = false; - } - - state.lencode = lenfix; - state.lenbits = 9; - state.distcode = distfix; - state.distbits = 5; - } - - - /* - Update the window with the last wsize (normally 32K) bytes written before - returning. If window does not exist yet, create it. This is only called - when a window is already in use, or when output has been written during this - inflate call, but the end of the deflate stream has not been reached yet. - It is also called to create a window for dictionary data when a dictionary - is loaded. - - Providing output buffers larger than 32K to inflate() should provide a speed - advantage, since only the last 32K of output is copied to the sliding window - upon return from inflate(), and since all distances after the first 32K of - output will fall in the output data, making match copies simpler and faster. - The advantage may be dependent on the size of the processor's data caches. - */ - function updatewindow(strm, src, end, copy) { - var dist; - var state = strm.state; - - /* if it hasn't been done already, allocate space for the window */ - if (state.window === null) { - state.wsize = 1 << state.wbits; - state.wnext = 0; - state.whave = 0; - - state.window = new utils.Buf8(state.wsize); - } - - /* copy state->wsize or less output bytes into the circular window */ - if (copy >= state.wsize) { - utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0); - state.wnext = 0; - state.whave = state.wsize; - } - else { - dist = state.wsize - state.wnext; - if (dist > copy) { - dist = copy; - } - //zmemcpy(state->window + state->wnext, end - copy, dist); - utils.arraySet(state.window, src, end - copy, dist, state.wnext); - copy -= dist; - if (copy) { - //zmemcpy(state->window, end - copy, copy); - utils.arraySet(state.window, src, end - copy, copy, 0); - state.wnext = copy; - state.whave = state.wsize; - } - else { - state.wnext += dist; - if (state.wnext === state.wsize) { state.wnext = 0; } - if (state.whave < state.wsize) { state.whave += dist; } - } - } - return 0; - } - - function inflate(strm, flush) { - var state; - var input, output; // input/output buffers - var next; /* next input INDEX */ - var put; /* next output INDEX */ - var have, left; /* available input and output */ - var hold; /* bit buffer */ - var bits; /* bits in bit buffer */ - var _in, _out; /* save starting available input and output */ - var copy; /* number of stored or match bytes to copy */ - var from; /* where to copy match bytes from */ - var from_source; - var here = 0; /* current decoding table entry */ - var here_bits, here_op, here_val; // paked "here" denormalized (JS specific) - //var last; /* parent table entry */ - var last_bits, last_op, last_val; // paked "last" denormalized (JS specific) - var len; /* length to copy for repeats, bits to drop */ - var ret; /* return code */ - var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */ - var opts; - - var n; // temporary var for NEED_BITS - - var order = /* permutation of code lengths */ - [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]; - - - if (!strm || !strm.state || !strm.output || - (!strm.input && strm.avail_in !== 0)) { - return Z_STREAM_ERROR; - } - - state = strm.state; - if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */ - - - //--- LOAD() --- - put = strm.next_out; - output = strm.output; - left = strm.avail_out; - next = strm.next_in; - input = strm.input; - have = strm.avail_in; - hold = state.hold; - bits = state.bits; - //--- - - _in = have; - _out = left; - ret = Z_OK; - - inf_leave: // goto emulation - for (;;) { - switch (state.mode) { - case HEAD: - if (state.wrap === 0) { - state.mode = TYPEDO; - break; - } - //=== NEEDBITS(16); - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */ - state.check = 0/*crc32(0L, Z_NULL, 0)*/; - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = FLAGS; - break; - } - state.flags = 0; /* expect zlib header */ - if (state.head) { - state.head.done = false; - } - if (!(state.wrap & 1) || /* check if zlib header allowed */ - (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) { - strm.msg = 'incorrect header check'; - state.mode = BAD; - break; - } - if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) { - strm.msg = 'unknown compression method'; - state.mode = BAD; - break; - } - //--- DROPBITS(4) ---// - hold >>>= 4; - bits -= 4; - //---// - len = (hold & 0x0f)/*BITS(4)*/ + 8; - if (state.wbits === 0) { - state.wbits = len; - } - else if (len > state.wbits) { - strm.msg = 'invalid window size'; - state.mode = BAD; - break; - } - state.dmax = 1 << len; - //Tracev((stderr, "inflate: zlib header ok\n")); - strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; - state.mode = hold & 0x200 ? DICTID : TYPE; - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - break; - case FLAGS: - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.flags = hold; - if ((state.flags & 0xff) !== Z_DEFLATED) { - strm.msg = 'unknown compression method'; - state.mode = BAD; - break; - } - if (state.flags & 0xe000) { - strm.msg = 'unknown header flags set'; - state.mode = BAD; - break; - } - if (state.head) { - state.head.text = ((hold >> 8) & 1); - } - if (state.flags & 0x0200) { - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = TIME; - /* falls through */ - case TIME: - //=== NEEDBITS(32); */ - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if (state.head) { - state.head.time = hold; - } - if (state.flags & 0x0200) { - //=== CRC4(state.check, hold) - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - hbuf[2] = (hold >>> 16) & 0xff; - hbuf[3] = (hold >>> 24) & 0xff; - state.check = crc32(state.check, hbuf, 4, 0); - //=== - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = OS; - /* falls through */ - case OS: - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if (state.head) { - state.head.xflags = (hold & 0xff); - state.head.os = (hold >> 8); - } - if (state.flags & 0x0200) { - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = EXLEN; - /* falls through */ - case EXLEN: - if (state.flags & 0x0400) { - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.length = hold; - if (state.head) { - state.head.extra_len = hold; - } - if (state.flags & 0x0200) { - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - } - else if (state.head) { - state.head.extra = null/*Z_NULL*/; - } - state.mode = EXTRA; - /* falls through */ - case EXTRA: - if (state.flags & 0x0400) { - copy = state.length; - if (copy > have) { copy = have; } - if (copy) { - if (state.head) { - len = state.head.extra_len - state.length; - if (!state.head.extra) { - // Use untyped array for more conveniend processing later - state.head.extra = new Array(state.head.extra_len); - } - utils.arraySet( - state.head.extra, - input, - next, - // extra field is limited to 65536 bytes - // - no need for additional size check - copy, - /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/ - len - ); - //zmemcpy(state.head.extra + len, next, - // len + copy > state.head.extra_max ? - // state.head.extra_max - len : copy); - } - if (state.flags & 0x0200) { - state.check = crc32(state.check, input, copy, next); - } - have -= copy; - next += copy; - state.length -= copy; - } - if (state.length) { break inf_leave; } - } - state.length = 0; - state.mode = NAME; - /* falls through */ - case NAME: - if (state.flags & 0x0800) { - if (have === 0) { break inf_leave; } - copy = 0; - do { - // TODO: 2 or 1 bytes? - len = input[next + copy++]; - /* use constant limit because in js we should not preallocate memory */ - if (state.head && len && - (state.length < 65536 /*state.head.name_max*/)) { - state.head.name += String.fromCharCode(len); - } - } while (len && copy < have); - - if (state.flags & 0x0200) { - state.check = crc32(state.check, input, copy, next); - } - have -= copy; - next += copy; - if (len) { break inf_leave; } - } - else if (state.head) { - state.head.name = null; - } - state.length = 0; - state.mode = COMMENT; - /* falls through */ - case COMMENT: - if (state.flags & 0x1000) { - if (have === 0) { break inf_leave; } - copy = 0; - do { - len = input[next + copy++]; - /* use constant limit because in js we should not preallocate memory */ - if (state.head && len && - (state.length < 65536 /*state.head.comm_max*/)) { - state.head.comment += String.fromCharCode(len); - } - } while (len && copy < have); - if (state.flags & 0x0200) { - state.check = crc32(state.check, input, copy, next); - } - have -= copy; - next += copy; - if (len) { break inf_leave; } - } - else if (state.head) { - state.head.comment = null; - } - state.mode = HCRC; - /* falls through */ - case HCRC: - if (state.flags & 0x0200) { - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if (hold !== (state.check & 0xffff)) { - strm.msg = 'header crc mismatch'; - state.mode = BAD; - break; - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - } - if (state.head) { - state.head.hcrc = ((state.flags >> 9) & 1); - state.head.done = true; - } - strm.adler = state.check = 0; - state.mode = TYPE; - break; - case DICTID: - //=== NEEDBITS(32); */ - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - strm.adler = state.check = zswap32(hold); - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = DICT; - /* falls through */ - case DICT: - if (state.havedict === 0) { - //--- RESTORE() --- - strm.next_out = put; - strm.avail_out = left; - strm.next_in = next; - strm.avail_in = have; - state.hold = hold; - state.bits = bits; - //--- - return Z_NEED_DICT; - } - strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; - state.mode = TYPE; - /* falls through */ - case TYPE: - if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; } - /* falls through */ - case TYPEDO: - if (state.last) { - //--- BYTEBITS() ---// - hold >>>= bits & 7; - bits -= bits & 7; - //---// - state.mode = CHECK; - break; - } - //=== NEEDBITS(3); */ - while (bits < 3) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.last = (hold & 0x01)/*BITS(1)*/; - //--- DROPBITS(1) ---// - hold >>>= 1; - bits -= 1; - //---// - - switch ((hold & 0x03)/*BITS(2)*/) { - case 0: /* stored block */ - //Tracev((stderr, "inflate: stored block%s\n", - // state.last ? " (last)" : "")); - state.mode = STORED; - break; - case 1: /* fixed block */ - fixedtables(state); - //Tracev((stderr, "inflate: fixed codes block%s\n", - // state.last ? " (last)" : "")); - state.mode = LEN_; /* decode codes */ - if (flush === Z_TREES) { - //--- DROPBITS(2) ---// - hold >>>= 2; - bits -= 2; - //---// - break inf_leave; - } - break; - case 2: /* dynamic block */ - //Tracev((stderr, "inflate: dynamic codes block%s\n", - // state.last ? " (last)" : "")); - state.mode = TABLE; - break; - case 3: - strm.msg = 'invalid block type'; - state.mode = BAD; - } - //--- DROPBITS(2) ---// - hold >>>= 2; - bits -= 2; - //---// - break; - case STORED: - //--- BYTEBITS() ---// /* go to byte boundary */ - hold >>>= bits & 7; - bits -= bits & 7; - //---// - //=== NEEDBITS(32); */ - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) { - strm.msg = 'invalid stored block lengths'; - state.mode = BAD; - break; - } - state.length = hold & 0xffff; - //Tracev((stderr, "inflate: stored length %u\n", - // state.length)); - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = COPY_; - if (flush === Z_TREES) { break inf_leave; } - /* falls through */ - case COPY_: - state.mode = COPY; - /* falls through */ - case COPY: - copy = state.length; - if (copy) { - if (copy > have) { copy = have; } - if (copy > left) { copy = left; } - if (copy === 0) { break inf_leave; } - //--- zmemcpy(put, next, copy); --- - utils.arraySet(output, input, next, copy, put); - //---// - have -= copy; - next += copy; - left -= copy; - put += copy; - state.length -= copy; - break; - } - //Tracev((stderr, "inflate: stored end\n")); - state.mode = TYPE; - break; - case TABLE: - //=== NEEDBITS(14); */ - while (bits < 14) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257; - //--- DROPBITS(5) ---// - hold >>>= 5; - bits -= 5; - //---// - state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1; - //--- DROPBITS(5) ---// - hold >>>= 5; - bits -= 5; - //---// - state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4; - //--- DROPBITS(4) ---// - hold >>>= 4; - bits -= 4; - //---// - //#ifndef PKZIP_BUG_WORKAROUND - if (state.nlen > 286 || state.ndist > 30) { - strm.msg = 'too many length or distance symbols'; - state.mode = BAD; - break; - } - //#endif - //Tracev((stderr, "inflate: table sizes ok\n")); - state.have = 0; - state.mode = LENLENS; - /* falls through */ - case LENLENS: - while (state.have < state.ncode) { - //=== NEEDBITS(3); - while (bits < 3) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.lens[order[state.have++]] = (hold & 0x07);//BITS(3); - //--- DROPBITS(3) ---// - hold >>>= 3; - bits -= 3; - //---// - } - while (state.have < 19) { - state.lens[order[state.have++]] = 0; - } - // We have separate tables & no pointers. 2 commented lines below not needed. - //state.next = state.codes; - //state.lencode = state.next; - // Switch to use dynamic table - state.lencode = state.lendyn; - state.lenbits = 7; - - opts = { bits: state.lenbits }; - ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); - state.lenbits = opts.bits; - - if (ret) { - strm.msg = 'invalid code lengths set'; - state.mode = BAD; - break; - } - //Tracev((stderr, "inflate: code lengths ok\n")); - state.have = 0; - state.mode = CODELENS; - /* falls through */ - case CODELENS: - while (state.have < state.nlen + state.ndist) { - for (;;) { - here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/ - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - if (here_val < 16) { - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - state.lens[state.have++] = here_val; - } - else { - if (here_val === 16) { - //=== NEEDBITS(here.bits + 2); - n = here_bits + 2; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - if (state.have === 0) { - strm.msg = 'invalid bit length repeat'; - state.mode = BAD; - break; - } - len = state.lens[state.have - 1]; - copy = 3 + (hold & 0x03);//BITS(2); - //--- DROPBITS(2) ---// - hold >>>= 2; - bits -= 2; - //---// - } - else if (here_val === 17) { - //=== NEEDBITS(here.bits + 3); - n = here_bits + 3; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - len = 0; - copy = 3 + (hold & 0x07);//BITS(3); - //--- DROPBITS(3) ---// - hold >>>= 3; - bits -= 3; - //---// - } - else { - //=== NEEDBITS(here.bits + 7); - n = here_bits + 7; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - len = 0; - copy = 11 + (hold & 0x7f);//BITS(7); - //--- DROPBITS(7) ---// - hold >>>= 7; - bits -= 7; - //---// - } - if (state.have + copy > state.nlen + state.ndist) { - strm.msg = 'invalid bit length repeat'; - state.mode = BAD; - break; - } - while (copy--) { - state.lens[state.have++] = len; - } - } - } - - /* handle error breaks in while */ - if (state.mode === BAD) { break; } - - /* check for end-of-block code (better have one) */ - if (state.lens[256] === 0) { - strm.msg = 'invalid code -- missing end-of-block'; - state.mode = BAD; - break; - } - - /* build code tables -- note: do not change the lenbits or distbits - values here (9 and 6) without reading the comments in inftrees.h - concerning the ENOUGH constants, which depend on those values */ - state.lenbits = 9; - - opts = { bits: state.lenbits }; - ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); - // We have separate tables & no pointers. 2 commented lines below not needed. - // state.next_index = opts.table_index; - state.lenbits = opts.bits; - // state.lencode = state.next; - - if (ret) { - strm.msg = 'invalid literal/lengths set'; - state.mode = BAD; - break; - } - - state.distbits = 6; - //state.distcode.copy(state.codes); - // Switch to use dynamic table - state.distcode = state.distdyn; - opts = { bits: state.distbits }; - ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); - // We have separate tables & no pointers. 2 commented lines below not needed. - // state.next_index = opts.table_index; - state.distbits = opts.bits; - // state.distcode = state.next; - - if (ret) { - strm.msg = 'invalid distances set'; - state.mode = BAD; - break; - } - //Tracev((stderr, 'inflate: codes ok\n')); - state.mode = LEN_; - if (flush === Z_TREES) { break inf_leave; } - /* falls through */ - case LEN_: - state.mode = LEN; - /* falls through */ - case LEN: - if (have >= 6 && left >= 258) { - //--- RESTORE() --- - strm.next_out = put; - strm.avail_out = left; - strm.next_in = next; - strm.avail_in = have; - state.hold = hold; - state.bits = bits; - //--- - inflate_fast(strm, _out); - //--- LOAD() --- - put = strm.next_out; - output = strm.output; - left = strm.avail_out; - next = strm.next_in; - input = strm.input; - have = strm.avail_in; - hold = state.hold; - bits = state.bits; - //--- - - if (state.mode === TYPE) { - state.back = -1; - } - break; - } - state.back = 0; - for (;;) { - here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/ - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if (here_bits <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - if (here_op && (here_op & 0xf0) === 0) { - last_bits = here_bits; - last_op = here_op; - last_val = here_val; - for (;;) { - here = state.lencode[last_val + - ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)]; - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((last_bits + here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - //--- DROPBITS(last.bits) ---// - hold >>>= last_bits; - bits -= last_bits; - //---// - state.back += last_bits; - } - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - state.back += here_bits; - state.length = here_val; - if (here_op === 0) { - //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - // "inflate: literal '%c'\n" : - // "inflate: literal 0x%02x\n", here.val)); - state.mode = LIT; - break; - } - if (here_op & 32) { - //Tracevv((stderr, "inflate: end of block\n")); - state.back = -1; - state.mode = TYPE; - break; - } - if (here_op & 64) { - strm.msg = 'invalid literal/length code'; - state.mode = BAD; - break; - } - state.extra = here_op & 15; - state.mode = LENEXT; - /* falls through */ - case LENEXT: - if (state.extra) { - //=== NEEDBITS(state.extra); - n = state.extra; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/; - //--- DROPBITS(state.extra) ---// - hold >>>= state.extra; - bits -= state.extra; - //---// - state.back += state.extra; - } - //Tracevv((stderr, "inflate: length %u\n", state.length)); - state.was = state.length; - state.mode = DIST; - /* falls through */ - case DIST: - for (;;) { - here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/ - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - if ((here_op & 0xf0) === 0) { - last_bits = here_bits; - last_op = here_op; - last_val = here_val; - for (;;) { - here = state.distcode[last_val + - ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)]; - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((last_bits + here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - //--- DROPBITS(last.bits) ---// - hold >>>= last_bits; - bits -= last_bits; - //---// - state.back += last_bits; - } - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - state.back += here_bits; - if (here_op & 64) { - strm.msg = 'invalid distance code'; - state.mode = BAD; - break; - } - state.offset = here_val; - state.extra = (here_op) & 15; - state.mode = DISTEXT; - /* falls through */ - case DISTEXT: - if (state.extra) { - //=== NEEDBITS(state.extra); - n = state.extra; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/; - //--- DROPBITS(state.extra) ---// - hold >>>= state.extra; - bits -= state.extra; - //---// - state.back += state.extra; - } - //#ifdef INFLATE_STRICT - if (state.offset > state.dmax) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break; - } - //#endif - //Tracevv((stderr, "inflate: distance %u\n", state.offset)); - state.mode = MATCH; - /* falls through */ - case MATCH: - if (left === 0) { break inf_leave; } - copy = _out - left; - if (state.offset > copy) { /* copy from window */ - copy = state.offset - copy; - if (copy > state.whave) { - if (state.sane) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break; - } - // (!) This block is disabled in zlib defailts, - // don't enable it for binary compatibility - //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR - // Trace((stderr, "inflate.c too far\n")); - // copy -= state.whave; - // if (copy > state.length) { copy = state.length; } - // if (copy > left) { copy = left; } - // left -= copy; - // state.length -= copy; - // do { - // output[put++] = 0; - // } while (--copy); - // if (state.length === 0) { state.mode = LEN; } - // break; - //#endif - } - if (copy > state.wnext) { - copy -= state.wnext; - from = state.wsize - copy; - } - else { - from = state.wnext - copy; - } - if (copy > state.length) { copy = state.length; } - from_source = state.window; - } - else { /* copy from output */ - from_source = output; - from = put - state.offset; - copy = state.length; - } - if (copy > left) { copy = left; } - left -= copy; - state.length -= copy; - do { - output[put++] = from_source[from++]; - } while (--copy); - if (state.length === 0) { state.mode = LEN; } - break; - case LIT: - if (left === 0) { break inf_leave; } - output[put++] = state.length; - left--; - state.mode = LEN; - break; - case CHECK: - if (state.wrap) { - //=== NEEDBITS(32); - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - // Use '|' insdead of '+' to make sure that result is signed - hold |= input[next++] << bits; - bits += 8; - } - //===// - _out -= left; - strm.total_out += _out; - state.total += _out; - if (_out) { - strm.adler = state.check = - /*UPDATE(state.check, put - _out, _out);*/ - (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out)); - - } - _out = left; - // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too - if ((state.flags ? hold : zswap32(hold)) !== state.check) { - strm.msg = 'incorrect data check'; - state.mode = BAD; - break; - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - //Tracev((stderr, "inflate: check matches trailer\n")); - } - state.mode = LENGTH; - /* falls through */ - case LENGTH: - if (state.wrap && state.flags) { - //=== NEEDBITS(32); - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if (hold !== (state.total & 0xffffffff)) { - strm.msg = 'incorrect length check'; - state.mode = BAD; - break; - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - //Tracev((stderr, "inflate: length matches trailer\n")); - } - state.mode = DONE; - /* falls through */ - case DONE: - ret = Z_STREAM_END; - break inf_leave; - case BAD: - ret = Z_DATA_ERROR; - break inf_leave; - case MEM: - return Z_MEM_ERROR; - case SYNC: - /* falls through */ - default: - return Z_STREAM_ERROR; - } - } - - // inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave" - - /* - Return from inflate(), updating the total counts and the check value. - If there was no progress during the inflate() call, return a buffer - error. Call updatewindow() to create and/or update the window state. - Note: a memory error from inflate() is non-recoverable. - */ - - //--- RESTORE() --- - strm.next_out = put; - strm.avail_out = left; - strm.next_in = next; - strm.avail_in = have; - state.hold = hold; - state.bits = bits; - //--- - - if (state.wsize || (_out !== strm.avail_out && state.mode < BAD && - (state.mode < CHECK || flush !== Z_FINISH))) { - if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) { - state.mode = MEM; - return Z_MEM_ERROR; - } - } - _in -= strm.avail_in; - _out -= strm.avail_out; - strm.total_in += _in; - strm.total_out += _out; - state.total += _out; - if (state.wrap && _out) { - strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/ - (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out)); - } - strm.data_type = state.bits + (state.last ? 64 : 0) + - (state.mode === TYPE ? 128 : 0) + - (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); - if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) { - ret = Z_BUF_ERROR; - } - return ret; - } - - function inflateEnd(strm) { - - if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) { - return Z_STREAM_ERROR; - } - - var state = strm.state; - if (state.window) { - state.window = null; - } - strm.state = null; - return Z_OK; - } - - function inflateGetHeader(strm, head) { - var state; - - /* check state */ - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; } - - /* save header structure */ - state.head = head; - head.done = false; - return Z_OK; - } - - function inflateSetDictionary(strm, dictionary) { - var dictLength = dictionary.length; - - var state; - var dictid; - var ret; - - /* check state */ - if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; } - state = strm.state; - - if (state.wrap !== 0 && state.mode !== DICT) { - return Z_STREAM_ERROR; - } - - /* check for correct dictionary identifier */ - if (state.mode === DICT) { - dictid = 1; /* adler32(0, null, 0)*/ - /* dictid = adler32(dictid, dictionary, dictLength); */ - dictid = adler32(dictid, dictionary, dictLength, 0); - if (dictid !== state.check) { - return Z_DATA_ERROR; - } - } - /* copy dictionary to window using updatewindow(), which will amend the - existing dictionary if appropriate */ - ret = updatewindow(strm, dictionary, dictLength, dictLength); - if (ret) { - state.mode = MEM; - return Z_MEM_ERROR; - } - state.havedict = 1; - // Tracev((stderr, "inflate: dictionary set\n")); - return Z_OK; - } - - exports.inflateReset = inflateReset; - exports.inflateReset2 = inflateReset2; - exports.inflateResetKeep = inflateResetKeep; - exports.inflateInit = inflateInit; - exports.inflateInit2 = inflateInit2; - exports.inflate = inflate; - exports.inflateEnd = inflateEnd; - exports.inflateGetHeader = inflateGetHeader; - exports.inflateSetDictionary = inflateSetDictionary; - exports.inflateInfo = 'pako inflate (from Nodeca project)'; - - /* Not implemented - exports.inflateCopy = inflateCopy; - exports.inflateGetDictionary = inflateGetDictionary; - exports.inflateMark = inflateMark; - exports.inflatePrime = inflatePrime; - exports.inflateSync = inflateSync; - exports.inflateSyncPoint = inflateSyncPoint; - exports.inflateUndermine = inflateUndermine; - */ - - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - 'use strict'; - - - var TYPED_OK = (typeof Uint8Array !== 'undefined') && - (typeof Uint16Array !== 'undefined') && - (typeof Int32Array !== 'undefined'); - - - exports.assign = function (obj /*from1, from2, from3, ...*/) { - var sources = Array.prototype.slice.call(arguments, 1); - while (sources.length) { - var source = sources.shift(); - if (!source) { continue; } - - if (typeof source !== 'object') { - throw new TypeError(source + 'must be non-object'); - } - - for (var p in source) { - if (source.hasOwnProperty(p)) { - obj[p] = source[p]; - } - } - } - - return obj; - }; - - - // reduce buffer size, avoiding mem copy - exports.shrinkBuf = function (buf, size) { - if (buf.length === size) { return buf; } - if (buf.subarray) { return buf.subarray(0, size); } - buf.length = size; - return buf; - }; - - - var fnTyped = { - arraySet: function (dest, src, src_offs, len, dest_offs) { - if (src.subarray && dest.subarray) { - dest.set(src.subarray(src_offs, src_offs + len), dest_offs); - return; - } - // Fallback to ordinary array - for (var i = 0; i < len; i++) { - dest[dest_offs + i] = src[src_offs + i]; - } - }, - // Join array of chunks to single array. - flattenChunks: function (chunks) { - var i, l, len, pos, chunk, result; - - // calculate data length - len = 0; - for (i = 0, l = chunks.length; i < l; i++) { - len += chunks[i].length; - } - - // join chunks - result = new Uint8Array(len); - pos = 0; - for (i = 0, l = chunks.length; i < l; i++) { - chunk = chunks[i]; - result.set(chunk, pos); - pos += chunk.length; - } - - return result; - } - }; - - var fnUntyped = { - arraySet: function (dest, src, src_offs, len, dest_offs) { - for (var i = 0; i < len; i++) { - dest[dest_offs + i] = src[src_offs + i]; - } - }, - // Join array of chunks to single array. - flattenChunks: function (chunks) { - return [].concat.apply([], chunks); - } - }; - - - // Enable/Disable typed arrays use, for testing - // - exports.setTyped = function (on) { - if (on) { - exports.Buf8 = Uint8Array; - exports.Buf16 = Uint16Array; - exports.Buf32 = Int32Array; - exports.assign(exports, fnTyped); - } else { - exports.Buf8 = Array; - exports.Buf16 = Array; - exports.Buf32 = Array; - exports.assign(exports, fnUntyped); - } - }; - - exports.setTyped(TYPED_OK); - - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - 'use strict'; - - // Note: adler32 takes 12% for level 0 and 2% for level 6. - // It doesn't worth to make additional optimizationa as in original. - // Small size is preferable. - - function adler32(adler, buf, len, pos) { - var s1 = (adler & 0xffff) |0, - s2 = ((adler >>> 16) & 0xffff) |0, - n = 0; - - while (len !== 0) { - // Set limit ~ twice less than 5552, to keep - // s2 in 31-bits, because we force signed ints. - // in other case %= will fail. - n = len > 2000 ? 2000 : len; - len -= n; - - do { - s1 = (s1 + buf[pos++]) |0; - s2 = (s2 + s1) |0; - } while (--n); - - s1 %= 65521; - s2 %= 65521; - } - - return (s1 | (s2 << 16)) |0; - } - - - module.exports = adler32; - - -/***/ }, -/* 35 */ -/***/ function(module, exports) { - - 'use strict'; - - // Note: we can't get significant speed boost here. - // So write code to minimize size - no pregenerated tables - // and array tools dependencies. - - - // Use ordinary array, since untyped makes no boost here - function makeTable() { - var c, table = []; - - for (var n = 0; n < 256; n++) { - c = n; - for (var k = 0; k < 8; k++) { - c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); - } - table[n] = c; - } - - return table; - } - - // Create table on load. Just 255 signed longs. Not a problem. - var crcTable = makeTable(); - - - function crc32(crc, buf, len, pos) { - var t = crcTable, - end = pos + len; - - crc ^= -1; - - for (var i = pos; i < end; i++) { - crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; - } - - return (crc ^ (-1)); // >>> 0; - } - - - module.exports = crc32; - - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - 'use strict'; - - // See state defs from inflate.js - var BAD = 30; /* got a data error -- remain here until reset */ - var TYPE = 12; /* i: waiting for type bits, including last-flag bit */ - - /* - Decode literal, length, and distance codes and write out the resulting - literal and match bytes until either not enough input or output is - available, an end-of-block is encountered, or a data error is encountered. - When large enough input and output buffers are supplied to inflate(), for - example, a 16K input buffer and a 64K output buffer, more than 95% of the - inflate execution time is spent in this routine. - - Entry assumptions: - - state.mode === LEN - strm.avail_in >= 6 - strm.avail_out >= 258 - start >= strm.avail_out - state.bits < 8 - - On return, state.mode is one of: - - LEN -- ran out of enough output space or enough available input - TYPE -- reached end of block code, inflate() to interpret next block - BAD -- error in block data - - Notes: - - - The maximum input bits used by a length/distance pair is 15 bits for the - length code, 5 bits for the length extra, 15 bits for the distance code, - and 13 bits for the distance extra. This totals 48 bits, or six bytes. - Therefore if strm.avail_in >= 6, then there is enough input to avoid - checking for available input while decoding. - - - The maximum bytes that a single length/distance pair can output is 258 - bytes, which is the maximum length that can be coded. inflate_fast() - requires strm.avail_out >= 258 for each loop to avoid checking for - output space. - */ - module.exports = function inflate_fast(strm, start) { - var state; - var _in; /* local strm.input */ - var last; /* have enough input while in < last */ - var _out; /* local strm.output */ - var beg; /* inflate()'s initial strm.output */ - var end; /* while out < end, enough space available */ - //#ifdef INFLATE_STRICT - var dmax; /* maximum distance from zlib header */ - //#endif - var wsize; /* window size or zero if not using window */ - var whave; /* valid bytes in the window */ - var wnext; /* window write index */ - // Use `s_window` instead `window`, avoid conflict with instrumentation tools - var s_window; /* allocated sliding window, if wsize != 0 */ - var hold; /* local strm.hold */ - var bits; /* local strm.bits */ - var lcode; /* local strm.lencode */ - var dcode; /* local strm.distcode */ - var lmask; /* mask for first level of length codes */ - var dmask; /* mask for first level of distance codes */ - var here; /* retrieved table entry */ - var op; /* code bits, operation, extra bits, or */ - /* window position, window bytes to copy */ - var len; /* match length, unused bytes */ - var dist; /* match distance */ - var from; /* where to copy match from */ - var from_source; - - - var input, output; // JS specific, because we have no pointers - - /* copy state to local variables */ - state = strm.state; - //here = state.here; - _in = strm.next_in; - input = strm.input; - last = _in + (strm.avail_in - 5); - _out = strm.next_out; - output = strm.output; - beg = _out - (start - strm.avail_out); - end = _out + (strm.avail_out - 257); - //#ifdef INFLATE_STRICT - dmax = state.dmax; - //#endif - wsize = state.wsize; - whave = state.whave; - wnext = state.wnext; - s_window = state.window; - hold = state.hold; - bits = state.bits; - lcode = state.lencode; - dcode = state.distcode; - lmask = (1 << state.lenbits) - 1; - dmask = (1 << state.distbits) - 1; - - - /* decode literals and length/distances until end-of-block or not enough - input data or output space */ - - top: - do { - if (bits < 15) { - hold += input[_in++] << bits; - bits += 8; - hold += input[_in++] << bits; - bits += 8; - } - - here = lcode[hold & lmask]; - - dolen: - for (;;) { // Goto emulation - op = here >>> 24/*here.bits*/; - hold >>>= op; - bits -= op; - op = (here >>> 16) & 0xff/*here.op*/; - if (op === 0) { /* literal */ - //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - // "inflate: literal '%c'\n" : - // "inflate: literal 0x%02x\n", here.val)); - output[_out++] = here & 0xffff/*here.val*/; - } - else if (op & 16) { /* length base */ - len = here & 0xffff/*here.val*/; - op &= 15; /* number of extra bits */ - if (op) { - if (bits < op) { - hold += input[_in++] << bits; - bits += 8; - } - len += hold & ((1 << op) - 1); - hold >>>= op; - bits -= op; - } - //Tracevv((stderr, "inflate: length %u\n", len)); - if (bits < 15) { - hold += input[_in++] << bits; - bits += 8; - hold += input[_in++] << bits; - bits += 8; - } - here = dcode[hold & dmask]; - - dodist: - for (;;) { // goto emulation - op = here >>> 24/*here.bits*/; - hold >>>= op; - bits -= op; - op = (here >>> 16) & 0xff/*here.op*/; - - if (op & 16) { /* distance base */ - dist = here & 0xffff/*here.val*/; - op &= 15; /* number of extra bits */ - if (bits < op) { - hold += input[_in++] << bits; - bits += 8; - if (bits < op) { - hold += input[_in++] << bits; - bits += 8; - } - } - dist += hold & ((1 << op) - 1); - //#ifdef INFLATE_STRICT - if (dist > dmax) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break top; - } - //#endif - hold >>>= op; - bits -= op; - //Tracevv((stderr, "inflate: distance %u\n", dist)); - op = _out - beg; /* max distance in output */ - if (dist > op) { /* see if copy from window */ - op = dist - op; /* distance back in window */ - if (op > whave) { - if (state.sane) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break top; - } - - // (!) This block is disabled in zlib defailts, - // don't enable it for binary compatibility - //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR - // if (len <= op - whave) { - // do { - // output[_out++] = 0; - // } while (--len); - // continue top; - // } - // len -= op - whave; - // do { - // output[_out++] = 0; - // } while (--op > whave); - // if (op === 0) { - // from = _out - dist; - // do { - // output[_out++] = output[from++]; - // } while (--len); - // continue top; - // } - //#endif - } - from = 0; // window index - from_source = s_window; - if (wnext === 0) { /* very common case */ - from += wsize - op; - if (op < len) { /* some from window */ - len -= op; - do { - output[_out++] = s_window[from++]; - } while (--op); - from = _out - dist; /* rest from output */ - from_source = output; - } - } - else if (wnext < op) { /* wrap around window */ - from += wsize + wnext - op; - op -= wnext; - if (op < len) { /* some from end of window */ - len -= op; - do { - output[_out++] = s_window[from++]; - } while (--op); - from = 0; - if (wnext < len) { /* some from start of window */ - op = wnext; - len -= op; - do { - output[_out++] = s_window[from++]; - } while (--op); - from = _out - dist; /* rest from output */ - from_source = output; - } - } - } - else { /* contiguous in window */ - from += wnext - op; - if (op < len) { /* some from window */ - len -= op; - do { - output[_out++] = s_window[from++]; - } while (--op); - from = _out - dist; /* rest from output */ - from_source = output; - } - } - while (len > 2) { - output[_out++] = from_source[from++]; - output[_out++] = from_source[from++]; - output[_out++] = from_source[from++]; - len -= 3; - } - if (len) { - output[_out++] = from_source[from++]; - if (len > 1) { - output[_out++] = from_source[from++]; - } - } - } - else { - from = _out - dist; /* copy direct from output */ - do { /* minimum length is three */ - output[_out++] = output[from++]; - output[_out++] = output[from++]; - output[_out++] = output[from++]; - len -= 3; - } while (len > 2); - if (len) { - output[_out++] = output[from++]; - if (len > 1) { - output[_out++] = output[from++]; - } - } - } - } - else if ((op & 64) === 0) { /* 2nd level distance code */ - here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; - continue dodist; - } - else { - strm.msg = 'invalid distance code'; - state.mode = BAD; - break top; - } - - break; // need to emulate goto via "continue" - } - } - else if ((op & 64) === 0) { /* 2nd level length code */ - here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; - continue dolen; - } - else if (op & 32) { /* end-of-block */ - //Tracevv((stderr, "inflate: end of block\n")); - state.mode = TYPE; - break top; - } - else { - strm.msg = 'invalid literal/length code'; - state.mode = BAD; - break top; - } - - break; // need to emulate goto via "continue" - } - } while (_in < last && _out < end); - - /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ - len = bits >> 3; - _in -= len; - bits -= len << 3; - hold &= (1 << bits) - 1; - - /* update state and return */ - strm.next_in = _in; - strm.next_out = _out; - strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last)); - strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end)); - state.hold = hold; - state.bits = bits; - return; - }; - - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - - var utils = __webpack_require__(33); - - var MAXBITS = 15; - var ENOUGH_LENS = 852; - var ENOUGH_DISTS = 592; - //var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); - - var CODES = 0; - var LENS = 1; - var DISTS = 2; - - var lbase = [ /* Length codes 257..285 base */ - 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, - 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 - ]; - - var lext = [ /* Length codes 257..285 extra */ - 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, - 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78 - ]; - - var dbase = [ /* Distance codes 0..29 base */ - 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, - 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, - 8193, 12289, 16385, 24577, 0, 0 - ]; - - var dext = [ /* Distance codes 0..29 extra */ - 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, - 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, - 28, 28, 29, 29, 64, 64 - ]; - - module.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) - { - var bits = opts.bits; - //here = opts.here; /* table entry for duplication */ - - var len = 0; /* a code's length in bits */ - var sym = 0; /* index of code symbols */ - var min = 0, max = 0; /* minimum and maximum code lengths */ - var root = 0; /* number of index bits for root table */ - var curr = 0; /* number of index bits for current table */ - var drop = 0; /* code bits to drop for sub-table */ - var left = 0; /* number of prefix codes available */ - var used = 0; /* code entries in table used */ - var huff = 0; /* Huffman code */ - var incr; /* for incrementing code, index */ - var fill; /* index for replicating entries */ - var low; /* low bits for current root entry */ - var mask; /* mask for low root bits */ - var next; /* next available space in table */ - var base = null; /* base value table to use */ - var base_index = 0; - // var shoextra; /* extra bits table to use */ - var end; /* use base and extra for symbol > end */ - var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */ - var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */ - var extra = null; - var extra_index = 0; - - var here_bits, here_op, here_val; - - /* - Process a set of code lengths to create a canonical Huffman code. The - code lengths are lens[0..codes-1]. Each length corresponds to the - symbols 0..codes-1. The Huffman code is generated by first sorting the - symbols by length from short to long, and retaining the symbol order - for codes with equal lengths. Then the code starts with all zero bits - for the first code of the shortest length, and the codes are integer - increments for the same length, and zeros are appended as the length - increases. For the deflate format, these bits are stored backwards - from their more natural integer increment ordering, and so when the - decoding tables are built in the large loop below, the integer codes - are incremented backwards. - - This routine assumes, but does not check, that all of the entries in - lens[] are in the range 0..MAXBITS. The caller must assure this. - 1..MAXBITS is interpreted as that code length. zero means that that - symbol does not occur in this code. - - The codes are sorted by computing a count of codes for each length, - creating from that a table of starting indices for each length in the - sorted table, and then entering the symbols in order in the sorted - table. The sorted table is work[], with that space being provided by - the caller. - - The length counts are used for other purposes as well, i.e. finding - the minimum and maximum length codes, determining if there are any - codes at all, checking for a valid set of lengths, and looking ahead - at length counts to determine sub-table sizes when building the - decoding tables. - */ - - /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ - for (len = 0; len <= MAXBITS; len++) { - count[len] = 0; - } - for (sym = 0; sym < codes; sym++) { - count[lens[lens_index + sym]]++; - } - - /* bound code lengths, force root to be within code lengths */ - root = bits; - for (max = MAXBITS; max >= 1; max--) { - if (count[max] !== 0) { break; } - } - if (root > max) { - root = max; - } - if (max === 0) { /* no symbols to code at all */ - //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */ - //table.bits[opts.table_index] = 1; //here.bits = (var char)1; - //table.val[opts.table_index++] = 0; //here.val = (var short)0; - table[table_index++] = (1 << 24) | (64 << 16) | 0; - - - //table.op[opts.table_index] = 64; - //table.bits[opts.table_index] = 1; - //table.val[opts.table_index++] = 0; - table[table_index++] = (1 << 24) | (64 << 16) | 0; - - opts.bits = 1; - return 0; /* no symbols, but wait for decoding to report error */ - } - for (min = 1; min < max; min++) { - if (count[min] !== 0) { break; } - } - if (root < min) { - root = min; - } - - /* check for an over-subscribed or incomplete set of lengths */ - left = 1; - for (len = 1; len <= MAXBITS; len++) { - left <<= 1; - left -= count[len]; - if (left < 0) { - return -1; - } /* over-subscribed */ - } - if (left > 0 && (type === CODES || max !== 1)) { - return -1; /* incomplete set */ - } - - /* generate offsets into symbol table for each length for sorting */ - offs[1] = 0; - for (len = 1; len < MAXBITS; len++) { - offs[len + 1] = offs[len] + count[len]; - } - - /* sort symbols by length, by symbol order within each length */ - for (sym = 0; sym < codes; sym++) { - if (lens[lens_index + sym] !== 0) { - work[offs[lens[lens_index + sym]]++] = sym; - } - } - - /* - Create and fill in decoding tables. In this loop, the table being - filled is at next and has curr index bits. The code being used is huff - with length len. That code is converted to an index by dropping drop - bits off of the bottom. For codes where len is less than drop + curr, - those top drop + curr - len bits are incremented through all values to - fill the table with replicated entries. - - root is the number of index bits for the root table. When len exceeds - root, sub-tables are created pointed to by the root entry with an index - of the low root bits of huff. This is saved in low to check for when a - new sub-table should be started. drop is zero when the root table is - being filled, and drop is root when sub-tables are being filled. - - When a new sub-table is needed, it is necessary to look ahead in the - code lengths to determine what size sub-table is needed. The length - counts are used for this, and so count[] is decremented as codes are - entered in the tables. - - used keeps track of how many table entries have been allocated from the - provided *table space. It is checked for LENS and DIST tables against - the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in - the initial root table size constants. See the comments in inftrees.h - for more information. - - sym increments through all symbols, and the loop terminates when - all codes of length max, i.e. all codes, have been processed. This - routine permits incomplete codes, so another loop after this one fills - in the rest of the decoding tables with invalid code markers. - */ - - /* set up for code type */ - // poor man optimization - use if-else instead of switch, - // to avoid deopts in old v8 - if (type === CODES) { - base = extra = work; /* dummy value--not used */ - end = 19; - - } else if (type === LENS) { - base = lbase; - base_index -= 257; - extra = lext; - extra_index -= 257; - end = 256; - - } else { /* DISTS */ - base = dbase; - extra = dext; - end = -1; - } - - /* initialize opts for loop */ - huff = 0; /* starting code */ - sym = 0; /* starting code symbol */ - len = min; /* starting code length */ - next = table_index; /* current table to fill in */ - curr = root; /* current table index bits */ - drop = 0; /* current bits to drop from code for index */ - low = -1; /* trigger new sub-table when len > root */ - used = 1 << root; /* use root table entries */ - mask = used - 1; /* mask for comparing low */ - - /* check available table space */ - if ((type === LENS && used > ENOUGH_LENS) || - (type === DISTS && used > ENOUGH_DISTS)) { - return 1; - } - - /* process all codes and make table entries */ - for (;;) { - /* create table entry */ - here_bits = len - drop; - if (work[sym] < end) { - here_op = 0; - here_val = work[sym]; - } - else if (work[sym] > end) { - here_op = extra[extra_index + work[sym]]; - here_val = base[base_index + work[sym]]; - } - else { - here_op = 32 + 64; /* end of block */ - here_val = 0; - } - - /* replicate for those indices with low len bits equal to huff */ - incr = 1 << (len - drop); - fill = 1 << curr; - min = fill; /* save offset to next table */ - do { - fill -= incr; - table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0; - } while (fill !== 0); - - /* backwards increment the len-bit code huff */ - incr = 1 << (len - 1); - while (huff & incr) { - incr >>= 1; - } - if (incr !== 0) { - huff &= incr - 1; - huff += incr; - } else { - huff = 0; - } - - /* go to next symbol, update count, len */ - sym++; - if (--count[len] === 0) { - if (len === max) { break; } - len = lens[lens_index + work[sym]]; - } - - /* create new sub-table if needed */ - if (len > root && (huff & mask) !== low) { - /* if first time, transition to sub-tables */ - if (drop === 0) { - drop = root; - } - - /* increment past last table */ - next += min; /* here min is 1 << curr */ - - /* determine length of next table */ - curr = len - drop; - left = 1 << curr; - while (curr + drop < max) { - left -= count[curr + drop]; - if (left <= 0) { break; } - curr++; - left <<= 1; - } - - /* check for enough space */ - used += 1 << curr; - if ((type === LENS && used > ENOUGH_LENS) || - (type === DISTS && used > ENOUGH_DISTS)) { - return 1; - } - - /* point entry in root table to sub-table */ - low = huff & mask; - /*table.op[low] = curr; - table.bits[low] = root; - table.val[low] = next - opts.table_index;*/ - table[low] = (root << 24) | (curr << 16) | (next - table_index) |0; - } - } - - /* fill in remaining table entry if code is incomplete (guaranteed to have - at most one remaining entry, since if the code is incomplete, the - maximum code length that was allowed to get this far is one bit) */ - if (huff !== 0) { - //table.op[next + huff] = 64; /* invalid code marker */ - //table.bits[next + huff] = len - drop; - //table.val[next + huff] = 0; - table[next + huff] = ((len - drop) << 24) | (64 << 16) |0; - } - - /* set return parameters */ - //opts.table_index += used; - opts.bits = root; - return 0; - }; - - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - // String encode/decode helpers - 'use strict'; - - - var utils = __webpack_require__(33); - - - // Quick check if we can use fast array to bin string conversion - // - // - apply(Array) can fail on Android 2.2 - // - apply(Uint8Array) can fail on iOS 5.1 Safary - // - var STR_APPLY_OK = true; - var STR_APPLY_UIA_OK = true; - - try { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; } - try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; } - - - // Table with utf8 lengths (calculated by first byte of sequence) - // Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS, - // because max possible codepoint is 0x10ffff - var _utf8len = new utils.Buf8(256); - for (var q = 0; q < 256; q++) { - _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1); - } - _utf8len[254] = _utf8len[254] = 1; // Invalid sequence start - - - // convert string to array (typed, when possible) - exports.string2buf = function (str) { - var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; - - // count binary size - for (m_pos = 0; m_pos < str_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) { - c2 = str.charCodeAt(m_pos + 1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; - } - } - buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; - } - - // allocate buffer - buf = new utils.Buf8(buf_len); - - // convert - for (i = 0, m_pos = 0; i < buf_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) { - c2 = str.charCodeAt(m_pos + 1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; - } - } - if (c < 0x80) { - /* one byte */ - buf[i++] = c; - } else if (c < 0x800) { - /* two bytes */ - buf[i++] = 0xC0 | (c >>> 6); - buf[i++] = 0x80 | (c & 0x3f); - } else if (c < 0x10000) { - /* three bytes */ - buf[i++] = 0xE0 | (c >>> 12); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } else { - /* four bytes */ - buf[i++] = 0xf0 | (c >>> 18); - buf[i++] = 0x80 | (c >>> 12 & 0x3f); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } - } - - return buf; - }; - - // Helper (used in 2 places) - function buf2binstring(buf, len) { - // use fallback for big arrays to avoid stack overflow - if (len < 65537) { - if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) { - return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); - } - } - - var result = ''; - for (var i = 0; i < len; i++) { - result += String.fromCharCode(buf[i]); - } - return result; - } - - - // Convert byte array to binary string - exports.buf2binstring = function (buf) { - return buf2binstring(buf, buf.length); - }; - - - // Convert binary string (typed, when possible) - exports.binstring2buf = function (str) { - var buf = new utils.Buf8(str.length); - for (var i = 0, len = buf.length; i < len; i++) { - buf[i] = str.charCodeAt(i); - } - return buf; - }; - - - // convert array to string - exports.buf2string = function (buf, max) { - var i, out, c, c_len; - var len = max || buf.length; - - // Reserve max possible length (2 words per char) - // NB: by unknown reasons, Array is significantly faster for - // String.fromCharCode.apply than Uint16Array. - var utf16buf = new Array(len * 2); - - for (out = 0, i = 0; i < len;) { - c = buf[i++]; - // quick process ascii - if (c < 0x80) { utf16buf[out++] = c; continue; } - - c_len = _utf8len[c]; - // skip 5 & 6 byte codes - if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; } - - // apply mask on first byte - c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; - // join the rest - while (c_len > 1 && i < len) { - c = (c << 6) | (buf[i++] & 0x3f); - c_len--; - } - - // terminated by end of string? - if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } - - if (c < 0x10000) { - utf16buf[out++] = c; - } else { - c -= 0x10000; - utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); - utf16buf[out++] = 0xdc00 | (c & 0x3ff); - } - } - - return buf2binstring(utf16buf, out); - }; - - - // Calculate max possible position in utf8 buffer, - // that will not break sequence. If that's not possible - // - (very small limits) return max size as is. - // - // buf[] - utf8 bytes array - // max - length limit (mandatory); - exports.utf8border = function (buf, max) { - var pos; - - max = max || buf.length; - if (max > buf.length) { max = buf.length; } - - // go back from last position, until start of sequence found - pos = max - 1; - while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } - - // Fuckup - very small and broken sequence, - // return max, because we should return something anyway. - if (pos < 0) { return max; } - - // If we came to start of buffer - that means vuffer is too small, - // return max too. - if (pos === 0) { return max; } - - return (pos + _utf8len[buf[pos]] > max) ? pos : max; - }; - - -/***/ }, -/* 39 */ -/***/ function(module, exports) { - - 'use strict'; - - - module.exports = { - - /* Allowed flush values; see deflate() and inflate() below for details */ - Z_NO_FLUSH: 0, - Z_PARTIAL_FLUSH: 1, - Z_SYNC_FLUSH: 2, - Z_FULL_FLUSH: 3, - Z_FINISH: 4, - Z_BLOCK: 5, - Z_TREES: 6, - - /* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ - Z_OK: 0, - Z_STREAM_END: 1, - Z_NEED_DICT: 2, - Z_ERRNO: -1, - Z_STREAM_ERROR: -2, - Z_DATA_ERROR: -3, - //Z_MEM_ERROR: -4, - Z_BUF_ERROR: -5, - //Z_VERSION_ERROR: -6, - - /* compression levels */ - Z_NO_COMPRESSION: 0, - Z_BEST_SPEED: 1, - Z_BEST_COMPRESSION: 9, - Z_DEFAULT_COMPRESSION: -1, - - - Z_FILTERED: 1, - Z_HUFFMAN_ONLY: 2, - Z_RLE: 3, - Z_FIXED: 4, - Z_DEFAULT_STRATEGY: 0, - - /* Possible values of the data_type field (though see inflate()) */ - Z_BINARY: 0, - Z_TEXT: 1, - //Z_ASCII: 1, // = Z_TEXT (deprecated) - Z_UNKNOWN: 2, - - /* The deflate compression method */ - Z_DEFLATED: 8 - //Z_NULL: null // Use -1 or null inline, depending on var type - }; - - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - 'use strict'; - - module.exports = { - 2: 'need dictionary', /* Z_NEED_DICT 2 */ - 1: 'stream end', /* Z_STREAM_END 1 */ - 0: '', /* Z_OK 0 */ - '-1': 'file error', /* Z_ERRNO (-1) */ - '-2': 'stream error', /* Z_STREAM_ERROR (-2) */ - '-3': 'data error', /* Z_DATA_ERROR (-3) */ - '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */ - '-5': 'buffer error', /* Z_BUF_ERROR (-5) */ - '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */ - }; - - -/***/ }, -/* 41 */ -/***/ function(module, exports) { - - 'use strict'; - - - function ZStream() { - /* next input byte */ - this.input = null; // JS specific, because we have no pointers - this.next_in = 0; - /* number of bytes available at input */ - this.avail_in = 0; - /* total number of input bytes read so far */ - this.total_in = 0; - /* next output byte should be put there */ - this.output = null; // JS specific, because we have no pointers - this.next_out = 0; - /* remaining free space at output */ - this.avail_out = 0; - /* total number of bytes output so far */ - this.total_out = 0; - /* last error message, NULL if no error */ - this.msg = ''/*Z_NULL*/; - /* not visible by applications */ - this.state = null; - /* best guess about the data type: binary or text */ - this.data_type = 2/*Z_UNKNOWN*/; - /* adler32 value of the uncompressed data */ - this.adler = 0; - } - - module.exports = ZStream; - - -/***/ }, -/* 42 */ -/***/ function(module, exports) { - - 'use strict'; - - - function GZheader() { - /* true if compressed data believed to be text */ - this.text = 0; - /* modification time */ - this.time = 0; - /* extra flags (not used when writing a gzip file) */ - this.xflags = 0; - /* operating system */ - this.os = 0; - /* pointer to extra field or Z_NULL if none */ - this.extra = null; - /* extra field length (valid if extra != Z_NULL) */ - this.extra_len = 0; // Actually, we don't need it in JS, - // but leave for few code modifications - - // - // Setup limits is not necessary because in js we should not preallocate memory - // for inflate use constant limit in 65536 bytes - // - - /* space at extra (only when reading header) */ - // this.extra_max = 0; - /* pointer to zero-terminated file name or Z_NULL */ - this.name = ''; - /* space at name (only when reading header) */ - // this.name_max = 0; - /* pointer to zero-terminated comment or Z_NULL */ - this.comment = ''; - /* space at comment (only when reading header) */ - // this.comm_max = 0; - /* true if there was or will be a header crc */ - this.hcrc = 0; - /* true when done reading gzip header (not used when writing a gzip file) */ - this.done = false; - } - - module.exports = GZheader; - - -/***/ } -/******/ ]) -}); -; -//# sourceMappingURL=browserfs.js.map - -/***/ }), - -/***/ "./node_modules/browserfs/dist/shims/bufferGlobal.js": -/*!***********************************************************!*\ - !*** ./node_modules/browserfs/dist/shims/bufferGlobal.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(BrowserFS) {module.exports = BrowserFS.BFSRequire('buffer').Buffer; - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bfsGlobal */ "./node_modules/browserfs/dist/browserfs.js"))) - -/***/ }), - -/***/ "./node_modules/browserfs/dist/shims/fs.js": -/*!*************************************************!*\ - !*** ./node_modules/browserfs/dist/shims/fs.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(BrowserFS) {module.exports = BrowserFS.BFSRequire('fs'); - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bfsGlobal */ "./node_modules/browserfs/dist/browserfs.js"))) - -/***/ }), - -/***/ "./node_modules/webpack/buildin/global.js": -/*!***********************************!*\ - !*** (webpack)/buildin/global.js ***! - \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -var g; - -// This works in non-strict mode -g = (function() { - return this; -})(); - -try { - // This works if eval is allowed (see CSP) - g = g || new Function("return this")(); -} catch (e) { - // This works if the window reference is available - if (typeof window === "object") g = window; -} - -// g can still be undefined, but nothing to do about it... -// We return undefined, instead of nothing here, so it's -// easier to handle this case. if(!global) { ...} - -module.exports = g; - - -/***/ }), - -/***/ "./src/fs.ts": -/*!*******************!*\ - !*** ./src/fs.ts ***! - \*******************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global, Buffer) { -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const BrowserFS = __importStar(__webpack_require__(/*! browserfs */ "./node_modules/browserfs/dist/browserfs.js")); -const util_1 = __webpack_require__(/*! ./util */ "./src/util.ts"); -function init(root = "assembly.zip") { - return __awaiter(this, void 0, void 0, function* () { - BrowserFS.install(global || window); - return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { - let zipData; - if (typeof root === "string") { - let response = yield fetch(root); - zipData = yield response.arrayBuffer(); - } - else { - zipData = root; - } - BrowserFS.configure({ - fs: "MountableFileSystem", - options: { - "/": { - fs: "OverlayFS", - options: { - readable: { - fs: "ZipFS", - options: { - // Wrap as Buffer object. - zipData: Buffer.from(zipData) - } - }, - writable: { - fs: "InMemory", - options: {} - } - } - }, - } - }, function (e) { - if (e) { - // An error occurred. - reject(e); - } - resolve(); - }); - })); - }); -} -exports.init = init; -function attachWorker(worker) { - BrowserFS.FileSystem.WorkerFS.attachRemoteListener(worker); -} -exports.attachWorker = attachWorker; -function initWorker() { - return __awaiter(this, void 0, void 0, function* () { - yield util_1.promisfy(BrowserFS.configure)({ fs: "WorkerFS", options: { worker: self } }); - }); -} -exports.initWorker = initWorker; -// import * as _fs from "fs"; -// export * from "fs-extra"; - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! bufferGlobal */ "./node_modules/browserfs/dist/shims/bufferGlobal.js"))) - -/***/ }), - -/***/ "./src/index.ts": -/*!**********************!*\ - !*** ./src/index.ts ***! - \**********************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -/// -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const fs_1 = __webpack_require__(/*! ./fs */ "./src/fs.ts"); -const fs = __importStar(__webpack_require__(/*! fs */ "./node_modules/browserfs/dist/shims/fs.js")); -const util_1 = __webpack_require__(/*! ./util */ "./src/util.ts"); -window.URL = window.URL || window.webkitURL; -let worker; -function main() { - return __awaiter(this, void 0, void 0, function* () { - yield fs_1.init("./assembly.zip"); - // (window as any).kernel = new Kernel(); - window.fs = fs; - console.log(yield util_1.promisfy(fs.readdir)(".")); - // fs.readdirSync(".").map(async(dir)=> console.log(dir + "/" + await promisfy(fs.readdir)(dir))); - let workerSource = yield util_1.promisfy(fs.readFile)("./worker.js"); - console.log(workerSource.toString()); - worker = new Worker("./worker.js"); - window.worker = worker; - fs_1.attachWorker(window.worker); - window.worker.onmessage = console.log; - worker.postMessage({ path: "/assembly/echo.ts" }); - // worker.onmessage - // await fs.access.__promisify__("/assembly/bin/echo.ts") - }); -} -main(); - - -/***/ }), - -/***/ "./src/util.ts": -/*!*********************!*\ - !*** ./src/util.ts ***! - \*********************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -// type asyncCallback = (...args: any[], fn: (err: any, contents: T) => T) => void; -function promisfy(fn) { - return (...args) => new Promise((resolve, reject) => { - fn(...args, (err, contents) => { - if (err) - reject(err); - resolve(contents); - }); - }); -} -exports.promisfy = promisfy; - - -/***/ }) - -/******/ }); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index cd47459..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/browserfs/dist/browserfs.js","webpack:///./node_modules/browserfs/dist/shims/bufferGlobal.js","webpack:///./node_modules/browserfs/dist/shims/fs.js","webpack:///(webpack)/buildin/global.js","webpack:///./src/fs.ts","webpack:///./src/index.ts","webpack:///./src/util.ts"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA,wEAAwE;;AAExE,+CAA+C,cAAc;;AAE7D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,8BAA8B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA,oBAAoB,kBAAkB,EAAE;AACxC;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,gCAAgC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,4BAA4B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA,0BAA0B,UAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA,0BAA0B,UAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,yBAAyB,EAAE;AAC9G,iCAAiC;AACjC,sBAAsB,uBAAuB,uBAAuB,EAAE,wBAAwB,gCAAgC,EAAE;AAChI;AACA;AACA;AACA;AACA;AACA,6BAA6B,mNAAmN;AAChP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6KAA6K,8BAA8B;AACxO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,kBAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,gBAAgB;AAChB;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yEAAyE;AACtI;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+JAA+J,wEAAwE;AACvO;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,cAAc;AAC9E,sEAAsE,aAAa;AACnF,sEAAsE,cAAc;AACpF,sEAAsE,kEAAkE;AACxI;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,EAAE;AACd,YAAY,MAAM;AAClB,cAAc,EAAE;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,EAAE;AAChB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,QAAQ;AACtB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB,cAAc,MAAM;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,QAAQ;AACtB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,QAAQ;AACtB;AACA;AACA;AACA,8BAA8B,kBAAkB,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA,+CAA+C,kBAAkB,EAAE;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,YAAY,OAAO;AACnB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,YAAY,QAAQ;AACpB,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,iDAAiD;AAC5E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA,WAAW,gBAAgB;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,8BAA8B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA,YAAY,KAAK;AACjB;AACA,YAAY,SAAS;AACrB;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,YAAY,sBAAsB;AAClC,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,YAAY,sBAAsB;AAClC;AACA,YAAY,KAAK;AACjB;AACA,YAAY,SAAS;AACrB;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB,cAAc,MAAM;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,cAAc,OAAO;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,EAAE;AACd,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,EAAE;AACd,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA,YAAY,SAAS;AACrB;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,4BAA4B,sDAAsD;AAClF,SAAS;AACT,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB,cAAc,MAAM;AACpB;;AAEA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,cAAc,MAAM;AACpB;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,MAAM;AACpB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;;AAEA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,EAAE;AACd,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA,cAAc,iCAAiC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,YAAY,YAAY;AACxB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,+BAA+B,wCAAwC;AACvE,aAAa;AACb,+BAA+B,kDAAkD;AACjF;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;AACA;AACA,UAAU;AACV,MAAM;AACN,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD,mCAAmC;AACvF,aAAa,8BAA8B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,sCAAsC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,UAAU;AACV,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,8BAA8B;AACvD;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA,0BAA0B,+BAA+B;AACzD;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;;AAEA;AACA,0BAA0B,+BAA+B;AACzD;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,SAAS;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA;AACA,YAAY,SAAS;AACrB;AACA;;AAEA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA,YAAY,SAAS;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,6BAA6B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,OAAO;AACtB;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA,eAAe,SAAS;AACxB;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA,cAAc,+BAA+B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA,KAAK;AACL,YAAY,YAAY;AACxB;AACA,KAAK;AACL;AACA;AACA,aAAa,YAAY,EAAE,YAAY,EAAE,YAAY;AACrD;AACA,KAAK;AACL;AACA;AACA,eAAe,YAAY;AAC3B;AACA,KAAK;AACL;;AAEA;AACA,8BAA8B,+BAA+B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA,cAAc,+BAA+B;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,YAAY,sBAAsB;AAClC,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA;AACA,YAAY,SAAS;AACrB;AACA;;AAEA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA,YAAY,SAAS;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,EAAE;AACd,cAAc,SAAS;AACvB;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA,YAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,+BAA+B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,YAAY,cAAc,UAAU,sBAAsB;AAC1D;AACA,YAAY,SAAS;AACrB,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA,yBAAyB,8BAA8B;AACvD;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,8BAA8B;AACvD;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA,YAAY,SAAS,iBAAiB,6BAA6B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA,YAAY,SAAS,iBAAiB,6BAA6B;AACnE;;AAEA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,YAAY,SAAS;AACrB,cAAc,SAAS;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,yCAAyC,oBAAoB;AAC7D,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sDAAsD;AACtD,wDAAwD;AACxD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mEAAmE,kDAAkD;AACrH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,aAAa;AAC9E,mEAAmE,2BAA2B;AAC9F,yEAAyE,cAAc;AACvF,+EAA+E,aAAa;AAC5F,+EAA+E,aAAa;AAC5F,+EAA+E,aAAa;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gCAAgC,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,8BAA8B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kDAAkD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,0BAA0B;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,4DAA4D,gCAAgC;AAC5F,kEAAkE,mCAAmC;AACrG,wEAAwE,sCAAsC;AAC9G,wEAAwE,sCAAsC;AAC9G,wEAAwE,cAAc;;AAEtF;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yDAAyD,yBAAyB;AAClF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iCAAiC,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;;AAEA;AACA,kJAAkJ,qDAAqD;AACvM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,uEAAuE,MAAM,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB,cAAc;AACd;AACA;AACA;AACA,iCAAiC;AACjC,sCAAsC;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,iBAAiB;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;;AAEA;AACA,gDAAgD,iBAAiB;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mEAAmE,aAAa;;AAEhF,qEAAqE,0BAA0B;AAC/F,2EAA2E,cAAc;AACzF,uFAAuF,cAAc;AACrG,iFAAiF,cAAc;AAC/F,iFAAiF,aAAa;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oEAAoE,aAAa;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,0BAA0B;AAChG,4EAA4E,cAAc;AAC1F,wFAAwF,cAAc;AACtG,kFAAkF,cAAc;AAChG,kFAAkF,cAAc;AAChG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,kFAAkF;AAClF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,kBAAkB;AAClB;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,OAAO,EAAE;AAChE;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,sCAAsC;AACtC;AACA,8BAA8B;AAC9B;AACA,sBAAsB;AACtB;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA,0CAA0C;AAC1C;AACA,kCAAkC;AAClC;AACA;AACA,sBAAsB;AACtB;AACA;AACA,UAAU;AACV;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF,oDAAoD,iBAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,UAAU;AACV,qEAAqE,uBAAuB;AAC5F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uCAAuC,iCAAiC,EAAE;;AAElH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iCAAiC,8CAA8C,EAAE;AACnG,kBAAkB;AAClB;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,4BAA4B,EAAE;AAC7F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gCAAgC,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,kCAAkC,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,mCAAmC,mBAAmB;AACtD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,cAAc,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,sEAAsE,cAAc;AACpF,4EAA4E,yEAAyE;AACrJ,4EAA4E,cAAc;AAC1F,4EAA4E,yEAAyE;AACrJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,8BAA8B;AAC9B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,kBAAkB;AAClB,cAAc;AACd,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,sBAAsB;AACtB;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,iDAAiD,EAAE;AACrI;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kBAAkB;AAClB,cAAc;AACd,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,iDAAiD,EAAE;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2DAA2D,qEAAqE;AAChI;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yJAAyJ,iFAAiF;AAC1O;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,wCAAwC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B,gBAAgB;AACtE;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gCAAgC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sBAAsB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yBAAyB;AACtF,mEAAmE,cAAc;AACjF,mEAAmE,2BAA2B;AAC9F,mEAAmE,2BAA2B;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D,gDAAgD,cAAc;AAC9D,oDAAoD,kBAAkB;AACtE,wDAAwD,kBAAkB;AAC1E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,kBAAkB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA,gEAAgE,iHAAiH;AACjL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sKAAsK,uDAAuD;AAC7N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,mBAAmB;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,8DAA8D;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,EAAE,8CAA8C;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,kCAAkC;AACpG,kDAAkD,kCAAkC;AACpF,0EAA0E,kCAAkC;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,mCAAmC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mCAAmC;AACzE,wCAAwC,mCAAmC;AAC3E,oEAAoE,mCAAmC;AACvG,wEAAwE,mCAAmC;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,6DAA6D;AACvH,sDAAsD,yCAAyC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kCAAkC;AACxF,wEAAwE,kCAAkC;AAC1G,4EAA4E,kCAAkC;AAC9G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kCAAkC;AAClG,gFAAgF,8CAA8C;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kCAAkC;AACxF,wEAAwE,4CAA4C;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,kCAAkC;AAC1G,wEAAwE,kCAAkC;AAC1G,sDAAsD,kCAAkC;AACxF,gFAAgF,mCAAmC;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mCAAmC;AAC3F,0EAA0E,mCAAmC;AAC7G,8EAA8E,mCAAmC;AACjH,0EAA0E,mCAAmC;AAC7G,8EAA8E,mCAAmC;AACjH,gFAAgF,mCAAmC;AACnH,4EAA4E,mCAAmC;AAC/G,kFAAkF,mCAAmC;AACrH,kFAAkF,mCAAmC;AACrH,sFAAsF,mCAAmC;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,4BAA4B;AACtF,4DAA4D,wCAAwC;AACpG,oEAAoE,oCAAoC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,kCAAkC;AACzG,2EAA2E,kCAAkC;AAC7G,mFAAmF,kCAAkC;AACrH,qFAAqF,mCAAmC;AACxH,+DAA+D,mCAAmC;AAClG,mEAAmE,mCAAmC;AACtG,uFAAuF,mCAAmC;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uDAAuD,8CAA8C;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sKAAsK,+BAA+B;AACrM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,8BAA8B;AACrG,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,6BAA6B,EAAE;AAC7F;AACA;AACA;AACA;AACA,mFAAmF,6BAA6B,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;;AAEA;AACA;AACA,mDAAmD,qBAAqB;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,6BAA6B,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,6BAA6B,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6BAA6B,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,2CAA2C;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,iBAAiB;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mBAAmB,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,oDAAoD,aAAa,EAAE;;AAEhG,OAAO;AACP;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,mDAAmD;AACzE;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,yBAAyB,QAAQ;AACjC;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA,IAAI;AACJ;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B;;AAE7B,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,UAAU;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS,WAAW;;AAEpB;AACA;AACA;AACA,SAAS,WAAW;;AAEpB;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,SAAS,WAAW;;AAEpB;AACA;AACA,SAAS,UAAU;;AAEnB;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA,OAAO;AACP;AACA;;AAEA,kDAAkD;AAClD;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4BAA4B,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iCAAiC,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,gCAAgC;AAChC,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA,6BAA6B;;AAE7B,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA,gDAAgD;AAChD;AACA;AACA,4CAA4C,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yBAAyB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA,6BAA6B;;AAE7B,OAAO;AACP;AACA;;AAEA,+CAA+C;AAC/C;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA,6BAA6B;;AAE7B,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;AAIA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA,gDAAgD;AAChD;AACA,oCAAoC;AACpC,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B;;AAE7B,OAAO;AACP;AACA;;AAEA,gDAAgD;;AAEhD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa;AACjB;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,4EAA4E,6EAA6E;AACzJ;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA,6EAA6E;;AAE7E;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oDAAoD;AACpD;AACA,oDAAoD,iEAAiE;AACrH;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA,wCAAwC;AACxC,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;;AAEA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B,OAAO;AACP;AACA;;AAEA,gDAAgD;;AAEhD;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,6BAA6B;;AAE7B,OAAO;AACP;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,4BAA4B,aAAa,EAAE;;AAExE,OAAO;AACP;AACA;;AAEA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,6BAA6B;;AAE7B,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB,+CAA+C;AAC/C;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA,gDAAgD;AAChD;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa;AACjB;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,MAAM;AACN,IAAI;AACJ,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;;AAEA,4CAA4C;AAC5C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB,cAAc,SAAS;AACvB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,4BAA4B,aAAa,EAAE;;AAExE,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,OAAO;AAChB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,EAAE;AACR,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA,+BAA+B;AAC/B;AACA,sBAAsB,8BAA8B;AACpD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI,eAAe;;AAEnB;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB,oBAAoB;AACpB,uBAAuB;AACvB,oBAAoB;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAuD;;AAEvD;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,kEAAkE;;AAExF;;AAEA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,sBAAsB,yCAAyC;;AAE/D;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;;AAGA,iBAAiB;AACjB,kBAAkB;AAClB,iBAAiB;AACjB,eAAe;AACf,kBAAkB;AAClB,kBAAkB;AAClB,iBAAiB;AACjB,oBAAoB;AACpB,iBAAiB;AACjB,oBAAoB;AACpB,kBAAkB;AAClB,sBAAsB;AACtB,wBAAwB;AACxB,wBAAwB;AACxB,uBAAuB;AACvB,sBAAsB;AACtB,uBAAuB;AACvB,yBAAyB;AACzB,0BAA0B;AAC1B,0BAA0B;AAC1B,yBAAyB;AACzB,4BAA4B;AAC5B,0BAA0B;AAC1B,6BAA6B;AAC7B,2BAA2B;AAC3B,yBAAyB;AACzB,mBAAmB;AACnB,oBAAoB;AACpB,kBAAkB;AAClB,iBAAiB;AACjB,iBAAiB;AACjB,kBAAkB;;AAElB;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,iBAAiB;AACjB,qBAAqB;AACrB,iBAAiB;AACjB,yBAAyB;AACzB,kBAAkB;AAClB,iBAAiB;AACjB,kBAAkB;AAClB,kBAAkB;AAClB;AACA,oBAAoB;;AAEpB;AACA,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,sBAAsB;;AAEtB;AACA,iBAAiB;AACjB,iBAAiB;;AAEjB;AACA,mBAAmB;AACnB,mBAAmB;;AAEnB;AACA,kBAAkB;;AAElB;AACA,uBAAuB;AACvB,wBAAwB;AACxB,oBAAoB;AACpB,qBAAqB;;AAErB;AACA,kBAAkB;AAClB,iBAAiB;AACjB,kBAAkB;AAClB,iBAAiB;AACjB,oBAAoB;;AAEpB,oCAAoC;AACpC,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,sBAAsB;AACtB,uBAAuB;AACvB,iBAAiB;AACjB,iBAAiB;AACjB,gBAAgB;AAChB;;AAEA;AACA;;AAEA,8BAA8B,uBAAuB;AACrD;AACA;AACA,iBAAiB;AACjB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B,uBAAuB;AACrD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B,uBAAuB;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe,uBAAuB;AACtC,uBAAuB;;AAEvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;;AAErB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wBAAwB,uBAAuB;AAC/C,wBAAwB,uBAAuB;AAC/C,wBAAwB,uBAAuB;AAC/C,wBAAwB,uBAAuB;;AAE/C,wEAAwE,UAAU;;AAElF;AACA;AACA,uBAAuB,uBAAuB;;AAE9C,wEAAwE,UAAU;;AAElF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D,uCAAuC,qBAAqB;AAC5D;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB,YAAY;AACZ,WAAW;AACX,kBAAkB;AAClB,YAAY;AACZ,YAAY;AACZ,iBAAiB;AACjB,YAAY;AACZ,YAAY;AACZ;AACA,gBAAgB;AAChB,oCAAoC;AACpC,cAAc;AACd,oCAAoC;AACpC,WAAW;AACX,WAAW;AACX,gCAAgC;AAChC;;AAEA,SAAS;;AAET;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,qBAAqB,EAAE;;;AAGpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,iBAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,aAAa;AACxC,2BAA2B,aAAa;AACxC,0BAA0B,iBAAiB;AAC3C,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,mEAAmE;AACnE;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,OAAO;;AAEvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,iEAAiE;AACjE;AACA;AACA;;AAEA,iCAAiC,OAAO;AACxC;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,OAAO;AACxD;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,mEAAmE;AACnE;AACA;AACA;;AAEA,mCAAmC,OAAO;AAC1C;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,OAAO;AACxD;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qBAAqB;AAC5D,+BAA+B,aAAa;AAC5C;AACA;AACA;AACA;AACA,cAAc;AACd,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qBAAqB;AACxD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA,QAAQ;AACR,gCAAgC,kBAAkB;AAClD;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,uBAAuB;AACrD;AACA,gCAAgC,uBAAuB;;AAEvD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8DAA8D,uBAAuB;AACrF;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,6BAA6B,YAAY;AACzC,sBAAsB,8BAA8B;AACpD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;;;AAGA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;;AAEA,uBAAuB;AACvB;;;AAGA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA,cAAc;AACd,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,YAAY;AACZ,YAAY;AACZ,WAAW;AACX,WAAW;AACX;AACA,YAAY;AACZ;AACA,aAAa;AACb,aAAa;AACb,aAAa;AACb;AACA,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,aAAa;AACb,aAAa;AACb,aAAa;AACb,aAAa;AACb,YAAY;AACZ,UAAU;AACV;AACA,WAAW;AACX,YAAY;AACZ,YAAY;AACZ;;;AAGA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY,GAAG;AACf;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,GAAG;AACnB;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,iCAAiC;AACjC;AACA,gCAAgC;AAChC;AACA;AACA;AACA,oBAAoB;AACpB,sCAAsC;AACtC;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,sBAAsB;AACtB,wCAAwC;AACxC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,gCAAgC;AAChC;AACA;AACA;AACA,oBAAoB;AACpB,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,mBAAmB;AACnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;;AAE1B,eAAe;AACf,eAAe;AACf,wBAAwB;AACxB,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,WAAW;AACX,YAAY;AACZ,YAAY;AACZ,mBAAmB;AACnB;AACA,kBAAkB;AAClB,WAAW;AACX,4CAA4C,eAAe;AAC3D,2CAA2C,eAAe;AAC1D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;;AAEA;AACA;AACA,sBAAsB,UAAU;AAChC,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA,mBAAmB;AACnB,uCAAuC,2BAA2B;AAClE,wCAAwC;AACxC,yCAAyC;AACzC;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA,gBAAgB,WAAW;AAC3B,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,eAAe;AACf;;AAEA;AACA;AACA,gBAAgB,eAAe;AAC/B;AACA;;AAEA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,IAAI,OAAO;AACX;AACA;AACA;AACA;;AAEA;AACA,YAAY;AACZ,WAAW;AACX,aAAa;AACb,sBAAsB;AACtB,eAAe;AACf,YAAY;AACZ,YAAY;AACZ,oBAAoB;AACpB,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;;;AAGA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,wCAAwC,EAAE,aAAa,sBAAsB;AACnF,MAAM,oDAAoD,EAAE,aAAa,0BAA0B;;;AAGnG;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,mCAAmC;;;AAGnC;AACA;AACA;;AAEA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA,oBAAoB,qBAAqB,UAAU;;AAEnD;AACA;AACA,qBAAqB,0BAA0B,gBAAgB,UAAU;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,0BAA0B,UAAU;;AAEzD;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,kBAAkB;;AAE5C;AACA;AACA,mDAAmD,OAAO;;AAE1D;AACA;AACA,iBAAiB,YAAY;;AAE7B;AACA;AACA,mBAAmB,YAAY;;AAE/B;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;;;;;ACnrwBA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;;ACnBA,sDAAa;AACb;AACA;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,iEAAiE,uBAAuB,EAAE,4BAA4B;AACrJ;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D,+BAA+B,mBAAO,CAAC,6DAAW;AAClD,eAAe,mBAAO,CAAC,6BAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,2BAA2B,eAAe,EAAE;AAChG,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;;ACzEa;AACb;AACA;AACA;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,iEAAiE,uBAAuB,EAAE,4BAA4B;AACrJ;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D,aAAa,mBAAO,CAAC,yBAAM;AAC3B,wBAAwB,mBAAO,CAAC,qDAAI;AACpC,eAAe,mBAAO,CAAC,6BAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;ACzCa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"BrowserFS\"] = factory();\n\telse\n\t\troot[\"BrowserFS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(Buffer, global, module, process) {'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\tvar buffer = __webpack_require__(2);\n\tvar path = __webpack_require__(9);\n\t\n\t/**\n\t * Standard libc error codes. Add more to this enum and ErrorStrings as they are\n\t * needed.\n\t * @url http://www.gnu.org/software/libc/manual/html_node/Error-Codes.html\n\t */\n\t/**\n\t * Standard libc error codes. Add more to this enum and ErrorStrings as they are\n\t * needed.\n\t * @url http://www.gnu.org/software/libc/manual/html_node/Error-Codes.html\n\t */ var ErrorCode;\n\t(function (ErrorCode) {\n\t ErrorCode[ErrorCode[\"EPERM\"] = 1] = \"EPERM\";\n\t ErrorCode[ErrorCode[\"ENOENT\"] = 2] = \"ENOENT\";\n\t ErrorCode[ErrorCode[\"EIO\"] = 5] = \"EIO\";\n\t ErrorCode[ErrorCode[\"EBADF\"] = 9] = \"EBADF\";\n\t ErrorCode[ErrorCode[\"EACCES\"] = 13] = \"EACCES\";\n\t ErrorCode[ErrorCode[\"EBUSY\"] = 16] = \"EBUSY\";\n\t ErrorCode[ErrorCode[\"EEXIST\"] = 17] = \"EEXIST\";\n\t ErrorCode[ErrorCode[\"ENOTDIR\"] = 20] = \"ENOTDIR\";\n\t ErrorCode[ErrorCode[\"EISDIR\"] = 21] = \"EISDIR\";\n\t ErrorCode[ErrorCode[\"EINVAL\"] = 22] = \"EINVAL\";\n\t ErrorCode[ErrorCode[\"EFBIG\"] = 27] = \"EFBIG\";\n\t ErrorCode[ErrorCode[\"ENOSPC\"] = 28] = \"ENOSPC\";\n\t ErrorCode[ErrorCode[\"EROFS\"] = 30] = \"EROFS\";\n\t ErrorCode[ErrorCode[\"ENOTEMPTY\"] = 39] = \"ENOTEMPTY\";\n\t ErrorCode[ErrorCode[\"ENOTSUP\"] = 95] = \"ENOTSUP\";\n\t})(ErrorCode || (ErrorCode = {}));\n\t/* tslint:disable:variable-name */\n\t/**\n\t * Strings associated with each error code.\n\t * @hidden\n\t */\n\tvar ErrorStrings = {};\n\tErrorStrings[ErrorCode.EPERM] = 'Operation not permitted.';\n\tErrorStrings[ErrorCode.ENOENT] = 'No such file or directory.';\n\tErrorStrings[ErrorCode.EIO] = 'Input/output error.';\n\tErrorStrings[ErrorCode.EBADF] = 'Bad file descriptor.';\n\tErrorStrings[ErrorCode.EACCES] = 'Permission denied.';\n\tErrorStrings[ErrorCode.EBUSY] = 'Resource busy or locked.';\n\tErrorStrings[ErrorCode.EEXIST] = 'File exists.';\n\tErrorStrings[ErrorCode.ENOTDIR] = 'File is not a directory.';\n\tErrorStrings[ErrorCode.EISDIR] = 'File is a directory.';\n\tErrorStrings[ErrorCode.EINVAL] = 'Invalid argument.';\n\tErrorStrings[ErrorCode.EFBIG] = 'File is too big.';\n\tErrorStrings[ErrorCode.ENOSPC] = 'No space left on disk.';\n\tErrorStrings[ErrorCode.EROFS] = 'Cannot modify a read-only file system.';\n\tErrorStrings[ErrorCode.ENOTEMPTY] = 'Directory is not empty.';\n\tErrorStrings[ErrorCode.ENOTSUP] = 'Operation is not supported.';\n\t/* tslint:enable:variable-name */\n\t/**\n\t * Represents a BrowserFS error. Passed back to applications after a failed\n\t * call to the BrowserFS API.\n\t */\n\tvar ApiError = (function (Error) {\n\t function ApiError(type, message, path$$1) {\n\t if ( message === void 0 ) message = ErrorStrings[type];\n\t\n\t Error.call(this, message);\n\t // Unsupported.\n\t this.syscall = \"\";\n\t this.errno = type;\n\t this.code = ErrorCode[type];\n\t this.path = path$$1;\n\t this.stack = new Error().stack;\n\t this.message = \"Error: \" + (this.code) + \": \" + message + (this.path ? (\", '\" + (this.path) + \"'\") : '');\n\t }\n\t\n\t if ( Error ) ApiError.__proto__ = Error;\n\t ApiError.prototype = Object.create( Error && Error.prototype );\n\t ApiError.prototype.constructor = ApiError;\n\t ApiError.fromJSON = function fromJSON (json) {\n\t var err = new ApiError(0);\n\t err.errno = json.errno;\n\t err.code = json.code;\n\t err.path = json.path;\n\t err.stack = json.stack;\n\t err.message = json.message;\n\t return err;\n\t };\n\t /**\n\t * Creates an ApiError object from a buffer.\n\t */\n\t ApiError.fromBuffer = function fromBuffer (buffer$$1, i) {\n\t if ( i === void 0 ) i = 0;\n\t\n\t return ApiError.fromJSON(JSON.parse(buffer$$1.toString('utf8', i + 4, i + 4 + buffer$$1.readUInt32LE(i))));\n\t };\n\t ApiError.FileError = function FileError (code, p) {\n\t return new ApiError(code, ErrorStrings[code], p);\n\t };\n\t ApiError.ENOENT = function ENOENT (path$$1) {\n\t return this.FileError(ErrorCode.ENOENT, path$$1);\n\t };\n\t ApiError.EEXIST = function EEXIST (path$$1) {\n\t return this.FileError(ErrorCode.EEXIST, path$$1);\n\t };\n\t ApiError.EISDIR = function EISDIR (path$$1) {\n\t return this.FileError(ErrorCode.EISDIR, path$$1);\n\t };\n\t ApiError.ENOTDIR = function ENOTDIR (path$$1) {\n\t return this.FileError(ErrorCode.ENOTDIR, path$$1);\n\t };\n\t ApiError.EPERM = function EPERM (path$$1) {\n\t return this.FileError(ErrorCode.EPERM, path$$1);\n\t };\n\t ApiError.ENOTEMPTY = function ENOTEMPTY (path$$1) {\n\t return this.FileError(ErrorCode.ENOTEMPTY, path$$1);\n\t };\n\t /**\n\t * @return A friendly error message.\n\t */\n\t ApiError.prototype.toString = function toString () {\n\t return this.message;\n\t };\n\t ApiError.prototype.toJSON = function toJSON () {\n\t return {\n\t errno: this.errno,\n\t code: this.code,\n\t path: this.path,\n\t stack: this.stack,\n\t message: this.message\n\t };\n\t };\n\t /**\n\t * Writes the API error into a buffer.\n\t */\n\t ApiError.prototype.writeToBuffer = function writeToBuffer (buffer$$1, i) {\n\t if ( buffer$$1 === void 0 ) buffer$$1 = Buffer.alloc(this.bufferSize());\n\t if ( i === void 0 ) i = 0;\n\t\n\t var bytesWritten = buffer$$1.write(JSON.stringify(this.toJSON()), i + 4);\n\t buffer$$1.writeUInt32LE(bytesWritten, i);\n\t return buffer$$1;\n\t };\n\t /**\n\t * The size of the API error in buffer-form in bytes.\n\t */\n\t ApiError.prototype.bufferSize = function bufferSize () {\n\t // 4 bytes for string length.\n\t return 4 + Buffer.byteLength(JSON.stringify(this.toJSON()));\n\t };\n\t\n\t return ApiError;\n\t }(Error));\n\t\n\t\n\tvar api_error = Object.freeze({\n\t\tget ErrorCode () { return ErrorCode; },\n\t\tErrorStrings: ErrorStrings,\n\t\tApiError: ApiError\n\t});\n\t\n\tvar ActionType;\n\t(function (ActionType) {\n\t // Indicates that the code should not do anything.\n\t ActionType[ActionType[\"NOP\"] = 0] = \"NOP\";\n\t // Indicates that the code should throw an exception.\n\t ActionType[ActionType[\"THROW_EXCEPTION\"] = 1] = \"THROW_EXCEPTION\";\n\t // Indicates that the code should truncate the file, but only if it is a file.\n\t ActionType[ActionType[\"TRUNCATE_FILE\"] = 2] = \"TRUNCATE_FILE\";\n\t // Indicates that the code should create the file.\n\t ActionType[ActionType[\"CREATE_FILE\"] = 3] = \"CREATE_FILE\";\n\t})(ActionType || (ActionType = {}));\n\t/**\n\t * Represents one of the following file flags. A convenience object.\n\t *\n\t * * `'r'` - Open file for reading. An exception occurs if the file does not exist.\n\t * * `'r+'` - Open file for reading and writing. An exception occurs if the file does not exist.\n\t * * `'rs'` - Open file for reading in synchronous mode. Instructs the filesystem to not cache writes.\n\t * * `'rs+'` - Open file for reading and writing, and opens the file in synchronous mode.\n\t * * `'w'` - Open file for writing. The file is created (if it does not exist) or truncated (if it exists).\n\t * * `'wx'` - Like 'w' but opens the file in exclusive mode.\n\t * * `'w+'` - Open file for reading and writing. The file is created (if it does not exist) or truncated (if it exists).\n\t * * `'wx+'` - Like 'w+' but opens the file in exclusive mode.\n\t * * `'a'` - Open file for appending. The file is created if it does not exist.\n\t * * `'ax'` - Like 'a' but opens the file in exclusive mode.\n\t * * `'a+'` - Open file for reading and appending. The file is created if it does not exist.\n\t * * `'ax+'` - Like 'a+' but opens the file in exclusive mode.\n\t *\n\t * Exclusive mode ensures that the file path is newly created.\n\t */\n\tvar FileFlag = function FileFlag(flagStr) {\n\t this.flagStr = flagStr;\n\t if (FileFlag.validFlagStrs.indexOf(flagStr) < 0) {\n\t throw new ApiError(ErrorCode.EINVAL, \"Invalid flag: \" + flagStr);\n\t }\n\t};\n\t/**\n\t * Get an object representing the given file flag.\n\t * @param modeStr The string representing the flag\n\t * @return The FileFlag object representing the flag\n\t * @throw when the flag string is invalid\n\t */\n\tFileFlag.getFileFlag = function getFileFlag (flagStr) {\n\t // Check cache first.\n\t if (FileFlag.flagCache.hasOwnProperty(flagStr)) {\n\t return FileFlag.flagCache[flagStr];\n\t }\n\t return FileFlag.flagCache[flagStr] = new FileFlag(flagStr);\n\t};\n\t/**\n\t * Get the underlying flag string for this flag.\n\t */\n\tFileFlag.prototype.getFlagString = function getFlagString () {\n\t return this.flagStr;\n\t};\n\t/**\n\t * Returns true if the file is readable.\n\t */\n\tFileFlag.prototype.isReadable = function isReadable () {\n\t return this.flagStr.indexOf('r') !== -1 || this.flagStr.indexOf('+') !== -1;\n\t};\n\t/**\n\t * Returns true if the file is writeable.\n\t */\n\tFileFlag.prototype.isWriteable = function isWriteable () {\n\t return this.flagStr.indexOf('w') !== -1 || this.flagStr.indexOf('a') !== -1 || this.flagStr.indexOf('+') !== -1;\n\t};\n\t/**\n\t * Returns true if the file mode should truncate.\n\t */\n\tFileFlag.prototype.isTruncating = function isTruncating () {\n\t return this.flagStr.indexOf('w') !== -1;\n\t};\n\t/**\n\t * Returns true if the file is appendable.\n\t */\n\tFileFlag.prototype.isAppendable = function isAppendable () {\n\t return this.flagStr.indexOf('a') !== -1;\n\t};\n\t/**\n\t * Returns true if the file is open in synchronous mode.\n\t */\n\tFileFlag.prototype.isSynchronous = function isSynchronous () {\n\t return this.flagStr.indexOf('s') !== -1;\n\t};\n\t/**\n\t * Returns true if the file is open in exclusive mode.\n\t */\n\tFileFlag.prototype.isExclusive = function isExclusive () {\n\t return this.flagStr.indexOf('x') !== -1;\n\t};\n\t/**\n\t * Returns one of the static fields on this object that indicates the\n\t * appropriate response to the path existing.\n\t */\n\tFileFlag.prototype.pathExistsAction = function pathExistsAction () {\n\t if (this.isExclusive()) {\n\t return ActionType.THROW_EXCEPTION;\n\t }\n\t else if (this.isTruncating()) {\n\t return ActionType.TRUNCATE_FILE;\n\t }\n\t else {\n\t return ActionType.NOP;\n\t }\n\t};\n\t/**\n\t * Returns one of the static fields on this object that indicates the\n\t * appropriate response to the path not existing.\n\t */\n\tFileFlag.prototype.pathNotExistsAction = function pathNotExistsAction () {\n\t if ((this.isWriteable() || this.isAppendable()) && this.flagStr !== 'r+') {\n\t return ActionType.CREATE_FILE;\n\t }\n\t else {\n\t return ActionType.THROW_EXCEPTION;\n\t }\n\t};\n\t// Contains cached FileMode instances.\n\tFileFlag.flagCache = {};\n\t// Array of valid mode strings.\n\tFileFlag.validFlagStrs = ['r', 'r+', 'rs', 'rs+', 'w', 'wx', 'w+', 'wx+', 'a', 'ax', 'a+', 'ax+'];\n\t\n\t/**\n\t * Indicates the type of the given file. Applied to 'mode'.\n\t */\n\tvar FileType;\n\t(function (FileType) {\n\t FileType[FileType[\"FILE\"] = 32768] = \"FILE\";\n\t FileType[FileType[\"DIRECTORY\"] = 16384] = \"DIRECTORY\";\n\t FileType[FileType[\"SYMLINK\"] = 40960] = \"SYMLINK\";\n\t})(FileType || (FileType = {}));\n\t/**\n\t * Emulation of Node's `fs.Stats` object.\n\t *\n\t * Attribute descriptions are from `man 2 stat'\n\t * @see http://nodejs.org/api/fs.html#fs_class_fs_stats\n\t * @see http://man7.org/linux/man-pages/man2/stat.2.html\n\t */\n\tvar Stats = function Stats(itemType, size, mode, atime, mtime, ctime) {\n\t if ( atime === void 0 ) atime = new Date();\n\t if ( mtime === void 0 ) mtime = new Date();\n\t if ( ctime === void 0 ) ctime = new Date();\n\t\n\t this.size = size;\n\t this.atime = atime;\n\t this.mtime = mtime;\n\t this.ctime = ctime;\n\t /**\n\t * UNSUPPORTED ATTRIBUTES\n\t * I assume no one is going to need these details, although we could fake\n\t * appropriate values if need be.\n\t */\n\t // ID of device containing file\n\t this.dev = 0;\n\t // inode number\n\t this.ino = 0;\n\t // device ID (if special file)\n\t this.rdev = 0;\n\t // number of hard links\n\t this.nlink = 1;\n\t // blocksize for file system I/O\n\t this.blksize = 4096;\n\t // @todo Maybe support these? atm, it's a one-user filesystem.\n\t // user ID of owner\n\t this.uid = 0;\n\t // group ID of owner\n\t this.gid = 0;\n\t // time file was created (currently unsupported)\n\t this.birthtime = new Date(0);\n\t // XXX: Some file systems stash data on stats objects.\n\t this.fileData = null;\n\t if (!mode) {\n\t switch (itemType) {\n\t case FileType.FILE:\n\t this.mode = 0x1a4;\n\t break;\n\t case FileType.DIRECTORY:\n\t default:\n\t this.mode = 0x1ff;\n\t }\n\t }\n\t else {\n\t this.mode = mode;\n\t }\n\t // number of 512B blocks allocated\n\t this.blocks = Math.ceil(size / 512);\n\t // Check if mode also includes top-most bits, which indicate the file's\n\t // type.\n\t if (this.mode < 0x1000) {\n\t this.mode |= itemType;\n\t }\n\t};\n\tStats.fromBuffer = function fromBuffer (buffer$$1) {\n\t var size = buffer$$1.readUInt32LE(0), mode = buffer$$1.readUInt32LE(4), atime = buffer$$1.readDoubleLE(8), mtime = buffer$$1.readDoubleLE(16), ctime = buffer$$1.readDoubleLE(24);\n\t return new Stats(mode & 0xF000, size, mode & 0xFFF, new Date(atime), new Date(mtime), new Date(ctime));\n\t};\n\tStats.prototype.toBuffer = function toBuffer () {\n\t var buffer$$1 = Buffer.alloc(32);\n\t buffer$$1.writeUInt32LE(this.size, 0);\n\t buffer$$1.writeUInt32LE(this.mode, 4);\n\t buffer$$1.writeDoubleLE(this.atime.getTime(), 8);\n\t buffer$$1.writeDoubleLE(this.mtime.getTime(), 16);\n\t buffer$$1.writeDoubleLE(this.ctime.getTime(), 24);\n\t return buffer$$1;\n\t};\n\t/**\n\t * **Nonstandard**: Clone the stats object.\n\t * @return [BrowserFS.node.fs.Stats]\n\t */\n\tStats.prototype.clone = function clone () {\n\t return new Stats(this.mode & 0xF000, this.size, this.mode & 0xFFF, this.atime, this.mtime, this.ctime);\n\t};\n\t/**\n\t * @return [Boolean] True if this item is a file.\n\t */\n\tStats.prototype.isFile = function isFile () {\n\t return (this.mode & 0xF000) === FileType.FILE;\n\t};\n\t/**\n\t * @return [Boolean] True if this item is a directory.\n\t */\n\tStats.prototype.isDirectory = function isDirectory () {\n\t return (this.mode & 0xF000) === FileType.DIRECTORY;\n\t};\n\t/**\n\t * @return [Boolean] True if this item is a symbolic link (only valid through lstat)\n\t */\n\tStats.prototype.isSymbolicLink = function isSymbolicLink () {\n\t return (this.mode & 0xF000) === FileType.SYMLINK;\n\t};\n\t/**\n\t * Change the mode of the file. We use this helper function to prevent messing\n\t * up the type of the file, which is encoded in mode.\n\t */\n\tStats.prototype.chmod = function chmod (mode) {\n\t this.mode = (this.mode & 0xF000) | mode;\n\t};\n\t// We don't support the following types of files.\n\tStats.prototype.isSocket = function isSocket () {\n\t return false;\n\t};\n\tStats.prototype.isBlockDevice = function isBlockDevice () {\n\t return false;\n\t};\n\tStats.prototype.isCharacterDevice = function isCharacterDevice () {\n\t return false;\n\t};\n\tStats.prototype.isFIFO = function isFIFO () {\n\t return false;\n\t};\n\t\n\t/**\n\t * Wraps a callback function. Used for unit testing. Defaults to a NOP.\n\t * @hidden\n\t */\n\tvar wrapCb = function (cb, numArgs) {\n\t return cb;\n\t};\n\t/**\n\t * @hidden\n\t */\n\tfunction assertRoot(fs) {\n\t if (fs) {\n\t return fs;\n\t }\n\t throw new ApiError(ErrorCode.EIO, \"Initialize BrowserFS with a file system using BrowserFS.initialize(filesystem)\");\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction normalizeMode(mode, def) {\n\t switch (typeof mode) {\n\t case 'number':\n\t // (path, flag, mode, cb?)\n\t return mode;\n\t case 'string':\n\t // (path, flag, modeString, cb?)\n\t var trueMode = parseInt(mode, 8);\n\t if (!isNaN(trueMode)) {\n\t return trueMode;\n\t }\n\t // Invalid string.\n\t return def;\n\t default:\n\t return def;\n\t }\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction normalizeTime(time) {\n\t if (time instanceof Date) {\n\t return time;\n\t }\n\t else if (typeof time === 'number') {\n\t return new Date(time * 1000);\n\t }\n\t else {\n\t throw new ApiError(ErrorCode.EINVAL, \"Invalid time.\");\n\t }\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction normalizePath(p) {\n\t // Node doesn't allow null characters in paths.\n\t if (p.indexOf('\\u0000') >= 0) {\n\t throw new ApiError(ErrorCode.EINVAL, 'Path must be a string without null bytes.');\n\t }\n\t else if (p === '') {\n\t throw new ApiError(ErrorCode.EINVAL, 'Path must not be empty.');\n\t }\n\t return path.resolve(p);\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction normalizeOptions(options, defEnc, defFlag, defMode) {\n\t switch (typeof options) {\n\t case 'object':\n\t return {\n\t encoding: typeof options['encoding'] !== 'undefined' ? options['encoding'] : defEnc,\n\t flag: typeof options['flag'] !== 'undefined' ? options['flag'] : defFlag,\n\t mode: normalizeMode(options['mode'], defMode)\n\t };\n\t case 'string':\n\t return {\n\t encoding: options,\n\t flag: defFlag,\n\t mode: defMode\n\t };\n\t default:\n\t return {\n\t encoding: defEnc,\n\t flag: defFlag,\n\t mode: defMode\n\t };\n\t }\n\t}\n\t/**\n\t * The default callback is a NOP.\n\t * @hidden\n\t * @private\n\t */\n\tfunction nopCb() {\n\t // NOP.\n\t}\n\t/**\n\t * The node frontend to all filesystems.\n\t * This layer handles:\n\t *\n\t * * Sanity checking inputs.\n\t * * Normalizing paths.\n\t * * Resetting stack depth for asynchronous operations which may not go through\n\t * the browser by wrapping all input callbacks using `setImmediate`.\n\t * * Performing the requested operation through the filesystem or the file\n\t * descriptor, as appropriate.\n\t * * Handling optional arguments and setting default arguments.\n\t * @see http://nodejs.org/api/fs.html\n\t */\n\tvar FS = function FS() {\n\t /* tslint:enable:variable-name */\n\t this.F_OK = 0;\n\t this.R_OK = 4;\n\t this.W_OK = 2;\n\t this.X_OK = 1;\n\t this.root = null;\n\t this.fdMap = {};\n\t this.nextFd = 100;\n\t};\n\tFS.prototype.initialize = function initialize (rootFS) {\n\t if (!rootFS.constructor.isAvailable()) {\n\t throw new ApiError(ErrorCode.EINVAL, 'Tried to instantiate BrowserFS with an unavailable file system.');\n\t }\n\t return this.root = rootFS;\n\t};\n\t/**\n\t * converts Date or number to a fractional UNIX timestamp\n\t * Grabbed from NodeJS sources (lib/fs.js)\n\t */\n\tFS.prototype._toUnixTimestamp = function _toUnixTimestamp (time) {\n\t if (typeof time === 'number') {\n\t return time;\n\t }\n\t else if (time instanceof Date) {\n\t return time.getTime() / 1000;\n\t }\n\t throw new Error(\"Cannot parse time: \" + time);\n\t};\n\t/**\n\t * **NONSTANDARD**: Grab the FileSystem instance that backs this API.\n\t * @return [BrowserFS.FileSystem | null] Returns null if the file system has\n\t * not been initialized.\n\t */\n\tFS.prototype.getRootFS = function getRootFS () {\n\t if (this.root) {\n\t return this.root;\n\t }\n\t else {\n\t return null;\n\t }\n\t};\n\t// FILE OR DIRECTORY METHODS\n\t/**\n\t * Asynchronous rename. No arguments other than a possible exception are given\n\t * to the completion callback.\n\t * @param oldPath\n\t * @param newPath\n\t * @param callback\n\t */\n\tFS.prototype.rename = function rename (oldPath, newPath, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t assertRoot(this.root).rename(normalizePath(oldPath), normalizePath(newPath), newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous rename.\n\t * @param oldPath\n\t * @param newPath\n\t */\n\tFS.prototype.renameSync = function renameSync (oldPath, newPath) {\n\t assertRoot(this.root).renameSync(normalizePath(oldPath), normalizePath(newPath));\n\t};\n\t/**\n\t * Test whether or not the given path exists by checking with the file system.\n\t * Then call the callback argument with either true or false.\n\t * @example Sample invocation\n\t * fs.exists('/etc/passwd', function (exists) {\n\t * util.debug(exists ? \"it's there\" : \"no passwd!\");\n\t * });\n\t * @param path\n\t * @param callback\n\t */\n\tFS.prototype.exists = function exists (path$$1, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t return assertRoot(this.root).exists(normalizePath(path$$1), newCb);\n\t }\n\t catch (e) {\n\t // Doesn't return an error. If something bad happens, we assume it just\n\t // doesn't exist.\n\t return newCb(false);\n\t }\n\t};\n\t/**\n\t * Test whether or not the given path exists by checking with the file system.\n\t * @param path\n\t * @return [boolean]\n\t */\n\tFS.prototype.existsSync = function existsSync (path$$1) {\n\t try {\n\t return assertRoot(this.root).existsSync(normalizePath(path$$1));\n\t }\n\t catch (e) {\n\t // Doesn't return an error. If something bad happens, we assume it just\n\t // doesn't exist.\n\t return false;\n\t }\n\t};\n\t/**\n\t * Asynchronous `stat`.\n\t * @param path\n\t * @param callback\n\t */\n\tFS.prototype.stat = function stat (path$$1, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 2);\n\t try {\n\t return assertRoot(this.root).stat(normalizePath(path$$1), false, newCb);\n\t }\n\t catch (e) {\n\t return newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `stat`.\n\t * @param path\n\t * @return [BrowserFS.node.fs.Stats]\n\t */\n\tFS.prototype.statSync = function statSync (path$$1) {\n\t return assertRoot(this.root).statSync(normalizePath(path$$1), false);\n\t};\n\t/**\n\t * Asynchronous `lstat`.\n\t * `lstat()` is identical to `stat()`, except that if path is a symbolic link,\n\t * then the link itself is stat-ed, not the file that it refers to.\n\t * @param path\n\t * @param callback\n\t */\n\tFS.prototype.lstat = function lstat (path$$1, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 2);\n\t try {\n\t return assertRoot(this.root).stat(normalizePath(path$$1), true, newCb);\n\t }\n\t catch (e) {\n\t return newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `lstat`.\n\t * `lstat()` is identical to `stat()`, except that if path is a symbolic link,\n\t * then the link itself is stat-ed, not the file that it refers to.\n\t * @param path\n\t * @return [BrowserFS.node.fs.Stats]\n\t */\n\tFS.prototype.lstatSync = function lstatSync (path$$1) {\n\t return assertRoot(this.root).statSync(normalizePath(path$$1), true);\n\t};\n\tFS.prototype.truncate = function truncate (path$$1, arg2, cb) {\n\t if ( arg2 === void 0 ) arg2 = 0;\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var len = 0;\n\t if (typeof arg2 === 'function') {\n\t cb = arg2;\n\t }\n\t else if (typeof arg2 === 'number') {\n\t len = arg2;\n\t }\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t if (len < 0) {\n\t throw new ApiError(ErrorCode.EINVAL);\n\t }\n\t return assertRoot(this.root).truncate(normalizePath(path$$1), len, newCb);\n\t }\n\t catch (e) {\n\t return newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `truncate`.\n\t * @param path\n\t * @param len\n\t */\n\tFS.prototype.truncateSync = function truncateSync (path$$1, len) {\n\t if ( len === void 0 ) len = 0;\n\t\n\t if (len < 0) {\n\t throw new ApiError(ErrorCode.EINVAL);\n\t }\n\t return assertRoot(this.root).truncateSync(normalizePath(path$$1), len);\n\t};\n\t/**\n\t * Asynchronous `unlink`.\n\t * @param path\n\t * @param callback\n\t */\n\tFS.prototype.unlink = function unlink (path$$1, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t return assertRoot(this.root).unlink(normalizePath(path$$1), newCb);\n\t }\n\t catch (e) {\n\t return newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `unlink`.\n\t * @param path\n\t */\n\tFS.prototype.unlinkSync = function unlinkSync (path$$1) {\n\t return assertRoot(this.root).unlinkSync(normalizePath(path$$1));\n\t};\n\tFS.prototype.open = function open (path$$1, flag, arg2, cb) {\n\t var this$1 = this;\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var mode = normalizeMode(arg2, 0x1a4);\n\t cb = typeof arg2 === 'function' ? arg2 : cb;\n\t var newCb = wrapCb(cb, 2);\n\t try {\n\t assertRoot(this.root).open(normalizePath(path$$1), FileFlag.getFileFlag(flag), mode, function (e, file) {\n\t if (file) {\n\t newCb(e, this$1.getFdForFile(file));\n\t }\n\t else {\n\t newCb(e);\n\t }\n\t });\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous file open.\n\t * @see http://www.manpagez.com/man/2/open/\n\t * @param path\n\t * @param flags\n\t * @param mode defaults to `0644`\n\t * @return [BrowserFS.File]\n\t */\n\tFS.prototype.openSync = function openSync (path$$1, flag, mode) {\n\t if ( mode === void 0 ) mode = 0x1a4;\n\t\n\t return this.getFdForFile(assertRoot(this.root).openSync(normalizePath(path$$1), FileFlag.getFileFlag(flag), normalizeMode(mode, 0x1a4)));\n\t};\n\tFS.prototype.readFile = function readFile (filename, arg2, cb) {\n\t if ( arg2 === void 0 ) arg2 = {};\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var options = normalizeOptions(arg2, null, 'r', null);\n\t cb = typeof arg2 === 'function' ? arg2 : cb;\n\t var newCb = wrapCb(cb, 2);\n\t try {\n\t var flag = FileFlag.getFileFlag(options['flag']);\n\t if (!flag.isReadable()) {\n\t return newCb(new ApiError(ErrorCode.EINVAL, 'Flag passed to readFile must allow for reading.'));\n\t }\n\t return assertRoot(this.root).readFile(normalizePath(filename), options.encoding, flag, newCb);\n\t }\n\t catch (e) {\n\t return newCb(e);\n\t }\n\t};\n\tFS.prototype.readFileSync = function readFileSync (filename, arg2) {\n\t if ( arg2 === void 0 ) arg2 = {};\n\t\n\t var options = normalizeOptions(arg2, null, 'r', null);\n\t var flag = FileFlag.getFileFlag(options.flag);\n\t if (!flag.isReadable()) {\n\t throw new ApiError(ErrorCode.EINVAL, 'Flag passed to readFile must allow for reading.');\n\t }\n\t return assertRoot(this.root).readFileSync(normalizePath(filename), options.encoding, flag);\n\t};\n\tFS.prototype.writeFile = function writeFile (filename, data, arg3, cb) {\n\t if ( arg3 === void 0 ) arg3 = {};\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var options = normalizeOptions(arg3, 'utf8', 'w', 0x1a4);\n\t cb = typeof arg3 === 'function' ? arg3 : cb;\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t var flag = FileFlag.getFileFlag(options.flag);\n\t if (!flag.isWriteable()) {\n\t return newCb(new ApiError(ErrorCode.EINVAL, 'Flag passed to writeFile must allow for writing.'));\n\t }\n\t return assertRoot(this.root).writeFile(normalizePath(filename), data, options.encoding, flag, options.mode, newCb);\n\t }\n\t catch (e) {\n\t return newCb(e);\n\t }\n\t};\n\tFS.prototype.writeFileSync = function writeFileSync (filename, data, arg3) {\n\t var options = normalizeOptions(arg3, 'utf8', 'w', 0x1a4);\n\t var flag = FileFlag.getFileFlag(options.flag);\n\t if (!flag.isWriteable()) {\n\t throw new ApiError(ErrorCode.EINVAL, 'Flag passed to writeFile must allow for writing.');\n\t }\n\t return assertRoot(this.root).writeFileSync(normalizePath(filename), data, options.encoding, flag, options.mode);\n\t};\n\tFS.prototype.appendFile = function appendFile (filename, data, arg3, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var options = normalizeOptions(arg3, 'utf8', 'a', 0x1a4);\n\t cb = typeof arg3 === 'function' ? arg3 : cb;\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t var flag = FileFlag.getFileFlag(options.flag);\n\t if (!flag.isAppendable()) {\n\t return newCb(new ApiError(ErrorCode.EINVAL, 'Flag passed to appendFile must allow for appending.'));\n\t }\n\t assertRoot(this.root).appendFile(normalizePath(filename), data, options.encoding, flag, options.mode, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\tFS.prototype.appendFileSync = function appendFileSync (filename, data, arg3) {\n\t var options = normalizeOptions(arg3, 'utf8', 'a', 0x1a4);\n\t var flag = FileFlag.getFileFlag(options.flag);\n\t if (!flag.isAppendable()) {\n\t throw new ApiError(ErrorCode.EINVAL, 'Flag passed to appendFile must allow for appending.');\n\t }\n\t return assertRoot(this.root).appendFileSync(normalizePath(filename), data, options.encoding, flag, options.mode);\n\t};\n\t// FILE DESCRIPTOR METHODS\n\t/**\n\t * Asynchronous `fstat`.\n\t * `fstat()` is identical to `stat()`, except that the file to be stat-ed is\n\t * specified by the file descriptor `fd`.\n\t * @param fd\n\t * @param callback\n\t */\n\tFS.prototype.fstat = function fstat (fd, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 2);\n\t try {\n\t var file = this.fd2file(fd);\n\t file.stat(newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `fstat`.\n\t * `fstat()` is identical to `stat()`, except that the file to be stat-ed is\n\t * specified by the file descriptor `fd`.\n\t * @param fd\n\t * @return [BrowserFS.node.fs.Stats]\n\t */\n\tFS.prototype.fstatSync = function fstatSync (fd) {\n\t return this.fd2file(fd).statSync();\n\t};\n\t/**\n\t * Asynchronous close.\n\t * @param fd\n\t * @param callback\n\t */\n\tFS.prototype.close = function close (fd, cb) {\n\t var this$1 = this;\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t this.fd2file(fd).close(function (e) {\n\t if (!e) {\n\t this$1.closeFd(fd);\n\t }\n\t newCb(e);\n\t });\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous close.\n\t * @param fd\n\t */\n\tFS.prototype.closeSync = function closeSync (fd) {\n\t this.fd2file(fd).closeSync();\n\t this.closeFd(fd);\n\t};\n\tFS.prototype.ftruncate = function ftruncate (fd, arg2, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var length = typeof arg2 === 'number' ? arg2 : 0;\n\t cb = typeof arg2 === 'function' ? arg2 : cb;\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t var file = this.fd2file(fd);\n\t if (length < 0) {\n\t throw new ApiError(ErrorCode.EINVAL);\n\t }\n\t file.truncate(length, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous ftruncate.\n\t * @param fd\n\t * @param len\n\t */\n\tFS.prototype.ftruncateSync = function ftruncateSync (fd, len) {\n\t if ( len === void 0 ) len = 0;\n\t\n\t var file = this.fd2file(fd);\n\t if (len < 0) {\n\t throw new ApiError(ErrorCode.EINVAL);\n\t }\n\t file.truncateSync(len);\n\t};\n\t/**\n\t * Asynchronous fsync.\n\t * @param fd\n\t * @param callback\n\t */\n\tFS.prototype.fsync = function fsync (fd, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t this.fd2file(fd).sync(newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous fsync.\n\t * @param fd\n\t */\n\tFS.prototype.fsyncSync = function fsyncSync (fd) {\n\t this.fd2file(fd).syncSync();\n\t};\n\t/**\n\t * Asynchronous fdatasync.\n\t * @param fd\n\t * @param callback\n\t */\n\tFS.prototype.fdatasync = function fdatasync (fd, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t this.fd2file(fd).datasync(newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous fdatasync.\n\t * @param fd\n\t */\n\tFS.prototype.fdatasyncSync = function fdatasyncSync (fd) {\n\t this.fd2file(fd).datasyncSync();\n\t};\n\tFS.prototype.write = function write (fd, arg2, arg3, arg4, arg5, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var buffer$$1, offset, length, position = null;\n\t if (typeof arg2 === 'string') {\n\t // Signature 1: (fd, string, [position?, [encoding?]], cb?)\n\t var encoding = 'utf8';\n\t switch (typeof arg3) {\n\t case 'function':\n\t // (fd, string, cb)\n\t cb = arg3;\n\t break;\n\t case 'number':\n\t // (fd, string, position, encoding?, cb?)\n\t position = arg3;\n\t encoding = typeof arg4 === 'string' ? arg4 : 'utf8';\n\t cb = typeof arg5 === 'function' ? arg5 : cb;\n\t break;\n\t default:\n\t // ...try to find the callback and get out of here!\n\t cb = typeof arg4 === 'function' ? arg4 : typeof arg5 === 'function' ? arg5 : cb;\n\t return cb(new ApiError(ErrorCode.EINVAL, 'Invalid arguments.'));\n\t }\n\t buffer$$1 = Buffer.from(arg2, encoding);\n\t offset = 0;\n\t length = buffer$$1.length;\n\t }\n\t else {\n\t // Signature 2: (fd, buffer, offset, length, position?, cb?)\n\t buffer$$1 = arg2;\n\t offset = arg3;\n\t length = arg4;\n\t position = typeof arg5 === 'number' ? arg5 : null;\n\t cb = typeof arg5 === 'function' ? arg5 : cb;\n\t }\n\t var newCb = wrapCb(cb, 3);\n\t try {\n\t var file = this.fd2file(fd);\n\t if (position === undefined || position === null) {\n\t position = file.getPos();\n\t }\n\t file.write(buffer$$1, offset, length, position, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\tFS.prototype.writeSync = function writeSync (fd, arg2, arg3, arg4, arg5) {\n\t var buffer$$1, offset = 0, length, position;\n\t if (typeof arg2 === 'string') {\n\t // Signature 1: (fd, string, [position?, [encoding?]])\n\t position = typeof arg3 === 'number' ? arg3 : null;\n\t var encoding = typeof arg4 === 'string' ? arg4 : 'utf8';\n\t offset = 0;\n\t buffer$$1 = Buffer.from(arg2, encoding);\n\t length = buffer$$1.length;\n\t }\n\t else {\n\t // Signature 2: (fd, buffer, offset, length, position?)\n\t buffer$$1 = arg2;\n\t offset = arg3;\n\t length = arg4;\n\t position = typeof arg5 === 'number' ? arg5 : null;\n\t }\n\t var file = this.fd2file(fd);\n\t if (position === undefined || position === null) {\n\t position = file.getPos();\n\t }\n\t return file.writeSync(buffer$$1, offset, length, position);\n\t};\n\tFS.prototype.read = function read (fd, arg2, arg3, arg4, arg5, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var position, offset, length, buffer$$1, newCb;\n\t if (typeof arg2 === 'number') {\n\t // legacy interface\n\t // (fd, length, position, encoding, callback)\n\t length = arg2;\n\t position = arg3;\n\t var encoding = arg4;\n\t cb = typeof arg5 === 'function' ? arg5 : cb;\n\t offset = 0;\n\t buffer$$1 = Buffer.alloc(length);\n\t // XXX: Inefficient.\n\t // Wrap the cb so we shelter upper layers of the API from these\n\t // shenanigans.\n\t newCb = wrapCb(function (err, bytesRead, buf) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t cb(err, buf.toString(encoding), bytesRead);\n\t }, 3);\n\t }\n\t else {\n\t buffer$$1 = arg2;\n\t offset = arg3;\n\t length = arg4;\n\t position = arg5;\n\t newCb = wrapCb(cb, 3);\n\t }\n\t try {\n\t var file = this.fd2file(fd);\n\t if (position === undefined || position === null) {\n\t position = file.getPos();\n\t }\n\t file.read(buffer$$1, offset, length, position, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\tFS.prototype.readSync = function readSync (fd, arg2, arg3, arg4, arg5) {\n\t var shenanigans = false;\n\t var buffer$$1, offset, length, position, encoding = 'utf8';\n\t if (typeof arg2 === 'number') {\n\t length = arg2;\n\t position = arg3;\n\t encoding = arg4;\n\t offset = 0;\n\t buffer$$1 = Buffer.alloc(length);\n\t shenanigans = true;\n\t }\n\t else {\n\t buffer$$1 = arg2;\n\t offset = arg3;\n\t length = arg4;\n\t position = arg5;\n\t }\n\t var file = this.fd2file(fd);\n\t if (position === undefined || position === null) {\n\t position = file.getPos();\n\t }\n\t var rv = file.readSync(buffer$$1, offset, length, position);\n\t if (!shenanigans) {\n\t return rv;\n\t }\n\t else {\n\t return [buffer$$1.toString(encoding), rv];\n\t }\n\t};\n\t/**\n\t * Asynchronous `fchown`.\n\t * @param fd\n\t * @param uid\n\t * @param gid\n\t * @param callback\n\t */\n\tFS.prototype.fchown = function fchown (fd, uid, gid, callback) {\n\t if ( callback === void 0 ) callback = nopCb;\n\t\n\t var newCb = wrapCb(callback, 1);\n\t try {\n\t this.fd2file(fd).chown(uid, gid, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `fchown`.\n\t * @param fd\n\t * @param uid\n\t * @param gid\n\t */\n\tFS.prototype.fchownSync = function fchownSync (fd, uid, gid) {\n\t this.fd2file(fd).chownSync(uid, gid);\n\t};\n\t/**\n\t * Asynchronous `fchmod`.\n\t * @param fd\n\t * @param mode\n\t * @param callback\n\t */\n\tFS.prototype.fchmod = function fchmod (fd, mode, cb) {\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t var numMode = typeof mode === 'string' ? parseInt(mode, 8) : mode;\n\t this.fd2file(fd).chmod(numMode, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `fchmod`.\n\t * @param fd\n\t * @param mode\n\t */\n\tFS.prototype.fchmodSync = function fchmodSync (fd, mode) {\n\t var numMode = typeof mode === 'string' ? parseInt(mode, 8) : mode;\n\t this.fd2file(fd).chmodSync(numMode);\n\t};\n\t/**\n\t * Change the file timestamps of a file referenced by the supplied file\n\t * descriptor.\n\t * @param fd\n\t * @param atime\n\t * @param mtime\n\t * @param callback\n\t */\n\tFS.prototype.futimes = function futimes (fd, atime, mtime, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t var file = this.fd2file(fd);\n\t if (typeof atime === 'number') {\n\t atime = new Date(atime * 1000);\n\t }\n\t if (typeof mtime === 'number') {\n\t mtime = new Date(mtime * 1000);\n\t }\n\t file.utimes(atime, mtime, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Change the file timestamps of a file referenced by the supplied file\n\t * descriptor.\n\t * @param fd\n\t * @param atime\n\t * @param mtime\n\t */\n\tFS.prototype.futimesSync = function futimesSync (fd, atime, mtime) {\n\t this.fd2file(fd).utimesSync(normalizeTime(atime), normalizeTime(mtime));\n\t};\n\t// DIRECTORY-ONLY METHODS\n\t/**\n\t * Asynchronous `rmdir`.\n\t * @param path\n\t * @param callback\n\t */\n\tFS.prototype.rmdir = function rmdir (path$$1, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t path$$1 = normalizePath(path$$1);\n\t assertRoot(this.root).rmdir(path$$1, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `rmdir`.\n\t * @param path\n\t */\n\tFS.prototype.rmdirSync = function rmdirSync (path$$1) {\n\t path$$1 = normalizePath(path$$1);\n\t return assertRoot(this.root).rmdirSync(path$$1);\n\t};\n\t/**\n\t * Asynchronous `mkdir`.\n\t * @param path\n\t * @param mode defaults to `0777`\n\t * @param callback\n\t */\n\tFS.prototype.mkdir = function mkdir (path$$1, mode, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t if (typeof mode === 'function') {\n\t cb = mode;\n\t mode = 0x1ff;\n\t }\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t path$$1 = normalizePath(path$$1);\n\t assertRoot(this.root).mkdir(path$$1, mode, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `mkdir`.\n\t * @param path\n\t * @param mode defaults to `0777`\n\t */\n\tFS.prototype.mkdirSync = function mkdirSync (path$$1, mode) {\n\t assertRoot(this.root).mkdirSync(normalizePath(path$$1), normalizeMode(mode, 0x1ff));\n\t};\n\t/**\n\t * Asynchronous `readdir`. Reads the contents of a directory.\n\t * The callback gets two arguments `(err, files)` where `files` is an array of\n\t * the names of the files in the directory excluding `'.'` and `'..'`.\n\t * @param path\n\t * @param callback\n\t */\n\tFS.prototype.readdir = function readdir (path$$1, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 2);\n\t try {\n\t path$$1 = normalizePath(path$$1);\n\t assertRoot(this.root).readdir(path$$1, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `readdir`. Reads the contents of a directory.\n\t * @param path\n\t * @return [String[]]\n\t */\n\tFS.prototype.readdirSync = function readdirSync (path$$1) {\n\t path$$1 = normalizePath(path$$1);\n\t return assertRoot(this.root).readdirSync(path$$1);\n\t};\n\t// SYMLINK METHODS\n\t/**\n\t * Asynchronous `link`.\n\t * @param srcpath\n\t * @param dstpath\n\t * @param callback\n\t */\n\tFS.prototype.link = function link (srcpath, dstpath, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t srcpath = normalizePath(srcpath);\n\t dstpath = normalizePath(dstpath);\n\t assertRoot(this.root).link(srcpath, dstpath, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `link`.\n\t * @param srcpath\n\t * @param dstpath\n\t */\n\tFS.prototype.linkSync = function linkSync (srcpath, dstpath) {\n\t srcpath = normalizePath(srcpath);\n\t dstpath = normalizePath(dstpath);\n\t return assertRoot(this.root).linkSync(srcpath, dstpath);\n\t};\n\tFS.prototype.symlink = function symlink (srcpath, dstpath, arg3, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var type = typeof arg3 === 'string' ? arg3 : 'file';\n\t cb = typeof arg3 === 'function' ? arg3 : cb;\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t if (type !== 'file' && type !== 'dir') {\n\t return newCb(new ApiError(ErrorCode.EINVAL, \"Invalid type: \" + type));\n\t }\n\t srcpath = normalizePath(srcpath);\n\t dstpath = normalizePath(dstpath);\n\t assertRoot(this.root).symlink(srcpath, dstpath, type, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `symlink`.\n\t * @param srcpath\n\t * @param dstpath\n\t * @param type can be either `'dir'` or `'file'` (default is `'file'`)\n\t */\n\tFS.prototype.symlinkSync = function symlinkSync (srcpath, dstpath, type) {\n\t if (!type) {\n\t type = 'file';\n\t }\n\t else if (type !== 'file' && type !== 'dir') {\n\t throw new ApiError(ErrorCode.EINVAL, \"Invalid type: \" + type);\n\t }\n\t srcpath = normalizePath(srcpath);\n\t dstpath = normalizePath(dstpath);\n\t return assertRoot(this.root).symlinkSync(srcpath, dstpath, type);\n\t};\n\t/**\n\t * Asynchronous readlink.\n\t * @param path\n\t * @param callback\n\t */\n\tFS.prototype.readlink = function readlink (path$$1, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 2);\n\t try {\n\t path$$1 = normalizePath(path$$1);\n\t assertRoot(this.root).readlink(path$$1, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous readlink.\n\t * @param path\n\t * @return [String]\n\t */\n\tFS.prototype.readlinkSync = function readlinkSync (path$$1) {\n\t path$$1 = normalizePath(path$$1);\n\t return assertRoot(this.root).readlinkSync(path$$1);\n\t};\n\t// PROPERTY OPERATIONS\n\t/**\n\t * Asynchronous `chown`.\n\t * @param path\n\t * @param uid\n\t * @param gid\n\t * @param callback\n\t */\n\tFS.prototype.chown = function chown (path$$1, uid, gid, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t path$$1 = normalizePath(path$$1);\n\t assertRoot(this.root).chown(path$$1, false, uid, gid, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `chown`.\n\t * @param path\n\t * @param uid\n\t * @param gid\n\t */\n\tFS.prototype.chownSync = function chownSync (path$$1, uid, gid) {\n\t path$$1 = normalizePath(path$$1);\n\t assertRoot(this.root).chownSync(path$$1, false, uid, gid);\n\t};\n\t/**\n\t * Asynchronous `lchown`.\n\t * @param path\n\t * @param uid\n\t * @param gid\n\t * @param callback\n\t */\n\tFS.prototype.lchown = function lchown (path$$1, uid, gid, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t path$$1 = normalizePath(path$$1);\n\t assertRoot(this.root).chown(path$$1, true, uid, gid, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `lchown`.\n\t * @param path\n\t * @param uid\n\t * @param gid\n\t */\n\tFS.prototype.lchownSync = function lchownSync (path$$1, uid, gid) {\n\t path$$1 = normalizePath(path$$1);\n\t assertRoot(this.root).chownSync(path$$1, true, uid, gid);\n\t};\n\t/**\n\t * Asynchronous `chmod`.\n\t * @param path\n\t * @param mode\n\t * @param callback\n\t */\n\tFS.prototype.chmod = function chmod (path$$1, mode, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t var numMode = normalizeMode(mode, -1);\n\t if (numMode < 0) {\n\t throw new ApiError(ErrorCode.EINVAL, \"Invalid mode.\");\n\t }\n\t assertRoot(this.root).chmod(normalizePath(path$$1), false, numMode, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `chmod`.\n\t * @param path\n\t * @param mode\n\t */\n\tFS.prototype.chmodSync = function chmodSync (path$$1, mode) {\n\t var numMode = normalizeMode(mode, -1);\n\t if (numMode < 0) {\n\t throw new ApiError(ErrorCode.EINVAL, \"Invalid mode.\");\n\t }\n\t path$$1 = normalizePath(path$$1);\n\t assertRoot(this.root).chmodSync(path$$1, false, numMode);\n\t};\n\t/**\n\t * Asynchronous `lchmod`.\n\t * @param path\n\t * @param mode\n\t * @param callback\n\t */\n\tFS.prototype.lchmod = function lchmod (path$$1, mode, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t var numMode = normalizeMode(mode, -1);\n\t if (numMode < 0) {\n\t throw new ApiError(ErrorCode.EINVAL, \"Invalid mode.\");\n\t }\n\t assertRoot(this.root).chmod(normalizePath(path$$1), true, numMode, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `lchmod`.\n\t * @param path\n\t * @param mode\n\t */\n\tFS.prototype.lchmodSync = function lchmodSync (path$$1, mode) {\n\t var numMode = normalizeMode(mode, -1);\n\t if (numMode < 1) {\n\t throw new ApiError(ErrorCode.EINVAL, \"Invalid mode.\");\n\t }\n\t assertRoot(this.root).chmodSync(normalizePath(path$$1), true, numMode);\n\t};\n\t/**\n\t * Change file timestamps of the file referenced by the supplied path.\n\t * @param path\n\t * @param atime\n\t * @param mtime\n\t * @param callback\n\t */\n\tFS.prototype.utimes = function utimes (path$$1, atime, mtime, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var newCb = wrapCb(cb, 1);\n\t try {\n\t assertRoot(this.root).utimes(normalizePath(path$$1), normalizeTime(atime), normalizeTime(mtime), newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Change file timestamps of the file referenced by the supplied path.\n\t * @param path\n\t * @param atime\n\t * @param mtime\n\t */\n\tFS.prototype.utimesSync = function utimesSync (path$$1, atime, mtime) {\n\t assertRoot(this.root).utimesSync(normalizePath(path$$1), normalizeTime(atime), normalizeTime(mtime));\n\t};\n\tFS.prototype.realpath = function realpath (path$$1, arg2, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t var cache = typeof (arg2) === 'object' ? arg2 : {};\n\t cb = typeof (arg2) === 'function' ? arg2 : nopCb;\n\t var newCb = wrapCb(cb, 2);\n\t try {\n\t path$$1 = normalizePath(path$$1);\n\t assertRoot(this.root).realpath(path$$1, cache, newCb);\n\t }\n\t catch (e) {\n\t newCb(e);\n\t }\n\t};\n\t/**\n\t * Synchronous `realpath`.\n\t * @param path\n\t * @param cache An object literal of mapped paths that can be used to\n\t * force a specific path resolution or avoid additional `fs.stat` calls for\n\t * known real paths.\n\t * @return [String]\n\t */\n\tFS.prototype.realpathSync = function realpathSync (path$$1, cache) {\n\t if ( cache === void 0 ) cache = {};\n\t\n\t path$$1 = normalizePath(path$$1);\n\t return assertRoot(this.root).realpathSync(path$$1, cache);\n\t};\n\tFS.prototype.watchFile = function watchFile (filename, arg2, listener) {\n\t if ( listener === void 0 ) listener = nopCb;\n\t\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tFS.prototype.unwatchFile = function unwatchFile (filename, listener) {\n\t if ( listener === void 0 ) listener = nopCb;\n\t\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tFS.prototype.watch = function watch (filename, arg2, listener) {\n\t if ( listener === void 0 ) listener = nopCb;\n\t\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tFS.prototype.access = function access (path$$1, arg2, cb) {\n\t if ( cb === void 0 ) cb = nopCb;\n\t\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tFS.prototype.accessSync = function accessSync (path$$1, mode) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tFS.prototype.createReadStream = function createReadStream (path$$1, options) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tFS.prototype.createWriteStream = function createWriteStream (path$$1, options) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\t/**\n\t * For unit testing. Passes all incoming callbacks to cbWrapper for wrapping.\n\t */\n\tFS.prototype.wrapCallbacks = function wrapCallbacks (cbWrapper) {\n\t wrapCb = cbWrapper;\n\t};\n\tFS.prototype.getFdForFile = function getFdForFile (file) {\n\t var fd = this.nextFd++;\n\t this.fdMap[fd] = file;\n\t return fd;\n\t};\n\tFS.prototype.fd2file = function fd2file (fd) {\n\t var rv = this.fdMap[fd];\n\t if (rv) {\n\t return rv;\n\t }\n\t else {\n\t throw new ApiError(ErrorCode.EBADF, 'Invalid file descriptor.');\n\t }\n\t};\n\tFS.prototype.closeFd = function closeFd (fd) {\n\t delete this.fdMap[fd];\n\t};\n\t\n\t/* tslint:disable:variable-name */\n\t// Exported fs.Stats.\n\tFS.Stats = Stats;\n\t\n\t// Manually export the individual public functions of fs.\n\t// Required because some code will invoke functions off of the module.\n\t// e.g.:\n\t// let writeFile = fs.writeFile;\n\t// writeFile(...)\n\t/**\n\t * @hidden\n\t */\n\tvar fs = new FS();\n\t/**\n\t * @hidden\n\t */\n\tvar _fsMock = {};\n\t/**\n\t * @hidden\n\t */\n\tvar fsProto = FS.prototype;\n\tObject.keys(fsProto).forEach(function (key) {\n\t if (typeof fs[key] === 'function') {\n\t _fsMock[key] = function () {\n\t return fs[key].apply(fs, arguments);\n\t };\n\t }\n\t else {\n\t _fsMock[key] = fs[key];\n\t }\n\t});\n\t_fsMock['changeFSModule'] = function (newFs) {\n\t fs = newFs;\n\t};\n\t_fsMock['getFSModule'] = function () {\n\t return fs;\n\t};\n\t_fsMock['FS'] = FS;\n\t\n\t/*\n\t * Levenshtein distance, from the `js-levenshtein` NPM module.\n\t * Copied here to avoid complexity of adding another CommonJS module dependency.\n\t */\n\tfunction _min(d0, d1, d2, bx, ay) {\n\t return d0 < d1 || d2 < d1\n\t ? d0 > d2\n\t ? d2 + 1\n\t : d0 + 1\n\t : bx === ay\n\t ? d1\n\t : d1 + 1;\n\t}\n\t/**\n\t * Calculates levenshtein distance.\n\t * @param a\n\t * @param b\n\t */\n\tfunction levenshtein(a, b) {\n\t if (a === b) {\n\t return 0;\n\t }\n\t if (a.length > b.length) {\n\t var tmp = a;\n\t a = b;\n\t b = tmp;\n\t }\n\t var la = a.length;\n\t var lb = b.length;\n\t while (la > 0 && (a.charCodeAt(la - 1) === b.charCodeAt(lb - 1))) {\n\t la--;\n\t lb--;\n\t }\n\t var offset = 0;\n\t while (offset < la && (a.charCodeAt(offset) === b.charCodeAt(offset))) {\n\t offset++;\n\t }\n\t la -= offset;\n\t lb -= offset;\n\t if (la === 0 || lb === 1) {\n\t return lb;\n\t }\n\t var vector = new Array(la << 1);\n\t for (var y = 0; y < la;) {\n\t vector[la + y] = a.charCodeAt(offset + y);\n\t vector[y] = ++y;\n\t }\n\t var x;\n\t var d0;\n\t var d1;\n\t var d2;\n\t var d3;\n\t for (x = 0; (x + 3) < lb;) {\n\t var bx0 = b.charCodeAt(offset + (d0 = x));\n\t var bx1 = b.charCodeAt(offset + (d1 = x + 1));\n\t var bx2 = b.charCodeAt(offset + (d2 = x + 2));\n\t var bx3 = b.charCodeAt(offset + (d3 = x + 3));\n\t var dd$1 = (x += 4);\n\t for (var y$1 = 0; y$1 < la;) {\n\t var ay = vector[la + y$1];\n\t var dy = vector[y$1];\n\t d0 = _min(dy, d0, d1, bx0, ay);\n\t d1 = _min(d0, d1, d2, bx1, ay);\n\t d2 = _min(d1, d2, d3, bx2, ay);\n\t dd$1 = _min(d2, d3, dd$1, bx3, ay);\n\t vector[y$1++] = dd$1;\n\t d3 = d2;\n\t d2 = d1;\n\t d1 = d0;\n\t d0 = dy;\n\t }\n\t }\n\t var dd = 0;\n\t for (; x < lb;) {\n\t var bx0$1 = b.charCodeAt(offset + (d0 = x));\n\t dd = ++x;\n\t for (var y$2 = 0; y$2 < la; y$2++) {\n\t var dy$1 = vector[y$2];\n\t vector[y$2] = dd = dy$1 < d0 || dd < d0\n\t ? dy$1 > dd ? dd + 1 : dy$1 + 1\n\t : bx0$1 === vector[la + y$2]\n\t ? d0\n\t : d0 + 1;\n\t d0 = dy$1;\n\t }\n\t }\n\t return dd;\n\t}\n\t\n\tfunction deprecationMessage(print, fsName, opts) {\n\t if (print) {\n\t console.warn((\"[\" + fsName + \"] Direct file system constructor usage is deprecated for this file system, and will be removed in the next major version. Please use the '\" + fsName + \".Create(\" + (JSON.stringify(opts)) + \", callback)' method instead. See https://github.com/jvilk/BrowserFS/issues/176 for more details.\"));\n\t }\n\t}\n\t/**\n\t * Checks for any IE version, including IE11 which removed MSIE from the\n\t * userAgent string.\n\t * @hidden\n\t */\n\tvar isIE = typeof navigator !== \"undefined\" && !!(/(msie) ([\\w.]+)/.exec(navigator.userAgent.toLowerCase()) || navigator.userAgent.indexOf('Trident') !== -1);\n\t/**\n\t * Check if we're in a web worker.\n\t * @hidden\n\t */\n\tvar isWebWorker = typeof window === \"undefined\";\n\t/**\n\t * Throws an exception. Called on code paths that should be impossible.\n\t * @hidden\n\t */\n\tfunction fail() {\n\t throw new Error(\"BFS has reached an impossible code path; please file a bug.\");\n\t}\n\t/**\n\t * Synchronous recursive makedir.\n\t * @hidden\n\t */\n\tfunction mkdirpSync(p, mode, fs) {\n\t if (!fs.existsSync(p)) {\n\t mkdirpSync(path.dirname(p), mode, fs);\n\t fs.mkdirSync(p, mode);\n\t }\n\t}\n\t/**\n\t * Converts a buffer into an array buffer. Attempts to do so in a\n\t * zero-copy manner, e.g. the array references the same memory.\n\t * @hidden\n\t */\n\tfunction buffer2ArrayBuffer(buff) {\n\t var u8 = buffer2Uint8array(buff), u8offset = u8.byteOffset, u8Len = u8.byteLength;\n\t if (u8offset === 0 && u8Len === u8.buffer.byteLength) {\n\t return u8.buffer;\n\t }\n\t else {\n\t return u8.buffer.slice(u8offset, u8offset + u8Len);\n\t }\n\t}\n\t/**\n\t * Converts a buffer into a Uint8Array. Attempts to do so in a\n\t * zero-copy manner, e.g. the array references the same memory.\n\t * @hidden\n\t */\n\tfunction buffer2Uint8array(buff) {\n\t if (buff instanceof Uint8Array) {\n\t // BFS & Node v4.0 buffers *are* Uint8Arrays.\n\t return buff;\n\t }\n\t else {\n\t // Uint8Arrays can be constructed from arrayish numbers.\n\t // At this point, we assume this isn't a BFS array.\n\t return new Uint8Array(buff);\n\t }\n\t}\n\t/**\n\t * Converts the given arrayish object into a Buffer. Attempts to\n\t * be zero-copy.\n\t * @hidden\n\t */\n\tfunction arrayish2Buffer(arr) {\n\t if (arr instanceof Buffer) {\n\t return arr;\n\t }\n\t else if (arr instanceof Uint8Array) {\n\t return uint8Array2Buffer(arr);\n\t }\n\t else {\n\t return Buffer.from(arr);\n\t }\n\t}\n\t/**\n\t * Converts the given Uint8Array into a Buffer. Attempts to be zero-copy.\n\t * @hidden\n\t */\n\tfunction uint8Array2Buffer(u8) {\n\t if (u8 instanceof Buffer) {\n\t return u8;\n\t }\n\t else if (u8.byteOffset === 0 && u8.byteLength === u8.buffer.byteLength) {\n\t return arrayBuffer2Buffer(u8.buffer);\n\t }\n\t else {\n\t return Buffer.from(u8.buffer, u8.byteOffset, u8.byteLength);\n\t }\n\t}\n\t/**\n\t * Converts the given array buffer into a Buffer. Attempts to be\n\t * zero-copy.\n\t * @hidden\n\t */\n\tfunction arrayBuffer2Buffer(ab) {\n\t return Buffer.from(ab);\n\t}\n\t/**\n\t * Copies a slice of the given buffer\n\t * @hidden\n\t */\n\tfunction copyingSlice(buff, start, end) {\n\t if ( start === void 0 ) start = 0;\n\t if ( end === void 0 ) end = buff.length;\n\t\n\t if (start < 0 || end < 0 || end > buff.length || start > end) {\n\t throw new TypeError((\"Invalid slice bounds on buffer of length \" + (buff.length) + \": [\" + start + \", \" + end + \"]\"));\n\t }\n\t if (buff.length === 0) {\n\t // Avoid s0 corner case in ArrayBuffer case.\n\t return emptyBuffer();\n\t }\n\t else {\n\t var u8 = buffer2Uint8array(buff), s0 = buff[0], newS0 = (s0 + 1) % 0xFF;\n\t buff[0] = newS0;\n\t if (u8[0] === newS0) {\n\t // Same memory. Revert & copy.\n\t u8[0] = s0;\n\t return uint8Array2Buffer(u8.slice(start, end));\n\t }\n\t else {\n\t // Revert.\n\t buff[0] = s0;\n\t return uint8Array2Buffer(u8.subarray(start, end));\n\t }\n\t }\n\t}\n\t/**\n\t * @hidden\n\t */\n\tvar emptyBuff = null;\n\t/**\n\t * Returns an empty buffer.\n\t * @hidden\n\t */\n\tfunction emptyBuffer() {\n\t if (emptyBuff) {\n\t return emptyBuff;\n\t }\n\t return emptyBuff = Buffer.alloc(0);\n\t}\n\t/**\n\t * Option validator for a Buffer file system option.\n\t * @hidden\n\t */\n\tfunction bufferValidator(v, cb) {\n\t if (Buffer.isBuffer(v)) {\n\t cb();\n\t }\n\t else {\n\t cb(new ApiError(ErrorCode.EINVAL, \"option must be a Buffer.\"));\n\t }\n\t}\n\t/**\n\t * Checks that the given options object is valid for the file system options.\n\t * @hidden\n\t */\n\tfunction checkOptions(fsType, opts, cb) {\n\t var optsInfo = fsType.Options;\n\t var fsName = fsType.Name;\n\t var pendingValidators = 0;\n\t var callbackCalled = false;\n\t var loopEnded = false;\n\t function validatorCallback(e) {\n\t if (!callbackCalled) {\n\t if (e) {\n\t callbackCalled = true;\n\t cb(e);\n\t }\n\t pendingValidators--;\n\t if (pendingValidators === 0 && loopEnded) {\n\t cb();\n\t }\n\t }\n\t }\n\t // Check for required options.\n\t var loop = function ( optName ) {\n\t if (optsInfo.hasOwnProperty(optName)) {\n\t var opt = optsInfo[optName];\n\t var providedValue = opts[optName];\n\t if (providedValue === undefined || providedValue === null) {\n\t if (!opt.optional) {\n\t // Required option, not provided.\n\t // Any incorrect options provided? Which ones are close to the provided one?\n\t // (edit distance 5 === close)\n\t var incorrectOptions = Object.keys(opts).filter(function (o) { return !(o in optsInfo); }).map(function (a) {\n\t return { str: a, distance: levenshtein(optName, a) };\n\t }).filter(function (o) { return o.distance < 5; }).sort(function (a, b) { return a.distance - b.distance; });\n\t // Validators may be synchronous.\n\t if (callbackCalled) {\n\t return {};\n\t }\n\t callbackCalled = true;\n\t return { v: cb(new ApiError(ErrorCode.EINVAL, (\"[\" + fsName + \"] Required option '\" + optName + \"' not provided.\" + (incorrectOptions.length > 0 ? (\" You provided unrecognized option '\" + (incorrectOptions[0].str) + \"'; perhaps you meant to type '\" + optName + \"'.\") : '') + \"\\nOption description: \" + (opt.description)))) };\n\t }\n\t // Else: Optional option, not provided. That is OK.\n\t }\n\t else {\n\t // Option provided! Check type.\n\t var typeMatches = false;\n\t if (Array.isArray(opt.type)) {\n\t typeMatches = opt.type.indexOf(typeof (providedValue)) !== -1;\n\t }\n\t else {\n\t typeMatches = typeof (providedValue) === opt.type;\n\t }\n\t if (!typeMatches) {\n\t // Validators may be synchronous.\n\t if (callbackCalled) {\n\t return {};\n\t }\n\t callbackCalled = true;\n\t return { v: cb(new ApiError(ErrorCode.EINVAL, (\"[\" + fsName + \"] Value provided for option \" + optName + \" is not the proper type. Expected \" + (Array.isArray(opt.type) ? (\"one of {\" + (opt.type.join(\", \")) + \"}\") : opt.type) + \", but received \" + (typeof (providedValue)) + \"\\nOption description: \" + (opt.description)))) };\n\t }\n\t else if (opt.validator) {\n\t pendingValidators++;\n\t opt.validator(providedValue, validatorCallback);\n\t }\n\t // Otherwise: All good!\n\t }\n\t }\n\t };\n\t\n\t for (var optName in optsInfo) {\n\t var returned = loop( optName );\n\t\n\t if ( returned ) return returned.v;\n\t }\n\t loopEnded = true;\n\t if (pendingValidators === 0 && !callbackCalled) {\n\t cb();\n\t }\n\t}\n\t\n\t\n\tvar BFSUtils = Object.freeze({\n\t\tdeprecationMessage: deprecationMessage,\n\t\tisIE: isIE,\n\t\tisWebWorker: isWebWorker,\n\t\tfail: fail,\n\t\tmkdirpSync: mkdirpSync,\n\t\tbuffer2ArrayBuffer: buffer2ArrayBuffer,\n\t\tbuffer2Uint8array: buffer2Uint8array,\n\t\tarrayish2Buffer: arrayish2Buffer,\n\t\tuint8Array2Buffer: uint8Array2Buffer,\n\t\tarrayBuffer2Buffer: arrayBuffer2Buffer,\n\t\tcopyingSlice: copyingSlice,\n\t\temptyBuffer: emptyBuffer,\n\t\tbufferValidator: bufferValidator,\n\t\tcheckOptions: checkOptions\n\t});\n\t\n\tvar BFSEmscriptenStreamOps = function BFSEmscriptenStreamOps(fs) {\n\t this.fs = fs;\n\t this.nodefs = fs.getNodeFS();\n\t this.FS = fs.getFS();\n\t this.PATH = fs.getPATH();\n\t this.ERRNO_CODES = fs.getERRNO_CODES();\n\t};\n\tBFSEmscriptenStreamOps.prototype.open = function open (stream) {\n\t var path$$1 = this.fs.realPath(stream.node);\n\t var FS = this.FS;\n\t try {\n\t if (FS.isFile(stream.node.mode)) {\n\t stream.nfd = this.nodefs.openSync(path$$1, this.fs.flagsToPermissionString(stream.flags));\n\t }\n\t }\n\t catch (e) {\n\t if (!e.code) {\n\t throw e;\n\t }\n\t throw new FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t};\n\tBFSEmscriptenStreamOps.prototype.close = function close (stream) {\n\t var FS = this.FS;\n\t try {\n\t if (FS.isFile(stream.node.mode) && stream.nfd) {\n\t this.nodefs.closeSync(stream.nfd);\n\t }\n\t }\n\t catch (e) {\n\t if (!e.code) {\n\t throw e;\n\t }\n\t throw new FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t};\n\tBFSEmscriptenStreamOps.prototype.read = function read (stream, buffer$$1, offset, length, position) {\n\t // Avoid copying overhead by reading directly into buffer.\n\t try {\n\t return this.nodefs.readSync(stream.nfd, uint8Array2Buffer(buffer$$1), offset, length, position);\n\t }\n\t catch (e) {\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t};\n\tBFSEmscriptenStreamOps.prototype.write = function write (stream, buffer$$1, offset, length, position) {\n\t // Avoid copying overhead.\n\t try {\n\t return this.nodefs.writeSync(stream.nfd, uint8Array2Buffer(buffer$$1), offset, length, position);\n\t }\n\t catch (e) {\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t};\n\tBFSEmscriptenStreamOps.prototype.llseek = function llseek (stream, offset, whence) {\n\t var position = offset;\n\t if (whence === 1) {\n\t position += stream.position;\n\t }\n\t else if (whence === 2) {\n\t if (this.FS.isFile(stream.node.mode)) {\n\t try {\n\t var stat = this.nodefs.fstatSync(stream.nfd);\n\t position += stat.size;\n\t }\n\t catch (e) {\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t }\n\t }\n\t if (position < 0) {\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES.EINVAL);\n\t }\n\t stream.position = position;\n\t return position;\n\t};\n\tvar BFSEmscriptenNodeOps = function BFSEmscriptenNodeOps(fs) {\n\t this.fs = fs;\n\t this.nodefs = fs.getNodeFS();\n\t this.FS = fs.getFS();\n\t this.PATH = fs.getPATH();\n\t this.ERRNO_CODES = fs.getERRNO_CODES();\n\t};\n\tBFSEmscriptenNodeOps.prototype.getattr = function getattr (node) {\n\t var path$$1 = this.fs.realPath(node);\n\t var stat;\n\t try {\n\t stat = this.nodefs.lstatSync(path$$1);\n\t }\n\t catch (e) {\n\t if (!e.code) {\n\t throw e;\n\t }\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t return {\n\t dev: stat.dev,\n\t ino: stat.ino,\n\t mode: stat.mode,\n\t nlink: stat.nlink,\n\t uid: stat.uid,\n\t gid: stat.gid,\n\t rdev: stat.rdev,\n\t size: stat.size,\n\t atime: stat.atime,\n\t mtime: stat.mtime,\n\t ctime: stat.ctime,\n\t blksize: stat.blksize,\n\t blocks: stat.blocks\n\t };\n\t};\n\tBFSEmscriptenNodeOps.prototype.setattr = function setattr (node, attr) {\n\t var path$$1 = this.fs.realPath(node);\n\t try {\n\t if (attr.mode !== undefined) {\n\t this.nodefs.chmodSync(path$$1, attr.mode);\n\t // update the common node structure mode as well\n\t node.mode = attr.mode;\n\t }\n\t if (attr.timestamp !== undefined) {\n\t var date = new Date(attr.timestamp);\n\t this.nodefs.utimesSync(path$$1, date, date);\n\t }\n\t }\n\t catch (e) {\n\t if (!e.code) {\n\t throw e;\n\t }\n\t // Ignore not supported errors. Emscripten does utimesSync when it\n\t // writes files, but never really requires the value to be set.\n\t if (e.code !== \"ENOTSUP\") {\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t }\n\t if (attr.size !== undefined) {\n\t try {\n\t this.nodefs.truncateSync(path$$1, attr.size);\n\t }\n\t catch (e) {\n\t if (!e.code) {\n\t throw e;\n\t }\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t }\n\t};\n\tBFSEmscriptenNodeOps.prototype.lookup = function lookup (parent, name) {\n\t var path$$1 = this.PATH.join2(this.fs.realPath(parent), name);\n\t var mode = this.fs.getMode(path$$1);\n\t return this.fs.createNode(parent, name, mode);\n\t};\n\tBFSEmscriptenNodeOps.prototype.mknod = function mknod (parent, name, mode, dev) {\n\t var node = this.fs.createNode(parent, name, mode, dev);\n\t // create the backing node for this in the fs root as well\n\t var path$$1 = this.fs.realPath(node);\n\t try {\n\t if (this.FS.isDir(node.mode)) {\n\t this.nodefs.mkdirSync(path$$1, node.mode);\n\t }\n\t else {\n\t this.nodefs.writeFileSync(path$$1, '', { mode: node.mode });\n\t }\n\t }\n\t catch (e) {\n\t if (!e.code) {\n\t throw e;\n\t }\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t return node;\n\t};\n\tBFSEmscriptenNodeOps.prototype.rename = function rename (oldNode, newDir, newName) {\n\t var oldPath = this.fs.realPath(oldNode);\n\t var newPath = this.PATH.join2(this.fs.realPath(newDir), newName);\n\t try {\n\t this.nodefs.renameSync(oldPath, newPath);\n\t // This logic is missing from the original NodeFS,\n\t // causing Emscripten's filesystem to think that the old file still exists.\n\t oldNode.name = newName;\n\t oldNode.parent = newDir;\n\t }\n\t catch (e) {\n\t if (!e.code) {\n\t throw e;\n\t }\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t};\n\tBFSEmscriptenNodeOps.prototype.unlink = function unlink (parent, name) {\n\t var path$$1 = this.PATH.join2(this.fs.realPath(parent), name);\n\t try {\n\t this.nodefs.unlinkSync(path$$1);\n\t }\n\t catch (e) {\n\t if (!e.code) {\n\t throw e;\n\t }\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t};\n\tBFSEmscriptenNodeOps.prototype.rmdir = function rmdir (parent, name) {\n\t var path$$1 = this.PATH.join2(this.fs.realPath(parent), name);\n\t try {\n\t this.nodefs.rmdirSync(path$$1);\n\t }\n\t catch (e) {\n\t if (!e.code) {\n\t throw e;\n\t }\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t};\n\tBFSEmscriptenNodeOps.prototype.readdir = function readdir (node) {\n\t var path$$1 = this.fs.realPath(node);\n\t try {\n\t // Node does not list . and .. in directory listings,\n\t // but Emscripten expects it.\n\t var contents = this.nodefs.readdirSync(path$$1);\n\t contents.push('.', '..');\n\t return contents;\n\t }\n\t catch (e) {\n\t if (!e.code) {\n\t throw e;\n\t }\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t};\n\tBFSEmscriptenNodeOps.prototype.symlink = function symlink (parent, newName, oldPath) {\n\t var newPath = this.PATH.join2(this.fs.realPath(parent), newName);\n\t try {\n\t this.nodefs.symlinkSync(oldPath, newPath);\n\t }\n\t catch (e) {\n\t if (!e.code) {\n\t throw e;\n\t }\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t};\n\tBFSEmscriptenNodeOps.prototype.readlink = function readlink (node) {\n\t var path$$1 = this.fs.realPath(node);\n\t try {\n\t return this.nodefs.readlinkSync(path$$1);\n\t }\n\t catch (e) {\n\t if (!e.code) {\n\t throw e;\n\t }\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t};\n\tvar BFSEmscriptenFS = function BFSEmscriptenFS(_FS, _PATH, _ERRNO_CODES, nodefs) {\n\t if ( _FS === void 0 ) _FS = self['FS'];\n\t if ( _PATH === void 0 ) _PATH = self['PATH'];\n\t if ( _ERRNO_CODES === void 0 ) _ERRNO_CODES = self['ERRNO_CODES'];\n\t if ( nodefs === void 0 ) nodefs = _fsMock;\n\t\n\t // This maps the integer permission modes from http://linux.die.net/man/3/open\n\t // to node.js-specific file open permission strings at http://nodejs.org/api/fs.html#fs_fs_open_path_flags_mode_callback\n\t this.flagsToPermissionStringMap = {\n\t 0 /*O_RDONLY*/: 'r',\n\t 1 /*O_WRONLY*/: 'r+',\n\t 2 /*O_RDWR*/: 'r+',\n\t 64 /*O_CREAT*/: 'r',\n\t 65 /*O_WRONLY|O_CREAT*/: 'r+',\n\t 66 /*O_RDWR|O_CREAT*/: 'r+',\n\t 129 /*O_WRONLY|O_EXCL*/: 'rx+',\n\t 193 /*O_WRONLY|O_CREAT|O_EXCL*/: 'rx+',\n\t 514 /*O_RDWR|O_TRUNC*/: 'w+',\n\t 577 /*O_WRONLY|O_CREAT|O_TRUNC*/: 'w',\n\t 578 /*O_CREAT|O_RDWR|O_TRUNC*/: 'w+',\n\t 705 /*O_WRONLY|O_CREAT|O_EXCL|O_TRUNC*/: 'wx',\n\t 706 /*O_RDWR|O_CREAT|O_EXCL|O_TRUNC*/: 'wx+',\n\t 1024 /*O_APPEND*/: 'a',\n\t 1025 /*O_WRONLY|O_APPEND*/: 'a',\n\t 1026 /*O_RDWR|O_APPEND*/: 'a+',\n\t 1089 /*O_WRONLY|O_CREAT|O_APPEND*/: 'a',\n\t 1090 /*O_RDWR|O_CREAT|O_APPEND*/: 'a+',\n\t 1153 /*O_WRONLY|O_EXCL|O_APPEND*/: 'ax',\n\t 1154 /*O_RDWR|O_EXCL|O_APPEND*/: 'ax+',\n\t 1217 /*O_WRONLY|O_CREAT|O_EXCL|O_APPEND*/: 'ax',\n\t 1218 /*O_RDWR|O_CREAT|O_EXCL|O_APPEND*/: 'ax+',\n\t 4096 /*O_RDONLY|O_DSYNC*/: 'rs',\n\t 4098 /*O_RDWR|O_DSYNC*/: 'rs+'\n\t };\n\t this.nodefs = nodefs;\n\t this.FS = _FS;\n\t this.PATH = _PATH;\n\t this.ERRNO_CODES = _ERRNO_CODES;\n\t this.node_ops = new BFSEmscriptenNodeOps(this);\n\t this.stream_ops = new BFSEmscriptenStreamOps(this);\n\t};\n\tBFSEmscriptenFS.prototype.mount = function mount (m) {\n\t return this.createNode(null, '/', this.getMode(m.opts.root), 0);\n\t};\n\tBFSEmscriptenFS.prototype.createNode = function createNode (parent, name, mode, dev) {\n\t var FS = this.FS;\n\t if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) {\n\t throw new FS.ErrnoError(this.ERRNO_CODES.EINVAL);\n\t }\n\t var node = FS.createNode(parent, name, mode);\n\t node.node_ops = this.node_ops;\n\t node.stream_ops = this.stream_ops;\n\t return node;\n\t};\n\tBFSEmscriptenFS.prototype.getMode = function getMode (path$$1) {\n\t var stat;\n\t try {\n\t stat = this.nodefs.lstatSync(path$$1);\n\t }\n\t catch (e) {\n\t if (!e.code) {\n\t throw e;\n\t }\n\t throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]);\n\t }\n\t return stat.mode;\n\t};\n\tBFSEmscriptenFS.prototype.realPath = function realPath (node) {\n\t var parts = [];\n\t while (node.parent !== node) {\n\t parts.push(node.name);\n\t node = node.parent;\n\t }\n\t parts.push(node.mount.opts.root);\n\t parts.reverse();\n\t return this.PATH.join.apply(null, parts);\n\t};\n\tBFSEmscriptenFS.prototype.flagsToPermissionString = function flagsToPermissionString (flags) {\n\t var parsedFlags = (typeof flags === \"string\") ? parseInt(flags, 10) : flags;\n\t parsedFlags &= 0x1FFF;\n\t if (parsedFlags in this.flagsToPermissionStringMap) {\n\t return this.flagsToPermissionStringMap[parsedFlags];\n\t }\n\t else {\n\t return flags;\n\t }\n\t};\n\tBFSEmscriptenFS.prototype.getNodeFS = function getNodeFS () {\n\t return this.nodefs;\n\t};\n\tBFSEmscriptenFS.prototype.getFS = function getFS () {\n\t return this.FS;\n\t};\n\tBFSEmscriptenFS.prototype.getPATH = function getPATH () {\n\t return this.PATH;\n\t};\n\tBFSEmscriptenFS.prototype.getERRNO_CODES = function getERRNO_CODES () {\n\t return this.ERRNO_CODES;\n\t};\n\t\n\t/**\n\t * Basic filesystem class. Most filesystems should extend this class, as it\n\t * provides default implementations for a handful of methods.\n\t */\n\tvar BaseFileSystem = function BaseFileSystem () {};\n\t\n\tBaseFileSystem.prototype.supportsLinks = function supportsLinks () {\n\t return false;\n\t};\n\tBaseFileSystem.prototype.diskSpace = function diskSpace (p, cb) {\n\t cb(0, 0);\n\t};\n\t/**\n\t * Opens the file at path p with the given flag. The file must exist.\n\t * @param p The path to open.\n\t * @param flag The flag to use when opening the file.\n\t */\n\tBaseFileSystem.prototype.openFile = function openFile (p, flag, cb) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\t/**\n\t * Create the file at path p with the given mode. Then, open it with the given\n\t * flag.\n\t */\n\tBaseFileSystem.prototype.createFile = function createFile (p, flag, mode, cb) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFileSystem.prototype.open = function open (p, flag, mode, cb) {\n\t var this$1 = this;\n\t\n\t var mustBeFile = function (e, stats) {\n\t if (e) {\n\t // File does not exist.\n\t switch (flag.pathNotExistsAction()) {\n\t case ActionType.CREATE_FILE:\n\t // Ensure parent exists.\n\t return this$1.stat(path.dirname(p), false, function (e, parentStats) {\n\t if (e) {\n\t cb(e);\n\t }\n\t else if (parentStats && !parentStats.isDirectory()) {\n\t cb(ApiError.ENOTDIR(path.dirname(p)));\n\t }\n\t else {\n\t this$1.createFile(p, flag, mode, cb);\n\t }\n\t });\n\t case ActionType.THROW_EXCEPTION:\n\t return cb(ApiError.ENOENT(p));\n\t default:\n\t return cb(new ApiError(ErrorCode.EINVAL, 'Invalid FileFlag object.'));\n\t }\n\t }\n\t else {\n\t // File exists.\n\t if (stats && stats.isDirectory()) {\n\t return cb(ApiError.EISDIR(p));\n\t }\n\t switch (flag.pathExistsAction()) {\n\t case ActionType.THROW_EXCEPTION:\n\t return cb(ApiError.EEXIST(p));\n\t case ActionType.TRUNCATE_FILE:\n\t // NOTE: In a previous implementation, we deleted the file and\n\t // re-created it. However, this created a race condition if another\n\t // asynchronous request was trying to read the file, as the file\n\t // would not exist for a small period of time.\n\t return this$1.openFile(p, flag, function (e, fd) {\n\t if (e) {\n\t cb(e);\n\t }\n\t else if (fd) {\n\t fd.truncate(0, function () {\n\t fd.sync(function () {\n\t cb(null, fd);\n\t });\n\t });\n\t }\n\t else {\n\t fail();\n\t }\n\t });\n\t case ActionType.NOP:\n\t return this$1.openFile(p, flag, cb);\n\t default:\n\t return cb(new ApiError(ErrorCode.EINVAL, 'Invalid FileFlag object.'));\n\t }\n\t }\n\t };\n\t this.stat(p, false, mustBeFile);\n\t};\n\tBaseFileSystem.prototype.rename = function rename (oldPath, newPath, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFileSystem.prototype.renameSync = function renameSync (oldPath, newPath) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFileSystem.prototype.stat = function stat (p, isLstat, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFileSystem.prototype.statSync = function statSync (p, isLstat) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\t/**\n\t * Opens the file at path p with the given flag. The file must exist.\n\t * @param p The path to open.\n\t * @param flag The flag to use when opening the file.\n\t * @return A File object corresponding to the opened file.\n\t */\n\tBaseFileSystem.prototype.openFileSync = function openFileSync (p, flag, mode) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\t/**\n\t * Create the file at path p with the given mode. Then, open it with the given\n\t * flag.\n\t */\n\tBaseFileSystem.prototype.createFileSync = function createFileSync (p, flag, mode) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFileSystem.prototype.openSync = function openSync (p, flag, mode) {\n\t // Check if the path exists, and is a file.\n\t var stats;\n\t try {\n\t stats = this.statSync(p, false);\n\t }\n\t catch (e) {\n\t // File does not exist.\n\t switch (flag.pathNotExistsAction()) {\n\t case ActionType.CREATE_FILE:\n\t // Ensure parent exists.\n\t var parentStats = this.statSync(path.dirname(p), false);\n\t if (!parentStats.isDirectory()) {\n\t throw ApiError.ENOTDIR(path.dirname(p));\n\t }\n\t return this.createFileSync(p, flag, mode);\n\t case ActionType.THROW_EXCEPTION:\n\t throw ApiError.ENOENT(p);\n\t default:\n\t throw new ApiError(ErrorCode.EINVAL, 'Invalid FileFlag object.');\n\t }\n\t }\n\t // File exists.\n\t if (stats.isDirectory()) {\n\t throw ApiError.EISDIR(p);\n\t }\n\t switch (flag.pathExistsAction()) {\n\t case ActionType.THROW_EXCEPTION:\n\t throw ApiError.EEXIST(p);\n\t case ActionType.TRUNCATE_FILE:\n\t // Delete file.\n\t this.unlinkSync(p);\n\t // Create file. Use the same mode as the old file.\n\t // Node itself modifies the ctime when this occurs, so this action\n\t // will preserve that behavior if the underlying file system\n\t // supports those properties.\n\t return this.createFileSync(p, flag, stats.mode);\n\t case ActionType.NOP:\n\t return this.openFileSync(p, flag, mode);\n\t default:\n\t throw new ApiError(ErrorCode.EINVAL, 'Invalid FileFlag object.');\n\t }\n\t};\n\tBaseFileSystem.prototype.unlink = function unlink (p, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFileSystem.prototype.unlinkSync = function unlinkSync (p) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFileSystem.prototype.rmdir = function rmdir (p, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFileSystem.prototype.rmdirSync = function rmdirSync (p) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFileSystem.prototype.mkdir = function mkdir (p, mode, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFileSystem.prototype.mkdirSync = function mkdirSync (p, mode) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFileSystem.prototype.readdir = function readdir (p, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFileSystem.prototype.readdirSync = function readdirSync (p) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFileSystem.prototype.exists = function exists (p, cb) {\n\t this.stat(p, null, function (err) {\n\t cb(!err);\n\t });\n\t};\n\tBaseFileSystem.prototype.existsSync = function existsSync (p) {\n\t try {\n\t this.statSync(p, true);\n\t return true;\n\t }\n\t catch (e) {\n\t return false;\n\t }\n\t};\n\tBaseFileSystem.prototype.realpath = function realpath (p, cache, cb) {\n\t if (this.supportsLinks()) {\n\t // The path could contain symlinks. Split up the path,\n\t // resolve any symlinks, return the resolved string.\n\t var splitPath = p.split(path.sep);\n\t // TODO: Simpler to just pass through file, find sep and such.\n\t for (var i = 0; i < splitPath.length; i++) {\n\t var addPaths = splitPath.slice(0, i + 1);\n\t splitPath[i] = path.join.apply(null, addPaths);\n\t }\n\t }\n\t else {\n\t // No symlinks. We just need to verify that it exists.\n\t this.exists(p, function (doesExist) {\n\t if (doesExist) {\n\t cb(null, p);\n\t }\n\t else {\n\t cb(ApiError.ENOENT(p));\n\t }\n\t });\n\t }\n\t};\n\tBaseFileSystem.prototype.realpathSync = function realpathSync (p, cache) {\n\t if (this.supportsLinks()) {\n\t // The path could contain symlinks. Split up the path,\n\t // resolve any symlinks, return the resolved string.\n\t var splitPath = p.split(path.sep);\n\t // TODO: Simpler to just pass through file, find sep and such.\n\t for (var i = 0; i < splitPath.length; i++) {\n\t var addPaths = splitPath.slice(0, i + 1);\n\t splitPath[i] = path.join.apply(path, addPaths);\n\t }\n\t return splitPath.join(path.sep);\n\t }\n\t else {\n\t // No symlinks. We just need to verify that it exists.\n\t if (this.existsSync(p)) {\n\t return p;\n\t }\n\t else {\n\t throw ApiError.ENOENT(p);\n\t }\n\t }\n\t};\n\tBaseFileSystem.prototype.truncate = function truncate (p, len, cb) {\n\t this.open(p, FileFlag.getFileFlag('r+'), 0x1a4, (function (er, fd) {\n\t if (er) {\n\t return cb(er);\n\t }\n\t fd.truncate(len, (function (er) {\n\t fd.close((function (er2) {\n\t cb(er || er2);\n\t }));\n\t }));\n\t }));\n\t};\n\tBaseFileSystem.prototype.truncateSync = function truncateSync (p, len) {\n\t var fd = this.openSync(p, FileFlag.getFileFlag('r+'), 0x1a4);\n\t // Need to safely close FD, regardless of whether or not truncate succeeds.\n\t try {\n\t fd.truncateSync(len);\n\t }\n\t catch (e) {\n\t throw e;\n\t }\n\t finally {\n\t fd.closeSync();\n\t }\n\t};\n\tBaseFileSystem.prototype.readFile = function readFile (fname, encoding, flag, cb) {\n\t // Wrap cb in file closing code.\n\t var oldCb = cb;\n\t // Get file.\n\t this.open(fname, flag, 0x1a4, function (err, fd) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t cb = function (err, arg) {\n\t fd.close(function (err2) {\n\t if (!err) {\n\t err = err2;\n\t }\n\t return oldCb(err, arg);\n\t });\n\t };\n\t fd.stat(function (err, stat) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t // Allocate buffer.\n\t var buf = Buffer.alloc(stat.size);\n\t fd.read(buf, 0, stat.size, 0, function (err) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t else if (encoding === null) {\n\t return cb(err, buf);\n\t }\n\t try {\n\t cb(null, buf.toString(encoding));\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t });\n\t });\n\t });\n\t};\n\tBaseFileSystem.prototype.readFileSync = function readFileSync (fname, encoding, flag) {\n\t // Get file.\n\t var fd = this.openSync(fname, flag, 0x1a4);\n\t try {\n\t var stat = fd.statSync();\n\t // Allocate buffer.\n\t var buf = Buffer.alloc(stat.size);\n\t fd.readSync(buf, 0, stat.size, 0);\n\t fd.closeSync();\n\t if (encoding === null) {\n\t return buf;\n\t }\n\t return buf.toString(encoding);\n\t }\n\t finally {\n\t fd.closeSync();\n\t }\n\t};\n\tBaseFileSystem.prototype.writeFile = function writeFile (fname, data, encoding, flag, mode, cb) {\n\t // Wrap cb in file closing code.\n\t var oldCb = cb;\n\t // Get file.\n\t this.open(fname, flag, 0x1a4, function (err, fd) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t cb = function (err) {\n\t fd.close(function (err2) {\n\t oldCb(err ? err : err2);\n\t });\n\t };\n\t try {\n\t if (typeof data === 'string') {\n\t data = Buffer.from(data, encoding);\n\t }\n\t }\n\t catch (e) {\n\t return cb(e);\n\t }\n\t // Write into file.\n\t fd.write(data, 0, data.length, 0, cb);\n\t });\n\t};\n\tBaseFileSystem.prototype.writeFileSync = function writeFileSync (fname, data, encoding, flag, mode) {\n\t // Get file.\n\t var fd = this.openSync(fname, flag, mode);\n\t try {\n\t if (typeof data === 'string') {\n\t data = Buffer.from(data, encoding);\n\t }\n\t // Write into file.\n\t fd.writeSync(data, 0, data.length, 0);\n\t }\n\t finally {\n\t fd.closeSync();\n\t }\n\t};\n\tBaseFileSystem.prototype.appendFile = function appendFile (fname, data, encoding, flag, mode, cb) {\n\t // Wrap cb in file closing code.\n\t var oldCb = cb;\n\t this.open(fname, flag, mode, function (err, fd) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t cb = function (err) {\n\t fd.close(function (err2) {\n\t oldCb(err ? err : err2);\n\t });\n\t };\n\t if (typeof data === 'string') {\n\t data = Buffer.from(data, encoding);\n\t }\n\t fd.write(data, 0, data.length, null, cb);\n\t });\n\t};\n\tBaseFileSystem.prototype.appendFileSync = function appendFileSync (fname, data, encoding, flag, mode) {\n\t var fd = this.openSync(fname, flag, mode);\n\t try {\n\t if (typeof data === 'string') {\n\t data = Buffer.from(data, encoding);\n\t }\n\t fd.writeSync(data, 0, data.length, null);\n\t }\n\t finally {\n\t fd.closeSync();\n\t }\n\t};\n\tBaseFileSystem.prototype.chmod = function chmod (p, isLchmod, mode, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFileSystem.prototype.chmodSync = function chmodSync (p, isLchmod, mode) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFileSystem.prototype.chown = function chown (p, isLchown, uid, gid, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFileSystem.prototype.chownSync = function chownSync (p, isLchown, uid, gid) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFileSystem.prototype.utimes = function utimes (p, atime, mtime, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFileSystem.prototype.utimesSync = function utimesSync (p, atime, mtime) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFileSystem.prototype.link = function link (srcpath, dstpath, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFileSystem.prototype.linkSync = function linkSync (srcpath, dstpath) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFileSystem.prototype.symlink = function symlink (srcpath, dstpath, type, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFileSystem.prototype.symlinkSync = function symlinkSync (srcpath, dstpath, type) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFileSystem.prototype.readlink = function readlink (p, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFileSystem.prototype.readlinkSync = function readlinkSync (p) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\t/**\n\t * Implements the asynchronous API in terms of the synchronous API.\n\t * @class SynchronousFileSystem\n\t */\n\tvar SynchronousFileSystem = (function (BaseFileSystem) {\n\t function SynchronousFileSystem () {\n\t BaseFileSystem.apply(this, arguments);\n\t }\n\t\n\t if ( BaseFileSystem ) SynchronousFileSystem.__proto__ = BaseFileSystem;\n\t SynchronousFileSystem.prototype = Object.create( BaseFileSystem && BaseFileSystem.prototype );\n\t SynchronousFileSystem.prototype.constructor = SynchronousFileSystem;\n\t\n\t SynchronousFileSystem.prototype.supportsSynch = function supportsSynch () {\n\t return true;\n\t };\n\t SynchronousFileSystem.prototype.rename = function rename (oldPath, newPath, cb) {\n\t try {\n\t this.renameSync(oldPath, newPath);\n\t cb();\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t SynchronousFileSystem.prototype.stat = function stat (p, isLstat, cb) {\n\t try {\n\t cb(null, this.statSync(p, isLstat));\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t SynchronousFileSystem.prototype.open = function open (p, flags, mode, cb) {\n\t try {\n\t cb(null, this.openSync(p, flags, mode));\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t SynchronousFileSystem.prototype.unlink = function unlink (p, cb) {\n\t try {\n\t this.unlinkSync(p);\n\t cb();\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t SynchronousFileSystem.prototype.rmdir = function rmdir (p, cb) {\n\t try {\n\t this.rmdirSync(p);\n\t cb();\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t SynchronousFileSystem.prototype.mkdir = function mkdir (p, mode, cb) {\n\t try {\n\t this.mkdirSync(p, mode);\n\t cb();\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t SynchronousFileSystem.prototype.readdir = function readdir (p, cb) {\n\t try {\n\t cb(null, this.readdirSync(p));\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t SynchronousFileSystem.prototype.chmod = function chmod (p, isLchmod, mode, cb) {\n\t try {\n\t this.chmodSync(p, isLchmod, mode);\n\t cb();\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t SynchronousFileSystem.prototype.chown = function chown (p, isLchown, uid, gid, cb) {\n\t try {\n\t this.chownSync(p, isLchown, uid, gid);\n\t cb();\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t SynchronousFileSystem.prototype.utimes = function utimes (p, atime, mtime, cb) {\n\t try {\n\t this.utimesSync(p, atime, mtime);\n\t cb();\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t SynchronousFileSystem.prototype.link = function link (srcpath, dstpath, cb) {\n\t try {\n\t this.linkSync(srcpath, dstpath);\n\t cb();\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t SynchronousFileSystem.prototype.symlink = function symlink (srcpath, dstpath, type, cb) {\n\t try {\n\t this.symlinkSync(srcpath, dstpath, type);\n\t cb();\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t SynchronousFileSystem.prototype.readlink = function readlink (p, cb) {\n\t try {\n\t cb(null, this.readlinkSync(p));\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t\n\t return SynchronousFileSystem;\n\t}(BaseFileSystem));\n\t\n\t/**\n\t * Base class that contains shared implementations of functions for the file\n\t * object.\n\t */\n\tvar BaseFile = function BaseFile () {};\n\t\n\tBaseFile.prototype.sync = function sync (cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFile.prototype.syncSync = function syncSync () {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFile.prototype.datasync = function datasync (cb) {\n\t this.sync(cb);\n\t};\n\tBaseFile.prototype.datasyncSync = function datasyncSync () {\n\t return this.syncSync();\n\t};\n\tBaseFile.prototype.chown = function chown (uid, gid, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFile.prototype.chownSync = function chownSync (uid, gid) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFile.prototype.chmod = function chmod (mode, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFile.prototype.chmodSync = function chmodSync (mode) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\tBaseFile.prototype.utimes = function utimes (atime, mtime, cb) {\n\t cb(new ApiError(ErrorCode.ENOTSUP));\n\t};\n\tBaseFile.prototype.utimesSync = function utimesSync (atime, mtime) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t};\n\t\n\t/**\n\t * An implementation of the File interface that operates on a file that is\n\t * completely in-memory. PreloadFiles are backed by a Buffer.\n\t *\n\t * This is also an abstract class, as it lacks an implementation of 'sync' and\n\t * 'close'. Each filesystem that wishes to use this file representation must\n\t * extend this class and implement those two methods.\n\t * @todo 'close' lever that disables functionality once closed.\n\t */\n\tvar PreloadFile = (function (BaseFile$$1) {\n\t function PreloadFile(_fs, _path, _flag, _stat, contents) {\n\t BaseFile$$1.call(this);\n\t this._pos = 0;\n\t this._dirty = false;\n\t this._fs = _fs;\n\t this._path = _path;\n\t this._flag = _flag;\n\t this._stat = _stat;\n\t if (contents) {\n\t this._buffer = contents;\n\t }\n\t else {\n\t // Empty buffer. It'll expand once we write stuff to it.\n\t this._buffer = emptyBuffer();\n\t }\n\t // Note: This invariant is *not* maintained once the file starts getting\n\t // modified.\n\t // Note: Only actually matters if file is readable, as writeable modes may\n\t // truncate/append to file.\n\t if (this._stat.size !== this._buffer.length && this._flag.isReadable()) {\n\t throw new Error((\"Invalid buffer: Buffer is \" + (this._buffer.length) + \" long, yet Stats object specifies that file is \" + (this._stat.size) + \" long.\"));\n\t }\n\t }\n\t\n\t if ( BaseFile$$1 ) PreloadFile.__proto__ = BaseFile$$1;\n\t PreloadFile.prototype = Object.create( BaseFile$$1 && BaseFile$$1.prototype );\n\t PreloadFile.prototype.constructor = PreloadFile;\n\t /**\n\t * NONSTANDARD: Get the underlying buffer for this file. !!DO NOT MUTATE!! Will mess up dirty tracking.\n\t */\n\t PreloadFile.prototype.getBuffer = function getBuffer () {\n\t return this._buffer;\n\t };\n\t /**\n\t * NONSTANDARD: Get underlying stats for this file. !!DO NOT MUTATE!!\n\t */\n\t PreloadFile.prototype.getStats = function getStats () {\n\t return this._stat;\n\t };\n\t PreloadFile.prototype.getFlag = function getFlag () {\n\t return this._flag;\n\t };\n\t /**\n\t * Get the path to this file.\n\t * @return [String] The path to the file.\n\t */\n\t PreloadFile.prototype.getPath = function getPath () {\n\t return this._path;\n\t };\n\t /**\n\t * Get the current file position.\n\t *\n\t * We emulate the following bug mentioned in the Node documentation:\n\t * > On Linux, positional writes don't work when the file is opened in append\n\t * mode. The kernel ignores the position argument and always appends the data\n\t * to the end of the file.\n\t * @return [Number] The current file position.\n\t */\n\t PreloadFile.prototype.getPos = function getPos () {\n\t if (this._flag.isAppendable()) {\n\t return this._stat.size;\n\t }\n\t return this._pos;\n\t };\n\t /**\n\t * Advance the current file position by the indicated number of positions.\n\t * @param [Number] delta\n\t */\n\t PreloadFile.prototype.advancePos = function advancePos (delta) {\n\t return this._pos += delta;\n\t };\n\t /**\n\t * Set the file position.\n\t * @param [Number] newPos\n\t */\n\t PreloadFile.prototype.setPos = function setPos (newPos) {\n\t return this._pos = newPos;\n\t };\n\t /**\n\t * **Core**: Asynchronous sync. Must be implemented by subclasses of this\n\t * class.\n\t * @param [Function(BrowserFS.ApiError)] cb\n\t */\n\t PreloadFile.prototype.sync = function sync (cb) {\n\t try {\n\t this.syncSync();\n\t cb();\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t /**\n\t * **Core**: Synchronous sync.\n\t */\n\t PreloadFile.prototype.syncSync = function syncSync () {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t };\n\t /**\n\t * **Core**: Asynchronous close. Must be implemented by subclasses of this\n\t * class.\n\t * @param [Function(BrowserFS.ApiError)] cb\n\t */\n\t PreloadFile.prototype.close = function close (cb) {\n\t try {\n\t this.closeSync();\n\t cb();\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t /**\n\t * **Core**: Synchronous close.\n\t */\n\t PreloadFile.prototype.closeSync = function closeSync () {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t };\n\t /**\n\t * Asynchronous `stat`.\n\t * @param [Function(BrowserFS.ApiError, BrowserFS.node.fs.Stats)] cb\n\t */\n\t PreloadFile.prototype.stat = function stat (cb) {\n\t try {\n\t cb(null, this._stat.clone());\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t /**\n\t * Synchronous `stat`.\n\t */\n\t PreloadFile.prototype.statSync = function statSync () {\n\t return this._stat.clone();\n\t };\n\t /**\n\t * Asynchronous truncate.\n\t * @param [Number] len\n\t * @param [Function(BrowserFS.ApiError)] cb\n\t */\n\t PreloadFile.prototype.truncate = function truncate (len, cb) {\n\t try {\n\t this.truncateSync(len);\n\t if (this._flag.isSynchronous() && !_fsMock.getRootFS().supportsSynch()) {\n\t this.sync(cb);\n\t }\n\t cb();\n\t }\n\t catch (e) {\n\t return cb(e);\n\t }\n\t };\n\t /**\n\t * Synchronous truncate.\n\t * @param [Number] len\n\t */\n\t PreloadFile.prototype.truncateSync = function truncateSync (len) {\n\t this._dirty = true;\n\t if (!this._flag.isWriteable()) {\n\t throw new ApiError(ErrorCode.EPERM, 'File not opened with a writeable mode.');\n\t }\n\t this._stat.mtime = new Date();\n\t if (len > this._buffer.length) {\n\t var buf = Buffer.alloc(len - this._buffer.length, 0);\n\t // Write will set @_stat.size for us.\n\t this.writeSync(buf, 0, buf.length, this._buffer.length);\n\t if (this._flag.isSynchronous() && _fsMock.getRootFS().supportsSynch()) {\n\t this.syncSync();\n\t }\n\t return;\n\t }\n\t this._stat.size = len;\n\t // Truncate buffer to 'len'.\n\t var newBuff = Buffer.alloc(len);\n\t this._buffer.copy(newBuff, 0, 0, len);\n\t this._buffer = newBuff;\n\t if (this._flag.isSynchronous() && _fsMock.getRootFS().supportsSynch()) {\n\t this.syncSync();\n\t }\n\t };\n\t /**\n\t * Write buffer to the file.\n\t * Note that it is unsafe to use fs.write multiple times on the same file\n\t * without waiting for the callback.\n\t * @param [BrowserFS.node.Buffer] buffer Buffer containing the data to write to\n\t * the file.\n\t * @param [Number] offset Offset in the buffer to start reading data from.\n\t * @param [Number] length The amount of bytes to write to the file.\n\t * @param [Number] position Offset from the beginning of the file where this\n\t * data should be written. If position is null, the data will be written at\n\t * the current position.\n\t * @param [Function(BrowserFS.ApiError, Number, BrowserFS.node.Buffer)]\n\t * cb The number specifies the number of bytes written into the file.\n\t */\n\t PreloadFile.prototype.write = function write (buffer$$1, offset, length, position, cb) {\n\t try {\n\t cb(null, this.writeSync(buffer$$1, offset, length, position), buffer$$1);\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t /**\n\t * Write buffer to the file.\n\t * Note that it is unsafe to use fs.writeSync multiple times on the same file\n\t * without waiting for the callback.\n\t * @param [BrowserFS.node.Buffer] buffer Buffer containing the data to write to\n\t * the file.\n\t * @param [Number] offset Offset in the buffer to start reading data from.\n\t * @param [Number] length The amount of bytes to write to the file.\n\t * @param [Number] position Offset from the beginning of the file where this\n\t * data should be written. If position is null, the data will be written at\n\t * the current position.\n\t * @return [Number]\n\t */\n\t PreloadFile.prototype.writeSync = function writeSync (buffer$$1, offset, length, position) {\n\t this._dirty = true;\n\t if (position === undefined || position === null) {\n\t position = this.getPos();\n\t }\n\t if (!this._flag.isWriteable()) {\n\t throw new ApiError(ErrorCode.EPERM, 'File not opened with a writeable mode.');\n\t }\n\t var endFp = position + length;\n\t if (endFp > this._stat.size) {\n\t this._stat.size = endFp;\n\t if (endFp > this._buffer.length) {\n\t // Extend the buffer!\n\t var newBuff = Buffer.alloc(endFp);\n\t this._buffer.copy(newBuff);\n\t this._buffer = newBuff;\n\t }\n\t }\n\t var len = buffer$$1.copy(this._buffer, position, offset, offset + length);\n\t this._stat.mtime = new Date();\n\t if (this._flag.isSynchronous()) {\n\t this.syncSync();\n\t return len;\n\t }\n\t this.setPos(position + len);\n\t return len;\n\t };\n\t /**\n\t * Read data from the file.\n\t * @param [BrowserFS.node.Buffer] buffer The buffer that the data will be\n\t * written to.\n\t * @param [Number] offset The offset within the buffer where writing will\n\t * start.\n\t * @param [Number] length An integer specifying the number of bytes to read.\n\t * @param [Number] position An integer specifying where to begin reading from\n\t * in the file. If position is null, data will be read from the current file\n\t * position.\n\t * @param [Function(BrowserFS.ApiError, Number, BrowserFS.node.Buffer)] cb The\n\t * number is the number of bytes read\n\t */\n\t PreloadFile.prototype.read = function read (buffer$$1, offset, length, position, cb) {\n\t try {\n\t cb(null, this.readSync(buffer$$1, offset, length, position), buffer$$1);\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t /**\n\t * Read data from the file.\n\t * @param [BrowserFS.node.Buffer] buffer The buffer that the data will be\n\t * written to.\n\t * @param [Number] offset The offset within the buffer where writing will\n\t * start.\n\t * @param [Number] length An integer specifying the number of bytes to read.\n\t * @param [Number] position An integer specifying where to begin reading from\n\t * in the file. If position is null, data will be read from the current file\n\t * position.\n\t * @return [Number]\n\t */\n\t PreloadFile.prototype.readSync = function readSync (buffer$$1, offset, length, position) {\n\t if (!this._flag.isReadable()) {\n\t throw new ApiError(ErrorCode.EPERM, 'File not opened with a readable mode.');\n\t }\n\t if (position === undefined || position === null) {\n\t position = this.getPos();\n\t }\n\t var endRead = position + length;\n\t if (endRead > this._stat.size) {\n\t length = this._stat.size - position;\n\t }\n\t var rv = this._buffer.copy(buffer$$1, offset, position, position + length);\n\t this._stat.atime = new Date();\n\t this._pos = position + length;\n\t return rv;\n\t };\n\t /**\n\t * Asynchronous `fchmod`.\n\t * @param [Number|String] mode\n\t * @param [Function(BrowserFS.ApiError)] cb\n\t */\n\t PreloadFile.prototype.chmod = function chmod (mode, cb) {\n\t try {\n\t this.chmodSync(mode);\n\t cb();\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t /**\n\t * Asynchronous `fchmod`.\n\t * @param [Number] mode\n\t */\n\t PreloadFile.prototype.chmodSync = function chmodSync (mode) {\n\t if (!this._fs.supportsProps()) {\n\t throw new ApiError(ErrorCode.ENOTSUP);\n\t }\n\t this._dirty = true;\n\t this._stat.chmod(mode);\n\t this.syncSync();\n\t };\n\t PreloadFile.prototype.isDirty = function isDirty () {\n\t return this._dirty;\n\t };\n\t /**\n\t * Resets the dirty bit. Should only be called after a sync has completed successfully.\n\t */\n\t PreloadFile.prototype.resetDirty = function resetDirty () {\n\t this._dirty = false;\n\t };\n\t\n\t return PreloadFile;\n\t}(BaseFile));\n\t\n\t/**\n\t * File class for the InMemory and XHR file systems.\n\t * Doesn't sync to anything, so it works nicely for memory-only files.\n\t */\n\tvar NoSyncFile = (function (PreloadFile) {\n\t function NoSyncFile(_fs, _path, _flag, _stat, contents) {\n\t PreloadFile.call(this, _fs, _path, _flag, _stat, contents);\n\t }\n\t\n\t if ( PreloadFile ) NoSyncFile.__proto__ = PreloadFile;\n\t NoSyncFile.prototype = Object.create( PreloadFile && PreloadFile.prototype );\n\t NoSyncFile.prototype.constructor = NoSyncFile;\n\t /**\n\t * Asynchronous sync. Doesn't do anything, simply calls the cb.\n\t * @param [Function(BrowserFS.ApiError)] cb\n\t */\n\t NoSyncFile.prototype.sync = function sync (cb) {\n\t cb();\n\t };\n\t /**\n\t * Synchronous sync. Doesn't do anything.\n\t */\n\t NoSyncFile.prototype.syncSync = function syncSync () {\n\t // NOP.\n\t };\n\t /**\n\t * Asynchronous close. Doesn't do anything, simply calls the cb.\n\t * @param [Function(BrowserFS.ApiError)] cb\n\t */\n\t NoSyncFile.prototype.close = function close (cb) {\n\t cb();\n\t };\n\t /**\n\t * Synchronous close. Doesn't do anything.\n\t */\n\t NoSyncFile.prototype.closeSync = function closeSync () {\n\t // NOP.\n\t };\n\t\n\t return NoSyncFile;\n\t}(PreloadFile));\n\t\n\t/**\n\t * We define our own file to interpose on syncSync() for mirroring purposes.\n\t */\n\tvar MirrorFile = (function (PreloadFile$$1) {\n\t function MirrorFile(fs, path$$1, flag, stat, data) {\n\t PreloadFile$$1.call(this, fs, path$$1, flag, stat, data);\n\t }\n\t\n\t if ( PreloadFile$$1 ) MirrorFile.__proto__ = PreloadFile$$1;\n\t MirrorFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype );\n\t MirrorFile.prototype.constructor = MirrorFile;\n\t MirrorFile.prototype.syncSync = function syncSync () {\n\t if (this.isDirty()) {\n\t this._fs._syncSync(this);\n\t this.resetDirty();\n\t }\n\t };\n\t MirrorFile.prototype.closeSync = function closeSync () {\n\t this.syncSync();\n\t };\n\t\n\t return MirrorFile;\n\t}(PreloadFile));\n\t/**\n\t * AsyncMirrorFS mirrors a synchronous filesystem into an asynchronous filesystem\n\t * by:\n\t *\n\t * * Performing operations over the in-memory copy, while asynchronously pipelining them\n\t * to the backing store.\n\t * * During application loading, the contents of the async file system can be reloaded into\n\t * the synchronous store, if desired.\n\t *\n\t * The two stores will be kept in sync. The most common use-case is to pair a synchronous\n\t * in-memory filesystem with an asynchronous backing store.\n\t *\n\t * Example: Mirroring an IndexedDB file system to an in memory file system. Now, you can use\n\t * IndexedDB synchronously.\n\t *\n\t * ```javascript\n\t * BrowserFS.configure({\n\t * fs: \"AsyncMirror\",\n\t * options: {\n\t * sync: { fs: \"InMemory\" },\n\t * async: { fs: \"IndexedDB\" }\n\t * }\n\t * }, function(e) {\n\t * // BrowserFS is initialized and ready-to-use!\n\t * });\n\t * ```\n\t *\n\t * Or, alternatively:\n\t *\n\t * ```javascript\n\t * BrowserFS.FileSystem.IndexedDB.Create(function(e, idbfs) {\n\t * BrowserFS.FileSystem.InMemory.Create(function(e, inMemory) {\n\t * BrowserFS.FileSystem.AsyncMirror({\n\t * sync: inMemory, async: idbfs\n\t * }, function(e, mirrored) {\n\t * BrowserFS.initialize(mirrored);\n\t * });\n\t * });\n\t * });\n\t * ```\n\t */\n\tvar AsyncMirror = (function (SynchronousFileSystem$$1) {\n\t function AsyncMirror(sync, async, deprecateMsg) {\n\t if ( deprecateMsg === void 0 ) deprecateMsg = true;\n\t\n\t SynchronousFileSystem$$1.call(this);\n\t /**\n\t * Queue of pending asynchronous operations.\n\t */\n\t this._queue = [];\n\t this._queueRunning = false;\n\t this._isInitialized = false;\n\t this._initializeCallbacks = [];\n\t this._sync = sync;\n\t this._async = async;\n\t if (!sync.supportsSynch()) {\n\t throw new Error(\"The first argument to AsyncMirror needs to be a synchronous file system.\");\n\t }\n\t deprecationMessage(deprecateMsg, AsyncMirror.Name, { sync: \"sync file system instance\", async: \"async file system instance\" });\n\t }\n\t\n\t if ( SynchronousFileSystem$$1 ) AsyncMirror.__proto__ = SynchronousFileSystem$$1;\n\t AsyncMirror.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype );\n\t AsyncMirror.prototype.constructor = AsyncMirror;\n\t /**\n\t * Constructs and initializes an AsyncMirror file system with the given options.\n\t */\n\t AsyncMirror.Create = function Create (opts, cb) {\n\t try {\n\t var fs = new AsyncMirror(opts.sync, opts.async, false);\n\t fs.initialize(function (e) {\n\t if (e) {\n\t cb(e);\n\t }\n\t else {\n\t cb(null, fs);\n\t }\n\t }, false);\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t AsyncMirror.isAvailable = function isAvailable () {\n\t return true;\n\t };\n\t AsyncMirror.prototype.getName = function getName () {\n\t return AsyncMirror.Name;\n\t };\n\t AsyncMirror.prototype._syncSync = function _syncSync (fd) {\n\t this._sync.writeFileSync(fd.getPath(), fd.getBuffer(), null, FileFlag.getFileFlag('w'), fd.getStats().mode);\n\t this.enqueueOp({\n\t apiMethod: 'writeFile',\n\t arguments: [fd.getPath(), fd.getBuffer(), null, fd.getFlag(), fd.getStats().mode]\n\t });\n\t };\n\t /**\n\t * Called once to load up files from async storage into sync storage.\n\t */\n\t AsyncMirror.prototype.initialize = function initialize (userCb, deprecateMsg) {\n\t var this$1 = this;\n\t if ( deprecateMsg === void 0 ) deprecateMsg = true;\n\t\n\t if (deprecateMsg) {\n\t console.warn(\"[AsyncMirror] AsyncMirror.initialize() is deprecated and will be removed in the next major version. Please use 'AsyncMirror.Create({ sync: (sync file system instance), async: (async file system instance)}, cb)' to create and initialize AsyncMirror instances.\");\n\t }\n\t var callbacks = this._initializeCallbacks;\n\t var end = function (e) {\n\t this$1._isInitialized = !e;\n\t this$1._initializeCallbacks = [];\n\t callbacks.forEach(function (cb) { return cb(e); });\n\t };\n\t if (!this._isInitialized) {\n\t // First call triggers initialization, the rest wait.\n\t if (callbacks.push(userCb) === 1) {\n\t var copyDirectory = function (p, mode, cb) {\n\t if (p !== '/') {\n\t this$1._sync.mkdirSync(p, mode);\n\t }\n\t this$1._async.readdir(p, function (err, files) {\n\t var i = 0;\n\t // NOTE: This function must not be in a lexically nested statement,\n\t // such as an if or while statement. Safari refuses to run the\n\t // script since it is undefined behavior.\n\t function copyNextFile(err) {\n\t if (err) {\n\t cb(err);\n\t }\n\t else if (i < files.length) {\n\t copyItem(path.join(p, files[i]), copyNextFile);\n\t i++;\n\t }\n\t else {\n\t cb();\n\t }\n\t }\n\t if (err) {\n\t cb(err);\n\t }\n\t else {\n\t copyNextFile();\n\t }\n\t });\n\t }, copyFile = function (p, mode, cb) {\n\t this$1._async.readFile(p, null, FileFlag.getFileFlag('r'), function (err, data) {\n\t if (err) {\n\t cb(err);\n\t }\n\t else {\n\t try {\n\t this$1._sync.writeFileSync(p, data, null, FileFlag.getFileFlag('w'), mode);\n\t }\n\t catch (e) {\n\t err = e;\n\t }\n\t finally {\n\t cb(err);\n\t }\n\t }\n\t });\n\t }, copyItem = function (p, cb) {\n\t this$1._async.stat(p, false, function (err, stats) {\n\t if (err) {\n\t cb(err);\n\t }\n\t else if (stats.isDirectory()) {\n\t copyDirectory(p, stats.mode, cb);\n\t }\n\t else {\n\t copyFile(p, stats.mode, cb);\n\t }\n\t });\n\t };\n\t copyDirectory('/', 0, end);\n\t }\n\t }\n\t else {\n\t userCb();\n\t }\n\t };\n\t AsyncMirror.prototype.isReadOnly = function isReadOnly () { return false; };\n\t AsyncMirror.prototype.supportsSynch = function supportsSynch () { return true; };\n\t AsyncMirror.prototype.supportsLinks = function supportsLinks () { return false; };\n\t AsyncMirror.prototype.supportsProps = function supportsProps () { return this._sync.supportsProps() && this._async.supportsProps(); };\n\t AsyncMirror.prototype.renameSync = function renameSync (oldPath, newPath) {\n\t this.checkInitialized();\n\t this._sync.renameSync(oldPath, newPath);\n\t this.enqueueOp({\n\t apiMethod: 'rename',\n\t arguments: [oldPath, newPath]\n\t });\n\t };\n\t AsyncMirror.prototype.statSync = function statSync (p, isLstat) {\n\t this.checkInitialized();\n\t return this._sync.statSync(p, isLstat);\n\t };\n\t AsyncMirror.prototype.openSync = function openSync (p, flag, mode) {\n\t this.checkInitialized();\n\t // Sanity check: Is this open/close permitted?\n\t var fd = this._sync.openSync(p, flag, mode);\n\t fd.closeSync();\n\t return new MirrorFile(this, p, flag, this._sync.statSync(p, false), this._sync.readFileSync(p, null, FileFlag.getFileFlag('r')));\n\t };\n\t AsyncMirror.prototype.unlinkSync = function unlinkSync (p) {\n\t this.checkInitialized();\n\t this._sync.unlinkSync(p);\n\t this.enqueueOp({\n\t apiMethod: 'unlink',\n\t arguments: [p]\n\t });\n\t };\n\t AsyncMirror.prototype.rmdirSync = function rmdirSync (p) {\n\t this.checkInitialized();\n\t this._sync.rmdirSync(p);\n\t this.enqueueOp({\n\t apiMethod: 'rmdir',\n\t arguments: [p]\n\t });\n\t };\n\t AsyncMirror.prototype.mkdirSync = function mkdirSync (p, mode) {\n\t this.checkInitialized();\n\t this._sync.mkdirSync(p, mode);\n\t this.enqueueOp({\n\t apiMethod: 'mkdir',\n\t arguments: [p, mode]\n\t });\n\t };\n\t AsyncMirror.prototype.readdirSync = function readdirSync (p) {\n\t this.checkInitialized();\n\t return this._sync.readdirSync(p);\n\t };\n\t AsyncMirror.prototype.existsSync = function existsSync (p) {\n\t this.checkInitialized();\n\t return this._sync.existsSync(p);\n\t };\n\t AsyncMirror.prototype.chmodSync = function chmodSync (p, isLchmod, mode) {\n\t this.checkInitialized();\n\t this._sync.chmodSync(p, isLchmod, mode);\n\t this.enqueueOp({\n\t apiMethod: 'chmod',\n\t arguments: [p, isLchmod, mode]\n\t });\n\t };\n\t AsyncMirror.prototype.chownSync = function chownSync (p, isLchown, uid, gid) {\n\t this.checkInitialized();\n\t this._sync.chownSync(p, isLchown, uid, gid);\n\t this.enqueueOp({\n\t apiMethod: 'chown',\n\t arguments: [p, isLchown, uid, gid]\n\t });\n\t };\n\t AsyncMirror.prototype.utimesSync = function utimesSync (p, atime, mtime) {\n\t this.checkInitialized();\n\t this._sync.utimesSync(p, atime, mtime);\n\t this.enqueueOp({\n\t apiMethod: 'utimes',\n\t arguments: [p, atime, mtime]\n\t });\n\t };\n\t AsyncMirror.prototype.checkInitialized = function checkInitialized () {\n\t if (!this._isInitialized) {\n\t throw new ApiError(ErrorCode.EPERM, \"AsyncMirrorFS is not initialized. Please initialize AsyncMirrorFS using its initialize() method before using it.\");\n\t }\n\t };\n\t AsyncMirror.prototype.enqueueOp = function enqueueOp (op) {\n\t var this$1 = this;\n\t\n\t this._queue.push(op);\n\t if (!this._queueRunning) {\n\t this._queueRunning = true;\n\t var doNextOp = function (err) {\n\t if (err) {\n\t console.error((\"WARNING: File system has desynchronized. Received following error: \" + err + \"\\n$\"));\n\t }\n\t if (this$1._queue.length > 0) {\n\t var op = this$1._queue.shift(), args = op.arguments;\n\t args.push(doNextOp);\n\t this$1._async[op.apiMethod].apply(this$1._async, args);\n\t }\n\t else {\n\t this$1._queueRunning = false;\n\t }\n\t };\n\t doNextOp();\n\t }\n\t };\n\t\n\t return AsyncMirror;\n\t}(SynchronousFileSystem));\n\t\n\tAsyncMirror.Name = \"AsyncMirror\";\n\tAsyncMirror.Options = {\n\t sync: {\n\t type: \"object\",\n\t description: \"The synchronous file system to mirror the asynchronous file system to.\"\n\t },\n\t async: {\n\t type: \"object\",\n\t description: \"The asynchronous file system to mirror.\"\n\t }\n\t};\n\t\n\t/**\n\t * A faster alternative to `Function#apply`, this function invokes `func`\n\t * with the `this` binding of `thisArg` and the arguments of `args`.\n\t *\n\t * @private\n\t * @param {Function} func The function to invoke.\n\t * @param {*} thisArg The `this` binding of `func`.\n\t * @param {Array} args The arguments to invoke `func` with.\n\t * @returns {*} Returns the result of `func`.\n\t */\n\tfunction apply(func, thisArg, args) {\n\t switch (args.length) {\n\t case 0: return func.call(thisArg);\n\t case 1: return func.call(thisArg, args[0]);\n\t case 2: return func.call(thisArg, args[0], args[1]);\n\t case 3: return func.call(thisArg, args[0], args[1], args[2]);\n\t }\n\t return func.apply(thisArg, args);\n\t}\n\t\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max;\n\t\n\t/**\n\t * A specialized version of `baseRest` which transforms the rest array.\n\t *\n\t * @private\n\t * @param {Function} func The function to apply a rest parameter to.\n\t * @param {number} [start=func.length-1] The start position of the rest parameter.\n\t * @param {Function} transform The rest array transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overRest$1(func, start, transform) {\n\t start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n\t return function() {\n\t var args = arguments,\n\t index = -1,\n\t length = nativeMax(args.length - start, 0),\n\t array = Array(length);\n\t\n\t while (++index < length) {\n\t array[index] = args[start + index];\n\t }\n\t index = -1;\n\t var otherArgs = Array(start + 1);\n\t while (++index < start) {\n\t otherArgs[index] = args[index];\n\t }\n\t otherArgs[start] = transform(array);\n\t return apply(func, this, otherArgs);\n\t };\n\t}\n\t\n\t/**\n\t * This method returns the first argument it receives.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Util\n\t * @param {*} value Any value.\n\t * @returns {*} Returns `value`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t *\n\t * console.log(_.identity(object) === object);\n\t * // => true\n\t */\n\tfunction identity(value) {\n\t return value;\n\t}\n\t\n\t// Lodash rest function without function.toString()\n\t// remappings\n\tfunction rest(func, start) {\n\t return overRest$1(func, start, identity);\n\t}\n\t\n\tvar initialParams = function (fn) {\n\t return rest(function (args/*..., callback*/) {\n\t var callback = args.pop();\n\t fn.call(this, args, callback);\n\t });\n\t};\n\t\n\tfunction applyEach$1(eachfn) {\n\t return rest(function(fns, args) {\n\t var go = initialParams(function(args, callback) {\n\t var that = this;\n\t return eachfn(fns, function (fn, cb) {\n\t fn.apply(that, args.concat(cb));\n\t }, callback);\n\t });\n\t if (args.length) {\n\t return go.apply(this, args);\n\t }\n\t else {\n\t return go;\n\t }\n\t });\n\t}\n\t\n\t/** Detect free variable `global` from Node.js. */\n\tvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\t\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\t\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\t\n\t/** Built-in value references. */\n\tvar Symbol$1 = root.Symbol;\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar nativeObjectToString = objectProto.toString;\n\t\n\t/** Built-in value references. */\n\tvar symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;\n\t\n\t/**\n\t * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the raw `toStringTag`.\n\t */\n\tfunction getRawTag(value) {\n\t var isOwn = hasOwnProperty.call(value, symToStringTag$1),\n\t tag = value[symToStringTag$1];\n\t\n\t try {\n\t value[symToStringTag$1] = undefined;\n\t var unmasked = true;\n\t } catch (e) {}\n\t\n\t var result = nativeObjectToString.call(value);\n\t if (unmasked) {\n\t if (isOwn) {\n\t value[symToStringTag$1] = tag;\n\t } else {\n\t delete value[symToStringTag$1];\n\t }\n\t }\n\t return result;\n\t}\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto$1 = Object.prototype;\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar nativeObjectToString$1 = objectProto$1.toString;\n\t\n\t/**\n\t * Converts `value` to a string using `Object.prototype.toString`.\n\t *\n\t * @private\n\t * @param {*} value The value to convert.\n\t * @returns {string} Returns the converted string.\n\t */\n\tfunction objectToString(value) {\n\t return nativeObjectToString$1.call(value);\n\t}\n\t\n\t/** `Object#toString` result references. */\n\tvar nullTag = '[object Null]';\n\tvar undefinedTag = '[object Undefined]';\n\t\n\t/** Built-in value references. */\n\tvar symToStringTag = Symbol$1 ? Symbol$1.toStringTag : undefined;\n\t\n\t/**\n\t * The base implementation of `getTag` without fallbacks for buggy environments.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tfunction baseGetTag(value) {\n\t if (value == null) {\n\t return value === undefined ? undefinedTag : nullTag;\n\t }\n\t return (symToStringTag && symToStringTag in Object(value))\n\t ? getRawTag(value)\n\t : objectToString(value);\n\t}\n\t\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return value != null && (type == 'object' || type == 'function');\n\t}\n\t\n\t/** `Object#toString` result references. */\n\tvar asyncTag = '[object AsyncFunction]';\n\tvar funcTag = '[object Function]';\n\tvar genTag = '[object GeneratorFunction]';\n\tvar proxyTag = '[object Proxy]';\n\t\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t if (!isObject(value)) {\n\t return false;\n\t }\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 9 which returns 'object' for typed arrays and other constructors.\n\t var tag = baseGetTag(value);\n\t return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n\t}\n\t\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\t\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\t\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\t\n\t// A temporary value used to identify if the loop should be broken.\n\t// See #1064, #1293\n\tvar breakLoop = {};\n\t\n\t/**\n\t * This method returns `undefined`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.3.0\n\t * @category Util\n\t * @example\n\t *\n\t * _.times(2, _.noop);\n\t * // => [undefined, undefined]\n\t */\n\tfunction noop() {\n\t // No operation performed.\n\t}\n\t\n\tfunction once(fn) {\n\t return function () {\n\t if (fn === null) { return; }\n\t var callFn = fn;\n\t fn = null;\n\t callFn.apply(this, arguments);\n\t };\n\t}\n\t\n\tvar iteratorSymbol = typeof Symbol === 'function' && Symbol.iterator;\n\t\n\tvar getIterator = function (coll) {\n\t return iteratorSymbol && coll[iteratorSymbol] && coll[iteratorSymbol]();\n\t};\n\t\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\t\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return value != null && typeof value == 'object';\n\t}\n\t\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]';\n\t\n\t/**\n\t * The base implementation of `_.isArguments`.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t */\n\tfunction baseIsArguments(value) {\n\t return isObjectLike(value) && baseGetTag(value) == argsTag;\n\t}\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto$3 = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty$2 = objectProto$3.hasOwnProperty;\n\t\n\t/** Built-in value references. */\n\tvar propertyIsEnumerable = objectProto$3.propertyIsEnumerable;\n\t\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n\t return isObjectLike(value) && hasOwnProperty$2.call(value, 'callee') &&\n\t !propertyIsEnumerable.call(value, 'callee');\n\t};\n\t\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\t\n\t/**\n\t * This method returns `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {boolean} Returns `false`.\n\t * @example\n\t *\n\t * _.times(2, _.stubFalse);\n\t * // => [false, false]\n\t */\n\tfunction stubFalse() {\n\t return false;\n\t}\n\t\n\t/** Detect free variable `exports`. */\n\tvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\t\n\t/** Detect free variable `module`. */\n\tvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\t\n\t/** Detect the popular CommonJS extension `module.exports`. */\n\tvar moduleExports = freeModule && freeModule.exports === freeExports;\n\t\n\t/** Built-in value references. */\n\tvar Buffer$1 = moduleExports ? root.Buffer : undefined;\n\t\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeIsBuffer = Buffer$1 ? Buffer$1.isBuffer : undefined;\n\t\n\t/**\n\t * Checks if `value` is a buffer.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.3.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n\t * @example\n\t *\n\t * _.isBuffer(new Buffer(2));\n\t * // => true\n\t *\n\t * _.isBuffer(new Uint8Array(2));\n\t * // => false\n\t */\n\tvar isBuffer = nativeIsBuffer || stubFalse;\n\t\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER$1 = 9007199254740991;\n\t\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\t\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER$1 : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\t\n\t/** `Object#toString` result references. */\n\tvar argsTag$1 = '[object Arguments]';\n\tvar arrayTag = '[object Array]';\n\tvar boolTag = '[object Boolean]';\n\tvar dateTag = '[object Date]';\n\tvar errorTag = '[object Error]';\n\tvar funcTag$1 = '[object Function]';\n\tvar mapTag = '[object Map]';\n\tvar numberTag = '[object Number]';\n\tvar objectTag = '[object Object]';\n\tvar regexpTag = '[object RegExp]';\n\tvar setTag = '[object Set]';\n\tvar stringTag = '[object String]';\n\tvar weakMapTag = '[object WeakMap]';\n\t\n\tvar arrayBufferTag = '[object ArrayBuffer]';\n\tvar dataViewTag = '[object DataView]';\n\tvar float32Tag = '[object Float32Array]';\n\tvar float64Tag = '[object Float64Array]';\n\tvar int8Tag = '[object Int8Array]';\n\tvar int16Tag = '[object Int16Array]';\n\tvar int32Tag = '[object Int32Array]';\n\tvar uint8Tag = '[object Uint8Array]';\n\tvar uint8ClampedTag = '[object Uint8ClampedArray]';\n\tvar uint16Tag = '[object Uint16Array]';\n\tvar uint32Tag = '[object Uint32Array]';\n\t\n\t/** Used to identify `toStringTag` values of typed arrays. */\n\tvar typedArrayTags = {};\n\ttypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n\ttypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n\ttypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n\ttypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n\ttypedArrayTags[uint32Tag] = true;\n\ttypedArrayTags[argsTag$1] = typedArrayTags[arrayTag] =\n\ttypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n\ttypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n\ttypedArrayTags[errorTag] = typedArrayTags[funcTag$1] =\n\ttypedArrayTags[mapTag] = typedArrayTags[numberTag] =\n\ttypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n\ttypedArrayTags[setTag] = typedArrayTags[stringTag] =\n\ttypedArrayTags[weakMapTag] = false;\n\t\n\t/**\n\t * The base implementation of `_.isTypedArray` without Node.js optimizations.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n\t */\n\tfunction baseIsTypedArray(value) {\n\t return isObjectLike(value) &&\n\t isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n\t}\n\t\n\t/**\n\t * The base implementation of `_.unary` without support for storing metadata.\n\t *\n\t * @private\n\t * @param {Function} func The function to cap arguments for.\n\t * @returns {Function} Returns the new capped function.\n\t */\n\tfunction baseUnary(func) {\n\t return function(value) {\n\t return func(value);\n\t };\n\t}\n\t\n\t/** Detect free variable `exports`. */\n\tvar freeExports$1 = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\t\n\t/** Detect free variable `module`. */\n\tvar freeModule$1 = freeExports$1 && typeof module == 'object' && module && !module.nodeType && module;\n\t\n\t/** Detect the popular CommonJS extension `module.exports`. */\n\tvar moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;\n\t\n\t/** Detect free variable `process` from Node.js. */\n\tvar freeProcess = moduleExports$1 && freeGlobal.process;\n\t\n\t/** Used to access faster Node.js helpers. */\n\tvar nodeUtil = (function() {\n\t try {\n\t return freeProcess && freeProcess.binding && freeProcess.binding('util');\n\t } catch (e) {}\n\t}());\n\t\n\t/* Node.js helper references. */\n\tvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\t\n\t/**\n\t * Checks if `value` is classified as a typed array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 3.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n\t * @example\n\t *\n\t * _.isTypedArray(new Uint8Array);\n\t * // => true\n\t *\n\t * _.isTypedArray([]);\n\t * // => false\n\t */\n\tvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto$2 = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty$1 = objectProto$2.hasOwnProperty;\n\t\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t var isArr = isArray(value),\n\t isArg = !isArr && isArguments(value),\n\t isBuff = !isArr && !isArg && isBuffer(value),\n\t isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n\t skipIndexes = isArr || isArg || isBuff || isType,\n\t result = skipIndexes ? baseTimes(value.length, String) : [],\n\t length = result.length;\n\t\n\t for (var key in value) {\n\t if ((inherited || hasOwnProperty$1.call(value, key)) &&\n\t !(skipIndexes && (\n\t // Safari 9 has enumerable `arguments.length` in strict mode.\n\t key == 'length' ||\n\t // Node.js 0.10 has enumerable non-index properties on buffers.\n\t (isBuff && (key == 'offset' || key == 'parent')) ||\n\t // PhantomJS 2 has enumerable non-index properties on typed arrays.\n\t (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n\t // Skip index properties.\n\t isIndex(key, length)\n\t ))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto$5 = Object.prototype;\n\t\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$5;\n\t\n\t return value === proto;\n\t}\n\t\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\t\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeKeys = overArg(Object.keys, Object);\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto$4 = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty$3 = objectProto$4.hasOwnProperty;\n\t\n\t/**\n\t * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeys(object) {\n\t if (!isPrototype(object)) {\n\t return nativeKeys(object);\n\t }\n\t var result = [];\n\t for (var key in Object(object)) {\n\t if (hasOwnProperty$3.call(object, key) && key != 'constructor') {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Creates an array of the own enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects. See the\n\t * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * for more details.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keys(new Foo);\n\t * // => ['a', 'b'] (iteration order is not guaranteed)\n\t *\n\t * _.keys('hi');\n\t * // => ['0', '1']\n\t */\n\tfunction keys(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n\t}\n\t\n\tfunction createArrayIterator(coll) {\n\t var i = -1;\n\t var len = coll.length;\n\t return function next() {\n\t return ++i < len ? {value: coll[i], key: i} : null;\n\t }\n\t}\n\t\n\tfunction createES2015Iterator(iterator) {\n\t var i = -1;\n\t return function next() {\n\t var item = iterator.next();\n\t if (item.done)\n\t { return null; }\n\t i++;\n\t return {value: item.value, key: i};\n\t }\n\t}\n\t\n\tfunction createObjectIterator(obj) {\n\t var okeys = keys(obj);\n\t var i = -1;\n\t var len = okeys.length;\n\t return function next() {\n\t var key = okeys[++i];\n\t return i < len ? {value: obj[key], key: key} : null;\n\t };\n\t}\n\t\n\tfunction iterator(coll) {\n\t if (isArrayLike(coll)) {\n\t return createArrayIterator(coll);\n\t }\n\t\n\t var iterator = getIterator(coll);\n\t return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);\n\t}\n\t\n\tfunction onlyOnce(fn) {\n\t return function() {\n\t if (fn === null) { throw new Error(\"Callback was already called.\"); }\n\t var callFn = fn;\n\t fn = null;\n\t callFn.apply(this, arguments);\n\t };\n\t}\n\t\n\tfunction _eachOfLimit(limit) {\n\t return function (obj, iteratee, callback) {\n\t callback = once(callback || noop);\n\t if (limit <= 0 || !obj) {\n\t return callback(null);\n\t }\n\t var nextElem = iterator(obj);\n\t var done = false;\n\t var running = 0;\n\t\n\t function iterateeCallback(err, value) {\n\t running -= 1;\n\t if (err) {\n\t done = true;\n\t callback(err);\n\t }\n\t else if (value === breakLoop || (done && running <= 0)) {\n\t done = true;\n\t return callback(null);\n\t }\n\t else {\n\t replenish();\n\t }\n\t }\n\t\n\t function replenish () {\n\t while (running < limit && !done) {\n\t var elem = nextElem();\n\t if (elem === null) {\n\t done = true;\n\t if (running <= 0) {\n\t callback(null);\n\t }\n\t return;\n\t }\n\t running += 1;\n\t iteratee(elem.value, elem.key, onlyOnce(iterateeCallback));\n\t }\n\t }\n\t\n\t replenish();\n\t };\n\t}\n\t\n\t/**\n\t * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a\n\t * time.\n\t *\n\t * @name eachOfLimit\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.eachOf]{@link module:Collections.eachOf}\n\t * @alias forEachOfLimit\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {number} limit - The maximum number of async operations at a time.\n\t * @param {Function} iteratee - A function to apply to each\n\t * item in `coll`. The `key` is the item's key, or index in the case of an\n\t * array. The iteratee is passed a `callback(err)` which must be called once it\n\t * has completed. If no error has occurred, the callback should be run without\n\t * arguments or with an explicit `null` argument. Invoked with\n\t * (item, key, callback).\n\t * @param {Function} [callback] - A callback which is called when all\n\t * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n\t */\n\tfunction eachOfLimit(coll, limit, iteratee, callback) {\n\t _eachOfLimit(limit)(coll, iteratee, callback);\n\t}\n\t\n\tfunction doLimit(fn, limit) {\n\t return function (iterable, iteratee, callback) {\n\t return fn(iterable, limit, iteratee, callback);\n\t };\n\t}\n\t\n\t// eachOf implementation optimized for array-likes\n\tfunction eachOfArrayLike(coll, iteratee, callback) {\n\t callback = once(callback || noop);\n\t var index = 0,\n\t completed = 0,\n\t length = coll.length;\n\t if (length === 0) {\n\t callback(null);\n\t }\n\t\n\t function iteratorCallback(err, value) {\n\t if (err) {\n\t callback(err);\n\t } else if ((++completed === length) || value === breakLoop) {\n\t callback(null);\n\t }\n\t }\n\t\n\t for (; index < length; index++) {\n\t iteratee(coll[index], index, onlyOnce(iteratorCallback));\n\t }\n\t}\n\t\n\t// a generic version of eachOf which can handle array, object, and iterator cases.\n\tvar eachOfGeneric = doLimit(eachOfLimit, Infinity);\n\t\n\t/**\n\t * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument\n\t * to the iteratee.\n\t *\n\t * @name eachOf\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @alias forEachOf\n\t * @category Collection\n\t * @see [async.each]{@link module:Collections.each}\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A function to apply to each\n\t * item in `coll`. The `key` is the item's key, or index in the case of an\n\t * array. The iteratee is passed a `callback(err)` which must be called once it\n\t * has completed. If no error has occurred, the callback should be run without\n\t * arguments or with an explicit `null` argument. Invoked with\n\t * (item, key, callback).\n\t * @param {Function} [callback] - A callback which is called when all\n\t * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n\t * @example\n\t *\n\t * var obj = {dev: \"/dev.json\", test: \"/test.json\", prod: \"/prod.json\"};\n\t * var configs = {};\n\t *\n\t * async.forEachOf(obj, function (value, key, callback) {\n\t * fs.readFile(__dirname + value, \"utf8\", function (err, data) {\n\t * if (err) return callback(err);\n\t * try {\n\t * configs[key] = JSON.parse(data);\n\t * } catch (e) {\n\t * return callback(e);\n\t * }\n\t * callback();\n\t * });\n\t * }, function (err) {\n\t * if (err) console.error(err.message);\n\t * // configs is now a map of JSON data\n\t * doSomethingWith(configs);\n\t * });\n\t */\n\tvar eachOf = function(coll, iteratee, callback) {\n\t var eachOfImplementation = isArrayLike(coll) ? eachOfArrayLike : eachOfGeneric;\n\t eachOfImplementation(coll, iteratee, callback);\n\t};\n\t\n\tfunction doParallel(fn) {\n\t return function (obj, iteratee, callback) {\n\t return fn(eachOf, obj, iteratee, callback);\n\t };\n\t}\n\t\n\tfunction _asyncMap(eachfn, arr, iteratee, callback) {\n\t callback = callback || noop;\n\t arr = arr || [];\n\t var results = [];\n\t var counter = 0;\n\t\n\t eachfn(arr, function (value, _, callback) {\n\t var index = counter++;\n\t iteratee(value, function (err, v) {\n\t results[index] = v;\n\t callback(err);\n\t });\n\t }, function (err) {\n\t callback(err, results);\n\t });\n\t}\n\t\n\t/**\n\t * Produces a new collection of values by mapping each value in `coll` through\n\t * the `iteratee` function. The `iteratee` is called with an item from `coll`\n\t * and a callback for when it has finished processing. Each of these callback\n\t * takes 2 arguments: an `error`, and the transformed item from `coll`. If\n\t * `iteratee` passes an error to its callback, the main `callback` (for the\n\t * `map` function) is immediately called with the error.\n\t *\n\t * Note, that since this function applies the `iteratee` to each item in\n\t * parallel, there is no guarantee that the `iteratee` functions will complete\n\t * in order. However, the results array will be in the same order as the\n\t * original `coll`.\n\t *\n\t * If `map` is passed an Object, the results will be an Array. The results\n\t * will roughly be in the order of the original Objects' keys (but this can\n\t * vary across JavaScript engines)\n\t *\n\t * @name map\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A function to apply to each item in `coll`.\n\t * The iteratee is passed a `callback(err, transformed)` which must be called\n\t * once it has completed with an error (which can be `null`) and a\n\t * transformed item. Invoked with (item, callback).\n\t * @param {Function} [callback] - A callback which is called when all `iteratee`\n\t * functions have finished, or an error occurs. Results is an Array of the\n\t * transformed items from the `coll`. Invoked with (err, results).\n\t * @example\n\t *\n\t * async.map(['file1','file2','file3'], fs.stat, function(err, results) {\n\t * // results is now an array of stats for each file\n\t * });\n\t */\n\tvar map = doParallel(_asyncMap);\n\t\n\t/**\n\t * Applies the provided arguments to each function in the array, calling\n\t * `callback` after all functions have completed. If you only provide the first\n\t * argument, `fns`, then it will return a function which lets you pass in the\n\t * arguments as if it were a single function call. If more arguments are\n\t * provided, `callback` is required while `args` is still optional.\n\t *\n\t * @name applyEach\n\t * @static\n\t * @memberOf module:ControlFlow\n\t * @method\n\t * @category Control Flow\n\t * @param {Array|Iterable|Object} fns - A collection of asynchronous functions\n\t * to all call with the same arguments\n\t * @param {...*} [args] - any number of separate arguments to pass to the\n\t * function.\n\t * @param {Function} [callback] - the final argument should be the callback,\n\t * called when all functions have completed processing.\n\t * @returns {Function} - If only the first argument, `fns`, is provided, it will\n\t * return a function which lets you pass in the arguments as if it were a single\n\t * function call. The signature is `(..args, callback)`. If invoked with any\n\t * arguments, `callback` is required.\n\t * @example\n\t *\n\t * async.applyEach([enableSearch, updateSchema], 'bucket', callback);\n\t *\n\t * // partial application example:\n\t * async.each(\n\t * buckets,\n\t * async.applyEach([enableSearch, updateSchema]),\n\t * callback\n\t * );\n\t */\n\tapplyEach$1(map);\n\t\n\tfunction doParallelLimit(fn) {\n\t return function (obj, limit, iteratee, callback) {\n\t return fn(_eachOfLimit(limit), obj, iteratee, callback);\n\t };\n\t}\n\t\n\t/**\n\t * The same as [`map`]{@link module:Collections.map} but runs a maximum of `limit` async operations at a time.\n\t *\n\t * @name mapLimit\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.map]{@link module:Collections.map}\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {number} limit - The maximum number of async operations at a time.\n\t * @param {Function} iteratee - A function to apply to each item in `coll`.\n\t * The iteratee is passed a `callback(err, transformed)` which must be called\n\t * once it has completed with an error (which can be `null`) and a transformed\n\t * item. Invoked with (item, callback).\n\t * @param {Function} [callback] - A callback which is called when all `iteratee`\n\t * functions have finished, or an error occurs. Results is an array of the\n\t * transformed items from the `coll`. Invoked with (err, results).\n\t */\n\tvar mapLimit = doParallelLimit(_asyncMap);\n\t\n\t/**\n\t * The same as [`map`]{@link module:Collections.map} but runs only a single async operation at a time.\n\t *\n\t * @name mapSeries\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.map]{@link module:Collections.map}\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A function to apply to each item in `coll`.\n\t * The iteratee is passed a `callback(err, transformed)` which must be called\n\t * once it has completed with an error (which can be `null`) and a\n\t * transformed item. Invoked with (item, callback).\n\t * @param {Function} [callback] - A callback which is called when all `iteratee`\n\t * functions have finished, or an error occurs. Results is an array of the\n\t * transformed items from the `coll`. Invoked with (err, results).\n\t */\n\tvar mapSeries = doLimit(mapLimit, 1);\n\t\n\t/**\n\t * The same as [`applyEach`]{@link module:ControlFlow.applyEach} but runs only a single async operation at a time.\n\t *\n\t * @name applyEachSeries\n\t * @static\n\t * @memberOf module:ControlFlow\n\t * @method\n\t * @see [async.applyEach]{@link module:ControlFlow.applyEach}\n\t * @category Control Flow\n\t * @param {Array|Iterable|Object} fns - A collection of asynchronous functions to all\n\t * call with the same arguments\n\t * @param {...*} [args] - any number of separate arguments to pass to the\n\t * function.\n\t * @param {Function} [callback] - the final argument should be the callback,\n\t * called when all functions have completed processing.\n\t * @returns {Function} - If only the first argument is provided, it will return\n\t * a function which lets you pass in the arguments as if it were a single\n\t * function call.\n\t */\n\tapplyEach$1(mapSeries);\n\t\n\t/**\n\t * Creates a continuation function with some arguments already applied.\n\t *\n\t * Useful as a shorthand when combined with other control flow functions. Any\n\t * arguments passed to the returned function are added to the arguments\n\t * originally passed to apply.\n\t *\n\t * @name apply\n\t * @static\n\t * @memberOf module:Utils\n\t * @method\n\t * @category Util\n\t * @param {Function} function - The function you want to eventually apply all\n\t * arguments to. Invokes with (arguments...).\n\t * @param {...*} arguments... - Any number of arguments to automatically apply\n\t * when the continuation is called.\n\t * @example\n\t *\n\t * // using apply\n\t * async.parallel([\n\t * async.apply(fs.writeFile, 'testfile1', 'test1'),\n\t * async.apply(fs.writeFile, 'testfile2', 'test2')\n\t * ]);\n\t *\n\t *\n\t * // the same process without using apply\n\t * async.parallel([\n\t * function(callback) {\n\t * fs.writeFile('testfile1', 'test1', callback);\n\t * },\n\t * function(callback) {\n\t * fs.writeFile('testfile2', 'test2', callback);\n\t * }\n\t * ]);\n\t *\n\t * // It's possible to pass any number of additional arguments when calling the\n\t * // continuation:\n\t *\n\t * node> var fn = async.apply(sys.puts, 'one');\n\t * node> fn('two', 'three');\n\t * one\n\t * two\n\t * three\n\t */\n\trest(function(fn, args) {\n\t return rest(function(callArgs) {\n\t return fn.apply(null, args.concat(callArgs));\n\t });\n\t});\n\t\n\t/**\n\t * A specialized version of `_.forEach` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayEach(array, iteratee) {\n\t var index = -1,\n\t length = array == null ? 0 : array.length;\n\t\n\t while (++index < length) {\n\t if (iteratee(array[index], index, array) === false) {\n\t break;\n\t }\n\t }\n\t return array;\n\t}\n\t\n\t/**\n\t * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n\t *\n\t * @private\n\t * @param {boolean} [fromRight] Specify iterating from right to left.\n\t * @returns {Function} Returns the new base function.\n\t */\n\tfunction createBaseFor(fromRight) {\n\t return function(object, iteratee, keysFunc) {\n\t var index = -1,\n\t iterable = Object(object),\n\t props = keysFunc(object),\n\t length = props.length;\n\t\n\t while (length--) {\n\t var key = props[fromRight ? length : ++index];\n\t if (iteratee(iterable[key], key, iterable) === false) {\n\t break;\n\t }\n\t }\n\t return object;\n\t };\n\t}\n\t\n\t/**\n\t * The base implementation of `baseForOwn` which iterates over `object`\n\t * properties returned by `keysFunc` and invokes `iteratee` for each property.\n\t * Iteratee functions may exit iteration early by explicitly returning `false`.\n\t *\n\t * @private\n\t * @param {Object} object The object to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @param {Function} keysFunc The function to get the keys of `object`.\n\t * @returns {Object} Returns `object`.\n\t */\n\tvar baseFor = createBaseFor();\n\t\n\t/**\n\t * The base implementation of `_.forOwn` without support for iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Object} object The object to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction baseForOwn(object, iteratee) {\n\t return object && baseFor(object, iteratee, keys);\n\t}\n\t\n\t/**\n\t * The base implementation of `_.findIndex` and `_.findLastIndex` without\n\t * support for iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {Function} predicate The function invoked per iteration.\n\t * @param {number} fromIndex The index to search from.\n\t * @param {boolean} [fromRight] Specify iterating from right to left.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n\t var length = array.length,\n\t index = fromIndex + (fromRight ? 1 : -1);\n\t\n\t while ((fromRight ? index-- : ++index < length)) {\n\t if (predicate(array[index], index, array)) {\n\t return index;\n\t }\n\t }\n\t return -1;\n\t}\n\t\n\t/**\n\t * The base implementation of `_.isNaN` without support for number objects.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n\t */\n\tfunction baseIsNaN(value) {\n\t return value !== value;\n\t}\n\t\n\t/**\n\t * A specialized version of `_.indexOf` which performs strict equality\n\t * comparisons of values, i.e. `===`.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} value The value to search for.\n\t * @param {number} fromIndex The index to search from.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction strictIndexOf(array, value, fromIndex) {\n\t var index = fromIndex - 1,\n\t length = array.length;\n\t\n\t while (++index < length) {\n\t if (array[index] === value) {\n\t return index;\n\t }\n\t }\n\t return -1;\n\t}\n\t\n\t/**\n\t * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} value The value to search for.\n\t * @param {number} fromIndex The index to search from.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction baseIndexOf(array, value, fromIndex) {\n\t return value === value\n\t ? strictIndexOf(array, value, fromIndex)\n\t : baseFindIndex(array, baseIsNaN, fromIndex);\n\t}\n\t\n\t/**\n\t * Determines the best order for running the functions in `tasks`, based on\n\t * their requirements. Each function can optionally depend on other functions\n\t * being completed first, and each function is run as soon as its requirements\n\t * are satisfied.\n\t *\n\t * If any of the functions pass an error to their callback, the `auto` sequence\n\t * will stop. Further tasks will not execute (so any other functions depending\n\t * on it will not run), and the main `callback` is immediately called with the\n\t * error.\n\t *\n\t * Functions also receive an object containing the results of functions which\n\t * have completed so far as the first argument, if they have dependencies. If a\n\t * task function has no dependencies, it will only be passed a callback.\n\t *\n\t * @name auto\n\t * @static\n\t * @memberOf module:ControlFlow\n\t * @method\n\t * @category Control Flow\n\t * @param {Object} tasks - An object. Each of its properties is either a\n\t * function or an array of requirements, with the function itself the last item\n\t * in the array. The object's key of a property serves as the name of the task\n\t * defined by that property, i.e. can be used when specifying requirements for\n\t * other tasks. The function receives one or two arguments:\n\t * * a `results` object, containing the results of the previously executed\n\t * functions, only passed if the task has any dependencies,\n\t * * a `callback(err, result)` function, which must be called when finished,\n\t * passing an `error` (which can be `null`) and the result of the function's\n\t * execution.\n\t * @param {number} [concurrency=Infinity] - An optional `integer` for\n\t * determining the maximum number of tasks that can be run in parallel. By\n\t * default, as many as possible.\n\t * @param {Function} [callback] - An optional callback which is called when all\n\t * the tasks have been completed. It receives the `err` argument if any `tasks`\n\t * pass an error to their callback. Results are always returned; however, if an\n\t * error occurs, no further `tasks` will be performed, and the results object\n\t * will only contain partial results. Invoked with (err, results).\n\t * @returns undefined\n\t * @example\n\t *\n\t * async.auto({\n\t * // this function will just be passed a callback\n\t * readData: async.apply(fs.readFile, 'data.txt', 'utf-8'),\n\t * showData: ['readData', function(results, cb) {\n\t * // results.readData is the file's contents\n\t * // ...\n\t * }]\n\t * }, callback);\n\t *\n\t * async.auto({\n\t * get_data: function(callback) {\n\t * console.log('in get_data');\n\t * // async code to get some data\n\t * callback(null, 'data', 'converted to array');\n\t * },\n\t * make_folder: function(callback) {\n\t * console.log('in make_folder');\n\t * // async code to create a directory to store a file in\n\t * // this is run at the same time as getting the data\n\t * callback(null, 'folder');\n\t * },\n\t * write_file: ['get_data', 'make_folder', function(results, callback) {\n\t * console.log('in write_file', JSON.stringify(results));\n\t * // once there is some data and the directory exists,\n\t * // write the data to a file in the directory\n\t * callback(null, 'filename');\n\t * }],\n\t * email_link: ['write_file', function(results, callback) {\n\t * console.log('in email_link', JSON.stringify(results));\n\t * // once the file is written let's email a link to it...\n\t * // results.write_file contains the filename returned by write_file.\n\t * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n\t * }]\n\t * }, function(err, results) {\n\t * console.log('err = ', err);\n\t * console.log('results = ', results);\n\t * });\n\t */\n\t\n\t/**\n\t * A specialized version of `_.map` for arrays without support for iteratee\n\t * shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the new mapped array.\n\t */\n\t\n\t/**\n\t * The base implementation of `_.slice` without an iteratee call guard.\n\t *\n\t * @private\n\t * @param {Array} array The array to slice.\n\t * @param {number} [start=0] The start position.\n\t * @param {number} [end=array.length] The end position.\n\t * @returns {Array} Returns the slice of `array`.\n\t */\n\t\n\t/**\n\t * Converts an ASCII `string` to an array.\n\t *\n\t * @private\n\t * @param {string} string The string to convert.\n\t * @returns {Array} Returns the converted array.\n\t */\n\t\n\t/** Used to compose unicode character classes. */\n\t\n\t/** Used to compose unicode character classes. */\n\tvar rsAstralRange$1 = '\\\\ud800-\\\\udfff';\n\tvar rsComboMarksRange$1 = '\\\\u0300-\\\\u036f';\n\tvar reComboHalfMarksRange$1 = '\\\\ufe20-\\\\ufe2f';\n\tvar rsComboSymbolsRange$1 = '\\\\u20d0-\\\\u20ff';\n\tvar rsComboRange$1 = rsComboMarksRange$1 + reComboHalfMarksRange$1 + rsComboSymbolsRange$1;\n\tvar rsVarRange$1 = '\\\\ufe0e\\\\ufe0f';\n\t\n\t/** Used to compose unicode capture groups. */\n\tvar rsAstral = '[' + rsAstralRange$1 + ']';\n\tvar rsCombo = '[' + rsComboRange$1 + ']';\n\tvar rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]';\n\tvar rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')';\n\tvar rsNonAstral = '[^' + rsAstralRange$1 + ']';\n\tvar rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}';\n\tvar rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]';\n\tvar rsZWJ$1 = '\\\\u200d';\n\t\n\t/** Used to compose unicode regexes. */\n\tvar reOptMod = rsModifier + '?';\n\tvar rsOptVar = '[' + rsVarRange$1 + ']?';\n\tvar rsOptJoin = '(?:' + rsZWJ$1 + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*';\n\tvar rsSeq = rsOptVar + reOptMod + rsOptJoin;\n\tvar rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\t\n\tvar hasSetImmediate = typeof setImmediate === 'function' && setImmediate;\n\tvar hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';\n\t\n\tfunction fallback(fn) {\n\t setTimeout(fn, 0);\n\t}\n\t\n\tfunction wrap(defer) {\n\t return rest(function (fn, args) {\n\t defer(function () {\n\t fn.apply(null, args);\n\t });\n\t });\n\t}\n\t\n\tvar _defer;\n\t\n\tif (hasSetImmediate) {\n\t _defer = setImmediate;\n\t} else if (hasNextTick) {\n\t _defer = process.nextTick;\n\t} else {\n\t _defer = fallback;\n\t}\n\t\n\twrap(_defer);\n\t\n\t// Simple doubly linked list (https://en.wikipedia.org/wiki/Doubly_linked_list) implementation\n\t// used for queues. This implementation assumes that the node provided by the user can be modified\n\t// to adjust the next and last properties. We implement only the minimal functionality\n\t// for queue support.\n\t\n\t/**\n\t * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time.\n\t *\n\t * @name eachOfSeries\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.eachOf]{@link module:Collections.eachOf}\n\t * @alias forEachOfSeries\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A function to apply to each item in `coll`. The\n\t * `key` is the item's key, or index in the case of an array. The iteratee is\n\t * passed a `callback(err)` which must be called once it has completed. If no\n\t * error has occurred, the callback should be run without arguments or with an\n\t * explicit `null` argument. Invoked with (item, key, callback).\n\t * @param {Function} [callback] - A callback which is called when all `iteratee`\n\t * functions have finished, or an error occurs. Invoked with (err).\n\t */\n\tvar eachOfSeries = doLimit(eachOfLimit, 1);\n\t\n\t/**\n\t * Reduces `coll` into a single value using an async `iteratee` to return each\n\t * successive step. `memo` is the initial state of the reduction. This function\n\t * only operates in series.\n\t *\n\t * For performance reasons, it may make sense to split a call to this function\n\t * into a parallel map, and then use the normal `Array.prototype.reduce` on the\n\t * results. This function is for situations where each step in the reduction\n\t * needs to be async; if you can get the data before reducing it, then it's\n\t * probably a good idea to do so.\n\t *\n\t * @name reduce\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @alias inject\n\t * @alias foldl\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {*} memo - The initial state of the reduction.\n\t * @param {Function} iteratee - A function applied to each item in the\n\t * array to produce the next step in the reduction. The `iteratee` is passed a\n\t * `callback(err, reduction)` which accepts an optional error as its first\n\t * argument, and the state of the reduction as the second. If an error is\n\t * passed to the callback, the reduction is stopped and the main `callback` is\n\t * immediately called with the error. Invoked with (memo, item, callback).\n\t * @param {Function} [callback] - A callback which is called after all the\n\t * `iteratee` functions have finished. Result is the reduced value. Invoked with\n\t * (err, result).\n\t * @example\n\t *\n\t * async.reduce([1,2,3], 0, function(memo, item, callback) {\n\t * // pointless async:\n\t * process.nextTick(function() {\n\t * callback(null, memo + item)\n\t * });\n\t * }, function(err, result) {\n\t * // result is now equal to the last value of memo, which is 6\n\t * });\n\t */\n\tfunction reduce(coll, memo, iteratee, callback) {\n\t callback = once(callback || noop);\n\t eachOfSeries(coll, function(x, i, callback) {\n\t iteratee(memo, x, function(err, v) {\n\t memo = v;\n\t callback(err);\n\t });\n\t }, function(err) {\n\t callback(err, memo);\n\t });\n\t}\n\t\n\t/**\n\t * Version of the compose function that is more natural to read. Each function\n\t * consumes the return value of the previous function. It is the equivalent of\n\t * [compose]{@link module:ControlFlow.compose} with the arguments reversed.\n\t *\n\t * Each function is executed with the `this` binding of the composed function.\n\t *\n\t * @name seq\n\t * @static\n\t * @memberOf module:ControlFlow\n\t * @method\n\t * @see [async.compose]{@link module:ControlFlow.compose}\n\t * @category Control Flow\n\t * @param {...Function} functions - the asynchronous functions to compose\n\t * @returns {Function} a function that composes the `functions` in order\n\t * @example\n\t *\n\t * // Requires lodash (or underscore), express3 and dresende's orm2.\n\t * // Part of an app, that fetches cats of the logged user.\n\t * // This example uses `seq` function to avoid overnesting and error\n\t * // handling clutter.\n\t * app.get('/cats', function(request, response) {\n\t * var User = request.models.User;\n\t * async.seq(\n\t * _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data))\n\t * function(user, fn) {\n\t * user.getCats(fn); // 'getCats' has signature (callback(err, data))\n\t * }\n\t * )(req.session.user_id, function (err, cats) {\n\t * if (err) {\n\t * console.error(err);\n\t * response.json({ status: 'error', message: err.message });\n\t * } else {\n\t * response.json({ status: 'ok', message: 'Cats found', data: cats });\n\t * }\n\t * });\n\t * });\n\t */\n\tvar seq = rest(function seq(functions) {\n\t return rest(function(args) {\n\t var that = this;\n\t\n\t var cb = args[args.length - 1];\n\t if (typeof cb == 'function') {\n\t args.pop();\n\t } else {\n\t cb = noop;\n\t }\n\t\n\t reduce(functions, args, function(newargs, fn, cb) {\n\t fn.apply(that, newargs.concat(rest(function(err, nextargs) {\n\t cb(err, nextargs);\n\t })));\n\t },\n\t function(err, results) {\n\t cb.apply(that, [err].concat(results));\n\t });\n\t });\n\t});\n\t\n\t/**\n\t * Creates a function which is a composition of the passed asynchronous\n\t * functions. Each function consumes the return value of the function that\n\t * follows. Composing functions `f()`, `g()`, and `h()` would produce the result\n\t * of `f(g(h()))`, only this version uses callbacks to obtain the return values.\n\t *\n\t * Each function is executed with the `this` binding of the composed function.\n\t *\n\t * @name compose\n\t * @static\n\t * @memberOf module:ControlFlow\n\t * @method\n\t * @category Control Flow\n\t * @param {...Function} functions - the asynchronous functions to compose\n\t * @returns {Function} an asynchronous function that is the composed\n\t * asynchronous `functions`\n\t * @example\n\t *\n\t * function add1(n, callback) {\n\t * setTimeout(function () {\n\t * callback(null, n + 1);\n\t * }, 10);\n\t * }\n\t *\n\t * function mul3(n, callback) {\n\t * setTimeout(function () {\n\t * callback(null, n * 3);\n\t * }, 10);\n\t * }\n\t *\n\t * var add1mul3 = async.compose(mul3, add1);\n\t * add1mul3(4, function (err, result) {\n\t * // result now equals 15\n\t * });\n\t */\n\trest(function(args) {\n\t return seq.apply(null, args.reverse());\n\t});\n\t\n\t/**\n\t * Applies `iteratee` to each item in `coll`, concatenating the results. Returns\n\t * the concatenated list. The `iteratee`s are called in parallel, and the\n\t * results are concatenated as they return. There is no guarantee that the\n\t * results array will be returned in the original order of `coll` passed to the\n\t * `iteratee` function.\n\t *\n\t * @name concat\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A function to apply to each item in `coll`.\n\t * The iteratee is passed a `callback(err, results)` which must be called once\n\t * it has completed with an error (which can be `null`) and an array of results.\n\t * Invoked with (item, callback).\n\t * @param {Function} [callback(err)] - A callback which is called after all the\n\t * `iteratee` functions have finished, or an error occurs. Results is an array\n\t * containing the concatenated results of the `iteratee` function. Invoked with\n\t * (err, results).\n\t * @example\n\t *\n\t * async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files) {\n\t * // files is now a list of filenames that exist in the 3 directories\n\t * });\n\t */\n\t\n\t/**\n\t * The same as [`concat`]{@link module:Collections.concat} but runs only a single async operation at a time.\n\t *\n\t * @name concatSeries\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.concat]{@link module:Collections.concat}\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A function to apply to each item in `coll`.\n\t * The iteratee is passed a `callback(err, results)` which must be called once\n\t * it has completed with an error (which can be `null`) and an array of results.\n\t * Invoked with (item, callback).\n\t * @param {Function} [callback(err)] - A callback which is called after all the\n\t * `iteratee` functions have finished, or an error occurs. Results is an array\n\t * containing the concatenated results of the `iteratee` function. Invoked with\n\t * (err, results).\n\t */\n\t\n\t/**\n\t * Returns a function that when called, calls-back with the values provided.\n\t * Useful as the first function in a [`waterfall`]{@link module:ControlFlow.waterfall}, or for plugging values in to\n\t * [`auto`]{@link module:ControlFlow.auto}.\n\t *\n\t * @name constant\n\t * @static\n\t * @memberOf module:Utils\n\t * @method\n\t * @category Util\n\t * @param {...*} arguments... - Any number of arguments to automatically invoke\n\t * callback with.\n\t * @returns {Function} Returns a function that when invoked, automatically\n\t * invokes the callback with the previous given arguments.\n\t * @example\n\t *\n\t * async.waterfall([\n\t * async.constant(42),\n\t * function (value, next) {\n\t * // value === 42\n\t * },\n\t * //...\n\t * ], callback);\n\t *\n\t * async.waterfall([\n\t * async.constant(filename, \"utf8\"),\n\t * fs.readFile,\n\t * function (fileData, next) {\n\t * //...\n\t * }\n\t * //...\n\t * ], callback);\n\t *\n\t * async.auto({\n\t * hostname: async.constant(\"https://server.net/\"),\n\t * port: findFreePort,\n\t * launchServer: [\"hostname\", \"port\", function (options, cb) {\n\t * startServer(options, cb);\n\t * }],\n\t * //...\n\t * }, callback);\n\t */\n\trest(function(values) {\n\t var args = [null].concat(values);\n\t return initialParams(function (ignoredArgs, callback) {\n\t return callback.apply(this, args);\n\t });\n\t});\n\t\n\t/**\n\t * Returns the first value in `coll` that passes an async truth test. The\n\t * `iteratee` is applied in parallel, meaning the first iteratee to return\n\t * `true` will fire the detect `callback` with that result. That means the\n\t * result might not be the first item in the original `coll` (in terms of order)\n\t * that passes the test.\n\t\n\t * If order within the original `coll` is important, then look at\n\t * [`detectSeries`]{@link module:Collections.detectSeries}.\n\t *\n\t * @name detect\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @alias find\n\t * @category Collections\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n\t * The iteratee is passed a `callback(err, truthValue)` which must be called\n\t * with a boolean argument once it has completed. Invoked with (item, callback).\n\t * @param {Function} [callback] - A callback which is called as soon as any\n\t * iteratee returns `true`, or after all the `iteratee` functions have finished.\n\t * Result will be the first item in the array that passes the truth test\n\t * (iteratee) or the value `undefined` if none passed. Invoked with\n\t * (err, result).\n\t * @example\n\t *\n\t * async.detect(['file1','file2','file3'], function(filePath, callback) {\n\t * fs.access(filePath, function(err) {\n\t * callback(null, !err)\n\t * });\n\t * }, function(err, result) {\n\t * // result now equals the first file in the list that exists\n\t * });\n\t */\n\t\n\t/**\n\t * The same as [`detect`]{@link module:Collections.detect} but runs a maximum of `limit` async operations at a\n\t * time.\n\t *\n\t * @name detectLimit\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.detect]{@link module:Collections.detect}\n\t * @alias findLimit\n\t * @category Collections\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {number} limit - The maximum number of async operations at a time.\n\t * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n\t * The iteratee is passed a `callback(err, truthValue)` which must be called\n\t * with a boolean argument once it has completed. Invoked with (item, callback).\n\t * @param {Function} [callback] - A callback which is called as soon as any\n\t * iteratee returns `true`, or after all the `iteratee` functions have finished.\n\t * Result will be the first item in the array that passes the truth test\n\t * (iteratee) or the value `undefined` if none passed. Invoked with\n\t * (err, result).\n\t */\n\t\n\t/**\n\t * The same as [`detect`]{@link module:Collections.detect} but runs only a single async operation at a time.\n\t *\n\t * @name detectSeries\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.detect]{@link module:Collections.detect}\n\t * @alias findSeries\n\t * @category Collections\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n\t * The iteratee is passed a `callback(err, truthValue)` which must be called\n\t * with a boolean argument once it has completed. Invoked with (item, callback).\n\t * @param {Function} [callback] - A callback which is called as soon as any\n\t * iteratee returns `true`, or after all the `iteratee` functions have finished.\n\t * Result will be the first item in the array that passes the truth test\n\t * (iteratee) or the value `undefined` if none passed. Invoked with\n\t * (err, result).\n\t */\n\t\n\tfunction consoleFunc(name) {\n\t return rest(function (fn, args) {\n\t fn.apply(null, args.concat(rest(function (err, args) {\n\t if (typeof console === 'object') {\n\t if (err) {\n\t if (console.error) {\n\t console.error(err);\n\t }\n\t }\n\t else if (console[name]) {\n\t arrayEach(args, function (x) {\n\t console[name](x);\n\t });\n\t }\n\t }\n\t })));\n\t });\n\t}\n\t\n\t/**\n\t * Logs the result of an `async` function to the `console` using `console.dir`\n\t * to display the properties of the resulting object. Only works in Node.js or\n\t * in browsers that support `console.dir` and `console.error` (such as FF and\n\t * Chrome). If multiple arguments are returned from the async function,\n\t * `console.dir` is called on each argument in order.\n\t *\n\t * @name dir\n\t * @static\n\t * @memberOf module:Utils\n\t * @method\n\t * @category Util\n\t * @param {Function} function - The function you want to eventually apply all\n\t * arguments to.\n\t * @param {...*} arguments... - Any number of arguments to apply to the function.\n\t * @example\n\t *\n\t * // in a module\n\t * var hello = function(name, callback) {\n\t * setTimeout(function() {\n\t * callback(null, {hello: name});\n\t * }, 1000);\n\t * };\n\t *\n\t * // in the node repl\n\t * node> async.dir(hello, 'world');\n\t * {hello: 'world'}\n\t */\n\tconsoleFunc('dir');\n\t\n\tfunction _withoutIndex(iteratee) {\n\t return function (value, index, callback) {\n\t return iteratee(value, callback);\n\t };\n\t}\n\t\n\t/**\n\t * Applies the function `iteratee` to each item in `coll`, in parallel.\n\t * The `iteratee` is called with an item from the list, and a callback for when\n\t * it has finished. If the `iteratee` passes an error to its `callback`, the\n\t * main `callback` (for the `each` function) is immediately called with the\n\t * error.\n\t *\n\t * Note, that since this function applies `iteratee` to each item in parallel,\n\t * there is no guarantee that the iteratee functions will complete in order.\n\t *\n\t * @name each\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @alias forEach\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A function to apply to each item\n\t * in `coll`. The iteratee is passed a `callback(err)` which must be called once\n\t * it has completed. If no error has occurred, the `callback` should be run\n\t * without arguments or with an explicit `null` argument. The array index is not\n\t * passed to the iteratee. Invoked with (item, callback). If you need the index,\n\t * use `eachOf`.\n\t * @param {Function} [callback] - A callback which is called when all\n\t * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n\t * @example\n\t *\n\t * // assuming openFiles is an array of file names and saveFile is a function\n\t * // to save the modified contents of that file:\n\t *\n\t * async.each(openFiles, saveFile, function(err){\n\t * // if any of the saves produced an error, err would equal that error\n\t * });\n\t *\n\t * // assuming openFiles is an array of file names\n\t * async.each(openFiles, function(file, callback) {\n\t *\n\t * // Perform operation on file here.\n\t * console.log('Processing file ' + file);\n\t *\n\t * if( file.length > 32 ) {\n\t * console.log('This file name is too long');\n\t * callback('File name too long');\n\t * } else {\n\t * // Do work to process file here\n\t * console.log('File processed');\n\t * callback();\n\t * }\n\t * }, function(err) {\n\t * // if any of the file processing produced an error, err would equal that error\n\t * if( err ) {\n\t * // One of the iterations produced an error.\n\t * // All processing will now stop.\n\t * console.log('A file failed to process');\n\t * } else {\n\t * console.log('All files have been processed successfully');\n\t * }\n\t * });\n\t */\n\tfunction eachLimit(coll, iteratee, callback) {\n\t eachOf(coll, _withoutIndex(iteratee), callback);\n\t}\n\t\n\t/**\n\t * The same as [`each`]{@link module:Collections.each} but runs only a single async operation at a time.\n\t *\n\t * @name eachSeries\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.each]{@link module:Collections.each}\n\t * @alias forEachSeries\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A function to apply to each\n\t * item in `coll`. The iteratee is passed a `callback(err)` which must be called\n\t * once it has completed. If no error has occurred, the `callback` should be run\n\t * without arguments or with an explicit `null` argument. The array index is\n\t * not passed to the iteratee. Invoked with (item, callback). If you need the\n\t * index, use `eachOfSeries`.\n\t * @param {Function} [callback] - A callback which is called when all\n\t * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n\t */\n\t\n\t/**\n\t * Returns `true` if every element in `coll` satisfies an async test. If any\n\t * iteratee call returns `false`, the main `callback` is immediately called.\n\t *\n\t * @name every\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @alias all\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A truth test to apply to each item in the\n\t * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n\t * which must be called with a boolean argument once it has completed. Invoked\n\t * with (item, callback).\n\t * @param {Function} [callback] - A callback which is called after all the\n\t * `iteratee` functions have finished. Result will be either `true` or `false`\n\t * depending on the values of the async tests. Invoked with (err, result).\n\t * @example\n\t *\n\t * async.every(['file1','file2','file3'], function(filePath, callback) {\n\t * fs.access(filePath, function(err) {\n\t * callback(null, !err)\n\t * });\n\t * }, function(err, result) {\n\t * // if result is true then every file exists\n\t * });\n\t */\n\t\n\t/**\n\t * The same as [`every`]{@link module:Collections.every} but runs a maximum of `limit` async operations at a time.\n\t *\n\t * @name everyLimit\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.every]{@link module:Collections.every}\n\t * @alias allLimit\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {number} limit - The maximum number of async operations at a time.\n\t * @param {Function} iteratee - A truth test to apply to each item in the\n\t * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n\t * which must be called with a boolean argument once it has completed. Invoked\n\t * with (item, callback).\n\t * @param {Function} [callback] - A callback which is called after all the\n\t * `iteratee` functions have finished. Result will be either `true` or `false`\n\t * depending on the values of the async tests. Invoked with (err, result).\n\t */\n\t\n\t/**\n\t * The same as [`every`]{@link module:Collections.every} but runs only a single async operation at a time.\n\t *\n\t * @name everySeries\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.every]{@link module:Collections.every}\n\t * @alias allSeries\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A truth test to apply to each item in the\n\t * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n\t * which must be called with a boolean argument once it has completed. Invoked\n\t * with (item, callback).\n\t * @param {Function} [callback] - A callback which is called after all the\n\t * `iteratee` functions have finished. Result will be either `true` or `false`\n\t * depending on the values of the async tests. Invoked with (err, result).\n\t */\n\t\n\t/**\n\t * The base implementation of `_.property` without support for deep paths.\n\t *\n\t * @private\n\t * @param {string} key The key of the property to get.\n\t * @returns {Function} Returns the new accessor function.\n\t */\n\t\n\t/**\n\t * Returns a new array of all the values in `coll` which pass an async truth\n\t * test. This operation is performed in parallel, but the results array will be\n\t * in the same order as the original.\n\t *\n\t * @name filter\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @alias select\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n\t * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n\t * with a boolean argument once it has completed. Invoked with (item, callback).\n\t * @param {Function} [callback] - A callback which is called after all the\n\t * `iteratee` functions have finished. Invoked with (err, results).\n\t * @example\n\t *\n\t * async.filter(['file1','file2','file3'], function(filePath, callback) {\n\t * fs.access(filePath, function(err) {\n\t * callback(null, !err)\n\t * });\n\t * }, function(err, results) {\n\t * // results now equals an array of the existing files\n\t * });\n\t */\n\t\n\t/**\n\t * The same as [`filter`]{@link module:Collections.filter} but runs a maximum of `limit` async operations at a\n\t * time.\n\t *\n\t * @name filterLimit\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.filter]{@link module:Collections.filter}\n\t * @alias selectLimit\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {number} limit - The maximum number of async operations at a time.\n\t * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n\t * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n\t * with a boolean argument once it has completed. Invoked with (item, callback).\n\t * @param {Function} [callback] - A callback which is called after all the\n\t * `iteratee` functions have finished. Invoked with (err, results).\n\t */\n\t\n\t/**\n\t * The same as [`filter`]{@link module:Collections.filter} but runs only a single async operation at a time.\n\t *\n\t * @name filterSeries\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.filter]{@link module:Collections.filter}\n\t * @alias selectSeries\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n\t * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n\t * with a boolean argument once it has completed. Invoked with (item, callback).\n\t * @param {Function} [callback] - A callback which is called after all the\n\t * `iteratee` functions have finished. Invoked with (err, results)\n\t */\n\t\n\t/**\n\t * Logs the result of an `async` function to the `console`. Only works in\n\t * Node.js or in browsers that support `console.log` and `console.error` (such\n\t * as FF and Chrome). If multiple arguments are returned from the async\n\t * function, `console.log` is called on each argument in order.\n\t *\n\t * @name log\n\t * @static\n\t * @memberOf module:Utils\n\t * @method\n\t * @category Util\n\t * @param {Function} function - The function you want to eventually apply all\n\t * arguments to.\n\t * @param {...*} arguments... - Any number of arguments to apply to the function.\n\t * @example\n\t *\n\t * // in a module\n\t * var hello = function(name, callback) {\n\t * setTimeout(function() {\n\t * callback(null, 'hello ' + name);\n\t * }, 1000);\n\t * };\n\t *\n\t * // in the node repl\n\t * node> async.log(hello, 'world');\n\t * 'hello world'\n\t */\n\tconsoleFunc('log');\n\t\n\t/**\n\t * A relative of [`map`]{@link module:Collections.map}, designed for use with objects.\n\t *\n\t * Produces a new Object by mapping each value of `obj` through the `iteratee`\n\t * function. The `iteratee` is called each `value` and `key` from `obj` and a\n\t * callback for when it has finished processing. Each of these callbacks takes\n\t * two arguments: an `error`, and the transformed item from `obj`. If `iteratee`\n\t * passes an error to its callback, the main `callback` (for the `mapValues`\n\t * function) is immediately called with the error.\n\t *\n\t * Note, the order of the keys in the result is not guaranteed. The keys will\n\t * be roughly in the order they complete, (but this is very engine-specific)\n\t *\n\t * @name mapValues\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @category Collection\n\t * @param {Object} obj - A collection to iterate over.\n\t * @param {Function} iteratee - A function to apply to each value and key in\n\t * `coll`. The iteratee is passed a `callback(err, transformed)` which must be\n\t * called once it has completed with an error (which can be `null`) and a\n\t * transformed value. Invoked with (value, key, callback).\n\t * @param {Function} [callback] - A callback which is called when all `iteratee`\n\t * functions have finished, or an error occurs. `result` is a new object consisting\n\t * of each key from `obj`, with each transformed value on the right-hand side.\n\t * Invoked with (err, result).\n\t * @example\n\t *\n\t * async.mapValues({\n\t * f1: 'file1',\n\t * f2: 'file2',\n\t * f3: 'file3'\n\t * }, function (file, key, callback) {\n\t * fs.stat(file, callback);\n\t * }, function(err, result) {\n\t * // result is now a map of stats for each file, e.g.\n\t * // {\n\t * // f1: [stats for file1],\n\t * // f2: [stats for file2],\n\t * // f3: [stats for file3]\n\t * // }\n\t * });\n\t */\n\t\n\t/**\n\t * The same as [`mapValues`]{@link module:Collections.mapValues} but runs only a single async operation at a time.\n\t *\n\t * @name mapValuesSeries\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.mapValues]{@link module:Collections.mapValues}\n\t * @category Collection\n\t * @param {Object} obj - A collection to iterate over.\n\t * @param {Function} iteratee - A function to apply to each value in `obj`.\n\t * The iteratee is passed a `callback(err, transformed)` which must be called\n\t * once it has completed with an error (which can be `null`) and a\n\t * transformed value. Invoked with (value, key, callback).\n\t * @param {Function} [callback] - A callback which is called when all `iteratee`\n\t * functions have finished, or an error occurs. `result` is a new object consisting\n\t * of each key from `obj`, with each transformed value on the right-hand side.\n\t * Invoked with (err, result).\n\t */\n\t\n\t/**\n\t * Calls `callback` on a later loop around the event loop. In Node.js this just\n\t * calls `setImmediate`. In the browser it will use `setImmediate` if\n\t * available, otherwise `setTimeout(callback, 0)`, which means other higher\n\t * priority events may precede the execution of `callback`.\n\t *\n\t * This is used internally for browser-compatibility purposes.\n\t *\n\t * @name nextTick\n\t * @static\n\t * @memberOf module:Utils\n\t * @method\n\t * @alias setImmediate\n\t * @category Util\n\t * @param {Function} callback - The function to call on a later loop around\n\t * the event loop. Invoked with (args...).\n\t * @param {...*} args... - any number of additional arguments to pass to the\n\t * callback on the next tick.\n\t * @example\n\t *\n\t * var call_order = [];\n\t * async.nextTick(function() {\n\t * call_order.push('two');\n\t * // call_order now equals ['one','two']\n\t * });\n\t * call_order.push('one');\n\t *\n\t * async.setImmediate(function (a, b, c) {\n\t * // a, b, and c equal 1, 2, and 3\n\t * }, 1, 2, 3);\n\t */\n\tvar _defer$1;\n\t\n\tif (hasNextTick) {\n\t _defer$1 = process.nextTick;\n\t} else if (hasSetImmediate) {\n\t _defer$1 = setImmediate;\n\t} else {\n\t _defer$1 = fallback;\n\t}\n\t\n\twrap(_defer$1);\n\t\n\t/**\n\t * Calls `callback` on a later loop around the event loop. In Node.js this just\n\t * calls `setImmediate`. In the browser it will use `setImmediate` if\n\t * available, otherwise `setTimeout(callback, 0)`, which means other higher\n\t * priority events may precede the execution of `callback`.\n\t *\n\t * This is used internally for browser-compatibility purposes.\n\t *\n\t * @name setImmediate\n\t * @static\n\t * @memberOf module:Utils\n\t * @method\n\t * @alias nextTick\n\t * @category Util\n\t * @param {Function} callback - The function to call on a later loop around\n\t * the event loop. Invoked with (args...).\n\t * @param {...*} args... - any number of additional arguments to pass to the\n\t * callback on the next tick.\n\t * @example\n\t *\n\t * var call_order = [];\n\t * async.nextTick(function() {\n\t * call_order.push('two');\n\t * // call_order now equals ['one','two']\n\t * });\n\t * call_order.push('one');\n\t *\n\t * async.setImmediate(function (a, b, c) {\n\t * // a, b, and c equal 1, 2, and 3\n\t * }, 1, 2, 3);\n\t */\n\t\n\t/**\n\t * A queue of tasks for the worker function to complete.\n\t * @typedef {Object} QueueObject\n\t * @memberOf module:ControlFlow\n\t * @property {Function} length - a function returning the number of items\n\t * waiting to be processed. Invoke with `queue.length()`.\n\t * @property {boolean} started - a boolean indicating whether or not any\n\t * items have been pushed and processed by the queue.\n\t * @property {Function} running - a function returning the number of items\n\t * currently being processed. Invoke with `queue.running()`.\n\t * @property {Function} workersList - a function returning the array of items\n\t * currently being processed. Invoke with `queue.workersList()`.\n\t * @property {Function} idle - a function returning false if there are items\n\t * waiting or being processed, or true if not. Invoke with `queue.idle()`.\n\t * @property {number} concurrency - an integer for determining how many `worker`\n\t * functions should be run in parallel. This property can be changed after a\n\t * `queue` is created to alter the concurrency on-the-fly.\n\t * @property {Function} push - add a new task to the `queue`. Calls `callback`\n\t * once the `worker` has finished processing the task. Instead of a single task,\n\t * a `tasks` array can be submitted. The respective callback is used for every\n\t * task in the list. Invoke with `queue.push(task, [callback])`,\n\t * @property {Function} unshift - add a new task to the front of the `queue`.\n\t * Invoke with `queue.unshift(task, [callback])`.\n\t * @property {Function} saturated - a callback that is called when the number of\n\t * running workers hits the `concurrency` limit, and further tasks will be\n\t * queued.\n\t * @property {Function} unsaturated - a callback that is called when the number\n\t * of running workers is less than the `concurrency` & `buffer` limits, and\n\t * further tasks will not be queued.\n\t * @property {number} buffer - A minimum threshold buffer in order to say that\n\t * the `queue` is `unsaturated`.\n\t * @property {Function} empty - a callback that is called when the last item\n\t * from the `queue` is given to a `worker`.\n\t * @property {Function} drain - a callback that is called when the last item\n\t * from the `queue` has returned from the `worker`.\n\t * @property {Function} error - a callback that is called when a task errors.\n\t * Has the signature `function(error, task)`.\n\t * @property {boolean} paused - a boolean for determining whether the queue is\n\t * in a paused state.\n\t * @property {Function} pause - a function that pauses the processing of tasks\n\t * until `resume()` is called. Invoke with `queue.pause()`.\n\t * @property {Function} resume - a function that resumes the processing of\n\t * queued tasks when the queue is paused. Invoke with `queue.resume()`.\n\t * @property {Function} kill - a function that removes the `drain` callback and\n\t * empties remaining tasks from the queue forcing it to go idle. Invoke with `queue.kill()`.\n\t */\n\t\n\t/**\n\t * Creates a `queue` object with the specified `concurrency`. Tasks added to the\n\t * `queue` are processed in parallel (up to the `concurrency` limit). If all\n\t * `worker`s are in progress, the task is queued until one becomes available.\n\t * Once a `worker` completes a `task`, that `task`'s callback is called.\n\t *\n\t * @name queue\n\t * @static\n\t * @memberOf module:ControlFlow\n\t * @method\n\t * @category Control Flow\n\t * @param {Function} worker - An asynchronous function for processing a queued\n\t * task, which must call its `callback(err)` argument when finished, with an\n\t * optional `error` as an argument. If you want to handle errors from an\n\t * individual task, pass a callback to `q.push()`. Invoked with\n\t * (task, callback).\n\t * @param {number} [concurrency=1] - An `integer` for determining how many\n\t * `worker` functions should be run in parallel. If omitted, the concurrency\n\t * defaults to `1`. If the concurrency is `0`, an error is thrown.\n\t * @returns {module:ControlFlow.QueueObject} A queue object to manage the tasks. Callbacks can\n\t * attached as certain properties to listen for specific events during the\n\t * lifecycle of the queue.\n\t * @example\n\t *\n\t * // create a queue object with concurrency 2\n\t * var q = async.queue(function(task, callback) {\n\t * console.log('hello ' + task.name);\n\t * callback();\n\t * }, 2);\n\t *\n\t * // assign a callback\n\t * q.drain = function() {\n\t * console.log('all items have been processed');\n\t * };\n\t *\n\t * // add some items to the queue\n\t * q.push({name: 'foo'}, function(err) {\n\t * console.log('finished processing foo');\n\t * });\n\t * q.push({name: 'bar'}, function (err) {\n\t * console.log('finished processing bar');\n\t * });\n\t *\n\t * // add some items to the queue (batch-wise)\n\t * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) {\n\t * console.log('finished processing item');\n\t * });\n\t *\n\t * // add some items to the front of the queue\n\t * q.unshift({name: 'bar'}, function (err) {\n\t * console.log('finished processing bar');\n\t * });\n\t */\n\t\n\t/**\n\t * The same as [async.queue]{@link module:ControlFlow.queue} only tasks are assigned a priority and\n\t * completed in ascending priority order.\n\t *\n\t * @name priorityQueue\n\t * @static\n\t * @memberOf module:ControlFlow\n\t * @method\n\t * @see [async.queue]{@link module:ControlFlow.queue}\n\t * @category Control Flow\n\t * @param {Function} worker - An asynchronous function for processing a queued\n\t * task, which must call its `callback(err)` argument when finished, with an\n\t * optional `error` as an argument. If you want to handle errors from an\n\t * individual task, pass a callback to `q.push()`. Invoked with\n\t * (task, callback).\n\t * @param {number} concurrency - An `integer` for determining how many `worker`\n\t * functions should be run in parallel. If omitted, the concurrency defaults to\n\t * `1`. If the concurrency is `0`, an error is thrown.\n\t * @returns {module:ControlFlow.QueueObject} A priorityQueue object to manage the tasks. There are two\n\t * differences between `queue` and `priorityQueue` objects:\n\t * * `push(task, priority, [callback])` - `priority` should be a number. If an\n\t * array of `tasks` is given, all tasks will be assigned the same priority.\n\t * * The `unshift` method was removed.\n\t */\n\t\n\t/**\n\t * The opposite of [`filter`]{@link module:Collections.filter}. Removes values that pass an `async` truth test.\n\t *\n\t * @name reject\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.filter]{@link module:Collections.filter}\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n\t * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n\t * with a boolean argument once it has completed. Invoked with (item, callback).\n\t * @param {Function} [callback] - A callback which is called after all the\n\t * `iteratee` functions have finished. Invoked with (err, results).\n\t * @example\n\t *\n\t * async.reject(['file1','file2','file3'], function(filePath, callback) {\n\t * fs.access(filePath, function(err) {\n\t * callback(null, !err)\n\t * });\n\t * }, function(err, results) {\n\t * // results now equals an array of missing files\n\t * createFiles(results);\n\t * });\n\t */\n\t\n\t/**\n\t * The same as [`reject`]{@link module:Collections.reject} but runs a maximum of `limit` async operations at a\n\t * time.\n\t *\n\t * @name rejectLimit\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.reject]{@link module:Collections.reject}\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {number} limit - The maximum number of async operations at a time.\n\t * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n\t * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n\t * with a boolean argument once it has completed. Invoked with (item, callback).\n\t * @param {Function} [callback] - A callback which is called after all the\n\t * `iteratee` functions have finished. Invoked with (err, results).\n\t */\n\t\n\t/**\n\t * The same as [`reject`]{@link module:Collections.reject} but runs only a single async operation at a time.\n\t *\n\t * @name rejectSeries\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.reject]{@link module:Collections.reject}\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n\t * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n\t * with a boolean argument once it has completed. Invoked with (item, callback).\n\t * @param {Function} [callback] - A callback which is called after all the\n\t * `iteratee` functions have finished. Invoked with (err, results).\n\t */\n\t\n\t/**\n\t * Creates a function that returns `value`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @category Util\n\t * @param {*} value The value to return from the new function.\n\t * @returns {Function} Returns the new constant function.\n\t * @example\n\t *\n\t * var objects = _.times(2, _.constant({ 'a': 1 }));\n\t *\n\t * console.log(objects);\n\t * // => [{ 'a': 1 }, { 'a': 1 }]\n\t *\n\t * console.log(objects[0] === objects[1]);\n\t * // => true\n\t */\n\t\n\t/**\n\t * A close relative of [`retry`]{@link module:ControlFlow.retry}. This method wraps a task and makes it\n\t * retryable, rather than immediately calling it with retries.\n\t *\n\t * @name retryable\n\t * @static\n\t * @memberOf module:ControlFlow\n\t * @method\n\t * @see [async.retry]{@link module:ControlFlow.retry}\n\t * @category Control Flow\n\t * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional\n\t * options, exactly the same as from `retry`\n\t * @param {Function} task - the asynchronous function to wrap\n\t * @returns {Functions} The wrapped function, which when invoked, will retry on\n\t * an error, based on the parameters specified in `opts`.\n\t * @example\n\t *\n\t * async.auto({\n\t * dep1: async.retryable(3, getFromFlakyService),\n\t * process: [\"dep1\", async.retryable(3, function (results, cb) {\n\t * maybeProcessData(results.dep1, cb);\n\t * })]\n\t * }, callback);\n\t */\n\t\n\t/**\n\t * Returns `true` if at least one element in the `coll` satisfies an async test.\n\t * If any iteratee call returns `true`, the main `callback` is immediately\n\t * called.\n\t *\n\t * @name some\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @alias any\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A truth test to apply to each item in the array\n\t * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n\t * be called with a boolean argument once it has completed. Invoked with\n\t * (item, callback).\n\t * @param {Function} [callback] - A callback which is called as soon as any\n\t * iteratee returns `true`, or after all the iteratee functions have finished.\n\t * Result will be either `true` or `false` depending on the values of the async\n\t * tests. Invoked with (err, result).\n\t * @example\n\t *\n\t * async.some(['file1','file2','file3'], function(filePath, callback) {\n\t * fs.access(filePath, function(err) {\n\t * callback(null, !err)\n\t * });\n\t * }, function(err, result) {\n\t * // if result is true then at least one of the files exists\n\t * });\n\t */\n\t\n\t/**\n\t * The same as [`some`]{@link module:Collections.some} but runs a maximum of `limit` async operations at a time.\n\t *\n\t * @name someLimit\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.some]{@link module:Collections.some}\n\t * @alias anyLimit\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {number} limit - The maximum number of async operations at a time.\n\t * @param {Function} iteratee - A truth test to apply to each item in the array\n\t * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n\t * be called with a boolean argument once it has completed. Invoked with\n\t * (item, callback).\n\t * @param {Function} [callback] - A callback which is called as soon as any\n\t * iteratee returns `true`, or after all the iteratee functions have finished.\n\t * Result will be either `true` or `false` depending on the values of the async\n\t * tests. Invoked with (err, result).\n\t */\n\t\n\t/**\n\t * The same as [`some`]{@link module:Collections.some} but runs only a single async operation at a time.\n\t *\n\t * @name someSeries\n\t * @static\n\t * @memberOf module:Collections\n\t * @method\n\t * @see [async.some]{@link module:Collections.some}\n\t * @alias anySeries\n\t * @category Collection\n\t * @param {Array|Iterable|Object} coll - A collection to iterate over.\n\t * @param {Function} iteratee - A truth test to apply to each item in the array\n\t * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n\t * be called with a boolean argument once it has completed. Invoked with\n\t * (item, callback).\n\t * @param {Function} [callback] - A callback which is called as soon as any\n\t * iteratee returns `true`, or after all the iteratee functions have finished.\n\t * Result will be either `true` or `false` depending on the values of the async\n\t * tests. Invoked with (err, result).\n\t */\n\t\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeCeil = Math.ceil;\n\tvar nativeMax$1 = Math.max;\n\t\n\t/**\n\t * Calls the `iteratee` function `n` times, and accumulates results in the same\n\t * manner you would use with [map]{@link module:Collections.map}.\n\t *\n\t * @name times\n\t * @static\n\t * @memberOf module:ControlFlow\n\t * @method\n\t * @see [async.map]{@link module:Collections.map}\n\t * @category Control Flow\n\t * @param {number} n - The number of times to run the function.\n\t * @param {Function} iteratee - The function to call `n` times. Invoked with the\n\t * iteration index and a callback (n, next).\n\t * @param {Function} callback - see {@link module:Collections.map}.\n\t * @example\n\t *\n\t * // Pretend this is some complicated async factory\n\t * var createUser = function(id, callback) {\n\t * callback(null, {\n\t * id: 'user' + id\n\t * });\n\t * };\n\t *\n\t * // generate 5 users\n\t * async.times(5, function(n, next) {\n\t * createUser(n, function(err, user) {\n\t * next(err, user);\n\t * });\n\t * }, function(err, users) {\n\t * // we should now have 5 users\n\t * });\n\t */\n\t\n\t/**\n\t * The same as [times]{@link module:ControlFlow.times} but runs only a single async operation at a time.\n\t *\n\t * @name timesSeries\n\t * @static\n\t * @memberOf module:ControlFlow\n\t * @method\n\t * @see [async.times]{@link module:ControlFlow.times}\n\t * @category Control Flow\n\t * @param {number} n - The number of times to run the function.\n\t * @param {Function} iteratee - The function to call `n` times. Invoked with the\n\t * iteration index and a callback (n, next).\n\t * @param {Function} callback - see {@link module:Collections.map}.\n\t */\n\t\n\t/**\n\t * Undoes a [memoize]{@link module:Utils.memoize}d function, reverting it to the original,\n\t * unmemoized form. Handy for testing.\n\t *\n\t * @name unmemoize\n\t * @static\n\t * @memberOf module:Utils\n\t * @method\n\t * @see [async.memoize]{@link module:Utils.memoize}\n\t * @category Util\n\t * @param {Function} fn - the memoized function\n\t * @returns {Function} a function that calls the original unmemoized function\n\t */\n\t\n\t/**\n\t * Runs the `tasks` array of functions in series, each passing their results to\n\t * the next in the array. However, if any of the `tasks` pass an error to their\n\t * own callback, the next function is not executed, and the main `callback` is\n\t * immediately called with the error.\n\t *\n\t * @name waterfall\n\t * @static\n\t * @memberOf module:ControlFlow\n\t * @method\n\t * @category Control Flow\n\t * @param {Array} tasks - An array of functions to run, each function is passed\n\t * a `callback(err, result1, result2, ...)` it must call on completion. The\n\t * first argument is an error (which can be `null`) and any further arguments\n\t * will be passed as arguments in order to the next task.\n\t * @param {Function} [callback] - An optional callback to run once all the\n\t * functions have completed. This will be passed the results of the last task's\n\t * callback. Invoked with (err, [results]).\n\t * @returns undefined\n\t * @example\n\t *\n\t * async.waterfall([\n\t * function(callback) {\n\t * callback(null, 'one', 'two');\n\t * },\n\t * function(arg1, arg2, callback) {\n\t * // arg1 now equals 'one' and arg2 now equals 'two'\n\t * callback(null, 'three');\n\t * },\n\t * function(arg1, callback) {\n\t * // arg1 now equals 'three'\n\t * callback(null, 'done');\n\t * }\n\t * ], function (err, result) {\n\t * // result now equals 'done'\n\t * });\n\t *\n\t * // Or, with named functions:\n\t * async.waterfall([\n\t * myFirstFunction,\n\t * mySecondFunction,\n\t * myLastFunction,\n\t * ], function (err, result) {\n\t * // result now equals 'done'\n\t * });\n\t * function myFirstFunction(callback) {\n\t * callback(null, 'one', 'two');\n\t * }\n\t * function mySecondFunction(arg1, arg2, callback) {\n\t * // arg1 now equals 'one' and arg2 now equals 'two'\n\t * callback(null, 'three');\n\t * }\n\t * function myLastFunction(arg1, callback) {\n\t * // arg1 now equals 'three'\n\t * callback(null, 'done');\n\t * }\n\t */\n\t\n\t/**\n\t * Async is a utility module which provides straight-forward, powerful functions\n\t * for working with asynchronous JavaScript. Although originally designed for\n\t * use with [Node.js](http://nodejs.org) and installable via\n\t * `npm install --save async`, it can also be used directly in the browser.\n\t * @module async\n\t */\n\t\n\t/**\n\t * A collection of `async` functions for manipulating collections, such as\n\t * arrays and objects.\n\t * @module Collections\n\t */\n\t\n\t/**\n\t * A collection of `async` functions for controlling the flow through a script.\n\t * @module ControlFlow\n\t */\n\t\n\t /**\n\t * A collection of `async` utility functions.\n\t * @module Utils\n\t */\n\t\n\t/**\n\t * @hidden\n\t */\n\tvar errorCodeLookup;\n\t/**\n\t * Lazily construct error code lookup, since DropboxJS might be loaded *after* BrowserFS (or not at all!)\n\t * @hidden\n\t */\n\tfunction constructErrorCodeLookup() {\n\t if (errorCodeLookup) {\n\t return;\n\t }\n\t errorCodeLookup = {};\n\t // This indicates a network transmission error on modern browsers. Internet Explorer might cause this code to be reported on some API server errors.\n\t errorCodeLookup[Dropbox.ApiError.NETWORK_ERROR] = ErrorCode.EIO;\n\t // This happens when the contentHash parameter passed to a Dropbox.Client#readdir or Dropbox.Client#stat matches the most recent content, so the API call response is omitted, to save bandwidth.\n\t // errorCodeLookup[Dropbox.ApiError.NO_CONTENT];\n\t // The error property on {Dropbox.ApiError#response} should indicate which input parameter is invalid and why.\n\t errorCodeLookup[Dropbox.ApiError.INVALID_PARAM] = ErrorCode.EINVAL;\n\t // The OAuth token used for the request will never become valid again, so the user should be re-authenticated.\n\t errorCodeLookup[Dropbox.ApiError.INVALID_TOKEN] = ErrorCode.EPERM;\n\t // This indicates a bug in dropbox.js and should never occur under normal circumstances.\n\t // ^ Actually, that's false. This occurs when you try to move folders to themselves, or move a file over another file.\n\t errorCodeLookup[Dropbox.ApiError.OAUTH_ERROR] = ErrorCode.EPERM;\n\t // This happens when trying to read from a non-existing file, readdir a non-existing directory, write a file into a non-existing directory, etc.\n\t errorCodeLookup[Dropbox.ApiError.NOT_FOUND] = ErrorCode.ENOENT;\n\t // This indicates a bug in dropbox.js and should never occur under normal circumstances.\n\t errorCodeLookup[Dropbox.ApiError.INVALID_METHOD] = ErrorCode.EINVAL;\n\t // This happens when a Dropbox.Client#readdir or Dropbox.Client#stat call would return more than a maximum amount of directory entries.\n\t errorCodeLookup[Dropbox.ApiError.NOT_ACCEPTABLE] = ErrorCode.EINVAL;\n\t // This is used by some backend methods to indicate that the client needs to download server-side changes and perform conflict resolution. Under normal usage, errors with this code should never surface to the code using dropbox.js.\n\t errorCodeLookup[Dropbox.ApiError.CONFLICT] = ErrorCode.EINVAL;\n\t // Status value indicating that the application is making too many requests.\n\t errorCodeLookup[Dropbox.ApiError.RATE_LIMITED] = ErrorCode.EBUSY;\n\t // The request should be retried after some time.\n\t errorCodeLookup[Dropbox.ApiError.SERVER_ERROR] = ErrorCode.EBUSY;\n\t // Status value indicating that the user's Dropbox is over its storage quota.\n\t errorCodeLookup[Dropbox.ApiError.OVER_QUOTA] = ErrorCode.ENOSPC;\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction isFileInfo(cache) {\n\t return cache && cache.stat.isFile;\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction isDirInfo(cache) {\n\t return cache && cache.stat.isFolder;\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction isArrayBuffer(ab) {\n\t // Accept null / undefined, too.\n\t return ab === null || ab === undefined || (typeof (ab) === 'object' && typeof (ab['byteLength']) === 'number');\n\t}\n\t/**\n\t * Wraps a Dropbox client and caches operations.\n\t * @hidden\n\t */\n\tvar CachedDropboxClient = function CachedDropboxClient(client) {\n\t this._cache = {};\n\t this._client = client;\n\t};\n\tCachedDropboxClient.prototype.readdir = function readdir (p, cb) {\n\t var this$1 = this;\n\t\n\t var cacheInfo = this.getCachedDirInfo(p);\n\t this._wrap(function (interceptCb) {\n\t if (cacheInfo !== null && cacheInfo.contents) {\n\t this$1._client.readdir(p, {\n\t contentHash: cacheInfo.stat.contentHash\n\t }, interceptCb);\n\t }\n\t else {\n\t this$1._client.readdir(p, interceptCb);\n\t }\n\t }, function (err, filenames, stat, folderEntries) {\n\t if (err) {\n\t if (err.status === Dropbox.ApiError.NO_CONTENT && cacheInfo !== null) {\n\t cb(null, cacheInfo.contents.slice(0));\n\t }\n\t else {\n\t cb(err);\n\t }\n\t }\n\t else {\n\t this$1.updateCachedDirInfo(p, stat, filenames.slice(0));\n\t folderEntries.forEach(function (entry) {\n\t this$1.updateCachedInfo(path.join(p, entry.name), entry);\n\t });\n\t cb(null, filenames);\n\t }\n\t });\n\t};\n\tCachedDropboxClient.prototype.remove = function remove (p, cb) {\n\t var this$1 = this;\n\t\n\t this._wrap(function (interceptCb) {\n\t this$1._client.remove(p, interceptCb);\n\t }, function (err, stat) {\n\t if (!err) {\n\t this$1.updateCachedInfo(p, stat);\n\t }\n\t cb(err);\n\t });\n\t};\n\tCachedDropboxClient.prototype.move = function move (src, dest, cb) {\n\t var this$1 = this;\n\t\n\t this._wrap(function (interceptCb) {\n\t this$1._client.move(src, dest, interceptCb);\n\t }, function (err, stat) {\n\t if (!err) {\n\t this$1.deleteCachedInfo(src);\n\t this$1.updateCachedInfo(dest, stat);\n\t }\n\t cb(err);\n\t });\n\t};\n\tCachedDropboxClient.prototype.stat = function stat (p, cb) {\n\t var this$1 = this;\n\t\n\t this._wrap(function (interceptCb) {\n\t this$1._client.stat(p, interceptCb);\n\t }, function (err, stat) {\n\t if (!err) {\n\t this$1.updateCachedInfo(p, stat);\n\t }\n\t cb(err, stat);\n\t });\n\t};\n\tCachedDropboxClient.prototype.readFile = function readFile (p, cb) {\n\t var this$1 = this;\n\t\n\t var cacheInfo = this.getCachedFileInfo(p);\n\t if (cacheInfo !== null && cacheInfo.contents !== null) {\n\t // Try to use cached info; issue a stat to see if contents are up-to-date.\n\t this.stat(p, function (error, stat) {\n\t if (error) {\n\t cb(error);\n\t }\n\t else if (stat.contentHash === cacheInfo.stat.contentHash) {\n\t // No file changes.\n\t cb(error, cacheInfo.contents.slice(0), cacheInfo.stat);\n\t }\n\t else {\n\t // File changes; rerun to trigger actual readFile.\n\t this$1.readFile(p, cb);\n\t }\n\t });\n\t }\n\t else {\n\t this._wrap(function (interceptCb) {\n\t this$1._client.readFile(p, { arrayBuffer: true }, interceptCb);\n\t }, function (err, contents, stat) {\n\t if (!err) {\n\t this$1.updateCachedInfo(p, stat, contents.slice(0));\n\t }\n\t cb(err, contents, stat);\n\t });\n\t }\n\t};\n\tCachedDropboxClient.prototype.writeFile = function writeFile (p, contents, cb) {\n\t var this$1 = this;\n\t\n\t this._wrap(function (interceptCb) {\n\t this$1._client.writeFile(p, contents, interceptCb);\n\t }, function (err, stat) {\n\t if (!err) {\n\t this$1.updateCachedInfo(p, stat, contents.slice(0));\n\t }\n\t cb(err, stat);\n\t });\n\t};\n\tCachedDropboxClient.prototype.mkdir = function mkdir (p, cb) {\n\t var this$1 = this;\n\t\n\t this._wrap(function (interceptCb) {\n\t this$1._client.mkdir(p, interceptCb);\n\t }, function (err, stat) {\n\t if (!err) {\n\t this$1.updateCachedInfo(p, stat, []);\n\t }\n\t cb(err);\n\t });\n\t};\n\t/**\n\t * Wraps an operation such that we retry a failed operation 3 times.\n\t * Necessary to deal with Dropbox rate limiting.\n\t *\n\t * @param performOp Function that performs the operation. Will be called up to three times.\n\t * @param cb Called when the operation succeeds, fails in a non-temporary manner, or fails three times.\n\t */\n\tCachedDropboxClient.prototype._wrap = function _wrap (performOp, cb) {\n\t var numRun = 0;\n\t var interceptCb = function (error) {\n\t // Timeout duration, in seconds.\n\t var timeoutDuration = 2;\n\t if (error && 3 > (++numRun)) {\n\t switch (error.status) {\n\t case Dropbox.ApiError.SERVER_ERROR:\n\t case Dropbox.ApiError.NETWORK_ERROR:\n\t case Dropbox.ApiError.RATE_LIMITED:\n\t setTimeout(function () {\n\t performOp(interceptCb);\n\t }, timeoutDuration * 1000);\n\t break;\n\t default:\n\t cb.apply(null, arguments);\n\t break;\n\t }\n\t }\n\t else {\n\t cb.apply(null, arguments);\n\t }\n\t };\n\t performOp(interceptCb);\n\t};\n\tCachedDropboxClient.prototype.getCachedInfo = function getCachedInfo (p) {\n\t return this._cache[p.toLowerCase()];\n\t};\n\tCachedDropboxClient.prototype.putCachedInfo = function putCachedInfo (p, cache) {\n\t this._cache[p.toLowerCase()] = cache;\n\t};\n\tCachedDropboxClient.prototype.deleteCachedInfo = function deleteCachedInfo (p) {\n\t delete this._cache[p.toLowerCase()];\n\t};\n\tCachedDropboxClient.prototype.getCachedDirInfo = function getCachedDirInfo (p) {\n\t var info = this.getCachedInfo(p);\n\t if (isDirInfo(info)) {\n\t return info;\n\t }\n\t else {\n\t return null;\n\t }\n\t};\n\tCachedDropboxClient.prototype.getCachedFileInfo = function getCachedFileInfo (p) {\n\t var info = this.getCachedInfo(p);\n\t if (isFileInfo(info)) {\n\t return info;\n\t }\n\t else {\n\t return null;\n\t }\n\t};\n\tCachedDropboxClient.prototype.updateCachedDirInfo = function updateCachedDirInfo (p, stat, contents) {\n\t if ( contents === void 0 ) contents = null;\n\t\n\t var cachedInfo = this.getCachedInfo(p);\n\t // Dropbox uses the *contentHash* property for directories.\n\t // Ignore stat objects w/o a contentHash defined; those actually exist!!!\n\t // (Example: readdir returns an array of stat objs; stat objs for dirs in that context have no contentHash)\n\t if (stat.contentHash !== null && (cachedInfo === undefined || cachedInfo.stat.contentHash !== stat.contentHash)) {\n\t this.putCachedInfo(p, {\n\t stat: stat,\n\t contents: contents\n\t });\n\t }\n\t};\n\tCachedDropboxClient.prototype.updateCachedFileInfo = function updateCachedFileInfo (p, stat, contents) {\n\t if ( contents === void 0 ) contents = null;\n\t\n\t var cachedInfo = this.getCachedInfo(p);\n\t // Dropbox uses the *versionTag* property for files.\n\t // Ignore stat objects w/o a versionTag defined.\n\t if (stat.versionTag !== null && (cachedInfo === undefined || cachedInfo.stat.versionTag !== stat.versionTag)) {\n\t this.putCachedInfo(p, {\n\t stat: stat,\n\t contents: contents\n\t });\n\t }\n\t};\n\tCachedDropboxClient.prototype.updateCachedInfo = function updateCachedInfo (p, stat, contents) {\n\t if ( contents === void 0 ) contents = null;\n\t\n\t if (stat.isFile && isArrayBuffer(contents)) {\n\t this.updateCachedFileInfo(p, stat, contents);\n\t }\n\t else if (stat.isFolder && Array.isArray(contents)) {\n\t this.updateCachedDirInfo(p, stat, contents);\n\t }\n\t};\n\tvar DropboxFile = (function (PreloadFile$$1) {\n\t function DropboxFile(_fs, _path, _flag, _stat, contents) {\n\t PreloadFile$$1.call(this, _fs, _path, _flag, _stat, contents);\n\t }\n\t\n\t if ( PreloadFile$$1 ) DropboxFile.__proto__ = PreloadFile$$1;\n\t DropboxFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype );\n\t DropboxFile.prototype.constructor = DropboxFile;\n\t DropboxFile.prototype.sync = function sync (cb) {\n\t var this$1 = this;\n\t\n\t if (this.isDirty()) {\n\t var buffer$$1 = this.getBuffer(), arrayBuffer = buffer2ArrayBuffer(buffer$$1);\n\t this._fs._writeFileStrict(this.getPath(), arrayBuffer, function (e) {\n\t if (!e) {\n\t this$1.resetDirty();\n\t }\n\t cb(e);\n\t });\n\t }\n\t else {\n\t cb();\n\t }\n\t };\n\t DropboxFile.prototype.close = function close (cb) {\n\t this.sync(cb);\n\t };\n\t\n\t return DropboxFile;\n\t}(PreloadFile));\n\t/**\n\t * A read/write file system backed by Dropbox cloud storage.\n\t *\n\t * Uses the Dropbox V1 API.\n\t *\n\t * NOTE: You must use the v0.10 version of the [Dropbox JavaScript SDK](https://www.npmjs.com/package/dropbox).\n\t */\n\tvar DropboxFileSystem = (function (BaseFileSystem$$1) {\n\t function DropboxFileSystem(client, deprecateMsg) {\n\t if ( deprecateMsg === void 0 ) deprecateMsg = true;\n\t\n\t BaseFileSystem$$1.call(this);\n\t this._client = new CachedDropboxClient(client);\n\t deprecationMessage(deprecateMsg, DropboxFileSystem.Name, { client: \"authenticated dropbox client instance\" });\n\t constructErrorCodeLookup();\n\t }\n\t\n\t if ( BaseFileSystem$$1 ) DropboxFileSystem.__proto__ = BaseFileSystem$$1;\n\t DropboxFileSystem.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype );\n\t DropboxFileSystem.prototype.constructor = DropboxFileSystem;\n\t /**\n\t * Creates a new DropboxFileSystem instance with the given options.\n\t * Must be given an *authenticated* DropboxJS client from the old v0.10 version of the Dropbox JS SDK.\n\t */\n\t DropboxFileSystem.Create = function Create (opts, cb) {\n\t cb(null, new DropboxFileSystem(opts.client, false));\n\t };\n\t DropboxFileSystem.isAvailable = function isAvailable () {\n\t // Checks if the Dropbox library is loaded.\n\t return typeof Dropbox !== 'undefined';\n\t };\n\t DropboxFileSystem.prototype.getName = function getName () {\n\t return DropboxFileSystem.Name;\n\t };\n\t DropboxFileSystem.prototype.isReadOnly = function isReadOnly () {\n\t return false;\n\t };\n\t // Dropbox doesn't support symlinks, properties, or synchronous calls\n\t DropboxFileSystem.prototype.supportsSymlinks = function supportsSymlinks () {\n\t return false;\n\t };\n\t DropboxFileSystem.prototype.supportsProps = function supportsProps () {\n\t return false;\n\t };\n\t DropboxFileSystem.prototype.supportsSynch = function supportsSynch () {\n\t return false;\n\t };\n\t DropboxFileSystem.prototype.empty = function empty (mainCb) {\n\t var this$1 = this;\n\t\n\t this._client.readdir('/', function (error, files) {\n\t if (error) {\n\t mainCb(this$1.convert(error, '/'));\n\t }\n\t else {\n\t var deleteFile = function (file, cb) {\n\t var p = path.join('/', file);\n\t this$1._client.remove(p, function (err) {\n\t cb(err ? this$1.convert(err, p) : null);\n\t });\n\t };\n\t var finished = function (err) {\n\t if (err) {\n\t mainCb(err);\n\t }\n\t else {\n\t mainCb();\n\t }\n\t };\n\t // XXX: typing is to get around overly-restrictive ErrorCallback typing.\n\t eachLimit(files, deleteFile, finished);\n\t }\n\t });\n\t };\n\t DropboxFileSystem.prototype.rename = function rename (oldPath, newPath, cb) {\n\t var this$1 = this;\n\t\n\t this._client.move(oldPath, newPath, function (error) {\n\t if (error) {\n\t // the move is permitted if newPath is a file.\n\t // Check if this is the case, and remove if so.\n\t this$1._client.stat(newPath, function (error2, stat) {\n\t if (error2 || stat.isFolder) {\n\t var missingPath = error.response.error.indexOf(oldPath) > -1 ? oldPath : newPath;\n\t cb(this$1.convert(error, missingPath));\n\t }\n\t else {\n\t // Delete file, repeat rename.\n\t this$1._client.remove(newPath, function (error2) {\n\t if (error2) {\n\t cb(this$1.convert(error2, newPath));\n\t }\n\t else {\n\t this$1.rename(oldPath, newPath, cb);\n\t }\n\t });\n\t }\n\t });\n\t }\n\t else {\n\t cb();\n\t }\n\t });\n\t };\n\t DropboxFileSystem.prototype.stat = function stat (path$$1, isLstat, cb) {\n\t var this$1 = this;\n\t\n\t // Ignore lstat case -- Dropbox doesn't support symlinks\n\t // Stat the file\n\t this._client.stat(path$$1, function (error, stat) {\n\t if (error) {\n\t cb(this$1.convert(error, path$$1));\n\t }\n\t else if (stat && stat.isRemoved) {\n\t // Dropbox keeps track of deleted files, so if a file has existed in the\n\t // past but doesn't any longer, you wont get an error\n\t cb(ApiError.FileError(ErrorCode.ENOENT, path$$1));\n\t }\n\t else {\n\t var stats = new Stats(this$1._statType(stat), stat.size);\n\t return cb(null, stats);\n\t }\n\t });\n\t };\n\t DropboxFileSystem.prototype.open = function open (path$$1, flags, mode, cb) {\n\t var this$1 = this;\n\t\n\t // Try and get the file's contents\n\t this._client.readFile(path$$1, function (error, content, dbStat) {\n\t if (error) {\n\t // If the file's being opened for reading and doesn't exist, return an\n\t // error\n\t if (flags.isReadable()) {\n\t cb(this$1.convert(error, path$$1));\n\t }\n\t else {\n\t switch (error.status) {\n\t // If it's being opened for writing or appending, create it so that\n\t // it can be written to\n\t case Dropbox.ApiError.NOT_FOUND:\n\t var ab = new ArrayBuffer(0);\n\t return this$1._writeFileStrict(path$$1, ab, function (error2, stat) {\n\t if (error2) {\n\t cb(error2);\n\t }\n\t else {\n\t var file = this$1._makeFile(path$$1, flags, stat, arrayBuffer2Buffer(ab));\n\t cb(null, file);\n\t }\n\t });\n\t default:\n\t return cb(this$1.convert(error, path$$1));\n\t }\n\t }\n\t }\n\t else {\n\t // No error\n\t var buffer$$1;\n\t // Dropbox.js seems to set `content` to `null` rather than to an empty\n\t // buffer when reading an empty file. Not sure why this is.\n\t if (content === null) {\n\t buffer$$1 = emptyBuffer();\n\t }\n\t else {\n\t buffer$$1 = arrayBuffer2Buffer(content);\n\t }\n\t var file = this$1._makeFile(path$$1, flags, dbStat, buffer$$1);\n\t return cb(null, file);\n\t }\n\t });\n\t };\n\t DropboxFileSystem.prototype._writeFileStrict = function _writeFileStrict (p, data, cb) {\n\t var this$1 = this;\n\t\n\t var parent = path.dirname(p);\n\t this.stat(parent, false, function (error, stat) {\n\t if (error) {\n\t cb(ApiError.FileError(ErrorCode.ENOENT, parent));\n\t }\n\t else {\n\t this$1._client.writeFile(p, data, function (error2, stat) {\n\t if (error2) {\n\t cb(this$1.convert(error2, p));\n\t }\n\t else {\n\t cb(null, stat);\n\t }\n\t });\n\t }\n\t });\n\t };\n\t /**\n\t * Private\n\t * Returns a BrowserFS object representing the type of a Dropbox.js stat object\n\t */\n\t DropboxFileSystem.prototype._statType = function _statType (stat) {\n\t return stat.isFile ? FileType.FILE : FileType.DIRECTORY;\n\t };\n\t /**\n\t * Private\n\t * Returns a BrowserFS object representing a File, created from the data\n\t * returned by calls to the Dropbox API.\n\t */\n\t DropboxFileSystem.prototype._makeFile = function _makeFile (path$$1, flag, stat, buffer$$1) {\n\t var type = this._statType(stat);\n\t var stats = new Stats(type, stat.size);\n\t return new DropboxFile(this, path$$1, flag, stats, buffer$$1);\n\t };\n\t /**\n\t * Private\n\t * Delete a file or directory from Dropbox\n\t * isFile should reflect which call was made to remove the it (`unlink` or\n\t * `rmdir`). If this doesn't match what's actually at `path`, an error will be\n\t * returned\n\t */\n\t DropboxFileSystem.prototype._remove = function _remove (path$$1, cb, isFile) {\n\t var this$1 = this;\n\t\n\t this._client.stat(path$$1, function (error, stat) {\n\t if (error) {\n\t cb(this$1.convert(error, path$$1));\n\t }\n\t else {\n\t if (stat.isFile && !isFile) {\n\t cb(ApiError.FileError(ErrorCode.ENOTDIR, path$$1));\n\t }\n\t else if (!stat.isFile && isFile) {\n\t cb(ApiError.FileError(ErrorCode.EISDIR, path$$1));\n\t }\n\t else {\n\t this$1._client.remove(path$$1, function (error) {\n\t if (error) {\n\t cb(this$1.convert(error, path$$1));\n\t }\n\t else {\n\t cb(null);\n\t }\n\t });\n\t }\n\t }\n\t });\n\t };\n\t /**\n\t * Delete a file\n\t */\n\t DropboxFileSystem.prototype.unlink = function unlink (path$$1, cb) {\n\t this._remove(path$$1, cb, true);\n\t };\n\t /**\n\t * Delete a directory\n\t */\n\t DropboxFileSystem.prototype.rmdir = function rmdir (path$$1, cb) {\n\t this._remove(path$$1, cb, false);\n\t };\n\t /**\n\t * Create a directory\n\t */\n\t DropboxFileSystem.prototype.mkdir = function mkdir (p, mode, cb) {\n\t var this$1 = this;\n\t\n\t // Dropbox.js' client.mkdir() behaves like `mkdir -p`, i.e. it creates a\n\t // directory and all its ancestors if they don't exist.\n\t // Node's fs.mkdir() behaves like `mkdir`, i.e. it throws an error if an attempt\n\t // is made to create a directory without a parent.\n\t // To handle this inconsistency, a check for the existence of `path`'s parent\n\t // must be performed before it is created, and an error thrown if it does\n\t // not exist\n\t var parent = path.dirname(p);\n\t this._client.stat(parent, function (error, stat) {\n\t if (error) {\n\t cb(this$1.convert(error, parent));\n\t }\n\t else {\n\t this$1._client.mkdir(p, function (error) {\n\t if (error) {\n\t cb(ApiError.FileError(ErrorCode.EEXIST, p));\n\t }\n\t else {\n\t cb(null);\n\t }\n\t });\n\t }\n\t });\n\t };\n\t /**\n\t * Get the names of the files in a directory\n\t */\n\t DropboxFileSystem.prototype.readdir = function readdir (path$$1, cb) {\n\t var this$1 = this;\n\t\n\t this._client.readdir(path$$1, function (error, files) {\n\t if (error) {\n\t return cb(this$1.convert(error));\n\t }\n\t else {\n\t return cb(null, files);\n\t }\n\t });\n\t };\n\t /**\n\t * Converts a Dropbox-JS error into a BFS error.\n\t */\n\t DropboxFileSystem.prototype.convert = function convert (err, path$$1) {\n\t if ( path$$1 === void 0 ) path$$1 = null;\n\t\n\t var errorCode = errorCodeLookup[err.status];\n\t if (errorCode === undefined) {\n\t errorCode = ErrorCode.EIO;\n\t }\n\t if (!path$$1) {\n\t return new ApiError(errorCode);\n\t }\n\t else {\n\t return ApiError.FileError(errorCode, path$$1);\n\t }\n\t };\n\t\n\t return DropboxFileSystem;\n\t}(BaseFileSystem));\n\t\n\tDropboxFileSystem.Name = \"Dropbox\";\n\tDropboxFileSystem.Options = {\n\t client: {\n\t type: \"object\",\n\t description: \"An *authenticated* Dropbox client. Must be from the 0.10 JS SDK.\",\n\t validator: function (opt, cb) {\n\t if (opt.isAuthenticated && opt.isAuthenticated()) {\n\t cb();\n\t }\n\t else {\n\t cb(new ApiError(ErrorCode.EINVAL, \"'client' option must be an authenticated Dropbox client from the v0.10 JS SDK.\"));\n\t }\n\t }\n\t }\n\t};\n\t\n\t/**\n\t * @hidden\n\t */\n\tfunction convertError(e, path$$1) {\n\t if ( path$$1 === void 0 ) path$$1 = '';\n\t\n\t var errno = e.errno;\n\t var parent = e.node;\n\t var paths = [];\n\t while (parent) {\n\t paths.unshift(parent.name);\n\t if (parent === parent.parent) {\n\t break;\n\t }\n\t parent = parent.parent;\n\t }\n\t return new ApiError(errno, ErrorStrings[errno], paths.length > 0 ? '/' + paths.join('/') : path$$1);\n\t}\n\tvar EmscriptenFile = (function (BaseFile$$1) {\n\t function EmscriptenFile(_fs, _FS, _path, _stream) {\n\t BaseFile$$1.call(this);\n\t this._fs = _fs;\n\t this._FS = _FS;\n\t this._path = _path;\n\t this._stream = _stream;\n\t }\n\t\n\t if ( BaseFile$$1 ) EmscriptenFile.__proto__ = BaseFile$$1;\n\t EmscriptenFile.prototype = Object.create( BaseFile$$1 && BaseFile$$1.prototype );\n\t EmscriptenFile.prototype.constructor = EmscriptenFile;\n\t EmscriptenFile.prototype.getPos = function getPos () {\n\t return undefined;\n\t };\n\t EmscriptenFile.prototype.close = function close (cb) {\n\t var err = null;\n\t try {\n\t this.closeSync();\n\t }\n\t catch (e) {\n\t err = e;\n\t }\n\t finally {\n\t cb(err);\n\t }\n\t };\n\t EmscriptenFile.prototype.closeSync = function closeSync () {\n\t try {\n\t this._FS.close(this._stream);\n\t }\n\t catch (e) {\n\t throw convertError(e, this._path);\n\t }\n\t };\n\t EmscriptenFile.prototype.stat = function stat (cb) {\n\t try {\n\t cb(null, this.statSync());\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t EmscriptenFile.prototype.statSync = function statSync () {\n\t try {\n\t return this._fs.statSync(this._path, false);\n\t }\n\t catch (e) {\n\t throw convertError(e, this._path);\n\t }\n\t };\n\t EmscriptenFile.prototype.truncate = function truncate (len, cb) {\n\t var err = null;\n\t try {\n\t this.truncateSync(len);\n\t }\n\t catch (e) {\n\t err = e;\n\t }\n\t finally {\n\t cb(err);\n\t }\n\t };\n\t EmscriptenFile.prototype.truncateSync = function truncateSync (len) {\n\t try {\n\t this._FS.ftruncate(this._stream.fd, len);\n\t }\n\t catch (e) {\n\t throw convertError(e, this._path);\n\t }\n\t };\n\t EmscriptenFile.prototype.write = function write (buffer$$1, offset, length, position, cb) {\n\t try {\n\t cb(null, this.writeSync(buffer$$1, offset, length, position), buffer$$1);\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t EmscriptenFile.prototype.writeSync = function writeSync (buffer$$1, offset, length, position) {\n\t try {\n\t var u8 = buffer2Uint8array(buffer$$1);\n\t // Emscripten is particular about what position is set to.\n\t var emPosition = position === null ? undefined : position;\n\t return this._FS.write(this._stream, u8, offset, length, emPosition);\n\t }\n\t catch (e) {\n\t throw convertError(e, this._path);\n\t }\n\t };\n\t EmscriptenFile.prototype.read = function read (buffer$$1, offset, length, position, cb) {\n\t try {\n\t cb(null, this.readSync(buffer$$1, offset, length, position), buffer$$1);\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t EmscriptenFile.prototype.readSync = function readSync (buffer$$1, offset, length, position) {\n\t try {\n\t var u8 = buffer2Uint8array(buffer$$1);\n\t // Emscripten is particular about what position is set to.\n\t var emPosition = position === null ? undefined : position;\n\t return this._FS.read(this._stream, u8, offset, length, emPosition);\n\t }\n\t catch (e) {\n\t throw convertError(e, this._path);\n\t }\n\t };\n\t EmscriptenFile.prototype.sync = function sync (cb) {\n\t // NOP.\n\t cb();\n\t };\n\t EmscriptenFile.prototype.syncSync = function syncSync () {\n\t // NOP.\n\t };\n\t EmscriptenFile.prototype.chown = function chown (uid, gid, cb) {\n\t var err = null;\n\t try {\n\t this.chownSync(uid, gid);\n\t }\n\t catch (e) {\n\t err = e;\n\t }\n\t finally {\n\t cb(err);\n\t }\n\t };\n\t EmscriptenFile.prototype.chownSync = function chownSync (uid, gid) {\n\t try {\n\t this._FS.fchown(this._stream.fd, uid, gid);\n\t }\n\t catch (e) {\n\t throw convertError(e, this._path);\n\t }\n\t };\n\t EmscriptenFile.prototype.chmod = function chmod (mode, cb) {\n\t var err = null;\n\t try {\n\t this.chmodSync(mode);\n\t }\n\t catch (e) {\n\t err = e;\n\t }\n\t finally {\n\t cb(err);\n\t }\n\t };\n\t EmscriptenFile.prototype.chmodSync = function chmodSync (mode) {\n\t try {\n\t this._FS.fchmod(this._stream.fd, mode);\n\t }\n\t catch (e) {\n\t throw convertError(e, this._path);\n\t }\n\t };\n\t EmscriptenFile.prototype.utimes = function utimes (atime, mtime, cb) {\n\t var err = null;\n\t try {\n\t this.utimesSync(atime, mtime);\n\t }\n\t catch (e) {\n\t err = e;\n\t }\n\t finally {\n\t cb(err);\n\t }\n\t };\n\t EmscriptenFile.prototype.utimesSync = function utimesSync (atime, mtime) {\n\t this._fs.utimesSync(this._path, atime, mtime);\n\t };\n\t\n\t return EmscriptenFile;\n\t}(BaseFile));\n\t/**\n\t * Mounts an Emscripten file system into the BrowserFS file system.\n\t */\n\tvar EmscriptenFileSystem = (function (SynchronousFileSystem$$1) {\n\t function EmscriptenFileSystem(_FS) {\n\t SynchronousFileSystem$$1.call(this);\n\t this._FS = _FS;\n\t }\n\t\n\t if ( SynchronousFileSystem$$1 ) EmscriptenFileSystem.__proto__ = SynchronousFileSystem$$1;\n\t EmscriptenFileSystem.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype );\n\t EmscriptenFileSystem.prototype.constructor = EmscriptenFileSystem;\n\t /**\n\t * Create an EmscriptenFileSystem instance with the given options.\n\t */\n\t EmscriptenFileSystem.Create = function Create (opts, cb) {\n\t cb(null, new EmscriptenFileSystem(opts.FS));\n\t };\n\t EmscriptenFileSystem.isAvailable = function isAvailable () { return true; };\n\t EmscriptenFileSystem.prototype.getName = function getName () { return this._FS.DB_NAME(); };\n\t EmscriptenFileSystem.prototype.isReadOnly = function isReadOnly () { return false; };\n\t EmscriptenFileSystem.prototype.supportsLinks = function supportsLinks () { return true; };\n\t EmscriptenFileSystem.prototype.supportsProps = function supportsProps () { return true; };\n\t EmscriptenFileSystem.prototype.supportsSynch = function supportsSynch () { return true; };\n\t EmscriptenFileSystem.prototype.renameSync = function renameSync (oldPath, newPath) {\n\t try {\n\t this._FS.rename(oldPath, newPath);\n\t }\n\t catch (e) {\n\t if (e.errno === ErrorCode.ENOENT) {\n\t throw convertError(e, this.existsSync(oldPath) ? newPath : oldPath);\n\t }\n\t else {\n\t throw convertError(e);\n\t }\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.statSync = function statSync (p, isLstat) {\n\t try {\n\t var stats = isLstat ? this._FS.lstat(p) : this._FS.stat(p);\n\t var itemType = this.modeToFileType(stats.mode);\n\t return new Stats(itemType, stats.size, stats.mode, stats.atime, stats.mtime, stats.ctime);\n\t }\n\t catch (e) {\n\t throw convertError(e, p);\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.openSync = function openSync (p, flag, mode) {\n\t try {\n\t var stream = this._FS.open(p, flag.getFlagString(), mode);\n\t if (this._FS.isDir(stream.node.mode)) {\n\t this._FS.close(stream);\n\t throw ApiError.EISDIR(p);\n\t }\n\t return new EmscriptenFile(this, this._FS, p, stream);\n\t }\n\t catch (e) {\n\t throw convertError(e, p);\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.unlinkSync = function unlinkSync (p) {\n\t try {\n\t this._FS.unlink(p);\n\t }\n\t catch (e) {\n\t throw convertError(e, p);\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.rmdirSync = function rmdirSync (p) {\n\t try {\n\t this._FS.rmdir(p);\n\t }\n\t catch (e) {\n\t throw convertError(e, p);\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.mkdirSync = function mkdirSync (p, mode) {\n\t try {\n\t this._FS.mkdir(p, mode);\n\t }\n\t catch (e) {\n\t throw convertError(e, p);\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.readdirSync = function readdirSync (p) {\n\t try {\n\t // Emscripten returns items for '.' and '..'. Node does not.\n\t return this._FS.readdir(p).filter(function (p) { return p !== '.' && p !== '..'; });\n\t }\n\t catch (e) {\n\t throw convertError(e, p);\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.truncateSync = function truncateSync (p, len) {\n\t try {\n\t this._FS.truncate(p, len);\n\t }\n\t catch (e) {\n\t throw convertError(e, p);\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.readFileSync = function readFileSync (p, encoding, flag) {\n\t try {\n\t var data = this._FS.readFile(p, { flags: flag.getFlagString() });\n\t var buff = uint8Array2Buffer(data);\n\t if (encoding) {\n\t return buff.toString(encoding);\n\t }\n\t else {\n\t return buff;\n\t }\n\t }\n\t catch (e) {\n\t throw convertError(e, p);\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.writeFileSync = function writeFileSync (p, data, encoding, flag, mode) {\n\t try {\n\t if (encoding) {\n\t data = Buffer.from(data, encoding);\n\t }\n\t var u8 = buffer2Uint8array(data);\n\t this._FS.writeFile(p, u8, { flags: flag.getFlagString(), encoding: 'binary' });\n\t this._FS.chmod(p, mode);\n\t }\n\t catch (e) {\n\t throw convertError(e, p);\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.chmodSync = function chmodSync (p, isLchmod, mode) {\n\t try {\n\t isLchmod ? this._FS.lchmod(p, mode) : this._FS.chmod(p, mode);\n\t }\n\t catch (e) {\n\t throw convertError(e, p);\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.chownSync = function chownSync (p, isLchown, uid, gid) {\n\t try {\n\t isLchown ? this._FS.lchown(p, uid, gid) : this._FS.chown(p, uid, gid);\n\t }\n\t catch (e) {\n\t throw convertError(e, p);\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.symlinkSync = function symlinkSync (srcpath, dstpath, type) {\n\t try {\n\t this._FS.symlink(srcpath, dstpath);\n\t }\n\t catch (e) {\n\t throw convertError(e);\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.readlinkSync = function readlinkSync (p) {\n\t try {\n\t return this._FS.readlink(p);\n\t }\n\t catch (e) {\n\t throw convertError(e, p);\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.utimesSync = function utimesSync (p, atime, mtime) {\n\t try {\n\t this._FS.utime(p, atime.getTime(), mtime.getTime());\n\t }\n\t catch (e) {\n\t throw convertError(e, p);\n\t }\n\t };\n\t EmscriptenFileSystem.prototype.modeToFileType = function modeToFileType (mode) {\n\t if (this._FS.isDir(mode)) {\n\t return FileType.DIRECTORY;\n\t }\n\t else if (this._FS.isFile(mode)) {\n\t return FileType.FILE;\n\t }\n\t else if (this._FS.isLink(mode)) {\n\t return FileType.SYMLINK;\n\t }\n\t else {\n\t throw ApiError.EPERM((\"Invalid mode: \" + mode));\n\t }\n\t };\n\t\n\t return EmscriptenFileSystem;\n\t}(SynchronousFileSystem));\n\t\n\tEmscriptenFileSystem.Name = \"EmscriptenFileSystem\";\n\tEmscriptenFileSystem.Options = {\n\t FS: {\n\t type: \"object\",\n\t description: \"The Emscripten file system to use (the `FS` variable)\"\n\t }\n\t};\n\t\n\t/**\n\t * The FolderAdapter file system wraps a file system, and scopes all interactions to a subfolder of that file system.\n\t *\n\t * Example: Given a file system `foo` with folder `bar` and file `bar/baz`...\n\t *\n\t * ```javascript\n\t * BrowserFS.configure({\n\t * fs: \"FolderAdapter\",\n\t * options: {\n\t * folder: \"bar\",\n\t * wrapped: foo\n\t * }\n\t * }, function(e) {\n\t * var fs = BrowserFS.BFSRequire('fs');\n\t * fs.readdirSync('/'); // ['baz']\n\t * });\n\t * ```\n\t */\n\tvar FolderAdapter = (function (BaseFileSystem$$1) {\n\t function FolderAdapter(folder, wrapped) {\n\t BaseFileSystem$$1.call(this);\n\t this._folder = folder;\n\t this._wrapped = wrapped;\n\t }\n\t\n\t if ( BaseFileSystem$$1 ) FolderAdapter.__proto__ = BaseFileSystem$$1;\n\t FolderAdapter.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype );\n\t FolderAdapter.prototype.constructor = FolderAdapter;\n\t /**\n\t * Creates a FolderAdapter instance with the given options.\n\t */\n\t FolderAdapter.Create = function Create (opts, cb) {\n\t cb(null, new FolderAdapter(opts.folder, opts.wrapped));\n\t };\n\t FolderAdapter.isAvailable = function isAvailable () {\n\t return true;\n\t };\n\t /**\n\t * Initialize the file system. Ensures that the wrapped file system\n\t * has the given folder.\n\t */\n\t FolderAdapter.prototype.initialize = function initialize (cb) {\n\t var this$1 = this;\n\t\n\t this._wrapped.exists(this._folder, function (exists) {\n\t if (exists) {\n\t cb();\n\t }\n\t else if (this$1._wrapped.isReadOnly()) {\n\t cb(ApiError.ENOENT(this$1._folder));\n\t }\n\t else {\n\t this$1._wrapped.mkdir(this$1._folder, 0x1ff, cb);\n\t }\n\t });\n\t };\n\t FolderAdapter.prototype.getName = function getName () { return this._wrapped.getName(); };\n\t FolderAdapter.prototype.isReadOnly = function isReadOnly () { return this._wrapped.isReadOnly(); };\n\t FolderAdapter.prototype.supportsProps = function supportsProps () { return this._wrapped.supportsProps(); };\n\t FolderAdapter.prototype.supportsSynch = function supportsSynch () { return this._wrapped.supportsSynch(); };\n\t FolderAdapter.prototype.supportsLinks = function supportsLinks () { return false; };\n\t\n\t return FolderAdapter;\n\t}(BaseFileSystem));\n\t\n\tFolderAdapter.Name = \"FolderAdapter\";\n\tFolderAdapter.Options = {\n\t folder: {\n\t type: \"string\",\n\t description: \"The folder to use as the root directory\"\n\t },\n\t wrapped: {\n\t type: \"object\",\n\t description: \"The file system to wrap\"\n\t }\n\t};\n\t/**\n\t * @hidden\n\t */\n\tfunction translateError(folder, e) {\n\t if (e !== null && typeof e === 'object') {\n\t var err = e;\n\t var p = err.path;\n\t if (p) {\n\t p = '/' + path.relative(folder, p);\n\t err.message = err.message.replace(err.path, p);\n\t err.path = p;\n\t }\n\t }\n\t return e;\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction wrapCallback(folder, cb) {\n\t if (typeof cb === 'function') {\n\t return function (err) {\n\t if (arguments.length > 0) {\n\t arguments[0] = translateError(folder, err);\n\t }\n\t cb.apply(null, arguments);\n\t };\n\t }\n\t else {\n\t return cb;\n\t }\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction wrapFunction(name, wrapFirst, wrapSecond) {\n\t if (name.slice(name.length - 4) !== 'Sync') {\n\t // Async function. Translate error in callback.\n\t return function () {\n\t if (arguments.length > 0) {\n\t if (wrapFirst) {\n\t arguments[0] = path.join(this._folder, arguments[0]);\n\t }\n\t if (wrapSecond) {\n\t arguments[1] = path.join(this._folder, arguments[1]);\n\t }\n\t arguments[arguments.length - 1] = wrapCallback(this._folder, arguments[arguments.length - 1]);\n\t }\n\t return this._wrapped[name].apply(this._wrapped, arguments);\n\t };\n\t }\n\t else {\n\t // Sync function. Translate error in catch.\n\t return function () {\n\t try {\n\t if (wrapFirst) {\n\t arguments[0] = path.join(this._folder, arguments[0]);\n\t }\n\t if (wrapSecond) {\n\t arguments[1] = path.join(this._folder, arguments[1]);\n\t }\n\t return this._wrapped[name].apply(this._wrapped, arguments);\n\t }\n\t catch (e) {\n\t throw translateError(this._folder, e);\n\t }\n\t };\n\t }\n\t}\n\t// First argument is a path.\n\t['diskSpace', 'stat', 'statSync', 'open', 'openSync', 'unlink', 'unlinkSync',\n\t 'rmdir', 'rmdirSync', 'mkdir', 'mkdirSync', 'readdir', 'readdirSync', 'exists',\n\t 'existsSync', 'realpath', 'realpathSync', 'truncate', 'truncateSync', 'readFile',\n\t 'readFileSync', 'writeFile', 'writeFileSync', 'appendFile', 'appendFileSync',\n\t 'chmod', 'chmodSync', 'chown', 'chownSync', 'utimes', 'utimesSync', 'readlink',\n\t 'readlinkSync'].forEach(function (name) {\n\t FolderAdapter.prototype[name] = wrapFunction(name, true, false);\n\t});\n\t// First and second arguments are paths.\n\t['rename', 'renameSync', 'link', 'linkSync', 'symlink', 'symlinkSync'].forEach(function (name) {\n\t FolderAdapter.prototype[name] = wrapFunction(name, true, true);\n\t});\n\t\n\t/**\n\t * @hidden\n\t */\n\tvar toExport;\n\tif (typeof (window) !== 'undefined') {\n\t toExport = window;\n\t}\n\telse if (typeof (self) !== 'undefined') {\n\t toExport = self;\n\t}\n\telse {\n\t toExport = global;\n\t}\n\tvar global$1 = toExport;\n\t\n\t/**\n\t * @hidden\n\t */\n\tfunction isDirectoryEntry(entry) {\n\t return entry.isDirectory;\n\t}\n\t/**\n\t * @hidden\n\t */\n\tvar _getFS = global$1.webkitRequestFileSystem || global$1.requestFileSystem || null;\n\t/**\n\t * @hidden\n\t */\n\tfunction _requestQuota(type, size, success, errorCallback) {\n\t // We cast navigator and window to '' because everything here is\n\t // nonstandard functionality, despite the fact that Chrome has the only\n\t // implementation of the HTML5FS and is likely driving the standardization\n\t // process. Thus, these objects defined off of navigator and window are not\n\t // present in the DefinitelyTyped TypeScript typings for FileSystem.\n\t if (typeof navigator['webkitPersistentStorage'] !== 'undefined') {\n\t switch (type) {\n\t case global$1.PERSISTENT:\n\t navigator.webkitPersistentStorage.requestQuota(size, success, errorCallback);\n\t break;\n\t case global$1.TEMPORARY:\n\t navigator.webkitTemporaryStorage.requestQuota(size, success, errorCallback);\n\t break;\n\t default:\n\t errorCallback(new TypeError((\"Invalid storage type: \" + type)));\n\t break;\n\t }\n\t }\n\t else {\n\t global$1.webkitStorageInfo.requestQuota(type, size, success, errorCallback);\n\t }\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction _toArray(list) {\n\t return Array.prototype.slice.call(list || [], 0);\n\t}\n\t/**\n\t * Converts the given DOMError into an appropriate ApiError.\n\t * @url https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n\t * @hidden\n\t */\n\tfunction convertError$1(err, p, expectedDir) {\n\t switch (err.name) {\n\t /* The user agent failed to create a file or directory due to the existence of a file or\n\t directory with the same path. */\n\t case \"PathExistsError\":\n\t return ApiError.EEXIST(p);\n\t /* The operation failed because it would cause the application to exceed its storage quota. */\n\t case 'QuotaExceededError':\n\t return ApiError.FileError(ErrorCode.ENOSPC, p);\n\t /* A required file or directory could not be found at the time an operation was processed. */\n\t case 'NotFoundError':\n\t return ApiError.ENOENT(p);\n\t /* This is a security error code to be used in situations not covered by any other error codes.\n\t - A required file was unsafe for access within a Web application\n\t - Too many calls are being made on filesystem resources */\n\t case 'SecurityError':\n\t return ApiError.FileError(ErrorCode.EACCES, p);\n\t /* The modification requested was illegal. Examples of invalid modifications include moving a\n\t directory into its own child, moving a file into its parent directory without changing its name,\n\t or copying a directory to a path occupied by a file. */\n\t case 'InvalidModificationError':\n\t return ApiError.FileError(ErrorCode.EPERM, p);\n\t /* The user has attempted to look up a file or directory, but the Entry found is of the wrong type\n\t [e.g. is a DirectoryEntry when the user requested a FileEntry]. */\n\t case 'TypeMismatchError':\n\t return ApiError.FileError(expectedDir ? ErrorCode.ENOTDIR : ErrorCode.EISDIR, p);\n\t /* A path or URL supplied to the API was malformed. */\n\t case \"EncodingError\":\n\t /* An operation depended on state cached in an interface object, but that state that has changed\n\t since it was read from disk. */\n\t case \"InvalidStateError\":\n\t /* The user attempted to write to a file or directory which could not be modified due to the state\n\t of the underlying filesystem. */\n\t case \"NoModificationAllowedError\":\n\t default:\n\t return ApiError.FileError(ErrorCode.EINVAL, p);\n\t }\n\t}\n\t// A note about getFile and getDirectory options:\n\t// These methods are called at numerous places in this file, and are passed\n\t// some combination of these two options:\n\t// - create: If true, the entry will be created if it doesn't exist.\n\t// If false, an error will be thrown if it doesn't exist.\n\t// - exclusive: If true, only create the entry if it doesn't already exist,\n\t// and throw an error if it does.\n\tvar HTML5FSFile = (function (PreloadFile$$1) {\n\t function HTML5FSFile(fs, entry, path$$1, flag, stat, contents) {\n\t PreloadFile$$1.call(this, fs, path$$1, flag, stat, contents);\n\t this._entry = entry;\n\t }\n\t\n\t if ( PreloadFile$$1 ) HTML5FSFile.__proto__ = PreloadFile$$1;\n\t HTML5FSFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype );\n\t HTML5FSFile.prototype.constructor = HTML5FSFile;\n\t HTML5FSFile.prototype.sync = function sync (cb) {\n\t var this$1 = this;\n\t\n\t if (!this.isDirty()) {\n\t return cb();\n\t }\n\t this._entry.createWriter(function (writer) {\n\t var buffer$$1 = this$1.getBuffer();\n\t var blob = new Blob([buffer2ArrayBuffer(buffer$$1)]);\n\t var length = blob.size;\n\t writer.onwriteend = function (err) {\n\t writer.onwriteend = null;\n\t writer.onerror = null;\n\t writer.truncate(length);\n\t this$1.resetDirty();\n\t cb();\n\t };\n\t writer.onerror = function (err) {\n\t cb(convertError$1(err, this$1.getPath(), false));\n\t };\n\t writer.write(blob);\n\t });\n\t };\n\t HTML5FSFile.prototype.close = function close (cb) {\n\t this.sync(cb);\n\t };\n\t\n\t return HTML5FSFile;\n\t}(PreloadFile));\n\t/**\n\t * A read-write filesystem backed by the HTML5 FileSystem API.\n\t *\n\t * As the HTML5 FileSystem is only implemented in Blink, this interface is\n\t * only available in Chrome.\n\t */\n\tvar HTML5FS = (function (BaseFileSystem$$1) {\n\t function HTML5FS(size, type, deprecateMsg) {\n\t if ( size === void 0 ) size = 5;\n\t if ( type === void 0 ) type = global$1.PERSISTENT;\n\t if ( deprecateMsg === void 0 ) deprecateMsg = true;\n\t\n\t BaseFileSystem$$1.call(this);\n\t // Convert MB to bytes.\n\t this.size = 1024 * 1024 * size;\n\t this.type = type;\n\t deprecationMessage(deprecateMsg, HTML5FS.Name, { size: size, type: type });\n\t }\n\t\n\t if ( BaseFileSystem$$1 ) HTML5FS.__proto__ = BaseFileSystem$$1;\n\t HTML5FS.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype );\n\t HTML5FS.prototype.constructor = HTML5FS;\n\t /**\n\t * Creates an HTML5FS instance with the given options.\n\t */\n\t HTML5FS.Create = function Create (opts, cb) {\n\t var fs = new HTML5FS(opts.size, opts.type, false);\n\t fs.allocate(function (e) { return e ? cb(e) : cb(null, fs); }, false);\n\t };\n\t HTML5FS.isAvailable = function isAvailable () {\n\t return !!_getFS;\n\t };\n\t HTML5FS.prototype.getName = function getName () {\n\t return HTML5FS.Name;\n\t };\n\t HTML5FS.prototype.isReadOnly = function isReadOnly () {\n\t return false;\n\t };\n\t HTML5FS.prototype.supportsSymlinks = function supportsSymlinks () {\n\t return false;\n\t };\n\t HTML5FS.prototype.supportsProps = function supportsProps () {\n\t return false;\n\t };\n\t HTML5FS.prototype.supportsSynch = function supportsSynch () {\n\t return false;\n\t };\n\t /**\n\t * **Deprecated. Please use Create() method instead to create and allocate an HTML5FS.**\n\t *\n\t * Requests a storage quota from the browser to back this FS.\n\t * Must be called before file system can be used!\n\t */\n\t HTML5FS.prototype.allocate = function allocate (cb, deprecateMsg) {\n\t var this$1 = this;\n\t if ( cb === void 0 ) cb = function () { };\n\t if ( deprecateMsg === void 0 ) deprecateMsg = true;\n\t\n\t if (deprecateMsg) {\n\t console.warn((\"[HTML5FS] HTML5FS.allocate() is deprecated and will be removed in the next major release. Please use 'HTML5FS.Create({type: \" + (this.type) + \", size: \" + (this.size) + \"}, cb)' to create and allocate HTML5FS instances.\"));\n\t }\n\t var success = function (fs) {\n\t this$1.fs = fs;\n\t cb();\n\t };\n\t var error = function (err) {\n\t cb(convertError$1(err, \"/\", true));\n\t };\n\t if (this.type === global$1.PERSISTENT) {\n\t _requestQuota(this.type, this.size, function (granted) {\n\t _getFS(this$1.type, granted, success, error);\n\t }, error);\n\t }\n\t else {\n\t _getFS(this.type, this.size, success, error);\n\t }\n\t };\n\t /**\n\t * Deletes everything in the FS. Used for testing.\n\t * Karma clears the storage after you quit it but not between runs of the test\n\t * suite, and the tests expect an empty FS every time.\n\t */\n\t HTML5FS.prototype.empty = function empty (mainCb) {\n\t // Get a list of all entries in the root directory to delete them\n\t this._readdir('/', function (err, entries) {\n\t if (err) {\n\t console.error('Failed to empty FS');\n\t mainCb(err);\n\t }\n\t else {\n\t // Called when every entry has been operated on\n\t var finished = function (er) {\n\t if (err) {\n\t console.error(\"Failed to empty FS\");\n\t mainCb(err);\n\t }\n\t else {\n\t mainCb();\n\t }\n\t };\n\t // Removes files and recursively removes directories\n\t var deleteEntry = function (entry, cb) {\n\t var succ = function () {\n\t cb();\n\t };\n\t var error = function (err) {\n\t cb(convertError$1(err, entry.fullPath, !entry.isDirectory));\n\t };\n\t if (isDirectoryEntry(entry)) {\n\t entry.removeRecursively(succ, error);\n\t }\n\t else {\n\t entry.remove(succ, error);\n\t }\n\t };\n\t // Loop through the entries and remove them, then call the callback\n\t // when they're all finished.\n\t eachLimit(entries, deleteEntry, finished);\n\t }\n\t });\n\t };\n\t HTML5FS.prototype.rename = function rename (oldPath, newPath, cb) {\n\t var this$1 = this;\n\t\n\t var semaphore = 2;\n\t var successCount = 0;\n\t var root = this.fs.root;\n\t var currentPath = oldPath;\n\t var error = function (err) {\n\t if (--semaphore <= 0) {\n\t cb(convertError$1(err, currentPath, false));\n\t }\n\t };\n\t var success = function (file) {\n\t if (++successCount === 2) {\n\t return cb(new ApiError(ErrorCode.EINVAL, \"Something was identified as both a file and a directory. This should never happen.\"));\n\t }\n\t // SPECIAL CASE: If newPath === oldPath, and the path exists, then\n\t // this operation trivially succeeds.\n\t if (oldPath === newPath) {\n\t return cb();\n\t }\n\t // Get the new parent directory.\n\t currentPath = path.dirname(newPath);\n\t root.getDirectory(currentPath, {}, function (parentDir) {\n\t currentPath = path.basename(newPath);\n\t file.moveTo(parentDir, currentPath, function (entry) { cb(); }, function (err) {\n\t // SPECIAL CASE: If oldPath is a directory, and newPath is a\n\t // file, rename should delete the file and perform the move.\n\t if (file.isDirectory) {\n\t currentPath = newPath;\n\t // Unlink only works on files. Try to delete newPath.\n\t this$1.unlink(newPath, function (e) {\n\t if (e) {\n\t // newPath is probably a directory.\n\t error(err);\n\t }\n\t else {\n\t // Recur, now that newPath doesn't exist.\n\t this$1.rename(oldPath, newPath, cb);\n\t }\n\t });\n\t }\n\t else {\n\t error(err);\n\t }\n\t });\n\t }, error);\n\t };\n\t // We don't know if oldPath is a *file* or a *directory*, and there's no\n\t // way to stat items. So launch both requests, see which one succeeds.\n\t root.getFile(oldPath, {}, success, error);\n\t root.getDirectory(oldPath, {}, success, error);\n\t };\n\t HTML5FS.prototype.stat = function stat (path$$1, isLstat, cb) {\n\t var this$1 = this;\n\t\n\t // Throw an error if the entry doesn't exist, because then there's nothing\n\t // to stat.\n\t var opts = {\n\t create: false\n\t };\n\t // Called when the path has been successfully loaded as a file.\n\t var loadAsFile = function (entry) {\n\t var fileFromEntry = function (file) {\n\t var stat = new Stats(FileType.FILE, file.size);\n\t cb(null, stat);\n\t };\n\t entry.file(fileFromEntry, failedToLoad);\n\t };\n\t // Called when the path has been successfully loaded as a directory.\n\t var loadAsDir = function (dir$$1) {\n\t // Directory entry size can't be determined from the HTML5 FS API, and is\n\t // implementation-dependant anyway, so a dummy value is used.\n\t var size = 4096;\n\t var stat = new Stats(FileType.DIRECTORY, size);\n\t cb(null, stat);\n\t };\n\t // Called when the path couldn't be opened as a directory or a file.\n\t var failedToLoad = function (err) {\n\t cb(convertError$1(err, path$$1, false /* Unknown / irrelevant */));\n\t };\n\t // Called when the path couldn't be opened as a file, but might still be a\n\t // directory.\n\t var failedToLoadAsFile = function () {\n\t this$1.fs.root.getDirectory(path$$1, opts, loadAsDir, failedToLoad);\n\t };\n\t // No method currently exists to determine whether a path refers to a\n\t // directory or a file, so this implementation tries both and uses the first\n\t // one that succeeds.\n\t this.fs.root.getFile(path$$1, opts, loadAsFile, failedToLoadAsFile);\n\t };\n\t HTML5FS.prototype.open = function open (p, flags, mode, cb) {\n\t var this$1 = this;\n\t\n\t // XXX: err is a DOMError\n\t var error = function (err) {\n\t if (err.name === 'InvalidModificationError' && flags.isExclusive()) {\n\t cb(ApiError.EEXIST(p));\n\t }\n\t else {\n\t cb(convertError$1(err, p, false));\n\t }\n\t };\n\t this.fs.root.getFile(p, {\n\t create: flags.pathNotExistsAction() === ActionType.CREATE_FILE,\n\t exclusive: flags.isExclusive()\n\t }, function (entry) {\n\t // Try to fetch corresponding file.\n\t entry.file(function (file) {\n\t var reader = new FileReader();\n\t reader.onloadend = function (event) {\n\t var bfsFile = this$1._makeFile(p, entry, flags, file, reader.result);\n\t cb(null, bfsFile);\n\t };\n\t reader.onerror = function (ev) {\n\t error(reader.error);\n\t };\n\t reader.readAsArrayBuffer(file);\n\t }, error);\n\t }, error);\n\t };\n\t HTML5FS.prototype.unlink = function unlink (path$$1, cb) {\n\t this._remove(path$$1, cb, true);\n\t };\n\t HTML5FS.prototype.rmdir = function rmdir (path$$1, cb) {\n\t var this$1 = this;\n\t\n\t // Check if directory is non-empty, first.\n\t this.readdir(path$$1, function (e, files) {\n\t if (e) {\n\t cb(e);\n\t }\n\t else if (files.length > 0) {\n\t cb(ApiError.ENOTEMPTY(path$$1));\n\t }\n\t else {\n\t this$1._remove(path$$1, cb, false);\n\t }\n\t });\n\t };\n\t HTML5FS.prototype.mkdir = function mkdir (path$$1, mode, cb) {\n\t // Create the directory, but throw an error if it already exists, as per\n\t // mkdir(1)\n\t var opts = {\n\t create: true,\n\t exclusive: true\n\t };\n\t var success = function (dir$$1) {\n\t cb();\n\t };\n\t var error = function (err) {\n\t cb(convertError$1(err, path$$1, true));\n\t };\n\t this.fs.root.getDirectory(path$$1, opts, success, error);\n\t };\n\t /**\n\t * Map _readdir's list of `FileEntry`s to their names and return that.\n\t */\n\t HTML5FS.prototype.readdir = function readdir (path$$1, cb) {\n\t this._readdir(path$$1, function (e, entries) {\n\t if (entries) {\n\t var rv = [];\n\t for (var i = 0, list = entries; i < list.length; i += 1) {\n\t var entry = list[i];\n\t\n\t rv.push(entry.name);\n\t }\n\t cb(null, rv);\n\t }\n\t else {\n\t return cb(e);\n\t }\n\t });\n\t };\n\t /**\n\t * Returns a BrowserFS object representing a File.\n\t */\n\t HTML5FS.prototype._makeFile = function _makeFile (path$$1, entry, flag, stat, data) {\n\t if ( data === void 0 ) data = new ArrayBuffer(0);\n\t\n\t var stats = new Stats(FileType.FILE, stat.size);\n\t var buffer$$1 = arrayBuffer2Buffer(data);\n\t return new HTML5FSFile(this, entry, path$$1, flag, stats, buffer$$1);\n\t };\n\t /**\n\t * Returns an array of `FileEntry`s. Used internally by empty and readdir.\n\t */\n\t HTML5FS.prototype._readdir = function _readdir (path$$1, cb) {\n\t var error = function (err) {\n\t cb(convertError$1(err, path$$1, true));\n\t };\n\t // Grab the requested directory.\n\t this.fs.root.getDirectory(path$$1, { create: false }, function (dirEntry) {\n\t var reader = dirEntry.createReader();\n\t var entries = [];\n\t // Call the reader.readEntries() until no more results are returned.\n\t var readEntries = function () {\n\t reader.readEntries((function (results) {\n\t if (results.length) {\n\t entries = entries.concat(_toArray(results));\n\t readEntries();\n\t }\n\t else {\n\t cb(null, entries);\n\t }\n\t }), error);\n\t };\n\t readEntries();\n\t }, error);\n\t };\n\t /**\n\t * Delete a file or directory from the file system\n\t * isFile should reflect which call was made to remove the it (`unlink` or\n\t * `rmdir`). If this doesn't match what's actually at `path`, an error will be\n\t * returned\n\t */\n\t HTML5FS.prototype._remove = function _remove (path$$1, cb, isFile) {\n\t var success = function (entry) {\n\t var succ = function () {\n\t cb();\n\t };\n\t var err = function (err) {\n\t cb(convertError$1(err, path$$1, !isFile));\n\t };\n\t entry.remove(succ, err);\n\t };\n\t var error = function (err) {\n\t cb(convertError$1(err, path$$1, !isFile));\n\t };\n\t // Deleting the entry, so don't create it\n\t var opts = {\n\t create: false\n\t };\n\t if (isFile) {\n\t this.fs.root.getFile(path$$1, opts, success, error);\n\t }\n\t else {\n\t this.fs.root.getDirectory(path$$1, opts, success, error);\n\t }\n\t };\n\t\n\t return HTML5FS;\n\t}(BaseFileSystem));\n\t\n\tHTML5FS.Name = \"HTML5FS\";\n\tHTML5FS.Options = {\n\t size: {\n\t type: \"number\",\n\t optional: true,\n\t description: \"Storage quota to request, in megabytes. Allocated value may be less. Defaults to 5.\"\n\t },\n\t type: {\n\t type: \"number\",\n\t optional: true,\n\t description: \"window.PERSISTENT or window.TEMPORARY. Defaults to PERSISTENT.\"\n\t }\n\t};\n\t\n\t/**\n\t * Generic inode definition that can easily be serialized.\n\t */\n\tvar Inode = function Inode(id, size, mode, atime, mtime, ctime) {\n\t this.id = id;\n\t this.size = size;\n\t this.mode = mode;\n\t this.atime = atime;\n\t this.mtime = mtime;\n\t this.ctime = ctime;\n\t};\n\t/**\n\t * Converts the buffer into an Inode.\n\t */\n\tInode.fromBuffer = function fromBuffer (buffer$$1) {\n\t if (buffer$$1 === undefined) {\n\t throw new Error(\"NO\");\n\t }\n\t return new Inode(buffer$$1.toString('ascii', 30), buffer$$1.readUInt32LE(0), buffer$$1.readUInt16LE(4), buffer$$1.readDoubleLE(6), buffer$$1.readDoubleLE(14), buffer$$1.readDoubleLE(22));\n\t};\n\t/**\n\t * Handy function that converts the Inode to a Node Stats object.\n\t */\n\tInode.prototype.toStats = function toStats () {\n\t return new Stats((this.mode & 0xF000) === FileType.DIRECTORY ? FileType.DIRECTORY : FileType.FILE, this.size, this.mode, new Date(this.atime), new Date(this.mtime), new Date(this.ctime));\n\t};\n\t/**\n\t * Get the size of this Inode, in bytes.\n\t */\n\tInode.prototype.getSize = function getSize () {\n\t // ASSUMPTION: ID is ASCII (1 byte per char).\n\t return 30 + this.id.length;\n\t};\n\t/**\n\t * Writes the inode into the start of the buffer.\n\t */\n\tInode.prototype.toBuffer = function toBuffer (buff) {\n\t if ( buff === void 0 ) buff = Buffer.alloc(this.getSize());\n\t\n\t buff.writeUInt32LE(this.size, 0);\n\t buff.writeUInt16LE(this.mode, 4);\n\t buff.writeDoubleLE(this.atime, 6);\n\t buff.writeDoubleLE(this.mtime, 14);\n\t buff.writeDoubleLE(this.ctime, 22);\n\t buff.write(this.id, 30, this.id.length, 'ascii');\n\t return buff;\n\t};\n\t/**\n\t * Updates the Inode using information from the stats object. Used by file\n\t * systems at sync time, e.g.:\n\t * - Program opens file and gets a File object.\n\t * - Program mutates file. File object is responsible for maintaining\n\t * metadata changes locally -- typically in a Stats object.\n\t * - Program closes file. File object's metadata changes are synced with the\n\t * file system.\n\t * @return True if any changes have occurred.\n\t */\n\tInode.prototype.update = function update (stats) {\n\t var hasChanged = false;\n\t if (this.size !== stats.size) {\n\t this.size = stats.size;\n\t hasChanged = true;\n\t }\n\t if (this.mode !== stats.mode) {\n\t this.mode = stats.mode;\n\t hasChanged = true;\n\t }\n\t var atimeMs = stats.atime.getTime();\n\t if (this.atime !== atimeMs) {\n\t this.atime = atimeMs;\n\t hasChanged = true;\n\t }\n\t var mtimeMs = stats.mtime.getTime();\n\t if (this.mtime !== mtimeMs) {\n\t this.mtime = mtimeMs;\n\t hasChanged = true;\n\t }\n\t var ctimeMs = stats.ctime.getTime();\n\t if (this.ctime !== ctimeMs) {\n\t this.ctime = ctimeMs;\n\t hasChanged = true;\n\t }\n\t return hasChanged;\n\t};\n\t// XXX: Copied from Stats. Should reconcile these two into something more\n\t// compact.\n\t/**\n\t * @return [Boolean] True if this item is a file.\n\t */\n\tInode.prototype.isFile = function isFile () {\n\t return (this.mode & 0xF000) === FileType.FILE;\n\t};\n\t/**\n\t * @return [Boolean] True if this item is a directory.\n\t */\n\tInode.prototype.isDirectory = function isDirectory () {\n\t return (this.mode & 0xF000) === FileType.DIRECTORY;\n\t};\n\t\n\t/**\n\t * @hidden\n\t */\n\tvar ROOT_NODE_ID = \"/\";\n\t/**\n\t * @hidden\n\t */\n\tvar emptyDirNode = null;\n\t/**\n\t * Returns an empty directory node.\n\t * @hidden\n\t */\n\tfunction getEmptyDirNode() {\n\t if (emptyDirNode) {\n\t return emptyDirNode;\n\t }\n\t return emptyDirNode = Buffer.from(\"{}\");\n\t}\n\t/**\n\t * Generates a random ID.\n\t * @hidden\n\t */\n\tfunction GenerateRandomID() {\n\t // From http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript\n\t return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n\t var r = Math.random() * 16 | 0;\n\t var v = c === 'x' ? r : (r & 0x3 | 0x8);\n\t return v.toString(16);\n\t });\n\t}\n\t/**\n\t * Helper function. Checks if 'e' is defined. If so, it triggers the callback\n\t * with 'e' and returns false. Otherwise, returns true.\n\t * @hidden\n\t */\n\tfunction noError(e, cb) {\n\t if (e) {\n\t cb(e);\n\t return false;\n\t }\n\t return true;\n\t}\n\t/**\n\t * Helper function. Checks if 'e' is defined. If so, it aborts the transaction,\n\t * triggers the callback with 'e', and returns false. Otherwise, returns true.\n\t * @hidden\n\t */\n\tfunction noErrorTx(e, tx, cb) {\n\t if (e) {\n\t tx.abort(function () {\n\t cb(e);\n\t });\n\t return false;\n\t }\n\t return true;\n\t}\n\t/**\n\t * A simple RW transaction for simple synchronous key-value stores.\n\t */\n\tvar SimpleSyncRWTransaction = function SimpleSyncRWTransaction(store) {\n\t this.store = store;\n\t /**\n\t * Stores data in the keys we modify prior to modifying them.\n\t * Allows us to roll back commits.\n\t */\n\t this.originalData = {};\n\t /**\n\t * List of keys modified in this transaction, if any.\n\t */\n\t this.modifiedKeys = [];\n\t};\n\tSimpleSyncRWTransaction.prototype.get = function get (key) {\n\t var val = this.store.get(key);\n\t this.stashOldValue(key, val);\n\t return val;\n\t};\n\tSimpleSyncRWTransaction.prototype.put = function put (key, data, overwrite) {\n\t this.markModified(key);\n\t return this.store.put(key, data, overwrite);\n\t};\n\tSimpleSyncRWTransaction.prototype.del = function del (key) {\n\t this.markModified(key);\n\t this.store.del(key);\n\t};\n\tSimpleSyncRWTransaction.prototype.commit = function commit () { };\n\tSimpleSyncRWTransaction.prototype.abort = function abort () {\n\t var this$1 = this;\n\t\n\t // Rollback old values.\n\t for (var i = 0, list = this$1.modifiedKeys; i < list.length; i += 1) {\n\t var key = list[i];\n\t\n\t var value = this$1.originalData[key];\n\t if (!value) {\n\t // Key didn't exist.\n\t this$1.store.del(key);\n\t }\n\t else {\n\t // Key existed. Store old value.\n\t this$1.store.put(key, value, true);\n\t }\n\t }\n\t};\n\t/**\n\t * Stashes given key value pair into `originalData` if it doesn't already\n\t * exist. Allows us to stash values the program is requesting anyway to\n\t * prevent needless `get` requests if the program modifies the data later\n\t * on during the transaction.\n\t */\n\tSimpleSyncRWTransaction.prototype.stashOldValue = function stashOldValue (key, value) {\n\t // Keep only the earliest value in the transaction.\n\t if (!this.originalData.hasOwnProperty(key)) {\n\t this.originalData[key] = value;\n\t }\n\t};\n\t/**\n\t * Marks the given key as modified, and stashes its value if it has not been\n\t * stashed already.\n\t */\n\tSimpleSyncRWTransaction.prototype.markModified = function markModified (key) {\n\t if (this.modifiedKeys.indexOf(key) === -1) {\n\t this.modifiedKeys.push(key);\n\t if (!this.originalData.hasOwnProperty(key)) {\n\t this.originalData[key] = this.store.get(key);\n\t }\n\t }\n\t};\n\tvar SyncKeyValueFile = (function (PreloadFile$$1) {\n\t function SyncKeyValueFile(_fs, _path, _flag, _stat, contents) {\n\t PreloadFile$$1.call(this, _fs, _path, _flag, _stat, contents);\n\t }\n\t\n\t if ( PreloadFile$$1 ) SyncKeyValueFile.__proto__ = PreloadFile$$1;\n\t SyncKeyValueFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype );\n\t SyncKeyValueFile.prototype.constructor = SyncKeyValueFile;\n\t SyncKeyValueFile.prototype.syncSync = function syncSync () {\n\t if (this.isDirty()) {\n\t this._fs._syncSync(this.getPath(), this.getBuffer(), this.getStats());\n\t this.resetDirty();\n\t }\n\t };\n\t SyncKeyValueFile.prototype.closeSync = function closeSync () {\n\t this.syncSync();\n\t };\n\t\n\t return SyncKeyValueFile;\n\t}(PreloadFile));\n\t/**\n\t * A \"Synchronous key-value file system\". Stores data to/retrieves data from an\n\t * underlying key-value store.\n\t *\n\t * We use a unique ID for each node in the file system. The root node has a\n\t * fixed ID.\n\t * @todo Introduce Node ID caching.\n\t * @todo Check modes.\n\t */\n\tvar SyncKeyValueFileSystem = (function (SynchronousFileSystem$$1) {\n\t function SyncKeyValueFileSystem(options) {\n\t SynchronousFileSystem$$1.call(this);\n\t this.store = options.store;\n\t // INVARIANT: Ensure that the root exists.\n\t this.makeRootDirectory();\n\t }\n\t\n\t if ( SynchronousFileSystem$$1 ) SyncKeyValueFileSystem.__proto__ = SynchronousFileSystem$$1;\n\t SyncKeyValueFileSystem.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype );\n\t SyncKeyValueFileSystem.prototype.constructor = SyncKeyValueFileSystem;\n\t SyncKeyValueFileSystem.isAvailable = function isAvailable () { return true; };\n\t\n\t SyncKeyValueFileSystem.prototype.getName = function getName () { return this.store.name(); };\n\t SyncKeyValueFileSystem.prototype.isReadOnly = function isReadOnly () { return false; };\n\t SyncKeyValueFileSystem.prototype.supportsSymlinks = function supportsSymlinks () { return false; };\n\t SyncKeyValueFileSystem.prototype.supportsProps = function supportsProps () { return false; };\n\t SyncKeyValueFileSystem.prototype.supportsSynch = function supportsSynch () { return true; };\n\t /**\n\t * Delete all contents stored in the file system.\n\t */\n\t SyncKeyValueFileSystem.prototype.empty = function empty () {\n\t this.store.clear();\n\t // INVARIANT: Root always exists.\n\t this.makeRootDirectory();\n\t };\n\t SyncKeyValueFileSystem.prototype.renameSync = function renameSync (oldPath, newPath) {\n\t var tx = this.store.beginTransaction('readwrite'), oldParent = path.dirname(oldPath), oldName = path.basename(oldPath), newParent = path.dirname(newPath), newName = path.basename(newPath), \n\t // Remove oldPath from parent's directory listing.\n\t oldDirNode = this.findINode(tx, oldParent), oldDirList = this.getDirListing(tx, oldParent, oldDirNode);\n\t if (!oldDirList[oldName]) {\n\t throw ApiError.ENOENT(oldPath);\n\t }\n\t var nodeId = oldDirList[oldName];\n\t delete oldDirList[oldName];\n\t // Invariant: Can't move a folder inside itself.\n\t // This funny little hack ensures that the check passes only if oldPath\n\t // is a subpath of newParent. We append '/' to avoid matching folders that\n\t // are a substring of the bottom-most folder in the path.\n\t if ((newParent + '/').indexOf(oldPath + '/') === 0) {\n\t throw new ApiError(ErrorCode.EBUSY, oldParent);\n\t }\n\t // Add newPath to parent's directory listing.\n\t var newDirNode, newDirList;\n\t if (newParent === oldParent) {\n\t // Prevent us from re-grabbing the same directory listing, which still\n\t // contains oldName.\n\t newDirNode = oldDirNode;\n\t newDirList = oldDirList;\n\t }\n\t else {\n\t newDirNode = this.findINode(tx, newParent);\n\t newDirList = this.getDirListing(tx, newParent, newDirNode);\n\t }\n\t if (newDirList[newName]) {\n\t // If it's a file, delete it.\n\t var newNameNode = this.getINode(tx, newPath, newDirList[newName]);\n\t if (newNameNode.isFile()) {\n\t try {\n\t tx.del(newNameNode.id);\n\t tx.del(newDirList[newName]);\n\t }\n\t catch (e) {\n\t tx.abort();\n\t throw e;\n\t }\n\t }\n\t else {\n\t // If it's a directory, throw a permissions error.\n\t throw ApiError.EPERM(newPath);\n\t }\n\t }\n\t newDirList[newName] = nodeId;\n\t // Commit the two changed directory listings.\n\t try {\n\t tx.put(oldDirNode.id, Buffer.from(JSON.stringify(oldDirList)), true);\n\t tx.put(newDirNode.id, Buffer.from(JSON.stringify(newDirList)), true);\n\t }\n\t catch (e) {\n\t tx.abort();\n\t throw e;\n\t }\n\t tx.commit();\n\t };\n\t SyncKeyValueFileSystem.prototype.statSync = function statSync (p, isLstat) {\n\t // Get the inode to the item, convert it into a Stats object.\n\t return this.findINode(this.store.beginTransaction('readonly'), p).toStats();\n\t };\n\t SyncKeyValueFileSystem.prototype.createFileSync = function createFileSync (p, flag, mode) {\n\t var tx = this.store.beginTransaction('readwrite'), data = emptyBuffer(), newFile = this.commitNewFile(tx, p, FileType.FILE, mode, data);\n\t // Open the file.\n\t return new SyncKeyValueFile(this, p, flag, newFile.toStats(), data);\n\t };\n\t SyncKeyValueFileSystem.prototype.openFileSync = function openFileSync (p, flag) {\n\t var tx = this.store.beginTransaction('readonly'), node = this.findINode(tx, p), data = tx.get(node.id);\n\t if (data === undefined) {\n\t throw ApiError.ENOENT(p);\n\t }\n\t return new SyncKeyValueFile(this, p, flag, node.toStats(), data);\n\t };\n\t SyncKeyValueFileSystem.prototype.unlinkSync = function unlinkSync (p) {\n\t this.removeEntry(p, false);\n\t };\n\t SyncKeyValueFileSystem.prototype.rmdirSync = function rmdirSync (p) {\n\t // Check first if directory is empty.\n\t if (this.readdirSync(p).length > 0) {\n\t throw ApiError.ENOTEMPTY(p);\n\t }\n\t else {\n\t this.removeEntry(p, true);\n\t }\n\t };\n\t SyncKeyValueFileSystem.prototype.mkdirSync = function mkdirSync (p, mode) {\n\t var tx = this.store.beginTransaction('readwrite'), data = Buffer.from('{}');\n\t this.commitNewFile(tx, p, FileType.DIRECTORY, mode, data);\n\t };\n\t SyncKeyValueFileSystem.prototype.readdirSync = function readdirSync (p) {\n\t var tx = this.store.beginTransaction('readonly');\n\t return Object.keys(this.getDirListing(tx, p, this.findINode(tx, p)));\n\t };\n\t SyncKeyValueFileSystem.prototype._syncSync = function _syncSync (p, data, stats) {\n\t // @todo Ensure mtime updates properly, and use that to determine if a data\n\t // update is required.\n\t var tx = this.store.beginTransaction('readwrite'), \n\t // We use the _findInode helper because we actually need the INode id.\n\t fileInodeId = this._findINode(tx, path.dirname(p), path.basename(p)), fileInode = this.getINode(tx, p, fileInodeId), inodeChanged = fileInode.update(stats);\n\t try {\n\t // Sync data.\n\t tx.put(fileInode.id, data, true);\n\t // Sync metadata.\n\t if (inodeChanged) {\n\t tx.put(fileInodeId, fileInode.toBuffer(), true);\n\t }\n\t }\n\t catch (e) {\n\t tx.abort();\n\t throw e;\n\t }\n\t tx.commit();\n\t };\n\t /**\n\t * Checks if the root directory exists. Creates it if it doesn't.\n\t */\n\t SyncKeyValueFileSystem.prototype.makeRootDirectory = function makeRootDirectory () {\n\t var tx = this.store.beginTransaction('readwrite');\n\t if (tx.get(ROOT_NODE_ID) === undefined) {\n\t // Create new inode.\n\t var currTime = (new Date()).getTime(), \n\t // Mode 0666\n\t dirInode = new Inode(GenerateRandomID(), 4096, 511 | FileType.DIRECTORY, currTime, currTime, currTime);\n\t // If the root doesn't exist, the first random ID shouldn't exist,\n\t // either.\n\t tx.put(dirInode.id, getEmptyDirNode(), false);\n\t tx.put(ROOT_NODE_ID, dirInode.toBuffer(), false);\n\t tx.commit();\n\t }\n\t };\n\t /**\n\t * Helper function for findINode.\n\t * @param parent The parent directory of the file we are attempting to find.\n\t * @param filename The filename of the inode we are attempting to find, minus\n\t * the parent.\n\t * @return string The ID of the file's inode in the file system.\n\t */\n\t SyncKeyValueFileSystem.prototype._findINode = function _findINode (tx, parent, filename) {\n\t var this$1 = this;\n\t\n\t var readDirectory = function (inode) {\n\t // Get the root's directory listing.\n\t var dirList = this$1.getDirListing(tx, parent, inode);\n\t // Get the file's ID.\n\t if (dirList[filename]) {\n\t return dirList[filename];\n\t }\n\t else {\n\t throw ApiError.ENOENT(path.resolve(parent, filename));\n\t }\n\t };\n\t if (parent === '/') {\n\t if (filename === '') {\n\t // BASE CASE #1: Return the root's ID.\n\t return ROOT_NODE_ID;\n\t }\n\t else {\n\t // BASE CASE #2: Find the item in the root ndoe.\n\t return readDirectory(this.getINode(tx, parent, ROOT_NODE_ID));\n\t }\n\t }\n\t else {\n\t return readDirectory(this.getINode(tx, parent + path.sep + filename, this._findINode(tx, path.dirname(parent), path.basename(parent))));\n\t }\n\t };\n\t /**\n\t * Finds the Inode of the given path.\n\t * @param p The path to look up.\n\t * @return The Inode of the path p.\n\t * @todo memoize/cache\n\t */\n\t SyncKeyValueFileSystem.prototype.findINode = function findINode (tx, p) {\n\t return this.getINode(tx, p, this._findINode(tx, path.dirname(p), path.basename(p)));\n\t };\n\t /**\n\t * Given the ID of a node, retrieves the corresponding Inode.\n\t * @param tx The transaction to use.\n\t * @param p The corresponding path to the file (used for error messages).\n\t * @param id The ID to look up.\n\t */\n\t SyncKeyValueFileSystem.prototype.getINode = function getINode (tx, p, id) {\n\t var inode = tx.get(id);\n\t if (inode === undefined) {\n\t throw ApiError.ENOENT(p);\n\t }\n\t return Inode.fromBuffer(inode);\n\t };\n\t /**\n\t * Given the Inode of a directory, retrieves the corresponding directory\n\t * listing.\n\t */\n\t SyncKeyValueFileSystem.prototype.getDirListing = function getDirListing (tx, p, inode) {\n\t if (!inode.isDirectory()) {\n\t throw ApiError.ENOTDIR(p);\n\t }\n\t var data = tx.get(inode.id);\n\t if (data === undefined) {\n\t throw ApiError.ENOENT(p);\n\t }\n\t return JSON.parse(data.toString());\n\t };\n\t /**\n\t * Creates a new node under a random ID. Retries 5 times before giving up in\n\t * the exceedingly unlikely chance that we try to reuse a random GUID.\n\t * @return The GUID that the data was stored under.\n\t */\n\t SyncKeyValueFileSystem.prototype.addNewNode = function addNewNode (tx, data) {\n\t var retries = 0;\n\t var currId;\n\t while (retries < 5) {\n\t try {\n\t currId = GenerateRandomID();\n\t tx.put(currId, data, false);\n\t return currId;\n\t }\n\t catch (e) {\n\t // Ignore and reroll.\n\t }\n\t }\n\t throw new ApiError(ErrorCode.EIO, 'Unable to commit data to key-value store.');\n\t };\n\t /**\n\t * Commits a new file (well, a FILE or a DIRECTORY) to the file system with\n\t * the given mode.\n\t * Note: This will commit the transaction.\n\t * @param p The path to the new file.\n\t * @param type The type of the new file.\n\t * @param mode The mode to create the new file with.\n\t * @param data The data to store at the file's data node.\n\t * @return The Inode for the new file.\n\t */\n\t SyncKeyValueFileSystem.prototype.commitNewFile = function commitNewFile (tx, p, type, mode, data) {\n\t var parentDir = path.dirname(p), fname = path.basename(p), parentNode = this.findINode(tx, parentDir), dirListing = this.getDirListing(tx, parentDir, parentNode), currTime = (new Date()).getTime();\n\t // Invariant: The root always exists.\n\t // If we don't check this prior to taking steps below, we will create a\n\t // file with name '' in root should p == '/'.\n\t if (p === '/') {\n\t throw ApiError.EEXIST(p);\n\t }\n\t // Check if file already exists.\n\t if (dirListing[fname]) {\n\t throw ApiError.EEXIST(p);\n\t }\n\t var fileNode;\n\t try {\n\t // Commit data.\n\t var dataId = this.addNewNode(tx, data);\n\t fileNode = new Inode(dataId, data.length, mode | type, currTime, currTime, currTime);\n\t // Commit file node.\n\t var fileNodeId = this.addNewNode(tx, fileNode.toBuffer());\n\t // Update and commit parent directory listing.\n\t dirListing[fname] = fileNodeId;\n\t tx.put(parentNode.id, Buffer.from(JSON.stringify(dirListing)), true);\n\t }\n\t catch (e) {\n\t tx.abort();\n\t throw e;\n\t }\n\t tx.commit();\n\t return fileNode;\n\t };\n\t /**\n\t * Remove all traces of the given path from the file system.\n\t * @param p The path to remove from the file system.\n\t * @param isDir Does the path belong to a directory, or a file?\n\t * @todo Update mtime.\n\t */\n\t SyncKeyValueFileSystem.prototype.removeEntry = function removeEntry (p, isDir) {\n\t var tx = this.store.beginTransaction('readwrite'), parent = path.dirname(p), parentNode = this.findINode(tx, parent), parentListing = this.getDirListing(tx, parent, parentNode), fileName = path.basename(p);\n\t if (!parentListing[fileName]) {\n\t throw ApiError.ENOENT(p);\n\t }\n\t // Remove from directory listing of parent.\n\t var fileNodeId = parentListing[fileName];\n\t delete parentListing[fileName];\n\t // Get file inode.\n\t var fileNode = this.getINode(tx, p, fileNodeId);\n\t if (!isDir && fileNode.isDirectory()) {\n\t throw ApiError.EISDIR(p);\n\t }\n\t else if (isDir && !fileNode.isDirectory()) {\n\t throw ApiError.ENOTDIR(p);\n\t }\n\t try {\n\t // Delete data.\n\t tx.del(fileNode.id);\n\t // Delete node.\n\t tx.del(fileNodeId);\n\t // Update directory listing.\n\t tx.put(parentNode.id, Buffer.from(JSON.stringify(parentListing)), true);\n\t }\n\t catch (e) {\n\t tx.abort();\n\t throw e;\n\t }\n\t // Success.\n\t tx.commit();\n\t };\n\t\n\t return SyncKeyValueFileSystem;\n\t}(SynchronousFileSystem));\n\tvar AsyncKeyValueFile = (function (PreloadFile$$1) {\n\t function AsyncKeyValueFile(_fs, _path, _flag, _stat, contents) {\n\t PreloadFile$$1.call(this, _fs, _path, _flag, _stat, contents);\n\t }\n\t\n\t if ( PreloadFile$$1 ) AsyncKeyValueFile.__proto__ = PreloadFile$$1;\n\t AsyncKeyValueFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype );\n\t AsyncKeyValueFile.prototype.constructor = AsyncKeyValueFile;\n\t AsyncKeyValueFile.prototype.sync = function sync (cb) {\n\t var this$1 = this;\n\t\n\t if (this.isDirty()) {\n\t this._fs._sync(this.getPath(), this.getBuffer(), this.getStats(), function (e) {\n\t if (!e) {\n\t this$1.resetDirty();\n\t }\n\t cb(e);\n\t });\n\t }\n\t else {\n\t cb();\n\t }\n\t };\n\t AsyncKeyValueFile.prototype.close = function close (cb) {\n\t this.sync(cb);\n\t };\n\t\n\t return AsyncKeyValueFile;\n\t}(PreloadFile));\n\t/**\n\t * An \"Asynchronous key-value file system\". Stores data to/retrieves data from\n\t * an underlying asynchronous key-value store.\n\t */\n\tvar AsyncKeyValueFileSystem = (function (BaseFileSystem$$1) {\n\t function AsyncKeyValueFileSystem () {\n\t BaseFileSystem$$1.apply(this, arguments);\n\t }\n\t\n\t if ( BaseFileSystem$$1 ) AsyncKeyValueFileSystem.__proto__ = BaseFileSystem$$1;\n\t AsyncKeyValueFileSystem.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype );\n\t AsyncKeyValueFileSystem.prototype.constructor = AsyncKeyValueFileSystem;\n\t\n\t AsyncKeyValueFileSystem.isAvailable = function isAvailable () { return true; };\n\t /**\n\t * Initializes the file system. Typically called by subclasses' async\n\t * constructors.\n\t */\n\t AsyncKeyValueFileSystem.prototype.init = function init (store, cb) {\n\t this.store = store;\n\t // INVARIANT: Ensure that the root exists.\n\t this.makeRootDirectory(cb);\n\t };\n\t AsyncKeyValueFileSystem.prototype.getName = function getName () { return this.store.name(); };\n\t AsyncKeyValueFileSystem.prototype.isReadOnly = function isReadOnly () { return false; };\n\t AsyncKeyValueFileSystem.prototype.supportsSymlinks = function supportsSymlinks () { return false; };\n\t AsyncKeyValueFileSystem.prototype.supportsProps = function supportsProps () { return false; };\n\t AsyncKeyValueFileSystem.prototype.supportsSynch = function supportsSynch () { return false; };\n\t /**\n\t * Delete all contents stored in the file system.\n\t */\n\t AsyncKeyValueFileSystem.prototype.empty = function empty (cb) {\n\t var this$1 = this;\n\t\n\t this.store.clear(function (e) {\n\t if (noError(e, cb)) {\n\t // INVARIANT: Root always exists.\n\t this$1.makeRootDirectory(cb);\n\t }\n\t });\n\t };\n\t AsyncKeyValueFileSystem.prototype.rename = function rename (oldPath, newPath, cb) {\n\t var this$1 = this;\n\t\n\t var tx = this.store.beginTransaction('readwrite');\n\t var oldParent = path.dirname(oldPath), oldName = path.basename(oldPath);\n\t var newParent = path.dirname(newPath), newName = path.basename(newPath);\n\t var inodes = {};\n\t var lists = {};\n\t var errorOccurred = false;\n\t // Invariant: Can't move a folder inside itself.\n\t // This funny little hack ensures that the check passes only if oldPath\n\t // is a subpath of newParent. We append '/' to avoid matching folders that\n\t // are a substring of the bottom-most folder in the path.\n\t if ((newParent + '/').indexOf(oldPath + '/') === 0) {\n\t return cb(new ApiError(ErrorCode.EBUSY, oldParent));\n\t }\n\t /**\n\t * Responsible for Phase 2 of the rename operation: Modifying and\n\t * committing the directory listings. Called once we have successfully\n\t * retrieved both the old and new parent's inodes and listings.\n\t */\n\t var theOleSwitcharoo = function () {\n\t // Sanity check: Ensure both paths are present, and no error has occurred.\n\t if (errorOccurred || !lists.hasOwnProperty(oldParent) || !lists.hasOwnProperty(newParent)) {\n\t return;\n\t }\n\t var oldParentList = lists[oldParent], oldParentINode = inodes[oldParent], newParentList = lists[newParent], newParentINode = inodes[newParent];\n\t // Delete file from old parent.\n\t if (!oldParentList[oldName]) {\n\t cb(ApiError.ENOENT(oldPath));\n\t }\n\t else {\n\t var fileId = oldParentList[oldName];\n\t delete oldParentList[oldName];\n\t // Finishes off the renaming process by adding the file to the new\n\t // parent.\n\t var completeRename = function () {\n\t newParentList[newName] = fileId;\n\t // Commit old parent's list.\n\t tx.put(oldParentINode.id, Buffer.from(JSON.stringify(oldParentList)), true, function (e) {\n\t if (noErrorTx(e, tx, cb)) {\n\t if (oldParent === newParent) {\n\t // DONE!\n\t tx.commit(cb);\n\t }\n\t else {\n\t // Commit new parent's list.\n\t tx.put(newParentINode.id, Buffer.from(JSON.stringify(newParentList)), true, function (e) {\n\t if (noErrorTx(e, tx, cb)) {\n\t tx.commit(cb);\n\t }\n\t });\n\t }\n\t }\n\t });\n\t };\n\t if (newParentList[newName]) {\n\t // 'newPath' already exists. Check if it's a file or a directory, and\n\t // act accordingly.\n\t this$1.getINode(tx, newPath, newParentList[newName], function (e, inode) {\n\t if (noErrorTx(e, tx, cb)) {\n\t if (inode.isFile()) {\n\t // Delete the file and continue.\n\t tx.del(inode.id, function (e) {\n\t if (noErrorTx(e, tx, cb)) {\n\t tx.del(newParentList[newName], function (e) {\n\t if (noErrorTx(e, tx, cb)) {\n\t completeRename();\n\t }\n\t });\n\t }\n\t });\n\t }\n\t else {\n\t // Can't overwrite a directory using rename.\n\t tx.abort(function (e) {\n\t cb(ApiError.EPERM(newPath));\n\t });\n\t }\n\t }\n\t });\n\t }\n\t else {\n\t completeRename();\n\t }\n\t }\n\t };\n\t /**\n\t * Grabs a path's inode and directory listing, and shoves it into the\n\t * inodes and lists hashes.\n\t */\n\t var processInodeAndListings = function (p) {\n\t this$1.findINodeAndDirListing(tx, p, function (e, node, dirList) {\n\t if (e) {\n\t if (!errorOccurred) {\n\t errorOccurred = true;\n\t tx.abort(function () {\n\t cb(e);\n\t });\n\t }\n\t // If error has occurred already, just stop here.\n\t }\n\t else {\n\t inodes[p] = node;\n\t lists[p] = dirList;\n\t theOleSwitcharoo();\n\t }\n\t });\n\t };\n\t processInodeAndListings(oldParent);\n\t if (oldParent !== newParent) {\n\t processInodeAndListings(newParent);\n\t }\n\t };\n\t AsyncKeyValueFileSystem.prototype.stat = function stat (p, isLstat, cb) {\n\t var tx = this.store.beginTransaction('readonly');\n\t this.findINode(tx, p, function (e, inode) {\n\t if (noError(e, cb)) {\n\t cb(null, inode.toStats());\n\t }\n\t });\n\t };\n\t AsyncKeyValueFileSystem.prototype.createFile = function createFile (p, flag, mode, cb) {\n\t var this$1 = this;\n\t\n\t var tx = this.store.beginTransaction('readwrite'), data = emptyBuffer();\n\t this.commitNewFile(tx, p, FileType.FILE, mode, data, function (e, newFile) {\n\t if (noError(e, cb)) {\n\t cb(null, new AsyncKeyValueFile(this$1, p, flag, newFile.toStats(), data));\n\t }\n\t });\n\t };\n\t AsyncKeyValueFileSystem.prototype.openFile = function openFile (p, flag, cb) {\n\t var this$1 = this;\n\t\n\t var tx = this.store.beginTransaction('readonly');\n\t // Step 1: Grab the file's inode.\n\t this.findINode(tx, p, function (e, inode) {\n\t if (noError(e, cb)) {\n\t // Step 2: Grab the file's data.\n\t tx.get(inode.id, function (e, data) {\n\t if (noError(e, cb)) {\n\t if (data === undefined) {\n\t cb(ApiError.ENOENT(p));\n\t }\n\t else {\n\t cb(null, new AsyncKeyValueFile(this$1, p, flag, inode.toStats(), data));\n\t }\n\t }\n\t });\n\t }\n\t });\n\t };\n\t AsyncKeyValueFileSystem.prototype.unlink = function unlink (p, cb) {\n\t this.removeEntry(p, false, cb);\n\t };\n\t AsyncKeyValueFileSystem.prototype.rmdir = function rmdir (p, cb) {\n\t var this$1 = this;\n\t\n\t // Check first if directory is empty.\n\t this.readdir(p, function (err, files) {\n\t if (err) {\n\t cb(err);\n\t }\n\t else if (files.length > 0) {\n\t cb(ApiError.ENOTEMPTY(p));\n\t }\n\t else {\n\t this$1.removeEntry(p, true, cb);\n\t }\n\t });\n\t };\n\t AsyncKeyValueFileSystem.prototype.mkdir = function mkdir (p, mode, cb) {\n\t var tx = this.store.beginTransaction('readwrite'), data = Buffer.from('{}');\n\t this.commitNewFile(tx, p, FileType.DIRECTORY, mode, data, cb);\n\t };\n\t AsyncKeyValueFileSystem.prototype.readdir = function readdir (p, cb) {\n\t var this$1 = this;\n\t\n\t var tx = this.store.beginTransaction('readonly');\n\t this.findINode(tx, p, function (e, inode) {\n\t if (noError(e, cb)) {\n\t this$1.getDirListing(tx, p, inode, function (e, dirListing) {\n\t if (noError(e, cb)) {\n\t cb(null, Object.keys(dirListing));\n\t }\n\t });\n\t }\n\t });\n\t };\n\t AsyncKeyValueFileSystem.prototype._sync = function _sync (p, data, stats, cb) {\n\t var this$1 = this;\n\t\n\t // @todo Ensure mtime updates properly, and use that to determine if a data\n\t // update is required.\n\t var tx = this.store.beginTransaction('readwrite');\n\t // Step 1: Get the file node's ID.\n\t this._findINode(tx, path.dirname(p), path.basename(p), function (e, fileInodeId) {\n\t if (noErrorTx(e, tx, cb)) {\n\t // Step 2: Get the file inode.\n\t this$1.getINode(tx, p, fileInodeId, function (e, fileInode) {\n\t if (noErrorTx(e, tx, cb)) {\n\t var inodeChanged = fileInode.update(stats);\n\t // Step 3: Sync the data.\n\t tx.put(fileInode.id, data, true, function (e) {\n\t if (noErrorTx(e, tx, cb)) {\n\t // Step 4: Sync the metadata (if it changed)!\n\t if (inodeChanged) {\n\t tx.put(fileInodeId, fileInode.toBuffer(), true, function (e) {\n\t if (noErrorTx(e, tx, cb)) {\n\t tx.commit(cb);\n\t }\n\t });\n\t }\n\t else {\n\t // No need to sync metadata; return.\n\t tx.commit(cb);\n\t }\n\t }\n\t });\n\t }\n\t });\n\t }\n\t });\n\t };\n\t /**\n\t * Checks if the root directory exists. Creates it if it doesn't.\n\t */\n\t AsyncKeyValueFileSystem.prototype.makeRootDirectory = function makeRootDirectory (cb) {\n\t var tx = this.store.beginTransaction('readwrite');\n\t tx.get(ROOT_NODE_ID, function (e, data) {\n\t if (e || data === undefined) {\n\t // Create new inode.\n\t var currTime = (new Date()).getTime(), \n\t // Mode 0666\n\t dirInode = new Inode(GenerateRandomID(), 4096, 511 | FileType.DIRECTORY, currTime, currTime, currTime);\n\t // If the root doesn't exist, the first random ID shouldn't exist,\n\t // either.\n\t tx.put(dirInode.id, getEmptyDirNode(), false, function (e) {\n\t if (noErrorTx(e, tx, cb)) {\n\t tx.put(ROOT_NODE_ID, dirInode.toBuffer(), false, function (e) {\n\t if (e) {\n\t tx.abort(function () { cb(e); });\n\t }\n\t else {\n\t tx.commit(cb);\n\t }\n\t });\n\t }\n\t });\n\t }\n\t else {\n\t // We're good.\n\t tx.commit(cb);\n\t }\n\t });\n\t };\n\t /**\n\t * Helper function for findINode.\n\t * @param parent The parent directory of the file we are attempting to find.\n\t * @param filename The filename of the inode we are attempting to find, minus\n\t * the parent.\n\t * @param cb Passed an error or the ID of the file's inode in the file system.\n\t */\n\t AsyncKeyValueFileSystem.prototype._findINode = function _findINode (tx, parent, filename, cb) {\n\t var this$1 = this;\n\t\n\t var handleDirectoryListings = function (e, inode, dirList) {\n\t if (e) {\n\t cb(e);\n\t }\n\t else if (dirList[filename]) {\n\t cb(null, dirList[filename]);\n\t }\n\t else {\n\t cb(ApiError.ENOENT(path.resolve(parent, filename)));\n\t }\n\t };\n\t if (parent === '/') {\n\t if (filename === '') {\n\t // BASE CASE #1: Return the root's ID.\n\t cb(null, ROOT_NODE_ID);\n\t }\n\t else {\n\t // BASE CASE #2: Find the item in the root node.\n\t this.getINode(tx, parent, ROOT_NODE_ID, function (e, inode) {\n\t if (noError(e, cb)) {\n\t this$1.getDirListing(tx, parent, inode, function (e, dirList) {\n\t // handle_directory_listings will handle e for us.\n\t handleDirectoryListings(e, inode, dirList);\n\t });\n\t }\n\t });\n\t }\n\t }\n\t else {\n\t // Get the parent directory's INode, and find the file in its directory\n\t // listing.\n\t this.findINodeAndDirListing(tx, parent, handleDirectoryListings);\n\t }\n\t };\n\t /**\n\t * Finds the Inode of the given path.\n\t * @param p The path to look up.\n\t * @param cb Passed an error or the Inode of the path p.\n\t * @todo memoize/cache\n\t */\n\t AsyncKeyValueFileSystem.prototype.findINode = function findINode (tx, p, cb) {\n\t var this$1 = this;\n\t\n\t this._findINode(tx, path.dirname(p), path.basename(p), function (e, id) {\n\t if (noError(e, cb)) {\n\t this$1.getINode(tx, p, id, cb);\n\t }\n\t });\n\t };\n\t /**\n\t * Given the ID of a node, retrieves the corresponding Inode.\n\t * @param tx The transaction to use.\n\t * @param p The corresponding path to the file (used for error messages).\n\t * @param id The ID to look up.\n\t * @param cb Passed an error or the inode under the given id.\n\t */\n\t AsyncKeyValueFileSystem.prototype.getINode = function getINode (tx, p, id, cb) {\n\t tx.get(id, function (e, data) {\n\t if (noError(e, cb)) {\n\t if (data === undefined) {\n\t cb(ApiError.ENOENT(p));\n\t }\n\t else {\n\t cb(null, Inode.fromBuffer(data));\n\t }\n\t }\n\t });\n\t };\n\t /**\n\t * Given the Inode of a directory, retrieves the corresponding directory\n\t * listing.\n\t */\n\t AsyncKeyValueFileSystem.prototype.getDirListing = function getDirListing (tx, p, inode, cb) {\n\t if (!inode.isDirectory()) {\n\t cb(ApiError.ENOTDIR(p));\n\t }\n\t else {\n\t tx.get(inode.id, function (e, data) {\n\t if (noError(e, cb)) {\n\t try {\n\t cb(null, JSON.parse(data.toString()));\n\t }\n\t catch (e) {\n\t // Occurs when data is undefined, or corresponds to something other\n\t // than a directory listing. The latter should never occur unless\n\t // the file system is corrupted.\n\t cb(ApiError.ENOENT(p));\n\t }\n\t }\n\t });\n\t }\n\t };\n\t /**\n\t * Given a path to a directory, retrieves the corresponding INode and\n\t * directory listing.\n\t */\n\t AsyncKeyValueFileSystem.prototype.findINodeAndDirListing = function findINodeAndDirListing (tx, p, cb) {\n\t var this$1 = this;\n\t\n\t this.findINode(tx, p, function (e, inode) {\n\t if (noError(e, cb)) {\n\t this$1.getDirListing(tx, p, inode, function (e, listing) {\n\t if (noError(e, cb)) {\n\t cb(null, inode, listing);\n\t }\n\t });\n\t }\n\t });\n\t };\n\t /**\n\t * Adds a new node under a random ID. Retries 5 times before giving up in\n\t * the exceedingly unlikely chance that we try to reuse a random GUID.\n\t * @param cb Passed an error or the GUID that the data was stored under.\n\t */\n\t AsyncKeyValueFileSystem.prototype.addNewNode = function addNewNode (tx, data, cb) {\n\t var retries = 0, currId;\n\t var reroll = function () {\n\t if (++retries === 5) {\n\t // Max retries hit. Return with an error.\n\t cb(new ApiError(ErrorCode.EIO, 'Unable to commit data to key-value store.'));\n\t }\n\t else {\n\t // Try again.\n\t currId = GenerateRandomID();\n\t tx.put(currId, data, false, function (e, committed) {\n\t if (e || !committed) {\n\t reroll();\n\t }\n\t else {\n\t // Successfully stored under 'currId'.\n\t cb(null, currId);\n\t }\n\t });\n\t }\n\t };\n\t reroll();\n\t };\n\t /**\n\t * Commits a new file (well, a FILE or a DIRECTORY) to the file system with\n\t * the given mode.\n\t * Note: This will commit the transaction.\n\t * @param p The path to the new file.\n\t * @param type The type of the new file.\n\t * @param mode The mode to create the new file with.\n\t * @param data The data to store at the file's data node.\n\t * @param cb Passed an error or the Inode for the new file.\n\t */\n\t AsyncKeyValueFileSystem.prototype.commitNewFile = function commitNewFile (tx, p, type, mode, data, cb) {\n\t var this$1 = this;\n\t\n\t var parentDir = path.dirname(p), fname = path.basename(p), currTime = (new Date()).getTime();\n\t // Invariant: The root always exists.\n\t // If we don't check this prior to taking steps below, we will create a\n\t // file with name '' in root should p == '/'.\n\t if (p === '/') {\n\t return cb(ApiError.EEXIST(p));\n\t }\n\t // Let's build a pyramid of code!\n\t // Step 1: Get the parent directory's inode and directory listing\n\t this.findINodeAndDirListing(tx, parentDir, function (e, parentNode, dirListing) {\n\t if (noErrorTx(e, tx, cb)) {\n\t if (dirListing[fname]) {\n\t // File already exists.\n\t tx.abort(function () {\n\t cb(ApiError.EEXIST(p));\n\t });\n\t }\n\t else {\n\t // Step 2: Commit data to store.\n\t this$1.addNewNode(tx, data, function (e, dataId) {\n\t if (noErrorTx(e, tx, cb)) {\n\t // Step 3: Commit the file's inode to the store.\n\t var fileInode = new Inode(dataId, data.length, mode | type, currTime, currTime, currTime);\n\t this$1.addNewNode(tx, fileInode.toBuffer(), function (e, fileInodeId) {\n\t if (noErrorTx(e, tx, cb)) {\n\t // Step 4: Update parent directory's listing.\n\t dirListing[fname] = fileInodeId;\n\t tx.put(parentNode.id, Buffer.from(JSON.stringify(dirListing)), true, function (e) {\n\t if (noErrorTx(e, tx, cb)) {\n\t // Step 5: Commit and return the new inode.\n\t tx.commit(function (e) {\n\t if (noErrorTx(e, tx, cb)) {\n\t cb(null, fileInode);\n\t }\n\t });\n\t }\n\t });\n\t }\n\t });\n\t }\n\t });\n\t }\n\t }\n\t });\n\t };\n\t /**\n\t * Remove all traces of the given path from the file system.\n\t * @param p The path to remove from the file system.\n\t * @param isDir Does the path belong to a directory, or a file?\n\t * @todo Update mtime.\n\t */\n\t AsyncKeyValueFileSystem.prototype.removeEntry = function removeEntry (p, isDir, cb) {\n\t var this$1 = this;\n\t\n\t var tx = this.store.beginTransaction('readwrite'), parent = path.dirname(p), fileName = path.basename(p);\n\t // Step 1: Get parent directory's node and directory listing.\n\t this.findINodeAndDirListing(tx, parent, function (e, parentNode, parentListing) {\n\t if (noErrorTx(e, tx, cb)) {\n\t if (!parentListing[fileName]) {\n\t tx.abort(function () {\n\t cb(ApiError.ENOENT(p));\n\t });\n\t }\n\t else {\n\t // Remove from directory listing of parent.\n\t var fileNodeId = parentListing[fileName];\n\t delete parentListing[fileName];\n\t // Step 2: Get file inode.\n\t this$1.getINode(tx, p, fileNodeId, function (e, fileNode) {\n\t if (noErrorTx(e, tx, cb)) {\n\t if (!isDir && fileNode.isDirectory()) {\n\t tx.abort(function () {\n\t cb(ApiError.EISDIR(p));\n\t });\n\t }\n\t else if (isDir && !fileNode.isDirectory()) {\n\t tx.abort(function () {\n\t cb(ApiError.ENOTDIR(p));\n\t });\n\t }\n\t else {\n\t // Step 3: Delete data.\n\t tx.del(fileNode.id, function (e) {\n\t if (noErrorTx(e, tx, cb)) {\n\t // Step 4: Delete node.\n\t tx.del(fileNodeId, function (e) {\n\t if (noErrorTx(e, tx, cb)) {\n\t // Step 5: Update directory listing.\n\t tx.put(parentNode.id, Buffer.from(JSON.stringify(parentListing)), true, function (e) {\n\t if (noErrorTx(e, tx, cb)) {\n\t tx.commit(cb);\n\t }\n\t });\n\t }\n\t });\n\t }\n\t });\n\t }\n\t }\n\t });\n\t }\n\t }\n\t });\n\t };\n\t\n\t return AsyncKeyValueFileSystem;\n\t}(BaseFileSystem));\n\t\n\t/**\n\t * A simple in-memory key-value store backed by a JavaScript object.\n\t */\n\tvar InMemoryStore = function InMemoryStore() {\n\t this.store = {};\n\t};\n\tInMemoryStore.prototype.name = function name () { return InMemoryFileSystem.Name; };\n\tInMemoryStore.prototype.clear = function clear () { this.store = {}; };\n\tInMemoryStore.prototype.beginTransaction = function beginTransaction (type) {\n\t return new SimpleSyncRWTransaction(this);\n\t};\n\tInMemoryStore.prototype.get = function get (key) {\n\t return this.store[key];\n\t};\n\tInMemoryStore.prototype.put = function put (key, data, overwrite) {\n\t if (!overwrite && this.store.hasOwnProperty(key)) {\n\t return false;\n\t }\n\t this.store[key] = data;\n\t return true;\n\t};\n\tInMemoryStore.prototype.del = function del (key) {\n\t delete this.store[key];\n\t};\n\t/**\n\t * A simple in-memory file system backed by an InMemoryStore.\n\t * Files are not persisted across page loads.\n\t */\n\tvar InMemoryFileSystem = (function (SyncKeyValueFileSystem$$1) {\n\t function InMemoryFileSystem() {\n\t SyncKeyValueFileSystem$$1.call(this, { store: new InMemoryStore() });\n\t }\n\t\n\t if ( SyncKeyValueFileSystem$$1 ) InMemoryFileSystem.__proto__ = SyncKeyValueFileSystem$$1;\n\t InMemoryFileSystem.prototype = Object.create( SyncKeyValueFileSystem$$1 && SyncKeyValueFileSystem$$1.prototype );\n\t InMemoryFileSystem.prototype.constructor = InMemoryFileSystem;\n\t /**\n\t * Creates an InMemoryFileSystem instance.\n\t */\n\t InMemoryFileSystem.Create = function Create (options, cb) {\n\t cb(null, new InMemoryFileSystem());\n\t };\n\t\n\t return InMemoryFileSystem;\n\t}(SyncKeyValueFileSystem));\n\t\n\tInMemoryFileSystem.Name = \"InMemory\";\n\tInMemoryFileSystem.Options = {};\n\t\n\t/**\n\t * Get the indexedDB constructor for the current browser.\n\t * @hidden\n\t */\n\tvar indexedDB = global$1.indexedDB ||\n\t global$1.mozIndexedDB ||\n\t global$1.webkitIndexedDB ||\n\t global$1.msIndexedDB;\n\t/**\n\t * Converts a DOMException or a DOMError from an IndexedDB event into a\n\t * standardized BrowserFS API error.\n\t * @hidden\n\t */\n\tfunction convertError$2(e, message) {\n\t if ( message === void 0 ) message = e.toString();\n\t\n\t switch (e.name) {\n\t case \"NotFoundError\":\n\t return new ApiError(ErrorCode.ENOENT, message);\n\t case \"QuotaExceededError\":\n\t return new ApiError(ErrorCode.ENOSPC, message);\n\t default:\n\t // The rest do not seem to map cleanly to standard error codes.\n\t return new ApiError(ErrorCode.EIO, message);\n\t }\n\t}\n\t/**\n\t * Produces a new onerror handler for IDB. Our errors are always fatal, so we\n\t * handle them generically: Call the user-supplied callback with a translated\n\t * version of the error, and let the error bubble up.\n\t * @hidden\n\t */\n\tfunction onErrorHandler(cb, code, message) {\n\t if ( code === void 0 ) code = ErrorCode.EIO;\n\t if ( message === void 0 ) message = null;\n\t\n\t return function (e) {\n\t // Prevent the error from canceling the transaction.\n\t e.preventDefault();\n\t cb(new ApiError(code, message !== null ? message : undefined));\n\t };\n\t}\n\t/**\n\t * @hidden\n\t */\n\tvar IndexedDBROTransaction = function IndexedDBROTransaction(tx, store) {\n\t this.tx = tx;\n\t this.store = store;\n\t};\n\tIndexedDBROTransaction.prototype.get = function get (key, cb) {\n\t try {\n\t var r = this.store.get(key);\n\t r.onerror = onErrorHandler(cb);\n\t r.onsuccess = function (event) {\n\t // IDB returns the value 'undefined' when you try to get keys that\n\t // don't exist. The caller expects this behavior.\n\t var result = event.target.result;\n\t if (result === undefined) {\n\t cb(null, result);\n\t }\n\t else {\n\t // IDB data is stored as an ArrayBuffer\n\t cb(null, arrayBuffer2Buffer(result));\n\t }\n\t };\n\t }\n\t catch (e) {\n\t cb(convertError$2(e));\n\t }\n\t};\n\t/**\n\t * @hidden\n\t */\n\tvar IndexedDBRWTransaction = (function (IndexedDBROTransaction) {\n\t function IndexedDBRWTransaction(tx, store) {\n\t IndexedDBROTransaction.call(this, tx, store);\n\t }\n\t\n\t if ( IndexedDBROTransaction ) IndexedDBRWTransaction.__proto__ = IndexedDBROTransaction;\n\t IndexedDBRWTransaction.prototype = Object.create( IndexedDBROTransaction && IndexedDBROTransaction.prototype );\n\t IndexedDBRWTransaction.prototype.constructor = IndexedDBRWTransaction;\n\t IndexedDBRWTransaction.prototype.put = function put (key, data, overwrite, cb) {\n\t try {\n\t var arraybuffer = buffer2ArrayBuffer(data);\n\t var r;\n\t if (overwrite) {\n\t r = this.store.put(arraybuffer, key);\n\t }\n\t else {\n\t // 'add' will never overwrite an existing key.\n\t r = this.store.add(arraybuffer, key);\n\t }\n\t // XXX: NEED TO RETURN FALSE WHEN ADD HAS A KEY CONFLICT. NO ERROR.\n\t r.onerror = onErrorHandler(cb);\n\t r.onsuccess = function (event) {\n\t cb(null, true);\n\t };\n\t }\n\t catch (e) {\n\t cb(convertError$2(e));\n\t }\n\t };\n\t IndexedDBRWTransaction.prototype.del = function del (key, cb) {\n\t try {\n\t // NOTE: IE8 has a bug with identifiers named 'delete' unless used as a string\n\t // like this.\n\t // http://stackoverflow.com/a/26479152\n\t var r = this.store['delete'](key);\n\t r.onerror = onErrorHandler(cb);\n\t r.onsuccess = function (event) {\n\t cb();\n\t };\n\t }\n\t catch (e) {\n\t cb(convertError$2(e));\n\t }\n\t };\n\t IndexedDBRWTransaction.prototype.commit = function commit (cb) {\n\t // Return to the event loop to commit the transaction.\n\t setTimeout(cb, 0);\n\t };\n\t IndexedDBRWTransaction.prototype.abort = function abort (cb) {\n\t var _e = null;\n\t try {\n\t this.tx.abort();\n\t }\n\t catch (e) {\n\t _e = convertError$2(e);\n\t }\n\t finally {\n\t cb(_e);\n\t }\n\t };\n\t\n\t return IndexedDBRWTransaction;\n\t}(IndexedDBROTransaction));\n\tvar IndexedDBStore = function IndexedDBStore(cb, storeName) {\n\t var this$1 = this;\n\t if ( storeName === void 0 ) storeName = 'browserfs';\n\t\n\t this.storeName = storeName;\n\t var openReq = indexedDB.open(this.storeName, 1);\n\t openReq.onupgradeneeded = function (event) {\n\t var db = event.target.result;\n\t // Huh. This should never happen; we're at version 1. Why does another\n\t // database exist?\n\t if (db.objectStoreNames.contains(this$1.storeName)) {\n\t db.deleteObjectStore(this$1.storeName);\n\t }\n\t db.createObjectStore(this$1.storeName);\n\t };\n\t openReq.onsuccess = function (event) {\n\t this$1.db = event.target.result;\n\t cb(null, this$1);\n\t };\n\t openReq.onerror = onErrorHandler(cb, ErrorCode.EACCES);\n\t};\n\tIndexedDBStore.prototype.name = function name () {\n\t return IndexedDBFileSystem.Name + \" - \" + this.storeName;\n\t};\n\tIndexedDBStore.prototype.clear = function clear (cb) {\n\t try {\n\t var tx = this.db.transaction(this.storeName, 'readwrite'), objectStore = tx.objectStore(this.storeName), r = objectStore.clear();\n\t r.onsuccess = function (event) {\n\t // Use setTimeout to commit transaction.\n\t setTimeout(cb, 0);\n\t };\n\t r.onerror = onErrorHandler(cb);\n\t }\n\t catch (e) {\n\t cb(convertError$2(e));\n\t }\n\t};\n\tIndexedDBStore.prototype.beginTransaction = function beginTransaction (type) {\n\t if ( type === void 0 ) type = 'readonly';\n\t\n\t var tx = this.db.transaction(this.storeName, type), objectStore = tx.objectStore(this.storeName);\n\t if (type === 'readwrite') {\n\t return new IndexedDBRWTransaction(tx, objectStore);\n\t }\n\t else if (type === 'readonly') {\n\t return new IndexedDBROTransaction(tx, objectStore);\n\t }\n\t else {\n\t throw new ApiError(ErrorCode.EINVAL, 'Invalid transaction type.');\n\t }\n\t};\n\t/**\n\t * A file system that uses the IndexedDB key value file system.\n\t */\n\tvar IndexedDBFileSystem = (function (AsyncKeyValueFileSystem$$1) {\n\t function IndexedDBFileSystem(cb, storeName, deprecateMsg) {\n\t var this$1 = this;\n\t if ( deprecateMsg === void 0 ) deprecateMsg = true;\n\t\n\t AsyncKeyValueFileSystem$$1.call(this);\n\t this.store = new IndexedDBStore(function (e) {\n\t if (e) {\n\t cb(e);\n\t }\n\t else {\n\t this$1.init(this$1.store, function (e) {\n\t cb(e, this$1);\n\t });\n\t }\n\t }, storeName);\n\t deprecationMessage(deprecateMsg, IndexedDBFileSystem.Name, { storeName: storeName });\n\t }\n\t\n\t if ( AsyncKeyValueFileSystem$$1 ) IndexedDBFileSystem.__proto__ = AsyncKeyValueFileSystem$$1;\n\t IndexedDBFileSystem.prototype = Object.create( AsyncKeyValueFileSystem$$1 && AsyncKeyValueFileSystem$$1.prototype );\n\t IndexedDBFileSystem.prototype.constructor = IndexedDBFileSystem;\n\t /**\n\t * Constructs an IndexedDB file system with the given options.\n\t */\n\t IndexedDBFileSystem.Create = function Create (opts, cb) {\n\t // tslint:disable-next-line:no-unused-new\n\t new IndexedDBFileSystem(cb, opts.storeName, false);\n\t // tslint:enable-next-line:no-unused-new\n\t };\n\t IndexedDBFileSystem.isAvailable = function isAvailable () {\n\t // In Safari's private browsing mode, indexedDB.open returns NULL.\n\t // In Firefox, it throws an exception.\n\t // In Chrome, it \"just works\", and clears the database when you leave the page.\n\t // Untested: Opera, IE.\n\t try {\n\t return typeof indexedDB !== 'undefined' && null !== indexedDB.open(\"__browserfs_test__\");\n\t }\n\t catch (e) {\n\t return false;\n\t }\n\t };\n\t\n\t return IndexedDBFileSystem;\n\t}(AsyncKeyValueFileSystem));\n\t\n\tIndexedDBFileSystem.Name = \"IndexedDB\";\n\tIndexedDBFileSystem.Options = {\n\t storeName: {\n\t type: \"string\",\n\t optional: true,\n\t description: \"The name of this file system. You can have multiple IndexedDB file systems operating at once, but each must have a different name.\"\n\t }\n\t};\n\t\n\t/**\n\t * Some versions of FF and all versions of IE do not support the full range of\n\t * 16-bit numbers encoded as characters, as they enforce UTF-16 restrictions.\n\t * @url http://stackoverflow.com/questions/11170716/are-there-any-characters-that-are-not-allowed-in-localstorage/11173673#11173673\n\t * @hidden\n\t */\n\tvar supportsBinaryString = false;\n\tvar binaryEncoding;\n\ttry {\n\t global$1.localStorage.setItem(\"__test__\", String.fromCharCode(0xD800));\n\t supportsBinaryString = global$1.localStorage.getItem(\"__test__\") === String.fromCharCode(0xD800);\n\t}\n\tcatch (e) {\n\t // IE throws an exception.\n\t supportsBinaryString = false;\n\t}\n\tbinaryEncoding = supportsBinaryString ? 'binary_string' : 'binary_string_ie';\n\tif (!Buffer.isEncoding(binaryEncoding)) {\n\t // Fallback for non BrowserFS implementations of buffer that lack a\n\t // binary_string format.\n\t binaryEncoding = \"base64\";\n\t}\n\t/**\n\t * A synchronous key-value store backed by localStorage.\n\t */\n\tvar LocalStorageStore = function LocalStorageStore () {};\n\t\n\tLocalStorageStore.prototype.name = function name () {\n\t return LocalStorageFileSystem.Name;\n\t};\n\tLocalStorageStore.prototype.clear = function clear () {\n\t global$1.localStorage.clear();\n\t};\n\tLocalStorageStore.prototype.beginTransaction = function beginTransaction (type) {\n\t // No need to differentiate.\n\t return new SimpleSyncRWTransaction(this);\n\t};\n\tLocalStorageStore.prototype.get = function get (key) {\n\t try {\n\t var data = global$1.localStorage.getItem(key);\n\t if (data !== null) {\n\t return Buffer.from(data, binaryEncoding);\n\t }\n\t }\n\t catch (e) {\n\t // Do nothing.\n\t }\n\t // Key doesn't exist, or a failure occurred.\n\t return undefined;\n\t};\n\tLocalStorageStore.prototype.put = function put (key, data, overwrite) {\n\t try {\n\t if (!overwrite && global$1.localStorage.getItem(key) !== null) {\n\t // Don't want to overwrite the key!\n\t return false;\n\t }\n\t global$1.localStorage.setItem(key, data.toString(binaryEncoding));\n\t return true;\n\t }\n\t catch (e) {\n\t throw new ApiError(ErrorCode.ENOSPC, \"LocalStorage is full.\");\n\t }\n\t};\n\tLocalStorageStore.prototype.del = function del (key) {\n\t try {\n\t global$1.localStorage.removeItem(key);\n\t }\n\t catch (e) {\n\t throw new ApiError(ErrorCode.EIO, \"Unable to delete key \" + key + \": \" + e);\n\t }\n\t};\n\t/**\n\t * A synchronous file system backed by localStorage. Connects our\n\t * LocalStorageStore to our SyncKeyValueFileSystem.\n\t */\n\tvar LocalStorageFileSystem = (function (SyncKeyValueFileSystem$$1) {\n\t function LocalStorageFileSystem() { SyncKeyValueFileSystem$$1.call(this, { store: new LocalStorageStore() }); }\n\t\n\t if ( SyncKeyValueFileSystem$$1 ) LocalStorageFileSystem.__proto__ = SyncKeyValueFileSystem$$1;\n\t LocalStorageFileSystem.prototype = Object.create( SyncKeyValueFileSystem$$1 && SyncKeyValueFileSystem$$1.prototype );\n\t LocalStorageFileSystem.prototype.constructor = LocalStorageFileSystem;\n\t /**\n\t * Creates a LocalStorageFileSystem instance.\n\t */\n\t LocalStorageFileSystem.Create = function Create (options, cb) {\n\t cb(null, new LocalStorageFileSystem());\n\t };\n\t LocalStorageFileSystem.isAvailable = function isAvailable () {\n\t return typeof global$1.localStorage !== 'undefined';\n\t };\n\t\n\t return LocalStorageFileSystem;\n\t}(SyncKeyValueFileSystem));\n\t\n\tLocalStorageFileSystem.Name = \"LocalStorage\";\n\tLocalStorageFileSystem.Options = {};\n\t\n\t/**\n\t * The MountableFileSystem allows you to mount multiple backend types or\n\t * multiple instantiations of the same backend into a single file system tree.\n\t * The file systems do not need to know about each other; all interactions are\n\t * automatically facilitated through this interface.\n\t *\n\t * For example, if a file system is mounted at /mnt/blah, and a request came in\n\t * for /mnt/blah/foo.txt, the file system would see a request for /foo.txt.\n\t *\n\t * You can mount file systems when you configure the file system:\n\t * ```javascript\n\t * BrowserFS.configure({\n\t * fs: \"MountableFileSystem\",\n\t * options: {\n\t * '/data': { fs: 'XmlHttpRequest', options: { index: \"http://mysite.com/files/index.json\" } },\n\t * '/home': { fs: 'LocalStorage' }\n\t * }\n\t * }, function(e) {\n\t *\n\t * });\n\t * ```\n\t *\n\t * For advanced users, you can also mount file systems *after* MFS is constructed:\n\t * ```javascript\n\t * BrowserFS.FileSystem.XmlHttpRequest.Create({\n\t * index: \"http://mysite.com/files/index.json\"\n\t * }, function(e, xhrfs) {\n\t * BrowserFS.FileSystem.MountableFileSystem.Create({\n\t * '/data': xhrfs\n\t * }, function(e, mfs) {\n\t * BrowserFS.initialize(mfs);\n\t *\n\t * // Added after-the-fact...\n\t * BrowserFS.FileSystem.LocalStorage.Create(function(e, lsfs) {\n\t * mfs.mount('/home', lsfs);\n\t * });\n\t * });\n\t * });\n\t * ```\n\t *\n\t * Since MountableFileSystem simply proxies requests to mounted file systems, it supports all of the operations that the mounted file systems support.\n\t *\n\t * With no mounted file systems, `MountableFileSystem` acts as a simple `InMemory` filesystem.\n\t */\n\tvar MountableFileSystem = (function (BaseFileSystem$$1) {\n\t function MountableFileSystem() {\n\t BaseFileSystem$$1.call(this);\n\t // Contains the list of mount points in mntMap, sorted by string length in decreasing order.\n\t // Ensures that we scan the most specific mount points for a match first, which lets us\n\t // nest mount points.\n\t this.mountList = [];\n\t this.mntMap = {};\n\t // The InMemory file system serves purely to provide directory listings for\n\t // mounted file systems.\n\t this.rootFs = new InMemoryFileSystem();\n\t }\n\t\n\t if ( BaseFileSystem$$1 ) MountableFileSystem.__proto__ = BaseFileSystem$$1;\n\t MountableFileSystem.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype );\n\t MountableFileSystem.prototype.constructor = MountableFileSystem;\n\t /**\n\t * Creates a MountableFileSystem instance with the given options.\n\t */\n\t MountableFileSystem.Create = function Create (opts, cb) {\n\t var fs = new MountableFileSystem();\n\t Object.keys(opts).forEach(function (mountPoint) {\n\t fs.mount(mountPoint, opts[mountPoint]);\n\t });\n\t cb(null, fs);\n\t };\n\t MountableFileSystem.isAvailable = function isAvailable () {\n\t return true;\n\t };\n\t /**\n\t * Mounts the file system at the given mount point.\n\t */\n\t MountableFileSystem.prototype.mount = function mount (mountPoint, fs) {\n\t if (mountPoint[0] !== '/') {\n\t mountPoint = \"/\" + mountPoint;\n\t }\n\t mountPoint = path.resolve(mountPoint);\n\t if (this.mntMap[mountPoint]) {\n\t throw new ApiError(ErrorCode.EINVAL, \"Mount point \" + mountPoint + \" is already taken.\");\n\t }\n\t mkdirpSync(mountPoint, 0x1ff, this.rootFs);\n\t this.mntMap[mountPoint] = fs;\n\t this.mountList.push(mountPoint);\n\t this.mountList = this.mountList.sort(function (a, b) { return b.length - a.length; });\n\t };\n\t MountableFileSystem.prototype.umount = function umount (mountPoint) {\n\t var this$1 = this;\n\t\n\t if (mountPoint[0] !== '/') {\n\t mountPoint = \"/\" + mountPoint;\n\t }\n\t mountPoint = path.resolve(mountPoint);\n\t if (!this.mntMap[mountPoint]) {\n\t throw new ApiError(ErrorCode.EINVAL, \"Mount point \" + mountPoint + \" is already unmounted.\");\n\t }\n\t delete this.mntMap[mountPoint];\n\t this.mountList.splice(this.mountList.indexOf(mountPoint), 1);\n\t while (mountPoint !== '/') {\n\t if (this$1.rootFs.readdirSync(mountPoint).length === 0) {\n\t this$1.rootFs.rmdirSync(mountPoint);\n\t mountPoint = path.dirname(mountPoint);\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t };\n\t /**\n\t * Returns the file system that the path points to.\n\t */\n\t MountableFileSystem.prototype._getFs = function _getFs (path$$1) {\n\t var this$1 = this;\n\t\n\t var mountList = this.mountList, len = mountList.length;\n\t for (var i = 0; i < len; i++) {\n\t var mountPoint = mountList[i];\n\t // We know path is normalized, so it is a substring of the mount point.\n\t if (mountPoint.length <= path$$1.length && path$$1.indexOf(mountPoint) === 0) {\n\t path$$1 = path$$1.substr(mountPoint.length > 1 ? mountPoint.length : 0);\n\t if (path$$1 === '') {\n\t path$$1 = '/';\n\t }\n\t return { fs: this$1.mntMap[mountPoint], path: path$$1 };\n\t }\n\t }\n\t // Query our root file system.\n\t return { fs: this.rootFs, path: path$$1 };\n\t };\n\t // Global information methods\n\t MountableFileSystem.prototype.getName = function getName () {\n\t return MountableFileSystem.Name;\n\t };\n\t MountableFileSystem.prototype.diskSpace = function diskSpace (path$$1, cb) {\n\t cb(0, 0);\n\t };\n\t MountableFileSystem.prototype.isReadOnly = function isReadOnly () {\n\t return false;\n\t };\n\t MountableFileSystem.prototype.supportsLinks = function supportsLinks () {\n\t // I'm not ready for cross-FS links yet.\n\t return false;\n\t };\n\t MountableFileSystem.prototype.supportsProps = function supportsProps () {\n\t return false;\n\t };\n\t MountableFileSystem.prototype.supportsSynch = function supportsSynch () {\n\t return true;\n\t };\n\t /**\n\t * Fixes up error messages so they mention the mounted file location relative\n\t * to the MFS root, not to the particular FS's root.\n\t * Mutates the input error, and returns it.\n\t */\n\t MountableFileSystem.prototype.standardizeError = function standardizeError (err, path$$1, realPath) {\n\t var index = err.message.indexOf(path$$1);\n\t if (index !== -1) {\n\t err.message = err.message.substr(0, index) + realPath + err.message.substr(index + path$$1.length);\n\t err.path = realPath;\n\t }\n\t return err;\n\t };\n\t // The following methods involve multiple file systems, and thus have custom\n\t // logic.\n\t // Note that we go through the Node API to use its robust default argument\n\t // processing.\n\t MountableFileSystem.prototype.rename = function rename (oldPath, newPath, cb) {\n\t var this$1 = this;\n\t\n\t // Scenario 1: old and new are on same FS.\n\t var fs1rv = this._getFs(oldPath);\n\t var fs2rv = this._getFs(newPath);\n\t if (fs1rv.fs === fs2rv.fs) {\n\t return fs1rv.fs.rename(fs1rv.path, fs2rv.path, function (e) {\n\t if (e) {\n\t this$1.standardizeError(this$1.standardizeError(e, fs1rv.path, oldPath), fs2rv.path, newPath);\n\t }\n\t cb(e);\n\t });\n\t }\n\t // Scenario 2: Different file systems.\n\t // Read old file, write new file, delete old file.\n\t return _fsMock.readFile(oldPath, function (err, data) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t _fsMock.writeFile(newPath, data, function (err) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t _fsMock.unlink(oldPath, cb);\n\t });\n\t });\n\t };\n\t MountableFileSystem.prototype.renameSync = function renameSync (oldPath, newPath) {\n\t // Scenario 1: old and new are on same FS.\n\t var fs1rv = this._getFs(oldPath);\n\t var fs2rv = this._getFs(newPath);\n\t if (fs1rv.fs === fs2rv.fs) {\n\t try {\n\t return fs1rv.fs.renameSync(fs1rv.path, fs2rv.path);\n\t }\n\t catch (e) {\n\t this.standardizeError(this.standardizeError(e, fs1rv.path, oldPath), fs2rv.path, newPath);\n\t throw e;\n\t }\n\t }\n\t // Scenario 2: Different file systems.\n\t var data = _fsMock.readFileSync(oldPath);\n\t _fsMock.writeFileSync(newPath, data);\n\t return _fsMock.unlinkSync(oldPath);\n\t };\n\t MountableFileSystem.prototype.readdirSync = function readdirSync (p) {\n\t var fsInfo = this._getFs(p);\n\t // If null, rootfs did not have the directory\n\t // (or the target FS is the root fs).\n\t var rv = null;\n\t // Mount points are all defined in the root FS.\n\t // Ensure that we list those, too.\n\t if (fsInfo.fs !== this.rootFs) {\n\t try {\n\t rv = this.rootFs.readdirSync(p);\n\t }\n\t catch (e) {\n\t // Ignore.\n\t }\n\t }\n\t try {\n\t var rv2 = fsInfo.fs.readdirSync(fsInfo.path);\n\t if (rv === null) {\n\t return rv2;\n\t }\n\t else {\n\t // Filter out duplicates.\n\t return rv2.concat(rv.filter(function (val) { return rv2.indexOf(val) === -1; }));\n\t }\n\t }\n\t catch (e) {\n\t if (rv === null) {\n\t throw this.standardizeError(e, fsInfo.path, p);\n\t }\n\t else {\n\t // The root FS had something.\n\t return rv;\n\t }\n\t }\n\t };\n\t MountableFileSystem.prototype.readdir = function readdir (p, cb) {\n\t var this$1 = this;\n\t\n\t var fsInfo = this._getFs(p);\n\t fsInfo.fs.readdir(fsInfo.path, function (err, files) {\n\t if (fsInfo.fs !== this$1.rootFs) {\n\t try {\n\t var rv = this$1.rootFs.readdirSync(p);\n\t if (files) {\n\t // Filter out duplicates.\n\t files = files.concat(rv.filter(function (val) { return files.indexOf(val) === -1; }));\n\t }\n\t else {\n\t files = rv;\n\t }\n\t }\n\t catch (e) {\n\t // Root FS and target FS did not have directory.\n\t if (err) {\n\t return cb(this$1.standardizeError(err, fsInfo.path, p));\n\t }\n\t }\n\t }\n\t else if (err) {\n\t // Root FS and target FS are the same, and did not have directory.\n\t return cb(this$1.standardizeError(err, fsInfo.path, p));\n\t }\n\t cb(null, files);\n\t });\n\t };\n\t MountableFileSystem.prototype.rmdirSync = function rmdirSync (p) {\n\t var fsInfo = this._getFs(p);\n\t if (this._containsMountPt(p)) {\n\t throw ApiError.ENOTEMPTY(p);\n\t }\n\t else {\n\t try {\n\t fsInfo.fs.rmdirSync(fsInfo.path);\n\t }\n\t catch (e) {\n\t throw this.standardizeError(e, fsInfo.path, p);\n\t }\n\t }\n\t };\n\t MountableFileSystem.prototype.rmdir = function rmdir (p, cb) {\n\t var this$1 = this;\n\t\n\t var fsInfo = this._getFs(p);\n\t if (this._containsMountPt(p)) {\n\t cb(ApiError.ENOTEMPTY(p));\n\t }\n\t else {\n\t fsInfo.fs.rmdir(fsInfo.path, function (err) {\n\t cb(err ? this$1.standardizeError(err, fsInfo.path, p) : null);\n\t });\n\t }\n\t };\n\t /**\n\t * Returns true if the given path contains a mount point.\n\t */\n\t MountableFileSystem.prototype._containsMountPt = function _containsMountPt (p) {\n\t var mountPoints = this.mountList, len = mountPoints.length;\n\t for (var i = 0; i < len; i++) {\n\t var pt = mountPoints[i];\n\t if (pt.length >= p.length && pt.slice(0, p.length) === p) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t };\n\t\n\t return MountableFileSystem;\n\t}(BaseFileSystem));\n\t\n\tMountableFileSystem.Name = \"MountableFileSystem\";\n\tMountableFileSystem.Options = {};\n\t/**\n\t * Tricky: Define all of the functions that merely forward arguments to the\n\t * relevant file system, or return/throw an error.\n\t * Take advantage of the fact that the *first* argument is always the path, and\n\t * the *last* is the callback function (if async).\n\t * @todo Can use numArgs to make proxying more efficient.\n\t * @hidden\n\t */\n\tfunction defineFcn(name, isSync, numArgs) {\n\t if (isSync) {\n\t return function () {\n\t var args = [], len = arguments.length;\n\t while ( len-- ) args[ len ] = arguments[ len ];\n\t\n\t var path$$1 = args[0];\n\t var rv = this._getFs(path$$1);\n\t args[0] = rv.path;\n\t try {\n\t return rv.fs[name].apply(rv.fs, args);\n\t }\n\t catch (e) {\n\t this.standardizeError(e, rv.path, path$$1);\n\t throw e;\n\t }\n\t };\n\t }\n\t else {\n\t return function () {\n\t var this$1 = this;\n\t var args = [], len = arguments.length;\n\t while ( len-- ) args[ len ] = arguments[ len ];\n\t\n\t var path$$1 = args[0];\n\t var rv = this._getFs(path$$1);\n\t args[0] = rv.path;\n\t if (typeof args[args.length - 1] === 'function') {\n\t var cb = args[args.length - 1];\n\t args[args.length - 1] = function () {\n\t var args = [], len = arguments.length;\n\t while ( len-- ) args[ len ] = arguments[ len ];\n\t\n\t if (args.length > 0 && args[0] instanceof ApiError) {\n\t this$1.standardizeError(args[0], rv.path, path$$1);\n\t }\n\t cb.apply(null, args);\n\t };\n\t }\n\t return rv.fs[name].apply(rv.fs, args);\n\t };\n\t }\n\t}\n\t/**\n\t * @hidden\n\t */\n\tvar fsCmdMap = [\n\t // 1 arg functions\n\t ['exists', 'unlink', 'readlink'],\n\t // 2 arg functions\n\t ['stat', 'mkdir', 'realpath', 'truncate'],\n\t // 3 arg functions\n\t ['open', 'readFile', 'chmod', 'utimes'],\n\t // 4 arg functions\n\t ['chown'],\n\t // 5 arg functions\n\t ['writeFile', 'appendFile']\n\t];\n\tfor (var i = 0; i < fsCmdMap.length; i++) {\n\t var cmds = fsCmdMap[i];\n\t for (var i$1 = 0, list = cmds; i$1 < list.length; i$1 += 1) {\n\t var fnName = list[i$1];\n\t\n\t MountableFileSystem.prototype[fnName] = defineFcn(fnName, false, i + 1);\n\t MountableFileSystem.prototype[fnName + 'Sync'] = defineFcn(fnName + 'Sync', true, i + 1);\n\t }\n\t}\n\t\n\t/**\n\t * @hidden\n\t */\n\tvar bfsSetImmediate;\n\tif (typeof (setImmediate) !== \"undefined\") {\n\t bfsSetImmediate = setImmediate;\n\t}\n\telse {\n\t var gScope = global$1;\n\t var timeouts = [];\n\t var messageName = \"zero-timeout-message\";\n\t var canUsePostMessage = function () {\n\t if (typeof gScope.importScripts !== 'undefined' || !gScope.postMessage) {\n\t return false;\n\t }\n\t var postMessageIsAsync = true;\n\t var oldOnMessage = gScope.onmessage;\n\t gScope.onmessage = function () {\n\t postMessageIsAsync = false;\n\t };\n\t gScope.postMessage('', '*');\n\t gScope.onmessage = oldOnMessage;\n\t return postMessageIsAsync;\n\t };\n\t if (canUsePostMessage()) {\n\t bfsSetImmediate = function (fn) {\n\t timeouts.push(fn);\n\t gScope.postMessage(messageName, \"*\");\n\t };\n\t var handleMessage = function (event) {\n\t if (event.source === self && event.data === messageName) {\n\t if (event.stopPropagation) {\n\t event.stopPropagation();\n\t }\n\t else {\n\t event.cancelBubble = true;\n\t }\n\t if (timeouts.length > 0) {\n\t var fn = timeouts.shift();\n\t return fn();\n\t }\n\t }\n\t };\n\t if (gScope.addEventListener) {\n\t gScope.addEventListener('message', handleMessage, true);\n\t }\n\t else {\n\t gScope.attachEvent('onmessage', handleMessage);\n\t }\n\t }\n\t else if (gScope.MessageChannel) {\n\t // WebWorker MessageChannel\n\t var channel = new gScope.MessageChannel();\n\t channel.port1.onmessage = function (event) {\n\t if (timeouts.length > 0) {\n\t return timeouts.shift()();\n\t }\n\t };\n\t bfsSetImmediate = function (fn) {\n\t timeouts.push(fn);\n\t channel.port2.postMessage('');\n\t };\n\t }\n\t else {\n\t bfsSetImmediate = function (fn) {\n\t return setTimeout(fn, 0);\n\t };\n\t }\n\t}\n\tvar setImmediate$3 = bfsSetImmediate;\n\t\n\t/**\n\t * Non-recursive mutex\n\t * @hidden\n\t */\n\tvar Mutex = function Mutex() {\n\t this._locked = false;\n\t this._waiters = [];\n\t};\n\tMutex.prototype.lock = function lock (cb) {\n\t if (this._locked) {\n\t this._waiters.push(cb);\n\t return;\n\t }\n\t this._locked = true;\n\t cb();\n\t};\n\tMutex.prototype.unlock = function unlock () {\n\t if (!this._locked) {\n\t throw new Error('unlock of a non-locked mutex');\n\t }\n\t var next = this._waiters.shift();\n\t // don't unlock - we want to queue up next for the\n\t // _end_ of the current task execution, but we don't\n\t // want it to be called inline with whatever the\n\t // current stack is. This way we still get the nice\n\t // behavior that an unlock immediately followed by a\n\t // lock won't cause starvation.\n\t if (next) {\n\t setImmediate$3(next);\n\t return;\n\t }\n\t this._locked = false;\n\t};\n\tMutex.prototype.tryLock = function tryLock () {\n\t if (this._locked) {\n\t return false;\n\t }\n\t this._locked = true;\n\t return true;\n\t};\n\tMutex.prototype.isLocked = function isLocked () {\n\t return this._locked;\n\t};\n\t\n\t/**\n\t * This class serializes access to an underlying async filesystem.\n\t * For example, on an OverlayFS instance with an async lower\n\t * directory operations like rename and rmdir may involve multiple\n\t * requests involving both the upper and lower filesystems -- they\n\t * are not executed in a single atomic step. OverlayFS uses this\n\t * LockedFS to avoid having to reason about the correctness of\n\t * multiple requests interleaving.\n\t */\n\tvar LockedFS = function LockedFS(fs) {\n\t this._fs = fs;\n\t this._mu = new Mutex();\n\t};\n\tLockedFS.prototype.getName = function getName () {\n\t return 'LockedFS<' + this._fs.getName() + '>';\n\t};\n\tLockedFS.prototype.getFSUnlocked = function getFSUnlocked () {\n\t return this._fs;\n\t};\n\tLockedFS.prototype.initialize = function initialize (cb) {\n\t // FIXME: check to see if FS supports initialization\n\t this._fs.initialize(cb);\n\t};\n\tLockedFS.prototype.diskSpace = function diskSpace (p, cb) {\n\t // FIXME: should this lock?\n\t this._fs.diskSpace(p, cb);\n\t};\n\tLockedFS.prototype.isReadOnly = function isReadOnly () {\n\t return this._fs.isReadOnly();\n\t};\n\tLockedFS.prototype.supportsLinks = function supportsLinks () {\n\t return this._fs.supportsLinks();\n\t};\n\tLockedFS.prototype.supportsProps = function supportsProps () {\n\t return this._fs.supportsProps();\n\t};\n\tLockedFS.prototype.supportsSynch = function supportsSynch () {\n\t return this._fs.supportsSynch();\n\t};\n\tLockedFS.prototype.rename = function rename (oldPath, newPath, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.rename(oldPath, newPath, function (err) {\n\t this$1._mu.unlock();\n\t cb(err);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.renameSync = function renameSync (oldPath, newPath) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.renameSync(oldPath, newPath);\n\t};\n\tLockedFS.prototype.stat = function stat (p, isLstat, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.stat(p, isLstat, function (err, stat) {\n\t this$1._mu.unlock();\n\t cb(err, stat);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.statSync = function statSync (p, isLstat) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.statSync(p, isLstat);\n\t};\n\tLockedFS.prototype.open = function open (p, flag, mode, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.open(p, flag, mode, function (err, fd) {\n\t this$1._mu.unlock();\n\t cb(err, fd);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.openSync = function openSync (p, flag, mode) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.openSync(p, flag, mode);\n\t};\n\tLockedFS.prototype.unlink = function unlink (p, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.unlink(p, function (err) {\n\t this$1._mu.unlock();\n\t cb(err);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.unlinkSync = function unlinkSync (p) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.unlinkSync(p);\n\t};\n\tLockedFS.prototype.rmdir = function rmdir (p, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.rmdir(p, function (err) {\n\t this$1._mu.unlock();\n\t cb(err);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.rmdirSync = function rmdirSync (p) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.rmdirSync(p);\n\t};\n\tLockedFS.prototype.mkdir = function mkdir (p, mode, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.mkdir(p, mode, function (err) {\n\t this$1._mu.unlock();\n\t cb(err);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.mkdirSync = function mkdirSync (p, mode) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.mkdirSync(p, mode);\n\t};\n\tLockedFS.prototype.readdir = function readdir (p, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.readdir(p, function (err, files) {\n\t this$1._mu.unlock();\n\t cb(err, files);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.readdirSync = function readdirSync (p) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.readdirSync(p);\n\t};\n\tLockedFS.prototype.exists = function exists (p, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.exists(p, function (exists) {\n\t this$1._mu.unlock();\n\t cb(exists);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.existsSync = function existsSync (p) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.existsSync(p);\n\t};\n\tLockedFS.prototype.realpath = function realpath (p, cache, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.realpath(p, cache, function (err, resolvedPath) {\n\t this$1._mu.unlock();\n\t cb(err, resolvedPath);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.realpathSync = function realpathSync (p, cache) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.realpathSync(p, cache);\n\t};\n\tLockedFS.prototype.truncate = function truncate (p, len, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.truncate(p, len, function (err) {\n\t this$1._mu.unlock();\n\t cb(err);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.truncateSync = function truncateSync (p, len) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.truncateSync(p, len);\n\t};\n\tLockedFS.prototype.readFile = function readFile (fname, encoding, flag, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.readFile(fname, encoding, flag, function (err, data) {\n\t this$1._mu.unlock();\n\t cb(err, data);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.readFileSync = function readFileSync (fname, encoding, flag) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.readFileSync(fname, encoding, flag);\n\t};\n\tLockedFS.prototype.writeFile = function writeFile (fname, data, encoding, flag, mode, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.writeFile(fname, data, encoding, flag, mode, function (err) {\n\t this$1._mu.unlock();\n\t cb(err);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.writeFileSync = function writeFileSync (fname, data, encoding, flag, mode) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.writeFileSync(fname, data, encoding, flag, mode);\n\t};\n\tLockedFS.prototype.appendFile = function appendFile (fname, data, encoding, flag, mode, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.appendFile(fname, data, encoding, flag, mode, function (err) {\n\t this$1._mu.unlock();\n\t cb(err);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.appendFileSync = function appendFileSync (fname, data, encoding, flag, mode) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.appendFileSync(fname, data, encoding, flag, mode);\n\t};\n\tLockedFS.prototype.chmod = function chmod (p, isLchmod, mode, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.chmod(p, isLchmod, mode, function (err) {\n\t this$1._mu.unlock();\n\t cb(err);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.chmodSync = function chmodSync (p, isLchmod, mode) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.chmodSync(p, isLchmod, mode);\n\t};\n\tLockedFS.prototype.chown = function chown (p, isLchown, uid, gid, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.chown(p, isLchown, uid, gid, function (err) {\n\t this$1._mu.unlock();\n\t cb(err);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.chownSync = function chownSync (p, isLchown, uid, gid) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.chownSync(p, isLchown, uid, gid);\n\t};\n\tLockedFS.prototype.utimes = function utimes (p, atime, mtime, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.utimes(p, atime, mtime, function (err) {\n\t this$1._mu.unlock();\n\t cb(err);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.utimesSync = function utimesSync (p, atime, mtime) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.utimesSync(p, atime, mtime);\n\t};\n\tLockedFS.prototype.link = function link (srcpath, dstpath, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.link(srcpath, dstpath, function (err) {\n\t this$1._mu.unlock();\n\t cb(err);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.linkSync = function linkSync (srcpath, dstpath) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.linkSync(srcpath, dstpath);\n\t};\n\tLockedFS.prototype.symlink = function symlink (srcpath, dstpath, type, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.symlink(srcpath, dstpath, type, function (err) {\n\t this$1._mu.unlock();\n\t cb(err);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.symlinkSync = function symlinkSync (srcpath, dstpath, type) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.symlinkSync(srcpath, dstpath, type);\n\t};\n\tLockedFS.prototype.readlink = function readlink (p, cb) {\n\t var this$1 = this;\n\t\n\t this._mu.lock(function () {\n\t this$1._fs.readlink(p, function (err, linkString) {\n\t this$1._mu.unlock();\n\t cb(err, linkString);\n\t });\n\t });\n\t};\n\tLockedFS.prototype.readlinkSync = function readlinkSync (p) {\n\t if (this._mu.isLocked()) {\n\t throw new Error('invalid sync call');\n\t }\n\t return this._fs.readlinkSync(p);\n\t};\n\t\n\t/**\n\t * @hidden\n\t */\n\tvar deletionLogPath = '/.deletedFiles.log';\n\t/**\n\t * Given a read-only mode, makes it writable.\n\t * @hidden\n\t */\n\tfunction makeModeWritable(mode) {\n\t return 146 | mode;\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction getFlag(f) {\n\t return FileFlag.getFileFlag(f);\n\t}\n\t/**\n\t * Overlays a RO file to make it writable.\n\t */\n\tvar OverlayFile = (function (PreloadFile$$1) {\n\t function OverlayFile(fs, path$$1, flag, stats, data) {\n\t PreloadFile$$1.call(this, fs, path$$1, flag, stats, data);\n\t }\n\t\n\t if ( PreloadFile$$1 ) OverlayFile.__proto__ = PreloadFile$$1;\n\t OverlayFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype );\n\t OverlayFile.prototype.constructor = OverlayFile;\n\t OverlayFile.prototype.sync = function sync (cb) {\n\t var this$1 = this;\n\t\n\t if (!this.isDirty()) {\n\t cb(null);\n\t return;\n\t }\n\t this._fs._syncAsync(this, function (err) {\n\t this$1.resetDirty();\n\t cb(err);\n\t });\n\t };\n\t OverlayFile.prototype.syncSync = function syncSync () {\n\t if (this.isDirty()) {\n\t this._fs._syncSync(this);\n\t this.resetDirty();\n\t }\n\t };\n\t OverlayFile.prototype.close = function close (cb) {\n\t this.sync(cb);\n\t };\n\t OverlayFile.prototype.closeSync = function closeSync () {\n\t this.syncSync();\n\t };\n\t\n\t return OverlayFile;\n\t}(PreloadFile));\n\t/**\n\t * *INTERNAL, DO NOT USE DIRECTLY!*\n\t *\n\t * Core OverlayFS class that contains no locking whatsoever. We wrap these objects\n\t * in a LockedFS to prevent races.\n\t */\n\tvar UnlockedOverlayFS = (function (BaseFileSystem$$1) {\n\t function UnlockedOverlayFS(writable, readable) {\n\t BaseFileSystem$$1.call(this);\n\t this._isInitialized = false;\n\t this._initializeCallbacks = [];\n\t this._deletedFiles = {};\n\t this._deleteLog = '';\n\t // If 'true', we have scheduled a delete log update.\n\t this._deleteLogUpdatePending = false;\n\t // If 'true', a delete log update is needed after the scheduled delete log\n\t // update finishes.\n\t this._deleteLogUpdateNeeded = false;\n\t // If there was an error updating the delete log...\n\t this._deleteLogError = null;\n\t this._writable = writable;\n\t this._readable = readable;\n\t if (this._writable.isReadOnly()) {\n\t throw new ApiError(ErrorCode.EINVAL, \"Writable file system must be writable.\");\n\t }\n\t }\n\t\n\t if ( BaseFileSystem$$1 ) UnlockedOverlayFS.__proto__ = BaseFileSystem$$1;\n\t UnlockedOverlayFS.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype );\n\t UnlockedOverlayFS.prototype.constructor = UnlockedOverlayFS;\n\t UnlockedOverlayFS.isAvailable = function isAvailable () {\n\t return true;\n\t };\n\t UnlockedOverlayFS.prototype.getOverlayedFileSystems = function getOverlayedFileSystems () {\n\t return {\n\t readable: this._readable,\n\t writable: this._writable\n\t };\n\t };\n\t UnlockedOverlayFS.prototype._syncAsync = function _syncAsync (file, cb) {\n\t var this$1 = this;\n\t\n\t this.createParentDirectoriesAsync(file.getPath(), function (err) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t this$1._writable.writeFile(file.getPath(), file.getBuffer(), null, getFlag('w'), file.getStats().mode, cb);\n\t });\n\t };\n\t UnlockedOverlayFS.prototype._syncSync = function _syncSync (file) {\n\t this.createParentDirectories(file.getPath());\n\t this._writable.writeFileSync(file.getPath(), file.getBuffer(), null, getFlag('w'), file.getStats().mode);\n\t };\n\t UnlockedOverlayFS.prototype.getName = function getName () {\n\t return OverlayFS.Name;\n\t };\n\t /**\n\t * Called once to load up metadata stored on the writable file system.\n\t */\n\t UnlockedOverlayFS.prototype.initialize = function initialize (cb) {\n\t var this$1 = this;\n\t\n\t var callbackArray = this._initializeCallbacks;\n\t var end = function (e) {\n\t this$1._isInitialized = !e;\n\t this$1._initializeCallbacks = [];\n\t callbackArray.forEach((function (cb) { return cb(e); }));\n\t };\n\t // if we're already initialized, immediately invoke the callback\n\t if (this._isInitialized) {\n\t return cb();\n\t }\n\t callbackArray.push(cb);\n\t // The first call to initialize initializes, the rest wait for it to complete.\n\t if (callbackArray.length !== 1) {\n\t return;\n\t }\n\t // Read deletion log, process into metadata.\n\t this._writable.readFile(deletionLogPath, 'utf8', getFlag('r'), function (err, data) {\n\t if (err) {\n\t // ENOENT === Newly-instantiated file system, and thus empty log.\n\t if (err.errno !== ErrorCode.ENOENT) {\n\t return end(err);\n\t }\n\t }\n\t else {\n\t this$1._deleteLog = data;\n\t }\n\t this$1._reparseDeletionLog();\n\t end();\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.isReadOnly = function isReadOnly () { return false; };\n\t UnlockedOverlayFS.prototype.supportsSynch = function supportsSynch () { return this._readable.supportsSynch() && this._writable.supportsSynch(); };\n\t UnlockedOverlayFS.prototype.supportsLinks = function supportsLinks () { return false; };\n\t UnlockedOverlayFS.prototype.supportsProps = function supportsProps () { return this._readable.supportsProps() && this._writable.supportsProps(); };\n\t UnlockedOverlayFS.prototype.getDeletionLog = function getDeletionLog () {\n\t return this._deleteLog;\n\t };\n\t UnlockedOverlayFS.prototype.restoreDeletionLog = function restoreDeletionLog (log) {\n\t this._deleteLog = log;\n\t this._reparseDeletionLog();\n\t this.updateLog('');\n\t };\n\t UnlockedOverlayFS.prototype.rename = function rename (oldPath, newPath, cb) {\n\t var this$1 = this;\n\t\n\t if (!this.checkInitAsync(cb) || this.checkPathAsync(oldPath, cb) || this.checkPathAsync(newPath, cb)) {\n\t return;\n\t }\n\t if (oldPath === deletionLogPath || newPath === deletionLogPath) {\n\t return cb(ApiError.EPERM('Cannot rename deletion log.'));\n\t }\n\t // nothing to do if paths match\n\t if (oldPath === newPath) {\n\t return cb();\n\t }\n\t this.stat(oldPath, false, function (oldErr, oldStats) {\n\t if (oldErr) {\n\t return cb(oldErr);\n\t }\n\t return this$1.stat(newPath, false, function (newErr, newStats) {\n\t var self = this$1;\n\t // precondition: both oldPath and newPath exist and are dirs.\n\t // decreases: |files|\n\t // Need to move *every file/folder* currently stored on\n\t // readable to its new location on writable.\n\t function copyDirContents(files) {\n\t var file = files.shift();\n\t if (!file) {\n\t return cb();\n\t }\n\t var oldFile = path.resolve(oldPath, file);\n\t var newFile = path.resolve(newPath, file);\n\t // Recursion! Should work for any nested files / folders.\n\t self.rename(oldFile, newFile, function (err) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t copyDirContents(files);\n\t });\n\t }\n\t var mode = 511;\n\t // from linux's rename(2) manpage: oldpath can specify a\n\t // directory. In this case, newpath must either not exist, or\n\t // it must specify an empty directory.\n\t if (oldStats.isDirectory()) {\n\t if (newErr) {\n\t if (newErr.errno !== ErrorCode.ENOENT) {\n\t return cb(newErr);\n\t }\n\t return this$1._writable.exists(oldPath, function (exists) {\n\t // simple case - both old and new are on the writable layer\n\t if (exists) {\n\t return this$1._writable.rename(oldPath, newPath, cb);\n\t }\n\t this$1._writable.mkdir(newPath, mode, function (mkdirErr) {\n\t if (mkdirErr) {\n\t return cb(mkdirErr);\n\t }\n\t this$1._readable.readdir(oldPath, function (err, files) {\n\t if (err) {\n\t return cb();\n\t }\n\t copyDirContents(files);\n\t });\n\t });\n\t });\n\t }\n\t mode = newStats.mode;\n\t if (!newStats.isDirectory()) {\n\t return cb(ApiError.ENOTDIR(newPath));\n\t }\n\t this$1.readdir(newPath, function (readdirErr, files) {\n\t if (files && files.length) {\n\t return cb(ApiError.ENOTEMPTY(newPath));\n\t }\n\t this$1._readable.readdir(oldPath, function (err, files) {\n\t if (err) {\n\t return cb();\n\t }\n\t copyDirContents(files);\n\t });\n\t });\n\t }\n\t if (newStats && newStats.isDirectory()) {\n\t return cb(ApiError.EISDIR(newPath));\n\t }\n\t this$1.readFile(oldPath, null, getFlag('r'), function (err, data) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t return this$1.writeFile(newPath, data, null, getFlag('w'), oldStats.mode, function (err) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t return this$1.unlink(oldPath, cb);\n\t });\n\t });\n\t });\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.renameSync = function renameSync (oldPath, newPath) {\n\t var this$1 = this;\n\t\n\t this.checkInitialized();\n\t this.checkPath(oldPath);\n\t this.checkPath(newPath);\n\t if (oldPath === deletionLogPath || newPath === deletionLogPath) {\n\t throw ApiError.EPERM('Cannot rename deletion log.');\n\t }\n\t // Write newPath using oldPath's contents, delete oldPath.\n\t var oldStats = this.statSync(oldPath, false);\n\t if (oldStats.isDirectory()) {\n\t // Optimization: Don't bother moving if old === new.\n\t if (oldPath === newPath) {\n\t return;\n\t }\n\t var mode = 511;\n\t if (this.existsSync(newPath)) {\n\t var stats = this.statSync(newPath, false);\n\t mode = stats.mode;\n\t if (stats.isDirectory()) {\n\t if (this.readdirSync(newPath).length > 0) {\n\t throw ApiError.ENOTEMPTY(newPath);\n\t }\n\t }\n\t else {\n\t throw ApiError.ENOTDIR(newPath);\n\t }\n\t }\n\t // Take care of writable first. Move any files there, or create an empty directory\n\t // if it doesn't exist.\n\t if (this._writable.existsSync(oldPath)) {\n\t this._writable.renameSync(oldPath, newPath);\n\t }\n\t else if (!this._writable.existsSync(newPath)) {\n\t this._writable.mkdirSync(newPath, mode);\n\t }\n\t // Need to move *every file/folder* currently stored on readable to its new location\n\t // on writable.\n\t if (this._readable.existsSync(oldPath)) {\n\t this._readable.readdirSync(oldPath).forEach(function (name) {\n\t // Recursion! Should work for any nested files / folders.\n\t this$1.renameSync(path.resolve(oldPath, name), path.resolve(newPath, name));\n\t });\n\t }\n\t }\n\t else {\n\t if (this.existsSync(newPath) && this.statSync(newPath, false).isDirectory()) {\n\t throw ApiError.EISDIR(newPath);\n\t }\n\t this.writeFileSync(newPath, this.readFileSync(oldPath, null, getFlag('r')), null, getFlag('w'), oldStats.mode);\n\t }\n\t if (oldPath !== newPath && this.existsSync(oldPath)) {\n\t this.unlinkSync(oldPath);\n\t }\n\t };\n\t UnlockedOverlayFS.prototype.stat = function stat (p, isLstat, cb) {\n\t var this$1 = this;\n\t\n\t if (!this.checkInitAsync(cb)) {\n\t return;\n\t }\n\t this._writable.stat(p, isLstat, function (err, stat) {\n\t if (err && err.errno === ErrorCode.ENOENT) {\n\t if (this$1._deletedFiles[p]) {\n\t cb(ApiError.ENOENT(p));\n\t }\n\t this$1._readable.stat(p, isLstat, function (err, stat) {\n\t if (stat) {\n\t // Make the oldStat's mode writable. Preserve the topmost\n\t // part of the mode, which specifies if it is a file or a\n\t // directory.\n\t stat = stat.clone();\n\t stat.mode = makeModeWritable(stat.mode);\n\t }\n\t cb(err, stat);\n\t });\n\t }\n\t else {\n\t cb(err, stat);\n\t }\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.statSync = function statSync (p, isLstat) {\n\t this.checkInitialized();\n\t try {\n\t return this._writable.statSync(p, isLstat);\n\t }\n\t catch (e) {\n\t if (this._deletedFiles[p]) {\n\t throw ApiError.ENOENT(p);\n\t }\n\t var oldStat = this._readable.statSync(p, isLstat).clone();\n\t // Make the oldStat's mode writable. Preserve the topmost part of the\n\t // mode, which specifies if it is a file or a directory.\n\t oldStat.mode = makeModeWritable(oldStat.mode);\n\t return oldStat;\n\t }\n\t };\n\t UnlockedOverlayFS.prototype.open = function open (p, flag, mode, cb) {\n\t var this$1 = this;\n\t\n\t if (!this.checkInitAsync(cb) || this.checkPathAsync(p, cb)) {\n\t return;\n\t }\n\t this.stat(p, false, function (err, stats) {\n\t if (stats) {\n\t switch (flag.pathExistsAction()) {\n\t case ActionType.TRUNCATE_FILE:\n\t return this$1.createParentDirectoriesAsync(p, function (err) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t this$1._writable.open(p, flag, mode, cb);\n\t });\n\t case ActionType.NOP:\n\t return this$1._writable.exists(p, function (exists) {\n\t if (exists) {\n\t this$1._writable.open(p, flag, mode, cb);\n\t }\n\t else {\n\t // at this point we know the stats object we got is from\n\t // the readable FS.\n\t stats = stats.clone();\n\t stats.mode = mode;\n\t this$1._readable.readFile(p, null, getFlag('r'), function (readFileErr, data) {\n\t if (readFileErr) {\n\t return cb(readFileErr);\n\t }\n\t if (stats.size === -1) {\n\t stats.size = data.length;\n\t }\n\t var f = new OverlayFile(this$1, p, flag, stats, data);\n\t cb(null, f);\n\t });\n\t }\n\t });\n\t default:\n\t return cb(ApiError.EEXIST(p));\n\t }\n\t }\n\t else {\n\t switch (flag.pathNotExistsAction()) {\n\t case ActionType.CREATE_FILE:\n\t return this$1.createParentDirectoriesAsync(p, function (err) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t return this$1._writable.open(p, flag, mode, cb);\n\t });\n\t default:\n\t return cb(ApiError.ENOENT(p));\n\t }\n\t }\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.openSync = function openSync (p, flag, mode) {\n\t this.checkInitialized();\n\t this.checkPath(p);\n\t if (p === deletionLogPath) {\n\t throw ApiError.EPERM('Cannot open deletion log.');\n\t }\n\t if (this.existsSync(p)) {\n\t switch (flag.pathExistsAction()) {\n\t case ActionType.TRUNCATE_FILE:\n\t this.createParentDirectories(p);\n\t return this._writable.openSync(p, flag, mode);\n\t case ActionType.NOP:\n\t if (this._writable.existsSync(p)) {\n\t return this._writable.openSync(p, flag, mode);\n\t }\n\t else {\n\t // Create an OverlayFile.\n\t var buf = this._readable.readFileSync(p, null, getFlag('r'));\n\t var stats = this._readable.statSync(p, false).clone();\n\t stats.mode = mode;\n\t return new OverlayFile(this, p, flag, stats, buf);\n\t }\n\t default:\n\t throw ApiError.EEXIST(p);\n\t }\n\t }\n\t else {\n\t switch (flag.pathNotExistsAction()) {\n\t case ActionType.CREATE_FILE:\n\t this.createParentDirectories(p);\n\t return this._writable.openSync(p, flag, mode);\n\t default:\n\t throw ApiError.ENOENT(p);\n\t }\n\t }\n\t };\n\t UnlockedOverlayFS.prototype.unlink = function unlink (p, cb) {\n\t var this$1 = this;\n\t\n\t if (!this.checkInitAsync(cb) || this.checkPathAsync(p, cb)) {\n\t return;\n\t }\n\t this.exists(p, function (exists) {\n\t if (!exists) {\n\t return cb(ApiError.ENOENT(p));\n\t }\n\t this$1._writable.exists(p, function (writableExists) {\n\t if (writableExists) {\n\t return this$1._writable.unlink(p, function (err) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t this$1.exists(p, function (readableExists) {\n\t if (readableExists) {\n\t this$1.deletePath(p);\n\t }\n\t cb(null);\n\t });\n\t });\n\t }\n\t else {\n\t // if this only exists on the readable FS, add it to the\n\t // delete map.\n\t this$1.deletePath(p);\n\t cb(null);\n\t }\n\t });\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.unlinkSync = function unlinkSync (p) {\n\t this.checkInitialized();\n\t this.checkPath(p);\n\t if (this.existsSync(p)) {\n\t if (this._writable.existsSync(p)) {\n\t this._writable.unlinkSync(p);\n\t }\n\t // if it still exists add to the delete log\n\t if (this.existsSync(p)) {\n\t this.deletePath(p);\n\t }\n\t }\n\t else {\n\t throw ApiError.ENOENT(p);\n\t }\n\t };\n\t UnlockedOverlayFS.prototype.rmdir = function rmdir (p, cb) {\n\t var this$1 = this;\n\t\n\t if (!this.checkInitAsync(cb)) {\n\t return;\n\t }\n\t var rmdirLower = function () {\n\t this$1.readdir(p, function (err, files) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t if (files.length) {\n\t return cb(ApiError.ENOTEMPTY(p));\n\t }\n\t this$1.deletePath(p);\n\t cb(null);\n\t });\n\t };\n\t this.exists(p, function (exists) {\n\t if (!exists) {\n\t return cb(ApiError.ENOENT(p));\n\t }\n\t this$1._writable.exists(p, function (writableExists) {\n\t if (writableExists) {\n\t this$1._writable.rmdir(p, function (err) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t this$1._readable.exists(p, function (readableExists) {\n\t if (readableExists) {\n\t rmdirLower();\n\t }\n\t else {\n\t cb();\n\t }\n\t });\n\t });\n\t }\n\t else {\n\t rmdirLower();\n\t }\n\t });\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.rmdirSync = function rmdirSync (p) {\n\t this.checkInitialized();\n\t if (this.existsSync(p)) {\n\t if (this._writable.existsSync(p)) {\n\t this._writable.rmdirSync(p);\n\t }\n\t if (this.existsSync(p)) {\n\t // Check if directory is empty.\n\t if (this.readdirSync(p).length > 0) {\n\t throw ApiError.ENOTEMPTY(p);\n\t }\n\t else {\n\t this.deletePath(p);\n\t }\n\t }\n\t }\n\t else {\n\t throw ApiError.ENOENT(p);\n\t }\n\t };\n\t UnlockedOverlayFS.prototype.mkdir = function mkdir (p, mode, cb) {\n\t var this$1 = this;\n\t\n\t if (!this.checkInitAsync(cb)) {\n\t return;\n\t }\n\t this.exists(p, function (exists) {\n\t if (exists) {\n\t return cb(ApiError.EEXIST(p));\n\t }\n\t // The below will throw should any of the parent directories\n\t // fail to exist on _writable.\n\t this$1.createParentDirectoriesAsync(p, function (err) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t this$1._writable.mkdir(p, mode, cb);\n\t });\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.mkdirSync = function mkdirSync (p, mode) {\n\t this.checkInitialized();\n\t if (this.existsSync(p)) {\n\t throw ApiError.EEXIST(p);\n\t }\n\t else {\n\t // The below will throw should any of the parent directories fail to exist\n\t // on _writable.\n\t this.createParentDirectories(p);\n\t this._writable.mkdirSync(p, mode);\n\t }\n\t };\n\t UnlockedOverlayFS.prototype.readdir = function readdir (p, cb) {\n\t var this$1 = this;\n\t\n\t if (!this.checkInitAsync(cb)) {\n\t return;\n\t }\n\t this.stat(p, false, function (err, dirStats) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t if (!dirStats.isDirectory()) {\n\t return cb(ApiError.ENOTDIR(p));\n\t }\n\t this$1._writable.readdir(p, function (err, wFiles) {\n\t if (err && err.code !== 'ENOENT') {\n\t return cb(err);\n\t }\n\t else if (err || !wFiles) {\n\t wFiles = [];\n\t }\n\t this$1._readable.readdir(p, function (err, rFiles) {\n\t // if the directory doesn't exist on the lower FS set rFiles\n\t // here to simplify the following code.\n\t if (err || !rFiles) {\n\t rFiles = [];\n\t }\n\t // Readdir in both, check delete log on read-only file system's files, merge, return.\n\t var seenMap = {};\n\t var filtered = wFiles.concat(rFiles.filter(function (fPath) { return !this$1._deletedFiles[(p + \"/\" + fPath)]; })).filter(function (fPath) {\n\t // Remove duplicates.\n\t var result = !seenMap[fPath];\n\t seenMap[fPath] = true;\n\t return result;\n\t });\n\t cb(null, filtered);\n\t });\n\t });\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.readdirSync = function readdirSync (p) {\n\t var this$1 = this;\n\t\n\t this.checkInitialized();\n\t var dirStats = this.statSync(p, false);\n\t if (!dirStats.isDirectory()) {\n\t throw ApiError.ENOTDIR(p);\n\t }\n\t // Readdir in both, check delete log on RO file system's listing, merge, return.\n\t var contents = [];\n\t try {\n\t contents = contents.concat(this._writable.readdirSync(p));\n\t }\n\t catch (e) {\n\t // NOP.\n\t }\n\t try {\n\t contents = contents.concat(this._readable.readdirSync(p).filter(function (fPath) { return !this$1._deletedFiles[(p + \"/\" + fPath)]; }));\n\t }\n\t catch (e) {\n\t // NOP.\n\t }\n\t var seenMap = {};\n\t return contents.filter(function (fileP) {\n\t var result = !seenMap[fileP];\n\t seenMap[fileP] = true;\n\t return result;\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.exists = function exists (p, cb) {\n\t var this$1 = this;\n\t\n\t // Cannot pass an error back to callback, so throw an exception instead\n\t // if not initialized.\n\t this.checkInitialized();\n\t this._writable.exists(p, function (existsWritable) {\n\t if (existsWritable) {\n\t return cb(true);\n\t }\n\t this$1._readable.exists(p, function (existsReadable) {\n\t cb(existsReadable && this$1._deletedFiles[p] !== true);\n\t });\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.existsSync = function existsSync (p) {\n\t this.checkInitialized();\n\t return this._writable.existsSync(p) || (this._readable.existsSync(p) && this._deletedFiles[p] !== true);\n\t };\n\t UnlockedOverlayFS.prototype.chmod = function chmod (p, isLchmod, mode, cb) {\n\t var this$1 = this;\n\t\n\t if (!this.checkInitAsync(cb)) {\n\t return;\n\t }\n\t this.operateOnWritableAsync(p, function (err) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t else {\n\t this$1._writable.chmod(p, isLchmod, mode, cb);\n\t }\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.chmodSync = function chmodSync (p, isLchmod, mode) {\n\t var this$1 = this;\n\t\n\t this.checkInitialized();\n\t this.operateOnWritable(p, function () {\n\t this$1._writable.chmodSync(p, isLchmod, mode);\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.chown = function chown (p, isLchmod, uid, gid, cb) {\n\t var this$1 = this;\n\t\n\t if (!this.checkInitAsync(cb)) {\n\t return;\n\t }\n\t this.operateOnWritableAsync(p, function (err) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t else {\n\t this$1._writable.chown(p, isLchmod, uid, gid, cb);\n\t }\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.chownSync = function chownSync (p, isLchown, uid, gid) {\n\t var this$1 = this;\n\t\n\t this.checkInitialized();\n\t this.operateOnWritable(p, function () {\n\t this$1._writable.chownSync(p, isLchown, uid, gid);\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.utimes = function utimes (p, atime, mtime, cb) {\n\t var this$1 = this;\n\t\n\t if (!this.checkInitAsync(cb)) {\n\t return;\n\t }\n\t this.operateOnWritableAsync(p, function (err) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t else {\n\t this$1._writable.utimes(p, atime, mtime, cb);\n\t }\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.utimesSync = function utimesSync (p, atime, mtime) {\n\t var this$1 = this;\n\t\n\t this.checkInitialized();\n\t this.operateOnWritable(p, function () {\n\t this$1._writable.utimesSync(p, atime, mtime);\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.deletePath = function deletePath (p) {\n\t this._deletedFiles[p] = true;\n\t this.updateLog((\"d\" + p + \"\\n\"));\n\t };\n\t UnlockedOverlayFS.prototype.updateLog = function updateLog (addition) {\n\t var this$1 = this;\n\t\n\t this._deleteLog += addition;\n\t if (this._deleteLogUpdatePending) {\n\t this._deleteLogUpdateNeeded = true;\n\t }\n\t else {\n\t this._deleteLogUpdatePending = true;\n\t this._writable.writeFile(deletionLogPath, this._deleteLog, 'utf8', FileFlag.getFileFlag('w'), 420, function (e) {\n\t this$1._deleteLogUpdatePending = false;\n\t if (e) {\n\t this$1._deleteLogError = e;\n\t }\n\t else if (this$1._deleteLogUpdateNeeded) {\n\t this$1._deleteLogUpdateNeeded = false;\n\t this$1.updateLog('');\n\t }\n\t });\n\t }\n\t };\n\t UnlockedOverlayFS.prototype._reparseDeletionLog = function _reparseDeletionLog () {\n\t var this$1 = this;\n\t\n\t this._deletedFiles = {};\n\t this._deleteLog.split('\\n').forEach(function (path$$1) {\n\t // If the log entry begins w/ 'd', it's a deletion.\n\t this$1._deletedFiles[path$$1.slice(1)] = path$$1.slice(0, 1) === 'd';\n\t });\n\t };\n\t UnlockedOverlayFS.prototype.checkInitialized = function checkInitialized () {\n\t if (!this._isInitialized) {\n\t throw new ApiError(ErrorCode.EPERM, \"OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it.\");\n\t }\n\t else if (this._deleteLogError !== null) {\n\t var e = this._deleteLogError;\n\t this._deleteLogError = null;\n\t throw e;\n\t }\n\t };\n\t UnlockedOverlayFS.prototype.checkInitAsync = function checkInitAsync (cb) {\n\t if (!this._isInitialized) {\n\t cb(new ApiError(ErrorCode.EPERM, \"OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it.\"));\n\t return false;\n\t }\n\t else if (this._deleteLogError !== null) {\n\t var e = this._deleteLogError;\n\t this._deleteLogError = null;\n\t cb(e);\n\t return false;\n\t }\n\t return true;\n\t };\n\t UnlockedOverlayFS.prototype.checkPath = function checkPath (p) {\n\t if (p === deletionLogPath) {\n\t throw ApiError.EPERM(p);\n\t }\n\t };\n\t UnlockedOverlayFS.prototype.checkPathAsync = function checkPathAsync (p, cb) {\n\t if (p === deletionLogPath) {\n\t cb(ApiError.EPERM(p));\n\t return true;\n\t }\n\t return false;\n\t };\n\t UnlockedOverlayFS.prototype.createParentDirectoriesAsync = function createParentDirectoriesAsync (p, cb) {\n\t var parent = path.dirname(p);\n\t var toCreate = [];\n\t var self = this;\n\t this._writable.stat(parent, false, statDone);\n\t function statDone(err, stat) {\n\t if (err) {\n\t toCreate.push(parent);\n\t parent = path.dirname(parent);\n\t self._writable.stat(parent, false, statDone);\n\t }\n\t else {\n\t createParents();\n\t }\n\t }\n\t function createParents() {\n\t if (!toCreate.length) {\n\t return cb();\n\t }\n\t var dir = toCreate.pop();\n\t self._readable.stat(dir, false, function (err, stats) {\n\t // stop if we couldn't read the dir\n\t if (!stats) {\n\t return cb();\n\t }\n\t self._writable.mkdir(dir, stats.mode, function (err) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t createParents();\n\t });\n\t });\n\t }\n\t };\n\t /**\n\t * With the given path, create the needed parent directories on the writable storage\n\t * should they not exist. Use modes from the read-only storage.\n\t */\n\t UnlockedOverlayFS.prototype.createParentDirectories = function createParentDirectories (p) {\n\t var this$1 = this;\n\t\n\t var parent = path.dirname(p), toCreate = [];\n\t while (!this._writable.existsSync(parent)) {\n\t toCreate.push(parent);\n\t parent = path.dirname(parent);\n\t }\n\t toCreate = toCreate.reverse();\n\t toCreate.forEach(function (p) {\n\t this$1._writable.mkdirSync(p, this$1.statSync(p, false).mode);\n\t });\n\t };\n\t /**\n\t * Helper function:\n\t * - Ensures p is on writable before proceeding. Throws an error if it doesn't exist.\n\t * - Calls f to perform operation on writable.\n\t */\n\t UnlockedOverlayFS.prototype.operateOnWritable = function operateOnWritable (p, f) {\n\t if (this.existsSync(p)) {\n\t if (!this._writable.existsSync(p)) {\n\t // File is on readable storage. Copy to writable storage before\n\t // changing its mode.\n\t this.copyToWritable(p);\n\t }\n\t f();\n\t }\n\t else {\n\t throw ApiError.ENOENT(p);\n\t }\n\t };\n\t UnlockedOverlayFS.prototype.operateOnWritableAsync = function operateOnWritableAsync (p, cb) {\n\t var this$1 = this;\n\t\n\t this.exists(p, function (exists) {\n\t if (!exists) {\n\t return cb(ApiError.ENOENT(p));\n\t }\n\t this$1._writable.exists(p, function (existsWritable) {\n\t if (existsWritable) {\n\t cb();\n\t }\n\t else {\n\t return this$1.copyToWritableAsync(p, cb);\n\t }\n\t });\n\t });\n\t };\n\t /**\n\t * Copy from readable to writable storage.\n\t * PRECONDITION: File does not exist on writable storage.\n\t */\n\t UnlockedOverlayFS.prototype.copyToWritable = function copyToWritable (p) {\n\t var pStats = this.statSync(p, false);\n\t if (pStats.isDirectory()) {\n\t this._writable.mkdirSync(p, pStats.mode);\n\t }\n\t else {\n\t this.writeFileSync(p, this._readable.readFileSync(p, null, getFlag('r')), null, getFlag('w'), this.statSync(p, false).mode);\n\t }\n\t };\n\t UnlockedOverlayFS.prototype.copyToWritableAsync = function copyToWritableAsync (p, cb) {\n\t var this$1 = this;\n\t\n\t this.stat(p, false, function (err, pStats) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t if (pStats.isDirectory()) {\n\t return this$1._writable.mkdir(p, pStats.mode, cb);\n\t }\n\t // need to copy file.\n\t this$1._readable.readFile(p, null, getFlag('r'), function (err, data) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t this$1.writeFile(p, data, null, getFlag('w'), pStats.mode, cb);\n\t });\n\t });\n\t };\n\t\n\t return UnlockedOverlayFS;\n\t}(BaseFileSystem));\n\t/**\n\t * OverlayFS makes a read-only filesystem writable by storing writes on a second,\n\t * writable file system. Deletes are persisted via metadata stored on the writable\n\t * file system.\n\t */\n\tvar OverlayFS = (function (LockedFS$$1) {\n\t function OverlayFS(writable, readable, deprecateMsg) {\n\t if ( deprecateMsg === void 0 ) deprecateMsg = true;\n\t\n\t LockedFS$$1.call(this, new UnlockedOverlayFS(writable, readable));\n\t deprecationMessage(deprecateMsg, OverlayFS.Name, { readable: \"readable file system\", writable: \"writable file system\" });\n\t }\n\t\n\t if ( LockedFS$$1 ) OverlayFS.__proto__ = LockedFS$$1;\n\t OverlayFS.prototype = Object.create( LockedFS$$1 && LockedFS$$1.prototype );\n\t OverlayFS.prototype.constructor = OverlayFS;\n\t /**\n\t * Constructs and initializes an OverlayFS instance with the given options.\n\t */\n\t OverlayFS.Create = function Create (opts, cb) {\n\t try {\n\t var fs = new OverlayFS(opts.writable, opts.readable, false);\n\t fs.initialize(function (e) {\n\t cb(e, fs);\n\t }, false);\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t OverlayFS.isAvailable = function isAvailable () {\n\t return UnlockedOverlayFS.isAvailable();\n\t };\n\t /**\n\t * **Deprecated. Please use OverlayFS.Create() to construct and initialize OverlayFS instances.**\n\t */\n\t OverlayFS.prototype.initialize = function initialize (cb, deprecateMsg) {\n\t if ( deprecateMsg === void 0 ) deprecateMsg = true;\n\t\n\t if (deprecateMsg) {\n\t console.warn(\"[OverlayFS] OverlayFS.initialize() is deprecated and will be removed in the next major release. Please use 'OverlayFS.Create({readable: readable file system instance, writable: writable file system instance}, cb)' to create and initialize OverlayFS instances.\");\n\t }\n\t LockedFS$$1.prototype.initialize.call(this, cb);\n\t };\n\t OverlayFS.prototype.getOverlayedFileSystems = function getOverlayedFileSystems () {\n\t return LockedFS$$1.prototype.getFSUnlocked.call(this).getOverlayedFileSystems();\n\t };\n\t OverlayFS.prototype.unwrap = function unwrap () {\n\t return LockedFS$$1.prototype.getFSUnlocked.call(this);\n\t };\n\t\n\t return OverlayFS;\n\t}(LockedFS));\n\t\n\tOverlayFS.Name = \"OverlayFS\";\n\tOverlayFS.Options = {\n\t writable: {\n\t type: \"object\",\n\t description: \"The file system to write modified files to.\"\n\t },\n\t readable: {\n\t type: \"object\",\n\t description: \"The file system that initially populates this file system.\"\n\t }\n\t};\n\t\n\t/**\n\t * @hidden\n\t */\n\tvar SpecialArgType;\n\t(function (SpecialArgType) {\n\t // Callback\n\t SpecialArgType[SpecialArgType[\"CB\"] = 0] = \"CB\";\n\t // File descriptor\n\t SpecialArgType[SpecialArgType[\"FD\"] = 1] = \"FD\";\n\t // API error\n\t SpecialArgType[SpecialArgType[\"API_ERROR\"] = 2] = \"API_ERROR\";\n\t // Stats object\n\t SpecialArgType[SpecialArgType[\"STATS\"] = 3] = \"STATS\";\n\t // Initial probe for file system information.\n\t SpecialArgType[SpecialArgType[\"PROBE\"] = 4] = \"PROBE\";\n\t // FileFlag object.\n\t SpecialArgType[SpecialArgType[\"FILEFLAG\"] = 5] = \"FILEFLAG\";\n\t // Buffer object.\n\t SpecialArgType[SpecialArgType[\"BUFFER\"] = 6] = \"BUFFER\";\n\t // Generic Error object.\n\t SpecialArgType[SpecialArgType[\"ERROR\"] = 7] = \"ERROR\";\n\t})(SpecialArgType || (SpecialArgType = {}));\n\t/**\n\t * Converts callback arguments into ICallbackArgument objects, and back\n\t * again.\n\t * @hidden\n\t */\n\tvar CallbackArgumentConverter = function CallbackArgumentConverter() {\n\t this._callbacks = {};\n\t this._nextId = 0;\n\t};\n\tCallbackArgumentConverter.prototype.toRemoteArg = function toRemoteArg (cb) {\n\t var id = this._nextId++;\n\t this._callbacks[id] = cb;\n\t return {\n\t type: SpecialArgType.CB,\n\t id: id\n\t };\n\t};\n\tCallbackArgumentConverter.prototype.toLocalArg = function toLocalArg (id) {\n\t var cb = this._callbacks[id];\n\t delete this._callbacks[id];\n\t return cb;\n\t};\n\t/**\n\t * @hidden\n\t */\n\tvar FileDescriptorArgumentConverter = function FileDescriptorArgumentConverter() {\n\t this._fileDescriptors = {};\n\t this._nextId = 0;\n\t};\n\tFileDescriptorArgumentConverter.prototype.toRemoteArg = function toRemoteArg (fd, p, flag, cb) {\n\t var id = this._nextId++;\n\t var data;\n\t var stat;\n\t this._fileDescriptors[id] = fd;\n\t // Extract needed information asynchronously.\n\t fd.stat(function (err, stats) {\n\t if (err) {\n\t cb(err);\n\t }\n\t else {\n\t stat = bufferToTransferrableObject(stats.toBuffer());\n\t // If it's a readable flag, we need to grab contents.\n\t if (flag.isReadable()) {\n\t fd.read(Buffer.alloc(stats.size), 0, stats.size, 0, function (err, bytesRead, buff) {\n\t if (err) {\n\t cb(err);\n\t }\n\t else {\n\t data = bufferToTransferrableObject(buff);\n\t cb(null, {\n\t type: SpecialArgType.FD,\n\t id: id,\n\t data: data,\n\t stat: stat,\n\t path: p,\n\t flag: flag.getFlagString()\n\t });\n\t }\n\t });\n\t }\n\t else {\n\t // File is not readable, which means writing to it will append or\n\t // truncate/replace existing contents. Return an empty arraybuffer.\n\t cb(null, {\n\t type: SpecialArgType.FD,\n\t id: id,\n\t data: new ArrayBuffer(0),\n\t stat: stat,\n\t path: p,\n\t flag: flag.getFlagString()\n\t });\n\t }\n\t }\n\t });\n\t};\n\tFileDescriptorArgumentConverter.prototype.applyFdAPIRequest = function applyFdAPIRequest (request, cb) {\n\t var this$1 = this;\n\t\n\t var fdArg = request.args[0];\n\t this._applyFdChanges(fdArg, function (err, fd) {\n\t if (err) {\n\t cb(err);\n\t }\n\t else {\n\t // Apply method on now-changed file descriptor.\n\t fd[request.method](function (e) {\n\t if (request.method === 'close') {\n\t delete this$1._fileDescriptors[fdArg.id];\n\t }\n\t cb(e);\n\t });\n\t }\n\t });\n\t};\n\tFileDescriptorArgumentConverter.prototype._applyFdChanges = function _applyFdChanges (remoteFd, cb) {\n\t var fd = this._fileDescriptors[remoteFd.id], data = transferrableObjectToBuffer(remoteFd.data), remoteStats = Stats.fromBuffer(transferrableObjectToBuffer(remoteFd.stat));\n\t // Write data if the file is writable.\n\t var flag = FileFlag.getFileFlag(remoteFd.flag);\n\t if (flag.isWriteable()) {\n\t // Appendable: Write to end of file.\n\t // Writeable: Replace entire contents of file.\n\t fd.write(data, 0, data.length, flag.isAppendable() ? fd.getPos() : 0, function (e) {\n\t function applyStatChanges() {\n\t // Check if mode changed.\n\t fd.stat(function (e, stats) {\n\t if (e) {\n\t cb(e);\n\t }\n\t else {\n\t if (stats.mode !== remoteStats.mode) {\n\t fd.chmod(remoteStats.mode, function (e) {\n\t cb(e, fd);\n\t });\n\t }\n\t else {\n\t cb(e, fd);\n\t }\n\t }\n\t });\n\t }\n\t if (e) {\n\t cb(e);\n\t }\n\t else {\n\t // If writeable & not appendable, we need to ensure file contents are\n\t // identical to those from the remote FD. Thus, we truncate to the\n\t // length of the remote file.\n\t if (!flag.isAppendable()) {\n\t fd.truncate(data.length, function () {\n\t applyStatChanges();\n\t });\n\t }\n\t else {\n\t applyStatChanges();\n\t }\n\t }\n\t });\n\t }\n\t else {\n\t cb(null, fd);\n\t }\n\t};\n\t/**\n\t * @hidden\n\t */\n\tfunction apiErrorLocal2Remote(e) {\n\t return {\n\t type: SpecialArgType.API_ERROR,\n\t errorData: bufferToTransferrableObject(e.writeToBuffer())\n\t };\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction apiErrorRemote2Local(e) {\n\t return ApiError.fromBuffer(transferrableObjectToBuffer(e.errorData));\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction errorLocal2Remote(e) {\n\t return {\n\t type: SpecialArgType.ERROR,\n\t name: e.name,\n\t message: e.message,\n\t stack: e.stack\n\t };\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction errorRemote2Local(e) {\n\t var cnstr = global$1[e.name];\n\t if (typeof (cnstr) !== 'function') {\n\t cnstr = Error;\n\t }\n\t var err = new cnstr(e.message);\n\t err.stack = e.stack;\n\t return err;\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction statsLocal2Remote(stats) {\n\t return {\n\t type: SpecialArgType.STATS,\n\t statsData: bufferToTransferrableObject(stats.toBuffer())\n\t };\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction statsRemote2Local(stats) {\n\t return Stats.fromBuffer(transferrableObjectToBuffer(stats.statsData));\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction fileFlagLocal2Remote(flag) {\n\t return {\n\t type: SpecialArgType.FILEFLAG,\n\t flagStr: flag.getFlagString()\n\t };\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction fileFlagRemote2Local(remoteFlag) {\n\t return FileFlag.getFileFlag(remoteFlag.flagStr);\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction bufferToTransferrableObject(buff) {\n\t return buffer2ArrayBuffer(buff);\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction transferrableObjectToBuffer(buff) {\n\t return arrayBuffer2Buffer(buff);\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction bufferLocal2Remote(buff) {\n\t return {\n\t type: SpecialArgType.BUFFER,\n\t data: bufferToTransferrableObject(buff)\n\t };\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction bufferRemote2Local(buffArg) {\n\t return transferrableObjectToBuffer(buffArg.data);\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction isAPIRequest(data) {\n\t return data && typeof data === 'object' && data.hasOwnProperty('browserfsMessage') && data['browserfsMessage'];\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction isAPIResponse(data) {\n\t return data && typeof data === 'object' && data.hasOwnProperty('browserfsMessage') && data['browserfsMessage'];\n\t}\n\t/**\n\t * Represents a remote file in a different worker/thread.\n\t */\n\tvar WorkerFile = (function (PreloadFile$$1) {\n\t function WorkerFile(_fs, _path, _flag, _stat, remoteFdId, contents) {\n\t PreloadFile$$1.call(this, _fs, _path, _flag, _stat, contents);\n\t this._remoteFdId = remoteFdId;\n\t }\n\t\n\t if ( PreloadFile$$1 ) WorkerFile.__proto__ = PreloadFile$$1;\n\t WorkerFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype );\n\t WorkerFile.prototype.constructor = WorkerFile;\n\t WorkerFile.prototype.getRemoteFdId = function getRemoteFdId () {\n\t return this._remoteFdId;\n\t };\n\t /**\n\t * @hidden\n\t */\n\t WorkerFile.prototype.toRemoteArg = function toRemoteArg () {\n\t return {\n\t type: SpecialArgType.FD,\n\t id: this._remoteFdId,\n\t data: bufferToTransferrableObject(this.getBuffer()),\n\t stat: bufferToTransferrableObject(this.getStats().toBuffer()),\n\t path: this.getPath(),\n\t flag: this.getFlag().getFlagString()\n\t };\n\t };\n\t WorkerFile.prototype.sync = function sync (cb) {\n\t this._syncClose('sync', cb);\n\t };\n\t WorkerFile.prototype.close = function close (cb) {\n\t this._syncClose('close', cb);\n\t };\n\t WorkerFile.prototype._syncClose = function _syncClose (type, cb) {\n\t var this$1 = this;\n\t\n\t if (this.isDirty()) {\n\t this._fs.syncClose(type, this, function (e) {\n\t if (!e) {\n\t this$1.resetDirty();\n\t }\n\t cb(e);\n\t });\n\t }\n\t else {\n\t cb();\n\t }\n\t };\n\t\n\t return WorkerFile;\n\t}(PreloadFile));\n\t/**\n\t * WorkerFS lets you access a BrowserFS instance that is running in a different\n\t * JavaScript context (e.g. access BrowserFS in one of your WebWorkers, or\n\t * access BrowserFS running on the main page from a WebWorker).\n\t *\n\t * For example, to have a WebWorker access files in the main browser thread,\n\t * do the following:\n\t *\n\t * MAIN BROWSER THREAD:\n\t *\n\t * ```javascript\n\t * // Listen for remote file system requests.\n\t * BrowserFS.FileSystem.WorkerFS.attachRemoteListener(webWorkerObject);\n\t * ```\n\t *\n\t * WEBWORKER THREAD:\n\t *\n\t * ```javascript\n\t * // Set the remote file system as the root file system.\n\t * BrowserFS.configure({ fs: \"WorkerFS\", options: { worker: self }}, function(e) {\n\t * // Ready!\n\t * });\n\t * ```\n\t *\n\t * Note that synchronous operations are not permitted on the WorkerFS, regardless\n\t * of the configuration option of the remote FS.\n\t */\n\tvar WorkerFS = (function (BaseFileSystem$$1) {\n\t function WorkerFS(worker, deprecateMsg) {\n\t var this$1 = this;\n\t if ( deprecateMsg === void 0 ) deprecateMsg = true;\n\t\n\t BaseFileSystem$$1.call(this);\n\t this._callbackConverter = new CallbackArgumentConverter();\n\t this._isInitialized = false;\n\t this._isReadOnly = false;\n\t this._supportLinks = false;\n\t this._supportProps = false;\n\t this._worker = worker;\n\t deprecationMessage(deprecateMsg, WorkerFS.Name, { worker: \"Web Worker instance\" });\n\t this._worker.addEventListener('message', function (e) {\n\t var resp = e.data;\n\t if (isAPIResponse(resp)) {\n\t var i;\n\t var args = resp.args;\n\t var fixedArgs = new Array(args.length);\n\t // Dispatch event to correct id.\n\t for (i = 0; i < fixedArgs.length; i++) {\n\t fixedArgs[i] = this$1._argRemote2Local(args[i]);\n\t }\n\t this$1._callbackConverter.toLocalArg(resp.cbId).apply(null, fixedArgs);\n\t }\n\t });\n\t }\n\t\n\t if ( BaseFileSystem$$1 ) WorkerFS.__proto__ = BaseFileSystem$$1;\n\t WorkerFS.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype );\n\t WorkerFS.prototype.constructor = WorkerFS;\n\t WorkerFS.Create = function Create (opts, cb) {\n\t var fs = new WorkerFS(opts.worker, false);\n\t fs.initialize(function () {\n\t cb(null, fs);\n\t });\n\t };\n\t WorkerFS.isAvailable = function isAvailable () {\n\t return typeof (importScripts) !== 'undefined' || typeof (Worker) !== 'undefined';\n\t };\n\t /**\n\t * Attaches a listener to the remote worker for file system requests.\n\t */\n\t WorkerFS.attachRemoteListener = function attachRemoteListener (worker) {\n\t var fdConverter = new FileDescriptorArgumentConverter();\n\t function argLocal2Remote(arg, requestArgs, cb) {\n\t switch (typeof arg) {\n\t case 'object':\n\t if (arg instanceof Stats) {\n\t cb(null, statsLocal2Remote(arg));\n\t }\n\t else if (arg instanceof ApiError) {\n\t cb(null, apiErrorLocal2Remote(arg));\n\t }\n\t else if (arg instanceof BaseFile) {\n\t // Pass in p and flags from original request.\n\t cb(null, fdConverter.toRemoteArg(arg, requestArgs[0], requestArgs[1], cb));\n\t }\n\t else if (arg instanceof FileFlag) {\n\t cb(null, fileFlagLocal2Remote(arg));\n\t }\n\t else if (arg instanceof Buffer) {\n\t cb(null, bufferLocal2Remote(arg));\n\t }\n\t else if (arg instanceof Error) {\n\t cb(null, errorLocal2Remote(arg));\n\t }\n\t else {\n\t cb(null, arg);\n\t }\n\t break;\n\t default:\n\t cb(null, arg);\n\t break;\n\t }\n\t }\n\t function argRemote2Local(arg, fixedRequestArgs) {\n\t if (!arg) {\n\t return arg;\n\t }\n\t switch (typeof arg) {\n\t case 'object':\n\t if (typeof arg['type'] === 'number') {\n\t var specialArg = arg;\n\t switch (specialArg.type) {\n\t case SpecialArgType.CB:\n\t var cbId = arg.id;\n\t return function () {\n\t var arguments$1 = arguments;\n\t\n\t var i;\n\t var fixedArgs = new Array(arguments.length);\n\t var message, countdown = arguments.length;\n\t function abortAndSendError(err) {\n\t if (countdown > 0) {\n\t countdown = -1;\n\t message = {\n\t browserfsMessage: true,\n\t cbId: cbId,\n\t args: [apiErrorLocal2Remote(err)]\n\t };\n\t worker.postMessage(message);\n\t }\n\t }\n\t for (i = 0; i < arguments.length; i++) {\n\t // Capture i and argument.\n\t (function (i, arg) {\n\t argLocal2Remote(arg, fixedRequestArgs, function (err, fixedArg) {\n\t fixedArgs[i] = fixedArg;\n\t if (err) {\n\t abortAndSendError(err);\n\t }\n\t else if (--countdown === 0) {\n\t message = {\n\t browserfsMessage: true,\n\t cbId: cbId,\n\t args: fixedArgs\n\t };\n\t worker.postMessage(message);\n\t }\n\t });\n\t })(i, arguments$1[i]);\n\t }\n\t if (arguments.length === 0) {\n\t message = {\n\t browserfsMessage: true,\n\t cbId: cbId,\n\t args: fixedArgs\n\t };\n\t worker.postMessage(message);\n\t }\n\t };\n\t case SpecialArgType.API_ERROR:\n\t return apiErrorRemote2Local(specialArg);\n\t case SpecialArgType.STATS:\n\t return statsRemote2Local(specialArg);\n\t case SpecialArgType.FILEFLAG:\n\t return fileFlagRemote2Local(specialArg);\n\t case SpecialArgType.BUFFER:\n\t return bufferRemote2Local(specialArg);\n\t case SpecialArgType.ERROR:\n\t return errorRemote2Local(specialArg);\n\t default:\n\t // No idea what this is.\n\t return arg;\n\t }\n\t }\n\t else {\n\t return arg;\n\t }\n\t default:\n\t return arg;\n\t }\n\t }\n\t worker.addEventListener('message', function (e) {\n\t var request = e.data;\n\t if (isAPIRequest(request)) {\n\t var args = request.args, fixedArgs = new Array(args.length);\n\t switch (request.method) {\n\t case 'close':\n\t case 'sync':\n\t (function () {\n\t // File descriptor-relative methods.\n\t var remoteCb = args[1];\n\t fdConverter.applyFdAPIRequest(request, function (err) {\n\t // Send response.\n\t var response = {\n\t browserfsMessage: true,\n\t cbId: remoteCb.id,\n\t args: err ? [apiErrorLocal2Remote(err)] : []\n\t };\n\t worker.postMessage(response);\n\t });\n\t })();\n\t break;\n\t case 'probe':\n\t (function () {\n\t var rootFs = _fsMock.getRootFS(), remoteCb = args[1], probeResponse = {\n\t type: SpecialArgType.PROBE,\n\t isReadOnly: rootFs.isReadOnly(),\n\t supportsLinks: rootFs.supportsLinks(),\n\t supportsProps: rootFs.supportsProps()\n\t }, response = {\n\t browserfsMessage: true,\n\t cbId: remoteCb.id,\n\t args: [probeResponse]\n\t };\n\t worker.postMessage(response);\n\t })();\n\t break;\n\t default:\n\t // File system methods.\n\t for (var i = 0; i < args.length; i++) {\n\t fixedArgs[i] = argRemote2Local(args[i], fixedArgs);\n\t }\n\t var rootFS = _fsMock.getRootFS();\n\t rootFS[request.method].apply(rootFS, fixedArgs);\n\t break;\n\t }\n\t }\n\t });\n\t };\n\t WorkerFS.prototype.getName = function getName () {\n\t return WorkerFS.Name;\n\t };\n\t /**\n\t * **Deprecated. Please use WorkerFS.Create() method to construct and initialize WorkerFS instances.**\n\t *\n\t * Called once both local and remote sides are set up.\n\t */\n\t WorkerFS.prototype.initialize = function initialize (cb) {\n\t var this$1 = this;\n\t\n\t if (!this._isInitialized) {\n\t var message = {\n\t browserfsMessage: true,\n\t method: 'probe',\n\t args: [this._argLocal2Remote(emptyBuffer()), this._callbackConverter.toRemoteArg(function (probeResponse) {\n\t this$1._isInitialized = true;\n\t this$1._isReadOnly = probeResponse.isReadOnly;\n\t this$1._supportLinks = probeResponse.supportsLinks;\n\t this$1._supportProps = probeResponse.supportsProps;\n\t cb();\n\t })]\n\t };\n\t this._worker.postMessage(message);\n\t }\n\t else {\n\t cb();\n\t }\n\t };\n\t WorkerFS.prototype.isReadOnly = function isReadOnly () { return this._isReadOnly; };\n\t WorkerFS.prototype.supportsSynch = function supportsSynch () { return false; };\n\t WorkerFS.prototype.supportsLinks = function supportsLinks () { return this._supportLinks; };\n\t WorkerFS.prototype.supportsProps = function supportsProps () { return this._supportProps; };\n\t WorkerFS.prototype.rename = function rename (oldPath, newPath, cb) {\n\t this._rpc('rename', arguments);\n\t };\n\t WorkerFS.prototype.stat = function stat (p, isLstat, cb) {\n\t this._rpc('stat', arguments);\n\t };\n\t WorkerFS.prototype.open = function open (p, flag, mode, cb) {\n\t this._rpc('open', arguments);\n\t };\n\t WorkerFS.prototype.unlink = function unlink (p, cb) {\n\t this._rpc('unlink', arguments);\n\t };\n\t WorkerFS.prototype.rmdir = function rmdir (p, cb) {\n\t this._rpc('rmdir', arguments);\n\t };\n\t WorkerFS.prototype.mkdir = function mkdir (p, mode, cb) {\n\t this._rpc('mkdir', arguments);\n\t };\n\t WorkerFS.prototype.readdir = function readdir (p, cb) {\n\t this._rpc('readdir', arguments);\n\t };\n\t WorkerFS.prototype.exists = function exists (p, cb) {\n\t this._rpc('exists', arguments);\n\t };\n\t WorkerFS.prototype.realpath = function realpath (p, cache, cb) {\n\t this._rpc('realpath', arguments);\n\t };\n\t WorkerFS.prototype.truncate = function truncate (p, len, cb) {\n\t this._rpc('truncate', arguments);\n\t };\n\t WorkerFS.prototype.readFile = function readFile (fname, encoding, flag, cb) {\n\t this._rpc('readFile', arguments);\n\t };\n\t WorkerFS.prototype.writeFile = function writeFile (fname, data, encoding, flag, mode, cb) {\n\t this._rpc('writeFile', arguments);\n\t };\n\t WorkerFS.prototype.appendFile = function appendFile (fname, data, encoding, flag, mode, cb) {\n\t this._rpc('appendFile', arguments);\n\t };\n\t WorkerFS.prototype.chmod = function chmod (p, isLchmod, mode, cb) {\n\t this._rpc('chmod', arguments);\n\t };\n\t WorkerFS.prototype.chown = function chown (p, isLchown, uid, gid, cb) {\n\t this._rpc('chown', arguments);\n\t };\n\t WorkerFS.prototype.utimes = function utimes (p, atime, mtime, cb) {\n\t this._rpc('utimes', arguments);\n\t };\n\t WorkerFS.prototype.link = function link (srcpath, dstpath, cb) {\n\t this._rpc('link', arguments);\n\t };\n\t WorkerFS.prototype.symlink = function symlink (srcpath, dstpath, type, cb) {\n\t this._rpc('symlink', arguments);\n\t };\n\t WorkerFS.prototype.readlink = function readlink (p, cb) {\n\t this._rpc('readlink', arguments);\n\t };\n\t WorkerFS.prototype.syncClose = function syncClose (method, fd, cb) {\n\t this._worker.postMessage({\n\t browserfsMessage: true,\n\t method: method,\n\t args: [fd.toRemoteArg(), this._callbackConverter.toRemoteArg(cb)]\n\t });\n\t };\n\t WorkerFS.prototype._argRemote2Local = function _argRemote2Local (arg) {\n\t if (!arg) {\n\t return arg;\n\t }\n\t switch (typeof arg) {\n\t case 'object':\n\t if (typeof arg['type'] === 'number') {\n\t var specialArg = arg;\n\t switch (specialArg.type) {\n\t case SpecialArgType.API_ERROR:\n\t return apiErrorRemote2Local(specialArg);\n\t case SpecialArgType.FD:\n\t var fdArg = specialArg;\n\t return new WorkerFile(this, fdArg.path, FileFlag.getFileFlag(fdArg.flag), Stats.fromBuffer(transferrableObjectToBuffer(fdArg.stat)), fdArg.id, transferrableObjectToBuffer(fdArg.data));\n\t case SpecialArgType.STATS:\n\t return statsRemote2Local(specialArg);\n\t case SpecialArgType.FILEFLAG:\n\t return fileFlagRemote2Local(specialArg);\n\t case SpecialArgType.BUFFER:\n\t return bufferRemote2Local(specialArg);\n\t case SpecialArgType.ERROR:\n\t return errorRemote2Local(specialArg);\n\t default:\n\t return arg;\n\t }\n\t }\n\t else {\n\t return arg;\n\t }\n\t default:\n\t return arg;\n\t }\n\t };\n\t WorkerFS.prototype._rpc = function _rpc (methodName, args) {\n\t var this$1 = this;\n\t\n\t var fixedArgs = new Array(args.length);\n\t for (var i = 0; i < args.length; i++) {\n\t fixedArgs[i] = this$1._argLocal2Remote(args[i]);\n\t }\n\t var message = {\n\t browserfsMessage: true,\n\t method: methodName,\n\t args: fixedArgs\n\t };\n\t this._worker.postMessage(message);\n\t };\n\t /**\n\t * Converts a local argument into a remote argument. Public so WorkerFile objects can call it.\n\t */\n\t WorkerFS.prototype._argLocal2Remote = function _argLocal2Remote (arg) {\n\t if (!arg) {\n\t return arg;\n\t }\n\t switch (typeof arg) {\n\t case \"object\":\n\t if (arg instanceof Stats) {\n\t return statsLocal2Remote(arg);\n\t }\n\t else if (arg instanceof ApiError) {\n\t return apiErrorLocal2Remote(arg);\n\t }\n\t else if (arg instanceof WorkerFile) {\n\t return arg.toRemoteArg();\n\t }\n\t else if (arg instanceof FileFlag) {\n\t return fileFlagLocal2Remote(arg);\n\t }\n\t else if (arg instanceof Buffer) {\n\t return bufferLocal2Remote(arg);\n\t }\n\t else if (arg instanceof Error) {\n\t return errorLocal2Remote(arg);\n\t }\n\t else {\n\t return \"Unknown argument\";\n\t }\n\t case \"function\":\n\t return this._callbackConverter.toRemoteArg(arg);\n\t default:\n\t return arg;\n\t }\n\t };\n\t\n\t return WorkerFS;\n\t}(BaseFileSystem));\n\t\n\tWorkerFS.Name = \"WorkerFS\";\n\tWorkerFS.Options = {\n\t worker: {\n\t type: \"object\",\n\t description: \"The target worker that you want to connect to, or the current worker if in a worker context.\",\n\t validator: function (v, cb) {\n\t // Check for a `postMessage` function.\n\t if (v['postMessage']) {\n\t cb();\n\t }\n\t else {\n\t cb(new ApiError(ErrorCode.EINVAL, \"option must be a Web Worker instance.\"));\n\t }\n\t }\n\t }\n\t};\n\t\n\t/**\n\t * Contains utility methods for performing a variety of tasks with\n\t * XmlHttpRequest across browsers.\n\t */\n\tfunction asyncDownloadFileModern(p, type, cb) {\n\t var req = new XMLHttpRequest();\n\t req.open('GET', p, true);\n\t var jsonSupported = true;\n\t switch (type) {\n\t case 'buffer':\n\t req.responseType = 'arraybuffer';\n\t break;\n\t case 'json':\n\t // Some browsers don't support the JSON response type.\n\t // They either reset responseType, or throw an exception.\n\t // @see https://github.com/Modernizr/Modernizr/blob/master/src/testXhrType.js\n\t try {\n\t req.responseType = 'json';\n\t jsonSupported = req.responseType === 'json';\n\t }\n\t catch (e) {\n\t jsonSupported = false;\n\t }\n\t break;\n\t default:\n\t return cb(new ApiError(ErrorCode.EINVAL, \"Invalid download type: \" + type));\n\t }\n\t req.onreadystatechange = function (e) {\n\t if (req.readyState === 4) {\n\t if (req.status === 200) {\n\t switch (type) {\n\t case 'buffer':\n\t // XXX: WebKit-based browsers return *null* when XHRing an empty file.\n\t return cb(null, req.response ? Buffer.from(req.response) : emptyBuffer());\n\t case 'json':\n\t if (jsonSupported) {\n\t return cb(null, req.response);\n\t }\n\t else {\n\t return cb(null, JSON.parse(req.responseText));\n\t }\n\t }\n\t }\n\t else {\n\t return cb(new ApiError(req.status, \"XHR error.\"));\n\t }\n\t }\n\t };\n\t req.send();\n\t}\n\tfunction syncDownloadFileModern(p, type) {\n\t var req = new XMLHttpRequest();\n\t req.open('GET', p, false);\n\t // On most platforms, we cannot set the responseType of synchronous downloads.\n\t // @todo Test for this; IE10 allows this, as do older versions of Chrome/FF.\n\t var data = null;\n\t var err = null;\n\t // Classic hack to download binary data as a string.\n\t req.overrideMimeType('text/plain; charset=x-user-defined');\n\t req.onreadystatechange = function (e) {\n\t if (req.readyState === 4) {\n\t if (req.status === 200) {\n\t switch (type) {\n\t case 'buffer':\n\t // Convert the text into a buffer.\n\t var text = req.responseText;\n\t data = Buffer.alloc(text.length);\n\t // Throw away the upper bits of each character.\n\t for (var i = 0; i < text.length; i++) {\n\t // This will automatically throw away the upper bit of each\n\t // character for us.\n\t data[i] = text.charCodeAt(i);\n\t }\n\t return;\n\t case 'json':\n\t data = JSON.parse(req.responseText);\n\t return;\n\t }\n\t }\n\t else {\n\t err = new ApiError(req.status, \"XHR error.\");\n\t return;\n\t }\n\t }\n\t };\n\t req.send();\n\t if (err) {\n\t throw err;\n\t }\n\t return data;\n\t}\n\tfunction syncDownloadFileIE10(p, type) {\n\t var req = new XMLHttpRequest();\n\t req.open('GET', p, false);\n\t switch (type) {\n\t case 'buffer':\n\t req.responseType = 'arraybuffer';\n\t break;\n\t case 'json':\n\t // IE10 does not support the JSON type.\n\t break;\n\t default:\n\t throw new ApiError(ErrorCode.EINVAL, \"Invalid download type: \" + type);\n\t }\n\t var data;\n\t var err;\n\t req.onreadystatechange = function (e) {\n\t if (req.readyState === 4) {\n\t if (req.status === 200) {\n\t switch (type) {\n\t case 'buffer':\n\t data = Buffer.from(req.response);\n\t break;\n\t case 'json':\n\t data = JSON.parse(req.response);\n\t break;\n\t }\n\t }\n\t else {\n\t err = new ApiError(req.status, \"XHR error.\");\n\t }\n\t }\n\t };\n\t req.send();\n\t if (err) {\n\t throw err;\n\t }\n\t return data;\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction getFileSize(async, p, cb) {\n\t var req = new XMLHttpRequest();\n\t req.open('HEAD', p, async);\n\t req.onreadystatechange = function (e) {\n\t if (req.readyState === 4) {\n\t if (req.status === 200) {\n\t try {\n\t return cb(null, parseInt(req.getResponseHeader('Content-Length') || '-1', 10));\n\t }\n\t catch (e) {\n\t // In the event that the header isn't present or there is an error...\n\t return cb(new ApiError(ErrorCode.EIO, \"XHR HEAD error: Could not read content-length.\"));\n\t }\n\t }\n\t else {\n\t return cb(new ApiError(req.status, \"XHR HEAD error.\"));\n\t }\n\t }\n\t };\n\t req.send();\n\t}\n\t/**\n\t * Asynchronously download a file as a buffer or a JSON object.\n\t * Note that the third function signature with a non-specialized type is\n\t * invalid, but TypeScript requires it when you specialize string arguments to\n\t * constants.\n\t * @hidden\n\t */\n\tvar asyncDownloadFile = asyncDownloadFileModern;\n\t/**\n\t * Synchronously download a file as a buffer or a JSON object.\n\t * Note that the third function signature with a non-specialized type is\n\t * invalid, but TypeScript requires it when you specialize string arguments to\n\t * constants.\n\t * @hidden\n\t */\n\tvar syncDownloadFile = (isIE && typeof Blob !== 'undefined') ? syncDownloadFileIE10 : syncDownloadFileModern;\n\t/**\n\t * Synchronously retrieves the size of the given file in bytes.\n\t * @hidden\n\t */\n\tfunction getFileSizeSync(p) {\n\t var rv = -1;\n\t getFileSize(false, p, function (err, size) {\n\t if (err) {\n\t throw err;\n\t }\n\t rv = size;\n\t });\n\t return rv;\n\t}\n\t/**\n\t * Asynchronously retrieves the size of the given file in bytes.\n\t * @hidden\n\t */\n\tfunction getFileSizeAsync(p, cb) {\n\t getFileSize(true, p, cb);\n\t}\n\t\n\t/**\n\t * A simple class for storing a filesystem index. Assumes that all paths passed\n\t * to it are *absolute* paths.\n\t *\n\t * Can be used as a partial or a full index, although care must be taken if used\n\t * for the former purpose, especially when directories are concerned.\n\t */\n\tvar FileIndex = function FileIndex() {\n\t // _index is a single-level key,value store that maps *directory* paths to\n\t // DirInodes. File information is only contained in DirInodes themselves.\n\t this._index = {};\n\t // Create the root directory.\n\t this.addPath('/', new DirInode());\n\t};\n\t/**\n\t * Static method for constructing indices from a JSON listing.\n\t * @param listing Directory listing generated by tools/XHRIndexer.coffee\n\t * @return A new FileIndex object.\n\t */\n\tFileIndex.fromListing = function fromListing (listing) {\n\t var idx = new FileIndex();\n\t // Add a root DirNode.\n\t var rootInode = new DirInode();\n\t idx._index['/'] = rootInode;\n\t var queue = [['', listing, rootInode]];\n\t while (queue.length > 0) {\n\t var inode = (void 0);\n\t var next = queue.pop();\n\t var pwd = next[0];\n\t var tree = next[1];\n\t var parent = next[2];\n\t for (var node in tree) {\n\t if (tree.hasOwnProperty(node)) {\n\t var children = tree[node];\n\t var name = pwd + \"/\" + node;\n\t if (children) {\n\t idx._index[name] = inode = new DirInode();\n\t queue.push([name, children, inode]);\n\t }\n\t else {\n\t // This inode doesn't have correct size information, noted with -1.\n\t inode = new FileInode(new Stats(FileType.FILE, -1, 0x16D));\n\t }\n\t if (parent) {\n\t parent._ls[node] = inode;\n\t }\n\t }\n\t }\n\t }\n\t return idx;\n\t};\n\t/**\n\t * Runs the given function over all files in the index.\n\t */\n\tFileIndex.prototype.fileIterator = function fileIterator (cb) {\n\t var this$1 = this;\n\t\n\t for (var path$$1 in this$1._index) {\n\t if (this$1._index.hasOwnProperty(path$$1)) {\n\t var dir = this$1._index[path$$1];\n\t var files = dir.getListing();\n\t for (var i = 0, list = files; i < list.length; i += 1) {\n\t var file = list[i];\n\t\n\t var item = dir.getItem(file);\n\t if (isFileInode(item)) {\n\t cb(item.getData());\n\t }\n\t }\n\t }\n\t }\n\t};\n\t/**\n\t * Adds the given absolute path to the index if it is not already in the index.\n\t * Creates any needed parent directories.\n\t * @param path The path to add to the index.\n\t * @param inode The inode for the\n\t * path to add.\n\t * @return 'True' if it was added or already exists, 'false' if there\n\t * was an issue adding it (e.g. item in path is a file, item exists but is\n\t * different).\n\t * @todo If adding fails and implicitly creates directories, we do not clean up\n\t * the new empty directories.\n\t */\n\tFileIndex.prototype.addPath = function addPath (path$$1, inode) {\n\t if (!inode) {\n\t throw new Error('Inode must be specified');\n\t }\n\t if (path$$1[0] !== '/') {\n\t throw new Error('Path must be absolute, got: ' + path$$1);\n\t }\n\t // Check if it already exists.\n\t if (this._index.hasOwnProperty(path$$1)) {\n\t return this._index[path$$1] === inode;\n\t }\n\t var splitPath = this._split_path(path$$1);\n\t var dirpath = splitPath[0];\n\t var itemname = splitPath[1];\n\t // Try to add to its parent directory first.\n\t var parent = this._index[dirpath];\n\t if (parent === undefined && path$$1 !== '/') {\n\t // Create parent.\n\t parent = new DirInode();\n\t if (!this.addPath(dirpath, parent)) {\n\t return false;\n\t }\n\t }\n\t // Add myself to my parent.\n\t if (path$$1 !== '/') {\n\t if (!parent.addItem(itemname, inode)) {\n\t return false;\n\t }\n\t }\n\t // If I'm a directory, add myself to the index.\n\t if (isDirInode(inode)) {\n\t this._index[path$$1] = inode;\n\t }\n\t return true;\n\t};\n\t/**\n\t * Adds the given absolute path to the index if it is not already in the index.\n\t * The path is added without special treatment (no joining of adjacent separators, etc).\n\t * Creates any needed parent directories.\n\t * @param path The path to add to the index.\n\t * @param inode The inode for the\n\t * path to add.\n\t * @return 'True' if it was added or already exists, 'false' if there\n\t * was an issue adding it (e.g. item in path is a file, item exists but is\n\t * different).\n\t * @todo If adding fails and implicitly creates directories, we do not clean up\n\t * the new empty directories.\n\t */\n\tFileIndex.prototype.addPathFast = function addPathFast (path$$1, inode) {\n\t var itemNameMark = path$$1.lastIndexOf('/');\n\t var parentPath = itemNameMark === 0 ? \"/\" : path$$1.substring(0, itemNameMark);\n\t var itemName = path$$1.substring(itemNameMark + 1);\n\t // Try to add to its parent directory first.\n\t var parent = this._index[parentPath];\n\t if (parent === undefined) {\n\t // Create parent.\n\t parent = new DirInode();\n\t this.addPathFast(parentPath, parent);\n\t }\n\t if (!parent.addItem(itemName, inode)) {\n\t return false;\n\t }\n\t // If adding a directory, add to the index as well.\n\t if (inode.isDir()) {\n\t this._index[path$$1] = inode;\n\t }\n\t return true;\n\t};\n\t/**\n\t * Removes the given path. Can be a file or a directory.\n\t * @return The removed item,\n\t * or null if it did not exist.\n\t */\n\tFileIndex.prototype.removePath = function removePath (path$$1) {\n\t var this$1 = this;\n\t\n\t var splitPath = this._split_path(path$$1);\n\t var dirpath = splitPath[0];\n\t var itemname = splitPath[1];\n\t // Try to remove it from its parent directory first.\n\t var parent = this._index[dirpath];\n\t if (parent === undefined) {\n\t return null;\n\t }\n\t // Remove myself from my parent.\n\t var inode = parent.remItem(itemname);\n\t if (inode === null) {\n\t return null;\n\t }\n\t // If I'm a directory, remove myself from the index, and remove my children.\n\t if (isDirInode(inode)) {\n\t var children = inode.getListing();\n\t for (var i = 0, list = children; i < list.length; i += 1) {\n\t var child = list[i];\n\t\n\t this$1.removePath(path$$1 + '/' + child);\n\t }\n\t // Remove the directory from the index, unless it's the root.\n\t if (path$$1 !== '/') {\n\t delete this._index[path$$1];\n\t }\n\t }\n\t return inode;\n\t};\n\t/**\n\t * Retrieves the directory listing of the given path.\n\t * @return An array of files in the given path, or 'null' if it does not exist.\n\t */\n\tFileIndex.prototype.ls = function ls (path$$1) {\n\t var item = this._index[path$$1];\n\t if (item === undefined) {\n\t return null;\n\t }\n\t return item.getListing();\n\t};\n\t/**\n\t * Returns the inode of the given item.\n\t * @return Returns null if the item does not exist.\n\t */\n\tFileIndex.prototype.getInode = function getInode (path$$1) {\n\t var splitPath = this._split_path(path$$1);\n\t var dirpath = splitPath[0];\n\t var itemname = splitPath[1];\n\t // Retrieve from its parent directory.\n\t var parent = this._index[dirpath];\n\t if (parent === undefined) {\n\t return null;\n\t }\n\t // Root case\n\t if (dirpath === path$$1) {\n\t return parent;\n\t }\n\t return parent.getItem(itemname);\n\t};\n\t/**\n\t * Split into a (directory path, item name) pair\n\t */\n\tFileIndex.prototype._split_path = function _split_path (p) {\n\t var dirpath = path.dirname(p);\n\t var itemname = p.substr(dirpath.length + (dirpath === \"/\" ? 0 : 1));\n\t return [dirpath, itemname];\n\t};\n\t/**\n\t * Inode for a file. Stores an arbitrary (filesystem-specific) data payload.\n\t */\n\tvar FileInode = function FileInode(data) {\n\t this.data = data;\n\t};\n\tFileInode.prototype.isFile = function isFile () { return true; };\n\tFileInode.prototype.isDir = function isDir () { return false; };\n\tFileInode.prototype.getData = function getData () { return this.data; };\n\tFileInode.prototype.setData = function setData (data) { this.data = data; };\n\t/**\n\t * Inode for a directory. Currently only contains the directory listing.\n\t */\n\tvar DirInode = function DirInode(data) {\n\t if ( data === void 0 ) data = null;\n\t\n\t this.data = data;\n\t this._ls = {};\n\t};\n\tDirInode.prototype.isFile = function isFile () {\n\t return false;\n\t};\n\tDirInode.prototype.isDir = function isDir () {\n\t return true;\n\t};\n\tDirInode.prototype.getData = function getData () { return this.data; };\n\t/**\n\t * Return a Stats object for this inode.\n\t * @todo Should probably remove this at some point. This isn't the\n\t * responsibility of the FileIndex.\n\t */\n\tDirInode.prototype.getStats = function getStats () {\n\t return new Stats(FileType.DIRECTORY, 4096, 0x16D);\n\t};\n\t/**\n\t * Returns the directory listing for this directory. Paths in the directory are\n\t * relative to the directory's path.\n\t * @return The directory listing for this directory.\n\t */\n\tDirInode.prototype.getListing = function getListing () {\n\t return Object.keys(this._ls);\n\t};\n\t/**\n\t * Returns the inode for the indicated item, or null if it does not exist.\n\t * @param p Name of item in this directory.\n\t */\n\tDirInode.prototype.getItem = function getItem (p) {\n\t var item = this._ls[p];\n\t return item ? item : null;\n\t};\n\t/**\n\t * Add the given item to the directory listing. Note that the given inode is\n\t * not copied, and will be mutated by the DirInode if it is a DirInode.\n\t * @param p Item name to add to the directory listing.\n\t * @param inode The inode for the\n\t * item to add to the directory inode.\n\t * @return True if it was added, false if it already existed.\n\t */\n\tDirInode.prototype.addItem = function addItem (p, inode) {\n\t if (p in this._ls) {\n\t return false;\n\t }\n\t this._ls[p] = inode;\n\t return true;\n\t};\n\t/**\n\t * Removes the given item from the directory listing.\n\t * @param p Name of item to remove from the directory listing.\n\t * @return Returns the item\n\t * removed, or null if the item did not exist.\n\t */\n\tDirInode.prototype.remItem = function remItem (p) {\n\t var item = this._ls[p];\n\t if (item === undefined) {\n\t return null;\n\t }\n\t delete this._ls[p];\n\t return item;\n\t};\n\t/**\n\t * @hidden\n\t */\n\tfunction isFileInode(inode) {\n\t return !!inode && inode.isFile();\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction isDirInode(inode) {\n\t return !!inode && inode.isDir();\n\t}\n\t\n\t/**\n\t * Try to convert the given buffer into a string, and pass it to the callback.\n\t * Optimization that removes the needed try/catch into a helper function, as\n\t * this is an uncommon case.\n\t * @hidden\n\t */\n\tfunction tryToString(buff, encoding, cb) {\n\t try {\n\t cb(null, buff.toString(encoding));\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t}\n\t/**\n\t * A simple filesystem backed by XMLHttpRequests. You must create a directory listing using the\n\t * `make_xhrfs_index` tool provided by BrowserFS.\n\t *\n\t * If you install BrowserFS globally with `npm i -g browserfs`, you can generate a listing by\n\t * running `make_xhrfs_index` in your terminal in the directory you would like to index:\n\t *\n\t * ```\n\t * make_xhrfs_index > index.json\n\t * ```\n\t *\n\t * Listings objects look like the following:\n\t *\n\t * ```json\n\t * {\n\t * \"home\": {\n\t * \"jvilk\": {\n\t * \"someFile.txt\": null,\n\t * \"someDir\": {\n\t * // Empty directory\n\t * }\n\t * }\n\t * }\n\t * }\n\t * ```\n\t *\n\t * *This example has the folder `/home/jvilk` with subfile `someFile.txt` and subfolder `someDir`.*\n\t */\n\tvar XmlHttpRequest = (function (BaseFileSystem$$1) {\n\t function XmlHttpRequest(listingUrlOrObj, prefixUrl, deprecateMsg) {\n\t if ( prefixUrl === void 0 ) prefixUrl = '';\n\t if ( deprecateMsg === void 0 ) deprecateMsg = true;\n\t\n\t BaseFileSystem$$1.call(this);\n\t if (!listingUrlOrObj) {\n\t listingUrlOrObj = 'index.json';\n\t }\n\t // prefix_url must end in a directory separator.\n\t if (prefixUrl.length > 0 && prefixUrl.charAt(prefixUrl.length - 1) !== '/') {\n\t prefixUrl = prefixUrl + '/';\n\t }\n\t this.prefixUrl = prefixUrl;\n\t var listing = null;\n\t if (typeof (listingUrlOrObj) === \"string\") {\n\t listing = this._requestFileSync(listingUrlOrObj, 'json');\n\t if (!listing) {\n\t throw new Error(\"Unable to find listing at URL: ${listingUrlOrObj}\");\n\t }\n\t }\n\t else {\n\t listing = listingUrlOrObj;\n\t }\n\t deprecationMessage(deprecateMsg, XmlHttpRequest.Name, { index: typeof (listingUrlOrObj) === \"string\" ? listingUrlOrObj : \"file index as an object\", baseUrl: prefixUrl });\n\t this._index = FileIndex.fromListing(listing);\n\t }\n\t\n\t if ( BaseFileSystem$$1 ) XmlHttpRequest.__proto__ = BaseFileSystem$$1;\n\t XmlHttpRequest.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype );\n\t XmlHttpRequest.prototype.constructor = XmlHttpRequest;\n\t /**\n\t * Construct an XmlHttpRequest file system backend with the given options.\n\t */\n\t XmlHttpRequest.Create = function Create (opts, cb) {\n\t if (opts.index === undefined) {\n\t opts.index = \"index.json\";\n\t }\n\t if (typeof (opts.index) === \"string\") {\n\t XmlHttpRequest.FromURL(opts.index, cb, opts.baseUrl, false);\n\t }\n\t else {\n\t cb(null, new XmlHttpRequest(opts.index, opts.baseUrl, false));\n\t }\n\t };\n\t XmlHttpRequest.isAvailable = function isAvailable () {\n\t return typeof (XMLHttpRequest) !== \"undefined\" && XMLHttpRequest !== null;\n\t };\n\t /**\n\t * **Deprecated. Please use XmlHttpRequest.Create() method instead to construct XmlHttpRequest objects.**\n\t *\n\t * Constructs an XmlHttpRequest object using the directory listing at the given URL.\n\t * Uses the base URL as the URL prefix for fetched files.\n\t * @param cb Called when the file system has been instantiated, or if an error occurs.\n\t */\n\t XmlHttpRequest.FromURL = function FromURL (url, cb, baseUrl, deprecateMsg) {\n\t if ( baseUrl === void 0 ) baseUrl = url.slice(0, url.lastIndexOf('/') + 1);\n\t if ( deprecateMsg === void 0 ) deprecateMsg = true;\n\t\n\t if (deprecateMsg) {\n\t console.warn((\"[XmlHttpRequest] XmlHttpRequest.FromURL() is deprecated and will be removed in the next major release. Please use 'XmlHttpRequest.Create({ index: \\\"\" + url + \"\\\", baseUrl: \\\"\" + baseUrl + \"\\\" }, cb)' instead.\"));\n\t }\n\t asyncDownloadFile(url, \"json\", function (e, data) {\n\t if (e) {\n\t cb(e);\n\t }\n\t else {\n\t cb(null, new XmlHttpRequest(data, baseUrl, false));\n\t }\n\t });\n\t };\n\t XmlHttpRequest.prototype.empty = function empty () {\n\t this._index.fileIterator(function (file) {\n\t file.fileData = null;\n\t });\n\t };\n\t XmlHttpRequest.prototype.getName = function getName () {\n\t return XmlHttpRequest.Name;\n\t };\n\t XmlHttpRequest.prototype.diskSpace = function diskSpace (path$$1, cb) {\n\t // Read-only file system. We could calculate the total space, but that's not\n\t // important right now.\n\t cb(0, 0);\n\t };\n\t XmlHttpRequest.prototype.isReadOnly = function isReadOnly () {\n\t return true;\n\t };\n\t XmlHttpRequest.prototype.supportsLinks = function supportsLinks () {\n\t return false;\n\t };\n\t XmlHttpRequest.prototype.supportsProps = function supportsProps () {\n\t return false;\n\t };\n\t XmlHttpRequest.prototype.supportsSynch = function supportsSynch () {\n\t return true;\n\t };\n\t /**\n\t * Special XHR function: Preload the given file into the index.\n\t * @param [String] path\n\t * @param [BrowserFS.Buffer] buffer\n\t */\n\t XmlHttpRequest.prototype.preloadFile = function preloadFile (path$$1, buffer$$1) {\n\t var inode = this._index.getInode(path$$1);\n\t if (isFileInode(inode)) {\n\t if (inode === null) {\n\t throw ApiError.ENOENT(path$$1);\n\t }\n\t var stats = inode.getData();\n\t stats.size = buffer$$1.length;\n\t stats.fileData = buffer$$1;\n\t }\n\t else {\n\t throw ApiError.EISDIR(path$$1);\n\t }\n\t };\n\t XmlHttpRequest.prototype.stat = function stat (path$$1, isLstat, cb) {\n\t var inode = this._index.getInode(path$$1);\n\t if (inode === null) {\n\t return cb(ApiError.ENOENT(path$$1));\n\t }\n\t var stats;\n\t if (isFileInode(inode)) {\n\t stats = inode.getData();\n\t // At this point, a non-opened file will still have default stats from the listing.\n\t if (stats.size < 0) {\n\t this._requestFileSizeAsync(path$$1, function (e, size) {\n\t if (e) {\n\t return cb(e);\n\t }\n\t stats.size = size;\n\t cb(null, stats.clone());\n\t });\n\t }\n\t else {\n\t cb(null, stats.clone());\n\t }\n\t }\n\t else if (isDirInode(inode)) {\n\t stats = inode.getStats();\n\t cb(null, stats);\n\t }\n\t else {\n\t cb(ApiError.FileError(ErrorCode.EINVAL, path$$1));\n\t }\n\t };\n\t XmlHttpRequest.prototype.statSync = function statSync (path$$1, isLstat) {\n\t var inode = this._index.getInode(path$$1);\n\t if (inode === null) {\n\t throw ApiError.ENOENT(path$$1);\n\t }\n\t var stats;\n\t if (isFileInode(inode)) {\n\t stats = inode.getData();\n\t // At this point, a non-opened file will still have default stats from the listing.\n\t if (stats.size < 0) {\n\t stats.size = this._requestFileSizeSync(path$$1);\n\t }\n\t }\n\t else if (isDirInode(inode)) {\n\t stats = inode.getStats();\n\t }\n\t else {\n\t throw ApiError.FileError(ErrorCode.EINVAL, path$$1);\n\t }\n\t return stats;\n\t };\n\t XmlHttpRequest.prototype.open = function open (path$$1, flags, mode, cb) {\n\t // INVARIANT: You can't write to files on this file system.\n\t if (flags.isWriteable()) {\n\t return cb(new ApiError(ErrorCode.EPERM, path$$1));\n\t }\n\t var self = this;\n\t // Check if the path exists, and is a file.\n\t var inode = this._index.getInode(path$$1);\n\t if (inode === null) {\n\t return cb(ApiError.ENOENT(path$$1));\n\t }\n\t if (isFileInode(inode)) {\n\t var stats = inode.getData();\n\t switch (flags.pathExistsAction()) {\n\t case ActionType.THROW_EXCEPTION:\n\t case ActionType.TRUNCATE_FILE:\n\t return cb(ApiError.EEXIST(path$$1));\n\t case ActionType.NOP:\n\t // Use existing file contents.\n\t // XXX: Uh, this maintains the previously-used flag.\n\t if (stats.fileData) {\n\t return cb(null, new NoSyncFile(self, path$$1, flags, stats.clone(), stats.fileData));\n\t }\n\t // @todo be lazier about actually requesting the file\n\t this._requestFileAsync(path$$1, 'buffer', function (err, buffer$$1) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t // we don't initially have file sizes\n\t stats.size = buffer$$1.length;\n\t stats.fileData = buffer$$1;\n\t return cb(null, new NoSyncFile(self, path$$1, flags, stats.clone(), buffer$$1));\n\t });\n\t break;\n\t default:\n\t return cb(new ApiError(ErrorCode.EINVAL, 'Invalid FileMode object.'));\n\t }\n\t }\n\t else {\n\t return cb(ApiError.EISDIR(path$$1));\n\t }\n\t };\n\t XmlHttpRequest.prototype.openSync = function openSync (path$$1, flags, mode) {\n\t // INVARIANT: You can't write to files on this file system.\n\t if (flags.isWriteable()) {\n\t throw new ApiError(ErrorCode.EPERM, path$$1);\n\t }\n\t // Check if the path exists, and is a file.\n\t var inode = this._index.getInode(path$$1);\n\t if (inode === null) {\n\t throw ApiError.ENOENT(path$$1);\n\t }\n\t if (isFileInode(inode)) {\n\t var stats = inode.getData();\n\t switch (flags.pathExistsAction()) {\n\t case ActionType.THROW_EXCEPTION:\n\t case ActionType.TRUNCATE_FILE:\n\t throw ApiError.EEXIST(path$$1);\n\t case ActionType.NOP:\n\t // Use existing file contents.\n\t // XXX: Uh, this maintains the previously-used flag.\n\t if (stats.fileData) {\n\t return new NoSyncFile(this, path$$1, flags, stats.clone(), stats.fileData);\n\t }\n\t // @todo be lazier about actually requesting the file\n\t var buffer$$1 = this._requestFileSync(path$$1, 'buffer');\n\t // we don't initially have file sizes\n\t stats.size = buffer$$1.length;\n\t stats.fileData = buffer$$1;\n\t return new NoSyncFile(this, path$$1, flags, stats.clone(), buffer$$1);\n\t default:\n\t throw new ApiError(ErrorCode.EINVAL, 'Invalid FileMode object.');\n\t }\n\t }\n\t else {\n\t throw ApiError.EISDIR(path$$1);\n\t }\n\t };\n\t XmlHttpRequest.prototype.readdir = function readdir (path$$1, cb) {\n\t try {\n\t cb(null, this.readdirSync(path$$1));\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t XmlHttpRequest.prototype.readdirSync = function readdirSync (path$$1) {\n\t // Check if it exists.\n\t var inode = this._index.getInode(path$$1);\n\t if (inode === null) {\n\t throw ApiError.ENOENT(path$$1);\n\t }\n\t else if (isDirInode(inode)) {\n\t return inode.getListing();\n\t }\n\t else {\n\t throw ApiError.ENOTDIR(path$$1);\n\t }\n\t };\n\t /**\n\t * We have the entire file as a buffer; optimize readFile.\n\t */\n\t XmlHttpRequest.prototype.readFile = function readFile (fname, encoding, flag, cb) {\n\t // Wrap cb in file closing code.\n\t var oldCb = cb;\n\t // Get file.\n\t this.open(fname, flag, 0x1a4, function (err, fd) {\n\t if (err) {\n\t return cb(err);\n\t }\n\t cb = function (err, arg) {\n\t fd.close(function (err2) {\n\t if (!err) {\n\t err = err2;\n\t }\n\t return oldCb(err, arg);\n\t });\n\t };\n\t var fdCast = fd;\n\t var fdBuff = fdCast.getBuffer();\n\t if (encoding === null) {\n\t cb(err, copyingSlice(fdBuff));\n\t }\n\t else {\n\t tryToString(fdBuff, encoding, cb);\n\t }\n\t });\n\t };\n\t /**\n\t * Specially-optimized readfile.\n\t */\n\t XmlHttpRequest.prototype.readFileSync = function readFileSync (fname, encoding, flag) {\n\t // Get file.\n\t var fd = this.openSync(fname, flag, 0x1a4);\n\t try {\n\t var fdCast = fd;\n\t var fdBuff = fdCast.getBuffer();\n\t if (encoding === null) {\n\t return copyingSlice(fdBuff);\n\t }\n\t return fdBuff.toString(encoding);\n\t }\n\t finally {\n\t fd.closeSync();\n\t }\n\t };\n\t XmlHttpRequest.prototype.getXhrPath = function getXhrPath (filePath) {\n\t if (filePath.charAt(0) === '/') {\n\t filePath = filePath.slice(1);\n\t }\n\t return this.prefixUrl + filePath;\n\t };\n\t XmlHttpRequest.prototype._requestFileAsync = function _requestFileAsync (p, type, cb) {\n\t asyncDownloadFile(this.getXhrPath(p), type, cb);\n\t };\n\t XmlHttpRequest.prototype._requestFileSync = function _requestFileSync (p, type) {\n\t return syncDownloadFile(this.getXhrPath(p), type);\n\t };\n\t /**\n\t * Only requests the HEAD content, for the file size.\n\t */\n\t XmlHttpRequest.prototype._requestFileSizeAsync = function _requestFileSizeAsync (path$$1, cb) {\n\t getFileSizeAsync(this.getXhrPath(path$$1), cb);\n\t };\n\t XmlHttpRequest.prototype._requestFileSizeSync = function _requestFileSizeSync (path$$1) {\n\t return getFileSizeSync(this.getXhrPath(path$$1));\n\t };\n\t\n\t return XmlHttpRequest;\n\t}(BaseFileSystem));\n\t\n\tXmlHttpRequest.Name = \"XmlHttpRequest\";\n\tXmlHttpRequest.Options = {\n\t index: {\n\t type: [\"string\", \"object\"],\n\t optional: true,\n\t description: \"URL to a file index as a JSON file or the file index object itself, generated with the make_xhrfs_index script. Defaults to `index.json`.\"\n\t },\n\t baseUrl: {\n\t type: \"string\",\n\t optional: true,\n\t description: \"Used as the URL prefix for fetched files. Default: Fetch files relative to the index.\"\n\t }\n\t};\n\t\n\t/**\n\t * (Nonstandard) String utility function for 8-bit ASCII with the extended\n\t * character set. Unlike the ASCII above, we do not mask the high bits.\n\t *\n\t * Placed into a separate file so it can be used with other Buffer implementations.\n\t * @see http://en.wikipedia.org/wiki/Extended_ASCII\n\t */\n\t/**\n\t * (Nonstandard) String utility function for 8-bit ASCII with the extended\n\t * character set. Unlike the ASCII above, we do not mask the high bits.\n\t *\n\t * Placed into a separate file so it can be used with other Buffer implementations.\n\t * @see http://en.wikipedia.org/wiki/Extended_ASCII\n\t */ var ExtendedASCII = function ExtendedASCII () {};\n\t\n\t ExtendedASCII.str2byte = function str2byte (str, buf) {\n\t var length = str.length > buf.length ? buf.length : str.length;\n\t for (var i = 0; i < length; i++) {\n\t var charCode = str.charCodeAt(i);\n\t if (charCode > 0x7F) {\n\t // Check if extended ASCII.\n\t var charIdx = ExtendedASCII.extendedChars.indexOf(str.charAt(i));\n\t if (charIdx > -1) {\n\t charCode = charIdx + 0x80;\n\t }\n\t // Otherwise, keep it as-is.\n\t }\n\t buf[charCode] = i;\n\t }\n\t return length;\n\t};\n\tExtendedASCII.byte2str = function byte2str (buff) {\n\t var chars = new Array(buff.length);\n\t for (var i = 0; i < buff.length; i++) {\n\t var charCode = buff[i];\n\t if (charCode > 0x7F) {\n\t chars[i] = ExtendedASCII.extendedChars[charCode - 128];\n\t }\n\t else {\n\t chars[i] = String.fromCharCode(charCode);\n\t }\n\t }\n\t return chars.join('');\n\t};\n\tExtendedASCII.byteLength = function byteLength (str) { return str.length; };\n\t\n\t ExtendedASCII.extendedChars = ['\\u00C7', '\\u00FC', '\\u00E9', '\\u00E2', '\\u00E4',\n\t '\\u00E0', '\\u00E5', '\\u00E7', '\\u00EA', '\\u00EB', '\\u00E8', '\\u00EF',\n\t '\\u00EE', '\\u00EC', '\\u00C4', '\\u00C5', '\\u00C9', '\\u00E6', '\\u00C6',\n\t '\\u00F4', '\\u00F6', '\\u00F2', '\\u00FB', '\\u00F9', '\\u00FF', '\\u00D6',\n\t '\\u00DC', '\\u00F8', '\\u00A3', '\\u00D8', '\\u00D7', '\\u0192', '\\u00E1',\n\t '\\u00ED', '\\u00F3', '\\u00FA', '\\u00F1', '\\u00D1', '\\u00AA', '\\u00BA',\n\t '\\u00BF', '\\u00AE', '\\u00AC', '\\u00BD', '\\u00BC', '\\u00A1', '\\u00AB',\n\t '\\u00BB', '_', '_', '_', '\\u00A6', '\\u00A6', '\\u00C1', '\\u00C2', '\\u00C0',\n\t '\\u00A9', '\\u00A6', '\\u00A6', '+', '+', '\\u00A2', '\\u00A5', '+', '+', '-',\n\t '-', '+', '-', '+', '\\u00E3', '\\u00C3', '+', '+', '-', '-', '\\u00A6', '-',\n\t '+', '\\u00A4', '\\u00F0', '\\u00D0', '\\u00CA', '\\u00CB', '\\u00C8', 'i',\n\t '\\u00CD', '\\u00CE', '\\u00CF', '+', '+', '_', '_', '\\u00A6', '\\u00CC', '_',\n\t '\\u00D3', '\\u00DF', '\\u00D4', '\\u00D2', '\\u00F5', '\\u00D5', '\\u00B5',\n\t '\\u00FE', '\\u00DE', '\\u00DA', '\\u00DB', '\\u00D9', '\\u00FD', '\\u00DD',\n\t '\\u00AF', '\\u00B4', '\\u00AD', '\\u00B1', '_', '\\u00BE', '\\u00B6', '\\u00A7',\n\t '\\u00F7', '\\u00B8', '\\u00B0', '\\u00A8', '\\u00B7', '\\u00B9', '\\u00B3',\n\t '\\u00B2', '_', ' '];\n\t\n\t/**\n\t * @hidden\n\t */\n\tvar inflateRaw = __webpack_require__(31).inflateRaw;\n\t/**\n\t * Maps CompressionMethod => function that decompresses.\n\t * @hidden\n\t */\n\tvar decompressionMethods = {};\n\t/**\n\t * 4.4.2.2: Indicates the compatibiltiy of a file's external attributes.\n\t */\n\tvar ExternalFileAttributeType;\n\t(function (ExternalFileAttributeType) {\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"MSDOS\"] = 0] = \"MSDOS\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"AMIGA\"] = 1] = \"AMIGA\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"OPENVMS\"] = 2] = \"OPENVMS\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"UNIX\"] = 3] = \"UNIX\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"VM_CMS\"] = 4] = \"VM_CMS\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"ATARI_ST\"] = 5] = \"ATARI_ST\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"OS2_HPFS\"] = 6] = \"OS2_HPFS\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"MAC\"] = 7] = \"MAC\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"Z_SYSTEM\"] = 8] = \"Z_SYSTEM\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"CP_M\"] = 9] = \"CP_M\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"NTFS\"] = 10] = \"NTFS\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"MVS\"] = 11] = \"MVS\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"VSE\"] = 12] = \"VSE\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"ACORN_RISC\"] = 13] = \"ACORN_RISC\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"VFAT\"] = 14] = \"VFAT\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"ALT_MVS\"] = 15] = \"ALT_MVS\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"BEOS\"] = 16] = \"BEOS\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"TANDEM\"] = 17] = \"TANDEM\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"OS_400\"] = 18] = \"OS_400\";\n\t ExternalFileAttributeType[ExternalFileAttributeType[\"OSX\"] = 19] = \"OSX\";\n\t})(ExternalFileAttributeType || (ExternalFileAttributeType = {}));\n\t/**\n\t * 4.4.5\n\t */\n\tvar CompressionMethod;\n\t(function (CompressionMethod) {\n\t CompressionMethod[CompressionMethod[\"STORED\"] = 0] = \"STORED\";\n\t CompressionMethod[CompressionMethod[\"SHRUNK\"] = 1] = \"SHRUNK\";\n\t CompressionMethod[CompressionMethod[\"REDUCED_1\"] = 2] = \"REDUCED_1\";\n\t CompressionMethod[CompressionMethod[\"REDUCED_2\"] = 3] = \"REDUCED_2\";\n\t CompressionMethod[CompressionMethod[\"REDUCED_3\"] = 4] = \"REDUCED_3\";\n\t CompressionMethod[CompressionMethod[\"REDUCED_4\"] = 5] = \"REDUCED_4\";\n\t CompressionMethod[CompressionMethod[\"IMPLODE\"] = 6] = \"IMPLODE\";\n\t CompressionMethod[CompressionMethod[\"DEFLATE\"] = 8] = \"DEFLATE\";\n\t CompressionMethod[CompressionMethod[\"DEFLATE64\"] = 9] = \"DEFLATE64\";\n\t CompressionMethod[CompressionMethod[\"TERSE_OLD\"] = 10] = \"TERSE_OLD\";\n\t CompressionMethod[CompressionMethod[\"BZIP2\"] = 12] = \"BZIP2\";\n\t CompressionMethod[CompressionMethod[\"LZMA\"] = 14] = \"LZMA\";\n\t CompressionMethod[CompressionMethod[\"TERSE_NEW\"] = 18] = \"TERSE_NEW\";\n\t CompressionMethod[CompressionMethod[\"LZ77\"] = 19] = \"LZ77\";\n\t CompressionMethod[CompressionMethod[\"WAVPACK\"] = 97] = \"WAVPACK\";\n\t CompressionMethod[CompressionMethod[\"PPMD\"] = 98] = \"PPMD\"; // PPMd version I, Rev 1\n\t})(CompressionMethod || (CompressionMethod = {}));\n\t/**\n\t * Converts the input time and date in MS-DOS format into a JavaScript Date\n\t * object.\n\t * @hidden\n\t */\n\tfunction msdos2date(time, date) {\n\t // MS-DOS Date\n\t // |0 0 0 0 0|0 0 0 0|0 0 0 0 0 0 0\n\t // D (1-31) M (1-23) Y (from 1980)\n\t var day = date & 0x1F;\n\t // JS date is 0-indexed, DOS is 1-indexed.\n\t var month = ((date >> 5) & 0xF) - 1;\n\t var year = (date >> 9) + 1980;\n\t // MS DOS Time\n\t // |0 0 0 0 0|0 0 0 0 0 0|0 0 0 0 0\n\t // Second Minute Hour\n\t var second = time & 0x1F;\n\t var minute = (time >> 5) & 0x3F;\n\t var hour = time >> 11;\n\t return new Date(year, month, day, hour, minute, second);\n\t}\n\t/**\n\t * Safely returns the string from the buffer, even if it is 0 bytes long.\n\t * (Normally, calling toString() on a buffer with start === end causes an\n\t * exception).\n\t * @hidden\n\t */\n\tfunction safeToString(buff, useUTF8, start, length) {\n\t if (length === 0) {\n\t return \"\";\n\t }\n\t else if (useUTF8) {\n\t return buff.toString('utf8', start, start + length);\n\t }\n\t else {\n\t return ExtendedASCII.byte2str(buff.slice(start, start + length));\n\t }\n\t}\n\t/*\n\t 4.3.6 Overall .ZIP file format:\n\t\n\t [local file header 1]\n\t [encryption header 1]\n\t [file data 1]\n\t [data descriptor 1]\n\t .\n\t .\n\t .\n\t [local file header n]\n\t [encryption header n]\n\t [file data n]\n\t [data descriptor n]\n\t [archive decryption header]\n\t [archive extra data record]\n\t [central directory header 1]\n\t .\n\t .\n\t .\n\t [central directory header n]\n\t [zip64 end of central directory record]\n\t [zip64 end of central directory locator]\n\t [end of central directory record]\n\t*/\n\t/**\n\t * 4.3.7 Local file header:\n\t *\n\t * local file header signature 4 bytes (0x04034b50)\n\t * version needed to extract 2 bytes\n\t * general purpose bit flag 2 bytes\n\t * compression method 2 bytes\n\t * last mod file time 2 bytes\n\t * last mod file date 2 bytes\n\t * crc-32 4 bytes\n\t * compressed size 4 bytes\n\t * uncompressed size 4 bytes\n\t * file name length 2 bytes\n\t * extra field length 2 bytes\n\t *\n\t * file name (variable size)\n\t * extra field (variable size)\n\t */\n\tvar FileHeader = function FileHeader(data) {\n\t this.data = data;\n\t if (data.readUInt32LE(0) !== 0x04034b50) {\n\t throw new ApiError(ErrorCode.EINVAL, \"Invalid Zip file: Local file header has invalid signature: \" + this.data.readUInt32LE(0));\n\t }\n\t };\n\t FileHeader.prototype.versionNeeded = function versionNeeded () { return this.data.readUInt16LE(4); };\n\t FileHeader.prototype.flags = function flags () { return this.data.readUInt16LE(6); };\n\t FileHeader.prototype.compressionMethod = function compressionMethod () { return this.data.readUInt16LE(8); };\n\t FileHeader.prototype.lastModFileTime = function lastModFileTime () {\n\t // Time and date is in MS-DOS format.\n\t return msdos2date(this.data.readUInt16LE(10), this.data.readUInt16LE(12));\n\t };\n\t FileHeader.prototype.rawLastModFileTime = function rawLastModFileTime () {\n\t return this.data.readUInt32LE(10);\n\t };\n\t FileHeader.prototype.crc32 = function crc32 () { return this.data.readUInt32LE(14); };\n\t /**\n\t * These two values are COMPLETELY USELESS.\n\t *\n\t * Section 4.4.9:\n\t *If bit 3 of the general purpose bit flag is set,\n\t *these fields are set to zero in the local header and the\n\t *correct values are put in the data descriptor and\n\t *in the central directory.\n\t *\n\t * So we'll just use the central directory's values.\n\t */\n\t // public compressedSize(): number { return this.data.readUInt32LE(18); }\n\t // public uncompressedSize(): number { return this.data.readUInt32LE(22); }\n\t FileHeader.prototype.fileNameLength = function fileNameLength () { return this.data.readUInt16LE(26); };\n\t FileHeader.prototype.extraFieldLength = function extraFieldLength () { return this.data.readUInt16LE(28); };\n\t FileHeader.prototype.fileName = function fileName () {\n\t return safeToString(this.data, this.useUTF8(), 30, this.fileNameLength());\n\t };\n\t FileHeader.prototype.extraField = function extraField () {\n\t var start = 30 + this.fileNameLength();\n\t return this.data.slice(start, start + this.extraFieldLength());\n\t };\n\t FileHeader.prototype.totalSize = function totalSize () { return 30 + this.fileNameLength() + this.extraFieldLength(); };\n\t FileHeader.prototype.useUTF8 = function useUTF8 () { return (this.flags() & 0x800) === 0x800; };\n\t/**\n\t * 4.3.8 File data\n\t *\n\t * Immediately following the local header for a file\n\t * SHOULD be placed the compressed or stored data for the file.\n\t * If the file is encrypted, the encryption header for the file\n\t * SHOULD be placed after the local header and before the file\n\t * data. The series of [local file header][encryption header]\n\t * [file data][data descriptor] repeats for each file in the\n\t * .ZIP archive.\n\t *\n\t * Zero-byte files, directories, and other file types that\n\t * contain no content MUST not include file data.\n\t */\n\tvar FileData = function FileData(header, record, data) {\n\t this.header = header;\n\t this.record = record;\n\t this.data = data;\n\t };\n\t FileData.prototype.decompress = function decompress () {\n\t // Check the compression\n\t var compressionMethod = this.header.compressionMethod();\n\t var fcn = decompressionMethods[compressionMethod];\n\t if (fcn) {\n\t return fcn(this.data, this.record.compressedSize(), this.record.uncompressedSize(), this.record.flag());\n\t }\n\t else {\n\t var name = CompressionMethod[compressionMethod];\n\t if (!name) {\n\t name = \"Unknown: \" + compressionMethod;\n\t }\n\t throw new ApiError(ErrorCode.EINVAL, (\"Invalid compression method on file '\" + (this.header.fileName()) + \"': \" + name));\n\t }\n\t };\n\t FileData.prototype.getHeader = function getHeader () {\n\t return this.header;\n\t };\n\t FileData.prototype.getRecord = function getRecord () {\n\t return this.record;\n\t };\n\t FileData.prototype.getRawData = function getRawData () {\n\t return this.data;\n\t };\n\t/**\n\t * 4.3.9 Data descriptor:\n\t *\n\t * crc-32 4 bytes\n\t * compressed size 4 bytes\n\t * uncompressed size 4 bytes\n\t */\n\tvar DataDescriptor = function DataDescriptor(data) {\n\t this.data = data;\n\t };\n\t DataDescriptor.prototype.crc32 = function crc32 () { return this.data.readUInt32LE(0); };\n\t DataDescriptor.prototype.compressedSize = function compressedSize () { return this.data.readUInt32LE(4); };\n\t DataDescriptor.prototype.uncompressedSize = function uncompressedSize () { return this.data.readUInt32LE(8); };\n\t/*\n\t` 4.3.10 Archive decryption header:\n\t\n\t 4.3.10.1 The Archive Decryption Header is introduced in version 6.2\n\t of the ZIP format specification. This record exists in support\n\t of the Central Directory Encryption Feature implemented as part of\n\t the Strong Encryption Specification as described in this document.\n\t When the Central Directory Structure is encrypted, this decryption\n\t header MUST precede the encrypted data segment.\n\t */\n\t/**\n\t * 4.3.11 Archive extra data record:\n\t *\n\t * archive extra data signature 4 bytes (0x08064b50)\n\t * extra field length 4 bytes\n\t * extra field data (variable size)\n\t *\n\t * 4.3.11.1 The Archive Extra Data Record is introduced in version 6.2\n\t * of the ZIP format specification. This record MAY be used in support\n\t * of the Central Directory Encryption Feature implemented as part of\n\t * the Strong Encryption Specification as described in this document.\n\t * When present, this record MUST immediately precede the central\n\t * directory data structure.\n\t */\n\tvar ArchiveExtraDataRecord = function ArchiveExtraDataRecord(data) {\n\t this.data = data;\n\t if (this.data.readUInt32LE(0) !== 0x08064b50) {\n\t throw new ApiError(ErrorCode.EINVAL, \"Invalid archive extra data record signature: \" + this.data.readUInt32LE(0));\n\t }\n\t };\n\t ArchiveExtraDataRecord.prototype.length = function length () { return this.data.readUInt32LE(4); };\n\t ArchiveExtraDataRecord.prototype.extraFieldData = function extraFieldData () { return this.data.slice(8, 8 + this.length()); };\n\t/**\n\t * 4.3.13 Digital signature:\n\t *\n\t * header signature 4 bytes (0x05054b50)\n\t * size of data 2 bytes\n\t * signature data (variable size)\n\t *\n\t * With the introduction of the Central Directory Encryption\n\t * feature in version 6.2 of this specification, the Central\n\t * Directory Structure MAY be stored both compressed and encrypted.\n\t * Although not required, it is assumed when encrypting the\n\t * Central Directory Structure, that it will be compressed\n\t * for greater storage efficiency. Information on the\n\t * Central Directory Encryption feature can be found in the section\n\t * describing the Strong Encryption Specification. The Digital\n\t * Signature record will be neither compressed nor encrypted.\n\t */\n\tvar DigitalSignature = function DigitalSignature(data) {\n\t this.data = data;\n\t if (this.data.readUInt32LE(0) !== 0x05054b50) {\n\t throw new ApiError(ErrorCode.EINVAL, \"Invalid digital signature signature: \" + this.data.readUInt32LE(0));\n\t }\n\t };\n\t DigitalSignature.prototype.size = function size () { return this.data.readUInt16LE(4); };\n\t DigitalSignature.prototype.signatureData = function signatureData () { return this.data.slice(6, 6 + this.size()); };\n\t/**\n\t * 4.3.12 Central directory structure:\n\t *\n\t * central file header signature 4 bytes (0x02014b50)\n\t * version made by 2 bytes\n\t * version needed to extract 2 bytes\n\t * general purpose bit flag 2 bytes\n\t * compression method 2 bytes\n\t * last mod file time 2 bytes\n\t * last mod file date 2 bytes\n\t * crc-32 4 bytes\n\t * compressed size 4 bytes\n\t * uncompressed size 4 bytes\n\t * file name length 2 bytes\n\t * extra field length 2 bytes\n\t * file comment length 2 bytes\n\t * disk number start 2 bytes\n\t * internal file attributes 2 bytes\n\t * external file attributes 4 bytes\n\t * relative offset of local header 4 bytes\n\t *\n\t * file name (variable size)\n\t * extra field (variable size)\n\t * file comment (variable size)\n\t */\n\tvar CentralDirectory = function CentralDirectory(zipData, data) {\n\t this.zipData = zipData;\n\t this.data = data;\n\t // Sanity check.\n\t if (this.data.readUInt32LE(0) !== 0x02014b50) {\n\t throw new ApiError(ErrorCode.EINVAL, (\"Invalid Zip file: Central directory record has invalid signature: \" + (this.data.readUInt32LE(0))));\n\t }\n\t this._filename = this.produceFilename();\n\t };\n\t CentralDirectory.prototype.versionMadeBy = function versionMadeBy () { return this.data.readUInt16LE(4); };\n\t CentralDirectory.prototype.versionNeeded = function versionNeeded () { return this.data.readUInt16LE(6); };\n\t CentralDirectory.prototype.flag = function flag () { return this.data.readUInt16LE(8); };\n\t CentralDirectory.prototype.compressionMethod = function compressionMethod () { return this.data.readUInt16LE(10); };\n\t CentralDirectory.prototype.lastModFileTime = function lastModFileTime () {\n\t // Time and date is in MS-DOS format.\n\t return msdos2date(this.data.readUInt16LE(12), this.data.readUInt16LE(14));\n\t };\n\t CentralDirectory.prototype.rawLastModFileTime = function rawLastModFileTime () {\n\t return this.data.readUInt32LE(12);\n\t };\n\t CentralDirectory.prototype.crc32 = function crc32 () { return this.data.readUInt32LE(16); };\n\t CentralDirectory.prototype.compressedSize = function compressedSize () { return this.data.readUInt32LE(20); };\n\t CentralDirectory.prototype.uncompressedSize = function uncompressedSize () { return this.data.readUInt32LE(24); };\n\t CentralDirectory.prototype.fileNameLength = function fileNameLength () { return this.data.readUInt16LE(28); };\n\t CentralDirectory.prototype.extraFieldLength = function extraFieldLength () { return this.data.readUInt16LE(30); };\n\t CentralDirectory.prototype.fileCommentLength = function fileCommentLength () { return this.data.readUInt16LE(32); };\n\t CentralDirectory.prototype.diskNumberStart = function diskNumberStart () { return this.data.readUInt16LE(34); };\n\t CentralDirectory.prototype.internalAttributes = function internalAttributes () { return this.data.readUInt16LE(36); };\n\t CentralDirectory.prototype.externalAttributes = function externalAttributes () { return this.data.readUInt32LE(38); };\n\t CentralDirectory.prototype.headerRelativeOffset = function headerRelativeOffset () { return this.data.readUInt32LE(42); };\n\t CentralDirectory.prototype.produceFilename = function produceFilename () {\n\t /*\n\t 4.4.17.1 claims:\n\t * All slashes are forward ('/') slashes.\n\t * Filename doesn't begin with a slash.\n\t * No drive letters or any nonsense like that.\n\t * If filename is missing, the input came from standard input.\n\t \n\t Unfortunately, this isn't true in practice. Some Windows zip utilities use\n\t a backslash here, but the correct Unix-style path in file headers.\n\t \n\t To avoid seeking all over the file to recover the known-good filenames\n\t from file headers, we simply convert '/' to '\\' here.\n\t */\n\t var fileName = safeToString(this.data, this.useUTF8(), 46, this.fileNameLength());\n\t return fileName.replace(/\\\\/g, \"/\");\n\t };\n\t CentralDirectory.prototype.fileName = function fileName () {\n\t return this._filename;\n\t };\n\t CentralDirectory.prototype.rawFileName = function rawFileName () {\n\t return this.data.slice(46, 46 + this.fileNameLength());\n\t };\n\t CentralDirectory.prototype.extraField = function extraField () {\n\t var start = 44 + this.fileNameLength();\n\t return this.data.slice(start, start + this.extraFieldLength());\n\t };\n\t CentralDirectory.prototype.fileComment = function fileComment () {\n\t var start = 46 + this.fileNameLength() + this.extraFieldLength();\n\t return safeToString(this.data, this.useUTF8(), start, this.fileCommentLength());\n\t };\n\t CentralDirectory.prototype.rawFileComment = function rawFileComment () {\n\t var start = 46 + this.fileNameLength() + this.extraFieldLength();\n\t return this.data.slice(start, start + this.fileCommentLength());\n\t };\n\t CentralDirectory.prototype.totalSize = function totalSize () {\n\t return 46 + this.fileNameLength() + this.extraFieldLength() + this.fileCommentLength();\n\t };\n\t CentralDirectory.prototype.isDirectory = function isDirectory () {\n\t // NOTE: This assumes that the zip file implementation uses the lower byte\n\t // of external attributes for DOS attributes for\n\t // backwards-compatibility. This is not mandated, but appears to be\n\t // commonplace.\n\t // According to the spec, the layout of external attributes is\n\t // platform-dependent.\n\t // If that fails, we also check if the name of the file ends in '/',\n\t // which is what Java's ZipFile implementation does.\n\t var fileName = this.fileName();\n\t return (this.externalAttributes() & 0x10 ? true : false) || (fileName.charAt(fileName.length - 1) === '/');\n\t };\n\t CentralDirectory.prototype.isFile = function isFile () { return !this.isDirectory(); };\n\t CentralDirectory.prototype.useUTF8 = function useUTF8 () { return (this.flag() & 0x800) === 0x800; };\n\t CentralDirectory.prototype.isEncrypted = function isEncrypted () { return (this.flag() & 0x1) === 0x1; };\n\t CentralDirectory.prototype.getFileData = function getFileData () {\n\t // Need to grab the header before we can figure out where the actual\n\t // compressed data starts.\n\t var start = this.headerRelativeOffset();\n\t var header = new FileHeader(this.zipData.slice(start));\n\t return new FileData(header, this, this.zipData.slice(start + header.totalSize()));\n\t };\n\t CentralDirectory.prototype.getData = function getData () {\n\t return this.getFileData().decompress();\n\t };\n\t CentralDirectory.prototype.getRawData = function getRawData () {\n\t return this.getFileData().getRawData();\n\t };\n\t CentralDirectory.prototype.getStats = function getStats () {\n\t return new Stats(FileType.FILE, this.uncompressedSize(), 0x16D, new Date(), this.lastModFileTime());\n\t };\n\t/**\n\t * 4.3.16: end of central directory record\n\t * end of central dir signature 4 bytes (0x06054b50)\n\t * number of this disk 2 bytes\n\t * number of the disk with the\n\t * start of the central directory 2 bytes\n\t * total number of entries in the\n\t * central directory on this disk 2 bytes\n\t * total number of entries in\n\t * the central directory 2 bytes\n\t * size of the central directory 4 bytes\n\t * offset of start of central\n\t * directory with respect to\n\t * the starting disk number 4 bytes\n\t * .ZIP file comment length 2 bytes\n\t * .ZIP file comment (variable size)\n\t */\n\tvar EndOfCentralDirectory = function EndOfCentralDirectory(data) {\n\t this.data = data;\n\t if (this.data.readUInt32LE(0) !== 0x06054b50) {\n\t throw new ApiError(ErrorCode.EINVAL, (\"Invalid Zip file: End of central directory record has invalid signature: \" + (this.data.readUInt32LE(0))));\n\t }\n\t };\n\t EndOfCentralDirectory.prototype.diskNumber = function diskNumber () { return this.data.readUInt16LE(4); };\n\t EndOfCentralDirectory.prototype.cdDiskNumber = function cdDiskNumber () { return this.data.readUInt16LE(6); };\n\t EndOfCentralDirectory.prototype.cdDiskEntryCount = function cdDiskEntryCount () { return this.data.readUInt16LE(8); };\n\t EndOfCentralDirectory.prototype.cdTotalEntryCount = function cdTotalEntryCount () { return this.data.readUInt16LE(10); };\n\t EndOfCentralDirectory.prototype.cdSize = function cdSize () { return this.data.readUInt32LE(12); };\n\t EndOfCentralDirectory.prototype.cdOffset = function cdOffset () { return this.data.readUInt32LE(16); };\n\t EndOfCentralDirectory.prototype.cdZipCommentLength = function cdZipCommentLength () { return this.data.readUInt16LE(20); };\n\t EndOfCentralDirectory.prototype.cdZipComment = function cdZipComment () {\n\t // Assuming UTF-8. The specification doesn't specify.\n\t return safeToString(this.data, true, 22, this.cdZipCommentLength());\n\t };\n\t EndOfCentralDirectory.prototype.rawCdZipComment = function rawCdZipComment () {\n\t return this.data.slice(22, 22 + this.cdZipCommentLength());\n\t };\n\t/**\n\t * Contains the table of contents of a Zip file.\n\t */\n\tvar ZipTOC = function ZipTOC(index, directoryEntries, eocd, data) {\n\t this.index = index;\n\t this.directoryEntries = directoryEntries;\n\t this.eocd = eocd;\n\t this.data = data;\n\t };\n\t/**\n\t * Zip file-backed filesystem\n\t * Implemented according to the standard:\n\t * http://www.pkware.com/documents/casestudies/APPNOTE.TXT\n\t *\n\t * While there are a few zip libraries for JavaScript (e.g. JSZip and zip.js),\n\t * they are not a good match for BrowserFS. In particular, these libraries\n\t * perform a lot of unneeded data copying, and eagerly decompress every file\n\t * in the zip file upon loading to check the CRC32. They also eagerly decode\n\t * strings. Furthermore, these libraries duplicate functionality already present\n\t * in BrowserFS (e.g. UTF-8 decoding and binary data manipulation).\n\t *\n\t * This filesystem takes advantage of BrowserFS's Buffer implementation, which\n\t * efficiently represents the zip file in memory (in both ArrayBuffer-enabled\n\t * browsers *and* non-ArrayBuffer browsers), and which can neatly be 'sliced'\n\t * without copying data. Each struct defined in the standard is represented with\n\t * a buffer slice pointing to an offset in the zip file, and has getters for\n\t * each field. As we anticipate that this data will not be read often, we choose\n\t * not to store each struct field in the JavaScript object; instead, to reduce\n\t * memory consumption, we retrieve it directly from the binary data each time it\n\t * is requested.\n\t *\n\t * When the filesystem is instantiated, we determine the directory structure\n\t * of the zip file as quickly as possible. We lazily decompress and check the\n\t * CRC32 of files. We do not cache decompressed files; if this is a desired\n\t * feature, it is best implemented as a generic file system wrapper that can\n\t * cache data from arbitrary file systems.\n\t *\n\t * For inflation, we use `pako`'s implementation:\n\t * https://github.com/nodeca/pako\n\t *\n\t * Current limitations:\n\t * * No encryption.\n\t * * No ZIP64 support.\n\t * * Read-only.\n\t * Write support would require that we:\n\t * - Keep track of changed/new files.\n\t * - Compress changed files, and generate appropriate metadata for each.\n\t * - Update file offsets for other files in the zip file.\n\t * - Stream it out to a location.\n\t * This isn't that bad, so we might do this at a later date.\n\t */\n\tvar ZipFS = (function (SynchronousFileSystem$$1) {\n\t function ZipFS(input, name, deprecateMsg) {\n\t if ( name === void 0 ) name = '';\n\t if ( deprecateMsg === void 0 ) deprecateMsg = true;\n\t\n\t SynchronousFileSystem$$1.call(this);\n\t this.name = name;\n\t this._index = new FileIndex();\n\t this._directoryEntries = [];\n\t this._eocd = null;\n\t deprecationMessage(deprecateMsg, ZipFS.Name, { zipData: \"zip data as a Buffer\", name: name });\n\t if (input instanceof ZipTOC) {\n\t this._index = input.index;\n\t this._directoryEntries = input.directoryEntries;\n\t this._eocd = input.eocd;\n\t this.data = input.data;\n\t }\n\t else {\n\t this.data = input;\n\t this.populateIndex();\n\t }\n\t }\n\t\n\t if ( SynchronousFileSystem$$1 ) ZipFS.__proto__ = SynchronousFileSystem$$1;\n\t ZipFS.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype );\n\t ZipFS.prototype.constructor = ZipFS;\n\t /**\n\t * Constructs a ZipFS instance with the given options.\n\t */\n\t ZipFS.Create = function Create (opts, cb) {\n\t try {\n\t ZipFS.computeIndex(opts.zipData, function (zipTOC) {\n\t var fs = new ZipFS(zipTOC, opts.name, false);\n\t cb(null, fs);\n\t }, false);\n\t }\n\t catch (e) {\n\t cb(e);\n\t }\n\t };\n\t ZipFS.isAvailable = function isAvailable () { return true; };\n\t ZipFS.RegisterDecompressionMethod = function RegisterDecompressionMethod (m, fcn) {\n\t decompressionMethods[m] = fcn;\n\t };\n\t /**\n\t * **Deprecated. Please use ZipFS.Create() method instead.**\n\t */\n\t ZipFS.computeIndex = function computeIndex (data, cb, deprecateMsg) {\n\t if ( deprecateMsg === void 0 ) deprecateMsg = true;\n\t\n\t // TODO: Refactor to plumb errors through. Right now, they throw.\n\t if (deprecateMsg) {\n\t console.warn(\"[ZipFS] ZipFS.computeIndex is now deprecated, and will be removed in the next major release. Please update your code to use 'ZipFS.Create({ zipData: zip file as a Buffer}, cb)' instead.\");\n\t }\n\t var index = new FileIndex();\n\t var eocd = ZipFS.getEOCD(data);\n\t if (eocd.diskNumber() !== eocd.cdDiskNumber()) {\n\t throw new ApiError(ErrorCode.EINVAL, \"ZipFS does not support spanned zip files.\");\n\t }\n\t var cdPtr = eocd.cdOffset();\n\t if (cdPtr === 0xFFFFFFFF) {\n\t throw new ApiError(ErrorCode.EINVAL, \"ZipFS does not support Zip64.\");\n\t }\n\t var cdEnd = cdPtr + eocd.cdSize();\n\t ZipFS.computeIndexResponsive(data, index, cdPtr, cdEnd, cb, [], eocd);\n\t };\n\t /**\n\t * Locates the end of central directory record at the end of the file.\n\t * Throws an exception if it cannot be found.\n\t */\n\t ZipFS.getEOCD = function getEOCD (data) {\n\t // Unfortunately, the comment is variable size and up to 64K in size.\n\t // We assume that the magic signature does not appear in the comment, and\n\t // in the bytes between the comment and the signature. Other ZIP\n\t // implementations make this same assumption, since the alternative is to\n\t // read thread every entry in the file to get to it. :(\n\t // These are *negative* offsets from the end of the file.\n\t var startOffset = 22;\n\t var endOffset = Math.min(startOffset + 0xFFFF, data.length - 1);\n\t // There's not even a byte alignment guarantee on the comment so we need to\n\t // search byte by byte. *grumble grumble*\n\t for (var i = startOffset; i < endOffset; i++) {\n\t // Magic number: EOCD Signature\n\t if (data.readUInt32LE(data.length - i) === 0x06054b50) {\n\t return new EndOfCentralDirectory(data.slice(data.length - i));\n\t }\n\t }\n\t throw new ApiError(ErrorCode.EINVAL, \"Invalid ZIP file: Could not locate End of Central Directory signature.\");\n\t };\n\t ZipFS.addToIndex = function addToIndex (cd, index) {\n\t // Paths must be absolute, yet zip file paths are always relative to the\n\t // zip root. So we append '/' and call it a day.\n\t var filename = cd.fileName();\n\t if (filename.charAt(0) === '/') {\n\t throw new Error(\"WHY IS THIS ABSOLUTE\");\n\t }\n\t // XXX: For the file index, strip the trailing '/'.\n\t if (filename.charAt(filename.length - 1) === '/') {\n\t filename = filename.substr(0, filename.length - 1);\n\t }\n\t if (cd.isDirectory()) {\n\t index.addPathFast('/' + filename, new DirInode(cd));\n\t }\n\t else {\n\t index.addPathFast('/' + filename, new FileInode(cd));\n\t }\n\t };\n\t ZipFS.computeIndexResponsive = function computeIndexResponsive (data, index, cdPtr, cdEnd, cb, cdEntries, eocd) {\n\t if (cdPtr < cdEnd) {\n\t var count = 0;\n\t while (count++ < 200 && cdPtr < cdEnd) {\n\t var cd = new CentralDirectory(data, data.slice(cdPtr));\n\t ZipFS.addToIndex(cd, index);\n\t cdPtr += cd.totalSize();\n\t cdEntries.push(cd);\n\t }\n\t setImmediate$3(function () {\n\t ZipFS.computeIndexResponsive(data, index, cdPtr, cdEnd, cb, cdEntries, eocd);\n\t });\n\t }\n\t else {\n\t cb(new ZipTOC(index, cdEntries, eocd, data));\n\t }\n\t };\n\t ZipFS.prototype.getName = function getName () {\n\t return ZipFS.Name + (this.name !== '' ? (\" \" + (this.name)) : '');\n\t };\n\t /**\n\t * Get the CentralDirectory object for the given path.\n\t */\n\t ZipFS.prototype.getCentralDirectoryEntry = function getCentralDirectoryEntry (path$$1) {\n\t var inode = this._index.getInode(path$$1);\n\t if (inode === null) {\n\t throw ApiError.ENOENT(path$$1);\n\t }\n\t if (isFileInode(inode)) {\n\t return inode.getData();\n\t }\n\t else if (isDirInode(inode)) {\n\t return inode.getData();\n\t }\n\t else {\n\t // Should never occur.\n\t throw ApiError.EPERM((\"Invalid inode: \" + inode));\n\t }\n\t };\n\t ZipFS.prototype.getCentralDirectoryEntryAt = function getCentralDirectoryEntryAt (index) {\n\t var dirEntry = this._directoryEntries[index];\n\t if (!dirEntry) {\n\t throw new RangeError((\"Invalid directory index: \" + index + \".\"));\n\t }\n\t return dirEntry;\n\t };\n\t ZipFS.prototype.getNumberOfCentralDirectoryEntries = function getNumberOfCentralDirectoryEntries () {\n\t return this._directoryEntries.length;\n\t };\n\t ZipFS.prototype.getEndOfCentralDirectory = function getEndOfCentralDirectory () {\n\t return this._eocd;\n\t };\n\t ZipFS.prototype.diskSpace = function diskSpace (path$$1, cb) {\n\t // Read-only file system.\n\t cb(this.data.length, 0);\n\t };\n\t ZipFS.prototype.isReadOnly = function isReadOnly () {\n\t return true;\n\t };\n\t ZipFS.prototype.supportsLinks = function supportsLinks () {\n\t return false;\n\t };\n\t ZipFS.prototype.supportsProps = function supportsProps () {\n\t return false;\n\t };\n\t ZipFS.prototype.supportsSynch = function supportsSynch () {\n\t return true;\n\t };\n\t ZipFS.prototype.statSync = function statSync (path$$1, isLstat) {\n\t var inode = this._index.getInode(path$$1);\n\t if (inode === null) {\n\t throw ApiError.ENOENT(path$$1);\n\t }\n\t var stats;\n\t if (isFileInode(inode)) {\n\t stats = inode.getData().getStats();\n\t }\n\t else if (isDirInode(inode)) {\n\t stats = inode.getStats();\n\t }\n\t else {\n\t throw new ApiError(ErrorCode.EINVAL, \"Invalid inode.\");\n\t }\n\t return stats;\n\t };\n\t ZipFS.prototype.openSync = function openSync (path$$1, flags, mode) {\n\t // INVARIANT: Cannot write to RO file systems.\n\t if (flags.isWriteable()) {\n\t throw new ApiError(ErrorCode.EPERM, path$$1);\n\t }\n\t // Check if the path exists, and is a file.\n\t var inode = this._index.getInode(path$$1);\n\t if (!inode) {\n\t throw ApiError.ENOENT(path$$1);\n\t }\n\t else if (isFileInode(inode)) {\n\t var cdRecord = inode.getData();\n\t var stats = cdRecord.getStats();\n\t switch (flags.pathExistsAction()) {\n\t case ActionType.THROW_EXCEPTION:\n\t case ActionType.TRUNCATE_FILE:\n\t throw ApiError.EEXIST(path$$1);\n\t case ActionType.NOP:\n\t return new NoSyncFile(this, path$$1, flags, stats, cdRecord.getData());\n\t default:\n\t throw new ApiError(ErrorCode.EINVAL, 'Invalid FileMode object.');\n\t }\n\t }\n\t else {\n\t throw ApiError.EISDIR(path$$1);\n\t }\n\t };\n\t ZipFS.prototype.readdirSync = function readdirSync (path$$1) {\n\t // Check if it exists.\n\t var inode = this._index.getInode(path$$1);\n\t if (!inode) {\n\t throw ApiError.ENOENT(path$$1);\n\t }\n\t else if (isDirInode(inode)) {\n\t return inode.getListing();\n\t }\n\t else {\n\t throw ApiError.ENOTDIR(path$$1);\n\t }\n\t };\n\t /**\n\t * Specially-optimized readfile.\n\t */\n\t ZipFS.prototype.readFileSync = function readFileSync (fname, encoding, flag) {\n\t // Get file.\n\t var fd = this.openSync(fname, flag, 0x1a4);\n\t try {\n\t var fdCast = fd;\n\t var fdBuff = fdCast.getBuffer();\n\t if (encoding === null) {\n\t return copyingSlice(fdBuff);\n\t }\n\t return fdBuff.toString(encoding);\n\t }\n\t finally {\n\t fd.closeSync();\n\t }\n\t };\n\t ZipFS.prototype.populateIndex = function populateIndex () {\n\t var this$1 = this;\n\t\n\t var eocd = this._eocd = ZipFS.getEOCD(this.data);\n\t if (eocd.diskNumber() !== eocd.cdDiskNumber()) {\n\t throw new ApiError(ErrorCode.EINVAL, \"ZipFS does not support spanned zip files.\");\n\t }\n\t var cdPtr = eocd.cdOffset();\n\t if (cdPtr === 0xFFFFFFFF) {\n\t throw new ApiError(ErrorCode.EINVAL, \"ZipFS does not support Zip64.\");\n\t }\n\t var cdEnd = cdPtr + eocd.cdSize();\n\t while (cdPtr < cdEnd) {\n\t var cd = new CentralDirectory(this$1.data, this$1.data.slice(cdPtr));\n\t cdPtr += cd.totalSize();\n\t ZipFS.addToIndex(cd, this$1._index);\n\t this$1._directoryEntries.push(cd);\n\t }\n\t };\n\t\n\t return ZipFS;\n\t}(SynchronousFileSystem));\n\t\n\tZipFS.Name = \"ZipFS\";\n\tZipFS.Options = {\n\t zipData: {\n\t type: \"object\",\n\t description: \"The zip file as a Buffer object.\",\n\t validator: bufferValidator\n\t },\n\t name: {\n\t type: \"string\",\n\t optional: true,\n\t description: \"The name of the zip file (optional).\"\n\t }\n\t};\n\tZipFS.CompressionMethod = CompressionMethod;\n\tZipFS.RegisterDecompressionMethod(CompressionMethod.DEFLATE, function (data, compressedSize, uncompressedSize) {\n\t return arrayish2Buffer(inflateRaw(data.slice(0, compressedSize), { chunkSize: uncompressedSize }));\n\t});\n\tZipFS.RegisterDecompressionMethod(CompressionMethod.STORED, function (data, compressedSize, uncompressedSize) {\n\t return copyingSlice(data, 0, uncompressedSize);\n\t});\n\t\n\t/**\n\t * @hidden\n\t */\n\tvar rockRidgeIdentifier = \"IEEE_P1282\";\n\t/**\n\t * @hidden\n\t */\n\tfunction getASCIIString(data, startIndex, length) {\n\t return data.toString('ascii', startIndex, startIndex + length).trim();\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction getJolietString(data, startIndex, length) {\n\t if (length === 1) {\n\t // Special: Root, parent, current directory are still a single byte.\n\t return String.fromCharCode(data[startIndex]);\n\t }\n\t // UTF16-BE, which isn't natively supported by NodeJS Buffers.\n\t // Length should be even, but pessimistically floor just in case.\n\t var pairs = Math.floor(length / 2);\n\t var chars = new Array(pairs);\n\t for (var i = 0; i < pairs; i++) {\n\t var pos = startIndex + (i << 1);\n\t chars[i] = String.fromCharCode(data[pos + 1] | (data[pos] << 8));\n\t }\n\t return chars.join('');\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction getDate(data, startIndex) {\n\t var year = parseInt(getASCIIString(data, startIndex, 4), 10);\n\t var mon = parseInt(getASCIIString(data, startIndex + 4, 2), 10);\n\t var day = parseInt(getASCIIString(data, startIndex + 6, 2), 10);\n\t var hour = parseInt(getASCIIString(data, startIndex + 8, 2), 10);\n\t var min = parseInt(getASCIIString(data, startIndex + 10, 2), 10);\n\t var sec = parseInt(getASCIIString(data, startIndex + 12, 2), 10);\n\t var hundrethsSec = parseInt(getASCIIString(data, startIndex + 14, 2), 10);\n\t // Last is a time-zone offset, but JavaScript dates don't support time zones well.\n\t return new Date(year, mon, day, hour, min, sec, hundrethsSec * 100);\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction getShortFormDate(data, startIndex) {\n\t var yearsSince1900 = data[startIndex];\n\t var month = data[startIndex + 1];\n\t var day = data[startIndex + 2];\n\t var hour = data[startIndex + 3];\n\t var minute = data[startIndex + 4];\n\t var second = data[startIndex + 5];\n\t // JavaScript's Date support isn't so great; ignore timezone.\n\t // const offsetFromGMT = this._data[24];\n\t return new Date(yearsSince1900, month - 1, day, hour, minute, second);\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction constructSystemUseEntry(bigData, i) {\n\t var data = bigData.slice(i);\n\t var sue = new SystemUseEntry(data);\n\t switch (sue.signatureWord()) {\n\t case 17221 /* CE */:\n\t return new CEEntry(data);\n\t case 20548 /* PD */:\n\t return new PDEntry(data);\n\t case 21328 /* SP */:\n\t return new SPEntry(data);\n\t case 21332 /* ST */:\n\t return new STEntry(data);\n\t case 17746 /* ER */:\n\t return new EREntry(data);\n\t case 17747 /* ES */:\n\t return new ESEntry(data);\n\t case 20568 /* PX */:\n\t return new PXEntry(data);\n\t case 20558 /* PN */:\n\t return new PNEntry(data);\n\t case 21324 /* SL */:\n\t return new SLEntry(data);\n\t case 20045 /* NM */:\n\t return new NMEntry(data);\n\t case 17228 /* CL */:\n\t return new CLEntry(data);\n\t case 20556 /* PL */:\n\t return new PLEntry(data);\n\t case 21061 /* RE */:\n\t return new REEntry(data);\n\t case 21574 /* TF */:\n\t return new TFEntry(data);\n\t case 21318 /* SF */:\n\t return new SFEntry(data);\n\t case 21074 /* RR */:\n\t return new RREntry(data);\n\t default:\n\t return sue;\n\t }\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction constructSystemUseEntries(data, i, len, isoData) {\n\t // If the remaining allocated space following the last recorded System Use Entry in a System\n\t // Use field or Continuation Area is less than four bytes long, it cannot contain a System\n\t // Use Entry and shall be ignored\n\t len = len - 4;\n\t var entries = new Array();\n\t while (i < len) {\n\t var entry = constructSystemUseEntry(data, i);\n\t var length = entry.length();\n\t if (length === 0) {\n\t // Invalid SU section; prevent infinite loop.\n\t return entries;\n\t }\n\t i += length;\n\t if (entry instanceof STEntry) {\n\t // ST indicates the end of entries.\n\t break;\n\t }\n\t if (entry instanceof CEEntry) {\n\t entries = entries.concat(entry.getEntries(isoData));\n\t }\n\t else {\n\t entries.push(entry);\n\t }\n\t }\n\t return entries;\n\t}\n\t/**\n\t * @hidden\n\t */\n\tvar VolumeDescriptor = function VolumeDescriptor(data) {\n\t this._data = data;\n\t};\n\tVolumeDescriptor.prototype.type = function type () {\n\t return this._data[0];\n\t};\n\tVolumeDescriptor.prototype.standardIdentifier = function standardIdentifier () {\n\t return getASCIIString(this._data, 1, 5);\n\t};\n\tVolumeDescriptor.prototype.version = function version () {\n\t return this._data[6];\n\t};\n\tVolumeDescriptor.prototype.data = function data () {\n\t return this._data.slice(7, 2048);\n\t};\n\t/**\n\t * @hidden\n\t */\n\tvar PrimaryOrSupplementaryVolumeDescriptor = (function (VolumeDescriptor) {\n\t function PrimaryOrSupplementaryVolumeDescriptor(data) {\n\t VolumeDescriptor.call(this, data);\n\t this._root = null;\n\t }\n\t\n\t if ( VolumeDescriptor ) PrimaryOrSupplementaryVolumeDescriptor.__proto__ = VolumeDescriptor;\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype = Object.create( VolumeDescriptor && VolumeDescriptor.prototype );\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.constructor = PrimaryOrSupplementaryVolumeDescriptor;\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.systemIdentifier = function systemIdentifier () {\n\t return this._getString32(8);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeIdentifier = function volumeIdentifier () {\n\t return this._getString32(40);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeSpaceSize = function volumeSpaceSize () {\n\t return this._data.readUInt32LE(80);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeSetSize = function volumeSetSize () {\n\t return this._data.readUInt16LE(120);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeSequenceNumber = function volumeSequenceNumber () {\n\t return this._data.readUInt16LE(124);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.logicalBlockSize = function logicalBlockSize () {\n\t return this._data.readUInt16LE(128);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.pathTableSize = function pathTableSize () {\n\t return this._data.readUInt32LE(132);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.locationOfTypeLPathTable = function locationOfTypeLPathTable () {\n\t return this._data.readUInt32LE(140);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.locationOfOptionalTypeLPathTable = function locationOfOptionalTypeLPathTable () {\n\t return this._data.readUInt32LE(144);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.locationOfTypeMPathTable = function locationOfTypeMPathTable () {\n\t return this._data.readUInt32BE(148);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.locationOfOptionalTypeMPathTable = function locationOfOptionalTypeMPathTable () {\n\t return this._data.readUInt32BE(152);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.rootDirectoryEntry = function rootDirectoryEntry (isoData) {\n\t if (this._root === null) {\n\t this._root = this._constructRootDirectoryRecord(this._data.slice(156));\n\t this._root.rootCheckForRockRidge(isoData);\n\t }\n\t return this._root;\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeSetIdentifier = function volumeSetIdentifier () {\n\t return this._getString(190, 128);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.publisherIdentifier = function publisherIdentifier () {\n\t return this._getString(318, 128);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.dataPreparerIdentifier = function dataPreparerIdentifier () {\n\t return this._getString(446, 128);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.applicationIdentifier = function applicationIdentifier () {\n\t return this._getString(574, 128);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.copyrightFileIdentifier = function copyrightFileIdentifier () {\n\t return this._getString(702, 38);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.abstractFileIdentifier = function abstractFileIdentifier () {\n\t return this._getString(740, 36);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.bibliographicFileIdentifier = function bibliographicFileIdentifier () {\n\t return this._getString(776, 37);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeCreationDate = function volumeCreationDate () {\n\t return getDate(this._data, 813);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeModificationDate = function volumeModificationDate () {\n\t return getDate(this._data, 830);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeExpirationDate = function volumeExpirationDate () {\n\t return getDate(this._data, 847);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeEffectiveDate = function volumeEffectiveDate () {\n\t return getDate(this._data, 864);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.fileStructureVersion = function fileStructureVersion () {\n\t return this._data[881];\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.applicationUsed = function applicationUsed () {\n\t return this._data.slice(883, 883 + 512);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype.reserved = function reserved () {\n\t return this._data.slice(1395, 1395 + 653);\n\t };\n\t PrimaryOrSupplementaryVolumeDescriptor.prototype._getString32 = function _getString32 (idx) {\n\t return this._getString(idx, 32);\n\t };\n\t\n\t return PrimaryOrSupplementaryVolumeDescriptor;\n\t}(VolumeDescriptor));\n\t/**\n\t * @hidden\n\t */\n\tvar PrimaryVolumeDescriptor = (function (PrimaryOrSupplementaryVolumeDescriptor) {\n\t function PrimaryVolumeDescriptor(data) {\n\t PrimaryOrSupplementaryVolumeDescriptor.call(this, data);\n\t if (this.type() !== 1 /* PrimaryVolumeDescriptor */) {\n\t throw new ApiError(ErrorCode.EIO, \"Invalid primary volume descriptor.\");\n\t }\n\t }\n\t\n\t if ( PrimaryOrSupplementaryVolumeDescriptor ) PrimaryVolumeDescriptor.__proto__ = PrimaryOrSupplementaryVolumeDescriptor;\n\t PrimaryVolumeDescriptor.prototype = Object.create( PrimaryOrSupplementaryVolumeDescriptor && PrimaryOrSupplementaryVolumeDescriptor.prototype );\n\t PrimaryVolumeDescriptor.prototype.constructor = PrimaryVolumeDescriptor;\n\t PrimaryVolumeDescriptor.prototype.name = function name () {\n\t return \"ISO9660\";\n\t };\n\t PrimaryVolumeDescriptor.prototype._constructRootDirectoryRecord = function _constructRootDirectoryRecord (data) {\n\t return new ISODirectoryRecord(data, -1);\n\t };\n\t PrimaryVolumeDescriptor.prototype._getString = function _getString (idx, len) {\n\t return this._getString(idx, len);\n\t };\n\t\n\t return PrimaryVolumeDescriptor;\n\t}(PrimaryOrSupplementaryVolumeDescriptor));\n\t/**\n\t * @hidden\n\t */\n\tvar SupplementaryVolumeDescriptor = (function (PrimaryOrSupplementaryVolumeDescriptor) {\n\t function SupplementaryVolumeDescriptor(data) {\n\t PrimaryOrSupplementaryVolumeDescriptor.call(this, data);\n\t if (this.type() !== 2 /* SupplementaryVolumeDescriptor */) {\n\t throw new ApiError(ErrorCode.EIO, \"Invalid supplementary volume descriptor.\");\n\t }\n\t var escapeSequence = this.escapeSequence();\n\t var third = escapeSequence[2];\n\t // Third character identifies what 'level' of the UCS specification to follow.\n\t // We ignore it.\n\t if (escapeSequence[0] !== 0x25 || escapeSequence[1] !== 0x2F ||\n\t (third !== 0x40 && third !== 0x43 && third !== 0x45)) {\n\t throw new ApiError(ErrorCode.EIO, (\"Unrecognized escape sequence for SupplementaryVolumeDescriptor: \" + (escapeSequence.toString())));\n\t }\n\t }\n\t\n\t if ( PrimaryOrSupplementaryVolumeDescriptor ) SupplementaryVolumeDescriptor.__proto__ = PrimaryOrSupplementaryVolumeDescriptor;\n\t SupplementaryVolumeDescriptor.prototype = Object.create( PrimaryOrSupplementaryVolumeDescriptor && PrimaryOrSupplementaryVolumeDescriptor.prototype );\n\t SupplementaryVolumeDescriptor.prototype.constructor = SupplementaryVolumeDescriptor;\n\t SupplementaryVolumeDescriptor.prototype.name = function name () {\n\t return \"Joliet\";\n\t };\n\t SupplementaryVolumeDescriptor.prototype.escapeSequence = function escapeSequence () {\n\t return this._data.slice(88, 120);\n\t };\n\t SupplementaryVolumeDescriptor.prototype._constructRootDirectoryRecord = function _constructRootDirectoryRecord (data) {\n\t return new JolietDirectoryRecord(data, -1);\n\t };\n\t SupplementaryVolumeDescriptor.prototype._getString = function _getString (idx, len) {\n\t return getJolietString(this._data, idx, len);\n\t };\n\t\n\t return SupplementaryVolumeDescriptor;\n\t}(PrimaryOrSupplementaryVolumeDescriptor));\n\t/**\n\t * @hidden\n\t */\n\tvar DirectoryRecord = function DirectoryRecord(data, rockRidgeOffset) {\n\t this._suEntries = null;\n\t this._fileOrDir = null;\n\t this._data = data;\n\t this._rockRidgeOffset = rockRidgeOffset;\n\t};\n\tDirectoryRecord.prototype.hasRockRidge = function hasRockRidge () {\n\t return this._rockRidgeOffset > -1;\n\t};\n\tDirectoryRecord.prototype.getRockRidgeOffset = function getRockRidgeOffset () {\n\t return this._rockRidgeOffset;\n\t};\n\t/**\n\t * !!ONLY VALID ON ROOT NODE!!\n\t * Checks if Rock Ridge is enabled, and sets the offset.\n\t */\n\tDirectoryRecord.prototype.rootCheckForRockRidge = function rootCheckForRockRidge (isoData) {\n\t var dir = this.getDirectory(isoData);\n\t this._rockRidgeOffset = dir.getDotEntry(isoData)._getRockRidgeOffset(isoData);\n\t if (this._rockRidgeOffset > -1) {\n\t // Wipe out directory. Start over with RR knowledge.\n\t this._fileOrDir = null;\n\t }\n\t};\n\tDirectoryRecord.prototype.length = function length () {\n\t return this._data[0];\n\t};\n\tDirectoryRecord.prototype.extendedAttributeRecordLength = function extendedAttributeRecordLength () {\n\t return this._data[1];\n\t};\n\tDirectoryRecord.prototype.lba = function lba () {\n\t return this._data.readUInt32LE(2) * 2048;\n\t};\n\tDirectoryRecord.prototype.dataLength = function dataLength () {\n\t return this._data.readUInt32LE(10);\n\t};\n\tDirectoryRecord.prototype.recordingDate = function recordingDate () {\n\t return getShortFormDate(this._data, 18);\n\t};\n\tDirectoryRecord.prototype.fileFlags = function fileFlags () {\n\t return this._data[25];\n\t};\n\tDirectoryRecord.prototype.fileUnitSize = function fileUnitSize () {\n\t return this._data[26];\n\t};\n\tDirectoryRecord.prototype.interleaveGapSize = function interleaveGapSize () {\n\t return this._data[27];\n\t};\n\tDirectoryRecord.prototype.volumeSequenceNumber = function volumeSequenceNumber () {\n\t return this._data.readUInt16LE(28);\n\t};\n\tDirectoryRecord.prototype.identifier = function identifier () {\n\t return this._getString(33, this._data[32]);\n\t};\n\tDirectoryRecord.prototype.fileName = function fileName (isoData) {\n\t if (this.hasRockRidge()) {\n\t var fn = this._rockRidgeFilename(isoData);\n\t if (fn !== null) {\n\t return fn;\n\t }\n\t }\n\t var ident = this.identifier();\n\t if (this.isDirectory(isoData)) {\n\t return ident;\n\t }\n\t // Files:\n\t // - MUST have 0x2E (.) separating the name from the extension\n\t // - MUST have 0x3B (;) separating the file name and extension from the version\n\t // Gets expanded to two-byte char in Unicode directory records.\n\t var versionSeparator = ident.indexOf(';');\n\t if (versionSeparator === -1) {\n\t // Some Joliet filenames lack the version separator, despite the standard\n\t // specifying that it should be there.\n\t return ident;\n\t }\n\t else if (ident[versionSeparator - 1] === '.') {\n\t // Empty extension. Do not include '.' in the filename.\n\t return ident.slice(0, versionSeparator - 1);\n\t }\n\t else {\n\t // Include up to version separator.\n\t return ident.slice(0, versionSeparator);\n\t }\n\t};\n\tDirectoryRecord.prototype.isDirectory = function isDirectory (isoData) {\n\t var rv = !!(this.fileFlags() & 2 /* Directory */);\n\t // If it lacks the Directory flag, it may still be a directory if we've exceeded the directory\n\t // depth limit. Rock Ridge marks these as files and adds a special attribute.\n\t if (!rv && this.hasRockRidge()) {\n\t rv = this.getSUEntries(isoData).filter(function (e) { return e instanceof CLEntry; }).length > 0;\n\t }\n\t return rv;\n\t};\n\tDirectoryRecord.prototype.isSymlink = function isSymlink (isoData) {\n\t return this.hasRockRidge() && this.getSUEntries(isoData).filter(function (e) { return e instanceof SLEntry; }).length > 0;\n\t};\n\tDirectoryRecord.prototype.getSymlinkPath = function getSymlinkPath (isoData) {\n\t var p = \"\";\n\t var entries = this.getSUEntries(isoData);\n\t var getStr = this._getGetString();\n\t for (var i = 0, list = entries; i < list.length; i += 1) {\n\t var entry = list[i];\n\t\n\t if (entry instanceof SLEntry) {\n\t var components = entry.componentRecords();\n\t for (var i$1 = 0, list$1 = components; i$1 < list$1.length; i$1 += 1) {\n\t var component = list$1[i$1];\n\t\n\t var flags = component.flags();\n\t if (flags & 2 /* CURRENT */) {\n\t p += \"./\";\n\t }\n\t else if (flags & 4 /* PARENT */) {\n\t p += \"../\";\n\t }\n\t else if (flags & 8 /* ROOT */) {\n\t p += \"/\";\n\t }\n\t else {\n\t p += component.content(getStr);\n\t if (!(flags & 1 /* CONTINUE */)) {\n\t p += '/';\n\t }\n\t }\n\t }\n\t if (!entry.continueFlag()) {\n\t // We are done with this link.\n\t break;\n\t }\n\t }\n\t }\n\t if (p.length > 1 && p[p.length - 1] === '/') {\n\t // Trim trailing '/'.\n\t return p.slice(0, p.length - 1);\n\t }\n\t else {\n\t return p;\n\t }\n\t};\n\tDirectoryRecord.prototype.getFile = function getFile (isoData) {\n\t if (this.isDirectory(isoData)) {\n\t throw new Error(\"Tried to get a File from a directory.\");\n\t }\n\t if (this._fileOrDir === null) {\n\t this._fileOrDir = isoData.slice(this.lba(), this.lba() + this.dataLength());\n\t }\n\t return this._fileOrDir;\n\t};\n\tDirectoryRecord.prototype.getDirectory = function getDirectory (isoData) {\n\t if (!this.isDirectory(isoData)) {\n\t throw new Error(\"Tried to get a Directory from a file.\");\n\t }\n\t if (this._fileOrDir === null) {\n\t this._fileOrDir = this._constructDirectory(isoData);\n\t }\n\t return this._fileOrDir;\n\t};\n\tDirectoryRecord.prototype.getSUEntries = function getSUEntries (isoData) {\n\t if (!this._suEntries) {\n\t this._constructSUEntries(isoData);\n\t }\n\t return this._suEntries;\n\t};\n\tDirectoryRecord.prototype._rockRidgeFilename = function _rockRidgeFilename (isoData) {\n\t var nmEntries = this.getSUEntries(isoData).filter(function (e) { return e instanceof NMEntry; });\n\t if (nmEntries.length === 0 || nmEntries[0].flags() & (2 /* CURRENT */ | 4 /* PARENT */)) {\n\t return null;\n\t }\n\t var str = '';\n\t var getString = this._getGetString();\n\t for (var i = 0, list = nmEntries; i < list.length; i += 1) {\n\t var e = list[i];\n\t\n\t str += e.name(getString);\n\t if (!(e.flags() & 1 /* CONTINUE */)) {\n\t break;\n\t }\n\t }\n\t return str;\n\t};\n\tDirectoryRecord.prototype._constructSUEntries = function _constructSUEntries (isoData) {\n\t var i = 33 + this._data[32];\n\t if (i % 2 === 1) {\n\t // Skip padding field.\n\t i++;\n\t }\n\t i += this._rockRidgeOffset;\n\t this._suEntries = constructSystemUseEntries(this._data, i, this.length(), isoData);\n\t};\n\t/**\n\t * !!ONLY VALID ON FIRST ENTRY OF ROOT DIRECTORY!!\n\t * Returns -1 if rock ridge is not enabled. Otherwise, returns the offset\n\t * at which system use fields begin.\n\t */\n\tDirectoryRecord.prototype._getRockRidgeOffset = function _getRockRidgeOffset (isoData) {\n\t // In the worst case, we get some garbage SU entries.\n\t // Fudge offset to 0 before proceeding.\n\t this._rockRidgeOffset = 0;\n\t var suEntries = this.getSUEntries(isoData);\n\t if (suEntries.length > 0) {\n\t var spEntry = suEntries[0];\n\t if (spEntry instanceof SPEntry && spEntry.checkBytesPass()) {\n\t // SUSP is in use.\n\t for (var i = 1; i < suEntries.length; i++) {\n\t var entry = suEntries[i];\n\t if (entry instanceof RREntry || (entry instanceof EREntry && entry.extensionIdentifier() === rockRidgeIdentifier)) {\n\t // Rock Ridge is in use!\n\t return spEntry.bytesSkipped();\n\t }\n\t }\n\t }\n\t }\n\t // Failed.\n\t this._rockRidgeOffset = -1;\n\t return -1;\n\t};\n\t/**\n\t * @hidden\n\t */\n\tvar ISODirectoryRecord = (function (DirectoryRecord) {\n\t function ISODirectoryRecord(data, rockRidgeOffset) {\n\t DirectoryRecord.call(this, data, rockRidgeOffset);\n\t }\n\t\n\t if ( DirectoryRecord ) ISODirectoryRecord.__proto__ = DirectoryRecord;\n\t ISODirectoryRecord.prototype = Object.create( DirectoryRecord && DirectoryRecord.prototype );\n\t ISODirectoryRecord.prototype.constructor = ISODirectoryRecord;\n\t ISODirectoryRecord.prototype._getString = function _getString (i, len) {\n\t return getASCIIString(this._data, i, len);\n\t };\n\t ISODirectoryRecord.prototype._constructDirectory = function _constructDirectory (isoData) {\n\t return new ISODirectory(this, isoData);\n\t };\n\t ISODirectoryRecord.prototype._getGetString = function _getGetString () {\n\t return getASCIIString;\n\t };\n\t\n\t return ISODirectoryRecord;\n\t}(DirectoryRecord));\n\t/**\n\t * @hidden\n\t */\n\tvar JolietDirectoryRecord = (function (DirectoryRecord) {\n\t function JolietDirectoryRecord(data, rockRidgeOffset) {\n\t DirectoryRecord.call(this, data, rockRidgeOffset);\n\t }\n\t\n\t if ( DirectoryRecord ) JolietDirectoryRecord.__proto__ = DirectoryRecord;\n\t JolietDirectoryRecord.prototype = Object.create( DirectoryRecord && DirectoryRecord.prototype );\n\t JolietDirectoryRecord.prototype.constructor = JolietDirectoryRecord;\n\t JolietDirectoryRecord.prototype._getString = function _getString (i, len) {\n\t return getJolietString(this._data, i, len);\n\t };\n\t JolietDirectoryRecord.prototype._constructDirectory = function _constructDirectory (isoData) {\n\t return new JolietDirectory(this, isoData);\n\t };\n\t JolietDirectoryRecord.prototype._getGetString = function _getGetString () {\n\t return getJolietString;\n\t };\n\t\n\t return JolietDirectoryRecord;\n\t}(DirectoryRecord));\n\t/**\n\t * @hidden\n\t */\n\tvar SystemUseEntry = function SystemUseEntry(data) {\n\t this._data = data;\n\t};\n\tSystemUseEntry.prototype.signatureWord = function signatureWord () {\n\t return this._data.readUInt16BE(0);\n\t};\n\tSystemUseEntry.prototype.signatureWordString = function signatureWordString () {\n\t return getASCIIString(this._data, 0, 2);\n\t};\n\tSystemUseEntry.prototype.length = function length () {\n\t return this._data[2];\n\t};\n\tSystemUseEntry.prototype.suVersion = function suVersion () {\n\t return this._data[3];\n\t};\n\t/**\n\t * Continuation entry.\n\t * @hidden\n\t */\n\tvar CEEntry = (function (SystemUseEntry) {\n\t function CEEntry(data) {\n\t SystemUseEntry.call(this, data);\n\t this._entries = null;\n\t }\n\t\n\t if ( SystemUseEntry ) CEEntry.__proto__ = SystemUseEntry;\n\t CEEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t CEEntry.prototype.constructor = CEEntry;\n\t /**\n\t * Logical block address of the continuation area.\n\t */\n\t CEEntry.prototype.continuationLba = function continuationLba () {\n\t return this._data.readUInt32LE(4);\n\t };\n\t /**\n\t * Offset into the logical block.\n\t */\n\t CEEntry.prototype.continuationLbaOffset = function continuationLbaOffset () {\n\t return this._data.readUInt32LE(12);\n\t };\n\t /**\n\t * Length of the continuation area.\n\t */\n\t CEEntry.prototype.continuationLength = function continuationLength () {\n\t return this._data.readUInt32LE(20);\n\t };\n\t CEEntry.prototype.getEntries = function getEntries (isoData) {\n\t if (!this._entries) {\n\t var start = this.continuationLba() * 2048 + this.continuationLbaOffset();\n\t this._entries = constructSystemUseEntries(isoData, start, this.continuationLength(), isoData);\n\t }\n\t return this._entries;\n\t };\n\t\n\t return CEEntry;\n\t}(SystemUseEntry));\n\t/**\n\t * Padding entry.\n\t * @hidden\n\t */\n\tvar PDEntry = (function (SystemUseEntry) {\n\t function PDEntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) PDEntry.__proto__ = SystemUseEntry;\n\t PDEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t PDEntry.prototype.constructor = PDEntry;\n\t\n\t return PDEntry;\n\t}(SystemUseEntry));\n\t/**\n\t * Identifies that SUSP is in-use.\n\t * @hidden\n\t */\n\tvar SPEntry = (function (SystemUseEntry) {\n\t function SPEntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) SPEntry.__proto__ = SystemUseEntry;\n\t SPEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t SPEntry.prototype.constructor = SPEntry;\n\t SPEntry.prototype.checkBytesPass = function checkBytesPass () {\n\t return this._data[4] === 0xBE && this._data[5] === 0xEF;\n\t };\n\t SPEntry.prototype.bytesSkipped = function bytesSkipped () {\n\t return this._data[6];\n\t };\n\t\n\t return SPEntry;\n\t}(SystemUseEntry));\n\t/**\n\t * Identifies the end of the SUSP entries.\n\t * @hidden\n\t */\n\tvar STEntry = (function (SystemUseEntry) {\n\t function STEntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) STEntry.__proto__ = SystemUseEntry;\n\t STEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t STEntry.prototype.constructor = STEntry;\n\t\n\t return STEntry;\n\t}(SystemUseEntry));\n\t/**\n\t * Specifies system-specific extensions to SUSP.\n\t * @hidden\n\t */\n\tvar EREntry = (function (SystemUseEntry) {\n\t function EREntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) EREntry.__proto__ = SystemUseEntry;\n\t EREntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t EREntry.prototype.constructor = EREntry;\n\t EREntry.prototype.identifierLength = function identifierLength () {\n\t return this._data[4];\n\t };\n\t EREntry.prototype.descriptorLength = function descriptorLength () {\n\t return this._data[5];\n\t };\n\t EREntry.prototype.sourceLength = function sourceLength () {\n\t return this._data[6];\n\t };\n\t EREntry.prototype.extensionVersion = function extensionVersion () {\n\t return this._data[7];\n\t };\n\t EREntry.prototype.extensionIdentifier = function extensionIdentifier () {\n\t return getASCIIString(this._data, 8, this.identifierLength());\n\t };\n\t EREntry.prototype.extensionDescriptor = function extensionDescriptor () {\n\t return getASCIIString(this._data, 8 + this.identifierLength(), this.descriptorLength());\n\t };\n\t EREntry.prototype.extensionSource = function extensionSource () {\n\t return getASCIIString(this._data, 8 + this.identifierLength() + this.descriptorLength(), this.sourceLength());\n\t };\n\t\n\t return EREntry;\n\t}(SystemUseEntry));\n\t/**\n\t * @hidden\n\t */\n\tvar ESEntry = (function (SystemUseEntry) {\n\t function ESEntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) ESEntry.__proto__ = SystemUseEntry;\n\t ESEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t ESEntry.prototype.constructor = ESEntry;\n\t ESEntry.prototype.extensionSequence = function extensionSequence () {\n\t return this._data[4];\n\t };\n\t\n\t return ESEntry;\n\t}(SystemUseEntry));\n\t/**\n\t * RockRidge: Marks that RockRidge is in use [deprecated]\n\t * @hidden\n\t */\n\tvar RREntry = (function (SystemUseEntry) {\n\t function RREntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) RREntry.__proto__ = SystemUseEntry;\n\t RREntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t RREntry.prototype.constructor = RREntry;\n\t\n\t return RREntry;\n\t}(SystemUseEntry));\n\t/**\n\t * RockRidge: Records POSIX file attributes.\n\t * @hidden\n\t */\n\tvar PXEntry = (function (SystemUseEntry) {\n\t function PXEntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) PXEntry.__proto__ = SystemUseEntry;\n\t PXEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t PXEntry.prototype.constructor = PXEntry;\n\t PXEntry.prototype.mode = function mode () {\n\t return this._data.readUInt32LE(4);\n\t };\n\t PXEntry.prototype.fileLinks = function fileLinks () {\n\t return this._data.readUInt32LE(12);\n\t };\n\t PXEntry.prototype.uid = function uid () {\n\t return this._data.readUInt32LE(20);\n\t };\n\t PXEntry.prototype.gid = function gid () {\n\t return this._data.readUInt32LE(28);\n\t };\n\t PXEntry.prototype.inode = function inode () {\n\t return this._data.readUInt32LE(36);\n\t };\n\t\n\t return PXEntry;\n\t}(SystemUseEntry));\n\t/**\n\t * RockRidge: Records POSIX device number.\n\t * @hidden\n\t */\n\tvar PNEntry = (function (SystemUseEntry) {\n\t function PNEntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) PNEntry.__proto__ = SystemUseEntry;\n\t PNEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t PNEntry.prototype.constructor = PNEntry;\n\t PNEntry.prototype.devTHigh = function devTHigh () {\n\t return this._data.readUInt32LE(4);\n\t };\n\t PNEntry.prototype.devTLow = function devTLow () {\n\t return this._data.readUInt32LE(12);\n\t };\n\t\n\t return PNEntry;\n\t}(SystemUseEntry));\n\t/**\n\t * RockRidge: Records symbolic link\n\t * @hidden\n\t */\n\tvar SLEntry = (function (SystemUseEntry) {\n\t function SLEntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) SLEntry.__proto__ = SystemUseEntry;\n\t SLEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t SLEntry.prototype.constructor = SLEntry;\n\t SLEntry.prototype.flags = function flags () {\n\t return this._data[4];\n\t };\n\t SLEntry.prototype.continueFlag = function continueFlag () {\n\t return this.flags() & 0x1;\n\t };\n\t SLEntry.prototype.componentRecords = function componentRecords () {\n\t var this$1 = this;\n\t\n\t var records = new Array();\n\t var i = 5;\n\t while (i < this.length()) {\n\t var record = new SLComponentRecord(this$1._data.slice(i));\n\t records.push(record);\n\t i += record.length();\n\t }\n\t return records;\n\t };\n\t\n\t return SLEntry;\n\t}(SystemUseEntry));\n\t/**\n\t * @hidden\n\t */\n\tvar SLComponentRecord = function SLComponentRecord(data) {\n\t this._data = data;\n\t};\n\tSLComponentRecord.prototype.flags = function flags () {\n\t return this._data[0];\n\t};\n\tSLComponentRecord.prototype.length = function length () {\n\t return 2 + this.componentLength();\n\t};\n\tSLComponentRecord.prototype.componentLength = function componentLength () {\n\t return this._data[1];\n\t};\n\tSLComponentRecord.prototype.content = function content (getString) {\n\t return getString(this._data, 2, this.componentLength());\n\t};\n\t/**\n\t * RockRidge: Records alternate file name\n\t * @hidden\n\t */\n\tvar NMEntry = (function (SystemUseEntry) {\n\t function NMEntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) NMEntry.__proto__ = SystemUseEntry;\n\t NMEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t NMEntry.prototype.constructor = NMEntry;\n\t NMEntry.prototype.flags = function flags () {\n\t return this._data[4];\n\t };\n\t NMEntry.prototype.name = function name (getString) {\n\t return getString(this._data, 5, this.length() - 5);\n\t };\n\t\n\t return NMEntry;\n\t}(SystemUseEntry));\n\t/**\n\t * RockRidge: Records child link\n\t * @hidden\n\t */\n\tvar CLEntry = (function (SystemUseEntry) {\n\t function CLEntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) CLEntry.__proto__ = SystemUseEntry;\n\t CLEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t CLEntry.prototype.constructor = CLEntry;\n\t CLEntry.prototype.childDirectoryLba = function childDirectoryLba () {\n\t return this._data.readUInt32LE(4);\n\t };\n\t\n\t return CLEntry;\n\t}(SystemUseEntry));\n\t/**\n\t * RockRidge: Records parent link.\n\t * @hidden\n\t */\n\tvar PLEntry = (function (SystemUseEntry) {\n\t function PLEntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) PLEntry.__proto__ = SystemUseEntry;\n\t PLEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t PLEntry.prototype.constructor = PLEntry;\n\t PLEntry.prototype.parentDirectoryLba = function parentDirectoryLba () {\n\t return this._data.readUInt32LE(4);\n\t };\n\t\n\t return PLEntry;\n\t}(SystemUseEntry));\n\t/**\n\t * RockRidge: Records relocated directory.\n\t * @hidden\n\t */\n\tvar REEntry = (function (SystemUseEntry) {\n\t function REEntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) REEntry.__proto__ = SystemUseEntry;\n\t REEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t REEntry.prototype.constructor = REEntry;\n\t\n\t return REEntry;\n\t}(SystemUseEntry));\n\t/**\n\t * RockRidge: Records file timestamps\n\t * @hidden\n\t */\n\tvar TFEntry = (function (SystemUseEntry) {\n\t function TFEntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) TFEntry.__proto__ = SystemUseEntry;\n\t TFEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t TFEntry.prototype.constructor = TFEntry;\n\t TFEntry.prototype.flags = function flags () {\n\t return this._data[4];\n\t };\n\t TFEntry.prototype.creation = function creation () {\n\t if (this.flags() & 1 /* CREATION */) {\n\t if (this._longFormDates()) {\n\t return getDate(this._data, 5);\n\t }\n\t else {\n\t return getShortFormDate(this._data, 5);\n\t }\n\t }\n\t else {\n\t return null;\n\t }\n\t };\n\t TFEntry.prototype.modify = function modify () {\n\t if (this.flags() & 2 /* MODIFY */) {\n\t var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0;\n\t if (this._longFormDates) {\n\t return getDate(this._data, 5 + (previousDates * 17));\n\t }\n\t else {\n\t return getShortFormDate(this._data, 5 + (previousDates * 7));\n\t }\n\t }\n\t else {\n\t return null;\n\t }\n\t };\n\t TFEntry.prototype.access = function access () {\n\t if (this.flags() & 4 /* ACCESS */) {\n\t var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0;\n\t previousDates += (this.flags() & 2 /* MODIFY */) ? 1 : 0;\n\t if (this._longFormDates) {\n\t return getDate(this._data, 5 + (previousDates * 17));\n\t }\n\t else {\n\t return getShortFormDate(this._data, 5 + (previousDates * 7));\n\t }\n\t }\n\t else {\n\t return null;\n\t }\n\t };\n\t TFEntry.prototype.backup = function backup () {\n\t if (this.flags() & 16 /* BACKUP */) {\n\t var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0;\n\t previousDates += (this.flags() & 2 /* MODIFY */) ? 1 : 0;\n\t previousDates += (this.flags() & 4 /* ACCESS */) ? 1 : 0;\n\t if (this._longFormDates) {\n\t return getDate(this._data, 5 + (previousDates * 17));\n\t }\n\t else {\n\t return getShortFormDate(this._data, 5 + (previousDates * 7));\n\t }\n\t }\n\t else {\n\t return null;\n\t }\n\t };\n\t TFEntry.prototype.expiration = function expiration () {\n\t if (this.flags() & 32 /* EXPIRATION */) {\n\t var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0;\n\t previousDates += (this.flags() & 2 /* MODIFY */) ? 1 : 0;\n\t previousDates += (this.flags() & 4 /* ACCESS */) ? 1 : 0;\n\t previousDates += (this.flags() & 16 /* BACKUP */) ? 1 : 0;\n\t if (this._longFormDates) {\n\t return getDate(this._data, 5 + (previousDates * 17));\n\t }\n\t else {\n\t return getShortFormDate(this._data, 5 + (previousDates * 7));\n\t }\n\t }\n\t else {\n\t return null;\n\t }\n\t };\n\t TFEntry.prototype.effective = function effective () {\n\t if (this.flags() & 64 /* EFFECTIVE */) {\n\t var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0;\n\t previousDates += (this.flags() & 2 /* MODIFY */) ? 1 : 0;\n\t previousDates += (this.flags() & 4 /* ACCESS */) ? 1 : 0;\n\t previousDates += (this.flags() & 16 /* BACKUP */) ? 1 : 0;\n\t previousDates += (this.flags() & 32 /* EXPIRATION */) ? 1 : 0;\n\t if (this._longFormDates) {\n\t return getDate(this._data, 5 + (previousDates * 17));\n\t }\n\t else {\n\t return getShortFormDate(this._data, 5 + (previousDates * 7));\n\t }\n\t }\n\t else {\n\t return null;\n\t }\n\t };\n\t TFEntry.prototype._longFormDates = function _longFormDates () {\n\t return !!(this.flags() && 128 /* LONG_FORM */);\n\t };\n\t\n\t return TFEntry;\n\t}(SystemUseEntry));\n\t/**\n\t * RockRidge: File data in sparse format.\n\t * @hidden\n\t */\n\tvar SFEntry = (function (SystemUseEntry) {\n\t function SFEntry(data) {\n\t SystemUseEntry.call(this, data);\n\t }\n\t\n\t if ( SystemUseEntry ) SFEntry.__proto__ = SystemUseEntry;\n\t SFEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype );\n\t SFEntry.prototype.constructor = SFEntry;\n\t SFEntry.prototype.virtualSizeHigh = function virtualSizeHigh () {\n\t return this._data.readUInt32LE(4);\n\t };\n\t SFEntry.prototype.virtualSizeLow = function virtualSizeLow () {\n\t return this._data.readUInt32LE(12);\n\t };\n\t SFEntry.prototype.tableDepth = function tableDepth () {\n\t return this._data[20];\n\t };\n\t\n\t return SFEntry;\n\t}(SystemUseEntry));\n\t/**\n\t * @hidden\n\t */\n\tvar Directory = function Directory(record, isoData) {\n\t var this$1 = this;\n\t\n\t this._fileList = [];\n\t this._fileMap = {};\n\t this._record = record;\n\t var i = record.lba();\n\t var iLimit = i + record.dataLength();\n\t if (!(record.fileFlags() & 2 /* Directory */)) {\n\t // Must have a CL entry.\n\t var cl = record.getSUEntries(isoData).filter(function (e) { return e instanceof CLEntry; })[0];\n\t i = cl.childDirectoryLba() * 2048;\n\t iLimit = Infinity;\n\t }\n\t while (i < iLimit) {\n\t var len = isoData[i];\n\t // Zero-padding between sectors.\n\t // TODO: Could optimize this to seek to nearest-sector upon\n\t // seeing a 0.\n\t if (len === 0) {\n\t i++;\n\t continue;\n\t }\n\t var r = this$1._constructDirectoryRecord(isoData.slice(i));\n\t var fname = r.fileName(isoData);\n\t // Skip '.' and '..' entries.\n\t if (fname !== '\\u0000' && fname !== '\\u0001') {\n\t // Skip relocated entries.\n\t if (!r.hasRockRidge() || r.getSUEntries(isoData).filter(function (e) { return e instanceof REEntry; }).length === 0) {\n\t this$1._fileMap[fname] = r;\n\t this$1._fileList.push(fname);\n\t }\n\t }\n\t else if (iLimit === Infinity) {\n\t // First entry contains needed data.\n\t iLimit = i + r.dataLength();\n\t }\n\t i += r.length();\n\t }\n\t};\n\t/**\n\t * Get the record with the given name.\n\t * Returns undefined if not present.\n\t */\n\tDirectory.prototype.getRecord = function getRecord (name) {\n\t return this._fileMap[name];\n\t};\n\tDirectory.prototype.getFileList = function getFileList () {\n\t return this._fileList;\n\t};\n\tDirectory.prototype.getDotEntry = function getDotEntry (isoData) {\n\t return this._constructDirectoryRecord(isoData.slice(this._record.lba()));\n\t};\n\t/**\n\t * @hidden\n\t */\n\tvar ISODirectory = (function (Directory) {\n\t function ISODirectory(record, isoData) {\n\t Directory.call(this, record, isoData);\n\t }\n\t\n\t if ( Directory ) ISODirectory.__proto__ = Directory;\n\t ISODirectory.prototype = Object.create( Directory && Directory.prototype );\n\t ISODirectory.prototype.constructor = ISODirectory;\n\t ISODirectory.prototype._constructDirectoryRecord = function _constructDirectoryRecord (data) {\n\t return new ISODirectoryRecord(data, this._record.getRockRidgeOffset());\n\t };\n\t\n\t return ISODirectory;\n\t}(Directory));\n\t/**\n\t * @hidden\n\t */\n\tvar JolietDirectory = (function (Directory) {\n\t function JolietDirectory(record, isoData) {\n\t Directory.call(this, record, isoData);\n\t }\n\t\n\t if ( Directory ) JolietDirectory.__proto__ = Directory;\n\t JolietDirectory.prototype = Object.create( Directory && Directory.prototype );\n\t JolietDirectory.prototype.constructor = JolietDirectory;\n\t JolietDirectory.prototype._constructDirectoryRecord = function _constructDirectoryRecord (data) {\n\t return new JolietDirectoryRecord(data, this._record.getRockRidgeOffset());\n\t };\n\t\n\t return JolietDirectory;\n\t}(Directory));\n\t/**\n\t * Mounts an ISO file as a read-only file system.\n\t *\n\t * Supports:\n\t * * Vanilla ISO9660 ISOs\n\t * * Microsoft Joliet and Rock Ridge extensions to the ISO9660 standard\n\t */\n\tvar IsoFS = (function (SynchronousFileSystem$$1) {\n\t function IsoFS(data, name, deprecateMsg) {\n\t var this$1 = this;\n\t if ( name === void 0 ) name = \"\";\n\t if ( deprecateMsg === void 0 ) deprecateMsg = true;\n\t\n\t SynchronousFileSystem$$1.call(this);\n\t this._data = data;\n\t deprecationMessage(deprecateMsg, IsoFS.Name, { data: \"ISO data as a Buffer\", name: name });\n\t // Skip first 16 sectors.\n\t var vdTerminatorFound = false;\n\t var i = 16 * 2048;\n\t var candidateVDs = new Array();\n\t while (!vdTerminatorFound) {\n\t var slice = data.slice(i);\n\t var vd = new VolumeDescriptor(slice);\n\t switch (vd.type()) {\n\t case 1 /* PrimaryVolumeDescriptor */:\n\t candidateVDs.push(new PrimaryVolumeDescriptor(slice));\n\t break;\n\t case 2 /* SupplementaryVolumeDescriptor */:\n\t candidateVDs.push(new SupplementaryVolumeDescriptor(slice));\n\t break;\n\t case 255 /* VolumeDescriptorSetTerminator */:\n\t vdTerminatorFound = true;\n\t break;\n\t }\n\t i += 2048;\n\t }\n\t if (candidateVDs.length === 0) {\n\t throw new ApiError(ErrorCode.EIO, \"Unable to find a suitable volume descriptor.\");\n\t }\n\t candidateVDs.forEach(function (v) {\n\t // Take an SVD over a PVD.\n\t if (!this$1._pvd || this$1._pvd.type() !== 2 /* SupplementaryVolumeDescriptor */) {\n\t this$1._pvd = v;\n\t }\n\t });\n\t this._root = this._pvd.rootDirectoryEntry(data);\n\t this._name = name;\n\t }\n\t\n\t if ( SynchronousFileSystem$$1 ) IsoFS.__proto__ = SynchronousFileSystem$$1;\n\t IsoFS.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype );\n\t IsoFS.prototype.constructor = IsoFS;\n\t /**\n\t * Creates an IsoFS instance with the given options.\n\t */\n\t IsoFS.Create = function Create (opts, cb) {\n\t var fs;\n\t var e;\n\t try {\n\t fs = new IsoFS(opts.data, opts.name, false);\n\t }\n\t catch (e) {\n\t e = e;\n\t }\n\t finally {\n\t cb(e, fs);\n\t }\n\t };\n\t IsoFS.isAvailable = function isAvailable () {\n\t return true;\n\t };\n\t IsoFS.prototype.getName = function getName () {\n\t var name = \"IsoFS\" + (this._name) + (this._pvd ? (\"-\" + (this._pvd.name())) : '');\n\t if (this._root && this._root.hasRockRidge()) {\n\t name += \"-RockRidge\";\n\t }\n\t return name;\n\t };\n\t IsoFS.prototype.diskSpace = function diskSpace (path$$1, cb) {\n\t // Read-only file system.\n\t cb(this._data.length, 0);\n\t };\n\t IsoFS.prototype.isReadOnly = function isReadOnly () {\n\t return true;\n\t };\n\t IsoFS.prototype.supportsLinks = function supportsLinks () {\n\t return false;\n\t };\n\t IsoFS.prototype.supportsProps = function supportsProps () {\n\t return false;\n\t };\n\t IsoFS.prototype.supportsSynch = function supportsSynch () {\n\t return true;\n\t };\n\t IsoFS.prototype.statSync = function statSync (p, isLstat) {\n\t var record = this._getDirectoryRecord(p);\n\t if (record === null) {\n\t throw ApiError.ENOENT(p);\n\t }\n\t return this._getStats(p, record);\n\t };\n\t IsoFS.prototype.openSync = function openSync (p, flags, mode) {\n\t // INVARIANT: Cannot write to RO file systems.\n\t if (flags.isWriteable()) {\n\t throw new ApiError(ErrorCode.EPERM, p);\n\t }\n\t // Check if the path exists, and is a file.\n\t var record = this._getDirectoryRecord(p);\n\t if (!record) {\n\t throw ApiError.ENOENT(p);\n\t }\n\t else if (record.isSymlink(this._data)) {\n\t return this.openSync(path.resolve(p, record.getSymlinkPath(this._data)), flags, mode);\n\t }\n\t else if (!record.isDirectory(this._data)) {\n\t var data = record.getFile(this._data);\n\t var stats = this._getStats(p, record);\n\t switch (flags.pathExistsAction()) {\n\t case ActionType.THROW_EXCEPTION:\n\t case ActionType.TRUNCATE_FILE:\n\t throw ApiError.EEXIST(p);\n\t case ActionType.NOP:\n\t return new NoSyncFile(this, p, flags, stats, data);\n\t default:\n\t throw new ApiError(ErrorCode.EINVAL, 'Invalid FileMode object.');\n\t }\n\t }\n\t else {\n\t throw ApiError.EISDIR(p);\n\t }\n\t };\n\t IsoFS.prototype.readdirSync = function readdirSync (path$$1) {\n\t // Check if it exists.\n\t var record = this._getDirectoryRecord(path$$1);\n\t if (!record) {\n\t throw ApiError.ENOENT(path$$1);\n\t }\n\t else if (record.isDirectory(this._data)) {\n\t return record.getDirectory(this._data).getFileList().slice(0);\n\t }\n\t else {\n\t throw ApiError.ENOTDIR(path$$1);\n\t }\n\t };\n\t /**\n\t * Specially-optimized readfile.\n\t */\n\t IsoFS.prototype.readFileSync = function readFileSync (fname, encoding, flag) {\n\t // Get file.\n\t var fd = this.openSync(fname, flag, 0x1a4);\n\t try {\n\t var fdCast = fd;\n\t var fdBuff = fdCast.getBuffer();\n\t if (encoding === null) {\n\t return copyingSlice(fdBuff);\n\t }\n\t return fdBuff.toString(encoding);\n\t }\n\t finally {\n\t fd.closeSync();\n\t }\n\t };\n\t IsoFS.prototype._getDirectoryRecord = function _getDirectoryRecord (path$$1) {\n\t var this$1 = this;\n\t\n\t // Special case.\n\t if (path$$1 === '/') {\n\t return this._root;\n\t }\n\t var components = path$$1.split('/').slice(1);\n\t var dir = this._root;\n\t for (var i = 0, list = components; i < list.length; i += 1) {\n\t var component = list[i];\n\t\n\t if (dir.isDirectory(this$1._data)) {\n\t dir = dir.getDirectory(this$1._data).getRecord(component);\n\t if (!dir) {\n\t return null;\n\t }\n\t }\n\t else {\n\t return null;\n\t }\n\t }\n\t return dir;\n\t };\n\t IsoFS.prototype._getStats = function _getStats (p, record) {\n\t if (record.isSymlink(this._data)) {\n\t var newP = path.resolve(p, record.getSymlinkPath(this._data));\n\t var dirRec = this._getDirectoryRecord(newP);\n\t if (!dirRec) {\n\t return null;\n\t }\n\t return this._getStats(newP, dirRec);\n\t }\n\t else {\n\t var len = record.dataLength();\n\t var mode = 0x16D;\n\t var date = record.recordingDate();\n\t var atime = date;\n\t var mtime = date;\n\t var ctime = date;\n\t if (record.hasRockRidge()) {\n\t var entries = record.getSUEntries(this._data);\n\t for (var i = 0, list = entries; i < list.length; i += 1) {\n\t var entry = list[i];\n\t\n\t if (entry instanceof PXEntry) {\n\t mode = entry.mode();\n\t }\n\t else if (entry instanceof TFEntry) {\n\t var flags = entry.flags();\n\t if (flags & 4 /* ACCESS */) {\n\t atime = entry.access();\n\t }\n\t if (flags & 2 /* MODIFY */) {\n\t mtime = entry.modify();\n\t }\n\t if (flags & 1 /* CREATION */) {\n\t ctime = entry.creation();\n\t }\n\t }\n\t }\n\t }\n\t // Mask out writeable flags. This is a RO file system.\n\t mode = mode & 0x16D;\n\t return new Stats(record.isDirectory(this._data) ? FileType.DIRECTORY : FileType.FILE, len, mode, atime, mtime, ctime);\n\t }\n\t };\n\t\n\t return IsoFS;\n\t}(SynchronousFileSystem));\n\t\n\tIsoFS.Name = \"IsoFS\";\n\tIsoFS.Options = {\n\t data: {\n\t type: \"object\",\n\t description: \"The ISO file in a buffer\",\n\t validator: bufferValidator\n\t }\n\t};\n\t\n\t// Monkey-patch `Create` functions to check options before file system initialization.\n\t[AsyncMirror, DropboxFileSystem, EmscriptenFileSystem, FolderAdapter, HTML5FS, InMemoryFileSystem, IndexedDBFileSystem, IsoFS, LocalStorageFileSystem, MountableFileSystem, OverlayFS, WorkerFS, XmlHttpRequest, ZipFS].forEach(function (fsType) {\n\t var create = fsType.Create;\n\t fsType.Create = function (opts, cb) {\n\t var oneArg = typeof (opts) === \"function\";\n\t var normalizedCb = oneArg ? opts : cb;\n\t var normalizedOpts = oneArg ? {} : opts;\n\t function wrappedCb(e) {\n\t if (e) {\n\t normalizedCb(e);\n\t }\n\t else {\n\t create.call(fsType, normalizedOpts, normalizedCb);\n\t }\n\t }\n\t checkOptions(fsType, normalizedOpts, wrappedCb);\n\t };\n\t});\n\t/**\n\t * @hidden\n\t */\n\tvar Backends = { AsyncMirror: AsyncMirror, Dropbox: DropboxFileSystem, Emscripten: EmscriptenFileSystem, FolderAdapter: FolderAdapter, HTML5FS: HTML5FS, InMemory: InMemoryFileSystem, IndexedDB: IndexedDBFileSystem, IsoFS: IsoFS, LocalStorage: LocalStorageFileSystem, MountableFileSystem: MountableFileSystem, OverlayFS: OverlayFS, WorkerFS: WorkerFS, XmlHttpRequest: XmlHttpRequest, ZipFS: ZipFS };\n\t\n\t/**\n\t * BrowserFS's main module. This is exposed in the browser via the BrowserFS global.\n\t * Due to limitations in typedoc, we document these functions in ./typedoc.ts.\n\t */\n\tif (process['initializeTTYs']) {\n\t process['initializeTTYs']();\n\t}\n\t/**\n\t * Installs BFSRequire as global `require`, a Node Buffer polyfill as the global `Buffer` variable,\n\t * and a Node process polyfill as the global `process` variable.\n\t */\n\tfunction install(obj) {\n\t obj.Buffer = Buffer;\n\t obj.process = process;\n\t var oldRequire = obj.require ? obj.require : null;\n\t // Monkey-patch require for Node-style code.\n\t obj.require = function (arg) {\n\t var rv = BFSRequire(arg);\n\t if (!rv) {\n\t return oldRequire.apply(null, Array.prototype.slice.call(arguments, 0));\n\t }\n\t else {\n\t return rv;\n\t }\n\t };\n\t}\n\t/**\n\t * @hidden\n\t */\n\tfunction registerFileSystem(name, fs) {\n\t Backends[name] = fs;\n\t}\n\tfunction BFSRequire(module) {\n\t switch (module) {\n\t case 'fs':\n\t return _fsMock;\n\t case 'path':\n\t return path;\n\t case 'buffer':\n\t // The 'buffer' module has 'Buffer' as a property.\n\t return buffer;\n\t case 'process':\n\t return process;\n\t case 'bfs_utils':\n\t return BFSUtils;\n\t default:\n\t return Backends[module];\n\t }\n\t}\n\t/**\n\t * Initializes BrowserFS with the given root file system.\n\t */\n\tfunction initialize(rootfs) {\n\t return _fsMock.initialize(rootfs);\n\t}\n\t/**\n\t * Creates a file system with the given configuration, and initializes BrowserFS with it.\n\t * See the FileSystemConfiguration type for more info on the configuration object.\n\t */\n\tfunction configure(config, cb) {\n\t getFileSystem(config, function (e, fs) {\n\t if (fs) {\n\t initialize(fs);\n\t cb();\n\t }\n\t else {\n\t cb(e);\n\t }\n\t });\n\t}\n\t/**\n\t * Retrieve a file system with the given configuration.\n\t * @param config A FileSystemConfiguration object. See FileSystemConfiguration for details.\n\t * @param cb Called when the file system is constructed, or when an error occurs.\n\t */\n\tfunction getFileSystem(config, cb) {\n\t var fsName = config['fs'];\n\t if (!fsName) {\n\t return cb(new ApiError(ErrorCode.EPERM, 'Missing \"fs\" property on configuration object.'));\n\t }\n\t var options = config['options'];\n\t var waitCount = 0;\n\t var called = false;\n\t function finish() {\n\t if (!called) {\n\t called = true;\n\t var fsc = Backends[fsName];\n\t if (!fsc) {\n\t cb(new ApiError(ErrorCode.EPERM, (\"File system \" + fsName + \" is not available in BrowserFS.\")));\n\t }\n\t else {\n\t fsc.Create(options, cb);\n\t }\n\t }\n\t }\n\t if (options !== null && typeof (options) === \"object\") {\n\t var finishedIterating = false;\n\t var props = Object.keys(options).filter(function (k) { return k !== 'fs'; });\n\t // Check recursively if other fields have 'fs' properties.\n\t props.forEach(function (p) {\n\t var d = options[p];\n\t if (d !== null && typeof (d) === \"object\" && d['fs']) {\n\t waitCount++;\n\t getFileSystem(d, function (e, fs) {\n\t waitCount--;\n\t if (e) {\n\t if (called) {\n\t return;\n\t }\n\t called = true;\n\t cb(e);\n\t }\n\t else {\n\t options[p] = fs;\n\t if (waitCount === 0 && finishedIterating) {\n\t finish();\n\t }\n\t }\n\t });\n\t }\n\t });\n\t finishedIterating = true;\n\t }\n\t if (waitCount === 0) {\n\t finish();\n\t }\n\t}\n\t\n\t/**\n\t * BrowserFS's main entry point.\n\t * It installs all of the needed polyfills, and requires() the main module.\n\t */\n\t// IE substr does not support negative indices\n\tif ('ab'.substr(-1) !== 'b') {\n\t String.prototype.substr = function (substr) {\n\t return function (start, length) {\n\t // did we get a negative start, calculate how much it is from the\n\t // beginning of the string\n\t if (start < 0) {\n\t start = this.length + start;\n\t }\n\t // call the original function\n\t return substr.call(this, start, length);\n\t };\n\t }(String.prototype.substr);\n\t}\n\t// Polyfill for Uint8Array.prototype.slice.\n\t// Safari and some other browsers do not define it.\n\tif (typeof (ArrayBuffer) !== 'undefined' && typeof (Uint8Array) !== 'undefined') {\n\t if (!Uint8Array.prototype['slice']) {\n\t Uint8Array.prototype.slice = function (start, end) {\n\t if ( start === void 0 ) start = 0;\n\t if ( end === void 0 ) end = this.length;\n\t\n\t var self = this;\n\t if (start < 0) {\n\t start = this.length + start;\n\t if (start < 0) {\n\t start = 0;\n\t }\n\t }\n\t if (end < 0) {\n\t end = this.length + end;\n\t if (end < 0) {\n\t end = 0;\n\t }\n\t }\n\t if (end < start) {\n\t end = start;\n\t }\n\t return new Uint8Array(self.buffer, self.byteOffset + start, end - start);\n\t };\n\t }\n\t}\n\t\n\texports.install = install;\n\texports.registerFileSystem = registerFileSystem;\n\texports.BFSRequire = BFSRequire;\n\texports.initialize = initialize;\n\texports.configure = configure;\n\texports.getFileSystem = getFileSystem;\n\texports.EmscriptenFS = BFSEmscriptenFS;\n\texports.FileSystem = Backends;\n\texports.Errors = api_error;\n\texports.setImmediate = setImmediate$3;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1), (function() { return this; }()), __webpack_require__(5)(module), __webpack_require__(6)))\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(2).Buffer;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(Buffer) {/*!\n\t * The buffer module from node.js, for the browser.\n\t *\n\t * @author Feross Aboukhadijeh \n\t * @license MIT\n\t */\n\t/* eslint-disable no-proto */\n\t\n\t'use strict'\n\t\n\tvar base64 = __webpack_require__(3)\n\tvar ieee754 = __webpack_require__(4)\n\t\n\texports.Buffer = Buffer\n\texports.SlowBuffer = SlowBuffer\n\texports.INSPECT_MAX_BYTES = 50\n\t\n\tvar K_MAX_LENGTH = 0x7fffffff\n\texports.kMaxLength = K_MAX_LENGTH\n\t\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\t\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t )\n\t}\n\t\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t var arr = new Uint8Array(1)\n\t arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\t\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('Invalid typed array length')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t var buf = new Uint8Array(length)\n\t buf.__proto__ = Buffer.prototype\n\t return buf\n\t}\n\t\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\t\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new Error(\n\t 'If encoding is specified then the first argument must be a string'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\t\n\t// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n\tif (typeof Symbol !== 'undefined' && Symbol.species &&\n\t Buffer[Symbol.species] === Buffer) {\n\t Object.defineProperty(Buffer, Symbol.species, {\n\t value: null,\n\t configurable: true,\n\t enumerable: false,\n\t writable: false\n\t })\n\t}\n\t\n\tBuffer.poolSize = 8192 // not used by this implementation\n\t\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'number') {\n\t throw new TypeError('\"value\" argument must not be a number')\n\t }\n\t\n\t if (isArrayBuffer(value)) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\t\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\t\n\t return fromObject(value)\n\t}\n\t\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t}\n\t\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tBuffer.prototype.__proto__ = Uint8Array.prototype\n\tBuffer.__proto__ = Uint8Array\n\t\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be a number')\n\t } else if (size < 0) {\n\t throw new RangeError('\"size\" argument must not be negative')\n\t }\n\t}\n\t\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size)\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpretted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\t\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t}\n\t\n\tfunction allocUnsafe (size) {\n\t assertSize(size)\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\t\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t}\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t}\n\t\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8'\n\t }\n\t\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('\"encoding\" must be a valid string encoding')\n\t }\n\t\n\t var length = byteLength(string, encoding) | 0\n\t var buf = createBuffer(length)\n\t\n\t var actual = buf.write(string, encoding)\n\t\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual)\n\t }\n\t\n\t return buf\n\t}\n\t\n\tfunction fromArrayLike (array) {\n\t var length = array.length < 0 ? 0 : checked(array.length) | 0\n\t var buf = createBuffer(length)\n\t for (var i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255\n\t }\n\t return buf\n\t}\n\t\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\\'offset\\' is out of bounds')\n\t }\n\t\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\\'length\\' is out of bounds')\n\t }\n\t\n\t var buf\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new Uint8Array(array)\n\t } else if (length === undefined) {\n\t buf = new Uint8Array(array, byteOffset)\n\t } else {\n\t buf = new Uint8Array(array, byteOffset, length)\n\t }\n\t\n\t // Return an augmented `Uint8Array` instance\n\t buf.__proto__ = Buffer.prototype\n\t return buf\n\t}\n\t\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t var len = checked(obj.length) | 0\n\t var buf = createBuffer(len)\n\t\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\t\n\t obj.copy(buf, 0, 0, len)\n\t return buf\n\t }\n\t\n\t if (obj) {\n\t if (isArrayBufferView(obj) || 'length' in obj) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\t\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t }\n\t\n\t throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n\t}\n\t\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\t\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\t\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true\n\t}\n\t\n\tBuffer.compare = function compare (a, b) {\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError('Arguments must be Buffers')\n\t }\n\t\n\t if (a === b) return 0\n\t\n\t var x = a.length\n\t var y = b.length\n\t\n\t for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i]\n\t y = b[i]\n\t break\n\t }\n\t }\n\t\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t}\n\t\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t}\n\t\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\t\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\t\n\t var i\n\t if (length === undefined) {\n\t length = 0\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length\n\t }\n\t }\n\t\n\t var buffer = Buffer.allocUnsafe(length)\n\t var pos = 0\n\t for (i = 0; i < list.length; ++i) {\n\t var buf = list[i]\n\t if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\t buf.copy(buffer, pos)\n\t pos += buf.length\n\t }\n\t return buffer\n\t}\n\t\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (isArrayBufferView(string) || isArrayBuffer(string)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t string = '' + string\n\t }\n\t\n\t var len = string.length\n\t if (len === 0) return 0\n\t\n\t // Use a for loop to avoid recursion\n\t var loweredCase = false\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t case undefined:\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) return utf8ToBytes(string).length // assume utf8\n\t encoding = ('' + encoding).toLowerCase()\n\t loweredCase = true\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength\n\t\n\tfunction slowToString (encoding, start, end) {\n\t var loweredCase = false\n\t\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\t\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\t\n\t if (end === undefined || end > this.length) {\n\t end = this.length\n\t }\n\t\n\t if (end <= 0) {\n\t return ''\n\t }\n\t\n\t // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0\n\t start >>>= 0\n\t\n\t if (end <= start) {\n\t return ''\n\t }\n\t\n\t if (!encoding) encoding = 'utf8'\n\t\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\t\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\t\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\t\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\t\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\t\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\t\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase()\n\t loweredCase = true\n\t }\n\t }\n\t}\n\t\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true\n\t\n\tfunction swap (b, n, m) {\n\t var i = b[n]\n\t b[n] = b[m]\n\t b[m] = i\n\t}\n\t\n\tBuffer.prototype.swap16 = function swap16 () {\n\t var len = this.length\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (var i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1)\n\t }\n\t return this\n\t}\n\t\n\tBuffer.prototype.swap32 = function swap32 () {\n\t var len = this.length\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (var i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3)\n\t swap(this, i + 1, i + 2)\n\t }\n\t return this\n\t}\n\t\n\tBuffer.prototype.swap64 = function swap64 () {\n\t var len = this.length\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (var i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7)\n\t swap(this, i + 1, i + 6)\n\t swap(this, i + 2, i + 5)\n\t swap(this, i + 3, i + 4)\n\t }\n\t return this\n\t}\n\t\n\tBuffer.prototype.toString = function toString () {\n\t var length = this.length\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t}\n\t\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t}\n\t\n\tBuffer.prototype.inspect = function inspect () {\n\t var str = ''\n\t var max = exports.INSPECT_MAX_BYTES\n\t if (this.length > 0) {\n\t str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n\t if (this.length > max) str += ' ... '\n\t }\n\t return ''\n\t}\n\t\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError('Argument must be a Buffer')\n\t }\n\t\n\t if (start === undefined) {\n\t start = 0\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length\n\t }\n\t\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\t\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\t\n\t start >>>= 0\n\t end >>>= 0\n\t thisStart >>>= 0\n\t thisEnd >>>= 0\n\t\n\t if (this === target) return 0\n\t\n\t var x = thisEnd - thisStart\n\t var y = end - start\n\t var len = Math.min(x, y)\n\t\n\t var thisCopy = this.slice(thisStart, thisEnd)\n\t var targetCopy = target.slice(start, end)\n\t\n\t for (var i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i]\n\t y = targetCopy[i]\n\t break\n\t }\n\t }\n\t\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t}\n\t\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\t\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset\n\t byteOffset = 0\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000\n\t }\n\t byteOffset = +byteOffset // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1)\n\t }\n\t\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0\n\t else return -1\n\t }\n\t\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding)\n\t }\n\t\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF // Search for a byte value [0-255]\n\t if (typeof Uint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n\t }\n\t\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\t\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t var indexSize = 1\n\t var arrLength = arr.length\n\t var valLength = val.length\n\t\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase()\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2\n\t arrLength /= 2\n\t valLength /= 2\n\t byteOffset /= 2\n\t }\n\t }\n\t\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\t\n\t var i\n\t if (dir) {\n\t var foundIndex = -1\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex\n\t foundIndex = -1\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n\t for (i = byteOffset; i >= 0; i--) {\n\t var found = true\n\t for (var j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\t\n\t return -1\n\t}\n\t\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t}\n\t\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t}\n\t\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t}\n\t\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0\n\t var remaining = buf.length - offset\n\t if (!length) {\n\t length = remaining\n\t } else {\n\t length = Number(length)\n\t if (length > remaining) {\n\t length = remaining\n\t }\n\t }\n\t\n\t // must be an even number of digits\n\t var strLen = string.length\n\t if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\t\n\t if (length > strLen / 2) {\n\t length = strLen / 2\n\t }\n\t for (var i = 0; i < length; ++i) {\n\t var parsed = parseInt(string.substr(i * 2, 2), 16)\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed\n\t }\n\t return i\n\t}\n\t\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\t\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\t\n\tfunction latin1Write (buf, string, offset, length) {\n\t return asciiWrite(buf, string, offset, length)\n\t}\n\t\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\t\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\t\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8'\n\t length = this.length\n\t offset = 0\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset\n\t length = this.length\n\t offset = 0\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0\n\t if (isFinite(length)) {\n\t length = length >>> 0\n\t if (encoding === undefined) encoding = 'utf8'\n\t } else {\n\t encoding = length\n\t length = undefined\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\t\n\t var remaining = this.length - offset\n\t if (length === undefined || length > remaining) length = remaining\n\t\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\t\n\t if (!encoding) encoding = 'utf8'\n\t\n\t var loweredCase = false\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\t\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\t\n\t case 'ascii':\n\t return asciiWrite(this, string, offset, length)\n\t\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Write(this, string, offset, length)\n\t\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\t\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\t\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase()\n\t loweredCase = true\n\t }\n\t }\n\t}\n\t\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t}\n\t\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\t\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end)\n\t var res = []\n\t\n\t var i = start\n\t while (i < end) {\n\t var firstByte = buf[i]\n\t var codePoint = null\n\t var bytesPerSequence = (firstByte > 0xEF) ? 4\n\t : (firstByte > 0xDF) ? 3\n\t : (firstByte > 0xBF) ? 2\n\t : 1\n\t\n\t if (i + bytesPerSequence <= end) {\n\t var secondByte, thirdByte, fourthByte, tempCodePoint\n\t\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1]\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1]\n\t thirdByte = buf[i + 2]\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1]\n\t thirdByte = buf[i + 2]\n\t fourthByte = buf[i + 3]\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint\n\t }\n\t }\n\t }\n\t }\n\t\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD\n\t bytesPerSequence = 1\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n\t codePoint = 0xDC00 | codePoint & 0x3FF\n\t }\n\t\n\t res.push(codePoint)\n\t i += bytesPerSequence\n\t }\n\t\n\t return decodeCodePointsArray(res)\n\t}\n\t\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tvar MAX_ARGUMENTS_LENGTH = 0x1000\n\t\n\tfunction decodeCodePointsArray (codePoints) {\n\t var len = codePoints.length\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\t\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t var res = ''\n\t var i = 0\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t )\n\t }\n\t return res\n\t}\n\t\n\tfunction asciiSlice (buf, start, end) {\n\t var ret = ''\n\t end = Math.min(buf.length, end)\n\t\n\t for (var i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F)\n\t }\n\t return ret\n\t}\n\t\n\tfunction latin1Slice (buf, start, end) {\n\t var ret = ''\n\t end = Math.min(buf.length, end)\n\t\n\t for (var i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i])\n\t }\n\t return ret\n\t}\n\t\n\tfunction hexSlice (buf, start, end) {\n\t var len = buf.length\n\t\n\t if (!start || start < 0) start = 0\n\t if (!end || end < 0 || end > len) end = len\n\t\n\t var out = ''\n\t for (var i = start; i < end; ++i) {\n\t out += toHex(buf[i])\n\t }\n\t return out\n\t}\n\t\n\tfunction utf16leSlice (buf, start, end) {\n\t var bytes = buf.slice(start, end)\n\t var res = ''\n\t for (var i = 0; i < bytes.length; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n\t }\n\t return res\n\t}\n\t\n\tBuffer.prototype.slice = function slice (start, end) {\n\t var len = this.length\n\t start = ~~start\n\t end = end === undefined ? len : ~~end\n\t\n\t if (start < 0) {\n\t start += len\n\t if (start < 0) start = 0\n\t } else if (start > len) {\n\t start = len\n\t }\n\t\n\t if (end < 0) {\n\t end += len\n\t if (end < 0) end = 0\n\t } else if (end > len) {\n\t end = len\n\t }\n\t\n\t if (end < start) end = start\n\t\n\t var newBuf = this.subarray(start, end)\n\t // Return an augmented `Uint8Array` instance\n\t newBuf.__proto__ = Buffer.prototype\n\t return newBuf\n\t}\n\t\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\t\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0\n\t byteLength = byteLength >>> 0\n\t if (!noAssert) checkOffset(offset, byteLength, this.length)\n\t\n\t var val = this[offset]\n\t var mul = 1\n\t var i = 0\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul\n\t }\n\t\n\t return val\n\t}\n\t\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0\n\t byteLength = byteLength >>> 0\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length)\n\t }\n\t\n\t var val = this[offset + --byteLength]\n\t var mul = 1\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul\n\t }\n\t\n\t return val\n\t}\n\t\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0\n\t if (!noAssert) checkOffset(offset, 1, this.length)\n\t return this[offset]\n\t}\n\t\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0\n\t if (!noAssert) checkOffset(offset, 2, this.length)\n\t return this[offset] | (this[offset + 1] << 8)\n\t}\n\t\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0\n\t if (!noAssert) checkOffset(offset, 2, this.length)\n\t return (this[offset] << 8) | this[offset + 1]\n\t}\n\t\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0\n\t if (!noAssert) checkOffset(offset, 4, this.length)\n\t\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t}\n\t\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0\n\t if (!noAssert) checkOffset(offset, 4, this.length)\n\t\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t}\n\t\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0\n\t byteLength = byteLength >>> 0\n\t if (!noAssert) checkOffset(offset, byteLength, this.length)\n\t\n\t var val = this[offset]\n\t var mul = 1\n\t var i = 0\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul\n\t }\n\t mul *= 0x80\n\t\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\t\n\t return val\n\t}\n\t\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0\n\t byteLength = byteLength >>> 0\n\t if (!noAssert) checkOffset(offset, byteLength, this.length)\n\t\n\t var i = byteLength\n\t var mul = 1\n\t var val = this[offset + --i]\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul\n\t }\n\t mul *= 0x80\n\t\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\t\n\t return val\n\t}\n\t\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0\n\t if (!noAssert) checkOffset(offset, 1, this.length)\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t}\n\t\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0\n\t if (!noAssert) checkOffset(offset, 2, this.length)\n\t var val = this[offset] | (this[offset + 1] << 8)\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t}\n\t\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0\n\t if (!noAssert) checkOffset(offset, 2, this.length)\n\t var val = this[offset + 1] | (this[offset] << 8)\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t}\n\t\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0\n\t if (!noAssert) checkOffset(offset, 4, this.length)\n\t\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t}\n\t\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0\n\t if (!noAssert) checkOffset(offset, 4, this.length)\n\t\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t}\n\t\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0\n\t if (!noAssert) checkOffset(offset, 4, this.length)\n\t return ieee754.read(this, offset, true, 23, 4)\n\t}\n\t\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0\n\t if (!noAssert) checkOffset(offset, 4, this.length)\n\t return ieee754.read(this, offset, false, 23, 4)\n\t}\n\t\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0\n\t if (!noAssert) checkOffset(offset, 8, this.length)\n\t return ieee754.read(this, offset, true, 52, 8)\n\t}\n\t\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0\n\t if (!noAssert) checkOffset(offset, 8, this.length)\n\t return ieee754.read(this, offset, false, 52, 8)\n\t}\n\t\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\t\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t byteLength = byteLength >>> 0\n\t if (!noAssert) {\n\t var maxBytes = Math.pow(2, 8 * byteLength) - 1\n\t checkInt(this, value, offset, byteLength, maxBytes, 0)\n\t }\n\t\n\t var mul = 1\n\t var i = 0\n\t this[offset] = value & 0xFF\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF\n\t }\n\t\n\t return offset + byteLength\n\t}\n\t\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t byteLength = byteLength >>> 0\n\t if (!noAssert) {\n\t var maxBytes = Math.pow(2, 8 * byteLength) - 1\n\t checkInt(this, value, offset, byteLength, maxBytes, 0)\n\t }\n\t\n\t var i = byteLength - 1\n\t var mul = 1\n\t this[offset + i] = value & 0xFF\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF\n\t }\n\t\n\t return offset + byteLength\n\t}\n\t\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n\t this[offset] = (value & 0xff)\n\t return offset + 1\n\t}\n\t\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n\t this[offset] = (value & 0xff)\n\t this[offset + 1] = (value >>> 8)\n\t return offset + 2\n\t}\n\t\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n\t this[offset] = (value >>> 8)\n\t this[offset + 1] = (value & 0xff)\n\t return offset + 2\n\t}\n\t\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n\t this[offset + 3] = (value >>> 24)\n\t this[offset + 2] = (value >>> 16)\n\t this[offset + 1] = (value >>> 8)\n\t this[offset] = (value & 0xff)\n\t return offset + 4\n\t}\n\t\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n\t this[offset] = (value >>> 24)\n\t this[offset + 1] = (value >>> 16)\n\t this[offset + 2] = (value >>> 8)\n\t this[offset + 3] = (value & 0xff)\n\t return offset + 4\n\t}\n\t\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t if (!noAssert) {\n\t var limit = Math.pow(2, (8 * byteLength) - 1)\n\t\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit)\n\t }\n\t\n\t var i = 0\n\t var mul = 1\n\t var sub = 0\n\t this[offset] = value & 0xFF\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n\t }\n\t\n\t return offset + byteLength\n\t}\n\t\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t if (!noAssert) {\n\t var limit = Math.pow(2, (8 * byteLength) - 1)\n\t\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit)\n\t }\n\t\n\t var i = byteLength - 1\n\t var mul = 1\n\t var sub = 0\n\t this[offset + i] = value & 0xFF\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n\t }\n\t\n\t return offset + byteLength\n\t}\n\t\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n\t if (value < 0) value = 0xff + value + 1\n\t this[offset] = (value & 0xff)\n\t return offset + 1\n\t}\n\t\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n\t this[offset] = (value & 0xff)\n\t this[offset + 1] = (value >>> 8)\n\t return offset + 2\n\t}\n\t\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n\t this[offset] = (value >>> 8)\n\t this[offset + 1] = (value & 0xff)\n\t return offset + 2\n\t}\n\t\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n\t this[offset] = (value & 0xff)\n\t this[offset + 1] = (value >>> 8)\n\t this[offset + 2] = (value >>> 16)\n\t this[offset + 3] = (value >>> 24)\n\t return offset + 4\n\t}\n\t\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n\t if (value < 0) value = 0xffffffff + value + 1\n\t this[offset] = (value >>> 24)\n\t this[offset + 1] = (value >>> 16)\n\t this[offset + 2] = (value >>> 8)\n\t this[offset + 3] = (value & 0xff)\n\t return offset + 4\n\t}\n\t\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\t\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n\t }\n\t ieee754.write(buf, value, offset, littleEndian, 23, 4)\n\t return offset + 4\n\t}\n\t\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t}\n\t\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t}\n\t\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value\n\t offset = offset >>> 0\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n\t }\n\t ieee754.write(buf, value, offset, littleEndian, 52, 8)\n\t return offset + 8\n\t}\n\t\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t}\n\t\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t}\n\t\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!start) start = 0\n\t if (!end && end !== 0) end = this.length\n\t if (targetStart >= target.length) targetStart = target.length\n\t if (!targetStart) targetStart = 0\n\t if (end > 0 && end < start) end = start\n\t\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\t\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\t\n\t // Are we oob?\n\t if (end > this.length) end = this.length\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start\n\t }\n\t\n\t var len = end - start\n\t var i\n\t\n\t if (this === target && start < targetStart && targetStart < end) {\n\t // descending copy from end\n\t for (i = len - 1; i >= 0; --i) {\n\t target[i + targetStart] = this[i + start]\n\t }\n\t } else if (len < 1000) {\n\t // ascending copy from start\n\t for (i = 0; i < len; ++i) {\n\t target[i + targetStart] = this[i + start]\n\t }\n\t } else {\n\t Uint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, start + len),\n\t targetStart\n\t )\n\t }\n\t\n\t return len\n\t}\n\t\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start\n\t start = 0\n\t end = this.length\n\t } else if (typeof end === 'string') {\n\t encoding = end\n\t end = this.length\n\t }\n\t if (val.length === 1) {\n\t var code = val.charCodeAt(0)\n\t if (code < 256) {\n\t val = code\n\t }\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255\n\t }\n\t\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\t\n\t if (end <= start) {\n\t return this\n\t }\n\t\n\t start = start >>> 0\n\t end = end === undefined ? this.length : end >>> 0\n\t\n\t if (!val) val = 0\n\t\n\t var i\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val\n\t }\n\t } else {\n\t var bytes = Buffer.isBuffer(val)\n\t ? val\n\t : new Buffer(val, encoding)\n\t var len = bytes.length\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len]\n\t }\n\t }\n\t\n\t return this\n\t}\n\t\n\t// HELPER FUNCTIONS\n\t// ================\n\t\n\tvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\t\n\tfunction base64clean (str) {\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '')\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '='\n\t }\n\t return str\n\t}\n\t\n\tfunction toHex (n) {\n\t if (n < 16) return '0' + n.toString(16)\n\t return n.toString(16)\n\t}\n\t\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity\n\t var codePoint\n\t var length = string.length\n\t var leadSurrogate = null\n\t var bytes = []\n\t\n\t for (var i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i)\n\t\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n\t continue\n\t }\n\t\n\t // valid lead\n\t leadSurrogate = codePoint\n\t\n\t continue\n\t }\n\t\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n\t leadSurrogate = codePoint\n\t continue\n\t }\n\t\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n\t }\n\t\n\t leadSurrogate = null\n\t\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint)\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t )\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t )\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t )\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\t\n\t return bytes\n\t}\n\t\n\tfunction asciiToBytes (str) {\n\t var byteArray = []\n\t for (var i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF)\n\t }\n\t return byteArray\n\t}\n\t\n\tfunction utf16leToBytes (str, units) {\n\t var c, hi, lo\n\t var byteArray = []\n\t for (var i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\t\n\t c = str.charCodeAt(i)\n\t hi = c >> 8\n\t lo = c % 256\n\t byteArray.push(lo)\n\t byteArray.push(hi)\n\t }\n\t\n\t return byteArray\n\t}\n\t\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\t\n\tfunction blitBuffer (src, dst, offset, length) {\n\t for (var i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i]\n\t }\n\t return i\n\t}\n\t\n\t// ArrayBuffers from another context (i.e. an iframe) do not pass the `instanceof` check\n\t// but they should be treated as valid. See: https://github.com/feross/buffer/issues/166\n\tfunction isArrayBuffer (obj) {\n\t return obj instanceof ArrayBuffer ||\n\t (obj != null && obj.constructor != null && obj.constructor.name === 'ArrayBuffer' &&\n\t typeof obj.byteLength === 'number')\n\t}\n\t\n\t// Node 0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`\n\tfunction isArrayBufferView (obj) {\n\t return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)\n\t}\n\t\n\tfunction numberIsNaN (obj) {\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t'use strict'\n\t\n\texports.byteLength = byteLength\n\texports.toByteArray = toByteArray\n\texports.fromByteArray = fromByteArray\n\t\n\tvar lookup = []\n\tvar revLookup = []\n\tvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\t\n\tvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\tfor (var i = 0, len = code.length; i < len; ++i) {\n\t lookup[i] = code[i]\n\t revLookup[code.charCodeAt(i)] = i\n\t}\n\t\n\trevLookup['-'.charCodeAt(0)] = 62\n\trevLookup['_'.charCodeAt(0)] = 63\n\t\n\tfunction placeHoldersCount (b64) {\n\t var len = b64.length\n\t if (len % 4 > 0) {\n\t throw new Error('Invalid string. Length must be a multiple of 4')\n\t }\n\t\n\t // the number of equal signs (place holders)\n\t // if there are two placeholders, than the two characters before it\n\t // represent one byte\n\t // if there is only one, then the three characters before it represent 2 bytes\n\t // this is just a cheap hack to not do indexOf twice\n\t return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\t}\n\t\n\tfunction byteLength (b64) {\n\t // base64 is 4/3 + up to two characters of the original data\n\t return b64.length * 3 / 4 - placeHoldersCount(b64)\n\t}\n\t\n\tfunction toByteArray (b64) {\n\t var i, j, l, tmp, placeHolders, arr\n\t var len = b64.length\n\t placeHolders = placeHoldersCount(b64)\n\t\n\t arr = new Arr(len * 3 / 4 - placeHolders)\n\t\n\t // if there are placeholders, only get up to the last complete 4 chars\n\t l = placeHolders > 0 ? len - 4 : len\n\t\n\t var L = 0\n\t\n\t for (i = 0, j = 0; i < l; i += 4, j += 3) {\n\t tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n\t arr[L++] = (tmp >> 16) & 0xFF\n\t arr[L++] = (tmp >> 8) & 0xFF\n\t arr[L++] = tmp & 0xFF\n\t }\n\t\n\t if (placeHolders === 2) {\n\t tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n\t arr[L++] = tmp & 0xFF\n\t } else if (placeHolders === 1) {\n\t tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n\t arr[L++] = (tmp >> 8) & 0xFF\n\t arr[L++] = tmp & 0xFF\n\t }\n\t\n\t return arr\n\t}\n\t\n\tfunction tripletToBase64 (num) {\n\t return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n\t}\n\t\n\tfunction encodeChunk (uint8, start, end) {\n\t var tmp\n\t var output = []\n\t for (var i = start; i < end; i += 3) {\n\t tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n\t output.push(tripletToBase64(tmp))\n\t }\n\t return output.join('')\n\t}\n\t\n\tfunction fromByteArray (uint8) {\n\t var tmp\n\t var len = uint8.length\n\t var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n\t var output = ''\n\t var parts = []\n\t var maxChunkLength = 16383 // must be multiple of 3\n\t\n\t // go through the array every three bytes, we'll deal with trailing stuff later\n\t for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n\t parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n\t }\n\t\n\t // pad the end with zeros, but make sure to not forget the extra bytes\n\t if (extraBytes === 1) {\n\t tmp = uint8[len - 1]\n\t output += lookup[tmp >> 2]\n\t output += lookup[(tmp << 4) & 0x3F]\n\t output += '=='\n\t } else if (extraBytes === 2) {\n\t tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n\t output += lookup[tmp >> 10]\n\t output += lookup[(tmp >> 4) & 0x3F]\n\t output += lookup[(tmp << 2) & 0x3F]\n\t output += '='\n\t }\n\t\n\t parts.push(output)\n\t\n\t return parts.join('')\n\t}\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\texports.read = function (buffer, offset, isLE, mLen, nBytes) {\n\t var e, m\n\t var eLen = nBytes * 8 - mLen - 1\n\t var eMax = (1 << eLen) - 1\n\t var eBias = eMax >> 1\n\t var nBits = -7\n\t var i = isLE ? (nBytes - 1) : 0\n\t var d = isLE ? -1 : 1\n\t var s = buffer[offset + i]\n\t\n\t i += d\n\t\n\t e = s & ((1 << (-nBits)) - 1)\n\t s >>= (-nBits)\n\t nBits += eLen\n\t for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\t\n\t m = e & ((1 << (-nBits)) - 1)\n\t e >>= (-nBits)\n\t nBits += mLen\n\t for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\t\n\t if (e === 0) {\n\t e = 1 - eBias\n\t } else if (e === eMax) {\n\t return m ? NaN : ((s ? -1 : 1) * Infinity)\n\t } else {\n\t m = m + Math.pow(2, mLen)\n\t e = e - eBias\n\t }\n\t return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n\t}\n\t\n\texports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n\t var e, m, c\n\t var eLen = nBytes * 8 - mLen - 1\n\t var eMax = (1 << eLen) - 1\n\t var eBias = eMax >> 1\n\t var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n\t var i = isLE ? 0 : (nBytes - 1)\n\t var d = isLE ? 1 : -1\n\t var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\t\n\t value = Math.abs(value)\n\t\n\t if (isNaN(value) || value === Infinity) {\n\t m = isNaN(value) ? 1 : 0\n\t e = eMax\n\t } else {\n\t e = Math.floor(Math.log(value) / Math.LN2)\n\t if (value * (c = Math.pow(2, -e)) < 1) {\n\t e--\n\t c *= 2\n\t }\n\t if (e + eBias >= 1) {\n\t value += rt / c\n\t } else {\n\t value += rt * Math.pow(2, 1 - eBias)\n\t }\n\t if (value * c >= 2) {\n\t e++\n\t c /= 2\n\t }\n\t\n\t if (e + eBias >= eMax) {\n\t m = 0\n\t e = eMax\n\t } else if (e + eBias >= 1) {\n\t m = (value * c - 1) * Math.pow(2, mLen)\n\t e = e + eBias\n\t } else {\n\t m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n\t e = 0\n\t }\n\t }\n\t\n\t for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\t\n\t e = (e << mLen) | m\n\t eLen += mLen\n\t for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\t\n\t buffer[offset + i - d] |= s * 128\n\t}\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(module) {\r\n\t\tif(!module.webpackPolyfill) {\r\n\t\t\tmodule.deprecate = function() {};\r\n\t\t\tmodule.paths = [];\r\n\t\t\t// module.parent = undefined by default\r\n\t\t\tmodule.children = [];\r\n\t\t\tmodule.webpackPolyfill = 1;\r\n\t\t}\r\n\t\treturn module;\r\n\t}\r\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar Process = __webpack_require__(7);\n\tvar process = new Process(), processProxy = {};\n\tfunction defineKey(key) {\n\t if (processProxy[key]) {\n\t // Probably a builtin Object property we don't care about.\n\t return;\n\t }\n\t if (typeof process[key] === 'function') {\n\t processProxy[key] = function () {\n\t return process[key].apply(process, arguments);\n\t };\n\t }\n\t else {\n\t processProxy[key] = process[key];\n\t }\n\t}\n\tfor (var key in process) {\n\t // Don't check if process.hasOwnProperty; we want to also expose objects\n\t // up the prototype hierarchy.\n\t defineKey(key);\n\t}\n\t// Special key: Ensure we update public-facing values of stdin/stdout/stderr.\n\tprocessProxy.initializeTTYs = function () {\n\t if (process.stdin === null) {\n\t process.initializeTTYs();\n\t processProxy.stdin = process.stdin;\n\t processProxy.stdout = process.stdout;\n\t processProxy.stderr = process.stderr;\n\t }\n\t};\n\tprocess.nextTick(function () {\n\t processProxy.initializeTTYs();\n\t});\n\tmodule.exports = processProxy;\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(__dirname) {\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar events = __webpack_require__(8);\n\t// Path depends on process. Avoid a circular reference by dynamically including path when we need it.\n\tvar path = null;\n\tvar Item = (function () {\n\t function Item(fun, array) {\n\t this.fun = fun;\n\t this.array = array;\n\t }\n\t Item.prototype.run = function () {\n\t this.fun.apply(null, this.array);\n\t };\n\t return Item;\n\t}());\n\t/**\n\t * Contains a queue of Items for process.nextTick.\n\t * Inspired by node-process: https://github.com/defunctzombie/node-process\n\t */\n\tvar NextTickQueue = (function () {\n\t function NextTickQueue() {\n\t this._queue = [];\n\t this._draining = false;\n\t // Used/assigned by the drainQueue function.\n\t this._currentQueue = null;\n\t this._queueIndex = -1;\n\t }\n\t NextTickQueue.prototype.push = function (item) {\n\t var _this = this;\n\t if (this._queue.push(item) === 1 && !this._draining) {\n\t setTimeout(function () { return _this._drainQueue(); }, 0);\n\t }\n\t };\n\t NextTickQueue.prototype._cleanUpNextTick = function () {\n\t this._draining = false;\n\t if (this._currentQueue && this._currentQueue.length) {\n\t this._queue = this._currentQueue.concat(this._queue);\n\t }\n\t else {\n\t this._queueIndex = -1;\n\t }\n\t if (this._queue.length) {\n\t this._drainQueue();\n\t }\n\t };\n\t NextTickQueue.prototype._drainQueue = function () {\n\t var _this = this;\n\t if (this._draining) {\n\t return;\n\t }\n\t // If an Item throws an unhandled exception, this function will clean things up.\n\t var timeout = setTimeout(function () { return _this._cleanUpNextTick(); });\n\t this._draining = true;\n\t var len = this._queue.length;\n\t while (len) {\n\t this._currentQueue = this._queue;\n\t this._queue = [];\n\t while (++this._queueIndex < len) {\n\t if (this._currentQueue) {\n\t this._currentQueue[this._queueIndex].run();\n\t }\n\t }\n\t this._queueIndex = -1;\n\t len = this._queue.length;\n\t }\n\t this._currentQueue = null;\n\t this._draining = false;\n\t clearTimeout(timeout);\n\t };\n\t return NextTickQueue;\n\t}());\n\t/**\n\t * Partial implementation of Node's `process` module.\n\t * We implement the portions that are relevant for the filesystem.\n\t * @see http://nodejs.org/api/process.html\n\t * @class\n\t */\n\tvar Process = (function (_super) {\n\t __extends(Process, _super);\n\t function Process() {\n\t _super.apply(this, arguments);\n\t this.startTime = Date.now();\n\t this._cwd = '/';\n\t /**\n\t * Returns what platform you are running on.\n\t * @return [String]\n\t */\n\t this.platform = 'browser';\n\t this.argv = [];\n\t this.execArgv = [];\n\t this.stdout = null;\n\t this.stderr = null;\n\t this.stdin = null;\n\t this.domain = null;\n\t this._queue = new NextTickQueue();\n\t this.execPath = __dirname;\n\t this.env = {};\n\t this.exitCode = 0;\n\t this._gid = 1;\n\t this._uid = 1;\n\t this.version = 'v5.0';\n\t this.versions = {\n\t http_parser: '0.0',\n\t node: '5.0',\n\t v8: '0.0',\n\t uv: '0.0',\n\t zlib: '0.0',\n\t ares: '0.0',\n\t icu: '0.0',\n\t modules: '0',\n\t openssl: '0.0'\n\t };\n\t this.config = {\n\t target_defaults: { cflags: [],\n\t default_configuration: 'Release',\n\t defines: [],\n\t include_dirs: [],\n\t libraries: [] },\n\t variables: { clang: 0,\n\t host_arch: 'x32',\n\t node_install_npm: false,\n\t node_install_waf: false,\n\t node_prefix: '',\n\t node_shared_cares: false,\n\t node_shared_http_parser: false,\n\t node_shared_libuv: false,\n\t node_shared_zlib: false,\n\t node_shared_v8: false,\n\t node_use_dtrace: false,\n\t node_use_etw: false,\n\t node_use_openssl: false,\n\t node_shared_openssl: false,\n\t strict_aliasing: false,\n\t target_arch: 'x32',\n\t v8_use_snapshot: false,\n\t v8_no_strict_aliasing: 0,\n\t visibility: '' } };\n\t this.pid = (Math.random() * 1000) | 0;\n\t this.title = 'node';\n\t this.arch = 'x32';\n\t this._mask = 18;\n\t // Undefined in main thread. Worker-only.\n\t this.connected = undefined;\n\t }\n\t /**\n\t * Changes the current working directory.\n\t *\n\t * **Note**: BrowserFS does not validate that the directory actually exists.\n\t *\n\t * @example Usage example\n\t * console.log('Starting directory: ' + process.cwd());\n\t * process.chdir('/tmp');\n\t * console.log('New directory: ' + process.cwd());\n\t * @param [String] dir The directory to change to.\n\t */\n\t Process.prototype.chdir = function (dir) {\n\t // XXX: Circular dependency hack.\n\t if (path === null) {\n\t path = __webpack_require__(9);\n\t }\n\t this._cwd = path.resolve(dir);\n\t };\n\t /**\n\t * Returns the current working directory.\n\t * @example Usage example\n\t * console.log('Current directory: ' + process.cwd());\n\t * @return [String] The current working directory.\n\t */\n\t Process.prototype.cwd = function () {\n\t return this._cwd;\n\t };\n\t /**\n\t * Number of seconds BrowserFS has been running.\n\t * @return [Number]\n\t */\n\t Process.prototype.uptime = function () {\n\t return ((Date.now() - this.startTime) / 1000) | 0;\n\t };\n\t Process.prototype.nextTick = function (fun) {\n\t var args = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t args[_i - 1] = arguments[_i];\n\t }\n\t this._queue.push(new Item(fun, args));\n\t };\n\t Process.prototype.abort = function () {\n\t this.emit('abort');\n\t };\n\t Process.prototype.exit = function (code) {\n\t this.exitCode = code;\n\t this.emit('exit', [code]);\n\t };\n\t Process.prototype.getgid = function () {\n\t return this._gid;\n\t };\n\t Process.prototype.setgid = function (gid) {\n\t if (typeof gid === 'number') {\n\t this._gid = gid;\n\t }\n\t else {\n\t this._gid = 1;\n\t }\n\t };\n\t Process.prototype.getuid = function () {\n\t return this._uid;\n\t };\n\t Process.prototype.setuid = function (uid) {\n\t if (typeof uid === 'number') {\n\t this._uid = uid;\n\t }\n\t else {\n\t this._uid = 1;\n\t }\n\t };\n\t Process.prototype.kill = function (pid, signal) {\n\t this.emit('kill', [pid, signal]);\n\t };\n\t Process.prototype.memoryUsage = function () {\n\t return { rss: 0, heapTotal: 0, heapUsed: 0 };\n\t };\n\t Process.prototype.umask = function (mask) {\n\t if (mask === void 0) { mask = this._mask; }\n\t var oldMask = this._mask;\n\t this._mask = mask;\n\t this.emit('umask', [mask]);\n\t return oldMask;\n\t };\n\t Process.prototype.hrtime = function () {\n\t var timeinfo;\n\t if (typeof performance !== 'undefined') {\n\t timeinfo = performance.now();\n\t }\n\t else if (Date['now']) {\n\t timeinfo = Date.now();\n\t }\n\t else {\n\t timeinfo = (new Date()).getTime();\n\t }\n\t var secs = (timeinfo / 1000) | 0;\n\t timeinfo -= secs * 1000;\n\t timeinfo = (timeinfo * 1000000) | 0;\n\t return [secs, timeinfo];\n\t };\n\t /**\n\t * [BFS only] Initialize the TTY devices.\n\t */\n\t Process.prototype.initializeTTYs = function () {\n\t // Guard against multiple invocations.\n\t if (this.stdout === null) {\n\t var TTY = __webpack_require__(10);\n\t this.stdout = new TTY();\n\t this.stderr = new TTY();\n\t this.stdin = new TTY();\n\t }\n\t };\n\t /**\n\t * Worker-only function; irrelevant here.\n\t */\n\t Process.prototype.disconnect = function () {\n\t };\n\t return Process;\n\t}(events.EventEmitter));\n\tmodule.exports = Process;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, \"/\"))\n\n/***/ },\n/* 8 */\n/***/ function(module, exports) {\n\n\t// Copyright Joyent, Inc. and other Node contributors.\n\t//\n\t// Permission is hereby granted, free of charge, to any person obtaining a\n\t// copy of this software and associated documentation files (the\n\t// \"Software\"), to deal in the Software without restriction, including\n\t// without limitation the rights to use, copy, modify, merge, publish,\n\t// distribute, sublicense, and/or sell copies of the Software, and to permit\n\t// persons to whom the Software is furnished to do so, subject to the\n\t// following conditions:\n\t//\n\t// The above copyright notice and this permission notice shall be included\n\t// in all copies or substantial portions of the Software.\n\t//\n\t// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n\t// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n\t// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n\t// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n\t// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n\t// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n\t// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\t\n\tfunction EventEmitter() {\n\t this._events = this._events || {};\n\t this._maxListeners = this._maxListeners || undefined;\n\t}\n\tmodule.exports = EventEmitter;\n\t\n\t// Backwards-compat with node 0.10.x\n\tEventEmitter.EventEmitter = EventEmitter;\n\t\n\tEventEmitter.prototype._events = undefined;\n\tEventEmitter.prototype._maxListeners = undefined;\n\t\n\t// By default EventEmitters will print a warning if more than 10 listeners are\n\t// added to it. This is a useful default which helps finding memory leaks.\n\tEventEmitter.defaultMaxListeners = 10;\n\t\n\t// Obviously not all Emitters should be limited to 10. This function allows\n\t// that to be increased. Set to zero for unlimited.\n\tEventEmitter.prototype.setMaxListeners = function(n) {\n\t if (!isNumber(n) || n < 0 || isNaN(n))\n\t throw TypeError('n must be a positive number');\n\t this._maxListeners = n;\n\t return this;\n\t};\n\t\n\tEventEmitter.prototype.emit = function(type) {\n\t var er, handler, len, args, i, listeners;\n\t\n\t if (!this._events)\n\t this._events = {};\n\t\n\t // If there is no 'error' event listener then throw.\n\t if (type === 'error') {\n\t if (!this._events.error ||\n\t (isObject(this._events.error) && !this._events.error.length)) {\n\t er = arguments[1];\n\t if (er instanceof Error) {\n\t throw er; // Unhandled 'error' event\n\t } else {\n\t // At least give some kind of context to the user\n\t var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n\t err.context = er;\n\t throw err;\n\t }\n\t }\n\t }\n\t\n\t handler = this._events[type];\n\t\n\t if (isUndefined(handler))\n\t return false;\n\t\n\t if (isFunction(handler)) {\n\t switch (arguments.length) {\n\t // fast cases\n\t case 1:\n\t handler.call(this);\n\t break;\n\t case 2:\n\t handler.call(this, arguments[1]);\n\t break;\n\t case 3:\n\t handler.call(this, arguments[1], arguments[2]);\n\t break;\n\t // slower\n\t default:\n\t args = Array.prototype.slice.call(arguments, 1);\n\t handler.apply(this, args);\n\t }\n\t } else if (isObject(handler)) {\n\t args = Array.prototype.slice.call(arguments, 1);\n\t listeners = handler.slice();\n\t len = listeners.length;\n\t for (i = 0; i < len; i++)\n\t listeners[i].apply(this, args);\n\t }\n\t\n\t return true;\n\t};\n\t\n\tEventEmitter.prototype.addListener = function(type, listener) {\n\t var m;\n\t\n\t if (!isFunction(listener))\n\t throw TypeError('listener must be a function');\n\t\n\t if (!this._events)\n\t this._events = {};\n\t\n\t // To avoid recursion in the case that type === \"newListener\"! Before\n\t // adding it to the listeners, first emit \"newListener\".\n\t if (this._events.newListener)\n\t this.emit('newListener', type,\n\t isFunction(listener.listener) ?\n\t listener.listener : listener);\n\t\n\t if (!this._events[type])\n\t // Optimize the case of one listener. Don't need the extra array object.\n\t this._events[type] = listener;\n\t else if (isObject(this._events[type]))\n\t // If we've already got an array, just append.\n\t this._events[type].push(listener);\n\t else\n\t // Adding the second element, need to change to array.\n\t this._events[type] = [this._events[type], listener];\n\t\n\t // Check for listener leak\n\t if (isObject(this._events[type]) && !this._events[type].warned) {\n\t if (!isUndefined(this._maxListeners)) {\n\t m = this._maxListeners;\n\t } else {\n\t m = EventEmitter.defaultMaxListeners;\n\t }\n\t\n\t if (m && m > 0 && this._events[type].length > m) {\n\t this._events[type].warned = true;\n\t console.error('(node) warning: possible EventEmitter memory ' +\n\t 'leak detected. %d listeners added. ' +\n\t 'Use emitter.setMaxListeners() to increase limit.',\n\t this._events[type].length);\n\t if (typeof console.trace === 'function') {\n\t // not supported in IE 10\n\t console.trace();\n\t }\n\t }\n\t }\n\t\n\t return this;\n\t};\n\t\n\tEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\t\n\tEventEmitter.prototype.once = function(type, listener) {\n\t if (!isFunction(listener))\n\t throw TypeError('listener must be a function');\n\t\n\t var fired = false;\n\t\n\t function g() {\n\t this.removeListener(type, g);\n\t\n\t if (!fired) {\n\t fired = true;\n\t listener.apply(this, arguments);\n\t }\n\t }\n\t\n\t g.listener = listener;\n\t this.on(type, g);\n\t\n\t return this;\n\t};\n\t\n\t// emits a 'removeListener' event iff the listener was removed\n\tEventEmitter.prototype.removeListener = function(type, listener) {\n\t var list, position, length, i;\n\t\n\t if (!isFunction(listener))\n\t throw TypeError('listener must be a function');\n\t\n\t if (!this._events || !this._events[type])\n\t return this;\n\t\n\t list = this._events[type];\n\t length = list.length;\n\t position = -1;\n\t\n\t if (list === listener ||\n\t (isFunction(list.listener) && list.listener === listener)) {\n\t delete this._events[type];\n\t if (this._events.removeListener)\n\t this.emit('removeListener', type, listener);\n\t\n\t } else if (isObject(list)) {\n\t for (i = length; i-- > 0;) {\n\t if (list[i] === listener ||\n\t (list[i].listener && list[i].listener === listener)) {\n\t position = i;\n\t break;\n\t }\n\t }\n\t\n\t if (position < 0)\n\t return this;\n\t\n\t if (list.length === 1) {\n\t list.length = 0;\n\t delete this._events[type];\n\t } else {\n\t list.splice(position, 1);\n\t }\n\t\n\t if (this._events.removeListener)\n\t this.emit('removeListener', type, listener);\n\t }\n\t\n\t return this;\n\t};\n\t\n\tEventEmitter.prototype.removeAllListeners = function(type) {\n\t var key, listeners;\n\t\n\t if (!this._events)\n\t return this;\n\t\n\t // not listening for removeListener, no need to emit\n\t if (!this._events.removeListener) {\n\t if (arguments.length === 0)\n\t this._events = {};\n\t else if (this._events[type])\n\t delete this._events[type];\n\t return this;\n\t }\n\t\n\t // emit removeListener for all listeners on all events\n\t if (arguments.length === 0) {\n\t for (key in this._events) {\n\t if (key === 'removeListener') continue;\n\t this.removeAllListeners(key);\n\t }\n\t this.removeAllListeners('removeListener');\n\t this._events = {};\n\t return this;\n\t }\n\t\n\t listeners = this._events[type];\n\t\n\t if (isFunction(listeners)) {\n\t this.removeListener(type, listeners);\n\t } else if (listeners) {\n\t // LIFO order\n\t while (listeners.length)\n\t this.removeListener(type, listeners[listeners.length - 1]);\n\t }\n\t delete this._events[type];\n\t\n\t return this;\n\t};\n\t\n\tEventEmitter.prototype.listeners = function(type) {\n\t var ret;\n\t if (!this._events || !this._events[type])\n\t ret = [];\n\t else if (isFunction(this._events[type]))\n\t ret = [this._events[type]];\n\t else\n\t ret = this._events[type].slice();\n\t return ret;\n\t};\n\t\n\tEventEmitter.prototype.listenerCount = function(type) {\n\t if (this._events) {\n\t var evlistener = this._events[type];\n\t\n\t if (isFunction(evlistener))\n\t return 1;\n\t else if (evlistener)\n\t return evlistener.length;\n\t }\n\t return 0;\n\t};\n\t\n\tEventEmitter.listenerCount = function(emitter, type) {\n\t return emitter.listenerCount(type);\n\t};\n\t\n\tfunction isFunction(arg) {\n\t return typeof arg === 'function';\n\t}\n\t\n\tfunction isNumber(arg) {\n\t return typeof arg === 'number';\n\t}\n\t\n\tfunction isObject(arg) {\n\t return typeof arg === 'object' && arg !== null;\n\t}\n\t\n\tfunction isUndefined(arg) {\n\t return arg === void 0;\n\t}\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {\"use strict\";\n\t// Split a filename into [root, dir, basename, ext], unix version\n\t// 'root' is just a slash, or nothing.\n\tvar splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n\tfunction posixSplitPath(filename) {\n\t var out = splitPathRe.exec(filename);\n\t out.shift();\n\t return out;\n\t}\n\t/**\n\t * Emulates Node's `path` module. This module contains utilities for handling and\n\t * transforming file paths. **All** of these methods perform only string\n\t * transformations. The file system is not consulted to check whether paths are\n\t * valid.\n\t * @see http://nodejs.org/api/path.html\n\t * @class\n\t */\n\tvar path = (function () {\n\t function path() {\n\t }\n\t /**\n\t * Normalize a string path, taking care of '..' and '.' parts.\n\t *\n\t * When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used.\n\t * @example Usage example\n\t * path.normalize('/foo/bar//baz/asdf/quux/..')\n\t * // returns\n\t * '/foo/bar/baz/asdf'\n\t * @param [String] p The path to normalize.\n\t * @return [String]\n\t */\n\t path.normalize = function (p) {\n\t // Special case: '' -> '.'\n\t if (p === '') {\n\t p = '.';\n\t }\n\t // It's very important to know if the path is relative or not, since it\n\t // changes how we process .. and reconstruct the split string.\n\t var absolute = p.charAt(0) === path.sep;\n\t // Remove repeated //s\n\t p = path._removeDuplicateSeps(p);\n\t // Try to remove as many '../' as possible, and remove '.' completely.\n\t var components = p.split(path.sep);\n\t var goodComponents = [];\n\t for (var idx = 0; idx < components.length; idx++) {\n\t var c = components[idx];\n\t if (c === '.') {\n\t continue;\n\t }\n\t else if (c === '..' && (absolute || (!absolute && goodComponents.length > 0 && goodComponents[0] !== '..'))) {\n\t // In the absolute case: Path is relative to root, so we may pop even if\n\t // goodComponents is empty (e.g. /../ => /)\n\t // In the relative case: We're getting rid of a directory that preceded\n\t // it (e.g. /foo/../bar -> /bar)\n\t goodComponents.pop();\n\t }\n\t else {\n\t goodComponents.push(c);\n\t }\n\t }\n\t // Add in '.' when it's a relative path with no other nonempty components.\n\t // Possible results: '.' and './' (input: [''] or [])\n\t // @todo Can probably simplify this logic.\n\t if (!absolute && goodComponents.length < 2) {\n\t switch (goodComponents.length) {\n\t case 1:\n\t if (goodComponents[0] === '') {\n\t goodComponents.unshift('.');\n\t }\n\t break;\n\t default:\n\t goodComponents.push('.');\n\t }\n\t }\n\t p = goodComponents.join(path.sep);\n\t if (absolute && p.charAt(0) !== path.sep) {\n\t p = path.sep + p;\n\t }\n\t return p;\n\t };\n\t /**\n\t * Join all arguments together and normalize the resulting path.\n\t *\n\t * Arguments must be strings.\n\t * @example Usage\n\t * path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')\n\t * // returns\n\t * '/foo/bar/baz/asdf'\n\t *\n\t * path.join('foo', {}, 'bar')\n\t * // throws exception\n\t * TypeError: Arguments to path.join must be strings\n\t * @param [String,...] paths Each component of the path\n\t * @return [String]\n\t */\n\t path.join = function () {\n\t var paths = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t paths[_i - 0] = arguments[_i];\n\t }\n\t // Required: Prune any non-strings from the path. I also prune empty segments\n\t // so we can do a simple join of the array.\n\t var processed = [];\n\t for (var i = 0; i < paths.length; i++) {\n\t var segment = paths[i];\n\t if (typeof segment !== 'string') {\n\t throw new TypeError(\"Invalid argument type to path.join: \" + (typeof segment));\n\t }\n\t else if (segment !== '') {\n\t processed.push(segment);\n\t }\n\t }\n\t return path.normalize(processed.join(path.sep));\n\t };\n\t /**\n\t * Resolves to to an absolute path.\n\t *\n\t * If to isn't already absolute from arguments are prepended in right to left\n\t * order, until an absolute path is found. If after using all from paths still\n\t * no absolute path is found, the current working directory is used as well.\n\t * The resulting path is normalized, and trailing slashes are removed unless\n\t * the path gets resolved to the root directory. Non-string arguments are\n\t * ignored.\n\t *\n\t * Another way to think of it is as a sequence of cd commands in a shell.\n\t *\n\t * path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')\n\t *\n\t * Is similar to:\n\t *\n\t * cd foo/bar\n\t * cd /tmp/file/\n\t * cd ..\n\t * cd a/../subfile\n\t * pwd\n\t *\n\t * The difference is that the different paths don't need to exist and may also\n\t * be files.\n\t * @example Usage example\n\t * path.resolve('/foo/bar', './baz')\n\t * // returns\n\t * '/foo/bar/baz'\n\t *\n\t * path.resolve('/foo/bar', '/tmp/file/')\n\t * // returns\n\t * '/tmp/file'\n\t *\n\t * path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')\n\t * // if currently in /home/myself/node, it returns\n\t * '/home/myself/node/wwwroot/static_files/gif/image.gif'\n\t * @param [String,...] paths\n\t * @return [String]\n\t */\n\t path.resolve = function () {\n\t var paths = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t paths[_i - 0] = arguments[_i];\n\t }\n\t // Monitor for invalid paths, throw out empty paths, and look for the *last*\n\t // absolute path that we see.\n\t var processed = [];\n\t for (var i = 0; i < paths.length; i++) {\n\t var p = paths[i];\n\t if (typeof p !== 'string') {\n\t throw new TypeError(\"Invalid argument type to path.join: \" + (typeof p));\n\t }\n\t else if (p !== '') {\n\t // Remove anything that has occurred before this absolute path, as it\n\t // doesn't matter.\n\t if (p.charAt(0) === path.sep) {\n\t processed = [];\n\t }\n\t processed.push(p);\n\t }\n\t }\n\t // Special: Remove trailing slash unless it's the root\n\t var resolved = path.normalize(processed.join(path.sep));\n\t if (resolved.length > 1 && resolved.charAt(resolved.length - 1) === path.sep) {\n\t return resolved.substr(0, resolved.length - 1);\n\t }\n\t // Special: If it doesn't start with '/', it's relative and we need to append\n\t // the current directory.\n\t if (resolved.charAt(0) !== path.sep) {\n\t // Remove ./, since we're going to append the current directory.\n\t if (resolved.charAt(0) === '.' && (resolved.length === 1 || resolved.charAt(1) === path.sep)) {\n\t resolved = resolved.length === 1 ? '' : resolved.substr(2);\n\t }\n\t // Append the current directory, which *must* be an absolute path.\n\t var cwd = process.cwd();\n\t if (resolved !== '') {\n\t // cwd will never end in a /... unless it's the root.\n\t resolved = this.normalize(cwd + (cwd !== '/' ? path.sep : '') + resolved);\n\t }\n\t else {\n\t resolved = cwd;\n\t }\n\t }\n\t return resolved;\n\t };\n\t /**\n\t * Solve the relative path from from to to.\n\t *\n\t * At times we have two absolute paths, and we need to derive the relative path\n\t * from one to the other. This is actually the reverse transform of\n\t * path.resolve, which means we see that:\n\t *\n\t * path.resolve(from, path.relative(from, to)) == path.resolve(to)\n\t *\n\t * @example Usage example\n\t * path.relative('C:\\\\orandea\\\\test\\\\aaa', 'C:\\\\orandea\\\\impl\\\\bbb')\n\t * // returns\n\t * '..\\\\..\\\\impl\\\\bbb'\n\t *\n\t * path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb')\n\t * // returns\n\t * '../../impl/bbb'\n\t * @param [String] from\n\t * @param [String] to\n\t * @return [String]\n\t */\n\t path.relative = function (from, to) {\n\t var i;\n\t // Alright. Let's resolve these two to absolute paths and remove any\n\t // weirdness.\n\t from = path.resolve(from);\n\t to = path.resolve(to);\n\t var fromSegs = from.split(path.sep);\n\t var toSegs = to.split(path.sep);\n\t // Remove the first segment on both, as it's '' (both are absolute paths)\n\t toSegs.shift();\n\t fromSegs.shift();\n\t // There are two segments to this path:\n\t // * Going *up* the directory hierarchy with '..'\n\t // * Going *down* the directory hierarchy with foo/baz/bat.\n\t var upCount = 0;\n\t var downSegs = [];\n\t // Figure out how many things in 'from' are shared with 'to'.\n\t for (i = 0; i < fromSegs.length; i++) {\n\t var seg = fromSegs[i];\n\t if (seg === toSegs[i]) {\n\t continue;\n\t }\n\t // The rest of 'from', including the current element, indicates how many\n\t // directories we need to go up.\n\t upCount = fromSegs.length - i;\n\t break;\n\t }\n\t // The rest of 'to' indicates where we need to change to. We place this\n\t // outside of the loop, as toSegs.length may be greater than fromSegs.length.\n\t downSegs = toSegs.slice(i);\n\t // Special case: If 'from' is '/'\n\t if (fromSegs.length === 1 && fromSegs[0] === '') {\n\t upCount = 0;\n\t }\n\t // upCount can't be greater than the number of fromSegs\n\t // (cd .. from / is still /)\n\t if (upCount > fromSegs.length) {\n\t upCount = fromSegs.length;\n\t }\n\t // Create the final string!\n\t var rv = '';\n\t for (i = 0; i < upCount; i++) {\n\t rv += '../';\n\t }\n\t rv += downSegs.join(path.sep);\n\t // Special case: Remove trailing '/'. Happens if it's all up and no down.\n\t if (rv.length > 1 && rv.charAt(rv.length - 1) === path.sep) {\n\t rv = rv.substr(0, rv.length - 1);\n\t }\n\t return rv;\n\t };\n\t /**\n\t * Return the directory name of a path. Similar to the Unix `dirname` command.\n\t *\n\t * Note that BrowserFS does not validate if the path is actually a valid\n\t * directory.\n\t * @example Usage example\n\t * path.dirname('/foo/bar/baz/asdf/quux')\n\t * // returns\n\t * '/foo/bar/baz/asdf'\n\t * @param [String] p The path to get the directory name of.\n\t * @return [String]\n\t */\n\t path.dirname = function (p) {\n\t // We get rid of //, but we don't modify anything else (e.g. any extraneous .\n\t // and ../ are kept intact)\n\t p = path._removeDuplicateSeps(p);\n\t var absolute = p.charAt(0) === path.sep;\n\t var sections = p.split(path.sep);\n\t // Do 1 if it's /foo/bar, 2 if it's /foo/bar/\n\t if (sections.pop() === '' && sections.length > 0) {\n\t sections.pop();\n\t }\n\t // # of sections needs to be > 1 if absolute, since the first section is '' for '/'.\n\t // If not absolute, the first section is the first part of the path, and is OK\n\t // to return.\n\t if (sections.length > 1 || (sections.length === 1 && !absolute)) {\n\t return sections.join(path.sep);\n\t }\n\t else if (absolute) {\n\t return path.sep;\n\t }\n\t else {\n\t return '.';\n\t }\n\t };\n\t /**\n\t * Return the last portion of a path. Similar to the Unix basename command.\n\t * @example Usage example\n\t * path.basename('/foo/bar/baz/asdf/quux.html')\n\t * // returns\n\t * 'quux.html'\n\t *\n\t * path.basename('/foo/bar/baz/asdf/quux.html', '.html')\n\t * // returns\n\t * 'quux'\n\t * @param [String] p\n\t * @param [String?] ext\n\t * @return [String]\n\t */\n\t path.basename = function (p, ext) {\n\t if (ext === void 0) { ext = \"\"; }\n\t // Special case: Normalize will modify this to '.'\n\t if (p === '') {\n\t return p;\n\t }\n\t // Normalize the string first to remove any weirdness.\n\t p = path.normalize(p);\n\t // Get the last part of the string.\n\t var sections = p.split(path.sep);\n\t var lastPart = sections[sections.length - 1];\n\t // Special case: If it's empty, then we have a string like so: foo/\n\t // Meaning, 'foo' is guaranteed to be a directory.\n\t if (lastPart === '' && sections.length > 1) {\n\t return sections[sections.length - 2];\n\t }\n\t // Remove the extension, if need be.\n\t if (ext.length > 0) {\n\t var lastPartExt = lastPart.substr(lastPart.length - ext.length);\n\t if (lastPartExt === ext) {\n\t return lastPart.substr(0, lastPart.length - ext.length);\n\t }\n\t }\n\t return lastPart;\n\t };\n\t /**\n\t * Return the extension of the path, from the last '.' to end of string in the\n\t * last portion of the path. If there is no '.' in the last portion of the path\n\t * or the first character of it is '.', then it returns an empty string.\n\t * @example Usage example\n\t * path.extname('index.html')\n\t * // returns\n\t * '.html'\n\t *\n\t * path.extname('index.')\n\t * // returns\n\t * '.'\n\t *\n\t * path.extname('index')\n\t * // returns\n\t * ''\n\t * @param [String] p\n\t * @return [String]\n\t */\n\t path.extname = function (p) {\n\t p = path.normalize(p);\n\t var sections = p.split(path.sep);\n\t p = sections.pop();\n\t // Special case: foo/file.ext/ should return '.ext'\n\t if (p === '' && sections.length > 0) {\n\t p = sections.pop();\n\t }\n\t if (p === '..') {\n\t return '';\n\t }\n\t var i = p.lastIndexOf('.');\n\t if (i === -1 || i === 0) {\n\t return '';\n\t }\n\t return p.substr(i);\n\t };\n\t /**\n\t * Checks if the given path is an absolute path.\n\t *\n\t * Despite not being documented, this is a tested part of Node's path API.\n\t * @param [String] p\n\t * @return [Boolean] True if the path appears to be an absolute path.\n\t */\n\t path.isAbsolute = function (p) {\n\t return p.length > 0 && p.charAt(0) === path.sep;\n\t };\n\t /**\n\t * Unknown. Undocumented.\n\t */\n\t path._makeLong = function (p) {\n\t return p;\n\t };\n\t /**\n\t * Returns an object from a path string.\n\t */\n\t path.parse = function (p) {\n\t var allParts = posixSplitPath(p);\n\t return {\n\t root: allParts[0],\n\t dir: allParts[0] + allParts[1].slice(0, -1),\n\t base: allParts[2],\n\t ext: allParts[3],\n\t name: allParts[2].slice(0, allParts[2].length - allParts[3].length)\n\t };\n\t };\n\t path.format = function (pathObject) {\n\t if (pathObject === null || typeof pathObject !== 'object') {\n\t throw new TypeError(\"Parameter 'pathObject' must be an object, not \" + typeof pathObject);\n\t }\n\t var root = pathObject.root || '';\n\t if (typeof root !== 'string') {\n\t throw new TypeError(\"'pathObject.root' must be a string or undefined, not \" +\n\t typeof pathObject.root);\n\t }\n\t var dir = pathObject.dir ? pathObject.dir + path.sep : '';\n\t var base = pathObject.base || '';\n\t return dir + base;\n\t };\n\t path._removeDuplicateSeps = function (p) {\n\t p = p.replace(this._replaceRegex, this.sep);\n\t return p;\n\t };\n\t // The platform-specific file separator. BrowserFS uses `/`.\n\t path.sep = '/';\n\t path._replaceRegex = new RegExp(\"//+\", 'g');\n\t // The platform-specific path delimiter. BrowserFS uses `:`.\n\t path.delimiter = ':';\n\t path.posix = path;\n\t // XXX: Typing hack. We don't actually support win32.\n\t path.win32 = path;\n\t return path;\n\t}());\n\tvar _ = path;\n\tmodule.exports = path;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(Buffer) {\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar stream = __webpack_require__(11);\n\tvar TTY = (function (_super) {\n\t __extends(TTY, _super);\n\t function TTY() {\n\t _super.call(this);\n\t this.isRaw = false;\n\t this.columns = 80;\n\t this.rows = 120;\n\t this.isTTY = true;\n\t this._bufferedWrites = [];\n\t this._waitingForWrites = false;\n\t }\n\t /**\n\t * Toggle raw mode.\n\t */\n\t TTY.prototype.setRawMode = function (mode) {\n\t if (this.isRaw !== mode) {\n\t this.isRaw = mode;\n\t // [BFS] TTY implementations can use this to change their event emitting\n\t // patterns.\n\t this.emit('modeChange');\n\t }\n\t };\n\t /**\n\t * [BFS] Update the number of columns available on the terminal.\n\t */\n\t TTY.prototype.changeColumns = function (columns) {\n\t if (columns !== this.columns) {\n\t this.columns = columns;\n\t // Resize event.\n\t this.emit('resize');\n\t }\n\t };\n\t /**\n\t * [BFS] Update the number of rows available on the terminal.\n\t */\n\t TTY.prototype.changeRows = function (rows) {\n\t if (rows !== this.rows) {\n\t this.rows = rows;\n\t // Resize event.\n\t this.emit('resize');\n\t }\n\t };\n\t /**\n\t * Returns 'true' if the given object is a TTY.\n\t */\n\t TTY.isatty = function (fd) {\n\t return fd && fd instanceof TTY;\n\t };\n\t TTY.prototype._write = function (chunk, encoding, cb) {\n\t var error;\n\t try {\n\t var data;\n\t if (typeof (chunk) === 'string') {\n\t data = new Buffer(chunk, encoding);\n\t }\n\t else {\n\t data = chunk;\n\t }\n\t this._bufferedWrites.push(data);\n\t if (this._waitingForWrites) {\n\t this._read(1024);\n\t }\n\t }\n\t catch (e) {\n\t error = e;\n\t }\n\t finally {\n\t cb(error);\n\t }\n\t };\n\t TTY.prototype._read = function (size) {\n\t // Size is advisory -- we can ignore it.\n\t if (this._bufferedWrites.length === 0) {\n\t this._waitingForWrites = true;\n\t }\n\t else {\n\t while (this._bufferedWrites.length > 0) {\n\t this._waitingForWrites = this.push(this._bufferedWrites.shift());\n\t if (!this._waitingForWrites) {\n\t break;\n\t }\n\t }\n\t }\n\t };\n\t return TTY;\n\t}(stream.Duplex));\n\tmodule.exports = TTY;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Copyright Joyent, Inc. and other Node contributors.\n\t//\n\t// Permission is hereby granted, free of charge, to any person obtaining a\n\t// copy of this software and associated documentation files (the\n\t// \"Software\"), to deal in the Software without restriction, including\n\t// without limitation the rights to use, copy, modify, merge, publish,\n\t// distribute, sublicense, and/or sell copies of the Software, and to permit\n\t// persons to whom the Software is furnished to do so, subject to the\n\t// following conditions:\n\t//\n\t// The above copyright notice and this permission notice shall be included\n\t// in all copies or substantial portions of the Software.\n\t//\n\t// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n\t// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n\t// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n\t// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n\t// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n\t// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n\t// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\t\n\tmodule.exports = Stream;\n\t\n\tvar EE = __webpack_require__(8).EventEmitter;\n\tvar inherits = __webpack_require__(12);\n\t\n\tinherits(Stream, EE);\n\tStream.Readable = __webpack_require__(13);\n\tStream.Writable = __webpack_require__(27);\n\tStream.Duplex = __webpack_require__(28);\n\tStream.Transform = __webpack_require__(29);\n\tStream.PassThrough = __webpack_require__(30);\n\t\n\t// Backwards-compat with node 0.4.x\n\tStream.Stream = Stream;\n\t\n\t\n\t\n\t// old-style streams. Note that the pipe method (the only relevant\n\t// part of this class) is overridden in the Readable class.\n\t\n\tfunction Stream() {\n\t EE.call(this);\n\t}\n\t\n\tStream.prototype.pipe = function(dest, options) {\n\t var source = this;\n\t\n\t function ondata(chunk) {\n\t if (dest.writable) {\n\t if (false === dest.write(chunk) && source.pause) {\n\t source.pause();\n\t }\n\t }\n\t }\n\t\n\t source.on('data', ondata);\n\t\n\t function ondrain() {\n\t if (source.readable && source.resume) {\n\t source.resume();\n\t }\n\t }\n\t\n\t dest.on('drain', ondrain);\n\t\n\t // If the 'end' option is not supplied, dest.end() will be called when\n\t // source gets the 'end' or 'close' events. Only dest.end() once.\n\t if (!dest._isStdio && (!options || options.end !== false)) {\n\t source.on('end', onend);\n\t source.on('close', onclose);\n\t }\n\t\n\t var didOnEnd = false;\n\t function onend() {\n\t if (didOnEnd) return;\n\t didOnEnd = true;\n\t\n\t dest.end();\n\t }\n\t\n\t\n\t function onclose() {\n\t if (didOnEnd) return;\n\t didOnEnd = true;\n\t\n\t if (typeof dest.destroy === 'function') dest.destroy();\n\t }\n\t\n\t // don't leave dangling pipes when there are errors.\n\t function onerror(er) {\n\t cleanup();\n\t if (EE.listenerCount(this, 'error') === 0) {\n\t throw er; // Unhandled stream error in pipe.\n\t }\n\t }\n\t\n\t source.on('error', onerror);\n\t dest.on('error', onerror);\n\t\n\t // remove all the event listeners that were added.\n\t function cleanup() {\n\t source.removeListener('data', ondata);\n\t dest.removeListener('drain', ondrain);\n\t\n\t source.removeListener('end', onend);\n\t source.removeListener('close', onclose);\n\t\n\t source.removeListener('error', onerror);\n\t dest.removeListener('error', onerror);\n\t\n\t source.removeListener('end', cleanup);\n\t source.removeListener('close', cleanup);\n\t\n\t dest.removeListener('close', cleanup);\n\t }\n\t\n\t source.on('end', cleanup);\n\t source.on('close', cleanup);\n\t\n\t dest.on('close', cleanup);\n\t\n\t dest.emit('pipe', source);\n\t\n\t // Allow for unix-like usage: A.pipe(B).pipe(C)\n\t return dest;\n\t};\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports) {\n\n\tif (typeof Object.create === 'function') {\n\t // implementation from standard node.js 'util' module\n\t module.exports = function inherits(ctor, superCtor) {\n\t ctor.super_ = superCtor\n\t ctor.prototype = Object.create(superCtor.prototype, {\n\t constructor: {\n\t value: ctor,\n\t enumerable: false,\n\t writable: true,\n\t configurable: true\n\t }\n\t });\n\t };\n\t} else {\n\t // old school shim for old browsers\n\t module.exports = function inherits(ctor, superCtor) {\n\t ctor.super_ = superCtor\n\t var TempCtor = function () {}\n\t TempCtor.prototype = superCtor.prototype\n\t ctor.prototype = new TempCtor()\n\t ctor.prototype.constructor = ctor\n\t }\n\t}\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {var Stream = (function (){\n\t try {\n\t return __webpack_require__(11); // hack to fix a circular dependency issue when used with browserify\n\t } catch(_){}\n\t}());\n\texports = module.exports = __webpack_require__(14);\n\texports.Stream = Stream || exports;\n\texports.Readable = exports;\n\texports.Writable = __webpack_require__(22);\n\texports.Duplex = __webpack_require__(21);\n\texports.Transform = __webpack_require__(25);\n\texports.PassThrough = __webpack_require__(26);\n\t\n\tif (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {\n\t module.exports = Stream;\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\t\n\tmodule.exports = Readable;\n\t\n\t/**/\n\tvar processNextTick = __webpack_require__(15);\n\t/**/\n\t\n\t/**/\n\tvar isArray = __webpack_require__(16);\n\t/**/\n\t\n\t/**/\n\tvar Duplex;\n\t/**/\n\t\n\tReadable.ReadableState = ReadableState;\n\t\n\t/**/\n\tvar EE = __webpack_require__(8).EventEmitter;\n\t\n\tvar EElistenerCount = function (emitter, type) {\n\t return emitter.listeners(type).length;\n\t};\n\t/**/\n\t\n\t/**/\n\tvar Stream;\n\t(function () {\n\t try {\n\t Stream = __webpack_require__(11);\n\t } catch (_) {} finally {\n\t if (!Stream) Stream = __webpack_require__(8).EventEmitter;\n\t }\n\t})();\n\t/**/\n\t\n\tvar Buffer = __webpack_require__(2).Buffer;\n\t/**/\n\tvar bufferShim = __webpack_require__(17);\n\t/**/\n\t\n\t/**/\n\tvar util = __webpack_require__(18);\n\tutil.inherits = __webpack_require__(12);\n\t/**/\n\t\n\t/**/\n\tvar debugUtil = __webpack_require__(19);\n\tvar debug = void 0;\n\tif (debugUtil && debugUtil.debuglog) {\n\t debug = debugUtil.debuglog('stream');\n\t} else {\n\t debug = function () {};\n\t}\n\t/**/\n\t\n\tvar BufferList = __webpack_require__(20);\n\tvar StringDecoder;\n\t\n\tutil.inherits(Readable, Stream);\n\t\n\tfunction prependListener(emitter, event, fn) {\n\t // Sadly this is not cacheable as some libraries bundle their own\n\t // event emitter implementation with them.\n\t if (typeof emitter.prependListener === 'function') {\n\t return emitter.prependListener(event, fn);\n\t } else {\n\t // This is a hack to make sure that our error handler is attached before any\n\t // userland ones. NEVER DO THIS. This is here only because this code needs\n\t // to continue to work with older versions of Node.js that do not include\n\t // the prependListener() method. The goal is to eventually remove this hack.\n\t if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n\t }\n\t}\n\t\n\tfunction ReadableState(options, stream) {\n\t Duplex = Duplex || __webpack_require__(21);\n\t\n\t options = options || {};\n\t\n\t // object stream flag. Used to make read(n) ignore n and to\n\t // make all the buffer merging and length checks go away\n\t this.objectMode = !!options.objectMode;\n\t\n\t if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\t\n\t // the point at which it stops calling _read() to fill the buffer\n\t // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\t var hwm = options.highWaterMark;\n\t var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\t this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\t\n\t // cast to ints.\n\t this.highWaterMark = ~~this.highWaterMark;\n\t\n\t // A linked list is used to store data chunks instead of an array because the\n\t // linked list can remove elements from the beginning faster than\n\t // array.shift()\n\t this.buffer = new BufferList();\n\t this.length = 0;\n\t this.pipes = null;\n\t this.pipesCount = 0;\n\t this.flowing = null;\n\t this.ended = false;\n\t this.endEmitted = false;\n\t this.reading = false;\n\t\n\t // a flag to be able to tell if the onwrite cb is called immediately,\n\t // or on a later tick. We set this to true at first, because any\n\t // actions that shouldn't happen until \"later\" should generally also\n\t // not happen before the first write call.\n\t this.sync = true;\n\t\n\t // whenever we return null, then we set a flag to say\n\t // that we're awaiting a 'readable' event emission.\n\t this.needReadable = false;\n\t this.emittedReadable = false;\n\t this.readableListening = false;\n\t this.resumeScheduled = false;\n\t\n\t // Crypto is kind of old and crusty. Historically, its default string\n\t // encoding is 'binary' so we have to make this configurable.\n\t // Everything else in the universe uses 'utf8', though.\n\t this.defaultEncoding = options.defaultEncoding || 'utf8';\n\t\n\t // when piping, we only care about 'readable' events that happen\n\t // after read()ing all the bytes and not getting any pushback.\n\t this.ranOut = false;\n\t\n\t // the number of writers that are awaiting a drain event in .pipe()s\n\t this.awaitDrain = 0;\n\t\n\t // if true, a maybeReadMore has been scheduled\n\t this.readingMore = false;\n\t\n\t this.decoder = null;\n\t this.encoding = null;\n\t if (options.encoding) {\n\t if (!StringDecoder) StringDecoder = __webpack_require__(24).StringDecoder;\n\t this.decoder = new StringDecoder(options.encoding);\n\t this.encoding = options.encoding;\n\t }\n\t}\n\t\n\tfunction Readable(options) {\n\t Duplex = Duplex || __webpack_require__(21);\n\t\n\t if (!(this instanceof Readable)) return new Readable(options);\n\t\n\t this._readableState = new ReadableState(options, this);\n\t\n\t // legacy\n\t this.readable = true;\n\t\n\t if (options && typeof options.read === 'function') this._read = options.read;\n\t\n\t Stream.call(this);\n\t}\n\t\n\t// Manually shove something into the read() buffer.\n\t// This returns true if the highWaterMark has not been hit yet,\n\t// similar to how Writable.write() returns true if you should\n\t// write() some more.\n\tReadable.prototype.push = function (chunk, encoding) {\n\t var state = this._readableState;\n\t\n\t if (!state.objectMode && typeof chunk === 'string') {\n\t encoding = encoding || state.defaultEncoding;\n\t if (encoding !== state.encoding) {\n\t chunk = bufferShim.from(chunk, encoding);\n\t encoding = '';\n\t }\n\t }\n\t\n\t return readableAddChunk(this, state, chunk, encoding, false);\n\t};\n\t\n\t// Unshift should *always* be something directly out of read()\n\tReadable.prototype.unshift = function (chunk) {\n\t var state = this._readableState;\n\t return readableAddChunk(this, state, chunk, '', true);\n\t};\n\t\n\tReadable.prototype.isPaused = function () {\n\t return this._readableState.flowing === false;\n\t};\n\t\n\tfunction readableAddChunk(stream, state, chunk, encoding, addToFront) {\n\t var er = chunkInvalid(state, chunk);\n\t if (er) {\n\t stream.emit('error', er);\n\t } else if (chunk === null) {\n\t state.reading = false;\n\t onEofChunk(stream, state);\n\t } else if (state.objectMode || chunk && chunk.length > 0) {\n\t if (state.ended && !addToFront) {\n\t var e = new Error('stream.push() after EOF');\n\t stream.emit('error', e);\n\t } else if (state.endEmitted && addToFront) {\n\t var _e = new Error('stream.unshift() after end event');\n\t stream.emit('error', _e);\n\t } else {\n\t var skipAdd;\n\t if (state.decoder && !addToFront && !encoding) {\n\t chunk = state.decoder.write(chunk);\n\t skipAdd = !state.objectMode && chunk.length === 0;\n\t }\n\t\n\t if (!addToFront) state.reading = false;\n\t\n\t // Don't add to the buffer if we've decoded to an empty string chunk and\n\t // we're not in object mode\n\t if (!skipAdd) {\n\t // if we want the data now, just emit it.\n\t if (state.flowing && state.length === 0 && !state.sync) {\n\t stream.emit('data', chunk);\n\t stream.read(0);\n\t } else {\n\t // update the buffer info.\n\t state.length += state.objectMode ? 1 : chunk.length;\n\t if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\t\n\t if (state.needReadable) emitReadable(stream);\n\t }\n\t }\n\t\n\t maybeReadMore(stream, state);\n\t }\n\t } else if (!addToFront) {\n\t state.reading = false;\n\t }\n\t\n\t return needMoreData(state);\n\t}\n\t\n\t// if it's past the high water mark, we can push in some more.\n\t// Also, if we have no data yet, we can stand some\n\t// more bytes. This is to work around cases where hwm=0,\n\t// such as the repl. Also, if the push() triggered a\n\t// readable event, and the user called read(largeNumber) such that\n\t// needReadable was set, then we ought to push more, so that another\n\t// 'readable' event will be triggered.\n\tfunction needMoreData(state) {\n\t return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n\t}\n\t\n\t// backwards compatibility.\n\tReadable.prototype.setEncoding = function (enc) {\n\t if (!StringDecoder) StringDecoder = __webpack_require__(24).StringDecoder;\n\t this._readableState.decoder = new StringDecoder(enc);\n\t this._readableState.encoding = enc;\n\t return this;\n\t};\n\t\n\t// Don't raise the hwm > 8MB\n\tvar MAX_HWM = 0x800000;\n\tfunction computeNewHighWaterMark(n) {\n\t if (n >= MAX_HWM) {\n\t n = MAX_HWM;\n\t } else {\n\t // Get the next highest power of 2 to prevent increasing hwm excessively in\n\t // tiny amounts\n\t n--;\n\t n |= n >>> 1;\n\t n |= n >>> 2;\n\t n |= n >>> 4;\n\t n |= n >>> 8;\n\t n |= n >>> 16;\n\t n++;\n\t }\n\t return n;\n\t}\n\t\n\t// This function is designed to be inlinable, so please take care when making\n\t// changes to the function body.\n\tfunction howMuchToRead(n, state) {\n\t if (n <= 0 || state.length === 0 && state.ended) return 0;\n\t if (state.objectMode) return 1;\n\t if (n !== n) {\n\t // Only flow one buffer at a time\n\t if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n\t }\n\t // If we're asking for more than the current hwm, then raise the hwm.\n\t if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n\t if (n <= state.length) return n;\n\t // Don't have enough\n\t if (!state.ended) {\n\t state.needReadable = true;\n\t return 0;\n\t }\n\t return state.length;\n\t}\n\t\n\t// you can override either this method, or the async _read(n) below.\n\tReadable.prototype.read = function (n) {\n\t debug('read', n);\n\t n = parseInt(n, 10);\n\t var state = this._readableState;\n\t var nOrig = n;\n\t\n\t if (n !== 0) state.emittedReadable = false;\n\t\n\t // if we're doing read(0) to trigger a readable event, but we\n\t // already have a bunch of data in the buffer, then just trigger\n\t // the 'readable' event and move on.\n\t if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n\t debug('read: emitReadable', state.length, state.ended);\n\t if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n\t return null;\n\t }\n\t\n\t n = howMuchToRead(n, state);\n\t\n\t // if we've ended, and we're now clear, then finish it up.\n\t if (n === 0 && state.ended) {\n\t if (state.length === 0) endReadable(this);\n\t return null;\n\t }\n\t\n\t // All the actual chunk generation logic needs to be\n\t // *below* the call to _read. The reason is that in certain\n\t // synthetic stream cases, such as passthrough streams, _read\n\t // may be a completely synchronous operation which may change\n\t // the state of the read buffer, providing enough data when\n\t // before there was *not* enough.\n\t //\n\t // So, the steps are:\n\t // 1. Figure out what the state of things will be after we do\n\t // a read from the buffer.\n\t //\n\t // 2. If that resulting state will trigger a _read, then call _read.\n\t // Note that this may be asynchronous, or synchronous. Yes, it is\n\t // deeply ugly to write APIs this way, but that still doesn't mean\n\t // that the Readable class should behave improperly, as streams are\n\t // designed to be sync/async agnostic.\n\t // Take note if the _read call is sync or async (ie, if the read call\n\t // has returned yet), so that we know whether or not it's safe to emit\n\t // 'readable' etc.\n\t //\n\t // 3. Actually pull the requested chunks out of the buffer and return.\n\t\n\t // if we need a readable event, then we need to do some reading.\n\t var doRead = state.needReadable;\n\t debug('need readable', doRead);\n\t\n\t // if we currently have less than the highWaterMark, then also read some\n\t if (state.length === 0 || state.length - n < state.highWaterMark) {\n\t doRead = true;\n\t debug('length less than watermark', doRead);\n\t }\n\t\n\t // however, if we've ended, then there's no point, and if we're already\n\t // reading, then it's unnecessary.\n\t if (state.ended || state.reading) {\n\t doRead = false;\n\t debug('reading or ended', doRead);\n\t } else if (doRead) {\n\t debug('do read');\n\t state.reading = true;\n\t state.sync = true;\n\t // if the length is currently zero, then we *need* a readable event.\n\t if (state.length === 0) state.needReadable = true;\n\t // call internal read method\n\t this._read(state.highWaterMark);\n\t state.sync = false;\n\t // If _read pushed data synchronously, then `reading` will be false,\n\t // and we need to re-evaluate how much data we can return to the user.\n\t if (!state.reading) n = howMuchToRead(nOrig, state);\n\t }\n\t\n\t var ret;\n\t if (n > 0) ret = fromList(n, state);else ret = null;\n\t\n\t if (ret === null) {\n\t state.needReadable = true;\n\t n = 0;\n\t } else {\n\t state.length -= n;\n\t }\n\t\n\t if (state.length === 0) {\n\t // If we have nothing in the buffer, then we want to know\n\t // as soon as we *do* get something into the buffer.\n\t if (!state.ended) state.needReadable = true;\n\t\n\t // If we tried to read() past the EOF, then emit end on the next tick.\n\t if (nOrig !== n && state.ended) endReadable(this);\n\t }\n\t\n\t if (ret !== null) this.emit('data', ret);\n\t\n\t return ret;\n\t};\n\t\n\tfunction chunkInvalid(state, chunk) {\n\t var er = null;\n\t if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n\t er = new TypeError('Invalid non-string/buffer chunk');\n\t }\n\t return er;\n\t}\n\t\n\tfunction onEofChunk(stream, state) {\n\t if (state.ended) return;\n\t if (state.decoder) {\n\t var chunk = state.decoder.end();\n\t if (chunk && chunk.length) {\n\t state.buffer.push(chunk);\n\t state.length += state.objectMode ? 1 : chunk.length;\n\t }\n\t }\n\t state.ended = true;\n\t\n\t // emit 'readable' now to make sure it gets picked up.\n\t emitReadable(stream);\n\t}\n\t\n\t// Don't emit readable right away in sync mode, because this can trigger\n\t// another read() call => stack overflow. This way, it might trigger\n\t// a nextTick recursion warning, but that's not so bad.\n\tfunction emitReadable(stream) {\n\t var state = stream._readableState;\n\t state.needReadable = false;\n\t if (!state.emittedReadable) {\n\t debug('emitReadable', state.flowing);\n\t state.emittedReadable = true;\n\t if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);\n\t }\n\t}\n\t\n\tfunction emitReadable_(stream) {\n\t debug('emit readable');\n\t stream.emit('readable');\n\t flow(stream);\n\t}\n\t\n\t// at this point, the user has presumably seen the 'readable' event,\n\t// and called read() to consume some data. that may have triggered\n\t// in turn another _read(n) call, in which case reading = true if\n\t// it's in progress.\n\t// However, if we're not ended, or reading, and the length < hwm,\n\t// then go ahead and try to read some more preemptively.\n\tfunction maybeReadMore(stream, state) {\n\t if (!state.readingMore) {\n\t state.readingMore = true;\n\t processNextTick(maybeReadMore_, stream, state);\n\t }\n\t}\n\t\n\tfunction maybeReadMore_(stream, state) {\n\t var len = state.length;\n\t while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n\t debug('maybeReadMore read 0');\n\t stream.read(0);\n\t if (len === state.length)\n\t // didn't get any data, stop spinning.\n\t break;else len = state.length;\n\t }\n\t state.readingMore = false;\n\t}\n\t\n\t// abstract method. to be overridden in specific implementation classes.\n\t// call cb(er, data) where data is <= n in length.\n\t// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n\t// arbitrary, and perhaps not very meaningful.\n\tReadable.prototype._read = function (n) {\n\t this.emit('error', new Error('_read() is not implemented'));\n\t};\n\t\n\tReadable.prototype.pipe = function (dest, pipeOpts) {\n\t var src = this;\n\t var state = this._readableState;\n\t\n\t switch (state.pipesCount) {\n\t case 0:\n\t state.pipes = dest;\n\t break;\n\t case 1:\n\t state.pipes = [state.pipes, dest];\n\t break;\n\t default:\n\t state.pipes.push(dest);\n\t break;\n\t }\n\t state.pipesCount += 1;\n\t debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\t\n\t var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\t\n\t var endFn = doEnd ? onend : cleanup;\n\t if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);\n\t\n\t dest.on('unpipe', onunpipe);\n\t function onunpipe(readable) {\n\t debug('onunpipe');\n\t if (readable === src) {\n\t cleanup();\n\t }\n\t }\n\t\n\t function onend() {\n\t debug('onend');\n\t dest.end();\n\t }\n\t\n\t // when the dest drains, it reduces the awaitDrain counter\n\t // on the source. This would be more elegant with a .once()\n\t // handler in flow(), but adding and removing repeatedly is\n\t // too slow.\n\t var ondrain = pipeOnDrain(src);\n\t dest.on('drain', ondrain);\n\t\n\t var cleanedUp = false;\n\t function cleanup() {\n\t debug('cleanup');\n\t // cleanup event handlers once the pipe is broken\n\t dest.removeListener('close', onclose);\n\t dest.removeListener('finish', onfinish);\n\t dest.removeListener('drain', ondrain);\n\t dest.removeListener('error', onerror);\n\t dest.removeListener('unpipe', onunpipe);\n\t src.removeListener('end', onend);\n\t src.removeListener('end', cleanup);\n\t src.removeListener('data', ondata);\n\t\n\t cleanedUp = true;\n\t\n\t // if the reader is waiting for a drain event from this\n\t // specific writer, then it would cause it to never start\n\t // flowing again.\n\t // So, if this is awaiting a drain, then we just call it now.\n\t // If we don't know, then assume that we are waiting for one.\n\t if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n\t }\n\t\n\t // If the user pushes more data while we're writing to dest then we'll end up\n\t // in ondata again. However, we only want to increase awaitDrain once because\n\t // dest will only emit one 'drain' event for the multiple writes.\n\t // => Introduce a guard on increasing awaitDrain.\n\t var increasedAwaitDrain = false;\n\t src.on('data', ondata);\n\t function ondata(chunk) {\n\t debug('ondata');\n\t increasedAwaitDrain = false;\n\t var ret = dest.write(chunk);\n\t if (false === ret && !increasedAwaitDrain) {\n\t // If the user unpiped during `dest.write()`, it is possible\n\t // to get stuck in a permanently paused state if that write\n\t // also returned false.\n\t // => Check whether `dest` is still a piping destination.\n\t if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n\t debug('false write response, pause', src._readableState.awaitDrain);\n\t src._readableState.awaitDrain++;\n\t increasedAwaitDrain = true;\n\t }\n\t src.pause();\n\t }\n\t }\n\t\n\t // if the dest has an error, then stop piping into it.\n\t // however, don't suppress the throwing behavior for this.\n\t function onerror(er) {\n\t debug('onerror', er);\n\t unpipe();\n\t dest.removeListener('error', onerror);\n\t if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n\t }\n\t\n\t // Make sure our error handler is attached before userland ones.\n\t prependListener(dest, 'error', onerror);\n\t\n\t // Both close and finish should trigger unpipe, but only once.\n\t function onclose() {\n\t dest.removeListener('finish', onfinish);\n\t unpipe();\n\t }\n\t dest.once('close', onclose);\n\t function onfinish() {\n\t debug('onfinish');\n\t dest.removeListener('close', onclose);\n\t unpipe();\n\t }\n\t dest.once('finish', onfinish);\n\t\n\t function unpipe() {\n\t debug('unpipe');\n\t src.unpipe(dest);\n\t }\n\t\n\t // tell the dest that it's being piped to\n\t dest.emit('pipe', src);\n\t\n\t // start the flow if it hasn't been started already.\n\t if (!state.flowing) {\n\t debug('pipe resume');\n\t src.resume();\n\t }\n\t\n\t return dest;\n\t};\n\t\n\tfunction pipeOnDrain(src) {\n\t return function () {\n\t var state = src._readableState;\n\t debug('pipeOnDrain', state.awaitDrain);\n\t if (state.awaitDrain) state.awaitDrain--;\n\t if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n\t state.flowing = true;\n\t flow(src);\n\t }\n\t };\n\t}\n\t\n\tReadable.prototype.unpipe = function (dest) {\n\t var state = this._readableState;\n\t\n\t // if we're not piping anywhere, then do nothing.\n\t if (state.pipesCount === 0) return this;\n\t\n\t // just one destination. most common case.\n\t if (state.pipesCount === 1) {\n\t // passed in one, but it's not the right one.\n\t if (dest && dest !== state.pipes) return this;\n\t\n\t if (!dest) dest = state.pipes;\n\t\n\t // got a match.\n\t state.pipes = null;\n\t state.pipesCount = 0;\n\t state.flowing = false;\n\t if (dest) dest.emit('unpipe', this);\n\t return this;\n\t }\n\t\n\t // slow case. multiple pipe destinations.\n\t\n\t if (!dest) {\n\t // remove all.\n\t var dests = state.pipes;\n\t var len = state.pipesCount;\n\t state.pipes = null;\n\t state.pipesCount = 0;\n\t state.flowing = false;\n\t\n\t for (var i = 0; i < len; i++) {\n\t dests[i].emit('unpipe', this);\n\t }return this;\n\t }\n\t\n\t // try to find the right one.\n\t var index = indexOf(state.pipes, dest);\n\t if (index === -1) return this;\n\t\n\t state.pipes.splice(index, 1);\n\t state.pipesCount -= 1;\n\t if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\t\n\t dest.emit('unpipe', this);\n\t\n\t return this;\n\t};\n\t\n\t// set up data events if they are asked for\n\t// Ensure readable listeners eventually get something\n\tReadable.prototype.on = function (ev, fn) {\n\t var res = Stream.prototype.on.call(this, ev, fn);\n\t\n\t if (ev === 'data') {\n\t // Start flowing on next tick if stream isn't explicitly paused\n\t if (this._readableState.flowing !== false) this.resume();\n\t } else if (ev === 'readable') {\n\t var state = this._readableState;\n\t if (!state.endEmitted && !state.readableListening) {\n\t state.readableListening = state.needReadable = true;\n\t state.emittedReadable = false;\n\t if (!state.reading) {\n\t processNextTick(nReadingNextTick, this);\n\t } else if (state.length) {\n\t emitReadable(this, state);\n\t }\n\t }\n\t }\n\t\n\t return res;\n\t};\n\tReadable.prototype.addListener = Readable.prototype.on;\n\t\n\tfunction nReadingNextTick(self) {\n\t debug('readable nexttick read 0');\n\t self.read(0);\n\t}\n\t\n\t// pause() and resume() are remnants of the legacy readable stream API\n\t// If the user uses them, then switch into old mode.\n\tReadable.prototype.resume = function () {\n\t var state = this._readableState;\n\t if (!state.flowing) {\n\t debug('resume');\n\t state.flowing = true;\n\t resume(this, state);\n\t }\n\t return this;\n\t};\n\t\n\tfunction resume(stream, state) {\n\t if (!state.resumeScheduled) {\n\t state.resumeScheduled = true;\n\t processNextTick(resume_, stream, state);\n\t }\n\t}\n\t\n\tfunction resume_(stream, state) {\n\t if (!state.reading) {\n\t debug('resume read 0');\n\t stream.read(0);\n\t }\n\t\n\t state.resumeScheduled = false;\n\t state.awaitDrain = 0;\n\t stream.emit('resume');\n\t flow(stream);\n\t if (state.flowing && !state.reading) stream.read(0);\n\t}\n\t\n\tReadable.prototype.pause = function () {\n\t debug('call pause flowing=%j', this._readableState.flowing);\n\t if (false !== this._readableState.flowing) {\n\t debug('pause');\n\t this._readableState.flowing = false;\n\t this.emit('pause');\n\t }\n\t return this;\n\t};\n\t\n\tfunction flow(stream) {\n\t var state = stream._readableState;\n\t debug('flow', state.flowing);\n\t while (state.flowing && stream.read() !== null) {}\n\t}\n\t\n\t// wrap an old-style stream as the async data source.\n\t// This is *not* part of the readable stream interface.\n\t// It is an ugly unfortunate mess of history.\n\tReadable.prototype.wrap = function (stream) {\n\t var state = this._readableState;\n\t var paused = false;\n\t\n\t var self = this;\n\t stream.on('end', function () {\n\t debug('wrapped end');\n\t if (state.decoder && !state.ended) {\n\t var chunk = state.decoder.end();\n\t if (chunk && chunk.length) self.push(chunk);\n\t }\n\t\n\t self.push(null);\n\t });\n\t\n\t stream.on('data', function (chunk) {\n\t debug('wrapped data');\n\t if (state.decoder) chunk = state.decoder.write(chunk);\n\t\n\t // don't skip over falsy values in objectMode\n\t if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\t\n\t var ret = self.push(chunk);\n\t if (!ret) {\n\t paused = true;\n\t stream.pause();\n\t }\n\t });\n\t\n\t // proxy all the other methods.\n\t // important when wrapping filters and duplexes.\n\t for (var i in stream) {\n\t if (this[i] === undefined && typeof stream[i] === 'function') {\n\t this[i] = function (method) {\n\t return function () {\n\t return stream[method].apply(stream, arguments);\n\t };\n\t }(i);\n\t }\n\t }\n\t\n\t // proxy certain important events.\n\t var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n\t forEach(events, function (ev) {\n\t stream.on(ev, self.emit.bind(self, ev));\n\t });\n\t\n\t // when we try to consume some more bytes, simply unpause the\n\t // underlying stream.\n\t self._read = function (n) {\n\t debug('wrapped _read', n);\n\t if (paused) {\n\t paused = false;\n\t stream.resume();\n\t }\n\t };\n\t\n\t return self;\n\t};\n\t\n\t// exposed for testing purposes only.\n\tReadable._fromList = fromList;\n\t\n\t// Pluck off n bytes from an array of buffers.\n\t// Length is the combined lengths of all the buffers in the list.\n\t// This function is designed to be inlinable, so please take care when making\n\t// changes to the function body.\n\tfunction fromList(n, state) {\n\t // nothing buffered\n\t if (state.length === 0) return null;\n\t\n\t var ret;\n\t if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n\t // read it all, truncate the list\n\t if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n\t state.buffer.clear();\n\t } else {\n\t // read part of list\n\t ret = fromListPartial(n, state.buffer, state.decoder);\n\t }\n\t\n\t return ret;\n\t}\n\t\n\t// Extracts only enough buffered data to satisfy the amount requested.\n\t// This function is designed to be inlinable, so please take care when making\n\t// changes to the function body.\n\tfunction fromListPartial(n, list, hasStrings) {\n\t var ret;\n\t if (n < list.head.data.length) {\n\t // slice is the same for buffers and strings\n\t ret = list.head.data.slice(0, n);\n\t list.head.data = list.head.data.slice(n);\n\t } else if (n === list.head.data.length) {\n\t // first chunk is a perfect match\n\t ret = list.shift();\n\t } else {\n\t // result spans more than one buffer\n\t ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n\t }\n\t return ret;\n\t}\n\t\n\t// Copies a specified amount of characters from the list of buffered data\n\t// chunks.\n\t// This function is designed to be inlinable, so please take care when making\n\t// changes to the function body.\n\tfunction copyFromBufferString(n, list) {\n\t var p = list.head;\n\t var c = 1;\n\t var ret = p.data;\n\t n -= ret.length;\n\t while (p = p.next) {\n\t var str = p.data;\n\t var nb = n > str.length ? str.length : n;\n\t if (nb === str.length) ret += str;else ret += str.slice(0, n);\n\t n -= nb;\n\t if (n === 0) {\n\t if (nb === str.length) {\n\t ++c;\n\t if (p.next) list.head = p.next;else list.head = list.tail = null;\n\t } else {\n\t list.head = p;\n\t p.data = str.slice(nb);\n\t }\n\t break;\n\t }\n\t ++c;\n\t }\n\t list.length -= c;\n\t return ret;\n\t}\n\t\n\t// Copies a specified amount of bytes from the list of buffered data chunks.\n\t// This function is designed to be inlinable, so please take care when making\n\t// changes to the function body.\n\tfunction copyFromBuffer(n, list) {\n\t var ret = bufferShim.allocUnsafe(n);\n\t var p = list.head;\n\t var c = 1;\n\t p.data.copy(ret);\n\t n -= p.data.length;\n\t while (p = p.next) {\n\t var buf = p.data;\n\t var nb = n > buf.length ? buf.length : n;\n\t buf.copy(ret, ret.length - n, 0, nb);\n\t n -= nb;\n\t if (n === 0) {\n\t if (nb === buf.length) {\n\t ++c;\n\t if (p.next) list.head = p.next;else list.head = list.tail = null;\n\t } else {\n\t list.head = p;\n\t p.data = buf.slice(nb);\n\t }\n\t break;\n\t }\n\t ++c;\n\t }\n\t list.length -= c;\n\t return ret;\n\t}\n\t\n\tfunction endReadable(stream) {\n\t var state = stream._readableState;\n\t\n\t // If we get here before consuming all the bytes, then that is a\n\t // bug in node. Should never happen.\n\t if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\t\n\t if (!state.endEmitted) {\n\t state.ended = true;\n\t processNextTick(endReadableNT, state, stream);\n\t }\n\t}\n\t\n\tfunction endReadableNT(state, stream) {\n\t // Check that we didn't get one last unshift.\n\t if (!state.endEmitted && state.length === 0) {\n\t state.endEmitted = true;\n\t stream.readable = false;\n\t stream.emit('end');\n\t }\n\t}\n\t\n\tfunction forEach(xs, f) {\n\t for (var i = 0, l = xs.length; i < l; i++) {\n\t f(xs[i], i);\n\t }\n\t}\n\t\n\tfunction indexOf(xs, x) {\n\t for (var i = 0, l = xs.length; i < l; i++) {\n\t if (xs[i] === x) return i;\n\t }\n\t return -1;\n\t}\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\t\n\tif (!process.version ||\n\t process.version.indexOf('v0.') === 0 ||\n\t process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n\t module.exports = nextTick;\n\t} else {\n\t module.exports = process.nextTick;\n\t}\n\t\n\tfunction nextTick(fn, arg1, arg2, arg3) {\n\t if (typeof fn !== 'function') {\n\t throw new TypeError('\"callback\" argument must be a function');\n\t }\n\t var len = arguments.length;\n\t var args, i;\n\t switch (len) {\n\t case 0:\n\t case 1:\n\t return process.nextTick(fn);\n\t case 2:\n\t return process.nextTick(function afterTickOne() {\n\t fn.call(null, arg1);\n\t });\n\t case 3:\n\t return process.nextTick(function afterTickTwo() {\n\t fn.call(null, arg1, arg2);\n\t });\n\t case 4:\n\t return process.nextTick(function afterTickThree() {\n\t fn.call(null, arg1, arg2, arg3);\n\t });\n\t default:\n\t args = new Array(len - 1);\n\t i = 0;\n\t while (i < args.length) {\n\t args[i++] = arguments[i];\n\t }\n\t return process.nextTick(function afterTick() {\n\t fn.apply(null, args);\n\t });\n\t }\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ },\n/* 16 */\n/***/ function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = Array.isArray || function (arr) {\n\t return toString.call(arr) == '[object Array]';\n\t};\n\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tvar buffer = __webpack_require__(2);\n\tvar Buffer = buffer.Buffer;\n\tvar SlowBuffer = buffer.SlowBuffer;\n\tvar MAX_LEN = buffer.kMaxLength || 2147483647;\n\texports.alloc = function alloc(size, fill, encoding) {\n\t if (typeof Buffer.alloc === 'function') {\n\t return Buffer.alloc(size, fill, encoding);\n\t }\n\t if (typeof encoding === 'number') {\n\t throw new TypeError('encoding must not be number');\n\t }\n\t if (typeof size !== 'number') {\n\t throw new TypeError('size must be a number');\n\t }\n\t if (size > MAX_LEN) {\n\t throw new RangeError('size is too large');\n\t }\n\t var enc = encoding;\n\t var _fill = fill;\n\t if (_fill === undefined) {\n\t enc = undefined;\n\t _fill = 0;\n\t }\n\t var buf = new Buffer(size);\n\t if (typeof _fill === 'string') {\n\t var fillBuf = new Buffer(_fill, enc);\n\t var flen = fillBuf.length;\n\t var i = -1;\n\t while (++i < size) {\n\t buf[i] = fillBuf[i % flen];\n\t }\n\t } else {\n\t buf.fill(_fill);\n\t }\n\t return buf;\n\t}\n\texports.allocUnsafe = function allocUnsafe(size) {\n\t if (typeof Buffer.allocUnsafe === 'function') {\n\t return Buffer.allocUnsafe(size);\n\t }\n\t if (typeof size !== 'number') {\n\t throw new TypeError('size must be a number');\n\t }\n\t if (size > MAX_LEN) {\n\t throw new RangeError('size is too large');\n\t }\n\t return new Buffer(size);\n\t}\n\texports.from = function from(value, encodingOrOffset, length) {\n\t if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {\n\t return Buffer.from(value, encodingOrOffset, length);\n\t }\n\t if (typeof value === 'number') {\n\t throw new TypeError('\"value\" argument must not be a number');\n\t }\n\t if (typeof value === 'string') {\n\t return new Buffer(value, encodingOrOffset);\n\t }\n\t if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n\t var offset = encodingOrOffset;\n\t if (arguments.length === 1) {\n\t return new Buffer(value);\n\t }\n\t if (typeof offset === 'undefined') {\n\t offset = 0;\n\t }\n\t var len = length;\n\t if (typeof len === 'undefined') {\n\t len = value.byteLength - offset;\n\t }\n\t if (offset >= value.byteLength) {\n\t throw new RangeError('\\'offset\\' is out of bounds');\n\t }\n\t if (len > value.byteLength - offset) {\n\t throw new RangeError('\\'length\\' is out of bounds');\n\t }\n\t return new Buffer(value.slice(offset, offset + len));\n\t }\n\t if (Buffer.isBuffer(value)) {\n\t var out = new Buffer(value.length);\n\t value.copy(out, 0, 0, value.length);\n\t return out;\n\t }\n\t if (value) {\n\t if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {\n\t return new Buffer(value);\n\t }\n\t if (value.type === 'Buffer' && Array.isArray(value.data)) {\n\t return new Buffer(value.data);\n\t }\n\t }\n\t\n\t throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');\n\t}\n\texports.allocUnsafeSlow = function allocUnsafeSlow(size) {\n\t if (typeof Buffer.allocUnsafeSlow === 'function') {\n\t return Buffer.allocUnsafeSlow(size);\n\t }\n\t if (typeof size !== 'number') {\n\t throw new TypeError('size must be a number');\n\t }\n\t if (size >= MAX_LEN) {\n\t throw new RangeError('size is too large');\n\t }\n\t return new SlowBuffer(size);\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors.\n\t//\n\t// Permission is hereby granted, free of charge, to any person obtaining a\n\t// copy of this software and associated documentation files (the\n\t// \"Software\"), to deal in the Software without restriction, including\n\t// without limitation the rights to use, copy, modify, merge, publish,\n\t// distribute, sublicense, and/or sell copies of the Software, and to permit\n\t// persons to whom the Software is furnished to do so, subject to the\n\t// following conditions:\n\t//\n\t// The above copyright notice and this permission notice shall be included\n\t// in all copies or substantial portions of the Software.\n\t//\n\t// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n\t// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n\t// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n\t// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n\t// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n\t// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n\t// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\t\n\t// NOTE: These type checking functions intentionally don't use `instanceof`\n\t// because it is fragile and can be easily faked with `Object.create()`.\n\t\n\tfunction isArray(arg) {\n\t if (Array.isArray) {\n\t return Array.isArray(arg);\n\t }\n\t return objectToString(arg) === '[object Array]';\n\t}\n\texports.isArray = isArray;\n\t\n\tfunction isBoolean(arg) {\n\t return typeof arg === 'boolean';\n\t}\n\texports.isBoolean = isBoolean;\n\t\n\tfunction isNull(arg) {\n\t return arg === null;\n\t}\n\texports.isNull = isNull;\n\t\n\tfunction isNullOrUndefined(arg) {\n\t return arg == null;\n\t}\n\texports.isNullOrUndefined = isNullOrUndefined;\n\t\n\tfunction isNumber(arg) {\n\t return typeof arg === 'number';\n\t}\n\texports.isNumber = isNumber;\n\t\n\tfunction isString(arg) {\n\t return typeof arg === 'string';\n\t}\n\texports.isString = isString;\n\t\n\tfunction isSymbol(arg) {\n\t return typeof arg === 'symbol';\n\t}\n\texports.isSymbol = isSymbol;\n\t\n\tfunction isUndefined(arg) {\n\t return arg === void 0;\n\t}\n\texports.isUndefined = isUndefined;\n\t\n\tfunction isRegExp(re) {\n\t return objectToString(re) === '[object RegExp]';\n\t}\n\texports.isRegExp = isRegExp;\n\t\n\tfunction isObject(arg) {\n\t return typeof arg === 'object' && arg !== null;\n\t}\n\texports.isObject = isObject;\n\t\n\tfunction isDate(d) {\n\t return objectToString(d) === '[object Date]';\n\t}\n\texports.isDate = isDate;\n\t\n\tfunction isError(e) {\n\t return (objectToString(e) === '[object Error]' || e instanceof Error);\n\t}\n\texports.isError = isError;\n\t\n\tfunction isFunction(arg) {\n\t return typeof arg === 'function';\n\t}\n\texports.isFunction = isFunction;\n\t\n\tfunction isPrimitive(arg) {\n\t return arg === null ||\n\t typeof arg === 'boolean' ||\n\t typeof arg === 'number' ||\n\t typeof arg === 'string' ||\n\t typeof arg === 'symbol' || // ES6 symbol\n\t typeof arg === 'undefined';\n\t}\n\texports.isPrimitive = isPrimitive;\n\t\n\texports.isBuffer = Buffer.isBuffer;\n\t\n\tfunction objectToString(o) {\n\t return Object.prototype.toString.call(o);\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ },\n/* 19 */\n/***/ function(module, exports) {\n\n\t/* (ignored) */\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar Buffer = __webpack_require__(2).Buffer;\n\t/**/\n\tvar bufferShim = __webpack_require__(17);\n\t/**/\n\t\n\tmodule.exports = BufferList;\n\t\n\tfunction BufferList() {\n\t this.head = null;\n\t this.tail = null;\n\t this.length = 0;\n\t}\n\t\n\tBufferList.prototype.push = function (v) {\n\t var entry = { data: v, next: null };\n\t if (this.length > 0) this.tail.next = entry;else this.head = entry;\n\t this.tail = entry;\n\t ++this.length;\n\t};\n\t\n\tBufferList.prototype.unshift = function (v) {\n\t var entry = { data: v, next: this.head };\n\t if (this.length === 0) this.tail = entry;\n\t this.head = entry;\n\t ++this.length;\n\t};\n\t\n\tBufferList.prototype.shift = function () {\n\t if (this.length === 0) return;\n\t var ret = this.head.data;\n\t if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n\t --this.length;\n\t return ret;\n\t};\n\t\n\tBufferList.prototype.clear = function () {\n\t this.head = this.tail = null;\n\t this.length = 0;\n\t};\n\t\n\tBufferList.prototype.join = function (s) {\n\t if (this.length === 0) return '';\n\t var p = this.head;\n\t var ret = '' + p.data;\n\t while (p = p.next) {\n\t ret += s + p.data;\n\t }return ret;\n\t};\n\t\n\tBufferList.prototype.concat = function (n) {\n\t if (this.length === 0) return bufferShim.alloc(0);\n\t if (this.length === 1) return this.head.data;\n\t var ret = bufferShim.allocUnsafe(n >>> 0);\n\t var p = this.head;\n\t var i = 0;\n\t while (p) {\n\t p.data.copy(ret, i);\n\t i += p.data.length;\n\t p = p.next;\n\t }\n\t return ret;\n\t};\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// a duplex stream is just a stream that is both readable and writable.\n\t// Since JS doesn't have multiple prototypal inheritance, this class\n\t// prototypally inherits from Readable, and then parasitically from\n\t// Writable.\n\t\n\t'use strict';\n\t\n\t/**/\n\t\n\tvar objectKeys = Object.keys || function (obj) {\n\t var keys = [];\n\t for (var key in obj) {\n\t keys.push(key);\n\t }return keys;\n\t};\n\t/**/\n\t\n\tmodule.exports = Duplex;\n\t\n\t/**/\n\tvar processNextTick = __webpack_require__(15);\n\t/**/\n\t\n\t/**/\n\tvar util = __webpack_require__(18);\n\tutil.inherits = __webpack_require__(12);\n\t/**/\n\t\n\tvar Readable = __webpack_require__(14);\n\tvar Writable = __webpack_require__(22);\n\t\n\tutil.inherits(Duplex, Readable);\n\t\n\tvar keys = objectKeys(Writable.prototype);\n\tfor (var v = 0; v < keys.length; v++) {\n\t var method = keys[v];\n\t if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n\t}\n\t\n\tfunction Duplex(options) {\n\t if (!(this instanceof Duplex)) return new Duplex(options);\n\t\n\t Readable.call(this, options);\n\t Writable.call(this, options);\n\t\n\t if (options && options.readable === false) this.readable = false;\n\t\n\t if (options && options.writable === false) this.writable = false;\n\t\n\t this.allowHalfOpen = true;\n\t if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\t\n\t this.once('end', onend);\n\t}\n\t\n\t// the no-half-open enforcer\n\tfunction onend() {\n\t // if we allow half-open state, or if the writable side ended,\n\t // then we're ok.\n\t if (this.allowHalfOpen || this._writableState.ended) return;\n\t\n\t // no more data can be written.\n\t // But allow more writes to happen in this tick.\n\t processNextTick(onEndNT, this);\n\t}\n\t\n\tfunction onEndNT(self) {\n\t self.end();\n\t}\n\t\n\tfunction forEach(xs, f) {\n\t for (var i = 0, l = xs.length; i < l; i++) {\n\t f(xs[i], i);\n\t }\n\t}\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {// A bit simpler than readable streams.\n\t// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n\t// the drain event emission and buffering.\n\t\n\t'use strict';\n\t\n\tmodule.exports = Writable;\n\t\n\t/**/\n\tvar processNextTick = __webpack_require__(15);\n\t/**/\n\t\n\t/**/\n\tvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;\n\t/**/\n\t\n\t/**/\n\tvar Duplex;\n\t/**/\n\t\n\tWritable.WritableState = WritableState;\n\t\n\t/**/\n\tvar util = __webpack_require__(18);\n\tutil.inherits = __webpack_require__(12);\n\t/**/\n\t\n\t/**/\n\tvar internalUtil = {\n\t deprecate: __webpack_require__(23)\n\t};\n\t/**/\n\t\n\t/**/\n\tvar Stream;\n\t(function () {\n\t try {\n\t Stream = __webpack_require__(11);\n\t } catch (_) {} finally {\n\t if (!Stream) Stream = __webpack_require__(8).EventEmitter;\n\t }\n\t})();\n\t/**/\n\t\n\tvar Buffer = __webpack_require__(2).Buffer;\n\t/**/\n\tvar bufferShim = __webpack_require__(17);\n\t/**/\n\t\n\tutil.inherits(Writable, Stream);\n\t\n\tfunction nop() {}\n\t\n\tfunction WriteReq(chunk, encoding, cb) {\n\t this.chunk = chunk;\n\t this.encoding = encoding;\n\t this.callback = cb;\n\t this.next = null;\n\t}\n\t\n\tfunction WritableState(options, stream) {\n\t Duplex = Duplex || __webpack_require__(21);\n\t\n\t options = options || {};\n\t\n\t // object stream flag to indicate whether or not this stream\n\t // contains buffers or objects.\n\t this.objectMode = !!options.objectMode;\n\t\n\t if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\t\n\t // the point at which write() starts returning false\n\t // Note: 0 is a valid value, means that we always return false if\n\t // the entire buffer is not flushed immediately on write()\n\t var hwm = options.highWaterMark;\n\t var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\t this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\t\n\t // cast to ints.\n\t this.highWaterMark = ~~this.highWaterMark;\n\t\n\t // drain event flag.\n\t this.needDrain = false;\n\t // at the start of calling end()\n\t this.ending = false;\n\t // when end() has been called, and returned\n\t this.ended = false;\n\t // when 'finish' is emitted\n\t this.finished = false;\n\t\n\t // should we decode strings into buffers before passing to _write?\n\t // this is here so that some node-core streams can optimize string\n\t // handling at a lower level.\n\t var noDecode = options.decodeStrings === false;\n\t this.decodeStrings = !noDecode;\n\t\n\t // Crypto is kind of old and crusty. Historically, its default string\n\t // encoding is 'binary' so we have to make this configurable.\n\t // Everything else in the universe uses 'utf8', though.\n\t this.defaultEncoding = options.defaultEncoding || 'utf8';\n\t\n\t // not an actual buffer we keep track of, but a measurement\n\t // of how much we're waiting to get pushed to some underlying\n\t // socket or file.\n\t this.length = 0;\n\t\n\t // a flag to see when we're in the middle of a write.\n\t this.writing = false;\n\t\n\t // when true all writes will be buffered until .uncork() call\n\t this.corked = 0;\n\t\n\t // a flag to be able to tell if the onwrite cb is called immediately,\n\t // or on a later tick. We set this to true at first, because any\n\t // actions that shouldn't happen until \"later\" should generally also\n\t // not happen before the first write call.\n\t this.sync = true;\n\t\n\t // a flag to know if we're processing previously buffered items, which\n\t // may call the _write() callback in the same tick, so that we don't\n\t // end up in an overlapped onwrite situation.\n\t this.bufferProcessing = false;\n\t\n\t // the callback that's passed to _write(chunk,cb)\n\t this.onwrite = function (er) {\n\t onwrite(stream, er);\n\t };\n\t\n\t // the callback that the user supplies to write(chunk,encoding,cb)\n\t this.writecb = null;\n\t\n\t // the amount that is being written when _write is called.\n\t this.writelen = 0;\n\t\n\t this.bufferedRequest = null;\n\t this.lastBufferedRequest = null;\n\t\n\t // number of pending user-supplied write callbacks\n\t // this must be 0 before 'finish' can be emitted\n\t this.pendingcb = 0;\n\t\n\t // emit prefinish if the only thing we're waiting for is _write cbs\n\t // This is relevant for synchronous Transform streams\n\t this.prefinished = false;\n\t\n\t // True if the error was already emitted and should not be thrown again\n\t this.errorEmitted = false;\n\t\n\t // count buffered requests\n\t this.bufferedRequestCount = 0;\n\t\n\t // allocate the first CorkedRequest, there is always\n\t // one allocated and free to use, and we maintain at most two\n\t this.corkedRequestsFree = new CorkedRequest(this);\n\t}\n\t\n\tWritableState.prototype.getBuffer = function getBuffer() {\n\t var current = this.bufferedRequest;\n\t var out = [];\n\t while (current) {\n\t out.push(current);\n\t current = current.next;\n\t }\n\t return out;\n\t};\n\t\n\t(function () {\n\t try {\n\t Object.defineProperty(WritableState.prototype, 'buffer', {\n\t get: internalUtil.deprecate(function () {\n\t return this.getBuffer();\n\t }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n\t });\n\t } catch (_) {}\n\t})();\n\t\n\t// Test _writableState for inheritance to account for Duplex streams,\n\t// whose prototype chain only points to Readable.\n\tvar realHasInstance;\n\tif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n\t realHasInstance = Function.prototype[Symbol.hasInstance];\n\t Object.defineProperty(Writable, Symbol.hasInstance, {\n\t value: function (object) {\n\t if (realHasInstance.call(this, object)) return true;\n\t\n\t return object && object._writableState instanceof WritableState;\n\t }\n\t });\n\t} else {\n\t realHasInstance = function (object) {\n\t return object instanceof this;\n\t };\n\t}\n\t\n\tfunction Writable(options) {\n\t Duplex = Duplex || __webpack_require__(21);\n\t\n\t // Writable ctor is applied to Duplexes, too.\n\t // `realHasInstance` is necessary because using plain `instanceof`\n\t // would return false, as no `_writableState` property is attached.\n\t\n\t // Trying to use the custom `instanceof` for Writable here will also break the\n\t // Node.js LazyTransform implementation, which has a non-trivial getter for\n\t // `_writableState` that would lead to infinite recursion.\n\t if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n\t return new Writable(options);\n\t }\n\t\n\t this._writableState = new WritableState(options, this);\n\t\n\t // legacy.\n\t this.writable = true;\n\t\n\t if (options) {\n\t if (typeof options.write === 'function') this._write = options.write;\n\t\n\t if (typeof options.writev === 'function') this._writev = options.writev;\n\t }\n\t\n\t Stream.call(this);\n\t}\n\t\n\t// Otherwise people can pipe Writable streams, which is just wrong.\n\tWritable.prototype.pipe = function () {\n\t this.emit('error', new Error('Cannot pipe, not readable'));\n\t};\n\t\n\tfunction writeAfterEnd(stream, cb) {\n\t var er = new Error('write after end');\n\t // TODO: defer error events consistently everywhere, not just the cb\n\t stream.emit('error', er);\n\t processNextTick(cb, er);\n\t}\n\t\n\t// Checks that a user-supplied chunk is valid, especially for the particular\n\t// mode the stream is in. Currently this means that `null` is never accepted\n\t// and undefined/non-string values are only allowed in object mode.\n\tfunction validChunk(stream, state, chunk, cb) {\n\t var valid = true;\n\t var er = false;\n\t\n\t if (chunk === null) {\n\t er = new TypeError('May not write null values to stream');\n\t } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n\t er = new TypeError('Invalid non-string/buffer chunk');\n\t }\n\t if (er) {\n\t stream.emit('error', er);\n\t processNextTick(cb, er);\n\t valid = false;\n\t }\n\t return valid;\n\t}\n\t\n\tWritable.prototype.write = function (chunk, encoding, cb) {\n\t var state = this._writableState;\n\t var ret = false;\n\t var isBuf = Buffer.isBuffer(chunk);\n\t\n\t if (typeof encoding === 'function') {\n\t cb = encoding;\n\t encoding = null;\n\t }\n\t\n\t if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\t\n\t if (typeof cb !== 'function') cb = nop;\n\t\n\t if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n\t state.pendingcb++;\n\t ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n\t }\n\t\n\t return ret;\n\t};\n\t\n\tWritable.prototype.cork = function () {\n\t var state = this._writableState;\n\t\n\t state.corked++;\n\t};\n\t\n\tWritable.prototype.uncork = function () {\n\t var state = this._writableState;\n\t\n\t if (state.corked) {\n\t state.corked--;\n\t\n\t if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n\t }\n\t};\n\t\n\tWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n\t // node::ParseEncoding() requires lower case.\n\t if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n\t if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n\t this._writableState.defaultEncoding = encoding;\n\t return this;\n\t};\n\t\n\tfunction decodeChunk(state, chunk, encoding) {\n\t if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n\t chunk = bufferShim.from(chunk, encoding);\n\t }\n\t return chunk;\n\t}\n\t\n\t// if we're already writing something, then just put this\n\t// in the queue, and wait our turn. Otherwise, call _write\n\t// If we return false, then we need a drain event, so set that flag.\n\tfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n\t if (!isBuf) {\n\t chunk = decodeChunk(state, chunk, encoding);\n\t if (Buffer.isBuffer(chunk)) encoding = 'buffer';\n\t }\n\t var len = state.objectMode ? 1 : chunk.length;\n\t\n\t state.length += len;\n\t\n\t var ret = state.length < state.highWaterMark;\n\t // we must ensure that previous needDrain will not be reset to false.\n\t if (!ret) state.needDrain = true;\n\t\n\t if (state.writing || state.corked) {\n\t var last = state.lastBufferedRequest;\n\t state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n\t if (last) {\n\t last.next = state.lastBufferedRequest;\n\t } else {\n\t state.bufferedRequest = state.lastBufferedRequest;\n\t }\n\t state.bufferedRequestCount += 1;\n\t } else {\n\t doWrite(stream, state, false, len, chunk, encoding, cb);\n\t }\n\t\n\t return ret;\n\t}\n\t\n\tfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n\t state.writelen = len;\n\t state.writecb = cb;\n\t state.writing = true;\n\t state.sync = true;\n\t if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n\t state.sync = false;\n\t}\n\t\n\tfunction onwriteError(stream, state, sync, er, cb) {\n\t --state.pendingcb;\n\t if (sync) processNextTick(cb, er);else cb(er);\n\t\n\t stream._writableState.errorEmitted = true;\n\t stream.emit('error', er);\n\t}\n\t\n\tfunction onwriteStateUpdate(state) {\n\t state.writing = false;\n\t state.writecb = null;\n\t state.length -= state.writelen;\n\t state.writelen = 0;\n\t}\n\t\n\tfunction onwrite(stream, er) {\n\t var state = stream._writableState;\n\t var sync = state.sync;\n\t var cb = state.writecb;\n\t\n\t onwriteStateUpdate(state);\n\t\n\t if (er) onwriteError(stream, state, sync, er, cb);else {\n\t // Check if we're actually ready to finish, but don't emit yet\n\t var finished = needFinish(state);\n\t\n\t if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n\t clearBuffer(stream, state);\n\t }\n\t\n\t if (sync) {\n\t /**/\n\t asyncWrite(afterWrite, stream, state, finished, cb);\n\t /**/\n\t } else {\n\t afterWrite(stream, state, finished, cb);\n\t }\n\t }\n\t}\n\t\n\tfunction afterWrite(stream, state, finished, cb) {\n\t if (!finished) onwriteDrain(stream, state);\n\t state.pendingcb--;\n\t cb();\n\t finishMaybe(stream, state);\n\t}\n\t\n\t// Must force callback to be called on nextTick, so that we don't\n\t// emit 'drain' before the write() consumer gets the 'false' return\n\t// value, and has a chance to attach a 'drain' listener.\n\tfunction onwriteDrain(stream, state) {\n\t if (state.length === 0 && state.needDrain) {\n\t state.needDrain = false;\n\t stream.emit('drain');\n\t }\n\t}\n\t\n\t// if there's something in the buffer waiting, then process it\n\tfunction clearBuffer(stream, state) {\n\t state.bufferProcessing = true;\n\t var entry = state.bufferedRequest;\n\t\n\t if (stream._writev && entry && entry.next) {\n\t // Fast case, write everything using _writev()\n\t var l = state.bufferedRequestCount;\n\t var buffer = new Array(l);\n\t var holder = state.corkedRequestsFree;\n\t holder.entry = entry;\n\t\n\t var count = 0;\n\t while (entry) {\n\t buffer[count] = entry;\n\t entry = entry.next;\n\t count += 1;\n\t }\n\t\n\t doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\t\n\t // doWrite is almost always async, defer these to save a bit of time\n\t // as the hot path ends with doWrite\n\t state.pendingcb++;\n\t state.lastBufferedRequest = null;\n\t if (holder.next) {\n\t state.corkedRequestsFree = holder.next;\n\t holder.next = null;\n\t } else {\n\t state.corkedRequestsFree = new CorkedRequest(state);\n\t }\n\t } else {\n\t // Slow case, write chunks one-by-one\n\t while (entry) {\n\t var chunk = entry.chunk;\n\t var encoding = entry.encoding;\n\t var cb = entry.callback;\n\t var len = state.objectMode ? 1 : chunk.length;\n\t\n\t doWrite(stream, state, false, len, chunk, encoding, cb);\n\t entry = entry.next;\n\t // if we didn't call the onwrite immediately, then\n\t // it means that we need to wait until it does.\n\t // also, that means that the chunk and cb are currently\n\t // being processed, so move the buffer counter past them.\n\t if (state.writing) {\n\t break;\n\t }\n\t }\n\t\n\t if (entry === null) state.lastBufferedRequest = null;\n\t }\n\t\n\t state.bufferedRequestCount = 0;\n\t state.bufferedRequest = entry;\n\t state.bufferProcessing = false;\n\t}\n\t\n\tWritable.prototype._write = function (chunk, encoding, cb) {\n\t cb(new Error('_write() is not implemented'));\n\t};\n\t\n\tWritable.prototype._writev = null;\n\t\n\tWritable.prototype.end = function (chunk, encoding, cb) {\n\t var state = this._writableState;\n\t\n\t if (typeof chunk === 'function') {\n\t cb = chunk;\n\t chunk = null;\n\t encoding = null;\n\t } else if (typeof encoding === 'function') {\n\t cb = encoding;\n\t encoding = null;\n\t }\n\t\n\t if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\t\n\t // .end() fully uncorks\n\t if (state.corked) {\n\t state.corked = 1;\n\t this.uncork();\n\t }\n\t\n\t // ignore unnecessary end() calls.\n\t if (!state.ending && !state.finished) endWritable(this, state, cb);\n\t};\n\t\n\tfunction needFinish(state) {\n\t return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n\t}\n\t\n\tfunction prefinish(stream, state) {\n\t if (!state.prefinished) {\n\t state.prefinished = true;\n\t stream.emit('prefinish');\n\t }\n\t}\n\t\n\tfunction finishMaybe(stream, state) {\n\t var need = needFinish(state);\n\t if (need) {\n\t if (state.pendingcb === 0) {\n\t prefinish(stream, state);\n\t state.finished = true;\n\t stream.emit('finish');\n\t } else {\n\t prefinish(stream, state);\n\t }\n\t }\n\t return need;\n\t}\n\t\n\tfunction endWritable(stream, state, cb) {\n\t state.ending = true;\n\t finishMaybe(stream, state);\n\t if (cb) {\n\t if (state.finished) processNextTick(cb);else stream.once('finish', cb);\n\t }\n\t state.ended = true;\n\t stream.writable = false;\n\t}\n\t\n\t// It seems a linked list but it is not\n\t// there will be only 2 of these for each stream\n\tfunction CorkedRequest(state) {\n\t var _this = this;\n\t\n\t this.next = null;\n\t this.entry = null;\n\t this.finish = function (err) {\n\t var entry = _this.entry;\n\t _this.entry = null;\n\t while (entry) {\n\t var cb = entry.callback;\n\t state.pendingcb--;\n\t cb(err);\n\t entry = entry.next;\n\t }\n\t if (state.corkedRequestsFree) {\n\t state.corkedRequestsFree.next = _this;\n\t } else {\n\t state.corkedRequestsFree = _this;\n\t }\n\t };\n\t}\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ },\n/* 23 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = deprecate;\n\t\n\t/**\n\t * Mark that a method should not be used.\n\t * Returns a modified function which warns once by default.\n\t *\n\t * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n\t *\n\t * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n\t * will throw an Error when invoked.\n\t *\n\t * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n\t * will invoke `console.trace()` instead of `console.error()`.\n\t *\n\t * @param {Function} fn - the function to deprecate\n\t * @param {String} msg - the string to print to the console when `fn` is invoked\n\t * @returns {Function} a new \"deprecated\" version of `fn`\n\t * @api public\n\t */\n\t\n\tfunction deprecate (fn, msg) {\n\t if (config('noDeprecation')) {\n\t return fn;\n\t }\n\t\n\t var warned = false;\n\t function deprecated() {\n\t if (!warned) {\n\t if (config('throwDeprecation')) {\n\t throw new Error(msg);\n\t } else if (config('traceDeprecation')) {\n\t console.trace(msg);\n\t } else {\n\t console.warn(msg);\n\t }\n\t warned = true;\n\t }\n\t return fn.apply(this, arguments);\n\t }\n\t\n\t return deprecated;\n\t}\n\t\n\t/**\n\t * Checks `localStorage` for boolean values for the given `name`.\n\t *\n\t * @param {String} name\n\t * @returns {Boolean}\n\t * @api private\n\t */\n\t\n\tfunction config (name) {\n\t // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n\t try {\n\t if (!global.localStorage) return false;\n\t } catch (_) {\n\t return false;\n\t }\n\t var val = global.localStorage[name];\n\t if (null == val) return false;\n\t return String(val).toLowerCase() === 'true';\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Copyright Joyent, Inc. and other Node contributors.\n\t//\n\t// Permission is hereby granted, free of charge, to any person obtaining a\n\t// copy of this software and associated documentation files (the\n\t// \"Software\"), to deal in the Software without restriction, including\n\t// without limitation the rights to use, copy, modify, merge, publish,\n\t// distribute, sublicense, and/or sell copies of the Software, and to permit\n\t// persons to whom the Software is furnished to do so, subject to the\n\t// following conditions:\n\t//\n\t// The above copyright notice and this permission notice shall be included\n\t// in all copies or substantial portions of the Software.\n\t//\n\t// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n\t// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n\t// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n\t// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n\t// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n\t// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n\t// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\t\n\tvar Buffer = __webpack_require__(2).Buffer;\n\t\n\tvar isBufferEncoding = Buffer.isEncoding\n\t || function(encoding) {\n\t switch (encoding && encoding.toLowerCase()) {\n\t case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;\n\t default: return false;\n\t }\n\t }\n\t\n\t\n\tfunction assertEncoding(encoding) {\n\t if (encoding && !isBufferEncoding(encoding)) {\n\t throw new Error('Unknown encoding: ' + encoding);\n\t }\n\t}\n\t\n\t// StringDecoder provides an interface for efficiently splitting a series of\n\t// buffers into a series of JS strings without breaking apart multi-byte\n\t// characters. CESU-8 is handled as part of the UTF-8 encoding.\n\t//\n\t// @TODO Handling all encodings inside a single object makes it very difficult\n\t// to reason about this code, so it should be split up in the future.\n\t// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n\t// points as used by CESU-8.\n\tvar StringDecoder = exports.StringDecoder = function(encoding) {\n\t this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n\t assertEncoding(encoding);\n\t switch (this.encoding) {\n\t case 'utf8':\n\t // CESU-8 represents each of Surrogate Pair by 3-bytes\n\t this.surrogateSize = 3;\n\t break;\n\t case 'ucs2':\n\t case 'utf16le':\n\t // UTF-16 represents each of Surrogate Pair by 2-bytes\n\t this.surrogateSize = 2;\n\t this.detectIncompleteChar = utf16DetectIncompleteChar;\n\t break;\n\t case 'base64':\n\t // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n\t this.surrogateSize = 3;\n\t this.detectIncompleteChar = base64DetectIncompleteChar;\n\t break;\n\t default:\n\t this.write = passThroughWrite;\n\t return;\n\t }\n\t\n\t // Enough space to store all bytes of a single character. UTF-8 needs 4\n\t // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n\t this.charBuffer = new Buffer(6);\n\t // Number of bytes received for the current incomplete multi-byte character.\n\t this.charReceived = 0;\n\t // Number of bytes expected for the current incomplete multi-byte character.\n\t this.charLength = 0;\n\t};\n\t\n\t\n\t// write decodes the given buffer and returns it as JS string that is\n\t// guaranteed to not contain any partial multi-byte characters. Any partial\n\t// character found at the end of the buffer is buffered up, and will be\n\t// returned when calling write again with the remaining bytes.\n\t//\n\t// Note: Converting a Buffer containing an orphan surrogate to a String\n\t// currently works, but converting a String to a Buffer (via `new Buffer`, or\n\t// Buffer#write) will replace incomplete surrogates with the unicode\n\t// replacement character. See https://codereview.chromium.org/121173009/ .\n\tStringDecoder.prototype.write = function(buffer) {\n\t var charStr = '';\n\t // if our last write ended with an incomplete multibyte character\n\t while (this.charLength) {\n\t // determine how many remaining bytes this buffer has to offer for this char\n\t var available = (buffer.length >= this.charLength - this.charReceived) ?\n\t this.charLength - this.charReceived :\n\t buffer.length;\n\t\n\t // add the new bytes to the char buffer\n\t buffer.copy(this.charBuffer, this.charReceived, 0, available);\n\t this.charReceived += available;\n\t\n\t if (this.charReceived < this.charLength) {\n\t // still not enough chars in this buffer? wait for more ...\n\t return '';\n\t }\n\t\n\t // remove bytes belonging to the current character from the buffer\n\t buffer = buffer.slice(available, buffer.length);\n\t\n\t // get the character that was split\n\t charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\t\n\t // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n\t var charCode = charStr.charCodeAt(charStr.length - 1);\n\t if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n\t this.charLength += this.surrogateSize;\n\t charStr = '';\n\t continue;\n\t }\n\t this.charReceived = this.charLength = 0;\n\t\n\t // if there are no more bytes in this buffer, just emit our char\n\t if (buffer.length === 0) {\n\t return charStr;\n\t }\n\t break;\n\t }\n\t\n\t // determine and set charLength / charReceived\n\t this.detectIncompleteChar(buffer);\n\t\n\t var end = buffer.length;\n\t if (this.charLength) {\n\t // buffer the incomplete character bytes we got\n\t buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n\t end -= this.charReceived;\n\t }\n\t\n\t charStr += buffer.toString(this.encoding, 0, end);\n\t\n\t var end = charStr.length - 1;\n\t var charCode = charStr.charCodeAt(end);\n\t // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n\t if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n\t var size = this.surrogateSize;\n\t this.charLength += size;\n\t this.charReceived += size;\n\t this.charBuffer.copy(this.charBuffer, size, 0, size);\n\t buffer.copy(this.charBuffer, 0, 0, size);\n\t return charStr.substring(0, end);\n\t }\n\t\n\t // or just emit the charStr\n\t return charStr;\n\t};\n\t\n\t// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n\t// the end of the given buffer. If so, it sets this.charLength to the byte\n\t// length that character, and sets this.charReceived to the number of bytes\n\t// that are available for this character.\n\tStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n\t // determine how many bytes we have to check at the end of this buffer\n\t var i = (buffer.length >= 3) ? 3 : buffer.length;\n\t\n\t // Figure out if one of the last i bytes of our buffer announces an\n\t // incomplete char.\n\t for (; i > 0; i--) {\n\t var c = buffer[buffer.length - i];\n\t\n\t // See http://en.wikipedia.org/wiki/UTF-8#Description\n\t\n\t // 110XXXXX\n\t if (i == 1 && c >> 5 == 0x06) {\n\t this.charLength = 2;\n\t break;\n\t }\n\t\n\t // 1110XXXX\n\t if (i <= 2 && c >> 4 == 0x0E) {\n\t this.charLength = 3;\n\t break;\n\t }\n\t\n\t // 11110XXX\n\t if (i <= 3 && c >> 3 == 0x1E) {\n\t this.charLength = 4;\n\t break;\n\t }\n\t }\n\t this.charReceived = i;\n\t};\n\t\n\tStringDecoder.prototype.end = function(buffer) {\n\t var res = '';\n\t if (buffer && buffer.length)\n\t res = this.write(buffer);\n\t\n\t if (this.charReceived) {\n\t var cr = this.charReceived;\n\t var buf = this.charBuffer;\n\t var enc = this.encoding;\n\t res += buf.slice(0, cr).toString(enc);\n\t }\n\t\n\t return res;\n\t};\n\t\n\tfunction passThroughWrite(buffer) {\n\t return buffer.toString(this.encoding);\n\t}\n\t\n\tfunction utf16DetectIncompleteChar(buffer) {\n\t this.charReceived = buffer.length % 2;\n\t this.charLength = this.charReceived ? 2 : 0;\n\t}\n\t\n\tfunction base64DetectIncompleteChar(buffer) {\n\t this.charReceived = buffer.length % 3;\n\t this.charLength = this.charReceived ? 3 : 0;\n\t}\n\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// a transform stream is a readable/writable stream where you do\n\t// something with the data. Sometimes it's called a \"filter\",\n\t// but that's not a great name for it, since that implies a thing where\n\t// some bits pass through, and others are simply ignored. (That would\n\t// be a valid example of a transform, of course.)\n\t//\n\t// While the output is causally related to the input, it's not a\n\t// necessarily symmetric or synchronous transformation. For example,\n\t// a zlib stream might take multiple plain-text writes(), and then\n\t// emit a single compressed chunk some time in the future.\n\t//\n\t// Here's how this works:\n\t//\n\t// The Transform stream has all the aspects of the readable and writable\n\t// stream classes. When you write(chunk), that calls _write(chunk,cb)\n\t// internally, and returns false if there's a lot of pending writes\n\t// buffered up. When you call read(), that calls _read(n) until\n\t// there's enough pending readable data buffered up.\n\t//\n\t// In a transform stream, the written data is placed in a buffer. When\n\t// _read(n) is called, it transforms the queued up data, calling the\n\t// buffered _write cb's as it consumes chunks. If consuming a single\n\t// written chunk would result in multiple output chunks, then the first\n\t// outputted bit calls the readcb, and subsequent chunks just go into\n\t// the read buffer, and will cause it to emit 'readable' if necessary.\n\t//\n\t// This way, back-pressure is actually determined by the reading side,\n\t// since _read has to be called to start processing a new chunk. However,\n\t// a pathological inflate type of transform can cause excessive buffering\n\t// here. For example, imagine a stream where every byte of input is\n\t// interpreted as an integer from 0-255, and then results in that many\n\t// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n\t// 1kb of data being output. In this case, you could write a very small\n\t// amount of input, and end up with a very large amount of output. In\n\t// such a pathological inflating mechanism, there'd be no way to tell\n\t// the system to stop doing the transform. A single 4MB write could\n\t// cause the system to run out of memory.\n\t//\n\t// However, even in such a pathological case, only a single written chunk\n\t// would be consumed, and then the rest would wait (un-transformed) until\n\t// the results of the previous transformed chunk were consumed.\n\t\n\t'use strict';\n\t\n\tmodule.exports = Transform;\n\t\n\tvar Duplex = __webpack_require__(21);\n\t\n\t/**/\n\tvar util = __webpack_require__(18);\n\tutil.inherits = __webpack_require__(12);\n\t/**/\n\t\n\tutil.inherits(Transform, Duplex);\n\t\n\tfunction TransformState(stream) {\n\t this.afterTransform = function (er, data) {\n\t return afterTransform(stream, er, data);\n\t };\n\t\n\t this.needTransform = false;\n\t this.transforming = false;\n\t this.writecb = null;\n\t this.writechunk = null;\n\t this.writeencoding = null;\n\t}\n\t\n\tfunction afterTransform(stream, er, data) {\n\t var ts = stream._transformState;\n\t ts.transforming = false;\n\t\n\t var cb = ts.writecb;\n\t\n\t if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\t\n\t ts.writechunk = null;\n\t ts.writecb = null;\n\t\n\t if (data !== null && data !== undefined) stream.push(data);\n\t\n\t cb(er);\n\t\n\t var rs = stream._readableState;\n\t rs.reading = false;\n\t if (rs.needReadable || rs.length < rs.highWaterMark) {\n\t stream._read(rs.highWaterMark);\n\t }\n\t}\n\t\n\tfunction Transform(options) {\n\t if (!(this instanceof Transform)) return new Transform(options);\n\t\n\t Duplex.call(this, options);\n\t\n\t this._transformState = new TransformState(this);\n\t\n\t var stream = this;\n\t\n\t // start out asking for a readable event once data is transformed.\n\t this._readableState.needReadable = true;\n\t\n\t // we have implemented the _read method, and done the other things\n\t // that Readable wants before the first _read call, so unset the\n\t // sync guard flag.\n\t this._readableState.sync = false;\n\t\n\t if (options) {\n\t if (typeof options.transform === 'function') this._transform = options.transform;\n\t\n\t if (typeof options.flush === 'function') this._flush = options.flush;\n\t }\n\t\n\t // When the writable side finishes, then flush out anything remaining.\n\t this.once('prefinish', function () {\n\t if (typeof this._flush === 'function') this._flush(function (er, data) {\n\t done(stream, er, data);\n\t });else done(stream);\n\t });\n\t}\n\t\n\tTransform.prototype.push = function (chunk, encoding) {\n\t this._transformState.needTransform = false;\n\t return Duplex.prototype.push.call(this, chunk, encoding);\n\t};\n\t\n\t// This is the part where you do stuff!\n\t// override this function in implementation classes.\n\t// 'chunk' is an input chunk.\n\t//\n\t// Call `push(newChunk)` to pass along transformed output\n\t// to the readable side. You may call 'push' zero or more times.\n\t//\n\t// Call `cb(err)` when you are done with this chunk. If you pass\n\t// an error, then that'll put the hurt on the whole operation. If you\n\t// never call cb(), then you'll never get another chunk.\n\tTransform.prototype._transform = function (chunk, encoding, cb) {\n\t throw new Error('_transform() is not implemented');\n\t};\n\t\n\tTransform.prototype._write = function (chunk, encoding, cb) {\n\t var ts = this._transformState;\n\t ts.writecb = cb;\n\t ts.writechunk = chunk;\n\t ts.writeencoding = encoding;\n\t if (!ts.transforming) {\n\t var rs = this._readableState;\n\t if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n\t }\n\t};\n\t\n\t// Doesn't matter what the args are here.\n\t// _transform does all the work.\n\t// That we got here means that the readable side wants more data.\n\tTransform.prototype._read = function (n) {\n\t var ts = this._transformState;\n\t\n\t if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n\t ts.transforming = true;\n\t this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n\t } else {\n\t // mark that we need a transform, so that any data that comes in\n\t // will get processed, now that we've asked for it.\n\t ts.needTransform = true;\n\t }\n\t};\n\t\n\tfunction done(stream, er, data) {\n\t if (er) return stream.emit('error', er);\n\t\n\t if (data !== null && data !== undefined) stream.push(data);\n\t\n\t // if there's nothing in the write buffer, then that means\n\t // that nothing more will ever be provided\n\t var ws = stream._writableState;\n\t var ts = stream._transformState;\n\t\n\t if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\t\n\t if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\t\n\t return stream.push(null);\n\t}\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// a passthrough stream.\n\t// basically just the most minimal sort of Transform stream.\n\t// Every written chunk gets output as-is.\n\t\n\t'use strict';\n\t\n\tmodule.exports = PassThrough;\n\t\n\tvar Transform = __webpack_require__(25);\n\t\n\t/**/\n\tvar util = __webpack_require__(18);\n\tutil.inherits = __webpack_require__(12);\n\t/**/\n\t\n\tutil.inherits(PassThrough, Transform);\n\t\n\tfunction PassThrough(options) {\n\t if (!(this instanceof PassThrough)) return new PassThrough(options);\n\t\n\t Transform.call(this, options);\n\t}\n\t\n\tPassThrough.prototype._transform = function (chunk, encoding, cb) {\n\t cb(null, chunk);\n\t};\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(22)\n\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(21)\n\n\n/***/ },\n/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(25)\n\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(26)\n\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t\n\tvar zlib_inflate = __webpack_require__(32);\n\tvar utils = __webpack_require__(33);\n\tvar strings = __webpack_require__(38);\n\tvar c = __webpack_require__(39);\n\tvar msg = __webpack_require__(40);\n\tvar ZStream = __webpack_require__(41);\n\tvar GZheader = __webpack_require__(42);\n\t\n\tvar toString = Object.prototype.toString;\n\t\n\t/**\n\t * class Inflate\n\t *\n\t * Generic JS-style wrapper for zlib calls. If you don't need\n\t * streaming behaviour - use more simple functions: [[inflate]]\n\t * and [[inflateRaw]].\n\t **/\n\t\n\t/* internal\n\t * inflate.chunks -> Array\n\t *\n\t * Chunks of output data, if [[Inflate#onData]] not overriden.\n\t **/\n\t\n\t/**\n\t * Inflate.result -> Uint8Array|Array|String\n\t *\n\t * Uncompressed result, generated by default [[Inflate#onData]]\n\t * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n\t * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you\n\t * push a chunk with explicit flush (call [[Inflate#push]] with\n\t * `Z_SYNC_FLUSH` param).\n\t **/\n\t\n\t/**\n\t * Inflate.err -> Number\n\t *\n\t * Error code after inflate finished. 0 (Z_OK) on success.\n\t * Should be checked if broken data possible.\n\t **/\n\t\n\t/**\n\t * Inflate.msg -> String\n\t *\n\t * Error message, if [[Inflate.err]] != 0\n\t **/\n\t\n\t\n\t/**\n\t * new Inflate(options)\n\t * - options (Object): zlib inflate options.\n\t *\n\t * Creates new inflator instance with specified params. Throws exception\n\t * on bad params. Supported options:\n\t *\n\t * - `windowBits`\n\t * - `dictionary`\n\t *\n\t * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n\t * for more information on these.\n\t *\n\t * Additional options, for internal needs:\n\t *\n\t * - `chunkSize` - size of generated data chunks (16K by default)\n\t * - `raw` (Boolean) - do raw inflate\n\t * - `to` (String) - if equal to 'string', then result will be converted\n\t * from utf8 to utf16 (javascript) string. When string output requested,\n\t * chunk length can differ from `chunkSize`, depending on content.\n\t *\n\t * By default, when no options set, autodetect deflate/gzip data format via\n\t * wrapper header.\n\t *\n\t * ##### Example:\n\t *\n\t * ```javascript\n\t * var pako = require('pako')\n\t * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n\t * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n\t *\n\t * var inflate = new pako.Inflate({ level: 3});\n\t *\n\t * inflate.push(chunk1, false);\n\t * inflate.push(chunk2, true); // true -> last chunk\n\t *\n\t * if (inflate.err) { throw new Error(inflate.err); }\n\t *\n\t * console.log(inflate.result);\n\t * ```\n\t **/\n\tfunction Inflate(options) {\n\t if (!(this instanceof Inflate)) return new Inflate(options);\n\t\n\t this.options = utils.assign({\n\t chunkSize: 16384,\n\t windowBits: 0,\n\t to: ''\n\t }, options || {});\n\t\n\t var opt = this.options;\n\t\n\t // Force window size for `raw` data, if not set directly,\n\t // because we have no header for autodetect.\n\t if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n\t opt.windowBits = -opt.windowBits;\n\t if (opt.windowBits === 0) { opt.windowBits = -15; }\n\t }\n\t\n\t // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n\t if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n\t !(options && options.windowBits)) {\n\t opt.windowBits += 32;\n\t }\n\t\n\t // Gzip header has no info about windows size, we can do autodetect only\n\t // for deflate. So, if window size not set, force it to max when gzip possible\n\t if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n\t // bit 3 (16) -> gzipped data\n\t // bit 4 (32) -> autodetect gzip/deflate\n\t if ((opt.windowBits & 15) === 0) {\n\t opt.windowBits |= 15;\n\t }\n\t }\n\t\n\t this.err = 0; // error code, if happens (0 = Z_OK)\n\t this.msg = ''; // error message\n\t this.ended = false; // used to avoid multiple onEnd() calls\n\t this.chunks = []; // chunks of compressed data\n\t\n\t this.strm = new ZStream();\n\t this.strm.avail_out = 0;\n\t\n\t var status = zlib_inflate.inflateInit2(\n\t this.strm,\n\t opt.windowBits\n\t );\n\t\n\t if (status !== c.Z_OK) {\n\t throw new Error(msg[status]);\n\t }\n\t\n\t this.header = new GZheader();\n\t\n\t zlib_inflate.inflateGetHeader(this.strm, this.header);\n\t}\n\t\n\t/**\n\t * Inflate#push(data[, mode]) -> Boolean\n\t * - data (Uint8Array|Array|ArrayBuffer|String): input data\n\t * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n\t * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.\n\t *\n\t * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n\t * new output chunks. Returns `true` on success. The last data block must have\n\t * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n\t * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n\t * can use mode Z_SYNC_FLUSH, keeping the decompression context.\n\t *\n\t * On fail call [[Inflate#onEnd]] with error code and return false.\n\t *\n\t * We strongly recommend to use `Uint8Array` on input for best speed (output\n\t * format is detected automatically). Also, don't skip last param and always\n\t * use the same type in your code (boolean or number). That will improve JS speed.\n\t *\n\t * For regular `Array`-s make sure all elements are [0..255].\n\t *\n\t * ##### Example\n\t *\n\t * ```javascript\n\t * push(chunk, false); // push one of data chunks\n\t * ...\n\t * push(chunk, true); // push last chunk\n\t * ```\n\t **/\n\tInflate.prototype.push = function (data, mode) {\n\t var strm = this.strm;\n\t var chunkSize = this.options.chunkSize;\n\t var dictionary = this.options.dictionary;\n\t var status, _mode;\n\t var next_out_utf8, tail, utf8str;\n\t var dict;\n\t\n\t // Flag to properly process Z_BUF_ERROR on testing inflate call\n\t // when we check that all output data was flushed.\n\t var allowBufError = false;\n\t\n\t if (this.ended) { return false; }\n\t _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);\n\t\n\t // Convert data if needed\n\t if (typeof data === 'string') {\n\t // Only binary strings can be decompressed on practice\n\t strm.input = strings.binstring2buf(data);\n\t } else if (toString.call(data) === '[object ArrayBuffer]') {\n\t strm.input = new Uint8Array(data);\n\t } else {\n\t strm.input = data;\n\t }\n\t\n\t strm.next_in = 0;\n\t strm.avail_in = strm.input.length;\n\t\n\t do {\n\t if (strm.avail_out === 0) {\n\t strm.output = new utils.Buf8(chunkSize);\n\t strm.next_out = 0;\n\t strm.avail_out = chunkSize;\n\t }\n\t\n\t status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */\n\t\n\t if (status === c.Z_NEED_DICT && dictionary) {\n\t // Convert data if needed\n\t if (typeof dictionary === 'string') {\n\t dict = strings.string2buf(dictionary);\n\t } else if (toString.call(dictionary) === '[object ArrayBuffer]') {\n\t dict = new Uint8Array(dictionary);\n\t } else {\n\t dict = dictionary;\n\t }\n\t\n\t status = zlib_inflate.inflateSetDictionary(this.strm, dict);\n\t\n\t }\n\t\n\t if (status === c.Z_BUF_ERROR && allowBufError === true) {\n\t status = c.Z_OK;\n\t allowBufError = false;\n\t }\n\t\n\t if (status !== c.Z_STREAM_END && status !== c.Z_OK) {\n\t this.onEnd(status);\n\t this.ended = true;\n\t return false;\n\t }\n\t\n\t if (strm.next_out) {\n\t if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) {\n\t\n\t if (this.options.to === 'string') {\n\t\n\t next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\t\n\t tail = strm.next_out - next_out_utf8;\n\t utf8str = strings.buf2string(strm.output, next_out_utf8);\n\t\n\t // move tail\n\t strm.next_out = tail;\n\t strm.avail_out = chunkSize - tail;\n\t if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }\n\t\n\t this.onData(utf8str);\n\t\n\t } else {\n\t this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n\t }\n\t }\n\t }\n\t\n\t // When no more input data, we should check that internal inflate buffers\n\t // are flushed. The only way to do it when avail_out = 0 - run one more\n\t // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.\n\t // Here we set flag to process this error properly.\n\t //\n\t // NOTE. Deflate does not return error in this case and does not needs such\n\t // logic.\n\t if (strm.avail_in === 0 && strm.avail_out === 0) {\n\t allowBufError = true;\n\t }\n\t\n\t } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);\n\t\n\t if (status === c.Z_STREAM_END) {\n\t _mode = c.Z_FINISH;\n\t }\n\t\n\t // Finalize on the last chunk.\n\t if (_mode === c.Z_FINISH) {\n\t status = zlib_inflate.inflateEnd(this.strm);\n\t this.onEnd(status);\n\t this.ended = true;\n\t return status === c.Z_OK;\n\t }\n\t\n\t // callback interim results if Z_SYNC_FLUSH.\n\t if (_mode === c.Z_SYNC_FLUSH) {\n\t this.onEnd(c.Z_OK);\n\t strm.avail_out = 0;\n\t return true;\n\t }\n\t\n\t return true;\n\t};\n\t\n\t\n\t/**\n\t * Inflate#onData(chunk) -> Void\n\t * - chunk (Uint8Array|Array|String): ouput data. Type of array depends\n\t * on js engine support. When string output requested, each chunk\n\t * will be string.\n\t *\n\t * By default, stores data blocks in `chunks[]` property and glue\n\t * those in `onEnd`. Override this handler, if you need another behaviour.\n\t **/\n\tInflate.prototype.onData = function (chunk) {\n\t this.chunks.push(chunk);\n\t};\n\t\n\t\n\t/**\n\t * Inflate#onEnd(status) -> Void\n\t * - status (Number): inflate status. 0 (Z_OK) on success,\n\t * other if not.\n\t *\n\t * Called either after you tell inflate that the input stream is\n\t * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n\t * or if an error happened. By default - join collected chunks,\n\t * free memory and fill `results` / `err` properties.\n\t **/\n\tInflate.prototype.onEnd = function (status) {\n\t // On success - join\n\t if (status === c.Z_OK) {\n\t if (this.options.to === 'string') {\n\t // Glue & convert here, until we teach pako to send\n\t // utf8 alligned strings to onData\n\t this.result = this.chunks.join('');\n\t } else {\n\t this.result = utils.flattenChunks(this.chunks);\n\t }\n\t }\n\t this.chunks = [];\n\t this.err = status;\n\t this.msg = this.strm.msg;\n\t};\n\t\n\t\n\t/**\n\t * inflate(data[, options]) -> Uint8Array|Array|String\n\t * - data (Uint8Array|Array|String): input data to decompress.\n\t * - options (Object): zlib inflate options.\n\t *\n\t * Decompress `data` with inflate/ungzip and `options`. Autodetect\n\t * format via wrapper header by default. That's why we don't provide\n\t * separate `ungzip` method.\n\t *\n\t * Supported options are:\n\t *\n\t * - windowBits\n\t *\n\t * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n\t * for more information.\n\t *\n\t * Sugar (options):\n\t *\n\t * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n\t * negative windowBits implicitly.\n\t * - `to` (String) - if equal to 'string', then result will be converted\n\t * from utf8 to utf16 (javascript) string. When string output requested,\n\t * chunk length can differ from `chunkSize`, depending on content.\n\t *\n\t *\n\t * ##### Example:\n\t *\n\t * ```javascript\n\t * var pako = require('pako')\n\t * , input = pako.deflate([1,2,3,4,5,6,7,8,9])\n\t * , output;\n\t *\n\t * try {\n\t * output = pako.inflate(input);\n\t * } catch (err)\n\t * console.log(err);\n\t * }\n\t * ```\n\t **/\n\tfunction inflate(input, options) {\n\t var inflator = new Inflate(options);\n\t\n\t inflator.push(input, true);\n\t\n\t // That will never happens, if you don't cheat with options :)\n\t if (inflator.err) { throw inflator.msg || msg[inflator.err]; }\n\t\n\t return inflator.result;\n\t}\n\t\n\t\n\t/**\n\t * inflateRaw(data[, options]) -> Uint8Array|Array|String\n\t * - data (Uint8Array|Array|String): input data to decompress.\n\t * - options (Object): zlib inflate options.\n\t *\n\t * The same as [[inflate]], but creates raw data, without wrapper\n\t * (header and adler32 crc).\n\t **/\n\tfunction inflateRaw(input, options) {\n\t options = options || {};\n\t options.raw = true;\n\t return inflate(input, options);\n\t}\n\t\n\t\n\t/**\n\t * ungzip(data[, options]) -> Uint8Array|Array|String\n\t * - data (Uint8Array|Array|String): input data to decompress.\n\t * - options (Object): zlib inflate options.\n\t *\n\t * Just shortcut to [[inflate]], because it autodetects format\n\t * by header.content. Done for convenience.\n\t **/\n\t\n\t\n\texports.Inflate = Inflate;\n\texports.inflate = inflate;\n\texports.inflateRaw = inflateRaw;\n\texports.ungzip = inflate;\n\n\n/***/ },\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t\n\tvar utils = __webpack_require__(33);\n\tvar adler32 = __webpack_require__(34);\n\tvar crc32 = __webpack_require__(35);\n\tvar inflate_fast = __webpack_require__(36);\n\tvar inflate_table = __webpack_require__(37);\n\t\n\tvar CODES = 0;\n\tvar LENS = 1;\n\tvar DISTS = 2;\n\t\n\t/* Public constants ==========================================================*/\n\t/* ===========================================================================*/\n\t\n\t\n\t/* Allowed flush values; see deflate() and inflate() below for details */\n\t//var Z_NO_FLUSH = 0;\n\t//var Z_PARTIAL_FLUSH = 1;\n\t//var Z_SYNC_FLUSH = 2;\n\t//var Z_FULL_FLUSH = 3;\n\tvar Z_FINISH = 4;\n\tvar Z_BLOCK = 5;\n\tvar Z_TREES = 6;\n\t\n\t\n\t/* Return codes for the compression/decompression functions. Negative values\n\t * are errors, positive values are used for special but normal events.\n\t */\n\tvar Z_OK = 0;\n\tvar Z_STREAM_END = 1;\n\tvar Z_NEED_DICT = 2;\n\t//var Z_ERRNO = -1;\n\tvar Z_STREAM_ERROR = -2;\n\tvar Z_DATA_ERROR = -3;\n\tvar Z_MEM_ERROR = -4;\n\tvar Z_BUF_ERROR = -5;\n\t//var Z_VERSION_ERROR = -6;\n\t\n\t/* The deflate compression method */\n\tvar Z_DEFLATED = 8;\n\t\n\t\n\t/* STATES ====================================================================*/\n\t/* ===========================================================================*/\n\t\n\t\n\tvar HEAD = 1; /* i: waiting for magic header */\n\tvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\n\tvar TIME = 3; /* i: waiting for modification time (gzip) */\n\tvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\n\tvar EXLEN = 5; /* i: waiting for extra length (gzip) */\n\tvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\n\tvar NAME = 7; /* i: waiting for end of file name (gzip) */\n\tvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\n\tvar HCRC = 9; /* i: waiting for header crc (gzip) */\n\tvar DICTID = 10; /* i: waiting for dictionary check value */\n\tvar DICT = 11; /* waiting for inflateSetDictionary() call */\n\tvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\tvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\n\tvar STORED = 14; /* i: waiting for stored size (length and complement) */\n\tvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\n\tvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\n\tvar TABLE = 17; /* i: waiting for dynamic block table lengths */\n\tvar LENLENS = 18; /* i: waiting for code length code lengths */\n\tvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\n\tvar LEN_ = 20; /* i: same as LEN below, but only first time in */\n\tvar LEN = 21; /* i: waiting for length/lit/eob code */\n\tvar LENEXT = 22; /* i: waiting for length extra bits */\n\tvar DIST = 23; /* i: waiting for distance code */\n\tvar DISTEXT = 24; /* i: waiting for distance extra bits */\n\tvar MATCH = 25; /* o: waiting for output space to copy string */\n\tvar LIT = 26; /* o: waiting for output space to write literal */\n\tvar CHECK = 27; /* i: waiting for 32-bit check value */\n\tvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\n\tvar DONE = 29; /* finished check, done -- remain here until reset */\n\tvar BAD = 30; /* got a data error -- remain here until reset */\n\tvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\n\tvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\t\n\t/* ===========================================================================*/\n\t\n\t\n\t\n\tvar ENOUGH_LENS = 852;\n\tvar ENOUGH_DISTS = 592;\n\t//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\t\n\tvar MAX_WBITS = 15;\n\t/* 32K LZ77 window */\n\tvar DEF_WBITS = MAX_WBITS;\n\t\n\t\n\tfunction zswap32(q) {\n\t return (((q >>> 24) & 0xff) +\n\t ((q >>> 8) & 0xff00) +\n\t ((q & 0xff00) << 8) +\n\t ((q & 0xff) << 24));\n\t}\n\t\n\t\n\tfunction InflateState() {\n\t this.mode = 0; /* current inflate mode */\n\t this.last = false; /* true if processing last block */\n\t this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n\t this.havedict = false; /* true if dictionary provided */\n\t this.flags = 0; /* gzip header method and flags (0 if zlib) */\n\t this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n\t this.check = 0; /* protected copy of check value */\n\t this.total = 0; /* protected copy of output count */\n\t // TODO: may be {}\n\t this.head = null; /* where to save gzip header information */\n\t\n\t /* sliding window */\n\t this.wbits = 0; /* log base 2 of requested window size */\n\t this.wsize = 0; /* window size or zero if not using window */\n\t this.whave = 0; /* valid bytes in the window */\n\t this.wnext = 0; /* window write index */\n\t this.window = null; /* allocated sliding window, if needed */\n\t\n\t /* bit accumulator */\n\t this.hold = 0; /* input bit accumulator */\n\t this.bits = 0; /* number of bits in \"in\" */\n\t\n\t /* for string and stored block copying */\n\t this.length = 0; /* literal or length of data to copy */\n\t this.offset = 0; /* distance back to copy string from */\n\t\n\t /* for table and code decoding */\n\t this.extra = 0; /* extra bits needed */\n\t\n\t /* fixed and dynamic code tables */\n\t this.lencode = null; /* starting table for length/literal codes */\n\t this.distcode = null; /* starting table for distance codes */\n\t this.lenbits = 0; /* index bits for lencode */\n\t this.distbits = 0; /* index bits for distcode */\n\t\n\t /* dynamic table building */\n\t this.ncode = 0; /* number of code length code lengths */\n\t this.nlen = 0; /* number of length code lengths */\n\t this.ndist = 0; /* number of distance code lengths */\n\t this.have = 0; /* number of code lengths in lens[] */\n\t this.next = null; /* next available space in codes[] */\n\t\n\t this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n\t this.work = new utils.Buf16(288); /* work area for code table building */\n\t\n\t /*\n\t because we don't have pointers in js, we use lencode and distcode directly\n\t as buffers so we don't need codes\n\t */\n\t //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n\t this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n\t this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n\t this.sane = 0; /* if false, allow invalid distance too far */\n\t this.back = 0; /* bits back of last unprocessed length/lit */\n\t this.was = 0; /* initial length of match */\n\t}\n\t\n\tfunction inflateResetKeep(strm) {\n\t var state;\n\t\n\t if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n\t state = strm.state;\n\t strm.total_in = strm.total_out = state.total = 0;\n\t strm.msg = ''; /*Z_NULL*/\n\t if (state.wrap) { /* to support ill-conceived Java test suite */\n\t strm.adler = state.wrap & 1;\n\t }\n\t state.mode = HEAD;\n\t state.last = 0;\n\t state.havedict = 0;\n\t state.dmax = 32768;\n\t state.head = null/*Z_NULL*/;\n\t state.hold = 0;\n\t state.bits = 0;\n\t //state.lencode = state.distcode = state.next = state.codes;\n\t state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n\t state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n\t\n\t state.sane = 1;\n\t state.back = -1;\n\t //Tracev((stderr, \"inflate: reset\\n\"));\n\t return Z_OK;\n\t}\n\t\n\tfunction inflateReset(strm) {\n\t var state;\n\t\n\t if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n\t state = strm.state;\n\t state.wsize = 0;\n\t state.whave = 0;\n\t state.wnext = 0;\n\t return inflateResetKeep(strm);\n\t\n\t}\n\t\n\tfunction inflateReset2(strm, windowBits) {\n\t var wrap;\n\t var state;\n\t\n\t /* get the state */\n\t if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n\t state = strm.state;\n\t\n\t /* extract wrap request from windowBits parameter */\n\t if (windowBits < 0) {\n\t wrap = 0;\n\t windowBits = -windowBits;\n\t }\n\t else {\n\t wrap = (windowBits >> 4) + 1;\n\t if (windowBits < 48) {\n\t windowBits &= 15;\n\t }\n\t }\n\t\n\t /* set number of window bits, free window if different */\n\t if (windowBits && (windowBits < 8 || windowBits > 15)) {\n\t return Z_STREAM_ERROR;\n\t }\n\t if (state.window !== null && state.wbits !== windowBits) {\n\t state.window = null;\n\t }\n\t\n\t /* update state and reset the rest of it */\n\t state.wrap = wrap;\n\t state.wbits = windowBits;\n\t return inflateReset(strm);\n\t}\n\t\n\tfunction inflateInit2(strm, windowBits) {\n\t var ret;\n\t var state;\n\t\n\t if (!strm) { return Z_STREAM_ERROR; }\n\t //strm.msg = Z_NULL; /* in case we return an error */\n\t\n\t state = new InflateState();\n\t\n\t //if (state === Z_NULL) return Z_MEM_ERROR;\n\t //Tracev((stderr, \"inflate: allocated\\n\"));\n\t strm.state = state;\n\t state.window = null/*Z_NULL*/;\n\t ret = inflateReset2(strm, windowBits);\n\t if (ret !== Z_OK) {\n\t strm.state = null/*Z_NULL*/;\n\t }\n\t return ret;\n\t}\n\t\n\tfunction inflateInit(strm) {\n\t return inflateInit2(strm, DEF_WBITS);\n\t}\n\t\n\t\n\t/*\n\t Return state with length and distance decoding tables and index sizes set to\n\t fixed code decoding. Normally this returns fixed tables from inffixed.h.\n\t If BUILDFIXED is defined, then instead this routine builds the tables the\n\t first time it's called, and returns those tables the first time and\n\t thereafter. This reduces the size of the code by about 2K bytes, in\n\t exchange for a little execution time. However, BUILDFIXED should not be\n\t used for threaded applications, since the rewriting of the tables and virgin\n\t may not be thread-safe.\n\t */\n\tvar virgin = true;\n\t\n\tvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\t\n\tfunction fixedtables(state) {\n\t /* build fixed huffman tables if first call (may not be thread safe) */\n\t if (virgin) {\n\t var sym;\n\t\n\t lenfix = new utils.Buf32(512);\n\t distfix = new utils.Buf32(32);\n\t\n\t /* literal/length table */\n\t sym = 0;\n\t while (sym < 144) { state.lens[sym++] = 8; }\n\t while (sym < 256) { state.lens[sym++] = 9; }\n\t while (sym < 280) { state.lens[sym++] = 7; }\n\t while (sym < 288) { state.lens[sym++] = 8; }\n\t\n\t inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\t\n\t /* distance table */\n\t sym = 0;\n\t while (sym < 32) { state.lens[sym++] = 5; }\n\t\n\t inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\t\n\t /* do this just once */\n\t virgin = false;\n\t }\n\t\n\t state.lencode = lenfix;\n\t state.lenbits = 9;\n\t state.distcode = distfix;\n\t state.distbits = 5;\n\t}\n\t\n\t\n\t/*\n\t Update the window with the last wsize (normally 32K) bytes written before\n\t returning. If window does not exist yet, create it. This is only called\n\t when a window is already in use, or when output has been written during this\n\t inflate call, but the end of the deflate stream has not been reached yet.\n\t It is also called to create a window for dictionary data when a dictionary\n\t is loaded.\n\t\n\t Providing output buffers larger than 32K to inflate() should provide a speed\n\t advantage, since only the last 32K of output is copied to the sliding window\n\t upon return from inflate(), and since all distances after the first 32K of\n\t output will fall in the output data, making match copies simpler and faster.\n\t The advantage may be dependent on the size of the processor's data caches.\n\t */\n\tfunction updatewindow(strm, src, end, copy) {\n\t var dist;\n\t var state = strm.state;\n\t\n\t /* if it hasn't been done already, allocate space for the window */\n\t if (state.window === null) {\n\t state.wsize = 1 << state.wbits;\n\t state.wnext = 0;\n\t state.whave = 0;\n\t\n\t state.window = new utils.Buf8(state.wsize);\n\t }\n\t\n\t /* copy state->wsize or less output bytes into the circular window */\n\t if (copy >= state.wsize) {\n\t utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n\t state.wnext = 0;\n\t state.whave = state.wsize;\n\t }\n\t else {\n\t dist = state.wsize - state.wnext;\n\t if (dist > copy) {\n\t dist = copy;\n\t }\n\t //zmemcpy(state->window + state->wnext, end - copy, dist);\n\t utils.arraySet(state.window, src, end - copy, dist, state.wnext);\n\t copy -= dist;\n\t if (copy) {\n\t //zmemcpy(state->window, end - copy, copy);\n\t utils.arraySet(state.window, src, end - copy, copy, 0);\n\t state.wnext = copy;\n\t state.whave = state.wsize;\n\t }\n\t else {\n\t state.wnext += dist;\n\t if (state.wnext === state.wsize) { state.wnext = 0; }\n\t if (state.whave < state.wsize) { state.whave += dist; }\n\t }\n\t }\n\t return 0;\n\t}\n\t\n\tfunction inflate(strm, flush) {\n\t var state;\n\t var input, output; // input/output buffers\n\t var next; /* next input INDEX */\n\t var put; /* next output INDEX */\n\t var have, left; /* available input and output */\n\t var hold; /* bit buffer */\n\t var bits; /* bits in bit buffer */\n\t var _in, _out; /* save starting available input and output */\n\t var copy; /* number of stored or match bytes to copy */\n\t var from; /* where to copy match bytes from */\n\t var from_source;\n\t var here = 0; /* current decoding table entry */\n\t var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n\t //var last; /* parent table entry */\n\t var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n\t var len; /* length to copy for repeats, bits to drop */\n\t var ret; /* return code */\n\t var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */\n\t var opts;\n\t\n\t var n; // temporary var for NEED_BITS\n\t\n\t var order = /* permutation of code lengths */\n\t [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\t\n\t\n\t if (!strm || !strm.state || !strm.output ||\n\t (!strm.input && strm.avail_in !== 0)) {\n\t return Z_STREAM_ERROR;\n\t }\n\t\n\t state = strm.state;\n\t if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\t\n\t\n\t //--- LOAD() ---\n\t put = strm.next_out;\n\t output = strm.output;\n\t left = strm.avail_out;\n\t next = strm.next_in;\n\t input = strm.input;\n\t have = strm.avail_in;\n\t hold = state.hold;\n\t bits = state.bits;\n\t //---\n\t\n\t _in = have;\n\t _out = left;\n\t ret = Z_OK;\n\t\n\t inf_leave: // goto emulation\n\t for (;;) {\n\t switch (state.mode) {\n\t case HEAD:\n\t if (state.wrap === 0) {\n\t state.mode = TYPEDO;\n\t break;\n\t }\n\t //=== NEEDBITS(16);\n\t while (bits < 16) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n\t state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n\t //=== CRC2(state.check, hold);\n\t hbuf[0] = hold & 0xff;\n\t hbuf[1] = (hold >>> 8) & 0xff;\n\t state.check = crc32(state.check, hbuf, 2, 0);\n\t //===//\n\t\n\t //=== INITBITS();\n\t hold = 0;\n\t bits = 0;\n\t //===//\n\t state.mode = FLAGS;\n\t break;\n\t }\n\t state.flags = 0; /* expect zlib header */\n\t if (state.head) {\n\t state.head.done = false;\n\t }\n\t if (!(state.wrap & 1) || /* check if zlib header allowed */\n\t (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n\t strm.msg = 'incorrect header check';\n\t state.mode = BAD;\n\t break;\n\t }\n\t if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n\t strm.msg = 'unknown compression method';\n\t state.mode = BAD;\n\t break;\n\t }\n\t //--- DROPBITS(4) ---//\n\t hold >>>= 4;\n\t bits -= 4;\n\t //---//\n\t len = (hold & 0x0f)/*BITS(4)*/ + 8;\n\t if (state.wbits === 0) {\n\t state.wbits = len;\n\t }\n\t else if (len > state.wbits) {\n\t strm.msg = 'invalid window size';\n\t state.mode = BAD;\n\t break;\n\t }\n\t state.dmax = 1 << len;\n\t //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n\t strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n\t state.mode = hold & 0x200 ? DICTID : TYPE;\n\t //=== INITBITS();\n\t hold = 0;\n\t bits = 0;\n\t //===//\n\t break;\n\t case FLAGS:\n\t //=== NEEDBITS(16); */\n\t while (bits < 16) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t state.flags = hold;\n\t if ((state.flags & 0xff) !== Z_DEFLATED) {\n\t strm.msg = 'unknown compression method';\n\t state.mode = BAD;\n\t break;\n\t }\n\t if (state.flags & 0xe000) {\n\t strm.msg = 'unknown header flags set';\n\t state.mode = BAD;\n\t break;\n\t }\n\t if (state.head) {\n\t state.head.text = ((hold >> 8) & 1);\n\t }\n\t if (state.flags & 0x0200) {\n\t //=== CRC2(state.check, hold);\n\t hbuf[0] = hold & 0xff;\n\t hbuf[1] = (hold >>> 8) & 0xff;\n\t state.check = crc32(state.check, hbuf, 2, 0);\n\t //===//\n\t }\n\t //=== INITBITS();\n\t hold = 0;\n\t bits = 0;\n\t //===//\n\t state.mode = TIME;\n\t /* falls through */\n\t case TIME:\n\t //=== NEEDBITS(32); */\n\t while (bits < 32) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t if (state.head) {\n\t state.head.time = hold;\n\t }\n\t if (state.flags & 0x0200) {\n\t //=== CRC4(state.check, hold)\n\t hbuf[0] = hold & 0xff;\n\t hbuf[1] = (hold >>> 8) & 0xff;\n\t hbuf[2] = (hold >>> 16) & 0xff;\n\t hbuf[3] = (hold >>> 24) & 0xff;\n\t state.check = crc32(state.check, hbuf, 4, 0);\n\t //===\n\t }\n\t //=== INITBITS();\n\t hold = 0;\n\t bits = 0;\n\t //===//\n\t state.mode = OS;\n\t /* falls through */\n\t case OS:\n\t //=== NEEDBITS(16); */\n\t while (bits < 16) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t if (state.head) {\n\t state.head.xflags = (hold & 0xff);\n\t state.head.os = (hold >> 8);\n\t }\n\t if (state.flags & 0x0200) {\n\t //=== CRC2(state.check, hold);\n\t hbuf[0] = hold & 0xff;\n\t hbuf[1] = (hold >>> 8) & 0xff;\n\t state.check = crc32(state.check, hbuf, 2, 0);\n\t //===//\n\t }\n\t //=== INITBITS();\n\t hold = 0;\n\t bits = 0;\n\t //===//\n\t state.mode = EXLEN;\n\t /* falls through */\n\t case EXLEN:\n\t if (state.flags & 0x0400) {\n\t //=== NEEDBITS(16); */\n\t while (bits < 16) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t state.length = hold;\n\t if (state.head) {\n\t state.head.extra_len = hold;\n\t }\n\t if (state.flags & 0x0200) {\n\t //=== CRC2(state.check, hold);\n\t hbuf[0] = hold & 0xff;\n\t hbuf[1] = (hold >>> 8) & 0xff;\n\t state.check = crc32(state.check, hbuf, 2, 0);\n\t //===//\n\t }\n\t //=== INITBITS();\n\t hold = 0;\n\t bits = 0;\n\t //===//\n\t }\n\t else if (state.head) {\n\t state.head.extra = null/*Z_NULL*/;\n\t }\n\t state.mode = EXTRA;\n\t /* falls through */\n\t case EXTRA:\n\t if (state.flags & 0x0400) {\n\t copy = state.length;\n\t if (copy > have) { copy = have; }\n\t if (copy) {\n\t if (state.head) {\n\t len = state.head.extra_len - state.length;\n\t if (!state.head.extra) {\n\t // Use untyped array for more conveniend processing later\n\t state.head.extra = new Array(state.head.extra_len);\n\t }\n\t utils.arraySet(\n\t state.head.extra,\n\t input,\n\t next,\n\t // extra field is limited to 65536 bytes\n\t // - no need for additional size check\n\t copy,\n\t /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n\t len\n\t );\n\t //zmemcpy(state.head.extra + len, next,\n\t // len + copy > state.head.extra_max ?\n\t // state.head.extra_max - len : copy);\n\t }\n\t if (state.flags & 0x0200) {\n\t state.check = crc32(state.check, input, copy, next);\n\t }\n\t have -= copy;\n\t next += copy;\n\t state.length -= copy;\n\t }\n\t if (state.length) { break inf_leave; }\n\t }\n\t state.length = 0;\n\t state.mode = NAME;\n\t /* falls through */\n\t case NAME:\n\t if (state.flags & 0x0800) {\n\t if (have === 0) { break inf_leave; }\n\t copy = 0;\n\t do {\n\t // TODO: 2 or 1 bytes?\n\t len = input[next + copy++];\n\t /* use constant limit because in js we should not preallocate memory */\n\t if (state.head && len &&\n\t (state.length < 65536 /*state.head.name_max*/)) {\n\t state.head.name += String.fromCharCode(len);\n\t }\n\t } while (len && copy < have);\n\t\n\t if (state.flags & 0x0200) {\n\t state.check = crc32(state.check, input, copy, next);\n\t }\n\t have -= copy;\n\t next += copy;\n\t if (len) { break inf_leave; }\n\t }\n\t else if (state.head) {\n\t state.head.name = null;\n\t }\n\t state.length = 0;\n\t state.mode = COMMENT;\n\t /* falls through */\n\t case COMMENT:\n\t if (state.flags & 0x1000) {\n\t if (have === 0) { break inf_leave; }\n\t copy = 0;\n\t do {\n\t len = input[next + copy++];\n\t /* use constant limit because in js we should not preallocate memory */\n\t if (state.head && len &&\n\t (state.length < 65536 /*state.head.comm_max*/)) {\n\t state.head.comment += String.fromCharCode(len);\n\t }\n\t } while (len && copy < have);\n\t if (state.flags & 0x0200) {\n\t state.check = crc32(state.check, input, copy, next);\n\t }\n\t have -= copy;\n\t next += copy;\n\t if (len) { break inf_leave; }\n\t }\n\t else if (state.head) {\n\t state.head.comment = null;\n\t }\n\t state.mode = HCRC;\n\t /* falls through */\n\t case HCRC:\n\t if (state.flags & 0x0200) {\n\t //=== NEEDBITS(16); */\n\t while (bits < 16) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t if (hold !== (state.check & 0xffff)) {\n\t strm.msg = 'header crc mismatch';\n\t state.mode = BAD;\n\t break;\n\t }\n\t //=== INITBITS();\n\t hold = 0;\n\t bits = 0;\n\t //===//\n\t }\n\t if (state.head) {\n\t state.head.hcrc = ((state.flags >> 9) & 1);\n\t state.head.done = true;\n\t }\n\t strm.adler = state.check = 0;\n\t state.mode = TYPE;\n\t break;\n\t case DICTID:\n\t //=== NEEDBITS(32); */\n\t while (bits < 32) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t strm.adler = state.check = zswap32(hold);\n\t //=== INITBITS();\n\t hold = 0;\n\t bits = 0;\n\t //===//\n\t state.mode = DICT;\n\t /* falls through */\n\t case DICT:\n\t if (state.havedict === 0) {\n\t //--- RESTORE() ---\n\t strm.next_out = put;\n\t strm.avail_out = left;\n\t strm.next_in = next;\n\t strm.avail_in = have;\n\t state.hold = hold;\n\t state.bits = bits;\n\t //---\n\t return Z_NEED_DICT;\n\t }\n\t strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n\t state.mode = TYPE;\n\t /* falls through */\n\t case TYPE:\n\t if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n\t /* falls through */\n\t case TYPEDO:\n\t if (state.last) {\n\t //--- BYTEBITS() ---//\n\t hold >>>= bits & 7;\n\t bits -= bits & 7;\n\t //---//\n\t state.mode = CHECK;\n\t break;\n\t }\n\t //=== NEEDBITS(3); */\n\t while (bits < 3) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t state.last = (hold & 0x01)/*BITS(1)*/;\n\t //--- DROPBITS(1) ---//\n\t hold >>>= 1;\n\t bits -= 1;\n\t //---//\n\t\n\t switch ((hold & 0x03)/*BITS(2)*/) {\n\t case 0: /* stored block */\n\t //Tracev((stderr, \"inflate: stored block%s\\n\",\n\t // state.last ? \" (last)\" : \"\"));\n\t state.mode = STORED;\n\t break;\n\t case 1: /* fixed block */\n\t fixedtables(state);\n\t //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n\t // state.last ? \" (last)\" : \"\"));\n\t state.mode = LEN_; /* decode codes */\n\t if (flush === Z_TREES) {\n\t //--- DROPBITS(2) ---//\n\t hold >>>= 2;\n\t bits -= 2;\n\t //---//\n\t break inf_leave;\n\t }\n\t break;\n\t case 2: /* dynamic block */\n\t //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n\t // state.last ? \" (last)\" : \"\"));\n\t state.mode = TABLE;\n\t break;\n\t case 3:\n\t strm.msg = 'invalid block type';\n\t state.mode = BAD;\n\t }\n\t //--- DROPBITS(2) ---//\n\t hold >>>= 2;\n\t bits -= 2;\n\t //---//\n\t break;\n\t case STORED:\n\t //--- BYTEBITS() ---// /* go to byte boundary */\n\t hold >>>= bits & 7;\n\t bits -= bits & 7;\n\t //---//\n\t //=== NEEDBITS(32); */\n\t while (bits < 32) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n\t strm.msg = 'invalid stored block lengths';\n\t state.mode = BAD;\n\t break;\n\t }\n\t state.length = hold & 0xffff;\n\t //Tracev((stderr, \"inflate: stored length %u\\n\",\n\t // state.length));\n\t //=== INITBITS();\n\t hold = 0;\n\t bits = 0;\n\t //===//\n\t state.mode = COPY_;\n\t if (flush === Z_TREES) { break inf_leave; }\n\t /* falls through */\n\t case COPY_:\n\t state.mode = COPY;\n\t /* falls through */\n\t case COPY:\n\t copy = state.length;\n\t if (copy) {\n\t if (copy > have) { copy = have; }\n\t if (copy > left) { copy = left; }\n\t if (copy === 0) { break inf_leave; }\n\t //--- zmemcpy(put, next, copy); ---\n\t utils.arraySet(output, input, next, copy, put);\n\t //---//\n\t have -= copy;\n\t next += copy;\n\t left -= copy;\n\t put += copy;\n\t state.length -= copy;\n\t break;\n\t }\n\t //Tracev((stderr, \"inflate: stored end\\n\"));\n\t state.mode = TYPE;\n\t break;\n\t case TABLE:\n\t //=== NEEDBITS(14); */\n\t while (bits < 14) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n\t //--- DROPBITS(5) ---//\n\t hold >>>= 5;\n\t bits -= 5;\n\t //---//\n\t state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n\t //--- DROPBITS(5) ---//\n\t hold >>>= 5;\n\t bits -= 5;\n\t //---//\n\t state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n\t //--- DROPBITS(4) ---//\n\t hold >>>= 4;\n\t bits -= 4;\n\t //---//\n\t//#ifndef PKZIP_BUG_WORKAROUND\n\t if (state.nlen > 286 || state.ndist > 30) {\n\t strm.msg = 'too many length or distance symbols';\n\t state.mode = BAD;\n\t break;\n\t }\n\t//#endif\n\t //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n\t state.have = 0;\n\t state.mode = LENLENS;\n\t /* falls through */\n\t case LENLENS:\n\t while (state.have < state.ncode) {\n\t //=== NEEDBITS(3);\n\t while (bits < 3) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n\t //--- DROPBITS(3) ---//\n\t hold >>>= 3;\n\t bits -= 3;\n\t //---//\n\t }\n\t while (state.have < 19) {\n\t state.lens[order[state.have++]] = 0;\n\t }\n\t // We have separate tables & no pointers. 2 commented lines below not needed.\n\t //state.next = state.codes;\n\t //state.lencode = state.next;\n\t // Switch to use dynamic table\n\t state.lencode = state.lendyn;\n\t state.lenbits = 7;\n\t\n\t opts = { bits: state.lenbits };\n\t ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n\t state.lenbits = opts.bits;\n\t\n\t if (ret) {\n\t strm.msg = 'invalid code lengths set';\n\t state.mode = BAD;\n\t break;\n\t }\n\t //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n\t state.have = 0;\n\t state.mode = CODELENS;\n\t /* falls through */\n\t case CODELENS:\n\t while (state.have < state.nlen + state.ndist) {\n\t for (;;) {\n\t here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n\t here_bits = here >>> 24;\n\t here_op = (here >>> 16) & 0xff;\n\t here_val = here & 0xffff;\n\t\n\t if ((here_bits) <= bits) { break; }\n\t //--- PULLBYTE() ---//\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t //---//\n\t }\n\t if (here_val < 16) {\n\t //--- DROPBITS(here.bits) ---//\n\t hold >>>= here_bits;\n\t bits -= here_bits;\n\t //---//\n\t state.lens[state.have++] = here_val;\n\t }\n\t else {\n\t if (here_val === 16) {\n\t //=== NEEDBITS(here.bits + 2);\n\t n = here_bits + 2;\n\t while (bits < n) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t //--- DROPBITS(here.bits) ---//\n\t hold >>>= here_bits;\n\t bits -= here_bits;\n\t //---//\n\t if (state.have === 0) {\n\t strm.msg = 'invalid bit length repeat';\n\t state.mode = BAD;\n\t break;\n\t }\n\t len = state.lens[state.have - 1];\n\t copy = 3 + (hold & 0x03);//BITS(2);\n\t //--- DROPBITS(2) ---//\n\t hold >>>= 2;\n\t bits -= 2;\n\t //---//\n\t }\n\t else if (here_val === 17) {\n\t //=== NEEDBITS(here.bits + 3);\n\t n = here_bits + 3;\n\t while (bits < n) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t //--- DROPBITS(here.bits) ---//\n\t hold >>>= here_bits;\n\t bits -= here_bits;\n\t //---//\n\t len = 0;\n\t copy = 3 + (hold & 0x07);//BITS(3);\n\t //--- DROPBITS(3) ---//\n\t hold >>>= 3;\n\t bits -= 3;\n\t //---//\n\t }\n\t else {\n\t //=== NEEDBITS(here.bits + 7);\n\t n = here_bits + 7;\n\t while (bits < n) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t //--- DROPBITS(here.bits) ---//\n\t hold >>>= here_bits;\n\t bits -= here_bits;\n\t //---//\n\t len = 0;\n\t copy = 11 + (hold & 0x7f);//BITS(7);\n\t //--- DROPBITS(7) ---//\n\t hold >>>= 7;\n\t bits -= 7;\n\t //---//\n\t }\n\t if (state.have + copy > state.nlen + state.ndist) {\n\t strm.msg = 'invalid bit length repeat';\n\t state.mode = BAD;\n\t break;\n\t }\n\t while (copy--) {\n\t state.lens[state.have++] = len;\n\t }\n\t }\n\t }\n\t\n\t /* handle error breaks in while */\n\t if (state.mode === BAD) { break; }\n\t\n\t /* check for end-of-block code (better have one) */\n\t if (state.lens[256] === 0) {\n\t strm.msg = 'invalid code -- missing end-of-block';\n\t state.mode = BAD;\n\t break;\n\t }\n\t\n\t /* build code tables -- note: do not change the lenbits or distbits\n\t values here (9 and 6) without reading the comments in inftrees.h\n\t concerning the ENOUGH constants, which depend on those values */\n\t state.lenbits = 9;\n\t\n\t opts = { bits: state.lenbits };\n\t ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n\t // We have separate tables & no pointers. 2 commented lines below not needed.\n\t // state.next_index = opts.table_index;\n\t state.lenbits = opts.bits;\n\t // state.lencode = state.next;\n\t\n\t if (ret) {\n\t strm.msg = 'invalid literal/lengths set';\n\t state.mode = BAD;\n\t break;\n\t }\n\t\n\t state.distbits = 6;\n\t //state.distcode.copy(state.codes);\n\t // Switch to use dynamic table\n\t state.distcode = state.distdyn;\n\t opts = { bits: state.distbits };\n\t ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n\t // We have separate tables & no pointers. 2 commented lines below not needed.\n\t // state.next_index = opts.table_index;\n\t state.distbits = opts.bits;\n\t // state.distcode = state.next;\n\t\n\t if (ret) {\n\t strm.msg = 'invalid distances set';\n\t state.mode = BAD;\n\t break;\n\t }\n\t //Tracev((stderr, 'inflate: codes ok\\n'));\n\t state.mode = LEN_;\n\t if (flush === Z_TREES) { break inf_leave; }\n\t /* falls through */\n\t case LEN_:\n\t state.mode = LEN;\n\t /* falls through */\n\t case LEN:\n\t if (have >= 6 && left >= 258) {\n\t //--- RESTORE() ---\n\t strm.next_out = put;\n\t strm.avail_out = left;\n\t strm.next_in = next;\n\t strm.avail_in = have;\n\t state.hold = hold;\n\t state.bits = bits;\n\t //---\n\t inflate_fast(strm, _out);\n\t //--- LOAD() ---\n\t put = strm.next_out;\n\t output = strm.output;\n\t left = strm.avail_out;\n\t next = strm.next_in;\n\t input = strm.input;\n\t have = strm.avail_in;\n\t hold = state.hold;\n\t bits = state.bits;\n\t //---\n\t\n\t if (state.mode === TYPE) {\n\t state.back = -1;\n\t }\n\t break;\n\t }\n\t state.back = 0;\n\t for (;;) {\n\t here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n\t here_bits = here >>> 24;\n\t here_op = (here >>> 16) & 0xff;\n\t here_val = here & 0xffff;\n\t\n\t if (here_bits <= bits) { break; }\n\t //--- PULLBYTE() ---//\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t //---//\n\t }\n\t if (here_op && (here_op & 0xf0) === 0) {\n\t last_bits = here_bits;\n\t last_op = here_op;\n\t last_val = here_val;\n\t for (;;) {\n\t here = state.lencode[last_val +\n\t ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n\t here_bits = here >>> 24;\n\t here_op = (here >>> 16) & 0xff;\n\t here_val = here & 0xffff;\n\t\n\t if ((last_bits + here_bits) <= bits) { break; }\n\t //--- PULLBYTE() ---//\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t //---//\n\t }\n\t //--- DROPBITS(last.bits) ---//\n\t hold >>>= last_bits;\n\t bits -= last_bits;\n\t //---//\n\t state.back += last_bits;\n\t }\n\t //--- DROPBITS(here.bits) ---//\n\t hold >>>= here_bits;\n\t bits -= here_bits;\n\t //---//\n\t state.back += here_bits;\n\t state.length = here_val;\n\t if (here_op === 0) {\n\t //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n\t // \"inflate: literal '%c'\\n\" :\n\t // \"inflate: literal 0x%02x\\n\", here.val));\n\t state.mode = LIT;\n\t break;\n\t }\n\t if (here_op & 32) {\n\t //Tracevv((stderr, \"inflate: end of block\\n\"));\n\t state.back = -1;\n\t state.mode = TYPE;\n\t break;\n\t }\n\t if (here_op & 64) {\n\t strm.msg = 'invalid literal/length code';\n\t state.mode = BAD;\n\t break;\n\t }\n\t state.extra = here_op & 15;\n\t state.mode = LENEXT;\n\t /* falls through */\n\t case LENEXT:\n\t if (state.extra) {\n\t //=== NEEDBITS(state.extra);\n\t n = state.extra;\n\t while (bits < n) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n\t //--- DROPBITS(state.extra) ---//\n\t hold >>>= state.extra;\n\t bits -= state.extra;\n\t //---//\n\t state.back += state.extra;\n\t }\n\t //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n\t state.was = state.length;\n\t state.mode = DIST;\n\t /* falls through */\n\t case DIST:\n\t for (;;) {\n\t here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n\t here_bits = here >>> 24;\n\t here_op = (here >>> 16) & 0xff;\n\t here_val = here & 0xffff;\n\t\n\t if ((here_bits) <= bits) { break; }\n\t //--- PULLBYTE() ---//\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t //---//\n\t }\n\t if ((here_op & 0xf0) === 0) {\n\t last_bits = here_bits;\n\t last_op = here_op;\n\t last_val = here_val;\n\t for (;;) {\n\t here = state.distcode[last_val +\n\t ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n\t here_bits = here >>> 24;\n\t here_op = (here >>> 16) & 0xff;\n\t here_val = here & 0xffff;\n\t\n\t if ((last_bits + here_bits) <= bits) { break; }\n\t //--- PULLBYTE() ---//\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t //---//\n\t }\n\t //--- DROPBITS(last.bits) ---//\n\t hold >>>= last_bits;\n\t bits -= last_bits;\n\t //---//\n\t state.back += last_bits;\n\t }\n\t //--- DROPBITS(here.bits) ---//\n\t hold >>>= here_bits;\n\t bits -= here_bits;\n\t //---//\n\t state.back += here_bits;\n\t if (here_op & 64) {\n\t strm.msg = 'invalid distance code';\n\t state.mode = BAD;\n\t break;\n\t }\n\t state.offset = here_val;\n\t state.extra = (here_op) & 15;\n\t state.mode = DISTEXT;\n\t /* falls through */\n\t case DISTEXT:\n\t if (state.extra) {\n\t //=== NEEDBITS(state.extra);\n\t n = state.extra;\n\t while (bits < n) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n\t //--- DROPBITS(state.extra) ---//\n\t hold >>>= state.extra;\n\t bits -= state.extra;\n\t //---//\n\t state.back += state.extra;\n\t }\n\t//#ifdef INFLATE_STRICT\n\t if (state.offset > state.dmax) {\n\t strm.msg = 'invalid distance too far back';\n\t state.mode = BAD;\n\t break;\n\t }\n\t//#endif\n\t //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n\t state.mode = MATCH;\n\t /* falls through */\n\t case MATCH:\n\t if (left === 0) { break inf_leave; }\n\t copy = _out - left;\n\t if (state.offset > copy) { /* copy from window */\n\t copy = state.offset - copy;\n\t if (copy > state.whave) {\n\t if (state.sane) {\n\t strm.msg = 'invalid distance too far back';\n\t state.mode = BAD;\n\t break;\n\t }\n\t// (!) This block is disabled in zlib defailts,\n\t// don't enable it for binary compatibility\n\t//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n\t// Trace((stderr, \"inflate.c too far\\n\"));\n\t// copy -= state.whave;\n\t// if (copy > state.length) { copy = state.length; }\n\t// if (copy > left) { copy = left; }\n\t// left -= copy;\n\t// state.length -= copy;\n\t// do {\n\t// output[put++] = 0;\n\t// } while (--copy);\n\t// if (state.length === 0) { state.mode = LEN; }\n\t// break;\n\t//#endif\n\t }\n\t if (copy > state.wnext) {\n\t copy -= state.wnext;\n\t from = state.wsize - copy;\n\t }\n\t else {\n\t from = state.wnext - copy;\n\t }\n\t if (copy > state.length) { copy = state.length; }\n\t from_source = state.window;\n\t }\n\t else { /* copy from output */\n\t from_source = output;\n\t from = put - state.offset;\n\t copy = state.length;\n\t }\n\t if (copy > left) { copy = left; }\n\t left -= copy;\n\t state.length -= copy;\n\t do {\n\t output[put++] = from_source[from++];\n\t } while (--copy);\n\t if (state.length === 0) { state.mode = LEN; }\n\t break;\n\t case LIT:\n\t if (left === 0) { break inf_leave; }\n\t output[put++] = state.length;\n\t left--;\n\t state.mode = LEN;\n\t break;\n\t case CHECK:\n\t if (state.wrap) {\n\t //=== NEEDBITS(32);\n\t while (bits < 32) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t // Use '|' insdead of '+' to make sure that result is signed\n\t hold |= input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t _out -= left;\n\t strm.total_out += _out;\n\t state.total += _out;\n\t if (_out) {\n\t strm.adler = state.check =\n\t /*UPDATE(state.check, put - _out, _out);*/\n\t (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\t\n\t }\n\t _out = left;\n\t // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n\t if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n\t strm.msg = 'incorrect data check';\n\t state.mode = BAD;\n\t break;\n\t }\n\t //=== INITBITS();\n\t hold = 0;\n\t bits = 0;\n\t //===//\n\t //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n\t }\n\t state.mode = LENGTH;\n\t /* falls through */\n\t case LENGTH:\n\t if (state.wrap && state.flags) {\n\t //=== NEEDBITS(32);\n\t while (bits < 32) {\n\t if (have === 0) { break inf_leave; }\n\t have--;\n\t hold += input[next++] << bits;\n\t bits += 8;\n\t }\n\t //===//\n\t if (hold !== (state.total & 0xffffffff)) {\n\t strm.msg = 'incorrect length check';\n\t state.mode = BAD;\n\t break;\n\t }\n\t //=== INITBITS();\n\t hold = 0;\n\t bits = 0;\n\t //===//\n\t //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n\t }\n\t state.mode = DONE;\n\t /* falls through */\n\t case DONE:\n\t ret = Z_STREAM_END;\n\t break inf_leave;\n\t case BAD:\n\t ret = Z_DATA_ERROR;\n\t break inf_leave;\n\t case MEM:\n\t return Z_MEM_ERROR;\n\t case SYNC:\n\t /* falls through */\n\t default:\n\t return Z_STREAM_ERROR;\n\t }\n\t }\n\t\n\t // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\t\n\t /*\n\t Return from inflate(), updating the total counts and the check value.\n\t If there was no progress during the inflate() call, return a buffer\n\t error. Call updatewindow() to create and/or update the window state.\n\t Note: a memory error from inflate() is non-recoverable.\n\t */\n\t\n\t //--- RESTORE() ---\n\t strm.next_out = put;\n\t strm.avail_out = left;\n\t strm.next_in = next;\n\t strm.avail_in = have;\n\t state.hold = hold;\n\t state.bits = bits;\n\t //---\n\t\n\t if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n\t (state.mode < CHECK || flush !== Z_FINISH))) {\n\t if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n\t state.mode = MEM;\n\t return Z_MEM_ERROR;\n\t }\n\t }\n\t _in -= strm.avail_in;\n\t _out -= strm.avail_out;\n\t strm.total_in += _in;\n\t strm.total_out += _out;\n\t state.total += _out;\n\t if (state.wrap && _out) {\n\t strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n\t (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n\t }\n\t strm.data_type = state.bits + (state.last ? 64 : 0) +\n\t (state.mode === TYPE ? 128 : 0) +\n\t (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n\t if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n\t ret = Z_BUF_ERROR;\n\t }\n\t return ret;\n\t}\n\t\n\tfunction inflateEnd(strm) {\n\t\n\t if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n\t return Z_STREAM_ERROR;\n\t }\n\t\n\t var state = strm.state;\n\t if (state.window) {\n\t state.window = null;\n\t }\n\t strm.state = null;\n\t return Z_OK;\n\t}\n\t\n\tfunction inflateGetHeader(strm, head) {\n\t var state;\n\t\n\t /* check state */\n\t if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n\t state = strm.state;\n\t if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\t\n\t /* save header structure */\n\t state.head = head;\n\t head.done = false;\n\t return Z_OK;\n\t}\n\t\n\tfunction inflateSetDictionary(strm, dictionary) {\n\t var dictLength = dictionary.length;\n\t\n\t var state;\n\t var dictid;\n\t var ret;\n\t\n\t /* check state */\n\t if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }\n\t state = strm.state;\n\t\n\t if (state.wrap !== 0 && state.mode !== DICT) {\n\t return Z_STREAM_ERROR;\n\t }\n\t\n\t /* check for correct dictionary identifier */\n\t if (state.mode === DICT) {\n\t dictid = 1; /* adler32(0, null, 0)*/\n\t /* dictid = adler32(dictid, dictionary, dictLength); */\n\t dictid = adler32(dictid, dictionary, dictLength, 0);\n\t if (dictid !== state.check) {\n\t return Z_DATA_ERROR;\n\t }\n\t }\n\t /* copy dictionary to window using updatewindow(), which will amend the\n\t existing dictionary if appropriate */\n\t ret = updatewindow(strm, dictionary, dictLength, dictLength);\n\t if (ret) {\n\t state.mode = MEM;\n\t return Z_MEM_ERROR;\n\t }\n\t state.havedict = 1;\n\t // Tracev((stderr, \"inflate: dictionary set\\n\"));\n\t return Z_OK;\n\t}\n\t\n\texports.inflateReset = inflateReset;\n\texports.inflateReset2 = inflateReset2;\n\texports.inflateResetKeep = inflateResetKeep;\n\texports.inflateInit = inflateInit;\n\texports.inflateInit2 = inflateInit2;\n\texports.inflate = inflate;\n\texports.inflateEnd = inflateEnd;\n\texports.inflateGetHeader = inflateGetHeader;\n\texports.inflateSetDictionary = inflateSetDictionary;\n\texports.inflateInfo = 'pako inflate (from Nodeca project)';\n\t\n\t/* Not implemented\n\texports.inflateCopy = inflateCopy;\n\texports.inflateGetDictionary = inflateGetDictionary;\n\texports.inflateMark = inflateMark;\n\texports.inflatePrime = inflatePrime;\n\texports.inflateSync = inflateSync;\n\texports.inflateSyncPoint = inflateSyncPoint;\n\texports.inflateUndermine = inflateUndermine;\n\t*/\n\n\n/***/ },\n/* 33 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t\n\tvar TYPED_OK = (typeof Uint8Array !== 'undefined') &&\n\t (typeof Uint16Array !== 'undefined') &&\n\t (typeof Int32Array !== 'undefined');\n\t\n\t\n\texports.assign = function (obj /*from1, from2, from3, ...*/) {\n\t var sources = Array.prototype.slice.call(arguments, 1);\n\t while (sources.length) {\n\t var source = sources.shift();\n\t if (!source) { continue; }\n\t\n\t if (typeof source !== 'object') {\n\t throw new TypeError(source + 'must be non-object');\n\t }\n\t\n\t for (var p in source) {\n\t if (source.hasOwnProperty(p)) {\n\t obj[p] = source[p];\n\t }\n\t }\n\t }\n\t\n\t return obj;\n\t};\n\t\n\t\n\t// reduce buffer size, avoiding mem copy\n\texports.shrinkBuf = function (buf, size) {\n\t if (buf.length === size) { return buf; }\n\t if (buf.subarray) { return buf.subarray(0, size); }\n\t buf.length = size;\n\t return buf;\n\t};\n\t\n\t\n\tvar fnTyped = {\n\t arraySet: function (dest, src, src_offs, len, dest_offs) {\n\t if (src.subarray && dest.subarray) {\n\t dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n\t return;\n\t }\n\t // Fallback to ordinary array\n\t for (var i = 0; i < len; i++) {\n\t dest[dest_offs + i] = src[src_offs + i];\n\t }\n\t },\n\t // Join array of chunks to single array.\n\t flattenChunks: function (chunks) {\n\t var i, l, len, pos, chunk, result;\n\t\n\t // calculate data length\n\t len = 0;\n\t for (i = 0, l = chunks.length; i < l; i++) {\n\t len += chunks[i].length;\n\t }\n\t\n\t // join chunks\n\t result = new Uint8Array(len);\n\t pos = 0;\n\t for (i = 0, l = chunks.length; i < l; i++) {\n\t chunk = chunks[i];\n\t result.set(chunk, pos);\n\t pos += chunk.length;\n\t }\n\t\n\t return result;\n\t }\n\t};\n\t\n\tvar fnUntyped = {\n\t arraySet: function (dest, src, src_offs, len, dest_offs) {\n\t for (var i = 0; i < len; i++) {\n\t dest[dest_offs + i] = src[src_offs + i];\n\t }\n\t },\n\t // Join array of chunks to single array.\n\t flattenChunks: function (chunks) {\n\t return [].concat.apply([], chunks);\n\t }\n\t};\n\t\n\t\n\t// Enable/Disable typed arrays use, for testing\n\t//\n\texports.setTyped = function (on) {\n\t if (on) {\n\t exports.Buf8 = Uint8Array;\n\t exports.Buf16 = Uint16Array;\n\t exports.Buf32 = Int32Array;\n\t exports.assign(exports, fnTyped);\n\t } else {\n\t exports.Buf8 = Array;\n\t exports.Buf16 = Array;\n\t exports.Buf32 = Array;\n\t exports.assign(exports, fnUntyped);\n\t }\n\t};\n\t\n\texports.setTyped(TYPED_OK);\n\n\n/***/ },\n/* 34 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t// Note: adler32 takes 12% for level 0 and 2% for level 6.\n\t// It doesn't worth to make additional optimizationa as in original.\n\t// Small size is preferable.\n\t\n\tfunction adler32(adler, buf, len, pos) {\n\t var s1 = (adler & 0xffff) |0,\n\t s2 = ((adler >>> 16) & 0xffff) |0,\n\t n = 0;\n\t\n\t while (len !== 0) {\n\t // Set limit ~ twice less than 5552, to keep\n\t // s2 in 31-bits, because we force signed ints.\n\t // in other case %= will fail.\n\t n = len > 2000 ? 2000 : len;\n\t len -= n;\n\t\n\t do {\n\t s1 = (s1 + buf[pos++]) |0;\n\t s2 = (s2 + s1) |0;\n\t } while (--n);\n\t\n\t s1 %= 65521;\n\t s2 %= 65521;\n\t }\n\t\n\t return (s1 | (s2 << 16)) |0;\n\t}\n\t\n\t\n\tmodule.exports = adler32;\n\n\n/***/ },\n/* 35 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t// Note: we can't get significant speed boost here.\n\t// So write code to minimize size - no pregenerated tables\n\t// and array tools dependencies.\n\t\n\t\n\t// Use ordinary array, since untyped makes no boost here\n\tfunction makeTable() {\n\t var c, table = [];\n\t\n\t for (var n = 0; n < 256; n++) {\n\t c = n;\n\t for (var k = 0; k < 8; k++) {\n\t c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n\t }\n\t table[n] = c;\n\t }\n\t\n\t return table;\n\t}\n\t\n\t// Create table on load. Just 255 signed longs. Not a problem.\n\tvar crcTable = makeTable();\n\t\n\t\n\tfunction crc32(crc, buf, len, pos) {\n\t var t = crcTable,\n\t end = pos + len;\n\t\n\t crc ^= -1;\n\t\n\t for (var i = pos; i < end; i++) {\n\t crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n\t }\n\t\n\t return (crc ^ (-1)); // >>> 0;\n\t}\n\t\n\t\n\tmodule.exports = crc32;\n\n\n/***/ },\n/* 36 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t// See state defs from inflate.js\n\tvar BAD = 30; /* got a data error -- remain here until reset */\n\tvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\t\n\t/*\n\t Decode literal, length, and distance codes and write out the resulting\n\t literal and match bytes until either not enough input or output is\n\t available, an end-of-block is encountered, or a data error is encountered.\n\t When large enough input and output buffers are supplied to inflate(), for\n\t example, a 16K input buffer and a 64K output buffer, more than 95% of the\n\t inflate execution time is spent in this routine.\n\t\n\t Entry assumptions:\n\t\n\t state.mode === LEN\n\t strm.avail_in >= 6\n\t strm.avail_out >= 258\n\t start >= strm.avail_out\n\t state.bits < 8\n\t\n\t On return, state.mode is one of:\n\t\n\t LEN -- ran out of enough output space or enough available input\n\t TYPE -- reached end of block code, inflate() to interpret next block\n\t BAD -- error in block data\n\t\n\t Notes:\n\t\n\t - The maximum input bits used by a length/distance pair is 15 bits for the\n\t length code, 5 bits for the length extra, 15 bits for the distance code,\n\t and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n\t Therefore if strm.avail_in >= 6, then there is enough input to avoid\n\t checking for available input while decoding.\n\t\n\t - The maximum bytes that a single length/distance pair can output is 258\n\t bytes, which is the maximum length that can be coded. inflate_fast()\n\t requires strm.avail_out >= 258 for each loop to avoid checking for\n\t output space.\n\t */\n\tmodule.exports = function inflate_fast(strm, start) {\n\t var state;\n\t var _in; /* local strm.input */\n\t var last; /* have enough input while in < last */\n\t var _out; /* local strm.output */\n\t var beg; /* inflate()'s initial strm.output */\n\t var end; /* while out < end, enough space available */\n\t//#ifdef INFLATE_STRICT\n\t var dmax; /* maximum distance from zlib header */\n\t//#endif\n\t var wsize; /* window size or zero if not using window */\n\t var whave; /* valid bytes in the window */\n\t var wnext; /* window write index */\n\t // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n\t var s_window; /* allocated sliding window, if wsize != 0 */\n\t var hold; /* local strm.hold */\n\t var bits; /* local strm.bits */\n\t var lcode; /* local strm.lencode */\n\t var dcode; /* local strm.distcode */\n\t var lmask; /* mask for first level of length codes */\n\t var dmask; /* mask for first level of distance codes */\n\t var here; /* retrieved table entry */\n\t var op; /* code bits, operation, extra bits, or */\n\t /* window position, window bytes to copy */\n\t var len; /* match length, unused bytes */\n\t var dist; /* match distance */\n\t var from; /* where to copy match from */\n\t var from_source;\n\t\n\t\n\t var input, output; // JS specific, because we have no pointers\n\t\n\t /* copy state to local variables */\n\t state = strm.state;\n\t //here = state.here;\n\t _in = strm.next_in;\n\t input = strm.input;\n\t last = _in + (strm.avail_in - 5);\n\t _out = strm.next_out;\n\t output = strm.output;\n\t beg = _out - (start - strm.avail_out);\n\t end = _out + (strm.avail_out - 257);\n\t//#ifdef INFLATE_STRICT\n\t dmax = state.dmax;\n\t//#endif\n\t wsize = state.wsize;\n\t whave = state.whave;\n\t wnext = state.wnext;\n\t s_window = state.window;\n\t hold = state.hold;\n\t bits = state.bits;\n\t lcode = state.lencode;\n\t dcode = state.distcode;\n\t lmask = (1 << state.lenbits) - 1;\n\t dmask = (1 << state.distbits) - 1;\n\t\n\t\n\t /* decode literals and length/distances until end-of-block or not enough\n\t input data or output space */\n\t\n\t top:\n\t do {\n\t if (bits < 15) {\n\t hold += input[_in++] << bits;\n\t bits += 8;\n\t hold += input[_in++] << bits;\n\t bits += 8;\n\t }\n\t\n\t here = lcode[hold & lmask];\n\t\n\t dolen:\n\t for (;;) { // Goto emulation\n\t op = here >>> 24/*here.bits*/;\n\t hold >>>= op;\n\t bits -= op;\n\t op = (here >>> 16) & 0xff/*here.op*/;\n\t if (op === 0) { /* literal */\n\t //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n\t // \"inflate: literal '%c'\\n\" :\n\t // \"inflate: literal 0x%02x\\n\", here.val));\n\t output[_out++] = here & 0xffff/*here.val*/;\n\t }\n\t else if (op & 16) { /* length base */\n\t len = here & 0xffff/*here.val*/;\n\t op &= 15; /* number of extra bits */\n\t if (op) {\n\t if (bits < op) {\n\t hold += input[_in++] << bits;\n\t bits += 8;\n\t }\n\t len += hold & ((1 << op) - 1);\n\t hold >>>= op;\n\t bits -= op;\n\t }\n\t //Tracevv((stderr, \"inflate: length %u\\n\", len));\n\t if (bits < 15) {\n\t hold += input[_in++] << bits;\n\t bits += 8;\n\t hold += input[_in++] << bits;\n\t bits += 8;\n\t }\n\t here = dcode[hold & dmask];\n\t\n\t dodist:\n\t for (;;) { // goto emulation\n\t op = here >>> 24/*here.bits*/;\n\t hold >>>= op;\n\t bits -= op;\n\t op = (here >>> 16) & 0xff/*here.op*/;\n\t\n\t if (op & 16) { /* distance base */\n\t dist = here & 0xffff/*here.val*/;\n\t op &= 15; /* number of extra bits */\n\t if (bits < op) {\n\t hold += input[_in++] << bits;\n\t bits += 8;\n\t if (bits < op) {\n\t hold += input[_in++] << bits;\n\t bits += 8;\n\t }\n\t }\n\t dist += hold & ((1 << op) - 1);\n\t//#ifdef INFLATE_STRICT\n\t if (dist > dmax) {\n\t strm.msg = 'invalid distance too far back';\n\t state.mode = BAD;\n\t break top;\n\t }\n\t//#endif\n\t hold >>>= op;\n\t bits -= op;\n\t //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n\t op = _out - beg; /* max distance in output */\n\t if (dist > op) { /* see if copy from window */\n\t op = dist - op; /* distance back in window */\n\t if (op > whave) {\n\t if (state.sane) {\n\t strm.msg = 'invalid distance too far back';\n\t state.mode = BAD;\n\t break top;\n\t }\n\t\n\t// (!) This block is disabled in zlib defailts,\n\t// don't enable it for binary compatibility\n\t//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n\t// if (len <= op - whave) {\n\t// do {\n\t// output[_out++] = 0;\n\t// } while (--len);\n\t// continue top;\n\t// }\n\t// len -= op - whave;\n\t// do {\n\t// output[_out++] = 0;\n\t// } while (--op > whave);\n\t// if (op === 0) {\n\t// from = _out - dist;\n\t// do {\n\t// output[_out++] = output[from++];\n\t// } while (--len);\n\t// continue top;\n\t// }\n\t//#endif\n\t }\n\t from = 0; // window index\n\t from_source = s_window;\n\t if (wnext === 0) { /* very common case */\n\t from += wsize - op;\n\t if (op < len) { /* some from window */\n\t len -= op;\n\t do {\n\t output[_out++] = s_window[from++];\n\t } while (--op);\n\t from = _out - dist; /* rest from output */\n\t from_source = output;\n\t }\n\t }\n\t else if (wnext < op) { /* wrap around window */\n\t from += wsize + wnext - op;\n\t op -= wnext;\n\t if (op < len) { /* some from end of window */\n\t len -= op;\n\t do {\n\t output[_out++] = s_window[from++];\n\t } while (--op);\n\t from = 0;\n\t if (wnext < len) { /* some from start of window */\n\t op = wnext;\n\t len -= op;\n\t do {\n\t output[_out++] = s_window[from++];\n\t } while (--op);\n\t from = _out - dist; /* rest from output */\n\t from_source = output;\n\t }\n\t }\n\t }\n\t else { /* contiguous in window */\n\t from += wnext - op;\n\t if (op < len) { /* some from window */\n\t len -= op;\n\t do {\n\t output[_out++] = s_window[from++];\n\t } while (--op);\n\t from = _out - dist; /* rest from output */\n\t from_source = output;\n\t }\n\t }\n\t while (len > 2) {\n\t output[_out++] = from_source[from++];\n\t output[_out++] = from_source[from++];\n\t output[_out++] = from_source[from++];\n\t len -= 3;\n\t }\n\t if (len) {\n\t output[_out++] = from_source[from++];\n\t if (len > 1) {\n\t output[_out++] = from_source[from++];\n\t }\n\t }\n\t }\n\t else {\n\t from = _out - dist; /* copy direct from output */\n\t do { /* minimum length is three */\n\t output[_out++] = output[from++];\n\t output[_out++] = output[from++];\n\t output[_out++] = output[from++];\n\t len -= 3;\n\t } while (len > 2);\n\t if (len) {\n\t output[_out++] = output[from++];\n\t if (len > 1) {\n\t output[_out++] = output[from++];\n\t }\n\t }\n\t }\n\t }\n\t else if ((op & 64) === 0) { /* 2nd level distance code */\n\t here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n\t continue dodist;\n\t }\n\t else {\n\t strm.msg = 'invalid distance code';\n\t state.mode = BAD;\n\t break top;\n\t }\n\t\n\t break; // need to emulate goto via \"continue\"\n\t }\n\t }\n\t else if ((op & 64) === 0) { /* 2nd level length code */\n\t here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n\t continue dolen;\n\t }\n\t else if (op & 32) { /* end-of-block */\n\t //Tracevv((stderr, \"inflate: end of block\\n\"));\n\t state.mode = TYPE;\n\t break top;\n\t }\n\t else {\n\t strm.msg = 'invalid literal/length code';\n\t state.mode = BAD;\n\t break top;\n\t }\n\t\n\t break; // need to emulate goto via \"continue\"\n\t }\n\t } while (_in < last && _out < end);\n\t\n\t /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n\t len = bits >> 3;\n\t _in -= len;\n\t bits -= len << 3;\n\t hold &= (1 << bits) - 1;\n\t\n\t /* update state and return */\n\t strm.next_in = _in;\n\t strm.next_out = _out;\n\t strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n\t strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n\t state.hold = hold;\n\t state.bits = bits;\n\t return;\n\t};\n\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t\n\tvar utils = __webpack_require__(33);\n\t\n\tvar MAXBITS = 15;\n\tvar ENOUGH_LENS = 852;\n\tvar ENOUGH_DISTS = 592;\n\t//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\t\n\tvar CODES = 0;\n\tvar LENS = 1;\n\tvar DISTS = 2;\n\t\n\tvar lbase = [ /* Length codes 257..285 base */\n\t 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n\t 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n\t];\n\t\n\tvar lext = [ /* Length codes 257..285 extra */\n\t 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n\t 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n\t];\n\t\n\tvar dbase = [ /* Distance codes 0..29 base */\n\t 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n\t 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n\t 8193, 12289, 16385, 24577, 0, 0\n\t];\n\t\n\tvar dext = [ /* Distance codes 0..29 extra */\n\t 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n\t 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n\t 28, 28, 29, 29, 64, 64\n\t];\n\t\n\tmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n\t{\n\t var bits = opts.bits;\n\t //here = opts.here; /* table entry for duplication */\n\t\n\t var len = 0; /* a code's length in bits */\n\t var sym = 0; /* index of code symbols */\n\t var min = 0, max = 0; /* minimum and maximum code lengths */\n\t var root = 0; /* number of index bits for root table */\n\t var curr = 0; /* number of index bits for current table */\n\t var drop = 0; /* code bits to drop for sub-table */\n\t var left = 0; /* number of prefix codes available */\n\t var used = 0; /* code entries in table used */\n\t var huff = 0; /* Huffman code */\n\t var incr; /* for incrementing code, index */\n\t var fill; /* index for replicating entries */\n\t var low; /* low bits for current root entry */\n\t var mask; /* mask for low root bits */\n\t var next; /* next available space in table */\n\t var base = null; /* base value table to use */\n\t var base_index = 0;\n\t// var shoextra; /* extra bits table to use */\n\t var end; /* use base and extra for symbol > end */\n\t var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n\t var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n\t var extra = null;\n\t var extra_index = 0;\n\t\n\t var here_bits, here_op, here_val;\n\t\n\t /*\n\t Process a set of code lengths to create a canonical Huffman code. The\n\t code lengths are lens[0..codes-1]. Each length corresponds to the\n\t symbols 0..codes-1. The Huffman code is generated by first sorting the\n\t symbols by length from short to long, and retaining the symbol order\n\t for codes with equal lengths. Then the code starts with all zero bits\n\t for the first code of the shortest length, and the codes are integer\n\t increments for the same length, and zeros are appended as the length\n\t increases. For the deflate format, these bits are stored backwards\n\t from their more natural integer increment ordering, and so when the\n\t decoding tables are built in the large loop below, the integer codes\n\t are incremented backwards.\n\t\n\t This routine assumes, but does not check, that all of the entries in\n\t lens[] are in the range 0..MAXBITS. The caller must assure this.\n\t 1..MAXBITS is interpreted as that code length. zero means that that\n\t symbol does not occur in this code.\n\t\n\t The codes are sorted by computing a count of codes for each length,\n\t creating from that a table of starting indices for each length in the\n\t sorted table, and then entering the symbols in order in the sorted\n\t table. The sorted table is work[], with that space being provided by\n\t the caller.\n\t\n\t The length counts are used for other purposes as well, i.e. finding\n\t the minimum and maximum length codes, determining if there are any\n\t codes at all, checking for a valid set of lengths, and looking ahead\n\t at length counts to determine sub-table sizes when building the\n\t decoding tables.\n\t */\n\t\n\t /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n\t for (len = 0; len <= MAXBITS; len++) {\n\t count[len] = 0;\n\t }\n\t for (sym = 0; sym < codes; sym++) {\n\t count[lens[lens_index + sym]]++;\n\t }\n\t\n\t /* bound code lengths, force root to be within code lengths */\n\t root = bits;\n\t for (max = MAXBITS; max >= 1; max--) {\n\t if (count[max] !== 0) { break; }\n\t }\n\t if (root > max) {\n\t root = max;\n\t }\n\t if (max === 0) { /* no symbols to code at all */\n\t //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n\t //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n\t //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n\t table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\t\n\t\n\t //table.op[opts.table_index] = 64;\n\t //table.bits[opts.table_index] = 1;\n\t //table.val[opts.table_index++] = 0;\n\t table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\t\n\t opts.bits = 1;\n\t return 0; /* no symbols, but wait for decoding to report error */\n\t }\n\t for (min = 1; min < max; min++) {\n\t if (count[min] !== 0) { break; }\n\t }\n\t if (root < min) {\n\t root = min;\n\t }\n\t\n\t /* check for an over-subscribed or incomplete set of lengths */\n\t left = 1;\n\t for (len = 1; len <= MAXBITS; len++) {\n\t left <<= 1;\n\t left -= count[len];\n\t if (left < 0) {\n\t return -1;\n\t } /* over-subscribed */\n\t }\n\t if (left > 0 && (type === CODES || max !== 1)) {\n\t return -1; /* incomplete set */\n\t }\n\t\n\t /* generate offsets into symbol table for each length for sorting */\n\t offs[1] = 0;\n\t for (len = 1; len < MAXBITS; len++) {\n\t offs[len + 1] = offs[len] + count[len];\n\t }\n\t\n\t /* sort symbols by length, by symbol order within each length */\n\t for (sym = 0; sym < codes; sym++) {\n\t if (lens[lens_index + sym] !== 0) {\n\t work[offs[lens[lens_index + sym]]++] = sym;\n\t }\n\t }\n\t\n\t /*\n\t Create and fill in decoding tables. In this loop, the table being\n\t filled is at next and has curr index bits. The code being used is huff\n\t with length len. That code is converted to an index by dropping drop\n\t bits off of the bottom. For codes where len is less than drop + curr,\n\t those top drop + curr - len bits are incremented through all values to\n\t fill the table with replicated entries.\n\t\n\t root is the number of index bits for the root table. When len exceeds\n\t root, sub-tables are created pointed to by the root entry with an index\n\t of the low root bits of huff. This is saved in low to check for when a\n\t new sub-table should be started. drop is zero when the root table is\n\t being filled, and drop is root when sub-tables are being filled.\n\t\n\t When a new sub-table is needed, it is necessary to look ahead in the\n\t code lengths to determine what size sub-table is needed. The length\n\t counts are used for this, and so count[] is decremented as codes are\n\t entered in the tables.\n\t\n\t used keeps track of how many table entries have been allocated from the\n\t provided *table space. It is checked for LENS and DIST tables against\n\t the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n\t the initial root table size constants. See the comments in inftrees.h\n\t for more information.\n\t\n\t sym increments through all symbols, and the loop terminates when\n\t all codes of length max, i.e. all codes, have been processed. This\n\t routine permits incomplete codes, so another loop after this one fills\n\t in the rest of the decoding tables with invalid code markers.\n\t */\n\t\n\t /* set up for code type */\n\t // poor man optimization - use if-else instead of switch,\n\t // to avoid deopts in old v8\n\t if (type === CODES) {\n\t base = extra = work; /* dummy value--not used */\n\t end = 19;\n\t\n\t } else if (type === LENS) {\n\t base = lbase;\n\t base_index -= 257;\n\t extra = lext;\n\t extra_index -= 257;\n\t end = 256;\n\t\n\t } else { /* DISTS */\n\t base = dbase;\n\t extra = dext;\n\t end = -1;\n\t }\n\t\n\t /* initialize opts for loop */\n\t huff = 0; /* starting code */\n\t sym = 0; /* starting code symbol */\n\t len = min; /* starting code length */\n\t next = table_index; /* current table to fill in */\n\t curr = root; /* current table index bits */\n\t drop = 0; /* current bits to drop from code for index */\n\t low = -1; /* trigger new sub-table when len > root */\n\t used = 1 << root; /* use root table entries */\n\t mask = used - 1; /* mask for comparing low */\n\t\n\t /* check available table space */\n\t if ((type === LENS && used > ENOUGH_LENS) ||\n\t (type === DISTS && used > ENOUGH_DISTS)) {\n\t return 1;\n\t }\n\t\n\t /* process all codes and make table entries */\n\t for (;;) {\n\t /* create table entry */\n\t here_bits = len - drop;\n\t if (work[sym] < end) {\n\t here_op = 0;\n\t here_val = work[sym];\n\t }\n\t else if (work[sym] > end) {\n\t here_op = extra[extra_index + work[sym]];\n\t here_val = base[base_index + work[sym]];\n\t }\n\t else {\n\t here_op = 32 + 64; /* end of block */\n\t here_val = 0;\n\t }\n\t\n\t /* replicate for those indices with low len bits equal to huff */\n\t incr = 1 << (len - drop);\n\t fill = 1 << curr;\n\t min = fill; /* save offset to next table */\n\t do {\n\t fill -= incr;\n\t table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n\t } while (fill !== 0);\n\t\n\t /* backwards increment the len-bit code huff */\n\t incr = 1 << (len - 1);\n\t while (huff & incr) {\n\t incr >>= 1;\n\t }\n\t if (incr !== 0) {\n\t huff &= incr - 1;\n\t huff += incr;\n\t } else {\n\t huff = 0;\n\t }\n\t\n\t /* go to next symbol, update count, len */\n\t sym++;\n\t if (--count[len] === 0) {\n\t if (len === max) { break; }\n\t len = lens[lens_index + work[sym]];\n\t }\n\t\n\t /* create new sub-table if needed */\n\t if (len > root && (huff & mask) !== low) {\n\t /* if first time, transition to sub-tables */\n\t if (drop === 0) {\n\t drop = root;\n\t }\n\t\n\t /* increment past last table */\n\t next += min; /* here min is 1 << curr */\n\t\n\t /* determine length of next table */\n\t curr = len - drop;\n\t left = 1 << curr;\n\t while (curr + drop < max) {\n\t left -= count[curr + drop];\n\t if (left <= 0) { break; }\n\t curr++;\n\t left <<= 1;\n\t }\n\t\n\t /* check for enough space */\n\t used += 1 << curr;\n\t if ((type === LENS && used > ENOUGH_LENS) ||\n\t (type === DISTS && used > ENOUGH_DISTS)) {\n\t return 1;\n\t }\n\t\n\t /* point entry in root table to sub-table */\n\t low = huff & mask;\n\t /*table.op[low] = curr;\n\t table.bits[low] = root;\n\t table.val[low] = next - opts.table_index;*/\n\t table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n\t }\n\t }\n\t\n\t /* fill in remaining table entry if code is incomplete (guaranteed to have\n\t at most one remaining entry, since if the code is incomplete, the\n\t maximum code length that was allowed to get this far is one bit) */\n\t if (huff !== 0) {\n\t //table.op[next + huff] = 64; /* invalid code marker */\n\t //table.bits[next + huff] = len - drop;\n\t //table.val[next + huff] = 0;\n\t table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n\t }\n\t\n\t /* set return parameters */\n\t //opts.table_index += used;\n\t opts.bits = root;\n\t return 0;\n\t};\n\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// String encode/decode helpers\n\t'use strict';\n\t\n\t\n\tvar utils = __webpack_require__(33);\n\t\n\t\n\t// Quick check if we can use fast array to bin string conversion\n\t//\n\t// - apply(Array) can fail on Android 2.2\n\t// - apply(Uint8Array) can fail on iOS 5.1 Safary\n\t//\n\tvar STR_APPLY_OK = true;\n\tvar STR_APPLY_UIA_OK = true;\n\t\n\ttry { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }\n\ttry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\t\n\t\n\t// Table with utf8 lengths (calculated by first byte of sequence)\n\t// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n\t// because max possible codepoint is 0x10ffff\n\tvar _utf8len = new utils.Buf8(256);\n\tfor (var q = 0; q < 256; q++) {\n\t _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n\t}\n\t_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\t\n\t\n\t// convert string to array (typed, when possible)\n\texports.string2buf = function (str) {\n\t var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\t\n\t // count binary size\n\t for (m_pos = 0; m_pos < str_len; m_pos++) {\n\t c = str.charCodeAt(m_pos);\n\t if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n\t c2 = str.charCodeAt(m_pos + 1);\n\t if ((c2 & 0xfc00) === 0xdc00) {\n\t c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n\t m_pos++;\n\t }\n\t }\n\t buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n\t }\n\t\n\t // allocate buffer\n\t buf = new utils.Buf8(buf_len);\n\t\n\t // convert\n\t for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n\t c = str.charCodeAt(m_pos);\n\t if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n\t c2 = str.charCodeAt(m_pos + 1);\n\t if ((c2 & 0xfc00) === 0xdc00) {\n\t c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n\t m_pos++;\n\t }\n\t }\n\t if (c < 0x80) {\n\t /* one byte */\n\t buf[i++] = c;\n\t } else if (c < 0x800) {\n\t /* two bytes */\n\t buf[i++] = 0xC0 | (c >>> 6);\n\t buf[i++] = 0x80 | (c & 0x3f);\n\t } else if (c < 0x10000) {\n\t /* three bytes */\n\t buf[i++] = 0xE0 | (c >>> 12);\n\t buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n\t buf[i++] = 0x80 | (c & 0x3f);\n\t } else {\n\t /* four bytes */\n\t buf[i++] = 0xf0 | (c >>> 18);\n\t buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n\t buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n\t buf[i++] = 0x80 | (c & 0x3f);\n\t }\n\t }\n\t\n\t return buf;\n\t};\n\t\n\t// Helper (used in 2 places)\n\tfunction buf2binstring(buf, len) {\n\t // use fallback for big arrays to avoid stack overflow\n\t if (len < 65537) {\n\t if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {\n\t return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));\n\t }\n\t }\n\t\n\t var result = '';\n\t for (var i = 0; i < len; i++) {\n\t result += String.fromCharCode(buf[i]);\n\t }\n\t return result;\n\t}\n\t\n\t\n\t// Convert byte array to binary string\n\texports.buf2binstring = function (buf) {\n\t return buf2binstring(buf, buf.length);\n\t};\n\t\n\t\n\t// Convert binary string (typed, when possible)\n\texports.binstring2buf = function (str) {\n\t var buf = new utils.Buf8(str.length);\n\t for (var i = 0, len = buf.length; i < len; i++) {\n\t buf[i] = str.charCodeAt(i);\n\t }\n\t return buf;\n\t};\n\t\n\t\n\t// convert array to string\n\texports.buf2string = function (buf, max) {\n\t var i, out, c, c_len;\n\t var len = max || buf.length;\n\t\n\t // Reserve max possible length (2 words per char)\n\t // NB: by unknown reasons, Array is significantly faster for\n\t // String.fromCharCode.apply than Uint16Array.\n\t var utf16buf = new Array(len * 2);\n\t\n\t for (out = 0, i = 0; i < len;) {\n\t c = buf[i++];\n\t // quick process ascii\n\t if (c < 0x80) { utf16buf[out++] = c; continue; }\n\t\n\t c_len = _utf8len[c];\n\t // skip 5 & 6 byte codes\n\t if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\t\n\t // apply mask on first byte\n\t c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n\t // join the rest\n\t while (c_len > 1 && i < len) {\n\t c = (c << 6) | (buf[i++] & 0x3f);\n\t c_len--;\n\t }\n\t\n\t // terminated by end of string?\n\t if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\t\n\t if (c < 0x10000) {\n\t utf16buf[out++] = c;\n\t } else {\n\t c -= 0x10000;\n\t utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n\t utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n\t }\n\t }\n\t\n\t return buf2binstring(utf16buf, out);\n\t};\n\t\n\t\n\t// Calculate max possible position in utf8 buffer,\n\t// that will not break sequence. If that's not possible\n\t// - (very small limits) return max size as is.\n\t//\n\t// buf[] - utf8 bytes array\n\t// max - length limit (mandatory);\n\texports.utf8border = function (buf, max) {\n\t var pos;\n\t\n\t max = max || buf.length;\n\t if (max > buf.length) { max = buf.length; }\n\t\n\t // go back from last position, until start of sequence found\n\t pos = max - 1;\n\t while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\t\n\t // Fuckup - very small and broken sequence,\n\t // return max, because we should return something anyway.\n\t if (pos < 0) { return max; }\n\t\n\t // If we came to start of buffer - that means vuffer is too small,\n\t // return max too.\n\t if (pos === 0) { return max; }\n\t\n\t return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n\t};\n\n\n/***/ },\n/* 39 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t\n\tmodule.exports = {\n\t\n\t /* Allowed flush values; see deflate() and inflate() below for details */\n\t Z_NO_FLUSH: 0,\n\t Z_PARTIAL_FLUSH: 1,\n\t Z_SYNC_FLUSH: 2,\n\t Z_FULL_FLUSH: 3,\n\t Z_FINISH: 4,\n\t Z_BLOCK: 5,\n\t Z_TREES: 6,\n\t\n\t /* Return codes for the compression/decompression functions. Negative values\n\t * are errors, positive values are used for special but normal events.\n\t */\n\t Z_OK: 0,\n\t Z_STREAM_END: 1,\n\t Z_NEED_DICT: 2,\n\t Z_ERRNO: -1,\n\t Z_STREAM_ERROR: -2,\n\t Z_DATA_ERROR: -3,\n\t //Z_MEM_ERROR: -4,\n\t Z_BUF_ERROR: -5,\n\t //Z_VERSION_ERROR: -6,\n\t\n\t /* compression levels */\n\t Z_NO_COMPRESSION: 0,\n\t Z_BEST_SPEED: 1,\n\t Z_BEST_COMPRESSION: 9,\n\t Z_DEFAULT_COMPRESSION: -1,\n\t\n\t\n\t Z_FILTERED: 1,\n\t Z_HUFFMAN_ONLY: 2,\n\t Z_RLE: 3,\n\t Z_FIXED: 4,\n\t Z_DEFAULT_STRATEGY: 0,\n\t\n\t /* Possible values of the data_type field (though see inflate()) */\n\t Z_BINARY: 0,\n\t Z_TEXT: 1,\n\t //Z_ASCII: 1, // = Z_TEXT (deprecated)\n\t Z_UNKNOWN: 2,\n\t\n\t /* The deflate compression method */\n\t Z_DEFLATED: 8\n\t //Z_NULL: null // Use -1 or null inline, depending on var type\n\t};\n\n\n/***/ },\n/* 40 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = {\n\t 2: 'need dictionary', /* Z_NEED_DICT 2 */\n\t 1: 'stream end', /* Z_STREAM_END 1 */\n\t 0: '', /* Z_OK 0 */\n\t '-1': 'file error', /* Z_ERRNO (-1) */\n\t '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n\t '-3': 'data error', /* Z_DATA_ERROR (-3) */\n\t '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n\t '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n\t '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n\t};\n\n\n/***/ },\n/* 41 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t\n\tfunction ZStream() {\n\t /* next input byte */\n\t this.input = null; // JS specific, because we have no pointers\n\t this.next_in = 0;\n\t /* number of bytes available at input */\n\t this.avail_in = 0;\n\t /* total number of input bytes read so far */\n\t this.total_in = 0;\n\t /* next output byte should be put there */\n\t this.output = null; // JS specific, because we have no pointers\n\t this.next_out = 0;\n\t /* remaining free space at output */\n\t this.avail_out = 0;\n\t /* total number of bytes output so far */\n\t this.total_out = 0;\n\t /* last error message, NULL if no error */\n\t this.msg = ''/*Z_NULL*/;\n\t /* not visible by applications */\n\t this.state = null;\n\t /* best guess about the data type: binary or text */\n\t this.data_type = 2/*Z_UNKNOWN*/;\n\t /* adler32 value of the uncompressed data */\n\t this.adler = 0;\n\t}\n\t\n\tmodule.exports = ZStream;\n\n\n/***/ },\n/* 42 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t\n\tfunction GZheader() {\n\t /* true if compressed data believed to be text */\n\t this.text = 0;\n\t /* modification time */\n\t this.time = 0;\n\t /* extra flags (not used when writing a gzip file) */\n\t this.xflags = 0;\n\t /* operating system */\n\t this.os = 0;\n\t /* pointer to extra field or Z_NULL if none */\n\t this.extra = null;\n\t /* extra field length (valid if extra != Z_NULL) */\n\t this.extra_len = 0; // Actually, we don't need it in JS,\n\t // but leave for few code modifications\n\t\n\t //\n\t // Setup limits is not necessary because in js we should not preallocate memory\n\t // for inflate use constant limit in 65536 bytes\n\t //\n\t\n\t /* space at extra (only when reading header) */\n\t // this.extra_max = 0;\n\t /* pointer to zero-terminated file name or Z_NULL */\n\t this.name = '';\n\t /* space at name (only when reading header) */\n\t // this.name_max = 0;\n\t /* pointer to zero-terminated comment or Z_NULL */\n\t this.comment = '';\n\t /* space at comment (only when reading header) */\n\t // this.comm_max = 0;\n\t /* true if there was or will be a header crc */\n\t this.hcrc = 0;\n\t /* true when done reading gzip header (not used when writing a gzip file) */\n\t this.done = false;\n\t}\n\t\n\tmodule.exports = GZheader;\n\n\n/***/ }\n/******/ ])\n});\n;\n//# sourceMappingURL=browserfs.js.map","module.exports = BrowserFS.BFSRequire('buffer').Buffer;\n","module.exports = BrowserFS.BFSRequire('fs');\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst BrowserFS = __importStar(require(\"browserfs\"));\nconst util_1 = require(\"./util\");\nfunction init(root = \"assembly.zip\") {\n return __awaiter(this, void 0, void 0, function* () {\n BrowserFS.install(global || window);\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n let zipData;\n if (typeof root === \"string\") {\n let response = yield fetch(root);\n zipData = yield response.arrayBuffer();\n }\n else {\n zipData = root;\n }\n BrowserFS.configure({\n fs: \"MountableFileSystem\",\n options: {\n \"/\": {\n fs: \"OverlayFS\",\n options: {\n readable: {\n fs: \"ZipFS\",\n options: {\n // Wrap as Buffer object.\n zipData: Buffer.from(zipData)\n }\n },\n writable: {\n fs: \"InMemory\",\n options: {}\n }\n }\n },\n }\n }, function (e) {\n if (e) {\n // An error occurred.\n reject(e);\n }\n resolve();\n });\n }));\n });\n}\nexports.init = init;\nfunction attachWorker(worker) {\n BrowserFS.FileSystem.WorkerFS.attachRemoteListener(worker);\n}\nexports.attachWorker = attachWorker;\nfunction initWorker() {\n return __awaiter(this, void 0, void 0, function* () {\n yield util_1.promisfy(BrowserFS.configure)({ fs: \"WorkerFS\", options: { worker: self } });\n });\n}\nexports.initWorker = initWorker;\n// import * as _fs from \"fs\";\n// export * from \"fs-extra\";\n","\"use strict\";\n/// \nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs_1 = require(\"./fs\");\nconst fs = __importStar(require(\"fs\"));\nconst util_1 = require(\"./util\");\nwindow.URL = window.URL || window.webkitURL;\nlet worker;\nfunction main() {\n return __awaiter(this, void 0, void 0, function* () {\n yield fs_1.init(\"./assembly.zip\");\n // (window as any).kernel = new Kernel();\n window.fs = fs;\n console.log(yield util_1.promisfy(fs.readdir)(\".\"));\n // fs.readdirSync(\".\").map(async(dir)=> console.log(dir + \"/\" + await promisfy(fs.readdir)(dir)));\n let workerSource = yield util_1.promisfy(fs.readFile)(\"./worker.js\");\n console.log(workerSource.toString());\n worker = new Worker(\"./worker.js\");\n window.worker = worker;\n fs_1.attachWorker(window.worker);\n window.worker.onmessage = console.log;\n worker.postMessage({ path: \"/assembly/echo.ts\" });\n // worker.onmessage\n // await fs.access.__promisify__(\"/assembly/bin/echo.ts\")\n });\n}\nmain();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// type asyncCallback = (...args: any[], fn: (err: any, contents: T) => T) => void;\nfunction promisfy(fn) {\n return (...args) => new Promise((resolve, reject) => {\n fn(...args, (err, contents) => {\n if (err)\n reject(err);\n resolve(contents);\n });\n });\n}\nexports.promisfy = promisfy;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/main.js b/dist/main.js deleted file mode 100644 index c0f0e01..0000000 --- a/dist/main.js +++ /dev/null @@ -1,171881 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./node_modules/asn1.js/lib/asn1.js": -/*!******************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1.js ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var asn1 = exports; - -asn1.bignum = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); - -asn1.define = __webpack_require__(/*! ./asn1/api */ "./node_modules/asn1.js/lib/asn1/api.js").define; -asn1.base = __webpack_require__(/*! ./asn1/base */ "./node_modules/asn1.js/lib/asn1/base/index.js"); -asn1.constants = __webpack_require__(/*! ./asn1/constants */ "./node_modules/asn1.js/lib/asn1/constants/index.js"); -asn1.decoders = __webpack_require__(/*! ./asn1/decoders */ "./node_modules/asn1.js/lib/asn1/decoders/index.js"); -asn1.encoders = __webpack_require__(/*! ./asn1/encoders */ "./node_modules/asn1.js/lib/asn1/encoders/index.js"); - - -/***/ }), - -/***/ "./node_modules/asn1.js/lib/asn1/api.js": -/*!**********************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/api.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var asn1 = __webpack_require__(/*! ../asn1 */ "./node_modules/asn1.js/lib/asn1.js"); -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); - -var api = exports; - -api.define = function define(name, body) { - return new Entity(name, body); -}; - -function Entity(name, body) { - this.name = name; - this.body = body; - - this.decoders = {}; - this.encoders = {}; -}; - -Entity.prototype._createNamed = function createNamed(base) { - var named; - try { - named = __webpack_require__(/*! vm */ "./node_modules/vm-browserify/index.js").runInThisContext( - '(function ' + this.name + '(entity) {\n' + - ' this._initNamed(entity);\n' + - '})' - ); - } catch (e) { - named = function (entity) { - this._initNamed(entity); - }; - } - inherits(named, base); - named.prototype._initNamed = function initnamed(entity) { - base.call(this, entity); - }; - - return new named(this); -}; - -Entity.prototype._getDecoder = function _getDecoder(enc) { - enc = enc || 'der'; - // Lazily create decoder - if (!this.decoders.hasOwnProperty(enc)) - this.decoders[enc] = this._createNamed(asn1.decoders[enc]); - return this.decoders[enc]; -}; - -Entity.prototype.decode = function decode(data, enc, options) { - return this._getDecoder(enc).decode(data, options); -}; - -Entity.prototype._getEncoder = function _getEncoder(enc) { - enc = enc || 'der'; - // Lazily create encoder - if (!this.encoders.hasOwnProperty(enc)) - this.encoders[enc] = this._createNamed(asn1.encoders[enc]); - return this.encoders[enc]; -}; - -Entity.prototype.encode = function encode(data, enc, /* internal */ reporter) { - return this._getEncoder(enc).encode(data, reporter); -}; - - -/***/ }), - -/***/ "./node_modules/asn1.js/lib/asn1/base/buffer.js": -/*!******************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/base/buffer.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); -var Reporter = __webpack_require__(/*! ../base */ "./node_modules/asn1.js/lib/asn1/base/index.js").Reporter; -var Buffer = __webpack_require__(/*! buffer */ "./node_modules/browserfs/dist/shims/buffer.js").Buffer; - -function DecoderBuffer(base, options) { - Reporter.call(this, options); - if (!Buffer.isBuffer(base)) { - this.error('Input not Buffer'); - return; - } - - this.base = base; - this.offset = 0; - this.length = base.length; -} -inherits(DecoderBuffer, Reporter); -exports.DecoderBuffer = DecoderBuffer; - -DecoderBuffer.prototype.save = function save() { - return { offset: this.offset, reporter: Reporter.prototype.save.call(this) }; -}; - -DecoderBuffer.prototype.restore = function restore(save) { - // Return skipped data - var res = new DecoderBuffer(this.base); - res.offset = save.offset; - res.length = this.offset; - - this.offset = save.offset; - Reporter.prototype.restore.call(this, save.reporter); - - return res; -}; - -DecoderBuffer.prototype.isEmpty = function isEmpty() { - return this.offset === this.length; -}; - -DecoderBuffer.prototype.readUInt8 = function readUInt8(fail) { - if (this.offset + 1 <= this.length) - return this.base.readUInt8(this.offset++, true); - else - return this.error(fail || 'DecoderBuffer overrun'); -} - -DecoderBuffer.prototype.skip = function skip(bytes, fail) { - if (!(this.offset + bytes <= this.length)) - return this.error(fail || 'DecoderBuffer overrun'); - - var res = new DecoderBuffer(this.base); - - // Share reporter state - res._reporterState = this._reporterState; - - res.offset = this.offset; - res.length = this.offset + bytes; - this.offset += bytes; - return res; -} - -DecoderBuffer.prototype.raw = function raw(save) { - return this.base.slice(save ? save.offset : this.offset, this.length); -} - -function EncoderBuffer(value, reporter) { - if (Array.isArray(value)) { - this.length = 0; - this.value = value.map(function(item) { - if (!(item instanceof EncoderBuffer)) - item = new EncoderBuffer(item, reporter); - this.length += item.length; - return item; - }, this); - } else if (typeof value === 'number') { - if (!(0 <= value && value <= 0xff)) - return reporter.error('non-byte EncoderBuffer value'); - this.value = value; - this.length = 1; - } else if (typeof value === 'string') { - this.value = value; - this.length = Buffer.byteLength(value); - } else if (Buffer.isBuffer(value)) { - this.value = value; - this.length = value.length; - } else { - return reporter.error('Unsupported type: ' + typeof value); - } -} -exports.EncoderBuffer = EncoderBuffer; - -EncoderBuffer.prototype.join = function join(out, offset) { - if (!out) - out = new Buffer(this.length); - if (!offset) - offset = 0; - - if (this.length === 0) - return out; - - if (Array.isArray(this.value)) { - this.value.forEach(function(item) { - item.join(out, offset); - offset += item.length; - }); - } else { - if (typeof this.value === 'number') - out[offset] = this.value; - else if (typeof this.value === 'string') - out.write(this.value, offset); - else if (Buffer.isBuffer(this.value)) - this.value.copy(out, offset); - offset += this.length; - } - - return out; -}; - - -/***/ }), - -/***/ "./node_modules/asn1.js/lib/asn1/base/index.js": -/*!*****************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/base/index.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var base = exports; - -base.Reporter = __webpack_require__(/*! ./reporter */ "./node_modules/asn1.js/lib/asn1/base/reporter.js").Reporter; -base.DecoderBuffer = __webpack_require__(/*! ./buffer */ "./node_modules/asn1.js/lib/asn1/base/buffer.js").DecoderBuffer; -base.EncoderBuffer = __webpack_require__(/*! ./buffer */ "./node_modules/asn1.js/lib/asn1/base/buffer.js").EncoderBuffer; -base.Node = __webpack_require__(/*! ./node */ "./node_modules/asn1.js/lib/asn1/base/node.js"); - - -/***/ }), - -/***/ "./node_modules/asn1.js/lib/asn1/base/node.js": -/*!****************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/base/node.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var Reporter = __webpack_require__(/*! ../base */ "./node_modules/asn1.js/lib/asn1/base/index.js").Reporter; -var EncoderBuffer = __webpack_require__(/*! ../base */ "./node_modules/asn1.js/lib/asn1/base/index.js").EncoderBuffer; -var DecoderBuffer = __webpack_require__(/*! ../base */ "./node_modules/asn1.js/lib/asn1/base/index.js").DecoderBuffer; -var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); - -// Supported tags -var tags = [ - 'seq', 'seqof', 'set', 'setof', 'objid', 'bool', - 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc', - 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str', - 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr' -]; - -// Public methods list -var methods = [ - 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice', - 'any', 'contains' -].concat(tags); - -// Overrided methods list -var overrided = [ - '_peekTag', '_decodeTag', '_use', - '_decodeStr', '_decodeObjid', '_decodeTime', - '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList', - - '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime', - '_encodeNull', '_encodeInt', '_encodeBool' -]; - -function Node(enc, parent) { - var state = {}; - this._baseState = state; - - state.enc = enc; - - state.parent = parent || null; - state.children = null; - - // State - state.tag = null; - state.args = null; - state.reverseArgs = null; - state.choice = null; - state.optional = false; - state.any = false; - state.obj = false; - state.use = null; - state.useDecoder = null; - state.key = null; - state['default'] = null; - state.explicit = null; - state.implicit = null; - state.contains = null; - - // Should create new instance on each method - if (!state.parent) { - state.children = []; - this._wrap(); - } -} -module.exports = Node; - -var stateProps = [ - 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice', - 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit', - 'implicit', 'contains' -]; - -Node.prototype.clone = function clone() { - var state = this._baseState; - var cstate = {}; - stateProps.forEach(function(prop) { - cstate[prop] = state[prop]; - }); - var res = new this.constructor(cstate.parent); - res._baseState = cstate; - return res; -}; - -Node.prototype._wrap = function wrap() { - var state = this._baseState; - methods.forEach(function(method) { - this[method] = function _wrappedMethod() { - var clone = new this.constructor(this); - state.children.push(clone); - return clone[method].apply(clone, arguments); - }; - }, this); -}; - -Node.prototype._init = function init(body) { - var state = this._baseState; - - assert(state.parent === null); - body.call(this); - - // Filter children - state.children = state.children.filter(function(child) { - return child._baseState.parent === this; - }, this); - assert.equal(state.children.length, 1, 'Root node can have only one child'); -}; - -Node.prototype._useArgs = function useArgs(args) { - var state = this._baseState; - - // Filter children and args - var children = args.filter(function(arg) { - return arg instanceof this.constructor; - }, this); - args = args.filter(function(arg) { - return !(arg instanceof this.constructor); - }, this); - - if (children.length !== 0) { - assert(state.children === null); - state.children = children; - - // Replace parent to maintain backward link - children.forEach(function(child) { - child._baseState.parent = this; - }, this); - } - if (args.length !== 0) { - assert(state.args === null); - state.args = args; - state.reverseArgs = args.map(function(arg) { - if (typeof arg !== 'object' || arg.constructor !== Object) - return arg; - - var res = {}; - Object.keys(arg).forEach(function(key) { - if (key == (key | 0)) - key |= 0; - var value = arg[key]; - res[value] = key; - }); - return res; - }); - } -}; - -// -// Overrided methods -// - -overrided.forEach(function(method) { - Node.prototype[method] = function _overrided() { - var state = this._baseState; - throw new Error(method + ' not implemented for encoding: ' + state.enc); - }; -}); - -// -// Public methods -// - -tags.forEach(function(tag) { - Node.prototype[tag] = function _tagMethod() { - var state = this._baseState; - var args = Array.prototype.slice.call(arguments); - - assert(state.tag === null); - state.tag = tag; - - this._useArgs(args); - - return this; - }; -}); - -Node.prototype.use = function use(item) { - assert(item); - var state = this._baseState; - - assert(state.use === null); - state.use = item; - - return this; -}; - -Node.prototype.optional = function optional() { - var state = this._baseState; - - state.optional = true; - - return this; -}; - -Node.prototype.def = function def(val) { - var state = this._baseState; - - assert(state['default'] === null); - state['default'] = val; - state.optional = true; - - return this; -}; - -Node.prototype.explicit = function explicit(num) { - var state = this._baseState; - - assert(state.explicit === null && state.implicit === null); - state.explicit = num; - - return this; -}; - -Node.prototype.implicit = function implicit(num) { - var state = this._baseState; - - assert(state.explicit === null && state.implicit === null); - state.implicit = num; - - return this; -}; - -Node.prototype.obj = function obj() { - var state = this._baseState; - var args = Array.prototype.slice.call(arguments); - - state.obj = true; - - if (args.length !== 0) - this._useArgs(args); - - return this; -}; - -Node.prototype.key = function key(newKey) { - var state = this._baseState; - - assert(state.key === null); - state.key = newKey; - - return this; -}; - -Node.prototype.any = function any() { - var state = this._baseState; - - state.any = true; - - return this; -}; - -Node.prototype.choice = function choice(obj) { - var state = this._baseState; - - assert(state.choice === null); - state.choice = obj; - this._useArgs(Object.keys(obj).map(function(key) { - return obj[key]; - })); - - return this; -}; - -Node.prototype.contains = function contains(item) { - var state = this._baseState; - - assert(state.use === null); - state.contains = item; - - return this; -}; - -// -// Decoding -// - -Node.prototype._decode = function decode(input, options) { - var state = this._baseState; - - // Decode root node - if (state.parent === null) - return input.wrapResult(state.children[0]._decode(input, options)); - - var result = state['default']; - var present = true; - - var prevKey = null; - if (state.key !== null) - prevKey = input.enterKey(state.key); - - // Check if tag is there - if (state.optional) { - var tag = null; - if (state.explicit !== null) - tag = state.explicit; - else if (state.implicit !== null) - tag = state.implicit; - else if (state.tag !== null) - tag = state.tag; - - if (tag === null && !state.any) { - // Trial and Error - var save = input.save(); - try { - if (state.choice === null) - this._decodeGeneric(state.tag, input, options); - else - this._decodeChoice(input, options); - present = true; - } catch (e) { - present = false; - } - input.restore(save); - } else { - present = this._peekTag(input, tag, state.any); - - if (input.isError(present)) - return present; - } - } - - // Push object on stack - var prevObj; - if (state.obj && present) - prevObj = input.enterObject(); - - if (present) { - // Unwrap explicit values - if (state.explicit !== null) { - var explicit = this._decodeTag(input, state.explicit); - if (input.isError(explicit)) - return explicit; - input = explicit; - } - - var start = input.offset; - - // Unwrap implicit and normal values - if (state.use === null && state.choice === null) { - if (state.any) - var save = input.save(); - var body = this._decodeTag( - input, - state.implicit !== null ? state.implicit : state.tag, - state.any - ); - if (input.isError(body)) - return body; - - if (state.any) - result = input.raw(save); - else - input = body; - } - - if (options && options.track && state.tag !== null) - options.track(input.path(), start, input.length, 'tagged'); - - if (options && options.track && state.tag !== null) - options.track(input.path(), input.offset, input.length, 'content'); - - // Select proper method for tag - if (state.any) - result = result; - else if (state.choice === null) - result = this._decodeGeneric(state.tag, input, options); - else - result = this._decodeChoice(input, options); - - if (input.isError(result)) - return result; - - // Decode children - if (!state.any && state.choice === null && state.children !== null) { - state.children.forEach(function decodeChildren(child) { - // NOTE: We are ignoring errors here, to let parser continue with other - // parts of encoded data - child._decode(input, options); - }); - } - - // Decode contained/encoded by schema, only in bit or octet strings - if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) { - var data = new DecoderBuffer(result); - result = this._getUse(state.contains, input._reporterState.obj) - ._decode(data, options); - } - } - - // Pop object - if (state.obj && present) - result = input.leaveObject(prevObj); - - // Set key - if (state.key !== null && (result !== null || present === true)) - input.leaveKey(prevKey, state.key, result); - else if (prevKey !== null) - input.exitKey(prevKey); - - return result; -}; - -Node.prototype._decodeGeneric = function decodeGeneric(tag, input, options) { - var state = this._baseState; - - if (tag === 'seq' || tag === 'set') - return null; - if (tag === 'seqof' || tag === 'setof') - return this._decodeList(input, tag, state.args[0], options); - else if (/str$/.test(tag)) - return this._decodeStr(input, tag, options); - else if (tag === 'objid' && state.args) - return this._decodeObjid(input, state.args[0], state.args[1], options); - else if (tag === 'objid') - return this._decodeObjid(input, null, null, options); - else if (tag === 'gentime' || tag === 'utctime') - return this._decodeTime(input, tag, options); - else if (tag === 'null_') - return this._decodeNull(input, options); - else if (tag === 'bool') - return this._decodeBool(input, options); - else if (tag === 'objDesc') - return this._decodeStr(input, tag, options); - else if (tag === 'int' || tag === 'enum') - return this._decodeInt(input, state.args && state.args[0], options); - - if (state.use !== null) { - return this._getUse(state.use, input._reporterState.obj) - ._decode(input, options); - } else { - return input.error('unknown tag: ' + tag); - } -}; - -Node.prototype._getUse = function _getUse(entity, obj) { - - var state = this._baseState; - // Create altered use decoder if implicit is set - state.useDecoder = this._use(entity, obj); - assert(state.useDecoder._baseState.parent === null); - state.useDecoder = state.useDecoder._baseState.children[0]; - if (state.implicit !== state.useDecoder._baseState.implicit) { - state.useDecoder = state.useDecoder.clone(); - state.useDecoder._baseState.implicit = state.implicit; - } - return state.useDecoder; -}; - -Node.prototype._decodeChoice = function decodeChoice(input, options) { - var state = this._baseState; - var result = null; - var match = false; - - Object.keys(state.choice).some(function(key) { - var save = input.save(); - var node = state.choice[key]; - try { - var value = node._decode(input, options); - if (input.isError(value)) - return false; - - result = { type: key, value: value }; - match = true; - } catch (e) { - input.restore(save); - return false; - } - return true; - }, this); - - if (!match) - return input.error('Choice not matched'); - - return result; -}; - -// -// Encoding -// - -Node.prototype._createEncoderBuffer = function createEncoderBuffer(data) { - return new EncoderBuffer(data, this.reporter); -}; - -Node.prototype._encode = function encode(data, reporter, parent) { - var state = this._baseState; - if (state['default'] !== null && state['default'] === data) - return; - - var result = this._encodeValue(data, reporter, parent); - if (result === undefined) - return; - - if (this._skipDefault(result, reporter, parent)) - return; - - return result; -}; - -Node.prototype._encodeValue = function encode(data, reporter, parent) { - var state = this._baseState; - - // Decode root node - if (state.parent === null) - return state.children[0]._encode(data, reporter || new Reporter()); - - var result = null; - - // Set reporter to share it with a child class - this.reporter = reporter; - - // Check if data is there - if (state.optional && data === undefined) { - if (state['default'] !== null) - data = state['default'] - else - return; - } - - // Encode children first - var content = null; - var primitive = false; - if (state.any) { - // Anything that was given is translated to buffer - result = this._createEncoderBuffer(data); - } else if (state.choice) { - result = this._encodeChoice(data, reporter); - } else if (state.contains) { - content = this._getUse(state.contains, parent)._encode(data, reporter); - primitive = true; - } else if (state.children) { - content = state.children.map(function(child) { - if (child._baseState.tag === 'null_') - return child._encode(null, reporter, data); - - if (child._baseState.key === null) - return reporter.error('Child should have a key'); - var prevKey = reporter.enterKey(child._baseState.key); - - if (typeof data !== 'object') - return reporter.error('Child expected, but input is not object'); - - var res = child._encode(data[child._baseState.key], reporter, data); - reporter.leaveKey(prevKey); - - return res; - }, this).filter(function(child) { - return child; - }); - content = this._createEncoderBuffer(content); - } else { - if (state.tag === 'seqof' || state.tag === 'setof') { - // TODO(indutny): this should be thrown on DSL level - if (!(state.args && state.args.length === 1)) - return reporter.error('Too many args for : ' + state.tag); - - if (!Array.isArray(data)) - return reporter.error('seqof/setof, but data is not Array'); - - var child = this.clone(); - child._baseState.implicit = null; - content = this._createEncoderBuffer(data.map(function(item) { - var state = this._baseState; - - return this._getUse(state.args[0], data)._encode(item, reporter); - }, child)); - } else if (state.use !== null) { - result = this._getUse(state.use, parent)._encode(data, reporter); - } else { - content = this._encodePrimitive(state.tag, data); - primitive = true; - } - } - - // Encode data itself - var result; - if (!state.any && state.choice === null) { - var tag = state.implicit !== null ? state.implicit : state.tag; - var cls = state.implicit === null ? 'universal' : 'context'; - - if (tag === null) { - if (state.use === null) - reporter.error('Tag could be omitted only for .use()'); - } else { - if (state.use === null) - result = this._encodeComposite(tag, primitive, cls, content); - } - } - - // Wrap in explicit - if (state.explicit !== null) - result = this._encodeComposite(state.explicit, false, 'context', result); - - return result; -}; - -Node.prototype._encodeChoice = function encodeChoice(data, reporter) { - var state = this._baseState; - - var node = state.choice[data.type]; - if (!node) { - assert( - false, - data.type + ' not found in ' + - JSON.stringify(Object.keys(state.choice))); - } - return node._encode(data.value, reporter); -}; - -Node.prototype._encodePrimitive = function encodePrimitive(tag, data) { - var state = this._baseState; - - if (/str$/.test(tag)) - return this._encodeStr(data, tag); - else if (tag === 'objid' && state.args) - return this._encodeObjid(data, state.reverseArgs[0], state.args[1]); - else if (tag === 'objid') - return this._encodeObjid(data, null, null); - else if (tag === 'gentime' || tag === 'utctime') - return this._encodeTime(data, tag); - else if (tag === 'null_') - return this._encodeNull(); - else if (tag === 'int' || tag === 'enum') - return this._encodeInt(data, state.args && state.reverseArgs[0]); - else if (tag === 'bool') - return this._encodeBool(data); - else if (tag === 'objDesc') - return this._encodeStr(data, tag); - else - throw new Error('Unsupported tag: ' + tag); -}; - -Node.prototype._isNumstr = function isNumstr(str) { - return /^[0-9 ]*$/.test(str); -}; - -Node.prototype._isPrintstr = function isPrintstr(str) { - return /^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(str); -}; - - -/***/ }), - -/***/ "./node_modules/asn1.js/lib/asn1/base/reporter.js": -/*!********************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/base/reporter.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); - -function Reporter(options) { - this._reporterState = { - obj: null, - path: [], - options: options || {}, - errors: [] - }; -} -exports.Reporter = Reporter; - -Reporter.prototype.isError = function isError(obj) { - return obj instanceof ReporterError; -}; - -Reporter.prototype.save = function save() { - var state = this._reporterState; - - return { obj: state.obj, pathLen: state.path.length }; -}; - -Reporter.prototype.restore = function restore(data) { - var state = this._reporterState; - - state.obj = data.obj; - state.path = state.path.slice(0, data.pathLen); -}; - -Reporter.prototype.enterKey = function enterKey(key) { - return this._reporterState.path.push(key); -}; - -Reporter.prototype.exitKey = function exitKey(index) { - var state = this._reporterState; - - state.path = state.path.slice(0, index - 1); -}; - -Reporter.prototype.leaveKey = function leaveKey(index, key, value) { - var state = this._reporterState; - - this.exitKey(index); - if (state.obj !== null) - state.obj[key] = value; -}; - -Reporter.prototype.path = function path() { - return this._reporterState.path.join('/'); -}; - -Reporter.prototype.enterObject = function enterObject() { - var state = this._reporterState; - - var prev = state.obj; - state.obj = {}; - return prev; -}; - -Reporter.prototype.leaveObject = function leaveObject(prev) { - var state = this._reporterState; - - var now = state.obj; - state.obj = prev; - return now; -}; - -Reporter.prototype.error = function error(msg) { - var err; - var state = this._reporterState; - - var inherited = msg instanceof ReporterError; - if (inherited) { - err = msg; - } else { - err = new ReporterError(state.path.map(function(elem) { - return '[' + JSON.stringify(elem) + ']'; - }).join(''), msg.message || msg, msg.stack); - } - - if (!state.options.partial) - throw err; - - if (!inherited) - state.errors.push(err); - - return err; -}; - -Reporter.prototype.wrapResult = function wrapResult(result) { - var state = this._reporterState; - if (!state.options.partial) - return result; - - return { - result: this.isError(result) ? null : result, - errors: state.errors - }; -}; - -function ReporterError(path, msg) { - this.path = path; - this.rethrow(msg); -}; -inherits(ReporterError, Error); - -ReporterError.prototype.rethrow = function rethrow(msg) { - this.message = msg + ' at: ' + (this.path || '(shallow)'); - if (Error.captureStackTrace) - Error.captureStackTrace(this, ReporterError); - - if (!this.stack) { - try { - // IE only adds stack when thrown - throw new Error(this.message); - } catch (e) { - this.stack = e.stack; - } - } - return this; -}; - - -/***/ }), - -/***/ "./node_modules/asn1.js/lib/asn1/constants/der.js": -/*!********************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/constants/der.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var constants = __webpack_require__(/*! ../constants */ "./node_modules/asn1.js/lib/asn1/constants/index.js"); - -exports.tagClass = { - 0: 'universal', - 1: 'application', - 2: 'context', - 3: 'private' -}; -exports.tagClassByName = constants._reverse(exports.tagClass); - -exports.tag = { - 0x00: 'end', - 0x01: 'bool', - 0x02: 'int', - 0x03: 'bitstr', - 0x04: 'octstr', - 0x05: 'null_', - 0x06: 'objid', - 0x07: 'objDesc', - 0x08: 'external', - 0x09: 'real', - 0x0a: 'enum', - 0x0b: 'embed', - 0x0c: 'utf8str', - 0x0d: 'relativeOid', - 0x10: 'seq', - 0x11: 'set', - 0x12: 'numstr', - 0x13: 'printstr', - 0x14: 't61str', - 0x15: 'videostr', - 0x16: 'ia5str', - 0x17: 'utctime', - 0x18: 'gentime', - 0x19: 'graphstr', - 0x1a: 'iso646str', - 0x1b: 'genstr', - 0x1c: 'unistr', - 0x1d: 'charstr', - 0x1e: 'bmpstr' -}; -exports.tagByName = constants._reverse(exports.tag); - - -/***/ }), - -/***/ "./node_modules/asn1.js/lib/asn1/constants/index.js": -/*!**********************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/constants/index.js ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var constants = exports; - -// Helper -constants._reverse = function reverse(map) { - var res = {}; - - Object.keys(map).forEach(function(key) { - // Convert key to integer if it is stringified - if ((key | 0) == key) - key = key | 0; - - var value = map[key]; - res[value] = key; - }); - - return res; -}; - -constants.der = __webpack_require__(/*! ./der */ "./node_modules/asn1.js/lib/asn1/constants/der.js"); - - -/***/ }), - -/***/ "./node_modules/asn1.js/lib/asn1/decoders/der.js": -/*!*******************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/decoders/der.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); - -var asn1 = __webpack_require__(/*! ../../asn1 */ "./node_modules/asn1.js/lib/asn1.js"); -var base = asn1.base; -var bignum = asn1.bignum; - -// Import DER constants -var der = asn1.constants.der; - -function DERDecoder(entity) { - this.enc = 'der'; - this.name = entity.name; - this.entity = entity; - - // Construct base tree - this.tree = new DERNode(); - this.tree._init(entity.body); -}; -module.exports = DERDecoder; - -DERDecoder.prototype.decode = function decode(data, options) { - if (!(data instanceof base.DecoderBuffer)) - data = new base.DecoderBuffer(data, options); - - return this.tree._decode(data, options); -}; - -// Tree methods - -function DERNode(parent) { - base.Node.call(this, 'der', parent); -} -inherits(DERNode, base.Node); - -DERNode.prototype._peekTag = function peekTag(buffer, tag, any) { - if (buffer.isEmpty()) - return false; - - var state = buffer.save(); - var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: "' + tag + '"'); - if (buffer.isError(decodedTag)) - return decodedTag; - - buffer.restore(state); - - return decodedTag.tag === tag || decodedTag.tagStr === tag || - (decodedTag.tagStr + 'of') === tag || any; -}; - -DERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) { - var decodedTag = derDecodeTag(buffer, - 'Failed to decode tag of "' + tag + '"'); - if (buffer.isError(decodedTag)) - return decodedTag; - - var len = derDecodeLen(buffer, - decodedTag.primitive, - 'Failed to get length of "' + tag + '"'); - - // Failure - if (buffer.isError(len)) - return len; - - if (!any && - decodedTag.tag !== tag && - decodedTag.tagStr !== tag && - decodedTag.tagStr + 'of' !== tag) { - return buffer.error('Failed to match tag: "' + tag + '"'); - } - - if (decodedTag.primitive || len !== null) - return buffer.skip(len, 'Failed to match body of: "' + tag + '"'); - - // Indefinite length... find END tag - var state = buffer.save(); - var res = this._skipUntilEnd( - buffer, - 'Failed to skip indefinite length body: "' + this.tag + '"'); - if (buffer.isError(res)) - return res; - - len = buffer.offset - state.offset; - buffer.restore(state); - return buffer.skip(len, 'Failed to match body of: "' + tag + '"'); -}; - -DERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) { - while (true) { - var tag = derDecodeTag(buffer, fail); - if (buffer.isError(tag)) - return tag; - var len = derDecodeLen(buffer, tag.primitive, fail); - if (buffer.isError(len)) - return len; - - var res; - if (tag.primitive || len !== null) - res = buffer.skip(len) - else - res = this._skipUntilEnd(buffer, fail); - - // Failure - if (buffer.isError(res)) - return res; - - if (tag.tagStr === 'end') - break; - } -}; - -DERNode.prototype._decodeList = function decodeList(buffer, tag, decoder, - options) { - var result = []; - while (!buffer.isEmpty()) { - var possibleEnd = this._peekTag(buffer, 'end'); - if (buffer.isError(possibleEnd)) - return possibleEnd; - - var res = decoder.decode(buffer, 'der', options); - if (buffer.isError(res) && possibleEnd) - break; - result.push(res); - } - return result; -}; - -DERNode.prototype._decodeStr = function decodeStr(buffer, tag) { - if (tag === 'bitstr') { - var unused = buffer.readUInt8(); - if (buffer.isError(unused)) - return unused; - return { unused: unused, data: buffer.raw() }; - } else if (tag === 'bmpstr') { - var raw = buffer.raw(); - if (raw.length % 2 === 1) - return buffer.error('Decoding of string type: bmpstr length mismatch'); - - var str = ''; - for (var i = 0; i < raw.length / 2; i++) { - str += String.fromCharCode(raw.readUInt16BE(i * 2)); - } - return str; - } else if (tag === 'numstr') { - var numstr = buffer.raw().toString('ascii'); - if (!this._isNumstr(numstr)) { - return buffer.error('Decoding of string type: ' + - 'numstr unsupported characters'); - } - return numstr; - } else if (tag === 'octstr') { - return buffer.raw(); - } else if (tag === 'objDesc') { - return buffer.raw(); - } else if (tag === 'printstr') { - var printstr = buffer.raw().toString('ascii'); - if (!this._isPrintstr(printstr)) { - return buffer.error('Decoding of string type: ' + - 'printstr unsupported characters'); - } - return printstr; - } else if (/str$/.test(tag)) { - return buffer.raw().toString(); - } else { - return buffer.error('Decoding of string type: ' + tag + ' unsupported'); - } -}; - -DERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) { - var result; - var identifiers = []; - var ident = 0; - while (!buffer.isEmpty()) { - var subident = buffer.readUInt8(); - ident <<= 7; - ident |= subident & 0x7f; - if ((subident & 0x80) === 0) { - identifiers.push(ident); - ident = 0; - } - } - if (subident & 0x80) - identifiers.push(ident); - - var first = (identifiers[0] / 40) | 0; - var second = identifiers[0] % 40; - - if (relative) - result = identifiers; - else - result = [first, second].concat(identifiers.slice(1)); - - if (values) { - var tmp = values[result.join(' ')]; - if (tmp === undefined) - tmp = values[result.join('.')]; - if (tmp !== undefined) - result = tmp; - } - - return result; -}; - -DERNode.prototype._decodeTime = function decodeTime(buffer, tag) { - var str = buffer.raw().toString(); - if (tag === 'gentime') { - var year = str.slice(0, 4) | 0; - var mon = str.slice(4, 6) | 0; - var day = str.slice(6, 8) | 0; - var hour = str.slice(8, 10) | 0; - var min = str.slice(10, 12) | 0; - var sec = str.slice(12, 14) | 0; - } else if (tag === 'utctime') { - var year = str.slice(0, 2) | 0; - var mon = str.slice(2, 4) | 0; - var day = str.slice(4, 6) | 0; - var hour = str.slice(6, 8) | 0; - var min = str.slice(8, 10) | 0; - var sec = str.slice(10, 12) | 0; - if (year < 70) - year = 2000 + year; - else - year = 1900 + year; - } else { - return buffer.error('Decoding ' + tag + ' time is not supported yet'); - } - - return Date.UTC(year, mon - 1, day, hour, min, sec, 0); -}; - -DERNode.prototype._decodeNull = function decodeNull(buffer) { - return null; -}; - -DERNode.prototype._decodeBool = function decodeBool(buffer) { - var res = buffer.readUInt8(); - if (buffer.isError(res)) - return res; - else - return res !== 0; -}; - -DERNode.prototype._decodeInt = function decodeInt(buffer, values) { - // Bigint, return as it is (assume big endian) - var raw = buffer.raw(); - var res = new bignum(raw); - - if (values) - res = values[res.toString(10)] || res; - - return res; -}; - -DERNode.prototype._use = function use(entity, obj) { - if (typeof entity === 'function') - entity = entity(obj); - return entity._getDecoder('der').tree; -}; - -// Utility methods - -function derDecodeTag(buf, fail) { - var tag = buf.readUInt8(fail); - if (buf.isError(tag)) - return tag; - - var cls = der.tagClass[tag >> 6]; - var primitive = (tag & 0x20) === 0; - - // Multi-octet tag - load - if ((tag & 0x1f) === 0x1f) { - var oct = tag; - tag = 0; - while ((oct & 0x80) === 0x80) { - oct = buf.readUInt8(fail); - if (buf.isError(oct)) - return oct; - - tag <<= 7; - tag |= oct & 0x7f; - } - } else { - tag &= 0x1f; - } - var tagStr = der.tag[tag]; - - return { - cls: cls, - primitive: primitive, - tag: tag, - tagStr: tagStr - }; -} - -function derDecodeLen(buf, primitive, fail) { - var len = buf.readUInt8(fail); - if (buf.isError(len)) - return len; - - // Indefinite form - if (!primitive && len === 0x80) - return null; - - // Definite form - if ((len & 0x80) === 0) { - // Short form - return len; - } - - // Long form - var num = len & 0x7f; - if (num > 4) - return buf.error('length octect is too long'); - - len = 0; - for (var i = 0; i < num; i++) { - len <<= 8; - var j = buf.readUInt8(fail); - if (buf.isError(j)) - return j; - len |= j; - } - - return len; -} - - -/***/ }), - -/***/ "./node_modules/asn1.js/lib/asn1/decoders/index.js": -/*!*********************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/decoders/index.js ***! - \*********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var decoders = exports; - -decoders.der = __webpack_require__(/*! ./der */ "./node_modules/asn1.js/lib/asn1/decoders/der.js"); -decoders.pem = __webpack_require__(/*! ./pem */ "./node_modules/asn1.js/lib/asn1/decoders/pem.js"); - - -/***/ }), - -/***/ "./node_modules/asn1.js/lib/asn1/decoders/pem.js": -/*!*******************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/decoders/pem.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); -var Buffer = __webpack_require__(/*! buffer */ "./node_modules/browserfs/dist/shims/buffer.js").Buffer; - -var DERDecoder = __webpack_require__(/*! ./der */ "./node_modules/asn1.js/lib/asn1/decoders/der.js"); - -function PEMDecoder(entity) { - DERDecoder.call(this, entity); - this.enc = 'pem'; -}; -inherits(PEMDecoder, DERDecoder); -module.exports = PEMDecoder; - -PEMDecoder.prototype.decode = function decode(data, options) { - var lines = data.toString().split(/[\r\n]+/g); - - var label = options.label.toUpperCase(); - - var re = /^-----(BEGIN|END) ([^-]+)-----$/; - var start = -1; - var end = -1; - for (var i = 0; i < lines.length; i++) { - var match = lines[i].match(re); - if (match === null) - continue; - - if (match[2] !== label) - continue; - - if (start === -1) { - if (match[1] !== 'BEGIN') - break; - start = i; - } else { - if (match[1] !== 'END') - break; - end = i; - break; - } - } - if (start === -1 || end === -1) - throw new Error('PEM section not found for: ' + label); - - var base64 = lines.slice(start + 1, end).join(''); - // Remove excessive symbols - base64.replace(/[^a-z0-9\+\/=]+/gi, ''); - - var input = new Buffer(base64, 'base64'); - return DERDecoder.prototype.decode.call(this, input, options); -}; - - -/***/ }), - -/***/ "./node_modules/asn1.js/lib/asn1/encoders/der.js": -/*!*******************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/encoders/der.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); -var Buffer = __webpack_require__(/*! buffer */ "./node_modules/browserfs/dist/shims/buffer.js").Buffer; - -var asn1 = __webpack_require__(/*! ../../asn1 */ "./node_modules/asn1.js/lib/asn1.js"); -var base = asn1.base; - -// Import DER constants -var der = asn1.constants.der; - -function DEREncoder(entity) { - this.enc = 'der'; - this.name = entity.name; - this.entity = entity; - - // Construct base tree - this.tree = new DERNode(); - this.tree._init(entity.body); -}; -module.exports = DEREncoder; - -DEREncoder.prototype.encode = function encode(data, reporter) { - return this.tree._encode(data, reporter).join(); -}; - -// Tree methods - -function DERNode(parent) { - base.Node.call(this, 'der', parent); -} -inherits(DERNode, base.Node); - -DERNode.prototype._encodeComposite = function encodeComposite(tag, - primitive, - cls, - content) { - var encodedTag = encodeTag(tag, primitive, cls, this.reporter); - - // Short form - if (content.length < 0x80) { - var header = new Buffer(2); - header[0] = encodedTag; - header[1] = content.length; - return this._createEncoderBuffer([ header, content ]); - } - - // Long form - // Count octets required to store length - var lenOctets = 1; - for (var i = content.length; i >= 0x100; i >>= 8) - lenOctets++; - - var header = new Buffer(1 + 1 + lenOctets); - header[0] = encodedTag; - header[1] = 0x80 | lenOctets; - - for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8) - header[i] = j & 0xff; - - return this._createEncoderBuffer([ header, content ]); -}; - -DERNode.prototype._encodeStr = function encodeStr(str, tag) { - if (tag === 'bitstr') { - return this._createEncoderBuffer([ str.unused | 0, str.data ]); - } else if (tag === 'bmpstr') { - var buf = new Buffer(str.length * 2); - for (var i = 0; i < str.length; i++) { - buf.writeUInt16BE(str.charCodeAt(i), i * 2); - } - return this._createEncoderBuffer(buf); - } else if (tag === 'numstr') { - if (!this._isNumstr(str)) { - return this.reporter.error('Encoding of string type: numstr supports ' + - 'only digits and space'); - } - return this._createEncoderBuffer(str); - } else if (tag === 'printstr') { - if (!this._isPrintstr(str)) { - return this.reporter.error('Encoding of string type: printstr supports ' + - 'only latin upper and lower case letters, ' + - 'digits, space, apostrophe, left and rigth ' + - 'parenthesis, plus sign, comma, hyphen, ' + - 'dot, slash, colon, equal sign, ' + - 'question mark'); - } - return this._createEncoderBuffer(str); - } else if (/str$/.test(tag)) { - return this._createEncoderBuffer(str); - } else if (tag === 'objDesc') { - return this._createEncoderBuffer(str); - } else { - return this.reporter.error('Encoding of string type: ' + tag + - ' unsupported'); - } -}; - -DERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) { - if (typeof id === 'string') { - if (!values) - return this.reporter.error('string objid given, but no values map found'); - if (!values.hasOwnProperty(id)) - return this.reporter.error('objid not found in values map'); - id = values[id].split(/[\s\.]+/g); - for (var i = 0; i < id.length; i++) - id[i] |= 0; - } else if (Array.isArray(id)) { - id = id.slice(); - for (var i = 0; i < id.length; i++) - id[i] |= 0; - } - - if (!Array.isArray(id)) { - return this.reporter.error('objid() should be either array or string, ' + - 'got: ' + JSON.stringify(id)); - } - - if (!relative) { - if (id[1] >= 40) - return this.reporter.error('Second objid identifier OOB'); - id.splice(0, 2, id[0] * 40 + id[1]); - } - - // Count number of octets - var size = 0; - for (var i = 0; i < id.length; i++) { - var ident = id[i]; - for (size++; ident >= 0x80; ident >>= 7) - size++; - } - - var objid = new Buffer(size); - var offset = objid.length - 1; - for (var i = id.length - 1; i >= 0; i--) { - var ident = id[i]; - objid[offset--] = ident & 0x7f; - while ((ident >>= 7) > 0) - objid[offset--] = 0x80 | (ident & 0x7f); - } - - return this._createEncoderBuffer(objid); -}; - -function two(num) { - if (num < 10) - return '0' + num; - else - return num; -} - -DERNode.prototype._encodeTime = function encodeTime(time, tag) { - var str; - var date = new Date(time); - - if (tag === 'gentime') { - str = [ - two(date.getFullYear()), - two(date.getUTCMonth() + 1), - two(date.getUTCDate()), - two(date.getUTCHours()), - two(date.getUTCMinutes()), - two(date.getUTCSeconds()), - 'Z' - ].join(''); - } else if (tag === 'utctime') { - str = [ - two(date.getFullYear() % 100), - two(date.getUTCMonth() + 1), - two(date.getUTCDate()), - two(date.getUTCHours()), - two(date.getUTCMinutes()), - two(date.getUTCSeconds()), - 'Z' - ].join(''); - } else { - this.reporter.error('Encoding ' + tag + ' time is not supported yet'); - } - - return this._encodeStr(str, 'octstr'); -}; - -DERNode.prototype._encodeNull = function encodeNull() { - return this._createEncoderBuffer(''); -}; - -DERNode.prototype._encodeInt = function encodeInt(num, values) { - if (typeof num === 'string') { - if (!values) - return this.reporter.error('String int or enum given, but no values map'); - if (!values.hasOwnProperty(num)) { - return this.reporter.error('Values map doesn\'t contain: ' + - JSON.stringify(num)); - } - num = values[num]; - } - - // Bignum, assume big endian - if (typeof num !== 'number' && !Buffer.isBuffer(num)) { - var numArray = num.toArray(); - if (!num.sign && numArray[0] & 0x80) { - numArray.unshift(0); - } - num = new Buffer(numArray); - } - - if (Buffer.isBuffer(num)) { - var size = num.length; - if (num.length === 0) - size++; - - var out = new Buffer(size); - num.copy(out); - if (num.length === 0) - out[0] = 0 - return this._createEncoderBuffer(out); - } - - if (num < 0x80) - return this._createEncoderBuffer(num); - - if (num < 0x100) - return this._createEncoderBuffer([0, num]); - - var size = 1; - for (var i = num; i >= 0x100; i >>= 8) - size++; - - var out = new Array(size); - for (var i = out.length - 1; i >= 0; i--) { - out[i] = num & 0xff; - num >>= 8; - } - if(out[0] & 0x80) { - out.unshift(0); - } - - return this._createEncoderBuffer(new Buffer(out)); -}; - -DERNode.prototype._encodeBool = function encodeBool(value) { - return this._createEncoderBuffer(value ? 0xff : 0); -}; - -DERNode.prototype._use = function use(entity, obj) { - if (typeof entity === 'function') - entity = entity(obj); - return entity._getEncoder('der').tree; -}; - -DERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) { - var state = this._baseState; - var i; - if (state['default'] === null) - return false; - - var data = dataBuffer.join(); - if (state.defaultBuffer === undefined) - state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join(); - - if (data.length !== state.defaultBuffer.length) - return false; - - for (i=0; i < data.length; i++) - if (data[i] !== state.defaultBuffer[i]) - return false; - - return true; -}; - -// Utility methods - -function encodeTag(tag, primitive, cls, reporter) { - var res; - - if (tag === 'seqof') - tag = 'seq'; - else if (tag === 'setof') - tag = 'set'; - - if (der.tagByName.hasOwnProperty(tag)) - res = der.tagByName[tag]; - else if (typeof tag === 'number' && (tag | 0) === tag) - res = tag; - else - return reporter.error('Unknown tag: ' + tag); - - if (res >= 0x1f) - return reporter.error('Multi-octet tag encoding unsupported'); - - if (!primitive) - res |= 0x20; - - res |= (der.tagClassByName[cls || 'universal'] << 6); - - return res; -} - - -/***/ }), - -/***/ "./node_modules/asn1.js/lib/asn1/encoders/index.js": -/*!*********************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/encoders/index.js ***! - \*********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var encoders = exports; - -encoders.der = __webpack_require__(/*! ./der */ "./node_modules/asn1.js/lib/asn1/encoders/der.js"); -encoders.pem = __webpack_require__(/*! ./pem */ "./node_modules/asn1.js/lib/asn1/encoders/pem.js"); - - -/***/ }), - -/***/ "./node_modules/asn1.js/lib/asn1/encoders/pem.js": -/*!*******************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/encoders/pem.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); - -var DEREncoder = __webpack_require__(/*! ./der */ "./node_modules/asn1.js/lib/asn1/encoders/der.js"); - -function PEMEncoder(entity) { - DEREncoder.call(this, entity); - this.enc = 'pem'; -}; -inherits(PEMEncoder, DEREncoder); -module.exports = PEMEncoder; - -PEMEncoder.prototype.encode = function encode(data, options) { - var buf = DEREncoder.prototype.encode.call(this, data); - - var p = buf.toString('base64'); - var out = [ '-----BEGIN ' + options.label + '-----' ]; - for (var i = 0; i < p.length; i += 64) - out.push(p.slice(i, i + 64)); - out.push('-----END ' + options.label + '-----'); - return out.join('\n'); -}; - - -/***/ }), - -/***/ "./node_modules/assemblyscript/dist/asc.js": -/*!*************************************************!*\ - !*** ./node_modules/assemblyscript/dist/asc.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -!function(e,n){ true?module.exports=n(function(){try{return __webpack_require__(/*! assemblyscript */ "./node_modules/assemblyscript/index.js")}catch(e){}}()):undefined}("undefined"!=typeof self?self:this,function(__WEBPACK_EXTERNAL_MODULE__10__){return function(e){var n={};function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(r,i,function(n){return e[n]}.bind(null,i));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=4)}([function(e,n,t){var r,i;n.nextTick=function(e){setTimeout(e,0)},n.platform=n.arch=n.execPath=n.title="browser",n.pid=1,n.browser=!0,n.env={},n.argv=[],n.binding=function(e){throw new Error("No such module. (Possibly not yet loaded)")},i="/",n.cwd=function(){return i},n.chdir=function(e){r||(r=t(1)),i=r.resolve(e,i)},n.exit=n.kill=n.umask=n.dlopen=n.uptime=n.memoryUsage=n.uvCounters=function(){},n.features={}},function(e,n,t){(function(e){function t(e,n){for(var t=0,r=e.length-1;r>=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),t++):t&&(e.splice(r,1),t--)}if(n)for(;t--;t)e.unshift("..");return e}var r=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,i=function(e){return r.exec(e).slice(1)};function a(e,n){if(e.filter)return e.filter(n);for(var t=[],r=0;r=-1&&!r;i--){var s=i>=0?arguments[i]:e.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(n=s+"/"+n,r="/"===s.charAt(0))}return(r?"/":"")+(n=t(a(n.split("/"),function(e){return!!e}),!r).join("/"))||"."},n.normalize=function(e){var r=n.isAbsolute(e),i="/"===s(e,-1);return(e=t(a(e.split("/"),function(e){return!!e}),!r).join("/"))||r||(e="."),e&&i&&(e+="/"),(r?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(a(e,function(e,n){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},n.relative=function(e,t){function r(e){for(var n=0;n=0&&""===e[t];t--);return n>t?[]:e.slice(n,t-n+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var i=r(e.split("/")),a=r(t.split("/")),s=Math.min(i.length,a.length),o=s,l=0;l{try{assemblyscript=__webpack_require__(10)}catch(e){try{__webpack_require__(!function(){var e=new Error("Cannot find module 'ts-node'");throw e.code="MODULE_NOT_FOUND",e}()).register({project:path.join(".","..","src","tsconfig.json")}),__webpack_require__(!function(){var e=new Error("Cannot find module '../src/glue/js'");throw e.code="MODULE_NOT_FOUND",e}()),assemblyscript=__webpack_require__(!function(){var e=new Error("Cannot find module '../src'");throw e.code="MODULE_NOT_FOUND",e}()),isDev=!0}catch(e_ts){try{assemblyscript=eval("require('./assemblyscript')")}catch(e){throw e.stack=e_ts.stack+"\n---\n"+e.stack,e}}}})(),exports.isBundle=!0,exports.isDev=isDev,exports.version=exports.isBundle?"0.5.0":__webpack_require__(!function(){var e=new Error("Cannot find module '../package.json'");throw e.code="MODULE_NOT_FOUND",e}()).version,exports.options=__webpack_require__(11),exports.sourceMapRoot="assemblyscript:///",exports.libraryPrefix=assemblyscript.LIBRARY_PREFIX,exports.defaultOptimizeLevel=2,exports.defaultShrinkLevel=1,exports.libraryFiles=exports.isBundle?Object({"allocator/arena":'/**\n * Arena Memory Allocator\n *\n * Provides a `memory.reset` function to reset the heap to its initial state. A user has to make\n * sure that there are no more references to cleared memory afterwards. Always aligns to 8 bytes.\n *\n * @module std/assembly/allocator/arena\n *//***/\n\nimport { AL_MASK, MAX_SIZE_32 } from "../internal/allocator";\n\nvar startOffset: usize = (HEAP_BASE + AL_MASK) & ~AL_MASK;\nvar offset: usize = startOffset;\n\n// Memory allocator interface\n\n@global export function __memory_allocate(size: usize): usize {\n if (size > MAX_SIZE_32) unreachable();\n var ptr = offset;\n var newPtr = (ptr + max(size, 1) + AL_MASK) & ~AL_MASK;\n var pagesBefore = memory.size();\n if (newPtr > pagesBefore << 16) {\n let pagesNeeded = ((newPtr - ptr + 0xffff) & ~0xffff) >>> 16;\n let pagesWanted = max(pagesBefore, pagesNeeded); // double memory\n if (memory.grow(pagesWanted) < 0) {\n if (memory.grow(pagesNeeded) < 0) {\n unreachable(); // out of memory\n }\n }\n }\n offset = newPtr;\n return ptr;\n}\n\n@global export function __memory_free(ptr: usize): void { /* nop */ }\n\n@global export function __memory_reset(): void {\n offset = startOffset;\n}\n',"allocator/buddy":'/**\n * Buddy Memory Allocator.\n * @module std/assembly/allocator/buddy\n *//***/\n\n/*\n Copyright 2018 Evan Wallace\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the "Software"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n*/// see: https://github.com/evanw/buddy-malloc\n\n/*\n * This file implements a buddy memory allocator, which is an allocator that\n * allocates memory within a fixed linear address range. It spans the address\n * range with a binary tree that tracks free space. Both "malloc" and "free"\n * are O(log N) time where N is the maximum possible number of allocations.\n *\n * The "buddy" term comes from how the tree is used. When memory is allocated,\n * nodes in the tree are split recursively until a node of the appropriate size\n * is reached. Every split results in two child nodes, each of which is the\n * buddy of the other. When a node is freed, the node and its buddy can be\n * merged again if the buddy is also free. This makes the memory available\n * for larger allocations again.\n */\n\n/*\n * Every allocation needs an 8-byte header to store the allocation size while\n * staying 8-byte aligned. The address returned by "malloc" is the address\n * right after this header (i.e. the size occupies the 8 bytes before the\n * returned address).\n */\nconst HEADER_SIZE: usize = 8;\n\n/*\n * The minimum allocation size is 16 bytes because we have an 8-byte header and\n * we need to stay 8-byte aligned.\n */\nconst MIN_ALLOC_LOG2: usize = 4;\nconst MIN_ALLOC: usize = 1 << MIN_ALLOC_LOG2;\n\n/*\n * The maximum allocation size is currently set to 2gb. This is the total size\n * of the heap. It\'s technically also the maximum allocation size because the\n * heap could consist of a single allocation of this size. But of course real\n * heaps will have multiple allocations, so the real maximum allocation limit\n * is at most 1gb.\n */\nconst MAX_ALLOC_LOG2: usize = 30; // 31;\nconst MAX_ALLOC: usize = 1 << MAX_ALLOC_LOG2;\n\n/*\n * Allocations are done in powers of two starting from MIN_ALLOC and ending at\n * MAX_ALLOC inclusive. Each allocation size has a bucket that stores the free\n * list for that allocation size.\n *\n * Given a bucket index, the size of the allocations in that bucket can be\n * found with "(size_t)1 << (MAX_ALLOC_LOG2 - bucket)".\n */\nconst BUCKET_COUNT: usize = MAX_ALLOC_LOG2 - MIN_ALLOC_LOG2 + 1;\n\n/*\n * Free lists are stored as circular doubly-linked lists. Every possible\n * allocation size has an associated free list that is threaded through all\n * currently free blocks of that size. That means MIN_ALLOC must be at least\n * "sizeof(list_t)". MIN_ALLOC is currently 16 bytes, so this will be true for\n * both 32-bit and 64-bit.\n */\n@unmanaged\nclass List {\n prev: List;\n next: List;\n static readonly SIZE: usize = 2 * sizeof();\n}\n\n/*\n * Each bucket corresponds to a certain allocation size and stores a free list\n * for that size. The bucket at index 0 corresponds to an allocation size of\n * MAX_ALLOC (i.e. the whole address space).\n */\nvar BUCKETS_START: usize = HEAP_BASE;\nvar BUCKETS_END: usize = BUCKETS_START + BUCKET_COUNT * List.SIZE;\n\nfunction buckets$get(index: usize): List {\n assert(index < BUCKET_COUNT);\n return changetype(BUCKETS_START + index * List.SIZE);\n}\n\n/*\n * We could initialize the allocator by giving it one free block the size of\n * the entire address space. However, this would cause us to instantly reserve\n * half of the entire address space on the first allocation, since the first\n * split would store a free list entry at the start of the right child of the\n * root. Instead, we have the tree start out small and grow the size of the\n * tree as we use more memory. The size of the tree is tracked by this value.\n */\nvar bucket_limit: usize;\n\n/*\n * This array represents a linearized binary tree of bits. Every possible\n * allocation larger than MIN_ALLOC has a node in this tree (and therefore a\n * bit in this array).\n *\n * Given the index for a node, lineraized binary trees allow you to traverse to\n * the parent node or the child nodes just by doing simple arithmetic on the\n * index:\n *\n * - Move to parent: index = (index - 1) / 2;\n * - Move to left child: index = index * 2 + 1;\n * - Move to right child: index = index * 2 + 2;\n * - Move to sibling: index = ((index - 1) ^ 1) + 1;\n *\n * Each node in this tree can be in one of several states:\n *\n * - UNUSED (both children are UNUSED)\n * - SPLIT (one child is UNUSED and the other child isn\'t)\n * - USED (neither children are UNUSED)\n *\n * These states take two bits to store. However, it turns out we have enough\n * information to distinguish between UNUSED and USED from context, so we only\n * need to store SPLIT or not, which only takes a single bit.\n *\n * Note that we don\'t need to store any nodes for allocations of size MIN_ALLOC\n * since we only ever care about parent nodes.\n */\nconst SPLIT_COUNT: usize = (1 << (BUCKET_COUNT - 1)) / 8;\nvar NODE_IS_SPLIT_START: usize = BUCKETS_END;\nvar NODE_IS_SPLIT_END: usize = NODE_IS_SPLIT_START + SPLIT_COUNT * sizeof();\n\nfunction node_is_split$get(index: usize): i32 {\n assert(index < SPLIT_COUNT);\n return load(NODE_IS_SPLIT_START + index);\n}\n\nfunction node_is_split$set(index: usize, state: i32): void {\n assert(index < SPLIT_COUNT);\n store(NODE_IS_SPLIT_START + index, state);\n}\n\n/*\n * This is the starting address of the address range for this allocator. Every\n * returned allocation will be an offset of this pointer from 0 to MAX_ALLOC.\n */\nvar base_ptr: usize;\n\n/*\n * This is the maximum address that has ever been used by the allocator. It\'s\n * used to know when to call "brk" to request more memory from the kernel.\n */\nvar max_ptr: usize;\n\n/*\n * Make sure all addresses before "new_value" are valid and can be used. Memory\n * is allocated in a 2gb address range but that memory is not reserved up\n * front. It\'s only reserved when it\'s needed by calling this function. This\n * will return false if the memory could not be reserved.\n */\nfunction update_max_ptr(new_value: usize): i32 {\n if (new_value > max_ptr) {\n // if (brk(new_value)) {\n // return 0;\n // }\n let oldPages = memory.size();\n let newPages = (((new_value + 0xffff) & ~0xffff) >>> 16);\n assert(newPages > oldPages);\n if (memory.grow(newPages - oldPages) < 0) {\n return 0;\n }\n // max_ptr = new_value;\n max_ptr = newPages << 16;\n }\n return 1;\n}\n\n/*\n * Initialize a list to empty. Because these are circular lists, an "empty"\n * list is an entry where both links point to itself. This makes insertion\n * and removal simpler because they don\'t need any branches.\n */\nfunction list_init(list: List): void {\n list.prev = list;\n list.next = list;\n}\n\n/*\n * Append the provided entry to the end of the list. This assumes the entry\n * isn\'t in a list already because it overwrites the linked list pointers.\n */\nfunction list_push(list: List, entry: List): void {\n var prev = list.prev;\n entry.prev = prev;\n entry.next = list;\n prev.next = entry;\n list.prev = entry;\n}\n\n/*\n * Remove the provided entry from whichever list it\'s currently in. This\n * assumes that the entry is in a list. You don\'t need to provide the list\n * because the lists are circular, so the list\'s pointers will automatically\n * be updated if the first or last entries are removed.\n */\nfunction list_remove(entry: List): void {\n var prev = entry.prev;\n var next = entry.next;\n prev.next = next;\n next.prev = prev;\n}\n\n/*\n * Remove and return the first entry in the list or NULL if the list is empty.\n */\nfunction list_pop(list: List): List | null {\n var back = list.prev;\n if (back == list) return null;\n list_remove(back);\n return back;\n}\n\n/*\n * This maps from the index of a node to the address of memory that node\n * represents. The bucket can be derived from the index using a loop but is\n * required to be provided here since having them means we can avoid the loop\n * and have this function return in constant time.\n */\nfunction ptr_for_node(index: usize, bucket: usize): usize {\n return base_ptr + ((index - (1 << bucket) + 1) << (MAX_ALLOC_LOG2 - bucket));\n}\n\n/*\n * This maps from an address of memory to the node that represents that\n * address. There are often many nodes that all map to the same address, so\n * the bucket is needed to uniquely identify a node.\n */\nfunction node_for_ptr(ptr: usize, bucket: usize): usize {\n return ((ptr - base_ptr) >> (MAX_ALLOC_LOG2 - bucket)) + (1 << bucket) - 1;\n}\n\n/*\n * Given the index of a node, this returns the "is split" flag of the parent.\n */\nfunction parent_is_split(index: usize): bool {\n index = (index - 1) / 2;\n return ((node_is_split$get(index / 8) >>> (index % 8)) & 1) == 1;\n}\n\n/*\n * Given the index of a node, this flips the "is split" flag of the parent.\n */\nfunction flip_parent_is_split(index: usize): void {\n index = (index - 1) / 2;\n var indexDiv8 = index / 8;\n node_is_split$set(indexDiv8,\n node_is_split$get(indexDiv8) ^ (1 << (index % 8))\n );\n}\n\n/*\n * Given the requested size passed to "malloc", this function returns the index\n * of the smallest bucket that can fit that size.\n */\nfunction bucket_for_request(request: usize): usize {\n var bucket = BUCKET_COUNT - 1;\n var size = MIN_ALLOC;\n\n while (size < request) {\n bucket--;\n size *= 2;\n }\n\n return bucket;\n}\n\n/*\n * The tree is always rooted at the current bucket limit. This call grows the\n * tree by repeatedly doubling it in size until the root lies at the provided\n * bucket index. Each doubling lowers the bucket limit by 1.\n */\nfunction lower_bucket_limit(bucket: usize): u32 {\n while (bucket < bucket_limit) {\n let root = node_for_ptr(base_ptr, bucket_limit);\n let right_child: usize;\n\n /*\n * If the parent isn\'t SPLIT, that means the node at the current bucket\n * limit is UNUSED and our address space is entirely free. In that case,\n * clear the root free list, increase the bucket limit, and add a single\n * block with the newly-expanded address space to the new root free list.\n */\n if (!parent_is_split(root)) {\n list_remove(changetype(base_ptr));\n list_init(buckets$get(--bucket_limit));\n list_push(buckets$get(bucket_limit), changetype(base_ptr));\n continue;\n }\n\n /*\n * Otherwise, the tree is currently in use. Create a parent node for the\n * current root node in the SPLIT state with a right child on the free\n * list. Make sure to reserve the memory for the free list entry before\n * writing to it. Note that we do not need to flip the "is split" flag for\n * our current parent because it\'s already on (we know because we just\n * checked it above).\n */\n right_child = ptr_for_node(root + 1, bucket_limit);\n if (!update_max_ptr(right_child + List.SIZE)) {\n return 0;\n }\n list_push(buckets$get(bucket_limit), changetype(right_child));\n list_init(buckets$get(--bucket_limit));\n\n /*\n * Set the grandparent\'s SPLIT flag so if we need to lower the bucket limit\n * again, we\'ll know that the new root node we just added is in use.\n */\n root = (root - 1) / 2;\n if (root != 0) {\n flip_parent_is_split(root);\n }\n }\n\n return 1;\n}\n\n// Memory allocator interface\n\n@global export function __memory_allocate(request: usize): usize {\n var original_bucket: usize, bucket: usize;\n\n /*\n * Make sure it\'s possible for an allocation of this size to succeed. There\'s\n * a hard-coded limit on the maximum allocation size because of the way this\n * allocator works.\n */\n if (request > MAX_ALLOC - HEADER_SIZE) unreachable();\n\n /*\n * Initialize our global state if this is the first call to "malloc". At the\n * beginning, the tree has a single node that represents the smallest\n * possible allocation size. More memory will be reserved later as needed.\n */\n if (base_ptr == 0) {\n // base_ptr = max_ptr = (uint8_t *)sbrk(0);\n base_ptr = (NODE_IS_SPLIT_END + 7) & ~7; // must be aligned\n max_ptr = memory.size() << 16; // must grow first\n bucket_limit = BUCKET_COUNT - 1;\n if (!update_max_ptr(base_ptr + List.SIZE)) {\n return 0;\n }\n list_init(buckets$get(BUCKET_COUNT - 1));\n list_push(buckets$get(BUCKET_COUNT - 1), changetype(base_ptr));\n }\n\n /*\n * Find the smallest bucket that will fit this request. This doesn\'t check\n * that there\'s space for the request yet.\n */\n bucket = bucket_for_request(request + HEADER_SIZE);\n original_bucket = bucket;\n\n /*\n * Search for a bucket with a non-empty free list that\'s as large or larger\n * than what we need. If there isn\'t an exact match, we\'ll need to split a\n * larger one to get a match.\n */\n while (bucket + 1 != 0) {\n let size: usize, bytes_needed: usize, i: usize;\n let ptr: usize;\n\n /*\n * We may need to grow the tree to be able to fit an allocation of this\n * size. Try to grow the tree and stop here if we can\'t.\n */\n if (!lower_bucket_limit(bucket)) {\n return 0;\n }\n\n /*\n * Try to pop a block off the free list for this bucket. If the free list\n * is empty, we\'re going to have to split a larger block instead.\n */\n ptr = changetype(list_pop(buckets$get(bucket)));\n if (!ptr) {\n /*\n * If we\'re not at the root of the tree or it\'s impossible to grow the\n * tree any more, continue on to the next bucket.\n */\n if (bucket != bucket_limit || bucket == 0) {\n bucket--;\n continue;\n }\n\n /*\n * Otherwise, grow the tree one more level and then pop a block off the\n * free list again. Since we know the root of the tree is used (because\n * the free list was empty), this will add a parent above this node in\n * the SPLIT state and then add the new right child node to the free list\n * for this bucket. Popping the free list will give us this right child.\n */\n if (!lower_bucket_limit(bucket - 1)) {\n return 0;\n }\n ptr = changetype(list_pop(buckets$get(bucket)));\n }\n\n /*\n * Try to expand the address space first before going any further. If we\n * have run out of space, put this block back on the free list and fail.\n */\n size = 1 << (MAX_ALLOC_LOG2 - bucket);\n bytes_needed = bucket < original_bucket ? size / 2 + List.SIZE : size;\n if (!update_max_ptr(ptr + bytes_needed)) {\n list_push(buckets$get(bucket), changetype(ptr));\n return 0;\n }\n\n /*\n * If we got a node off the free list, change the node from UNUSED to USED.\n * This involves flipping our parent\'s "is split" bit because that bit is\n * the exclusive-or of the UNUSED flags of both children, and our UNUSED\n * flag (which isn\'t ever stored explicitly) has just changed.\n *\n * Note that we shouldn\'t ever need to flip the "is split" bit of our\n * grandparent because we know our buddy is USED so it\'s impossible for our\n * grandparent to be UNUSED (if our buddy chunk was UNUSED, our parent\n * wouldn\'t ever have been split in the first place).\n */\n i = node_for_ptr(ptr, bucket);\n if (i != 0) {\n flip_parent_is_split(i);\n }\n\n /*\n * If the node we got is larger than we need, split it down to the correct\n * size and put the new unused child nodes on the free list in the\n * corresponding bucket. This is done by repeatedly moving to the left\n * child, splitting the parent, and then adding the right child to the free\n * list.\n */\n while (bucket < original_bucket) {\n i = i * 2 + 1;\n bucket++;\n flip_parent_is_split(i);\n list_push(\n buckets$get(bucket),\n changetype(ptr_for_node(i + 1, bucket))\n );\n }\n\n /*\n * Now that we have a memory address, write the block header (just the size\n * of the allocation) and return the address immediately after the header.\n */\n store(ptr, request);\n return ptr + HEADER_SIZE;\n }\n\n return 0;\n}\n\n@global export function __memory_free(ptr: usize): void {\n var bucket: usize, i: usize;\n\n /*\n * Ignore any attempts to free a NULL pointer.\n */\n if (!ptr) {\n return;\n }\n\n /*\n * We were given the address returned by "malloc" so get back to the actual\n * address of the node by subtracting off the size of the block header. Then\n * look up the index of the node corresponding to this address.\n */\n ptr = ptr - HEADER_SIZE;\n bucket = bucket_for_request(load(ptr) + HEADER_SIZE);\n i = node_for_ptr(ptr, bucket);\n\n /*\n * Traverse up to the root node, flipping USED blocks to UNUSED and merging\n * UNUSED buddies together into a single UNUSED parent.\n */\n while (i != 0) {\n /*\n * Change this node from UNUSED to USED. This involves flipping our\n * parent\'s "is split" bit because that bit is the exclusive-or of the\n * UNUSED flags of both children, and our UNUSED flag (which isn\'t ever\n * stored explicitly) has just changed.\n */\n flip_parent_is_split(i);\n\n /*\n * If the parent is now SPLIT, that means our buddy is USED, so don\'t merge\n * with it. Instead, stop the iteration here and add ourselves to the free\n * list for our bucket.\n *\n * Also stop here if we\'re at the current root node, even if that root node\n * is now UNUSED. Root nodes don\'t have a buddy so we can\'t merge with one.\n */\n if (parent_is_split(i) || bucket == bucket_limit) {\n break;\n }\n\n /*\n * If we get here, we know our buddy is UNUSED. In this case we should\n * merge with that buddy and continue traversing up to the root node. We\n * need to remove the buddy from its free list here but we don\'t need to\n * add the merged parent to its free list yet. That will be done once after\n * this loop is finished.\n */\n list_remove(changetype(ptr_for_node(((i - 1) ^ 1) + 1, bucket)));\n i = (i - 1) / 2;\n bucket--;\n }\n\n /*\n * Add ourselves to the free list for our bucket. We add to the back of the\n * list because "malloc" takes from the back of the list and we want a "free"\n * followed by a "malloc" of the same size to ideally use the same address\n * for better memory locality.\n */\n list_push(buckets$get(bucket), changetype(ptr_for_node(i, bucket)));\n}\n',"allocator/emscripten":"/**\n * Emscripten Memory Allocator.\n *\n * Uses Emscripten's exported _malloc and _free implementations, i.e., when linking with\n * Emscripten-compiled programs that already provide these. Differs from 'system' in that their\n * names are prefixed with an underscore.\n *\n * @module std/assembly/allocator/emscripten\n *//***/\n\ndeclare function _malloc(size: usize): usize;\ndeclare function _free(ptr: usize): void;\n\n// Memory allocator interface\n\n@global export function __memory_allocate(size: usize): usize {\n return _malloc(size);\n}\n\n@global export function __memory_free(ptr: usize): void {\n _free(ptr);\n}\n","allocator/system":"/**\n * System Memory Allocator.\n *\n * Uses the environment's malloc and free implementations, i.e., when linking with other C-like\n * programs that already provide these.\n *\n * @module std/assembly/allocator/system\n *//***/\n\ndeclare function malloc(size: usize): usize;\ndeclare function free(ptr: usize): void;\n\n// Memory allocator interface\n\n@global export function __memory_allocate(size: usize): usize {\n return malloc(size);\n}\n\n@global export function __memory_free(ptr: usize): void {\n free(ptr);\n}\n","allocator/tlsf":"/**\n * Two-Level Segregate Fit Memory Allocator.\n *\n * A general purpose dynamic memory allocator specifically designed to meet real-time requirements.\n * Always aligns to 8 bytes.\n *\n * @module std/assembly/allocator/tlsf\n *//***/\n\n// ╒══════════════ Block size interpretation (32-bit) ═════════════╕\n// 3 2 1\n// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 bits\n// ├─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┼─┴─┴─┴─┴─╫─┴─┴─┤\n// │ | FL │ SB = SL + AL │ ◄─ usize\n// └───────────────────────────────────────────────┴─────────╨─────┘\n// FL: first level, SL: second level, AL: alignment, SB: small block\n\nimport {\n AL_BITS,\n AL_SIZE,\n AL_MASK\n} from \"../internal/allocator\";\n\nconst SL_BITS: u32 = 5;\nconst SL_SIZE: usize = 1 << SL_BITS;\n\nconst SB_BITS: usize = (SL_BITS + AL_BITS);\nconst SB_SIZE: usize = 1 << SB_BITS;\n\nconst FL_BITS: u32 = (sizeof() == sizeof()\n ? 30 // ^= up to 1GB per block\n : 32 // ^= up to 4GB per block\n) - SB_BITS;\n\n// ╒════════════════ Block structure layout (32-bit) ══════════════╕\n// 3 2 1\n// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 bits\n// ├─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┼─┼─┤\n// │ size │L│F│ ◄─┐ info\n// ╞═══════════════════════════════════════════════════════════╧═╧═╡ │ ┐\n// │ if free: ◄ prev │ ◄─┤ usize\n// ├───────────────────────────────────────────────────────────────┤ │\n// │ if free: next ► │ ◄─┤\n// ├───────────────────────────────────────────────────────────────┤ │\n// │ ... unused free space >= 0 ... │ │ = 0\n// ├ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┤ │\n// │ if free: jump ▲ │ ◄─┘\n// └───────────────────────────────────────────────────────────────┘ MIN SIZE ┘\n// F: FREE, L: LEFT_FREE\n\n/** Tag indicating that this block is free. */\nconst FREE: usize = 1 << 0;\n/** Tag indicating that this block's left block is free. */\nconst LEFT_FREE: usize = 1 << 1;\n/** Mask to obtain all tags. */\nconst TAGS: usize = FREE | LEFT_FREE;\n\n/** Block structure. */\n@unmanaged\nclass Block {\n\n /** Info field holding this block's size and tags. */\n info: usize;\n\n /** End offset of the {@link Block#info} field. User data starts here. */\n static readonly INFO: usize = (sizeof() + AL_MASK) & ~AL_MASK;\n\n /** Previous free block, if any. Only valid if free. */\n prev: Block | null;\n /** Next free block, if any. Only valid if free. */\n next: Block | null;\n\n /** Minimum size of a block, excluding {@link Block#info}. */\n static readonly MIN_SIZE: usize = (3 * sizeof() + AL_MASK) & ~AL_MASK;// prev + next + jump\n\n /** Maximum size of a used block, excluding {@link Block#info}. */\n static readonly MAX_SIZE: usize = 1 << (FL_BITS + SB_BITS);\n\n /** Gets this block's left (free) block in memory. */\n get left(): Block {\n assert(this.info & LEFT_FREE); // must be free to contain a jump\n return assert(\n load(changetype(this) - sizeof())\n ); // can't be null\n }\n\n /** Gets this block's right block in memory. */\n get right(): Block {\n assert(this.info & ~TAGS); // can't skip beyond the tail block\n return assert(\n changetype(\n changetype(this) + Block.INFO + (this.info & ~TAGS)\n )\n ); // can't be null\n }\n}\n\n// ╒════════════════ Root structure layout (32-bit) ═══════════════╕\n// 3 2 1\n// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 bits\n// ├─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┤ ┐\n// │ 0 | flMap S│ ◄────┐\n// ╞═══════════════════════════════════════════════════════════════╡ │\n// │ slMap[0] S │ ◄─┐ │\n// ├───────────────────────────────────────────────────────────────┤ │ │\n// │ slMap[1] │ ◄─┤ │\n// ├───────────────────────────────────────────────────────────────┤ u32 │\n// │ ... │ ◄─┤ │\n// ├───────────────────────────────────────────────────────────────┤ │ │\n// │ slMap[22] P │ ◄─┘ │\n// ╞═══════════════════════════════════════════════════════════════╡ usize\n// │ head[0] │ ◄────┤\n// ├───────────────────────────────────────────────────────────────┤ │\n// │ ... │ ◄────┤\n// ├───────────────────────────────────────────────────────────────┤ │\n// │ head[736] │ ◄────┤\n// ╞═══════════════════════════════════════════════════════════════╡ │\n// │ tailRef │ ◄────┘\n// └───────────────────────────────────────────────────────────────┘ SIZE ┘\n// S: Small blocks map, P: Possibly padded if 64-bit\n\nassert((1 << SL_BITS) <= 32); // second level must fit into 32 bits\n\n/** Root structure. */\n@unmanaged\nclass Root {\n\n /** First level bitmap. */\n flMap: usize = 0;\n\n /** Start offset of second level maps. */\n private static readonly SL_START: usize = sizeof();\n\n // Using *one* SL map per *FL bit*\n\n /** Gets the second level map for the specified first level. */\n getSLMap(fl: usize): u32 {\n assert(fl < FL_BITS); // fl out of range\n return load(changetype(this) + fl * 4, Root.SL_START);\n }\n\n /** Sets the second level map for the specified first level. */\n setSLMap(fl: usize, value: u32): void {\n assert(fl < FL_BITS); // fl out of range\n store(changetype(this) + fl * 4, value, Root.SL_START);\n }\n\n /** End offset of second level maps. */\n private static readonly SL_END: usize = Root.SL_START + FL_BITS * 4;\n\n // Using *number bits per SL* heads per *FL bit*\n\n /** Start offset of FL/SL heads. */\n private static readonly HL_START: usize = (Root.SL_END + AL_MASK) & ~AL_MASK;\n\n /** Gets the head of the specified first and second level index. */\n getHead(fl: usize, sl: u32): Block | null {\n assert(fl < FL_BITS); // fl out of range\n assert(sl < SL_SIZE); // sl out of range\n return changetype(load(\n changetype(this) + (fl * SL_SIZE + sl) * sizeof()\n , Root.HL_START));\n }\n\n /** Sets the head of the specified first and second level index. */\n setHead(fl: usize, sl: u32, value: Block | null): void {\n assert(fl < FL_BITS); // fl out of range\n assert(sl < SL_SIZE); // sl out of range\n store(\n changetype(this) + (fl * SL_SIZE + sl) * sizeof()\n , changetype(value)\n , Root.HL_START);\n }\n\n /** End offset of FL/SL heads. */\n private static readonly HL_END: usize = (\n Root.HL_START + FL_BITS * SL_SIZE * sizeof()\n );\n\n get tailRef(): usize { return load(0, Root.HL_END); }\n set tailRef(value: usize) { store(0, value, Root.HL_END); }\n\n /** Total size of the {@link Root} structure. */\n static readonly SIZE: usize = Root.HL_END + sizeof();\n\n /** Inserts a previously used block back into the free list. */\n insert(block: Block): void {\n // check as much as possible here to prevent invalid free blocks\n assert(block); // cannot be null\n var blockInfo = block.info;\n assert(blockInfo & FREE); // must be free\n var size: usize;\n assert(\n (size = block.info & ~TAGS) >= Block.MIN_SIZE && size < Block.MAX_SIZE\n ); // must be valid, not necessary to compute yet if noAssert=true\n\n var right: Block = assert(block.right); // can't be null\n var rightInfo = right.info;\n\n // merge with right block if also free\n if (rightInfo & FREE) {\n this.remove(right);\n block.info = (blockInfo += Block.INFO + (rightInfo & ~TAGS));\n right = block.right;\n rightInfo = right.info;\n // jump is set below\n }\n\n // merge with left block if also free\n if (blockInfo & LEFT_FREE) {\n let left: Block = assert(block.left); // can't be null\n let leftInfo = left.info;\n assert(leftInfo & FREE); // must be free according to tags\n this.remove(left);\n left.info = (leftInfo += Block.INFO + (blockInfo & ~TAGS));\n block = left;\n blockInfo = leftInfo;\n // jump is set below\n }\n\n right.info = rightInfo | LEFT_FREE;\n this.setJump(block, right);\n // right is no longer used now, hence rightInfo is not synced\n\n size = blockInfo & ~TAGS;\n assert(size >= Block.MIN_SIZE && size < Block.MAX_SIZE); // must be valid\n\n // mapping_insert\n var fl: usize, sl: u32;\n if (size < SB_SIZE) {\n fl = 0;\n sl = (size / AL_SIZE);\n } else {\n fl = fls(size);\n sl = ((size >> (fl - SL_BITS)) ^ (1 << SL_BITS));\n fl -= SB_BITS - 1;\n }\n\n // perform insertion\n var head = this.getHead(fl, sl);\n block.prev = null;\n block.next = head;\n if (head) head.prev = block;\n this.setHead(fl, sl, block);\n\n // update first and second level maps\n this.flMap |= (1 << fl);\n this.setSLMap(fl, this.getSLMap(fl) | (1 << sl));\n }\n\n /**\n * Removes a free block from FL/SL maps. Does not alter left/jump because it\n * is likely that splitting is performed afterwards, invalidating any changes\n * again.\n */\n private remove(block: Block): void {\n var blockInfo = block.info;\n assert(blockInfo & FREE); // must be free\n var size = blockInfo & ~TAGS;\n assert(size >= Block.MIN_SIZE && size < Block.MAX_SIZE); // must be valid\n\n // mapping_insert\n var fl: usize, sl: u32;\n if (size < SB_SIZE) {\n fl = 0;\n sl = (size / AL_SIZE);\n } else {\n fl = fls(size);\n sl = ((size >> (fl - SL_BITS)) ^ (1 << SL_BITS));\n fl -= SB_BITS - 1;\n }\n\n // link previous and next free block\n var prev = block.prev;\n var next = block.next;\n if (prev) prev.next = next;\n if (next) next.prev = prev;\n\n // update head if we are removing it\n if (block == this.getHead(fl, sl)) {\n this.setHead(fl, sl, next);\n\n // clear second level map if head is empty now\n if (!next) {\n let slMap = this.getSLMap(fl);\n this.setSLMap(fl, slMap &= ~(1 << sl));\n\n // clear first level map if second level is empty now\n if (!slMap) this.flMap &= ~(1 << fl);\n }\n }\n }\n\n /** Searches for a free block of at least the specified size. */\n search(size: usize): Block | null {\n assert(size >= Block.MIN_SIZE && size < Block.MAX_SIZE);\n\n // mapping_search\n var fl: usize, sl: u32;\n if (size < SB_SIZE) {\n fl = 0;\n sl = (size / AL_SIZE);\n } else {\n // (*) size += (1 << (fls(size) - SL_BITS)) - 1;\n fl = fls(size);\n sl = ((size >> (fl - SL_BITS)) ^ (1 << SL_BITS));\n fl -= SB_BITS - 1;\n // (*) instead of rounding up, use next second level list for better fit\n if (sl < SL_SIZE - 1) ++sl;\n else ++fl, sl = 0;\n }\n\n // search second level\n var slMap = this.getSLMap(fl) & (~0 << sl);\n var head: Block | null;\n if (!slMap) {\n // search next larger first level\n let flMap = this.flMap & (~0 << (fl + 1));\n if (!flMap) {\n head = null;\n } else {\n fl = ffs(flMap);\n slMap = assert(this.getSLMap(fl)); // can't be zero if fl points here\n head = this.getHead(fl, ffs(slMap));\n }\n } else {\n head = this.getHead(fl, ffs(slMap));\n }\n return head;\n }\n\n /** Links a free left with its right block in memory. */\n private setJump(left: Block, right: Block): void {\n assert(left.info & FREE); // must be free\n assert(left.right == right); // right block must match\n assert(right.info & LEFT_FREE); // right block must be tagged as LEFT_FREE\n store(\n changetype(right) - sizeof()\n , left); // last word in left block's (free) data region\n }\n\n /**\n * Uses the specified free block, removing it from internal maps and\n * splitting it if possible, and returns its data pointer.\n */\n use(block: Block, size: usize): usize {\n var blockInfo = block.info;\n assert(blockInfo & FREE); // must be free so we can use it\n assert(size >= Block.MIN_SIZE && size < Block.MAX_SIZE); // must be valid\n assert(!(size & AL_MASK)); // size must be aligned so the new block is\n\n this.remove(block);\n\n // split if the block can hold another MIN_SIZE block\n var remaining = (blockInfo & ~TAGS) - size;\n if (remaining >= Block.INFO + Block.MIN_SIZE) {\n block.info = size | (blockInfo & LEFT_FREE); // also discards FREE\n\n let spare = changetype(\n changetype(block) + Block.INFO + size\n );\n spare.info = (remaining - Block.INFO) | FREE; // not LEFT_FREE\n this.insert(spare); // also sets jump\n\n // otherwise tag block as no longer FREE and right as no longer LEFT_FREE\n } else {\n block.info = blockInfo & ~FREE;\n let right: Block = assert(block.right); // can't be null (tail)\n right.info &= ~LEFT_FREE;\n }\n\n return changetype(block) + Block.INFO;\n }\n\n /** Adds more memory to the pool. */\n addMemory(start: usize, end: usize): bool {\n assert(start <= end);\n assert(!(start & AL_MASK)); // must be aligned\n assert(!(end & AL_MASK)); // must be aligned\n\n var tailRef = this.tailRef;\n var tailInfo: usize = 0;\n if (tailRef) {\n assert(start >= tailRef + sizeof()); // starts after tail\n\n // merge with current tail if adjacent\n if (start - Block.INFO == tailRef) {\n start -= Block.INFO;\n tailInfo = changetype(tailRef).info;\n }\n\n } else {\n assert(start >= changetype(this) + Root.SIZE); // starts after root\n }\n\n // check if size is large enough for a free block and the tail block\n var size = end - start;\n if (size < Block.INFO + Block.MIN_SIZE + Block.INFO) {\n return false;\n }\n\n // left size is total minus its own and the zero-length tail's header\n var leftSize = size - 2 * Block.INFO;\n var left = changetype(start);\n left.info = leftSize | FREE | (tailInfo & LEFT_FREE);\n left.prev = null;\n left.next = null;\n\n // tail is a zero-length used block\n var tail = changetype(start + size - Block.INFO);\n tail.info = 0 | LEFT_FREE;\n this.tailRef = changetype(tail);\n\n this.insert(left); // also merges with free left before tail / sets jump\n\n return true;\n }\n}\n\n/** Determines the first (LSB to MSB) set bit's index of a word. */\nfunction ffs(word: T): T {\n assert(word != 0); // word cannot be 0\n return ctz(word); // differs from ffs only for 0\n}\n\n/** Determines the last (LSB to MSB) set bit's index of a word. */\nfunction fls(word: T): T {\n assert(word != 0); // word cannot be 0\n const inv: T = (sizeof() << 3) - 1;\n return inv - clz(word);\n}\n\n/** Reference to the initialized {@link Root} structure, once initialized. */\nvar ROOT: Root = changetype(0);\n\n// Memory allocator interface\n\n/** Allocates a chunk of memory. */\n@global export function __memory_allocate(size: usize): usize {\n\n // initialize if necessary\n var root = ROOT;\n if (!root) {\n let rootOffset = (HEAP_BASE + AL_MASK) & ~AL_MASK;\n let pagesBefore = memory.size();\n let pagesNeeded = ((((rootOffset + Root.SIZE) + 0xffff) & ~0xffff) >>> 16);\n if (pagesNeeded > pagesBefore && memory.grow(pagesNeeded - pagesBefore) < 0) unreachable();\n ROOT = root = changetype(rootOffset);\n root.tailRef = 0;\n root.flMap = 0;\n for (let fl: usize = 0; fl < FL_BITS; ++fl) {\n root.setSLMap(fl, 0);\n for (let sl: u32 = 0; sl < SL_SIZE; ++sl) {\n root.setHead(fl, sl, null);\n }\n }\n root.addMemory((rootOffset + Root.SIZE + AL_MASK) & ~AL_MASK, memory.size() << 16);\n }\n\n // search for a suitable block\n if (size > Block.MAX_SIZE) unreachable();\n\n // 32-bit MAX_SIZE is 1 << 30 and itself aligned, hence the following can't overflow MAX_SIZE\n size = max((size + AL_MASK) & ~AL_MASK, Block.MIN_SIZE);\n\n var block = root.search(size);\n if (!block) {\n\n // request more memory\n let pagesBefore = memory.size();\n let pagesNeeded = (((size + 0xffff) & ~0xffff) >>> 16);\n let pagesWanted = max(pagesBefore, pagesNeeded); // double memory\n if (memory.grow(pagesWanted) < 0) {\n if (memory.grow(pagesNeeded) < 0) {\n unreachable(); // out of memory\n }\n }\n let pagesAfter = memory.size();\n root.addMemory(pagesBefore << 16, pagesAfter << 16);\n block = assert(root.search(size)); // must be found now\n }\n\n assert((block.info & ~TAGS) >= size);\n return root.use(block, size);\n}\n\n/** Frees the chunk of memory at the specified address. */\n@global export function __memory_free(data: usize): void {\n if (data) {\n let root = ROOT;\n if (root) {\n let block = changetype(data - Block.INFO);\n let blockInfo = block.info;\n assert(!(blockInfo & FREE)); // must be used\n block.info = blockInfo | FREE;\n root.insert(changetype(data - Block.INFO));\n }\n }\n}\n\n@global export function __memory_reset(): void {\n unreachable();\n}\n",array:'import {\n MAX_BLENGTH,\n HEADER_SIZE,\n allocateUnsafe,\n reallocateUnsafe,\n LOAD,\n STORE\n} from "./internal/arraybuffer";\n\nimport {\n allocateUnsafe as allocateUnsafeString,\n freeUnsafe as freeUnsafeString,\n copyUnsafe as copyUnsafeString\n} from "./internal/string";\n\nimport {\n COMPARATOR,\n SORT\n} from "./internal/sort";\n\nimport {\n itoa,\n dtoa,\n itoa_stream,\n dtoa_stream,\n MAX_DOUBLE_LENGTH\n} from "./internal/number";\n\nimport {\n isArray as builtin_isArray\n} from "./builtins";\n\nexport class Array {\n [key: number]: T; // compatibility only\n\n /* @internal */ buffer_: ArrayBuffer;\n /* @internal */ length_: i32;\n\n @inline static isArray(value: U): bool {\n return builtin_isArray(value) && value !== null;\n }\n\n constructor(length: i32 = 0) {\n const MAX_LENGTH = MAX_BLENGTH >>> alignof();\n if (length > MAX_LENGTH) throw new RangeError("Invalid array length");\n var byteLength = length << alignof();\n var buffer = allocateUnsafe(byteLength);\n this.buffer_ = buffer;\n this.length_ = length;\n memory.fill(\n changetype(buffer) + HEADER_SIZE,\n 0,\n byteLength\n );\n }\n\n @inline\n get length(): i32 {\n return this.length_;\n }\n\n set length(length: i32) {\n var buffer = this.buffer_;\n var capacity = buffer.byteLength >>> alignof();\n if (length > capacity) {\n const MAX_LENGTH = MAX_BLENGTH >>> alignof();\n if (length > MAX_LENGTH) throw new RangeError("Invalid array length");\n buffer = reallocateUnsafe(buffer, length << alignof());\n this.buffer_ = buffer;\n }\n this.length_ = length;\n }\n\n every(callbackfn: (element: T, index: i32, array: Array) => bool): bool {\n for (let index = 0, length = this.length_; index < min(length, this.length_); ++index) {\n if (!callbackfn(LOAD(this.buffer_, index), index, this)) return false;\n }\n return true;\n }\n\n findIndex(predicate: (element: T, index: i32, array: Array) => bool): i32 {\n for (let index = 0, length = this.length_; index < min(length, this.length_); ++index) {\n if (predicate(LOAD(this.buffer_, index), index, this)) return index;\n }\n return -1;\n }\n\n @operator("[]")\n private __get(index: i32): T {\n var buffer = this.buffer_;\n return index < (buffer.byteLength >>> alignof())\n ? LOAD(buffer, index)\n : unreachable();\n }\n\n @operator("{}")\n private __unchecked_get(index: i32): T {\n return LOAD(this.buffer_, index);\n }\n\n @operator("[]=")\n private __set(index: i32, value: T): void {\n var buffer = this.buffer_;\n var capacity = buffer.byteLength >>> alignof();\n if (index >= capacity) {\n const MAX_LENGTH = MAX_BLENGTH >>> alignof();\n if (index >= MAX_LENGTH) throw new Error("Invalid array length");\n buffer = reallocateUnsafe(buffer, (index + 1) << alignof());\n this.buffer_ = buffer;\n this.length_ = index + 1;\n }\n STORE(buffer, index, value);\n if (isManaged()) __gc_link(changetype(this), changetype(value)); // tslint:disable-line\n }\n\n @operator("{}=")\n private __unchecked_set(index: i32, value: T): void {\n STORE(this.buffer_, index, value);\n if (isManaged()) __gc_link(changetype(this), changetype(value)); // tslint:disable-line\n }\n\n fill(value: T, start: i32 = 0, end: i32 = i32.MAX_VALUE): this {\n var buffer = this.buffer_;\n var len = this.length_;\n\n start = start < 0 ? max(len + start, 0) : min(start, len);\n end = end < 0 ? max(len + end, 0) : min(end, len);\n\n if (sizeof() == 1) {\n if (start < end) {\n memory.fill(\n changetype(buffer) + start + HEADER_SIZE,\n value,\n (end - start)\n );\n }\n } else {\n for (; start < end; ++start) {\n STORE(buffer, start, value);\n }\n }\n return this;\n }\n\n @inline\n includes(searchElement: T, fromIndex: i32 = 0): bool {\n return this.indexOf(searchElement, fromIndex) >= 0;\n }\n\n indexOf(searchElement: T, fromIndex: i32 = 0): i32 {\n var length = this.length_;\n if (length == 0 || fromIndex >= length) return -1;\n if (fromIndex < 0) fromIndex = max(length + fromIndex, 0);\n var buffer = this.buffer_;\n while (fromIndex < length) {\n if (LOAD(buffer, fromIndex) == searchElement) return fromIndex;\n ++fromIndex;\n }\n return -1;\n }\n\n lastIndexOf(searchElement: T, fromIndex: i32 = this.length_): i32 {\n var length = this.length_;\n if (length == 0) return -1;\n if (fromIndex < 0) fromIndex = length + fromIndex; // no need to clamp\n else if (fromIndex >= length) fromIndex = length - 1;\n var buffer = this.buffer_;\n while (fromIndex >= 0) { // ^\n if (LOAD(buffer, fromIndex) == searchElement) return fromIndex;\n --fromIndex;\n }\n return -1;\n }\n\n push(element: T): i32 {\n var length = this.length_;\n var buffer = this.buffer_;\n var capacity = buffer.byteLength >>> alignof();\n var newLength = length + 1; // safe only if length is checked\n if (length >= capacity) {\n const MAX_LENGTH = MAX_BLENGTH >>> alignof();\n if (length >= MAX_LENGTH) throw new Error("Invalid array length");\n buffer = reallocateUnsafe(buffer, newLength << alignof());\n this.buffer_ = buffer;\n }\n this.length_ = newLength;\n STORE(buffer, length, element);\n if (isManaged()) __gc_link(changetype(this), changetype(element)); // tslint:disable-line\n return newLength;\n }\n\n concat(items: Array): Array {\n var thisLen = this.length_;\n var otherLen = select(0, items.length_, items === null);\n var outLen = thisLen + otherLen;\n var out = new Array(outLen);\n\n if (thisLen) {\n memory.copy(\n changetype(out.buffer_) + HEADER_SIZE,\n changetype(this.buffer_) + HEADER_SIZE,\n thisLen << alignof()\n );\n }\n if (otherLen) {\n memory.copy(\n changetype(out.buffer_) + HEADER_SIZE + (thisLen << alignof()),\n changetype(items.buffer_) + HEADER_SIZE,\n otherLen << alignof()\n );\n }\n return out;\n }\n\n copyWithin(target: i32, start: i32, end: i32 = i32.MAX_VALUE): this {\n var buffer = this.buffer_;\n var len = this.length_;\n\n end = min(end, len);\n var to = target < 0 ? max(len + target, 0) : min(target, len);\n var from = start < 0 ? max(len + start, 0) : min(start, len);\n var last = end < 0 ? max(len + end, 0) : min(end, len);\n var count = min(last - from, len - to);\n\n if (from < to && to < (from + count)) {\n from += count - 1;\n to += count - 1;\n while (count) {\n STORE(buffer, to, LOAD(buffer, from));\n --from, --to, --count;\n }\n } else {\n memory.copy(\n changetype(buffer) + HEADER_SIZE + (to << alignof()),\n changetype(buffer) + HEADER_SIZE + (from << alignof()),\n count << alignof()\n );\n }\n return this;\n }\n\n pop(): T {\n var length = this.length_;\n if (length < 1) throw new RangeError("Array is empty");\n var element = LOAD(this.buffer_, --length);\n this.length_ = length;\n return element;\n }\n\n forEach(callbackfn: (value: T, index: i32, array: Array) => void): void {\n for (let index = 0, length = this.length_; index < min(length, this.length_); ++index) {\n callbackfn(LOAD(this.buffer_, index), index, this);\n }\n }\n\n map(callbackfn: (value: T, index: i32, array: Array) => U): Array {\n var length = this.length_;\n var result = new Array(length);\n var buffer = result.buffer_;\n for (let index = 0; index < min(length, this.length_); ++index) {\n STORE(buffer, index, callbackfn(LOAD(this.buffer_, index), index, this));\n }\n return result;\n }\n\n filter(callbackfn: (value: T, index: i32, array: Array) => bool): Array {\n var result = new Array();\n for (let index = 0, length = this.length_; index < min(length, this.length_); ++index) {\n let value = LOAD(this.buffer_, index);\n if (callbackfn(value, index, this)) result.push(value);\n }\n return result;\n }\n\n reduce(\n callbackfn: (previousValue: U, currentValue: T, currentIndex: i32, array: Array) => U,\n initialValue: U\n ): U {\n var accum = initialValue;\n for (let index = 0, length = this.length_; index < min(length, this.length_); ++index) {\n accum = callbackfn(accum, LOAD(this.buffer_, index), index, this);\n }\n return accum;\n }\n\n reduceRight(\n callbackfn: (previousValue: U, currentValue: T, currentIndex: i32, array: Array) => U,\n initialValue: U\n ): U {\n var accum = initialValue;\n for (let index = this.length_ - 1; index >= 0; --index) {\n accum = callbackfn(accum, LOAD(this.buffer_, index), index, this);\n }\n return accum;\n }\n\n shift(): T {\n var length = this.length_;\n if (length < 1) throw new RangeError("Array is empty");\n var buffer = this.buffer_;\n var element = LOAD(buffer, 0);\n var lastIndex = length - 1;\n memory.copy(\n changetype(buffer) + HEADER_SIZE,\n changetype(buffer) + HEADER_SIZE + sizeof(),\n lastIndex << alignof()\n );\n STORE(buffer, lastIndex, null);\n this.length_ = lastIndex;\n return element;\n }\n\n some(callbackfn: (element: T, index: i32, array: Array) => bool): bool {\n for (let index = 0, length = this.length_; index < min(length, this.length_); ++index) {\n if (callbackfn(LOAD(this.buffer_, index), index, this)) return true;\n }\n return false;\n }\n\n unshift(element: T): i32 {\n var buffer = this.buffer_;\n var capacity = buffer.byteLength >>> alignof();\n var length = this.length_;\n var newLength = length + 1; // safe only if length is checked\n if (length >= capacity) {\n const MAX_LENGTH = MAX_BLENGTH >>> alignof();\n if (length >= MAX_LENGTH) throw new Error("Invalid array length");\n buffer = reallocateUnsafe(buffer, newLength << alignof());\n capacity = buffer.byteLength >>> alignof();\n this.buffer_ = buffer;\n }\n memory.copy(\n changetype(buffer) + HEADER_SIZE + sizeof(),\n changetype(buffer) + HEADER_SIZE,\n (capacity - 1) << alignof()\n );\n STORE(buffer, 0, element);\n this.length_ = newLength;\n if (isManaged()) __gc_link(changetype(this), changetype(element)); // tslint:disable-line\n return newLength;\n }\n\n slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Array {\n var len = this.length_;\n begin = begin < 0 ? max(begin + len, 0) : min(begin, len);\n end = end < 0 ? max(end + len, 0) : min(end, len);\n len = end - begin;\n var sliced = new Array(len);\n if (len) {\n memory.copy(\n changetype(sliced.buffer_) + HEADER_SIZE,\n changetype(this.buffer_) + HEADER_SIZE + (begin << alignof()),\n len << alignof()\n );\n }\n return sliced;\n }\n\n splice(start: i32, deleteCount: i32 = i32.MAX_VALUE): Array {\n var length = this.length_;\n start = start < 0 ? max(length + start, 0) : min(start, length);\n deleteCount = max(min(deleteCount, length - start), 0);\n var buffer = this.buffer_;\n var spliced = new Array(deleteCount);\n var source = changetype(buffer) + HEADER_SIZE + (start << alignof());\n memory.copy(\n changetype(spliced.buffer_) + HEADER_SIZE,\n source,\n deleteCount << alignof()\n );\n var offset = start + deleteCount;\n if (length != offset) {\n memory.copy(\n source,\n changetype(buffer) + HEADER_SIZE + (offset << alignof()),\n (length - offset) << alignof()\n );\n }\n this.length_ = length - deleteCount;\n return spliced;\n }\n\n reverse(): Array {\n var buffer = this.buffer_;\n for (let front = 0, back = this.length_ - 1; front < back; ++front, --back) {\n let temp = LOAD(buffer, front);\n STORE(buffer, front, LOAD(buffer, back));\n STORE(buffer, back, temp);\n }\n return this;\n }\n\n sort(comparator: (a: T, b: T) => i32 = COMPARATOR()): this {\n // TODO remove this when flow will allow trackcing null\n assert(comparator); // The comparison function must be a function\n\n var length = this.length_;\n if (length <= 1) return this;\n var buffer = this.buffer_;\n if (length == 2) {\n let a = LOAD(buffer, 1); // a = arr[1]\n let b = LOAD(buffer, 0); // b = arr[0]\n if (comparator(a, b) < 0) {\n STORE(buffer, 1, b); // arr[1] = b;\n STORE(buffer, 0, a); // arr[0] = a;\n }\n return this;\n }\n SORT(buffer, 0, length, comparator);\n return this;\n }\n\n join(separator: string = ","): string {\n var lastIndex = this.length_ - 1;\n if (lastIndex < 0) return "";\n var result = "";\n var value: T;\n var buffer = this.buffer_;\n var sepLen = separator.length;\n var hasSeparator = sepLen != 0;\n if (value instanceof bool) {\n if (!lastIndex) return select("true", "false", LOAD(buffer, 0));\n\n let valueLen = 5; // max possible length of element len("false")\n let estLen = (valueLen + sepLen) * lastIndex + valueLen;\n let result = allocateUnsafeString(estLen);\n let offset = 0;\n for (let i = 0; i < lastIndex; ++i) {\n value = LOAD(buffer, i);\n valueLen = 4 + (!value);\n copyUnsafeString(result, offset, select("true", "false", value), 0, valueLen);\n offset += valueLen;\n if (hasSeparator) {\n copyUnsafeString(result, offset, changetype(separator), 0, sepLen);\n offset += sepLen;\n }\n }\n value = LOAD(buffer, lastIndex);\n valueLen = 4 + (!value);\n copyUnsafeString(result, offset, select("true", "false", value), 0, valueLen);\n offset += valueLen;\n\n let out = result;\n if (estLen > offset) {\n out = result.substring(0, offset);\n freeUnsafeString(result);\n }\n return out;\n } else if (isInteger()) {\n if (!lastIndex) return changetype(itoa(LOAD(buffer, 0)));\n\n const valueLen = (sizeof() <= 4 ? 10 : 20) + isSigned();\n let estLen = (valueLen + sepLen) * lastIndex + valueLen;\n let result = allocateUnsafeString(estLen);\n let offset = 0;\n for (let i = 0; i < lastIndex; ++i) {\n value = LOAD(buffer, i);\n offset += itoa_stream(changetype(result), offset, value);\n if (hasSeparator) {\n copyUnsafeString(result, offset, separator, 0, sepLen);\n offset += sepLen;\n }\n }\n value = LOAD(buffer, lastIndex);\n offset += itoa_stream(changetype(result), offset, value);\n let out = result;\n if (estLen > offset) {\n out = result.substring(0, offset);\n freeUnsafeString(result);\n }\n return out;\n } else if (isFloat()) {\n if (!lastIndex) return changetype(dtoa(LOAD(buffer, 0)));\n\n const valueLen = MAX_DOUBLE_LENGTH;\n let estLen = (valueLen + sepLen) * lastIndex + valueLen;\n let result = allocateUnsafeString(estLen);\n let offset = 0;\n for (let i = 0; i < lastIndex; ++i) {\n value = LOAD(buffer, i);\n offset += dtoa_stream(changetype(result), offset, value);\n if (hasSeparator) {\n copyUnsafeString(result, offset, separator, 0, sepLen);\n offset += sepLen;\n }\n }\n value = LOAD(buffer, lastIndex);\n offset += dtoa_stream(changetype(result), offset, value);\n let out = result;\n if (estLen > offset) {\n out = result.substring(0, offset);\n freeUnsafeString(result);\n }\n return out;\n } else if (isString()) {\n if (!lastIndex) return LOAD(buffer, 0);\n\n let estLen = 0;\n for (let i = 0, len = lastIndex + 1; i < len; ++i) {\n estLen += LOAD(buffer, i).length;\n }\n let offset = 0;\n let result = allocateUnsafeString(estLen + sepLen * lastIndex);\n for (let i = 0; i < lastIndex; ++i) {\n value = LOAD(buffer, i);\n if (value) {\n let valueLen = value.length; // tslint:disable-line:no-unsafe-any\n copyUnsafeString(result, offset, value, 0, valueLen); // tslint:disable-line:no-unsafe-any\n offset += valueLen; // tslint:disable-line:no-unsafe-any\n }\n if (hasSeparator) {\n copyUnsafeString(result, offset, separator, 0, sepLen);\n offset += sepLen;\n }\n }\n value = LOAD(buffer, lastIndex);\n if (value) {\n let valueLen = value.length; // tslint:disable-line:no-unsafe-any\n copyUnsafeString(result, offset, value, 0, valueLen); // tslint:disable-line:no-unsafe-any\n }\n return result;\n } else if (isArray()) {\n if (!lastIndex) {\n value = LOAD(buffer, 0);\n return value ? value.join(separator) : ""; // tslint:disable-line:no-unsafe-any\n }\n for (let i = 0; i < lastIndex; ++i) {\n value = LOAD(buffer, i);\n if (value) result += value.join(separator); // tslint:disable-line:no-unsafe-any\n if (hasSeparator) result += separator;\n }\n value = LOAD(buffer, lastIndex);\n if (value) result += value.join(separator); // tslint:disable-line:no-unsafe-any\n return result;\n } else if (isReference()) { // References\n if (!lastIndex) return "[object Object]";\n const valueLen = 15; // max possible length of element len("[object Object]")\n let estLen = (valueLen + sepLen) * lastIndex + valueLen;\n let result = allocateUnsafeString(estLen);\n let offset = 0;\n for (let i = 0; i < lastIndex; ++i) {\n value = LOAD(buffer, i);\n if (value) {\n copyUnsafeString(result, offset, changetype("[object Object]"), 0, valueLen);\n offset += valueLen;\n }\n if (hasSeparator) {\n copyUnsafeString(result, offset, changetype(separator), 0, sepLen);\n offset += sepLen;\n }\n }\n if (LOAD(buffer, lastIndex)) {\n copyUnsafeString(result, offset, changetype("[object Object]"), 0, valueLen);\n offset += valueLen;\n }\n let out = result;\n if (estLen > offset) {\n out = result.substring(0, offset);\n freeUnsafeString(result);\n }\n return out;\n } else {\n assert(false); // Unsupported generic typename\n }\n }\n\n @inline\n toString(): string {\n return this.join();\n }\n\n private __gc(): void {\n var buffer = this.buffer_;\n __gc_mark(changetype(buffer)); // tslint:disable-line\n if (isManaged()) {\n let offset: usize = 0;\n let end = this.length_ << alignof();\n while (offset < end) {\n __gc_mark(load(changetype(buffer) + offset, HEADER_SIZE)); // tslint:disable-line\n offset += sizeof();\n }\n }\n }\n}\n',arraybuffer:'import {\n HEADER_SIZE,\n MAX_BLENGTH,\n allocateUnsafe\n} from "./internal/arraybuffer";\n\nimport {\n Uint8ClampedArray,\n Uint8Array,\n Int8Array,\n Uint16Array,\n Int16Array,\n Uint32Array,\n Int32Array,\n Uint64Array,\n Int64Array\n} from "./typedarray";\n\nimport {\n DataView\n} from "./dataview";\n\n@sealed\nexport class ArrayBuffer {\n\n readonly byteLength: i32; // capped to [0, MAX_LENGTH]\n\n @inline static isView(value: T): bool {\n if (value === null) return false;\n if (value instanceof Uint8ClampedArray) return true;\n if (value instanceof Uint8Array) return true;\n if (value instanceof Int8Array) return true;\n if (value instanceof Uint16Array) return true;\n if (value instanceof Int16Array) return true;\n if (value instanceof Uint32Array) return true;\n if (value instanceof Int32Array) return true;\n if (value instanceof Uint64Array) return true;\n if (value instanceof Int64Array) return true;\n if (value instanceof DataView) return true;\n return false;\n }\n\n // @unsafe\n @inline get data(): usize { return changetype(this) + HEADER_SIZE; }\n\n constructor(length: i32, unsafe: bool = false) {\n if (length > MAX_BLENGTH) throw new RangeError("Invalid array buffer length");\n var buffer = allocateUnsafe(length);\n if (!unsafe) memory.fill(changetype(buffer) + HEADER_SIZE, 0, length);\n return buffer;\n }\n\n slice(begin: i32 = 0, end: i32 = MAX_BLENGTH): ArrayBuffer {\n var len = this.byteLength;\n if (begin < 0) begin = max(len + begin, 0);\n else begin = min(begin, len);\n if (end < 0) end = max(len + end, 0);\n else end = min(end, len);\n var newLen = max(end - begin, 0);\n var buffer = allocateUnsafe(newLen);\n memory.copy(changetype(buffer) + HEADER_SIZE, changetype(this) + HEADER_SIZE + begin, newLen);\n return buffer;\n }\n\n toString(): string {\n return "[object ArrayBuffer]";\n }\n}\n',"bindings/Date":"export declare function UTC(\n // NOTE: Using i32 below saves us a f64.convert_s instruction and moves the responsibility for\n // converting the value to the WASM/JS boundary.\n year: i32,\n month: i32,\n day: i32,\n hour: i32,\n minute: i32,\n second: i32,\n millisecond: f64\n): f64;\nexport declare function now(): f64;\n","bindings/Math":"export declare const E: f64;\nexport declare const LN2: f64;\nexport declare const LN10: f64;\nexport declare const LOG2E: f64;\nexport declare const LOG10E: f64;\nexport declare const PI: f64;\nexport declare const SQRT1_2: f64;\nexport declare const SQRT2: f64;\n\nexport declare function abs(x: f64): f64;\nexport declare function acos(x: f64): f64;\nexport declare function acosh(x: f64): f64;\nexport declare function asin(x: f64): f64;\nexport declare function asinh(x: f64): f64;\nexport declare function atan(x: f64): f64;\nexport declare function atan2(y: f64, x: f64): f64;\nexport declare function atanh(x: f64): f64;\nexport declare function cbrt(x: f64): f64;\nexport declare function ceil(x: f64): f64;\nexport declare function clz32(x: f64): f64;\nexport declare function cos(x: f64): f64;\nexport declare function cosh(x: f64): f64;\nexport declare function exp(x: f64): f64;\nexport declare function expm1(x: f64): f64;\nexport declare function floor(x: f64): f64;\nexport declare function fround(x: f64): f32;\nexport declare function hypot(value1: f64, value2: f64): f64; // TODO: rest\nexport declare function imul(a: f64, b: f64): f64;\nexport declare function log(x: f64): f64;\nexport declare function log10(x: f64): f64;\nexport declare function log1p(x: f64): f64;\nexport declare function log2(x: f64): f64;\nexport declare function max(value1: f64, value2: f64): f64; // TODO: rest\nexport declare function min(value1: f64, value2: f64): f64; // TODO: rest\nexport declare function pow(base: f64, exponent: f64): f64;\nexport declare function random(): f64;\nexport declare function round(x: f64): f64;\nexport declare function sign(x: f64): f64;\nexport declare function sin(x: f64): f64;\nexport declare function sinh(x: f64): f64;\nexport declare function sqrt(x: f64): f64;\nexport declare function tan(x: f64): f64;\nexport declare function tanh(x: f64): f64;\nexport declare function trunc(x: f64): f64;\n",builtins:"/* tslint:disable */\n\n@builtin @inline export const NaN: f64 = 0 / 0;\n@builtin @inline export const Infinity: f64 = 1 / 0;\n\n@builtin export declare function isInteger(value?: T): bool;\n@builtin export declare function isFloat(value?: T): bool;\n@builtin export declare function isSigned(value?: T): bool;\n@builtin export declare function isReference(value?: T): bool;\n@builtin export declare function isString(value?: T): bool;\n@builtin export declare function isArray(value?: T): bool;\n@builtin export declare function isDefined(expression: void): bool;\n@builtin export declare function isConstant(expression: void): bool;\n@builtin export declare function isManaged(value?: T): bool;\n@inline export function isNaN(value: T): bool { return value != value; }\n@inline export function isFinite(value: T): bool { return value - value == 0; }\n\n@builtin export declare function clz(value: T): T;\n@builtin export declare function ctz(value: T): T;\n@builtin export declare function popcnt(value: T): T;\n@builtin export declare function rotl(value: T, shift: T): T;\n@builtin export declare function rotr(value: T, shift: T): T;\n@builtin export declare function abs(value: T): T;\n@builtin export declare function max(left: T, right: T): T;\n@builtin export declare function min(left: T, right: T): T;\n@builtin export declare function ceil(value: T): T;\n@builtin export declare function floor(value: T): T;\n@builtin export declare function copysign(left: T, right: T): T;\n@builtin export declare function nearest(value: T): T;\n@builtin export declare function reinterpret(value: void): T;\n@builtin export declare function sqrt(value: T): T;\n@builtin export declare function trunc(value: T): T;\n@builtin export declare function load(offset: usize, constantOffset?: usize): T;\n@builtin export declare function store(offset: usize, value: void, constantOffset?: usize): void;\n@builtin export declare function sizeof(): usize; // | u32 / u64\n@builtin export declare function alignof(): usize; // | u32 / u64\n@builtin export declare function offsetof(fieldName?: string): usize; // | u32 / u64\n@builtin export declare function select(ifTrue: T, ifFalse: T, condition: bool): T;\n@builtin export declare function unreachable(): void;\n@builtin export declare function changetype(value: void): T;\n@builtin export declare function assert(isTrueish: T, message?: string): T;\n@builtin export declare function unchecked(expr: T): T;\n@builtin export declare function call_indirect(target: void, ...args: void[]): T;\n@builtin export declare function instantiate(...args: void[]): T;\n\nexport namespace atomic {\n @builtin export declare function load(offset: usize, constantOffset?: usize): T;\n @builtin export declare function store(offset: usize, value: void, constantOffset?: usize): void;\n @builtin export declare function add(ptr: usize, value: T, constantOffset?: usize): T;\n @builtin export declare function sub(ptr: usize, value: T, constantOffset?: usize): T;\n @builtin export declare function and(ptr: usize, value: T, constantOffset?: usize): T;\n @builtin export declare function or(ptr: usize, value: T, constantOffset?: usize): T;\n @builtin export declare function xor(ptr: usize, value: T, constantOffset?: usize): T;\n @builtin export declare function xchg(ptr: usize, value: T, constantOffset?: usize): T;\n @builtin export declare function cmpxchg(ptr: usize, expected:T, replacement: T, constantOffset?: usize): T;\n @builtin export declare function wait(ptr: usize, expected:T, timeout:i64): i32;\n @builtin export declare function notify(ptr: usize, count: u32): u32;\n}\n\n@builtin export declare function i8(value: void): i8;\nexport namespace i8 {\n export const MIN_VALUE: i8 = -128;\n export const MAX_VALUE: i8 = 127;\n}\n\n@builtin export declare function i16(value: void): i16;\nexport namespace i16 {\n export const MIN_VALUE: i16 = -32768;\n export const MAX_VALUE: i16 = 32767;\n}\n\n@builtin export declare function i32(value: void): i32;\nexport namespace i32 {\n export const MIN_VALUE: i32 = -2147483648;\n export const MAX_VALUE: i32 = 2147483647;\n @builtin export declare function clz(value: i32): i32;\n @builtin export declare function ctz(value: i32): i32;\n @builtin export declare function popcnt(value: i32): i32;\n @builtin export declare function rotl(value: i32, shift: i32): i32;\n @builtin export declare function rotr(value: i32, shift: i32): i32;\n @builtin export declare function reinterpret_f32(value: f32): i32;\n @builtin export declare function load8_s(offset: usize, constantOffset?: usize): i32;\n @builtin export declare function load8_u(offset: usize, constantOffset?: usize): i32;\n @builtin export declare function load16_s(offset: usize, constantOffset?: usize): i32;\n @builtin export declare function load16_u(offset: usize, constantOffset?: usize): i32;\n @builtin export declare function load(offset: usize, constantOffset?: usize): i32;\n @builtin export declare function store8(offset: usize, value: i32, constantOffset?: usize): void;\n @builtin export declare function store16(offset: usize, value: i32, constantOffset?: usize): void;\n @builtin export declare function store(offset: usize, value: i32, constantOffset?: usize): void;\n \n export namespace atomic {\n @builtin export declare function load8_s(offset: usize, constantOffset?: usize): i32;\n @builtin export declare function load8_u(offset: usize, constantOffset?: usize): i32;\n @builtin export declare function load16_s(offset: usize, constantOffset?: usize): i32;\n @builtin export declare function load16_u(offset: usize, constantOffset?: usize): i32;\n @builtin export declare function load(offset: usize, constantOffset?: usize): i32;\n @builtin export declare function store8(offset: usize, value: i32, constantOffset?: usize): void;\n @builtin export declare function store16(offset: usize, value: i32, constantOffset?: usize): void;\n @builtin export declare function store(offset: usize, value: i32, constantOffset?: usize): void;\n @builtin export declare function wait(ptr: usize, expected:i32, timeout:i64): i32;\n @builtin export declare function notify(ptr: usize, count:u32): u32;\n\n export namespace rmw8_u {\n @builtin export declare function add(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function sub(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function and(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function or(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function xor(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function xchg(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function cmpxchg(offset: usize, expected:i32, replacement: i32, constantOffset?: usize): i32;\n }\n\n export namespace rmw16_u {\n @builtin export declare function add(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function sub(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function and(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function or(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function xor(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function xchg(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function cmpxchg(offset: usize, expected:i32, replacement: i32, constantOffset?: usize): i32;\n }\n\n export namespace rmw {\n @builtin export declare function add(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function sub(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function and(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function or(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function xor(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function xchg(offset: usize, value: i32, constantOffset?: usize): i32;\n @builtin export declare function cmpxchg(offset: usize, expected:i32, replacement: i32, constantOffset?: usize): i32;\n }\n }\n}\n\n@builtin export declare function i64(value: void): i64;\nexport namespace i64 {\n export const MIN_VALUE: i64 = -9223372036854775808;\n export const MAX_VALUE: i64 = 9223372036854775807;\n @builtin export declare function clz(value: i64): i64;\n @builtin export declare function ctz(value: i64): i64;\n @builtin export declare function load8_s(offset: usize, constantOffset?: usize): i64;\n @builtin export declare function load8_u(offset: usize, constantOffset?: usize): u64;\n @builtin export declare function load16_s(offset: usize, constantOffset?: usize): i64;\n @builtin export declare function load16_u(offset: usize, constantOffset?: usize): u64;\n @builtin export declare function load32_s(offset: usize, constantOffset?: usize): i64;\n @builtin export declare function load32_u(offset: usize, constantOffset?: usize): u64;\n @builtin export declare function load(offset: usize, constantOffset?: usize): i64;\n @builtin export declare function popcnt(value: i64): i64;\n @builtin export declare function rotl(value: i64, shift: i64): i64;\n @builtin export declare function rotr(value: i64, shift: i64): i64;\n @builtin export declare function reinterpret_f64(value: f64): i64;\n @builtin export declare function store8(offset: usize, value: i64, constantOffset?: usize): void;\n @builtin export declare function store16(offset: usize, value: i64, constantOffset?: usize): void;\n @builtin export declare function store32(offset: usize, value: i64, constantOffset?: usize): void;\n @builtin export declare function store(offset: usize, value: i64, constantOffset?: usize): void;\n\n namespace atomic {\n @builtin export declare function load8_s(offset: usize, constantOffset?: usize): i64;\n @builtin export declare function load8_u(offset: usize, constantOffset?: usize): i64;\n @builtin export declare function load16_s(offset: usize, constantOffset?: usize): i64;\n @builtin export declare function load16_u(offset: usize, constantOffset?: usize): i64;\n @builtin export declare function load(offset: usize, constantOffset?: usize): i64;\n @builtin export declare function store8(offset: usize, value: i64, constantOffset?: usize): void;\n @builtin export declare function store16(offset: usize, value: i64, constantOffset?: usize): void;\n @builtin export declare function store(offset: usize, value: i64, constantOffset?: usize): void;\n @builtin export declare function wait(ptr: usize, expected:i64, timeout:i64): i32;\n @builtin export declare function notify(ptr: usize, count:u32): u32;\n\n export namespace rmw8_u {\n @builtin export declare function add(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function sub(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function and(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function or(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function xor(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function xchg(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function cmpxchg(offset: usize, expected:i64, replacement: i64, constantOffset?: usize): i64;\n }\n\n export namespace rmw16_u {\n @builtin export declare function add(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function sub(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function and(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function or(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function xor(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function xchg(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function cmpxchg(offset: usize, expected:i64, replacement: i64, constantOffset?: usize): i64;\n }\n\n export namespace rmw32_u {\n @builtin export declare function add(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function sub(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function and(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function or(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function xor(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function xchg(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function cmpxchg(offset: usize, expected:i64, replacement: i64, constantOffset?: usize): i64;\n }\n\n export namespace rmw {\n @builtin export declare function add(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function sub(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function and(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function or(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function xor(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function xchg(offset: usize, value: i64, constantOffset?: usize): i64;\n @builtin export declare function cmpxchg(offset: usize, expected:i64, replacement: i64, constantOffset?: usize): i64;\n }\n } \n}\n\n@builtin export declare function isize(value: void): isize;\nexport namespace isize {\n export const MIN_VALUE: isize = sizeof() == sizeof()\n ? -2147483648\n : -9223372036854775808;\n export const MAX_VALUE: isize = sizeof() == sizeof()\n ? 2147483647\n : 9223372036854775807;\n}\n\n@builtin export declare function u8(value: void): u8;\nexport namespace u8 {\n export const MIN_VALUE: u8 = 0;\n export const MAX_VALUE: u8 = 255;\n}\n\n@builtin export declare function u16(value: void): u16;\nexport namespace u16 {\n export const MIN_VALUE: u16 = 0;\n export const MAX_VALUE: u16 = 65535;\n}\n\n@builtin export declare function u32(value: void): u32;\nexport namespace u32 {\n export const MIN_VALUE: u32 = 0;\n export const MAX_VALUE: u32 = 4294967295;\n}\n\n@builtin export declare function u64(value: void): u64;\nexport namespace u64 {\n export const MIN_VALUE: u64 = 0;\n export const MAX_VALUE: u64 = 18446744073709551615;\n}\n\n@builtin export declare function usize(value: void): usize;\nexport namespace usize {\n export const MIN_VALUE: usize = 0;\n export const MAX_VALUE: usize = sizeof() == sizeof()\n ? 4294967295\n : 18446744073709551615;\n}\n\n@builtin export declare function bool(value: void): bool;\nexport namespace bool {\n export const MIN_VALUE: bool = false;\n export const MAX_VALUE: bool = true;\n}\n\n@builtin export declare function f32(value: void): f32;\nexport namespace f32 {\n export const EPSILON = reinterpret(0x34000000); // 0x1p-23f\n export const MIN_VALUE = reinterpret(0x00000001); // 0x0.000001p+0f\n export const MAX_VALUE = reinterpret(0x7F7FFFFF); // 0x1.fffffep+127f\n export const MIN_NORMAL_VALUE = reinterpret(0x00800000); // 0x1p-126f\n export const MIN_SAFE_INTEGER: f32 = -16777215;\n export const MAX_SAFE_INTEGER: f32 = 16777215;\n @builtin export declare function abs(value: f32): f32;\n @builtin export declare function ceil(value: f32): f32;\n @builtin export declare function copysign(x: f32, y: f32): f32;\n @builtin export declare function floor(value: f32): f32;\n @builtin export declare function load(offset: usize, constantOffset?: usize): f32;\n @builtin export declare function max(left: f32, right: f32): f32;\n @builtin export declare function min(left: f32, right: f32): f32;\n @builtin export declare function nearest(value: f32): f32;\n @builtin export declare function reinterpret_i32(value: i32): f32;\n @builtin export declare function sqrt(value: f32): f32;\n @builtin export declare function store(offset: usize, value: f32, constantOffset?: usize): void;\n @builtin export declare function trunc(value: f32): f32;\n}\n\n@builtin export declare function f64(value: void): f64;\nexport namespace f64 {\n export const EPSILON = reinterpret(0x3CB0000000000000); // 0x1p-52\n export const MIN_VALUE = reinterpret(0x0000000000000001); // 0x0.0000000000001p+0\n export const MAX_VALUE = reinterpret(0x7FEFFFFFFFFFFFFF); // 0x1.fffffffffffffp+1023\n export const MIN_NORMAL_VALUE = reinterpret(0x0010000000000000); // 0x1p-1022\n export const MIN_SAFE_INTEGER: f64 = -9007199254740991;\n export const MAX_SAFE_INTEGER: f64 = 9007199254740991;\n @builtin export declare function abs(value: f64): f64;\n @builtin export declare function ceil(value: f64): f64;\n @builtin export declare function copysign(x: f64, y: f64): f64;\n @builtin export declare function floor(value: f64): f64;\n @builtin export declare function load(offset: usize, constantOffset?: usize): f64;\n @builtin export declare function max(left: f64, right: f64): f64;\n @builtin export declare function min(left: f64, right: f64): f64;\n @builtin export declare function nearest(value: f64): f64;\n @builtin export declare function reinterpret_i64(value: i64): f64;\n @builtin export declare function sqrt(value: f64): f64;\n @builtin export declare function store(offset: usize, value: f64, constantOffset?: usize): void;\n @builtin export declare function trunc(value: f64): f64;\n}\n\n@builtin export declare function start(): void;\n\n@builtin export function NATIVE_CODE(): void { unreachable(); }\n","collector/itcm":'/**\n * Incremental Tri-Color-Marking Garbage Collector.\n *\n * @module std/assembly/collector/itcm\n *//***/\n\n// Largely based on Bach Le\'s μgc, see: https://github.com/bullno1/ugc\n\nconst TRACE = false;\n\n/** Size of a managed object header. */\nexport const HEADER_SIZE: usize = (offsetof() + AL_MASK) & ~AL_MASK;\n\nimport { AL_MASK, MAX_SIZE_32 } from "../internal/allocator";\nimport { iterateRoots } from "../gc";\n\n/** Collector states. */\nconst enum State {\n /** Not yet initialized. */\n INIT = 0,\n /** Currently transitioning from SWEEP to MARK state. */\n IDLE = 1,\n /** Currently marking reachable objects. */\n MARK = 2,\n /** Currently sweeping unreachable objects. */\n SWEEP = 3\n}\n\n/** Current collector state. */\nvar state = State.INIT;\n/** Current white color value. */\nvar white = 0;\n\n// From and to spaces\nvar fromSpace: ManagedObjectList;\nvar toSpace: ManagedObjectList;\nvar iter: ManagedObject;\n\n// ╒═══════════════ Managed object layout (32-bit) ════════════════╕\n// 3 2 1\n// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 bits\n// ├─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┼─┼─┴─┤ ┐\n// │ next │0│ C │ ◄─┐ = nextWithColor\n// ├─────────────────────────────────────────────────────────┴─┴───┤ │ usize\n// │ prev │ ◄─┘\n// ├───────────────────────────────────────────────────────────────┤\n// │ hookFn │\n// ╞═══════════════════════════════════════════════════════════════╡ SIZE ┘ ◄─ user-space reference\n// │ ... data ... │\n// └───────────────────────────────────────────────────────────────┘\n// C: color\n\n/** Represents a managed object in memory, consisting of a header followed by the object\'s data. */\n@unmanaged class ManagedObject {\n\n /** Pointer to the next object with color flags stored in the alignment bits. */\n nextWithColor: usize;\n\n /** Pointer to the previous object. */\n prev: ManagedObject;\n\n /** Class-specific hook function called with the user-space reference. */\n hookFn: (ref: usize) => void;\n\n /** Gets the pointer to the next object. */\n get next(): ManagedObject {\n return changetype(this.nextWithColor & ~3);\n }\n\n /** Sets the pointer to the next object. */\n set next(obj: ManagedObject) {\n this.nextWithColor = changetype(obj) | (this.nextWithColor & 3);\n }\n\n /** Gets this object\'s color. */\n get color(): i32 {\n return this.nextWithColor & 3;\n }\n\n /** Sets this object\'s color. */\n set color(color: i32) {\n this.nextWithColor = (this.nextWithColor & ~3) | color;\n }\n\n /** Unlinks this object from its list. */\n unlink(): void {\n var next = this.next;\n var prev = this.prev;\n if (TRACE) trace(" unlink", 3, objToRef(prev), objToRef(this), objToRef(next));\n next.prev = prev;\n prev.next = next;\n }\n\n /** Marks this object as gray, that is reachable with unscanned children. */\n makeGray(): void {\n if (TRACE) trace(" makeGray", 1, objToRef(this));\n const gray = 2;\n if (this == iter) iter = this.prev;\n this.unlink();\n toSpace.push(this);\n this.nextWithColor = (this.nextWithColor & ~3) | gray;\n }\n}\n\n/** A list of managed objects. Used for the from and to spaces. */\n@unmanaged class ManagedObjectList extends ManagedObject {\n\n /** Inserts an object. */\n push(obj: ManagedObject): void {\n var prev = this.prev;\n if (TRACE) trace(" push", 3, objToRef(prev), objToRef(obj), objToRef(this));\n obj.next = this;\n obj.prev = prev;\n prev.next = obj;\n this.prev = obj;\n }\n\n /** Clears this list. */\n clear(): void {\n if (TRACE) trace(" clear", 1, objToRef(this));\n this.nextWithColor = changetype(this);\n this.prev = this;\n }\n}\n\n/** Performs a single step according to the current state. */\nfunction step(): void {\n var obj: ManagedObject;\n switch (state) {\n case State.INIT: {\n if (TRACE) trace("gc~step/INIT");\n fromSpace = changetype(memory.allocate(HEADER_SIZE));\n fromSpace.hookFn = changetype<(ref: usize) => void>(-1); // would error\n fromSpace.clear();\n toSpace = changetype(memory.allocate(HEADER_SIZE));\n toSpace.hookFn = changetype<(ref: usize) => void>(-1); // would error\n toSpace.clear();\n iter = toSpace;\n state = State.IDLE;\n if (TRACE) trace("gc~state = IDLE");\n // fall-through\n }\n case State.IDLE: {\n if (TRACE) trace("gc~step/IDLE");\n iterateRoots(__gc_mark);\n state = State.MARK;\n if (TRACE) trace("gc~state = MARK");\n break;\n }\n case State.MARK: {\n obj = iter.next;\n if (obj !== toSpace) {\n if (TRACE) trace("gc~step/MARK iterate", 1, objToRef(obj));\n iter = obj;\n obj.color = !white;\n // if (TRACE) {\n // trace(" next/prev/hook", 3,\n // changetype(obj.next),\n // changetype(obj.prev),\n // changetype(obj.hookFn)\n // );\n // }\n obj.hookFn(objToRef(obj));\n } else {\n if (TRACE) trace("gc~step/MARK finish");\n iterateRoots(__gc_mark);\n obj = iter.next;\n if (obj === toSpace) {\n let from = fromSpace;\n fromSpace = toSpace;\n toSpace = from;\n white = !white;\n iter = from.next;\n state = State.SWEEP;\n if (TRACE) trace("gc~state = SWEEP");\n }\n }\n break;\n }\n case State.SWEEP: {\n obj = iter;\n if (obj !== toSpace) {\n if (TRACE) trace("gc~step/SWEEP free", 1, objToRef(obj));\n iter = obj.next;\n if (changetype(obj) >= HEAP_BASE) memory.free(changetype(obj));\n } else {\n if (TRACE) trace("gc~step/SWEEP finish");\n toSpace.clear();\n state = State.IDLE;\n if (TRACE) trace("gc~state = IDLE");\n }\n break;\n }\n }\n}\n\n@inline function refToObj(ref: usize): ManagedObject {\n return changetype(ref - HEADER_SIZE);\n}\n\n@inline function objToRef(obj: ManagedObject): usize {\n return changetype(obj) + HEADER_SIZE;\n}\n\n// Garbage collector interface\n\n@global export function __gc_allocate(\n size: usize,\n markFn: (ref: usize) => void\n): usize {\n if (TRACE) trace("gc.allocate", 1, size);\n if (size > MAX_SIZE_32 - HEADER_SIZE) unreachable();\n step(); // also makes sure it\'s initialized\n var obj = changetype(memory.allocate(HEADER_SIZE + size));\n obj.hookFn = markFn;\n obj.color = white;\n fromSpace.push(obj);\n return objToRef(obj);\n}\n\n@global export function __gc_link(parentRef: usize, childRef: usize): void {\n if (TRACE) trace("gc.link", 2, parentRef, childRef);\n var parent = refToObj(parentRef);\n if (parent.color == !white && refToObj(childRef).color == white) parent.makeGray();\n}\n\n@global export function __gc_mark(ref: usize): void {\n if (TRACE) trace("gc.mark", 1, ref);\n if (ref) {\n let obj = refToObj(ref);\n if (obj.color == white) obj.makeGray();\n }\n}\n\n@global export function __gc_collect(): void {\n if (TRACE) trace("gc.collect");\n // begin collecting if not yet collecting\n switch (state) {\n case State.INIT:\n case State.IDLE: step();\n }\n // finish the cycle\n while (state != State.IDLE) step();\n}\n',dataview:'import {\n HEADER_SIZE,\n MAX_BLENGTH\n} from "./internal/arraybuffer";\n\nexport class DataView {\n\n constructor(\n readonly buffer: ArrayBuffer,\n readonly byteOffset: i32 = 0,\n readonly byteLength: i32 = i32.MIN_VALUE // FIXME\n ) {\n if (byteLength === i32.MIN_VALUE) byteLength = buffer.byteLength - byteOffset; // FIXME\n if (byteOffset > MAX_BLENGTH) throw new RangeError("Invalid byteOffset");\n if (byteLength > MAX_BLENGTH) throw new RangeError("Invalid byteLength");\n if (byteOffset + byteLength > buffer.byteLength) throw new RangeError("Invalid length");\n }\n\n getFloat32(byteOffset: i32, littleEndian: boolean = false): f32 {\n checkOffset(byteOffset, 4, this.byteLength);\n return littleEndian\n ? load(changetype(this.buffer) + this.byteOffset + byteOffset, HEADER_SIZE)\n : reinterpret(\n bswap(\n load(changetype(this.buffer) + this.byteOffset + byteOffset, HEADER_SIZE)\n )\n );\n }\n\n getFloat64(byteOffset: i32, littleEndian: boolean = false): f64 {\n checkOffset(byteOffset, 8, this.byteLength);\n return littleEndian\n ? load(changetype(this.buffer) + this.byteOffset + byteOffset, HEADER_SIZE)\n : reinterpret(\n bswap(\n load(changetype(this.buffer) + this.byteOffset + byteOffset, HEADER_SIZE)\n )\n );\n }\n\n getInt8(byteOffset: i32): i8 {\n checkOffset(byteOffset, 1, this.byteLength);\n return load(changetype(this.buffer) + this.byteOffset + byteOffset, HEADER_SIZE);\n }\n\n getInt16(byteOffset: i32, littleEndian: boolean = false): i16 {\n checkOffset(byteOffset, 2, this.byteLength);\n var result: i16 = load(changetype(this.buffer) + this.byteOffset + byteOffset, HEADER_SIZE);\n return littleEndian ? result : bswap(result);\n }\n\n getInt32(byteOffset: i32, littleEndian: boolean = false): i32 {\n checkOffset(byteOffset, 4, this.byteLength);\n var result = load(changetype(this.buffer) + this.byteOffset + byteOffset, HEADER_SIZE);\n return littleEndian ? result : bswap(result);\n }\n\n getUint8(byteOffset: i32): u8 {\n checkOffset(byteOffset, 1, this.byteLength);\n return load(changetype(this.buffer) + this.byteOffset + byteOffset, HEADER_SIZE);\n }\n\n getUint16(byteOffset: i32, littleEndian: boolean = false): u16 {\n checkOffset(byteOffset, 2, this.byteLength);\n var result: u16 = load(changetype(this.buffer) + this.byteOffset + byteOffset, HEADER_SIZE);\n return littleEndian ? result : bswap(result);\n }\n\n getUint32(byteOffset: i32, littleEndian: boolean = false): u32 {\n checkOffset(byteOffset, 4, this.byteLength);\n var result = load(changetype(this.buffer) + this.byteOffset + byteOffset, HEADER_SIZE);\n return littleEndian ? result : bswap(result);\n }\n\n setFloat32(byteOffset: i32, value: f32, littleEndian: boolean = false): void {\n checkOffset(byteOffset, 4, this.byteLength);\n if (littleEndian) {\n store(changetype(this.buffer) + this.byteOffset + byteOffset, value, HEADER_SIZE);\n } else {\n store(changetype(this.buffer) + this.byteOffset + byteOffset,\n bswap(\n reinterpret(value)\n ),\n HEADER_SIZE\n );\n }\n }\n\n setFloat64(byteOffset: i32, value: f64, littleEndian: boolean = false): void {\n checkOffset(byteOffset, 8, this.byteLength);\n if (littleEndian) {\n store(changetype(this.buffer) + this.byteOffset + byteOffset, value, HEADER_SIZE);\n } else {\n store(changetype(this.buffer) + this.byteOffset + byteOffset,\n bswap(\n reinterpret(value)\n ),\n HEADER_SIZE\n );\n }\n }\n\n setInt8(byteOffset: i32, value: i8): void {\n checkOffset(byteOffset, 1, this.byteLength);\n store(changetype(this.buffer) + this.byteOffset + byteOffset, value, HEADER_SIZE);\n }\n\n setInt16(byteOffset: i32, value: i16, littleEndian: boolean = false): void {\n checkOffset(byteOffset, 2, this.byteLength);\n store(\n changetype(this.buffer) + this.byteOffset + byteOffset,\n littleEndian ? value : bswap(value),\n HEADER_SIZE\n );\n }\n\n setInt32(byteOffset: i32, value: i32, littleEndian: boolean = false): void {\n checkOffset(byteOffset, 4, this.byteLength);\n store(\n changetype(this.buffer) + this.byteOffset + byteOffset,\n littleEndian ? value : bswap(value),\n HEADER_SIZE\n );\n }\n\n setUint8(byteOffset: i32, value: u8): void {\n checkOffset(byteOffset, 1, this.byteLength);\n store(changetype(this.buffer) + this.byteOffset + byteOffset, value, HEADER_SIZE);\n }\n\n setUint16(byteOffset: i32, value: u16, littleEndian: boolean = false): void {\n checkOffset(byteOffset, 2, this.byteLength);\n store(\n changetype(this.buffer) + this.byteOffset + byteOffset,\n littleEndian ? value : bswap(value),\n HEADER_SIZE\n );\n }\n\n setUint32(byteOffset: i32, value: u32, littleEndian: boolean = false): void {\n checkOffset(byteOffset, 4, this.byteLength);\n store(\n changetype(this.buffer) + this.byteOffset + byteOffset,\n littleEndian ? value : bswap(value),\n HEADER_SIZE\n );\n }\n\n // Non-standard additions that make sense in WebAssembly, but won\'t work in JS:\n\n getInt64(byteOffset: i32, littleEndian: boolean = false): i64 {\n checkOffset(byteOffset, 8, this.byteLength);\n var result = load(changetype(this.buffer) + this.byteOffset + byteOffset, HEADER_SIZE);\n return littleEndian ? result : bswap(result);\n }\n\n getUint64(byteOffset: i32, littleEndian: boolean = false): u64 {\n checkOffset(byteOffset, 8, this.byteLength);\n var result = load(changetype(this.buffer) + this.byteOffset + byteOffset, HEADER_SIZE);\n return littleEndian ? result : bswap(result);\n }\n\n setInt64(byteOffset: i32, value: i64, littleEndian: boolean = false): void {\n checkOffset(byteOffset, 8, this.byteLength);\n store(\n changetype(this.buffer) + this.byteOffset + byteOffset,\n littleEndian ? value : bswap(value),\n HEADER_SIZE\n );\n }\n\n setUint64(byteOffset: i32, value: u64, littleEndian: boolean = false): void {\n checkOffset(byteOffset, 8, this.byteLength);\n store(\n changetype(this.buffer) + this.byteOffset + byteOffset,\n littleEndian ? value : bswap(value),\n HEADER_SIZE\n );\n }\n\n toString(): string {\n return "[object DataView]";\n }\n}\n\n@inline function checkOffset(byteOffset: i32, n: i32, byteLength: i32): void {\n // n and byteLength must be known to be in bounds\n if (byteOffset > MAX_BLENGTH || byteOffset + n > byteLength) throw new Error("Offset out of bounds");\n}\n',date:'import {\n UTC as Date_UTC,\n now as Date_now\n} from "./bindings/Date";\n\nexport class Date {\n\n @inline static UTC(\n year: i32,\n month: i32 = 0,\n day: i32 = 1,\n hour: i32 = 0,\n minute: i32 = 0,\n second: i32 = 0,\n millisecond: i64 = 0\n ): i64 {\n return Date_UTC(year, month, day, hour, minute, second, millisecond);\n }\n\n @inline static now(): i64 {\n return Date_now();\n }\n\n private value: i64;\n\n constructor(value: i64) {\n this.value = value;\n }\n\n getTime(): i64 {\n return this.value;\n }\n\n setTime(value: i64): i64 {\n this.value = value;\n return value;\n }\n}\n',diagnostics:"/* tslint:disable */\n\n@builtin export declare function ERROR(message?: void): void;\n@builtin export declare function WARNING(message?: void): void;\n@builtin export declare function INFO(message?: void): void;\n",env:"declare function abort(\n message?: string | null,\n fileName?: string | null,\n lineNumber?: u32,\n columnNumber?: u32\n): void;\n\ndeclare function trace(\n message: string,\n n?: i32,\n a0?: f64,\n a1?: f64,\n a2?: f64,\n a3?: f64,\n a4?: f64\n): void;\n",error:'export class Error {\n\n name: string = "Error";\n stack: string = ""; // TODO\n\n constructor(\n public message: string = ""\n ) {}\n\n toString(): string {\n var message = this.message;\n return message.length\n ? this.name + ": " + message\n : this.name;\n }\n}\n\nexport class RangeError extends Error {\n constructor(message: string = "") {\n super(message);\n this.name = "RangeError";\n }\n}\n\nexport class TypeError extends Error {\n constructor(message: string = "") {\n super(message);\n this.name = "TypeError";\n }\n}\n\nexport class SyntaxError extends Error {\n constructor(message: string = "") {\n super(message);\n this.name = "SyntaxError";\n }\n}\n',gc:"/* tslint:disable */\n\n@builtin export declare function iterateRoots(fn: (ref: usize) => void): void;\n\nexport namespace gc {\n\n export function collect(): void {\n if (isDefined(__gc_collect)) { __gc_collect(); return; }\n WARNING(\"Calling 'gc.collect' requires a garbage collector to be present.\");\n unreachable();\n }\n}\n","internal/allocator":"/** Number of alignment bits. */\nexport const AL_BITS: u32 = 3;\n/** Number of possible alignment values. */\nexport const AL_SIZE: usize = 1 << AL_BITS;\n/** Mask to obtain just the alignment bits. */\nexport const AL_MASK: usize = AL_SIZE - 1;\n/** Maximum 32-bit allocation size. */\nexport const MAX_SIZE_32: usize = 1 << 30; // 1GB\n","internal/arraybuffer":'import {\n AL_MASK,\n MAX_SIZE_32\n } from "./allocator";\n\n/** Size of an ArrayBuffer header. */\nexport const HEADER_SIZE: usize = (offsetof() + AL_MASK) & ~AL_MASK;\n/** Maximum byte length of an ArrayBuffer. */\nexport const MAX_BLENGTH: i32 = MAX_SIZE_32 - HEADER_SIZE;\n\nfunction computeSize(byteLength: i32): usize {\n // round up to power of 2, with HEADER_SIZE=8:\n // 0 -> 2^3 = 8\n // 1..8 -> 2^4 = 16\n // 9..24 -> 2^5 = 32\n // ...\n // MAX_LENGTH -> 2^30 = 0x40000000 (MAX_SIZE_32)\n return 1 << (32 - clz(byteLength + HEADER_SIZE - 1));\n}\n\n// Low-level utility\n\nfunction __gc(ref: usize): void {}\n\nexport function allocateUnsafe(byteLength: i32): ArrayBuffer {\n assert(byteLength <= MAX_BLENGTH);\n var buffer: usize;\n if (isManaged()) {\n buffer = __gc_allocate(computeSize(byteLength), __gc); // tslint:disable-line\n } else {\n buffer = memory.allocate(computeSize(byteLength));\n }\n store(buffer, byteLength, offsetof("byteLength"));\n return changetype(buffer);\n}\n\nexport function reallocateUnsafe(buffer: ArrayBuffer, newByteLength: i32): ArrayBuffer {\n var oldByteLength = buffer.byteLength;\n if (newByteLength > oldByteLength) {\n assert(newByteLength <= MAX_BLENGTH);\n if (newByteLength <= (computeSize(oldByteLength) - HEADER_SIZE)) { // fast path: zero out additional space\n store(changetype(buffer), newByteLength, offsetof("byteLength"));\n } else { // slow path: copy to new buffer\n let newBuffer = allocateUnsafe(newByteLength);\n memory.copy(\n changetype(newBuffer) + HEADER_SIZE,\n changetype(buffer) + HEADER_SIZE,\n oldByteLength\n );\n if (!isManaged()) {\n memory.free(changetype(buffer));\n }\n buffer = newBuffer;\n }\n memory.fill(\n changetype(buffer) + HEADER_SIZE + oldByteLength,\n 0,\n (newByteLength - oldByteLength)\n );\n } else if (newByteLength < oldByteLength) { // fast path: override size\n // TBD: worth to copy and release if size is significantly less than before?\n assert(newByteLength >= 0);\n store(changetype(buffer), newByteLength, offsetof("byteLength"));\n }\n return buffer;\n}\n\n// The helpers below use two different types in order to emit loads and stores that load respectively\n// store one type to/from memory while returning/taking the desired output/input type. This allows to\n// emit instructions like\n//\n// * `i32.load8` ^= `load(...)` that reads an i8 but returns an i32, or\n// * `i64.load32_s` ^= `load(...)`) that reads a 32-bit as a 64-bit integer\n//\n// without having to emit an additional instruction for conversion purposes. The second parameter\n// can be omitted for references and other loads and stores that simply return the exact type.\n\n@inline export function LOAD(buffer: ArrayBuffer, index: i32, byteOffset: i32 = 0): TOut {\n return load(changetype(buffer) + (index << alignof()) + byteOffset, HEADER_SIZE);\n}\n\n@inline export function STORE(buffer: ArrayBuffer, index: i32, value: TIn, byteOffset: i32 = 0): void {\n store(changetype(buffer) + (index << alignof()) + byteOffset, value, HEADER_SIZE);\n}\n',"internal/hash":'import {\n HEADER_SIZE\n} from "./string";\n\n/** Computes the 32-bit hash of a value of any type. */\n@inline\nexport function HASH(key: T): u32 {\n // branch-level tree-shaking makes this a `(return (call ...))`\n if (isString(key)) {\n return hashStr(key);\n } else if (isReference()) {\n if (sizeof() == 4) return hash32(changetype(key));\n if (sizeof() == 8) return hash64(changetype(key));\n } else if (isFloat()) {\n if (sizeof() == 4) return hash32(reinterpret(key));\n if (sizeof() == 8) return hash64(reinterpret(key));\n } else {\n if (sizeof() == 1) return hash8 (key);\n if (sizeof() == 2) return hash16(key);\n if (sizeof() == 4) return hash32(key);\n if (sizeof() == 8) return hash64(key);\n }\n unreachable();\n}\n\n// FNV-1a 32-bit as a starting point, see: http://isthe.com/chongo/tech/comp/fnv/\n\nconst FNV_OFFSET: u32 = 2166136261;\nconst FNV_PRIME: u32 = 16777619;\n\nfunction hash8(key: u32): u32 {\n return (FNV_OFFSET ^ key) * FNV_PRIME;\n}\n\nfunction hash16(key: u32): u32 {\n var v = FNV_OFFSET;\n v = (v ^ ( key & 0xff)) * FNV_PRIME;\n v = (v ^ ( key >> 8 )) * FNV_PRIME;\n return v;\n}\n\nfunction hash32(key: u32): u32 {\n var v = FNV_OFFSET;\n v = (v ^ ( key & 0xff)) * FNV_PRIME;\n v = (v ^ ((key >> 8) & 0xff)) * FNV_PRIME;\n v = (v ^ ((key >> 16) & 0xff)) * FNV_PRIME;\n v = (v ^ ( key >> 24 )) * FNV_PRIME;\n return v;\n}\n\nfunction hash64(key: u64): u32 {\n var l = key;\n var h = (key >>> 32);\n var v = FNV_OFFSET;\n v = (v ^ ( l & 0xff)) * FNV_PRIME;\n v = (v ^ ((l >> 8) & 0xff)) * FNV_PRIME;\n v = (v ^ ((l >> 16) & 0xff)) * FNV_PRIME;\n v = (v ^ ( l >> 24 )) * FNV_PRIME;\n v = (v ^ ( h & 0xff)) * FNV_PRIME;\n v = (v ^ ((h >> 8) & 0xff)) * FNV_PRIME;\n v = (v ^ ((h >> 16) & 0xff)) * FNV_PRIME;\n v = (v ^ ( h >> 24 )) * FNV_PRIME;\n return v;\n}\n\nfunction hashStr(key: string): u32 {\n var v = FNV_OFFSET;\n for (let i: usize = 0, k: usize = key.length << 1; i < k; ++i) {\n v = (v ^ load(changetype(key) + i, HEADER_SIZE)) * FNV_PRIME;\n }\n return v;\n}\n',"internal/memory":"// this function will go away once `memory.copy` becomes an intrinsic\nexport function memcpy(dest: usize, src: usize, n: usize): void { // see: musl/src/string/memcpy.c\n var w: u32, x: u32;\n\n // copy 1 byte each until src is aligned to 4 bytes\n while (n && (src & 3)) {\n store(dest++, load(src++));\n n--;\n }\n\n // if dst is aligned to 4 bytes as well, copy 4 bytes each\n if ((dest & 3) == 0) {\n while (n >= 16) {\n store(dest , load(src ));\n store(dest + 4, load(src + 4));\n store(dest + 8, load(src + 8));\n store(dest + 12, load(src + 12));\n src += 16; dest += 16; n -= 16;\n }\n if (n & 8) {\n store(dest , load(src ));\n store(dest + 4, load(src + 4));\n dest += 8; src += 8;\n }\n if (n & 4) {\n store(dest, load(src));\n dest += 4; src += 4;\n }\n if (n & 2) { // drop to 2 bytes each\n store(dest, load(src));\n dest += 2; src += 2;\n }\n if (n & 1) { // drop to 1 byte\n store(dest++, load(src++));\n }\n return;\n }\n\n // if dst is not aligned to 4 bytes, use alternating shifts to copy 4 bytes each\n // doing shifts if faster when copying enough bytes (here: 32 or more)\n if (n >= 32) {\n switch (dest & 3) {\n // known to be != 0\n case 1: {\n w = load(src);\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n n -= 3;\n while (n >= 17) {\n x = load(src + 1);\n store(dest, w >> 24 | x << 8);\n w = load(src + 5);\n store(dest + 4, x >> 24 | w << 8);\n x = load(src + 9);\n store(dest + 8, w >> 24 | x << 8);\n w = load(src + 13);\n store(dest + 12, x >> 24 | w << 8);\n src += 16; dest += 16; n -= 16;\n }\n break;\n }\n case 2: {\n w = load(src);\n store(dest++, load(src++));\n store(dest++, load(src++));\n n -= 2;\n while (n >= 18) {\n x = load(src + 2);\n store(dest, w >> 16 | x << 16);\n w = load(src + 6);\n store(dest + 4, x >> 16 | w << 16);\n x = load(src + 10);\n store(dest + 8, w >> 16 | x << 16);\n w = load(src + 14);\n store(dest + 12, x >> 16 | w << 16);\n src += 16; dest += 16; n -= 16;\n }\n break;\n }\n case 3: {\n w = load(src);\n store(dest++, load(src++));\n n -= 1;\n while (n >= 19) {\n x = load(src + 3);\n store(dest, w >> 8 | x << 24);\n w = load(src + 7);\n store(dest + 4, x >> 8 | w << 24);\n x = load(src + 11);\n store(dest + 8, w >> 8 | x << 24);\n w = load(src + 15);\n store(dest + 12, x >> 8 | w << 24);\n src += 16; dest += 16; n -= 16;\n }\n break;\n }\n }\n }\n\n // copy remaining bytes one by one\n if (n & 16) {\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n }\n if (n & 8) {\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n }\n if (n & 4) {\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n store(dest++, load(src++));\n }\n if (n & 2) {\n store(dest++, load(src++));\n store(dest++, load(src++));\n }\n if (n & 1) {\n store(dest++, load(src++));\n }\n}\n\n// this function will go away once `memory.copy` becomes an intrinsic\nexport function memmove(dest: usize, src: usize, n: usize): void { // see: musl/src/string/memmove.c\n if (dest === src) return;\n if (src + n <= dest || dest + n <= src) {\n memcpy(dest, src, n);\n return;\n }\n if (dest < src) {\n if ((src & 7) == (dest & 7)) {\n while (dest & 7) {\n if (!n) return;\n --n;\n store(dest++, load(src++));\n }\n while (n >= 8) {\n store(dest, load(src));\n n -= 8;\n dest += 8;\n src += 8;\n }\n }\n while (n) {\n store(dest++, load(src++));\n --n;\n }\n } else {\n if ((src & 7) == (dest & 7)) {\n while ((dest + n) & 7) {\n if (!n) return;\n store(dest + --n, load(src + n));\n }\n while (n >= 8) {\n n -= 8;\n store(dest + n, load(src + n));\n }\n }\n while (n) {\n store(dest + --n, load(src + n));\n }\n }\n}\n\n// this function will go away once `memory.fill` becomes an intrinsic\nexport function memset(dest: usize, c: u8, n: usize): void { // see: musl/src/string/memset\n\n // fill head and tail with minimal branching\n if (!n) return;\n store(dest, c);\n store(dest + n - 1, c);\n if (n <= 2) return;\n\n store(dest + 1, c);\n store(dest + 2, c);\n store(dest + n - 2, c);\n store(dest + n - 3, c);\n if (n <= 6) return;\n store(dest + 3, c);\n store(dest + n - 4, c);\n if (n <= 8) return;\n\n // advance pointer to align it at 4-byte boundary\n var k: usize = -dest & 3;\n dest += k;\n n -= k;\n n &= -4;\n\n var c32: u32 = -1 / 255 * c;\n\n // fill head/tail up to 28 bytes each in preparation\n store(dest, c32);\n store(dest + n - 4, c32);\n if (n <= 8) return;\n store(dest + 4, c32);\n store(dest + 8, c32);\n store(dest + n - 12, c32);\n store(dest + n - 8, c32);\n if (n <= 24) return;\n store(dest + 12, c32);\n store(dest + 16, c32);\n store(dest + 20, c32);\n store(dest + 24, c32);\n store(dest + n - 28, c32);\n store(dest + n - 24, c32);\n store(dest + n - 20, c32);\n store(dest + n - 16, c32);\n\n // align to a multiple of 8\n k = 24 + (dest & 4);\n dest += k;\n n -= k;\n\n // copy 32 bytes each\n var c64: u64 = c32 | (c32 << 32);\n while (n >= 32) {\n store(dest, c64);\n store(dest + 8, c64);\n store(dest + 16, c64);\n store(dest + 24, c64);\n n -= 32;\n dest += 32;\n }\n}\n\nexport function memcmp(vl: usize, vr: usize, n: usize): i32 { // see: musl/src/string/memcmp.c\n if (vl == vr) return 0;\n while (n != 0 && load(vl) == load(vr)) {\n n--; vl++; vr++;\n }\n return n ? load(vl) - load(vr) : 0;\n}\n","internal/number":'\nimport {\n CharCode,\n allocateUnsafe as allocateUnsafeString,\n freeUnsafe as freeUnsafeString,\n HEADER_SIZE as STRING_HEADER_SIZE\n} from "./string";\n\nimport {\n LOAD\n} from "./arraybuffer";\n\nexport const MAX_DOUBLE_LENGTH = 28;\n\n@inline\nexport function POWERS10(): u32[] {\n const table: u32[] = [\n 1,\n 10,\n 100,\n 1000,\n 10000,\n 100000,\n 1000000,\n 10000000,\n 100000000,\n 1000000000\n ];\n return table; // inlines to a constant memory offset\n}\n\n/*\n Lookup table for pairwise char codes in range [0-99]\n\n "00", "01", "02", "03", "04", "05", "06", "07", "08", "09",\n "10", "11", "12", "13", "14", "15", "16", "17", "18", "19",\n "20", "21", "22", "23", "24", "25", "26", "27", "28", "29",\n "30", "31", "32", "33", "34", "35", "36", "37", "38", "39",\n "40", "41", "42", "43", "44", "45", "46", "47", "48", "49",\n "50", "51", "52", "53", "54", "55", "56", "57", "58", "59",\n "60", "61", "62", "63", "64", "65", "66", "67", "68", "69",\n "70", "71", "72", "73", "74", "75", "76", "77", "78", "79",\n "80", "81", "82", "83", "84", "85", "86", "87", "88", "89",\n "90", "91", "92", "93", "94", "95", "96", "97", "98", "99"\n*/\n@inline\nexport function DIGITS(): u32[] {\n const table: u32[] = [\n 0x00300030, 0x00310030, 0x00320030, 0x00330030, 0x00340030,\n 0x00350030, 0x00360030, 0x00370030, 0x00380030, 0x00390030,\n 0x00300031, 0x00310031, 0x00320031, 0x00330031, 0x00340031,\n 0x00350031, 0x00360031, 0x00370031, 0x00380031, 0x00390031,\n 0x00300032, 0x00310032, 0x00320032, 0x00330032, 0x00340032,\n 0x00350032, 0x00360032, 0x00370032, 0x00380032, 0x00390032,\n 0x00300033, 0x00310033, 0x00320033, 0x00330033, 0x00340033,\n 0x00350033, 0x00360033, 0x00370033, 0x00380033, 0x00390033,\n 0x00300034, 0x00310034, 0x00320034, 0x00330034, 0x00340034,\n 0x00350034, 0x00360034, 0x00370034, 0x00380034, 0x00390034,\n 0x00300035, 0x00310035, 0x00320035, 0x00330035, 0x00340035,\n 0x00350035, 0x00360035, 0x00370035, 0x00380035, 0x00390035,\n 0x00300036, 0x00310036, 0x00320036, 0x00330036, 0x00340036,\n 0x00350036, 0x00360036, 0x00370036, 0x00380036, 0x00390036,\n 0x00300037, 0x00310037, 0x00320037, 0x00330037, 0x00340037,\n 0x00350037, 0x00360037, 0x00370037, 0x00380037, 0x00390037,\n 0x00300038, 0x00310038, 0x00320038, 0x00330038, 0x00340038,\n 0x00350038, 0x00360038, 0x00370038, 0x00380038, 0x00390038,\n 0x00300039, 0x00310039, 0x00320039, 0x00330039, 0x00340039,\n 0x00350039, 0x00360039, 0x00370039, 0x00380039, 0x00390039\n ];\n return table; // inlines to a constant memory offset\n}\n\n@inline\nfunction EXP_POWERS(): i16[] {\n const table: i16[] = [\n -1220, -1193, -1166, -1140, -1113, -1087, -1060, -1034, -1007, -980,\n -954, -927, -901, -874, -847, -821, -794, -768, -741, -715,\n -688, -661, -635, -608, -582, -555, -529, -502, -475, -449,\n -422, -396, -369, -343, -316, -289, -263, -236, -210, -183,\n -157, -130, -103, -77, -50, -24, 3, 30, 56, 83,\n 109, 136, 162, 189, 216, 242, 269, 295, 322, 348,\n 375, 402, 428, 455, 481, 508, 534, 561, 588, 614,\n 641, 667, 694, 720, 747, 774, 800, 827, 853, 880,\n 907, 933, 960, 986, 1013, 1039, 1066\n ];\n return table;\n}\n\n// 1e-348, 1e-340, ..., 1e340\n@inline\nfunction FRC_POWERS(): u64[] {\n const table: u64[] = [\n 0xFA8FD5A0081C0288, 0xBAAEE17FA23EBF76, 0x8B16FB203055AC76, 0xCF42894A5DCE35EA,\n 0x9A6BB0AA55653B2D, 0xE61ACF033D1A45DF, 0xAB70FE17C79AC6CA, 0xFF77B1FCBEBCDC4F,\n 0xBE5691EF416BD60C, 0x8DD01FAD907FFC3C, 0xD3515C2831559A83, 0x9D71AC8FADA6C9B5,\n 0xEA9C227723EE8BCB, 0xAECC49914078536D, 0x823C12795DB6CE57, 0xC21094364DFB5637,\n 0x9096EA6F3848984F, 0xD77485CB25823AC7, 0xA086CFCD97BF97F4, 0xEF340A98172AACE5,\n 0xB23867FB2A35B28E, 0x84C8D4DFD2C63F3B, 0xC5DD44271AD3CDBA, 0x936B9FCEBB25C996,\n 0xDBAC6C247D62A584, 0xA3AB66580D5FDAF6, 0xF3E2F893DEC3F126, 0xB5B5ADA8AAFF80B8,\n 0x87625F056C7C4A8B, 0xC9BCFF6034C13053, 0x964E858C91BA2655, 0xDFF9772470297EBD,\n 0xA6DFBD9FB8E5B88F, 0xF8A95FCF88747D94, 0xB94470938FA89BCF, 0x8A08F0F8BF0F156B,\n 0xCDB02555653131B6, 0x993FE2C6D07B7FAC, 0xE45C10C42A2B3B06, 0xAA242499697392D3,\n 0xFD87B5F28300CA0E, 0xBCE5086492111AEB, 0x8CBCCC096F5088CC, 0xD1B71758E219652C,\n 0x9C40000000000000, 0xE8D4A51000000000, 0xAD78EBC5AC620000, 0x813F3978F8940984,\n 0xC097CE7BC90715B3, 0x8F7E32CE7BEA5C70, 0xD5D238A4ABE98068, 0x9F4F2726179A2245,\n 0xED63A231D4C4FB27, 0xB0DE65388CC8ADA8, 0x83C7088E1AAB65DB, 0xC45D1DF942711D9A,\n 0x924D692CA61BE758, 0xDA01EE641A708DEA, 0xA26DA3999AEF774A, 0xF209787BB47D6B85,\n 0xB454E4A179DD1877, 0x865B86925B9BC5C2, 0xC83553C5C8965D3D, 0x952AB45CFA97A0B3,\n 0xDE469FBD99A05FE3, 0xA59BC234DB398C25, 0xF6C69A72A3989F5C, 0xB7DCBF5354E9BECE,\n 0x88FCF317F22241E2, 0xCC20CE9BD35C78A5, 0x98165AF37B2153DF, 0xE2A0B5DC971F303A,\n 0xA8D9D1535CE3B396, 0xFB9B7CD9A4A7443C, 0xBB764C4CA7A44410, 0x8BAB8EEFB6409C1A,\n 0xD01FEF10A657842C, 0x9B10A4E5E9913129, 0xE7109BFBA19C0C9D, 0xAC2820D9623BF429,\n 0x80444B5E7AA7CF85, 0xBF21E44003ACDD2D, 0x8E679C2F5E44FF8F, 0xD433179D9C8CB841,\n 0x9E19DB92B4E31BA9, 0xEB96BF6EBADF77D9, 0xAF87023B9BF0EE6B\n ];\n return table;\n}\n\n// Count number of decimals for u32 values\n// In our case input value always non-zero so we can simplify some parts\nexport function decimalCount32(value: u32): u32 {\n if (ASC_SHRINK_LEVEL >= 1) {\n let l: u32 = 32 - clz(value); // log2\n let t = l * 1233 >>> 12; // log10\n\n let lutbuf = POWERS10().buffer_;\n let power = LOAD(lutbuf, t);\n t -= (value < power);\n return t + 1;\n } else {\n if (value < 100000) {\n if (value < 100) {\n return select(1, 2, value < 10);\n } else {\n let m = select(4, 5, value < 10000);\n return select(3, m, value < 1000);\n }\n } else {\n if (value < 10000000) {\n return select(6, 7, value < 1000000);\n } else {\n let m = select(9, 10, value < 1000000000);\n return select(8, m, value < 100000000);\n }\n }\n }\n}\n\n// Count number of decimals for u64 values\n// In our case input value always greater than 2^32-1 so we can skip some parts\nexport function decimalCount64(value: u64): u32 {\n if (ASC_SHRINK_LEVEL >= 1) {\n let l: u32 = 64 - clz(value); // log2\n let t = l * 1233 >>> 12; // log10\n\n let lutbuf = POWERS10().buffer_;\n let power = LOAD(lutbuf, t - 10);\n t -= (value < 10000000000 * power);\n return t + 1;\n } else {\n if (value < 1000000000000000) {\n if (value < 1000000000000) {\n return select(11, 12, value < 100000000000);\n } else {\n let m = select(14, 15, value < 100000000000000);\n return select(13, m, value < 10000000000000);\n }\n } else {\n if (value < 100000000000000000) {\n return select(16, 17, value < 10000000000000000);\n } else {\n let m = select(19, 20, value < 10000000000000000000);\n return select(18, m, value < 1000000000000000000);\n }\n }\n }\n}\n\nfunction utoa32_lut(buffer: usize, num: u32, offset: usize): void {\n var lutbuf = DIGITS().buffer_;\n\n while (num >= 10000) {\n // in most VMs i32/u32 div and modulo by constant can be shared and simplificate\n let t = num / 10000;\n let r = num % 10000;\n num = t;\n\n let d1 = r / 100;\n let d2 = r % 100;\n\n let digits1 = LOAD(lutbuf, d1);\n let digits2 = LOAD(lutbuf, d2);\n\n offset -= 4;\n store(buffer + (offset << 1), digits1 | (digits2 << 32), STRING_HEADER_SIZE);\n }\n\n if (num >= 100) {\n let t = num / 100;\n let d1 = num % 100;\n num = t;\n offset -= 2;\n let digits = LOAD(lutbuf, d1);\n store(buffer + (offset << 1), digits, STRING_HEADER_SIZE);\n }\n\n if (num >= 10) {\n offset -= 2;\n let digits = LOAD(lutbuf, num);\n store(buffer + (offset << 1), digits, STRING_HEADER_SIZE);\n } else {\n offset -= 1;\n let digit = CharCode._0 + num;\n store(buffer + (offset << 1), digit, STRING_HEADER_SIZE);\n }\n}\n\nfunction utoa64_lut(buffer: usize, num: u64, offset: usize): void {\n var lutbuf = DIGITS().buffer_;\n\n while (num >= 100000000) {\n let t = num / 100000000;\n let r = (num - t * 100000000);\n num = t;\n\n let b = r / 10000;\n let c = r % 10000;\n\n let b1 = b / 100;\n let b2 = b % 100;\n let c1 = c / 100;\n let c2 = c % 100;\n\n let digits1 = LOAD(lutbuf, c1);\n let digits2 = LOAD(lutbuf, c2);\n\n offset -= 4;\n store(buffer + (offset << 1), digits1 | (digits2 << 32), STRING_HEADER_SIZE);\n\n digits1 = LOAD(lutbuf, b1);\n digits2 = LOAD(lutbuf, b2);\n\n offset -= 4;\n store(buffer + (offset << 1), digits1 | (digits2 << 32), STRING_HEADER_SIZE);\n }\n\n utoa32_lut(buffer, num, offset);\n}\n\nfunction utoa_simple(buffer: usize, num: T, offset: usize): void {\n do {\n let t = num / 10;\n let r = (num % 10);\n num = t;\n offset -= 1;\n store(buffer + (offset << 1), CharCode._0 + r, STRING_HEADER_SIZE);\n } while (num);\n}\n\n@inline\nexport function utoa32_core(buffer: usize, num: u32, offset: u32): void {\n if (ASC_SHRINK_LEVEL >= 1) {\n utoa_simple(buffer, num, offset);\n } else {\n utoa32_lut(buffer, num, offset);\n }\n}\n\n@inline\nexport function utoa64_core(buffer: usize, num: u64, offset: u32): void {\n if (ASC_SHRINK_LEVEL >= 1) {\n utoa_simple(buffer, num, offset);\n } else {\n utoa64_lut(buffer, num, offset);\n }\n}\n\nexport function utoa32(value: u32): String {\n if (!value) return "0";\n\n var decimals = decimalCount32(value);\n var buffer = allocateUnsafeString(decimals);\n\n utoa32_core(changetype(buffer), value, decimals);\n return buffer;\n}\n\nexport function itoa32(value: i32): String {\n if (!value) return "0";\n\n var sign = value < 0;\n if (sign) value = -value;\n\n var decimals = decimalCount32(value) + sign;\n var buffer = allocateUnsafeString(decimals);\n\n utoa32_core(changetype(buffer), value, decimals);\n if (sign) store(changetype(buffer), CharCode.MINUS, STRING_HEADER_SIZE);\n\n return buffer;\n}\n\nexport function utoa64(value: u64): String {\n if (!value) return "0";\n\n var buffer: String;\n if (value <= u32.MAX_VALUE) {\n let val32 = value;\n let decimals = decimalCount32(val32);\n buffer = allocateUnsafeString(decimals);\n utoa32_core(changetype(buffer), val32, decimals);\n } else {\n let decimals = decimalCount64(value);\n buffer = allocateUnsafeString(decimals);\n utoa64_core(changetype(buffer), value, decimals);\n }\n return buffer;\n}\n\nexport function itoa64(value: i64): String {\n if (!value) return "0";\n\n var sign = value < 0;\n if (sign) value = -value;\n\n var buffer: String;\n if (value <= u32.MAX_VALUE) {\n let val32 = value;\n let decimals = decimalCount32(val32) + sign;\n buffer = allocateUnsafeString(decimals);\n utoa32_core(changetype(buffer), val32, decimals);\n } else {\n let decimals = decimalCount64(value) + sign;\n buffer = allocateUnsafeString(decimals);\n utoa64_core(changetype(buffer), value, decimals);\n }\n if (sign) store(changetype(buffer), CharCode.MINUS, STRING_HEADER_SIZE);\n\n return buffer;\n}\n\nexport function itoa(value: T): String {\n if (!isInteger()) {\n assert(false); // unexpecteble non-integer generic type\n } else {\n if (isSigned()) {\n if (sizeof() <= 4) {\n return itoa32(value);\n } else {\n return itoa64(value);\n }\n } else {\n if (sizeof() <= 4) {\n return utoa32(value);\n } else {\n return utoa64(value);\n }\n }\n }\n}\n\nvar _K: i32 = 0;\n\nvar _frc: u64 = 0;\nvar _exp: i32 = 0;\n\nvar _frc_minus: u64 = 0;\nvar _frc_plus: u64 = 0;\n\nvar _frc_pow: u64 = 0;\nvar _exp_pow: i32 = 0;\n\n@inline\nfunction umul64f(u: u64, v: u64): u64 {\n var u0 = u & 0xFFFFFFFF;\n var v0 = v & 0xFFFFFFFF;\n\n var u1 = u >> 32;\n var v1 = v >> 32;\n\n var l = u0 * v0;\n var t = u1 * v0 + (l >> 32);\n var w = u0 * v1 + (t & 0xFFFFFFFF);\n\n w += 0x7FFFFFFF; // rounding\n\n t >>= 32;\n w >>= 32;\n\n return u1 * v1 + t + w;\n}\n\n@inline\nfunction umul64e(e1: i32, e2: i32): i32 {\n return e1 + e2 + 64; // where 64 is significand size\n}\n\n@inline\nfunction normalizedBoundaries(f: u64, e: i32): void {\n var frc = (f << 1) + 1;\n var exp = e - 1;\n var off = clz(frc);\n frc <<= off;\n exp -= off;\n\n var m = 1 + (f == 0x0010000000000000);\n\n _frc_plus = frc;\n _frc_minus = ((f << m) - 1) << e - m - exp;\n _exp = exp;\n}\n\n@inline\nfunction grisuRound(buffer: usize, len: i32, delta: u64, rest: u64, ten_kappa: u64, wp_w: u64): void {\n var lastp = buffer + ((len - 1) << 1);\n var digit = load(lastp, STRING_HEADER_SIZE);\n while (\n rest < wp_w &&\n delta - rest >= ten_kappa && (\n rest + ten_kappa < wp_w ||\n wp_w - rest > rest + ten_kappa - wp_w\n )\n ) {\n --digit;\n rest += ten_kappa;\n }\n store(lastp, digit, STRING_HEADER_SIZE);\n}\n\n@inline\nfunction getCachedPower(minExp: i32): void {\n const c = reinterpret(0x3FD34413509F79FE); // 1 / lg(10) = 0.30102999566398114\n var dk = (-61 - minExp) * c + 347;\t // dk must be positive, so can do ceiling in positive\n var k = dk;\n k += (k != dk); // conversion with ceil\n\n var index = (k >> 3) + 1;\n _K = 348 - (index << 3);\t// decimal exponent no need lookup table\n var frcPowers = FRC_POWERS().buffer_;\n var expPowers = EXP_POWERS().buffer_;\n _frc_pow = LOAD(frcPowers, index);\n _exp_pow = LOAD(expPowers, index);\n}\n\n@inline\nfunction grisu2(value: f64, buffer: usize, sign: i32): i32 {\n\n // frexp routine\n var uv = reinterpret(value);\n var exp = ((uv & 0x7FF0000000000000) >>> 52);\n var sid = uv & 0x000FFFFFFFFFFFFF;\n var frc = ((exp != 0) << 52) + sid;\n exp = select(exp, 1, exp != 0) - (0x3FF + 52);\n\n normalizedBoundaries(frc, exp);\n getCachedPower(_exp);\n\n // normalize\n var off = clz(frc);\n frc <<= off;\n exp -= off;\n\n var frc_pow = _frc_pow;\n var exp_pow = _exp_pow;\n\n var w_frc = umul64f(frc, frc_pow);\n var w_exp = umul64e(exp, exp_pow);\n\n var wp_frc = umul64f(_frc_plus, frc_pow) - 1;\n var wp_exp = umul64e(_exp, exp_pow);\n\n var wm_frc = umul64f(_frc_minus, frc_pow) + 1;\n var delta = wp_frc - wm_frc;\n\n return genDigits(buffer, w_frc, w_exp, wp_frc, wp_exp, delta, sign);\n}\n\nfunction genDigits(buffer: usize, w_frc: u64, w_exp: i32, mp_frc: u64, mp_exp: i32, delta: u64, sign: i32): i32 {\n var one_exp = -mp_exp;\n var one_frc = (1) << one_exp;\n var mask = one_frc - 1;\n\n var wp_w_frc = mp_frc - w_frc;\n var wp_w_exp = mp_exp;\n\n var p1 = (mp_frc >> one_exp);\n var p2 = mp_frc & mask;\n\n var kappa = decimalCount32(p1);\n var len = sign;\n\n var powers10 = POWERS10().buffer_;\n\n while (kappa > 0) {\n let d: u32;\n switch (kappa) {\n case 10: { d = p1 / 1000000000; p1 %= 1000000000; break; }\n case 9: { d = p1 / 100000000; p1 %= 100000000; break; }\n case 8: { d = p1 / 10000000; p1 %= 10000000; break; }\n case 7: { d = p1 / 1000000; p1 %= 1000000; break; }\n case 6: { d = p1 / 100000; p1 %= 100000; break; }\n case 5: { d = p1 / 10000; p1 %= 10000; break; }\n case 4: { d = p1 / 1000; p1 %= 1000; break; }\n case 3: { d = p1 / 100; p1 %= 100; break; }\n case 2: { d = p1 / 10; p1 %= 10; break; }\n case 1: { d = p1; p1 = 0; break; }\n default: { d = 0; break; }\n }\n\n if (d | len) store(buffer + (len++ << 1), CharCode._0 + d, STRING_HEADER_SIZE);\n\n --kappa;\n let tmp = ((p1) << one_exp) + p2;\n if (tmp <= delta) {\n _K += kappa;\n grisuRound(buffer, len, delta, tmp, LOAD(powers10, kappa) << one_exp, wp_w_frc);\n return len;\n }\n }\n\n while (1) {\n p2 *= 10;\n delta *= 10;\n\n let d = p2 >> one_exp;\n if (d | len) store(buffer + (len++ << 1), CharCode._0 + d, STRING_HEADER_SIZE);\n\n p2 &= mask;\n --kappa;\n if (p2 < delta) {\n _K += kappa;\n wp_w_frc *= LOAD(powers10, -kappa);\n grisuRound(buffer, len, delta, p2, one_frc, wp_w_frc);\n return len;\n }\n }\n\n return len;\n}\n\n@inline\nfunction genExponent(buffer: usize, k: i32): i32 {\n var sign = k < 0;\n if (sign) k = -k;\n var decimals = decimalCount32(k) + 1;\n utoa32_core(buffer, k, decimals);\n store(buffer, select(CharCode.MINUS, CharCode.PLUS, sign), STRING_HEADER_SIZE);\n return decimals;\n}\n\nfunction prettify(buffer: usize, length: i32, k: i32): i32 {\n if (!k) {\n store(buffer + (length << 1), CharCode.DOT | (CharCode._0 << 16), STRING_HEADER_SIZE);\n return length + 2;\n }\n\n var kk = length + k;\n if (length <= kk && kk <= 21) {\n // 1234e7 -> 12340000000\n for (let i = length; i < kk; ++i) {\n store(buffer + (i << 1), CharCode._0, STRING_HEADER_SIZE);\n }\n store(buffer + (kk << 1), CharCode.DOT | (CharCode._0 << 16), STRING_HEADER_SIZE);\n return kk + 2;\n } else if (kk > 0 && kk <= 21) {\n // 1234e-2 -> 12.34\n let ptr = buffer + (kk << 1);\n memory.copy(\n ptr + STRING_HEADER_SIZE + 2,\n ptr + STRING_HEADER_SIZE,\n -k << 1\n );\n store(buffer + (kk << 1), CharCode.DOT, STRING_HEADER_SIZE);\n return length + 1;\n } else if (-6 < kk && kk <= 0) {\n // 1234e-6 -> 0.001234\n let offset = 2 - kk;\n memory.copy(\n buffer + STRING_HEADER_SIZE + (offset << 1),\n buffer + STRING_HEADER_SIZE,\n length << 1\n );\n store(buffer, CharCode._0 | (CharCode.DOT << 16), STRING_HEADER_SIZE);\n for (let i = 2; i < offset; ++i) {\n store(buffer + (i << 1), CharCode._0, STRING_HEADER_SIZE);\n }\n return length + offset;\n } else if (length == 1) {\n // 1e30\n store(buffer, CharCode.e, STRING_HEADER_SIZE + 2);\n length = genExponent(buffer + 4, kk - 1);\n return length + 2;\n } else {\n let len = length << 1;\n memory.copy(\n buffer + STRING_HEADER_SIZE + 4,\n buffer + STRING_HEADER_SIZE + 2,\n len - 2\n );\n store(buffer, CharCode.DOT, STRING_HEADER_SIZE + 2);\n store(buffer + len, CharCode.e, STRING_HEADER_SIZE + 2);\n length += genExponent(buffer + len + 4, kk - 1);\n return length + 2;\n }\n}\n\nexport function dtoa_core(buffer: usize, value: f64): i32 {\n var sign = (value < 0);\n if (sign) {\n value = -value;\n store(buffer, CharCode.MINUS, STRING_HEADER_SIZE);\n }\n // assert(value > 0 && value <= 1.7976931348623157e308);\n var len = grisu2(value, buffer, sign);\n len = prettify(buffer + (sign << 1), len - sign, _K);\n return len + sign;\n}\n\nexport function dtoa(value: f64): String {\n if (value == 0) return "0.0";\n if (!isFinite(value)) {\n if (isNaN(value)) return "NaN";\n return select("-Infinity", "Infinity", value < 0);\n }\n var buffer = allocateUnsafeString(MAX_DOUBLE_LENGTH);\n var length = dtoa_core(changetype(buffer), value);\n var result = buffer.substring(0, length);\n freeUnsafeString(buffer);\n return result;\n}\n\nexport function itoa_stream(buffer: usize, offset: usize, value: T): u32 {\n buffer += (offset << 1);\n if (!value) {\n store(buffer, CharCode._0, STRING_HEADER_SIZE);\n return 1;\n }\n var decimals: u32 = 0;\n if (isSigned()) {\n let sign = value < 0;\n if (sign) value = -value;\n if (sizeof() <= 4) {\n decimals = decimalCount32(value) + sign;\n utoa32_core(buffer, value, decimals);\n } else {\n if (value <= u32.MAX_VALUE) {\n let val32 = value;\n decimals = decimalCount32(val32) + sign;\n utoa32_core(buffer, val32, decimals);\n } else {\n decimals = decimalCount64(value) + sign;\n utoa64_core(buffer, value, decimals);\n }\n }\n if (sign) store(buffer, CharCode.MINUS, STRING_HEADER_SIZE);\n } else {\n if (sizeof() <= 4) {\n decimals = decimalCount32(value);\n utoa32_core(buffer, value, decimals);\n } else {\n if (value <= u32.MAX_VALUE) {\n let val32 = value;\n decimals = decimalCount32(val32);\n utoa32_core(buffer, val32, decimals);\n } else {\n decimals = decimalCount64(value);\n utoa64_core(buffer, value, decimals);\n }\n }\n }\n return decimals;\n}\n\nexport function dtoa_stream(buffer: usize, offset: usize, value: f64): u32 {\n buffer += (offset << 1);\n if (value == 0.0) {\n store(buffer, CharCode._0, STRING_HEADER_SIZE + 0);\n store(buffer, CharCode.DOT, STRING_HEADER_SIZE + 2);\n store(buffer, CharCode._0, STRING_HEADER_SIZE + 4);\n return 3;\n }\n if (!isFinite(value)) {\n if (isNaN(value)) {\n store(buffer, CharCode.N, STRING_HEADER_SIZE + 0);\n store(buffer, CharCode.a, STRING_HEADER_SIZE + 2);\n store(buffer, CharCode.N, STRING_HEADER_SIZE + 4);\n return 3;\n } else {\n let sign = (value < 0);\n let len = 8 + sign;\n let source = changetype(select("-Infinity", "Infinity", sign));\n memory.copy(buffer + STRING_HEADER_SIZE, source + STRING_HEADER_SIZE, len << 1);\n return len;\n }\n }\n return dtoa_core(buffer, value);\n}\n',"internal/sort":"import {\n LOAD,\n STORE\n} from \"./arraybuffer\";\n\nimport {\n compareUnsafe\n} from \"./string\";\n\n/** Obtains the default comparator for the specified value type. */\n@inline\nexport function COMPARATOR(): (a: T, b: T) => i32 {\n if (isInteger()) {\n if (isSigned() && sizeof() <= 4) {\n return (a: T, b: T): i32 => ((a - b));\n } else {\n return (a: T, b: T): i32 => ((a > b) - (a < b));\n }\n } else if (isFloat()) {\n if (sizeof() == 4) {\n return (a: T, b: T): i32 => {\n var ia = reinterpret(a);\n var ib = reinterpret(b);\n ia ^= (ia >> 31) >>> 1;\n ib ^= (ib >> 31) >>> 1;\n return (ia > ib) - (ia < ib);\n };\n } else {\n return (a: T, b: T): i32 => {\n var ia = reinterpret(a);\n var ib = reinterpret(b);\n ia ^= (ia >> 63) >>> 1;\n ib ^= (ib >> 63) >>> 1;\n return (ia > ib) - (ia < ib);\n };\n }\n } else if (isString()) {\n return (a: T, b: T): i32 => {\n if (a === b || a === null || b === null) return 0;\n var alen = (a).length;\n var blen = (b).length;\n if (!alen && !blen) return 0;\n if (!alen) return -1;\n if (!blen) return 1;\n return compareUnsafe(a, 0, b, 0, min(alen, blen));\n };\n } else {\n return (a: T, b: T): i32 => ((a > b) - (a < b));\n }\n}\n\n@inline\nexport function SORT(\n buffer: ArrayBuffer,\n byteOffset: i32,\n length: i32,\n comparator: (a: T, b: T) => i32\n): void {\n if (isReference()) {\n // TODO replace this to faster stable sort (TimSort) when it implemented\n insertionSort(buffer, byteOffset, length, comparator);\n } else {\n if (length < 256) {\n insertionSort(buffer, byteOffset, length, comparator);\n } else {\n weakHeapSort(buffer, byteOffset, length, comparator);\n }\n }\n}\n\n/** Sorts an Array with the 'Insertion Sort' algorithm. */\nfunction insertionSort(\n buffer: ArrayBuffer,\n byteOffset: i32,\n length: i32,\n comparator: (a: T, b: T) => i32\n): void {\n for (let i = 0; i < length; i++) {\n let a = LOAD(buffer, i, byteOffset); // a = arr[i]\n let j = i - 1;\n while (j >= 0) {\n let b = LOAD(buffer, j, byteOffset); // b = arr[j]\n if (comparator(a, b) < 0) {\n STORE(buffer, j-- + 1, b, byteOffset); // arr[j + 1] = b\n } else break;\n }\n STORE(buffer, j + 1, a, byteOffset); // arr[j + 1] = a\n }\n}\n\n/** Sorts an Array with the 'Weak Heap Sort' algorithm. */\nfunction weakHeapSort(\n buffer: ArrayBuffer,\n byteOffset: i32,\n length: i32,\n comparator: (a: T, b: T) => i32\n): void {\n const shift32 = alignof();\n\n var bitsetSize = (length + 31) >> 5 << shift32;\n var bitset = memory.allocate(bitsetSize); // indexed in 32-bit chunks below\n memory.fill(bitset, 0, bitsetSize);\n\n // see: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.21.1863&rep=rep1&type=pdf\n\n for (let i = length - 1; i > 0; i--) {\n let j = i;\n while ((j & 1) == (load(bitset + (j >> 6 << shift32)) >> (j >> 1 & 31) & 1)) j >>= 1;\n\n let p = j >> 1;\n let a = LOAD(buffer, p, byteOffset); // a = arr[p]\n let b = LOAD(buffer, i, byteOffset); // b = arr[i]\n if (comparator(a, b) < 0) {\n store(\n bitset + (i >> 5 << shift32),\n load(bitset + (i >> 5 << shift32)) ^ (1 << (i & 31))\n );\n STORE(buffer, i, a, byteOffset); // arr[i] = a\n STORE(buffer, p, b, byteOffset); // arr[p] = b\n }\n }\n\n for (let i = length - 1; i >= 2; i--) {\n let a = LOAD(buffer, 0, byteOffset);\n STORE(buffer, 0, LOAD(buffer, i, byteOffset), byteOffset);\n STORE(buffer, i, a, byteOffset);\n\n let x = 1, y: i32;\n while ((y = (x << 1) + ((load(bitset + (x >> 5 << shift32)) >> (x & 31)) & 1)) < i) x = y;\n\n while (x > 0) {\n a = LOAD(buffer, 0, byteOffset); // a = arr[0]\n let b = LOAD(buffer, x, byteOffset); // b = arr[x]\n\n if (comparator(a, b) < 0) {\n store(\n bitset + (x >> 5 << shift32),\n load(bitset + (x >> 5 << shift32)) ^ (1 << (x & 31))\n );\n STORE(buffer, x, a, byteOffset); // arr[x] = a\n STORE(buffer, 0, b, byteOffset); // arr[0] = b\n }\n x >>= 1;\n }\n }\n\n memory.free(bitset);\n\n var t = LOAD(buffer, 1, byteOffset); // t = arr[1]\n STORE(buffer, 1, LOAD(buffer, 0, byteOffset), byteOffset);\n STORE(buffer, 0, t, byteOffset); // arr[0] = t\n}\n","internal/string":'import { MAX_SIZE_32 } from "./allocator";\nimport { String } from "../string";\n\n/** Size of a String header. */\nexport const HEADER_SIZE = (offsetof() + 1) & ~1; // 2 byte aligned\n/** Maximum length of a String. */\nexport const MAX_LENGTH = (MAX_SIZE_32 - HEADER_SIZE) >>> 1;\n\n// Low-level utility\n\nfunction __gc(ref: usize): void {}\n\nexport function allocateUnsafe(length: i32): String {\n assert(length > 0 && length <= MAX_LENGTH);\n var buffer: usize;\n if (isManaged()) {\n buffer = __gc_allocate(HEADER_SIZE + (length << 1), __gc); // tslint:disable-line\n } else {\n buffer = memory.allocate(HEADER_SIZE + (length << 1));\n }\n store(buffer, length);\n return changetype(buffer);\n}\n\n@inline\nexport function freeUnsafe(buffer: String): void {\n if (!isManaged()) {\n assert(buffer);\n memory.free(changetype(buffer));\n }\n}\n\nexport function copyUnsafe(dest: String, destOffset: usize, src: String, srcOffset: usize, len: usize): void {\n memory.copy(\n changetype(dest) + (destOffset << 1) + HEADER_SIZE,\n changetype(src) + (srcOffset << 1) + HEADER_SIZE,\n len << 1\n );\n}\n\nexport function compareUnsafe(str1: String, offset1: usize, str2: String, offset2: usize, len: usize): i32 {\n var cmp: i32 = 0;\n var ptr1 = changetype(str1) + (offset1 << 1);\n var ptr2 = changetype(str2) + (offset2 << 1);\n while (len && !(cmp = load(ptr1, HEADER_SIZE) - load(ptr2, HEADER_SIZE))) {\n --len, ptr1 += 2, ptr2 += 2;\n }\n return cmp;\n}\n\nexport function repeatUnsafe(dest: String, destOffset: usize, src: String, count: i32): void {\n var length = src.length;\n if (ASC_SHRINK_LEVEL > 1) {\n let strLen = length << 1;\n let to = changetype(dest) + HEADER_SIZE + (destOffset << 1);\n let from = changetype(src) + HEADER_SIZE;\n for (let i = 0, len = strLen * count; i < len; i += strLen) {\n memory.copy(to + i, from, strLen);\n }\n } else {\n switch (length) {\n case 0: break;\n case 1: {\n let cc = load(changetype(src), HEADER_SIZE);\n let out = changetype(dest) + (destOffset << 1);\n for (let i = 0; i < count; ++i) {\n store(out + (i << 1), cc, HEADER_SIZE);\n }\n break;\n }\n case 2: {\n let cc = load(changetype(src), HEADER_SIZE);\n let out = changetype(dest) + (destOffset << 1);\n for (let i = 0; i < count; ++i) {\n store(out + (i << 2), cc, HEADER_SIZE);\n }\n break;\n }\n case 3: {\n let cc1 = load(changetype(src), HEADER_SIZE + 0);\n let cc2 = load(changetype(src), HEADER_SIZE + 4);\n let out = changetype(dest) + (destOffset << 1);\n for (let i = 0; i < count; ++i) {\n store(out + (i << 2), cc1, HEADER_SIZE + 0);\n store(out + (i << 1), cc2, HEADER_SIZE + 4);\n }\n break;\n }\n case 4: {\n let cc = load(changetype(src), HEADER_SIZE);\n let out = changetype(dest) + (destOffset << 1);\n for (let i = 0; i < count; ++i) {\n store(out + (i << 3), cc, HEADER_SIZE);\n }\n break;\n }\n default: {\n let strLen = length << 1;\n let to = changetype(dest) + HEADER_SIZE + (destOffset << 1);\n let from = changetype(src) + HEADER_SIZE;\n for (let i = 0, len = strLen * count; i < len; i += strLen) {\n memory.copy(to + i, from, strLen);\n }\n break;\n }\n }\n }\n}\n\n// Helpers\n\nexport const enum CharCode {\n PLUS = 0x2B,\n MINUS = 0x2D,\n DOT = 0x2E,\n _0 = 0x30,\n _1 = 0x31,\n _2 = 0x32,\n _3 = 0x33,\n _4 = 0x34,\n _5 = 0x35,\n _6 = 0x36,\n _7 = 0x37,\n _8 = 0x38,\n _9 = 0x39,\n A = 0x41,\n B = 0x42,\n E = 0x45,\n N = 0x4E,\n O = 0x4F,\n X = 0x58,\n Z = 0x5a,\n a = 0x61,\n b = 0x62,\n e = 0x65,\n n = 0x6E,\n o = 0x6F,\n x = 0x78,\n z = 0x7A\n}\n\nexport function isWhiteSpaceOrLineTerminator(c: u16): bool {\n switch (c) {\n case 9: // \n case 10: // \n case 13: // \n case 11: // \n case 12: // \n case 32: // \n case 160: // \n case 8232: // \n case 8233: // \n case 65279: return true; // \n default: return false;\n }\n}\n\n/** Parses a string to an integer (usually), using the specified radix. */\nexport function parse(str: String, radix: i32 = 0): T {\n var len: i32 = str.length;\n if (!len) return NaN;\n\n var ptr = changetype(str) /* + HEAD -> offset */;\n var code = load(ptr, HEADER_SIZE);\n\n // determine sign\n var sign: T;\n if (code == CharCode.MINUS) {\n if (!--len) return NaN;\n code = load(ptr += 2, HEADER_SIZE);\n sign = -1;\n } else if (code == CharCode.PLUS) {\n if (!--len) return NaN;\n code = load(ptr += 2, HEADER_SIZE);\n sign = 1;\n } else {\n sign = 1;\n }\n\n // determine radix\n if (!radix) {\n if (code == CharCode._0 && len > 2) {\n switch (load(ptr + 2, HEADER_SIZE)) {\n case CharCode.B:\n case CharCode.b: {\n ptr += 4; len -= 2;\n radix = 2;\n break;\n }\n case CharCode.O:\n case CharCode.o: {\n ptr += 4; len -= 2;\n radix = 8;\n break;\n }\n case CharCode.X:\n case CharCode.x: {\n ptr += 4; len -= 2;\n radix = 16;\n break;\n }\n default: radix = 10;\n }\n } else radix = 10;\n } else if (radix < 2 || radix > 36) {\n return NaN;\n }\n\n // calculate value\n var num: T = 0;\n while (len--) {\n code = load(ptr, HEADER_SIZE);\n if (code >= CharCode._0 && code <= CharCode._9) {\n code -= CharCode._0;\n } else if (code >= CharCode.A && code <= CharCode.Z) {\n code -= CharCode.A - 10;\n } else if (code >= CharCode.a && code <= CharCode.z) {\n code -= CharCode.a - 10;\n } else break;\n if (code >= radix) break;\n num = (num * radix) + code;\n ptr += 2;\n }\n return sign * num;\n}\n',"internal/typedarray":'import {\n HEADER_SIZE as AB_HEADER_SIZE,\n MAX_BLENGTH as AB_MAX_BLENGTH,\n allocateUnsafe,\n LOAD,\n STORE\n} from "./arraybuffer";\n\nimport {\n SORT as SORT_IMPL\n} from "./sort";\n\n/** Typed array base class. Not a global object. */\nexport abstract class TypedArray {\n [key: number]: T; // compatibility only\n\n readonly buffer: ArrayBuffer;\n readonly byteOffset: i32;\n readonly byteLength: i32;\n\n constructor(length: i32) {\n const MAX_LENGTH = AB_MAX_BLENGTH / sizeof();\n if (length > MAX_LENGTH) throw new RangeError("Invalid typed array length");\n var byteLength = length << alignof();\n var buffer = allocateUnsafe(byteLength);\n memory.fill(changetype(buffer) + AB_HEADER_SIZE, 0, byteLength);\n this.buffer = buffer;\n this.byteOffset = 0;\n this.byteLength = byteLength;\n }\n\n @inline\n get length(): i32 {\n return this.byteLength >>> alignof();\n }\n\n @operator("[]")\n protected __get(index: i32): T {\n if (index >= (this.byteLength >>> alignof())) throw new Error("Index out of bounds");\n return LOAD(this.buffer, index, this.byteOffset);\n }\n\n @inline @operator("{}")\n protected __unchecked_get(index: i32): T {\n return LOAD(this.buffer, index, this.byteOffset);\n }\n\n @operator("[]=")\n protected __set(index: i32, value: NATIVE): void {\n if (index >= (this.byteLength >>> alignof())) throw new Error("Index out of bounds");\n STORE>(this.buffer, index, value, this.byteOffset);\n }\n\n @inline @operator("{}=")\n protected __unchecked_set(index: i32, value: NATIVE): void {\n STORE>(this.buffer, index, value, this.byteOffset);\n }\n\n // copyWithin(target: i32, start: i32, end: i32 = this.length): this\n}\n\n@inline\nexport function FILL, T extends number>(\n array: TArray,\n value: NATIVE,\n start: i32,\n end: i32\n): TArray {\n var buffer = array.buffer;\n var byteOffset = array.byteOffset;\n var len = array.length;\n start = start < 0 ? max(len + start, 0) : min(start, len);\n end = end < 0 ? max(len + end, 0) : min(end, len);\n if (sizeof() == 1) {\n if (start < end) {\n memory.fill(\n changetype(buffer) + start + byteOffset + AB_HEADER_SIZE,\n value,\n (end - start)\n );\n }\n } else {\n for (; start < end; ++start) {\n STORE>(buffer, start, value, byteOffset);\n }\n }\n return array;\n}\n\n@inline\nexport function SORT, T>(\n array: TArray,\n comparator: (a: T, b: T) => i32\n): TArray {\n var byteOffset = array.byteOffset;\n var length = array.length;\n if (length <= 1) return array;\n var buffer = array.buffer;\n if (length == 2) {\n let a = LOAD(buffer, 1, byteOffset);\n let b = LOAD(buffer, 0, byteOffset);\n if (comparator(a, b) < 0) {\n STORE(buffer, 1, b, byteOffset);\n STORE(buffer, 0, a, byteOffset);\n }\n return array;\n }\n SORT_IMPL(buffer, byteOffset, length, comparator);\n return array;\n}\n\n@inline\nexport function SUBARRAY, T>(\n array: TArray,\n begin: i32,\n end: i32\n): TArray {\n var length = array.length;\n if (begin < 0) begin = max(length + begin, 0);\n else begin = min(begin, length);\n if (end < 0) end = max(length + end, begin);\n else end = max(min(end, length), begin);\n var slice = memory.allocate(offsetof());\n store(slice, array.buffer, offsetof("buffer"));\n store(slice, array.byteOffset + (begin << alignof()), offsetof("byteOffset"));\n store(slice, (end - begin) << alignof(), offsetof("byteLength"));\n return changetype(slice);\n}\n\n@inline\nexport function REDUCE, T, TRet>(\n array: TArray,\n callbackfn: (accumulator: TRet, value: T, index: i32, array: TArray) => TRet,\n initialValue: TRet\n): TRet {\n var length = array.length;\n var buffer = array.buffer;\n var byteOffset = array.byteOffset;\n for (let i = 0; i < length; i++) {\n initialValue = callbackfn(\n initialValue,\n LOAD(buffer, i, byteOffset),\n i,\n array,\n );\n }\n return initialValue;\n}\n\n@inline\nexport function REDUCE_RIGHT, T, TRet>(\n array: TArray,\n callbackfn: (accumulator: TRet, value: T, index: i32, array: TArray) => TRet,\n initialValue: TRet\n): TRet {\n var buffer = array.buffer;\n var byteOffset = array.byteOffset;\n for (let i = array.length - 1; i >= 0; i--) {\n initialValue = callbackfn(\n initialValue,\n LOAD(buffer, i, byteOffset),\n i,\n array,\n );\n }\n return initialValue;\n}\n\n@inline\nexport function MAP, T>(\n array: TArray,\n callbackfn: (value: T, index: i32, self: TArray) => T,\n): TArray {\n var length = array.length;\n var buffer = array.buffer;\n var byteOffset = array.byteOffset;\n var result = instantiate(length);\n var resultBuffer = result.buffer;\n for (let i = 0; i < length; i++) {\n STORE>(resultBuffer, i, >callbackfn(LOAD(buffer, i, byteOffset), i, array));\n }\n\n return result;\n}\n\n@inline\nexport function FIND_INDEX, T>(\n array: TArray,\n callbackfn: (value: T, index: i32, array: TArray) => bool,\n): i32 {\n var length = array.length;\n var buffer = array.buffer;\n var byteOffset = array.byteOffset;\n for (let i = 0; i < length; i++) {\n if (callbackfn(LOAD(buffer, i, byteOffset), i, array)) {\n return i;\n }\n }\n return -1;\n}\n\n@inline\nexport function SOME, T>(\n array: TArray,\n callbackfn: (value: T, index: i32, array: TArray) => bool,\n): bool {\n var length = array.length;\n var buffer = array.buffer;\n var byteOffset = array.byteOffset;\n for (let i = 0; i < length; i++) {\n if (callbackfn(LOAD(buffer, i, byteOffset), i, array)) {\n return true;\n }\n }\n return false;\n}\n\n@inline\nexport function EVERY, T>(\n array: TArray,\n callbackfn: (value: T, index: i32, array: TArray) => bool,\n): bool {\n var length = array.length;\n var buffer = array.buffer;\n var byteOffset = array.byteOffset;\n for (let i = 0; i < length; i++) {\n if (callbackfn(LOAD(buffer, i, byteOffset), i, array)) {\n continue;\n }\n return false;\n }\n return true;\n}\n',iterator:"export abstract class Iterable {\n // ?\n}\n\n@sealed\nexport abstract class Iterator {\n\n // private constructor(iterable: Iterable) {\n // }\n\n // TODO: these need to evaluate the classId at the respective reference in order to obtain the\n // next value, i.e. arrays work differently than maps. we'd then have:\n //\n // ╒═══════════════════ Iterator layout (32-bit) ══════════════════╕\n // 3 2 1\n // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 bits\n // ├─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┤\n // │ index │\n // ├─────────────────────────────────────────────────────────┬───┬─┤\n // │ reference │ 0 │D│\n // └─────────────────────────────────────────────────────────┴───┴─┘\n // D: Done flag\n\n // get value(this: u64): T {\n // ?\n // }\n\n // next(this: u64): Iterator {\n // ?\n // }\n\n done(this: u64): bool {\n return (this & 1);\n }\n}\n",map:'import {\n HEADER_SIZE as HEADER_SIZE_AB\n} from "./internal/arraybuffer";\n\nimport {\n HASH\n} from "./internal/hash";\n\n// A deterministic hash map based on CloseTable from https://github.com/jorendorff/dht\n\nconst INITIAL_CAPACITY = 4;\nconst FILL_FACTOR: f64 = 8 / 3;\nconst FREE_FACTOR: f64 = 3 / 4;\n\n/** Structure of a map entry. */\n@unmanaged class MapEntry {\n key: K;\n value: V;\n taggedNext: usize; // LSB=1 indicates EMPTY\n}\n\n/** Empty bit. */\nconst EMPTY: usize = 1 << 0;\n\n/** Size of a bucket. */\nconst BUCKET_SIZE = sizeof();\n\n/** Computes the alignment of an entry. */\n@inline function ENTRY_ALIGN(): usize {\n // can align to 4 instead of 8 if 32-bit and K/V is <= 32-bits\n const maxkv = sizeof() > sizeof() ? sizeof() : sizeof();\n const align = (maxkv > sizeof() ? maxkv : sizeof()) - 1;\n return align;\n}\n\n/** Computes the aligned size of an entry. */\n@inline function ENTRY_SIZE(): usize {\n const align = ENTRY_ALIGN();\n const size = (offsetof>() + align) & ~align;\n return size;\n}\n\nexport class Map {\n\n // buckets holding references to the respective first entry within\n private buckets: ArrayBuffer; // usize[bucketsMask + 1]\n private bucketsMask: u32;\n\n // entries in insertion order\n private entries: ArrayBuffer; // MapEntry[entriesCapacity]\n private entriesCapacity: i32;\n private entriesOffset: i32;\n private entriesCount: i32;\n\n get size(): i32 { return this.entriesCount; }\n\n constructor() { this.clear(); }\n\n clear(): void {\n const bucketsSize = INITIAL_CAPACITY * BUCKET_SIZE;\n this.buckets = new ArrayBuffer(bucketsSize);\n this.bucketsMask = INITIAL_CAPACITY - 1;\n const entriesSize = INITIAL_CAPACITY * ENTRY_SIZE();\n this.entries = new ArrayBuffer(entriesSize, true);\n this.entriesCapacity = INITIAL_CAPACITY;\n this.entriesOffset = 0;\n this.entriesCount = 0;\n }\n\n private find(key: K, hashCode: u32): MapEntry | null {\n var entry = load>(\n changetype(this.buckets) + (hashCode & this.bucketsMask) * BUCKET_SIZE,\n HEADER_SIZE_AB\n );\n while (entry) {\n if (!(entry.taggedNext & EMPTY) && entry.key == key) return entry;\n entry = changetype>(entry.taggedNext & ~EMPTY);\n }\n return null;\n }\n\n has(key: K): bool {\n return this.find(key, HASH(key)) !== null;\n }\n\n get(key: K): V {\n var entry = this.find(key, HASH(key));\n return entry ? entry.value : unreachable();\n }\n\n set(key: K, value: V): void {\n var hashCode = HASH(key);\n var entry = this.find(key, hashCode);\n if (entry) {\n entry.value = value;\n } else {\n // check if rehashing is necessary\n if (this.entriesOffset == this.entriesCapacity) {\n this.rehash(\n this.entriesCount < (this.entriesCapacity * FREE_FACTOR)\n ? this.bucketsMask // just rehash if 1/4+ entries are empty\n : (this.bucketsMask << 1) | 1 // grow capacity to next 2^N\n );\n }\n // append new entry\n let entries = this.entries;\n entry = changetype>(\n changetype(entries) + HEADER_SIZE_AB + this.entriesOffset++ * ENTRY_SIZE()\n );\n entry.key = key;\n entry.value = value;\n ++this.entriesCount;\n // link with previous entry in bucket\n let bucketPtrBase = changetype(this.buckets) + (hashCode & this.bucketsMask) * BUCKET_SIZE;\n entry.taggedNext = load(bucketPtrBase, HEADER_SIZE_AB);\n store(bucketPtrBase, changetype(entry), HEADER_SIZE_AB);\n if (isManaged()) __gc_link(changetype(this), changetype(key)); // tslint:disable-line\n if (isManaged()) __gc_link(changetype(this), changetype(value)); // tslint:disable-line\n }\n }\n\n delete(key: K): bool {\n var entry = this.find(key, HASH(key));\n if (!entry) return false;\n entry.taggedNext |= EMPTY;\n --this.entriesCount;\n // check if rehashing is appropriate\n var halfBucketsMask = this.bucketsMask >> 1;\n if (\n halfBucketsMask + 1 >= max(INITIAL_CAPACITY, this.entriesCount) &&\n this.entriesCount < (this.entriesCapacity * FREE_FACTOR)\n ) this.rehash(halfBucketsMask);\n return true;\n }\n\n private rehash(newBucketsMask: u32): void {\n var newBucketsCapacity = (newBucketsMask + 1);\n var newBuckets = new ArrayBuffer(newBucketsCapacity * BUCKET_SIZE);\n var newEntriesCapacity = (newBucketsCapacity * FILL_FACTOR);\n var newEntries = new ArrayBuffer(newEntriesCapacity * ENTRY_SIZE(), true);\n\n // copy old entries to new entries\n var oldPtr = changetype(this.entries) + HEADER_SIZE_AB;\n var oldEnd = oldPtr + this.entriesOffset * ENTRY_SIZE();\n var newPtr = changetype(newEntries) + HEADER_SIZE_AB;\n while (oldPtr != oldEnd) {\n let oldEntry = changetype>(oldPtr);\n if (!(oldEntry.taggedNext & EMPTY)) {\n let newEntry = changetype>(newPtr);\n newEntry.key = oldEntry.key;\n newEntry.value = oldEntry.value;\n let newBucketIndex = HASH(oldEntry.key) & newBucketsMask;\n let newBucketPtrBase = changetype(newBuckets) + newBucketIndex * BUCKET_SIZE;\n newEntry.taggedNext = load(newBucketPtrBase, HEADER_SIZE_AB);\n store(newBucketPtrBase, newPtr, HEADER_SIZE_AB);\n newPtr += ENTRY_SIZE();\n }\n oldPtr += ENTRY_SIZE();\n }\n\n this.buckets = newBuckets;\n this.bucketsMask = newBucketsMask;\n this.entries = newEntries;\n this.entriesCapacity = newEntriesCapacity;\n this.entriesOffset = this.entriesCount;\n }\n\n toString(): string {\n return "[object Map]";\n }\n\n private __gc(): void {\n __gc_mark(changetype(this.buckets)); // tslint:disable-line\n var entries = this.entries;\n __gc_mark(changetype(entries)); // tslint:disable-line\n if (isManaged() || isManaged()) {\n let offset: usize = 0;\n let end: usize = this.entriesOffset * ENTRY_SIZE();\n while (offset < end) {\n let entry = changetype>(\n changetype(entries) + HEADER_SIZE_AB + offset * ENTRY_SIZE()\n );\n if (!(entry.taggedNext & EMPTY)) {\n if (isManaged()) __gc_mark(changetype(entry.key)); // tslint:disable-line\n if (isManaged()) __gc_mark(changetype(entry.value)); // tslint:disable-line\n }\n offset += ENTRY_SIZE();\n }\n }\n }\n}\n',math:'import * as JSMath from "./bindings/Math";\nexport { JSMath };\n\nimport {\n abs as builtin_abs,\n ceil as builtin_ceil,\n clz as builtin_clz,\n copysign as builtin_copysign,\n floor as builtin_floor,\n max as builtin_max,\n min as builtin_min,\n sqrt as builtin_sqrt,\n trunc as builtin_trunc\n} from "./builtins";\n\n// SUN COPYRIGHT NOTICE\n//\n// Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n// Developed at SunPro, a Sun Microsystems, Inc. business.\n// Permission to use, copy, modify, and distribute this software\n// is freely granted, provided that this notice is preserved.\n//\n// Applies to all functions marked with a comment referring here.\n\n// TODO: sin, cos, tan\n\n/** @internal */\nfunction R(z: f64): f64 { // Rational approximation of (asin(x)-x)/x^3\n const // see: musl/src/math/asin.c and SUN COPYRIGHT NOTICE above\n pS0 = reinterpret(0x3FC5555555555555), // 1.66666666666666657415e-01\n pS1 = reinterpret(0xBFD4D61203EB6F7D), // -3.25565818622400915405e-01\n pS2 = reinterpret(0x3FC9C1550E884455), // 2.01212532134862925881e-01\n pS3 = reinterpret(0xBFA48228B5688F3B), // -4.00555345006794114027e-02\n pS4 = reinterpret(0x3F49EFE07501B288), // 7.91534994289814532176e-04\n pS5 = reinterpret(0x3F023DE10DFDF709), // 3.47933107596021167570e-05\n qS1 = reinterpret(0xC0033A271C8A2D4B), // -2.40339491173441421878e+00\n qS2 = reinterpret(0x40002AE59C598AC8), // 2.02094576023350569471e+00\n qS3 = reinterpret(0xBFE6066C1B8D0159), // -6.88283971605453293030e-01\n qS4 = reinterpret(0x3FB3B8C5B12E9282); // 7.70381505559019352791e-02\n var p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5)))));\n var q = 1.0 + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4)));\n return p / q;\n}\n\n@inline /** @internal */\nfunction expo2(x: f64): f64 { // exp(x)/2 for x >= log(DBL_MAX)\n const // see: musl/src/math/__expo2.c\n k = 2043,\n kln2 = reinterpret(0x40962066151ADD8B); // 0x1.62066151add8bp+10\n var scale = reinterpret(((0x3FF + k / 2) << 20) << 32);\n return NativeMath.exp(x - kln2) * scale * scale;\n}\n\nvar random_seeded = false;\nvar random_state0_64: u64;\nvar random_state1_64: u64;\nvar random_state0_32: u32;\nvar random_state1_32: u32;\n\n/** @internal */\nfunction murmurHash3(h: u64): u64 { // Force all bits of a hash block to avalanche\n h ^= h >> 33; // see: https://github.com/aappleby/smhasher\n h *= 0xFF51AFD7ED558CCD;\n h ^= h >> 33;\n h *= 0xC4CEB9FE1A85EC53;\n h ^= h >> 33;\n return h;\n}\n\n/** @internal */\nfunction splitMix32(h: u32): u32 {\n h += 0x6D2B79F5;\n h = (h ^ (h >> 15)) * (h | 1);\n h ^= h + (h ^ (h >> 7)) * (h | 61);\n return h ^ (h >> 14);\n}\n\nexport namespace NativeMath {\n\n export const E = reinterpret(0x4005BF0A8B145769); // 2.7182818284590452354\n export const LN2 = reinterpret(0x3FE62E42FEFA39EF); // 0.69314718055994530942\n export const LN10 = reinterpret(0x40026BB1BBB55516); // 2.30258509299404568402\n export const LOG2E = reinterpret(0x3FF71547652B82FE); // 1.4426950408889634074\n export const LOG10E = reinterpret(0x3FDBCB7B1526E50E); // 0.43429448190325182765\n export const PI = reinterpret(0x400921FB54442D18); // 3.14159265358979323846\n export const SQRT1_2 = reinterpret(0x3FE6A09E667F3BCD); // 0.70710678118654752440\n export const SQRT2 = reinterpret(0x3FF6A09E667F3BCD); // 1.41421356237309504880\n\n @inline\n export function abs(x: f64): f64 {\n return builtin_abs(x);\n }\n\n export function acos(x: f64): f64 { // see: musl/src/math/acos.c and SUN COPYRIGHT NOTICE above\n const\n pio2_hi = reinterpret(0x3FF921FB54442D18), // 1.57079632679489655800e+00\n pio2_lo = reinterpret(0x3C91A62633145C07), // 6.12323399573676603587e-17\n Ox1p_120f = reinterpret(0x03800000);\n var hx = (reinterpret(x) >> 32);\n var ix = hx & 0x7FFFFFFF;\n if (ix >= 0x3FF00000) {\n let lx = reinterpret(x);\n if ((ix - 0x3FF00000 | lx) == 0) {\n if (hx >> 31) return 2 * pio2_hi + Ox1p_120f;\n return 0;\n }\n return 0 / (x - x);\n }\n if (ix < 0x3FE00000) {\n if (ix <= 0x3C600000) return pio2_hi + Ox1p_120f;\n return pio2_hi - (x - (pio2_lo - x * R(x * x)));\n }\n var s: f64, w: f64, z: f64;\n if (hx >> 31) {\n // z = (1.0 + x) * 0.5;\n z = 0.5 + x * 0.5;\n s = builtin_sqrt(z);\n w = R(z) * s - pio2_lo;\n return 2 * (pio2_hi - (s + w));\n }\n // z = (1.0 - x) * 0.5;\n z = 0.5 - x * 0.5;\n s = builtin_sqrt(z);\n var df = reinterpret(reinterpret(s) & 0xFFFFFFFF00000000);\n var c = (z - df * df) / (s + df);\n w = R(z) * s + c;\n return 2 * (df + w);\n }\n\n export function acosh(x: f64): f64 { // see: musl/src/math/acosh.c\n const s = reinterpret(0x3FE62E42FEFA39EF);\n var e = reinterpret(x) >> 52 & 0x7FF;\n if (e < 0x3FF + 1) return log1p(x - 1 + builtin_sqrt((x - 1) * (x - 1) + 2 * (x - 1)));\n if (e < 0x3FF + 26) return log(2 * x - 1 / (x + builtin_sqrt(x * x - 1)));\n return log(x) + s;\n }\n\n export function asin(x: f64): f64 { // see: musl/src/math/asin.c and SUN COPYRIGHT NOTICE above\n const\n pio2_hi = reinterpret(0x3FF921FB54442D18), // 1.57079632679489655800e+00\n pio2_lo = reinterpret(0x3C91A62633145C07), // 6.12323399573676603587e-17\n Ox1p_120f = reinterpret(0x03800000);\n var hx = (reinterpret(x) >> 32);\n var ix = hx & 0x7FFFFFFF;\n if (ix >= 0x3FF00000) {\n let lx = reinterpret(x);\n if ((ix - 0x3FF00000 | lx) == 0) return x * pio2_hi + Ox1p_120f;\n return 0 / (x - x);\n }\n if (ix < 0x3FE00000) {\n if (ix < 0x3E500000 && ix >= 0x00100000) return x;\n return x + x * R(x * x);\n }\n // var z = (1.0 - builtin_abs(x)) * 0.5;\n var z = 0.5 - builtin_abs(x) * 0.5;\n var s = builtin_sqrt(z);\n var r = R(z);\n if (ix >= 0x3FEF3333) x = pio2_hi - (2 * (s + s * r) - pio2_lo);\n else {\n let f = reinterpret(reinterpret(s) & 0xFFFFFFFF00000000);\n let c = (z - f * f) / (s + f);\n x = 0.5 * pio2_hi - (2 * s * r - (pio2_lo - 2 * c) - (0.5 * pio2_hi - 2 * f));\n }\n if (hx >> 31) return -x;\n return x;\n }\n\n export function asinh(x: f64): f64 { // see: musl/src/math/asinh.c\n const c = reinterpret(0x3FE62E42FEFA39EF); // 0.693147180559945309417232121458176568\n var u = reinterpret(x);\n var e = u >> 52 & 0x7FF;\n var y = reinterpret(u & 0x7FFFFFFFFFFFFFFF);\n if (e >= 0x3FF + 26) y = log(y) + c;\n else if (e >= 0x3FF + 1) y = log(2 * y + 1 / (builtin_sqrt(y * y + 1) + y));\n else if (e >= 0x3FF - 26) y = log1p(y + y * y / (builtin_sqrt(y * y + 1) + 1));\n return builtin_copysign(y, x);\n }\n\n export function atan(x: f64): f64 { // see musl/src/math/atan.c and SUN COPYRIGHT NOTICE above\n const\n atanhi0 = reinterpret(0x3FDDAC670561BB4F), // 4.63647609000806093515e-01\n atanhi1 = reinterpret(0x3FE921FB54442D18), // 7.85398163397448278999e-01\n atanhi2 = reinterpret(0x3FEF730BD281F69B), // 9.82793723247329054082e-01\n atanhi3 = reinterpret(0x3FF921FB54442D18), // 1.57079632679489655800e+00\n atanlo0 = reinterpret(0x3C7A2B7F222F65E2), // 2.26987774529616870924e-17\n atanlo1 = reinterpret(0x3C81A62633145C07), // 3.06161699786838301793e-17\n atanlo2 = reinterpret(0x3C7007887AF0CBBD), // 1.39033110312309984516e-17\n atanlo3 = reinterpret(0x3C91A62633145C07), // 6.12323399573676603587e-17\n aT0 = reinterpret(0x3FD555555555550D), // 3.33333333333329318027e-01\n aT1 = reinterpret(0xBFC999999998EBC4), // -1.99999999998764832476e-01\n aT2 = reinterpret(0x3FC24924920083FF), // 1.42857142725034663711e-01\n aT3 = reinterpret(0xBFBC71C6FE231671), // -1.11111104054623557880e-01,\n aT4 = reinterpret(0x3FB745CDC54C206E), // 9.09088713343650656196e-02\n aT5 = reinterpret(0xBFB3B0F2AF749A6D), // -7.69187620504482999495e-02\n aT6 = reinterpret(0x3FB10D66A0D03D51), // 6.66107313738753120669e-02\n aT7 = reinterpret(0xBFADDE2D52DEFD9A), // -5.83357013379057348645e-02\n aT8 = reinterpret(0x3FA97B4B24760DEB), // 4.97687799461593236017e-02\n aT9 = reinterpret(0xBFA2B4442C6A6C2F), // -3.65315727442169155270e-02\n aT10 = reinterpret(0x3F90AD3AE322DA11), // 1.62858201153657823623e-02\n Ox1p_120f = reinterpret(0x03800000);\n var ix = (reinterpret(x) >> 32);\n var sx = x;\n ix &= 0x7FFFFFFF;\n var z: f64;\n if (ix >= 0x44100000) {\n if (isNaN(x)) return x;\n z = atanhi3 + Ox1p_120f;\n return builtin_copysign(z, sx);\n }\n var id: i32;\n if (ix < 0x3FDC0000) {\n if (ix < 0x3E400000) return x;\n id = -1;\n } else {\n x = builtin_abs(x);\n if (ix < 0x3FF30000) {\n if (ix < 0x3FE60000) {\n id = 0;\n x = (2.0 * x - 1.0) / (2.0 + x);\n } else {\n id = 1;\n x = (x - 1.0) / (x + 1.0);\n }\n } else {\n if (ix < 0x40038000) {\n id = 2;\n x = (x - 1.5) / (1.0 + 1.5 * x);\n } else {\n id = 3;\n x = -1.0 / x;\n }\n }\n }\n z = x * x;\n var w = z * z;\n var s1 = z * (aT0 + w * (aT2 + w * (aT4 + w * (aT6 + w * (aT8 + w * aT10)))));\n var s2 = w * (aT1 + w * (aT3 + w * (aT5 + w * (aT7 + w * aT9))));\n var s3 = x * (s1 + s2);\n if (id < 0) return x - s3;\n switch (id) {\n case 0: { z = atanhi0 - ((s3 - atanlo0) - x); break; }\n case 1: { z = atanhi1 - ((s3 - atanlo1) - x); break; }\n case 2: { z = atanhi2 - ((s3 - atanlo2) - x); break; }\n case 3: { z = atanhi3 - ((s3 - atanlo3) - x); break; }\n default: unreachable();\n }\n return builtin_copysign(z, sx);\n }\n\n export function atanh(x: f64): f64 { // see: musl/src/math/atanh.c\n var u = reinterpret(x);\n var e = u >> 52 & 0x7FF;\n var s = u >> 63;\n u &= 0x7FFFFFFFFFFFFFFF;\n var y = reinterpret(u);\n if (e < 0x3FF - 1) {\n if (e >= 0x3FF - 32) y = 0.5 * log1p(2 * y + 2 * y * y / (1 - y));\n } else {\n y = 0.5 * log1p(2 * (y / (1 - y)));\n }\n return builtin_copysign(y, x);\n }\n\n export function atan2(y: f64, x: f64): f64 { // see: musl/src/math/atan2.c and SUN COPYRIGHT NOTICE above\n const pi_lo = reinterpret(0x3CA1A62633145C07); // 1.2246467991473531772E-16\n if (isNaN(x) || isNaN(y)) return x + y;\n var u = reinterpret(x);\n var ix = (u >> 32);\n var lx = u;\n u = reinterpret(y);\n var iy = (u >> 32);\n var ly = u;\n if ((ix - 0x3FF00000 | lx) == 0) return atan(y);\n var m = ((iy >> 31) & 1) | ((ix >> 30) & 2);\n ix = ix & 0x7FFFFFFF;\n iy = iy & 0x7FFFFFFF;\n if ((iy | ly) == 0) {\n switch (m) {\n case 0:\n case 1: return y;\n case 2: return PI;\n case 3: return -PI;\n }\n }\n if ((ix | lx) == 0) return m & 1 ? -PI / 2 : PI / 2;\n if (ix == 0x7FF00000) {\n if (iy == 0x7FF00000) {\n switch (m) {\n case 0: return PI / 4;\n case 1: return -PI / 4;\n case 2: return 3 * PI / 4;\n case 3: return -3 * PI / 4;\n }\n } else {\n switch (m) {\n case 0: return 0.0;\n case 1: return -0.0;\n case 2: return PI;\n case 3: return -PI;\n }\n }\n }\n var z: f64;\n if (ix + (64 << 20) < iy || iy == 0x7FF00000) return m & 1 ? -PI / 2 : PI / 2;\n if ((m & 2) && iy + (64 << 20) < ix) z = 0;\n else z = atan(builtin_abs(y / x));\n switch (m) {\n case 0: return z;\n case 1: return -z;\n case 2: return PI - (z - pi_lo);\n case 3: return (z - pi_lo) - PI;\n }\n unreachable();\n return 0;\n }\n\n export function cbrt(x: f64): f64 { // see: musl/src/math/cbrt.c and SUN COPYRIGHT NOTICE above\n const\n B1 = 715094163,\n B2 = 696219795,\n P0 = reinterpret(0x3FFE03E60F61E692), // 1.87595182427177009643\n P1 = reinterpret(0xBFFE28E092F02420), // -1.88497979543377169875\n P2 = reinterpret(0x3FF9F1604A49D6C2), // 1.621429720105354466140\n P3 = reinterpret(0xBFE844CBBEE751D9), // -0.758397934778766047437\n P4 = reinterpret(0x3FC2B000D4E4EDD7), // 0.145996192886612446982\n Ox1p54 = reinterpret(0x4350000000000000);\n var u = reinterpret(x);\n var hx = (u >> 32) & 0x7FFFFFFF;\n if (hx >= 0x7FF00000) return x + x;\n if (hx < 0x00100000) {\n u = reinterpret(x * Ox1p54);\n hx = (u >> 32) & 0x7FFFFFFF;\n if (hx == 0) return x;\n hx = hx / 3 + B2;\n } else {\n hx = hx / 3 + B1;\n }\n u &= 1 << 63;\n u |= hx << 32;\n var t = reinterpret(u);\n var r = (t * t) * (t / x);\n t = t * ((P0 + r * (P1 + r * P2)) + ((r * r) * r) * (P3 + r * P4));\n t = reinterpret((reinterpret(t) + 0x80000000) & 0xFFFFFFFFC0000000);\n var s = t * t;\n r = x / s;\n r = (r - t) / (2 * t + r);\n t = t + t * r;\n return t;\n }\n\n @inline\n export function ceil(x: f64): f64 {\n return builtin_ceil(x);\n }\n\n @inline\n export function clz32(x: f64): f64 {\n return builtin_clz(x);\n }\n\n export function cos(x: f64): f64 { // TODO\n unreachable();\n return 0;\n }\n\n export function cosh(x: f64): f64 { // see: musl/src/math/cosh.c\n var u = reinterpret(x);\n u &= 0x7FFFFFFFFFFFFFFF;\n x = reinterpret(u);\n var w = (u >> 32);\n var t: f64;\n if (w < 0x3FE62E42) {\n if (w < 0x3FF00000 - (26 << 20)) return 1;\n t = expm1(x);\n // return 1 + t * t / (2 * (1 + t));\n return 1 + t * t / (2 + 2 * t);\n }\n if (w < 0x40862E42) {\n t = exp(x);\n return 0.5 * (t + 1 / t);\n }\n t = expo2(x);\n return t;\n }\n\n export function exp(x: f64): f64 { // see: musl/src/math/exp.c and SUN COPYRIGHT NOTICE above\n const\n ln2hi = reinterpret(0x3FE62E42FEE00000), // 6.93147180369123816490e-01\n ln2lo = reinterpret(0x3DEA39EF35793C76), // 1.90821492927058770002e-10\n invln2 = reinterpret(0x3FF71547652B82FE), // 1.44269504088896338700e+00\n P1 = reinterpret(0x3FC555555555553E), // 1.66666666666666019037e-01\n P2 = reinterpret(0xBF66C16C16BEBD93), // -2.77777777770155933842e-03\n P3 = reinterpret(0x3F11566AAF25DE2C), // 6.61375632143793436117e-05\n P4 = reinterpret(0xBEBBBD41C5D26BF1), // -1.65339022054652515390e-06\n P5 = reinterpret(0x3E66376972BEA4D0), // 4.13813679705723846039e-08\n overflow = reinterpret(0x40862E42FEFA39EF), // 709.782712893383973096\n underflow = reinterpret(0xC0874910D52D3051), // -745.13321910194110842\n Ox1p1023 = reinterpret(0x7FE0000000000000);\n var hx = (reinterpret(x) >> 32);\n var sign_ = (hx >> 31);\n hx &= 0x7FFFFFFF;\n if (hx >= 0x4086232B) {\n if (isNaN(x)) return x;\n if (x > overflow) return x * Ox1p1023;\n if (x < underflow) return 0;\n }\n var hi: f64, lo: f64 = 0;\n var k = 0;\n if (hx > 0x3FD62E42) {\n if (hx >= 0x3FF0A2B2) {\n k = (invln2 * x + builtin_copysign(0.5, x));\n } else {\n k = 1 - (sign_ << 1);\n }\n hi = x - k * ln2hi;\n lo = k * ln2lo;\n x = hi - lo;\n } else if (hx > 0x3E300000) {\n hi = x;\n } else return 1.0 + x;\n var xs = x * x;\n // var c = x - xp2 * (P1 + xp2 * (P2 + xp2 * (P3 + xp2 * (P4 + xp2 * P5))));\n var xq = xs * xs;\n var c = x - (xs * P1 + xq * ((P2 + xs * P3) + xq * (P4 + xs * P5)));\n var y = 1.0 + (x * c / (2 - c) - lo + hi);\n if (k == 0) return y;\n return scalbn(y, k);\n }\n\n export function expm1(x: f64): f64 { // see: musl/src/math/expm1.c and SUN COPYRIGHT NOTICE above\n const\n o_threshold = reinterpret(0x40862E42FEFA39EF), // 7.09782712893383973096e+02\n ln2_hi = reinterpret(0x3FE62E42FEE00000), // 6.93147180369123816490e-01\n ln2_lo = reinterpret(0x3DEA39EF35793C76), // 1.90821492927058770002e-10\n invln2 = reinterpret(0x3FF71547652B82FE), // 1.44269504088896338700e+00\n Q1 = reinterpret(0xBFA11111111110F4), // -3.33333333333331316428e-02\n Q2 = reinterpret(0x3F5A01A019FE5585), // 1.58730158725481460165e-03\n Q3 = reinterpret(0xBF14CE199EAADBB7), // -7.93650757867487942473e-05\n Q4 = reinterpret(0x3ED0CFCA86E65239), // 4.00821782732936239552e-06\n Q5 = reinterpret(0xBE8AFDB76E09C32D), // -2.01099218183624371326e-07\n Ox1p1023 = reinterpret(0x7FE0000000000000);\n var u = reinterpret(x);\n var hx = (u >> 32 & 0x7FFFFFFF);\n var k = 0, sign_ = (u >> 63);\n if (hx >= 0x4043687A) {\n if (isNaN(x)) return x;\n if (sign_) return -1;\n if (x > o_threshold) return x * Ox1p1023;\n }\n var c = 0.0, t: f64;\n if (hx > 0x3FD62E42) {\n k = select(\n 1 - (sign_ << 1),\n (invln2 * x + builtin_copysign(0.5, x)),\n hx < 0x3FF0A2B2\n );\n t = k;\n let hi = x - t * ln2_hi;\n let lo = t * ln2_lo;\n x = hi - lo;\n c = (hi - x) - lo;\n } else if (hx < 0x3C900000) return x;\n var hfx = 0.5 * x;\n var hxs = x * hfx;\n // var r1 = 1.0 + hxs * (Q1 + hxs * (Q2 + hxs * (Q3 + hxs * (Q4 + hxs * Q5))));\n var hxq = hxs * hxs;\n var r1 = (1.0 + hxs * Q1) + hxq * ((Q2 + hxs * Q3) + hxq * (Q4 + hxs * Q5));\n t = 3.0 - r1 * hfx;\n var e = hxs * ((r1 - t) / (6.0 - x * t));\n if (k == 0) return x - (x * e - hxs);\n e = x * (e - c) - c;\n e -= hxs;\n if (k == -1) return 0.5 * (x - e) - 0.5;\n if (k == 1) {\n if (x < -0.25) return -2.0 * (e - (x + 0.5));\n return 1.0 + 2.0 * (x - e);\n }\n u = (0x3FF + k) << 52;\n var twopk = reinterpret(u);\n var y: f64;\n if (k < 0 || k > 56) {\n y = x - e + 1.0;\n if (k == 1024) y = y * 2.0 * Ox1p1023;\n else y = y * twopk;\n return y - 1.0;\n }\n u = (0x3FF - k) << 52;\n y = reinterpret(u);\n if (k < 20) y = (1 - y) - e;\n else y = 1 - (e + y);\n return (x + y) * twopk;\n }\n\n @inline\n export function floor(x: f64): f64 {\n return builtin_floor(x);\n }\n\n @inline\n export function fround(x: f64): f32 {\n return x;\n }\n\n export function hypot(x: f64, y: f64): f64 { // see: musl/src/math/hypot.c\n const\n SPLIT = reinterpret(0x41A0000000000000) + 1, // 0x1p27 + 1\n Ox1p700 = reinterpret(0x6BB0000000000000),\n Ox1p_700 = reinterpret(0x1430000000000000);\n var ux = reinterpret(x);\n var uy = reinterpret(y);\n ux &= 0x7FFFFFFFFFFFFFFF;\n uy &= 0x7FFFFFFFFFFFFFFF;\n if (ux < uy) {\n let ut = ux;\n ux = uy;\n uy = ut;\n }\n var ex = (ux >> 52);\n var ey = (uy >> 52);\n y = reinterpret(uy);\n if (ey == 0x7FF) return y;\n x = reinterpret(ux);\n if (ex == 0x7FF || uy == 0) return x;\n if (ex - ey > 64) return x + y;\n var z = 1.0;\n if (ex > 0x3FF + 510) {\n z = Ox1p700;\n x *= Ox1p_700;\n y *= Ox1p_700;\n } else if (ey < 0x3FF - 450) {\n z = Ox1p_700;\n x *= Ox1p700;\n y *= Ox1p700;\n }\n var c = x * SPLIT;\n var h = x - c + c;\n var l = x - h;\n var hx = x * x;\n var lx = h * h - hx + (2 * h + l) * l;\n c = y * SPLIT;\n h = y - c + c;\n l = y - h;\n var hy = y * y;\n var ly = h * h - hy + (2 * h + l) * l;\n return z * builtin_sqrt(ly + lx + hy + hx);\n }\n\n export function imul(x: f64, y: f64): f64 {\n /*\n * Wasm (MVP) and JS have different approachas for double->int conversions.\n *\n * For emulate JS conversion behavior and avoid trapping from wasm we should modulate by MAX_INT\n * our float-point arguments before actual convertion to integers.\n */\n if (!isFinite(x + y)) return 0;\n const inv32 = 1.0 / 4294967296;\n return (\n (x - 4294967296 * builtin_floor(x * inv32)) *\n (y - 4294967296 * builtin_floor(y * inv32))\n );\n }\n\n export function log(x: f64): f64 { // see: musl/src/math/log.c and SUN COPYRIGHT NOTICE above\n const\n ln2_hi = reinterpret(0x3FE62E42FEE00000), // 6.93147180369123816490e-01\n ln2_lo = reinterpret(0x3DEA39EF35793C76), // 1.90821492927058770002e-10\n Lg1 = reinterpret(0x3FE5555555555593), // 6.666666666666735130e-01\n Lg2 = reinterpret(0x3FD999999997FA04), // 3.999999999940941908e-01\n Lg3 = reinterpret(0x3FD2492494229359), // 2.857142874366239149e-01\n Lg4 = reinterpret(0x3FCC71C51D8E78AF), // 2.222219843214978396e-01\n Lg5 = reinterpret(0x3FC7466496CB03DE), // 1.818357216161805012e-01\n Lg6 = reinterpret(0x3FC39A09D078C69F), // 1.531383769920937332e-01\n Lg7 = reinterpret(0x3FC2F112DF3E5244), // 1.479819860511658591e-01\n Ox1p54 = reinterpret(0x4350000000000000);\n var u = reinterpret(x);\n var hx = (u >> 32);\n var k = 0;\n if (hx < 0x00100000 || (hx >> 31)) {\n if (u << 1 == 0) return -1 / (x * x);\n if (hx >> 31) return (x - x) / 0.0;\n k -= 54;\n x *= Ox1p54;\n u = reinterpret(x);\n hx = (u >> 32);\n } else if (hx >= 0x7FF00000) return x;\n else if (hx == 0x3FF00000 && u << 32 == 0) return 0;\n hx += 0x3FF00000 - 0x3FE6A09E;\n k += (hx >> 20) - 0x3FF;\n hx = (hx & 0x000FFFFF) + 0x3FE6A09E;\n u = hx << 32 | (u & 0xFFFFFFFF);\n x = reinterpret(u);\n var f = x - 1.0;\n var hfsq = 0.5 * f * f;\n var s = f / (2.0 + f);\n var z = s * s;\n var w = z * z;\n var t1 = w * (Lg2 + w * (Lg4 + w * Lg6));\n var t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));\n var r = t2 + t1;\n var dk = k;\n return s * (hfsq + r) + dk * ln2_lo - hfsq + f + dk * ln2_hi;\n }\n\n export function log10(x: f64): f64 { // see: musl/src/math/log10.c and SUN COPYRIGHT NOTICE above\n const\n ivln10hi = reinterpret(0x3FDBCB7B15200000), // 4.34294481878168880939e-01\n ivln10lo = reinterpret(0x3DBB9438CA9AADD5), // 2.50829467116452752298e-11\n log10_2hi = reinterpret(0x3FD34413509F6000), // 3.01029995663611771306e-01\n log10_2lo = reinterpret(0x3D59FEF311F12B36), // 3.69423907715893078616e-13\n Lg1 = reinterpret(0x3FE5555555555593), // 6.666666666666735130e-01\n Lg2 = reinterpret(0x3FD999999997FA04), // 3.999999999940941908e-01\n Lg3 = reinterpret(0x3FD2492494229359), // 2.857142874366239149e-01\n Lg4 = reinterpret(0x3FCC71C51D8E78AF), // 2.222219843214978396e-01\n Lg5 = reinterpret(0x3FC7466496CB03DE), // 1.818357216161805012e-01\n Lg6 = reinterpret(0x3FC39A09D078C69F), // 1.531383769920937332e-01\n Lg7 = reinterpret(0x3FC2F112DF3E5244), // 1.479819860511658591e-01\n Ox1p54 = reinterpret(0x4350000000000000);\n var u = reinterpret(x);\n var hx = (u >> 32);\n var k = 0;\n if (hx < 0x00100000 || (hx >> 31)) {\n if (u << 1 == 0) return -1 / (x * x);\n if (hx >> 31) return (x - x) / 0.0;\n k -= 54;\n x *= Ox1p54;\n u = reinterpret(x);\n hx = (u >> 32);\n } else if (hx >= 0x7FF00000) return x;\n else if (hx == 0x3FF00000 && u << 32 == 0) return 0;\n hx += 0x3FF00000 - 0x3FE6A09E;\n k += (hx >> 20) - 0x3FF;\n hx = (hx & 0x000FFFFF) + 0x3FE6A09E;\n u = hx << 32 | (u & 0xFFFFFFFF);\n x = reinterpret(u);\n var f = x - 1.0;\n var hfsq = 0.5 * f * f;\n var s = f / (2.0 + f);\n var z = s * s;\n var w = z * z;\n var t1 = w * (Lg2 + w * (Lg4 + w * Lg6));\n var t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));\n var r = t2 + t1;\n var hi = f - hfsq;\n u = reinterpret(hi);\n u &= 0xFFFFFFFF00000000;\n hi = reinterpret(u);\n var lo = f - hi - hfsq + s * (hfsq + r);\n var val_hi = hi * ivln10hi;\n var dk = k;\n var y = dk * log10_2hi;\n var val_lo = dk * log10_2lo + (lo + hi) * ivln10lo + lo * ivln10hi;\n w = y + val_hi;\n val_lo += (y - w) + val_hi;\n return val_lo + w;\n }\n\n export function log1p(x: f64): f64 { // see: musl/src/math/log1p.c and SUN COPYRIGHT NOTICE above\n const\n ln2_hi = reinterpret(0x3FE62E42FEE00000), // 6.93147180369123816490e-01\n ln2_lo = reinterpret(0x3DEA39EF35793C76), // 1.90821492927058770002e-10\n Lg1 = reinterpret(0x3FE5555555555593), // 6.666666666666735130e-01\n Lg2 = reinterpret(0x3FD999999997FA04), // 3.999999999940941908e-01\n Lg3 = reinterpret(0x3FD2492494229359), // 2.857142874366239149e-01\n Lg4 = reinterpret(0x3FCC71C51D8E78AF), // 2.222219843214978396e-01\n Lg5 = reinterpret(0x3FC7466496CB03DE), // 1.818357216161805012e-01\n Lg6 = reinterpret(0x3FC39A09D078C69F), // 1.531383769920937332e-01\n Lg7 = reinterpret(0x3FC2F112DF3E5244); // 1.479819860511658591e-01\n var u = reinterpret(x);\n var hx = (u >> 32);\n var k = 1;\n var c = 0.0, f = 0.0;\n if (hx < 0x3FDA827A || (hx >> 31)) {\n if (hx >= 0xBFF00000) {\n if (x == -1) return x / 0.0;\n return (x - x) / 0.0;\n }\n if (hx << 1 < 0x3CA00000 << 1) return x;\n if (hx <= 0xBFD2BEC4) {\n k = 0;\n c = 0;\n f = x;\n }\n } else if (hx >= 0x7FF00000) return x;\n if (k) {\n u = reinterpret(1 + x);\n let hu = (u >> 32);\n hu += 0x3FF00000 - 0x3FE6A09E;\n k = (hu >> 20) - 0x3FF;\n if (k < 54) {\n let uf = reinterpret(u);\n c = k >= 2 ? 1 - (uf - x) : x - (uf - 1);\n c /= uf;\n } else c = 0;\n hu = (hu & 0x000FFFFF) + 0x3FE6A09E;\n u = hu << 32 | (u & 0xFFFFFFFF);\n f = reinterpret(u) - 1;\n }\n var hfsq = 0.5 * f * f;\n var s = f / (2.0 + f);\n var z = s * s;\n var w = z * z;\n var t1 = w * (Lg2 + w * (Lg4 + w * Lg6));\n var t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));\n var r = t2 + t1;\n var dk = k;\n return s * (hfsq + r) + (dk * ln2_lo + c) - hfsq + f + dk * ln2_hi;\n }\n\n export function log2(x: f64): f64 { // see: musl/src/math/log2.c and SUN COPYRIGHT NOTICE above\n const\n ivln2hi = reinterpret(0x3FF7154765200000), // 1.44269504072144627571e+00\n ivln2lo = reinterpret(0x3DE705FC2EEFA200), // 1.67517131648865118353e-10\n Lg1 = reinterpret(0x3FE5555555555593), // 6.666666666666735130e-01\n Lg2 = reinterpret(0x3FD999999997FA04), // 3.999999999940941908e-01\n Lg3 = reinterpret(0x3FD2492494229359), // 2.857142874366239149e-01\n Lg4 = reinterpret(0x3FCC71C51D8E78AF), // 2.222219843214978396e-01\n Lg5 = reinterpret(0x3FC7466496CB03DE), // 1.818357216161805012e-01\n Lg6 = reinterpret(0x3FC39A09D078C69F), // 1.531383769920937332e-01\n Lg7 = reinterpret(0x3FC2F112DF3E5244), // 1.479819860511658591e-01\n Ox1p54 = reinterpret(0x4350000000000000);\n var u = reinterpret(x);\n var hx = (u >> 32);\n var k = 0;\n if (hx < 0x00100000 || (hx >> 31)) {\n if (u << 1 == 0) return -1 / (x * x);\n if (hx >> 31) return (x - x) / 0.0;\n k -= 54;\n x *= Ox1p54;\n u = reinterpret(x);\n hx = (u >> 32);\n } else if (hx >= 0x7FF00000) return x;\n else if (hx == 0x3FF00000 && u << 32 == 0) return 0;\n hx += 0x3FF00000 - 0x3FE6A09E;\n k += (hx >> 20) - 0x3FF;\n hx = (hx & 0x000FFFFF) + 0x3FE6A09E;\n u = hx << 32 | (u & 0xFFFFFFFF);\n x = reinterpret(u);\n var f = x - 1.0;\n var hfsq = 0.5 * f * f;\n var s = f / (2.0 + f);\n var z = s * s;\n var w = z * z;\n var t1 = w * (Lg2 + w * (Lg4 + w * Lg6));\n var t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));\n var r = t2 + t1;\n var hi = f - hfsq;\n u = reinterpret(hi);\n u &= 0xFFFFFFFF00000000;\n hi = reinterpret(u);\n var lo = f - hi - hfsq + s * (hfsq + r);\n var val_hi = hi * ivln2hi;\n var val_lo = (lo + hi) * ivln2lo + lo * ivln2hi;\n var y = k;\n w = y + val_hi;\n val_lo += (y - w) + val_hi;\n val_hi = w;\n return val_lo + val_hi;\n }\n\n @inline\n export function max(value1: f64, value2: f64): f64 {\n return builtin_max(value1, value2);\n }\n\n @inline\n export function min(value1: f64, value2: f64): f64 {\n return builtin_min(value1, value2);\n }\n\n export function pow(x: f64, y: f64): f64 { // see: musl/src/math/pow.c and SUN COPYRIGHT NOTICE above\n const\n dp_h1 = reinterpret(0x3FE2B80340000000), // 5.84962487220764160156e-01\n dp_l1 = reinterpret(0x3E4CFDEB43CFD006), // 1.35003920212974897128e-08\n two53 = reinterpret(0x4340000000000000), // 9007199254740992.0\n huge = reinterpret(0x7E37E43C8800759C), // 1e+300\n tiny = reinterpret(0x01A56E1FC2F8F359), // 1e-300\n L1 = reinterpret(0x3FE3333333333303), // 5.99999999999994648725e-01\n L2 = reinterpret(0x3FDB6DB6DB6FABFF), // 4.28571428578550184252e-01\n L3 = reinterpret(0x3FD55555518F264D), // 3.33333329818377432918e-01\n L4 = reinterpret(0x3FD17460A91D4101), // 2.72728123808534006489e-01\n L5 = reinterpret(0x3FCD864A93C9DB65), // 2.30660745775561754067e-01\n L6 = reinterpret(0x3FCA7E284A454EEF), // 2.06975017800338417784e-01\n P1 = reinterpret(0x3FC555555555553E), // 1.66666666666666019037e-01\n P2 = reinterpret(0xBF66C16C16BEBD93), // -2.77777777770155933842e-03\n P3 = reinterpret(0x3F11566AAF25DE2C), // 6.61375632143793436117e-05\n P4 = reinterpret(0xBEBBBD41C5D26BF1), // -1.65339022054652515390e-06\n P5 = reinterpret(0x3E66376972BEA4D0), // 4.13813679705723846039e-08\n lg2 = reinterpret(0x3FE62E42FEFA39EF), // 6.93147180559945286227e-01\n lg2_h = reinterpret(0x3FE62E4300000000), // 6.93147182464599609375e-01\n lg2_l = reinterpret(0xBE205C610CA86C39), // -1.90465429995776804525e-09\n ovt = reinterpret(0x3C971547652B82FE), // 8.0085662595372944372e-017\n cp = reinterpret(0x3FEEC709DC3A03FD), // 9.61796693925975554329e-01\n cp_h = reinterpret(0x3FEEC709E0000000), // 9.61796700954437255859e-01\n cp_l = reinterpret(0xBE3E2FE0145B01F5), // -7.02846165095275826516e-09\n ivln2 = reinterpret(0x3FF71547652B82FE), // 1.44269504088896338700e+00\n ivln2_h = reinterpret(0x3FF7154760000000), // 1.44269502162933349609e+00\n ivln2_l = reinterpret(0x3E54AE0BF85DDF44), // 1.92596299112661746887e-08\n inv3 = reinterpret(0x3FD5555555555555); // 0.3333333333333333333333\n var u_ = reinterpret(x);\n var hx = (u_ >> 32);\n var lx = u_;\n u_ = reinterpret(y);\n var hy = (u_ >> 32);\n var ly = u_;\n var ix = hx & 0x7FFFFFFF;\n var iy = hy & 0x7FFFFFFF;\n if ((iy | ly) == 0) return 1.0; // x**0 = 1, even if x is NaN\n // if (hx == 0x3FF00000 && lx == 0) return 1.0; // C: 1**y = 1, even if y is NaN, JS: NaN\n if ( // NaN if either arg is NaN\n ix > 0x7FF00000 || (ix == 0x7FF00000 && lx != 0) ||\n iy > 0x7FF00000 || (iy == 0x7FF00000 && ly != 0)\n ) return x + y;\n var yisint = 0, k: i32;\n if (hx < 0) {\n if (iy >= 0x43400000) yisint = 2;\n else if (iy >= 0x3FF00000) {\n k = (iy >> 20) - 0x3FF;\n let kcond = k > 20;\n let offset = select(52, 20, kcond) - k;\n let Ly = select(ly, iy, kcond);\n let jj = Ly >> offset;\n if ((jj << offset) == Ly) yisint = 2 - (jj & 1);\n }\n }\n if (ly == 0) {\n if (iy == 0x7FF00000) { // y is +-inf\n if (((ix - 0x3FF00000) | lx) == 0) return NaN; // C: (-1)**+-inf is 1, JS: NaN\n else if (ix >= 0x3FF00000) return hy >= 0 ? y : 0.0; // (|x|>1)**+-inf = inf,0\n else return hy >= 0 ? 0.0 : -y; // (|x|<1)**+-inf = 0,inf\n }\n if (iy == 0x3FF00000) {\n if (hy >= 0) return x;\n return 1 / x;\n }\n if (hy == 0x40000000) return x * x;\n if (hy == 0x3FE00000) {\n if (hx >= 0) return builtin_sqrt(x);\n }\n }\n var ax = builtin_abs(x), z: f64;\n if (lx == 0) {\n if (ix == 0 || ix == 0x7FF00000 || ix == 0x3FF00000) {\n z = ax;\n if (hy < 0) z = 1.0 / z;\n if (hx < 0) {\n if (((ix - 0x3FF00000) | yisint) == 0) {\n let d = z - z;\n z = d / d;\n } else if (yisint == 1) z = -z;\n }\n return z;\n }\n }\n var s = 1.0;\n if (hx < 0) {\n if (yisint == 0) {\n let d = x - x;\n return d / d;\n }\n if (yisint == 1) s = -1.0;\n }\n var t1: f64, t2: f64, p_h: f64, p_l: f64, r: f64, t: f64, u: f64, v: f64, w: f64;\n var j: i32, n: i32;\n if (iy > 0x41E00000) {\n if (iy > 0x43F00000) {\n if (ix <= 0x3FEFFFFF) return hy < 0 ? huge * huge : tiny * tiny;\n if (ix >= 0x3FF00000) return hy > 0 ? huge * huge : tiny * tiny;\n }\n if (ix < 0x3FEFFFFF) return hy < 0 ? s * huge * huge : s * tiny * tiny;\n if (ix > 0x3FF00000) return hy > 0 ? s * huge * huge : s * tiny * tiny;\n t = ax - 1.0;\n w = (t * t) * (0.5 - t * (inv3 - t * 0.25));\n u = ivln2_h * t;\n v = t * ivln2_l - w * ivln2;\n t1 = u + v;\n t1 = reinterpret(reinterpret(t1) & 0xFFFFFFFF00000000);\n t2 = v - (t1 - u);\n } else {\n let ss: f64, s2: f64, s_h: f64, s_l: f64, t_h: f64, t_l: f64;\n n = 0;\n if (ix < 0x00100000) {\n ax *= two53;\n n -= 53;\n ix = (reinterpret(ax) >> 32);\n }\n n += (ix >> 20) - 0x3FF;\n j = ix & 0x000FFFFF;\n ix = j | 0x3FF00000;\n if (j <= 0x3988E) k = 0;\n else if (j < 0xBB67A) k = 1;\n else {\n k = 0;\n n += 1;\n ix -= 0x00100000;\n }\n ax = reinterpret(reinterpret(ax) & 0xFFFFFFFF | (ix << 32));\n let bp = select(1.5, 1.0, k); // k ? 1.5 : 1.0\n u = ax - bp;\n v = 1.0 / (ax + bp);\n ss = u * v;\n s_h = ss;\n s_h = reinterpret(reinterpret(s_h) & 0xFFFFFFFF00000000);\n t_h = reinterpret((((ix >> 1) | 0x20000000) + 0x00080000 + (k << 18)) << 32);\n t_l = ax - (t_h - bp);\n s_l = v * ((u - s_h * t_h) - s_h * t_l);\n s2 = ss * ss;\n r = s2 * s2 * (L1 + s2 * (L2 + s2 * (L3 + s2 * (L4 + s2 * (L5 + s2 * L6)))));\n r += s_l * (s_h + ss);\n s2 = s_h * s_h;\n t_h = 3.0 + s2 + r;\n t_h = reinterpret(reinterpret(t_h) & 0xFFFFFFFF00000000);\n t_l = r - ((t_h - 3.0) - s2);\n u = s_h * t_h;\n v = s_l * t_h + t_l * ss;\n p_h = u + v;\n p_h = reinterpret(reinterpret(p_h) & 0xFFFFFFFF00000000);\n p_l = v - (p_h - u);\n let z_h = cp_h * p_h;\n let dp_l = select(dp_l1, 0.0, k);\n let z_l = cp_l * p_h + p_l * cp + dp_l;\n t = n;\n let dp_h = select(dp_h1, 0.0, k);\n t1 = ((z_h + z_l) + dp_h) + t;\n t1 = reinterpret(reinterpret(t1) & 0xFFFFFFFF00000000);\n t2 = z_l - (((t1 - t) - dp_h) - z_h);\n }\n var y1 = y;\n y1 = reinterpret(reinterpret(y1) & 0xFFFFFFFF00000000);\n p_l = (y - y1) * t1 + y * t2;\n p_h = y1 * t1;\n z = p_l + p_h;\n u_ = reinterpret(z);\n j = (u_ >> 32);\n var i = u_;\n if (j >= 0x40900000) {\n if (((j - 0x40900000) | i) != 0) return s * huge * huge;\n if (p_l + ovt > z - p_h) return s * huge * huge;\n } else if ((j & 0x7FFFFFFF) >= 0x4090CC00) {\n if (((j - 0xC090CC00) | i) != 0) return s * tiny * tiny;\n if (p_l <= z - p_h) return s * tiny * tiny;\n }\n i = j & 0x7FFFFFFF;\n k = (i >> 20) - 0x3FF;\n n = 0;\n if (i > 0x3FE00000) {\n n = j + (0x00100000 >> (k + 1));\n k = ((n & 0x7FFFFFFF) >> 20) - 0x3FF;\n t = 0.0;\n t = reinterpret((n & ~(0x000FFFFF >> k)) << 32);\n n = ((n & 0x000FFFFF) | 0x00100000) >> (20 - k);\n if (j < 0) n = -n;\n p_h -= t;\n }\n t = p_l + p_h;\n t = reinterpret(reinterpret(t) & 0xFFFFFFFF00000000);\n u = t * lg2_h;\n v = (p_l - (t - p_h)) * lg2 + t * lg2_l;\n z = u + v;\n w = v - (z - u);\n t = z * z;\n t1 = z - t * (P1 + t * (P2 + t * (P3 + t * (P4 + t * P5))));\n r = (z * t1) / (t1 - 2.0) - (w + z * w);\n z = 1.0 - (r - z);\n j = (reinterpret(z) >> 32);\n j += n << 20;\n if ((j >> 20) <= 0) z = scalbn(z, n);\n else z = reinterpret(reinterpret(z) & 0xFFFFFFFF | (j << 32));\n return s * z;\n }\n\n export function seedRandom(value: i64): void {\n assert(value);\n random_seeded = true;\n random_state0_64 = murmurHash3(value);\n random_state1_64 = murmurHash3(~random_state0_64);\n random_state0_32 = splitMix32(value);\n random_state1_32 = splitMix32(random_state0_32);\n }\n\n export function random(): f64 { // see: v8/src/base/random-number-generator.cc\n if (!random_seeded) throw new Error("PRNG must be seeded.");\n var s1 = random_state0_64;\n var s0 = random_state1_64;\n random_state0_64 = s0;\n s1 ^= s1 << 23;\n s1 ^= s1 >> 17;\n s1 ^= s0;\n s1 ^= s0 >> 26;\n random_state1_64 = s1;\n var r = ((s0 + s1) & 0x000FFFFFFFFFFFFF) | 0x3FF0000000000000;\n return reinterpret(r) - 1;\n }\n\n @inline\n export function round(x: f64): f64 {\n return builtin_copysign(builtin_floor(x + 0.5), x);\n }\n\n @inline\n export function sign(x: f64): f64 {\n if (ASC_SHRINK_LEVEL > 0) {\n return builtin_abs(x) > 0 ? builtin_copysign(1, x) : x;\n } else {\n return x > 0 ? 1 : x < 0 ? -1 : x;\n }\n }\n\n @inline\n export function signbit(x: f64): bool {\n // In ECMAScript all NaN values are indistinguishable from each other\n // so we need handle NaN and negative NaN in similar way\n return ((reinterpret(x) >>> 63) & (x == x));\n }\n\n export function sin(x: f64): f64 { // TODO\n unreachable();\n return 0;\n }\n\n export function sinh(x: f64): f64 { // see: musl/src/math/sinh.c\n var u = reinterpret(x) & 0x7FFFFFFFFFFFFFFF;\n var absx = reinterpret(u);\n var w = (u >> 32);\n var t: f64;\n var h = builtin_copysign(0.5, x);\n if (w < 0x40862E42) {\n t = expm1(absx);\n if (w < 0x3FF00000) {\n if (w < 0x3FF00000 - (26 << 20)) return x;\n return h * (2 * t - t * t / (t + 1));\n }\n return h * (t + t / (t + 1));\n }\n t = 2 * h * expo2(absx);\n return t;\n }\n\n @inline\n export function sqrt(x: f64): f64 {\n return builtin_sqrt(x);\n }\n\n export function tan(x: f64): f64 { // TODO\n unreachable();\n return 0;\n }\n\n export function tanh(x: f64): f64 { // see: musl/src/math/tanh.c\n var u = reinterpret(x);\n u &= 0x7FFFFFFFFFFFFFFF;\n var y = reinterpret(u);\n var w = (u >> 32);\n var t: f64;\n if (w > 0x3FE193EA) {\n if (w > 0x40340000) {\n t = 1 - 0 / y;\n } else {\n t = expm1(2 * y);\n t = 1 - 2 / (t + 2);\n }\n } else if (w > 0x3FD058AE) {\n t = expm1(2 * y);\n t = t / (t + 2);\n } else if (w >= 0x00100000) {\n t = expm1(-2 * y);\n t = -t / (t + 2);\n } else t = y;\n return builtin_copysign(t, x);\n }\n\n @inline\n export function trunc(x: f64): f64 {\n return builtin_trunc(x);\n }\n\n /** @internal */\n export function scalbn(x: f64, n: i32): f64 { // see: https://git.musl-libc.org/cgit/musl/tree/src/math/scalbn.c\n const\n Ox1p53 = reinterpret(0x4340000000000000),\n Ox1p1023 = reinterpret(0x7FE0000000000000),\n Ox1p_1022 = reinterpret(0x0010000000000000);\n var y = x;\n if (n > 1023) {\n y *= Ox1p1023;\n n -= 1023;\n if (n > 1023) {\n y *= Ox1p1023;\n n = builtin_min(n - 1023, 1023);\n }\n } else if (n < -1022) {\n /* make sure final n < -53 to avoid double\n\t\t rounding in the subnormal range */\n y *= Ox1p_1022 * Ox1p53;\n n += 1022 - 53;\n if (n < -1022) {\n y *= Ox1p_1022 * Ox1p53;\n n = builtin_max(n + 1022 - 53, -1022);\n }\n }\n return y * reinterpret((0x3FF + n) << 52);\n }\n\n export function mod(x: f64, y: f64): f64 { // see: musl/src/math/fmod.c\n var ux = reinterpret(x);\n var uy = reinterpret(y);\n var ex = (ux >> 52 & 0x7FF);\n var ey = (uy >> 52 & 0x7FF);\n var sx = ux >> 63;\n var uy1 = uy << 1;\n if (uy1 == 0 || ex == 0x7FF || isNaN(y)) {\n let m = x * y;\n return m / m;\n }\n var ux1 = ux << 1;\n if (ux1 <= uy1) {\n if (ux1 == uy1) return 0 * x;\n return x;\n }\n if (!ex) {\n ex -= builtin_clz(ux << 12);\n ux <<= -ex + 1;\n } else {\n ux &= -1 >> 12;\n ux |= 1 << 52;\n }\n if (!ey) {\n ey -= builtin_clz(uy << 12);\n uy <<= -ey + 1;\n } else {\n uy &= -1 >> 12;\n uy |= 1 << 52;\n }\n while (ex > ey) {\n if (ux >= uy) {\n if (ux == uy) return 0 * x;\n ux -= uy;\n }\n ux <<= 1;\n --ex;\n }\n if (ux >= uy) {\n if (ux == uy) return 0 * x;\n ux -= uy;\n }\n // for (; !(ux >> 52); ux <<= 1) --ex;\n var shift = builtin_clz(ux << 11);\n ex -= shift;\n ux <<= shift;\n if (ex > 0) {\n ux -= 1 << 52;\n ux |= ex << 52;\n } else {\n ux >>= -ex + 1;\n }\n ux |= sx << 63;\n return reinterpret(ux);\n }\n\n export function rem(x: f64, y: f64): f64 { // see: musl/src/math/remquo.c\n var ux = reinterpret(x);\n var uy = reinterpret(y);\n var ex = (ux >> 52 & 0x7FF);\n var ey = (uy >> 52 & 0x7FF);\n var sx = (ux >> 63);\n if (uy << 1 == 0 || ex == 0x7FF || isNaN(y)) {\n let m = x * y;\n return m / m;\n }\n if (ux << 1 == 0) return x;\n var uxi = ux;\n if (!ex) {\n ex -= builtin_clz(uxi << 12);\n uxi <<= -ex + 1;\n } else {\n uxi &= -1 >> 12;\n uxi |= 1 << 52;\n }\n if (!ey) {\n ey -= builtin_clz(uy << 12);\n uy <<= -ey + 1;\n } else {\n uy &= -1 >> 12;\n uy |= 1 << 52;\n }\n var q: u32 = 0;\n do {\n if (ex < ey) {\n if (ex + 1 == ey) break; // goto end\n return x;\n }\n while (ex > ey) {\n if (uxi >= uy) {\n uxi -= uy;\n ++q;\n }\n uxi <<= 1;\n q <<= 1;\n --ex;\n }\n if (uxi >= uy) {\n uxi -= uy;\n ++q;\n }\n if (uxi == 0) ex = -60;\n else {\n let shift = builtin_clz(uxi << 11);\n ex -= shift;\n uxi <<= shift;\n }\n break;\n } while (false);\n // end:\n if (ex > 0) {\n uxi -= 1 << 52;\n uxi |= ex << 52;\n } else {\n uxi >>= -ex + 1;\n }\n x = reinterpret(uxi);\n y = builtin_abs(y);\n var x2 = x + x;\n if (ex == ey || (ex + 1 == ey && (x2 > y || (x2 == y && (q & 1))))) {\n x -= y;\n // ++q;\n }\n return sx ? -x : x;\n }\n}\n\n/** @internal */\nfunction Rf(z: f32): f32 { // Rational approximation of (asin(x)-x)/x^3\n const // see: musl/src/math/asinf.c and SUN COPYRIGHT NOTICE above\n pS0 = reinterpret(0x3E2AAA75), // 1.6666586697e-01f\n pS1 = reinterpret(0xBD2F13BA), // -4.2743422091e-02f\n pS2 = reinterpret(0xBC0DD36B), // -8.6563630030e-03f\n qS1 = reinterpret(0xBF34E5AE); // -7.0662963390e-01f\n var p = z * (pS0 + z * (pS1 + z * pS2));\n var q: f32 = 1 + z * qS1;\n return p / q;\n}\n\n@inline /** @internal */\nfunction expo2f(x: f32): f32 { // exp(x)/2 for x >= log(DBL_MAX)\n const // see: musl/src/math/__expo2f.c\n k = 235,\n kln2 = reinterpret(0x4322E3BC); // 0x1.45c778p+7f\n var scale = reinterpret((0x7F + (k >> 1)) << 23);\n return NativeMathf.exp(x - kln2) * scale * scale;\n}\n\nexport namespace NativeMathf {\n\n export const E = NativeMath.E;\n export const LN2 = NativeMath.LN2;\n export const LN10 = NativeMath.LN10;\n export const LOG2E = NativeMath.LOG2E;\n export const LOG10E = NativeMath.LOG10E;\n export const PI = NativeMath.PI;\n export const SQRT1_2 = NativeMath.SQRT1_2;\n export const SQRT2 = NativeMath.SQRT2;\n\n @inline\n export function abs(x: f32): f32 {\n return builtin_abs(x);\n }\n\n export function acos(x: f32): f32 { // see: musl/src/math/acosf.c and SUN COPYRIGHT NOTICE above\n const\n pio2_hi = reinterpret(0x3FC90FDA), // 1.5707962513e+00f\n pio2_lo = reinterpret(0x33A22168), // 7.5497894159e-08f\n Ox1p_120f = reinterpret(0x03800000);\n var hx = reinterpret(x);\n var ix = hx & 0x7FFFFFFF;\n if (ix >= 0x3F800000) {\n if (ix == 0x3F800000) {\n if (hx >> 31) return 2 * pio2_hi + Ox1p_120f;\n return 0;\n }\n return 0 / (x - x);\n }\n if (ix < 0x3F000000) {\n if (ix <= 0x32800000) return pio2_hi + Ox1p_120f;\n return pio2_hi - (x - (pio2_lo - x * Rf(x * x)));\n }\n var z: f32, w: f32, s: f32;\n if (hx >> 31) {\n // z = (1 + x) * 0.5;\n z = 0.5 + x * 0.5;\n s = builtin_sqrt(z);\n w = Rf(z) * s - pio2_lo;\n return 2 * (pio2_hi - (s + w));\n }\n // z = (1 - x) * 0.5;\n z = 0.5 - x * 0.5;\n s = builtin_sqrt(z);\n hx = reinterpret(s);\n var df = reinterpret(hx & 0xFFFFF000);\n var c = (z - df * df) / (s + df);\n w = Rf(z) * s + c;\n return 2 * (df + w);\n }\n\n export function acosh(x: f32): f32 { // see: musl/src/math/acoshf.c\n const s = reinterpret(0x3F317218); // 0.693147180559945309417232121458176568f\n var u = reinterpret(x);\n var a = u & 0x7FFFFFFF;\n if (a < 0x3F800000 + (1 << 23)) {\n let xm1 = x - 1;\n return log1p(xm1 + builtin_sqrt(xm1 * (xm1 + 2)));\n }\n if (a < 0x3F800000 + (12 << 23)) return log(2 * x - 1 / (x + builtin_sqrt(x * x - 1)));\n return log(x) + s;\n }\n\n export function asin(x: f32): f32 { // see: musl/src/math/asinf.c and SUN COPYRIGHT NOTICE above\n const\n pio2 = reinterpret(0x3FC90FDB), // 1.570796326794896558e+00f\n Ox1p_120f = reinterpret(0x03800000);\n var sx = x;\n var hx = reinterpret(x) & 0x7FFFFFFF;\n if (hx >= 0x3F800000) {\n if (hx == 0x3F800000) return x * pio2 + Ox1p_120f;\n return 0 / (x - x);\n }\n if (hx < 0x3F000000) {\n if (hx < 0x39800000 && hx >= 0x00800000) return x;\n return x + x * Rf(x * x);\n }\n // var z: f32 = (1 - builtin_abs(x)) * 0.5;\n var z: f32 = 0.5 - builtin_abs(x) * 0.5;\n var s = builtin_sqrt(z); // sic\n x = (pio2 - 2 * (s + s * Rf(z)));\n return builtin_copysign(x, sx);\n }\n\n export function asinh(x: f32): f32 { // see: musl/src/math/asinhf.c\n const c = reinterpret(0x3F317218); // 0.693147180559945309417232121458176568f\n var u = reinterpret(x) & 0x7FFFFFFF;\n var y = reinterpret(u);\n if (u >= 0x3F800000 + (12 << 23)) y = log(y) + c;\n else if (u >= 0x3F800000 + (1 << 23)) y = log(2 * y + 1 / (builtin_sqrt(y * y + 1) + y));\n else if (u >= 0x3F800000 - (12 << 23)) y = log1p(y + y * y / (builtin_sqrt(y * y + 1) + 1));\n return builtin_copysign(y, x);\n }\n\n export function atan(x: f32): f32 { // see: musl/src/math/atanf.c and SUN COPYRIGHT NOTICE above\n const\n atanhi0 = reinterpret(0x3EED6338), // 4.6364760399e-01f\n atanhi1 = reinterpret(0x3F490FDA), // 7.8539812565e-01f\n atanhi2 = reinterpret(0x3F7B985E), // 9.8279368877e-01f\n atanhi3 = reinterpret(0x3FC90FDA), // 1.5707962513e+00f\n atanlo0 = reinterpret(0x31AC3769), // 5.0121582440e-09f\n atanlo1 = reinterpret(0x33222168), // 3.7748947079e-08f\n atanlo2 = reinterpret(0x33140FB4), // 3.4473217170e-08f\n atanlo3 = reinterpret(0x33A22168), // 7.5497894159e-08f\n aT0 = reinterpret(0x3EAAAAA9), // 3.3333328366e-01f\n aT1 = reinterpret(0xBE4CCA98), // -1.9999158382e-01f\n aT2 = reinterpret(0x3E11F50D), // 1.4253635705e-01f\n aT3 = reinterpret(0xBDDA1247), // -1.0648017377e-01f\n aT4 = reinterpret(0x3D7CAC25), // 6.1687607318e-02f\n Ox1p_120f = reinterpret(0x03800000);\n var ix = reinterpret(x);\n var sx = x;\n ix &= 0x7FFFFFFF;\n var z: f32;\n if (ix >= 0x4C800000) {\n if (isNaN(x)) return x;\n z = atanhi3 + Ox1p_120f;\n return builtin_copysign(z, sx);\n }\n var id: i32;\n if (ix < 0x3EE00000) {\n if (ix < 0x39800000) return x;\n id = -1;\n } else {\n x = builtin_abs(x);\n if (ix < 0x3F980000) {\n if (ix < 0x3F300000) {\n id = 0;\n x = (2.0 * x - 1.0) / (2.0 + x);\n } else {\n id = 1;\n x = (x - 1.0) / (x + 1.0);\n }\n } else {\n if (ix < 0x401C0000) {\n id = 2;\n x = (x - 1.5) / (1.0 + 1.5 * x);\n } else {\n id = 3;\n x = -1.0 / x;\n }\n }\n }\n z = x * x;\n var w = z * z;\n var s1 = z * (aT0 + w * (aT2 + w * aT4));\n var s2 = w * (aT1 + w * aT3);\n var s3 = x * (s1 + s2);\n if (id < 0) return x - s3;\n switch (id) {\n case 0: { z = atanhi0 - ((s3 - atanlo0) - x); break; }\n case 1: { z = atanhi1 - ((s3 - atanlo1) - x); break; }\n case 2: { z = atanhi2 - ((s3 - atanlo2) - x); break; }\n case 3: { z = atanhi3 - ((s3 - atanlo3) - x); break; }\n default: unreachable();\n }\n return builtin_copysign(z, sx);\n }\n\n export function atanh(x: f32): f32 { // see: musl/src/math/atanhf.c\n var u = reinterpret(x);\n u &= 0x7FFFFFFF;\n var y = reinterpret(u);\n if (u < 0x3F800000 - (1 << 23)) {\n if (u >= 0x3F800000 - (32 << 23)) y = 0.5 * log1p(2 * y * (1.0 + y / (1 - y)));\n } else y = 0.5 * log1p(2 * (y / (1 - y)));\n return builtin_copysign(y, x);\n }\n\n export function atan2(y: f32, x: f32): f32 { // see: musl/src/math/atan2f.c and SUN COPYRIGHT NOTICE above\n const\n pi = reinterpret(0x40490FDB), // 3.1415927410e+00f\n pi_lo = reinterpret(0xB3BBBD2E); // -8.7422776573e-08f\n if (isNaN(x) || isNaN(y)) return x + y;\n var ix = reinterpret(x);\n var iy = reinterpret(y);\n if (ix == 0x3F800000) return atan(y);\n var m = (((iy >> 31) & 1) | ((ix >> 30) & 2));\n ix &= 0x7FFFFFFF;\n iy &= 0x7FFFFFFF;\n if (iy == 0) {\n switch (m) {\n case 0:\n case 1: return y;\n case 2: return pi;\n case 3: return -pi;\n }\n }\n if (ix == 0) return m & 1 ? -pi / 2 : pi / 2;\n if (ix == 0x7F800000) {\n if (iy == 0x7F800000) {\n switch (m) {\n case 0: return pi / 4;\n case 1: return -pi / 4;\n case 2: return 3 * pi / 4;\n case 3: return -3 * pi / 4;\n }\n } else {\n switch (m) {\n case 0: return 0;\n case 1: return -0;\n case 2: return pi;\n case 3: return -pi;\n }\n }\n }\n if (ix + (26 << 23) < iy || iy == 0x7F800000) return m & 1 ? -pi / 2 : pi / 2;\n var z: f32;\n if ((m & 2) && iy + (26 << 23) < ix) z = 0.0;\n else z = atan(builtin_abs(y / x));\n switch (m) {\n case 0: return z;\n case 1: return -z;\n case 2: return pi - (z - pi_lo);\n case 3: return (z - pi_lo) - pi;\n }\n unreachable();\n return 0;\n }\n\n export function cbrt(x: f32): f32 { // see: musl/src/math/cbrtf.c and SUN COPYRIGHT NOTICE above\n const\n B1 = 709958130,\n B2 = 642849266,\n Ox1p24f = reinterpret(0x4B800000);\n var u = reinterpret(x);\n var hx = u & 0x7FFFFFFF;\n if (hx >= 0x7F800000) return x + x;\n if (hx < 0x00800000) {\n if (hx == 0) return x;\n u = reinterpret(x * Ox1p24f);\n hx = u & 0x7FFFFFFF;\n hx = hx / 3 + B2;\n } else {\n hx = hx / 3 + B1;\n }\n u &= 0x80000000;\n u |= hx;\n var t = reinterpret(u);\n var r = t * t * t;\n t = t * (x + x + r) / (x + r + r);\n r = t * t * t;\n t = t * (x + x + r) / (x + r + r);\n return t;\n }\n\n @inline\n export function ceil(x: f32): f32 {\n return builtin_ceil(x);\n }\n\n @inline\n export function clz32(x: f32): f32 {\n return builtin_clz(x);\n }\n\n export function cos(x: f32): f32 { // TODO\n unreachable();\n return 0;\n }\n\n export function cosh(x: f32): f32 { // see: musl/src/math/coshf.c\n var u = reinterpret(x);\n u &= 0x7FFFFFFF;\n x = reinterpret(u);\n if (u < 0x3F317217) {\n if (u < 0x3F800000 - (12 << 23)) return 1;\n let t = expm1(x);\n // return 1 + t * t / (2 * (1 + t));\n return 1 + t * t / (2 + 2 * t);\n }\n if (u < 0x42B17217) {\n let t = exp(x);\n // return 0.5 * (t + 1 / t);\n return 0.5 * t + 0.5 / t;\n }\n return expo2f(x);\n }\n\n @inline\n export function floor(x: f32): f32 {\n return builtin_floor(x);\n }\n\n export function exp(x: f32): f32 { // see: musl/src/math/expf.c and SUN COPYRIGHT NOTICE above\n const\n ln2hi = reinterpret(0x3F317200), // 6.9314575195e-1f\n ln2lo = reinterpret(0x35BFBE8E), // 1.4286067653e-6f\n invln2 = reinterpret(0x3FB8AA3B), // 1.4426950216e+0f\n P1 = reinterpret(0x3E2AAA8F), // 1.6666625440e-1f\n P2 = reinterpret(0xBB355215), // -2.7667332906e-3f\n Ox1p127f = reinterpret(0x7F000000);\n var hx = reinterpret(x);\n var sign_ = (hx >> 31);\n hx &= 0x7FFFFFFF;\n if (hx >= 0x42AEAC50) {\n if (hx >= 0x42B17218) {\n if (!sign_) return x * Ox1p127f;\n else if (hx >= 0x42CFF1B5) return 0;\n }\n }\n var hi: f32, lo: f32;\n var k: i32;\n if (hx > 0x3EB17218) {\n if (hx > 0x3F851592) {\n k = (invln2 * x + builtin_copysign(0.5, x));\n } else {\n k = 1 - (sign_ << 1);\n }\n hi = x - k * ln2hi;\n lo = k * ln2lo;\n x = hi - lo;\n } else if (hx > 0x39000000) {\n k = 0;\n hi = x;\n lo = 0;\n } else {\n return 1 + x;\n }\n var xx = x * x;\n var c = x - xx * (P1 + xx * P2);\n var y: f32 = 1 + (x * c / (2 - c) - lo + hi);\n if (k == 0) return y;\n return scalbn(y, k);\n }\n\n export function expm1(x: f32): f32 { // see: musl/src/math/expm1f.c and SUN COPYRIGHT NOTICE above\n const\n o_threshold = reinterpret(0x42B17180), // 8.8721679688e+01f\n ln2_hi = reinterpret(0x3F317180), // 6.9313812256e-01f\n ln2_lo = reinterpret(0x3717F7D1), // 9.0580006145e-06f\n invln2 = reinterpret(0x3FB8AA3B), // 1.4426950216e+00f\n Q1 = reinterpret(0xBD088868), // -3.3333212137e-02f\n Q2 = reinterpret(0x3ACF3010), // 1.5807170421e-03f\n Ox1p127f = reinterpret(0x7F000000);\n var u = reinterpret(x);\n var hx = u & 0x7FFFFFFF;\n var sign_ = (u >> 31);\n if (hx >= 0x4195B844) {\n if (hx > 0x7F800000) return x;\n if (sign_) return -1;\n if (x > o_threshold) {\n x *= Ox1p127f;\n return x;\n }\n }\n var c: f32 = 0.0, t: f32, k: i32;\n if (hx > 0x3EB17218) {\n k = select(\n 1 - (sign_ << 1),\n (invln2 * x + builtin_copysign(0.5, x)),\n hx < 0x3F851592\n );\n t = k;\n let hi = x - t * ln2_hi;\n let lo = t * ln2_lo;\n x = hi - lo;\n c = (hi - x) - lo;\n } else if (hx < 0x33000000) {\n return x;\n } else k = 0;\n var hfx: f32 = 0.5 * x;\n var hxs: f32 = x * hfx;\n var r1: f32 = 1.0 + hxs * (Q1 + hxs * Q2);\n t = 3.0 - r1 * hfx;\n var e = hxs * ((r1 - t) / (6.0 - x * t));\n if (k == 0) return x - (x * e - hxs);\n e = x * (e - c) - c;\n e -= hxs;\n if (k == -1) return 0.5 * (x - e) - 0.5;\n if (k == 1) {\n if (x < -0.25) return -2.0 * (e - (x + 0.5));\n return 1.0 + 2.0 * (x - e);\n }\n u = (0x7F + k) << 23;\n var twopk = reinterpret(u);\n var y: f32;\n if (k < 0 || k > 56) {\n y = x - e + 1.0;\n if (k == 128) y = y * 2.0 * Ox1p127f;\n else y = y * twopk;\n return y - 1.0;\n }\n u = (0x7F - k) << 23;\n y = reinterpret(u);\n if (k < 20) y = (1 - y) - e;\n else y = 1 - (e + y);\n return (x + y) * twopk;\n }\n\n @inline\n export function fround(x: f32): f32 {\n return x;\n }\n\n export function hypot(x: f32, y: f32): f32 { // see: musl/src/math/hypotf.c\n const\n Ox1p90f = reinterpret(0x6C800000),\n Ox1p_90f = reinterpret(0x12800000);\n var ux = reinterpret(x);\n var uy = reinterpret(y);\n ux &= 0x7FFFFFFF;\n uy &= 0x7FFFFFFF;\n if (ux < uy) {\n let ut = ux;\n ux = uy;\n uy = ut;\n }\n x = reinterpret(ux);\n y = reinterpret(uy);\n if (uy == 0xFF << 23) return y;\n if (ux >= 0xFF << 23 || uy == 0 || ux - uy >= 25 << 23) return x + y;\n var z: f32 = 1;\n if (ux >= (0x7F + 60) << 23) {\n z = Ox1p90f;\n x *= Ox1p_90f;\n y *= Ox1p_90f;\n } else if (uy < (0x7F - 60) << 23) {\n z = Ox1p_90f;\n x *= Ox1p90f;\n y *= Ox1p90f;\n }\n return z * builtin_sqrt((x * x + y * y));\n }\n\n @inline\n export function imul(x: f32, y: f32): f32 {\n return (x * y);\n }\n\n export function log(x: f32): f32 { // see: musl/src/math/logf.c and SUN COPYRIGHT NOTICE above\n const\n ln2_hi = reinterpret(0x3F317180), // 6.9313812256e-01f\n ln2_lo = reinterpret(0x3717F7D1), // 9.0580006145e-06f\n Lg1 = reinterpret(0x3F2AAAAA), // 0xaaaaaa.0p-24f\n Lg2 = reinterpret(0x3ECCCE13), // 0xccce13.0p-25f\n Lg3 = reinterpret(0x3E91E9EE), // 0x91e9ee.0p-25f\n Lg4 = reinterpret(0x3E789E26), // 0xf89e26.0p-26f\n Ox1p25f = reinterpret(0x4C000000);\n var u = reinterpret(x);\n var k = 0;\n if (u < 0x00800000 || (u >> 31)) {\n if (u << 1 == 0) return -1 / (x * x);\n if (u >> 31) return (x - x) / 0;\n k -= 25;\n x *= Ox1p25f;\n u = reinterpret(x);\n } else if (u >= 0x7F800000) return x;\n else if (u == 0x3F800000) return 0;\n u += 0x3F800000 - 0x3F3504F3;\n k += (u >> 23) - 0x7F;\n u = (u & 0x007FFFFF) + 0x3F3504F3;\n x = reinterpret(u);\n var f = x - 1.0;\n var s = f / (2.0 + f);\n var z = s * s;\n var w = z * z;\n var t1 = w * (Lg2 + w * Lg4);\n var t2 = z * (Lg1 + w * Lg3);\n var r = t2 + t1;\n var hfsq = 0.5 * f * f;\n var dk = k;\n return s * (hfsq + r) + dk * ln2_lo - hfsq + f + dk * ln2_hi;\n }\n\n export function log10(x: f32): f32 { // see: musl/src/math/log10f.c and SUN COPYRIGHT NOTICE above\n const\n ivln10hi = reinterpret(0x3EDE6000), // 4.3432617188e-01f\n ivln10lo = reinterpret(0xB804EAD9), // -3.1689971365e-05f\n log10_2hi = reinterpret(0x3E9A2080), // 3.0102920532e-01f\n log10_2lo = reinterpret(0x355427DB), // 7.9034151668e-07f\n Lg1 = reinterpret(0x3F2AAAAA), // 0xaaaaaa.0p-24f, 0.66666662693f\n Lg2 = reinterpret(0x3ECCCE13), // 0xccce13.0p-25f, 0.40000972152f\n Lg3 = reinterpret(0x3E91E9EE), // 0x91e9ee.0p-25f, 0.28498786688f\n Lg4 = reinterpret(0x3E789E26), // 0xf89e26.0p-26f, 0.24279078841f\n Ox1p25f = reinterpret(0x4C000000);\n var ix = reinterpret(x);\n var k = 0;\n if (ix < 0x00800000 || (ix >> 31)) {\n if (ix << 1 == 0) return -1 / (x * x);\n if (ix >> 31) return (x - x) / 0.0;\n k -= 25;\n x *= Ox1p25f;\n ix = reinterpret(x);\n } else if (ix >= 0x7F800000) return x;\n else if (ix == 0x3F800000) return 0;\n ix += 0x3F800000 - 0x3F3504F3;\n k += (ix >> 23) - 0x7F;\n ix = (ix & 0x007FFFFF) + 0x3F3504F3;\n x = reinterpret(ix);\n var f = x - 1.0;\n var s = f / (2.0 + f);\n var z = s * s;\n var w = z * z;\n var t1 = w * (Lg2 + w * Lg4);\n var t2 = z * (Lg1 + w * Lg3);\n var r = t2 + t1;\n var hfsq: f32 = 0.5 * f * f;\n var hi = f - hfsq;\n ix = reinterpret(hi);\n ix &= 0xFFFFF000;\n hi = reinterpret(ix);\n var lo = f - hi - hfsq + s * (hfsq + r);\n var dk = k;\n return dk * log10_2lo + (lo + hi) * ivln10lo + lo * ivln10hi + hi * ivln10hi + dk * log10_2hi;\n }\n\n export function log1p(x: f32): f32 { // see: musl/src/math/log1pf.c and SUN COPYRIGHT NOTICE above\n const\n ln2_hi = reinterpret(0x3F317180), // 6.9313812256e-01\n ln2_lo = reinterpret(0x3717F7D1), // 9.0580006145e-06\n Lg1 = reinterpret(0x3F2AAAAA), // 0xaaaaaa.0p-24f, 0.66666662693f\n Lg2 = reinterpret(0x3ECCCE13), // 0xccce13.0p-25f, 0.40000972152f\n Lg3 = reinterpret(0x3E91E9EE), // 0x91e9ee.0p-25f, 0.28498786688f\n Lg4 = reinterpret(0x3E789E26); // 0xf89e26.0p-26f, 0.24279078841f\n var ix = reinterpret(x);\n var c: f32 = 0, f: f32 = 0;\n var k: i32 = 1;\n if (ix < 0x3ED413D0 || (ix >> 31)) {\n if (ix >= 0xBF800000) {\n if (x == -1) return x / 0.0;\n return (x - x) / 0.0;\n }\n if (ix << 1 < 0x33800000 << 1) return x;\n if (ix <= 0xBE95F619) {\n k = 0;\n c = 0;\n f = x;\n }\n } else if (ix >= 0x7F800000) return x;\n if (k) {\n let uf: f32 = 1 + x;\n let iu = reinterpret(uf);\n iu += 0x3F800000 - 0x3F3504F3;\n k = (iu >> 23) - 0x7F;\n if (k < 25) {\n c = k >= 2 ? 1 - (uf - x) : x - (uf - 1);\n c /= uf;\n } else c = 0;\n iu = (iu & 0x007FFFFF) + 0x3F3504F3;\n f = reinterpret(iu) - 1;\n }\n var s = f / (2.0 + f);\n var z = s * s;\n var w = z * z;\n var t1 = w * (Lg2 + w * Lg4);\n var t2 = z * (Lg1 + w * Lg3);\n var r = t2 + t1;\n var hfsq: f32 = 0.5 * f * f;\n var dk = k;\n return s * (hfsq + r) + (dk * ln2_lo + c) - hfsq + f + dk * ln2_hi;\n }\n\n export function log2(x: f32): f32 { // see: musl/src/math/log2f.c and SUN COPYRIGHT NOTICE above\n const\n ivln2hi = reinterpret(0x3FB8B000), // 1.4428710938e+00f\n ivln2lo = reinterpret(0xB9389AD4), // -1.7605285393e-04\n Lg1 = reinterpret(0x3F2AAAAA), // 0xaaaaaa.0p-24f, 0.66666662693f\n Lg2 = reinterpret(0x3ECCCE13), // 0xccce13.0p-25f, 0.40000972152f\n Lg3 = reinterpret(0x3E91E9EE), // 0x91e9ee.0p-25f, 0.28498786688f\n Lg4 = reinterpret(0x3E789E26), // 0xf89e26.0p-26f, 0.24279078841f\n Ox1p25f = reinterpret(0x4C000000);\n var ix = reinterpret(x);\n var k: i32 = 0;\n if (ix < 0x00800000 || (ix >> 31)) {\n if (ix << 1 == 0) return -1 / (x * x);\n if (ix >> 31) return (x - x) / 0.0;\n k -= 25;\n x *= Ox1p25f;\n ix = reinterpret(x);\n } else if (ix >= 0x7F800000) return x;\n else if (ix == 0x3F800000) return 0;\n ix += 0x3F800000 - 0x3F3504F3;\n k += (ix >> 23) - 0x7F;\n ix = (ix & 0x007FFFFF) + 0x3F3504F3;\n x = reinterpret(ix);\n var f = x - 1.0;\n var s = f / (2.0 + f);\n var z = s * s;\n var w = z * z;\n var t1 = w * (Lg2 + w * Lg4);\n var t2 = z * (Lg1 + w * Lg3);\n var r = t2 + t1;\n var hfsq: f32 = 0.5 * f * f;\n var hi = f - hfsq;\n var u = reinterpret(hi);\n u &= 0xFFFFF000;\n hi = reinterpret(u);\n var lo: f32 = f - hi - hfsq + s * (hfsq + r);\n var dk = k;\n return (lo + hi) * ivln2lo + lo * ivln2hi + hi * ivln2hi + dk;\n }\n\n @inline\n export function max(value1: f32, value2: f32): f32 {\n return builtin_max(value1, value2);\n }\n\n @inline\n export function min(value1: f32, value2: f32): f32 {\n return builtin_min(value1, value2);\n }\n\n export function pow(x: f32, y: f32): f32 { // see: musl/src/math/powf.c and SUN COPYRIGHT NOTICE above\n const\n dp_h1 = reinterpret(0x3F15C000), // 5.84960938e-01f\n dp_l1 = reinterpret(0x35D1CFDC), // 1.56322085e-06f\n two24 = reinterpret(0x4B800000), // 16777216f\n huge = reinterpret(0x7149F2CA), // 1.0e+30f\n tiny = reinterpret(0x0DA24260), // 1.0e-30f\n L1 = reinterpret(0x3F19999A), // 6.0000002384e-01f\n L2 = reinterpret(0x3EDB6DB7), // 4.2857143283e-01f\n L3 = reinterpret(0x3EAAAAAB), // 3.3333334327e-01f\n L4 = reinterpret(0x3E8BA305), // 2.7272811532e-01f\n L5 = reinterpret(0x3E6C3255), // 2.3066075146e-01f\n L6 = reinterpret(0x3E53F142), // 2.0697501302e-01f\n P1 = reinterpret(0x3E2AAAAB), // 1.6666667163e-01f\n P2 = reinterpret(0xBB360B61), // -2.7777778450e-03f\n P3 = reinterpret(0x388AB355), // 6.6137559770e-05f\n P4 = reinterpret(0xB5DDEA0E), // -1.6533901999e-06f\n P5 = reinterpret(0x3331BB4C), // 4.1381369442e-08f\n lg2 = reinterpret(0x3F317218), // 6.9314718246e-01f\n lg2_h = reinterpret(0x3F317200), // 6.93145752e-01f\n lg2_l = reinterpret(0x35BFBE8C), // 1.42860654e-06f\n ovt = reinterpret(0x3338AA3C), // 4.2995665694e-08f\n cp = reinterpret(0x3F76384F), // 9.6179670095e-01\n cp_h = reinterpret(0x3F764000), // 9.6191406250e-01\n cp_l = reinterpret(0xB8F623C6), // -1.1736857402e-04\n ivln2 = reinterpret(0x3FB8AA3B), // 1.4426950216e+00\n ivln2_h = reinterpret(0x3FB8AA00), // 1.4426879883e+00\n ivln2_l = reinterpret(0x36ECA570), // 7.0526075433e-06\n inv3 = reinterpret(0x3EAAAAAB); // 0.333333333333\n var hx = reinterpret(x);\n var hy = reinterpret(y);\n var ix = hx & 0x7FFFFFFF;\n var iy = hy & 0x7FFFFFFF;\n if (iy == 0) return 1.0; // x**0 = 1, even if x is NaN\n // if (hx == 0x3F800000) return 1.0; // C: 1**y = 1, even if y is NaN, JS: NaN\n if (ix > 0x7F800000 || iy > 0x7F800000) return x + y; // NaN if either arg is NaN\n var yisint = 0, j: i32, k: i32;\n if (hx < 0) {\n if (iy >= 0x4B800000) yisint = 2;\n else if (iy >= 0x3F800000) {\n k = (iy >> 23) - 0x7F;\n let ki = 23 - k;\n j = iy >> ki;\n if ((j << ki) == iy) yisint = 2 - (j & 1);\n }\n }\n if (iy == 0x7F800000) { // y is +-inf\n if (ix == 0x3F800000) return NaN; // C: (-1)**+-inf is 1, JS: NaN\n else if (ix > 0x3F800000) return hy >= 0 ? y : 0.0; // (|x|>1)**+-inf = inf,0\n else return hy >= 0 ? 0.0 : -y; // (|x|<1)**+-inf = 0,inf\n }\n if (iy == 0x3F800000) return hy >= 0 ? x : 1.0 / x;\n if (hy == 0x40000000) return x * x;\n if (hy == 0x3F000000) {\n if (hx >= 0) return builtin_sqrt(x);\n }\n var ax = builtin_abs(x);\n var z: f32;\n if (ix == 0x7F800000 || ix == 0 || ix == 0x3F800000) {\n z = ax;\n if (hy < 0) z = 1.0 / z;\n if (hx < 0) {\n if (((ix - 0x3F800000) | yisint) == 0) {\n let d = z - z;\n z = d / d;\n }\n else if (yisint == 1) z = -z;\n }\n return z;\n }\n var sn = 1.0;\n if (hx < 0) {\n if (yisint == 0) {\n let d = x - x;\n return d / d;\n }\n if (yisint == 1) sn = -1.0;\n }\n var t1: f32, t2: f32, r: f32, s: f32, t: f32, u: f32, v: f32, w: f32, p_h: f32, p_l: f32;\n var n: i32, is: i32;\n if (iy > 0x4D000000) {\n if (ix < 0x3F7FFFF8) return hy < 0 ? sn * huge * huge : sn * tiny * tiny;\n if (ix > 0x3F800007) return hy > 0 ? sn * huge * huge : sn * tiny * tiny;\n t = ax - 1;\n w = (t * t) * (0.5 - t * (inv3 - t * 0.25));\n u = ivln2_h * t;\n v = t * ivln2_l - w * ivln2;\n t1 = u + v;\n is = reinterpret(t1);\n t1 = reinterpret(is & 0xFFFFF000);\n t2 = v - (t1 - u);\n } else {\n let s2: f32, s_h: f32, s_l: f32, t_h: f32, t_l: f32;\n n = 0;\n if (ix < 0x00800000) {\n ax *= two24;\n n -= 24;\n ix = reinterpret(ax);\n }\n n += (ix >> 23) - 0x7F;\n j = ix & 0x007FFFFF;\n ix = j | 0x3F800000;\n if (j <= 0x1CC471) k = 0;\n else if (j < 0x5DB3D7) k = 1;\n else {\n k = 0;\n n += 1;\n ix -= 0x00800000;\n }\n ax = reinterpret(ix);\n let bp = select(1.5, 1.0, k); // k ? 1.5 : 1.0\n u = ax - bp;\n v = 1.0 / (ax + bp);\n s = u * v;\n s_h = s;\n is = reinterpret(s_h);\n s_h = reinterpret(is & 0xFFFFF000);\n is = ((ix >> 1) & 0xFFFFF000) | 0x20000000;\n t_h = reinterpret(is + 0x00400000 + (k << 21));\n t_l = ax - (t_h - bp);\n s_l = v * ((u - s_h * t_h) - s_h * t_l);\n s2 = s * s;\n r = s2 * s2 * (L1 + s2 * (L2 + s2 * (L3 + s2 * (L4 + s2 * (L5 + s2 * L6)))));\n r += s_l * (s_h + s);\n s2 = s_h * s_h;\n t_h = 3.0 + s2 + r;\n is = reinterpret(t_h);\n t_h = reinterpret(is & 0xFFFFF000);\n t_l = r - ((t_h - 3.0) - s2);\n u = s_h * t_h;\n v = s_l * t_h + t_l * s;\n p_h = u + v;\n is = reinterpret(p_h);\n p_h = reinterpret(is & 0xFFFFF000);\n p_l = v - (p_h - u);\n let z_h = cp_h * p_h;\n let dp_l = select(dp_l1, 0.0, k);\n let z_l = cp_l * p_h + p_l * cp + dp_l;\n t = n;\n let dp_h = select(dp_h1, 0.0, k);\n t1 = (((z_h + z_l) + dp_h) + t);\n is = reinterpret(t1);\n t1 = reinterpret(is & 0xFFFFF000);\n t2 = z_l - (((t1 - t) - dp_h) - z_h);\n }\n is = reinterpret(y);\n var y1 = reinterpret(is & 0xFFFFF000);\n p_l = (y - y1) * t1 + y * t2;\n p_h = y1 * t1;\n z = p_l + p_h;\n j = reinterpret(z);\n if (j > 0x43000000) {\n return sn * huge * huge;\n } else if (j == 0x43000000) {\n if (p_l + ovt > z - p_h) return sn * huge * huge;\n } else if ((j & 0x7FFFFFFF) > 0x43160000) {\n return sn * tiny * tiny;\n } else if (j == 0xC3160000) {\n if (p_l <= z - p_h) return sn * tiny * tiny;\n }\n var i = j & 0x7FFFFFFF;\n k = (i >> 23) - 0x7F;\n n = 0;\n if (i > 0x3F000000) {\n n = j + (0x00800000 >> (k + 1));\n k = ((n & 0x7FFFFFFF) >> 23) - 0x7F;\n t = reinterpret(n & ~(0x007FFFFF >> k));\n n = ((n & 0x007FFFFF) | 0x00800000) >> (23 - k);\n if (j < 0) n = -n;\n p_h -= t;\n }\n t = p_l + p_h;\n is = reinterpret(t);\n t = reinterpret(is & 0xFFFF8000);\n u = t * lg2_h;\n v = (p_l - (t - p_h)) * lg2 + t * lg2_l;\n z = u + v;\n w = v - (z - u);\n t = z * z;\n t1 = z - t * (P1 + t * (P2 + t * (P3 + t * (P4 + t * P5))));\n r = (z * t1) / (t1 - 2.0) - (w + z * w);\n z = 1.0 - (r - z);\n j = reinterpret(z);\n j += n << 23;\n if ((j >> 23) <= 0) z = scalbn(z, n);\n else z = reinterpret(j);\n return sn * z;\n }\n\n @inline\n export function seedRandom(value: i64): void {\n NativeMath.seedRandom(value);\n }\n\n // Using xoroshiro64starstar from http://xoshiro.di.unimi.it/xoroshiro64starstar.c\n export function random(): f32 {\n if (!random_seeded) throw new Error("PRNG must be seeded.");\n\n var s0 = random_state0_32;\n var s1 = random_state1_32;\n var r = rotl(s0 * 0x9E3779BB, 5) * 5;\n\n s1 ^= s0;\n random_state0_32 = rotl(s0, 26) ^ s1 ^ (s1 << 9);\n random_state1_32 = rotl(s1, 13);\n\n return reinterpret((r >> 9) | (127 << 23)) - 1.0;\n }\n\n @inline\n export function round(x: f32): f32 {\n return builtin_copysign(builtin_floor(x + 0.5), x);\n }\n\n @inline\n export function sign(x: f32): f32 {\n if (ASC_SHRINK_LEVEL > 0) {\n return builtin_abs(x) > 0 ? builtin_copysign(1, x) : x;\n } else {\n return x > 0 ? 1 : x < 0 ? -1 : x;\n }\n }\n\n @inline\n export function signbit(x: f32): bool {\n return ((reinterpret(x) >>> 31) & (x == x));\n }\n\n export function sin(x: f32): f32 { // TODO\n unreachable();\n return 0;\n }\n\n export function sinh(x: f32): f32 { // see: musl/src/math/sinhf.c\n var u = reinterpret(x) & 0x7FFFFFFF;\n var absx = reinterpret(u);\n var t: f32;\n var h = builtin_copysign(0.5, x);\n if (u < 0x42B17217) {\n t = expm1(absx);\n if (u < 0x3F800000) {\n if (u < 0x3F800000 - (12 << 23)) return x;\n return h * (2 * t - t * t / (t + 1));\n }\n return h * (t + t / (t + 1));\n }\n t = 2 * h * expo2f(absx);\n return t;\n }\n\n @inline\n export function sqrt(x: f32): f32 {\n return builtin_sqrt(x);\n }\n\n export function tan(x: f32): f32 { // TODO\n unreachable();\n return 0;\n }\n\n export function tanh(x: f32): f32 { // see: musl/src/math/tanhf.c\n var u = reinterpret(x);\n u &= 0x7FFFFFFF;\n var y = reinterpret(u);\n var t: f32;\n if (u > 0x3F0C9F54) {\n if (u > 0x41200000) t = 1 + 0 / y;\n else {\n t = expm1(2 * y);\n t = 1 - 2 / (t + 2);\n }\n } else if (u > 0x3E82C578) {\n t = expm1(2 * y);\n t = t / (t + 2);\n } else if (u >= 0x00800000) {\n t = expm1(-2 * y);\n t = -t / (t + 2);\n } else t = y;\n return builtin_copysign(t, x);\n }\n\n @inline\n export function trunc(x: f32): f32 {\n return builtin_trunc(x);\n }\n\n /** @internal */\n export function scalbn(x: f32, n: i32): f32 { // see: https://git.musl-libc.org/cgit/musl/tree/src/math/scalbnf.c\n const\n Ox1p24f = reinterpret(0x4B800000),\n Ox1p127f = reinterpret(0x7F000000),\n Ox1p_126f = reinterpret(0x00800000);\n var y = x;\n if (n > 127) {\n y *= Ox1p127f;\n n -= 127;\n if (n > 127) {\n y *= Ox1p127f;\n n = builtin_min(n - 127, 127);\n }\n } else if (n < -126) {\n y *= Ox1p_126f * Ox1p24f;\n n += 126 - 24;\n if (n < -126) {\n y *= Ox1p_126f * Ox1p24f;\n n = builtin_max(n + 126 - 24, -126);\n }\n }\n return y * reinterpret((0x7F + n) << 23);\n }\n\n export function mod(x: f32, y: f32): f32 { // see: musl/src/math/fmodf.c\n var ux = reinterpret(x);\n var uy = reinterpret(y);\n var ex = (ux >> 23 & 0xFF);\n var ey = (uy >> 23 & 0xFF);\n var sx = ux & 0x80000000;\n var uy1 = uy << 1;\n if (uy1 == 0 || ex == 0xFF || isNaN(y)) {\n let m = x * y;\n return m / m;\n }\n var ux1 = ux << 1;\n if (ux1 <= uy1) {\n if (ux1 == uy1) return 0 * x;\n return x;\n }\n if (!ex) {\n ex -= builtin_clz(ux << 9);\n ux <<= -ex + 1;\n } else {\n ux &= -1 >> 9;\n ux |= 1 << 23;\n }\n if (!ey) {\n ey -= builtin_clz(uy << 9);\n uy <<= -ey + 1;\n } else {\n uy &= -1 >> 9;\n uy |= 1 << 23;\n }\n while (ex > ey) {\n if (ux >= uy) {\n if (ux == uy) return 0 * x;\n ux -= uy;\n }\n ux <<= 1;\n --ex;\n }\n if (ux >= uy) {\n if (ux == uy) return 0 * x;\n ux -= uy;\n }\n // for (; !(ux >> 23); ux <<= 1) --ex;\n var shift = builtin_clz(ux << 8);\n ex -= shift;\n ux <<= shift;\n if (ex > 0) {\n ux -= 1 << 23;\n ux |= ex << 23;\n } else {\n ux >>= -ex + 1;\n }\n ux |= sx;\n return reinterpret(ux);\n }\n\n export function rem(x: f32, y: f32): f32 { // see: musl/src/math/remquof.c\n var ux = reinterpret(x);\n var uy = reinterpret(y);\n var ex = (ux >> 23 & 0xFF);\n var ey = (uy >> 23 & 0xFF);\n var sx = (ux >> 31);\n var uxi = ux;\n if (uy << 1 == 0 || ex == 0xFF || isNaN(y)) return (x * y) / (x * y);\n if (ux << 1 == 0) return x;\n if (!ex) {\n ex -= builtin_clz(uxi << 9);\n uxi <<= -ex + 1;\n } else {\n uxi &= -1 >> 9;\n uxi |= 1 << 23;\n }\n if (!ey) {\n ey -= builtin_clz(uy << 9);\n uy <<= -ey + 1;\n } else {\n uy &= -1 >> 9;\n uy |= 1 << 23;\n }\n var q = 0;\n do {\n if (ex < ey) {\n if (ex + 1 == ey) break; // goto end\n return x;\n }\n while (ex > ey) {\n if (uxi >= uy) {\n uxi -= uy;\n ++q;\n }\n uxi <<= 1;\n q <<= 1;\n --ex;\n }\n if (uxi >= uy) {\n uxi -= uy;\n ++q;\n }\n if (uxi == 0) ex = -30;\n else {\n let shift = builtin_clz(uxi << 8);\n ex -= shift;\n uxi <<= shift;\n }\n break;\n } while (false);\n // end\n if (ex > 0) {\n uxi -= 1 << 23;\n uxi |= ex << 23;\n } else {\n uxi >>= -ex + 1;\n }\n x = reinterpret(uxi);\n y = builtin_abs(y);\n var x2 = x + x;\n if (ex == ey || (ex + 1 == ey && (x2 > y || (x2 == y && (q & 1))))) {\n x -= y;\n // q++;\n }\n return sx ? -x : x;\n }\n}\n\nexport function ipow32(x: i32, e: i32): i32 {\n var out = 1;\n if (ASC_SHRINK_LEVEL < 1) {\n if (e < 0) return 0;\n\n switch (e) {\n case 0: return 1;\n case 1: return x;\n case 2: return x * x;\n }\n\n let log = 32 - clz(e);\n if (log <= 5) {\n // 32 = 2 ^ 5, so need only five cases.\n // But some extra cases needs for properly overflowing\n switch (log) {\n case 5: {\n if (e & 1) out *= x;\n e >>= 1;\n x *= x;\n }\n case 4: {\n if (e & 1) out *= x;\n e >>= 1;\n x *= x;\n }\n case 3: {\n if (e & 1) out *= x;\n e >>= 1;\n x *= x;\n }\n case 2: {\n if (e & 1) out *= x;\n e >>= 1;\n x *= x;\n }\n case 1: {\n if (e & 1) out *= x;\n }\n }\n return out;\n }\n }\n\n while (e > 0) {\n if (e & 1) out *= x;\n e >>= 1;\n x *= x;\n }\n return out;\n}\n\nexport function ipow64(x: i64, e: i32): i64 {\n var out: i64 = 1;\n if (ASC_SHRINK_LEVEL < 1) {\n if (e < 0) return 0;\n switch (e) {\n case 0: return 1;\n case 1: return x;\n case 2: return x * x;\n }\n\n let log = 32 - clz(e);\n if (log <= 6) {\n // 64 = 2 ^ 6, so need only six cases.\n // But some extra cases needs for properly overflowing\n switch (log) {\n case 6: {\n if (e & 1) out *= x;\n e >>= 1;\n x *= x;\n }\n case 5: {\n if (e & 1) out *= x;\n e >>= 1;\n x *= x;\n }\n case 4: {\n if (e & 1) out *= x;\n e >>= 1;\n x *= x;\n }\n case 3: {\n if (e & 1) out *= x;\n e >>= 1;\n x *= x;\n }\n case 2: {\n if (e & 1) out *= x;\n e >>= 1;\n x *= x;\n }\n case 1: {\n if (e & 1) out *= x;\n }\n }\n return out;\n }\n }\n\n while (e > 0) {\n if (e & 1) out *= x;\n e >>= 1;\n x *= x;\n }\n return out;\n}\n\nexport function ipow32f(x: f32, e: i32): f32 {\n var sign = e >> 31;\n e = (e + sign) ^ sign; // abs(e)\n var out: f32 = 1;\n while (e) {\n out *= select(x, 1.0, e & 1);\n e >>= 1;\n x *= x;\n }\n return sign ? 1.0 / out : out;\n}\n\nexport function ipow64f(x: f64, e: i32): f64 {\n var sign = e >> 31;\n e = (e + sign) ^ sign; // abs(e)\n var out = 1.0;\n while (e) {\n out *= select(x, 1.0, e & 1);\n e >>= 1;\n x *= x;\n }\n return sign ? 1.0 / out : out;\n}\n',memory:'import { memcmp, memmove, memset } from "./internal/memory";\n\n@builtin export declare const HEAP_BASE: usize; // tslint:disable-line\n\n/* tslint:disable */\n\nexport namespace memory {\n\n @builtin export declare function size(): i32;\n\n @builtin export declare function grow(pages: i32): i32;\n\n @builtin @inline\n export function fill(dest: usize, c: u8, n: usize): void { // see: musl/src/string/memset\n memset(dest, c, n); // fallback if "bulk-memory" isn\'t enabled\n }\n\n @builtin @inline\n export function copy(dest: usize, src: usize, n: usize): void { // see: musl/src/string/memmove.c\n memmove(dest, src, n); // fallback if "bulk-memory" isn\'t enabled\n }\n\n @inline export function compare(vl: usize, vr: usize, n: usize): i32 { // see: musl/src/string/memcmp.c\n return memcmp(vl, vr, n);\n }\n\n // Passive segments\n\n // export function init(segmentIndex: u32, srcOffset: usize, dstOffset: usize, n: usize): void {\n // __memory_init(segmentIndex, srcOffset, dstOffset);\n // }\n\n // export function drop(segmentIndex: u32): void {\n // __memory_drop(segmentIndex);\n // }\n\n // Allocator\n\n @inline export function allocate(size: usize): usize {\n if (isDefined(__memory_allocate)) return __memory_allocate(size);\n WARNING("Calling \'memory.allocate\' requires a memory manager to be present.");\n return unreachable();\n }\n\n @inline export function free(ptr: usize): void {\n if (isDefined(__memory_free)) { __memory_free(ptr); return; }\n WARNING("Calling \'memory.free\' requires a memory manager to be present.");\n unreachable();\n }\n\n @inline export function reset(): void {\n if (isDefined(__memory_reset)) { __memory_reset(); return; }\n unreachable();\n }\n}\n',number:'import {\n itoa,\n dtoa\n} from "./internal/number";\n\nimport {\n isNaN as builtin_isNaN,\n isFinite as builtin_isFinite\n} from "./builtins";\n\n@sealed\nexport abstract class I8 {\n\n static readonly MIN_VALUE: i8 = i8.MIN_VALUE;\n static readonly MAX_VALUE: i8 = i8.MAX_VALUE;\n\n static parseInt(value: string, radix: i32 = 0): i8 {\n return parseI32(value, radix);\n }\n\n toString(this: i8): String {\n // TODO: radix\n return itoa(this);\n }\n}\n\n@sealed\nexport abstract class I16 {\n\n static readonly MIN_VALUE: i16 = i16.MIN_VALUE;\n static readonly MAX_VALUE: i16 = i16.MAX_VALUE;\n\n static parseInt(value: string, radix: i32 = 0): i16 {\n return parseI32(value, radix);\n }\n\n toString(this: i16): String {\n // TODO: radix\n return itoa(this);\n }\n}\n\n@sealed\nexport abstract class I32 {\n\n static readonly MIN_VALUE: i32 = i32.MIN_VALUE;\n static readonly MAX_VALUE: i32 = i32.MAX_VALUE;\n\n static parseInt(value: string, radix: i32 = 0): i32 {\n return parseI32(value, radix);\n }\n\n toString(this: i32): String {\n // TODO: radix\n return itoa(this);\n }\n}\n\n@sealed\nexport abstract class I64 {\n\n static readonly MIN_VALUE: i64 = i64.MIN_VALUE;\n static readonly MAX_VALUE: i64 = i64.MAX_VALUE;\n\n static parseInt(value: string, radix: i32 = 0): i64 {\n return parseI64(value, radix);\n }\n\n toString(this: i64): String {\n // TODO: radix\n return itoa(this);\n }\n}\n\n@sealed\nexport abstract class Isize {\n\n static readonly MIN_VALUE: isize = isize.MIN_VALUE;\n static readonly MAX_VALUE: isize = isize.MAX_VALUE;\n\n static parseInt(value: string, radix: i32 = 0): isize {\n return parseI64(value, radix);\n }\n\n toString(this: isize): String {\n // TODO: radix\n return itoa(this);\n }\n}\n\n@sealed\nexport abstract class U8 {\n\n static readonly MIN_VALUE: u8 = u8.MIN_VALUE;\n static readonly MAX_VALUE: u8 = u8.MAX_VALUE;\n\n static parseInt(value: string, radix: i32 = 0): u8 {\n return parseI32(value, radix);\n }\n\n toString(this: u8): String {\n // TODO: radix\n return itoa(this);\n }\n}\n\n@sealed\nexport abstract class U16 {\n\n static readonly MIN_VALUE: u16 = u16.MIN_VALUE;\n static readonly MAX_VALUE: u16 = u16.MAX_VALUE;\n\n static parseInt(value: string, radix: i32 = 0): u16 {\n return parseI32(value, radix);\n }\n\n toString(this: u16): String {\n // TODO: radix\n return itoa(this);\n }\n}\n\n@sealed\nexport abstract class U32 {\n\n static readonly MIN_VALUE: u32 = u32.MIN_VALUE;\n static readonly MAX_VALUE: u32 = u32.MAX_VALUE;\n\n static parseInt(value: string, radix: i32 = 0): u32 {\n return parseI32(value, radix);\n }\n\n toString(this: u32): String {\n // TODO: radix\n return itoa(this);\n }\n}\n\n@sealed\nexport abstract class U64 {\n\n static readonly MIN_VALUE: u64 = u64.MIN_VALUE;\n static readonly MAX_VALUE: u64 = u64.MAX_VALUE;\n\n static parseInt(value: string, radix: i32 = 0): u64 {\n return parseI64(value, radix);\n }\n\n toString(this: u64): String {\n // TODO: radix\n return itoa(this);\n }\n}\n\n@sealed\nexport abstract class Usize {\n\n static readonly MIN_VALUE: usize = usize.MIN_VALUE;\n static readonly MAX_VALUE: usize = usize.MAX_VALUE;\n\n static parseInt(value: string, radix: i32 = 0): usize {\n return parseI64(value, radix);\n }\n\n toString(this: usize): String {\n // TODO: radix\n return itoa(this);\n }\n}\n\n@sealed\nexport abstract class Bool {\n\n static readonly MIN_VALUE: bool = bool.MIN_VALUE;\n static readonly MAX_VALUE: bool = bool.MAX_VALUE;\n\n toString(this: bool): String {\n // TODO: radix?\n return this ? "true" : "false";\n }\n}\n\n@sealed\nexport abstract class Boolean extends Bool {}\n\n@sealed\nexport abstract class F32 {\n\n static readonly EPSILON: f32 = f32.EPSILON;\n static readonly MIN_VALUE: f32 = f32.MIN_VALUE;\n static readonly MAX_VALUE: f32 = f32.MAX_VALUE;\n static readonly MIN_SAFE_INTEGER: f32 = f32.MIN_SAFE_INTEGER;\n static readonly MAX_SAFE_INTEGER: f32 = f32.MAX_SAFE_INTEGER;\n static readonly POSITIVE_INFINITY: f32 = Infinity;\n static readonly NEGATIVE_INFINITY: f32 = -Infinity;\n static readonly NaN: f32 = NaN;\n\n static isNaN(value: f32): bool {\n return isNaN(value);\n }\n\n static isFinite(value: f32): bool {\n return isFinite(value);\n }\n\n static isSafeInteger(value: f32): bool {\n return abs(value) <= f32.MAX_SAFE_INTEGER && trunc(value) == value;\n }\n\n static isInteger(value: f32): bool {\n return isFinite(value) && trunc(value) == value;\n }\n\n static parseInt(value: string, radix: i32 = 0): f32 {\n return parseI64(value, radix);\n }\n\n static parseFloat(value: string): f32 {\n return parseFloat(value);\n }\n\n toString(this: f32): String {\n // TODO: radix\n return dtoa(this);\n }\n}\n\n@sealed\nexport abstract class F64 {\n\n static readonly EPSILON: f64 = f64.EPSILON;\n static readonly MIN_VALUE: f64 = f64.MIN_VALUE;\n static readonly MAX_VALUE: f64 = f64.MAX_VALUE;\n static readonly MIN_SAFE_INTEGER: f64 = f64.MIN_SAFE_INTEGER;\n static readonly MAX_SAFE_INTEGER: f64 = f64.MAX_SAFE_INTEGER;\n static readonly POSITIVE_INFINITY: f64 = Infinity;\n static readonly NEGATIVE_INFINITY: f64 = -Infinity;\n static readonly NaN: f64 = NaN;\n\n static isNaN(value: f64): bool {\n return builtin_isNaN(value);\n }\n\n static isFinite(value: f64): bool {\n return builtin_isFinite(value);\n }\n\n static isSafeInteger(value: f64): bool {\n return abs(value) <= f64.MAX_SAFE_INTEGER && trunc(value) == value;\n }\n\n static isInteger(value: f64): bool {\n return builtin_isFinite(value) && trunc(value) == value;\n }\n\n static parseInt(value: string, radix: i32 = 0): f64 {\n return parseI64(value, radix);\n }\n\n static parseFloat(value: string): f64 {\n return parseFloat(value);\n }\n\n toString(this: f64): String {\n // TODO: radix\n return dtoa(this);\n }\n}\n\n@sealed\nexport abstract class Number extends F64 {}\n',polyfills:"export function bswap(value: T): T {\n if (isInteger()) {\n if (sizeof() == 2) {\n return ((value << 8) | ((value >> 8) & 0x00FF));\n }\n if (sizeof() == 4) {\n return (\n rotl(value & 0xFF00FF00, 8) |\n rotr(value & 0x00FF00FF, 8)\n );\n }\n if (sizeof() == 8) {\n let a = (value >> 8) & 0x00FF00FF00FF00FF;\n let b = (value & 0x00FF00FF00FF00FF) << 8;\n let v = a | b;\n\n a = (v >> 16) & 0x0000FFFF0000FFFF;\n b = (v & 0x0000FFFF0000FFFF) << 16;\n\n return rotr(a | b, 32);\n }\n return value;\n }\n assert(false);\n return value;\n}\n\n@inline\nexport function bswap16(value: T): T {\n if (isInteger() && sizeof() <= 4) {\n if (sizeof() == 2) {\n return ((value << 8) | ((value >> 8) & 0x00FF));\n } else if (sizeof() == 4) {\n return (((value << 8) & 0xFF00) | ((value >> 8) & 0x00FF) | (value & 0xFFFF0000));\n }\n return value;\n }\n assert(false);\n return value;\n}\n",regexp:'export class RegExp {\n\n // @binding(CALL_NEW, [ STRING, STRING], OBJECT_HANDLE)\n constructor(pattern: string, flags: string = "") { throw new Error("unreachable"); }\n\n // @binding(CALL_THIS, [ STRING ], PASS_THRU)\n test(search: string): bool { throw new Error("unreachable"); }\n\n // @binding(CALL_THIS, [], STRING)\n toString(): string { throw new Error("unreachable"); }\n\n}\n',set:'import {\n HEADER_SIZE as HEADER_SIZE_AB\n} from "./internal/arraybuffer";\n\nimport {\n HASH\n} from "./internal/hash";\n\n// A deterministic hash set based on CloseTable from https://github.com/jorendorff/dht\n\nconst INITIAL_CAPACITY = 4;\nconst FILL_FACTOR: f64 = 8 / 3;\nconst FREE_FACTOR: f64 = 3 / 4;\n\n/** Structure of a set entry. */\n@unmanaged class SetEntry {\n key: K;\n taggedNext: usize; // LSB=1 indicates EMPTY\n}\n\n/** Empty bit. */\nconst EMPTY: usize = 1 << 0;\n\n/** Size of a bucket. */\nconst BUCKET_SIZE = sizeof();\n\n/** Computes the alignment of an entry. */\n@inline function ENTRY_ALIGN(): usize {\n // can align to 4 instead of 8 if 32-bit and K is <= 32-bits\n const align = (sizeof() > sizeof() ? sizeof() : sizeof()) - 1;\n return align;\n}\n\n/** Computes the aligned size of an entry. */\n@inline function ENTRY_SIZE(): usize {\n const align = ENTRY_ALIGN();\n const size = (offsetof>() + align) & ~align;\n return size;\n}\n\nexport class Set {\n\n // buckets holding references to the respective first entry within\n private buckets: ArrayBuffer; // usize[bucketsMask + 1]\n private bucketsMask: u32;\n\n // entries in insertion order\n private entries: ArrayBuffer; // SetEntry[entriesCapacity]\n private entriesCapacity: i32;\n private entriesOffset: i32;\n private entriesCount: i32;\n\n get size(): i32 { return this.entriesCount; }\n\n constructor() { this.clear(); }\n\n clear(): void {\n const bucketsSize = INITIAL_CAPACITY * BUCKET_SIZE;\n this.buckets = new ArrayBuffer(bucketsSize);\n this.bucketsMask = INITIAL_CAPACITY - 1;\n const entriesSize = INITIAL_CAPACITY * ENTRY_SIZE();\n this.entries = new ArrayBuffer(entriesSize, true);\n this.entriesCapacity = INITIAL_CAPACITY;\n this.entriesOffset = 0;\n this.entriesCount = 0;\n }\n\n private find(key: K, hashCode: u32): SetEntry | null {\n var entry = load>(\n changetype(this.buckets) + (hashCode & this.bucketsMask) * BUCKET_SIZE,\n HEADER_SIZE_AB\n );\n while (entry) {\n if (!(entry.taggedNext & EMPTY) && entry.key == key) return entry;\n entry = changetype>(entry.taggedNext & ~EMPTY);\n }\n return null;\n }\n\n has(key: K): bool {\n return this.find(key, HASH(key)) !== null;\n }\n\n add(key: K): void {\n var hashCode = HASH(key);\n var entry = this.find(key, hashCode);\n if (!entry) {\n // check if rehashing is necessary\n if (this.entriesOffset == this.entriesCapacity) {\n this.rehash(\n this.entriesCount < (this.entriesCapacity * FREE_FACTOR)\n ? this.bucketsMask // just rehash if 1/4+ entries are empty\n : (this.bucketsMask << 1) | 1 // grow capacity to next 2^N\n );\n }\n // append new entry\n let entries = this.entries;\n entry = changetype>(\n changetype(entries) + HEADER_SIZE_AB + this.entriesOffset++ * ENTRY_SIZE()\n );\n entry.key = key;\n ++this.entriesCount;\n // link with previous entry in bucket\n let bucketPtrBase = changetype(this.buckets) + (hashCode & this.bucketsMask) * BUCKET_SIZE;\n entry.taggedNext = load(bucketPtrBase, HEADER_SIZE_AB);\n store(bucketPtrBase, changetype(entry), HEADER_SIZE_AB);\n if (isManaged()) __gc_link(changetype(this), changetype(key)); // tslint:disable-line\n }\n }\n\n delete(key: K): bool {\n var entry = this.find(key, HASH(key));\n if (!entry) return false;\n entry.taggedNext |= EMPTY;\n --this.entriesCount;\n // check if rehashing is appropriate\n var halfBucketsMask = this.bucketsMask >> 1;\n if (\n halfBucketsMask + 1 >= max(INITIAL_CAPACITY, this.entriesCount) &&\n this.entriesCount < (this.entriesCapacity * FREE_FACTOR)\n ) this.rehash(halfBucketsMask);\n return true;\n }\n\n private rehash(newBucketsMask: u32): void {\n var newBucketsCapacity = (newBucketsMask + 1);\n var newBuckets = new ArrayBuffer(newBucketsCapacity * BUCKET_SIZE);\n var newEntriesCapacity = (newBucketsCapacity * FILL_FACTOR);\n var newEntries = new ArrayBuffer(newEntriesCapacity * ENTRY_SIZE(), true);\n\n // copy old entries to new entries\n var oldPtr = changetype(this.entries) + HEADER_SIZE_AB;\n var oldEnd = oldPtr + this.entriesOffset * ENTRY_SIZE();\n var newPtr = changetype(newEntries) + HEADER_SIZE_AB;\n while (oldPtr != oldEnd) {\n let oldEntry = changetype>(oldPtr);\n if (!(oldEntry.taggedNext & EMPTY)) {\n let newEntry = changetype>(newPtr);\n newEntry.key = oldEntry.key;\n let newBucketIndex = HASH(oldEntry.key) & newBucketsMask;\n let newBucketPtrBase = changetype(newBuckets) + newBucketIndex * BUCKET_SIZE;\n newEntry.taggedNext = load(newBucketPtrBase, HEADER_SIZE_AB);\n store(newBucketPtrBase, newPtr, HEADER_SIZE_AB);\n newPtr += ENTRY_SIZE();\n }\n oldPtr += ENTRY_SIZE();\n }\n\n this.buckets = newBuckets;\n this.bucketsMask = newBucketsMask;\n this.entries = newEntries;\n this.entriesCapacity = newEntriesCapacity;\n this.entriesOffset = this.entriesCount;\n }\n\n toString(): string {\n return "[object Set]";\n }\n\n private __gc(): void {\n __gc_mark(changetype(this.buckets)); // tslint:disable-line\n var entries = this.entries;\n __gc_mark(changetype(entries)); // tslint:disable-line\n if (isManaged()) {\n let offset: usize = 0;\n let end: usize = this.entriesOffset * ENTRY_SIZE();\n while (offset < end) {\n let entry = changetype>(\n changetype(entries) + HEADER_SIZE_AB + offset * ENTRY_SIZE()\n );\n if (!(entry.taggedNext & EMPTY)) __gc_mark(changetype(entry.key)); // tslint:disable-line\n offset += ENTRY_SIZE();\n }\n }\n }\n}\n',string:'import {\n HEADER_SIZE,\n MAX_LENGTH,\n allocateUnsafe,\n compareUnsafe,\n repeatUnsafe,\n copyUnsafe,\n isWhiteSpaceOrLineTerminator,\n CharCode,\n parse\n} from "./internal/string";\n\nimport {\n STORE\n} from "./internal/arraybuffer";\n\n@sealed\nexport class String {\n\n readonly length: i32; // capped to [0, MAX_LENGTH]\n\n // TODO Add and handle second argument\n static fromCharCode(code: i32): String {\n var out = allocateUnsafe(1);\n store(\n changetype(out),\n code,\n HEADER_SIZE\n );\n return out;\n }\n\n static fromCodePoint(code: i32): String {\n assert(code <= 0x10FFFF);\n var sur = code > 0xFFFF;\n var out = allocateUnsafe(sur + 1);\n if (!sur) {\n store(\n changetype(out),\n code,\n HEADER_SIZE\n );\n } else {\n code -= 0x10000;\n let hi: u32 = (code >>> 10) + 0xD800;\n let lo: u32 = (code & 0x3FF) + 0xDC00;\n store(\n changetype(out),\n (hi << 16) | lo,\n HEADER_SIZE\n );\n }\n return out;\n }\n\n @operator("[]")\n charAt(pos: i32): String {\n assert(this !== null);\n\n if (pos >= this.length) return changetype("");\n\n var out = allocateUnsafe(1);\n store(\n changetype(out),\n load(\n changetype(this) + (pos << 1),\n HEADER_SIZE\n ),\n HEADER_SIZE\n );\n return out;\n }\n\n charCodeAt(pos: i32): i32 {\n assert(this !== null);\n if (pos >= this.length) return -1; // (NaN)\n\n return load(\n changetype(this) + (pos << 1),\n HEADER_SIZE\n );\n }\n\n codePointAt(pos: i32): i32 {\n assert(this !== null);\n if (pos >= this.length) return -1; // (undefined)\n\n var first = load(\n changetype(this) + (pos << 1),\n HEADER_SIZE\n );\n if (first < 0xD800 || first > 0xDBFF || pos + 1 == this.length) {\n return first;\n }\n var second = load(\n changetype(this) + ((pos + 1) << 1),\n HEADER_SIZE\n );\n if (second < 0xDC00 || second > 0xDFFF) return first;\n return ((first - 0xD800) << 10) + (second - 0xDC00) + 0x10000;\n }\n\n @operator("+")\n private static __concat(left: String, right: String): String {\n if (!changetype(left)) left = changetype("null");\n return left.concat(right);\n }\n\n concat(other: String): String {\n assert(this !== null);\n if (other === null) other = changetype("null");\n\n var thisLen: isize = this.length;\n var otherLen: isize = other.length;\n var outLen: usize = thisLen + otherLen;\n if (outLen == 0) return changetype("");\n var out = allocateUnsafe(outLen);\n copyUnsafe(out, 0, this, 0, thisLen);\n copyUnsafe(out, thisLen, other, 0, otherLen);\n return out;\n }\n\n endsWith(searchString: String, endPosition: i32 = MAX_LENGTH): bool {\n assert(this !== null);\n if (searchString === null) return false;\n var end = min(max(endPosition, 0), this.length);\n var searchLength: isize = searchString.length;\n var start: isize = end - searchLength;\n if (start < 0) return false;\n return !compareUnsafe(this, start, searchString, 0, searchLength);\n }\n\n @operator("==")\n private static __eq(left: String, right: String): bool {\n if (left === right) return true;\n if (left === null || right === null) return false;\n\n var leftLength = left.length;\n if (leftLength != right.length) return false;\n\n return !compareUnsafe(left, 0, right, 0, leftLength);\n }\n\n @operator("!=")\n private static __ne(left: String, right: String): bool {\n return !this.__eq(left, right);\n }\n\n @operator(">")\n private static __gt(left: String, right: String): bool {\n if (left === right || left === null || right === null) return false;\n\n var leftLength = left.length;\n var rightLength = right.length;\n\n if (!leftLength) return false;\n if (!rightLength) return true;\n\n var length = min(leftLength, rightLength);\n return compareUnsafe(left, 0, right, 0, length) > 0;\n }\n\n @operator(">=")\n private static __gte(left: String, right: String): bool {\n if (left === right) return true;\n if (left === null || right === null) return false;\n\n var leftLength = left.length;\n var rightLength = right.length;\n\n if (!leftLength) return !rightLength;\n if (!rightLength) return true;\n\n var length = min(leftLength, rightLength);\n return compareUnsafe(left, 0, right, 0, length) >= 0;\n }\n\n @operator("<")\n private static __lt(left: String, right: String): bool {\n if (left === right || left === null || right === null) return false;\n\n var leftLength = left.length;\n var rightLength = right.length;\n\n if (!rightLength) return false;\n if (!leftLength) return true;\n\n var length = min(leftLength, rightLength);\n return compareUnsafe(left, 0, right, 0, length) < 0;\n }\n\n @operator("<=")\n private static __lte(left: String, right: String): bool {\n if (left === right) return true;\n if (left === null || right === null) return false;\n\n var leftLength = left.length;\n var rightLength = right.length;\n\n if (!rightLength) return !leftLength;\n if (!leftLength) return true;\n\n var length = min(leftLength, rightLength);\n return compareUnsafe(left, 0, right, 0, length) <= 0;\n }\n\n @inline\n includes(searchString: String, position: i32 = 0): bool {\n return this.indexOf(searchString, position) != -1;\n }\n\n indexOf(searchString: String, fromIndex: i32 = 0): i32 {\n assert(this !== null);\n if (searchString === null) searchString = changetype("null");\n\n var searchLen: isize = searchString.length;\n if (!searchLen) return 0;\n var len: isize = this.length;\n if (!len) return -1;\n var start = min(max(fromIndex, 0), len);\n len -= searchLen;\n for (let k: isize = start; k <= len; ++k) {\n if (!compareUnsafe(this, k, searchString, 0, searchLen)) return k;\n }\n return -1;\n }\n\n lastIndexOf(searchString: String, fromIndex: i32 = i32.MAX_VALUE): i32 {\n assert(this !== null);\n if (searchString === null) searchString = changetype("null");\n\n var len: isize = this.length;\n var searchLen: isize = searchString.length;\n if (!searchLen) return len;\n if (!len) return -1;\n var start = min(max(fromIndex, 0), len - searchLen);\n for (let k = start; k >= 0; --k) {\n if (!compareUnsafe(this, k, searchString, 0, searchLen)) return k;\n }\n return -1;\n }\n\n startsWith(searchString: String, position: i32 = 0): bool {\n assert(this !== null);\n if (searchString === null) searchString = changetype("null");\n\n var pos: isize = position;\n var len: isize = this.length;\n var start = min(max(pos, 0), len);\n var searchLength: isize = searchString.length;\n if (searchLength + start > len) return false;\n return !compareUnsafe(this, start, searchString, 0, searchLength);\n }\n\n substr(start: i32, length: i32 = i32.MAX_VALUE): String {\n assert(this !== null);\n var intStart: isize = start;\n var end: isize = length;\n var size: isize = this.length;\n if (intStart < 0) intStart = max(size + intStart, 0);\n var resultLength = min(max(end, 0), size - intStart);\n if (resultLength <= 0) return changetype("");\n var out = allocateUnsafe(resultLength);\n copyUnsafe(out, 0, this, intStart, resultLength);\n return out;\n }\n\n substring(start: i32, end: i32 = i32.MAX_VALUE): String {\n assert(this !== null);\n var len = this.length;\n var finalStart = min(max(start, 0), len);\n var finalEnd = min(max(end, 0), len);\n var from = min(finalStart, finalEnd);\n var to = max(finalStart, finalEnd);\n len = to - from;\n if (!len) return changetype("");\n if (!from && to == this.length) return this;\n var out = allocateUnsafe(len);\n copyUnsafe(out, 0, this, from, len);\n return out;\n }\n\n trim(): String {\n assert(this !== null);\n var length: usize = this.length;\n\n while (\n length &&\n isWhiteSpaceOrLineTerminator(\n load(changetype(this) + (length << 1), HEADER_SIZE)\n )\n ) {\n --length;\n }\n var start: usize = 0;\n while (\n start < length &&\n isWhiteSpaceOrLineTerminator(\n load(changetype(this) + (start << 1), HEADER_SIZE)\n )\n ) {\n ++start, --length;\n }\n if (!length) return changetype("");\n if (!start && length == this.length) return this;\n var out = allocateUnsafe(length);\n copyUnsafe(out, 0, this, start, length);\n return out;\n }\n\n @inline\n trimLeft(): String {\n return this.trimStart();\n }\n\n @inline\n trimRight(): String {\n return this.trimEnd();\n }\n\n trimStart(): String {\n assert(this !== null);\n var start: isize = 0;\n var len: isize = this.length;\n while (\n start < len &&\n isWhiteSpaceOrLineTerminator(\n load(changetype(this) + (start << 1), HEADER_SIZE)\n )\n ) {\n ++start;\n }\n if (!start) return this;\n var outLen = len - start;\n if (!outLen) return changetype("");\n var out = allocateUnsafe(outLen);\n copyUnsafe(out, 0, this, start, outLen);\n return out;\n }\n\n trimEnd(): String {\n assert(this !== null);\n var len: isize = this.length;\n while (\n len > 0 &&\n isWhiteSpaceOrLineTerminator(\n load(changetype(this) + (len << 1), HEADER_SIZE)\n )\n ) {\n --len;\n }\n if (len <= 0) return changetype("");\n if (len == this.length) return this;\n var out = allocateUnsafe(len);\n copyUnsafe(out, 0, this, 0, len);\n return out;\n }\n\n padStart(targetLength: i32, padString: String = changetype(" ")): String {\n assert(this !== null);\n var length = this.length;\n var padLen = padString.length;\n if (targetLength < length || !padLen) return this;\n var len = targetLength - length;\n var out = allocateUnsafe(targetLength);\n if (len > padLen) {\n let count = (len - 1) / padLen;\n let base = count * padLen;\n let rest = len - base;\n repeatUnsafe(out, 0, padString, count);\n if (rest) copyUnsafe(out, base, padString, 0, rest);\n } else {\n copyUnsafe(out, 0, padString, 0, len);\n }\n if (length) copyUnsafe(out, len, this, 0, length);\n return out;\n }\n\n padEnd(targetLength: i32, padString: String = changetype(" ")): String {\n assert(this !== null);\n var length = this.length;\n var padLen = padString.length;\n if (targetLength < length || !padLen) return this;\n var len = targetLength - length;\n var out = allocateUnsafe(targetLength);\n if (length) copyUnsafe(out, 0, this, 0, length);\n if (len > padLen) {\n let count = (len - 1) / padLen;\n let base = count * padLen;\n let rest = len - base;\n repeatUnsafe(out, length, padString, count);\n if (rest) copyUnsafe(out, base + length, padString, 0, rest);\n } else {\n copyUnsafe(out, length, padString, 0, len);\n }\n return out;\n }\n\n repeat(count: i32 = 0): String {\n assert(this !== null);\n var length = this.length;\n\n // Most browsers can\'t handle strings 1 << 28 chars or longer\n if (count < 0 || length * count > (1 << 28)) {\n throw new RangeError("Invalid count value");\n }\n\n if (count == 0 || !length) return changetype("");\n if (count == 1) return this;\n\n var result = allocateUnsafe(length * count);\n repeatUnsafe(result, 0, this, count);\n return result;\n }\n\n slice(beginIndex: i32, endIndex: i32 = i32.MAX_VALUE): String {\n var length = this.length;\n var begin = (beginIndex < 0) ? max(beginIndex + length, 0) : min(beginIndex, length);\n var end = (endIndex < 0) ? max(endIndex + length, 0) : min(endIndex, length);\n var len = end - begin;\n if (len <= 0) return changetype("");\n var out = allocateUnsafe(len);\n copyUnsafe(out, 0, this, begin, len);\n return out;\n }\n\n split(separator: String = null, limit: i32 = i32.MAX_VALUE): String[] {\n assert(this !== null);\n if (!limit) return new Array();\n if (separator === null) return [this];\n var length: isize = this.length;\n var sepLen: isize = separator.length;\n if (limit < 0) limit = i32.MAX_VALUE;\n if (!sepLen) {\n if (!length) return new Array();\n // split by chars\n length = min(length, limit);\n let result = new Array(length);\n let buffer = result.buffer_;\n for (let i: isize = 0; i < length; ++i) {\n let char = allocateUnsafe(1);\n store(\n changetype(char),\n load(\n changetype(this) + (i << 1),\n HEADER_SIZE\n ),\n HEADER_SIZE\n );\n STORE(buffer, i, char);\n }\n return result;\n } else if (!length) {\n let result = new Array(1);\n unchecked(result[0] = changetype(""));\n return result;\n }\n var result = new Array();\n var end = 0, start = 0, i = 0;\n while ((end = this.indexOf(separator, start)) != -1) {\n let len = end - start;\n if (len > 0) {\n let out = allocateUnsafe(len);\n copyUnsafe(out, 0, this, start, len);\n result.push(out);\n } else {\n result.push(changetype(""));\n }\n if (++i == limit) return result;\n start = end + sepLen;\n }\n if (!start) {\n let result = new Array(1);\n unchecked(result[0] = this);\n return result;\n }\n var len = length - start;\n if (len > 0) {\n let out = allocateUnsafe(len);\n copyUnsafe(out, 0, this, start, len);\n result.push(out);\n } else {\n result.push(changetype(""));\n }\n return result;\n }\n\n toString(): String {\n return this;\n }\n\n get lengthUTF8(): i32 {\n var len = 1; // null terminated\n var pos: usize = 0;\n var end = this.length;\n while (pos < end) {\n let c = load(changetype(this) + (pos << 1), HEADER_SIZE);\n if (c < 128) {\n len += 1; ++pos;\n } else if (c < 2048) {\n len += 2; ++pos;\n } else {\n if (\n (c & 0xFC00) == 0xD800 && pos + 1 < end &&\n (load(changetype(this) + ((pos + 1) << 1), HEADER_SIZE) & 0xFC00) == 0xDC00\n ) {\n len += 4; pos += 2;\n } else {\n len += 3; ++pos;\n }\n }\n }\n return len;\n }\n\n static fromUTF8(ptr: usize, len: usize): String {\n if (len < 1) return changetype("");\n var ptrPos = 0;\n var buf = memory.allocate(len << 1);\n var bufPos = 0;\n while (ptrPos < len) {\n let cp = load(ptr + ptrPos++);\n if (cp < 128) {\n store(buf + bufPos, cp);\n bufPos += 2;\n } else if (cp > 191 && cp < 224) {\n assert(ptrPos + 1 <= len);\n store(buf + bufPos, (cp & 31) << 6 | load(ptr + ptrPos++) & 63);\n bufPos += 2;\n } else if (cp > 239 && cp < 365) {\n assert(ptrPos + 3 <= len);\n cp = (\n (cp & 7) << 18 |\n (load(ptr + ptrPos++) & 63) << 12 |\n (load(ptr + ptrPos++) & 63) << 6 |\n load(ptr + ptrPos++) & 63\n ) - 0x10000;\n store(buf + bufPos, 0xD800 + (cp >> 10));\n bufPos += 2;\n store(buf + bufPos, 0xDC00 + (cp & 1023));\n bufPos += 2;\n } else {\n assert(ptrPos + 2 <= len);\n store(buf + bufPos,\n (cp & 15) << 12 |\n (load(ptr + ptrPos++) & 63) << 6 |\n load(ptr + ptrPos++) & 63\n );\n bufPos += 2;\n }\n }\n assert(ptrPos == len);\n var str = allocateUnsafe((bufPos >> 1));\n memory.copy(changetype(str) + HEADER_SIZE, buf, bufPos);\n memory.free(buf);\n return str;\n }\n\n toUTF8(): usize {\n var buf = memory.allocate(this.lengthUTF8);\n var pos: usize = 0;\n var end = this.length;\n var off: usize = 0;\n while (pos < end) {\n let c1 = load(changetype(this) + (pos << 1), HEADER_SIZE);\n if (c1 < 128) {\n store(buf + off, c1);\n ++off; ++pos;\n } else if (c1 < 2048) {\n let ptr = buf + off;\n store(ptr, c1 >> 6 | 192);\n store(ptr, c1 & 63 | 128, 1);\n off += 2; ++pos;\n } else {\n let ptr = buf + off;\n if ((c1 & 0xFC00) == 0xD800 && pos + 1 < end) {\n let c2 = load(changetype(this) + ((pos + 1) << 1), HEADER_SIZE);\n if ((c2 & 0xFC00) == 0xDC00) {\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\n store(ptr, c1 >> 18 | 240);\n store(ptr, c1 >> 12 & 63 | 128, 1);\n store(ptr, c1 >> 6 & 63 | 128, 2);\n store(ptr, c1 & 63 | 128, 3);\n off += 4; pos += 2;\n continue;\n }\n }\n store(ptr, c1 >> 12 | 224);\n store(ptr, c1 >> 6 & 63 | 128, 1);\n store(ptr, c1 & 63 | 128, 2);\n off += 3; ++pos;\n }\n }\n store(buf + off, 0);\n return buf;\n }\n}\n\nexport function parseInt(str: String, radix: i32 = 0): f64 {\n return parse(str, radix);\n}\n\nexport function parseI32(str: String, radix: i32 = 0): i32 {\n return parse(str, radix);\n}\n\nexport function parseI64(str: String, radix: i32 = 0): i64 {\n return parse(str, radix);\n}\n\n// FIXME: naive implementation\nexport function parseFloat(str: String): f64 {\n var len: i32 = str.length;\n if (!len) return NaN;\n\n var ptr = changetype(str) /* + HEAD -> offset */;\n var code = load(ptr, HEADER_SIZE);\n\n // determine sign\n var sign: f64;\n if (code == CharCode.MINUS) {\n if (!--len) return NaN;\n code = load(ptr += 2, HEADER_SIZE);\n sign = -1;\n } else if (code == CharCode.PLUS) {\n if (!--len) return NaN;\n code = load(ptr += 2, HEADER_SIZE);\n sign = 1;\n } else {\n sign = 1;\n }\n\n // calculate value\n var num: f64 = 0;\n while (len--) {\n code = load(ptr, HEADER_SIZE);\n if (code == CharCode.DOT) {\n ptr += 2;\n let fac: f64 = 0.1; // precision :(\n while (len--) {\n code = load(ptr, HEADER_SIZE);\n if (code == CharCode.E || code == CharCode.e) {\n assert(false); // TODO\n }\n code -= CharCode._0;\n if (code > 9) break;\n num += code * fac;\n fac *= 0.1;\n ptr += 2;\n }\n break;\n }\n code -= CharCode._0;\n if (code >= 10) break;\n num = (num * 10) + code;\n ptr += 2;\n }\n return sign * num;\n}\n',symbol:'import { Map } from "./map";\n\nvar stringToId: Map;\nvar idToString: Map;\nvar nextId: usize = 12; // Symbol.unscopables + 1\n\n@unmanaged export class symbol {\n toString(): string {\n var id = changetype(this);\n var str = "";\n switch (id) {\n case 1: { str = "hasInstance"; break; }\n case 2: { str = "isConcatSpreadable"; break; }\n case 3: { str = "isRegExp"; break; }\n case 4: { str = "match"; break; }\n case 5: { str = "replace"; break; }\n case 6: { str = "search"; break; }\n case 7: { str = "species"; break; }\n case 8: { str = "split"; break; }\n case 9: { str = "toPrimitive"; break; }\n case 10: { str = "toStringTag"; break; }\n case 11: { str = "unscopables"; break; }\n default: {\n if (idToString !== null && idToString.has(id)) str = idToString.get(id);\n break;\n }\n }\n return "Symbol(" + str + ")";\n }\n}\n\ntype Symbol = symbol;\n\nexport function Symbol(description: string | null = null): symbol {\n var id = nextId++;\n if (!id) unreachable(); // out of ids\n return changetype(id);\n}\n\nexport namespace Symbol {\n\n // well-known symbols\n export const hasInstance = changetype(1);\n export const isConcatSpreadable = changetype(2);\n export const isRegExp = changetype(3);\n export const iterator = changetype(3);\n export const match = changetype(4);\n export const replace = changetype(5);\n export const search = changetype(6);\n export const species = changetype(7);\n export const split = changetype(8);\n export const toPrimitive = changetype(9);\n export const toStringTag = changetype(10);\n export const unscopables = changetype(11);\n\n /* tslint:disable */// not valid TS\n export function for(key: string): symbol {\n if (!stringToId) { stringToId = new Map(); idToString = new Map(); }\n else if (stringToId.has(key)) return changetype(stringToId.get(key));\n var id = nextId++;\n if (!id) unreachable(); // out of ids\n stringToId.set(key, id);\n idToString.set(id, key);\n return changetype(id);\n }\n /* tslint:enable */\n\n export function keyFor(sym: symbol): string | null {\n return idToString !== null && idToString.has(changetype(sym))\n ? idToString.get(changetype(sym))\n : null;\n }\n}\n',table:"export namespace table {\n\n // export function copy(dst: u32, src: u32, n: u32): void {\n // __table_copy(dst, src, n);\n // }\n\n // Passive elements\n\n // export function init(elementIndex: u32, srcOffset: u32, dstOffset: u32, n: u32): void {\n // __table_init(elementIndex, srcOffset, dstOffset, n);\n // }\n\n // export function drop(elementIndex: u32): void {\n // __table_drop(elementIndex);\n // }\n}\n",typedarray:"import {\n TypedArray,\n FILL,\n SORT,\n SUBARRAY,\n REDUCE,\n REDUCE_RIGHT,\n MAP,\n FIND_INDEX,\n SOME,\n EVERY,\n} from \"./internal/typedarray\";\n\nimport {\n COMPARATOR\n} from \"./internal/sort\";\n\nexport class Int8Array extends TypedArray {\n static readonly BYTES_PER_ELEMENT: usize = sizeof();\n\n fill(value: i32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Int8Array {\n return FILL(this, value, start, end);\n }\n\n sort(comparator: (a: i8, b: i8) => i32 = COMPARATOR()): Int8Array {\n return SORT(this, comparator);\n }\n\n subarray(begin: i32 = 0, end: i32 = 0x7fffffff): Int8Array {\n return SUBARRAY(this, begin, end);\n }\n\n reduce(\n callbackfn: (accumulator: T, value: i8, index: i32, array: Int8Array) => T,\n initialValue: T,\n ): T {\n return REDUCE(this, callbackfn, initialValue);\n }\n\n reduceRight(\n callbackfn: (accumulator: T, value: i8, index: i32, array: Int8Array) => T,\n initialValue: T,\n ): T {\n return REDUCE_RIGHT(this, callbackfn, initialValue);\n }\n\n map(callbackfn: (value: i8, index: i32, self: Int8Array) => i8): Int8Array {\n return MAP(this, callbackfn);\n }\n\n findIndex(callbackfn: (value: i8, index: i32, self: Int8Array) => bool): i32 {\n return FIND_INDEX(this, callbackfn);\n }\n\n some(callbackfn: (value: i8, index: i32, self: Int8Array) => bool): bool {\n return SOME(this, callbackfn);\n }\n\n every(callbackfn: (value: i8, index: i32, self: Int8Array) => bool): bool {\n return EVERY(this, callbackfn);\n }\n}\n\nexport class Uint8Array extends TypedArray {\n static readonly BYTES_PER_ELEMENT: usize = sizeof();\n\n fill(value: u32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Uint8Array {\n return FILL(this, value, start, end);\n }\n\n sort(comparator: (a: u8, b: u8) => i32 = COMPARATOR()): Uint8Array {\n return SORT(this, comparator);\n }\n\n subarray(begin: i32 = 0, end: i32 = 0x7fffffff): Uint8Array {\n return SUBARRAY(this, begin, end);\n }\n\n reduce(\n callbackfn: (accumulator: T, value: u8, index: i32, array: Uint8Array) => T,\n initialValue: T,\n ): T {\n return REDUCE(this, callbackfn, initialValue);\n }\n\n reduceRight(\n callbackfn: (accumulator: T, value: u8, index: i32, array: Uint8Array) => T,\n initialValue: T,\n ): T {\n return REDUCE_RIGHT(this, callbackfn, initialValue);\n }\n\n map(callbackfn: (value: u8, index: i32, self: Uint8Array) => u8): Uint8Array {\n return MAP(this, callbackfn);\n }\n\n findIndex(callbackfn: (value: u8, index: i32, self: Uint8Array) => bool): i32 {\n return FIND_INDEX(this, callbackfn);\n }\n\n some(callbackfn: (value: u8, index: i32, self: Uint8Array) => bool): bool {\n return SOME(this, callbackfn);\n }\n\n every(callbackfn: (value: u8, index: i32, self: Uint8Array) => bool): bool {\n return EVERY(this, callbackfn);\n }\n}\n\nexport class Uint8ClampedArray extends Uint8Array {\n static readonly BYTES_PER_ELEMENT: usize = sizeof();\n\n @inline @operator(\"[]=\")\n protected __set(index: i32, value: i32): void {\n super.__set(index, max(min(value, 255), 0));\n }\n\n @inline @operator(\"{}=\")\n protected __unchecked_set(index: i32, value: i32): void {\n super.__unchecked_set(index, max(min(value, 255), 0));\n }\n\n fill(value: u32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Uint8ClampedArray {\n return changetype(super.fill(value, start, end)); // safe because '.fill' reuses 'this'\n }\n\n sort(comparator: (a: u8, b: u8) => i32 = COMPARATOR()): Uint8ClampedArray {\n return changetype(super.sort(comparator)); // safe because '.sort' reuses 'this'\n }\n\n subarray(begin: i32 = 0, end: i32 = 0x7fffffff): Uint8ClampedArray {\n return SUBARRAY(this, begin, end);\n }\n\n map(callbackfn: (value: u8, index: i32, self: Uint8ClampedArray) => u8): Uint8ClampedArray {\n return MAP(this, callbackfn);\n }\n\n findIndex(callbackfn: (value: u8, index: i32, self: Uint8ClampedArray) => bool): i32 {\n return FIND_INDEX(this, callbackfn);\n }\n\n some(callbackfn: (value: u8, index: i32, self: Uint8ClampedArray) => bool): bool {\n return SOME(this, callbackfn);\n }\n\n every(callbackfn: (value: u8, index: i32, self: Uint8ClampedArray) => bool): bool {\n return EVERY(this, callbackfn);\n }\n}\n\nexport class Int16Array extends TypedArray {\n static readonly BYTES_PER_ELEMENT: usize = sizeof();\n\n fill(value: i32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Int16Array {\n return FILL(this, value, start, end);\n }\n\n sort(comparator: (a: i16, b: i16) => i32 = COMPARATOR()): Int16Array {\n return SORT(this, comparator);\n }\n\n subarray(begin: i32 = 0, end: i32 = 0x7fffffff): Int16Array {\n return SUBARRAY(this, begin, end);\n }\n\n reduce(\n callbackfn: (accumulator: T, value: i16, index: i32, array: Int16Array) => T,\n initialValue: T,\n ): T {\n return REDUCE(this, callbackfn, initialValue);\n }\n\n reduceRight(\n callbackfn: (accumulator: T, value: i16, index: i32, array: Int16Array) => T,\n initialValue: T,\n ): T {\n return REDUCE_RIGHT(this, callbackfn, initialValue);\n }\n\n map(callbackfn: (value: i16, index: i32, self: Int16Array) => i16): Int16Array {\n return MAP(this, callbackfn);\n }\n\n findIndex(callbackfn: (value: i16, index: i32, self: Int16Array) => bool): i32 {\n return FIND_INDEX(this, callbackfn);\n }\n\n some(callbackfn: (value: i16, index: i32, self: Int16Array) => bool): bool {\n return SOME(this, callbackfn);\n }\n\n every(callbackfn: (value: i16, index: i32, self: Int16Array) => bool): bool {\n return EVERY(this, callbackfn);\n }\n}\n\nexport class Uint16Array extends TypedArray {\n static readonly BYTES_PER_ELEMENT: usize = sizeof();\n\n fill(value: u32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Uint16Array {\n return FILL(this, value, start, end);\n }\n\n sort(comparator: (a: u16, b: u16) => i32 = COMPARATOR()): Uint16Array {\n return SORT(this, comparator);\n }\n\n subarray(begin: i32 = 0, end: i32 = 0x7fffffff): Uint16Array {\n return SUBARRAY(this, begin, end);\n }\n\n reduce(\n callbackfn: (accumulator: T, value: u16, index: i32, array: Uint16Array) => T,\n initialValue: T,\n ): T {\n return REDUCE(this, callbackfn, initialValue);\n }\n\n reduceRight(\n callbackfn: (accumulator: T, value: u16, index: i32, array: Uint16Array) => T,\n initialValue: T,\n ): T {\n return REDUCE_RIGHT(this, callbackfn, initialValue);\n }\n\n map(callbackfn: (value: u16, index: i32, self: Uint16Array) => u16): Uint16Array {\n return MAP(this, callbackfn);\n }\n\n findIndex(callbackfn: (value: u16, index: i32, self: Uint16Array) => bool): i32 {\n return FIND_INDEX(this, callbackfn);\n }\n\n some(callbackfn: (value: u16, index: i32, self: Uint16Array) => bool): bool {\n return SOME(this, callbackfn);\n }\n\n every(callbackfn: (value: u16, index: i32, self: Uint16Array) => bool): bool {\n return EVERY(this, callbackfn);\n }\n}\n\nexport class Int32Array extends TypedArray {\n static readonly BYTES_PER_ELEMENT: usize = sizeof();\n\n fill(value: i32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Int32Array {\n return FILL(this, value, start, end);\n }\n\n sort(comparator: (a: i32, b: i32) => i32 = COMPARATOR()): Int32Array {\n return SORT(this, comparator);\n }\n\n subarray(begin: i32 = 0, end: i32 = 0x7fffffff): Int32Array {\n return SUBARRAY(this, begin, end);\n }\n\n reduce(\n callbackfn: (accumulator: T, value: i32, index: i32, array: Int32Array) => T,\n initialValue: T,\n ): T {\n return REDUCE(this, callbackfn, initialValue);\n }\n\n reduceRight(\n callbackfn: (accumulator: T, value: i32, index: i32, array: Int32Array) => T,\n initialValue: T,\n ): T {\n return REDUCE_RIGHT(this, callbackfn, initialValue);\n }\n\n map(callbackfn: (value: i32, index: i32, self: Int32Array) => i32): Int32Array {\n return MAP(this, callbackfn);\n }\n\n findIndex(callbackfn: (value: i32, index: i32, self: Int32Array) => bool): i32 {\n return FIND_INDEX(this, callbackfn);\n }\n\n some(callbackfn: (value: i32, index: i32, self: Int32Array) => bool): bool {\n return SOME(this, callbackfn);\n }\n\n every(callbackfn: (value: i32, index: i32, self: Int32Array) => bool): bool {\n return EVERY(this, callbackfn);\n }\n}\n\nexport class Uint32Array extends TypedArray {\n static readonly BYTES_PER_ELEMENT: usize = sizeof();\n\n fill(value: u32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Uint32Array {\n return FILL(this, value, start, end);\n }\n\n sort(comparator: (a: u32, b: u32) => i32 = COMPARATOR()): Uint32Array {\n return SORT(this, comparator);\n }\n\n subarray(begin: i32 = 0, end: i32 = 0x7fffffff): Uint32Array {\n return SUBARRAY(this, begin, end);\n }\n\n reduce(\n callbackfn: (accumulator: T, value: u32, index: i32, array: Uint32Array) => T,\n initialValue: T,\n ): T {\n return REDUCE(this, callbackfn, initialValue);\n }\n\n reduceRight(\n callbackfn: (accumulator: T, value: u32, index: i32, array: Uint32Array) => T,\n initialValue: T,\n ): T {\n return REDUCE_RIGHT(this, callbackfn, initialValue);\n }\n\n map(callbackfn: (value: u32, index: i32, self: Uint32Array) => u32): Uint32Array {\n return MAP(this, callbackfn);\n }\n\n findIndex(callbackfn: (value: u32, index: i32, self: Uint32Array) => bool): i32 {\n return FIND_INDEX(this, callbackfn);\n }\n\n some(callbackfn: (value: u32, index: i32, self: Uint32Array) => bool): bool {\n return SOME(this, callbackfn);\n }\n\n every(callbackfn: (value: u32, index: i32, self: Uint32Array) => bool): bool {\n return EVERY(this, callbackfn);\n }\n}\n\nexport class Int64Array extends TypedArray {\n static readonly BYTES_PER_ELEMENT: usize = sizeof();\n\n fill(value: i64, start: i32 = 0, end: i32 = i32.MAX_VALUE): Int64Array {\n return FILL(this, value, start, end);\n }\n\n sort(comparator: (a: i64, b: i64) => i32 = COMPARATOR()): Int64Array {\n return SORT(this, comparator);\n }\n\n subarray(begin: i32 = 0, end: i32 = 0x7fffffff): Int64Array {\n return SUBARRAY(this, begin, end);\n }\n\n reduce(\n callbackfn: (accumulator: T, value: i64, index: i32, array: Int64Array) => T,\n initialValue: T,\n ): T {\n return REDUCE(this, callbackfn, initialValue);\n }\n\n reduceRight(\n callbackfn: (accumulator: T, value: i64, index: i32, array: Int64Array) => T,\n initialValue: T,\n ): T {\n return REDUCE_RIGHT(this, callbackfn, initialValue);\n }\n\n map(callbackfn: (value: i64, index: i32, self: Int64Array) => i64): Int64Array {\n return MAP(this, callbackfn);\n }\n\n findIndex(callbackfn: (value: i64, index: i32, self: Int64Array) => bool): i32 {\n return FIND_INDEX(this, callbackfn);\n }\n\n some(callbackfn: (value: i64, index: i32, self: Int64Array) => bool): bool {\n return SOME(this, callbackfn);\n }\n\n every(callbackfn: (value: i64, index: i32, self: Int64Array) => bool): bool {\n return EVERY(this, callbackfn);\n }\n}\n\nexport class Uint64Array extends TypedArray {\n static readonly BYTES_PER_ELEMENT: usize = sizeof();\n\n fill(value: u64, start: i32 = 0, end: i32 = i32.MAX_VALUE): Uint64Array {\n return FILL(this, value, start, end);\n }\n\n sort(comparator: (a: u64, b: u64) => i32 = COMPARATOR()): Uint64Array {\n return SORT(this, comparator);\n }\n\n subarray(begin: i32 = 0, end: i32 = 0x7fffffff): Uint64Array {\n return SUBARRAY(this, begin, end);\n }\n\n reduce(\n callbackfn: (accumulator: T, value: u64, index: i32, array: Uint64Array) => T,\n initialValue: T,\n ): T {\n return REDUCE(this, callbackfn, initialValue);\n }\n\n reduceRight(\n callbackfn: (accumulator: T, value: u64, index: i32, array: Uint64Array) => T,\n initialValue: T,\n ): T {\n return REDUCE_RIGHT(this, callbackfn, initialValue);\n }\n\n map(callbackfn: (value: u64, index: i32, self: Uint64Array) => u64): Uint64Array {\n return MAP(this, callbackfn);\n }\n\n findIndex(callbackfn: (value: u64, index: i32, self: Uint64Array) => bool): i32 {\n return FIND_INDEX(this, callbackfn);\n }\n\n some(callbackfn: (value: u64, index: i32, self: Uint64Array) => bool): bool {\n return SOME(this, callbackfn);\n }\n\n every(callbackfn: (value: u64, index: i32, self: Uint64Array) => bool): bool {\n return EVERY(this, callbackfn);\n }\n}\n\nexport class Float32Array extends TypedArray {\n static readonly BYTES_PER_ELEMENT: usize = sizeof();\n\n fill(value: f32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Float32Array {\n return FILL(this, value, start, end);\n }\n\n sort(comparator: (a: f32, b: f32) => i32 = COMPARATOR()): Float32Array {\n return SORT(this, comparator);\n }\n\n subarray(begin: i32 = 0, end: i32 = 0x7fffffff): Float32Array {\n return SUBARRAY(this, begin, end);\n }\n\n reduce(\n callbackfn: (accumulator: T, value: f32, index: i32, array: Float32Array) => T,\n initialValue: T,\n ): T {\n return REDUCE(this, callbackfn, initialValue);\n }\n\n reduceRight(\n callbackfn: (accumulator: T, value: f32, index: i32, array: Float32Array) => T,\n initialValue: T,\n ): T {\n return REDUCE_RIGHT(this, callbackfn, initialValue);\n }\n\n map(callbackfn: (value: f32, index: i32, self: Float32Array) => f32): Float32Array {\n return MAP(this, callbackfn);\n }\n\n findIndex(callbackfn: (value: f32, index: i32, self: Float32Array) => bool): i32 {\n return FIND_INDEX(this, callbackfn);\n }\n\n some(callbackfn: (value: f32, index: i32, self: Float32Array) => bool): bool {\n return SOME(this, callbackfn);\n }\n\n every(callbackfn: (value: f32, index: i32, self: Float32Array) => bool): bool {\n return EVERY(this, callbackfn);\n }\n}\n\nexport class Float64Array extends TypedArray {\n static readonly BYTES_PER_ELEMENT: usize = sizeof();\n\n fill(value: f64, start: i32 = 0, end: i32 = i32.MAX_VALUE): Float64Array {\n return FILL(this, value, start, end);\n }\n\n sort(comparator: (a: f64, b: f64) => i32 = COMPARATOR()): Float64Array {\n return SORT(this, comparator);\n }\n\n subarray(begin: i32 = 0, end: i32 = 0x7fffffff): Float64Array {\n return SUBARRAY(this, begin, end);\n }\n\n reduce(\n callbackfn: (accumulator: T, value: f64, index: i32, array: Float64Array) => T,\n initialValue: T,\n ): T {\n return REDUCE(this, callbackfn, initialValue);\n }\n\n reduceRight(\n callbackfn: (accumulator: T, value: f64, index: i32, array: Float64Array) => T,\n initialValue: T,\n ): T {\n return REDUCE_RIGHT(this, callbackfn, initialValue);\n }\n\n map(callbackfn: (value: f64, index: i32, self: Float64Array) => f64): Float64Array {\n return MAP(this, callbackfn);\n }\n\n findIndex(callbackfn: (value: f64, index: i32, self: Float64Array) => bool): i32 {\n return FIND_INDEX(this, callbackfn);\n }\n\n some(callbackfn: (value: f64, index: i32, self: Float64Array) => bool): bool {\n return SOME(this, callbackfn);\n }\n\n every(callbackfn: (value: f64, index: i32, self: Float64Array) => bool): bool {\n return EVERY(this, callbackfn);\n }\n}\n",vector:"@sealed\nexport abstract class V128 {\n}\n"}):(()=>{const e=path.join(".","..","std","assembly"),n=__webpack_require__(!function(){var e=new Error("Cannot find module 'glob'");throw e.code="MODULE_NOT_FOUND",e}()).sync("**/!(*.d).ts",{cwd:e}),t={};return n.forEach(n=>t[n.replace(/\.ts$/,"")]=fs.readFileSync(path.join(e,n),"utf8")),t})(),exports.definitionFiles=exports.isBundle?Object({assembly:"/**\n * Environment definitions for compiling AssemblyScript to WebAssembly using asc.\n * @module std/assembly\n *//***/\n\n/// \n\n// Types\n\n/** An 8-bit signed integer. */\ndeclare type i8 = number;\n/** A 16-bit signed integer. */\ndeclare type i16 = number;\n/** A 32-bit signed integer. */\ndeclare type i32 = number;\n/** A 64-bit signed integer. */\ndeclare type i64 = number;\n/** A 32-bit signed integer when targeting 32-bit WebAssembly or a 64-bit signed integer when targeting 64-bit WebAssembly. */\ndeclare type isize = number;\n/** An 8-bit unsigned integer. */\ndeclare type u8 = number;\n/** A 16-bit unsigned integer. */\ndeclare type u16 = number;\n/** A 32-bit unsigned integer. */\ndeclare type u32 = number;\n/** A 64-bit unsigned integer. */\ndeclare type u64 = number;\n/** A 32-bit unsigned integer when targeting 32-bit WebAssembly or a 64-bit unsigned integer when targeting 64-bit WebAssembly. */\ndeclare type usize = number;\n/** A 1-bit unsigned integer. */\ndeclare type bool = boolean | number;\n/** A 32-bit float. */\ndeclare type f32 = number;\n/** A 64-bit float. */\ndeclare type f64 = number;\n\n// Compiler hints\n\n/** Compiler target. 0 = JS, 1 = WASM32, 2 = WASM64. */\ndeclare const ASC_TARGET: i32;\n/** Provided noTreeshaking option. */\ndeclare const ASC_NO_TREESHAKING: bool;\n/** Provided noAssert option. */\ndeclare const ASC_NO_ASSERT: bool;\n/** Provided memoryBase option. */\ndeclare const ASC_MEMORY_BASE: i32;\n/** Provided optimizeLevel option. */\ndeclare const ASC_OPTIMIZE_LEVEL: i32;\n/** Provided shrinkLevel option. */\ndeclare const ASC_SHRINK_LEVEL: i32;\n/** Whether the mutable global feature is enabled. */\ndeclare const ASC_FEATURE_MUTABLE_GLOBAL: bool;\n/** Whether the sign extension feature is enabled. */\ndeclare const ASC_FEATURE_SIGN_EXTENSION: bool;\n\n// Builtins\n\n/** Performs the sign-agnostic count leading zero bits operation on a 32-bit or 64-bit integer. All zero bits are considered leading if the value is zero. */\ndeclare function clz(value: T): T;\n/** Performs the sign-agnostic count tailing zero bits operation on a 32-bit or 64-bit integer. All zero bits are considered trailing if the value is zero. */\ndeclare function ctz(value: T): T;\n/** Performs the sign-agnostic count number of one bits operation on a 32-bit or 64-bit integer. */\ndeclare function popcnt(value: T): T;\n/** Performs the sign-agnostic rotate left operation on a 32-bit or 64-bit integer. */\ndeclare function rotl(value: T, shift: T): T;\n/** Performs the sign-agnostic rotate right operation on a 32-bit or 64-bit integer. */\ndeclare function rotr(value: T, shift: T): T;\n/** Computes the absolute value of an integer or float. */\ndeclare function abs(value: T): T;\n/** Determines the maximum of two integers or floats. If either operand is `NaN`, returns `NaN`. */\ndeclare function max(left: T, right: T): T;\n/** Determines the minimum of two integers or floats. If either operand is `NaN`, returns `NaN`. */\ndeclare function min(left: T, right: T): T;\n/** Performs the ceiling operation on a 32-bit or 64-bit float. */\ndeclare function ceil(value: T): T;\n/** Composes a 32-bit or 64-bit float from the magnitude of `x` and the sign of `y`. */\ndeclare function copysign(x: T, y: T): T;\n/** Performs the floor operation on a 32-bit or 64-bit float. */\ndeclare function floor(value: T): T;\n/** Rounds to the nearest integer tied to even of a 32-bit or 64-bit float. */\ndeclare function nearest(value: T): T;\n/** Reinterprets the bits of the specified value as type `T`. Valid reinterpretations are u32/i32 to/from f32 and u64/i64 to/from f64. */\ndeclare function reinterpret(value: number): T;\n/** Selects one of two pre-evaluated values depending on the condition. */\ndeclare function select(ifTrue: T, ifFalse: T, condition: bool): T;\n/** Calculates the square root of a 32-bit or 64-bit float. */\ndeclare function sqrt(value: T): T;\n/** Rounds to the nearest integer towards zero of a 32-bit or 64-bit float. */\ndeclare function trunc(value: T): T;\n/** Loads a value of the specified type from memory. Equivalent to dereferncing a pointer in other languages. */\ndeclare function load(ptr: usize, constantOffset?: usize): T;\n/** Stores a value of the specified type to memory. Equivalent to dereferencing a pointer in other languages when assigning a value. */\ndeclare function store(ptr: usize, value: any, constantOffset?: usize): void;\n/** Emits an unreachable operation that results in a runtime error when executed. Both a statement and an expression of any type. */\ndeclare function unreachable(): any; // sic\n\n/** NaN (not a number) as a 32-bit or 64-bit float depending on context. */\ndeclare const NaN: f32 | f64;\n/** Positive infinity as a 32-bit or 64-bit float depending on context. */\ndeclare const Infinity: f32 | f64;\n/** Heap base offset. */\ndeclare const HEAP_BASE: usize;\n/** Determines the byte size of the specified underlying core type. Compiles to a constant. */\ndeclare function sizeof(): usize;\n/** Determines the alignment (log2) of the specified underlying core type. Compiles to a constant. */\ndeclare function alignof(): usize;\n/** Determines the offset of the specified field within the given class type. Returns the class type's end offset if field name has been omitted. Compiles to a constant. */\ndeclare function offsetof(fieldName?: string): usize;\n/** Changes the type of any value of `usize` kind to another one of `usize` kind. Useful for casting class instances to their pointer values and vice-versa. Beware that this is unsafe.*/\ndeclare function changetype(value: any): T;\n/** Explicitly requests no bounds checks on the provided expression. Useful for array accesses. */\ndeclare function unchecked(value: T): T;\n/** Emits a `call_indirect` instruction, calling the specified function in the function table by index with the specified arguments. Does result in a runtime error if the arguments do not match the called function. */\ndeclare function call_indirect(target: Function | u32, ...args: any[]): T;\n/** Instantiates a new instance of `T` using the specified constructor arguments. */\ndeclare function instantiate(...args: any[]): T;\n/** Tests if a 32-bit or 64-bit float is `NaN`. */\ndeclare function isNaN(value: T): bool;\n/** Tests if a 32-bit or 64-bit float is finite, that is not `NaN` or +/-`Infinity`. */\ndeclare function isFinite(value: T): bool;\n/** Tests if the specified type *or* expression is of an integer type and not a reference. Compiles to a constant. */\ndeclare function isInteger(value?: any): value is number;\n/** Tests if the specified type *or* expression is of a float type. Compiles to a constant. */\ndeclare function isFloat(value?: any): value is number;\n/** Tests if the specified type *or* expression can represent negative numbers. Compiles to a constant. */\ndeclare function isSigned(value?: any): value is number;\n/** Tests if the specified type *or* expression is of a reference type. Compiles to a constant. */\ndeclare function isReference(value?: any): value is object | string;\n/** Tests if the specified type *or* expression can be used as a string. Compiles to a constant. */\ndeclare function isString(value?: any): value is string | String;\n/** Tests if the specified type *or* expression can be used as an array. Compiles to a constant. */\ndeclare function isArray(value?: any): value is Array;\n/** Tests if the specified expression resolves to a defined element. Compiles to a constant. */\ndeclare function isDefined(expression: any): bool;\n/** Tests if the specified expression evaluates to a constant value. Compiles to a constant. */\ndeclare function isConstant(expression: any): bool;\n/** Tests if the specified type *or* expression is of a managed type. Compiles to a constant. */\ndeclare function isManaged(value?: any): bool;\n/** Traps if the specified value is not true-ish, otherwise returns the (non-nullable) value. */\ndeclare function assert(isTrueish: T, message?: string): T & object; // any better way to model `: T != null`?\n/** Parses an integer string to a 64-bit float. */\ndeclare function parseInt(str: string, radix?: i32): f64;\n/** Parses an integer string to a 32-bit integer. */\ndeclare function parseI32(str: string, radix?: i32): i32;\n/** Parses an integer string to a 64-bit integer. */\ndeclare function parseI64(str: string, radix?: i32): i64;\n/** Parses a string to a 64-bit float. */\ndeclare function parseFloat(str: string): f64;\n/** Returns the 64-bit floating-point remainder of `x/y`. */\ndeclare function fmod(x: f64, y: f64): f64;\n/** Returns the 32-bit floating-point remainder of `x/y`. */\ndeclare function fmodf(x: f32, y: f32): f32;\n\n/** Converts any other numeric value to an 8-bit signed integer. */\ndeclare function i8(value: i8 | i16 | i32 | i64 | isize | u8 | u16 | u32 | u64 | usize | bool | f32 | f64): i8;\ndeclare namespace i8 {\n /** Smallest representable value. */\n export const MIN_VALUE: i8;\n /** Largest representable value. */\n export const MAX_VALUE: i8;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): i8;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): i8;\n}\n/** Converts any other numeric value to a 16-bit signed integer. */\ndeclare function i16(value: i8 | i16 | i32 | i64 | isize | u8 | u16 | u32 | u64 | usize | bool | f32 | f64): i8;\ndeclare namespace i16 {\n /** Smallest representable value. */\n export const MIN_VALUE: i16;\n /** Largest representable value. */\n export const MAX_VALUE: i16;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): i16;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): i16;\n}\n/** Converts any other numeric value to a 32-bit signed integer. */\ndeclare function i32(value: i8 | i16 | i32 | i64 | isize | u8 | u16 | u32 | u64 | usize | bool | f32 | f64): i32;\ndeclare namespace i32 {\n /** Smallest representable value. */\n export const MIN_VALUE: i32;\n /** Largest representable value. */\n export const MAX_VALUE: i32;\n /** Loads an 8-bit signed integer from memory and returns it as a 32-bit integer. */\n export function load8_s(offset: usize, constantOffset?: usize): i32;\n /** Loads an 8-bit unsigned integer from memory and returns it as a 32-bit integer. */\n export function load8_u(offset: usize, constantOffset?: usize): i32;\n /** Loads a 16-bit signed integer from memory and returns it as a 32-bit integer. */\n export function load16_s(offset: usize, constantOffset?: usize): i32;\n /** Loads a 16-bit unsigned integer from memory and returns it as a 32-bit integer. */\n export function load16_u(offset: usize, constantOffset?: usize): i32;\n /** Loads a 32-bit integer from memory. */\n export function load(offset: usize, constantOffset?: usize): i32;\n /** Stores a 32-bit integer to memory as an 8-bit integer. */\n export function store8(offset: usize, value: i32, constantOffset?: usize): void;\n /** Stores a 32-bit integer to memory as a 16-bit integer. */\n export function store16(offset: usize, value: i32, constantOffset?: usize): void;\n /** Stores a 32-bit integer to memory. */\n export function store(offset: usize, value: i32, constantOffset?: usize): void;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): i32;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): i32;\n}\n/** Converts any other numeric value to a 64-bit signed integer. */\ndeclare function i64(value: i8 | i16 | i32 | i64 | isize | u8 | u16 | u32 | u64 | usize | bool | f32 | f64): i64;\ndeclare namespace i64 {\n /** Smallest representable value. */\n export const MIN_VALUE: i64;\n /** Largest representable value. */\n export const MAX_VALUE: i64;\n /** Loads an 8-bit signed integer from memory and returns it as a 64-bit signed integer. */\n export function load8_s(offset: usize, constantOffset?: usize): i64;\n /** Loads an 8-bit unsigned integer from memory and returns it as a 64-bit unsigned integer. */\n export function load8_u(offset: usize, constantOffset?: usize): u64;\n /** Loads a 16-bit signed integer from memory and returns it as a 64-bit signed integer. */\n export function load16_s(offset: usize, constantOffset?: usize): i64;\n /** Loads a 16-bit unsigned integer from memory and returns it as a 64-bit unsigned integer. */\n export function load16_u(offset: usize, constantOffset?: usize): u64;\n /** Loads a 32-bit signed integer from memory and returns it as a 64-bit signed integer. */\n export function load32_s(offset: usize, constantOffset?: usize): i64;\n /** Loads a 32-bit unsigned integer from memory and returns it as a 64-bit unsigned integer. */\n export function load32_u(offset: usize, constantOffset?: usize): u64;\n /** Loads a 64-bit unsigned integer from memory. */\n export function load(offset: usize, constantOffset?: usize): i64;\n /** Stores a 64-bit integer to memory as an 8-bit integer. */\n export function store8(offset: usize, value: i64, constantOffset?: usize): void;\n /** Stores a 64-bit integer to memory as a 16-bit integer. */\n export function store16(offset: usize, value: i64, constantOffset?: usize): void;\n /** Stores a 64-bit integer to memory as a 32-bit integer. */\n export function store32(offset: usize, value: i64, constantOffset?: usize): void;\n /** Stores a 64-bit integer to memory. */\n export function store(offset: usize, value: i64, constantOffset?: usize): void;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): i64;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): i64;\n}\n/** Converts any other numeric value to a 32-bit (in WASM32) respectivel 64-bit (in WASM64) signed integer. */\ndeclare var isize: typeof i32 | typeof i64;\n/** Converts any other numeric value to an 8-bit unsigned integer. */\ndeclare function u8(value: i8 | i16 | i32 | i64 | isize | u8 | u16 | u32 | u64 | usize | bool | f32 | f64): i8;\ndeclare namespace u8 {\n /** Smallest representable value. */\n export const MIN_VALUE: u8;\n /** Largest representable value. */\n export const MAX_VALUE: u8;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): u8;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): u8;\n}\n/** Converts any other numeric value to a 16-bit unsigned integer. */\ndeclare function u16(value: i8 | i16 | i32 | i64 | isize | u8 | u16 | u32 | u64 | usize | bool | f32 | f64): i8;\ndeclare namespace u16 {\n /** Smallest representable value. */\n export const MIN_VALUE: u16;\n /** Largest representable value. */\n export const MAX_VALUE: u16;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): u16;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): u16;\n}\n/** Converts any other numeric value to a 32-bit unsigned integer. */\ndeclare function u32(value: i8 | i16 | i32 | i64 | isize | u8 | u16 | u32 | u64 | usize | bool | f32 | f64): i32;\ndeclare namespace u32 {\n /** Smallest representable value. */\n export const MIN_VALUE: u32;\n /** Largest representable value. */\n export const MAX_VALUE: u32;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): u64;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): u64;\n}\n/** Converts any other numeric value to a 64-bit unsigned integer. */\ndeclare function u64(value: i8 | i16 | i32 | i64 | isize | u8 | u16 | u32 | u64 | usize | bool | f32 | f64): i64;\ndeclare namespace u64 {\n /** Smallest representable value. */\n export const MIN_VALUE: u64;\n /** Largest representable value. */\n export const MAX_VALUE: u64;\n /** Converts a string to a floating-point number. */\n export function parseFloat(string: string): u64;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): u64;\n}\n/** Converts any other numeric value to a 32-bit (in WASM32) respectivel 64-bit (in WASM64) unsigned integer. */\ndeclare var usize: typeof u32 | typeof u64;\n/** Converts any other numeric value to a 1-bit unsigned integer. */\ndeclare function bool(value: i8 | i16 | i32 | i64 | isize | u8 | u16 | u32 | u64 | usize | bool | f32 | f64): bool;\ndeclare namespace bool {\n /** Smallest representable value. */\n export const MIN_VALUE: bool;\n /** Largest representable value. */\n export const MAX_VALUE: bool;\n}\n/** Converts any other numeric value to a 32-bit float. */\ndeclare function f32(value: i8 | i16 | i32 | i64 | isize | u8 | u16 | u32 | u64 | usize | bool | f32 | f64): f32;\ndeclare namespace f32 {\n /** Smallest representable value. */\n export const MIN_VALUE: f32;\n /** Largest representable value. */\n export const MAX_VALUE: f32;\n /** Smallest normalized positive value. */\n export const MIN_POSITIVE_VALUE: f32;\n /** Smallest safely representable integer value. */\n export const MIN_SAFE_INTEGER: f32;\n /** Largest safely representable integer value. */\n export const MAX_SAFE_INTEGER: f32;\n /** Difference between 1 and the smallest representable value greater than 1. */\n export const EPSILON: f32;\n /** Returns the floating-point remainder of `x / y` (rounded towards zero). */\n export function mod(x: f32, y: f32): f32;\n /** Returns the floating-point remainder of `x / y` (rounded to nearest). */\n export function rem(x: f32, y: f32): f32;\n /** Loads a 32-bit float from memory. */\n export function load(offset: usize, constantOffset?: usize): f32;\n /** Stores a 32-bit float to memory. */\n export function store(offset: usize, value: f32, constantOffset?: usize): void;\n /** Returns a boolean value that indicates whether a value is the reserved value NaN (not a number). */\n export function isNaN(value: f32): bool;\n /** Returns true if passed value is finite. */\n export function isFinite(value: f32): bool;\n /** Returns true if the value passed is a safe integer. */\n export function isSafeInteger(value: f32): bool;\n /** Returns true if the value passed is an integer, false otherwise. */\n export function isInteger(value: f32): bool;\n /** Converts a string to a floating-point number. */\n export function parseFloat(string: string): f32;\n /** Converts a string to an integer. */\n export function parseInt(string: string, radix?: i32): f32;\n}\n/** Converts any other numeric value to a 64-bit float. */\ndeclare function f64(value: i8 | i16 | i32 | i64 | isize | u8 | u16 | u32 | u64 | usize | bool | f32 | f64): f64;\ndeclare namespace f64 {\n /** Smallest representable value. */\n export const MIN_VALUE: f64;\n /** Largest representable value. */\n export const MAX_VALUE: f64;\n /** Smallest normalized positive value. */\n export const MIN_POSITIVE_VALUE: f64;\n /** Smallest safely representable integer value. */\n export const MIN_SAFE_INTEGER: f64;\n /** Largest safely representable integer value. */\n export const MAX_SAFE_INTEGER: f64;\n /** Difference between 1 and the smallest representable value greater than 1. */\n export const EPSILON: f64;\n /** Loads a 64-bit float from memory. */\n export function load(offset: usize, constantOffset?: usize): f64;\n /** Stores a 64-bit float to memory. */\n export function store(offset: usize, value: f64, constantOffset?: usize): void;\n}\n/** Macro type evaluating to the underlying native WebAssembly type. */\ndeclare type NATIVE = T;\n\n/** Pseudo-class representing the backing class of integer types. */\ndeclare class _Integer {\n /** Smallest representable value. */\n static readonly MIN_VALUE: number;\n /** Largest representable value. */\n static readonly MAX_VALUE: number;\n /** Converts a string to an integer of this type. */\n static parseInt(value: string, radix?: number): number;\n /** Converts this integer to a string. */\n toString(): string;\n}\n\n/** Pseudo-class representing the backing class of floating-point types. */\ndeclare class _Float {\n /** Difference between 1 and the smallest representable value greater than 1. */\n static readonly EPSILON: f32 | f64;\n /** Smallest representable value. */\n static readonly MIN_VALUE: f32 | f64;\n /** Largest representable value. */\n static readonly MAX_VALUE: f32 | f64;\n /** Smallest safely representable integer value. */\n static readonly MIN_SAFE_INTEGER: f32 | f64;\n /** Largest safely representable integer value. */\n static readonly MAX_SAFE_INTEGER: f32 | f64;\n /** Value representing positive infinity. */\n static readonly POSITIVE_INFINITY: f32 | f64;\n /** Value representing negative infinity. */\n static readonly NEGATIVE_INFINITY: f32 | f64;\n /** Value representing 'not a number'. */\n static readonly NaN: f32 | f64;\n /** Returns a boolean value that indicates whether a value is the reserved value NaN (not a number). */\n static isNaN(value: f32 | f64): bool;\n /** Returns true if passed value is finite. */\n static isFinite(value: f32 | f64): bool;\n /** Returns true if the value passed is a safe integer. */\n static isSafeInteger(value: f32 | f64): bool;\n /** Returns true if the value passed is an integer, false otherwise. */\n static isInteger(value: f32 | f64): bool;\n /** Converts A string to an integer. */\n static parseInt(value: string, radix?: i32): f32 | f64;\n /** Converts a string to a floating-point number. */\n static parseFloat(value: string): f32 | f64;\n /** Converts this floating-point number to a string. */\n toString(this: f64): string;\n}\n\n/** Backing class of signed 8-bit integers. */\ndeclare const I8: typeof _Integer;\n/** Backing class of signed 16-bit integers. */\ndeclare const I16: typeof _Integer;\n/** Backing class of signed 32-bit integers. */\ndeclare const I32: typeof _Integer;\n/** Backing class of signed 64-bit integers. */\ndeclare const I64: typeof _Integer;\n/** Backing class of signed size integers. */\ndeclare const Isize: typeof _Integer;\n/** Backing class of unsigned 8-bit integers. */\ndeclare const U8: typeof _Integer;\n/** Backing class of unsigned 16-bit integers. */\ndeclare const U16: typeof _Integer;\n/** Backing class of unsigned 32-bit integers. */\ndeclare const U32: typeof _Integer;\n/** Backing class of unsigned 64-bit integers. */\ndeclare const U64: typeof _Integer;\n/** Backing class of unsigned size integers. */\ndeclare const Usize: typeof _Integer;\n/** Backing class of 32-bit floating-point values. */\ndeclare const F32: typeof _Float;\n/** Backing class of 64-bit floating-point values. */\ndeclare const F64: typeof _Float;\n\n// User-defined diagnostic macros\n\n/** Emits a user-defined diagnostic error when encountered. */\ndeclare function ERROR(message?: any): void;\n/** Emits a user-defined diagnostic warning when encountered. */\ndeclare function WARNING(message?: any): void;\n/** Emits a user-defined diagnostic info when encountered. */\ndeclare function INFO(message?: any): void;\n\n// Polyfills\n\n/** Performs the sign-agnostic reverse bytes **/\ndeclare function bswap(value: T): T;\n/** Performs the sign-agnostic reverse bytes only for last 16-bit **/\ndeclare function bswap16(value: T): T;\n\n// Standard library\n\n/** Memory operations. */\ndeclare namespace memory {\n /** Returns the current memory size in units of pages. One page is 64kb. */\n export function size(): i32;\n /** Grows linear memory by a given unsigned delta of pages. One page is 64kb. Returns the previous memory size in units of pages or `-1` on failure. */\n export function grow(value: i32): i32;\n /** Sets n bytes beginning at the specified destination in memory to the specified byte value. */\n export function fill(dst: usize, value: u8, count: usize): void;\n /** Copies n bytes from the specified source to the specified destination in memory. These regions may overlap. */\n export function copy(dst: usize, src: usize, n: usize): void;\n /** Copies elements from a passive element segment to a table. */\n // export function init(segmentIndex: u32, srcOffset: usize, dstOffset: usize, n: usize): void;\n /** Prevents further use of a passive element segment. */\n // export function drop(segmentIndex: u32): void;\n /** Copies elements from one region of a table to another region. */\n export function allocate(size: usize): usize;\n /** Disposes a chunk of memory by its pointer. */\n export function free(ptr: usize): void;\n /** Compares two chunks of memory. Returns `0` if equal, otherwise the difference of the first differing bytes. */\n export function compare(vl: usize, vr: usize, n: usize): i32;\n /** Resets the allocator to its initial state, if supported. */\n export function reset(): void;\n}\n\n/** Garbage collector operations. */\ndeclare namespace gc {\n /** Allocates a managed object identified by its visitor function. */\n export function allocate(size: usize, visitFn: (ref: usize) => void): usize;\n /** Performs a full garbage collection cycle. */\n export function collect(): void;\n}\n\n/** Table operations. */\ndeclare namespace table {\n /** Copies elements from a passive element segment to a table. */\n // export function init(elementIndex: u32, srcOffset: u32, dstOffset: u32, n: u32): void;\n /** Prevents further use of a passive element segment. */\n // export function drop(elementIndex: u32): void;\n /** Copies elements from one region of a table to another region. */\n // export function copy(dest: u32, src: u32, n: u32): void;\n}\n\n/** Class representing a generic, fixed-length raw binary data buffer. */\ndeclare class ArrayBuffer {\n /** The size, in bytes, of the array. */\n readonly byteLength: i32;\n /** Unsafe pointer to the start of the data in memory. */\n readonly data: usize;\n /** Returns true if value is one of the ArrayBuffer views, such as typed array or a DataView **/\n static isView(value: T): bool;\n /** Constructs a new array buffer of the given length in bytes. */\n constructor(length: i32, unsafe?: bool);\n /** Returns a copy of this array buffer's bytes from begin, inclusive, up to end, exclusive. */\n slice(begin?: i32, end?: i32): ArrayBuffer;\n /** Returns a string representation of ArrayBuffer. */\n toString(): string;\n}\n\n/** The `DataView` view provides a low-level interface for reading and writing multiple number types in a binary `ArrayBuffer`, without having to care about the platform's endianness. */\ndeclare class DataView {\n /** The `buffer` accessor property represents the `ArrayBuffer` or `SharedArrayBuffer` referenced by the `DataView` at construction time. */\n readonly buffer: ArrayBuffer;\n /** The `byteLength` accessor property represents the length (in bytes) of this view from the start of its `ArrayBuffer` or `SharedArrayBuffer`. */\n readonly byteLength: i32;\n /** The `byteOffset` accessor property represents the offset (in bytes) of this view from the start of its `ArrayBuffer` or `SharedArrayBuffer`. */\n readonly byteOffset: i32;\n /** Constructs a new `DataView` with the given properties */\n constructor(buffer: ArrayBuffer, byteOffset?: i32, byteLength?: i32);\n /** The `getFloat32()` method gets a signed 32-bit float (float) at the specified byte offset from the start of the `DataView`. */\n getFloat32(byteOffset: i32, littleEndian?: boolean): f32;\n /** The `getFloat64()` method gets a signed 64-bit float (double) at the specified byte offset from the start of the `DataView`. */\n getFloat64(byteOffset: i32, littleEndian?: boolean): f64;\n /** The `getInt8()` method gets a signed 8-bit integer (byte) at the specified byte offset from the start of the `DataView`. */\n getInt8(byteOffset: i32): i8;\n /** The `getInt16()` method gets a signed 16-bit integer (short) at the specified byte offset from the start of the `DataView`. */\n getInt16(byteOffset: i32, littleEndian?: boolean): i16;\n /** The `getInt32()` method gets a signed 32-bit integer (long) at the specified byte offset from the start of the `DataView`. */\n getInt32(byteOffset: i32, littleEndian?: boolean): i32;\n /** The `getInt64()` method gets a signed 64-bit integer (long long) at the specified byte offset from the start of the `DataView`. */\n getInt64(byteOffset: i32, littleEndian?: boolean): i64;\n /** The `getUint8()` method gets an unsigned 8-bit integer (unsigned byte) at the specified byte offset from the start of the `DataView`. */\n getUint8(byteOffset: i32): u8;\n /** The `getUint16()` method gets an unsigned 16-bit integer (unsigned short) at the specified byte offset from the start of the `DataView`. */\n getUint16(byteOffset: i32, littleEndian?: boolean): u16;\n /** The `getUint32()` method gets an unsigned 32-bit integer (unsigned long) at the specified byte offset from the start of the `DataView`. */\n getUint32(byteOffset: i32, littleEndian?: boolean): u32;\n /** The `getUint64()` method gets an unsigned 64-bit integer (unsigned long long) at the specified byte offset from the start of the `DataView`. */\n getUint64(byteOffset: i32, littleEndian?: boolean): u64;\n /** The `setFloat32()` method stores a signed 32-bit float (float) value at the specified byte offset from the start of the `DataView`. */\n setFloat32(byteOffset: i32, value: f32, littleEndian?: boolean): void;\n /** The `setFloat64()` method stores a signed 64-bit float (double) value at the specified byte offset from the start of the `DataView`. */\n setFloat64(byteOffset: i32, value: f64, littleEndian?: boolean): void;\n /** The `setInt8()` method stores a signed 8-bit integer (byte) value at the specified byte offset from the start of the `DataView`. */\n setInt8(byteOffset: i32, value: i8): void;\n /** The `setInt16()` method stores a signed 16-bit integer (short) value at the specified byte offset from the start of the `DataView`. */\n setInt16(byteOffset: i32, value: i16, littleEndian?: boolean): void;\n /** The `setInt32()` method stores a signed 32-bit integer (long) value at the specified byte offset from the start of the `DataView`. */\n setInt32(byteOffset: i32, value: i32, littleEndian?: boolean): void;\n /** The `setInt64()` method stores a signed 64-bit integer (long long) value at the specified byte offset from the start of the `DataView`. */\n setInt64(byteOffset: i32, value: i64, littleEndian?: boolean): void;\n /** The `setUint8()` method stores an unsigned 8-bit integer (byte) value at the specified byte offset from the start of the `DataView`. */\n setUint8(byteOffset: i32, value: u8): void;\n /** The `setUint16()` method stores an unsigned 16-bit integer (unsigned short) value at the specified byte offset from the start of the `DataView`. */\n setUint16(byteOffset: i32, value: u16, littleEndian?: boolean): void;\n /** The `setUint32()` method stores an unsigned 32-bit integer (unsigned long) value at the specified byte offset from the start of the `DataView`. */\n setUint32(byteOffset: i32, value: u32, littleEndian?: boolean): void;\n /** The `setUint64()` method stores an unsigned 64-bit integer (unsigned long long) value at the specified byte offset from the start of the `DataView`. */\n setUint64(byteOffset: i32, value: u64, littleEndian?: boolean): void;\n /** Returns a string representation of DataView. */\n toString(): string;\n}\n\n/** Interface for a typed view on an array buffer. */\ninterface ArrayBufferView {\n [key: number]: T;\n /** The {@link ArrayBuffer} referenced by this view. */\n readonly buffer: ArrayBuffer;\n /** The offset in bytes from the start of the referenced {@link ArrayBuffer}. */\n readonly byteOffset: i32;\n /** The length in bytes from the start of the referenced {@link ArrayBuffer}. */\n readonly byteLength: i32;\n}\n\n/* @internal */\ndeclare abstract class TypedArray implements ArrayBufferView {\n [key: number]: T;\n /** Number of bytes per element. */\n static readonly BYTES_PER_ELEMENT: usize;\n /** Constructs a new typed array. */\n constructor(length: i32);\n /** The {@link ArrayBuffer} referenced by this view. */\n readonly buffer: ArrayBuffer;\n /** The offset in bytes from the start of the referenced {@link ArrayBuffer}. */\n readonly byteOffset: i32;\n /** The length in bytes from the start of the referenced {@link ArrayBuffer}. */\n readonly byteLength: i32;\n /** The length (in elements). */\n readonly length: i32;\n /** Returns a new TypedArray of this type on the same ArrayBuffer from begin inclusive to end exclusive. */\n subarray(begin?: i32, end?: i32): this;\n /** The reduce() method applies a function against an accumulator and each value of the typed array (from left-to-right) has to reduce it to a single value. This method has the same algorithm as Array.prototype.reduce(). */\n reduce(\n callbackfn: (accumulator: W, value: T, index: i32, self: this) => W,\n initialValue: W,\n ): W;\n /** The reduceRight() method applies a function against an accumulator and each value of the typed array (from left-to-right) has to reduce it to a single value, starting from the end of the array. This method has the same algorithm as Array.prototype.reduceRight(). */\n reduceRight(\n callbackfn: (accumulator: W, value: T, index: i32, self: this) => W,\n initialValue: W,\n ): W;\n /** The some() method tests whether some element in the typed array passes the test implemented by the provided function. This method has the same algorithm as Array.prototype.some().*/\n some(callbackfn: (value: T, index: i32, self: this) => bool): bool;\n /** The map() method creates a new typed array with the results of calling a provided function on every element in this typed array. This method has the same algorithm as Array.prototype.map().*/\n map(callbackfn: (value: T, index: i32, self: this) => T): this;\n /** The sort() method sorts the elements of a typed array numerically in place and returns the typed array. This method has the same algorithm as Array.prototype.sort(), except that sorts the values numerically instead of as strings. TypedArray is one of the typed array types here. */\n sort(callback?: (a: T, b: T) => i32): this;\n /** The fill() method fills all the elements of a typed array from a start index to an end index with a static value. This method has the same algorithm as Array.prototype.fill(). */\n fill(value: T, start?: i32, end?: i32): this;\n /** The findIndex() method returns an index in the typed array, if an element in the typed array satisfies the provided testing function. Otherwise -1 is returned. See also the find() [not implemented] method, which returns the value of a found element in the typed array instead of its index. */\n findIndex(callbackfn: (value: T, index: i32, self: this) => bool): i32;\n /** The every() method tests whether all elements in the typed array pass the test implemented by the provided function. This method has the same algorithm as Array.prototype.every(). */\n every(callbackfn: (value: T, index: i32, self: this) => bool): i32;\n}\n\n/** An array of twos-complement 8-bit signed integers. */\ndeclare class Int8Array extends TypedArray {}\n/** An array of 8-bit unsigned integers. */\ndeclare class Uint8Array extends TypedArray {}\n/** A clamped array of 8-bit unsigned integers. */\ndeclare class Uint8ClampedArray extends TypedArray {}\n/** An array of twos-complement 16-bit signed integers. */\ndeclare class Int16Array extends TypedArray {}\n/** An array of 16-bit unsigned integers. */\ndeclare class Uint16Array extends TypedArray {}\n/** An array of twos-complement 32-bit signed integers. */\ndeclare class Int32Array extends TypedArray {}\n/** An array of 32-bit unsigned integers. */\ndeclare class Uint32Array extends TypedArray {}\n/** An array of twos-complement 64-bit signed integers. */\ndeclare class Int64Array extends TypedArray {}\n/** An array of 64-bit unsigned integers. */\ndeclare class Uint64Array extends TypedArray {}\n/** An array of 32-bit floating point numbers. */\ndeclare class Float32Array extends TypedArray {}\n/** An array of 64-bit floating point numbers. */\ndeclare class Float64Array extends TypedArray {}\n\n/** Class representing a sequence of values of type `T`. */\ndeclare class Array {\n\n static isArray(value: any): value is Array;\n\n [key: number]: T;\n /** Current length of the array. */\n length: i32;\n /** Constructs a new array. */\n constructor(capacity?: i32);\n\n fill(value: T, start?: i32, end?: i32): this;\n every(callbackfn: (element: T, index: i32, array?: Array) => bool): bool;\n findIndex(predicate: (element: T, index: i32, array?: Array) => bool): i32;\n includes(searchElement: T, fromIndex?: i32): bool;\n indexOf(searchElement: T, fromIndex?: i32): i32;\n lastIndexOf(searchElement: T, fromIndex?: i32): i32;\n push(element: T): i32;\n concat(items: T[]): T[];\n copyWithin(target: i32, start: i32, end?: i32): this;\n pop(): T;\n forEach(callbackfn: (value: T, index: i32, array: Array) => void): void;\n map(callbackfn: (value: T, index: i32, array: Array) => U): Array;\n filter(callbackfn: (value: T, index: i32, array: Array) => bool): Array;\n reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: i32, array: Array) => U, initialValue: U): U;\n reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: i32, array: Array) => U, initialValue: U): U;\n shift(): T;\n some(callbackfn: (element: T, index: i32, array?: Array) => bool): bool;\n unshift(element: T): i32;\n slice(from: i32, to?: i32): Array;\n splice(start: i32, deleteCount?: i32): Array;\n sort(comparator?: (a: T, b: T) => i32): this;\n join(separator?: string): string;\n reverse(): T[];\n toString(): string;\n}\n\n/** Class representing a sequence of characters. */\ndeclare class String {\n\n static fromCharCode(ls: i32, hs?: i32): string;\n static fromCharCodes(arr: u16[]): string;\n static fromCodePoint(code: i32): string;\n static fromCodePoints(arr: i32[]): string;\n\n readonly length: i32;\n readonly lengthUTF8: i32;\n\n charAt(index: u32): string;\n charCodeAt(index: u32): u16;\n concat(other: string): string;\n endsWith(other: string): bool;\n indexOf(other: string, fromIndex?: i32): u32;\n lastIndexOf(other: string, fromIndex?: i32): i32;\n includes(other: string): bool;\n startsWith(other: string): bool;\n substr(start: u32, length?: u32): string;\n substring(start: u32, end?: u32): string;\n trim(): string;\n trimLeft(): string;\n trimRight(): string;\n trimStart(): string;\n trimEnd(): string;\n padStart(targetLength: i32, padString?: string): string;\n padEnd(targetLength: i32, padString?: string): string;\n repeat(count?: i32): string;\n slice(beginIndex: i32, endIndex?: i32): string;\n split(separator?: string, limit?: i32): string[];\n toString(): string;\n static fromUTF8(ptr: usize, len: usize): string;\n toUTF8(): usize;\n}\n\n/** Class for representing a runtime error. Base class of all errors. */\ndeclare class Error {\n\n /** Error name. */\n name: string;\n\n /** Message provided on construction. */\n message: string;\n\n /** Stack trace. */\n stack?: string;\n\n /** Constructs a new error, optionally with a message. */\n constructor(message?: string);\n\n /** Method returns a string representing the specified Error class. */\n toString(): string;\n}\n\n/** Class for indicating an error when a value is not in the set or range of allowed values. */\ndeclare class RangeError extends Error { }\n\n/** Class for indicating an error when a value is not of the expected type. */\ndeclare class TypeError extends Error { }\n\n/** Class for indicating an error when trying to interpret syntactically invalid code. */\ndeclare class SyntaxError extends Error { }\n\ninterface Boolean {}\ninterface Function {}\ninterface IArguments {}\ninterface Number {}\ninterface Object {}\ninterface RegExp {}\n\ndeclare class Map {\n readonly size: i32;\n has(key: K): bool;\n set(key: K, value: V): void;\n get(key: K): V;\n delete(key: K): bool;\n clear(): void;\n toString(): string;\n}\n\ndeclare class Set {\n readonly size: i32;\n has(value: T): bool;\n add(value: T): void;\n delete(value: T): bool;\n clear(): void;\n toString(): string;\n}\n\ninterface SymbolConstructor {\n readonly hasInstance: symbol;\n readonly isConcatSpreadable: symbol;\n readonly isRegExp: symbol;\n readonly iterator: symbol;\n readonly match: symbol;\n readonly replace: symbol;\n readonly search: symbol;\n readonly species: symbol;\n readonly split: symbol;\n readonly toPrimitive: symbol;\n readonly toStringTag: symbol;\n readonly unscopables: symbol;\n (description?: string | null): symbol;\n for(key: string): symbol;\n keyFor(sym: symbol): string | null;\n}\n\ndeclare const Symbol: SymbolConstructor;\n\ninterface IMath {\n /** The base of natural logarithms, e, approximately 2.718. */\n readonly E: T;\n /** The natural logarithm of 2, approximately 0.693. */\n readonly LN2: T;\n /** The natural logarithm of 10, approximately 2.302. */\n readonly LN10: T;\n /** The base 2 logarithm of e, approximately 1.442. */\n readonly LOG2E: T;\n /** The base 10 logarithm of e, approximately 0.434. */\n readonly LOG10E: T;\n /** The ratio of the circumference of a circle to its diameter, approximately 3.14159. */\n readonly PI: T;\n /** The square root of 1/2, approximately 0.707. */\n readonly SQRT1_2: T;\n /** The square root of 2, approximately 1.414. */\n readonly SQRT2: T;\n /** Returns the absolute value of `x`. */\n abs(x: T): T;\n /** Returns the arccosine (in radians) of `x`. */\n acos(x: T): T;\n /** Returns the hyperbolic arc-cosine of `x`. */\n acosh(x: T): T;\n /** Returns the arcsine (in radians) of `x` */\n asin(x: T): T;\n /** Returns the hyperbolic arcsine of `x`. */\n asinh(x: T): T;\n /** Returns the arctangent (in radians) of `x`. */\n atan(x: T): T;\n /** Returns the arctangent of the quotient of its arguments. */\n atan2(y: T, x: T): T;\n /** Returns the hyperbolic arctangent of `x`. */\n atanh(x: T): T;\n /** Returns the cube root of `x`. */\n cbrt(x: T): T;\n /** Returns the smallest integer greater than or equal to `x`. */\n ceil(x: T): T;\n /** Returns the number of leading zero bits in the 32-bit binary representation of `x`. */\n clz32(x: T): T;\n /** Returns the cosine (in radians) of `x`. */\n cos(x: T): T;\n /** Returns the hyperbolic cosine of `x`. */\n cosh(x: T): T;\n /** Returns e to the power of `x`. */\n exp(x: T): T;\n /** Returns e to the power of `x`, minus 1. */\n expm1(x: T): T;\n /** Returns the largest integer less than or equal to `x`. */\n floor(x: T): T;\n /** Returns the nearest 32-bit single precision float representation of `x`. */\n fround(x: T): f32;\n /** Returns the square root of the sum of squares of its arguments. */\n hypot(value1: T, value2: T): T; // TODO: rest\n /** Returns the result of the C-like 32-bit multiplication of `a` and `b`. */\n imul(a: T, b: T): T;\n /** Returns the natural logarithm (base e) of `x`. */\n log(x: T): T;\n /** Returns the base 10 logarithm of `x`. */\n log10(x: T): T;\n /** Returns the natural logarithm (base e) of 1 + `x`. */\n log1p(x: T): T;\n /** Returns the base 2 logarithm of `x`. */\n log2(x: T): T;\n /** Returns the largest-valued number of its arguments. */\n max(value1: T, value2: T): T; // TODO: rest\n /** Returns the lowest-valued number of its arguments. */\n min(value1: T, value2: T): T; // TODO: rest\n /** Returns `base` to the power of `exponent`. */\n pow(base: T, exponent: T): T;\n /** Returns a pseudo-random number in the range from 0.0 inclusive up to but not including 1.0. */\n random(): T;\n /** Returns the value of `x` rounded to the nearest integer. */\n round(x: T): T;\n /** Returns the sign of `x`, indicating whether the number is positive, negative or zero. */\n sign(x: T): T;\n /** Returns whether the sign bit of `x` is set */\n signbit(x: T): bool;\n /** Returns the sine of `x`. */\n sin(x: T): T;\n /** Returns the hyperbolic sine of `x`. */\n sinh(x: T): T;\n /** Returns the square root of `x`. */\n sqrt(x: T): T;\n /** Returns the tangent of `x`. */\n tan(x: T): T;\n /** Returns the hyperbolic tangent of `x`. */\n tanh(x: T): T;\n /** Returns the integer part of `x` by removing any fractional digits. */\n trunc(x: T): T;\n}\n\ninterface INativeMath extends IMath {\n /** Seeds the random number generator. */\n seedRandom(value: i64): void;\n /** Returns the floating-point remainder of `x / y` (rounded towards zero). */\n mod(x: T, y: T): T;\n /** Returns the floating-point remainder of `x / y` (rounded to nearest). */\n rem(x: T, y: T): T;\n}\n\n/** Double precision math imported from JavaScript. */\ndeclare const JSMath: IMath;\n/** Double precision math implemented natively. */\ndeclare const NativeMath: INativeMath;\n/** Single precision math implemented natively. */\ndeclare const NativeMathf: INativeMath;\n/** Alias of {@link NativeMath} or {@link JSMath} respectively. Defaults to `NativeMath`. */\ndeclare const Math: IMath;\n/** Alias of {@link NativeMathf} or {@link JSMath} respectively. Defaults to `NativeMathf`. */\ndeclare const Mathf: IMath;\n\ndeclare class Date {\n /** Returns the UTC timestamp in milliseconds of the specified date. */\n static UTC(\n year: i32,\n month: i32,\n day: i32,\n hour: i32,\n minute: i32,\n second: i32,\n millisecond: i32\n ): i64;\n /** Returns the current UTC timestamp in milliseconds. */\n static now(): i64;\n /** Constructs a new date object from an UTC timestamp in milliseconds. */\n constructor(value: i64);\n /** Returns the UTC timestamp of this date in milliseconds. */\n getTime(): i64;\n /** Sets the UTC timestamp of this date in milliseconds. */\n setTime(value: i64): i64;\n}\n\n/** Environmental tracing function for debugging purposes. */\ndeclare function trace(msg: string, n?: i32, a0?: f64, a1?: f64, a2?: f64, a3?: f64, a4?: f64): void;\n\n// Decorators\n\ninterface TypedPropertyDescriptor {\n configurable?: boolean;\n enumerable?: boolean;\n writable?: boolean;\n value?: T;\n get?(): T;\n set?(value: T): void;\n}\n\n/** Annotates an element as a program global. */\ndeclare function global(\n target: any,\n propertyKey: string,\n descriptor: TypedPropertyDescriptor\n): TypedPropertyDescriptor | void;\n\n/** Annotates a method as a binary operator overload for the specified `token`. */\ndeclare function operator(token: string): (\n target: any,\n propertyKey: string,\n descriptor: TypedPropertyDescriptor\n) => TypedPropertyDescriptor | void;\n\ndeclare namespace operator {\n /** Annotates a method as a binary operator overload for the specified `token`. */\n export function binary(token: string): (\n target: any,\n propertyKey: string,\n descriptor: TypedPropertyDescriptor\n ) => TypedPropertyDescriptor | void;\n /** Annotates a method as an unary prefix operator overload for the specified `token`. */\n export function prefix(token: string): (\n target: any,\n propertyKey: string,\n descriptor: TypedPropertyDescriptor\n ) => TypedPropertyDescriptor | void;\n /** Annotates a method as an unary postfix operator overload for the specified `token`. */\n export function postfix(token: string): (\n target: any,\n propertyKey: string,\n descriptor: TypedPropertyDescriptor\n ) => TypedPropertyDescriptor | void;\n}\n\n/** Annotates a class as being unmanaged with limited capabilities. */\ndeclare function unmanaged(constructor: Function): void;\n\n/** Annotates a class as being sealed / non-derivable. */\ndeclare function sealed(constructor: Function): void;\n\n/** Annotates a method or function as always inlined. */\ndeclare function inline(\n target: any,\n propertyKey: string,\n descriptor: TypedPropertyDescriptor\n): TypedPropertyDescriptor | void;\n\n/** Annotates an explicit external name of a function or global. */\ndeclare function external(namespace: string, name: string): (\n target: any,\n propertyKey: string,\n descriptor: TypedPropertyDescriptor\n) => TypedPropertyDescriptor | void;\n",portable:"/**\n * Environment definitions for compiling AssemblyScript to JavaScript using tsc.\n *\n * Note that semantic differences require additional explicit conversions for full compatibility.\n * For example, when casting an i32 to an u8, doing `(someI32 & 0xff)` will yield the same\n * result when compiling to WebAssembly or JS while `someI32` alone does nothing in JS.\n *\n * Note that i64's are not portable (JS numbers are IEEE754 doubles with a maximum safe integer\n * value of 2^53-1) and instead require a compatibility layer to work in JS as well, as for example\n * {@link glue/js/i64} respectively {@link glue/wasm/i64}.\n *\n * @module std/portable\n *//***/\n\n/// \n\n// Types\n\ndeclare type bool = boolean;\ndeclare type i8 = number;\ndeclare type i16 = number;\ndeclare type i32 = number;\ndeclare type isize = number;\ndeclare type u8 = number;\ndeclare type u16 = number;\ndeclare type u32 = number;\ndeclare type usize = number;\ndeclare type f32 = number;\ndeclare type f64 = number;\n\n// Compiler hints\n\n/** Compiler target. 0 = JS, 1 = WASM32, 2 = WASM64. */\ndeclare const ASC_TARGET: i32;\n/** Provided noTreeshaking option. */\ndeclare const ASC_NO_TREESHAKING: bool;\n/** Provided noAssert option. */\ndeclare const ASC_NO_ASSERT: bool;\n/** Provided memoryBase option. */\ndeclare const ASC_MEMORY_BASE: i32;\n/** Provided optimizeLevel option. */\ndeclare const ASC_OPTIMIZE_LEVEL: i32;\n/** Provided shrinkLevel option. */\ndeclare const ASC_SHRINK_LEVEL: i32;\n/** Whether the mutable global feature is enabled. */\ndeclare const ASC_FEATURE_MUTABLE_GLOBAL: bool;\n/** Whether the sign extension feature is enabled. */\ndeclare const ASC_FEATURE_SIGN_EXTENSION: bool;\n\n// Builtins\n\n/** Performs the sign-agnostic count leading zero bits operation on a 32-bit integer. All zero bits are considered leading if the value is zero. */\ndeclare function clz(value: T): T;\n/** Performs the sign-agnostic count tailing zero bits operation on a 32-bit integer. All zero bits are considered trailing if the value is zero. */\ndeclare function ctz(value: T): T;\n/** Performs the sign-agnostic count number of one bits operation on a 32-bit integer. */\ndeclare function popcnt(value: T): T;\n/** Performs the sign-agnostic rotate left operation on a 32-bit integer. */\ndeclare function rotl(value: T, shift: T): T;\n/** Performs the sign-agnostic rotate right operation on a 32-bit integer. */\ndeclare function rotr(value: T, shift: T): T;\n/** Computes the absolute value of an integer or float. */\ndeclare function abs(value: T): T;\n/** Determines the maximum of two integers or floats. If either operand is `NaN`, returns `NaN`. */\ndeclare function max(left: T, right: T): T;\n/** Determines the minimum of two integers or floats. If either operand is `NaN`, returns `NaN`. */\ndeclare function min(left: T, right: T): T;\n/** Composes a 32-bit or 64-bit float from the magnitude of `x` and the sign of `y`. */\ndeclare function copysign(x: T, y: T): T;\n/** Performs the ceiling operation on a 32-bit or 64-bit float. */\ndeclare function ceil(value: T): T;\n/** Performs the floor operation on a 32-bit or 64-bit float. */\ndeclare function floor(value: T): T;\n/** Rounds to the nearest integer tied to even of a 32-bit or 64-bit float. */\ndeclare function nearest(value: T): T;\n/** Selects one of two pre-evaluated values depending on the condition. */\ndeclare function select(ifTrue: T, ifFalse: T, condition: bool): T;\n/** Calculates the square root of a 32-bit or 64-bit float. */\ndeclare function sqrt(value: T): T;\n/** Rounds to the nearest integer towards zero of a 32-bit or 64-bit float. */\ndeclare function trunc(value: T): T;\n/** Loads a value of the specified type from memory. Type must be `u8`. */\ndeclare function load(ptr: usize, constantOffset?: usize): T;\n/** Stores a value of the specified type to memory. Type must be `u8`. */\ndeclare function store(ptr: usize, value: T, constantOffset?: usize): void;\n/** Emits an unreachable operation that results in a runtime error when executed. */\ndeclare function unreachable(): any; // sic\n\n/** NaN (not a number) as a 32-bit or 64-bit float depending on context. */\ndeclare const NaN: f32 | f64;\n/** Positive infinity as a 32-bit or 64-bit float depending on context. */\ndeclare const Infinity: f32 | f64;\n/** Changes the type of any value of `usize` kind to another one of `usize` kind. Useful for casting class instances to their pointer values and vice-versa. Beware that this is unsafe.*/\ndeclare function changetype(value: any): T;\n/** Explicitly requests no bounds checks on the provided expression. Useful for array accesses. */\ndeclare function unchecked(value: T): T;\n/** Tests if a 32-bit or 64-bit float is `NaN`. */\ndeclare function isNaN(value: T): bool;\n/** Tests if a 32-bit or 64-bit float is finite, that is not `NaN` or +/-`Infinity`. */\ndeclare function isFinite(value: T): bool;\n/** Tests if the specified value is a valid integer. Can't distinguish an integer from an integral float. */\ndeclare function isInteger(value: any): value is number;\n/** Tests if the specified value is a valid float. Can't distinguish a float from an integer. */\ndeclare function isFloat(value: any): value is number;\n/** Tests if the specified value is of a reference type. */\ndeclare function isReference(value: any): value is object | string;\n/** Tests if the specified value can be used as a string. */\ndeclare function isString(value: any): value is string | String;\n/** Tests if the specified value can be used as an array. */\ndeclare function isArray(value: any): value is Array;\n/** Tests if the specified expression resolves to a defined element. */\ndeclare function isDefined(expression: any): bool;\n/** Tests if the specified expression evaluates to a constant value. */\ndeclare function isConstant(expression: any): bool;\n/** Traps if the specified value is not true-ish, otherwise returns the value. */\ndeclare function assert(isTrueish: T | null, message?: string): T;\n/** Parses an integer string to a 64-bit float. */\ndeclare function parseInt(str: string, radix?: i32): f64;\n/** Parses an integer string to a 32-bit integer. */\ndeclare function parseI32(str: string, radix?: i32): i32;\n/** Parses a floating point string to a 64-bit float. */\ndeclare function parseFloat(str: string): f64;\n/** Returns the 64-bit floating-point remainder of `x/y`. */\ndeclare function fmod(x: f64, y: f64): f64;\n/** Returns the 32-bit floating-point remainder of `x/y`. */\ndeclare function fmodf(x: f32, y: f32): f32;\n\n/** Converts any other numeric value to an 8-bit signed integer. */\ndeclare function i8(value: i8 | i16 | i32 | isize | u8 | u16 | u32 | usize | bool | f32 | f64): i8;\ndeclare namespace i8 {\n /** Smallest representable value. */\n export const MIN_VALUE: i8;\n /** Largest representable value. */\n export const MAX_VALUE: i8;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): i8;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): i8;\n}\n/** Converts any other numeric value to a 16-bit signed integer. */\ndeclare function i16(value: i8 | i16 | i32 | isize | u8 | u16 | u32 | usize | bool | f32 | f64): i8;\ndeclare namespace i16 {\n /** Smallest representable value. */\n export const MIN_VALUE: i16;\n /** Largest representable value. */\n export const MAX_VALUE: i16;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): i16;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): i16;\n}\n/** Converts any other numeric value to a 32-bit signed integer. */\ndeclare function i32(value: i8 | i16 | i32 | isize | u8 | u16 | u32 | usize | bool | f32 | f64): i32;\ndeclare namespace i32 {\n /** Smallest representable value. */\n export const MIN_VALUE: i32;\n /** Largest representable value. */\n export const MAX_VALUE: i32;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): i32;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): i32;\n}\n/** Converts any other numeric value to a 32-bit (in WASM32) respectivel 64-bit (in WASM64) signed integer. */\ndeclare function isize(value: i8 | i16 | i32 | isize | u8 | u16 | u32 | usize | bool | f32 | f64): isize;\ndeclare namespace isize {\n /** Smallest representable value. */\n export const MIN_VALUE: isize;\n /** Largest representable value. */\n export const MAX_VALUE: isize;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): isize;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): isize;\n}\n/** Converts any other numeric value to an 8-bit unsigned integer. */\ndeclare function u8(value: i8 | i16 | i32 | isize | u8 | u16 | u32 | usize | bool | f32 | f64): i8;\ndeclare namespace u8 {\n /** Smallest representable value. */\n export const MIN_VALUE: u8;\n /** Largest representable value. */\n export const MAX_VALUE: u8;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): u8;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): u8;\n}\n/** Converts any other numeric value to a 16-bit unsigned integer. */\ndeclare function u16(value: i8 | i16 | i32 | isize | u8 | u16 | u32 | usize | bool | f32 | f64): i8;\ndeclare namespace u16 {\n /** Smallest representable value. */\n export const MIN_VALUE: u16;\n /** Largest representable value. */\n export const MAX_VALUE: u16;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): u16;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): u16;\n}\n/** Converts any other numeric value to a 32-bit unsigned integer. */\ndeclare function u32(value: i8 | i16 | i32 | isize | u8 | u16 | u32 | usize | bool | f32 | f64): i32;\ndeclare namespace u32 {\n /** Smallest representable value. */\n export const MIN_VALUE: u32;\n /** Largest representable value. */\n export const MAX_VALUE: u32;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): u32;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): u32;\n}\n/** Converts any other numeric value to a 32-bit (in WASM32) respectivel 64-bit (in WASM64) unsigned integer. */\ndeclare function usize(value: i8 | i16 | i32 | isize | u8 | u16 | u32 | usize | bool | f32 | f64): isize;\ndeclare namespace usize {\n /** Smallest representable value. */\n export const MIN_VALUE: usize;\n /** Largest representable value. */\n export const MAX_VALUE: usize;\n /** Converts a string to a floating-point number and cast to target integer after. */\n export function parseFloat(string: string): usize;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): usize;\n}\n/** Converts any other numeric value to a 1-bit unsigned integer. */\ndeclare function bool(value: i8 | i16 | i32 | isize | u8 | u16 | u32 | usize | bool | f32 | f64): bool;\ndeclare namespace bool {\n /** Smallest representable value. */\n export const MIN_VALUE: bool;\n /** Largest representable value. */\n export const MAX_VALUE: bool;\n}\n/** Converts any other numeric value to a 32-bit float. */\ndeclare function f32(value: i8 | i16 | i32 | isize | u8 | u16 | u32 | usize | bool | f32 | f64): f32;\ndeclare namespace f32 {\n /** Smallest representable value. */\n export const MIN_VALUE: f32;\n /** Largest representable value. */\n export const MAX_VALUE: f32;\n /** Smallest normalized positive value. */\n export const MIN_POSITIVE_VALUE: f32;\n /** Smallest safely representable integer value. */\n export const MIN_SAFE_INTEGER: f32;\n /** Largest safely representable integer value. */\n export const MAX_SAFE_INTEGER: f32;\n /** Difference between 1 and the smallest representable value greater than 1. */\n export const EPSILON: f32;\n /** Returns a boolean value that indicates whether a value is the reserved value NaN (not a number). */\n export function isNaN(value: f32): bool;\n /** Returns true if passed value is finite. */\n export function isFinite(value: f32): bool;\n /** Returns true if the value passed is a safe integer. */\n export function isSafeInteger(value: f32): bool;\n /** Returns true if the value passed is an integer, false otherwise. */\n export function isInteger(value: f32): bool;\n /** Converts a string to a floating-point number. */\n export function parseFloat(string: string): f32;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): f32;\n}\n/** Converts any other numeric value to a 64-bit float. */\ndeclare function f64(value: i8 | i16 | i32 | isize | u8 | u16 | u32 | usize | bool | f32 | f64): f64;\ndeclare namespace f64 {\n /** Smallest representable value. */\n export const MIN_VALUE: f64;\n /** Largest representable value. */\n export const MAX_VALUE: f64;\n /** Smallest normalized positive value. */\n export const MIN_POSITIVE_VALUE: f64;\n /** Smallest safely representable integer value. */\n export const MIN_SAFE_INTEGER: f64;\n /** Largest safely representable integer value. */\n export const MAX_SAFE_INTEGER: f64;\n /** Difference between 1 and the smallest representable value greater than 1. */\n export const EPSILON: f64;\n /** Returns a boolean value that indicates whether a value is the reserved value NaN (not a number). */\n export function isNaN(value: f32): bool;\n /** Returns true if passed value is finite. */\n export function isFinite(value: f32): bool;\n /** Returns true if the value passed is a safe integer. */\n export function isSafeInteger(value: f64): bool;\n /** Returns true if the value passed is an integer, false otherwise. */\n export function isInteger(value: f64): bool;\n /** Converts a string to a floating-point number. */\n export function parseFloat(string: string): f64;\n /** Converts A string to an integer. */\n export function parseInt(string: string, radix?: i32): f64;\n}\n\n// Polyfills\n\n/** [Polyfill] Performs the sign-agnostic reverse bytes **/\ndeclare function bswap(value: T): T;\n/** [Polyfill] Performs the sign-agnostic reverse bytes only for last 16-bit **/\ndeclare function bswap16(value: T): T;\n\n// Standard library\n\n/** Memory operations. */\ndeclare namespace memory {\n /** Allocates a chunk of memory of the specified size and returns a pointer to it. */\n function allocate(size: usize): usize;\n /** Disposes a chunk of memory by its pointer. */\n function free(ptr: usize): void;\n /** Copies n bytes from the specified source to the specified destination in memory. These regions may overlap. */\n function copy(dst: usize, src: usize, n: usize): void;\n /** Fills size bytes from from the specified destination by same value in memory. */\n function fill(dst: usize, value: u8, size: usize): void;\n /** Resets the allocator to its initial state, if supported. */\n function reset(): void;\n}\n\n/** Class representing a generic, fixed-length raw binary data buffer. */\ndeclare class ArrayBuffer {\n /** The size, in bytes, of the array. */\n readonly byteLength: i32;\n /** Returns true if value is one of the ArrayBuffer views, such as typed array or a DataView **/\n static isView(value: T): bool;\n /** Constructs a new array buffer of the given length in bytes. */\n constructor(length: i32);\n /** Returns a copy of this array buffer's bytes from begin, inclusive, up to end, exclusive. */\n slice(begin?: i32, end?: i32): ArrayBuffer;\n /** Returns a string representation of ArrayBuffer. */\n toString(): string;\n}\n\n/** The `DataView` view provides a low-level interface for reading and writing multiple number types in a binary `ArrayBuffer`, without having to care about the platform's endianness. */\ndeclare class DataView {\n /** The `buffer` accessor property represents the `ArrayBuffer` or `SharedArrayBuffer` referenced by the `DataView` at construction time. */\n readonly buffer: ArrayBuffer;\n /** The `byteLength` accessor property represents the length (in bytes) of this view from the start of its `ArrayBuffer` or `SharedArrayBuffer`. */\n readonly byteLength: i32;\n /** The `byteOffset` accessor property represents the offset (in bytes) of this view from the start of its `ArrayBuffer` or `SharedArrayBuffer`. */\n readonly byteOffset: i32;\n /** Constructs a new `DataView` with the given properties */\n constructor(buffer: ArrayBuffer, byteOffset?: i32, byteLength?: i32);\n /** The `getFloat32()` method gets a signed 32-bit float (float) at the specified byte offset from the start of the `DataView`. */\n getFloat32(byteOffset: i32, littleEndian?: boolean): f32;\n /** The `getFloat64()` method gets a signed 64-bit float (double) at the specified byte offset from the start of the `DataView`. */\n getFloat64(byteOffset: i32, littleEndian?: boolean): f64;\n /** The `getInt8()` method gets a signed 8-bit integer (byte) at the specified byte offset from the start of the `DataView`. */\n getInt8(byteOffset: i32): i8;\n /** The `getInt16()` method gets a signed 16-bit integer (short) at the specified byte offset from the start of the `DataView`. */\n getInt16(byteOffset: i32, littleEndian?: boolean): i16;\n /** The `getInt32()` method gets a signed 32-bit integer (long) at the specified byte offset from the start of the `DataView`. */\n getInt32(byteOffset: i32, littleEndian?: boolean): i32;\n /** The `getUint8()` method gets an unsigned 8-bit integer (unsigned byte) at the specified byte offset from the start of the `DataView`. */\n getUint8(byteOffset: i32): u8;\n /** The `getUint16()` method gets an unsigned 16-bit integer (unsigned short) at the specified byte offset from the start of the `DataView`. */\n getUint16(byteOffset: i32, littleEndian?: boolean): u16;\n /** The `getUint32()` method gets an unsigned 32-bit integer (unsigned long) at the specified byte offset from the start of the `DataView`. */\n getUint32(byteOffset: i32, littleEndian?: boolean): u32;\n /** The `setFloat32()` method stores a signed 32-bit float (float) value at the specified byte offset from the start of the `DataView`. */\n setFloat32(byteOffset: i32, value: f32, littleEndian?: boolean): void;\n /** The `setFloat64()` method stores a signed 64-bit float (double) value at the specified byte offset from the start of the `DataView`. */\n setFloat64(byteOffset: i32, value: f64, littleEndian?: boolean): void;\n /** The `setInt8()` method stores a signed 8-bit integer (byte) value at the specified byte offset from the start of the `DataView`. */\n setInt8(byteOffset: i32, value: i8): void;\n /** The `setInt16()` method stores a signed 16-bit integer (short) value at the specified byte offset from the start of the `DataView`. */\n setInt16(byteOffset: i32, value: i16, littleEndian?: boolean): void;\n /** The `setInt32()` method stores a signed 32-bit integer (long) value at the specified byte offset from the start of the `DataView`. */\n setInt32(byteOffset: i32, value: i32, littleEndian?: boolean): void;\n /** The `setUint8()` method stores an unsigned 8-bit integer (byte) value at the specified byte offset from the start of the `DataView`. */\n setUint8(byteOffset: i32, value: u8): void;\n /** The `setUint16()` method stores an unsigned 16-bit integer (unsigned short) value at the specified byte offset from the start of the `DataView`. */\n setUint16(byteOffset: i32, value: u16, littleEndian?: boolean): void;\n /** The `setUint32()` method stores an unsigned 32-bit integer (unsigned long) value at the specified byte offset from the start of the `DataView`. */\n setUint32(byteOffset: i32, value: u32, littleEndian?: boolean): void;\n /** Returns a string representation of DataView. */\n toString(): string;\n}\n\ndeclare class Array {\n\n static isArray(value: any): value is Array;\n\n [key: number]: T;\n length: i32;\n constructor(capacity?: i32);\n\n fill(value: T, start?: i32, end?: i32): this;\n every(callbackfn: (element: T, index: i32, array?: Array) => bool): bool;\n findIndex(predicate: (element: T, index: i32, array?: Array) => bool): i32;\n includes(searchElement: T, fromIndex?: i32): bool;\n indexOf(searchElement: T, fromIndex?: i32): i32;\n lastIndexOf(searchElement: T, fromIndex?: i32): i32;\n push(element: T): i32;\n concat(items: T[]): T[];\n copyWithin(target: i32, start: i32, end?: i32): this;\n pop(): T;\n forEach(callbackfn: (value: T, index: i32, array: Array) => void): void;\n map(callbackfn: (value: T, index: i32, array: Array) => U): Array;\n filter(callbackfn: (value: T, index: i32, array: Array) => bool): Array;\n reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: i32, array: Array) => U, initialValue: U): U;\n reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: i32, array: Array) => U, initialValue: U): U;\n shift(): T;\n some(callbackfn: (element: T, index: i32, array?: Array) => bool): bool;\n unshift(element: T): i32;\n slice(from?: i32, to?: i32): Array;\n splice(start: i32, deleteCount?: i32): Array;\n sort(comparator?: (a: T, b: T) => i32): this;\n join(separator?: string): string;\n reverse(): T[];\n toString(): string;\n}\n\ndeclare class Uint8Array extends Array {}\ndeclare class Uint8ClampedArray extends Array {}\ndeclare class Uint16Array extends Array {}\ndeclare class Uint32Array extends Array {}\ndeclare class Int8Array extends Array {}\ndeclare class Int16Array extends Array {}\ndeclare class Int32Array extends Array {}\ndeclare class Float32Array extends Array {}\ndeclare class Float64Array extends Array {}\n\n/** Interface for a typed view on an array buffer. */\ninterface ArrayBufferView {\n [key: number]: T;\n /** The {@link ArrayBuffer} referenced by this view. */\n readonly buffer: ArrayBuffer;\n /** The offset in bytes from the start of the referenced {@link ArrayBuffer}. */\n readonly byteOffset: i32;\n /** The length in bytes from the start of the referenced {@link ArrayBuffer}. */\n readonly byteLength: i32;\n}\n\ndeclare class String {\n\n static fromCharCode(ls: i32, hs?: i32): string;\n static fromCharCodes(arr: u16[]): string;\n static fromCodePoint(code: i32): string;\n static fromCodePoints(arr: i32[]): string;\n\n readonly length: i32;\n\n private constructor();\n\n charAt(index: i32): string;\n charCodeAt(index: i32): i32;\n concat(other: string): string;\n indexOf(other: string, fromIndex?: i32): i32;\n lastIndexOf(other: string, fromIndex?: i32): i32;\n includes(other: string): bool;\n startsWith(other: string): bool;\n endsWith(other: string): bool;\n substr(start: u32, length?: u32): string;\n substring(from: i32, to?: i32): string;\n trim(): string;\n trimLeft(): string;\n trimRight(): string;\n trimStart(): string;\n trimEnd(): string;\n padStart(targetLength: i32, padString?: string): string;\n padEnd(targetLength: i32, padString?: string): string;\n replace(search: string, replacement: string): string;\n repeat(count?: i32): string;\n slice(beginIndex: i32, endIndex?: i32): string;\n split(separator?: string, limit?: i32): string[];\n toString(): string;\n}\n\ninterface Boolean {}\n\ndeclare class Number {\n private constructor();\n toString(radix?: i32): string;\n}\n\ninterface Object {}\n\ninterface Function {}\n\ninterface RegExp {}\n\ninterface IArguments {}\n\n/** Class for representing a runtime error. Base class of all errors. */\ndeclare class Error {\n\n /** Error name. */\n name: string;\n\n /** Message provided on construction. */\n message: string;\n\n /** Stack trace. */\n stack?: string;\n\n /** Constructs a new error, optionally with a message. */\n constructor(message?: string);\n\n /** Method returns a string representing the specified Error class. */\n toString(): string;\n}\n\n/** Class for indicating an error when a value is not in the set or range of allowed values. */\ndeclare class RangeError extends Error { }\n\n/** Class for indicating an error when a value is not of the expected type. */\ndeclare class TypeError extends Error { }\n\n/** Class for indicating an error when trying to interpret syntactically invalid code. */\ndeclare class SyntaxError extends Error { }\n\ndeclare class Set {\n constructor(entries?: T[]);\n readonly size: i32;\n has(value: T): bool;\n add(value: T): void;\n delete(value: T): bool;\n clear(): void;\n toString(): string;\n [Symbol.iterator](): Iterator;\n}\n\ndeclare class Map {\n constructor(entries?: [K, V][]);\n readonly size: i32;\n set(key: K, value: V): void;\n has(key: K): bool;\n get(key: K): V | null;\n clear(): void;\n entries(): Iterable<[K, V]>;\n keys(): Iterable;\n values(): Iterable;\n delete(key: K): bool;\n toString(): string;\n [Symbol.iterator](): Iterator<[K,V]>;\n}\n\ninterface SymbolConstructor {\n readonly hasInstance: symbol;\n readonly isConcatSpreadable: symbol;\n readonly isRegExp: symbol;\n readonly iterator: symbol;\n readonly match: symbol;\n readonly replace: symbol;\n readonly search: symbol;\n readonly species: symbol;\n readonly split: symbol;\n readonly toPrimitive: symbol;\n readonly toStringTag: symbol;\n readonly unscopables: symbol;\n (description?: string | null): symbol;\n for(key: string): symbol;\n keyFor(sym: symbol): string | null;\n}\ndeclare const Symbol: SymbolConstructor;\n\ninterface Iterable {\n [Symbol.iterator](): Iterator;\n}\n\ninterface Iterator {}\n\ninterface IMath {\n readonly E: f64;\n readonly LN2: f64;\n readonly LN10: f64;\n readonly LOG2E: f64;\n readonly LOG10E: f64;\n readonly PI: f64;\n readonly SQRT1_2: f64;\n readonly SQRT2: f64;\n abs(x: f64): f64;\n acos(x: f64): f64;\n acosh(x: f64): f64;\n asin(x: f64): f64;\n asinh(x: f64): f64;\n atan(x: f64): f64;\n atan2(y: f64, x: f64): f64;\n atanh(x: f64): f64;\n cbrt(x: f64): f64;\n ceil(x: f64): f64;\n clz32(x: f64): i32;\n cos(x: f64): f64;\n cosh(x: f64): f64;\n exp(x: f64): f64;\n expm1(x: f64): f64;\n floor(x: f64): f64;\n fround(x: f64): f32;\n hypot(value1: f64, value2: f64): f64; // TODO: see std/math\n imul(a: f64, b: f64): i32;\n log(x: f64): f64;\n log10(x: f64): f64;\n log1p(x: f64): f64;\n log2(x: f64): f64;\n max(value1: f64, value2: f64): f64; // TODO: see std/math\n min(value1: f64, value2: f64): f64; // TODO: see std/math\n pow(base: f64, exponent: f64): f64;\n random(): f64;\n round(x: f64): f64;\n sign(x: f64): f64;\n signbit(x: f64): bool;\n sin(x: f64): f64;\n sinh(x: f64): f64;\n sqrt(x: f64): f64;\n tan(x: f64): f64;\n tanh(x: f64): f64;\n trunc(x: f64): f64;\n}\n\ndeclare const Math: IMath;\ndeclare const Mathf: IMath;\ndeclare const JSMath: IMath;\n\ndeclare class Date {\n /** Returns the UTC timestamp in milliseconds of the specified date. */\n static UTC(\n year: i32,\n month: i32,\n day: i32,\n hour: i32,\n minute: i32,\n second: i32,\n millisecond: i32\n ): number;\n /** Returns the current UTC timestamp in milliseconds. */\n static now(): number;\n /** Constructs a new date object from an UTC timestamp in milliseconds. */\n constructor(value: number);\n /** Returns the UTC timestamp of this date in milliseconds. */\n getTime(): number;\n /** Sets the UTC timestamp of this date in milliseconds. */\n setTime(value: number): number;\n}\n\ndeclare namespace console {\n /** @deprecated */\n function log(message: string): void;\n}\n"}):(()=>{const e=path.join(".","..","std");return{assembly:fs.readFileSync(path.join(e,"assembly","index.d.ts"),"utf8"),portable:fs.readFileSync(path.join(e,"portable","index.d.ts"),"utf8")}})(),exports.compileString=((e,n)=>{"string"==typeof e&&(e={"input.ts":e});const t=Object.create({stdout:createMemoryStream(),stderr:createMemoryStream()});var r=["--binaryFile","binary","--textFile","text"];return Object.keys(n||{}).forEach(e=>{var t=n[e];Array.isArray(t)?t.forEach(n=>r.push("--"+e,String(n))):r.push("--"+e,String(t))}),exports.main(r.concat(Object.keys(e)),{stdout:t.stdout,stderr:t.stderr,readFile:n=>e.hasOwnProperty(n)?e[n]:null,writeFile:(e,n)=>t[e]=n,listFiles:()=>[]}),t}),exports.main=function(e,n,t){"function"==typeof n?(t=n,n={}):n||(n={});const r=n.stdout||process.stdout,i=n.stderr||process.stderr,a=n.readFile||F,s=n.writeFile||z,o=n.listFiles||S,l=n.stats||createStats();if(!r)throw Error("'options.stdout' must be specified");if(!i)throw Error("'options.stderr' must be specified");const f=optionsUtil.parse(e,exports.options),u=f.options;if(e=f.arguments,u.noColors?colorsUtil.stdout.supported=colorsUtil.stderr.supported=!1:(colorsUtil.stdout=colorsUtil.from(r),colorsUtil.stderr=colorsUtil.from(i)),f.unknown.length&&f.unknown.forEach(e=>{i.write(colorsUtil.stderr.yellow("WARN: ")+"Unknown option '"+e+"'"+EOL)}),f.trailing.length&&i.write(colorsUtil.stderr.yellow("WARN: ")+"Unsupported trailing arguments: "+f.trailing.join(" ")+EOL),t||(t=function(e){var n=0;return e&&(i.write(colorsUtil.stderr.red("ERROR: ")+e.stack.replace(/^ERROR: /i,"")+EOL),n=1),n}),u.version)return r.write("Version "+exports.version+(isDev?"-dev":"")+EOL),t(null);if(u.help||!e.length){var c=u.help?r:i,p=u.help?colorsUtil.stdout:colorsUtil.stderr;return c.write([p.white("SYNTAX")," "+p.cyan("asc")+" [entryFile ...] [options]","",p.white("EXAMPLES")," "+p.cyan("asc")+" hello.ts"," "+p.cyan("asc")+" hello.ts -b hello.wasm -t hello.wat"," "+p.cyan("asc")+" hello1.ts hello2.ts -b -O > hello.wasm","",p.white("OPTIONS")].concat(optionsUtil.help(exports.options,24,EOL)).join(EOL)+EOL),t(null)}if(!fs.readFileSync){if(a===F)throw Error("'options.readFile' must be specified");if(s===z)throw Error("'options.writeFile' must be specified");if(o===S)throw Error("'options.listFiles' must be specified")}const d=u.baseDir?path.resolve(u.baseDir):".",h=[];u.transform&&u.transform.forEach(e=>h.push(__webpack_require__(12)(path.isAbsolute(e=e.trim())?e:path.join(process.cwd(),e))));var x=null;u.noLib?(l.parseCount++,l.parseTime+=measure(()=>{x=assemblyscript.parseFile(exports.libraryFiles.builtins,exports.libraryPrefix+"builtins.ts",!1,x)})):Object.keys(exports.libraryFiles).forEach(e=>{e.indexOf("/")>=0||(l.parseCount++,l.parseTime+=measure(()=>{x=assemblyscript.parseFile(exports.libraryFiles[e],exports.libraryPrefix+e+".ts",!1,x)}))});const b=[];if(u.lib){let e=u.lib;"string"==typeof e&&(e=e.split(",")),Array.prototype.push.apply(b,e.map(e=>e.trim()));for(let e=0,n=b.length;e{x=assemblyscript.parseFile(s,exports.libraryPrefix+i,!1,x)})}}}function g(){for(var e,n;null!=(e=x.nextFile());){if(e.startsWith(exports.libraryPrefix)){const t=e.substring(exports.libraryPrefix.length),r=e.substring(exports.libraryPrefix.length)+"/index";if(exports.libraryFiles.hasOwnProperty(t))n=exports.libraryFiles[t],e=exports.libraryPrefix+t+".ts";else if(exports.libraryFiles.hasOwnProperty(r))n=exports.libraryFiles[r],e=exports.libraryPrefix+r+".ts";else for(let i=0,s=b.length;i{assemblyscript.parseFile(n,e,!1,x)})}if(checkDiagnostics(x,i))return t(Error("Parse error"))}for(let n=0,r=e.length;n{x=assemblyscript.parseFile(s,i,!0,x)});let o=g();if(o)return o}!function(e,...n){h.forEach(t=>{"function"==typeof t[e]&&t[e](...n)})}("afterParse",x);{let e=g();if(e)return e}const y=assemblyscript.finishParsing(x);var m=0,v=0;u.optimize&&(m=exports.defaultOptimizeLevel,v=exports.defaultShrinkLevel),"number"==typeof u.optimizeLevel&&(m=u.optimizeLevel),"number"==typeof u.shrinkLevel&&(v=u.shrinkLevel),m=Math.min(Math.max(m,0),3),v=Math.min(Math.max(v,0),2);const E=assemblyscript.createOptions();if(assemblyscript.setTarget(E,0),assemblyscript.setNoTreeShaking(E,u.noTreeShaking),assemblyscript.setNoAssert(E,u.noAssert),assemblyscript.setImportMemory(E,u.importMemory),assemblyscript.setImportTable(E,u.importTable),assemblyscript.setMemoryBase(E,u.memoryBase>>>0),assemblyscript.setSourceMap(E,null!=u.sourceMap),assemblyscript.setOptimizeLevelHints(E,m,v),u.noLib||(assemblyscript.setGlobalAlias(E,"Math","NativeMath"),assemblyscript.setGlobalAlias(E,"Mathf","NativeMathf"),assemblyscript.setGlobalAlias(E,"abort","~lib/env/abort"),assemblyscript.setGlobalAlias(E,"trace","~lib/env/trace")),u.use){let e=u.use;for(let n=0,r=e.length;n{try{l.compileTime+=measure(()=>{_=assemblyscript.compileProgram(y,E)})}catch(e){return t(e)}})(),checkDiagnostics(x,i))return _&&_.dispose(),t(Error("Compile error"));if(u.validate&&(l.validateCount++,l.validateTime+=measure(()=>{if(!_.validate())return _.dispose(),t(Error("Validate error"))})),"clamp"===u.trapMode)l.optimizeCount++,l.optimizeTime+=measure(()=>{_.runPasses(["trap-mode-clamp"])});else if("js"===u.trapMode)l.optimizeCount++,l.optimizeTime+=measure(()=>{_.runPasses(["trap-mode-js"])});else if("allow"!==u.trapMode)return _.dispose(),t(Error("Unsupported trap mode"));(m>=3||v>=2)&&(m=4),_.setOptimizeLevel(m),_.setShrinkLevel(v),_.setDebugInfo(u.debug);var A=[];if(u.runPasses&&("string"==typeof u.runPasses&&(u.runPasses=u.runPasses.split(",")),u.runPasses.length&&u.runPasses.forEach(e=>{A.indexOf(e)<0&&A.push(e)})),(m>0||v>0)&&(l.optimizeCount++,l.optimizeTime+=measure(()=>{_.optimize()})),A.length&&(l.optimizeCount++,l.optimizeTime+=measure(()=>{_.runPasses(A.map(e=>e.trim()))})),!u.noEmit){let e=!1,n=!1;if(null!=u.outFile&&(/\.was?t$/.test(u.outFile)&&null==u.textFile?u.textFile=u.outFile:/\.js$/.test(u.outFile)&&null==u.asmjsFile?u.asmjsFile=u.outFile:null==u.binaryFile&&(u.binaryFile=u.outFile)),null!=u.binaryFile){let r,o=null!=u.sourceMap?u.sourceMap.length?u.sourceMap:path.basename(u.binaryFile)+".map":null;if(l.emitCount++,l.emitTime+=measure(()=>{r=_.toBinary(o)}),u.binaryFile.length?s(u.binaryFile,r.output,d):(I(r.output),e=!0),n=!0,null!=r.sourceMap)if(u.binaryFile.length){let e=JSON.parse(r.sourceMap);e.sourceRoot=exports.sourceMapRoot,e.sources.forEach((n,r)=>{let i=null;if(n.startsWith(exports.libraryPrefix)){let e=n.substring(exports.libraryPrefix.length).replace(/\.ts$/,"");if(exports.libraryFiles.hasOwnProperty(e))i=exports.libraryFiles[e];else for(let e=0,t=b.length;e{t=_.toAsmjs()}),s(u.asmjsFile,t,d)):e||(l.emitCount++,l.emitTime+=measure(()=>{t=_.toAsmjs()}),I(t),e=!0),n=!0}if(null!=u.idlFile){let t;u.idlFile.length?(l.emitCount++,l.emitTime+=measure(()=>{t=assemblyscript.buildIDL(y)}),s(u.idlFile,t,d)):e||(l.emitCount++,l.emitTime+=measure(()=>{t=assemblyscript.buildIDL(y)}),I(t),e=!0),n=!0}if(null!=u.tsdFile){let t;u.tsdFile.length?(l.emitCount++,l.emitTime+=measure(()=>{t=assemblyscript.buildTSD(y)}),s(u.tsdFile,t,d)):e||(l.emitCount++,l.emitTime+=measure(()=>{t=assemblyscript.buildTSD(y)}),I(t),e=!0),n=!0}if(null!=u.textFile||!n){let n;u.textFile&&u.textFile.length?(l.emitCount++,l.emitTime+=measure(()=>{n=_.toText()}),s(u.textFile,n,d)):e||(l.emitCount++,l.emitTime+=measure(()=>{n=_.toText()}),I(n))}}return _.dispose(),u.measure&&printStats(l,i),t(null);function F(e,n){try{let t;return l.readCount++,l.readTime+=measure(()=>{t=fs.readFileSync(path.join(n,e),{encoding:"utf8"})}),t}catch(e){return null}}function z(e,n,t){try{return l.writeCount++,l.writeTime+=measure(()=>{mkdirp(path.join(t,path.dirname(e))),"string"==typeof n?fs.writeFileSync(path.join(t,e),n,{encoding:"utf8"}):fs.writeFileSync(path.join(t,e),n)}),!0}catch(e){return!1}}function S(e,n){var t;try{return l.readTime+=measure(()=>{t=fs.readdirSync(path.join(n,e)).filter(e=>/^(?!.*\.d\.ts$).*\.ts$/.test(e))}),t}catch(e){return[]}}function I(e){I.used||(l.writeCount++,I.used=!0),l.writeTime+=measure(()=>{"string"==typeof e?r.write(e,{encoding:"utf8"}):r.write(e)})}};var argumentSubstitutions={"-O":["--optimize"],"-Os":["--optimize","--shrinkLevel","1"],"-Oz":["--optimize","--shrinkLevel","2"],"-O0":["--optimizeLevel","0","--shrinkLevel","0"],"-O0s":["--optimizeLevel","0","--shrinkLevel","1"],"-O0z":["--optimizeLevel","0","--shrinkLevel","2"],"-O1":["--optimizeLevel","1","--shrinkLevel","0"],"-O1s":["--optimizeLevel","1","--shrinkLevel","1"],"-O1z":["--optimizeLevel","1","--shrinkLevel","2"],"-O2":["--optimizeLevel","2","--shrinkLevel","0"],"-O2s":["--optimizeLevel","2","--shrinkLevel","1"],"-O2z":["--optimizeLevel","2","--shrinkLevel","2"],"-O3":["--optimizeLevel","3","--shrinkLevel","0"],"-O3s":["--optimizeLevel","3","--shrinkLevel","1"],"-O3z":["--optimizeLevel","3","--shrinkLevel","2"]};function checkDiagnostics(e,n){for(var t,r=!1;null!=(t=assemblyscript.nextDiagnostic(e));)n&&n.write(assemblyscript.formatDiagnostic(t,n.isTTY,!0)+EOL+EOL),assemblyscript.isError(t)&&(r=!0);return r}function createStats(){return{readTime:0,readCount:0,writeTime:0,writeCount:0,parseTime:0,parseCount:0,compileTime:0,compileCount:0,emitTime:0,emitCount:0,validateTime:0,validateCount:0,optimizeTime:0,optimizeCount:0}}function measure(e){const n=process.hrtime();e();const t=process.hrtime(n);return 1e9*t[0]+t[1]}function formatTime(e){return e?(e/1e6).toFixed(3)+" ms":"N/A"}function printStats(e,n){function t(e,n){return formatTime(e)}(n||process.stdout).write(["I/O Read : "+t(e.readTime,e.readCount),"I/O Write : "+t(e.writeTime,e.writeCount),"Parse : "+t(e.parseTime,e.parseCount),"Compile : "+t(e.compileTime,e.compileCount),"Emit : "+t(e.emitTime,e.emitCount),"Validate : "+t(e.validateTime,e.validateCount),"Optimize : "+t(e.optimizeTime,e.optimizeCount)].join(EOL)+EOL)}exports.checkDiagnostics=checkDiagnostics,exports.createStats=createStats,process.hrtime||(process.hrtime=__webpack_require__(13)),exports.measure=measure,exports.formatTime=formatTime,exports.printStats=printStats;var allocBuffer=void 0!==global&&global.Buffer?global.Buffer.allocUnsafe||function(e){return new global.Buffer(e)}:function(e){return new Uint8Array(e)};function createMemoryStream(e){var n=[];return n.write=function(n){if(e&&e(n),"string"==typeof n){let e=allocBuffer(utf8.length(n));utf8.write(n,e,0),n=e}this.push(n)},n.reset=function(){n.length=0},n.toBuffer=function(){for(var e=0,n=0,t=this.length;n191&&r<224?a[s++]=(31&r)<<6|63&e[n++]:r>239&&r<365?(r=((7&r)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536,a[s++]=55296+(r>>10),a[s++]=56320+(1023&r)):a[s++]=(15&r)<<12|(63&e[n++])<<6|63&e[n++],s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,a)),s=0);return i?(s&&i.push(String.fromCharCode.apply(String,a.slice(0,s))),i.join("")):String.fromCharCode.apply(String,a.slice(0,s))},r.write=function(e,n,t){for(var r,i,a=t,s=0;s>6|192,n[t++]=63&r|128):55296==(64512&r)&&56320==(64512&(i=e.charCodeAt(s+1)))?(r=65536+((1023&r)<<10)+(1023&i),++s,n[t++]=r>>18|240,n[t++]=r>>12&63|128,n[t++]=r>>6&63|128,n[t++]=63&r|128):(n[t++]=r>>12|224,n[t++]=r>>6&63|128,n[t++]=63&r|128);return t-a}},function(e,n,t){(function(e){var t=void 0!==e&&e||{},r=t.env&&"CI"in t.env;function i(e,t){var i=t||{};return i.supported=e&&!!e.isTTY||r,i.gray=(e=>i.supported?n.GRAY+e+n.RESET:e),i.red=(e=>i.supported?n.RED+e+n.RESET:e),i.green=(e=>i.supported?n.GREEN+e+n.RESET:e),i.yellow=(e=>i.supported?n.YELLOW+e+n.RESET:e),i.blue=(e=>i.supported?n.BLUE+e+n.RESET:e),i.magenta=(e=>i.supported?n.MAGENTA+e+n.RESET:e),i.cyan=(e=>i.supported?n.CYAN+e+n.RESET:e),i.white=(e=>i.supported?n.WHITE+e+n.RESET:e),i}n.stdout=i(t.stdout,n),n.stderr=i(t.stderr),n.from=i,n.GRAY="",n.RED="",n.GREEN="",n.YELLOW="",n.BLUE="",n.MAGENTA="",n.CYAN="",n.WHITE="",n.RESET=""}).call(this,t(0))},function(e,n){n.parse=function(e,n){var t={},r=[],arguments=[],i=[],a={};Object.keys(n).forEach(e=>{var r=n[e];null!=r.alias&&("string"==typeof r.alias?a[r.alias]=e:Array.isArray(r.alias)&&r.alias.forEach(n=>a[n]=e)),null!=r.default&&(t[e]=r.default)});for(var s=0,o=(e=e.slice()).length;st[e]=o.value[e])}else r.push(i)}for(;s{var s=e[n];if(null!=s.description){for(var o="";o.length{for(let n=0;n>> 2]; - let dataOffset = (ptr + 4) >>> 1; - let dataRemain = dataLength; - const parts = []; - while (dataRemain > chunkSize) { - const last = U16[dataOffset + chunkSize - 1]; - const size = last >= 0xD800 && last < 0xDC00 ? chunkSize - 1 : chunkSize; - const part = U16.subarray(dataOffset, dataOffset += size); - parts.push(String.fromCharCode.apply(String, part)); - dataRemain -= size; - } - const lastPart = U16.subarray(dataOffset, dataOffset + dataRemain); - parts.push(String.fromCharCode.apply(String, lastPart)); - return parts.join(''); - } - utils.readString = readString; - function computeBufferSize(byteLength) { - const HEADER_SIZE = 8; - return 1 << (32 - Math.clz32(byteLength + HEADER_SIZE - 1)); - } - utils.computeBufferSize = computeBufferSize; - function hasOwnProperty(obj, key) { - return Object.prototype.hasOwnProperty.call(obj, key); - } - utils.hasOwnProperty = hasOwnProperty; -})(utils = exports.utils || (exports.utils = {})); -class MemoryWrapper { - static resolve(value) { - if (value instanceof MemoryWrapper) { - return value; - } - else { - return new MemoryWrapper(value); - } - } - constructor(memory) { - this.raw = memory; - } - // ASMemory conformance - newString(str) { - const dataLength = str.length; - const ptr = this.allocate(4 + (dataLength << 1)); - const dataOffset = (4 + ptr) >>> 1; - const U32 = this.U32, U16 = this.U16; - U32[ptr >>> 2] = dataLength; - for (let i = 0; i < dataLength; ++i) { - U16[dataOffset + i] = str.charCodeAt(i); - } - return ptr; - } - getString(ptr) { - return utils.readString(this.U32, this.U16, ptr); - } - newArray(viewOrCtor, length, unsafe) { - let ctor; - let view; - if (viewOrCtor.constructor === Function) { // TypedArray constructor created in memory - ctor = viewOrCtor; - view = null; - } - else { // TypedArray instance copied into memory - ctor = viewOrCtor.constructor; - view = viewOrCtor; - if (length === undefined) { - length = viewOrCtor.length; - } - } - if (length === undefined) { - throw new Error('Length missing'); - } - const elementSize = ctor.BYTES_PER_ELEMENT; - if (!elementSize) { - throw Error('Not a typed array'); - } - const byteLength = elementSize * length; - const ptr = this.allocate(12); // TypedArray header - const buf = this.allocate(utils.computeBufferSize(byteLength)); // ArrayBuffer - const U32 = this.U32; - U32[ptr >>> 2] = buf; // .buffer - U32[(ptr + 4) >>> 2] = 0; // .byteOffset - U32[(ptr + 8) >>> 2] = byteLength; // .byteLength - U32[buf >>> 2] = byteLength; // .byteLength - U32[(buf + 4) >>> 2] = 0; // 0 - if (view) { - new ctor(this.buffer, buf + 8, length).set(view); - if (view.length < length && !unsafe) { - const setLength = elementSize * view.length; - this.fill(buf + 8 + setLength, 0, byteLength - setLength); - } - } - else if (!unsafe) { - this.fill(buf + 8, 0, byteLength); - } - return ptr; - } - getArray(ctor, ptr) { - const elementSize = ctor.BYTES_PER_ELEMENT; - if (!elementSize) { - throw Error('Not a typed array'); - } - const U32 = this.U32; - const buf = U32[ptr >>> 2]; - const byteOffset = U32[(ptr + 4) >>> 2]; - const byteLength = U32[(ptr + 8) >>> 2]; - return new ctor(this.buffer, buf + 8 + byteOffset, (byteLength - byteOffset) / elementSize); - } - freeArray(ptr) { - const buf = this.U32[ptr >>> 2]; - this.free(buf); - this.free(ptr); - } - get U8() { - if (!this._U8 || this._U8.buffer !== this.raw.buffer) { - this._U8 = new Uint8Array(this.raw.buffer); - } - return this._U8; - } - get U16() { - if (!this._U16 || this._U16.buffer !== this.raw.buffer) { - this._U16 = new Uint16Array(this.raw.buffer); - } - return this._U16; - } - get U32() { - if (!this._U32 || this._U32.buffer !== this.raw.buffer) { - this._U32 = new Uint32Array(this.raw.buffer); - } - return this._U32; - } - get U64() { - if (!utils.hasBigInt64) { - return; - } - if (!this._U64 || this._U64.buffer !== this.raw.buffer) { - this._U64 = new BigUint64Array(this.raw.buffer); - } - return this._U64; - } - get I8() { - if (!this._I8 || this._I8.buffer !== this.raw.buffer) { - this._I8 = new Int8Array(this.raw.buffer); - } - return this._I8; - } - get I16() { - if (!this._I16 || this._I16.buffer !== this.raw.buffer) { - this._I16 = new Int16Array(this.raw.buffer); - } - return this._I16; - } - get I32() { - if (!this._I32 || this._I32.buffer !== this.raw.buffer) { - this._I32 = new Int32Array(this.raw.buffer); - } - return this._I32; - } - get I64() { - if (!utils.hasBigInt64) { - return; - } - if (!this._I64 || this._I64.buffer !== this.raw.buffer) { - this._I64 = new BigInt64Array(this.raw.buffer); - } - return this._I64; - } - get F32() { - if (!this._F32 || this._F32.buffer !== this.raw.buffer) { - this._F32 = new Float32Array(this.raw.buffer); - } - return this._F32; - } - get F64() { - if (!this._F64 || this._F64.buffer !== this.raw.buffer) { - this._F64 = new Float64Array(this.raw.buffer); - } - return this._F64; - } - allocate(size) { - throw new Error('Memory not initialized'); - } - compare(vl, vr, n) { - throw new Error('Memory not initialized'); - } - copy(dest, src, n) { - throw new Error('Memory not initialized'); - } - fill(ptr, value, size) { - throw new Error('Memory not initialized'); - } - free(ptr) { - throw new Error('Memory not initialized'); - } - reset() { - throw new Error('Memory not initialized'); - } - // WebAssembly.Memory conformance - grow(numPages) { - return this.raw.grow(numPages); - } - get buffer() { - return this.raw.buffer; - } - // Internal methods - setExports(rawExports) { - const methods = ['allocate', 'compare', 'copy', 'fill', 'free', 'reset']; - for (const method of methods) { - const exportedMethod = `memory.${method}`; - if (rawExports[exportedMethod]) { - this[method] = rawExports[exportedMethod]; - } - else { - this[method] = () => { throw new Error('Method not exported'); }; - } - } - } -} -class TableWrapper { - constructor(table) { - this.raw = table; - } - // ASTable conformance - getFunction(ptr) { - return this.wrapFunction(this.get(ptr)); - } - newFunction(fn) { - if (typeof fn[ORIG_REF] === 'function') { - fn = fn[ORIG_REF]; - } - const index = this.length; - this.grow(1); - this.set(index, fn); - return index; - } - // WebAssembly.Table conformance - grow(numElements) { - return this.raw.grow(numElements); - } - set(index, value) { - return this.raw.set(index, value); - } - get(index) { - return this.raw.get(index); - } - get length() { - return this.raw.length; - } - // Internal methods - setargc(n) { } - /** Wraps a WebAssembly function while also taking care of variable arguments. */ - wrapFunction(fn) { - const wrap = (...args) => { - this.setargc(args.length); - return fn(...args); - }; - // adding a function to the table with `newFunction` is limited to actual WebAssembly functions, - // hence we can't use the wrapper and instead need to provide a reference to the original - wrap[ORIG_REF] = fn; - return wrap; - } - setExports(rawExports) { - if (rawExports._setargc) { - this.setargc = rawExports._setargc; - } - } -} -function createContext(imports = {}) { - const ctx = { - imports, - memory: imports.memory ? MemoryWrapper.resolve(imports.memory) : null, - }; - const env = (imports.env = imports.env || {}); - const getString = (ptr) => ctx.memory ? ctx.memory.getString(ptr) : ''; - if (!env.abort) { - env.abort = function abort(mesg, file, line, colm) { - throw Error(`Abort: ${getString(mesg)} at ${getString(file)}: ${line}:${colm}`); - }; - } - if (!env.trace) { - env.trace = function trace(mesg, n, ...args) { - let msg = `trace: ${getString(mesg)}`; - if (n) { - msg += ` ${args.slice(0, n).join(', ')}`; - } - console.log(msg); - }; - } - if (env.memory instanceof MemoryWrapper) { - env.memory = env.memory.raw; - } - return ctx; -} -function resolveContext(instance, ctx) { - const table = new TableWrapper(instance.exports.table); - table.setExports(instance.exports); - ctx.memory = MemoryWrapper.resolve(instance.exports.memory); - ctx.memory.setExports(instance.exports); - const resolved = {}; - for (const internalName in instance.exports) { - if (!utils.hasOwnProperty(instance.exports, internalName)) { - continue; - } - // resolve nested objects - const parts = internalName.split('.'); - let name = parts[0]; - // ignore internals - if (name === 'memory' || name === 'table' || name === '_setargc') { - continue; - } - let curr = resolved; - while (parts.length > 1) { - const part = parts.shift(); - if (!utils.hasOwnProperty(curr, part)) { - curr[part] = {}; - } - curr = curr[part]; - } - const elem = instance.exports[internalName]; - const hash = name.indexOf('#'); - if (hash >= 0) { - // resolve classes - const className = name.substring(0, hash); - const classElem = curr[className]; - if (typeof classElem === 'undefined' || !classElem.prototype) { - const ctor = function (...args) { - return ctor.wrap(ctor.prototype.constructor(0, ...args)); - }; - ctor.prototype = {}; - ctor.wrap = function (thisValue) { - return Object.create(ctor.prototype, { - [SELF_REF]: { value: thisValue, writable: false }, - }); - }; - if (classElem) { - Object.getOwnPropertyNames(classElem).forEach((propName) => { - Object.defineProperty(ctor, propName, Object.getOwnPropertyDescriptor(classElem, propName)); - }); - } - curr[className] = ctor; - } - name = name.substring(hash + 1); - curr = curr[className].prototype; - if (/^(get|set):/.test(name)) { - name = name.substring(4); - if (!utils.hasOwnProperty(curr, name)) { - const getter = instance.exports[internalName.replace('set:', 'get:')]; - const setter = instance.exports[internalName.replace('get:', 'set:')]; - Object.defineProperty(curr, name, { - get() { return getter(this[SELF_REF]); }, - set(value) { setter(this[SELF_REF], value); }, - enumerable: true, - }); - } - } - else { - if (name === 'constructor') { - curr[name] = table.wrapFunction(elem); - } - else { // for methods - Object.defineProperty(curr, name, { - value(...args) { - table.setargc(args.length); - return elem(this[SELF_REF], ...args); - }, - }); - } - } - } - else { - // resolve props - if (/^(get|set):/.test(name)) { - name = name.substring(4); - if (!utils.hasOwnProperty(curr, name)) { - Object.defineProperty(curr, name, { - get: instance.exports[internalName.replace('set:', 'get:')], - set: instance.exports[internalName.replace('get:', 'set:')], - enumerable: true, - }); - } - } - else if (typeof elem === 'function') { - curr[name] = table.wrapFunction(elem); - } - else { - curr[name] = elem; - } - } - } - return Object.assign({ memory: ctx.memory, table }, resolved); -} -/** Instantiates an AssemblyScript module using the specified imports. */ -function instantiate(module, imports = {}) { - const ctx = createContext(imports); - const instance = new WebAssembly.Instance(module, ctx.imports); - return resolveContext(instance, ctx); -} -exports.instantiate = instantiate; -/** Instantiates an AssemblyScript module from a buffer using the specified imports. */ -function instantiateBuffer(buffer, imports = {}) { - return instantiate(new WebAssembly.Module(buffer), imports); -} -exports.instantiateBuffer = instantiateBuffer; -/** Instantiates an AssemblyScript module from a response using the specified imports. */ -function instantiateStreaming(response, imports = {}) { - return __awaiter(this, void 0, void 0, function* () { - const ctx = createContext(imports); - const { instance } = yield WebAssembly.instantiateStreaming(response, ctx.imports); - return resolveContext(instance, ctx); - }); -} -/** Creates a wrapped memory instance. */ -function createMemory(descriptor) { - return new MemoryWrapper(new WebAssembly.Memory(descriptor)); -} -exports.createMemory = createMemory; -/** Demangles an AssemblyScript module's exports to a friendly object structure. */ -function demangle(instance) { - return resolveContext(instance, createContext()); -} -exports.demangle = demangle; - - -/***/ }), - -/***/ "./node_modules/assemblyscript/dist/assemblyscript.js": -/*!************************************************************!*\ - !*** ./node_modules/assemblyscript/dist/assemblyscript.js ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -!function(e,t){ true?module.exports=t(__webpack_require__(/*! binaryen */ "./node_modules/binaryen/index.js")):undefined}("undefined"!=typeof self?self:this,function(e){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=15)}([function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(24)),n(r(25)),n(r(26)),n(r(27)),n(r(28)),n(r(29))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.NONE=0]="NONE",e[e.IMPORT=1]="IMPORT",e[e.EXPORT=2]="EXPORT",e[e.DECLARE=4]="DECLARE",e[e.CONST=8]="CONST",e[e.LET=16]="LET",e[e.STATIC=32]="STATIC",e[e.READONLY=64]="READONLY",e[e.ABSTRACT=128]="ABSTRACT",e[e.PUBLIC=256]="PUBLIC",e[e.PRIVATE=512]="PRIVATE",e[e.PROTECTED=1024]="PROTECTED",e[e.GET=2048]="GET",e[e.SET=4096]="SET",e[e.DEFINITE_ASSIGNMENT=8192]="DEFINITE_ASSIGNMENT",e[e.AMBIENT=16384]="AMBIENT",e[e.GENERIC=32768]="GENERIC",e[e.GENERIC_CONTEXT=65536]="GENERIC_CONTEXT",e[e.INSTANCE=131072]="INSTANCE",e[e.CONSTRUCTOR=262144]="CONSTRUCTOR",e[e.ARROW=524288]="ARROW",e[e.MODULE_EXPORT=1048576]="MODULE_EXPORT",e[e.MODULE_IMPORT=2097152]="MODULE_IMPORT",e[e.RESOLVED=4194304]="RESOLVED",e[e.COMPILED=8388608]="COMPILED",e[e.INLINED=16777216]="INLINED",e[e.SCOPED=33554432]="SCOPED",e[e.TRAMPOLINE=67108864]="TRAMPOLINE",e[e.VIRTUAL=134217728]="VIRTUAL",e[e.MAIN=268435456]="MAIN",e[e.QUOTED=536870912]="QUOTED"}(t.CommonFlags||(t.CommonFlags={})),t.PATH_DELIMITER="/",t.PARENT_SUBST="..",t.GETTER_PREFIX="get:",t.SETTER_PREFIX="set:",t.INSTANCE_DELIMITER="#",t.STATIC_DELIMITER=".",t.INNER_DELIMITER="~",t.LIBRARY_SUBST="~lib",t.LIBRARY_PREFIX=t.LIBRARY_SUBST+t.PATH_DELIMITER,t.FILESPACE_PREFIX="file:"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,i=r(10),a=r(0),s=r(10);function o(e){switch(e){case n.INFO:return"INFO";case n.WARNING:return"WARNING";case n.ERROR:return"ERROR";default:return assert(!1),""}}function c(e){switch(e){case n.INFO:return t.COLOR_BLUE;case n.WARNING:return t.COLOR_YELLOW;case n.ERROR:return t.COLOR_RED;default:return assert(!1),""}}t.DiagnosticCode=s.DiagnosticCode,t.diagnosticCodeToString=s.diagnosticCodeToString,function(e){e[e.INFO=0]="INFO",e[e.WARNING=1]="WARNING",e[e.ERROR=2]="ERROR"}(n=t.DiagnosticCategory||(t.DiagnosticCategory={})),t.diagnosticCategoryToString=o,t.COLOR_BLUE="",t.COLOR_YELLOW="",t.COLOR_RED="",t.COLOR_RESET="",t.diagnosticCategoryToColor=c;var l=function(){function e(e,t,r){this.range=null,this.code=e,this.category=t,this.message=r}return e.create=function(t,r,n,a,s){void 0===n&&(n=null),void 0===a&&(a=null),void 0===s&&(s=null);var o=i.diagnosticCodeToString(t);return null!=n&&(o=o.replace("{0}",n)),null!=a&&(o=o.replace("{1}",a)),null!=s&&(o=o.replace("{2}",s)),new e(t,r,o)},e.createInfo=function(t,r,i){return void 0===r&&(r=null),void 0===i&&(i=null),e.create(t,n.INFO,r,i)},e.createWarning=function(t,r,i){return void 0===r&&(r=null),void 0===i&&(i=null),e.create(t,n.WARNING,r,i)},e.createError=function(t,r,i){return void 0===r&&(r=null),void 0===i&&(i=null),e.create(t,n.ERROR,r,i)},e.prototype.withRange=function(e){return this.range=e,this},e.prototype.toString=function(){return this.range?o(this.category)+" "+this.code.toString(10)+': "'+this.message+'" in '+this.range.source.normalizedPath+":"+this.range.line.toString(10)+":"+this.range.column.toString(10):o(this.category)+" "+this.code.toString(10)+": "+this.message},e}();function p(e,r){void 0===r&&(r=!1);for(var n=e.source.text,i=n.length,s=e.start,o=e.end;s>0&&!a.isLineBreak(n.charCodeAt(s-1));)s--;for(;o=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}};Object.defineProperty(t,"__esModule",{value:!0});var i,a,s=r(9);!function(e){e[e.None=_BinaryenTypeNone()]="None",e[e.I32=_BinaryenTypeInt32()]="I32",e[e.I64=_BinaryenTypeInt64()]="I64",e[e.F32=_BinaryenTypeFloat32()]="F32",e[e.F64=_BinaryenTypeFloat64()]="F64",e[e.V128=_BinaryenTypeVec128()]="V128",e[e.Unreachable=_BinaryenTypeUnreachable()]="Unreachable",e[e.Auto=_BinaryenTypeAuto()]="Auto"}(i=t.NativeType||(t.NativeType={})),function(e){e[e.Invalid=_BinaryenInvalidId()]="Invalid",e[e.Block=_BinaryenBlockId()]="Block",e[e.If=_BinaryenIfId()]="If",e[e.Loop=_BinaryenLoopId()]="Loop",e[e.Break=_BinaryenBreakId()]="Break",e[e.Switch=_BinaryenSwitchId()]="Switch",e[e.Call=_BinaryenCallId()]="Call",e[e.CallIndirect=_BinaryenCallIndirectId()]="CallIndirect",e[e.GetLocal=_BinaryenGetLocalId()]="GetLocal",e[e.SetLocal=_BinaryenSetLocalId()]="SetLocal",e[e.GetGlobal=_BinaryenGetGlobalId()]="GetGlobal",e[e.SetGlobal=_BinaryenSetGlobalId()]="SetGlobal",e[e.Load=_BinaryenLoadId()]="Load",e[e.Store=_BinaryenStoreId()]="Store",e[e.Const=_BinaryenConstId()]="Const",e[e.Unary=_BinaryenUnaryId()]="Unary",e[e.Binary=_BinaryenBinaryId()]="Binary",e[e.Select=_BinaryenSelectId()]="Select",e[e.Drop=_BinaryenDropId()]="Drop",e[e.Return=_BinaryenReturnId()]="Return",e[e.Host=_BinaryenHostId()]="Host",e[e.Nop=_BinaryenNopId()]="Nop",e[e.Unreachable=_BinaryenUnreachableId()]="Unreachable",e[e.AtomicCmpxchg=_BinaryenAtomicCmpxchgId()]="AtomicCmpxchg",e[e.AtomicRMW=_BinaryenAtomicRMWId()]="AtomicRMW",e[e.AtomicWait=_BinaryenAtomicWaitId()]="AtomicWait",e[e.AtomicWake=_BinaryenAtomicWakeId()]="AtomicWake",e[e.SIMDExtract=_BinaryenSIMDExtractId()]="SIMDExtract",e[e.SIMDReplace=_BinaryenSIMDReplaceId()]="SIMDReplace",e[e.SIMDShuffle=_BinaryenSIMDShuffleId()]="SIMDShuffle",e[e.SIMDBitselect=_BinaryenSIMDBitselectId()]="SIMDBitselect",e[e.SIMDShift=_BinaryenSIMDShiftId()]="SIMDShift",e[e.MemoryInit=_BinaryenMemoryInitId()]="MemoryInit",e[e.DataDrop=_BinaryenDataDropId()]="DataDrop",e[e.MemoryCopy=_BinaryenMemoryCopyId()]="MemoryCopy",e[e.MemoryFill=_BinaryenMemoryFillId()]="MemoryFill"}(a=t.ExpressionId||(t.ExpressionId={})),function(e){e[e.ClzI32=_BinaryenClzInt32()]="ClzI32",e[e.CtzI32=_BinaryenCtzInt32()]="CtzI32",e[e.PopcntI32=_BinaryenPopcntInt32()]="PopcntI32",e[e.NegF32=_BinaryenNegFloat32()]="NegF32",e[e.AbsF32=_BinaryenAbsFloat32()]="AbsF32",e[e.CeilF32=_BinaryenCeilFloat32()]="CeilF32",e[e.FloorF32=_BinaryenFloorFloat32()]="FloorF32",e[e.TruncF32=_BinaryenTruncFloat32()]="TruncF32",e[e.NearestF32=_BinaryenNearestFloat32()]="NearestF32",e[e.SqrtF32=_BinaryenSqrtFloat32()]="SqrtF32",e[e.EqzI32=_BinaryenEqZInt32()]="EqzI32",e[e.ClzI64=_BinaryenClzInt64()]="ClzI64",e[e.CtzI64=_BinaryenCtzInt64()]="CtzI64",e[e.PopcntI64=_BinaryenPopcntInt64()]="PopcntI64",e[e.NegF64=_BinaryenNegFloat64()]="NegF64",e[e.AbsF64=_BinaryenAbsFloat64()]="AbsF64",e[e.CeilF64=_BinaryenCeilFloat64()]="CeilF64",e[e.FloorF64=_BinaryenFloorFloat64()]="FloorF64",e[e.TruncF64=_BinaryenTruncFloat64()]="TruncF64",e[e.NearestF64=_BinaryenNearestFloat64()]="NearestF64",e[e.SqrtF64=_BinaryenSqrtFloat64()]="SqrtF64",e[e.EqzI64=_BinaryenEqZInt64()]="EqzI64",e[e.ExtendI32=_BinaryenExtendSInt32()]="ExtendI32",e[e.ExtendU32=_BinaryenExtendUInt32()]="ExtendU32",e[e.WrapI64=_BinaryenWrapInt64()]="WrapI64",e[e.TruncF32ToI32=_BinaryenTruncSFloat32ToInt32()]="TruncF32ToI32",e[e.TruncF32ToI64=_BinaryenTruncSFloat32ToInt64()]="TruncF32ToI64",e[e.TruncF32ToU32=_BinaryenTruncUFloat32ToInt32()]="TruncF32ToU32",e[e.TruncF32ToU64=_BinaryenTruncUFloat32ToInt64()]="TruncF32ToU64",e[e.TruncF64ToI32=_BinaryenTruncSFloat64ToInt32()]="TruncF64ToI32",e[e.TruncF64ToI64=_BinaryenTruncSFloat64ToInt64()]="TruncF64ToI64",e[e.TruncF64ToU32=_BinaryenTruncUFloat64ToInt32()]="TruncF64ToU32",e[e.TruncF64ToU64=_BinaryenTruncUFloat64ToInt64()]="TruncF64ToU64",e[e.ReinterpretF32=_BinaryenReinterpretFloat32()]="ReinterpretF32",e[e.ReinterpretF64=_BinaryenReinterpretFloat64()]="ReinterpretF64",e[e.ConvertI32ToF32=_BinaryenConvertSInt32ToFloat32()]="ConvertI32ToF32",e[e.ConvertI32ToF64=_BinaryenConvertSInt32ToFloat64()]="ConvertI32ToF64",e[e.ConvertU32ToF32=_BinaryenConvertUInt32ToFloat32()]="ConvertU32ToF32",e[e.ConvertU32ToF64=_BinaryenConvertUInt32ToFloat64()]="ConvertU32ToF64",e[e.ConvertI64ToF32=_BinaryenConvertSInt64ToFloat32()]="ConvertI64ToF32",e[e.ConvertI64ToF64=_BinaryenConvertSInt64ToFloat64()]="ConvertI64ToF64",e[e.ConvertU64ToF32=_BinaryenConvertUInt64ToFloat32()]="ConvertU64ToF32",e[e.ConvertU64ToF64=_BinaryenConvertUInt64ToFloat64()]="ConvertU64ToF64",e[e.PromoteF32=_BinaryenPromoteFloat32()]="PromoteF32",e[e.DemoteF64=_BinaryenDemoteFloat64()]="DemoteF64",e[e.ReinterpretI32=_BinaryenReinterpretInt32()]="ReinterpretI32",e[e.ReinterpretI64=_BinaryenReinterpretInt64()]="ReinterpretI64",e[e.ExtendI8ToI32=_BinaryenExtendS8Int32()]="ExtendI8ToI32",e[e.ExtendI16ToI32=_BinaryenExtendS16Int32()]="ExtendI16ToI32",e[e.ExtendI8ToI64=_BinaryenExtendS8Int64()]="ExtendI8ToI64",e[e.ExtendI16ToI64=_BinaryenExtendS16Int64()]="ExtendI16ToI64",e[e.ExtendI32ToI64=_BinaryenExtendS32Int64()]="ExtendI32ToI64"}(t.UnaryOp||(t.UnaryOp={})),function(e){e[e.AddI32=_BinaryenAddInt32()]="AddI32",e[e.SubI32=_BinaryenSubInt32()]="SubI32",e[e.MulI32=_BinaryenMulInt32()]="MulI32",e[e.DivI32=_BinaryenDivSInt32()]="DivI32",e[e.DivU32=_BinaryenDivUInt32()]="DivU32",e[e.RemI32=_BinaryenRemSInt32()]="RemI32",e[e.RemU32=_BinaryenRemUInt32()]="RemU32",e[e.AndI32=_BinaryenAndInt32()]="AndI32",e[e.OrI32=_BinaryenOrInt32()]="OrI32",e[e.XorI32=_BinaryenXorInt32()]="XorI32",e[e.ShlI32=_BinaryenShlInt32()]="ShlI32",e[e.ShrU32=_BinaryenShrUInt32()]="ShrU32",e[e.ShrI32=_BinaryenShrSInt32()]="ShrI32",e[e.RotlI32=_BinaryenRotLInt32()]="RotlI32",e[e.RotrI32=_BinaryenRotRInt32()]="RotrI32",e[e.EqI32=_BinaryenEqInt32()]="EqI32",e[e.NeI32=_BinaryenNeInt32()]="NeI32",e[e.LtI32=_BinaryenLtSInt32()]="LtI32",e[e.LtU32=_BinaryenLtUInt32()]="LtU32",e[e.LeI32=_BinaryenLeSInt32()]="LeI32",e[e.LeU32=_BinaryenLeUInt32()]="LeU32",e[e.GtI32=_BinaryenGtSInt32()]="GtI32",e[e.GtU32=_BinaryenGtUInt32()]="GtU32",e[e.GeI32=_BinaryenGeSInt32()]="GeI32",e[e.GeU32=_BinaryenGeUInt32()]="GeU32",e[e.AddI64=_BinaryenAddInt64()]="AddI64",e[e.SubI64=_BinaryenSubInt64()]="SubI64",e[e.MulI64=_BinaryenMulInt64()]="MulI64",e[e.DivI64=_BinaryenDivSInt64()]="DivI64",e[e.DivU64=_BinaryenDivUInt64()]="DivU64",e[e.RemI64=_BinaryenRemSInt64()]="RemI64",e[e.RemU64=_BinaryenRemUInt64()]="RemU64",e[e.AndI64=_BinaryenAndInt64()]="AndI64",e[e.OrI64=_BinaryenOrInt64()]="OrI64",e[e.XorI64=_BinaryenXorInt64()]="XorI64",e[e.ShlI64=_BinaryenShlInt64()]="ShlI64",e[e.ShrU64=_BinaryenShrUInt64()]="ShrU64",e[e.ShrI64=_BinaryenShrSInt64()]="ShrI64",e[e.RotlI64=_BinaryenRotLInt64()]="RotlI64",e[e.RotrI64=_BinaryenRotRInt64()]="RotrI64",e[e.EqI64=_BinaryenEqInt64()]="EqI64",e[e.NeI64=_BinaryenNeInt64()]="NeI64",e[e.LtI64=_BinaryenLtSInt64()]="LtI64",e[e.LtU64=_BinaryenLtUInt64()]="LtU64",e[e.LeI64=_BinaryenLeSInt64()]="LeI64",e[e.LeU64=_BinaryenLeUInt64()]="LeU64",e[e.GtI64=_BinaryenGtSInt64()]="GtI64",e[e.GtU64=_BinaryenGtUInt64()]="GtU64",e[e.GeI64=_BinaryenGeSInt64()]="GeI64",e[e.GeU64=_BinaryenGeUInt64()]="GeU64",e[e.AddF32=_BinaryenAddFloat32()]="AddF32",e[e.SubF32=_BinaryenSubFloat32()]="SubF32",e[e.MulF32=_BinaryenMulFloat32()]="MulF32",e[e.DivF32=_BinaryenDivFloat32()]="DivF32",e[e.CopysignF32=_BinaryenCopySignFloat32()]="CopysignF32",e[e.MinF32=_BinaryenMinFloat32()]="MinF32",e[e.MaxF32=_BinaryenMaxFloat32()]="MaxF32",e[e.EqF32=_BinaryenEqFloat32()]="EqF32",e[e.NeF32=_BinaryenNeFloat32()]="NeF32",e[e.LtF32=_BinaryenLtFloat32()]="LtF32",e[e.LeF32=_BinaryenLeFloat32()]="LeF32",e[e.GtF32=_BinaryenGtFloat32()]="GtF32",e[e.GeF32=_BinaryenGeFloat32()]="GeF32",e[e.AddF64=_BinaryenAddFloat64()]="AddF64",e[e.SubF64=_BinaryenSubFloat64()]="SubF64",e[e.MulF64=_BinaryenMulFloat64()]="MulF64",e[e.DivF64=_BinaryenDivFloat64()]="DivF64",e[e.CopysignF64=_BinaryenCopySignFloat64()]="CopysignF64",e[e.MinF64=_BinaryenMinFloat64()]="MinF64",e[e.MaxF64=_BinaryenMaxFloat64()]="MaxF64",e[e.EqF64=_BinaryenEqFloat64()]="EqF64",e[e.NeF64=_BinaryenNeFloat64()]="NeF64",e[e.LtF64=_BinaryenLtFloat64()]="LtF64",e[e.LeF64=_BinaryenLeFloat64()]="LeF64",e[e.GtF64=_BinaryenGtFloat64()]="GtF64",e[e.GeF64=_BinaryenGeFloat64()]="GeF64"}(t.BinaryOp||(t.BinaryOp={})),function(e){e[e.CurrentMemory=_BinaryenCurrentMemory()]="CurrentMemory",e[e.GrowMemory=_BinaryenGrowMemory()]="GrowMemory"}(t.HostOp||(t.HostOp={})),function(e){e[e.Add=_BinaryenAtomicRMWAdd()]="Add",e[e.Sub=_BinaryenAtomicRMWSub()]="Sub",e[e.And=_BinaryenAtomicRMWAnd()]="And",e[e.Or=_BinaryenAtomicRMWOr()]="Or",e[e.Xor=_BinaryenAtomicRMWXor()]="Xor",e[e.Xchg=_BinaryenAtomicRMWXchg()]="Xchg"}(t.AtomicRMWOp||(t.AtomicRMWOp={})),function(e){e[e.SplatVecI8x16=_BinaryenSplatVecI8x16()]="SplatVecI8x16",e[e.SplatVecI16x8=_BinaryenSplatVecI16x8()]="SplatVecI16x8",e[e.SplatVecI32x4=_BinaryenSplatVecI32x4()]="SplatVecI32x4",e[e.SplatVecI64x2=_BinaryenSplatVecI64x2()]="SplatVecI64x2",e[e.SplatVecF32x4=_BinaryenSplatVecF32x4()]="SplatVecF32x4",e[e.SplatVecF64x2=_BinaryenSplatVecF64x2()]="SplatVecF64x2",e[e.NotVec128=_BinaryenNotVec128()]="NotVec128",e[e.NegVecI8x16=_BinaryenNegVecI8x16()]="NegVecI8x16",e[e.AnyTrueVecI8x16=_BinaryenAnyTrueVecI8x16()]="AnyTrueVecI8x16",e[e.AllTrueVecI8x16=_BinaryenAllTrueVecI8x16()]="AllTrueVecI8x16",e[e.NegVecI16x8=_BinaryenNegVecI16x8()]="NegVecI16x8",e[e.AnyTrueVecI16x8=_BinaryenAnyTrueVecI16x8()]="AnyTrueVecI16x8",e[e.AllTrueVecI16x8=_BinaryenAllTrueVecI16x8()]="AllTrueVecI16x8",e[e.NegVecI32x4=_BinaryenNegVecI32x4()]="NegVecI32x4",e[e.AnyTrueVecI32x4=_BinaryenAnyTrueVecI32x4()]="AnyTrueVecI32x4",e[e.AllTrueVecI32x4=_BinaryenAllTrueVecI32x4()]="AllTrueVecI32x4",e[e.NegVecI64x2=_BinaryenNegVecI64x2()]="NegVecI64x2",e[e.AnyTrueVecI64x2=_BinaryenAnyTrueVecI64x2()]="AnyTrueVecI64x2",e[e.AllTrueVecI64x2=_BinaryenAllTrueVecI64x2()]="AllTrueVecI64x2",e[e.AbsVecF32x4=_BinaryenAbsVecF32x4()]="AbsVecF32x4",e[e.NegVecF32x4=_BinaryenNegVecF32x4()]="NegVecF32x4",e[e.SqrtVecF32x4=_BinaryenSqrtVecF32x4()]="SqrtVecF32x4",e[e.AbsVecF64x2=_BinaryenAbsVecF64x2()]="AbsVecF64x2",e[e.NegVecF64x2=_BinaryenNegVecF64x2()]="NegVecF64x2",e[e.SqrtVecF64x2=_BinaryenSqrtVecF64x2()]="SqrtVecF64x2",e[e.TruncSatSVecF32x4ToVecI32x4=_BinaryenTruncSatSVecF32x4ToVecI32x4()]="TruncSatSVecF32x4ToVecI32x4",e[e.TruncSatUVecF32x4ToVecI32x4=_BinaryenTruncSatUVecF32x4ToVecI32x4()]="TruncSatUVecF32x4ToVecI32x4",e[e.TruncSatSVecF64x2ToVecI64x2=_BinaryenTruncSatSVecF64x2ToVecI64x2()]="TruncSatSVecF64x2ToVecI64x2",e[e.TruncSatUVecF64x2ToVecI64x2=_BinaryenTruncSatUVecF64x2ToVecI64x2()]="TruncSatUVecF64x2ToVecI64x2",e[e.ConvertSVecI32x4ToVecF32x4=_BinaryenConvertSVecI32x4ToVecF32x4()]="ConvertSVecI32x4ToVecF32x4",e[e.ConvertUVecI32x4ToVecF32x4=_BinaryenConvertUVecI32x4ToVecF32x4()]="ConvertUVecI32x4ToVecF32x4",e[e.ConvertSVecI64x2ToVecF64x2=_BinaryenConvertSVecI64x2ToVecF64x2()]="ConvertSVecI64x2ToVecF64x2",e[e.ConvertUVecI64x2ToVecF64x2=_BinaryenConvertUVecI64x2ToVecF64x2()]="ConvertUVecI64x2ToVecF64x2",e[e.EqVecI8x16=_BinaryenEqVecI8x16()]="EqVecI8x16",e[e.NeVecI8x16=_BinaryenNeVecI8x16()]="NeVecI8x16",e[e.LtSVecI8x16=_BinaryenLtSVecI8x16()]="LtSVecI8x16",e[e.LtUVecI8x16=_BinaryenLtUVecI8x16()]="LtUVecI8x16",e[e.LeSVecI8x16=_BinaryenLeSVecI8x16()]="LeSVecI8x16",e[e.LeUVecI8x16=_BinaryenLeUVecI8x16()]="LeUVecI8x16",e[e.GtSVecI8x16=_BinaryenGtSVecI8x16()]="GtSVecI8x16",e[e.GtUVecI8x16=_BinaryenGtUVecI8x16()]="GtUVecI8x16",e[e.GeSVecI8x16=_BinaryenGeSVecI8x16()]="GeSVecI8x16",e[e.GeUVecI8x16=_BinaryenGeUVecI8x16()]="GeUVecI8x16",e[e.EqVecI16x8=_BinaryenEqVecI16x8()]="EqVecI16x8",e[e.NeVecI16x8=_BinaryenNeVecI16x8()]="NeVecI16x8",e[e.LtSVecI16x8=_BinaryenLtSVecI16x8()]="LtSVecI16x8",e[e.LtUVecI16x8=_BinaryenLtUVecI16x8()]="LtUVecI16x8",e[e.LeSVecI16x8=_BinaryenLeSVecI16x8()]="LeSVecI16x8",e[e.LeUVecI16x8=_BinaryenLeUVecI16x8()]="LeUVecI16x8",e[e.GtSVecI16x8=_BinaryenGtSVecI16x8()]="GtSVecI16x8",e[e.GtUVecI16x8=_BinaryenGtUVecI16x8()]="GtUVecI16x8",e[e.GeSVecI16x8=_BinaryenGeSVecI16x8()]="GeSVecI16x8",e[e.GeUVecI16x8=_BinaryenGeUVecI16x8()]="GeUVecI16x8",e[e.EqVecI32x4=_BinaryenEqVecI32x4()]="EqVecI32x4",e[e.NeVecI32x4=_BinaryenNeVecI32x4()]="NeVecI32x4",e[e.LtSVecI32x4=_BinaryenLtSVecI32x4()]="LtSVecI32x4",e[e.LtUVecI32x4=_BinaryenLtUVecI32x4()]="LtUVecI32x4",e[e.LeSVecI32x4=_BinaryenLeSVecI32x4()]="LeSVecI32x4",e[e.LeUVecI32x4=_BinaryenLeUVecI32x4()]="LeUVecI32x4",e[e.GtSVecI32x4=_BinaryenGtSVecI32x4()]="GtSVecI32x4",e[e.GtUVecI32x4=_BinaryenGtUVecI32x4()]="GtUVecI32x4",e[e.GeSVecI32x4=_BinaryenGeSVecI32x4()]="GeSVecI32x4",e[e.GeUVecI32x4=_BinaryenGeUVecI32x4()]="GeUVecI32x4",e[e.EqVecF32x4=_BinaryenEqVecF32x4()]="EqVecF32x4",e[e.NeVecF32x4=_BinaryenNeVecF32x4()]="NeVecF32x4",e[e.LtVecF32x4=_BinaryenLtVecF32x4()]="LtVecF32x4",e[e.LeVecF32x4=_BinaryenLeVecF32x4()]="LeVecF32x4",e[e.GtVecF32x4=_BinaryenGtVecF32x4()]="GtVecF32x4",e[e.GeVecF32x4=_BinaryenGeVecF32x4()]="GeVecF32x4",e[e.EqVecF64x2=_BinaryenEqVecF64x2()]="EqVecF64x2",e[e.NeVecF64x2=_BinaryenNeVecF64x2()]="NeVecF64x2",e[e.LtVecF64x2=_BinaryenLtVecF64x2()]="LtVecF64x2",e[e.LeVecF64x2=_BinaryenLeVecF64x2()]="LeVecF64x2",e[e.GtVecF64x2=_BinaryenGtVecF64x2()]="GtVecF64x2",e[e.GeVecF64x2=_BinaryenGeVecF64x2()]="GeVecF64x2",e[e.AndVec128=_BinaryenAndVec128()]="AndVec128",e[e.OrVec128=_BinaryenOrVec128()]="OrVec128",e[e.XorVec128=_BinaryenXorVec128()]="XorVec128",e[e.AddVecI8x16=_BinaryenAddVecI8x16()]="AddVecI8x16",e[e.AddSatSVecI8x16=_BinaryenAddSatSVecI8x16()]="AddSatSVecI8x16",e[e.AddSatUVecI8x16=_BinaryenAddSatUVecI8x16()]="AddSatUVecI8x16",e[e.SubVecI8x16=_BinaryenSubVecI8x16()]="SubVecI8x16",e[e.SubSatSVecI8x16=_BinaryenSubSatSVecI8x16()]="SubSatSVecI8x16",e[e.SubSatUVecI8x16=_BinaryenSubSatUVecI8x16()]="SubSatUVecI8x16",e[e.MulVecI8x16=_BinaryenMulVecI8x16()]="MulVecI8x16",e[e.AddVecI16x8=_BinaryenAddVecI16x8()]="AddVecI16x8",e[e.AddSatSVecI16x8=_BinaryenAddSatSVecI16x8()]="AddSatSVecI16x8",e[e.AddSatUVecI16x8=_BinaryenAddSatUVecI16x8()]="AddSatUVecI16x8",e[e.SubVecI16x8=_BinaryenSubVecI16x8()]="SubVecI16x8",e[e.SubSatSVecI16x8=_BinaryenSubSatSVecI16x8()]="SubSatSVecI16x8",e[e.SubSatUVecI16x8=_BinaryenSubSatUVecI16x8()]="SubSatUVecI16x8",e[e.MulVecI16x8=_BinaryenMulVecI16x8()]="MulVecI16x8",e[e.AddVecI32x4=_BinaryenAddVecI32x4()]="AddVecI32x4",e[e.SubVecI32x4=_BinaryenSubVecI32x4()]="SubVecI32x4",e[e.MulVecI32x4=_BinaryenMulVecI32x4()]="MulVecI32x4",e[e.AddVecI64x2=_BinaryenAddVecI64x2()]="AddVecI64x2",e[e.SubVecI64x2=_BinaryenSubVecI64x2()]="SubVecI64x2",e[e.AddVecF32x4=_BinaryenAddVecF32x4()]="AddVecF32x4",e[e.SubVecF32x4=_BinaryenSubVecF32x4()]="SubVecF32x4",e[e.MulVecF32x4=_BinaryenMulVecF32x4()]="MulVecF32x4",e[e.DivVecF32x4=_BinaryenDivVecF32x4()]="DivVecF32x4",e[e.MinVecF32x4=_BinaryenMinVecF32x4()]="MinVecF32x4",e[e.MaxVecF32x4=_BinaryenMaxVecF32x4()]="MaxVecF32x4",e[e.AddVecF64x2=_BinaryenAddVecF64x2()]="AddVecF64x2",e[e.SubVecF64x2=_BinaryenSubVecF64x2()]="SubVecF64x2",e[e.MulVecF64x2=_BinaryenMulVecF64x2()]="MulVecF64x2",e[e.DivVecF64x2=_BinaryenDivVecF64x2()]="DivVecF64x2",e[e.MinVecF64x2=_BinaryenMinVecF64x2()]="MinVecF64x2",e[e.MaxVecF64x2=_BinaryenMaxVecF64x2()]="MaxVecF64x2"}(t.SIMDOp||(t.SIMDOp={}));var o=function(){function e(){}return e.create=function(t,r){var n=new e;return n.buffer=t,n.offset=r,n},e}();t.MemorySegment=o;var c=function(){function e(){this.hasTemporaryFunction=!1,this.cachedPrecomputeNames=0,this.cachedStrings=new Map}return e.create=function(){var t=new e;return t.ref=_BinaryenModuleCreate(),t.lit=memory.allocate(_BinaryenSizeofLiteral()),t},e.createFrom=function(t){var r=p(t);try{var n=new e;return n.ref=_BinaryenModuleRead(r,t.length),n.lit=memory.allocate(_BinaryenSizeofLiteral()),n}finally{memory.free(changetype(r))}},e.prototype.addFunctionType=function(e,t,r){var n=this.allocStringCached(e),i=u(r);try{return _BinaryenAddFunctionType(this.ref,n,t,i,r?r.length:0)}finally{memory.free(i)}},e.prototype.getFunctionTypeBySignature=function(e,t){var r=u(t);try{return _BinaryenGetFunctionTypeBySignature(this.ref,e,r,t?t.length:0)}finally{memory.free(r)}},e.prototype.removeFunctionType=function(e){var t=this.allocStringCached(e);_BinaryenRemoveFunctionType(this.ref,t)},e.prototype.createI32=function(e){var t=this.lit;return _BinaryenLiteralInt32(t,e),_BinaryenConst(this.ref,t)},e.prototype.createI64=function(e,t){void 0===t&&(t=0);var r=this.lit;return _BinaryenLiteralInt64(r,e,t),_BinaryenConst(this.ref,r)},e.prototype.createF32=function(e){var t=this.lit;return _BinaryenLiteralFloat32(t,e),_BinaryenConst(this.ref,t)},e.prototype.createF64=function(e){var t=this.lit;return _BinaryenLiteralFloat64(t,e),_BinaryenConst(this.ref,t)},e.prototype.createV128=function(e){assert(16==e.length);for(var t=this.lit,r=0;r<16;++r)store(t+r,e[r]);return _BinaryenLiteralVec128(t,t),_BinaryenConst(this.ref,t)},e.prototype.createUnary=function(e,t){return _BinaryenUnary(this.ref,e,t)},e.prototype.createBinary=function(e,t,r){return _BinaryenBinary(this.ref,e,t,r)},e.prototype.createHost=function(e,t,r){void 0===t&&(t=null),void 0===r&&(r=null);var n=this.allocStringCached(t),i=h(r);try{return _BinaryenHost(this.ref,e,n,i,r?r.length:0)}finally{memory.free(i)}},e.prototype.createGetLocal=function(e,t){return _BinaryenGetLocal(this.ref,e,t)},e.prototype.createTeeLocal=function(e,t){return _BinaryenTeeLocal(this.ref,e,t)},e.prototype.createGetGlobal=function(e,t){var r=this.allocStringCached(e);return _BinaryenGetGlobal(this.ref,r,t)},e.prototype.createLoad=function(e,t,r,n,i){return void 0===i&&(i=0),_BinaryenLoad(this.ref,e,t?1:0,i,e,n,r)},e.prototype.createStore=function(e,t,r,n,i){return void 0===i&&(i=0),_BinaryenStore(this.ref,e,i,e,t,r,n)},e.prototype.createAtomicLoad=function(e,t,r,n){return void 0===n&&(n=0),_BinaryenAtomicLoad(this.ref,e,n,r,t)},e.prototype.createAtomicStore=function(e,t,r,n,i){return void 0===i&&(i=0),_BinaryenAtomicStore(this.ref,e,i,t,r,n)},e.prototype.createAtomicRMW=function(e,t,r,n,i,a){return _BinaryenAtomicRMW(this.ref,e,t,r,n,i,a)},e.prototype.createAtomicCmpxchg=function(e,t,r,n,i,a){return _BinaryenAtomicCmpxchg(this.ref,e,t,r,n,i,a)},e.prototype.createAtomicWait=function(e,t,r,n){return _BinaryenAtomicWait(this.ref,e,t,r,n)},e.prototype.createAtomicWake=function(e,t){return _BinaryenAtomicWake(this.ref,e,t)},e.prototype.createSetLocal=function(e,t){return _BinaryenSetLocal(this.ref,e,t)},e.prototype.createSetGlobal=function(e,t){var r=this.allocStringCached(e);return _BinaryenSetGlobal(this.ref,r,t)},e.prototype.createBlock=function(e,t,r){void 0===r&&(r=i.None);var n=this.allocStringCached(e),a=h(t);try{return _BinaryenBlock(this.ref,n,a,t.length,r)}finally{memory.free(a)}},e.prototype.createBreak=function(e,t,r){void 0===t&&(t=0),void 0===r&&(r=0);var n=this.allocStringCached(e);return _BinaryenBreak(this.ref,n,t,r)},e.prototype.createDrop=function(e){return _BinaryenDrop(this.ref,e)},e.prototype.createLoop=function(e,t){var r=this.allocStringCached(e);return _BinaryenLoop(this.ref,r,t)},e.prototype.createIf=function(e,t,r){return void 0===r&&(r=0),_BinaryenIf(this.ref,e,t,r)},e.prototype.createNop=function(){return _BinaryenNop(this.ref)},e.prototype.createReturn=function(e){return void 0===e&&(e=0),_BinaryenReturn(this.ref,e)},e.prototype.createSelect=function(e,t,r){return _BinaryenSelect(this.ref,r,e,t)},e.prototype.createSwitch=function(e,t,r,n){void 0===n&&(n=0);for(var i=e.length,a=new Array(i),s=0;s=0;--d)memory.free(l[d])}},e.prototype.setFunctionTable=function(e,t,r){for(var n=r.length,i=new Array(n),a=0;a=0;--i)memory.free(n[i])}},e.prototype.precomputeExpression=function(e){var t=_BinaryenGetOptimizeLevel(),r=_BinaryenGetShrinkLevel(),n=_BinaryenGetDebugInfo();_BinaryenSetOptimizeLevel(4),_BinaryenSetShrinkLevel(0),_BinaryenSetDebugInfo(!1);var i=_BinaryenExpressionGetType(e),a=this.addTemporaryFunction(i,null,e),s=this.cachedPrecomputeNames;return s||(this.cachedPrecomputeNames=s=u([this.allocStringCached("precompute")])),_BinaryenFunctionRunPasses(a,this.ref,s,1),e=_BinaryenFunctionGetBody(a),this.removeTemporaryFunction(),_BinaryenSetOptimizeLevel(t),_BinaryenSetShrinkLevel(r),_BinaryenSetDebugInfo(n),e},e.prototype.validate=function(){return 1==_BinaryenModuleValidate(this.ref)},e.prototype.interpret=function(){_BinaryenModuleInterpret(this.ref)},e.prototype.toBinary=function(e){var t=this.lit;assert(_BinaryenSizeofLiteral()>=12);var r=d(e),n=0,i=0;try{_BinaryenModuleAllocateAndWrite(t,this.ref,r),n=y(t);var a=y(t+4);i=y(t+8);var s=new g;return s.output=function(e,t){for(var r=new Uint8Array(t),n=0;n>8&255),store(r+2,a>>16&255),store(r+3,a>>>24),r+=4}return t}function h(e){return u(e)}t.Relooper=l;var _=new Map;function d(e){if(null==e)return 0;if(_.has(e))return _.get(e);for(var t=memory.allocate(function(e){for(var t=0,r=0,n=e.length;r=55296&&i<=57343&&r+1=55296&&a<=57343&&n+1>>6),store(r++,128|63&a)):a<=65535?(store(r++,224|a>>>12),store(r++,128|a>>>6&63),store(r++,128|63&a)):a<=2097151?(store(r++,240|a>>>18),store(r++,128|a>>>12&63),store(r++,128|a>>>6&63),store(r++,128|63&a)):a<=67108863?(store(r++,248|a>>>24),store(r++,128|a>>>18&63),store(r++,128|a>>>12&63),store(r++,128|a>>>6&63),store(r++,128|63&a)):(store(r++,252|a>>>30),store(r++,128|a>>>24&63),store(r++,128|a>>>18&63),store(r++,128|a>>>12&63),store(r++,128|a>>>6&63),store(r++,128|63&a))}return store(r,0),_.set(e,t),t}function y(e){return load(e)|load(e+1)<<8|load(e+2)<<16|load(e+3)<<24}function m(e){if(!e)return null;for(var t,r,n,i,a,s=new Array;t=load(e++);)128&t?(r=63&load(e++),192!=(224&t)?(n=63&load(e++),224==(240&t)?t=(15&t)<<12|r<<6|n:(i=63&load(e++),240==(248&t)?t=(7&t)<<18|r<<12|n<<6|i:(a=63&load(e++),t=248==(252&t)?(3&t)<<24|r<<18|n<<12|i<<6|a:(1&t)<<30|r<<24|n<<18|i<<12|a<<6|63&load(e++))),s.push(t)):s.push((31&t)<<6|r)):s.push(t);return String.fromCodePoints(s)}t.readString=m;var g=function(){return function(){}}();t.BinaryModule=g,t.needsExplicitUnreachable=function e(t){switch(_BinaryenExpressionGetType(t)){case i.I32:case i.I64:case i.F32:case i.F64:return!1}switch(_BinaryenExpressionGetId(t)){case a.Unreachable:case a.Return:return!1;case a.Break:return 0!=_BinaryenBreakGetCondition(t);case a.Block:if(!_BinaryenBlockGetName(t)){var r=_BinaryenBlockGetNumChildren(t);return r>0&&e(_BinaryenBlockGetChild(t,r-1))}}return!0}},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var a=r(1),s=r(6);t.Token=s.Token,t.Range=s.Range;var o,c=r(0);!function(e){e[e.SOURCE=0]="SOURCE",e[e.TYPE=1]="TYPE",e[e.TYPEPARAMETER=2]="TYPEPARAMETER",e[e.PARAMETER=3]="PARAMETER",e[e.SIGNATURE=4]="SIGNATURE",e[e.IDENTIFIER=5]="IDENTIFIER",e[e.ASSERTION=6]="ASSERTION",e[e.BINARY=7]="BINARY",e[e.CALL=8]="CALL",e[e.CLASS=9]="CLASS",e[e.COMMA=10]="COMMA",e[e.ELEMENTACCESS=11]="ELEMENTACCESS",e[e.FALSE=12]="FALSE",e[e.FUNCTION=13]="FUNCTION",e[e.INSTANCEOF=14]="INSTANCEOF",e[e.LITERAL=15]="LITERAL",e[e.NEW=16]="NEW",e[e.NULL=17]="NULL",e[e.PARENTHESIZED=18]="PARENTHESIZED",e[e.PROPERTYACCESS=19]="PROPERTYACCESS",e[e.TERNARY=20]="TERNARY",e[e.SUPER=21]="SUPER",e[e.THIS=22]="THIS",e[e.TRUE=23]="TRUE",e[e.CONSTRUCTOR=24]="CONSTRUCTOR",e[e.UNARYPOSTFIX=25]="UNARYPOSTFIX",e[e.UNARYPREFIX=26]="UNARYPREFIX",e[e.BLOCK=27]="BLOCK",e[e.BREAK=28]="BREAK",e[e.CONTINUE=29]="CONTINUE",e[e.DO=30]="DO",e[e.EMPTY=31]="EMPTY",e[e.EXPORT=32]="EXPORT",e[e.EXPORTIMPORT=33]="EXPORTIMPORT",e[e.EXPRESSION=34]="EXPRESSION",e[e.FOR=35]="FOR",e[e.IF=36]="IF",e[e.IMPORT=37]="IMPORT",e[e.RETURN=38]="RETURN",e[e.SWITCH=39]="SWITCH",e[e.THROW=40]="THROW",e[e.TRY=41]="TRY",e[e.VARIABLE=42]="VARIABLE",e[e.VOID=43]="VOID",e[e.WHILE=44]="WHILE",e[e.CLASSDECLARATION=45]="CLASSDECLARATION",e[e.ENUMDECLARATION=46]="ENUMDECLARATION",e[e.ENUMVALUEDECLARATION=47]="ENUMVALUEDECLARATION",e[e.FIELDDECLARATION=48]="FIELDDECLARATION",e[e.FUNCTIONDECLARATION=49]="FUNCTIONDECLARATION",e[e.IMPORTDECLARATION=50]="IMPORTDECLARATION",e[e.INDEXSIGNATUREDECLARATION=51]="INDEXSIGNATUREDECLARATION",e[e.INTERFACEDECLARATION=52]="INTERFACEDECLARATION",e[e.METHODDECLARATION=53]="METHODDECLARATION",e[e.NAMESPACEDECLARATION=54]="NAMESPACEDECLARATION",e[e.TYPEDECLARATION=55]="TYPEDECLARATION",e[e.VARIABLEDECLARATION=56]="VARIABLEDECLARATION",e[e.DECORATOR=57]="DECORATOR",e[e.EXPORTMEMBER=58]="EXPORTMEMBER",e[e.SWITCHCASE=59]="SWITCHCASE",e[e.COMMENT=60]="COMMENT"}(o=t.NodeKind||(t.NodeKind={})),t.nodeIsConstantValue=function(e){switch(e){case o.LITERAL:case o.NULL:case o.TRUE:case o.FALSE:return!0}return!1},t.nodeIsCallable=function(e){switch(e){case o.IDENTIFIER:case o.ASSERTION:case o.CALL:case o.ELEMENTACCESS:case o.PARENTHESIZED:case o.PROPERTYACCESS:case o.SUPER:return!0}return!1},t.nodeIsGenericCallable=function(e){switch(e){case o.IDENTIFIER:case o.PROPERTYACCESS:return!0}return!1};var l=function(){function e(){this.parent=null,this.flags=a.CommonFlags.NONE}return e.prototype.is=function(e){return(this.flags&e)==e},e.prototype.isAny=function(e){return 0!=(this.flags&e)},e.prototype.set=function(e){this.flags|=e},e.createType=function(e,t,r,n){var i=new u;return i.range=n,i.name=e,e.parent=i,i.typeArguments=t,t&&De(t,i),i.isNullable=r,i},e.createOmittedType=function(t){return e.createType(e.createIdentifierExpression("",t),null,!1,t)},e.createTypeParameter=function(e,t,r,n){var i=new h;return i.range=n,i.name=e,e.parent=i,i.extendsType=t,t&&(t.parent=i),i.defaultType=r,r&&(r.parent=i),i},e.createParameter=function(e,t,r,n,i){var a=new _;return a.range=i,a.name=e,e.parent=a,a.type=t,t&&(t.parent=a),a.initializer=r,r&&(r.parent=a),a.parameterKind=n,a},e.createSignature=function(e,t,r,n,i){var a=new y;return a.range=i,a.parameters=e,De(e,a),a.returnType=t,t.parent=a,a.explicitThisType=r,r&&(r.parent=a),a.isNullable=n,a},e.createDecorator=function(e,t,r){var n=new g;return n.range=r,n.name=e,e.parent=n,n.arguments=t,t&&De(t,n),n.decoratorKind=m(e),n},e.createComment=function(e,t,r){var n=new T;return n.range=r,n.commentKind=t,n.text=e,n},e.createIdentifierExpression=function(e,t){var r=new I;return r.range=t,r.text=e,r},e.createEmptyIdentifierExpression=function(e){var t=new I;return t.range=e,t.text="",t},e.createArrayLiteralExpression=function(e,t){var r=new A;return r.range=t,r.elementExpressions=e,function(e,t){for(var r=0,n=e.length;r=0?c.substring(l+1):c,i.statements=new Array,i.range=new s.Range(i,0,r.length),i.text=r,i}return i(t,e),Object.defineProperty(t.prototype,"isEntry",{get:function(){return this.sourceKind==j.ENTRY},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isLibrary",{get:function(){return this.sourceKind==j.LIBRARY},enumerable:!0,configurable:!0}),t}(l);t.Source=J;var $=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.decorators=null,t.cachedProgramLevelInternalName=null,t.cachedFileLevelInternalName=null,t}return i(t,e),Object.defineProperty(t.prototype,"programLevelInternalName",{get:function(){return this.cachedProgramLevelInternalName||(this.cachedProgramLevelInternalName=Fe(this,!0)),this.cachedProgramLevelInternalName},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"fileLevelInternalName",{get:function(){return this.cachedFileLevelInternalName||(this.cachedFileLevelInternalName=Fe(this,!1)),this.cachedFileLevelInternalName},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isTopLevel",{get:function(){var e=this.parent;return!!e&&(!(e.kind==o.VARIABLE&&!(e=e.parent))&&e.kind==o.SOURCE)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isTopLevelExport",{get:function(){var e=this.parent;return!(!e||e.kind==o.VARIABLE&&!(e=e.parent))&&(e.kind==o.NAMESPACEDECLARATION?this.is(a.CommonFlags.EXPORT)&&e.isTopLevelExport:e.kind==o.CLASSDECLARATION?this.is(a.CommonFlags.STATIC)&&e.isTopLevelExport:e.kind==o.SOURCE&&this.is(a.CommonFlags.EXPORT))},enumerable:!0,configurable:!0}),t.prototype.needsExplicitExport=function(e){return e.name.text!=e.externalName.text||this.range.source!=e.range.source||!this.isTopLevelExport},t}(Z);t.DeclarationStatement=$;var ee=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.INDEXSIGNATUREDECLARATION,t}return i(t,e),t}($);t.IndexSignatureDeclaration=ee;var te=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}($);t.VariableLikeDeclarationStatement=te;var re=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.BLOCK,t}return i(t,e),t}(Z);t.BlockStatement=re;var ne=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.BREAK,t}return i(t,e),t}(Z);t.BreakStatement=ne;var ie=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.CLASSDECLARATION,t}return i(t,e),Object.defineProperty(t.prototype,"isGeneric",{get:function(){var e=this.typeParameters;return null!=e&&e.length>0},enumerable:!0,configurable:!0}),t}($);t.ClassDeclaration=ie;var ae=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.CONTINUE,t}return i(t,e),t}(Z);t.ContinueStatement=ae;var se=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.DO,t}return i(t,e),t}(Z);t.DoStatement=se;var oe=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.EMPTY,t}return i(t,e),t}(Z);t.EmptyStatement=oe;var ce=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.ENUMDECLARATION,t}return i(t,e),t}($);t.EnumDeclaration=ce;var le=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.ENUMVALUEDECLARATION,t}return i(t,e),t}($);t.EnumValueDeclaration=le;var pe=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.EXPORTIMPORT,t}return i(t,e),t}(l);t.ExportImportStatement=pe;var ue=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.EXPORTMEMBER,t}return i(t,e),t}(l);t.ExportMember=ue;var he=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.EXPORT,t}return i(t,e),t}(Z);t.ExportStatement=he;var _e=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.EXPRESSION,t}return i(t,e),t}(Z);t.ExpressionStatement=_e;var de=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.FIELDDECLARATION,t.parameterIndex=-1,t}return i(t,e),t}(te);t.FieldDeclaration=de;var ye=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.FOR,t}return i(t,e),t}(Z);t.ForStatement=ye;var me=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.FUNCTIONDECLARATION,t}return i(t,e),Object.defineProperty(t.prototype,"isGeneric",{get:function(){var e=this.typeParameters;return null!=e&&e.length>0},enumerable:!0,configurable:!0}),t}($);t.FunctionDeclaration=me;var ge=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.IF,t}return i(t,e),t}(Z);t.IfStatement=ge;var Te=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.IMPORTDECLARATION,t}return i(t,e),t}($);t.ImportDeclaration=Te;var Ee=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.IMPORT,t}return i(t,e),t}(Z);t.ImportStatement=Ee;var fe=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.INTERFACEDECLARATION,t}return i(t,e),t}(ie);t.InterfaceDeclaration=fe;var Ie=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.METHODDECLARATION,t}return i(t,e),t}(me);t.MethodDeclaration=Ie;var ve=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.NAMESPACEDECLARATION,t}return i(t,e),t}($);t.NamespaceDeclaration=ve;var Ae=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.RETURN,t}return i(t,e),t}(Z);t.ReturnStatement=Ae;var Ce=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.SWITCHCASE,t}return i(t,e),t}(l);t.SwitchCase=Ce;var Se=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.SWITCH,t}return i(t,e),t}(Z);t.SwitchStatement=Se;var Ne=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.THROW,t}return i(t,e),t}(Z);t.ThrowStatement=Ne;var Oe=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.TRY,t}return i(t,e),t}(Z);t.TryStatement=Oe;var xe=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.TYPEDECLARATION,t}return i(t,e),t}($);t.TypeDeclaration=xe;var be=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.VARIABLEDECLARATION,t}return i(t,e),t}(te);t.VariableDeclaration=be;var Le=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.VARIABLE,t}return i(t,e),t}(Z);t.VariableStatement=Le;var ke=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.VOID,t}return i(t,e),t}(Z);t.VoidStatement=ke;var Re=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.kind=o.WHILE,t}return i(t,e),t}(Z);function Fe(e,t){void 0===t&&(t=!1);var r=e.name.text,n=e.parent;return n&&(e.kind!=o.VARIABLEDECLARATION||n.kind!=o.VARIABLE||(n=n.parent))?n.kind==o.CLASSDECLARATION?Fe(n,t)+(e.is(a.CommonFlags.STATIC)?a.STATIC_DELIMITER:a.INSTANCE_DELIMITER)+r:n.kind==o.NAMESPACEDECLARATION||n.kind==o.ENUMDECLARATION?Fe(n,t)+a.STATIC_DELIMITER+r:t?r:e.range.source.internalPath+a.PATH_DELIMITER+r:r}function Be(e){return e.endsWith(".ts")&&(e=e.substring(0,e.length-3)),e}function De(e,t){for(var r=0,n=e.length;r=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}},s=this&&this.__read||function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,a=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)s.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(i)throw i.error}}return s};Object.defineProperty(t,"__esModule",{value:!0});var o,c=r(1),l=r(2),p=r(7),u=r(4),h=r(3),_=r(0),d=r(11),y=function(){return function(){}}(),m=function(){return function(){}}(),g=function(){return function(){}}();function T(e,t){switch(assert(t.length),e){case u.DecoratorKind.OPERATOR:case u.DecoratorKind.OPERATOR_BINARY:switch(t.charCodeAt(0)){case 91:if("[]"==t)return o.INDEXED_GET;if("[]="==t)return o.INDEXED_SET;break;case 123:if("{}"==t)return o.UNCHECKED_INDEXED_GET;if("{}="==t)return o.UNCHECKED_INDEXED_SET;break;case 43:if("+"==t)return o.ADD;break;case 45:if("-"==t)return o.SUB;break;case 42:if("*"==t)return o.MUL;if("**"==t)return o.POW;break;case 47:if("/"==t)return o.DIV;break;case 37:if("%"==t)return o.REM;break;case 38:if("&"==t)return o.BITWISE_AND;break;case 124:if("|"==t)return o.BITWISE_OR;break;case 94:if("^"==t)return o.BITWISE_XOR;break;case 61:if("=="==t)return o.EQ;break;case 33:if("!="==t)return o.NE;break;case 62:if(">"==t)return o.GT;if(">="==t)return o.GE;if(">>"==t)return o.BITWISE_SHR;if(">>>"==t)return o.BITWISE_SHR_U;break;case 60:if("<"==t)return o.LT;if("<="==t)return o.LE;if("<<"==t)return o.BITWISE_SHL}break;case u.DecoratorKind.OPERATOR_PREFIX:switch(t.charCodeAt(0)){case 43:if("+"==t)return o.PLUS;if("++"==t)return o.PREFIX_INC;break;case 45:if("-"==t)return o.MINUS;if("--"==t)return o.PREFIX_DEC;break;case 33:if("!"==t)return o.NOT;break;case 126:if("~"==t)return o.BITWISE_NOT}break;case u.DecoratorKind.OPERATOR_POSTFIX:switch(t.charCodeAt(0)){case 43:if("++"==t)return o.POSTFIX_INC;break;case 45:if("--"==t)return o.POSTFIX_DEC}}return o.INVALID}!function(e){e[e.INVALID=0]="INVALID",e[e.INDEXED_GET=1]="INDEXED_GET",e[e.INDEXED_SET=2]="INDEXED_SET",e[e.UNCHECKED_INDEXED_GET=3]="UNCHECKED_INDEXED_GET",e[e.UNCHECKED_INDEXED_SET=4]="UNCHECKED_INDEXED_SET",e[e.ADD=5]="ADD",e[e.SUB=6]="SUB",e[e.MUL=7]="MUL",e[e.DIV=8]="DIV",e[e.REM=9]="REM",e[e.POW=10]="POW",e[e.BITWISE_AND=11]="BITWISE_AND",e[e.BITWISE_OR=12]="BITWISE_OR",e[e.BITWISE_XOR=13]="BITWISE_XOR",e[e.BITWISE_SHL=14]="BITWISE_SHL",e[e.BITWISE_SHR=15]="BITWISE_SHR",e[e.BITWISE_SHR_U=16]="BITWISE_SHR_U",e[e.EQ=17]="EQ",e[e.NE=18]="NE",e[e.GT=19]="GT",e[e.GE=20]="GE",e[e.LT=21]="LT",e[e.LE=22]="LE",e[e.PLUS=23]="PLUS",e[e.MINUS=24]="MINUS",e[e.NOT=25]="NOT",e[e.BITWISE_NOT=26]="BITWISE_NOT",e[e.PREFIX_INC=27]="PREFIX_INC",e[e.PREFIX_DEC=28]="PREFIX_DEC",e[e.POSTFIX_INC=29]="POSTFIX_INC",e[e.POSTFIX_DEC=30]="POSTFIX_DEC"}(o=t.OperatorKind||(t.OperatorKind={}));var E,f,I=new Map,v=function(e){function t(t){void 0===t&&(t=null);var r=e.call(this,t)||this;return r.diagnosticsOffset=0,r.elementsLookup=new Map,r.instancesLookup=new Map,r.typesLookup=I,r.typeAliases=new Map,r.fileLevelExports=new Map,r.moduleLevelExports=new Map,r.basicClasses=new Map,r.arrayBufferInstance=null,r.arrayPrototype=null,r.stringInstance=null,r.mainFunction=null,r.abortInstance=null,r.memoryAllocateInstance=null,r.hasGC=!1,r.gcAllocateInstance=null,r.gcLinkInstance=null,r.gcMarkInstance=null,r.gcHeaderSize=0,r.gcHookOffset=0,r.resolver=new d.Resolver(r),r.sources=[],r}return i(t,e),t.prototype.getSource=function(e){for(var t=this.sources,r=0,n=t.length;r=0);var t,r=this.parentFunction;switch(assert(null!=e.type),e.type.toNativeType()){case h.NativeType.I32:t=r.tempI32s||(r.tempI32s=[]);break;case h.NativeType.I64:t=r.tempI64s||(r.tempI64s=[]);break;case h.NativeType.F32:t=r.tempF32s||(r.tempF32s=[]);break;case h.NativeType.F64:t=r.tempF64s||(r.tempF64s=[]);break;default:throw new Error("concrete type expected")}assert(e.index>=0),t.push(e)}},e.prototype.getAndFreeTempLocal=function(e,t){var r,n,i=this.parentFunction;switch(e.toNativeType()){case h.NativeType.I32:r=i.tempI32s||(i.tempI32s=[]);break;case h.NativeType.I64:r=i.tempI64s||(i.tempI64s=[]);break;case h.NativeType.F32:r=i.tempF32s||(i.tempF32s=[]);break;case h.NativeType.F64:r=i.tempF64s||(i.tempF64s=[]);break;default:throw new Error("concrete type expected")}return r.length?(n=r[r.length-1]).type=e:(n=i.addLocal(e),r.push(n)),e.is(36)&&this.setLocalWrapped(n.index,t),n},e.prototype.addScopedLocal=function(e,t,r,n){void 0===n&&(n=null);var i=this.getTempLocal(t,!1);if(this.scopedLocals){var a=this.scopedLocals.get(e);if(a)return n&&this.parentFunction.program.error(l.DiagnosticCode.Duplicate_identifier_0,n.range),a}else this.scopedLocals=new Map;return i.set(c.CommonFlags.SCOPED),this.scopedLocals.set(e,i),t.is(36)&&this.setLocalWrapped(i.index,r),i},e.prototype.addScopedAlias=function(e,t,r,n){if(void 0===n&&(n=null),this.scopedLocals){var i=this.scopedLocals.get(e);if(i)return n&&this.parentFunction.program.error(l.DiagnosticCode.Duplicate_identifier_0,n.range),i}else this.scopedLocals=new Map;assert(r1?e.breakLabel=t[r-2].toString(10):(e.breakLabel=null,e.breakStack=null)},e.prototype.inherit=function(e){this.flags|=4095&e.flags,this.wrappedLocals=e.wrappedLocals,this.wrappedLocalsExt=e.wrappedLocalsExt},e.prototype.inheritConditional=function(e){e.is(1)&&this.set(128),e.is(4)&&this.set(256),e.is(8)&&e.breakLabel==this.breakLabel&&this.set(512),e.is(16)&&e.continueLabel==this.continueLabel&&this.set(1024),e.is(32)&&this.set(2048)},e.prototype.inheritMutual=function(e,t){this.flags|=e.flags&t.flags&127,this.flags|=3968&e.flags,this.flags|=3968&t.flags,this.wrappedLocals=i64_and(e.wrappedLocals,t.wrappedLocals);var r=e.wrappedLocalsExt,n=t.wrappedLocalsExt;if(null!=r&&null!=n){var i=this.wrappedLocalsExt,a=min(r.length,n.length);if(a){if(i)for(;i.lengtha):this.canOverflow(h.getBinaryLeft(e),t)&&!(h.getExpressionId(r=h.getBinaryRight(e))==h.ExpressionId.Const&&h.getConstValueI32(r)>=a);case h.BinaryOp.DivU32:case h.BinaryOp.RemI32:case h.BinaryOp.RemU32:return this.canOverflow(h.getBinaryLeft(e),t)||this.canOverflow(h.getBinaryRight(e),t)}break;case h.ExpressionId.Unary:switch(h.getUnaryOp(e)){case h.UnaryOp.EqzI32:case h.UnaryOp.EqzI64:return!1;case h.UnaryOp.ClzI32:case h.UnaryOp.CtzI32:case h.UnaryOp.PopcntI32:return t.size<7}break;case h.ExpressionId.Const:var s=0;switch(h.getExpressionType(e)){case h.NativeType.I32:s=h.getConstValueI32(e);break;case h.NativeType.I64:s=h.getConstValueI64Low(e);break;case h.NativeType.F32:s=i32(h.getConstValueF32(e));break;case h.NativeType.F64:s=i32(h.getConstValueF64(e));break;default:assert(!1)}switch(t.kind){case 0:return si8.MAX_VALUE;case 1:return si16.MAX_VALUE;case 5:return s<0||s>u8.MAX_VALUE;case 6:return s<0||s>u16.MAX_VALUE;case 10:return 0!=(-2&s)}break;case h.ExpressionId.Load:var o=void 0;switch(h.getLoadBytes(e)){case 1:o=h.isLoadSigned(e)?p.Type.i8:p.Type.u8;break;case 2:o=h.isLoadSigned(e)?p.Type.i16:p.Type.u16;break;default:o=h.isLoadSigned(e)?p.Type.i32:p.Type.u32}return H(o,t);case h.ExpressionId.Block:if(!h.getBlockName(e)){var c=assert(h.getBlockChildCount(e)),l=h.getBlockChild(e,c-1);return this.canOverflow(l,t)}break;case h.ExpressionId.If:return this.canOverflow(h.getIfTrue(e),t)||this.canOverflow(assert(h.getIfFalse(e)),t);case h.ExpressionId.Select:return this.canOverflow(h.getSelectThen(e),t)||this.canOverflow(h.getSelectElse(e),t);case h.ExpressionId.Call:var u=this.parentFunction.program,_=assert(u.instancesLookup.get(assert(h.getCallTarget(e))));assert(_.kind==E.FUNCTION);var d=_.signature.returnType;return!_.flow.is(2)||H(d,t);case h.ExpressionId.Unreachable:return!1}return!0},e}();function H(e,t){return!e.is(4)||e.size>t.size||e.is(1)!=t.is(1)}t.Flow=z},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var a,s,o=r(2),c=r(4),l=r(0);function p(e){switch(assert(e.length),e.charCodeAt(0)){case 97:switch(e){case"abstract":return a.ABSTRACT;case"as":return a.AS;case"async":return a.ASYNC;case"await":return a.AWAIT}break;case 98:switch(e){case"break":return a.BREAK}break;case 99:switch(e){case"case":return a.CASE;case"catch":return a.CATCH;case"class":return a.CLASS;case"continue":return a.CONTINUE;case"const":return a.CONST;case"constructor":return a.CONSTRUCTOR}break;case 100:switch(e){case"debugger":return a.DEBUGGER;case"declare":return a.DECLARE;case"default":return a.DEFAULT;case"delete":return a.DELETE;case"do":return a.DO}break;case 101:switch(e){case"else":return a.ELSE;case"enum":return a.ENUM;case"export":return a.EXPORT;case"extends":return a.EXTENDS}break;case 102:switch(e){case"false":return a.FALSE;case"finally":return a.FINALLY;case"for":return a.FOR;case"from":return a.FROM;case"function":return a.FUNCTION}break;case 103:switch(e){case"get":return a.GET}break;case 105:switch(e){case"if":return a.IF;case"implements":return a.IMPLEMENTS;case"import":return a.IMPORT;case"in":return a.IN;case"instanceof":return a.INSTANCEOF;case"interface":return a.INTERFACE;case"is":return a.IS}break;case 107:switch(e){case"keyof":return a.KEYOF}break;case 108:switch(e){case"let":return a.LET}break;case 109:switch(e){case"module":return a.MODULE}break;case 110:switch(e){case"namespace":return a.NAMESPACE;case"new":return a.NEW;case"null":return a.NULL}break;case 111:switch(e){case"of":return a.OF}break;case 112:switch(e){case"package":return a.PACKAGE;case"private":return a.PRIVATE;case"protected":return a.PROTECTED;case"public":return a.PUBLIC}break;case 114:switch(e){case"readonly":return a.READONLY;case"return":return a.RETURN}break;case 115:switch(e){case"set":return a.SET;case"static":return a.STATIC;case"super":return a.SUPER;case"switch":return a.SWITCH}break;case 116:switch(e){case"this":return a.THIS;case"throw":return a.THROW;case"true":return a.TRUE;case"try":return a.TRY;case"type":return a.TYPE;case"typeof":return a.TYPEOF}break;case 118:switch(e){case"var":return a.VAR;case"void":return a.VOID}break;case 119:switch(e){case"while":return a.WHILE;case"with":return a.WITH}break;case 121:switch(e){case"yield":return a.YIELD}}return a.INVALID}function u(e){switch(e){case a.ABSTRACT:case a.AS:case a.CONSTRUCTOR:case a.DECLARE:case a.DELETE:case a.FROM:case a.FOR:case a.GET:case a.IS:case a.KEYOF:case a.MODULE:case a.NAMESPACE:case a.READONLY:case a.SET:case a.TYPE:case a.VOID:return!0;default:return!1}}!function(e){e[e.ABSTRACT=0]="ABSTRACT",e[e.AS=1]="AS",e[e.ASYNC=2]="ASYNC",e[e.AWAIT=3]="AWAIT",e[e.BREAK=4]="BREAK",e[e.CASE=5]="CASE",e[e.CATCH=6]="CATCH",e[e.CLASS=7]="CLASS",e[e.CONST=8]="CONST",e[e.CONTINUE=9]="CONTINUE",e[e.CONSTRUCTOR=10]="CONSTRUCTOR",e[e.DEBUGGER=11]="DEBUGGER",e[e.DECLARE=12]="DECLARE",e[e.DEFAULT=13]="DEFAULT",e[e.DELETE=14]="DELETE",e[e.DO=15]="DO",e[e.ELSE=16]="ELSE",e[e.ENUM=17]="ENUM",e[e.EXPORT=18]="EXPORT",e[e.EXTENDS=19]="EXTENDS",e[e.FALSE=20]="FALSE",e[e.FINALLY=21]="FINALLY",e[e.FOR=22]="FOR",e[e.FROM=23]="FROM",e[e.FUNCTION=24]="FUNCTION",e[e.GET=25]="GET",e[e.IF=26]="IF",e[e.IMPLEMENTS=27]="IMPLEMENTS",e[e.IMPORT=28]="IMPORT",e[e.IN=29]="IN",e[e.INSTANCEOF=30]="INSTANCEOF",e[e.INTERFACE=31]="INTERFACE",e[e.IS=32]="IS",e[e.KEYOF=33]="KEYOF",e[e.LET=34]="LET",e[e.MODULE=35]="MODULE",e[e.NAMESPACE=36]="NAMESPACE",e[e.NEW=37]="NEW",e[e.NULL=38]="NULL",e[e.OF=39]="OF",e[e.PACKAGE=40]="PACKAGE",e[e.PRIVATE=41]="PRIVATE",e[e.PROTECTED=42]="PROTECTED",e[e.PUBLIC=43]="PUBLIC",e[e.READONLY=44]="READONLY",e[e.RETURN=45]="RETURN",e[e.SET=46]="SET",e[e.STATIC=47]="STATIC",e[e.SUPER=48]="SUPER",e[e.SWITCH=49]="SWITCH",e[e.THIS=50]="THIS",e[e.THROW=51]="THROW",e[e.TRUE=52]="TRUE",e[e.TRY=53]="TRY",e[e.TYPE=54]="TYPE",e[e.TYPEOF=55]="TYPEOF",e[e.VAR=56]="VAR",e[e.VOID=57]="VOID",e[e.WHILE=58]="WHILE",e[e.WITH=59]="WITH",e[e.YIELD=60]="YIELD",e[e.OPENBRACE=61]="OPENBRACE",e[e.CLOSEBRACE=62]="CLOSEBRACE",e[e.OPENPAREN=63]="OPENPAREN",e[e.CLOSEPAREN=64]="CLOSEPAREN",e[e.OPENBRACKET=65]="OPENBRACKET",e[e.CLOSEBRACKET=66]="CLOSEBRACKET",e[e.DOT=67]="DOT",e[e.DOT_DOT_DOT=68]="DOT_DOT_DOT",e[e.SEMICOLON=69]="SEMICOLON",e[e.COMMA=70]="COMMA",e[e.LESSTHAN=71]="LESSTHAN",e[e.GREATERTHAN=72]="GREATERTHAN",e[e.LESSTHAN_EQUALS=73]="LESSTHAN_EQUALS",e[e.GREATERTHAN_EQUALS=74]="GREATERTHAN_EQUALS",e[e.EQUALS_EQUALS=75]="EQUALS_EQUALS",e[e.EXCLAMATION_EQUALS=76]="EXCLAMATION_EQUALS",e[e.EQUALS_EQUALS_EQUALS=77]="EQUALS_EQUALS_EQUALS",e[e.EXCLAMATION_EQUALS_EQUALS=78]="EXCLAMATION_EQUALS_EQUALS",e[e.EQUALS_GREATERTHAN=79]="EQUALS_GREATERTHAN",e[e.PLUS=80]="PLUS",e[e.MINUS=81]="MINUS",e[e.ASTERISK_ASTERISK=82]="ASTERISK_ASTERISK",e[e.ASTERISK=83]="ASTERISK",e[e.SLASH=84]="SLASH",e[e.PERCENT=85]="PERCENT",e[e.PLUS_PLUS=86]="PLUS_PLUS",e[e.MINUS_MINUS=87]="MINUS_MINUS",e[e.LESSTHAN_LESSTHAN=88]="LESSTHAN_LESSTHAN",e[e.GREATERTHAN_GREATERTHAN=89]="GREATERTHAN_GREATERTHAN",e[e.GREATERTHAN_GREATERTHAN_GREATERTHAN=90]="GREATERTHAN_GREATERTHAN_GREATERTHAN",e[e.AMPERSAND=91]="AMPERSAND",e[e.BAR=92]="BAR",e[e.CARET=93]="CARET",e[e.EXCLAMATION=94]="EXCLAMATION",e[e.TILDE=95]="TILDE",e[e.AMPERSAND_AMPERSAND=96]="AMPERSAND_AMPERSAND",e[e.BAR_BAR=97]="BAR_BAR",e[e.QUESTION=98]="QUESTION",e[e.COLON=99]="COLON",e[e.EQUALS=100]="EQUALS",e[e.PLUS_EQUALS=101]="PLUS_EQUALS",e[e.MINUS_EQUALS=102]="MINUS_EQUALS",e[e.ASTERISK_EQUALS=103]="ASTERISK_EQUALS",e[e.ASTERISK_ASTERISK_EQUALS=104]="ASTERISK_ASTERISK_EQUALS",e[e.SLASH_EQUALS=105]="SLASH_EQUALS",e[e.PERCENT_EQUALS=106]="PERCENT_EQUALS",e[e.LESSTHAN_LESSTHAN_EQUALS=107]="LESSTHAN_LESSTHAN_EQUALS",e[e.GREATERTHAN_GREATERTHAN_EQUALS=108]="GREATERTHAN_GREATERTHAN_EQUALS",e[e.GREATERTHAN_GREATERTHAN_GREATERTHAN_EQUALS=109]="GREATERTHAN_GREATERTHAN_GREATERTHAN_EQUALS",e[e.AMPERSAND_EQUALS=110]="AMPERSAND_EQUALS",e[e.BAR_EQUALS=111]="BAR_EQUALS",e[e.CARET_EQUALS=112]="CARET_EQUALS",e[e.AT=113]="AT",e[e.IDENTIFIER=114]="IDENTIFIER",e[e.STRINGLITERAL=115]="STRINGLITERAL",e[e.INTEGERLITERAL=116]="INTEGERLITERAL",e[e.FLOATLITERAL=117]="FLOATLITERAL",e[e.INVALID=118]="INVALID",e[e.ENDOFFILE=119]="ENDOFFILE"}(a=t.Token||(t.Token={})),function(e){e[e.DEFAULT=0]="DEFAULT",e[e.PREFER=1]="PREFER",e[e.ALWAYS=2]="ALWAYS"}(s=t.IdentifierHandling||(t.IdentifierHandling={})),t.tokenFromKeyword=p,t.tokenIsAlsoIdentifier=u,t.operatorTokenToString=function(e){switch(e){case a.DELETE:return"delete";case a.IN:return"in";case a.INSTANCEOF:return"instanceof";case a.NEW:return"new";case a.TYPEOF:return"typeof";case a.VOID:return"void";case a.YIELD:return"yield";case a.DOT_DOT_DOT:return"...";case a.COMMA:return",";case a.LESSTHAN:return"<";case a.GREATERTHAN:return">";case a.LESSTHAN_EQUALS:return"<=";case a.GREATERTHAN_EQUALS:return">=";case a.EQUALS_EQUALS:return"==";case a.EXCLAMATION_EQUALS:return"!=";case a.EQUALS_EQUALS_EQUALS:return"===";case a.EXCLAMATION_EQUALS_EQUALS:return"!==";case a.PLUS:return"+";case a.MINUS:return"-";case a.ASTERISK_ASTERISK:return"**";case a.ASTERISK:return"*";case a.SLASH:return"/";case a.PERCENT:return"%";case a.PLUS_PLUS:return"++";case a.MINUS_MINUS:return"--";case a.LESSTHAN_LESSTHAN:return"<<";case a.GREATERTHAN_GREATERTHAN:return">>";case a.GREATERTHAN_GREATERTHAN_GREATERTHAN:return">>>";case a.AMPERSAND:return"&";case a.BAR:return"|";case a.CARET:return"^";case a.EXCLAMATION:return"!";case a.TILDE:return"~";case a.AMPERSAND_AMPERSAND:return"&&";case a.BAR_BAR:return"||";case a.EQUALS:return"=";case a.PLUS_EQUALS:return"+=";case a.MINUS_EQUALS:return"-=";case a.ASTERISK_EQUALS:return"*=";case a.ASTERISK_ASTERISK_EQUALS:return"**=";case a.SLASH_EQUALS:return"/=";case a.PERCENT_EQUALS:return"%=";case a.LESSTHAN_LESSTHAN_EQUALS:return"<<=";case a.GREATERTHAN_GREATERTHAN_EQUALS:return">>=";case a.GREATERTHAN_GREATERTHAN_GREATERTHAN_EQUALS:return">>>=";case a.AMPERSAND_EQUALS:return"&=";case a.BAR_EQUALS:return"|=";case a.CARET_EQUALS:return"^=";default:return assert(!1),""}};var h=function(){function e(e,t,r){this.debugInfoRef=0,this.source=e,this.start=t,this.end=r}return e.join=function(t,r){if(t.source!=r.source)throw new Error("source mismatch");return new e(t.source,t.startr.end?t.end:r.end)},Object.defineProperty(e.prototype,"atStart",{get:function(){return new e(this.source,this.start,this.start)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"atEnd",{get:function(){return new e(this.source,this.end,this.end)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"line",{get:function(){for(var e=this.source.text,t=1,r=this.start;r>=0;--r)10==e.charCodeAt(r)&&t++;return t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"column",{get:function(){for(var e=this.source.text,t=0,r=this.start-1;r>=0&&10!=e.charCodeAt(r);--r)++t;return t},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return this.source.text.substring(this.start,this.end)},e}();t.Range=h;var _=function(e){function t(t,r){void 0===r&&(r=null);var n=e.call(this,r)||this;n.end=0,n.pos=0,n.token=-1,n.tokenPos=0,n.nextToken=-1,n.nextTokenPos=0,n.nextTokenOnNewLine=!1,n.onComment=null,n.source=t,n.pos=0,n.end=t.text.length,n.diagnostics=r||new Array;var i=t.text;if(n.pos1&&this.pos2&&this.pos1&&this.pos1&&this.pos1&&this.pos2&&this.pos1&&this.pos1&&this.pos1&&this.pos2&&this.pos+11&&this.pos1&&this.pos2&&this.pos1&&this.pos2&&this.pos1&&this.pos2&&this.pos3&&this.pos1&&this.pos1&&this.pos=this.end){n+=e.substring(r,this.pos),this.error(o.DiagnosticCode.Unterminated_string_literal,this.range(r-1,this.end));break}var i=e.charCodeAt(this.pos);if(i==t){n+=e.substring(r,this.pos++);break}if(92!=i){if(l.isLineBreak(i)){n+=e.substring(r,this.pos),this.error(o.DiagnosticCode.Unterminated_string_literal,this.range(r-1,this.pos));break}++this.pos}else n+=e.substring(r,this.pos),n+=this.readEscapeSequence(),r=this.pos}return n},t.prototype.readEscapeSequence=function(){if(++this.pos>=this.end)return this.error(o.DiagnosticCode.Unexpected_end_of_text,this.range(this.end)),"";var e=this.source.text,t=e.charCodeAt(this.pos++);switch(t){case 48:return"\0";case 98:return"\b";case 116:return"\t";case 110:return"\n";case 118:return"\v";case 102:return"\f";case 114:return"\r";case 39:return"'";case 34:return'"';case 117:return this.pos=this.end){this.error(o.DiagnosticCode.Unterminated_regular_expression_literal,this.range(t,this.end));break}if(92!=e.charCodeAt(this.pos)){var n=e.charCodeAt(this.pos);if(47==n&&!r)break;if(l.isLineBreak(n)){this.error(o.DiagnosticCode.Unterminated_regular_expression_literal,this.range(t,this.pos));break}++this.pos,r=!1}else++this.pos,r=!0}return e.substring(t,this.pos)},t.prototype.readRegexpFlags=function(){for(var e=this.source.text,t=this.pos,r=0;this.pos57)&&95!=r)break;t++}return!0},t.prototype.readInteger=function(){var e=this.source.text;if(48==e.charCodeAt(this.pos)&&this.pos+2=48&&s<=57)r=i64_add(i64_mul(r,n),i64_new(s-48,0));else if(s>=65&&s<=70)r=i64_add(i64_mul(r,n),i64_new(10+s-65,0));else if(s>=97&&s<=102)r=i64_add(i64_mul(r,n),i64_new(10+s-97,0));else{if(95!=s)break;i==a&&this.error(i==t?o.DiagnosticCode.Numeric_separators_are_not_allowed_here:o.DiagnosticCode.Multiple_consecutive_numeric_separators_are_not_permitted,this.range(a)),i=a+1}this.pos=a+1}return this.pos==t?this.error(o.DiagnosticCode.Hexadecimal_digit_expected,this.range(t)):i==this.pos&&this.error(o.DiagnosticCode.Numeric_separators_are_not_allowed_here,this.range(i-1)),r},t.prototype.readDecimalInteger=function(){for(var e=this.source.text,t=this.pos,r=i64_new(0,0),n=i64_new(10,0),i=t;this.pos=48&&s<=57)r=i64_add(i64_mul(r,n),i64_new(s-48,0));else{if(95!=s)break;i==a&&this.error(i==t?o.DiagnosticCode.Numeric_separators_are_not_allowed_here:o.DiagnosticCode.Multiple_consecutive_numeric_separators_are_not_permitted,this.range(a)),i=a+1}this.pos=a+1}return this.pos==t?this.error(o.DiagnosticCode.Digit_expected,this.range(t)):i==this.pos&&this.error(o.DiagnosticCode.Numeric_separators_are_not_allowed_here,this.range(i-1)),r},t.prototype.readOctalInteger=function(){for(var e=this.source.text,t=this.pos,r=i64_new(0,0),n=i64_new(8,0),i=t;this.pos=48&&s<=55)r=i64_add(i64_mul(r,n),i64_new(s-48,0));else{if(95!=s)break;i==a&&this.error(i==t?o.DiagnosticCode.Numeric_separators_are_not_allowed_here:o.DiagnosticCode.Multiple_consecutive_numeric_separators_are_not_permitted,this.range(a)),i=a+1}++this.pos}return this.pos==t?this.error(o.DiagnosticCode.Octal_digit_expected,this.range(t)):i==this.pos&&this.error(o.DiagnosticCode.Numeric_separators_are_not_allowed_here,this.range(i-1)),r},t.prototype.readBinaryInteger=function(){for(var e=this.source.text,t=this.pos,r=i64_new(0,0),n=i64_new(2,0),i=i64_new(1,0),a=t;this.pos=48&&n<=57)t=16*t+n-48;else if(n>=65&&n<=70)t=16*t+10+n-65;else{if(!(n>=97&&n<=102))return this.error(o.DiagnosticCode.Hexadecimal_digit_expected,this.range(this.pos-1,this.pos)),"";t=16*t+10+n-97}if(0==--e)break}return e?(this.error(o.DiagnosticCode.Unexpected_end_of_text,this.range(this.pos)),""):String.fromCharCode(t)},t.prototype.readExtendedUnicodeEscape=function(){var e=this.pos,t=this.readHexInteger(),r=i64_low(t),n=!1;assert(!i64_high(t)),r>1114111&&(this.error(o.DiagnosticCode.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive,this.range(e,this.pos)),n=!0);var i=this.source.text;return this.pos>=this.end?(this.error(o.DiagnosticCode.Unexpected_end_of_text,this.range(e,this.end)),n=!0):125==i.charCodeAt(this.pos)?++this.pos:(this.error(o.DiagnosticCode.Unterminated_Unicode_escape_sequence,this.range(e,this.pos)),n=!0),n?"":r<65536?String.fromCharCode(r):String.fromCharCode(55296+((r-65536)/1024|0),(r-65536)%1024+56320)},t.prototype.finish=function(){},t}(o.DiagnosticEmitter);t.Tokenizer=_;var d=function(){return function(){}}();t.State=d;var y=null},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(5),i=r(3);!function(e){e[e.I8=0]="I8",e[e.I16=1]="I16",e[e.I32=2]="I32",e[e.I64=3]="I64",e[e.ISIZE=4]="ISIZE",e[e.U8=5]="U8",e[e.U16=6]="U16",e[e.U32=7]="U32",e[e.U64=8]="U64",e[e.USIZE=9]="USIZE",e[e.BOOL=10]="BOOL",e[e.F32=11]="F32",e[e.F64=12]="F64",e[e.V128=13]="V128",e[e.VOID=14]="VOID"}(t.TypeKind||(t.TypeKind={})),function(e){e[e.NONE=0]="NONE",e[e.SIGNED=1]="SIGNED",e[e.UNSIGNED=2]="UNSIGNED",e[e.INTEGER=4]="INTEGER",e[e.FLOAT=8]="FLOAT",e[e.POINTER=16]="POINTER",e[e.SHORT=32]="SHORT",e[e.LONG=64]="LONG",e[e.VALUE=128]="VALUE",e[e.REFERENCE=256]="REFERENCE",e[e.NULLABLE=512]="NULLABLE",e[e.VECTOR=1024]="VECTOR"}(t.TypeFlags||(t.TypeFlags={}));var a=new Uint8Array(16),s=function(){function e(e,t,r){this.cachedNullableType=null,this.kind=e,this.flags=t,this.size=r,this.byteSize=ceil(r/8),this.classReference=null,this.signatureReference=null,this.nonNullableType=this}return Object.defineProperty(e.prototype,"intType",{get:function(){switch(this.kind){case 0:return e.i8;case 1:return e.i16;case 11:case 2:return e.i32;case 12:case 3:return e.i64;case 4:return 64==this.size?e.isize64:e.isize32;case 5:return e.u8;case 6:return e.u16;case 7:return e.u32;case 8:return e.u64;case 9:return 64==this.size?e.usize64:e.usize32;case 10:default:return e.i32}},enumerable:!0,configurable:!0}),e.prototype.isManaged=function(e){if(e.hasGC){var t=this.classReference;return null!==t&&!t.hasDecorator(n.DecoratorFlags.UNMANAGED)}return!1},e.prototype.computeSmallIntegerShift=function(e){return e.size-this.size},e.prototype.computeSmallIntegerMask=function(e){var t=this.is(2)?this.size:this.size-1;return-1>>>e.size-t},e.prototype.is=function(e){return(this.flags&e)==e},e.prototype.isAny=function(e){return 0!=(this.flags&e)},e.prototype.asClass=function(t){assert(9==this.kind&&!this.classReference);var r=new e(this.kind,-129&this.flags|256,this.size);return r.classReference=t,r},e.prototype.asFunction=function(t){assert(7==this.kind&&!this.signatureReference);var r=new e(this.kind,-129&this.flags|256,this.size);return r.signatureReference=t,r},e.prototype.asNullable=function(){return assert(this.is(256)),this.cachedNullableType||(assert(!this.is(512)),this.cachedNullableType=new e(this.kind,512|this.flags,this.size),this.cachedNullableType.nonNullableType=this,this.cachedNullableType.classReference=this.classReference,this.cachedNullableType.signatureReference=this.signatureReference),this.cachedNullableType},e.prototype.isAssignableTo=function(t,r){var n,i,a,s;if(void 0===r&&(r=!1),this.is(256)){if(t.is(256)&&(!this.is(512)||t.is(512)))if(n=this.classReference){if(i=t.classReference)return n.isAssignableTo(i)}else if((a=this.signatureReference)&&(s=t.signatureReference))return a.isAssignableTo(s)}else if(!t.is(256))if(this.is(4))if(t.is(4)){if(!r||this==e.bool||this.is(1)==t.is(1))return this.size<=t.size}else{if(11==t.kind)return this.size<=23;if(12==t.kind)return this.size<=52}else if(this.is(8)){if(t.is(8))return this.size<=t.size}else if(this.is(1024)&&t.is(1024))return this.size==t.size;return!1},e.commonCompatible=function(e,t,r){return t.isAssignableTo(e,r)?e:e.isAssignableTo(t,r)?t:null},e.prototype.toString=function(e){if(void 0===e&&(e=!1),!e&&this.is(256)){var t=this.classReference;if(t)return this.is(512)?t.toString()+" | null":t.toString();var r=this.signatureReference;if(r)return this.is(512)?"("+r.toString(!0)+") | null":r.toString(!0);assert(!1)}switch(this.kind){case 0:return"i8";case 1:return"i16";case 2:return"i32";case 3:return"i64";case 4:return"isize";case 5:return"u8";case 6:return"u16";case 7:return"u32";case 8:return"u64";case 9:return"usize";case 10:return"bool";case 11:return"f32";case 12:return"f64";case 13:return"v128";default:assert(!1);case 14:return"void"}},e.prototype.toNativeType=function(){switch(this.kind){default:return i.NativeType.I32;case 3:case 8:return i.NativeType.I64;case 4:case 9:return 64==this.size?i.NativeType.I64:i.NativeType.I32;case 11:return i.NativeType.F32;case 12:return i.NativeType.F64;case 13:return i.NativeType.V128;case 14:return i.NativeType.None}},e.prototype.toNativeZero=function(e){switch(this.kind){case 14:assert(!1);default:return e.createI32(0);case 4:case 9:if(64!=this.size)return e.createI32(0);case 3:case 8:return e.createI64(0);case 11:return e.createF32(0);case 12:return e.createF64(0);case 13:return e.createV128(a)}},e.prototype.toNativeOne=function(e){switch(this.kind){case 13:case 14:assert(!1);default:return e.createI32(1);case 4:case 9:if(64!=this.size)return e.createI32(1);case 3:case 8:return e.createI64(1);case 11:return e.createF32(1);case 12:return e.createF64(1)}},e.prototype.toNativeNegOne=function(e){switch(this.kind){case 13:case 14:assert(!1);default:return e.createI32(-1);case 4:case 9:if(64!=this.size)return e.createI32(-1);case 3:case 8:return e.createI64(-1,-1);case 11:return e.createF32(-1);case 12:return e.createF64(-1)}},e.prototype.toSignatureString=function(){switch(this.kind){default:return"i";case 3:case 8:return"I";case 4:case 9:return 64==this.size?"I":"i";case 11:return"f";case 12:return"F";case 13:return"v";case 14:return"_"}},e.i8=new e(0,165,8),e.i16=new e(1,165,16),e.i32=new e(2,133,32),e.i64=new e(3,197,64),e.isize32=new e(4,149,32),e.isize64=new e(4,213,64),e.u8=new e(5,166,8),e.u16=new e(6,166,16),e.u32=new e(7,134,32),e.u64=new e(8,198,64),e.usize32=new e(9,150,32),e.usize64=new e(9,214,64),e.bool=new e(10,166,1),e.f32=new e(11,137,32),e.f64=new e(12,201,64),e.v128=new e(13,1152,128),e.void=new e(14,0,0),e}();t.Type=s,t.typesToNativeTypes=function(e){for(var t=e.length,r=new Array(t),n=0;ne?t[e]:l(e)},e.prototype.isAssignableTo=function(e){var t=this.thisType,r=e.thisType;if(t){if(!r||!t.isAssignableTo(r))return!1}else if(r)return!1;if(this.hasRest!=e.hasRest)return!1;var n=this.parameterTypes,i=e.parameterTypes,a=n.length;if(a!=i.length)return!1;for(var s=0;s=c&&u!=p?t.push("?: "):t.push(": "),t.push(i[u].toString());return t.push(") => "),t.push(this.returnType.toString()),t.join("")},e}();t.Signature=o;var c=null;function l(e){c||(c=[]);for(var t=c.length;t<=e;++t)c.push("arg$"+t.toString(10));return c[e-1]}t.getDefaultParameterName=l},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__values||function(e){var t="function"==typeof Symbol&&e[Symbol.iterator],r=0;return t?t.call(e):{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}},s=this&&this.__read||function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,a=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)s.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(i)throw i.error}}return s};Object.defineProperty(t,"__esModule",{value:!0});var o,c=r(23),l=r(2),p=r(3),u=r(1),h=r(5),_=r(6),d=r(4),y=r(7),m=r(0);!function(e){e[e.WASM32=0]="WASM32",e[e.WASM64=1]="WASM64"}(o=t.Target||(t.Target={}));var g=function(){function e(){this.target=o.WASM32,this.noTreeShaking=!1,this.noAssert=!1,this.importMemory=!1,this.importTable=!1,this.sourceMap=!1,this.memoryBase=0,this.globalAliases=null,this.features=0,this.optimizeLevelHint=0,this.shrinkLevelHint=0}return Object.defineProperty(e.prototype,"isWasm64",{get:function(){return this.target==o.WASM64},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"usizeType",{get:function(){return this.target==o.WASM64?y.Type.usize64:y.Type.usize32},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isizeType",{get:function(){return this.target==o.WASM64?y.Type.isize64:y.Type.isize32},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nativeSizeType",{get:function(){return this.target==o.WASM64?p.NativeType.I64:p.NativeType.I32},enumerable:!0,configurable:!0}),e.prototype.hasFeature=function(e){return 0!=(this.features&e)},e}();t.Options=g,function(e){e[e.NONE=0]="NONE",e[e.SIGN_EXTENSION=1]="SIGN_EXTENSION",e[e.MUTABLE_GLOBAL=2]="MUTABLE_GLOBAL",e[e.BULK_MEMORY=4]="BULK_MEMORY",e[e.SIMD=8]="SIMD",e[e.THREADS=16]="THREADS"}(t.Feature||(t.Feature={})),function(e){e[e.NONE=0]="NONE",e[e.IMPLICIT=1]="IMPLICIT",e[e.EXPLICIT=2]="EXPLICIT"}(t.ConversionKind||(t.ConversionKind={})),function(e){e[e.NONE=0]="NONE",e[e.WRAP=1]="WRAP"}(t.WrapMode||(t.WrapMode={}));var T,E,f=function(e){function t(t,r){void 0===r&&(r=null);var n=e.call(this,t.diagnostics)||this;return n.currentInlineFunctions=[],n.currentEnum=null,n.currentType=y.Type.void,n.memorySegments=[],n.stringSegments=new Map,n.functionTable=["null"],n.argcVar=0,n.argcSet=0,n.needsIterateRoots=!1,n.f32ModInstance=null,n.f64ModInstance=null,n.f32PowInstance=null,n.f64PowInstance=null,n.program=t,n.resolver=t.resolver,r||(r=new g),n.options=r,n.memoryOffset=i64_new(max(r.memoryBase,8)),n.module=p.Module.create(),n}return i(t,e),t.compile=function(e,r){return void 0===r&&(r=null),new t(e,r).compile()},t.prototype.compile=function(){var e,t,r=this.options,n=this.module,i=this.program;i.initialize(r);var o=new h.Function(i.startFunction,"start",new y.Signature([],y.Type.void));this.startFunctionInstance=o;var l=new Array;this.startFunctionBody=l,this.currentFlow=o.flow,r.isWasm64?n.addGlobal("HEAP_BASE",p.NativeType.I64,!0,n.createI64(0,0)):n.addGlobal("HEAP_BASE",p.NativeType.I32,!1,n.createI32(0));for(var u=i.sources,_=0,d=u.length;_"),!1;e.type=this.currentType,e.set(u.CommonFlags.RESOLVED)}else assert(!1);if(e.is(u.CommonFlags.AMBIENT)&&e.hasDecorator(h.DecoratorFlags.BUILTIN))return!0;var a=e.type.toNativeType(),s=e.is(u.CommonFlags.CONST)||e.is(u.CommonFlags.STATIC|u.CommonFlags.READONLY);if(e.is(u.CommonFlags.AMBIENT))return s||this.options.hasFeature(2)?(e.set(u.CommonFlags.MODULE_IMPORT),r?I(e,r):(T="env",E=e.simpleName),t.addGlobalImport(e.internalName,T,E,a),e.set(u.CommonFlags.COMPILED),!0):(this.error(l.DiagnosticCode.Operation_not_supported,assert(r).range),!1);var o=!1;if(null!==r&&null!==r.initializer){if(n||(n=this.compileExpression(r.initializer,e.type,1,1)),p.getExpressionId(n)!=p.ExpressionId.Const&&(s?(n=t.precomputeExpression(n),p.getExpressionId(n)!=p.ExpressionId.Const&&(this.warning(l.DiagnosticCode.Compiling_constant_with_non_constant_initializer_as_mutable,r.range),o=!0)):o=!0),e.hasDecorator(h.DecoratorFlags.INLINE)&&!o){switch(assert(p.getExpressionId(n)==p.ExpressionId.Const),p.getExpressionType(n)){case p.NativeType.I32:e.constantValueKind=1,e.constantIntegerValue=i64_new(p.getConstValueI32(n),0);break;case p.NativeType.I64:e.constantValueKind=1,e.constantIntegerValue=i64_new(p.getConstValueI64Low(n),p.getConstValueI64High(n));break;case p.NativeType.F32:e.constantValueKind=2,e.constantFloatValue=p.getConstValueF32(n);break;case p.NativeType.F64:e.constantValueKind=2,e.constantFloatValue=p.getConstValueF64(n);break;default:return assert(!1),!1}e.set(u.CommonFlags.INLINED)}}else n=e.type.toNativeZero(t);var c=e.internalName;return o?(t.addGlobal(c,a,!0,e.type.toNativeZero(t)),this.startFunctionBody.push(t.createSetGlobal(c,n))):t.addGlobal(c,a,!s,n),!0},t.prototype.compileEnumDeclaration=function(e){var t=assert(this.program.elementsLookup.get(e.fileLevelInternalName));return assert(t.kind==h.ElementKind.ENUM),this.compileEnum(t)?t:null},t.prototype.compileEnum=function(e){var t,r;if(e.is(u.CommonFlags.COMPILED))return!0;e.set(u.CommonFlags.COMPILED);var n=this.module;this.currentEnum=e;var i=null,s=!1;if(e.members)try{for(var o=a(e.members.values()),c=o.next();!c.done;c=o.next()){var _=c.value;if(_.kind==h.ElementKind.ENUMVALUE){var d=!1,m=_,g=m.declaration;m.set(u.CommonFlags.COMPILED);var T=void 0;g.value?(T=this.compileExpression(g.value,y.Type.i32,1,0),p.getExpressionId(T)!=p.ExpressionId.Const&&(e.is(u.CommonFlags.CONST)?(T=n.precomputeExpression(T),p.getExpressionId(T)!=p.ExpressionId.Const&&(this.error(l.DiagnosticCode.In_const_enum_declarations_member_initializer_must_be_constant_expression,g.value.range),d=!0)):d=!0)):null==i?T=n.createI32(0):(s&&this.error(l.DiagnosticCode.Enum_member_must_have_initializer,g.range),T=n.createBinary(p.BinaryOp.AddI32,n.createGetGlobal(i.internalName,p.NativeType.I32),n.createI32(1)),T=n.precomputeExpression(T),p.getExpressionId(T)!=p.ExpressionId.Const&&(e.is(u.CommonFlags.CONST)&&this.error(l.DiagnosticCode.In_const_enum_declarations_member_initializer_must_be_constant_expression,g.range),d=!0)),d?(n.addGlobal(m.internalName,p.NativeType.I32,!0,n.createI32(0)),this.startFunctionBody.push(n.createSetGlobal(m.internalName,T)),s=!0):(n.addGlobal(m.internalName,p.NativeType.I32,!e.is(u.CommonFlags.CONST),T),s=!1),i=m}}}catch(e){t={error:e}}finally{try{c&&!c.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return this.currentEnum=null,!0},t.prototype.compileFunctionDeclaration=function(e,t){var r=assert(this.program.elementsLookup.get(e.fileLevelInternalName));return assert(r.kind==h.ElementKind.FUNCTION_PROTOTYPE),this.compileFunctionUsingTypeArguments(r,t,m.makeMap(),null,r.declaration.name)},t.prototype.compileFunctionUsingTypeArguments=function(e,t,r,n,i){var a=this.resolver.resolveFunctionInclTypeArguments(e,t,r,i);return a?(a.outerScope=n,this.compileFunction(a)?a:null):null},t.prototype.ensureFunctionType=function(e,t,r){void 0===r&&(r=null);var n,i=e?e.length:0,a=0;if(r?((n=new Array(1+i))[0]=r.toNativeType(),a=1):n=new Array(i),e)for(var s=0;s=0)return e.functionTableIndex;var t=this.functionTable,r=t.length;return!e.is(u.CommonFlags.TRAMPOLINE)&&e.signature.requiredParameters=0?"case"+u.toString(10):"break")+"|"+a);var d=t.createBlock("case0|"+a,c,p.NativeType.None),m=!0,g=!0,T=!0,E=!0;for(h=0;h=0&&(m&&i.set(1),g&&i.set(2),T&&i.set(4),E&&i.set(32)),d},t.prototype.compileThrowStatement=function(e){var t=this.currentFlow;return t.set(4),t.set(1),c.compileAbort(this,null,e)},t.prototype.compileTryStatement=function(e){return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()},t.prototype.compileVariableStatement=function(e,t){void 0===t&&(t=!1);var r=this.program,n=e.declarations,i=n.length,a=this.currentFlow;if(t||a.parentFunction==this.startFunctionInstance&&e.parent&&e.parent.kind==d.NodeKind.SOURCE){for(var s=0;s");continue}g=this.currentType}var E=!1;if(_.is(u.CommonFlags.CONST))if(T)if(T=this.module.precomputeExpression(T),p.getExpressionId(T)==p.ExpressionId.Const){var f=new h.Local(r,m,-1,g);switch(p.getExpressionType(T)){case p.NativeType.I32:f=f.withConstantIntegerValue(i64_new(p.getConstValueI32(T),0));break;case p.NativeType.I64:f=f.withConstantIntegerValue(i64_new(p.getConstValueI64Low(T),p.getConstValueI64High(T)));break;case p.NativeType.F32:f=f.withConstantFloatValue(p.getConstValueF32(T));break;case p.NativeType.F64:f=f.withConstantFloatValue(p.getConstValueF64(T));break;default:return assert(!1),this.module.createUnreachable()}var I=a.scopedLocals;if(I){if(I.has(m))return this.error(l.DiagnosticCode.Duplicate_identifier_0,_.name.range,m),this.module.createUnreachable()}else a.scopedLocals=I=new Map;I.set(m,f),E=!0}else this.warning(l.DiagnosticCode.Compiling_constant_with_non_constant_initializer_as_mutable,_.range);else this.error(l.DiagnosticCode._const_declarations_must_be_initialized,_.range);if(!E){f=void 0;if(_.isAny(u.CommonFlags.LET|u.CommonFlags.CONST)||a.is(4096))f=a.addScopedLocal(m,g,!1,_.name);else{if(a.lookupLocal(m)){this.error(l.DiagnosticCode.Duplicate_identifier_0,_.name.range,m);continue}f=a.parentFunction.addLocal(g,m,_)}T?(o.push(this.compileAssignmentWithValue(_.name,T)),f.type.is(36)&&a.setLocalWrapped(f.index,!a.canOverflow(T,g))):f.type.is(36)&&a.setLocalWrapped(f.index,!0)}}return o.length?1==o.length?o[0]:this.module.createBlock(null,o,p.NativeType.None):0},t.prototype.compileVoidStatement=function(e){return this.compileExpression(e.expression,y.Type.void,2,0)},t.prototype.compileWhileStatement=function(e){var t=this.module,r=this.currentFlow,n=this.makeIsTrueish(this.compileExpressionRetainType(e.condition,y.Type.bool,0),this.currentType);if(!this.options.noTreeShaking||r.actualFunction.isAny(u.CommonFlags.GENERIC|u.CommonFlags.GENERIC_CONTEXT)){var i=t.precomputeExpression(n);if(p.getExpressionId(i)==p.ExpressionId.Const&&p.getExpressionType(i)==p.NativeType.I32){if(!p.getConstValueI32(i))return t.createNop()}else n=this.makeIsTrueish(this.compileExpressionRetainType(e.condition,y.Type.bool,0),this.currentType)}var a=r.pushBreakLabel(),s=r.fork();this.currentFlow=s;var o="break|"+a;s.breakLabel=o;var c="continue|"+a;s.continueLabel=c;var l=this.compileStatement(e.statement),h=s.isAny(29);return s.freeScopedLocals(),r.popBreakLabel(),this.currentFlow=r,s.unset(1560),r.inheritConditional(s),t.createBlock(o,[t.createLoop(c,t.createIf(n,h?l:t.createBlock(null,[l,t.createBreak(c)],p.NativeType.None)))])},t.prototype.compileInlineConstant=function(e,t,r){assert(e.is(u.CommonFlags.INLINED));var n=e.type;switch(!r&&n.is(4)&&t.is(4)&&n.size>i:0);case 5:case 6:case 10:var a=e.type.computeSmallIntegerMask(y.Type.i32);return this.module.createI32(1==e.constantValueKind?i64_low(e.constantIntegerValue)&a:0);case 2:case 7:return this.module.createI32(1==e.constantValueKind?i64_low(e.constantIntegerValue):0);case 4:case 9:if(!e.program.options.isWasm64)return this.module.createI32(1==e.constantValueKind?i64_low(e.constantIntegerValue):0);case 3:case 8:return 1==e.constantValueKind?this.module.createI64(i64_low(e.constantIntegerValue),i64_high(e.constantIntegerValue)):this.module.createI64(0);case 12:if(!e.hasDecorator(h.DecoratorFlags.BUILTIN)||t!=y.Type.f32)return this.module.createF64(e.constantFloatValue);this.currentType=y.Type.f32;case 11:return this.module.createF32(e.constantFloatValue);default:return assert(!1),this.module.createUnreachable()}},t.prototype.compileExpression=function(e,t,r,n){var i;switch(this.currentType=t,e.kind){case d.NodeKind.ASSERTION:i=this.compileAssertionExpression(e,t);break;case d.NodeKind.BINARY:i=this.compileBinaryExpression(e,t);break;case d.NodeKind.CALL:i=this.compileCallExpression(e,t);break;case d.NodeKind.COMMA:i=this.compileCommaExpression(e,t);break;case d.NodeKind.ELEMENTACCESS:i=this.compileElementAccessExpression(e,t);break;case d.NodeKind.FUNCTION:i=this.compileFunctionExpression(e,t);break;case d.NodeKind.IDENTIFIER:case d.NodeKind.FALSE:case d.NodeKind.NULL:case d.NodeKind.THIS:case d.NodeKind.SUPER:case d.NodeKind.TRUE:i=this.compileIdentifierExpression(e,t,0==r);break;case d.NodeKind.INSTANCEOF:i=this.compileInstanceOfExpression(e,t);break;case d.NodeKind.LITERAL:i=this.compileLiteralExpression(e,t);break;case d.NodeKind.NEW:i=this.compileNewExpression(e,t);break;case d.NodeKind.PARENTHESIZED:i=this.compileParenthesizedExpression(e,t);break;case d.NodeKind.PROPERTYACCESS:i=this.compilePropertyAccessExpression(e,t,0==r);break;case d.NodeKind.TERNARY:i=this.compileTernaryExpression(e,t);break;case d.NodeKind.UNARYPOSTFIX:i=this.compileUnaryPostfixExpression(e,t);break;case d.NodeKind.UNARYPREFIX:i=this.compileUnaryPrefixExpression(e,t);break;default:this.error(l.DiagnosticCode.Operation_not_supported,e.range),i=this.module.createUnreachable()}var a=this.currentType;return 0!=r&&a!=t?(i=this.convertExpression(i,a,t,r,n,e),this.currentType=t):1==n&&(i=this.ensureSmallIntegerWrap(i,a)),this.options.sourceMap&&this.addDebugLocation(i,e.range),i},t.prototype.compileExpressionRetainType=function(e,t,r){return this.compileExpression(e,t==y.Type.void?y.Type.i32:t,0,r)},t.prototype.precomputeExpression=function(e,t,r,n){return this.module.precomputeExpression(this.compileExpression(e,t,r,n))},t.prototype.convertExpression=function(e,t,r,n,i,a){assert(0!=n);var s=this.module;return 14==t.kind?(assert(14!=r.kind),this.error(l.DiagnosticCode.Type_0_is_not_assignable_to_type_1,a.range,t.toString(),r.toString()),s.createUnreachable()):14==r.kind?s.createDrop(e):(t.isAssignableTo(r)||1==n&&this.error(l.DiagnosticCode.Conversion_from_type_0_to_1_requires_an_explicit_cast,a.range,t.toString(),r.toString()),t.is(8)?r.is(8)?11==t.kind?12==r.kind&&(e=s.createUnary(p.UnaryOp.PromoteF32,e)):11==r.kind&&(e=s.createUnary(p.UnaryOp.DemoteF64,e)):r.is(4)?11==t.kind?r==y.Type.bool?(e=s.createBinary(p.BinaryOp.NeF32,e,s.createF32(0)),i=0):e=r.is(1)?r.is(64)?s.createUnary(p.UnaryOp.TruncF32ToI64,e):s.createUnary(p.UnaryOp.TruncF32ToI32,e):r.is(64)?s.createUnary(p.UnaryOp.TruncF32ToU64,e):s.createUnary(p.UnaryOp.TruncF32ToU32,e):r==y.Type.bool?(e=s.createBinary(p.BinaryOp.NeF64,e,s.createF64(0)),i=0):e=r.is(1)?r.is(64)?s.createUnary(p.UnaryOp.TruncF64ToI64,e):s.createUnary(p.UnaryOp.TruncF64ToI32,e):r.is(64)?s.createUnary(p.UnaryOp.TruncF64ToU64,e):s.createUnary(p.UnaryOp.TruncF64ToU32,e):(assert(0==r.flags,"void type expected"),e=s.createDrop(e)):t.is(4)&&r.is(8)?e=11==r.kind?t.is(64)?s.createUnary(t.is(1)?p.UnaryOp.ConvertI64ToF32:p.UnaryOp.ConvertU64ToF32,e):s.createUnary(t.is(1)?p.UnaryOp.ConvertI32ToF32:p.UnaryOp.ConvertU32ToF32,e):t.is(64)?s.createUnary(t.is(1)?p.UnaryOp.ConvertI64ToF64:p.UnaryOp.ConvertU64ToF64,e):s.createUnary(t.is(1)?p.UnaryOp.ConvertI32ToF64:p.UnaryOp.ConvertU32ToF64,e):t.is(64)?r==y.Type.bool?(e=s.createBinary(p.BinaryOp.NeI64,e,s.createI64(0)),i=0):r.is(64)||(e=s.createUnary(p.UnaryOp.WrapI64,e)):r.is(64)?(e=s.createUnary(t.is(1)?p.UnaryOp.ExtendI32:p.UnaryOp.ExtendU32,this.ensureSmallIntegerWrap(e,t)),i=0):t.is(32)&&t.size",n.toString(),a.toString()),this.currentType=t,c.createUnreachable();switch(r=this.convertExpression(r,n,n=s,1,1,u),i=this.convertExpression(i,a,a=s,1,1,d),s.kind){case 0:case 1:case 2:o=c.createBinary(p.BinaryOp.GtI32,r,i);break;case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.GtI64:p.BinaryOp.GtI32,r,i);break;case 3:o=c.createBinary(p.BinaryOp.GtI64,r,i);break;case 5:case 6:case 7:case 10:o=c.createBinary(p.BinaryOp.GtU32,r,i);break;case 9:o=c.createBinary(this.options.isWasm64?p.BinaryOp.GtU64:p.BinaryOp.GtU32,r,i);break;case 8:o=c.createBinary(p.BinaryOp.GtU64,r,i);break;case 11:o=c.createBinary(p.BinaryOp.GtF32,r,i);break;case 12:o=c.createBinary(p.BinaryOp.GtF64,r,i);break;default:assert(!1),o=c.createUnreachable()}this.currentType=y.Type.bool;break;case _.Token.LESSTHAN_EQUALS:if(r=this.compileExpressionRetainType(u,t,0),n=this.currentType,this.currentType.is(256)){if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.LE)){o=this.compileBinaryOverload(v,u,r,d,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}if(i=this.compileExpressionRetainType(d,n,0),a=this.currentType,!(s=y.Type.commonCompatible(n,a,!0)))return this.error(l.DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2,e.range,"<=",n.toString(),a.toString()),this.currentType=t,c.createUnreachable();switch(r=this.convertExpression(r,n,n=s,1,1,u),i=this.convertExpression(i,a,a=s,1,1,d),s.kind){case 0:case 1:case 2:o=c.createBinary(p.BinaryOp.LeI32,r,i);break;case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.LeI64:p.BinaryOp.LeI32,r,i);break;case 3:o=c.createBinary(p.BinaryOp.LeI64,r,i);break;case 5:case 6:case 7:case 10:o=c.createBinary(p.BinaryOp.LeU32,r,i);break;case 9:o=c.createBinary(this.options.isWasm64?p.BinaryOp.LeU64:p.BinaryOp.LeU32,r,i);break;case 8:o=c.createBinary(p.BinaryOp.LeU64,r,i);break;case 11:o=c.createBinary(p.BinaryOp.LeF32,r,i);break;case 12:o=c.createBinary(p.BinaryOp.LeF64,r,i);break;default:assert(!1),o=c.createUnreachable()}this.currentType=y.Type.bool;break;case _.Token.GREATERTHAN_EQUALS:if(r=this.compileExpressionRetainType(u,t,0),n=this.currentType,this.currentType.is(256)){if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.GE)){o=this.compileBinaryOverload(v,u,r,d,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}if(i=this.compileExpressionRetainType(d,n,0),a=this.currentType,!(s=y.Type.commonCompatible(n,a,!0)))return this.error(l.DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2,e.range,">=",n.toString(),a.toString()),this.currentType=t,c.createUnreachable();switch(r=this.convertExpression(r,n,n=s,1,1,u),i=this.convertExpression(i,a,a=s,1,1,d),s.kind){case 0:case 1:case 2:o=c.createBinary(p.BinaryOp.GeI32,r,i);break;case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.GeI64:p.BinaryOp.GeI32,r,i);break;case 3:o=c.createBinary(p.BinaryOp.GeI64,r,i);break;case 5:case 6:case 7:case 10:o=c.createBinary(p.BinaryOp.GeU32,r,i);break;case 9:o=c.createBinary(this.options.isWasm64?p.BinaryOp.GeU64:p.BinaryOp.GeU32,r,i);break;case 8:o=c.createBinary(p.BinaryOp.GeU64,r,i);break;case 11:o=c.createBinary(p.BinaryOp.GeF32,r,i);break;case 12:o=c.createBinary(p.BinaryOp.GeF64,r,i);break;default:assert(!1),o=c.createUnreachable()}this.currentType=y.Type.bool;break;case _.Token.EQUALS_EQUALS_EQUALS:case _.Token.EQUALS_EQUALS:if(r=this.compileExpressionRetainType(u,t,0),n=this.currentType,g==_.Token.EQUALS_EQUALS&&this.currentType.is(256))if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.EQ)){o=this.compileBinaryOverload(v,u,r,d,e);break}if(i=this.compileExpressionRetainType(d,n,0),a=this.currentType,!(s=y.Type.commonCompatible(n,a,!1)))return this.error(l.DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2,e.range,_.operatorTokenToString(e.operator),n.toString(),a.toString()),this.currentType=t,c.createUnreachable();switch(r=this.convertExpression(r,n,n=s,1,1,u),i=this.convertExpression(i,a,a=s,1,1,d),s.kind){case 0:case 1:case 2:case 5:case 6:case 7:case 10:o=c.createBinary(p.BinaryOp.EqI32,r,i);break;case 9:case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.EqI64:p.BinaryOp.EqI32,r,i);break;case 3:case 8:o=c.createBinary(p.BinaryOp.EqI64,r,i);break;case 11:o=c.createBinary(p.BinaryOp.EqF32,r,i);break;case 12:o=c.createBinary(p.BinaryOp.EqF64,r,i);break;default:assert(!1),o=c.createUnreachable()}this.currentType=y.Type.bool;break;case _.Token.EXCLAMATION_EQUALS_EQUALS:case _.Token.EXCLAMATION_EQUALS:if(r=this.compileExpressionRetainType(u,t,0),n=this.currentType,g==_.Token.EXCLAMATION_EQUALS&&this.currentType.is(256))if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.NE)){o=this.compileBinaryOverload(v,u,r,d,e);break}if(i=this.compileExpressionRetainType(d,n,0),a=this.currentType,!(s=y.Type.commonCompatible(n,a,!1)))return this.error(l.DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2,e.range,_.operatorTokenToString(e.operator),n.toString(),a.toString()),this.currentType=t,c.createUnreachable();switch(r=this.convertExpression(r,n,n=s,1,1,u),i=this.convertExpression(i,a,a=s,1,1,d),s.kind){case 0:case 1:case 2:case 5:case 6:case 7:case 10:o=c.createBinary(p.BinaryOp.NeI32,r,i);break;case 9:case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.NeI64:p.BinaryOp.NeI32,r,i);break;case 3:case 8:o=c.createBinary(p.BinaryOp.NeI64,r,i);break;case 11:o=c.createBinary(p.BinaryOp.NeF32,r,i);break;case 12:o=c.createBinary(p.BinaryOp.NeF64,r,i);break;default:assert(!1),o=c.createUnreachable()}this.currentType=y.Type.bool;break;case _.Token.EQUALS:return this.compileAssignment(u,d,t);case _.Token.PLUS_EQUALS:m=!0;case _.Token.PLUS:if(r=this.compileExpressionRetainType(u,t,0),n=this.currentType,this.currentType.is(256)){if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.ADD)){o=this.compileBinaryOverload(v,u,r,d,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}if(m)i=this.compileExpression(d,n,1,0);else{if(i=this.compileExpressionRetainType(d,n,0),a=this.currentType,!(s=y.Type.commonCompatible(n,a,!1)))return this.error(l.DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2,e.range,"+",n.toString(),a.toString()),this.currentType=t,c.createUnreachable();r=this.convertExpression(r,n,n=s,1,0,u),i=this.convertExpression(i,a,a=s,1,0,d)}switch(this.currentType.kind){case 0:case 1:case 5:case 6:case 10:case 2:case 7:o=c.createBinary(p.BinaryOp.AddI32,r,i);break;case 9:case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.AddI64:p.BinaryOp.AddI32,r,i);break;case 3:case 8:o=c.createBinary(p.BinaryOp.AddI64,r,i);break;case 11:o=c.createBinary(p.BinaryOp.AddF32,r,i);break;case 12:o=c.createBinary(p.BinaryOp.AddF64,r,i);break;default:assert(!1),o=c.createUnreachable()}break;case _.Token.MINUS_EQUALS:m=!0;case _.Token.MINUS:if(r=this.compileExpressionRetainType(u,t,0),n=this.currentType,this.currentType.is(256)){if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.SUB)){o=this.compileBinaryOverload(v,u,r,d,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}if(m)i=this.compileExpression(d,n,1,0),a=this.currentType;else{if(i=this.compileExpressionRetainType(d,n,0),a=this.currentType,!(s=y.Type.commonCompatible(n,a,!1)))return this.error(l.DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2,e.range,"-",n.toString(),a.toString()),this.currentType=t,c.createUnreachable();r=this.convertExpression(r,n,n=s,1,0,u),i=this.convertExpression(i,a,a=s,1,0,d)}switch(this.currentType.kind){case 0:case 1:case 5:case 6:case 10:case 2:case 7:o=c.createBinary(p.BinaryOp.SubI32,r,i);break;case 9:case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.SubI64:p.BinaryOp.SubI32,r,i);break;case 3:case 8:o=c.createBinary(p.BinaryOp.SubI64,r,i);break;case 11:o=c.createBinary(p.BinaryOp.SubF32,r,i);break;case 12:o=c.createBinary(p.BinaryOp.SubF64,r,i);break;default:assert(!1),o=c.createUnreachable()}break;case _.Token.ASTERISK_EQUALS:m=!0;case _.Token.ASTERISK:if(r=this.compileExpressionRetainType(u,t,0),n=this.currentType,this.currentType.is(256)){if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.MUL)){o=this.compileBinaryOverload(v,u,r,d,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}if(m)r=this.ensureSmallIntegerWrap(r,n),i=this.compileExpression(d,n,1,1);else{if(i=this.compileExpressionRetainType(d,n,0),a=this.currentType,!(s=y.Type.commonCompatible(n,a,!1)))return this.error(l.DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2,e.range,"*",n.toString(),a.toString()),this.currentType=t,c.createUnreachable();r=this.convertExpression(r,n,n=s,1,0,u),i=this.convertExpression(i,a,a=s,1,0,d)}switch(this.currentType.kind){case 0:case 1:case 5:case 6:case 10:case 2:case 7:o=c.createBinary(p.BinaryOp.MulI32,r,i);break;case 9:case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.MulI64:p.BinaryOp.MulI32,r,i);break;case 3:case 8:o=c.createBinary(p.BinaryOp.MulI64,r,i);break;case 11:o=c.createBinary(p.BinaryOp.MulF32,r,i);break;case 12:o=c.createBinary(p.BinaryOp.MulF64,r,i);break;default:assert(!1),o=c.createUnreachable()}break;case _.Token.ASTERISK_ASTERISK_EQUALS:m=!0;case _.Token.ASTERISK_ASTERISK:if(r=this.compileExpressionRetainType(u,t,0),n=this.currentType,this.currentType.is(256)){if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.POW)){o=this.compileBinaryOverload(v,u,r,d,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}var T=void 0;if(11==this.currentType.kind){if(i=this.compileExpression(d,y.Type.f32,1,0),a=this.currentType,!(T=this.f32PowInstance)){if(!(E=this.program.elementsLookup.get("Mathf"))){this.error(l.DiagnosticCode.Cannot_find_name_0,e.range,"Mathf"),o=c.createUnreachable();break}if(!(f=E.members?E.members.get("pow"):null)){this.error(l.DiagnosticCode.Cannot_find_name_0,e.range,"Mathf.pow"),o=c.createUnreachable();break}assert(f.kind==h.ElementKind.FUNCTION_PROTOTYPE),this.f32PowInstance=T=this.resolver.resolveFunction(f,null)}}else if(r=this.convertExpression(r,this.currentType,y.Type.f64,1,0,u),n=this.currentType,i=this.compileExpression(d,y.Type.f64,1,0),a=this.currentType,!(T=this.f64PowInstance)){if(!(E=this.program.elementsLookup.get("Math"))){this.error(l.DiagnosticCode.Cannot_find_name_0,e.range,"Math"),o=c.createUnreachable();break}if(!(f=E.members?E.members.get("pow"):null)){this.error(l.DiagnosticCode.Cannot_find_name_0,e.range,"Math.pow"),o=c.createUnreachable();break}assert(f.kind==h.ElementKind.FUNCTION_PROTOTYPE),this.f64PowInstance=T=this.resolver.resolveFunction(f,null)}o=T&&this.compileFunction(T)?this.makeCallDirect(T,[r,i]):c.createUnreachable();break;case _.Token.SLASH_EQUALS:m=!0;case _.Token.SLASH:if(r=this.compileExpressionRetainType(u,t,0),n=this.currentType,this.currentType.is(256)){if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.DIV)){o=this.compileBinaryOverload(v,u,r,d,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}if(m)r=this.ensureSmallIntegerWrap(r,n),i=this.compileExpression(d,n,1,1),a=this.currentType;else{if(i=this.compileExpressionRetainType(d,n,0),a=this.currentType,!(s=y.Type.commonCompatible(n,a,!1)))return this.error(l.DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2,e.range,"/",n.toString(),a.toString()),this.currentType=t,c.createUnreachable();r=this.convertExpression(r,n,n=s,1,1,u),i=this.convertExpression(i,a,a=s,1,1,d)}switch(this.currentType.kind){case 0:case 1:case 2:o=c.createBinary(p.BinaryOp.DivI32,r,i);break;case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.DivI64:p.BinaryOp.DivI32,r,i);break;case 3:o=c.createBinary(p.BinaryOp.DivI64,r,i);break;case 5:case 6:case 10:case 7:o=c.createBinary(p.BinaryOp.DivU32,r,i);break;case 9:o=c.createBinary(this.options.isWasm64?p.BinaryOp.DivU64:p.BinaryOp.DivU32,r,i);break;case 8:o=c.createBinary(p.BinaryOp.DivU64,r,i);break;case 11:o=c.createBinary(p.BinaryOp.DivF32,r,i);break;case 12:o=c.createBinary(p.BinaryOp.DivF64,r,i);break;default:assert(!1),o=c.createUnreachable()}break;case _.Token.PERCENT_EQUALS:m=!0;case _.Token.PERCENT:if(r=this.compileExpressionRetainType(u,t,0),n=this.currentType,this.currentType.is(256)){if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.REM)){o=this.compileBinaryOverload(v,u,r,d,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}if(m)r=this.ensureSmallIntegerWrap(r,n),i=this.compileExpression(d,n,1,1),a=this.currentType;else{if(i=this.compileExpressionRetainType(d,n,0),a=this.currentType,!(s=y.Type.commonCompatible(n,a,!1)))return this.error(l.DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2,e.range,"%",n.toString(),a.toString()),this.currentType=t,c.createUnreachable();r=this.convertExpression(r,n,n=s,1,1,u),i=this.convertExpression(i,a,a=s,1,1,d)}switch(this.currentType.kind){case 0:case 1:case 2:o=c.createBinary(p.BinaryOp.RemI32,r,i);break;case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.RemI64:p.BinaryOp.RemI32,r,i);break;case 3:o=c.createBinary(p.BinaryOp.RemI64,r,i);break;case 5:case 6:case 10:case 7:o=c.createBinary(p.BinaryOp.RemU32,r,i);break;case 9:o=c.createBinary(this.options.isWasm64?p.BinaryOp.RemU64:p.BinaryOp.RemU32,r,i);break;case 8:o=c.createBinary(p.BinaryOp.RemU64,r,i);break;case 11:if(!(T=this.f32ModInstance)){if(!(E=this.program.elementsLookup.get("Mathf"))){this.error(l.DiagnosticCode.Cannot_find_name_0,e.range,"Mathf"),o=c.createUnreachable();break}if(!(f=E.members?E.members.get("mod"):null)){this.error(l.DiagnosticCode.Cannot_find_name_0,e.range,"Mathf.mod"),o=c.createUnreachable();break}assert(f.kind==h.ElementKind.FUNCTION_PROTOTYPE),this.f32ModInstance=T=this.resolver.resolveFunction(f,null)}o=T&&this.compileFunction(T)?this.makeCallDirect(T,[r,i]):c.createUnreachable();break;case 12:if(!(T=this.f64ModInstance)){var E,f;if(!(E=this.program.elementsLookup.get("Math"))){this.error(l.DiagnosticCode.Cannot_find_name_0,e.range,"Math"),o=c.createUnreachable();break}if(!(f=E.members?E.members.get("mod"):null)){this.error(l.DiagnosticCode.Cannot_find_name_0,e.range,"Math.mod"),o=c.createUnreachable();break}assert(f.kind==h.ElementKind.FUNCTION_PROTOTYPE),this.f64ModInstance=T=this.resolver.resolveFunction(f,null)}o=T&&this.compileFunction(T)?this.makeCallDirect(T,[r,i]):c.createUnreachable();break;default:assert(!1),o=c.createUnreachable()}break;case _.Token.LESSTHAN_LESSTHAN_EQUALS:m=!0;case _.Token.LESSTHAN_LESSTHAN:if(r=this.compileExpressionRetainType(u,t.intType,0),n=this.currentType,this.currentType.is(256)){if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.BITWISE_SHL)){o=this.compileBinaryOverload(v,u,r,d,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}switch(i=this.compileExpression(d,n,1,0),a=this.currentType,this.currentType.kind){case 0:case 1:case 5:case 6:case 10:case 2:case 7:o=c.createBinary(p.BinaryOp.ShlI32,r,i);break;case 3:case 8:o=c.createBinary(p.BinaryOp.ShlI64,r,i);break;case 9:case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.ShlI64:p.BinaryOp.ShlI32,r,i);break;case 11:case 12:return this.error(l.DiagnosticCode.The_0_operator_cannot_be_applied_to_type_1,e.range,_.operatorTokenToString(e.operator),this.currentType.toString()),c.createUnreachable();default:assert(!1),o=c.createUnreachable()}break;case _.Token.GREATERTHAN_GREATERTHAN_EQUALS:m=!0;case _.Token.GREATERTHAN_GREATERTHAN:if(r=this.compileExpressionRetainType(u,t.intType,0),n=this.currentType,this.currentType.is(256)){if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.BITWISE_SHR)){o=this.compileBinaryOverload(v,u,r,d,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}switch(r=this.ensureSmallIntegerWrap(r,n),i=this.compileExpression(d,n,1,1),a=this.currentType,this.currentType.kind){case 0:case 1:case 2:o=c.createBinary(p.BinaryOp.ShrI32,r,i);break;case 3:o=c.createBinary(p.BinaryOp.ShrI64,r,i);break;case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.ShrI64:p.BinaryOp.ShrI32,r,i);break;case 5:case 6:case 10:case 7:o=c.createBinary(p.BinaryOp.ShrU32,r,i);break;case 8:o=c.createBinary(p.BinaryOp.ShrU64,r,i);break;case 9:o=c.createBinary(this.options.isWasm64?p.BinaryOp.ShrU64:p.BinaryOp.ShrU32,r,i);break;case 11:case 12:return this.error(l.DiagnosticCode.The_0_operator_cannot_be_applied_to_type_1,e.range,_.operatorTokenToString(e.operator),this.currentType.toString()),c.createUnreachable();default:assert(!1),o=c.createUnreachable()}break;case _.Token.GREATERTHAN_GREATERTHAN_GREATERTHAN_EQUALS:m=!0;case _.Token.GREATERTHAN_GREATERTHAN_GREATERTHAN:if(r=this.compileExpressionRetainType(u,t.intType,0),n=this.currentType,this.currentType.is(256)){if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.BITWISE_SHR_U)){o=this.compileBinaryOverload(v,u,r,d,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}switch(r=this.ensureSmallIntegerWrap(r,n),i=this.compileExpression(d,n,1,0),a=this.currentType,this.currentType.kind){case 5:case 6:case 10:o=c.createBinary(p.BinaryOp.ShrU32,r,i);case 0:case 1:case 2:case 7:o=c.createBinary(p.BinaryOp.ShrU32,r,i);break;case 3:case 8:o=c.createBinary(p.BinaryOp.ShrU64,r,i);break;case 9:case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.ShrU64:p.BinaryOp.ShrU32,r,i);break;case 11:case 12:return this.error(l.DiagnosticCode.The_0_operator_cannot_be_applied_to_type_1,e.range,_.operatorTokenToString(e.operator),this.currentType.toString()),c.createUnreachable();default:assert(!1),o=c.createUnreachable()}break;case _.Token.AMPERSAND_EQUALS:m=!0;case _.Token.AMPERSAND:if(r=this.compileExpressionRetainType(u,t.intType,0),n=this.currentType,this.currentType.is(256)){if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.BITWISE_AND)){o=this.compileBinaryOverload(v,u,r,d,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}if(m)i=this.compileExpression(d,n,1,0),a=this.currentType;else{if(i=this.compileExpressionRetainType(d,n,0),a=this.currentType,!(s=y.Type.commonCompatible(n,a,!1)))return this.error(l.DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2,e.range,"&",n.toString(),a.toString()),this.currentType=t,c.createUnreachable();r=this.convertExpression(r,n,n=s,1,0,u),i=this.convertExpression(i,a,a=s,1,0,d)}switch(this.currentType.kind){case 0:case 1:case 2:case 5:case 6:case 10:case 7:o=c.createBinary(p.BinaryOp.AndI32,r,i);break;case 3:case 8:o=c.createBinary(p.BinaryOp.AndI64,r,i);break;case 9:case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.AndI64:p.BinaryOp.AndI32,r,i);break;case 11:case 12:return this.error(l.DiagnosticCode.The_0_operator_cannot_be_applied_to_type_1,e.range,_.operatorTokenToString(e.operator),this.currentType.toString()),c.createUnreachable();default:assert(!1),o=c.createUnreachable()}break;case _.Token.BAR_EQUALS:m=!0;case _.Token.BAR:if(r=this.compileExpressionRetainType(u,t.intType,0),n=this.currentType,this.currentType.is(256)){if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.BITWISE_OR)){o=this.compileBinaryOverload(v,u,r,d,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}if(m)i=this.compileExpression(d,n,1,0),a=this.currentType;else{if(i=this.compileExpressionRetainType(d,n,0),a=this.currentType,!(s=y.Type.commonCompatible(n,a,!1)))return this.error(l.DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2,e.range,"|",n.toString(),a.toString()),this.currentType=t,c.createUnreachable();r=this.convertExpression(r,n,n=s,1,0,u),i=this.convertExpression(i,a,a=s,1,0,d)}switch(this.currentType.kind){case 0:case 1:case 5:case 6:case 10:o=c.createBinary(p.BinaryOp.OrI32,r,i);break;case 2:case 7:o=c.createBinary(p.BinaryOp.OrI32,r,i);break;case 3:case 8:o=c.createBinary(p.BinaryOp.OrI64,r,i);break;case 9:case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.OrI64:p.BinaryOp.OrI32,r,i);break;case 11:case 12:return this.error(l.DiagnosticCode.The_0_operator_cannot_be_applied_to_type_1,e.range,_.operatorTokenToString(e.operator),this.currentType.toString()),c.createUnreachable();default:assert(!1),o=c.createUnreachable()}break;case _.Token.CARET_EQUALS:m=!0;case _.Token.CARET:if(r=this.compileExpressionRetainType(u,t.intType,0),n=this.currentType,this.currentType.is(256)){var I,v;if(I=n.classReference)if(v=I.lookupOverload(h.OperatorKind.BITWISE_XOR)){o=this.compileBinaryOverload(v,u,r,d,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}if(m)i=this.compileExpression(d,n,1,0),a=this.currentType;else{if(i=this.compileExpressionRetainType(d,n,0),a=this.currentType,!(s=y.Type.commonCompatible(n,a,!1)))return this.error(l.DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2,e.range,"^",n.toString(),a.toString()),this.currentType=t,c.createUnreachable();r=this.convertExpression(r,n,n=s,1,0,u),i=this.convertExpression(i,a,a=s,1,0,d)}switch(this.currentType.kind){case 0:case 1:case 5:case 6:case 10:o=c.createBinary(p.BinaryOp.XorI32,r,i);break;case 2:case 7:o=c.createBinary(p.BinaryOp.XorI32,r,i);break;case 3:case 8:o=c.createBinary(p.BinaryOp.XorI64,r,i);break;case 9:case 4:o=c.createBinary(this.options.isWasm64?p.BinaryOp.XorI64:p.BinaryOp.XorI32,r,i);break;case 11:case 12:return this.error(l.DiagnosticCode.The_0_operator_cannot_be_applied_to_type_1,e.range,_.operatorTokenToString(e.operator),this.currentType.toString()),c.createUnreachable();default:assert(!1),o=c.createUnreachable()}break;case _.Token.AMPERSAND_AMPERSAND:if(r=this.compileExpressionRetainType(u,t,0),n=this.currentType,i=this.compileExpression(d,n,1,0),a=this.currentType,o=c.cloneExpression(r,!0,0))this.makeIsTrueish(r,this.currentType),o=c.createIf(this.makeIsTrueish(r,this.currentType),i,o);else{var A=(C=this.currentFlow).getAndFreeTempLocal(this.currentType,!C.canOverflow(r,this.currentType));o=c.createIf(this.makeIsTrueish(c.createTeeLocal(A.index,r),this.currentType),i,c.createGetLocal(assert(A).index,this.currentType.toNativeType()))}break;case _.Token.BAR_BAR:if(r=this.compileExpressionRetainType(u,t,0),n=this.currentType,i=this.compileExpression(d,n,1,0),a=this.currentType,o=this.module.cloneExpression(r,!0,0))o=this.module.createIf(this.makeIsTrueish(r,this.currentType),o,i);else{var C;A=(C=this.currentFlow).getAndFreeTempLocal(this.currentType,!C.canOverflow(r,this.currentType));o=c.createIf(this.makeIsTrueish(c.createTeeLocal(A.index,r),this.currentType),c.createGetLocal(assert(A).index,this.currentType.toNativeType()),i)}break;default:assert(!1),o=this.module.createUnreachable()}return m?this.compileAssignmentWithValue(u,o,t!=y.Type.void):o},t.prototype.compileUnaryOverload=function(e,t,r,n){var i,a=0;return e.is(u.CommonFlags.INSTANCE)?(a=r,i=[]):i=[t],this.compileCallDirect(e,i,n,a)},t.prototype.compileBinaryOverload=function(e,t,r,n,i){var a,s=0;if(e.is(u.CommonFlags.INSTANCE)){var o=assert(e.parent);assert(o.kind==h.ElementKind.CLASS),s=r,a=[n]}else a=[t,n];return this.compileCallDirect(e,a,i,s)},t.prototype.compileAssignment=function(e,t,r){var n,i=this.program.resolver,a=this.currentFlow,s=i.resolveExpression(e,a);if(!s)return this.module.createUnreachable();switch(s.kind){case h.ElementKind.GLOBAL:if(!this.compileGlobal(s))return this.module.createUnreachable();assert(s.type!=y.Type.void);case h.ElementKind.LOCAL:case h.ElementKind.FIELD:n=s.type;break;case h.ElementKind.PROPERTY:var o=s.setterPrototype;if(o){var c=this.resolver.resolveFunction(o,null);if(!c)return this.module.createUnreachable();assert(1==c.signature.parameterTypes.length),n=c.signature.parameterTypes[0];break}return this.error(l.DiagnosticCode.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property,e.range,s.internalName),this.module.createUnreachable();case h.ElementKind.CLASS:if(i.currentElementExpression){var p=a.is(8192),u=s.lookupOverload(h.OperatorKind.INDEXED_SET,p);if(!u)return s.lookupOverload(h.OperatorKind.INDEXED_GET,p)?this.error(l.DiagnosticCode.Index_signature_in_type_0_only_permits_reading,e.range,s.internalName):this.error(l.DiagnosticCode.Index_signature_is_missing_in_type_0,e.range,s.internalName),this.module.createUnreachable();assert(2==u.signature.parameterTypes.length),n=u.signature.parameterTypes[1];break}default:return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()}assert(n!=y.Type.void);var _=this.compileExpression(t,n,1,0);return this.compileAssignmentWithValue(e,_,r!=y.Type.void)},t.prototype.compileAssignmentWithValue=function(e,t,r){void 0===r&&(r=!1);var n=this.module,i=this.currentFlow,a=this.resolver.resolveExpression(e,i);if(!a)return n.createUnreachable();switch(a.kind){case h.ElementKind.LOCAL:var s=a.type;return assert(s!=y.Type.void),this.currentType=r?s:y.Type.void,a.is(u.CommonFlags.CONST)?(this.error(l.DiagnosticCode.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property,e.range,a.internalName),n.createUnreachable()):(s.is(36)&&i.setLocalWrapped(a.index,!i.canOverflow(t,s)),r?n.createTeeLocal(a.index,t):n.createSetLocal(a.index,t));case h.ElementKind.GLOBAL:if(!this.compileGlobal(a))return n.createUnreachable();s=a.type;if(assert(s!=y.Type.void),this.currentType=r?s:y.Type.void,a.is(u.CommonFlags.CONST))return this.error(l.DiagnosticCode.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property,e.range,a.internalName),n.createUnreachable();if(t=this.ensureSmallIntegerWrap(t,s),r){var o=s.toNativeType(),c=a.internalName;return n.createBlock(null,[n.createSetGlobal(c,t),n.createGetGlobal(c,o)],o)}return n.createSetGlobal(a.internalName,t);case h.ElementKind.FIELD:var p=a.declaration;if(a.is(u.CommonFlags.READONLY)&&!i.actualFunction.is(u.CommonFlags.CONSTRUCTOR)&&null!=p&&null==p.initializer)return this.error(l.DiagnosticCode.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property,e.range,a.internalName),n.createUnreachable();var _=assert(this.resolver.currentThisExpression),d=this.compileExpressionRetainType(_,this.options.usizeType,0);s=a.type;this.currentType=r?s:y.Type.void;o=s.toNativeType();if(10==s.kind&&(t=this.ensureSmallIntegerWrap(t,s)),r){var m=this.currentFlow,g=m.getAndFreeTempLocal(s,!m.canOverflow(t,s)).index;return n.createBlock(null,[n.createSetLocal(g,t),n.createStore(s.byteSize,d,n.createGetLocal(g,o),o,a.memoryOffset),n.createGetLocal(g,o)],o)}return n.createStore(s.byteSize,d,t,o,a.memoryOffset);case h.ElementKind.PROPERTY:var T=a.setterPrototype;if(T){var E=this.resolver.resolveFunction(T,null);if(!E)return n.createUnreachable();if(!r){if(E.is(u.CommonFlags.INSTANCE)){_=assert(this.resolver.currentThisExpression),d=this.compileExpressionRetainType(_,this.options.usizeType,0);return this.makeCallDirect(E,[d,t])}return this.makeCallDirect(E,[t])}var f=a.getterPrototype;assert(null!=f);var I=this.resolver.resolveFunction(f,null);if(!I)return n.createUnreachable();var v=(k=I.signature.returnType).toNativeType();if(E.is(u.CommonFlags.INSTANCE)){_=assert(this.resolver.currentThisExpression),d=this.compileExpressionRetainType(_,this.options.usizeType,0),g=i.getAndFreeTempLocal(k,!1).index;return n.createBlock(null,[this.makeCallDirect(E,[n.createTeeLocal(g,d),t]),this.makeCallDirect(I,[n.createGetLocal(g,v)])],v)}return n.createBlock(null,[this.makeCallDirect(E,[t]),this.makeCallDirect(I)],v)}return this.error(l.DiagnosticCode.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property,e.range,a.internalName),n.createUnreachable();case h.ElementKind.CLASS:var A=this.resolver.currentElementExpression;if(A){var C=i.is(8192),S=a.lookupOverload(h.OperatorKind.INDEXED_GET,C);if(!S)return this.error(l.DiagnosticCode.Index_signature_is_missing_in_type_0,e.range,a.internalName),n.createUnreachable();var N=a.lookupOverload(h.OperatorKind.INDEXED_SET,C);if(!N)return this.error(l.DiagnosticCode.Index_signature_in_type_0_only_permits_reading,e.range,a.internalName),this.currentType=r?S.signature.returnType:y.Type.void,n.createUnreachable();var O=a.type,x=(_=assert(this.resolver.currentThisExpression),d=this.compileExpressionRetainType(_,this.options.usizeType,0),this.compileExpression(A,y.Type.i32,1,0));if(r){var b=i.getTempLocal(O,!1),L=i.getAndFreeTempLocal(this.currentType,!1),k=S.signature.returnType;return i.freeTempLocal(b),n.createBlock(null,[this.makeCallDirect(N,[n.createTeeLocal(b.index,d),n.createTeeLocal(L.index,x),t]),this.makeCallDirect(S,[n.createGetLocal(b.index,b.type.toNativeType()),n.createGetLocal(L.index,L.type.toNativeType())])],k.toNativeType())}return this.makeCallDirect(N,[d,x,t])}}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),n.createUnreachable()},t.prototype.compileCallExpression=function(e,t){var r=this.module,n=this.currentFlow;if(e.expression.kind==d.NodeKind.SUPER){var i=this.currentFlow,a=i.actualFunction;if(!a.is(u.CommonFlags.CONSTRUCTOR))return this.error(l.DiagnosticCode.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors,e.range),r.createUnreachable();var s=assert(a.parent);assert(s.kind==h.ElementKind.CLASS);var o=assert(s.base),c=assert(i.lookupLocal("this")),_=this.options.nativeSizeType,g=[r.createSetLocal(c.index,this.compileCallDirect(this.ensureConstructor(o,e),e.arguments,e,r.createIf(r.createGetLocal(c.index,_),r.createGetLocal(c.index,_),this.makeAllocation(s))))];return this.makeFieldInitialization(s,g),i.isAny(2080)?(this.error(l.DiagnosticCode._super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class,e.range),r.createUnreachable()):(i.set(96),this.currentType=y.Type.void,r.createBlock(null,g))}var T,E,f=this.resolver.resolveExpression(e.expression,n);if(!f)return r.createUnreachable();switch(f.kind){case h.ElementKind.FUNCTION_PROTOTYPE:var I=f,v=e.typeArguments;if(I.hasDecorator(h.DecoratorFlags.BUILTIN))return this.compileCallExpressionBuiltin(I,e,t);var A=null;if(v){if(!I.is(u.CommonFlags.GENERIC))return this.error(l.DiagnosticCode.Type_0_is_not_generic,e.expression.range,I.internalName),r.createUnreachable();A=this.resolver.resolveFunctionInclTypeArguments(I,v,m.makeMap(n.contextualTypeArguments),e)}else{if(I.is(u.CommonFlags.GENERIC)){for(var C=new Map,S=assert(I.declaration.typeParameters),N=S.length,O=0;Os&&!i)||(this.error(l.DiagnosticCode.Expected_0_arguments_but_got_1,n.range,s.toString(),t.toString()),!1)},t.prototype.compileCallDirect=function(e,t,r,n){void 0===n&&(n=0);var i=t.length,a=e.signature;if(!this.checkCallSignature(a,i,0!=n,r))return this.module.createUnreachable();if(e.hasDecorator(h.DecoratorFlags.INLINE)){if(assert(!e.is(u.CommonFlags.TRAMPOLINE)),!this.currentInlineFunctions.includes(e)){this.currentInlineFunctions.push(e);var s=this.compileCallInlinePrechecked(e,t,n);return this.currentInlineFunctions.pop(),s}this.warning(l.DiagnosticCode.Function_0_cannot_be_inlined_into_itself,r.range,e.internalName)}var o=n?i+1:i,c=new Array(o),p=0;n&&(c[0]=n,p=1);for(var _=a.parameterTypes,d=0;d=i);var o=this.module;if(!this.compileFunction(e))return o.createUnreachable();var c=e.signature.returnType,l=e.is(u.CommonFlags.MODULE_IMPORT);if(r=a),this.ensureFunctionType(e.parameterTypes,e.returnType,e.thisType);var c=this.module;if(n=0),this.currentType=N,this.module.createGetLocal(O,N.toNativeType());case h.ElementKind.GLOBAL:if(!this.compileGlobal(S))return this.module.createUnreachable();var x=S.type;return assert(x!=y.Type.void),S.is(u.CommonFlags.INLINED)?this.compileInlineConstant(S,t,r):(this.currentType=x,this.module.createGetGlobal(S.internalName,x.toNativeType()));case h.ElementKind.ENUMVALUE:return S.is(u.CommonFlags.COMPILED)?(this.currentType=y.Type.i32,S.is(u.CommonFlags.INLINED)?this.module.createI32(S.constantValue):this.module.createGetGlobal(S.internalName,p.NativeType.I32)):(this.error(l.DiagnosticCode.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums,e.range),this.currentType=y.Type.i32,this.module.createUnreachable());case h.ElementKind.FUNCTION_PROTOTYPE:var b=this.resolver.resolveFunction(S,null,m.makeMap(i.contextualTypeArguments));if(!b||!this.compileFunction(b))return n.createUnreachable();var L=this.ensureFunctionTableEntry(b);return this.currentType=b.signature.type,this.module.createI32(L)}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.module.createUnreachable()},t.prototype.compileInstanceOfExpression=function(e,t){var r=this.module,n=this.compileExpressionRetainType(e.expression,this.options.usizeType,0),i=this.currentType,a=this.resolver.resolveType(e.isType);return this.currentType=y.Type.bool,a?i.is(512)&&!a.is(512)?i.nonNullableType.isAssignableTo(a)?r.createBinary(i.is(64)?p.BinaryOp.NeI64:p.BinaryOp.NeI32,n,i.toNativeZero(r)):r.createI32(0):r.createI32(i.isAssignableTo(a,!0)?1:0):r.createUnreachable()},t.prototype.compileLiteralExpression=function(e,t,r){void 0===r&&(r=!1);var n=this.module;switch(e.literalKind){case d.LiteralKind.ARRAY:assert(!r);var i=t.classReference;return i&&i.prototype==this.program.arrayPrototype?this.compileArrayLiteral(assert(i.typeArguments)[0],e.elementExpressions,!1,e):(this.error(l.DiagnosticCode.Operation_not_supported,e.range),n.createUnreachable());case d.LiteralKind.FLOAT:var a=e.value;return r&&(a=-a),t==y.Type.f32?n.createF32(a):(this.currentType=y.Type.f64,n.createF64(a));case d.LiteralKind.INTEGER:var s=e.value;r&&(s=i64_sub(i64_new(0),s));var o=this.resolver.determineIntegerLiteralType(s,t);switch(this.currentType=o,o.kind){case 4:if(!this.options.isWasm64)return n.createI32(i64_low(s));case 3:return n.createI64(i64_low(s),i64_high(s));case 9:if(!this.options.isWasm64)return n.createI32(i64_low(s));case 8:return n.createI64(i64_low(s),i64_high(s));case 11:return n.createF32(i64_to_f32(s));case 12:return n.createF64(i64_to_f64(s));default:return n.createI32(i64_low(s))}case d.LiteralKind.STRING:return assert(!r),this.compileStringLiteral(e);case d.LiteralKind.OBJECT:return assert(!r),this.compileObjectLiteral(e,t)}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),this.currentType=t,n.createUnreachable()},t.prototype.ensureStaticString=function(e){var t,r=this.program,n=r.hasGC,i=r.gcHeaderSize,a=assert(r.stringInstance),s=this.stringSegments;if(s.has(e))t=s.get(e);else{var o=e.length,l=a.currentMemoryOffset+1&-2,p=l+2*o,u=void 0,h=void 0;n?(u=new Uint8Array(i+p),h=i,m.writeI32(c.ensureGCHook(this,a),u,r.gcHookOffset)):(u=new Uint8Array(p),h=0),m.writeI32(o,u,h+a.offsetof("length")),h+=l;for(var _=0;_",t.toString()),r.createUnreachable();var i=n.constructorInstance;if(i){if(i.signature.requiredParameters)return this.error(l.DiagnosticCode.Constructor_of_class_0_must_not_require_any_arguments,e.range,n.toString()),r.createUnreachable();if(i.is(u.CommonFlags.PRIVATE))return this.error(l.DiagnosticCode.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration,e.range,n.toString()),r.createUnreachable();if(i.is(u.CommonFlags.PROTECTED))return this.error(l.DiagnosticCode.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration,e.range,n.toString()),r.createUnreachable()}var a=e.names,s=a.length,o=e.values,c=n.members,p=!1,_=new Array(s+2),d=this.currentFlow.getTempLocal(this.options.usizeType);assert(s==o.length);for(var y=0,m=s;yv)for(T=v;T=0);var _=this.compileExpressionRetainType(c,this.options.usizeType,0);return this.currentType=a.type,n.createLoad(a.type.byteSize,a.type.is(5),_,a.type.toNativeType(),a.memoryOffset);case h.ElementKind.PROPERTY:return this.compileGetter(a,e);case h.ElementKind.FUNCTION_PROTOTYPE:return this.error(l.DiagnosticCode.Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set,e.range,a.simpleName),n.createUnreachable()}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),n.createUnreachable()},t.prototype.compileGetter=function(e,t){var r=e.getterPrototype;if(r){var n=this.resolver.resolveFunction(r,null);if(!n)return this.module.createUnreachable();var i=n.signature;if(!this.checkCallSignature(i,0,n.is(u.CommonFlags.INSTANCE),t))return this.module.createUnreachable();if(n.is(u.CommonFlags.INSTANCE)){var a=assert(n.parent);assert(a.kind==h.ElementKind.CLASS);var s=assert(this.resolver.currentThisExpression),o=this.compileExpressionRetainType(s,this.options.usizeType,0);//!!! -return this.currentType=i.returnType,this.compileCallDirect(n,[],t,o)}return this.currentType=i.returnType,this.compileCallDirect(n,[],t,0)}return this.error(l.DiagnosticCode.Property_0_does_not_exist_on_type_1,t.range,e.simpleName,e.parent.toString()),this.module.createUnreachable()},t.prototype.compileTernaryExpression=function(e,t){var r=e.ifThen,n=e.ifElse,i=this.currentFlow,a=this.makeIsTrueish(this.compileExpressionRetainType(e.condition,y.Type.bool,0),this.currentType);if(!this.options.noTreeShaking||i.actualFunction.isAny(u.CommonFlags.GENERIC|u.CommonFlags.GENERIC_CONTEXT)){var s=this.module.precomputeExpression(a);if(p.getExpressionId(s)==p.ExpressionId.Const&&p.getExpressionType(s)==p.NativeType.I32)return p.getConstValueI32(s)?this.compileExpressionRetainType(r,t,0):this.compileExpressionRetainType(n,t,0);a=this.makeIsTrueish(this.compileExpressionRetainType(e.condition,y.Type.bool,0),this.currentType)}var o=i.fork();this.currentFlow=o;var c=this.compileExpressionRetainType(r,t,0),h=this.currentType;o.freeScopedLocals();var _=i.fork();this.currentFlow=_;var d=this.compileExpressionRetainType(n,t,0),m=this.currentType;_.freeScopedLocals(),this.currentFlow=i,i.inheritMutual(o,_);var g=y.Type.commonCompatible(h,m,!1);return g?(c=this.convertExpression(c,h,g,1,0,r),d=this.convertExpression(d,m,g,1,0,n),this.currentType=g,this.module.createIf(a,c,d)):(this.error(l.DiagnosticCode.Type_0_is_not_assignable_to_type_1,e.range,h.toString(),m.toString()),this.currentType=t,this.module.createUnreachable())},t.prototype.compileUnaryPostfixExpression=function(e,t){var r=this.module,n=this.currentFlow,i=this.compileExpression(e.operand,t==y.Type.void?y.Type.i32:t,0,0);if(p.getExpressionId(i)==p.ExpressionId.Unreachable)return i;var a,s=this.currentType,o=null;switch(t!=y.Type.void&&(o=n.getTempLocal(s,!1),i=r.createTeeLocal(o.index,i)),e.operator){case _.Token.PLUS_PLUS:switch(s.kind){case 0:case 1:case 2:case 5:case 6:case 7:case 10:a=r.createBinary(p.BinaryOp.AddI32,i,r.createI32(1));break;case 9:if(this.currentType.is(256)){if(u=this.currentType.classReference)if(d=u.lookupOverload(h.OperatorKind.POSTFIX_INC)){a=this.compileUnaryOverload(d,e.operand,i,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),r.createUnreachable()}case 4:var c=this.options;a=r.createBinary(c.isWasm64?p.BinaryOp.AddI64:p.BinaryOp.AddI32,i,s.toNativeOne(r));break;case 3:case 8:a=r.createBinary(p.BinaryOp.AddI64,i,r.createI64(1));break;case 11:a=r.createBinary(p.BinaryOp.AddF32,i,r.createF32(1));break;case 12:a=r.createBinary(p.BinaryOp.AddF64,i,r.createF64(1));break;default:return assert(!1),r.createUnreachable()}break;case _.Token.MINUS_MINUS:switch(s.kind){case 0:case 1:case 2:case 5:case 6:case 7:case 10:a=r.createBinary(p.BinaryOp.SubI32,i,r.createI32(1));break;case 9:if(this.currentType.is(256)){var u,d;if(u=this.currentType.classReference)if(d=u.lookupOverload(h.OperatorKind.POSTFIX_DEC)){a=this.compileUnaryOverload(d,e.operand,i,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),r.createUnreachable()}case 4:c=this.options;a=r.createBinary(c.isWasm64?p.BinaryOp.SubI64:p.BinaryOp.SubI32,i,s.toNativeOne(r));break;case 3:case 8:a=r.createBinary(p.BinaryOp.SubI64,i,r.createI64(1));break;case 11:a=r.createBinary(p.BinaryOp.SubF32,i,r.createF32(1));break;case 12:a=r.createBinary(p.BinaryOp.SubF64,i,r.createF64(1));break;default:return assert(!1),r.createUnreachable()}break;default:return assert(!1),r.createUnreachable()}if(!o)return this.currentType=y.Type.void,this.compileAssignmentWithValue(e.operand,a,!1);var m=this.compileAssignmentWithValue(e.operand,a,!1);this.currentType=o.type,n.freeTempLocal(o);var g=o.type.toNativeType();return r.createBlock(null,[m,r.createGetLocal(o.index,g)],g)},t.prototype.compileUnaryPrefixExpression=function(e,t){var r,n=this.module,i=!1;switch(e.operator){case _.Token.PLUS:if(r=this.compileExpression(e.operand,t==y.Type.void?y.Type.i32:t,0,0),this.currentType.is(256)){if(a=this.currentType.classReference)if(s=a.lookupOverload(h.OperatorKind.PLUS)){r=this.compileUnaryOverload(s,e.operand,r,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),n.createUnreachable()}break;case _.Token.MINUS:if(e.operand.kind==d.NodeKind.LITERAL&&(e.operand.literalKind==d.LiteralKind.INTEGER||e.operand.literalKind==d.LiteralKind.FLOAT)){r=this.compileLiteralExpression(e.operand,t,!0),this.options.sourceMap&&this.addDebugLocation(r,e.range);break}if(r=this.compileExpression(e.operand,t==y.Type.void?y.Type.i32:t,0,0),this.currentType.is(256)){if(a=this.currentType.classReference)if(s=a.lookupOverload(h.OperatorKind.MINUS)){r=this.compileUnaryOverload(s,e.operand,r,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),n.createUnreachable()}switch(this.currentType.kind){case 0:case 1:case 2:case 5:case 6:case 7:case 10:r=n.createBinary(p.BinaryOp.SubI32,n.createI32(0),r);break;case 9:case 4:r=n.createBinary(this.options.isWasm64?p.BinaryOp.SubI64:p.BinaryOp.SubI32,this.currentType.toNativeZero(n),r);break;case 3:case 8:r=n.createBinary(p.BinaryOp.SubI64,n.createI64(0),r);break;case 11:r=n.createUnary(p.UnaryOp.NegF32,r);break;case 12:r=n.createUnary(p.UnaryOp.NegF64,r);break;default:assert(!1),r=n.createUnreachable()}break;case _.Token.PLUS_PLUS:if(i=!0,r=this.compileExpression(e.operand,t==y.Type.void?y.Type.i32:t,0,0),this.currentType.is(256)){if(a=this.currentType.classReference)if(s=a.lookupOverload(h.OperatorKind.PREFIX_INC)){r=this.compileUnaryOverload(s,e.operand,r,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),n.createUnreachable()}switch(this.currentType.kind){case 0:case 1:case 2:case 5:case 6:case 7:case 10:r=n.createBinary(p.BinaryOp.AddI32,r,this.module.createI32(1));break;case 9:case 4:r=n.createBinary(this.options.isWasm64?p.BinaryOp.AddI64:p.BinaryOp.AddI32,r,this.currentType.toNativeOne(n));break;case 3:case 8:r=n.createBinary(p.BinaryOp.AddI64,r,n.createI64(1));break;case 11:r=n.createBinary(p.BinaryOp.AddF32,r,n.createF32(1));break;case 12:r=n.createBinary(p.BinaryOp.AddF64,r,n.createF64(1));break;default:assert(!1),r=n.createUnreachable()}break;case _.Token.MINUS_MINUS:if(i=!0,r=this.compileExpression(e.operand,t==y.Type.void?y.Type.i32:t,0,0),this.currentType.is(256)){if(a=this.currentType.classReference)if(s=a.lookupOverload(h.OperatorKind.PREFIX_DEC)){r=this.compileUnaryOverload(s,e.operand,r,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),n.createUnreachable()}switch(this.currentType.kind){case 0:case 1:case 2:case 5:case 6:case 7:case 10:r=n.createBinary(p.BinaryOp.SubI32,r,n.createI32(1));break;case 9:case 4:r=n.createBinary(this.options.isWasm64?p.BinaryOp.SubI64:p.BinaryOp.SubI32,r,this.currentType.toNativeOne(n));break;case 3:case 8:r=n.createBinary(p.BinaryOp.SubI64,r,n.createI64(1));break;case 11:r=n.createBinary(p.BinaryOp.SubF32,r,n.createF32(1));break;case 12:r=n.createBinary(p.BinaryOp.SubF64,r,n.createF64(1));break;default:assert(!1),r=n.createUnreachable()}break;case _.Token.EXCLAMATION:if(r=this.compileExpression(e.operand,t==y.Type.void?y.Type.i32:t,0,0),this.currentType.is(256))if(a=this.currentType.classReference)if(s=a.lookupOverload(h.OperatorKind.NOT)){r=this.compileUnaryOverload(s,e.operand,r,e);break}r=this.makeIsFalseish(r,this.currentType),this.currentType=y.Type.bool;break;case _.Token.TILDE:if(r=this.compileExpression(e.operand,t==y.Type.void?y.Type.i32:t.is(8)?y.Type.i64:t,0,0),this.currentType.is(256)){var a,s;if(a=this.currentType.classReference)if(s=a.lookupOverload(h.OperatorKind.BITWISE_NOT)){r=this.compileUnaryOverload(s,e.operand,r,e);break}return this.error(l.DiagnosticCode.Operation_not_supported,e.range),n.createUnreachable()}switch(r=this.convertExpression(r,this.currentType,this.currentType.intType,1,0,e.operand),this.currentType.kind){case 0:case 1:case 2:case 5:case 6:case 7:case 10:r=n.createBinary(p.BinaryOp.XorI32,r,n.createI32(-1));break;case 9:case 4:r=n.createBinary(this.options.isWasm64?p.BinaryOp.XorI64:p.BinaryOp.XorI32,r,this.currentType.toNativeNegOne(n));break;case 3:case 8:r=n.createBinary(p.BinaryOp.XorI64,r,n.createI64(-1,-1));break;default:assert(!1),r=n.createUnreachable()}break;case _.Token.TYPEOF:return this.error(l.DiagnosticCode.Operation_not_supported,e.range),n.createUnreachable();default:return assert(!1),n.createUnreachable()}return i?this.compileAssignmentWithValue(e.operand,r,t!=y.Type.void):r},t.prototype.ensureSmallIntegerWrap=function(e,t){var r=this.module,n=this.currentFlow;switch(t.kind){case 0:n.canOverflow(e,t)&&(e=this.options.hasFeature(1)?r.createUnary(p.UnaryOp.ExtendI8ToI32,e):r.createBinary(p.BinaryOp.ShrI32,r.createBinary(p.BinaryOp.ShlI32,e,r.createI32(24)),r.createI32(24)));break;case 1:n.canOverflow(e,t)&&(e=this.options.hasFeature(1)?r.createUnary(p.UnaryOp.ExtendI16ToI32,e):r.createBinary(p.BinaryOp.ShrI32,r.createBinary(p.BinaryOp.ShlI32,e,r.createI32(16)),r.createI32(16)));break;case 5:n.canOverflow(e,t)&&(e=r.createBinary(p.BinaryOp.AndI32,e,r.createI32(255)));break;case 6:n.canOverflow(e,t)&&(e=r.createBinary(p.BinaryOp.AndI32,e,r.createI32(65535)));break;case 10:n.canOverflow(e,t)&&(e=r.createBinary(p.BinaryOp.NeI32,e,r.createI32(0)))}return e},t.prototype.makeIsFalseish=function(e,t){var r=this.module;switch(t.kind){case 0:case 1:case 5:case 6:case 10:e=this.ensureSmallIntegerWrap(e,t);case 2:case 7:return r.createUnary(p.UnaryOp.EqzI32,e);case 3:case 8:return r.createUnary(p.UnaryOp.EqzI64,e);case 9:case 4:return r.createUnary(64==t.size?p.UnaryOp.EqzI64:p.UnaryOp.EqzI32,e);case 11:return r.createBinary(p.BinaryOp.EqF32,e,r.createF32(0));case 12:return r.createBinary(p.BinaryOp.EqF64,e,r.createF64(0));default:return assert(!1),r.createI32(1)}},t.prototype.makeIsTrueish=function(e,t){var r=this.module;switch(t.kind){case 0:case 1:case 5:case 6:case 10:e=this.ensureSmallIntegerWrap(e,t);case 2:case 7:return e;case 3:case 8:return r.createBinary(p.BinaryOp.NeI64,e,r.createI64(0));case 9:case 4:return 64==t.size?r.createBinary(p.BinaryOp.NeI64,e,r.createI64(0)):e;case 11:return r.createBinary(p.BinaryOp.NeF32,e,r.createF32(0));case 12:return r.createBinary(p.BinaryOp.NeF64,e,r.createF64(0));default:return assert(!1),r.createI32(0)}},t.prototype.makeAllocation=function(e){var t=this.program;assert(e.program==t);var r=this.module,n=this.options;if(t.hasGC&&e.type.isManaged(t)){var i=assert(t.gcAllocateInstance);return this.compileFunction(i)?(this.currentType=e.type,r.createCall(i.internalName,[n.isWasm64?r.createI64(e.currentMemoryOffset):r.createI32(e.currentMemoryOffset),r.createI32(c.ensureGCHook(this,e))],n.nativeSizeType)):r.createUnreachable()}return(i=t.memoryAllocateInstance)&&this.compileFunction(i)?(this.currentType=e.type,r.createCall(i.internalName,[n.isWasm64?r.createI64(e.currentMemoryOffset):r.createI32(e.currentMemoryOffset)],n.nativeSizeType)):r.createUnreachable()},t.prototype.makeFieldInitialization=function(e,t){var r,n;void 0===t&&(t=[]);var i=e.members;if(!i)return[];var s=this.module,o=this.currentFlow,c=o.is(4096),l=c?assert(o.lookupLocal("this")).index:0,p=this.options.nativeSizeType;try{for(var _=a(i.values()),d=_.next();!d.done;d=_.next()){var y=d.value;if(y.kind==h.ElementKind.FIELD&&y.parent==e){var m=y;assert(!m.isAny(u.CommonFlags.CONST));var g=m.type,T=g.toNativeType(),E=m.prototype.declaration,f=E.initializer;if(f)t.push(s.createStore(g.byteSize,s.createGetLocal(l,p),this.compileExpression(f,g,1,0),T,m.memoryOffset));else{var I=E.parameterIndex;t.push(s.createStore(g.byteSize,s.createGetLocal(l,p),I>=0?s.createGetLocal(c?assert(o.lookupLocal(m.simpleName)).index:1+I,T):g.toNativeZero(s),T,m.memoryOffset))}}}}catch(e){r={error:e}}finally{try{d&&!d.done&&(n=_.return)&&n.call(_)}finally{if(r)throw r.error}}return t},t.prototype.addDebugLocation=function(e,t){var r=this.currentFlow.parentFunction,n=t.source;n.debugInfoIndex<0&&(n.debugInfoIndex=this.module.addDebugInfoFile(n.normalizedPath)),t.debugInfoRef=e,r.debugLocations.push(t)},t}(l.DiagnosticEmitter);function I(e,t){if(T=t.range.source.simplePath,E=t.programLevelInternalName,e.hasDecorator(h.DecoratorFlags.EXTERNAL)){var r=e.program,n=assert(d.findDecorator(d.DecoratorKind.EXTERNAL,t.decorators)),i=n.arguments;if(i&&i.length){var a=i[0];a.kind==d.NodeKind.LITERAL&&a.literalKind==d.LiteralKind.STRING?(E=a.value,i.length>=2&&((a=i[1]).kind==d.NodeKind.LITERAL&&a.literalKind==d.LiteralKind.STRING?(T=E,E=a.value,i.length>2&&r.error(l.DiagnosticCode.Expected_0_arguments_but_got_1,n.range,"2",i.length.toString())):r.error(l.DiagnosticCode.String_literal_expected,a.range))):r.error(l.DiagnosticCode.String_literal_expected,a.range)}else r.error(l.DiagnosticCode.Expected_at_least_0_arguments_but_got_1,n.range,"1","0")}}t.Compiler=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Operation_not_supported=100]="Operation_not_supported",e[e.Operation_is_unsafe=101]="Operation_is_unsafe",e[e.User_defined_0=102]="User_defined_0",e[e.Conversion_from_type_0_to_1_requires_an_explicit_cast=200]="Conversion_from_type_0_to_1_requires_an_explicit_cast",e[e.Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit=201]="Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit",e[e.Type_0_cannot_be_changed_to_type_1=202]="Type_0_cannot_be_changed_to_type_1",e[e.Type_0_cannot_be_reinterpreted_as_type_1=203]="Type_0_cannot_be_reinterpreted_as_type_1",e[e.Basic_type_0_cannot_be_nullable=204]="Basic_type_0_cannot_be_nullable",e[e.Cannot_export_a_mutable_global=205]="Cannot_export_a_mutable_global",e[e.Compiling_constant_with_non_constant_initializer_as_mutable=206]="Compiling_constant_with_non_constant_initializer_as_mutable",e[e.Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa=207]="Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa",e[e.Unmanaged_classes_cannot_implement_interfaces=208]="Unmanaged_classes_cannot_implement_interfaces",e[e.Invalid_regular_expression_flags=209]="Invalid_regular_expression_flags",e[e.Implementation_0_must_match_the_signature_1=210]="Implementation_0_must_match_the_signature_1",e[e.Class_0_is_sealed_and_cannot_be_extended=211]="Class_0_is_sealed_and_cannot_be_extended",e[e.Decorator_0_is_not_valid_here=212]="Decorator_0_is_not_valid_here",e[e.Duplicate_decorator=213]="Duplicate_decorator",e[e.An_allocator_must_be_declared_to_allocate_memory_Try_importing_allocator_arena_or_allocator_tlsf=214]="An_allocator_must_be_declared_to_allocate_memory_Try_importing_allocator_arena_or_allocator_tlsf",e[e.Optional_parameter_must_have_an_initializer=215]="Optional_parameter_must_have_an_initializer",e[e.Constructor_of_class_0_must_not_require_any_arguments=216]="Constructor_of_class_0_must_not_require_any_arguments",e[e.Function_0_cannot_be_inlined_into_itself=217]="Function_0_cannot_be_inlined_into_itself",e[e.Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set=218]="Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set",e[e.Optional_properties_are_not_supported=219]="Optional_properties_are_not_supported",e[e.Expression_must_be_a_compile_time_constant=220]="Expression_must_be_a_compile_time_constant",e[e.Unterminated_string_literal=1002]="Unterminated_string_literal",e[e.Identifier_expected=1003]="Identifier_expected",e[e._0_expected=1005]="_0_expected",e[e.A_file_cannot_have_a_reference_to_itself=1006]="A_file_cannot_have_a_reference_to_itself",e[e.Trailing_comma_not_allowed=1009]="Trailing_comma_not_allowed",e[e.Unexpected_token=1012]="Unexpected_token",e[e.A_rest_parameter_must_be_last_in_a_parameter_list=1014]="A_rest_parameter_must_be_last_in_a_parameter_list",e[e.Parameter_cannot_have_question_mark_and_initializer=1015]="Parameter_cannot_have_question_mark_and_initializer",e[e.A_required_parameter_cannot_follow_an_optional_parameter=1016]="A_required_parameter_cannot_follow_an_optional_parameter",e[e.Statements_are_not_allowed_in_ambient_contexts=1036]="Statements_are_not_allowed_in_ambient_contexts",e[e.Initializers_are_not_allowed_in_ambient_contexts=1039]="Initializers_are_not_allowed_in_ambient_contexts",e[e._0_modifier_cannot_be_used_here=1042]="_0_modifier_cannot_be_used_here",e[e.A_rest_parameter_cannot_be_optional=1047]="A_rest_parameter_cannot_be_optional",e[e.A_rest_parameter_cannot_have_an_initializer=1048]="A_rest_parameter_cannot_have_an_initializer",e[e.A_set_accessor_must_have_exactly_one_parameter=1049]="A_set_accessor_must_have_exactly_one_parameter",e[e.A_set_accessor_parameter_cannot_have_an_initializer=1052]="A_set_accessor_parameter_cannot_have_an_initializer",e[e.A_get_accessor_cannot_have_parameters=1054]="A_get_accessor_cannot_have_parameters",e[e.Enum_member_must_have_initializer=1061]="Enum_member_must_have_initializer",e[e.Type_parameters_cannot_appear_on_a_constructor_declaration=1092]="Type_parameters_cannot_appear_on_a_constructor_declaration",e[e.Type_annotation_cannot_appear_on_a_constructor_declaration=1093]="Type_annotation_cannot_appear_on_a_constructor_declaration",e[e.An_accessor_cannot_have_type_parameters=1094]="An_accessor_cannot_have_type_parameters",e[e.A_set_accessor_cannot_have_a_return_type_annotation=1095]="A_set_accessor_cannot_have_a_return_type_annotation",e[e.Type_parameter_list_cannot_be_empty=1098]="Type_parameter_list_cannot_be_empty",e[e.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement=1104]="A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement",e[e.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement=1105]="A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement",e[e.A_return_statement_can_only_be_used_within_a_function_body=1108]="A_return_statement_can_only_be_used_within_a_function_body",e[e.Expression_expected=1109]="Expression_expected",e[e.Type_expected=1110]="Type_expected",e[e.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement=1113]="A_default_clause_cannot_appear_more_than_once_in_a_switch_statement",e[e.Duplicate_label_0=1114]="Duplicate_label_0",e[e.Octal_literals_are_not_allowed_in_strict_mode=1121]="Octal_literals_are_not_allowed_in_strict_mode",e[e.Digit_expected=1124]="Digit_expected",e[e.Hexadecimal_digit_expected=1125]="Hexadecimal_digit_expected",e[e.Unexpected_end_of_text=1126]="Unexpected_end_of_text",e[e.Invalid_character=1127]="Invalid_character",e[e._case_or_default_expected=1130]="_case_or_default_expected",e[e._super_must_be_followed_by_an_argument_list_or_member_access=1034]="_super_must_be_followed_by_an_argument_list_or_member_access",e[e.A_declare_modifier_cannot_be_used_in_an_already_ambient_context=1038]="A_declare_modifier_cannot_be_used_in_an_already_ambient_context",e[e.Type_argument_expected=1140]="Type_argument_expected",e[e.String_literal_expected=1141]="String_literal_expected",e[e.Line_break_not_permitted_here=1142]="Line_break_not_permitted_here",e[e.Declaration_expected=1146]="Declaration_expected",e[e._const_declarations_must_be_initialized=1155]="_const_declarations_must_be_initialized",e[e.Unterminated_regular_expression_literal=1161]="Unterminated_regular_expression_literal",e[e.Interface_declaration_cannot_have_implements_clause=1176]="Interface_declaration_cannot_have_implements_clause",e[e.Binary_digit_expected=1177]="Binary_digit_expected",e[e.Octal_digit_expected=1178]="Octal_digit_expected",e[e.An_implementation_cannot_be_declared_in_ambient_contexts=1183]="An_implementation_cannot_be_declared_in_ambient_contexts",e[e.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive=1198]="An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive",e[e.Unterminated_Unicode_escape_sequence=1199]="Unterminated_Unicode_escape_sequence",e[e.Decorators_are_not_valid_here=1206]="Decorators_are_not_valid_here",e[e._abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration=1242]="_abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration",e[e.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract=1245]="Method_0_cannot_have_an_implementation_because_it_is_marked_abstract",e[e.A_definite_assignment_assertion_is_not_permitted_in_this_context=1255]="A_definite_assignment_assertion_is_not_permitted_in_this_context",e[e.A_class_may_only_extend_another_class=1311]="A_class_may_only_extend_another_class",e[e.A_parameter_property_cannot_be_declared_using_a_rest_parameter=1317]="A_parameter_property_cannot_be_declared_using_a_rest_parameter",e[e.Duplicate_identifier_0=2300]="Duplicate_identifier_0",e[e.Cannot_find_name_0=2304]="Cannot_find_name_0",e[e.Module_0_has_no_exported_member_1=2305]="Module_0_has_no_exported_member_1",e[e.Generic_type_0_requires_1_type_argument_s=2314]="Generic_type_0_requires_1_type_argument_s",e[e.Type_0_is_not_generic=2315]="Type_0_is_not_generic",e[e.Type_0_is_not_assignable_to_type_1=2322]="Type_0_is_not_assignable_to_type_1",e[e.Index_signature_is_missing_in_type_0=2329]="Index_signature_is_missing_in_type_0",e[e._this_cannot_be_referenced_in_current_location=2332]="_this_cannot_be_referenced_in_current_location",e[e._super_can_only_be_referenced_in_a_derived_class=2335]="_super_can_only_be_referenced_in_a_derived_class",e[e.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors=2337]="Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors",e[e.Property_0_does_not_exist_on_type_1=2339]="Property_0_does_not_exist_on_type_1",e[e.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures=2349]="Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures",e[e.Cannot_use_new_with_an_expression_whose_type_lacks_a_construct_signature=2351]="Cannot_use_new_with_an_expression_whose_type_lacks_a_construct_signature",e[e.A_function_whose_declared_type_is_not_void_must_return_a_value=2355]="A_function_whose_declared_type_is_not_void_must_return_a_value",e[e.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access=2357]="The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access",e[e.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access=2364]="The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access",e[e.Operator_0_cannot_be_applied_to_types_1_and_2=2365]="Operator_0_cannot_be_applied_to_types_1_and_2",e[e.A_super_call_must_be_the_first_statement_in_the_constructor=2376]="A_super_call_must_be_the_first_statement_in_the_constructor",e[e.Constructors_for_derived_classes_must_contain_a_super_call=2377]="Constructors_for_derived_classes_must_contain_a_super_call",e[e._get_and_set_accessor_must_have_the_same_type=2380]="_get_and_set_accessor_must_have_the_same_type",e[e.Constructor_implementation_is_missing=2390]="Constructor_implementation_is_missing",e[e.Function_implementation_is_missing_or_not_immediately_following_the_declaration=2391]="Function_implementation_is_missing_or_not_immediately_following_the_declaration",e[e.Multiple_constructor_implementations_are_not_allowed=2392]="Multiple_constructor_implementations_are_not_allowed",e[e.Duplicate_function_implementation=2393]="Duplicate_function_implementation",e[e.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local=2395]="Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local",e[e.Type_0_has_no_property_1=2460]="Type_0_has_no_property_1",e[e.The_0_operator_cannot_be_applied_to_type_1=2469]="The_0_operator_cannot_be_applied_to_type_1",e[e.In_const_enum_declarations_member_initializer_must_be_constant_expression=2474]="In_const_enum_declarations_member_initializer_must_be_constant_expression",e[e.Export_declaration_conflicts_with_exported_declaration_of_0=2484]="Export_declaration_conflicts_with_exported_declaration_of_0",e[e.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property=2540]="Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property",e[e.The_target_of_an_assignment_must_be_a_variable_or_a_property_access=2541]="The_target_of_an_assignment_must_be_a_variable_or_a_property_access",e[e.Index_signature_in_type_0_only_permits_reading=2542]="Index_signature_in_type_0_only_permits_reading",e[e.Expected_0_arguments_but_got_1=2554]="Expected_0_arguments_but_got_1",e[e.Expected_at_least_0_arguments_but_got_1=2555]="Expected_at_least_0_arguments_but_got_1",e[e.Expected_0_type_arguments_but_got_1=2558]="Expected_0_type_arguments_but_got_1",e[e.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums=2651]="A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums",e[e.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration=2673]="Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration",e[e.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration=2674]="Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration",e[e.Namespace_0_has_no_exported_member_1=2694]="Namespace_0_has_no_exported_member_1",e[e.Required_type_parameters_may_not_follow_optional_type_parameters=2706]="Required_type_parameters_may_not_follow_optional_type_parameters",e[e.File_0_not_found=6054]="File_0_not_found",e[e.Numeric_separators_are_not_allowed_here=6188]="Numeric_separators_are_not_allowed_here",e[e.Multiple_consecutive_numeric_separators_are_not_permitted=6189]="Multiple_consecutive_numeric_separators_are_not_permitted",e[e._super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class=17009]="_super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class",e[e._super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class=17011]="_super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class"}(t.DiagnosticCode||(t.DiagnosticCode={})),t.diagnosticCodeToString=function(e){switch(e){case 100:return"Operation not supported.";case 101:return"Operation is unsafe.";case 102:return"User-defined: {0}";case 200:return"Conversion from type '{0}' to '{1}' requires an explicit cast.";case 201:return"Conversion from type '{0}' to '{1}' will require an explicit cast when switching between 32/64-bit.";case 202:return"Type '{0}' cannot be changed to type '{1}'.";case 203:return"Type '{0}' cannot be reinterpreted as type '{1}'.";case 204:return"Basic type '{0}' cannot be nullable.";case 205:return"Cannot export a mutable global.";case 206:return"Compiling constant with non-constant initializer as mutable.";case 207:return"Unmanaged classes cannot extend managed classes and vice-versa.";case 208:return"Unmanaged classes cannot implement interfaces.";case 209:return"Invalid regular expression flags.";case 210:return"Implementation '{0}' must match the signature '{1}'.";case 211:return"Class '{0}' is sealed and cannot be extended.";case 212:return"Decorator '{0}' is not valid here.";case 213:return"Duplicate decorator.";case 214:return"An allocator must be declared to allocate memory. Try importing allocator/arena or allocator/tlsf.";case 215:return"Optional parameter must have an initializer.";case 216:return"Constructor of class '{0}' must not require any arguments.";case 217:return"Function '{0}' cannot be inlined into itself.";case 218:return"Cannot access method '{0}' without calling it as it requires 'this' to be set.";case 219:return"Optional properties are not supported.";case 220:return"Expression must be a compile-time constant.";case 1002:return"Unterminated string literal.";case 1003:return"Identifier expected.";case 1005:return"'{0}' expected.";case 1006:return"A file cannot have a reference to itself.";case 1009:return"Trailing comma not allowed.";case 1012:return"Unexpected token.";case 1014:return"A rest parameter must be last in a parameter list.";case 1015:return"Parameter cannot have question mark and initializer.";case 1016:return"A required parameter cannot follow an optional parameter.";case 1036:return"Statements are not allowed in ambient contexts.";case 1039:return"Initializers are not allowed in ambient contexts.";case 1042:return"'{0}' modifier cannot be used here.";case 1047:return"A rest parameter cannot be optional.";case 1048:return"A rest parameter cannot have an initializer.";case 1049:return"A 'set' accessor must have exactly one parameter.";case 1052:return"A 'set' accessor parameter cannot have an initializer.";case 1054:return"A 'get' accessor cannot have parameters.";case 1061:return"Enum member must have initializer.";case 1092:return"Type parameters cannot appear on a constructor declaration.";case 1093:return"Type annotation cannot appear on a constructor declaration.";case 1094:return"An accessor cannot have type parameters.";case 1095:return"A 'set' accessor cannot have a return type annotation.";case 1098:return"Type parameter list cannot be empty.";case 1104:return"A 'continue' statement can only be used within an enclosing iteration statement.";case 1105:return"A 'break' statement can only be used within an enclosing iteration or switch statement.";case 1108:return"A 'return' statement can only be used within a function body.";case 1109:return"Expression expected.";case 1110:return"Type expected.";case 1113:return"A 'default' clause cannot appear more than once in a 'switch' statement.";case 1114:return"Duplicate label '{0}'.";case 1121:return"Octal literals are not allowed in strict mode.";case 1124:return"Digit expected.";case 1125:return"Hexadecimal digit expected.";case 1126:return"Unexpected end of text.";case 1127:return"Invalid character.";case 1130:return"'case' or 'default' expected.";case 1034:return"'super' must be followed by an argument list or member access.";case 1038:return"A 'declare' modifier cannot be used in an already ambient context.";case 1140:return"Type argument expected.";case 1141:return"String literal expected.";case 1142:return"Line break not permitted here.";case 1146:return"Declaration expected.";case 1155:return"'const' declarations must be initialized.";case 1161:return"Unterminated regular expression literal.";case 1176:return"Interface declaration cannot have 'implements' clause.";case 1177:return"Binary digit expected.";case 1178:return"Octal digit expected.";case 1183:return"An implementation cannot be declared in ambient contexts.";case 1198:return"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.";case 1199:return"Unterminated Unicode escape sequence.";case 1206:return"Decorators are not valid here.";case 1242:return"'abstract' modifier can only appear on a class, method, or property declaration.";case 1245:return"Method '{0}' cannot have an implementation because it is marked abstract.";case 1255:return"A definite assignment assertion '!' is not permitted in this context.";case 1311:return"A class may only extend another class.";case 1317:return"A parameter property cannot be declared using a rest parameter.";case 2300:return"Duplicate identifier '{0}'.";case 2304:return"Cannot find name '{0}'.";case 2305:return"Module '{0}' has no exported member '{1}'.";case 2314:return"Generic type '{0}' requires {1} type argument(s).";case 2315:return"Type '{0}' is not generic.";case 2322:return"Type '{0}' is not assignable to type '{1}'.";case 2329:return"Index signature is missing in type '{0}'.";case 2332:return"'this' cannot be referenced in current location.";case 2335:return"'super' can only be referenced in a derived class.";case 2337:return"Super calls are not permitted outside constructors or in nested functions inside constructors.";case 2339:return"Property '{0}' does not exist on type '{1}'.";case 2349:return"Cannot invoke an expression whose type lacks a call signature. Type '{0}' has no compatible call signatures.";case 2351:return"Cannot use 'new' with an expression whose type lacks a construct signature.";case 2355:return"A function whose declared type is not 'void' must return a value.";case 2357:return"The operand of an increment or decrement operator must be a variable or a property access.";case 2364:return"The left-hand side of an assignment expression must be a variable or a property access.";case 2365:return"Operator '{0}' cannot be applied to types '{1}' and '{2}'.";case 2376:return"A 'super' call must be the first statement in the constructor.";case 2377:return"Constructors for derived classes must contain a 'super' call.";case 2380:return"'get' and 'set' accessor must have the same type.";case 2390:return"Constructor implementation is missing.";case 2391:return"Function implementation is missing or not immediately following the declaration.";case 2392:return"Multiple constructor implementations are not allowed.";case 2393:return"Duplicate function implementation.";case 2395:return"Individual declarations in merged declaration '{0}' must be all exported or all local.";case 2460:return"Type '{0}' has no property '{1}'.";case 2469:return"The '{0}' operator cannot be applied to type '{1}'.";case 2474:return"In 'const' enum declarations member initializer must be constant expression.";case 2484:return"Export declaration conflicts with exported declaration of '{0}'.";case 2540:return"Cannot assign to '{0}' because it is a constant or a read-only property.";case 2541:return"The target of an assignment must be a variable or a property access.";case 2542:return"Index signature in type '{0}' only permits reading.";case 2554:return"Expected {0} arguments, but got {1}.";case 2555:return"Expected at least {0} arguments, but got {1}.";case 2558:return"Expected {0} type arguments, but got {1}.";case 2651:return"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.";case 2673:return"Constructor of class '{0}' is private and only accessible within the class declaration.";case 2674:return"Constructor of class '{0}' is protected and only accessible within the class declaration.";case 2694:return"Namespace '{0}' has no exported member '{1}'.";case 2706:return"Required type parameters may not follow optional type parameters.";case 6054:return"File '{0}' not found.";case 6188:return"Numeric separators are not allowed here.";case 6189:return"Multiple consecutive numeric separators are not permitted.";case 17009:return"'super' must be called before accessing 'this' in the constructor of a derived class.";case 17011:return"'super' must be called before accessing a property of 'super' in the constructor of a derived class.";default:return""}}},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__values||function(e){var t="function"==typeof Symbol&&e[Symbol.iterator],r=0;return t?t.call(e):{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}},s=this&&this.__read||function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,a=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)s.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(i)throw i.error}}return s};Object.defineProperty(t,"__esModule",{value:!0});var o,c=r(2),l=r(5),p=r(4),u=r(7),h=r(1),_=r(0),d=r(6);!function(e){e[e.REPORT=0]="REPORT",e[e.SWALLOW=1]="SWALLOW"}(o=t.ReportMode||(t.ReportMode={}));var y=function(e){function t(t){var r=e.call(this,t.diagnostics)||this;return r.currentThisExpression=null,r.currentElementExpression=null,r.program=t,r}return i(t,e),t.prototype.resolveType=function(e,t,r){if(void 0===t&&(t=null),void 0===r&&(r=o.REPORT),e.kind==p.NodeKind.SIGNATURE){var n=this.resolveSignature(e,t,r);return n?e.isNullable?n.type.asNullable():n.type:null}assert(e.kind==p.NodeKind.TYPE);var i=e,a=i.name.text,s=a,d=i.range.source.internalPath+h.PATH_DELIMITER+a,y=this.program.elementsLookup,m=void 0;if((m=y.get(d))||(m=y.get(s)))switch(m.kind){case l.ElementKind.ENUM:return null!==i.typeArguments&&i.typeArguments.length?(r==o.REPORT&&this.error(c.DiagnosticCode.Type_0_is_not_generic,e.range,m.internalName),null):u.Type.i32;case l.ElementKind.CLASS_PROTOTYPE:var g=this.resolveClassInclTypeArguments(m,i.typeArguments,_.makeMap(t),e);return g?e.isNullable?g.type.asNullable():g.type:null}var T=this.program.typeAliases.get(a);if(T)return this.resolveType(T.type,t,r);var E=i.typeArguments,f=null;if(E){var I=E.length;f=new Array(I);for(var v=0;v",s+="<"+C+">")}else if(t){var S=t.get(s);if(S)return S}}var N=this.program.typesLookup,O=void 0;if((O=N.get(d))||(O=N.get(s)))return!O.is(256)&&e.isNullable&&r==o.REPORT&&this.error(c.DiagnosticCode.Basic_type_0_cannot_be_nullable,e.range,O.toString()),O;if("NATIVE"==a){if(!f||1!=f.length)return r==o.REPORT&&this.error(c.DiagnosticCode.Expected_0_type_arguments_but_got_1,i.range,"1",(E?E.length:1).toString(10)),null;switch(f[0].kind){case 0:case 1:case 2:return u.Type.i32;case 4:if(!this.program.options.isWasm64)return u.Type.i32;case 3:return u.Type.i64;case 5:case 6:case 7:case 10:return u.Type.u32;case 9:if(!this.program.options.isWasm64)return u.Type.u32;case 8:return u.Type.u64;case 11:return u.Type.f32;case 12:return u.Type.f64;case 13:return u.Type.v128;case 14:return u.Type.void;default:assert(!1)}}return r==o.REPORT&&this.error(c.DiagnosticCode.Cannot_find_name_0,i.name.range,s),null},t.prototype.resolveSignature=function(e,t,r){void 0===t&&(t=null),void 0===r&&(r=o.REPORT);var n=e.explicitThisType,i=null;if(n&&!(i=this.resolveType(n,t,r)))return null;for(var a=e.parameters,s=a.length,c=new Array(s),l=new Array(s),h=0,_=!1,d=0;ds)return this.error(c.DiagnosticCode.Expected_0_type_arguments_but_got_1,u?p.Range.join(t[0].range,t[u-1].range):assert(n).range.atEnd,(u");var w=new l.Function(e,P,U,A||T,r);return d||e.instances.set(a,d=new Map),d.set(s,w),this.program.instancesLookup.set(P,w),w},t.prototype.resolveFunctionPartially=function(e,t,r){void 0===r&&(r=o.REPORT),assert(e.is(h.CommonFlags.INSTANCE));var n=assert(e.classPrototype);if(!t||!t.length)return e;var i=e.simpleName,a=u.typesToString(t),s=new l.FunctionPrototype(this.program,i,n.internalName+"<"+a+">"+h.INSTANCE_DELIMITER+i,e.declaration,n,e.decoratorFlags);return s.flags=e.flags,s.operatorKind=e.operatorKind,s.classTypeArguments=t,s.instances=e.instances,s},t.prototype.resolveFunctionInclTypeArguments=function(e,t,r,n,i){void 0===i&&(i=o.REPORT);var a=null;if(e.is(h.CommonFlags.GENERIC)){if(e.classTypeArguments&&e.applyClassTypeArguments(r),!(a=this.resolveTypeArguments(assert(e.declaration.typeParameters),t,r,n,i)))return null}else if(null!==t&&t.length)return i==o.REPORT&&this.error(c.DiagnosticCode.Type_0_is_not_generic,n.range,e.internalName),null;return this.resolveFunction(e,a,r,i)},t.prototype.resolveClass=function(e,t,r,n){var i,d,y,m,g,T;void 0===r&&(r=_.makeMap()),void 0===n&&(n=o.REPORT);var E=t?u.typesToString(t):"",f=e.instances.get(E);if(f)return f;var I=e.declaration;if(t){var v=I.typeParameters,A=v.length,C=t.length;assert(C==A);for(var S=0;S",b+="<"+E+">"),(f=new l.Class(e,x,b,t,N)).contextualTypeArguments=r,e.instances.set(E,f),this.program.instancesLookup.set(b,f);var L=0;if(N){if(N.members){f.members||(f.members=new Map);try{for(var k=a(N.members.values()),R=k.next();!R.done;R=k.next()){var F=R.value;f.members.set(F.simpleName,F)}}catch(e){i={error:e}}finally{try{R&&!R.done&&(d=k.return)&&d.call(k)}finally{if(i)throw i.error}}}L=N.currentMemoryOffset}var B=e.constructorPrototype;if(B){var D=this.resolveFunctionPartially(B,t,n);if(!D)return null;f.constructorInstance=this.resolveFunction(D,null,_.makeMap(),n)}if(e.instanceMembers)try{for(var U=a(e.instanceMembers.values()),P=U.next();!P.done;P=U.next()){var w=P.value;switch(w.kind){case l.ElementKind.FIELD_PROTOTYPE:var M=w.declaration;if(f.members){if(f.members.has(w.simpleName)){this.error(c.DiagnosticCode.Duplicate_identifier_0,M.name.range,w.simpleName);break}}else f.members=new Map;var G=null;if(M.type)G=this.resolveType(M.type,f.contextualTypeArguments,n);else{if(null!==N&&null!==N.members){var V=N.members.get(w.simpleName);V&&!V.is(h.CommonFlags.PRIVATE)&&(assert(V.kind==l.ElementKind.FIELD),G=V.type)}G||n==o.REPORT&&this.error(c.DiagnosticCode.Type_expected,M.name.range.atEnd)}if(!G)break;var K=new l.Field(w,b+h.INSTANCE_DELIMITER+w.simpleName,G,M,f);switch(G.byteSize){case 1:break;case 2:1&L&&++L;break;case 4:3&L&&(L=1+(3|L));break;case 8:7&L&&(L=1+(7|L));break;default:assert(!1)}K.memoryOffset=L,L+=G.byteSize,f.members.set(w.simpleName,K);break;case l.ElementKind.FUNCTION_PROTOTYPE:f.members||(f.members=new Map);var z=this.resolveFunctionPartially(w,t,n);if(!z)return null;z.internalName=b+h.INSTANCE_DELIMITER+z.simpleName,f.members.set(w.simpleName,z);break;case l.ElementKind.PROPERTY:f.members||(f.members=new Map);var H=assert(w.getterPrototype),X=w.setterPrototype,W=new l.Property(this.program,w.simpleName,b+h.INSTANCE_DELIMITER+w.simpleName,e),Y=this.resolveFunctionPartially(H,t,n);if(!Y)return null;if(Y.internalName=b+h.INSTANCE_DELIMITER+Y.simpleName,W.getterPrototype=Y,X){var Q=this.resolveFunctionPartially(X,t,n);if(!Q)return null;Q.internalName=b+h.INSTANCE_DELIMITER+Q.simpleName,W.setterPrototype=Q}f.members.set(w.simpleName,W);break;default:assert(!1)}}}catch(e){y={error:e}}finally{try{P&&!P.done&&(m=U.return)&&m.call(U)}finally{if(y)throw y.error}}f.currentMemoryOffset=L;try{for(var q=a(e.overloadPrototypes),j=q.next();!j.done;j=q.next()){var Z=s(j.value,2),J=Z[0],$=Z[1];assert(J!=l.OperatorKind.INVALID);var ee=void 0;if($.is(h.CommonFlags.INSTANCE)){var te=this.resolveFunctionPartially($,t,n);if(!te)continue;ee=this.resolveFunction(te,null,_.makeMap(),n)}else ee=this.resolveFunction($,null,_.makeMap(),n);if(ee){var re=f.overloads;re||(f.overloads=re=new Map),re.set(J,ee)}}}catch(e){g={error:e}}finally{try{j&&!j.done&&(T=q.return)&&T.call(q)}finally{if(g)throw g.error}}return f},t.prototype.resolveClassInclTypeArguments=function(e,t,r,n,i){void 0===i&&(i=o.REPORT);var a=null;if(e.is(h.CommonFlags.GENERIC)){if(!(a=this.resolveTypeArguments(assert(e.declaration.typeParameters),t,r,n,i)))return null}else if(null!==t&&t.length)return i==o.REPORT&&this.error(c.DiagnosticCode.Type_0_is_not_generic,n.range,e.internalName),null;return this.resolveClass(e,a,r,i)},t}(c.DiagnosticEmitter);t.Resolver=y},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(3),i=function(){function e(){this.text=[],this.functionId=0}return e.decompile=function(t){var r=new e;return r.decompile(t),r.finish()},e.prototype.decompile=function(e){throw new Error("not implemented")},e.prototype.decompileFunction=function(e){var t=n.getFunctionName(e)||"$"+this.functionId.toString(10),r=n.getFunctionBody(e);this.push("function "),this.push(t),this.push("(");for(var i=0,s=n.getFunctionParamCount(e);i0&&this.push(", "),this.push("$"),this.push(i.toString(10)),this.push(": "),this.push(a(n.getFunctionParamType(e,i)));this.push("): "),this.push(a(n.getFunctionResultType(e))),this.push(" "),n.getExpressionId(r)!=n.ExpressionId.Block&&this.push("{\n"),this.decompileExpression(r),n.getExpressionId(r)!=n.ExpressionId.Block&&this.push("\n}\n"),++this.functionId},e.prototype.decompileExpression=function(e){var t,r,i,s,o=n.getExpressionId(e),c=n.getExpressionType(e);switch(o){case n.ExpressionId.Block:for(null!=(r=n.getBlockName(e))&&(this.push(r),this.push(": ")),this.push("{\n"),s=n.getBlockChildCount(e),i=0;i("),this.push(n.getLoadOffset(e).toString(10)),this.push(" + "),this.decompileExpression(n.getLoadPtr(e)),void this.push(")");case n.ExpressionId.Store:return this.push("store<"),this.push(a(c)),this.push(">("),this.push(n.getStoreOffset(e).toString(10)),this.push(" + "),this.decompileExpression(n.getStorePtr(e)),this.push(", "),this.decompileExpression(n.getStoreValue(e)),void this.push(")");case n.ExpressionId.Const:switch(c){case n.NativeType.I32:return void this.push(n.getConstValueI32(e).toString(10));case n.NativeType.I64:return void this.push(i64_to_string(i64_new(n.getConstValueI64Low(e),n.getConstValueI64High(e))));case n.NativeType.F32:return void this.push(n.getConstValueF32(e).toString(10));case n.NativeType.F64:return void this.push(n.getConstValueF64(e).toString(10))}break;case n.ExpressionId.Unary:switch(n.getUnaryOp(e)){case n.UnaryOp.ClzI32:return this.push("clz("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.CtzI32:return this.push("ctz("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.PopcntI32:return this.push("popcnt("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.NegF32:case n.UnaryOp.NegF64:return this.push("-"),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.AbsF32:return this.push("abs("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.CeilF32:return this.push("ceil("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.FloorF32:return this.push("floor("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.TruncF32:return this.push("trunc("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.NearestF32:return this.push("nearest("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.SqrtF32:return this.push("sqrt("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.EqzI32:case n.UnaryOp.EqzI64:return this.push("!"),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.ClzI64:return this.push("clz("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.CtzI64:return this.push("ctz("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.PopcntI64:return this.push("popcnt("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.AbsF64:return this.push("abs("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.CeilF64:return this.push("ceil("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.FloorF64:return this.push("floor("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.TruncF64:return this.push("trunc("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.NearestF64:return this.push("nearest("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.SqrtF64:return this.push("sqrt("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.ExtendI32:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.ExtendU32:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.WrapI64:case n.UnaryOp.TruncF32ToI32:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.TruncF32ToI64:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.TruncF32ToU32:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.TruncF32ToU64:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.TruncF64ToI32:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.TruncF64ToI64:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.TruncF64ToU32:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.TruncF64ToU64:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.ReinterpretF32:return this.push("reinterpret("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.ReinterpretF64:return this.push("reinterpret("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.ConvertI32ToF32:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.ConvertI32ToF64:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.ConvertU32ToF32:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.ConvertU32ToF64:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.ConvertI64ToF32:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.ConvertI64ToF64:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.ConvertU64ToF32:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.ConvertU64ToF64:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.PromoteF32:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.DemoteF64:return this.push(""),void this.decompileExpression(n.getUnaryValue(e));case n.UnaryOp.ReinterpretI32:return this.push("reinterpret("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")");case n.UnaryOp.ReinterpretI64:return this.push("reinterpret("),this.decompileExpression(n.getUnaryValue(e)),void this.push(")")}break;case n.ExpressionId.Binary:switch(n.getBinaryOp(e)){case n.BinaryOp.AddI32:case n.BinaryOp.AddI64:case n.BinaryOp.AddF32:case n.BinaryOp.AddF64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" + "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.SubI32:case n.BinaryOp.SubI64:case n.BinaryOp.SubF32:case n.BinaryOp.SubF64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" - "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.MulI32:case n.BinaryOp.MulI64:case n.BinaryOp.MulF32:case n.BinaryOp.MulF64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" * "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.DivI32:case n.BinaryOp.DivI64:case n.BinaryOp.DivF32:case n.BinaryOp.DivF64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" / "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.DivU32:return this.push("("),this.decompileExpression(n.getBinaryLeft(e)),this.push(" / "),this.decompileExpression(n.getBinaryRight(e)),void this.push(")");case n.BinaryOp.RemI32:case n.BinaryOp.RemI64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" % "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.RemU32:return this.push("("),this.decompileExpression(n.getBinaryLeft(e)),this.push(" / "),this.decompileExpression(n.getBinaryRight(e)),void this.push(")");case n.BinaryOp.AndI32:case n.BinaryOp.AndI64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" & "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.OrI32:case n.BinaryOp.OrI64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" | "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.XorI32:case n.BinaryOp.XorI64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" ^ "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.ShlI32:case n.BinaryOp.ShlI64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" << "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.ShrU32:case n.BinaryOp.ShrU64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" >>> "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.ShrI32:case n.BinaryOp.ShrI64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" >> "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.RotlI32:return this.push("rotl("),this.decompileExpression(n.getBinaryLeft(e)),this.push(", "),this.decompileExpression(n.getBinaryRight(e)),void this.push(")");case n.BinaryOp.RotrI32:return this.push("rotr("),this.decompileExpression(n.getBinaryLeft(e)),this.push(", "),this.decompileExpression(n.getBinaryRight(e)),void this.push(")");case n.BinaryOp.EqI32:case n.BinaryOp.EqI64:case n.BinaryOp.EqF32:case n.BinaryOp.EqF64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" == "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.NeI32:case n.BinaryOp.NeI64:case n.BinaryOp.NeF32:case n.BinaryOp.NeF64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" != "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.LtI32:case n.BinaryOp.LtI64:case n.BinaryOp.LtF32:case n.BinaryOp.LtF64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" < "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.LtU32:return this.push(""),this.decompileExpression(n.getBinaryLeft(e)),this.push(" < "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.LeI32:case n.BinaryOp.LeI64:case n.BinaryOp.LeF32:case n.BinaryOp.LeF64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" <= "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.LeU32:return this.push(""),this.decompileExpression(n.getBinaryLeft(e)),this.push(" <= "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.GtI32:case n.BinaryOp.GtI64:case n.BinaryOp.GtF32:case n.BinaryOp.GtF64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" > "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.GtU32:return this.push(""),this.decompileExpression(n.getBinaryLeft(e)),this.push(" > "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.GeI32:case n.BinaryOp.GeI64:case n.BinaryOp.GeF32:case n.BinaryOp.GeF64:return this.decompileExpression(n.getBinaryLeft(e)),this.push(" >= "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.GeU32:return this.push(""),this.decompileExpression(n.getBinaryLeft(e)),this.push(" >= "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.DivU64:return this.push(""),this.decompileExpression(n.getBinaryLeft(e)),this.push(" / "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.RemU64:return this.push(""),this.decompileExpression(n.getBinaryLeft(e)),this.push(" % "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.RotlI64:return this.push("rotl("),this.decompileExpression(n.getBinaryLeft(e)),this.push(", "),this.decompileExpression(n.getBinaryRight(e)),void this.push(")");case n.BinaryOp.RotrI64:return this.push("rotr("),this.decompileExpression(n.getBinaryLeft(e)),this.push(", "),this.decompileExpression(n.getBinaryRight(e)),void this.push(")");case n.BinaryOp.LtU64:return this.push(""),this.decompileExpression(n.getBinaryLeft(e)),this.push(" < "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.LeU64:return this.push(""),this.decompileExpression(n.getBinaryLeft(e)),this.push(" <= "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.GtU64:return this.push(""),this.decompileExpression(n.getBinaryLeft(e)),this.push(" > "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.GeU64:return this.push(""),this.decompileExpression(n.getBinaryLeft(e)),this.push(" >= "),void this.decompileExpression(n.getBinaryRight(e));case n.BinaryOp.CopysignF32:return this.push("copysign("),this.decompileExpression(n.getBinaryLeft(e)),this.push(", "),this.decompileExpression(n.getBinaryRight(e)),void this.push(")");case n.BinaryOp.MinF32:return this.push("min("),this.decompileExpression(n.getBinaryLeft(e)),this.push(", "),this.decompileExpression(n.getBinaryRight(e)),void this.push(")");case n.BinaryOp.MaxF32:return this.push("max("),this.decompileExpression(n.getBinaryLeft(e)),this.push(", "),this.decompileExpression(n.getBinaryRight(e)),void this.push(")");case n.BinaryOp.CopysignF64:return this.push("copysign("),this.decompileExpression(n.getBinaryLeft(e)),this.push(", "),this.decompileExpression(n.getBinaryRight(e)),void this.push(")");case n.BinaryOp.MinF64:return this.push("min("),this.decompileExpression(n.getBinaryLeft(e)),this.push(", "),this.decompileExpression(n.getBinaryRight(e)),void this.push(")");case n.BinaryOp.MaxF64:return this.push("max("),this.decompileExpression(n.getBinaryLeft(e)),this.push(", "),this.decompileExpression(n.getBinaryRight(e)),void this.push(")")}return;case n.ExpressionId.Select:return this.push("select<"),this.push(a(c)),this.push(">("),this.decompileExpression(n.getSelectThen(e)),this.push(", "),this.decompileExpression(n.getSelectElse(e)),this.push(", "),this.decompileExpression(n.getSelectCondition(e)),void this.push(")");case n.ExpressionId.Drop:return this.decompileExpression(n.getDropValue(e)),void this.push(";\n");case n.ExpressionId.Return:return void((t=n.getReturnValue(e))?(this.push("return "),this.decompileExpression(t),this.push(";\n")):this.push("return;\n"));case n.ExpressionId.Host:switch(n.getHostOp(e)){case n.HostOp.CurrentMemory:return void this.push("memory.size()");case n.HostOp.GrowMemory:return this.push("memory.grow("),this.decompileExpression(n.getHostOperand(e,0)),void this.push(")")}break;case n.ExpressionId.Nop:return void this.push(";\n");case n.ExpressionId.Unreachable:return void this.push("unreachable()");case n.ExpressionId.AtomicCmpxchg:case n.ExpressionId.AtomicRMW:case n.ExpressionId.AtomicWait:case n.ExpressionId.AtomicWake:}throw new Error("not implemented")},e.prototype.push=function(e){this.text.push(e)},e.prototype.finish=function(){var e=this.text.join("");return this.text=[],e},e}();function a(e){switch(e){case n.NativeType.None:return"void";case n.NativeType.I32:return"i32";case n.NativeType.I64:return"i64";case n.NativeType.F32:return"f32";case n.NativeType.F64:return"f64";case n.NativeType.V128:return"v128";case n.NativeType.Unreachable:throw new Error("unreachable type");case n.NativeType.Auto:throw new Error("auto type");default:throw new Error("unexpected type")}}t.Decompiler=i},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__values||function(e){var t="function"==typeof Symbol&&e[Symbol.iterator],r=0;return t?t.call(e):{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}},s=this&&this.__read||function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,a=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)s.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(i)throw i.error}}return s};Object.defineProperty(t,"__esModule",{value:!0});var o=r(1),c=r(5),l=r(0),p=function(){function e(e,t){void 0===t&&(t=!1),this.todo=[],this.seen=new Set,this.program=e,this.includePrivate}return e.prototype.walk=function(){var e,t;try{for(var r=a(this.program.moduleLevelExports.values()),n=r.next();!n.done;n=r.next()){var i=n.value;this.visitElement(i.element)}}catch(t){e={error:t}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}for(var s=this.todo;0"),null}for(;e.skip(o.Token.BAR);){if(!e.skip(o.Token.NULL))return r||this.error(c.DiagnosticCode._0_expected,e.range(e.pos),"null"),null;d=!0}n=p.Node.createType(h,_,d,e.range(a,e.pos))}for(;e.skip(o.Token.OPENBRACKET);){var m=e.tokenPos;if(!e.skip(o.Token.CLOSEBRACKET))return r||this.error(c.DiagnosticCode._0_expected,e.range(),"]"),null;var g=e.range(m,e.pos);d=!1;if(e.skip(o.Token.BAR)){if(!e.skip(o.Token.NULL))return r||this.error(c.DiagnosticCode._0_expected,e.range(),"null"),null;d=!0}if(n=p.Node.createType(p.Node.createIdentifierExpression("Array",g),[n],d,e.range(a,e.pos)),d)break}return n},t.prototype.tryParseSignature=function(e){var t,r=e.mark(),n=e.tokenPos,i=null,a=null,s=!1;if(e.skip(o.Token.CLOSEPAREN))s=!0,e.discard(r),i=[];else{s=!1;do{var l=p.ParameterKind.DEFAULT;if(e.skip(o.Token.DOT_DOT_DOT)&&(s=!0,e.discard(r),l=p.ParameterKind.REST),e.skip(o.Token.THIS)){if(!e.skip(o.Token.COLON))return e.reset(r),this.tryParseSignatureIsSignature=!1,null;s=!0,e.discard(r);var u=this.parseType(e,!1);if(!u)return null;if(u.kind!=p.NodeKind.TYPE)return this.error(c.DiagnosticCode.Operation_not_supported,u.range),this.tryParseSignatureIsSignature=!0,null;a=u}else{if(!e.skipIdentifier())return s?this.error(c.DiagnosticCode.Identifier_expected,e.range()):e.reset(r),this.tryParseSignatureIsSignature=s,null;var h=p.Node.createIdentifierExpression(e.readIdentifier(),e.range(e.tokenPos,e.pos));if(e.skip(o.Token.QUESTION)&&(s=!0,e.discard(r),l==p.ParameterKind.REST?this.error(c.DiagnosticCode.A_rest_parameter_cannot_be_optional,e.range()):l=p.ParameterKind.OPTIONAL),e.skip(o.Token.COLON)){s=!0,e.discard(r);var _=this.parseType(e);if(!_)return this.tryParseSignatureIsSignature=s,null;var d=new p.ParameterNode;d.parameterKind=l,d.name=h,d.type=_,i?i.push(d):i=[d]}else s&&this.error(c.DiagnosticCode.Type_expected,e.range())}}while(e.skip(o.Token.COMMA));if(!e.skip(o.Token.CLOSEPAREN))return s?this.error(c.DiagnosticCode._0_expected,e.range(),")"):e.reset(r),this.tryParseSignatureIsSignature=s,null}return e.skip(o.Token.EQUALS_GREATERTHAN)?(s=!0,e.discard(r),(t=this.parseType(e))?(this.tryParseSignatureIsSignature=!0,p.Node.createSignature(i||[],t,a,!1,e.range(n,e.pos))):(this.tryParseSignatureIsSignature=s,null)):(s?this.error(c.DiagnosticCode._0_expected,e.range(),"=>"):e.reset(r),this.tryParseSignatureIsSignature=s,null)},t.prototype.parseDecorator=function(e){var t=e.tokenPos;if(e.skipIdentifier()){for(var r=e.readIdentifier(),n=p.Node.createIdentifierExpression(r,e.range(t,e.pos));e.skip(o.Token.DOT);){if(!e.skipIdentifier())return this.error(c.DiagnosticCode.Identifier_expected,e.range()),null;r=e.readIdentifier(),n=p.Node.createPropertyAccessExpression(n,p.Node.createIdentifierExpression(r,e.range()),e.range(t,e.pos))}var i=void 0;if(!e.skip(o.Token.OPENPAREN))return p.Node.createDecorator(n,null,e.range(t,e.pos));if(i=this.parseArguments(e))return p.Node.createDecorator(n,i,e.range(t,e.pos))}else this.error(c.DiagnosticCode.Identifier_expected,e.range());return null},t.prototype.parseVariable=function(e,t,r,n){var i=new Array;do{var a=this.parseVariableDeclaration(e,t,r);if(!a)return null;i.push(a)}while(e.skip(o.Token.COMMA));var s=p.Node.createVariableStatement(i,r,t,e.range(n,e.pos));return e.skip(o.Token.SEMICOLON),s},t.prototype.parseVariableDeclaration=function(e,t,r){if(!e.skipIdentifier())return this.error(c.DiagnosticCode.Identifier_expected,e.range()),null;var n=p.Node.createIdentifierExpression(e.readIdentifier(),e.range()),i=t;e.skip(o.Token.EXCLAMATION)&&(i|=a.CommonFlags.DEFINITE_ASSIGNMENT);var s=null;e.skip(o.Token.COLON)&&(s=this.parseType(e));var l=null;if(e.skip(o.Token.EQUALS)){if(i&a.CommonFlags.AMBIENT&&this.error(c.DiagnosticCode.Initializers_are_not_allowed_in_ambient_contexts,e.range()),!(l=this.parseExpression(e,2)))return null}else i&a.CommonFlags.CONST?i&a.CommonFlags.AMBIENT||this.error(c.DiagnosticCode._const_declarations_must_be_initialized,n.range):s||this.error(c.DiagnosticCode.Type_expected,e.range(e.pos));var u=o.Range.join(n.range,e.range());return i&a.CommonFlags.DEFINITE_ASSIGNMENT&&l&&this.error(c.DiagnosticCode.A_definite_assignment_assertion_is_not_permitted_in_this_context,u),p.Node.createVariableDeclaration(n,s,l,r,i,u)},t.prototype.parseEnum=function(e,t,r,n){if(e.next()!=o.Token.IDENTIFIER)return this.error(c.DiagnosticCode.Identifier_expected,e.range()),null;var i=p.Node.createIdentifierExpression(e.readIdentifier(),e.range());if(e.next()!=o.Token.OPENBRACE)return this.error(c.DiagnosticCode._0_expected,e.range(),"{"),null;for(var s=new Array;!e.skip(o.Token.CLOSEBRACE);){var l=this.parseEnumValue(e,a.CommonFlags.NONE);if(!l)return null;if(s.push(l),!e.skip(o.Token.COMMA)){if(e.skip(o.Token.CLOSEBRACE))break;return this.error(c.DiagnosticCode._0_expected,e.range(),"}"),null}}var u=p.Node.createEnumDeclaration(i,s,r,t,e.range(n,e.pos));return e.skip(o.Token.SEMICOLON),u},t.prototype.parseEnumValue=function(e,t){if(!e.skipIdentifier())return this.error(c.DiagnosticCode.Identifier_expected,e.range()),null;var r=p.Node.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;return e.skip(o.Token.EQUALS)&&!(n=this.parseExpression(e,2))?null:p.Node.createEnumValueDeclaration(r,n,t,o.Range.join(r.range,e.range()))},t.prototype.parseReturn=function(e){var t=null;if(e.peek(!0)!=o.Token.SEMICOLON&&e.nextToken!=o.Token.CLOSEBRACE&&!e.nextTokenOnNewLine&&!(t=this.parseExpression(e)))return null;var r=p.Node.createReturnStatement(t,e.range());return e.skip(o.Token.SEMICOLON),r},t.prototype.parseTypeParameters=function(e){for(var t=new Array,r=!1;!e.skip(o.Token.GREATERTHAN);){var n=this.parseTypeParameter(e);if(!n)return null;if(null!==n.defaultType?r=!0:r&&(this.error(c.DiagnosticCode.Required_type_parameters_may_not_follow_optional_type_parameters,n.range),n.defaultType=null),t.push(n),!e.skip(o.Token.COMMA)){if(e.skip(o.Token.GREATERTHAN))break;return this.error(c.DiagnosticCode._0_expected,e.range(),">"),null}}return 0===t.length&&this.error(c.DiagnosticCode.Type_parameter_list_cannot_be_empty,e.range()),t},t.prototype.parseTypeParameter=function(e){if(e.next()==o.Token.IDENTIFIER){var t=p.Node.createIdentifierExpression(e.readIdentifier(),e.range()),r=null;if(e.skip(o.Token.EXTENDS)){if(!(i=this.parseType(e)))return null;if(i.kind!=p.NodeKind.TYPE)return this.error(c.DiagnosticCode.Operation_not_supported,i.range),null;r=i}var n=null;if(e.skip(o.Token.EQUALS)){var i;if(!(i=this.parseType(e)))return null;if(i.kind!=p.NodeKind.TYPE)return this.error(c.DiagnosticCode.Operation_not_supported,i.range),null;n=i}return p.Node.createTypeParameter(t,r,n,o.Range.join(t.range,e.range()))}return this.error(c.DiagnosticCode.Identifier_expected,e.range()),null},t.prototype.parseParameters=function(e,t){void 0===t&&(t=!1);var r=new Array,n=null,i=!1,a=!1,s=null;if(this.parseParametersThis=null,e.skip(o.Token.THIS)){if(!e.skip(o.Token.COLON))return this.error(c.DiagnosticCode._0_expected,e.range(),":"),null;if(!(s=this.parseType(e)))return null;if(s.kind==p.NodeKind.TYPE?this.parseParametersThis=s:this.error(c.DiagnosticCode.Operation_not_supported,s.range),!e.skip(o.Token.COMMA))return e.skip(o.Token.CLOSEPAREN)?r:(this.error(c.DiagnosticCode._0_expected,e.range(),")"),null)}for(;!e.skip(o.Token.CLOSEPAREN);){var l=this.parseParameter(e,t);if(!l)return null;switch(n&&!a&&(this.error(c.DiagnosticCode.A_rest_parameter_must_be_last_in_a_parameter_list,n.name.range),a=!0),l.parameterKind){default:i&&this.error(c.DiagnosticCode.A_required_parameter_cannot_follow_an_optional_parameter,l.name.range);break;case p.ParameterKind.OPTIONAL:i=!0;break;case p.ParameterKind.REST:n=l}if(r.push(l),!e.skip(o.Token.COMMA)){if(e.skip(o.Token.CLOSEPAREN))break;return this.error(c.DiagnosticCode._0_expected,e.range(),")"),null}}return r},t.prototype.parseParameter=function(e,t){void 0===t&&(t=!1);var r=!1,n=!1,i=null,s=a.CommonFlags.NONE;if(t&&(e.skip(o.Token.PUBLIC)?(i=e.range(),s|=a.CommonFlags.PUBLIC):e.skip(o.Token.PROTECTED)?(i=e.range(),s|=a.CommonFlags.PROTECTED):e.skip(o.Token.PRIVATE)&&(i=e.range(),s|=a.CommonFlags.PRIVATE),e.peek()==o.Token.READONLY)){var l=e.mark();e.next(),e.peek()!=o.Token.COLON?(e.discard(l),i||(i=e.range()),s|=a.CommonFlags.READONLY):e.reset(l)}if(e.skip(o.Token.DOT_DOT_DOT)&&(s?this.error(c.DiagnosticCode.A_parameter_property_cannot_be_declared_using_a_rest_parameter,e.range()):i=e.range(),r=!0),e.skipIdentifier()){r||(i=e.range());var u=p.Node.createIdentifierExpression(e.readIdentifier(),e.range()),h=null;if((n=e.skip(o.Token.QUESTION))&&r&&this.error(c.DiagnosticCode.A_rest_parameter_cannot_be_optional,u.range),e.skip(o.Token.COLON)){if(!(h=this.parseType(e)))return null}else h=p.Node.createOmittedType(e.range(e.pos));var _=null;if(e.skip(o.Token.EQUALS)&&(r&&this.error(c.DiagnosticCode.A_rest_parameter_cannot_have_an_initializer,u.range),n?this.error(c.DiagnosticCode.Parameter_cannot_have_question_mark_and_initializer,u.range):n=!0,!(_=this.parseExpression(e,2))))return null;var d=p.Node.createParameter(u,h,_,r?p.ParameterKind.REST:n?p.ParameterKind.OPTIONAL:p.ParameterKind.DEFAULT,o.Range.join(i,e.range()));return d.flags|=s,d}return this.error(c.DiagnosticCode.Identifier_expected,e.range()),null},t.prototype.parseFunction=function(e,t,r,n){if(!e.skipIdentifier())return this.error(c.DiagnosticCode.Identifier_expected,e.range(e.pos)),null;var i=p.Node.createIdentifierExpression(e.readIdentifier(),e.range()),s=-1,l=null;if(e.skip(o.Token.LESSTHAN)){if(s=e.tokenPos,!(l=this.parseTypeParameters(e)))return null;t|=a.CommonFlags.GENERIC}if(!e.skip(o.Token.OPENPAREN))return this.error(c.DiagnosticCode._0_expected,e.range(e.pos),"("),null;s<0&&(s=e.tokenPos);var u=this.parseParameters(e);if(!u)return null;var h=this.parseParametersThis,_=0!=(t&a.CommonFlags.SET);_&&(1!=u.length&&this.error(c.DiagnosticCode.A_set_accessor_must_have_exactly_one_parameter,i.range),u.length&&u[0].initializer&&this.error(c.DiagnosticCode.A_set_accessor_parameter_cannot_have_an_initializer,i.range)),t&a.CommonFlags.GET&&u.length&&this.error(c.DiagnosticCode.A_get_accessor_cannot_have_parameters,i.range);var d=null;if(e.skip(o.Token.COLON)&&!(d=this.parseType(e,!0,_)))return null;d||(d=p.Node.createOmittedType(e.range(e.pos)),_||this.error(c.DiagnosticCode.Type_expected,d.range));var y=p.Node.createSignature(u,d,h,!1,e.range(s,e.pos)),m=null;if(e.skip(o.Token.OPENBRACE)){if(t&a.CommonFlags.AMBIENT&&this.error(c.DiagnosticCode.An_implementation_cannot_be_declared_in_ambient_contexts,e.range()),!(m=this.parseBlockStatement(e,!1)))return null}else t&a.CommonFlags.AMBIENT||this.error(c.DiagnosticCode.Function_implementation_is_missing_or_not_immediately_following_the_declaration,e.range(e.pos));var g=p.Node.createFunctionDeclaration(i,l,y,m,r,t,e.range(n,e.pos));return e.skip(o.Token.SEMICOLON),g},t.prototype.parseFunctionExpression=function(e){var t,r=e.tokenPos,n=!1;if(e.token==o.Token.FUNCTION){if(t=e.skipIdentifier()?p.Node.createIdentifierExpression(e.readIdentifier(),e.range()):p.Node.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(o.Token.OPENPAREN))return this.error(c.DiagnosticCode._0_expected,e.range(e.pos),"("),null}else n=!0,assert(e.token==o.Token.OPENPAREN),t=p.Node.createEmptyIdentifierExpression(e.range(e.tokenPos));var i=e.pos,a=this.parseParameters(e);return a?this.parseFunctionExpressionCommon(e,t,a,n,r,i):null},t.prototype.parseFunctionExpressionCommon=function(e,t,r,n,i,s){void 0===i&&(i=-1),void 0===s&&(s=-1),i<0&&(i=t.range.start),s<0&&(s=i);var l=null;if(e.skip(o.Token.COLON)){if(!(l=this.parseType(e)))return null}else l=p.Node.createOmittedType(e.range(e.pos)),this.error(c.DiagnosticCode.Type_expected,l.range);if(n&&!e.skip(o.Token.EQUALS_GREATERTHAN))return this.error(c.DiagnosticCode._0_expected,e.range(e.pos),"=>"),null;var u,h=p.Node.createSignature(r,l,null,!1,e.range(s,e.pos));if(n)u=this.parseStatement(e,!1);else{if(!e.skip(o.Token.OPENBRACE))return this.error(c.DiagnosticCode._0_expected,e.range(e.pos),"{"),null;u=this.parseBlockStatement(e,!1)}if(!u)return null;var _=p.Node.createFunctionDeclaration(t,null,h,u,null,n?a.CommonFlags.ARROW:a.CommonFlags.NONE,e.range(i,e.pos));return p.Node.createFunctionExpression(_)},t.prototype.parseClassOrInterface=function(e,t,r,n){var i=e.token==o.Token.INTERFACE;if(!e.skipIdentifier())return this.error(c.DiagnosticCode.Identifier_expected,e.range()),null;var s,l=p.Node.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(o.Token.LESSTHAN)){if(!(s=this.parseTypeParameters(e)))return null;t|=a.CommonFlags.GENERIC}else s=[];var u=null;if(e.skip(o.Token.EXTENDS)){var h=this.parseType(e);if(!h)return null;if(h.kind!=p.NodeKind.TYPE)return this.error(c.DiagnosticCode.Operation_not_supported,h.range),null;u=h}var _=null;if(e.skip(o.Token.IMPLEMENTS)){i&&this.error(c.DiagnosticCode.Interface_declaration_cannot_have_implements_clause,e.range());do{var d=this.parseType(e);if(!d)return null;i||(_||(_=[]),_.push(d))}while(e.skip(o.Token.COMMA))}if(!e.skip(o.Token.OPENBRACE))return this.error(c.DiagnosticCode._0_expected,e.range(),"{"),null;var y,m=new Array;if(i?(assert(!_),y=p.Node.createInterfaceDeclaration(l,s,u,m,r,t,e.range(n,e.pos))):y=p.Node.createClassDeclaration(l,s,u,_,m,r,t,e.range(n,e.pos)),!e.skip(o.Token.CLOSEBRACE))do{var g=this.parseClassMember(e,y);if(!g)return null;g.parent=y,m.push(g)}while(!e.skip(o.Token.CLOSEBRACE));return y},t.prototype.parseClassExpression=function(e){var t,r=e.tokenPos;if(t=e.skipIdentifier()?p.Node.createIdentifierExpression(e.readIdentifier(),e.range()):p.Node.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(o.Token.OPENBRACE))return this.error(c.DiagnosticCode._0_expected,e.range(e.pos),"{"),null;var n=new Array,i=p.Node.createClassDeclaration(t,[],null,null,n,null,a.CommonFlags.NONE,e.range(r,e.pos));if(!e.skip(o.Token.CLOSEBRACE))do{var s=this.parseClassMember(e,i);if(!s)return null;s.parent=i,n.push(s)}while(!e.skip(o.Token.CLOSEBRACE));return p.Node.createClassExpression(i)},t.prototype.parseClassMember=function(e,t){var r=e.pos,n=t.kind==p.NodeKind.INTERFACEDECLARATION,i=new Array;if(e.skip(o.Token.AT)){do{var s=this.parseDecorator(e);if(!s)break;i.push(s)}while(e.skip(o.Token.AT));n&&this.error(c.DiagnosticCode.Decorators_are_not_valid_here,o.Range.join(i[0].range,i[i.length-1].range))}var l=t.flags&a.CommonFlags.AMBIENT;n&&(l|=a.CommonFlags.VIRTUAL);var u=0,h=0;e.skip(o.Token.PUBLIC)?(n&&this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(),"public"),l|=a.CommonFlags.PUBLIC,u=e.tokenPos,h=e.pos):e.skip(o.Token.PRIVATE)?(n&&this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(),"private"),l|=a.CommonFlags.PRIVATE,u=e.tokenPos,h=e.pos):e.skip(o.Token.PROTECTED)&&(n&&this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(),"protected"),l|=a.CommonFlags.PROTECTED,u=e.tokenPos,h=e.pos);var _=0,d=0,y=0,m=0;e.skip(o.Token.STATIC)?(n&&this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(),"static"),l|=a.CommonFlags.STATIC,_=e.tokenPos,d=e.pos):(l|=a.CommonFlags.INSTANCE,e.skip(o.Token.ABSTRACT)&&(n&&this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(),"abstract"),l|=a.CommonFlags.ABSTRACT,y=e.tokenPos,m=e.pos),t.flags&a.CommonFlags.GENERIC&&(l|=a.CommonFlags.GENERIC_CONTEXT));var g=0,T=0;e.skip(o.Token.READONLY)&&(l|=a.CommonFlags.READONLY,g=e.tokenPos,T=e.pos);var E,f=e.mark(),I=!1,v=!1,A=!1,C=0,S=0;if(n||(e.skip(o.Token.GET)?e.peek(!0,o.IdentifierHandling.PREFER)!=o.Token.IDENTIFIER||e.nextTokenOnNewLine?e.reset(f):(l|=a.CommonFlags.GET,v=!0,C=e.tokenPos,S=e.pos,l&a.CommonFlags.READONLY&&this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(g,T),"readonly")):e.skip(o.Token.SET)?e.peek(!0,o.IdentifierHandling.PREFER)!=o.Token.IDENTIFIER||e.nextTokenOnNewLine?e.reset(f):(l|=a.CommonFlags.SET,A=!0,C=e.tokenPos,S=e.pos,l&a.CommonFlags.READONLY&&this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(g,T),"readonly")):e.skip(o.Token.CONSTRUCTOR)&&(I=!0,(l|=a.CommonFlags.CONSTRUCTOR)&a.CommonFlags.STATIC&&this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(_,d),"static"),l&a.CommonFlags.ABSTRACT&&this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(y,m),"abstract"),l&a.CommonFlags.READONLY&&this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(g,T),"readonly"))),I)E=p.Node.createConstructorExpression(e.range());else{if(!v&&!A&&e.skip(o.Token.OPENBRACKET)){l&a.CommonFlags.PUBLIC?this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(u,h),"public"):l&a.CommonFlags.PROTECTED?this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(u,h),"protected"):l&a.CommonFlags.PRIVATE&&this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(u,h),"protected"),l&a.CommonFlags.STATIC&&this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(_,d),"static"),l&a.CommonFlags.ABSTRACT&&this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(y,m),"abstract"),l&a.CommonFlags.READONLY&&this.error(c.DiagnosticCode._0_modifier_cannot_be_used_here,e.range(g,T),"readonly");var N=this.parseIndexSignatureDeclaration(e,i);return N?(e.skip(o.Token.SEMICOLON),N):null}if(!e.skipIdentifier())return this.error(c.DiagnosticCode.Identifier_expected,e.range()),null;E=p.Node.createIdentifierExpression(e.readIdentifier(),e.range())}var O=null;if(e.skip(o.Token.LESSTHAN)){var x=e.tokenPos;if(!(O=this.parseTypeParameters(e)))return null;I?this.error(c.DiagnosticCode.Type_parameters_cannot_appear_on_a_constructor_declaration,e.range(x,e.pos)):v||A?this.error(c.DiagnosticCode.An_accessor_cannot_have_type_parameters,e.range(x,e.pos)):l|=a.CommonFlags.GENERIC}if(e.skip(o.Token.OPENPAREN)){var b=e.tokenPos,L=this.parseParameters(e,I);if(!L)return null;var k=this.parseParametersThis;if(I)for(var R=0,F=L.length;R"),null):null;case o.Token.IDENTIFIER:return p.Node.createIdentifierExpression(e.readIdentifier(),e.range(r,e.pos));case o.Token.THIS:return p.Node.createThisExpression(e.range(r,e.pos));case o.Token.CONSTRUCTOR:return p.Node.createConstructorExpression(e.range(r,e.pos));case o.Token.SUPER:return e.peek()!=o.Token.DOT&&e.nextToken!=o.Token.OPENPAREN&&this.error(c.DiagnosticCode._super_must_be_followed_by_an_argument_list_or_member_access,e.range()),p.Node.createSuperExpression(e.range(r,e.pos));case o.Token.STRINGLITERAL:return p.Node.createStringLiteralExpression(e.readString(),e.range(r,e.pos));case o.Token.INTEGERLITERAL:return p.Node.createIntegerLiteralExpression(e.readInteger(),e.range(r,e.pos));case o.Token.FLOATLITERAL:return p.Node.createFloatLiteralExpression(e.readFloat(),e.range(r,e.pos));case o.Token.SLASH:var E=e.readRegexpPattern();return e.skip(o.Token.SLASH)?p.Node.createRegexpLiteralExpression(E,e.readRegexpFlags(),e.range(r,e.pos)):(this.error(c.DiagnosticCode._0_expected,e.range(),"/"),null);case o.Token.FUNCTION:return this.parseFunctionExpression(e);case o.Token.CLASS:return this.parseClassExpression(e);default:return t==o.Token.ENDOFFILE?this.error(c.DiagnosticCode.Unexpected_end_of_text,e.range(r)):this.error(c.DiagnosticCode.Expression_expected,e.range()),null}},t.prototype.tryParseTypeArgumentsBeforeArguments=function(e){var t=e.mark();if(!e.skip(o.Token.LESSTHAN))return null;var r=new Array;do{if(e.peek()===o.Token.GREATERTHAN)break;var n=this.parseType(e,!0,!0);if(!n)return e.reset(t),null;r.push(n)}while(e.skip(o.Token.COMMA));return e.skip(o.Token.GREATERTHAN)&&e.skip(o.Token.OPENPAREN)?r:(e.reset(t),null)},t.prototype.parseArguments=function(e){for(var t=new Array;!e.skip(o.Token.CLOSEPAREN);){var r=this.parseExpression(e,2);if(!r)return null;if(t.push(r),!e.skip(o.Token.COMMA)){if(e.skip(o.Token.CLOSEPAREN))break;return this.error(c.DiagnosticCode._0_expected,e.range(),")"),null}}return t},t.prototype.parseExpression=function(e,t){void 0===t&&(t=1),assert(0!=t);var r=this.parseExpressionStart(e);if(!r)return null;for(var n,i,a=(r=this.maybeParseCallExpression(e,r)).range.start,s=null;(i=h(n=e.peek()))>=t;){switch(e.next(),n){case o.Token.AS:var l=this.parseType(e);if(!l)return null;r=p.Node.createAssertionExpression(p.AssertionKind.AS,r,l,e.range(a,e.pos));break;case o.Token.EXCLAMATION:r=p.Node.createAssertionExpression(p.AssertionKind.NONNULL,r,null,e.range(a,e.pos));break;case o.Token.INSTANCEOF:var u=this.parseType(e);if(!u)return null;r=p.Node.createInstanceOfExpression(r,u,e.range(a,e.pos));break;case o.Token.OPENBRACKET:if(!(s=this.parseExpression(e)))return null;if(!e.skip(o.Token.CLOSEBRACKET))return this.error(c.DiagnosticCode._0_expected,e.range(),"]"),null;r=p.Node.createElementAccessExpression(r,s,e.range(a,e.pos));break;case o.Token.PLUS_PLUS:case o.Token.MINUS_MINUS:r.kind!=p.NodeKind.IDENTIFIER&&r.kind!=p.NodeKind.ELEMENTACCESS&&r.kind!=p.NodeKind.PROPERTYACCESS&&this.error(c.DiagnosticCode.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,r.range),r=p.Node.createUnaryPostfixExpression(n,r,e.range(a,e.pos));break;case o.Token.QUESTION:var d=this.parseExpression(e);if(!d)return null;if(!e.skip(o.Token.COLON))return this.error(c.DiagnosticCode._0_expected,e.range(),":"),null;var y=this.parseExpression(e,t>1?2:1);if(!y)return null;r=p.Node.createTernaryExpression(r,d,y,e.range(a,e.pos));break;case o.Token.COMMA:var m=[r];do{if(!(r=this.parseExpression(e,2)))return null;m.push(r)}while(e.skip(o.Token.COMMA));r=p.Node.createCommaExpression(m,e.range(a,e.pos));break;default:if(n==o.Token.DOT){if(e.skipIdentifier())s=p.Node.createIdentifierExpression(e.readIdentifier(),e.range());else if(!(s=this.parseExpression(e,_(n)?i:i+1)))return null;if(s.kind==p.NodeKind.IDENTIFIER)r=p.Node.createPropertyAccessExpression(r,s,e.range(a,e.pos));else{if(s.kind!=p.NodeKind.CALL)return this.error(c.DiagnosticCode.Identifier_expected,s.range),null;if(!(r=this.joinPropertyCall(e,a,r,s)))return null}}else{if(!(s=this.parseExpression(e,_(n)?i:i+1)))return null;r=p.Node.createBinaryExpression(n,r,s,e.range(a,e.pos))}}r=this.maybeParseCallExpression(e,r)}return r},t.prototype.joinPropertyCall=function(e,t,r,n){var i=n.expression;switch(i.kind){case p.NodeKind.IDENTIFIER:n.expression=p.Node.createPropertyAccessExpression(r,i,e.range(t,e.pos));break;case p.NodeKind.CALL:var a=this.joinPropertyCall(e,t,r,i);if(!a)return null;n.expression=a,n.range=e.range(t,e.pos);break;default:return this.error(c.DiagnosticCode.Identifier_expected,n.range),null}return n},t.prototype.maybeParseCallExpression=function(e,t){if(p.nodeIsCallable(t.kind))for(var r=null;e.skip(o.Token.OPENPAREN)||p.nodeIsGenericCallable(t.kind)&&null!==(r=this.tryParseTypeArgumentsBeforeArguments(e));){var n=this.parseArguments(e);if(!n)break;t=p.Node.createCallExpression(t,r,n,e.range(t.range.start,e.pos))}return t},t.prototype.skipStatement=function(e){for(e.peek(!0),e.nextTokenOnNewLine&&e.next();;){var t=e.peek(!0);if(t==o.Token.ENDOFFILE||t==o.Token.SEMICOLON){e.next();break}if(e.nextTokenOnNewLine)break;switch(e.next()){case o.Token.IDENTIFIER:e.readIdentifier();break;case o.Token.STRINGLITERAL:e.readString();break;case o.Token.INTEGERLITERAL:e.readInteger();break;case o.Token.FLOATLITERAL:e.readFloat()}}},t.prototype.skipBlock=function(e){var t=1,r=!0;do{switch(e.next()){case o.Token.ENDOFFILE:this.error(c.DiagnosticCode._0_expected,e.range(),"}"),r=!1;break;case o.Token.OPENBRACE:++t;break;case o.Token.CLOSEBRACE:--t||(r=!1);break;case o.Token.IDENTIFIER:e.readIdentifier();break;case o.Token.STRINGLITERAL:e.readString();break;case o.Token.INTEGERLITERAL:e.readInteger();break;case o.Token.FLOATLITERAL:e.readFloat()}}while(r)},t}(c.DiagnosticEmitter);function h(e){switch(e){case o.Token.COMMA:return 1;case o.Token.EQUALS:case o.Token.PLUS_EQUALS:case o.Token.MINUS_EQUALS:case o.Token.ASTERISK_ASTERISK_EQUALS:case o.Token.ASTERISK_EQUALS:case o.Token.SLASH_EQUALS:case o.Token.PERCENT_EQUALS:case o.Token.LESSTHAN_LESSTHAN_EQUALS:case o.Token.GREATERTHAN_GREATERTHAN_EQUALS:case o.Token.GREATERTHAN_GREATERTHAN_GREATERTHAN_EQUALS:case o.Token.AMPERSAND_EQUALS:case o.Token.CARET_EQUALS:case o.Token.BAR_EQUALS:return 4;case o.Token.QUESTION:return 5;case o.Token.BAR_BAR:return 6;case o.Token.AMPERSAND_AMPERSAND:return 7;case o.Token.BAR:return 8;case o.Token.CARET:return 9;case o.Token.AMPERSAND:return 10;case o.Token.EQUALS_EQUALS:case o.Token.EXCLAMATION_EQUALS:case o.Token.EQUALS_EQUALS_EQUALS:case o.Token.EXCLAMATION_EQUALS_EQUALS:return 11;case o.Token.AS:case o.Token.IN:case o.Token.INSTANCEOF:case o.Token.LESSTHAN:case o.Token.GREATERTHAN:case o.Token.LESSTHAN_EQUALS:case o.Token.GREATERTHAN_EQUALS:return 12;case o.Token.LESSTHAN_LESSTHAN:case o.Token.GREATERTHAN_GREATERTHAN:case o.Token.GREATERTHAN_GREATERTHAN_GREATERTHAN:return 13;case o.Token.PLUS:case o.Token.MINUS:return 14;case o.Token.ASTERISK:case o.Token.SLASH:case o.Token.PERCENT:return 15;case o.Token.ASTERISK_ASTERISK:return 16;case o.Token.PLUS_PLUS:case o.Token.MINUS_MINUS:return 18;case o.Token.DOT:case o.Token.NEW:case o.Token.OPENBRACKET:case o.Token.EXCLAMATION:return 20}return 0}function _(e){switch(e){case o.Token.EQUALS:case o.Token.PLUS_EQUALS:case o.Token.MINUS_EQUALS:case o.Token.ASTERISK_ASTERISK_EQUALS:case o.Token.ASTERISK_EQUALS:case o.Token.SLASH_EQUALS:case o.Token.PERCENT_EQUALS:case o.Token.LESSTHAN_LESSTHAN_EQUALS:case o.Token.GREATERTHAN_GREATERTHAN_EQUALS:case o.Token.GREATERTHAN_GREATERTHAN_GREATERTHAN_EQUALS:case o.Token.AMPERSAND_EQUALS:case o.Token.CARET_EQUALS:case o.Token.BAR_EQUALS:case o.Token.QUESTION:case o.Token.ASTERISK_ASTERISK:return!0;default:return!1}}t.Parser=u,function(e){e[e.NONE=0]="NONE",e[e.COMMA=1]="COMMA",e[e.SPREAD=2]="SPREAD",e[e.YIELD=3]="YIELD",e[e.ASSIGNMENT=4]="ASSIGNMENT",e[e.CONDITIONAL=5]="CONDITIONAL",e[e.LOGICAL_OR=6]="LOGICAL_OR",e[e.LOGICAL_AND=7]="LOGICAL_AND",e[e.BITWISE_OR=8]="BITWISE_OR",e[e.BITWISE_XOR=9]="BITWISE_XOR",e[e.BITWISE_AND=10]="BITWISE_AND",e[e.EQUALITY=11]="EQUALITY",e[e.RELATIONAL=12]="RELATIONAL",e[e.SHIFT=13]="SHIFT",e[e.ADDITIVE=14]="ADDITIVE",e[e.MULTIPLICATIVE=15]="MULTIPLICATIVE",e[e.EXPONENTIATED=16]="EXPONENTIATED",e[e.UNARY_PREFIX=17]="UNARY_PREFIX",e[e.UNARY_POSTFIX=18]="UNARY_POSTFIX",e[e.CALL=19]="CALL",e[e.MEMBERACCESS=20]="MEMBERACCESS",e[e.GROUPING=21]="GROUPING"}(t.Precedence||(t.Precedence={}))},function(e,t,r){r(16),e.exports=r(30)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(17),r(19),r(20),r(21);var n=r(3);n.Module.prototype.toText=function(){return binaryen.wrapModule(this.ref).emitStackIR()},n.Module.prototype.toAsmjs=function(){return binaryen.wrapModule(this.ref).emitAsmjs()}},function(e,t,r){(function(e){const t=e.Binaryen||r(18);for(var n in e.binaryen=t,t)(n.startsWith("_Binaryen")||n.startsWith("_Relooper"))&&(e[n]=t[n]);e.__memory_allocate=t._malloc,e.__memory_free=t._free,e.__memory_copy=t._memmove,e.__store=function(e,r){t.HEAPU8[e]=r},e.__load=function(e){return t.HEAPU8[e]}}).call(this,r(8))},function(t,r){t.exports=e},function(e,t,r){(function(e){var t="undefined"!=typeof window&&window||void 0!==e&&e||self;t.ASC_TARGET=0,t.ASC_NO_TREESHAKING=!1,t.ASC_NO_ASSERT=!1,t.ASC_MEMORY_BASE=0,t.ASC_OPTIMIZE_LEVEL=3,t.ASC_SHRINK_LEVEL=0,t.ASC_FEATURE_MUTABLE_GLOBAL=!1,t.ASC_FEATURE_SIGN_EXTENSION=!1,t.ASC_FEATURE_BULK_MEMORY=!1,t.ASC_FEATURE_SIMD=!1,t.ASC_FEATURE_THREADS=!1;var r=new Float64Array(1),n=new Uint32Array(r.buffer);function i(){Error.captureStackTrace?Error.captureStackTrace(this,i):this.stack=this.name+": "+this.message+"\n"+(new Error).stack}function a(e){this.message=e||"assertion failed",Error.captureStackTrace?Error.captureStackTrace(this,a):this.stack=this.name+": "+this.message+"\n"+(new Error).stack}Object.defineProperties(t.i8=function(e){return e<<24>>24},{MIN_VALUE:{value:-128,writable:!1},MAX_VALUE:{value:127,writable:!1}}),Object.defineProperties(t.i16=function(e){return e<<16>>16},{MIN_VALUE:{value:-32768,writable:!1},MAX_VALUE:{value:32767,writable:!1}}),Object.defineProperties(t.i32=t.isize=function(e){return 0|e},{MIN_VALUE:{value:-2147483648,writable:!1},MAX_VALUE:{value:2147483647,writable:!1}}),Object.defineProperties(t.u8=function(e){return 255&e},{MIN_VALUE:{value:0,writable:!1},MAX_VALUE:{value:255,writable:!1}}),Object.defineProperties(t.u16=function(e){return 65535&e},{MIN_VALUE:{value:0,writable:!1},MAX_VALUE:{value:65535,writable:!1}}),Object.defineProperties(t.u32=t.usize=function(e){return e>>>0},{MIN_VALUE:{value:0,writable:!1},MAX_VALUE:{value:4294967295,writable:!1}}),Object.defineProperties(t.bool=function(e){return!!e},{MIN_VALUE:{value:!1,writable:!1},MAX_VALUE:{value:!0,writable:!1}}),Object.defineProperties(t.f32=function(e){return Math.fround(e)},{EPSILON:{value:Math.fround(1.1920929e-7),writable:!1},MIN_VALUE:{value:Math.fround(1.4012985e-45),writable:!1},MAX_VALUE:{value:Math.fround(3.4028235e38),writable:!1},MIN_NORMAL_VALUE:{value:Math.fround(1.17549435e-38),writable:!1},MIN_SAFE_INTEGER:{value:-16777215,writable:!1},MAX_SAFE_INTEGER:{value:16777215,writable:!1}}),Object.defineProperties(t.f64=function(e){return+e},{EPSILON:{value:2.220446049250313e-16,writable:!1},MIN_VALUE:{value:5e-324,writable:!1},MAX_VALUE:{value:1.7976931348623157e308,writable:!1},MIN_NORMAL_VALUE:{value:2.2250738585072014e-308,writable:!1},MIN_SAFE_INTEGER:{value:-9007199254740991,writable:!1},MAX_SAFE_INTEGER:{value:9007199254740991,writable:!1}}),t.clz=Math.clz32,t.ctz=function(e){var t=Math.clz32(e&-e);return e?31-t:t},t.popcnt=function(e){return 16843009*((e=(858993459&(e-=e>>>1&1431655765))+(e>>>2&858993459))+(e>>>4)&252645135)>>>24},t.rotl=function(e,t){return e<<(t&=31)|e>>>32-t},t.rotr=function(e,t){return e>>>(t&=31)|e<<32-t},t.abs=Math.abs,t.max=Math.max,t.min=Math.min,t.ceil=Math.ceil,t.floor=Math.floor,t.nearest=function(e){return.5===Math.abs(e-Math.trunc(e))?2*Math.round(.5*e):Math.round(e)},t.select=function(e,t,r){return r?e:t},t.sqrt=Math.sqrt,t.trunc=Math.trunc,t.copysign=function(e,t){return Math.abs(e)*Math.sign(t)},t.bswap=function(e){var t=e>>8&16711935,r=(16711935&e)<<8;return(t=(e=t|r)>>16&65535)|(r=(65535&e)<<16)},t.bswap16=function(e){return e<<8&65280|e>>8&255|4294901760&e},i.prototype=Object.create(Error.prototype),i.prototype.name="UnreachableError",i.prototype.message="unreachable",t.unreachable=function(){throw new i},a.prototype=Object.create(Error.prototype),a.prototype.name="AssertionError",t.assert=function(e,t){if(e)return e;throw new a(t)},t.changetype=function(e){return e},t.parseI32=function(e,t){return 0|parseInt(e,void 0)},String.fromCharCodes=function(e){return String.fromCharCode.apply(String,e)},String.fromCodePoints=function(e){return String.fromCodePoint.apply(String,e)},t.isInteger=Number.isInteger,t.isFloat=function(e){return"number"==typeof e},t.isReference=function(e){return"object"==typeof e||"string"==typeof e},t.isString=function(e){return"string"==typeof e||e instanceof String},t.isArray=Array.isArray,t.isDefined=function(e){return void 0!==e},t.isConstant=function(e){return!1},t.unchecked=function(e){return e},t.fmod=function(e,t){return e%t},t.fmodf=function(e,t){return Math.fround(e%t)},t.JSMath=Math,t.JSMath.signbit=function(e){return r[0]=e,Boolean(n[1]>>>31&e==e)},t.memory=(()=>{var e=new Uint8Array(0),r=0;return{allocate:t.__memory_allocate||function(t){if(!(t>>>=0))return 0;if(r+t>e.length){var n=e;(e=new Uint8Array(Math.max(65536,e.length+t,2*e.length))).set(n)}var i=r;return 7&(r+=t)&&(r=1+(7|r)),i},fill:t.__memory_fill||function(t,r,n){e.fill(r,t,t+n)},free:t.__memory_free||function(e){},copy:t.__memory_copy||function(t,r,n){e.copyWithin(t,r,r+n)},reset:t.__memory_reset||function(){e=new Uint8Array(0),r=0}}})(),t.store=t.__store||function(e,t,r){HEAP[(0|e)+(0|r)]=t},t.load=t.__load||function(e,t){return HEAP[(0|e)+(0|t)]}}).call(this,r(8))},function(e,t,r){(function(e){const t=new Float64Array(1),r=new Float32Array(t.buffer),n=new Int32Array(t.buffer);e.f32_as_i32=function(e){return r[0]=e,n[0]},e.i32_as_f32=function(e){return n[0]=e,r[0]},e.f64_as_i64=function(e){return t[0]=e,i64_new(n[0],n[1])},e.i64_as_f64=function(e){return n[0]=i64_low(e),n[1]=i64_high(e),t[0]}}).call(this,r(8))},function(e,t,r){(function(e){const t=e.Long||r(22);e.i64_zero=t.ZERO,e.i64_one=t.ONE,e.i64_new=function(e,r){return t.fromBits(e,r)},e.i64_low=function(e){return e.low},e.i64_high=function(e){return e.high},e.i64_add=function(e,t){return e.add(t)},e.i64_sub=function(e,t){return e.sub(t)},e.i64_mul=function(e,t){return e.mul(t)},e.i64_div=function(e,t){return e.div(t)},e.i64_div_u=function(e,t){return e.toUnsigned().div(t.toUnsigned()).toSigned()},e.i64_rem=function(e,t){return e.mod(t)},e.i64_rem_u=function(e,t){return e.toUnsigned().mod(t.toUnsigned()).toSigned()},e.i64_and=function(e,t){return e.and(t)},e.i64_or=function(e,t){return e.or(t)},e.i64_xor=function(e,t){return e.xor(t)},e.i64_shl=function(e,t){return e.shl(t)},e.i64_shr=function(e,t){return e.shr(t)},e.i64_shr_u=function(e,t){return e.shru(t)},e.i64_not=function(e){return e.not()},e.i64_eq=function(e,t){return e.eq(t)},e.i64_ne=function(e,t){return e.ne(t)},e.i64_align=function(e,r){assert(r&&0==(r&r-1));var n=t.fromInt(r-1);return e.add(n).and(n.not())},e.i64_is_i8=function(e){return 0===e.high&&e.low>=0&&e.low<=i8.MAX_VALUE||-1===e.high&&e.low>=i8.MIN_VALUE&&e.low<0},e.i64_is_i16=function(e){return 0===e.high&&e.low>=0&&e.low<=i16.MAX_VALUE||-1===e.high&&e.low>=i16.MIN_VALUE&&e.low<0},e.i64_is_i32=function(e){return 0===e.high&&e.low>=0||-1===e.high&&e.low<0},e.i64_is_u8=function(e){return 0===e.high&&e.low>=0&&e.low<=u8.MAX_VALUE},e.i64_is_u16=function(e){return 0===e.high&&e.low>=0&&e.low<=u16.MAX_VALUE},e.i64_is_u32=function(e){return 0===e.high},e.i64_is_bool=function(e){return 0===e.high&&(0===e.low||1===e.low)};const n=t.fromNumber(f32.MIN_SAFE_INTEGER),i=t.fromNumber(f32.MAX_SAFE_INTEGER);e.i64_is_f32=function(e){return e.gte(n)&&e.lte(i)};const a=t.fromNumber(f64.MIN_SAFE_INTEGER),s=t.fromNumber(f64.MAX_SAFE_INTEGER);e.i64_is_f64=function(e){return e.gte(a)&&e.lte(s)},e.i64_to_f32=function(t){return e.Math.fround(t.toNumber())},e.i64_to_f64=function(e){return e.toNumber()},e.i64_to_string=function(e,t){return(t?e.toUnsigned():e).toString(10)}}).call(this,r(8))},function(e,t){e.exports=n;var r=null;try{r=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e){}function n(e,t,r){this.low=0|e,this.high=0|t,this.unsigned=!!r}function i(e){return!0===(e&&e.__isLong__)}n.prototype.__isLong__,Object.defineProperty(n.prototype,"__isLong__",{value:!0}),n.isLong=i;var a={},s={};function o(e,t){var r,n,i;return t?(i=0<=(e>>>=0)&&e<256)&&(n=s[e])?n:(r=l(e,(0|e)<0?-1:0,!0),i&&(s[e]=r),r):(i=-128<=(e|=0)&&e<128)&&(n=a[e])?n:(r=l(e,e<0?-1:0,!1),i&&(a[e]=r),r)}function c(e,t){if(isNaN(e))return t?T:g;if(t){if(e<0)return T;if(e>=d)return A}else{if(e<=-y)return C;if(e+1>=y)return v}return e<0?c(-e,t).neg():l(e%_|0,e/_|0,t)}function l(e,t,r){return new n(e,t,r)}n.fromInt=o,n.fromNumber=c,n.fromBits=l;var p=Math.pow;function u(e,t,r){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return g;if("number"==typeof t?(r=t,t=!1):t=!!t,(r=r||10)<2||360)throw Error("interior hyphen");if(0===n)return u(e.substring(1),t,r).neg();for(var i=c(p(r,8)),a=g,s=0;s>>0:this.low},S.toNumber=function(){return this.unsigned?(this.high>>>0)*_+(this.low>>>0):this.high*_+(this.low>>>0)},S.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((a=o).isZero())return l+s;for(;l.length<6;)l="0"+l;s=""+l+s}},S.getHighBits=function(){return this.high},S.getHighBitsUnsigned=function(){return this.high>>>0},S.getLowBits=function(){return this.low},S.getLowBitsUnsigned=function(){return this.low>>>0},S.getNumBitsAbs=function(){if(this.isNegative())return this.eq(C)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&0==(e&1<=0},S.isOdd=function(){return 1==(1&this.low)},S.isEven=function(){return 0==(1&this.low)},S.equals=function(e){return i(e)||(e=h(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&(this.high===e.high&&this.low===e.low)},S.eq=S.equals,S.notEquals=function(e){return!this.eq(e)},S.neq=S.notEquals,S.ne=S.notEquals,S.lessThan=function(e){return this.comp(e)<0},S.lt=S.lessThan,S.lessThanOrEqual=function(e){return this.comp(e)<=0},S.lte=S.lessThanOrEqual,S.le=S.lessThanOrEqual,S.greaterThan=function(e){return this.comp(e)>0},S.gt=S.greaterThan,S.greaterThanOrEqual=function(e){return this.comp(e)>=0},S.gte=S.greaterThanOrEqual,S.ge=S.greaterThanOrEqual,S.compare=function(e){if(i(e)||(e=h(e)),this.eq(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},S.comp=S.compare,S.negate=function(){return!this.unsigned&&this.eq(C)?C:this.not().add(E)},S.neg=S.negate,S.add=function(e){i(e)||(e=h(e));var t=this.high>>>16,r=65535&this.high,n=this.low>>>16,a=65535&this.low,s=e.high>>>16,o=65535&e.high,c=e.low>>>16,p=0,u=0,_=0,d=0;return _+=(d+=a+(65535&e.low))>>>16,u+=(_+=n+c)>>>16,p+=(u+=r+o)>>>16,p+=t+s,l((_&=65535)<<16|(d&=65535),(p&=65535)<<16|(u&=65535),this.unsigned)},S.subtract=function(e){return i(e)||(e=h(e)),this.add(e.neg())},S.sub=S.subtract,S.multiply=function(e){if(this.isZero())return g;if(i(e)||(e=h(e)),r)return l(r.mul(this.low,this.high,e.low,e.high),r.get_high(),this.unsigned);if(e.isZero())return g;if(this.eq(C))return e.isOdd()?C:g;if(e.eq(C))return this.isOdd()?C:g;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(m)&&e.lt(m))return c(this.toNumber()*e.toNumber(),this.unsigned);var t=this.high>>>16,n=65535&this.high,a=this.low>>>16,s=65535&this.low,o=e.high>>>16,p=65535&e.high,u=e.low>>>16,_=65535&e.low,d=0,y=0,T=0,E=0;return T+=(E+=s*_)>>>16,y+=(T+=a*_)>>>16,T&=65535,y+=(T+=s*u)>>>16,d+=(y+=n*_)>>>16,y&=65535,d+=(y+=a*u)>>>16,y&=65535,d+=(y+=s*p)>>>16,d+=t*_+n*u+a*p+s*o,l((T&=65535)<<16|(E&=65535),(d&=65535)<<16|(y&=65535),this.unsigned)},S.mul=S.multiply,S.divide=function(e){if(i(e)||(e=h(e)),e.isZero())throw Error("division by zero");var t,n,a;if(r)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?l((this.unsigned?r.div_u:r.div_s)(this.low,this.high,e.low,e.high),r.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?T:g;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return T;if(e.gt(this.shru(1)))return f;a=T}else{if(this.eq(C))return e.eq(E)||e.eq(I)?C:e.eq(C)?E:(t=this.shr(1).div(e).shl(1)).eq(g)?e.isNegative()?E:I:(n=this.sub(e.mul(t)),a=t.add(n.div(e)));if(e.eq(C))return this.unsigned?T:g;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();a=g}for(n=this;n.gte(e);){t=Math.max(1,Math.floor(n.toNumber()/e.toNumber()));for(var s=Math.ceil(Math.log(t)/Math.LN2),o=s<=48?1:p(2,s-48),u=c(t),_=u.mul(e);_.isNegative()||_.gt(n);)_=(u=c(t-=o,this.unsigned)).mul(e);u.isZero()&&(u=E),a=a.add(u),n=n.sub(_)}return a},S.div=S.divide,S.modulo=function(e){return i(e)||(e=h(e)),r?l((this.unsigned?r.rem_u:r.rem_s)(this.low,this.high,e.low,e.high),r.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},S.mod=S.modulo,S.rem=S.modulo,S.not=function(){return l(~this.low,~this.high,this.unsigned)},S.and=function(e){return i(e)||(e=h(e)),l(this.low&e.low,this.high&e.high,this.unsigned)},S.or=function(e){return i(e)||(e=h(e)),l(this.low|e.low,this.high|e.high,this.unsigned)},S.xor=function(e){return i(e)||(e=h(e)),l(this.low^e.low,this.high^e.high,this.unsigned)},S.shiftLeft=function(e){return i(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?l(this.low<>>32-e,this.unsigned):l(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):l(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},S.shr=S.shiftRight,S.shiftRightUnsigned=function(e){if(i(e)&&(e=e.toInt()),0===(e&=63))return this;var t=this.high;return e<32?l(this.low>>>e|t<<32-e,t>>>e,this.unsigned):l(32===e?t:t>>>e-32,0,this.unsigned)},S.shru=S.shiftRightUnsigned,S.shr_u=S.shiftRightUnsigned,S.toSigned=function(){return this.unsigned?l(this.low,this.high,!1):this},S.toUnsigned=function(){return this.unsigned?this:l(this.low,this.high,!0)},S.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},S.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},S.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},n.fromBytes=function(e,t,r){return r?n.fromBytesLE(e,t):n.fromBytesBE(e,t)},n.fromBytesLE=function(e,t){return new n(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},n.fromBytesBE=function(e,t){return new n(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}},function(e,t,r){"use strict";var n=this&&this.__values||function(e){var t="function"==typeof Symbol&&e[Symbol.iterator],r=0;return t?t.call(e):{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(2),a=r(4),s=r(7),o=r(3),c=r(5),l=r(11),p=r(1);function u(e,t,r,n,p,u){var m,g,T,E,f=e.module;switch(t.internalName){case"isInteger":var I=_(e,r,n,u);return e.currentType=s.Type.bool,I?I.is(4)&&!I.is(256)?f.createI32(1):f.createI32(0):f.createUnreachable();case"isFloat":I=_(e,r,n,u);return e.currentType=s.Type.bool,I?I.is(8)?f.createI32(1):f.createI32(0):f.createUnreachable();case"isSigned":I=_(e,r,n,u);return e.currentType=s.Type.bool,I?I.is(1)?f.createI32(1):f.createI32(0):f.createUnreachable();case"isReference":I=_(e,r,n,u);return e.currentType=s.Type.bool,I?I.is(256)?f.createI32(1):f.createI32(0):f.createUnreachable();case"isString":I=_(e,r,n,u);if(e.currentType=s.Type.bool,!I)return f.createUnreachable();if(U=I.classReference){var v=e.program.stringInstance;if(v&&U.isAssignableTo(v))return f.createI32(1)}return f.createI32(0);case"isArray":I=_(e,r,n,u);return e.currentType=s.Type.bool,I?null!==(U=I.classReference)&&U.prototype.extends(e.program.arrayPrototype)?f.createI32(1):f.createI32(0):f.createUnreachable();case"isDefined":if(e.currentType=s.Type.bool,r&&e.error(i.DiagnosticCode.Type_0_is_not_generic,u.range,t.internalName),1!=n.length)return e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable();var A=e.resolver.resolveExpression(n[0],e.currentFlow,s.Type.void,l.ReportMode.SWALLOW);return f.createI32(A?1:0);case"isConstant":if(e.currentType=s.Type.bool,r&&e.error(i.DiagnosticCode.Type_0_is_not_generic,u.range,t.internalName),1!=n.length)return e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable();var C=e.compileExpressionRetainType(n[0],s.Type.i32,0);return e.currentType=s.Type.bool,f.createI32(o.getExpressionId(C)==o.ExpressionId.Const?1:0);case"isManaged":if(!e.program.hasGC)return e.currentType=s.Type.bool,f.createI32(0);I=_(e,r,n,u);return e.currentType=s.Type.bool,I?null===(U=I.classReference)||U.hasDecorator(c.DecoratorFlags.UNMANAGED)?f.createI32(0):f.createI32(1):f.createUnreachable();case"clz":if(1!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable();if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,1)}else m=e.compileExpression(n[0],s.Type.i32,0,1);switch(e.currentType.kind){case 0:case 1:case 5:case 6:E=f.createUnary(o.UnaryOp.ClzI32,m);break;case 10:case 2:case 7:E=f.createUnary(o.UnaryOp.ClzI32,m);break;case 9:if(e.currentType.is(256)){e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable();break}case 4:E=f.createUnary(e.options.isWasm64?o.UnaryOp.ClzI64:o.UnaryOp.ClzI32,m);break;case 3:case 8:E=f.createUnary(o.UnaryOp.ClzI64,m);break;default:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"ctz":if(1!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable();if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],0,1)}else m=e.compileExpression(n[0],s.Type.i32,0,1);switch(e.currentType.kind){case 0:case 1:case 5:case 6:E=f.createUnary(o.UnaryOp.CtzI32,m);break;case 10:case 2:case 7:E=f.createUnary(o.UnaryOp.CtzI32,m);break;case 9:if(e.currentType.is(256)){e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable();break}case 4:E=f.createUnary(e.options.isWasm64?o.UnaryOp.CtzI64:o.UnaryOp.CtzI32,m);break;case 3:case 8:E=f.createUnary(o.UnaryOp.CtzI64,m);break;default:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"popcnt":if(1!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable();if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,1)}else m=e.compileExpression(n[0],s.Type.i32,0,1);switch(e.currentType.kind){case 0:case 1:case 5:case 6:E=f.createUnary(o.UnaryOp.PopcntI32,m);break;case 10:case 2:case 7:E=f.createUnary(o.UnaryOp.PopcntI32,m);break;case 9:if(e.currentType.is(256)){e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable();break}case 4:E=f.createUnary(e.options.isWasm64?o.UnaryOp.PopcntI64:o.UnaryOp.PopcntI32,m);break;case 3:case 8:E=f.createUnary(o.UnaryOp.PopcntI64,m);break;default:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"rotl":if(2!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"2",n.length.toString(10)),f.createUnreachable();if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,1)}else m=e.compileExpression(n[0],s.Type.i32,0,1);switch(g=e.compileExpression(n[1],e.currentType,1,0),e.currentType.kind){case 0:case 1:case 5:case 6:case 10:E=e.ensureSmallIntegerWrap(f.createBinary(o.BinaryOp.RotlI32,m,g),e.currentType);case 2:case 7:E=f.createBinary(o.BinaryOp.RotlI32,m,g);break;case 9:if(e.currentType.is(256)){e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable();break}case 4:E=f.createBinary(e.options.isWasm64?o.BinaryOp.RotlI64:o.BinaryOp.RotlI32,m,g);break;case 3:case 8:E=f.createBinary(o.BinaryOp.RotlI64,m,g);break;default:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"rotr":if(2!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"2",n.length.toString(10)),f.createUnreachable();if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,1)}else m=e.compileExpression(n[0],s.Type.i32,0,1);switch(g=e.compileExpression(n[1],e.currentType,1,0),e.currentType.kind){case 0:case 1:case 5:case 6:case 10:E=e.ensureSmallIntegerWrap(f.createBinary(o.BinaryOp.RotrI32,m,g),e.currentType);break;case 2:case 7:E=f.createBinary(o.BinaryOp.RotrI32,m,g);break;case 9:if(e.currentType.is(256)){e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable();break}case 4:E=f.createBinary(e.options.isWasm64?o.BinaryOp.RotrI64:o.BinaryOp.RotrI32,m,g);break;case 3:case 8:E=f.createBinary(o.BinaryOp.RotrI64,m,g);break;default:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"abs":if(1!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable();if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,1)}else m=e.compileExpression(n[0],s.Type.f64,0,1);switch(e.currentType.kind){case 0:case 1:case 2:var S=(b=e.currentFlow).getTempLocal(s.Type.i32,!1),N=b.getAndFreeTempLocal(s.Type.i32,!1).index,O=S.index;E=f.createBinary(o.BinaryOp.XorI32,f.createBinary(o.BinaryOp.AddI32,f.createTeeLocal(N,f.createBinary(o.BinaryOp.ShrI32,f.createTeeLocal(O,m),f.createI32(31))),f.createGetLocal(O,o.NativeType.I32)),f.createGetLocal(N,o.NativeType.I32)),b.freeTempLocal(S);break;case 4:var x=e.options,b=e.currentFlow,L=x.isWasm64;S=b.getTempLocal(x.usizeType,!1),N=b.getAndFreeTempLocal(x.usizeType,!1).index,O=S.index;E=f.createBinary(L?o.BinaryOp.XorI64:o.BinaryOp.XorI32,f.createBinary(L?o.BinaryOp.AddI64:o.BinaryOp.AddI32,f.createTeeLocal(N,f.createBinary(L?o.BinaryOp.ShrI64:o.BinaryOp.ShrI32,f.createTeeLocal(O,m),L?f.createI64(63):f.createI32(31))),f.createGetLocal(O,x.nativeSizeType)),f.createGetLocal(N,x.nativeSizeType)),b.freeTempLocal(S);break;case 3:S=(b=e.currentFlow).getTempLocal(s.Type.i64,!1),N=b.getAndFreeTempLocal(s.Type.i64,!1).index,O=S.index;E=f.createBinary(o.BinaryOp.XorI64,f.createBinary(o.BinaryOp.AddI64,f.createTeeLocal(N,f.createBinary(o.BinaryOp.ShrI64,f.createTeeLocal(O,m),f.createI64(63))),f.createGetLocal(O,o.NativeType.I64)),f.createGetLocal(N,o.NativeType.I64)),b.freeTempLocal(S);break;case 9:if(e.currentType.is(256)){e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable();break}case 5:case 6:case 7:case 8:case 10:E=m;break;case 11:E=f.createUnary(o.UnaryOp.AbsF32,m);break;case 12:E=f.createUnary(o.UnaryOp.AbsF64,m);break;case 14:E=f.createUnreachable();break;default:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"max":if(2!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"2",n.length.toString(10)),f.createUnreachable();if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,1)}else m=e.compileExpression(n[0],s.Type.f64,0,1);switch(g=e.compileExpression(n[1],e.currentType,1,1),e.currentType.kind){case 0:case 1:case 2:var k=(b=e.currentFlow).getTempLocal(e.currentType,!b.canOverflow(m,e.currentType));S=b.getAndFreeTempLocal(e.currentType,!b.canOverflow(g,e.currentType));b.freeTempLocal(k),E=f.createSelect(f.createTeeLocal(k.index,m),f.createTeeLocal(S.index,g),f.createBinary(o.BinaryOp.GtI32,f.createGetLocal(k.index,o.NativeType.I32),f.createGetLocal(S.index,o.NativeType.I32)));break;case 5:case 6:case 7:case 10:k=(b=e.currentFlow).getTempLocal(e.currentType,!b.canOverflow(m,e.currentType)),S=b.getAndFreeTempLocal(e.currentType,!b.canOverflow(g,e.currentType));b.freeTempLocal(k),E=f.createSelect(f.createTeeLocal(k.index,m),f.createTeeLocal(S.index,g),f.createBinary(o.BinaryOp.GtU32,f.createGetLocal(k.index,o.NativeType.I32),f.createGetLocal(S.index,o.NativeType.I32)));break;case 3:k=(b=e.currentFlow).getTempLocal(s.Type.i64,!1),S=b.getAndFreeTempLocal(s.Type.i64,!1);b.freeTempLocal(k),E=f.createSelect(f.createTeeLocal(k.index,m),f.createTeeLocal(S.index,g),f.createBinary(o.BinaryOp.GtI64,f.createGetLocal(k.index,o.NativeType.I64),f.createGetLocal(S.index,o.NativeType.I64)));break;case 8:k=(b=e.currentFlow).getTempLocal(s.Type.i64,!1),S=b.getAndFreeTempLocal(s.Type.i64,!1);b.freeTempLocal(k),E=f.createSelect(f.createTeeLocal(k.index,m),f.createTeeLocal(S.index,g),f.createBinary(o.BinaryOp.GtU64,f.createGetLocal(k.index,o.NativeType.I64),f.createGetLocal(S.index,o.NativeType.I64)));break;case 4:k=(b=e.currentFlow).getTempLocal(e.options.usizeType,!1),S=b.getAndFreeTempLocal(e.options.usizeType,!1);b.freeTempLocal(k),E=f.createSelect(f.createTeeLocal(k.index,m),f.createTeeLocal(S.index,g),f.createBinary(e.options.isWasm64?o.BinaryOp.GtI64:o.BinaryOp.GtI32,f.createGetLocal(k.index,e.options.nativeSizeType),f.createGetLocal(S.index,e.options.nativeSizeType)));break;case 9:if(e.currentType.is(256)){e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable();break}k=(b=e.currentFlow).getTempLocal(e.options.usizeType,!1),S=b.getAndFreeTempLocal(e.options.usizeType,!1);b.freeTempLocal(k),E=f.createSelect(f.createTeeLocal(k.index,m),f.createTeeLocal(S.index,g),f.createBinary(e.options.isWasm64?o.BinaryOp.GtU64:o.BinaryOp.GtU32,f.createGetLocal(k.index,e.options.nativeSizeType),f.createGetLocal(S.index,e.options.nativeSizeType)));break;case 11:E=f.createBinary(o.BinaryOp.MaxF32,m,g);break;case 12:E=f.createBinary(o.BinaryOp.MaxF64,m,g);break;default:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"min":if(2!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"2",n.length.toString(10)),f.createUnreachable();if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,1)}else m=e.compileExpression(n[0],s.Type.f64,0,1);switch(g=e.compileExpression(n[1],e.currentType,1,1),e.currentType.kind){case 0:case 1:case 2:k=(b=e.currentFlow).getTempLocal(e.currentType,!b.canOverflow(m,e.currentType)),S=b.getAndFreeTempLocal(e.currentType,!b.canOverflow(g,e.currentType));b.freeTempLocal(k),E=f.createSelect(f.createTeeLocal(k.index,m),f.createTeeLocal(S.index,g),f.createBinary(o.BinaryOp.LtI32,f.createGetLocal(k.index,o.NativeType.I32),f.createGetLocal(S.index,o.NativeType.I32)));break;case 5:case 6:case 7:case 10:k=(b=e.currentFlow).getTempLocal(e.currentType,!b.canOverflow(m,e.currentType)),S=b.getAndFreeTempLocal(e.currentType,!b.canOverflow(g,e.currentType));b.freeTempLocal(k),E=f.createSelect(f.createTeeLocal(k.index,m),f.createTeeLocal(S.index,g),f.createBinary(o.BinaryOp.LtU32,f.createGetLocal(k.index,o.NativeType.I32),f.createGetLocal(S.index,o.NativeType.I32)));break;case 3:k=(b=e.currentFlow).getTempLocal(s.Type.i64,!1),S=b.getAndFreeTempLocal(s.Type.i64,!1);b.freeTempLocal(k),E=f.createSelect(f.createTeeLocal(k.index,m),f.createTeeLocal(S.index,g),f.createBinary(o.BinaryOp.LtI64,f.createGetLocal(k.index,o.NativeType.I64),f.createGetLocal(S.index,o.NativeType.I64)));break;case 8:k=(b=e.currentFlow).getTempLocal(s.Type.i64,!1),S=b.getAndFreeTempLocal(s.Type.i64,!1);b.freeTempLocal(k),E=f.createSelect(f.createTeeLocal(k.index,m),f.createTeeLocal(S.index,g),f.createBinary(o.BinaryOp.LtU64,f.createGetLocal(k.index,o.NativeType.I64),f.createGetLocal(S.index,o.NativeType.I64)));break;case 4:k=(b=e.currentFlow).getTempLocal(e.options.usizeType,!1),S=b.getAndFreeTempLocal(e.options.usizeType,!1);b.freeTempLocal(k),E=f.createSelect(f.createTeeLocal(k.index,m),f.createTeeLocal(S.index,g),f.createBinary(e.options.isWasm64?o.BinaryOp.LtI64:o.BinaryOp.LtI32,f.createGetLocal(k.index,e.options.nativeSizeType),f.createGetLocal(S.index,e.options.nativeSizeType)));break;case 9:if(e.currentType.is(256)){e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable();break}k=(b=e.currentFlow).getTempLocal(e.options.usizeType,!1),S=b.getAndFreeTempLocal(e.options.usizeType,!1);b.freeTempLocal(k),E=f.createSelect(f.createTeeLocal(k.index,m),f.createTeeLocal(S.index,g),f.createBinary(e.options.isWasm64?o.BinaryOp.LtU64:o.BinaryOp.LtU32,f.createGetLocal(k.index,e.options.nativeSizeType),f.createGetLocal(S.index,e.options.nativeSizeType)));break;case 11:E=f.createBinary(o.BinaryOp.MinF32,m,g);break;case 12:E=f.createBinary(o.BinaryOp.MinF64,m,g);break;default:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"ceil":if(1!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable();if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,0)}else m=e.compileExpression(n[0],s.Type.f64,0,0);switch(e.currentType.kind){case 9:if(e.currentType.is(256)){e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable();break}default:E=m;break;case 11:E=f.createUnary(o.UnaryOp.CeilF32,m);break;case 12:E=f.createUnary(o.UnaryOp.CeilF64,m);break;case 14:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"floor":if(1!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable();if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,0)}else m=e.compileExpression(n[0],s.Type.f64,0,0);switch(e.currentType.kind){case 9:if(e.currentType.is(256)){e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable();break}default:E=m;break;case 11:E=f.createUnary(o.UnaryOp.FloorF32,m);break;case 12:E=f.createUnary(o.UnaryOp.FloorF64,m);break;case 14:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"copysign":if(2!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"2",n.length.toString(10)),f.createUnreachable();if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,0)}else m=e.compileExpression(n[0],s.Type.f64,0,0);switch(g=e.compileExpression(n[1],e.currentType,1,0),e.currentType.kind){case 11:E=f.createBinary(o.BinaryOp.CopysignF32,m,g);break;case 12:E=f.createBinary(o.BinaryOp.CopysignF64,m,g);break;default:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"nearest":if(1!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable();if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,0)}else m=e.compileExpression(n[0],s.Type.f64,0,0);switch(e.currentType.kind){case 9:if(e.currentType.is(256)){e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable();break}default:E=m;break;case 11:E=f.createUnary(o.UnaryOp.NearestF32,m);break;case 12:E=f.createUnary(o.UnaryOp.NearestF64,m);break;case 14:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"reinterpret":if(1!=n.length)return r&&1==r.length||(r&&r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0")),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable();if(!r||1!=r.length)return r&&r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),f.createUnreachable();switch(r[0].kind){case 2:case 7:m=e.compileExpression(n[0],s.Type.f32,1,0),E=f.createUnary(o.UnaryOp.ReinterpretF32,m);break;case 3:case 8:m=e.compileExpression(n[0],s.Type.f64,1,0),E=f.createUnary(o.UnaryOp.ReinterpretF64,m);break;case 9:if(r[0].is(256))return e.error(i.DiagnosticCode.Operation_not_supported,u.range),e.currentType=r[0],f.createUnreachable();case 4:m=e.compileExpression(n[0],e.options.isWasm64?s.Type.f64:s.Type.f32,1,0),E=f.createUnary(e.options.isWasm64?o.UnaryOp.ReinterpretF64:o.UnaryOp.ReinterpretF32,m);break;case 11:m=e.compileExpression(n[0],s.Type.i32,1,0),E=f.createUnary(o.UnaryOp.ReinterpretI32,m);break;case 12:m=e.compileExpression(n[0],s.Type.i64,1,0),E=f.createUnary(o.UnaryOp.ReinterpretI64,m);break;default:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return e.currentType=r[0],E;case"sqrt":if(1!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable();if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,0)}else m=e.compileExpression(n[0],s.Type.f64,0,0);switch(e.currentType.kind){case 11:E=f.createUnary(o.UnaryOp.SqrtF32,m);break;case 12:E=f.createUnary(o.UnaryOp.SqrtF64,m);break;default:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"trunc":if(1!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable();if(r&&r.length){if(e.currentType=r[0],1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,0)}else m=e.compileExpression(n[0],s.Type.f64,0,0);switch(e.currentType.kind){case 9:if(e.currentType.is(256)){e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable();break}default:E=m;break;case 11:E=f.createUnary(o.UnaryOp.TruncF32,m);break;case 12:E=f.createUnary(o.UnaryOp.TruncF64,m);break;case 14:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"load":return n.length<1||n.length>2?(r&&1==r.length||e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),n.length<1?e.error(i.DiagnosticCode.Expected_at_least_0_arguments_but_got_1,u.range,"1",n.length.toString(10)):e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"2",n.length.toString(10)),f.createUnreachable()):r&&1==r.length?(m=e.compileExpression(n[0],e.options.usizeType,1,0),(P=2==n.length?d(e,n[1]):0)<0?f.createUnreachable():(e.currentType=r[0],f.createLoad(r[0].byteSize,r[0].is(5),m,r[0].is(4)&&p.is(4)&&p.size>r[0].size?(e.currentType=p).toNativeType():(e.currentType=r[0]).toNativeType(),P))):(r&&r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),f.createUnreachable());case"store":if(e.currentType=s.Type.void,n.length<2||n.length>3)return r&&1==r.length||e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),n.length<2?e.error(i.DiagnosticCode.Expected_at_least_0_arguments_but_got_1,u.range,"2",n.length.toString(10)):e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"3",n.length.toString(10)),f.createUnreachable();if(!r||1!=r.length)return e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),f.createUnreachable();m=e.compileExpression(n[0],e.options.usizeType,1,0),g=e.compileExpression(n[1],r[0],r[0].is(4)?0:1,0);I=void 0;return r[0].is(4)&&(!e.currentType.is(4)||e.currentType.size2?(r&&1==r.length||e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),n.length<1?e.error(i.DiagnosticCode.Expected_at_least_0_arguments_but_got_1,u.range,"1",n.length.toString(10)):e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"2",n.length.toString(10)),f.createUnreachable()):r&&1==r.length?(m=e.compileExpression(n[0],e.options.usizeType,1,0),(P=2==n.length?d(e,n[1]):0)<0?f.createUnreachable():(e.currentType=r[0],f.createAtomicLoad(r[0].byteSize,m,r[0].is(4)&&p.is(4)&&p.size>r[0].size?(e.currentType=p).toNativeType():(e.currentType=r[0]).toNativeType(),P))):(r&&r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),f.createUnreachable());case"atomic.store":if(!e.options.hasFeature(16))break;if(e.currentType=s.Type.void,n.length<2||n.length>3)return r&&1==r.length||e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),n.length<2?e.error(i.DiagnosticCode.Expected_at_least_0_arguments_but_got_1,u.range,"2",n.length.toString(10)):e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"3",n.length.toString(10)),f.createUnreachable();if(!r||1!=r.length)return e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),f.createUnreachable();m=e.compileExpression(n[0],e.options.usizeType,1,0),g=e.compileExpression(n[1],r[0],r[0].is(4)?0:1,0);I=void 0;return r[0].is(4)&&(!e.currentType.is(4)||e.currentType.size3)return r&&1==r.length||e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),n.length<2?e.error(i.DiagnosticCode.Expected_at_least_0_arguments_but_got_1,u.range,"2",n.length.toString(10)):e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"3",n.length.toString(10)),f.createUnreachable();if(!r||1!=r.length)return e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),f.createUnreachable();m=e.compileExpression(n[0],e.options.usizeType,1,0),g=e.compileExpression(n[1],r[0],r[0].is(4)?0:1,0);I=void 0;if(r[0].is(4)&&(!e.currentType.is(4)||e.currentType.size4)return r&&1==r.length||e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),n.length<3?e.error(i.DiagnosticCode.Expected_at_least_0_arguments_but_got_1,u.range,"2",n.length.toString(10)):e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"3",n.length.toString(10)),f.createUnreachable();if(!r||1!=r.length)return e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),f.createUnreachable();m=e.compileExpression(n[0],e.options.usizeType,1,0),g=e.compileExpression(n[1],r[0],r[0].is(4)?0:1,0),T=e.compileExpression(n[2],r[0],r[0].is(4)?0:1,0);I=void 0;return r[0].is(4)&&(!e.currentType.is(4)||e.currentType.size1)return r&&1==r.length||e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable();if(!r||1!=r.length)return e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),f.createUnreachable();var U;if(!(U=r[0].classReference))return e.error(i.DiagnosticCode.Operation_not_supported,u.range),f.createUnreachable();var P=void 0;if(n.length){if(n[0].kind!=a.NodeKind.LITERAL||n[0].literalKind!=a.LiteralKind.STRING)return e.error(i.DiagnosticCode.String_literal_expected,n[0].range),f.createUnreachable();var w=n[0].value,M=U.members?U.members.get(w):null;if(!M||M.kind!=c.ElementKind.FIELD)return e.error(i.DiagnosticCode.Type_0_has_no_property_1,n[0].range,U.internalName,w),f.createUnreachable();P=M.memoryOffset}else P=U.currentMemoryOffset;return e.options.isWasm64?p.is(4)&&p.size<=32?(e.currentType=s.Type.u32,f.createI32(P)):f.createI64(P):p.is(4)&&64==p.size?(e.currentType=s.Type.u64,f.createI64(P)):f.createI32(P);case"select":if(3!=n.length)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"3",n.length.toString(10)),f.createUnreachable();if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,0)}else m=e.compileExpressionRetainType(n[0],s.Type.i32,0);I=e.currentType;switch(g=e.compileExpression(n[1],I,1,0),T=e.makeIsTrueish(e.compileExpressionRetainType(n[2],s.Type.bool,0),e.currentType),e.currentType=I,e.currentType.kind){case 0:case 1:case 5:case 6:case 10:default:E=f.createSelect(m,g,T);break;case 14:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=f.createUnreachable()}return E;case"unreachable":return 0!=n.length&&e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"0",n.length.toString(10)),r&&e.error(i.DiagnosticCode.Type_0_is_not_generic,u.range,t.internalName),f.createUnreachable();case"memory.size":return e.currentType=s.Type.i32,0!=n.length&&e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"0",n.length.toString(10)),r&&e.error(i.DiagnosticCode.Type_0_is_not_generic,u.range,t.internalName),f.createHost(o.HostOp.CurrentMemory);case"memory.grow":return e.currentType=s.Type.i32,1!=n.length?(e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"0",n.length.toString(10)),m=f.createUnreachable()):m=e.compileExpression(n[0],s.Type.i32,1,0),r&&e.error(i.DiagnosticCode.Type_0_is_not_generic,u.range,t.internalName),f.createHost(o.HostOp.GrowMemory,null,[m]);case"memory.copy":if(!e.options.hasFeature(4)){var G=e.resolver.resolveFunction(t,null);return e.currentType=s.Type.void,G?e.compileCallDirect(G,n,u):f.createUnreachable()}if(r&&e.error(i.DiagnosticCode.Type_0_is_not_generic,u.range,t.internalName),3!=n.length)return e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"3",n.length.toString(10)),e.currentType=s.Type.void,f.createUnreachable();var V=e.options.usizeType;return m=e.compileExpression(n[0],V,1,0),g=e.compileExpression(n[1],V,1,0),T=e.compileExpression(n[2],V,1,0),e.currentType=s.Type.void,f.createMemoryCopy(m,g,T);case"memory.fill":if(!e.options.hasFeature(4)){G=e.resolver.resolveFunction(t,null);return e.currentType=s.Type.void,G?e.compileCallDirect(G,n,u):f.createUnreachable()}if(r&&e.error(i.DiagnosticCode.Type_0_is_not_generic,u.range,t.internalName),3!=n.length)return e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"3",n.length.toString(10)),e.currentType=s.Type.void,f.createUnreachable();V=e.options.usizeType;return m=e.compileExpression(n[0],V,1,0),g=e.compileExpression(n[1],s.Type.u32,1,0),T=e.compileExpression(n[2],V,1,0),e.currentType=s.Type.void,f.createMemoryFill(m,g,T);case"changetype":return r&&1==r.length?1!=n.length?(e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),e.currentType=r[0],f.createUnreachable()):(m=e.compileExpressionRetainType(n[0],r[0],0),e.currentType=r[0],e.currentType.size!=r[0].size?(e.error(i.DiagnosticCode.Operation_not_supported,u.range),f.createUnreachable()):m):(r&&r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r?r.length.toString(10):"0"),f.createUnreachable());case"assert":if(n.length<1||n.length>2)return r&&(r.length&&(e.currentType=r[0].nonNullableType),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),n.length<1?e.error(i.DiagnosticCode.Expected_at_least_0_arguments_but_got_1,u.range,"1",n.length.toString(10)):n.length>2&&e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"2",n.length.toString(10)),f.createUnreachable();if(r){if(r.length&&(e.currentType=r[0].nonNullableType),1!=r.length)return e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();m=e.compileExpression(n[0],r[0],1,1)}else m=e.compileExpressionRetainType(n[0],s.Type.bool,1);I=e.currentType;if(e.currentType=I.nonNullableType,e.options.noAssert)return p==s.Type.void?(e.currentType=s.Type.void,f.createNop()):m;var K=y(e,2==n.length?n[1]:null,u);if(e.currentType=I.nonNullableType,p==s.Type.void){switch(e.currentType.kind){default:E=f.createIf(f.createUnary(o.UnaryOp.EqzI32,m),K);break;case 3:case 8:E=f.createIf(f.createUnary(o.UnaryOp.EqzI64,m),K);break;case 4:case 9:E=f.createIf(f.createUnary(e.options.isWasm64?o.UnaryOp.EqzI64:o.UnaryOp.EqzI32,m),K);break;case 11:E=f.createIf(f.createBinary(o.BinaryOp.EqF32,m,f.createF32(0)),K);break;case 12:E=f.createIf(f.createBinary(o.BinaryOp.EqF64,m,f.createF64(0)),K);break;case 14:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=K}e.currentType=s.Type.void}else switch(e.currentType.kind){case 0:case 1:case 5:case 6:case 10:var z=(b=e.currentFlow).getAndFreeTempLocal(e.currentType,!b.canOverflow(m,e.currentType));E=f.createIf(f.createTeeLocal(z.index,m),f.createGetLocal(z.index,o.NativeType.I32),K);break;case 2:case 7:default:z=e.currentFlow.getAndFreeTempLocal(s.Type.i32,!1);E=f.createIf(f.createTeeLocal(z.index,m),f.createGetLocal(z.index,o.NativeType.I32),K);break;case 3:case 8:z=e.currentFlow.getAndFreeTempLocal(s.Type.i64,!1);E=f.createIf(f.createUnary(o.UnaryOp.EqzI64,f.createTeeLocal(z.index,m)),K,f.createGetLocal(z.index,o.NativeType.I64));break;case 4:case 9:z=e.currentFlow.getAndFreeTempLocal(e.options.usizeType,!1);E=f.createIf(f.createUnary(e.options.isWasm64?o.UnaryOp.EqzI64:o.UnaryOp.EqzI32,f.createTeeLocal(z.index,m)),K,f.createGetLocal(z.index,e.options.nativeSizeType));break;case 11:z=e.currentFlow.getAndFreeTempLocal(s.Type.f32,!1);E=f.createIf(f.createBinary(o.BinaryOp.EqF32,f.createTeeLocal(z.index,m),f.createF32(0)),K,f.createGetLocal(z.index,o.NativeType.F32));break;case 12:z=e.currentFlow.getAndFreeTempLocal(s.Type.f64,!1);E=f.createIf(f.createBinary(o.BinaryOp.EqF64,f.createTeeLocal(z.index,m),f.createF64(0)),K,f.createGetLocal(z.index,o.NativeType.F64));break;case 14:e.error(i.DiagnosticCode.Operation_not_supported,u.range),E=K}return E;case"unchecked":return r&&e.error(i.DiagnosticCode.Type_0_is_not_generic,u.range,t.internalName),1!=n.length?(e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable()):((b=e.currentFlow).set(8192),E=e.compileExpressionRetainType(n[0],p,0),b.unset(8192),E);case"call_indirect":if(n.length<1)return r&&(r.length&&(e.currentType=r[0]),1!=r.length&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10))),e.error(i.DiagnosticCode.Expected_at_least_0_arguments_but_got_1,u.range,"1",n.length.toString(10)),f.createUnreachable();var H=void 0;if(r){if(1!=r.length)return r.length&&(e.currentType=r[0]),e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,u.range,"1",r.length.toString(10)),f.createUnreachable();H=r[0]}else H=p;if(m=e.compileExpressionRetainType(n[0],s.Type.u32,0),7!=e.currentType.kind)return e.error(i.DiagnosticCode.Operation_not_supported,n[0].range),f.createUnreachable();for(var X=n.length-1,W=new Array(X),Y=new Array(X+1),Q=H.toNativeType(),q=new Array(X),j=0;j void"),f.createUnreachable())}var ne=function(e,t,r,n,i){switch(t.internalName){case"i32.clz":return h("clz",e,s.Type.i32,r,s.Type.i32,i);case"i64.clz":return h("clz",e,s.Type.i64,r,s.Type.i64,i);case"i32.ctz":return h("ctz",e,s.Type.i32,r,s.Type.i32,i);case"i64.ctz":return h("ctz",e,s.Type.i64,r,s.Type.i64,i);case"i32.popcnt":return h("popcnt",e,s.Type.i32,r,s.Type.i32,i);case"i64.popcnt":return h("popcnt",e,s.Type.i64,r,s.Type.i64,i);case"i32.rotl":return h("rotl",e,s.Type.i32,r,s.Type.i32,i);case"i64.rotl":return h("rotl",e,s.Type.i64,r,s.Type.i64,i);case"i32.rotr":return h("rotr",e,s.Type.i32,r,s.Type.i32,i);case"i64.rotr":return h("rotr",e,s.Type.i64,r,s.Type.i64,i);case"f32.abs":return h("abs",e,s.Type.f32,r,s.Type.f32,i);case"f64.abs":return h("abs",e,s.Type.f64,r,s.Type.f64,i);case"f32.max":return h("max",e,s.Type.f32,r,s.Type.f32,i);case"f64.max":return h("max",e,s.Type.f64,r,s.Type.f64,i);case"f32.min":return h("min",e,s.Type.f32,r,s.Type.f32,i);case"f64.min":return h("min",e,s.Type.f64,r,s.Type.f64,i);case"f32.ceil":return h("ceil",e,s.Type.f32,r,s.Type.f32,i);case"f64.ceil":return h("ceil",e,s.Type.f64,r,s.Type.f64,i);case"f32.floor":return h("floor",e,s.Type.f32,r,s.Type.f32,i);case"f64.floor":return h("floor",e,s.Type.f64,r,s.Type.f64,i);case"f32.copysign":return h("copysign",e,s.Type.f32,r,s.Type.f32,i);case"f64.copysign":return h("copysign",e,s.Type.f64,r,s.Type.f64,i);case"f32.nearest":return h("nearest",e,s.Type.f32,r,s.Type.f32,i);case"f64.nearest":return h("nearest",e,s.Type.f64,r,s.Type.f64,i);case"i32.reinterpret_f32":return h("reinterpret",e,s.Type.i32,r,s.Type.f32,i);case"i64.reinterpret_f64":return h("reinterpret",e,s.Type.i64,r,s.Type.f64,i);case"f32.reinterpret_i32":return h("reinterpret",e,s.Type.f32,r,s.Type.i32,i);case"f64.reinterpret_i64":return h("reinterpret",e,s.Type.f64,r,s.Type.i64,i);case"f32.sqrt":return h("sqrt",e,s.Type.f32,r,s.Type.f32,i);case"f64.sqrt":return h("sqrt",e,s.Type.f64,r,s.Type.f64,i);case"f32.trunc":return h("trunc",e,s.Type.f32,r,s.Type.f32,i);case"f64.trunc":return h("trunc",e,s.Type.f64,r,s.Type.f64,i);case"i32.load8_s":return h("load",e,s.Type.i8,r,s.Type.i32,i);case"i32.load8_u":return h("load",e,s.Type.u8,r,s.Type.u32,i);case"i32.load16_s":return h("load",e,s.Type.i16,r,s.Type.i32,i);case"i32.load16_u":return h("load",e,s.Type.u16,r,s.Type.u32,i);case"i32.load":return h("load",e,s.Type.i32,r,s.Type.i32,i);case"i64.load8_s":return h("load",e,s.Type.i8,r,s.Type.i64,i);case"i64.load8_u":return h("load",e,s.Type.u8,r,s.Type.u64,i);case"i64.load16_s":return h("load",e,s.Type.i16,r,s.Type.i64,i);case"i64.load16_u":return h("load",e,s.Type.u16,r,s.Type.u64,i);case"i64.load32_s":return h("load",e,s.Type.i32,r,s.Type.i64,i);case"i64.load32_u":return h("load",e,s.Type.u32,r,s.Type.u64,i);case"i64.load":return h("load",e,s.Type.i64,r,s.Type.i64,i);case"f32.load":return h("load",e,s.Type.f32,r,s.Type.f32,i);case"f64.load":return h("load",e,s.Type.f64,r,s.Type.f64,i);case"i32.store8":return h("store",e,s.Type.i8,r,s.Type.i32,i);case"i32.store16":return h("store",e,s.Type.i16,r,s.Type.i32,i);case"i32.store":return h("store",e,s.Type.i32,r,s.Type.i32,i);case"i64.store8":return h("store",e,s.Type.i8,r,s.Type.i64,i);case"i64.store16":return h("store",e,s.Type.i16,r,s.Type.i64,i);case"i64.store32":return h("store",e,s.Type.i32,r,s.Type.i64,i);case"i64.store":return h("store",e,s.Type.i64,r,s.Type.i64,i);case"f32.store":return h("store",e,s.Type.f32,r,s.Type.f32,i);case"f64.store":return h("store",e,s.Type.f64,r,s.Type.f64,i)}if(e.options.hasFeature(16))switch(t.internalName){case"i32.atomic.load8_u":return h("atomic.load",e,s.Type.u8,r,s.Type.u32,i);case"i32.atomic.load16_u":return h("atomic.load",e,s.Type.u16,r,s.Type.u32,i);case"i32.atomic.load":return h("atomic.load",e,s.Type.i32,r,s.Type.i32,i);case"i64.atomic.load8_u":return h("atomic.load",e,s.Type.u8,r,s.Type.u64,i);case"i64.atomic.load16_u":return h("atomic.load",e,s.Type.u16,r,s.Type.u64,i);case"i64.atomic.load32_u":return h("atomic.load",e,s.Type.u32,r,s.Type.u64,i);case"i64.atomic.load":return h("atomic.load",e,s.Type.i64,r,s.Type.i64,i);case"i32.atomic.store8":return h("atomic.store",e,s.Type.i8,r,s.Type.i32,i);case"i32.atomic.store16":return h("atomic.store",e,s.Type.i16,r,s.Type.i32,i);case"i32.atomic.store":return h("atomic.store",e,s.Type.i32,r,s.Type.i32,i);case"i64.atomic.store8":return h("atomic.store",e,s.Type.i8,r,s.Type.i64,i);case"i64.atomic.store16":return h("atomic.store",e,s.Type.i16,r,s.Type.i64,i);case"i64.atomic.store32":return h("atomic.store",e,s.Type.i32,r,s.Type.i64,i);case"i64.atomic.store":return h("atomic.store",e,s.Type.i64,r,s.Type.i64,i);case"i32.atomic.rmw8_u.add":return h("atomic.add",e,s.Type.u8,r,s.Type.u32,i);case"i32.atomic.rmw16_u.add":return h("atomic.add",e,s.Type.u16,r,s.Type.u32,i);case"i32.atomic.rmw.add":return h("atomic.add",e,s.Type.u32,r,s.Type.u32,i);case"i64.atomic.rmw8_u.add":return h("atomic.add",e,s.Type.u8,r,s.Type.u64,i);case"i64.atomic.rmw16_u.add":return h("atomic.add",e,s.Type.u16,r,s.Type.u64,i);case"i64.atomic.rmw32_u.add":return h("atomic.add",e,s.Type.u32,r,s.Type.u64,i);case"i64.atomic.rmw.add":return h("atomic.add",e,s.Type.u64,r,s.Type.u64,i);case"i32.atomic.rmw8_u.sub":return h("atomic.sub",e,s.Type.u8,r,s.Type.u32,i);case"i32.atomic.rmw16_u.sub":return h("atomic.sub",e,s.Type.u16,r,s.Type.u32,i);case"i32.atomic.rmw.sub":return h("atomic.sub",e,s.Type.u32,r,s.Type.u32,i);case"i64.atomic.rmw8_u.sub":return h("atomic.sub",e,s.Type.u8,r,s.Type.u64,i);case"i64.atomic.rmw16_u.sub":return h("atomic.sub",e,s.Type.u16,r,s.Type.u64,i);case"i64.atomic.rmw32_u.sub":return h("atomic.sub",e,s.Type.u32,r,s.Type.u64,i);case"i64.atomic.rmw.sub":return h("atomic.sub",e,s.Type.u64,r,s.Type.u64,i);case"i32.atomic.rmw8_u.and":return h("atomic.and",e,s.Type.u8,r,s.Type.u32,i);case"i32.atomic.rmw16_u.and":return h("atomic.and",e,s.Type.u16,r,s.Type.u32,i);case"i32.atomic.rmw.and":return h("atomic.and",e,s.Type.u32,r,s.Type.u32,i);case"i64.atomic.rmw8_u.and":return h("atomic.and",e,s.Type.u8,r,s.Type.u64,i);case"i64.atomic.rmw16_u.and":return h("atomic.and",e,s.Type.u16,r,s.Type.u64,i);case"i64.atomic.rmw32_u.and":return h("atomic.and",e,s.Type.u32,r,s.Type.u64,i);case"i64.atomic.rmw.and":return h("atomic.and",e,s.Type.u64,r,s.Type.u64,i);case"i32.atomic.rmw8_u.or":return h("atomic.or",e,s.Type.u8,r,s.Type.u32,i);case"i32.atomic.rmw16_u.or":return h("atomic.or",e,s.Type.u16,r,s.Type.u32,i);case"i32.atomic.rmw.or":return h("atomic.or",e,s.Type.u32,r,s.Type.u32,i);case"i64.atomic.rmw8_u.or":return h("atomic.or",e,s.Type.u8,r,s.Type.u64,i);case"i64.atomic.rmw16_u.or":return h("atomic.or",e,s.Type.u16,r,s.Type.u64,i);case"i64.atomic.rmw32_u.or":return h("atomic.or",e,s.Type.u32,r,s.Type.u64,i);case"i64.atomic.rmw.or":return h("atomic.or",e,s.Type.u64,r,s.Type.u64,i);case"i32.atomic.rmw8_u.xor":case"i32.atomic.rmw16_u.xor":case"i32.atomic.rmw.xor":return h("atomic.xor",e,s.Type.u8,r,s.Type.u32,i);case"i64.atomic.rmw8_u.xor":return h("atomic.xor",e,s.Type.u8,r,s.Type.u64,i);case"i64.atomic.rmw16_u.xor":return h("atomic.xor",e,s.Type.u16,r,s.Type.u64,i);case"i64.atomic.rmw32_u.xor":return h("atomic.xor",e,s.Type.u32,r,s.Type.u64,i);case"i64.atomic.rmw.xor":return h("atomic.xor",e,s.Type.u64,r,s.Type.u64,i);case"i32.atomic.rmw8_u.xchg":case"i32.atomic.rmw16_u.xchg":case"i32.atomic.rmw.xchg":return h("atomic.xchg",e,s.Type.u8,r,s.Type.u32,i);case"i64.atomic.rmw8_u.xchg":return h("atomic.xchg",e,s.Type.u8,r,s.Type.u64,i);case"i64.atomic.rmw16_u.xchg":return h("atomic.xchg",e,s.Type.u16,r,s.Type.u64,i);case"i64.atomic.rmw32_u.xchg":return h("atomic.xchg",e,s.Type.u32,r,s.Type.u64,i);case"i64.atomic.rmw.xchg":return h("atomic.xchg",e,s.Type.u64,r,s.Type.u64,i);case"i32.atomic.rmw8_u.cmpxchg":case"i32.atomic.rmw16_u.cmpxchg":case"i32.atomic.rmw.cmpxchg":return h("atomic.cmpxchg",e,s.Type.u8,r,s.Type.u32,i);case"i64.atomic.rmw8_u.cmpxchg":return h("atomic.cmpxchg",e,s.Type.u8,r,s.Type.u64,i);case"i64.atomic.rmw16_u.cmpxchg":return h("atomic.cmpxchg",e,s.Type.u16,r,s.Type.u64,i);case"i64.atomic.rmw32_u.cmpxchg":return h("atomic.cmpxchg",e,s.Type.u32,r,s.Type.u64,i);case"i64.atomic.rmw.cmpxchg":return h("atomic.cmpxchg",e,s.Type.u64,r,s.Type.u64,i);case"i32.wait":return h("atomic.wait",e,s.Type.i32,r,s.Type.u32,i);case"i64.wait":return h("atomic.wait",e,s.Type.i64,r,s.Type.i64,i);case"i32.notify":return h("atomic.notify",e,s.Type.i32,r,s.Type.u32,i);case"i64.notify":return h("atomic.notify",e,s.Type.i64,r,s.Type.i64,i)}return 0}(e,t,n,0,u);return ne?(r&&r.length&&e.error(i.DiagnosticCode.Type_0_is_not_generic,u.range,t.internalName),ne):(e.error(i.DiagnosticCode.Cannot_find_name_0,u.expression.range,t.internalName),f.createUnreachable())}function h(e,t,r,n,i,a){var s=e.split("."),o=assert(t.program.elementsLookup.get(s[0]));if(s.length>1)for(var l=1;l1&&e.error(i.DiagnosticCode.Expected_0_type_arguments_but_got_1,n.range,"1",t.length.toString(10)),e.error(i.DiagnosticCode.Expected_0_arguments_but_got_1,n.range,"1",r.length.toString(10)),null}function d(e,t){var r,n;return e.options.isWasm64?(r=e.precomputeExpression(t,s.Type.usize64,1,0),(o.getExpressionId(r)!=o.ExpressionId.Const||o.getExpressionType(r)!=o.NativeType.I64||0!=o.getConstValueI64High(r)||(n=o.getConstValueI64Low(r))<0)&&(e.error(i.DiagnosticCode.Expression_must_be_a_compile_time_constant,t.range),n=-1)):(r=e.precomputeExpression(t,s.Type.usize32,1,0),(o.getExpressionId(r)!=o.ExpressionId.Const||o.getExpressionType(r)!=o.NativeType.I32||(n=o.getConstValueI32(r))<0)&&(e.error(i.DiagnosticCode.Expression_must_be_a_compile_time_constant,t.range),n=-1)),n}function y(e,t,r){var n=e.program,i=e.module,a=n.typesLookup.get("string");if(!a)return i.createUnreachable();var c=n.abortInstance;if(!c||!e.compileFunction(c))return i.createUnreachable();var l=null!=t?e.compileExpression(t,a,1,0):a.toNativeZero(i),p=e.ensureStaticString(r.range.source.normalizedPath);return e.currentType=s.Type.void,i.createBlock(null,[i.createCall(c.internalName,[l,p,i.createI32(r.range.line),i.createI32(r.range.column)],o.NativeType.None),i.createUnreachable()])}t.compileCall=u,t.compileAbort=y,t.compileIterateRoots=function(e){var t,r,i=e.module,a=new Array;try{for(var l=n(e.program.elementsLookup.values()),u=l.next();!u.done;u=l.next()){var h=u.value;if(h.kind==c.ElementKind.GLOBAL){var _=h,d=_.type.classReference;if(_.is(p.CommonFlags.COMPILED)&&null!==d&&!d.hasDecorator(c.DecoratorFlags.UNMANAGED))if(_.is(p.CommonFlags.INLINED)){var y=_.constantIntegerValue;a.push(i.createCallIndirect(i.createGetLocal(0,o.NativeType.I32),[e.options.isWasm64?i.createI64(i64_low(y),i64_high(y)):i.createI32(i64_low(y))],"i_"))}else a.push(i.createCallIndirect(i.createGetLocal(0,o.NativeType.I32),[i.createGetGlobal(_.internalName,e.options.nativeSizeType)],"i_"))}}}catch(e){t={error:e}}finally{try{u&&!u.done&&(r=l.return)&&r.call(l)}finally{if(t)throw t.error}}var m=e.ensureFunctionType([s.Type.i32],s.Type.void);i.addFunction("~iterateRoots",m,[],a.length?i.createBlock(null,a):i.createNop())},t.ensureGCHook=function e(t,r){var i,a,l=t.program;assert(r.type.isManaged(l));var u=r.gcHookIndex;if(-1!=u)return u;var h=r.members;if(r.prototype.declaration.range.source.isLibrary&&null!==h&&h.has("__gc")){var _=assert(h.get("__gc"));assert(_.kind==c.ElementKind.FUNCTION_PROTOTYPE);var d=assert(l.resolver.resolveFunction(_,null));assert(d.is(p.CommonFlags.PRIVATE|p.CommonFlags.INSTANCE)),assert(!d.isAny(p.CommonFlags.AMBIENT|p.CommonFlags.VIRTUAL)),assert(0==d.signature.parameterTypes.length),assert(d.signature.returnType==s.Type.void),d.internalName=r.internalName+"~gc",assert(t.compileFunction(d));var y=t.ensureFunctionTableEntry(d);return r.gcHookIndex=y,y}var m=t.module,g=t.options,T=g.nativeSizeType,E=g.usizeType.byteSize,f=new Array;f.push(m.createIf(m.createUnary(g.isWasm64?o.UnaryOp.EqzI64:o.UnaryOp.EqzI32,m.createGetLocal(0,T)),m.createReturn()));var I=t.functionTable,v=I.length;I.push(""),r.gcHookIndex=v;var A=r.base;if(A?(assert(A.type.isManaged(l)),f.push(m.createCallIndirect(m.createI32(e(t,A.type.classReference)),[m.createGetLocal(0,T)],T==o.NativeType.I64?"I_":"i_"))):f.push(m.createCall(assert(l.gcMarkInstance).internalName,[m.createGetLocal(0,T)],o.NativeType.None)),h)try{for(var C=n(h.values()),S=C.next();!S.done;S=C.next()){var N=S.value;if(N.kind==c.ElementKind.FIELD&&N.parent===r&&N.type.isManaged(l)){var O=N.memoryOffset;assert(O>=0),f.push(m.createCall(assert(l.gcMarkInstance).internalName,[m.createLoad(E,!1,m.createGetLocal(0,T),T,O)],o.NativeType.None))}}}catch(e){i={error:e}}finally{try{S&&!S.done&&(a=C.return)&&a.call(C)}finally{if(i)throw i.error}}var x=r.internalName+"~gc";return m.addFunction(x,t.ensureFunctionType(null,s.Type.void,g.usizeType),null,m.createBlock(null,f)),I[v]=x,v}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bitsetIs=function(e,t){return assert(t>=0&&t<64),i64_ne(i64_and(e,i64_shl(i64_one,i64_new(t))),i64_zero)},t.bitsetSet=function(e,t,r){return assert(t>=0&&t<64),r?i64_or(e,i64_shl(i64_one,i64_new(t))):i64_and(e,i64_not(i64_shl(i64_one,i64_new(t))))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.NULL=0]="NULL",e[e.LINEFEED=10]="LINEFEED",e[e.CARRIAGERETURN=13]="CARRIAGERETURN",e[e.LINESEPARATOR=8232]="LINESEPARATOR",e[e.PARAGRAPHSEPARATOR=8233]="PARAGRAPHSEPARATOR",e[e.NEXTLINE=133]="NEXTLINE",e[e.SPACE=32]="SPACE",e[e.NONBREAKINGSPACE=160]="NONBREAKINGSPACE",e[e.ENQUAD=8192]="ENQUAD",e[e.EMQUAD=8193]="EMQUAD",e[e.ENSPACE=8194]="ENSPACE",e[e.EMSPACE=8195]="EMSPACE",e[e.THREEPEREMSPACE=8196]="THREEPEREMSPACE",e[e.FOURPEREMSPACE=8197]="FOURPEREMSPACE",e[e.SIXPEREMSPACE=8198]="SIXPEREMSPACE",e[e.FIGURESPACE=8199]="FIGURESPACE",e[e.PUNCTUATIONSPACE=8200]="PUNCTUATIONSPACE",e[e.THINSPACE=8201]="THINSPACE",e[e.HAIRSPACE=8202]="HAIRSPACE",e[e.ZEROWIDTHSPACE=8203]="ZEROWIDTHSPACE",e[e.NARROWNOBREAKSPACE=8239]="NARROWNOBREAKSPACE",e[e.IDEOGRAPHICSPACE=12288]="IDEOGRAPHICSPACE",e[e.MATHEMATICALSPACE=8287]="MATHEMATICALSPACE",e[e.OGHAM=5760]="OGHAM",e[e._=95]="_",e[e._0=48]="_0",e[e._1=49]="_1",e[e._2=50]="_2",e[e._3=51]="_3",e[e._4=52]="_4",e[e._5=53]="_5",e[e._6=54]="_6",e[e._7=55]="_7",e[e._8=56]="_8",e[e._9=57]="_9",e[e.a=97]="a",e[e.b=98]="b",e[e.c=99]="c",e[e.d=100]="d",e[e.e=101]="e",e[e.f=102]="f",e[e.g=103]="g",e[e.h=104]="h",e[e.i=105]="i",e[e.j=106]="j",e[e.k=107]="k",e[e.l=108]="l",e[e.m=109]="m",e[e.n=110]="n",e[e.o=111]="o",e[e.p=112]="p",e[e.q=113]="q",e[e.r=114]="r",e[e.s=115]="s",e[e.t=116]="t",e[e.u=117]="u",e[e.v=118]="v",e[e.w=119]="w",e[e.x=120]="x",e[e.y=121]="y",e[e.z=122]="z",e[e.A=65]="A",e[e.B=66]="B",e[e.C=67]="C",e[e.D=68]="D",e[e.E=69]="E",e[e.F=70]="F",e[e.G=71]="G",e[e.H=72]="H",e[e.I=73]="I",e[e.J=74]="J",e[e.K=75]="K",e[e.L=76]="L",e[e.M=77]="M",e[e.N=78]="N",e[e.O=79]="O",e[e.P=80]="P",e[e.Q=81]="Q",e[e.R=82]="R",e[e.S=83]="S",e[e.T=84]="T",e[e.U=85]="U",e[e.V=86]="V",e[e.W=87]="W",e[e.X=88]="X",e[e.Y=89]="Y",e[e.Z=90]="Z",e[e.AMPERSAND=38]="AMPERSAND",e[e.ASTERISK=42]="ASTERISK",e[e.AT=64]="AT",e[e.BACKSLASH=92]="BACKSLASH",e[e.BACKTICK=96]="BACKTICK",e[e.BAR=124]="BAR",e[e.CARET=94]="CARET",e[e.CLOSEBRACE=125]="CLOSEBRACE",e[e.CLOSEBRACKET=93]="CLOSEBRACKET",e[e.CLOSEPAREN=41]="CLOSEPAREN",e[e.COLON=58]="COLON",e[e.COMMA=44]="COMMA",e[e.DOLLAR=36]="DOLLAR",e[e.DOT=46]="DOT",e[e.DOUBLEQUOTE=34]="DOUBLEQUOTE",e[e.EQUALS=61]="EQUALS",e[e.EXCLAMATION=33]="EXCLAMATION",e[e.GREATERTHAN=62]="GREATERTHAN",e[e.HASH=35]="HASH",e[e.LESSTHAN=60]="LESSTHAN",e[e.MINUS=45]="MINUS",e[e.OPENBRACE=123]="OPENBRACE",e[e.OPENBRACKET=91]="OPENBRACKET",e[e.OPENPAREN=40]="OPENPAREN",e[e.PERCENT=37]="PERCENT",e[e.PLUS=43]="PLUS",e[e.QUESTION=63]="QUESTION",e[e.SEMICOLON=59]="SEMICOLON",e[e.SINGLEQUOTE=39]="SINGLEQUOTE",e[e.SLASH=47]="SLASH",e[e.TILDE=126]="TILDE",e[e.BACKSPACE=8]="BACKSPACE",e[e.FORMFEED=12]="FORMFEED",e[e.BYTEORDERMARK=65279]="BYTEORDERMARK",e[e.TAB=9]="TAB",e[e.VERTICALTAB=11]="VERTICALTAB"}(t.CharCode||(t.CharCode={})),t.isLineBreak=function(e){switch(e){case 10:case 13:case 8232:case 8233:return!0;default:return!1}},t.isWhiteSpace=function(e){switch(e){case 32:case 9:case 11:case 12:case 160:case 133:case 5760:case 8239:case 8287:case 12288:case 65279:return!0;default:return e>=8192&&e<=8203}},t.isDecimalDigit=function(e){return e>=48&&e<=57},t.isOctalDigit=function(e){return e>=48&&e<=55},t.isIdentifierStart=function(e){return e>=65&&e<=90||e>=97&&e<=122||36==e||95==e||e>127&&!((t=e)<0||t>65535)&&a(t,n);var t},t.isKeywordCharacter=function(e){return e>=97&&e<=122},t.isIdentifierPart=function(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||36==e||95==e||e>127&&!((t=e)<0||t>65535)&&a(t,i);var t};var n=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1319,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2208,2210,2220,2308,2361,2365,2365,2384,2384,2392,2401,2417,2423,2425,2431,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6263,6272,6312,6314,6314,6320,6389,6400,6428,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7401,7404,7406,7409,7413,7414,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42647,42656,42735,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43648,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],i=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1319,1329,1366,1369,1369,1377,1415,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1520,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2048,2093,2112,2139,2208,2208,2210,2220,2276,2302,2304,2403,2406,2415,2417,2423,2425,2431,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3161,3168,3171,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3330,3331,3333,3340,3342,3344,3346,3386,3389,3396,3398,3400,3402,3406,3415,3415,3424,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6428,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7376,7378,7380,7414,7424,7654,7676,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42647,42655,42737,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43047,43072,43123,43136,43204,43216,43225,43232,43255,43259,43259,43264,43309,43312,43347,43360,43388,43392,43456,43471,43481,43520,43574,43584,43597,43600,43609,43616,43638,43642,43643,43648,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65062,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500];function a(e,t){if(e=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}},i=this&&this.__read||function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,a=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)s.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(i)throw i.error}}return s};Object.defineProperty(t,"__esModule",{value:!0}),t.makeArray=function(e){if(void 0===e&&(e=null),e){for(var t=new Array(e.length),r=0,n=e.length;r0||i=0;)if(e.charCodeAt(a)==n){r-a==3&&46==e.charCodeAt(a+1)&&46==e.charCodeAt(a+2)||(e=t?e.substring(0,a):e.substring(0,a)+e.substring(r+3),i-=r+3-a,r=a-1);break}if(a<0&&r>0&&(2!=r||46!=e.charCodeAt(0)||46!=e.charCodeAt(1))){i=(e=e.substring(r+4)).length;continue}}}r++}return i>0?e:"."}function a(e){for(var t=e.length;--t>0;)if(e.charCodeAt(t)==n)return e.substring(0,t);return"."}t.normalizePath=i,t.resolvePath=function(e,t){return e.startsWith("std/")?e:i(a(t)+String.fromCharCode(n)+e)},t.dirname=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=" ",i=" ",a=" ";t.indent=function(e,t){for(;t>=4;)e.push(a),t-=4;t>=2&&(e.push(i),t-=2),t&&e.push(n)}},function(e,t,r){"use strict";function n(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24}function i(e,t,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function a(e,t){var r=n(e,t),i=n(e,t+4);return i64_new(r,i)}Object.defineProperty(t,"__esModule",{value:!0}),t.readI8=function(e,t){return e[t]},t.writeI8=function(e,t,r){t[r]=e},t.readI16=function(e,t){return e[t]|e[t+1]<<8},t.writeI16=function(e,t,r){t[r]=e,t[r+1]=e>>>8},t.readI32=n,t.writeI32=i,t.readI64=a,t.writeI64=function(e,t,r){i(i64_low(e),t,r),i(i64_high(e),t,r+4)},t.readF32=function(e,t){return i32_as_f32(n(e,t))},t.writeF32=function(e,t,r){i(f32_as_i32(e),t,r)},t.readF64=function(e,t){return i64_as_f64(a(e,t))},t.writeF64=function(e,t,r){var n=f64_as_i64(e);i(i64_low(n),t,r),i(i64_high(n),t,r+4)}},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0});var i=r(9),a=r(12),s=r(13),o=r(2);t.formatDiagnostic=o.formatDiagnosticMessage;var c=r(14);t.parseFile=function(e,t,r,n){return void 0===r&&(r=!1),void 0===n&&(n=null),n||(n=new c.Parser),n.parseFile(e,t,r),n},t.nextFile=function(e){return e.nextFile()},t.nextDiagnostic=function(e){var t=e.program;return t.diagnosticsOffset>2];c=e+c+15&-16;if(c<=y)w[la>>2]=c;else if(!ma(c))return 0;return e}var z=0,na=!1;function assert(c,e){c||u("Assertion failed: "+e)} -function oa(c,e){if("number"===typeof c){var g=!0;var b=c}else g=!1,b=c.length;var d;3==e?d=h:d=[A,pa,ka][e](Math.max(b,1));if(g){var h=d;assert(0==(d&3));for(c=d+(b&-4);h>2]=0;for(c=d+b;h>0]=0;return d}c.subarray||c.slice?C.set(c,d):C.set(new Uint8Array(c),d);return d}function D(){u("this function has been removed - you should use UTF8ToString(ptr, maxBytesToRead) instead!")}var qa="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0; -function ra(c,e,g){var b=e+g;for(g=e;c[g]&&!(g>=b);)++g;if(16d?b+=String.fromCharCode(d):(d-=65536,b+=String.fromCharCode(55296|d>>10,56320|d&1023))}}else b+=String.fromCharCode(d)}return b}function E(c){return c?ra(C,c,void 0):""} -function sa(c,e,g,b){if(!(0=k){var l=c.charCodeAt(++h);k=65536+((k&1023)<<10)|l&1023}if(127>=k){if(g>=b)break;e[g++]=k}else{if(2047>=k){if(g+1>=b)break;e[g++]=192|k>>6}else{if(65535>=k){if(g+2>=b)break;e[g++]=224|k>>12}else{if(g+3>=b)break;e[g++]=240|k>>18;e[g++]=128|k>>12&63}e[g++]=128|k>>6&63}e[g++]=128|k&63}}e[g]=0;return g-d} -function ta(c){for(var e=0,g=0;g=b&&(b=65536+((b&1023)<<10)|c.charCodeAt(++g)&1023);127>=b?++e:e=2047>=b?e+2:65535>=b?e+3:e+4}return e}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");function ua(c,e){for(var g=0;g>0]=c.charCodeAt(g);B[e>>0]=0}function va(c){0y&&ja("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+y+"! (TOTAL_STACK=5242880)");a.buffer?buffer=a.buffer:(buffer=new ArrayBuffer(y),a.buffer=buffer);xa(); -w[la>>2]=5394944;function ya(c){for(;0>2];var g=w[e>>2]}else hb.da=!0,I.USER=I.LOGNAME="web_user",I.PATH="/",I.PWD="/",I.HOME="/home/web_user",I.LANG="C.UTF-8",I._=a.thisProgram,g=Fa?A(1024):ka(1024),e=Fa?A(256):ka(256),w[e>>2]=g,w[c>>2]=e;c=[];var b=0,d;for(d in I)if("string"===typeof I[d]){var h=d+"="+I[d];c.push(h);b+=h.length}if(1024>2]=g,g+=h.length+1;w[e+4*c.length>>2]=0} -function ib(c){try{return J(c)}catch(e){}}var jb=0,kb=[],K={};function lb(c){if(!c||K[c])return c;for(var e in K)for(var g=+e,b=K[g].oa,d=b.length,h=0;h>2]=c;c=L.buffer;for(var d=0;d>2],e.oa.push(c),z=b[d],c|0;c=w[c>>2];z=g;return c|0}function nb(c){a.___errno_location&&(w[a.___errno_location()>>2]=c);return c}var ob=[null,[],[]]; -function pb(c,e){var g=ob[c];0===e||10===e?((1===c?v:ja)(ra(g,0)),g.length=0):g.push(e)}var M=0;function N(){M+=4;return w[M-4>>2]}var O={};function P(){u()}function qb(){return n||"undefined"!==typeof dateNow||(ba||m)&&self.performance&&self.performance.now} -function rb(c){try{var e=new ArrayBuffer(c);if(e.byteLength!=c)return!1;(new Int8Array(e)).set(B)}catch(g){return!1}a._emscripten_replace_memory(e);B=new Int8Array(e);new Int16Array(e);w=new Int32Array(e);C=new Uint8Array(e);new Uint16Array(e);wa=new Uint32Array(e);new Float32Array(e);new Float64Array(e);return buffer=e} -function ma(c){if(2130706432=e?e=va(2*e):e=Math.min(va((3*e+2147483648)/4),2130706432);var g=rb(e);if(!g||g.byteLength!=e)return!1;a.buffer=buffer=g;xa();y=e;wa[la>>2]=c;return!0}function sb(c){if(0===c)return 0;c=E(c);if(!I.hasOwnProperty(c))return 0;sb.da&&J(sb.da);c=I[c];var e=ta(c)+1,g=A(e);g&&sa(c,B,g,e);sb.da=g;return sb.da}function R(){R.da||(R.da=[]);R.da.push(S());return R.da.length-1}var tb={},ub=1; -function vb(c,e){vb.da||(vb.da={});c in vb.da||(wb(e),vb.da[c]=1)}function xb(c){return 0===c%4&&(0!==c%100||0===c%400)}function yb(c,e){for(var g=0,b=0;b<=e;g+=c[b++]);return g}var zb=[31,29,31,30,31,30,31,31,30,31,30,31],Ab=[31,28,31,30,31,30,31,31,30,31,30,31]; -function Bb(c,e){for(c=new Date(c.getTime());0b-c.getDate())e-=b-c.getDate()+1,c.setDate(1),11>g?c.setMonth(g+1):(c.setMonth(0),c.setFullYear(c.getFullYear()+1));else{c.setDate(c.getDate()+e);break}}return c} -function Cb(c,e,g,b){function d(b,c,d){for(b="number"===typeof b?b.toString():b||"";b.lengthb?-1:0=k(l(new Date(b.getFullYear(),0,4)),b)?0>=k(c,b)?b.getFullYear()+1:b.getFullYear():b.getFullYear()-1}var r=w[b+40>>2];b={xa:w[b>>2],wa:w[b+4>>2],la:w[b+8>>2],ga:w[b+12>>2],fa:w[b+16>>2],ea:w[b+20>>2],sa:w[b+24>>2],ma:w[b+28>>2],Ja:w[b+32>>2],va:w[b+36>>2], -ya:r?E(r):""};g=E(g);r={"%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 x in r)g=g.replace(new RegExp(x,"g"),r[x]);var Q="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),G="January February March April May June July August September October November December".split(" ");r={"%a":function(b){return Q[b.sa].substring(0,3)},"%A":function(b){return Q[b.sa]},"%b":function(b){return G[b.fa].substring(0, -3)},"%B":function(b){return G[b.fa]},"%C":function(b){return h((b.ea+1900)/100|0,2)},"%d":function(b){return h(b.ga,2)},"%e":function(b){return d(b.ga,2," ")},"%g":function(b){return q(b).toString().substring(2)},"%G":function(b){return q(b)},"%H":function(b){return h(b.la,2)},"%I":function(b){b=b.la;0==b?b=12:12b.la?"AM":"PM"},"%S":function(b){return h(b.xa,2)},"%t":function(){return"\t"},"%u":function(b){return(new Date(b.ea+1900,b.fa+1,b.ga,0,0,0,0)).getDay()||7},"%U":function(b){var c=new Date(b.ea+1900,0,1),d=0===c.getDay()?c:Bb(c,7-c.getDay());b=new Date(b.ea+1900,b.fa,b.ga);return 0>k(d,b)?h(Math.ceil((31-d.getDate()+(yb(xb(b.getFullYear())?zb:Ab,b.getMonth()-1)-31)+b.getDate())/7),2):0===k(d,c)?"01":"00"},"%V":function(b){var c=l(new Date(b.ea+1900,0,4)),d=l(new Date(b.ea+ -1901,0,4)),e=Bb(new Date(b.ea+1900,0,1),b.ma);return 0>k(e,c)?"53":0>=k(d,e)?"01":h(Math.ceil((c.getFullYear()k(d,b)?h(Math.ceil((31-d.getDate()+(yb(xb(b.getFullYear())?zb:Ab,b.getMonth()-1)-31)+b.getDate())/7),2):0===k(d,c)?"01": -"00"},"%y":function(b){return(b.ea+1900).toString().substring(2)},"%Y":function(b){return b.ea+1900},"%z":function(b){b=b.va;var c=0<=b;b=Math.abs(b)/60;return(c?"+":"-")+String("0000"+(b/60*100+b%60)).slice(-4)},"%Z":function(b){return b.ya},"%%":function(){return"%"}};for(x in r)0<=g.indexOf(x)&&(g=g.replace(new RegExp(x,"g"),r[x](b)));x=Db(g,!1);if(x.length>e)return 0;B.set(x,c);return x.length-1} -n?P=function(){var c=process.hrtime();return 1E3*c[0]+c[1]/1E6}:"undefined"!==typeof dateNow?P=dateNow:"object"===typeof self&&self.performance&&"function"===typeof self.performance.now?P=function(){return self.performance.now()}:"object"===typeof performance&&"function"===typeof performance.now?P=function(){return performance.now()}:P=Date.now;var Eb=!1;function Db(c,e){var g=Array(ta(c)+1);c=sa(c,g,0,g.length);e&&(g.length=c);return g} -function ia(c){for(var e=[],g=0;g>4; -d=(d&15)<<4|h>>2;var l=(h&3)<<6|k;e+=String.fromCharCode(b);64!==h&&(e+=String.fromCharCode(d));64!==k&&(e+=String.fromCharCode(l))}while(g>2]=g.position;g.ta&&0===b&&0===h&& -(g.ta=null);return 0}catch(k){return u(k),-k.ha}},W:function(c,e){M=e;try{var g=O.ra(),b=N(),d=N();return O.Ba(g,b,d)}catch(h){return u(h),-h.ha}},X:function(c,e){M=e;try{var g=N(),b=N(),d=N();for(e=c=0;e>2],k=w[b+(8*e+4)>>2],l=0;l>2]=c/1E3|0;w[e+4>>2]=c%1E3*1E6|0;return 0}, -aj:function(){return y},ak:P,al:qb,am:function(c,e,g){C.set(C.subarray(e,e+g),c)},an:ma,ao:function(c){fc(c)},ap:sb,aq:function(c,e){return 0>e||0===e&&0>1/e?-Ha(c):Ha(c)},ar:function(c,e){return 0>e||0===e&&0>1/e?-Ha(c):Ha(c)},as:function(c){return c},at:function(c){var e=R.da[c];R.da.splice(c,1);T(e)},au:R,av:function(){u("trap!")},aw:Ia,ax:Ia,ay:function(){return 0},az:function(){return 0},aA:function(){return 0},aB:function(c,e){return c==e},aC:function(c){return tb[c]||0},aD:function(){},aE:function(c){if(0== -c)return 22;w[c>>2]=ub;tb[ub]=0;ub++;return 0},aF:function(){},aG:vb,aH:function(c,e){if(!(c in tb))return 22;tb[c]=e;return 0},aI:Cb,aJ:function(c,e,g,b){return Cb(c,e,g,b)},aK:function(c){u("Cannot enlarge memory arrays to size "+c+" bytes. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+y+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}, -aL:rb,aM:function(){var c=a._fflush;c&&c(0);ob[1].length&&pb(1,10);ob[2].length&&pb(2,10)},aN:152048,aO:la,aP:151888};// EMSCRIPTEN_START_ASM -var V=(/** @suppress {uselessCode} */ function(global,env,buffer) { -"almost asm";var a=new global.Int8Array(buffer),b=new global.Int16Array(buffer),c=new global.Int32Array(buffer),d=new global.Uint8Array(buffer),e=new global.Uint16Array(buffer),f=new global.Uint32Array(buffer),g=new global.Float32Array(buffer),h=new global.Float64Array(buffer),i=env.aN|0,j=env.aO|0,k=env.aP|0,l=global.NaN,m=global.Infinity,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=global.Math.floor,w=global.Math.abs,x=global.Math.sqrt,y=global.Math.pow,z=global.Math.cos,A=global.Math.sin,B=global.Math.tan,C=global.Math.acos,D=global.Math.asin,E=global.Math.atan,F=global.Math.atan2,G=global.Math.exp,H=global.Math.log,I=global.Math.ceil,J=global.Math.imul,K=global.Math.min,L=global.Math.max,M=global.Math.clz32,N=env.a,O=env.b,P=env.c,Q=env.d,R=env.e,S=env.f,T=env.g,U=env.h,V=env.i,W=env.j,X=env.k,Y=env.l,Z=env.m,_=env.n,$=env.o,aa=env.p,ba=env.q,ca=env.r,da=env.s,ea=env.t,fa=env.u,ga=env.v,ha=env.w,ia=env.x,ja=env.y,ka=env.z,la=env.A,ma=env.B,na=env.C,oa=env.D,pa=env.E,qa=env.F,ra=env.G,sa=env.H,ta=env.I,ua=env.J,va=env.K,wa=env.L,xa=env.M,ya=env.N,za=env.O,Aa=env.P,Ba=env.Q,Ca=env.R,Da=env.S,Ea=env.T,Fa=env.U,Ga=env.V,Ha=env.W,Ia=env.X,Ja=env.Y,Ka=env.Z,La=env._,Ma=env.$,Na=env.aa,Oa=env.ab,Pa=env.ac,Qa=env.ad,Ra=env.ae,Sa=env.af,Ta=env.ag,Ua=env.ah,Va=env.ai,Wa=env.aj,Xa=env.ak,Ya=env.al,Za=env.am,_a=env.an,$a=env.ao,ab=env.ap,bb=env.aq,cb=env.ar,db=env.as,eb=env.at,fb=env.au,gb=env.av,hb=env.aw,ib=env.ax,jb=env.ay,kb=env.az,lb=env.aA,mb=env.aB,nb=env.aC,ob=env.aD,pb=env.aE,qb=env.aF,rb=env.aG,sb=env.aH,tb=env.aI,ub=env.aJ,vb=env.aK,wb=env.aL,xb=env.aM,yb=152064,zb=5394944,Ab=0.0;function Bb(newBuffer){a=new Int8Array(newBuffer);b=new Int16Array(newBuffer);c=new Int32Array(newBuffer);d=new Uint8Array(newBuffer);e=new Uint16Array(newBuffer);f=new Uint32Array(newBuffer);g=new Float32Array(newBuffer);h=new Float64Array(newBuffer);buffer=newBuffer;return true} -// EMSCRIPTEN_START_FUNCS -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,k=0,l=0,m=0;m=yb;yb=yb+32|0;i=m+28|0;g=m+24|0;h=m+8|0;j=m+4|0;k=m;if(c[b+32>>2]|0)ma(75316,51625,1173,53290);l=Dia()|0;Pwb(g,0);f=b+28|0;e=c[f>>2]|0;d=c[a>>2]|0;do if(HYa(d,e)|0){DW(h,1,d,c[a+8>>2]|0,c[37043]|0);n=0;d=U(56,l|0,2)|0;e=n;n=0;if(e&1){m=sa()|0;P()|0;dha(h);Ea(m|0)}e=c[d>>2]|0;n=0;d=V(45,a|0,c[f>>2]|0,h|0)|0;f=n;n=0;if(f&1){m=sa()|0;P()|0;dha(h);Ea(m|0)}n=0;da(76,e|0,d|0);f=n;n=0;if(f&1){m=sa()|0;P()|0;dha(h);Ea(m|0)}n=0;d=S(224,h|0)|0;f=n;n=0;if(f&1){m=sa()|0;P()|0;dha(h);Ea(m|0)}else{c[g>>2]=d;dha(h);break}}else{d=uga(a,e,c[37044]|0)|0;c[g>>2]=d}while(0);f=sba(mG(d,0)|0)|0;e=rrb(l,1)|0;KJa(WCb(c[e>>2]|0)|0,f)|0;e=b+12|0;g=b+8|0;d=0;while(1){if(d>>>0>=(WCb(c[e>>2]|0)|0)>>>0)break;YX(f,ysb(+(d>>>0))|0);h=uXa(g,d)|0;c[j>>2]=c[h>>2];h=c[a>>2]|0;c[i>>2]=c[j>>2];jM(f,Oaa(G2(Kha(h,i,2)|0)|0)|0);d=d+1|0}HV(f);c[k>>2]=c[b+24>>2];j=c[a>>2]|0;c[i>>2]=c[k>>2];jM(f,Oaa(G2(Kha(j,i,2)|0)|0)|0);yb=m;return l|0}function xk(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=yb;yb=yb+64|0;p=u+48|0;q=u+40|0;i=u+32|0;l=u+28|0;m=u+24|0;o=u+20|0;t=u+8|0;r=u+4|0;s=u;j=d+16|0;k=d+20|0;f=c[k>>2]|0;e=c[j>>2]|0;while(1){if((e|0)==(f|0))break;NKa(b,vub(c[e>>2]|0)|0,d,132344);e=e+4|0}f=c[d+32>>2]|0;e=c[d+28>>2]|0;while(1){if((e|0)==(f|0))break;NKa(b,vub(c[e>>2]|0)|0,d,132376);e=e+4|0}g=d+44|0;e=c[g>>2]|0;f=c[e+4>>2]|0;if((f|0)!=6)uva(b,c[d+12>>2]|0,f,e,132406);e=b+68|0;f=c[e>>2]|0;if((f|0)!=6)uva(b,c[d+12>>2]|0,f,c[g>>2]|0,132457);PGa(b,(c[b+60>>2]|0)==0,c[g>>2]|0,132509)|0;c[e>>2]=6;$6(b+72|0);if(a[(c[b+44>>2]|0)+1>>0]&1?(h=c[d+40>>2]|0,eCb(h)|0):0){g=WCb(c[b+36>>2]|0)|0;c[i>>2]=h;c[p>>2]=c[i>>2];h=sQ(g,p)|0;g=c[h+12>>2]|0;f=c[h+8>>2]|0;e=c[j>>2]|0;a:do if((g-f|0)==((c[k>>2]|0)-e|0))while(1){if((f|0)==(g|0)){e=1;break a}if((c[f>>2]|0)!=(c[e>>2]|0)){e=0;break a}f=f+4|0;e=e+4|0}else e=0;while(0);k=d+8|0;c[l>>2]=c[k>>2];c[p>>2]=c[l>>2];rea(b,e,p,132544);l=(c[h+4>>2]|0)==(c[d+12>>2]|0);c[m>>2]=c[k>>2];c[p>>2]=c[m>>2];rea(b,l,p,132589)}if(Yrb(d)|0){m=eCb(c[d+40>>2]|0)|0;c[o>>2]=c[d+8>>2];c[p>>2]=c[o>>2];rea(b,m,p,132634)}yib(t);g=d+56|0;h=q+4|0;e=c[d+52>>2]|0;while(1){if((g|0)==(e|0)){e=34;break}f=c[e+20>>2]|0;c[r>>2]=f;n=0;fa(98,q|0,t|0,r|0,r|0);d=n;n=0;if(d&1){e=35;break}d=(a[h>>0]&1)!=0;c[s>>2]=f;n=0;c[p>>2]=c[s>>2];fa(176,b|0,d|0,p|0,132679);d=n;n=0;if(d&1){e=35;break}f=e;e=c[f+4>>2]|0;b:do if(!e)while(1){e=c[f+8>>2]|0;if((f|0)==(c[e>>2]|0))break b;f=e}else while(1){f=c[e>>2]|0;if(!f)break;e=f}while(0)}if((e|0)==34){Khb(t);yb=u;return}else if((e|0)==35){u=sa()|0;P()|0;Khb(t);Ea(u|0)}}function yk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=yb;yb=yb+16|0;h=i;a:do if(((((b|0)!=(d|0)?(a[b>>0]|0)==90:0)?(j=b+1|0,f=Nc(j,d,e)|0,!((f|0)==(j|0)|(f|0)==(d|0))):0)?(a[f>>0]|0)==69:0)?(g=f+1|0,(g|0)!=(d|0)):0){switch(a[g>>0]|0){case 115:{b=mL(f+2|0,d)|0;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;NLa(f+-24|0,141288)|0;break a}case 100:{f=f+2|0;if((f|0)==(d|0))break a;f=M5(f,d)|0;if((f|0)==(d|0))break a;if((a[f>>0]|0)!=95)break a;j=f+1|0;g=qj(j,d,e)|0;d=e+4|0;if((g|0)==(j|0)){g=c[d>>2]|0;f=0;while(1){if((f|0)==-1)break;j=f+-1|0;J2a(g+(j*24|0)|0);f=j}c[d>>2]=g+-24;break a}f=c[d>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(h,f+-24|0);f=c[d>>2]|0;b=0;while(1){if((b|0)==-1)break;j=b+-1|0;J2a(f+(j*24|0)|0);b=j}c[d>>2]=f+-24;n=0;U(216,f+-48|0,140001)|0;j=n;n=0;if(!(j&1)?(j=a[h+11>>0]|0,e=j<<24>>24<0,n=0,V(124,(c[d>>2]|0)+-24|0,(e?c[h>>2]|0:h)|0,(e?c[h+4>>2]|0:j&255)|0)|0,j=n,n=0,!(j&1)):0){Chb(h);b=g;break a}b=sa()|0;P()|0;Chb(h);break}default:{f=qj(g,d,e)|0;if((f|0)==(g|0)){g=e+4|0;d=c[g>>2]|0;f=0;while(1){if((f|0)==-1)break;j=f+-1|0;J2a(d+(j*24|0)|0);f=j}c[g>>2]=d+-24;break a}b=mL(f,d)|0;d=e+4|0;f=c[d>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(h,f+-24|0);g=c[d>>2]|0;f=0;while(1){if((f|0)==-1)break;j=f+-1|0;J2a(g+(j*24|0)|0);f=j}c[d>>2]=g+-24;n=0;U(216,g+-48|0,140001)|0;j=n;n=0;if(!(j&1)?(j=a[h+11>>0]|0,e=j<<24>>24<0,n=0,V(124,(c[d>>2]|0)+-24|0,(e?c[h>>2]|0:h)|0,(e?c[h+4>>2]|0:j&255)|0)|0,j=n,n=0,!(j&1)):0){Chb(h);break a}b=sa()|0;P()|0;Chb(h)}}Ea(b|0)}while(0);yb=i;return b|0}function zk(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,o=0,p=0,q=0,r=0,s=0,t=0;q=yb;yb=yb+144|0;f=q+116|0;h=q+112|0;s=q+100|0;p=q+88|0;j=q+76|0;e=q+72|0;k=q+68|0;l=q+64|0;r=q+48|0;o=q;g=q+24|0;c[h>>2]=d;if(!(HYa(c[b>>2]|0,d)|0))ma(52399,51625,1252,52417);c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;D8(p,51485,Zzb(51485)|0);t=c[b+12>>2]|0;c[e>>2]=c[d+24>>2];n=0;c[f>>2]=c[e>>2];e=U(70,t|0,f|0)|0;t=n;n=0;do if(!(t&1)?(n=0,da(89,j|0,e|0),t=n,n=0,!(t&1)):0){t=a[j+11>>0]|0;e=t<<24>>24<0;n=0;V(43,p|0,(e?c[j>>2]|0:j)|0,(e?c[j+4>>2]|0:t&255)|0)|0;t=n;n=0;if(t&1){e=sa()|0;P()|0;Chb(j);break}c[s>>2]=c[p>>2];c[s+4>>2]=c[p+4>>2];c[s+8>>2]=c[p+8>>2];e=0;while(1){if((e|0)==3)break;c[p+(e<<2)>>2]=0;e=e+1|0}Chb(j);Chb(p);n=0;ea(101,k|0,((a[s+11>>0]|0)<0?c[s>>2]|0:s)|0,0);t=n;n=0;if((!(t&1)?(n=0,i=Q(4)|0,t=n,n=0,!(t&1)):0)?(c[l>>2]=i,n=0,ga(4,r|0,1,c[b>>2]|0,c[b+8>>2]|0,c[37043]|0),t=n,n=0,!(t&1)):0){c[g>>2]=l;c[g+4>>2]=b;c[g+8>>2]=h;c[g+12>>2]=r;c[g+16>>2]=k;n=0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];da(90,o|0,f|0);t=n;n=0;do if(!(t&1)){n=0;e=Z(40,b|0,d+8|0,i|0,o|0,c[b+4>>2]|0,c[(c[h>>2]|0)+4>>2]|0)|0;t=n;n=0;if(t&1){e=sa()|0;P()|0;TIa(o);break}else{TIa(o);dha(r);Chb(s);yb=q;return e|0}}else{e=sa()|0;P()|0}while(0);dha(r)}else{e=sa()|0;P()|0}Chb(s);t=e;Ea(t|0)}else m=15;while(0);if((m|0)==15){e=sa()|0;P()|0}Chb(p);t=e;Ea(t|0);return 0}function Ak(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;n=yb;yb=yb+224|0;m=n+192|0;g=n+160|0;h=n+136|0;i=n+104|0;j=n+80|0;k=n+48|0;l=n+24|0;f=n;tw(g,d,c[e+8>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=n;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];tw(i,d,c[e+12>>2]|0);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=n;return}c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];c[j+20>>2]=c[g+20>>2];tw(k,d,c[e+16>>2]|0);c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2];c[g+20>>2]=c[k+20>>2];c[g+24>>2]=c[k+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=n;return}else{c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];c[l+8>>2]=c[g+8>>2];c[l+12>>2]=c[g+12>>2];c[l+16>>2]=c[g+16>>2];c[l+20>>2]=c[g+20>>2];jma(f,l,h,j);e=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,m);yb=n;return}}function Bk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=yb;yb=yb+32|0;v=z+20|0;A=z+8|0;w=z+4|0;x=z;y=c[b+128>>2]|0;d=0;s=c[b+124>>2]|0;a:while(1){if((s|0)==(y|0)){u=44;break}b=c[s>>2]|0;t=c[b+16>>2]|0;b=c[b+12>>2]|0;while(1){r=b;if((t|0)==(r|0))break;c[w>>2]=c[b>>2];q=Al(a,w)|0;l=c[s>>2]|0;c[x>>2]=l;c[v>>2]=l;p=pH(v,4)|0;o=q+4|0;j=c[o>>2]|0;m=(j|0)==0;b:do if(!m){f=j+-1|0;k=(j&f|0)==0;if(!k)if(p>>>0>>0)d=p;else d=(p>>>0)%(j>>>0)|0;else d=p&f;b=c[(c[q>>2]|0)+(d<<2)>>2]|0;if(!b)u=21;else while(1){b=c[b>>2]|0;if(!b){u=21;break b}e=c[b+4>>2]|0;if((e|0)!=(p|0)){if(!k){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&f;if((e|0)!=(d|0)){u=21;break b}}if((c[b+8>>2]|0)==(l|0))break b}}else u=21;while(0);if((u|0)==21){u=0;Uja(A,q,p,x);k=q+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[q+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)==0;u=25}else{d=0;u=25}}else if(m){d=0;b=0;u=25}do if((u|0)==25){u=0;m=b|(d^1)&1;l=~~+I(+(h/i))>>>0;n=0;da(994,q|0,(m>>>0>>0?l:m)|0);m=n;n=0;if(m&1)break a;b=c[o>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=p&d;break}if(p>>>0>>0){j=b;d=p}else{j=b;d=(p>>>0)%(b>>>0)|0}}while(0);b=c[(c[q>>2]|0)+(d<<2)>>2]|0;if(!b){p=q+8|0;b=c[A>>2]|0;c[b>>2]=c[p>>2];f=b;c[p>>2]=f;c[(c[q>>2]|0)+(d<<2)>>2]=p;if(c[b>>2]|0){b=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(b>>>0>=j>>>0)b=(b>>>0)%(j>>>0)|0}else b=b&e;c[(c[q>>2]|0)+(b<<2)>>2]=f}}else{q=c[A>>2]|0;c[q>>2]=c[b>>2];c[b>>2]=q}c[k>>2]=(c[k>>2]|0)+1;c[A>>2]=0}b=r+4|0}s=s+4|0}if((u|0)==44){yb=z;return}b=sa()|0;P()|0;d=c[A>>2]|0;c[A>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}function Ck(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3144,b);a=(ufb(d)|0)+8|0;if(eCb(c[a>>2]|0)|0)IW(e,3145,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3137,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3146,b);IW(e,3145,b);aX(e,(Tfb(d)|0)+16|0);IW(e,3145,b);IW(e,3137,(Tfb(d)|0)+12|0);IW(e,3145,b);IW(e,3137,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3147,b);IW(e,3137,(Efb(d)|0)+12|0);IW(e,3145,b);return}case 4:{e=a+16|0;IW(e,3148,b);IW(e,3145,b);aX(e,(tfb(d)|0)+16|0);aX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3149,b);IW(e,3145,b);aX(e,(cfb(d)|0)+32|0);IW(e,3137,(cfb(d)|0)+28|0);return}case 19:{e=a+16|0;IW(e,3150,b);IW(e,3145,b);aX(e,(Ueb(d)|0)+8|0);return}case 22:{e=a+16|0;IW(e,3151,b);IW(e,3145,b);return}default:{ad(a,b);return}}}function Dk(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3418,b);a=(ufb(d)|0)+8|0;if(eCb(c[a>>2]|0)|0)IW(e,3419,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3411,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3420,b);IW(e,3419,b);bX(e,(Tfb(d)|0)+16|0);IW(e,3419,b);IW(e,3411,(Tfb(d)|0)+12|0);IW(e,3419,b);IW(e,3411,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3421,b);IW(e,3411,(Efb(d)|0)+12|0);IW(e,3419,b);return}case 4:{e=a+16|0;IW(e,3422,b);IW(e,3419,b);bX(e,(tfb(d)|0)+16|0);bX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3423,b);IW(e,3419,b);bX(e,(cfb(d)|0)+32|0);IW(e,3411,(cfb(d)|0)+28|0);return}case 19:{e=a+16|0;IW(e,3424,b);IW(e,3419,b);bX(e,(Ueb(d)|0)+8|0);return}case 22:{e=a+16|0;IW(e,3425,b);IW(e,3419,b);return}default:{bd(a,b);return}}}function Ek(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3299,b);a=(ufb(d)|0)+8|0;if(eCb(c[a>>2]|0)|0)IW(e,3300,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3292,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3301,b);IW(e,3300,b);cX(e,(Tfb(d)|0)+16|0);IW(e,3300,b);IW(e,3292,(Tfb(d)|0)+12|0);IW(e,3300,b);IW(e,3292,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3302,b);IW(e,3292,(Efb(d)|0)+12|0);IW(e,3300,b);return}case 4:{e=a+16|0;IW(e,3303,b);IW(e,3300,b);cX(e,(tfb(d)|0)+16|0);cX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3304,b);IW(e,3300,b);cX(e,(cfb(d)|0)+32|0);IW(e,3292,(cfb(d)|0)+28|0);return}case 19:{e=a+16|0;IW(e,3305,b);IW(e,3300,b);cX(e,(Ueb(d)|0)+8|0);return}case 22:{e=a+16|0;IW(e,3306,b);IW(e,3300,b);return}default:{cd(a,b);return}}}function Fk(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3537,b);a=(ufb(d)|0)+8|0;if(eCb(c[a>>2]|0)|0)IW(e,3538,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3530,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3539,b);IW(e,3538,b);dX(e,(Tfb(d)|0)+16|0);IW(e,3538,b);IW(e,3530,(Tfb(d)|0)+12|0);IW(e,3538,b);IW(e,3530,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3540,b);IW(e,3530,(Efb(d)|0)+12|0);IW(e,3538,b);return}case 4:{e=a+16|0;IW(e,3541,b);IW(e,3538,b);dX(e,(tfb(d)|0)+16|0);dX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3542,b);IW(e,3538,b);dX(e,(cfb(d)|0)+32|0);IW(e,3530,(cfb(d)|0)+28|0);return}case 19:{e=a+16|0;IW(e,3543,b);IW(e,3538,b);dX(e,(Ueb(d)|0)+8|0);return}case 22:{e=a+16|0;IW(e,3544,b);IW(e,3538,b);return}default:{dd(a,b);return}}}function Gk(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3656,b);a=(ufb(d)|0)+8|0;if(eCb(c[a>>2]|0)|0)IW(e,3657,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3649,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3658,b);IW(e,3657,b);eX(e,(Tfb(d)|0)+16|0);IW(e,3657,b);IW(e,3649,(Tfb(d)|0)+12|0);IW(e,3657,b);IW(e,3649,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3659,b);IW(e,3649,(Efb(d)|0)+12|0);IW(e,3657,b);return}case 4:{e=a+16|0;IW(e,3660,b);IW(e,3657,b);eX(e,(tfb(d)|0)+16|0);eX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3661,b);IW(e,3657,b);eX(e,(cfb(d)|0)+32|0);IW(e,3649,(cfb(d)|0)+28|0);return}case 19:{e=a+16|0;IW(e,3662,b);IW(e,3657,b);eX(e,(Ueb(d)|0)+8|0);return}case 22:{e=a+16|0;IW(e,3663,b);IW(e,3657,b);return}default:{ed(a,b);return}}}function Hk(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,o=0,p=0;m=yb;yb=yb+48|0;p=m+24|0;o=m+12|0;h=m+36|0;l=m;f=c[b+12>>2]|0;c[p>>2]=0;i=p+4|0;c[i>>2]=0;j=p+8|0;c[j>>2]=0;n=0;ca(562,c[c[b>>2]>>2]|0);g=n;n=0;a:do if((!(g&1)?(n=0,da(4044,c[(c[c[b+4>>2]>>2]|0)+16>>2]|0,34),g=n,n=0,!(g&1)):0)?(n=0,e=U(198,c[c[b+8>>2]>>2]|0,34)|0,g=n,n=0,!(g&1)):0){b:do if(!e){g=f+16|0;c:while(1){n=0;e=S(325,c[g>>2]|0)|0;f=n;n=0;if(f&1){k=11;break}switch(e|0){case 34:break b;case -1:break c;default:{}}e=e&255;a[h>>0]=e;f=c[i>>2]|0;if(f>>>0>=(c[j>>2]|0)>>>0){n=0;da(4045,p|0,h|0);f=n;n=0;if(f&1){k=11;break}}else{a[f>>0]=e;c[i>>2]=(c[i>>2]|0)+1}}if((k|0)==11){e=sa()|0;P()|0;break a}g=oa(12)|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;m=Zzb(118458)|0;n=0;ea(95,o|0,118458,m|0);m=n;n=0;if(!(m&1)){n=0;da(4023,g|0,o|0);m=n;n=0;if(m&1)f=1;else{n=0;ea(122,g|0,37736,556);n=0;f=0}e=sa()|0;P()|0;Chb(o);if(!f){o=e;Vob(p);Ea(o|0)}}else{e=sa()|0;P()|0}va(g|0);o=e;Vob(p);Ea(o|0)}while(0);n=0;ca(562,c[c[b>>2]>>2]|0);o=n;n=0;if(!(o&1)?(k=c[p>>2]|0,o=c[i>>2]|0,c[l>>2]=0,c[l+4>>2]=0,c[l+8>>2]=0,n=0,ea(192,l|0,k|0,o|0),o=n,n=0,!(o&1)):0){e=d+11|0;if((a[e>>0]|0)<0){Fsb(c[d>>2]|0,0);c[d+4>>2]=0}else{Fsb(d,0);a[e>>0]=0}n=0;ca(510,d|0);o=n;n=0;if(o&1){o=ta(0)|0;P()|0;yub(o)}c[d>>2]=c[l>>2];c[d+4>>2]=c[l+4>>2];c[d+8>>2]=c[l+8>>2];e=0;while(1){if((e|0)==3)break;c[l+(e<<2)>>2]=0;e=e+1|0}Chb(l);Vob(p);yb=m;return}else k=12}else k=12;while(0);if((k|0)==12){e=sa()|0;P()|0}o=e;Vob(p);Ea(o|0)}function Ik(a,b){a=a|0;b=b|0;if(!b)ma(112644,134747,85,112649);do switch(c[b>>2]|0){case 1:{zH(a,b);return}case 2:{p5(a,b);return}case 3:{VP(a,b);return}case 4:{A2(a,b);return}case 5:{dF(a,b);return}case 6:{Yca(a,b);return}case 7:{owa(c[a+4>>2]|0,b);return}case 8:{Csa(a,b);return}case 9:{L5(a,b);return}case 10:{dca(a,b);return}case 11:{cca(a,b);return}case 12:{dv(a,b);return}case 13:{wv(a,b);return}case 23:{Uw(a,b);return}case 24:{wM(a,b);return}case 25:{N3(a,b);return}case 26:{oda(a,b);return}case 27:{Cy(a,b);return}case 28:{pE(a,b);return}case 29:{WI(a,b);return}case 30:{Rdb(c[a+4>>2]|0);return}case 31:{ly(c[a+4>>2]|0,c[b+8>>2]|0);return}case 32:{VRa(c[a+4>>2]|0,b);return}case 33:{JSa(c[a+4>>2]|0,b);return}case 34:{nfb(c[a+4>>2]|0);return}case 35:{mfb(c[a+4>>2]|0);return}case 14:{jla(c[a+4>>2]|0,b);return}case 15:{pf(c[a+4>>2]|0,c[b+8>>2]|0);return}case 16:{Oc(c[a+4>>2]|0,c[b+8>>2]|0);return}case 17:{_db(c[a+4>>2]|0);return}case 18:{Vhb(c[a+4>>2]|0);return}case 19:{ghb(c[a+4>>2]|0);return}case 20:{sra(a,c[b+8>>2]|0);return}case 21:{oib(c[a+4>>2]|0);return}case 22:{bfb(c[a+4>>2]|0);return}default:ma(141129,134747,128,112649)}while(0)}function Jk(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;q=yb;yb=yb+272|0;p=q+248|0;g=q+216|0;h=q+192|0;k=q+168|0;l=q+144|0;m=q+120|0;n=q+96|0;o=q+72|0;f=q+48|0;i=q+24|0;j=q;tw(g,d,c[e+12>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=q;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];switch(c[e+8>>2]|0){case 0:{K9(k,h,a[e+16>>0]|0);e=p;f=k;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 1:{J9(l,h,a[e+16>>0]|0);e=p;f=l;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 2:{P9(m,h,a[e+16>>0]|0);e=p;f=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 3:{O9(n,h,a[e+16>>0]|0);e=p;f=n;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 4:{faa(o,h,a[e+16>>0]|0);e=p;f=o;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 5:{eaa(f,h,a[e+16>>0]|0);e=p;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 6:{haa(i,h,a[e+16>>0]|0);e=p;f=i;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 7:{gaa(j,h,a[e+16>>0]|0);e=p;f=j;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}default:ma(141129,96854,561,97361)}}function Kk(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;g=i;if(a[b+33>>0]&1)BM(IWa(150620,113049)|0);T_a(b,c[e+24>>2]|0);h=e+4|0;f=c[h>>2]|0;if((f|0)==6){Ygb(c[b+28>>2]|0);yb=i;return}a:do if(!(a[e+20>>0]&1))switch(f|0){case 1:{switch(a[e+8>>0]|0){case 1:{tI(c[b+28>>2]|0,45-(a[e+9>>0]&1)&255)|0;break a}case 2:{tI(c[b+28>>2]|0,47-(a[e+9>>0]&1)&255)|0;break a}case 4:{tI(c[b+28>>2]|0,40)|0;break a}default:Ta()}break}case 2:{switch(a[e+8>>0]|0){case 1:{tI(c[b+28>>2]|0,49-(a[e+9>>0]&1)&255)|0;break a}case 2:{tI(c[b+28>>2]|0,51-(a[e+9>>0]&1)&255)|0;break a}case 4:{tI(c[b+28>>2]|0,53-(a[e+9>>0]&1)&255)|0;break a}case 8:{tI(c[b+28>>2]|0,41)|0;break a}default:Ta()}break}case 3:{tI(c[b+28>>2]|0,42)|0;break a}case 4:{tI(c[b+28>>2]|0,43)|0;break a}case 5:{h=tI(c[b+28>>2]|0,-3)|0;Pwb(g,0);YA(h,c[g>>2]|0)|0;break a}case 0:{ma(141129,112765,648,113063);break}case 6:{yb=i;return}default:break a}else{f=b+28|0;tI(c[f>>2]|0,-2)|0;switch(c[h>>2]|0){case 1:{switch(a[e+8>>0]|0){case 1:{tI(c[f>>2]|0,18)|0;break a}case 2:{tI(c[f>>2]|0,19)|0;break a}case 4:{tI(c[f>>2]|0,16)|0;break a}default:ma(141129,112765,658,113063)}break}case 2:{switch(a[e+8>>0]|0){case 1:{tI(c[f>>2]|0,20)|0;break a}case 2:{tI(c[f>>2]|0,21)|0;break a}case 4:{tI(c[f>>2]|0,22)|0;break a}case 8:{tI(c[f>>2]|0,17)|0;break a}default:ma(141129,112765,668,113063)}break}case 6:{yb=i;return}default:ma(141129,112765,673,113063)}}while(0);g=WCb(c[e+16>>2]|0)|0;h=d[e+8>>0]|0;G5(b,g,h,WCb(c[e+12>>2]|0)|0);yb=i;return}function Lk(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,o=0,p=0;l=yb;yb=yb+336|0;m=l+320|0;o=l+160|0;p=l+24|0;g=l+12|0;k=l;if(c[37104]|0){IWa(150452,67428)|0;$ha(e,150452);IWa(150452,56341)|0}Sdb(m,0);n=0;fa(85,o|0,d|0,m|0,0);j=n;n=0;if(j&1){p=sa()|0;P()|0;Htb(m);Ea(p|0)}wpb(o,(a[148265]&1)!=0);j=p+56|0;c[p>>2]=31812;c[j>>2]=31832;Hoa(p+56|0,p+4|0);c[p+128>>2]=0;c[p+132>>2]=-1;c[p>>2]=39764;c[j>>2]=39784;j=p+4|0;RKa(j);c[j>>2]=39800;f=p+36|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[f+(d<<2)>>2]=0;d=d+1|0}c[p+48>>2]=0;c[p+52>>2]=16;i=(e|0)==0;do if(!i){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;f=Zzb(e)|0;n=0;ea(95,g|0,e|0,f|0);e=n;n=0;if(!(e&1)){n=0;ea(114,o|0,p|0,g|0);e=n;n=0;if(e&1){d=sa()|0;P()|0;Chb(g);break}else{Chb(g);h=14;break}}else h=12}else h=14;while(0);if((h|0)==14){n=0;ca(507,o|0);h=n;n=0;if(!(h&1)){g=m+4|0;h=qc((c[g>>2]|0)-(c[m>>2]|0)|0)|0;e=c[m>>2]|0;f=e;e=f+((c[g>>2]|0)-e)|0;d=h;while(1){if((f|0)==(e|0))break;a[d>>0]=a[f>>0]|0;d=d+1|0;f=f+1|0}if(i){j=0;c[b>>2]=h;k=b+4|0;h=c[g>>2]|0;i=c[m>>2]|0;i=h-i|0;c[k>>2]=i;k=b+8|0;c[k>>2]=j;v$a(p);Z_(o);Htb(m);yb=l;return}n=0;da(75,k|0,j|0);j=n;n=0;if(!(j&1)){d=a[k+11>>0]|0;f=d<<24>>24<0;j=c[k+4>>2]|0;e=qc((f?j:d&255)+1|0)|0;d=(f?j:d&255)+1|0;if(d|0)Pxa(e|0,(f?c[k>>2]|0:k)|0,d|0)|0;Chb(k);j=e;c[b>>2]=h;k=b+4|0;h=c[g>>2]|0;i=c[m>>2]|0;i=h-i|0;c[k>>2]=i;k=b+8|0;c[k>>2]=j;v$a(p);Z_(o);Htb(m);yb=l;return}else h=12}else h=12}if((h|0)==12){d=sa()|0;P()|0}v$a(p);Z_(o);p=d;Htb(m);Ea(p|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,l=0,m=0;m=yb;yb=yb+32|0;g=m+16|0;h=m+4|0;l=m;d=c[a+88>>2]|0;b=c[a+84>>2]|0;while(1){if((b|0)==(d|0))break;aq(c[a>>2]|0,c[b>>2]|0);b=b+4|0}b=c[a+40>>2]|0;if((b|0)!=-1){k=qG(a,b)|0;c[(c[a>>2]|0)+124>>2]=k}d=c[a+144>>2]|0;e=a+128|0;b=c[a+140>>2]|0;a:while(1){f=b;if((d|0)==(f|0))break;c[g>>2]=c[b>>2];b=O8(e,g)|0;b=c[b>>2]|0;switch(c[(c[g>>2]|0)+8>>2]|0){case 0:{k=qG(a,b)|0;b=c[g>>2]|0;c[b+4>>2]=k;break}case 1:{k=w$(0)|0;b=c[g>>2]|0;c[b+4>>2]=k;break}case 2:{k=w$(0)|0;b=c[g>>2]|0;c[b+4>>2]=k;break}case 3:{k=Ux(a,b)|0;b=c[g>>2]|0;c[b+4>>2]=k;break}default:{c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,114140,Zzb(114140)|0);n=0;da(4022,a|0,h|0);k=n;n=0;if(k&1){i=48;break a}Chb(h);b=c[g>>2]|0}}uq(c[a>>2]|0,b);b=f+4|0}if((i|0)==48){m=sa()|0;P()|0;Chb(h);Ea(m|0)}g=a+112|0;b=c[a+108>>2]|0;while(1){if((g|0)==(b|0))break;d=b;e=c[d+16>>2]|0;f=c[d+24>>2]|0;d=c[d+20>>2]|0;while(1){if((d|0)==(f|0))break;k=c[d>>2]|0;j=qG(a,e)|0;c[k+24>>2]=j;d=d+4|0}d=b;b=c[d+4>>2]|0;b:do if(!b)while(1){b=c[d+8>>2]|0;if((d|0)==(c[b>>2]|0))break b;d=b}else while(1){d=c[b>>2]|0;if(!d)break;b=d}while(0)}k=a+220|0;b=c[a+216>>2]|0;while(1){if((k|0)==(b|0))break;d=b;e=c[d+16>>2]|0;f=c[d+24>>2]|0;d=c[d+20>>2]|0;while(1){if((d|0)==(f|0))break;g=c[(c[a>>2]|0)+72>>2]|0;h=qG(a,c[d>>2]|0)|0;c[l>>2]=h;i=g+(e<<4)+8|0;j=c[i>>2]|0;if(j>>>0<(c[g+(e<<4)+12>>2]|0)>>>0){c[j>>2]=h;c[i>>2]=(c[i>>2]|0)+4}else _M(g+(e<<4)+4|0,l);d=d+4|0}d=b;b=c[d+4>>2]|0;c:do if(!b)while(1){b=c[d+8>>2]|0;if((d|0)==(c[b>>2]|0))break c;d=b}else while(1){d=c[b>>2]|0;if(!d)break;b=d}while(0)}fu(c[a>>2]|0);yb=m;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,l=0,m=0,o=0;m=yb;yb=yb+64|0;o=m+40|0;l=m+16|0;j=m;a:do if(((b|0)!=(d|0)?(f=(a[b>>0]|0)+-48|0,f>>>0<10):0)?(g=b+1|0,(g|0)!=(d|0)):0){k=f;while(1){h=(a[g>>0]|0)+-48|0;if(h>>>0>=10)break;f=g+1|0;if((f|0)==(d|0))break a;k=h+(k*10|0)|0;g=f}if((d-g|0)>>>0>=k>>>0){c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;T3(o,g,k);n=0;ea(216,l|0,o|0,10);d=n;n=0;b:do if(d&1){b=sa()|0;P()|0}else{b=Zzb(141309)|0;d=a[l+11>>0]|0;do if((b|0)==((d<<24>>24<0?c[l+4>>2]|0:d&255)|0)){n=0;b=V(129,l|0,141309,b|0)|0;d=n;n=0;if(d&1){d=ta(0)|0;P()|0;yub(d)}else{i=(b|0)==0;break}}else i=0;while(0);Chb(l);c:do if(i){n=0;ca(583,l|0);j=n;n=0;do if(j&1){b=sa()|0;P()|0}else{b=e+4|0;f=c[b>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,l|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(l);break}}else{I6(f,l);c[b>>2]=(c[b>>2]|0)+24}J2a(l);break c}while(0);break b}else{c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}X6(l,j);b=e+4|0;f=c[b>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,l|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(l);Chb(j);break b}}else{I6(f,l);c[b>>2]=(c[b>>2]|0)+24}J2a(l);Chb(j)}while(0);Chb(o);b=g+k|0;break a}while(0);Chb(o);Ea(b|0)}}while(0);yb=m;return b|0}function Ok(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;i=yb;yb=yb+64|0;f=i+60|0;k=i+48|0;g=i+36|0;j=i+24|0;l=i+12|0;h=i;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;D8(k,103655,Zzb(103655)|0);n=0;e=S(223,c[b+32>>2]|0)|0;m=n;n=0;a:do if((!(m&1)?(n=0,U(69,k|0,e|0)|0,m=n,n=0,!(m&1)):0)?(n=0,da(229,l|0,d[b+8>>0]|0|0),m=n,n=0,!(m&1)):0){n=0;U(77,l|0,103672)|0;m=n;n=0;if(m&1){e=sa()|0;P()|0}else{c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];c[j+8>>2]=c[l+8>>2];e=0;while(1){if((e|0)==3)break;c[l+(e<<2)>>2]=0;e=e+1|0}n=0;U(69,j|0,103672)|0;m=n;n=0;do if(m&1){e=sa()|0;P()|0}else{c[g>>2]=c[j>>2];c[g+4>>2]=c[j+4>>2];c[g+8>>2]=c[j+8>>2];e=0;while(1){if((e|0)==3)break;c[j+(e<<2)>>2]=0;e=e+1|0}m=a[g+11>>0]|0;e=m<<24>>24<0;n=0;V(43,k|0,(e?c[g>>2]|0:g)|0,(e?c[g+4>>2]|0:m&255)|0)|0;m=n;n=0;if(m&1){e=sa()|0;P()|0;Chb(g);break}Chb(g);Chb(j);Chb(l);do if(a[b+20>>0]&1){n=0;U(69,k|0,103674)|0;m=n;n=0;if(m&1)break a}else{m=WCb(c[b+16>>2]|0)|0;n=0;da(2683,h|0,m|0);m=n;n=0;if(m&1)break a;m=a[h+11>>0]|0;l=m<<24>>24<0;n=0;V(43,k|0,(l?c[h>>2]|0:h)|0,(l?c[h+4>>2]|0:m&255)|0)|0;m=n;n=0;if(!(m&1)){Chb(h);break}m=sa()|0;P()|0;Chb(h);Chb(k);Ea(m|0)}while(0);n=0;da(230,f|0,k|0);m=n;n=0;if(m&1)break a;Chb(k);yb=i;return c[f>>2]|0}while(0);Chb(j)}Chb(l);m=e;Chb(k);Ea(m|0)}while(0);m=sa()|0;P()|0;Chb(k);Ea(m|0);return 0}function Pk(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 (O(n|0),f)|0}else{if(!g){n=0;f=0;return (O(n|0),f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (O(n|0),f)|0}}g=(i|0)==0;do if(h){if(!g){g=(M(i|0)|0)-(M(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<>>(m>>>0)&b;g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (O(n|0),f)|0}g=h-1|0;if(g&h|0){i=(M(h|0)|0)+33-(M(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(f|0){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (O(o|0),p)|0}else{p=rub(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (O(o|0),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 (O(o|0),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 (O(o|0),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>>>((rub(i|0)|0)>>>0);return (O(o|0),p)|0}g=(M(i|0)|0)-(M(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (O(o|0),p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=Yeb(m|0,l|0,-1,-1)|0;d=P()|0;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;Ndb(k|0,d|0,e|0,n|0)|0;p=P()|0;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=Ndb(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=P()|0;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 (O(o|0),p)|0}function Qk(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;A=yb;yb=yb+80|0;v=A+72|0;u=A+56|0;j=A+40|0;p=A+36|0;w=A+32|0;z=A+20|0;B=A+8|0;x=A+4|0;y=A;if(Yrb(b)|0){yb=A;return}d=b+12|0;do if((c[d>>2]|0)==2?(c[d>>2]=1,g=b+44|0,e=c[g>>2]|0,qqa(a,e)|0):0){pT(u,a,e);n=0;ea(145,j|0,a|0,1);f=n;n=0;if(f&1){d=sa()|0;P()|0}else{d=a+44|0;e=c[d>>2]|0;n=0;f=S(280,j|0)|0;C=n;n=0;if(((((((!(C&1)?(n=0,h=V(70,c[e>>2]|0,f|0,c[g>>2]|0)|0,C=n,n=0,!(C&1)):0)?(i=c[d>>2]|0,Ftb(p,c[37179]|0),k=c[d>>2]|0,n=0,l=S(280,u|0)|0,C=n,n=0,!(C&1)):0)?(n=0,m=V(71,c[k>>2]|0,l|0,1)|0,C=n,n=0,!(C&1)):0)?(o=c[i>>2]|0,n=0,c[v>>2]=c[p>>2],o=V(78,o|0,v|0,m|0)|0,C=n,n=0,!(C&1)):0)?(q=c[d>>2]|0,n=0,r=S(280,j|0)|0,C=n,n=0,!(C&1)):0)?(n=0,s=V(71,c[q>>2]|0,r|0,1)|0,C=n,n=0,!(C&1)):0)?(n=0,t=W(20,c[d>>2]|0,h|0,o|0,s|0)|0,C=n,n=0,!(C&1)):0){c[g>>2]=t;lNa(j);lNa(u);break}d=sa()|0;P()|0;lNa(j)}lNa(u);C=d;Ea(C|0)}while(0);h=a+148|0;f=a+128|0;e=Icb(b)|0;d=0;while(1){if(e>>>0>=(c[h>>2]|0)>>>0){e=28;break}g=d+1|0;h5(B,d);n=0;U(77,B|0,81300)|0;C=n;n=0;if(C&1){e=25;break}c[z>>2]=c[B>>2];c[z+4>>2]=c[B+4>>2];c[z+8>>2]=c[B+8>>2];d=0;while(1){if((d|0)==3)break;c[B+(d<<2)>>2]=0;d=d+1|0}n=0;da(230,w|0,z|0);C=n;n=0;if(C&1){e=26;break}Chb(z);Chb(B);c[x>>2]=c[w>>2];c[y>>2]=e;d=dn(f,y)|0;d=c[d>>2]|0;c[v>>2]=c[x>>2];MG(b,v,d)|0;e=e+1|0;d=g}if((e|0)==25){d=sa()|0;P()|0}else if((e|0)==26){d=sa()|0;P()|0;Chb(z)}else if((e|0)==28){yb=A;return}Chb(B);C=d;Ea(C|0)}function Rk(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,o=0,p=0,q=0,r=0,s=0;s=yb;yb=yb+128|0;l=s+112|0;j=s+100|0;k=s+96|0;m=s+84|0;o=s+80|0;p=s+24|0;q=s+16|0;h=s+8|0;g=s;i=b+4|0;if(!(WCb(c[b+16>>2]|0)|0)){c[i>>2]=0;yb=s;return}d=c[i>>2]|0;e=cWa(b+12|0)|0;e=c[(c[e>>2]|0)+4>>2]|0;c[i>>2]=e;if(!(vub(e)|0)){if(eCb(c[b+8>>2]|0)|0?(f=C8(a+44|0,b+8|0)|0,(f|0)!=(a+48|0)):0){d=c[f+20>>2]|0;if((d|0)==6)ma(75296,75265,89,126937);c[i>>2]=d;yb=s;return}if(e|0){yb=s;return}e=b+12|0;nrb(h,e);Hib(g,e);e=h+4|0;f=c[g>>2]|0;d=c[g+4>>2]|0;while(1){if(!(dhb(c[h>>2]|0,c[e>>2]|0,f,d)|0)){r=33;break}q=Qab(h)|0;if((c[(c[q>>2]|0)+4>>2]|0)==6)break;hob(h)}if((r|0)==33){yb=s;return}c[i>>2]=6;yb=s;return}if(vub(d)|0){yb=s;return}g=b+8|0;d=C8(a+44|0,g)|0;if((d|0)==(a+48|0)){yb=s;return}if(c[d+20>>2]|0){yb=s;return}H2(j,b);e=c[j+4>>2]|0;f=a+36|0;d=c[j>>2]|0;while(1){if((d|0)==(e|0))break;h=c[d>>2]|0;c[k>>2]=c[g>>2];i=WCb(c[f>>2]|0)|0;n=0;c[l>>2]=c[k>>2];ea(124,h|0,l|0,i|0);i=n;n=0;if(i&1){r=11;break}d=d+4|0}if((r|0)==11){s=sa()|0;P()|0;Htb(j);Ea(s|0)}Htb(j);D2(m,b);e=c[m+4>>2]|0;d=c[m>>2]|0;while(1){if((d|0)==(e|0))break;j=c[d>>2]|0;c[o>>2]=c[g>>2];k=WCb(c[f>>2]|0)|0;n=0;c[l>>2]=c[o>>2];ea(125,j|0,l|0,k|0);k=n;n=0;if(k&1){r=16;break}d=d+4|0}if((r|0)==16){s=sa()|0;P()|0;Htb(m);Ea(s|0)}Htb(m);Y3(p);r=p+16|0;Dlb(r,WCb(c[f>>2]|0)|0);c[q>>2]=b;n=0;da(475,r|0,q|0);r=n;n=0;do if(!(r&1)){if((c[q>>2]|0)!=(b|0)){n=0;fa(75,75252,75265,76,126937);n=0;break}JXa(p);yb=s;return}while(0);s=sa()|0;P()|0;JXa(p);Ea(s|0)}function Sk(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1678,b);a=(ufb(d)|0)+8|0;if(eCb(c[a>>2]|0)|0)IW(e,1679,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1675,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1680,b);IW(e,1679,b);mZ(e,(Tfb(d)|0)+16|0);IW(e,1679,b);IW(e,1675,(Tfb(d)|0)+12|0);IW(e,1679,b);IW(e,1675,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1681,b);IW(e,1675,(Efb(d)|0)+12|0);IW(e,1679,b);return}case 4:{e=a+16|0;IW(e,1682,b);IW(e,1679,b);mZ(e,(tfb(d)|0)+16|0);mZ(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1683,b);IW(e,1679,b);mZ(e,(cfb(d)|0)+32|0);IW(e,1675,(cfb(d)|0)+28|0);return}case 19:{e=a+16|0;IW(e,1684,b);IW(e,1679,b);mZ(e,(Ueb(d)|0)+8|0);return}case 22:{e=a+16|0;IW(e,1685,b);IW(e,1679,b);return}default:{Nd(a,b);return}}}function Tk(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;g=yb;yb=yb+16|0;f=g;if(a[b+33>>0]&1)BM(IWa(150620,113023)|0);T_a(b,c[e+24>>2]|0);T_a(b,c[e+28>>2]|0);if((c[e+4>>2]|0)==6){Ygb(c[b+28>>2]|0);yb=g;return}a:do if(!(a[e+20>>0]&1))switch(c[e+32>>2]|0){case 1:{switch(a[e+8>>0]|0){case 1:{tI(c[b+28>>2]|0,58)|0;break a}case 2:{tI(c[b+28>>2]|0,59)|0;break a}case 4:{tI(c[b+28>>2]|0,54)|0;break a}default:Ta()}break}case 2:{switch(a[e+8>>0]|0){case 1:{tI(c[b+28>>2]|0,60)|0;break a}case 2:{tI(c[b+28>>2]|0,61)|0;break a}case 4:{tI(c[b+28>>2]|0,62)|0;break a}case 8:{tI(c[b+28>>2]|0,55)|0;break a}default:Ta()}break}case 3:{tI(c[b+28>>2]|0,56)|0;break a}case 4:{tI(c[b+28>>2]|0,57)|0;break a}case 5:{h=tI(c[b+28>>2]|0,-3)|0;Pwb(f,1);YA(h,c[f>>2]|0)|0;break a}case 6:case 0:{ma(141129,112765,715,113038);break}default:break a}else{f=b+28|0;tI(c[f>>2]|0,-2)|0;switch(c[e+32>>2]|0){case 1:{switch(a[e+8>>0]|0){case 1:{tI(c[f>>2]|0,25)|0;break a}case 2:{tI(c[f>>2]|0,26)|0;break a}case 4:{tI(c[f>>2]|0,23)|0;break a}default:ma(141129,112765,725,113038)}break}case 2:{switch(a[e+8>>0]|0){case 1:{tI(c[f>>2]|0,27)|0;break a}case 2:{tI(c[f>>2]|0,28)|0;break a}case 4:{tI(c[f>>2]|0,29)|0;break a}case 8:{tI(c[f>>2]|0,24)|0;break a}default:ma(141129,112765,735,113038)}break}default:ma(141129,112765,739,113038)}}while(0);f=WCb(c[e+16>>2]|0)|0;h=d[e+8>>0]|0;G5(b,f,h,WCb(c[e+12>>2]|0)|0);yb=g;return}function Uk(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,o=0,p=0,q=0,r=0;q=yb;yb=yb+224|0;l=q+200|0;p=q+184|0;h=q+144|0;i=q+180|0;f=q+112|0;m=q+80|0;k=q+56|0;o=q+24|0;g=q;j=q+176|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;n=0;fa(86,h|0,d|0,e+8|0,p|0);r=n;n=0;if(r&1){r=sa()|0;P()|0;Vob(p);Ea(r|0)}if(lsb(h)|0){c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];c[b+28>>2]=c[h+28>>2];Vob(p);yb=q;return}d=d+4|0;h=c[c[d>>2]>>2]|0;e=e+24|0;c[i>>2]=c[e>>2];n=0;c[l>>2]=c[i>>2];h=U(64,h|0,l|0)|0;r=n;n=0;if(r&1){r=sa()|0;P()|0;Vob(p);Ea(r|0)}zsb(f);r=Yrb(h)|0;d=c[d>>2]|0;do if(r){r=c[d+36>>2]|0;n=0;fa(c[(c[r>>2]|0)+8>>2]|0,k|0,r|0,h|0,p|0);r=n;n=0;if(r&1){r=sa()|0;P()|0;Vob(p);Ea(r|0)}else{h=l;g=k;d=h+24|0;do{a[h>>0]=a[g>>0]|0;h=h+1|0;g=g+1|0}while((h|0)<(d|0));Wza(m,l);c[f>>2]=c[m>>2];c[f+4>>2]=c[m+4>>2];c[f+8>>2]=c[m+8>>2];c[f+12>>2]=c[m+12>>2];c[f+16>>2]=c[m+16>>2];c[f+20>>2]=c[m+20>>2];c[f+24>>2]=c[m+24>>2];break}}else{c[j>>2]=c[e>>2];n=0;c[l>>2]=c[j>>2];fa(87,g|0,d|0,l|0,p|0);r=n;n=0;if(r&1){r=sa()|0;P()|0;Vob(p);Ea(r|0)}else{h=l;d=h+24|0;do{a[h>>0]=a[g>>0]|0;h=h+1|0;g=g+1|0}while((h|0)<(d|0));Wza(o,l);c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[f+12>>2]=c[o+12>>2];c[f+16>>2]=c[o+16>>2];c[f+20>>2]=c[o+20>>2];c[f+24>>2]=c[o+24>>2];break}}while(0);c[b>>2]=c[f>>2];c[b+4>>2]=c[f+4>>2];c[b+8>>2]=c[f+8>>2];c[b+12>>2]=c[f+12>>2];c[b+16>>2]=c[f+16>>2];c[b+20>>2]=c[f+20>>2];c[b+24>>2]=c[f+24>>2];c[b+28>>2]=c[f+28>>2];Vob(p);yb=q;return}function Vk(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,o=0,p=0,q=0,r=0,s=0;s=yb;yb=yb+160|0;e=s+156|0;f=s+152|0;j=s+16|0;k=s+4|0;p=s;h=c[b>>2]|0;i=d+4|0;do if(LF(h,i)|0){h=Gm(h,i)|0;if(!(cub(c[h>>2]|0,c[d>>2]|0)|0)){g=c[b>>2]|0;break}cqb();n=0;ca(491,54540);h=n;n=0;if(h&1){sa()|0;P()|0;iSa()}c[f>>2]=c[i>>2];n=0;c[e>>2]=c[f>>2];ca(498,e|0);h=n;n=0;if(h&1){sa()|0;P()|0;iSa()}n=0;ca(491,54550);h=n;n=0;if(h&1){sa()|0;P()|0;iSa()}n=0;ca(491,54576);h=n;n=0;if(h&1){sa()|0;P()|0;iSa()}else iSa()}else g=h;while(0);g=Gm(g,i)|0;c[g>>2]=c[d>>2];g=j+56|0;c[j>>2]=31812;c[g>>2]=31832;Hoa(j+56|0,j+4|0);c[j+128>>2]=0;c[j+132>>2]=-1;c[j>>2]=39764;c[g>>2]=39784;g=j+4|0;RKa(g);c[g>>2]=39800;f=j+36|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[f+(e<<2)>>2]=0;e=e+1|0}c[j+48>>2]=0;c[j+52>>2]=16;n=0;e=U(59,j|0,54603)|0;i=n;n=0;if(((((!(i&1)?(n=0,l=U(59,e|0,c[d+4>>2]|0)|0,i=n,n=0,!(i&1)):0)?(n=0,m=U(59,l|0,54613)|0,l=n,n=0,!(l&1)):0)?(n=0,o=U(59,m|0,c[d>>2]|0)|0,m=n,n=0,!(m&1)):0)?(n=0,U(59,o|0,118533)|0,o=n,n=0,!(o&1)):0)?(n=0,da(75,k|0,g|0),o=n,n=0,!(o&1)):0){n=0;ea(101,p|0,((a[k+11>>0]|0)<0?c[k>>2]|0:k)|0,0);o=n;n=0;if((!(o&1)?(q=c[c[b+4>>2]>>2]|0,n=0,r=S(219,c[p>>2]|0)|0,p=n,n=0,!(p&1)):0)?(n=0,da(76,q|0,r|0),r=n,n=0,!(r&1)):0){Chb(k);v$a(j);yb=s;return}s=sa()|0;P()|0;Chb(k);v$a(j);Ea(s|0)}s=sa()|0;P()|0;v$a(j);Ea(s|0)}function Wk(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;q=yb;yb=yb+272|0;p=q+248|0;g=q+216|0;h=q+192|0;k=q+168|0;l=q+144|0;m=q+120|0;n=q+96|0;o=q+72|0;f=q+48|0;i=q+24|0;j=q;nz(g,d,c[e+12>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=q;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];switch(c[e+8>>2]|0){case 0:{K9(k,h,a[e+16>>0]|0);e=p;f=k;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 1:{J9(l,h,a[e+16>>0]|0);e=p;f=l;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 2:{P9(m,h,a[e+16>>0]|0);e=p;f=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 3:{O9(n,h,a[e+16>>0]|0);e=p;f=n;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 4:{faa(o,h,a[e+16>>0]|0);e=p;f=o;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 5:{eaa(f,h,a[e+16>>0]|0);e=p;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 6:{haa(i,h,a[e+16>>0]|0);e=p;f=i;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 7:{gaa(j,h,a[e+16>>0]|0);e=p;f=j;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}default:ma(141129,96854,561,97361)}}function Xk(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,s=0;s=yb;yb=yb+112|0;p=s+80|0;g=s+76|0;q=s+72|0;r=s+48|0;j=s+24|0;n=s;o=c[(c[d+12>>2]|0)+4>>2]|0;c[g>>2]=o;e=c[d+4>>2]|0;d=d+8|0;f=c[d>>2]|0;l=(o|0)==4;Gsb(q,b);i=l?73:60;k=l?75:62;l=l?71:58;egb(r);egb(j);egb(n);switch(f|0){case 25:{RK(r,j,n);break}case 27:{EL(r,j,n);break}case 26:{tK(r,j,n);break}case 28:{bL(r,j,n);break}case 29:{SK(r,j,n);break}case 31:{FL(r,j,n);break}case 30:{uK(r,j,n);break}case 32:{cL(r,j,n);break}default:ma(141129,110230,159,110263)}m=mla(120)|0;mT(m);d=dO(c[d>>2]|0)|0;c[m+8>>2]=d;d=m+20|0;b=c[d>>2]|0;if((b|0)==(c[m+24>>2]|0))_M(m+16|0,g);else{c[b>>2]=o;c[d>>2]=(c[d>>2]|0)+4}c[m+12>>2]=e;h=c[q>>2]|0;d=pVa(h,f,T3a(h,0,o)|0)|0;f=m+44|0;c[f>>2]=d;d=T3a(h,0,o)|0;g=p;b=j;e=g+24|0;do{a[g>>0]=a[b>>0]|0;g=g+1|0;b=b+1|0}while((g|0)<(e|0));d=hIa(h,i,d,D7(q,p)|0)|0;g=p;b=r;e=g+24|0;do{a[g>>0]=a[b>>0]|0;g=g+1|0;b=b+1|0}while((g|0)<(e|0));g=D7(q,p)|0;d=zOa(h,d,g,c[f>>2]|0)|0;c[f>>2]=d;d=T3a(h,0,o)|0;g=p;b=n;e=g+24|0;do{a[g>>0]=a[b>>0]|0;g=g+1|0;b=b+1|0}while((g|0)<(e|0));d=hIa(h,k,d,D7(q,p)|0)|0;g=p;b=r;e=g+24|0;do{a[g>>0]=a[b>>0]|0;g=g+1|0;b=b+1|0}while((g|0)<(e|0));g=D7(q,p)|0;d=zOa(h,d,g,c[f>>2]|0)|0;c[f>>2]=d;d=T3a(h,0,o)|0;d=hIa(h,l,d,T3a(h,0,o)|0)|0;g=p;b=r;e=g+24|0;do{a[g>>0]=a[b>>0]|0;g=g+1|0;b=b+1|0}while((g|0)<(e|0));r=D7(q,p)|0;r=zOa(h,d,r,c[f>>2]|0)|0;c[f>>2]=r;yb=s;return m|0}function Yk(b,d){b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0;o=yb;yb=yb+208|0;i=o+72|0;j=o+60|0;l=o+56|0;f=o+24|0;g=o;switch(c[d+4>>2]|0){case 1:{m=_pb(Peb(d+8|0)|0)|0;yb=o;return m|0}case 2:{g=d+8|0;d=$Xa(g)|0;P()|0;$Xa(g)|0;g=P()|0;h=i+56|0;c[i>>2]=31812;c[h>>2]=31832;Hoa(i+56|0,i+4|0);c[i+128>>2]=0;c[i+132>>2]=-1;c[i>>2]=39764;c[h>>2]=39784;h=i+4|0;RKa(h);c[h>>2]=39800;f=i+36|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}c[i+48>>2]=0;c[i+52>>2]=16;n=0;b=U(60,i|0,d|0)|0;f=n;n=0;if(((!(f&1)?(n=0,k=U(59,b|0,139997)|0,f=n,n=0,!(f&1)):0)?(n=0,U(60,k|0,g|0)|0,k=n,n=0,!(k&1)):0)?(n=0,da(75,j|0,h|0),k=n,n=0,!(k&1)):0){n=0;ea(101,l|0,((a[j+11>>0]|0)<0?c[j>>2]|0:j)|0,0);k=n;n=0;if(!(k&1)?(n=0,m=S(219,c[l>>2]|0)|0,l=n,n=0,!(l&1)):0){Chb(j);v$a(i);yb=o;return m|0}o=sa()|0;P()|0;Chb(j);v$a(i);Ea(o|0)}o=sa()|0;P()|0;v$a(i);Ea(o|0)}case 3:{m=a7(c[37223]|0)|0;Wkb(f);kEa(g,+L8a(d+8|0));l=f+8|0;c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];c[l+8>>2]=c[g+8>>2];c[l+12>>2]=c[g+12>>2];c[l+16>>2]=c[g+16>>2];c[f+4>>2]=4;l=rrb(m,2)|0;l=WCb(c[l>>2]|0)|0;KJa(l,Yk(b,f)|0)|0;yb=o;return m|0}case 4:{b=d+8|0;e=+K8a(b);if(e==0.0?(leb(e)|0,(P()|0)<0):0){l=c[37232]|0;m=c[37233]|0;m=D5(l,D5(m,TOa(0.0)|0)|0)|0;yb=o;return m|0}m=c[37232]|0;m=D5(m,TOa(+K8a(b))|0)|0;yb=o;return m|0}default:Ta()}return 0}function Zk(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=yb;yb=yb+144|0;t=v+88|0;w=v+36|0;u=v;m=b+44|0;o=b+16|0;p=b+60|0;q=b+64|0;r=b+52|0;i=b+48|0;j=b+76|0;k=b+72|0;s=b+36|0;l=t+16|0;while(1){a[m>>0]=0;p2a(o,d);if((c[p>>2]|0)!=(c[q>>2]|0)){e=3;break}h=0;while(1){g=c[i>>2]|0;e=g;if(h>>>0>=(c[r>>2]|0)-g>>2>>>0)break;e=c[e+(h<<2)>>2]|0;f=zqb(c[e>>2]|0)|0;do if(f|0){g=c[f+8>>2]|0;if(!g){Gjb(f);a[m>>0]=1;break}else{c[e>>2]=g;a[m>>0]=1;break}}while(0);h=h+1|0}c[r>>2]=e;f=c[j>>2]|0;e=c[b+72>>2]|0;while(1){if((e|0)==(f|0))break;h=(ij(b,c[e>>2]|0)|0)&1;a[m>>0]=a[m>>0]&1|h;e=e+4|0}c[j>>2]=c[k>>2];if(a[m>>0]&1){Y3(t);h=WCb(c[s>>2]|0)|0;n=0;ea(104,l|0,d|0,h|0);h=n;n=0;if(h&1){e=17;break}JXa(t)}if(bG(b,d)|0){a[m>>0]=1;e=1}else e=a[m>>0]|0;if(!(e&1)){e=22;break}}if((e|0)==3)ma(101280,101296,528,108386);else if((e|0)==17){w=sa()|0;P()|0;JXa(t);Ea(w|0)}else if((e|0)==22){R0a(w);Dlb(w,WCb(c[s>>2]|0)|0);n=0;da(2643,w|0,d|0);t=n;n=0;if(!(t&1)?(n=0,da(2644,w|0,d|0),t=n,n=0,!(t&1)):0){t=b+40|0;UYa(u,pob(c[t>>2]|0)|0);Dlb(u,WCb(c[s>>2]|0)|0);t=c[t>>2]|0;WCb(t)|0;a[u+24>>0]=(c[t+28>>2]|0)>0&1;n=0;da(2645,u|0,d|0);t=n;n=0;if(!(t&1)){if(!(a[u+32>>0]&1)){Arb(u);vTa(w);yb=v;return}n=0;ca(527,c[d+44>>2]|0);t=n;n=0;if(!(t&1)){Arb(u);vTa(w);yb=v;return}}e=sa()|0;P()|0;Arb(u)}else{e=sa()|0;P()|0}vTa(w);w=e;Ea(w|0)}}function _k(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=yb;yb=yb+80|0;r=y+64|0;k=y+56|0;w=y+40|0;l=y+32|0;h=y+24|0;m=y+16|0;o=y+12|0;p=y+8|0;u=y+4|0;s=y;i=cfb(c[b>>2]|0)|0;yib(w);f=i+8|0;nrb(l,f);Hib(h,f);f=l+4|0;g=c[h>>2]|0;h=c[h+4>>2]|0;j=a+16|0;t=a+84|0;v=a+80|0;while(1){if(!(dhb(c[l>>2]|0,c[f>>2]|0,g,h)|0))break;n=0;b=S(271,l|0)|0;e=n;n=0;if(e&1){q=19;break}b=c[b>>2]|0;c[m>>2]=b;if(!(f9(w,m)|0)){c[p>>2]=b;n=0;c[r>>2]=c[p>>2];b=U(167,j|0,r|0)|0;e=n;n=0;if(e&1){q=19;break}c[o>>2]=b;n=0;b=U(168,t|0,o|0)|0;e=n;n=0;if(e&1){q=19;break}d=b+4|0;e=c[d>>2]|0;if((e|0)==(c[b+8>>2]|0)){n=0;da(2381,b|0,v|0);e=n;n=0;if(e&1){q=19;break}}else{c[e>>2]=c[v>>2];c[d>>2]=(c[d>>2]|0)+4}n=0;fa(98,k|0,w|0,m|0,m|0);e=n;n=0;if(e&1){q=19;break}}hob(l)}if((q|0)==19){y=sa()|0;P()|0;Khb(w);Ea(y|0)}b=i+24|0;if(f9(w,b)|0){x=a+16|0;Hkb(x);Khb(w);yb=y;return}c[s>>2]=c[b>>2];n=0;c[r>>2]=c[s>>2];b=U(167,j|0,r|0)|0;s=n;n=0;do if(!(s&1)?(c[u>>2]=b,n=0,x=U(168,t|0,u|0)|0,u=n,n=0,!(u&1)):0){b=x+4|0;d=c[b>>2]|0;if((d|0)==(c[x+8>>2]|0)){n=0;da(2381,x|0,v|0);x=n;n=0;if(x&1)break;x=a+16|0;Hkb(x);Khb(w);yb=y;return}else{c[d>>2]=c[v>>2];c[b>>2]=(c[b>>2]|0)+4;x=a+16|0;Hkb(x);Khb(w);yb=y;return}}while(0);y=sa()|0;P()|0;Khb(w);Ea(y|0)}function $k(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;w=yb;yb=yb+64|0;h=w+48|0;o=w+44|0;p=w+40|0;q=w+36|0;r=w+32|0;s=w+28|0;t=w+24|0;u=w+20|0;v=w+16|0;i=w+12|0;j=w+8|0;k=w+4|0;l=w;m=oia()|0;n=c[e+16>>2]|0;g=c[e+12>>2]|0;while(1){if((g|0)==(n|0))break;f=c[g>>2]|0;e=c[f+8>>2]|0;if(!e){c[o>>2]=c[f>>2];c[h>>2]=c[o>>2];e=Vf(b,h,0)|0;c[p>>2]=c[(c[g>>2]|0)+4>>2];c[h>>2]=c[p>>2];RS(m,e,dWa(Vf(b,h,0)|0)|0);e=c[(c[g>>2]|0)+8>>2]|0}if((e|0)==2){Vra(b,51185);e=oia()|0;f=oia()|0;m2a(q,51199,1);RS(e,c[q>>2]|0,f);m2a(r,51204,1);x=dWa(c[37176]|0)|0;RS(f,c[r>>2]|0,x);x=oia()|0;m2a(s,151778,1);f=uY(c[s>>2]|0)|0;y=rrb(f,3)|0;y=WCb(c[y>>2]|0)|0;KJa(y,Dba(dWa(c[37152]|0)|0)|0)|0;m2a(t,51210,1);RS(x,c[t>>2]|0,f);m2a(u,72314,1);RS(e,c[u>>2]|0,x);m2a(v,51214,1);x=dWa(c[v>>2]|0)|0;m2a(i,51221,1);x=Q5(x,c[i>>2]|0)|0;m2a(j,51214,1);f=dWa(c[j>>2]|0)|0;m2a(k,51228,1);f=E1(x,Q5(f,c[k>>2]|0)|0)|0;jra(f,e);c[l>>2]=c[c[g>>2]>>2];c[h>>2]=c[l>>2];RS(m,Vf(b,h,0)|0,f)}g=g+4|0}if(!(a[b+148>>0]&1)){x=WCb(d)|0;y=Dba(m)|0;y=WCb(y)|0;KJa(x,y)|0;yb=w;return}y=WCb(xaa(c[37151]|0)|0)|0;x=rrb(d,0)|0;c[x>>2]=y;fg(d);x=WCb(d)|0;y=Dba(m)|0;y=WCb(y)|0;KJa(x,y)|0;yb=w;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,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=yb;yb=yb+80|0;r=y+64|0;k=y+56|0;w=y+40|0;l=y+32|0;h=y+24|0;m=y+16|0;o=y+12|0;p=y+8|0;u=y+4|0;s=y;i=cfb(c[b>>2]|0)|0;yib(w);f=i+8|0;nrb(l,f);Hib(h,f);f=l+4|0;g=c[h>>2]|0;h=c[h+4>>2]|0;j=a+16|0;t=a+84|0;v=a+80|0;while(1){if(!(dhb(c[l>>2]|0,c[f>>2]|0,g,h)|0))break;n=0;b=S(271,l|0)|0;e=n;n=0;if(e&1){q=19;break}b=c[b>>2]|0;c[m>>2]=b;if(!(f9(w,m)|0)){c[p>>2]=b;n=0;c[r>>2]=c[p>>2];b=U(128,j|0,r|0)|0;e=n;n=0;if(e&1){q=19;break}c[o>>2]=b;n=0;b=U(129,t|0,o|0)|0;e=n;n=0;if(e&1){q=19;break}d=b+4|0;e=c[d>>2]|0;if((e|0)==(c[b+8>>2]|0)){n=0;da(1103,b|0,v|0);e=n;n=0;if(e&1){q=19;break}}else{c[e>>2]=c[v>>2];c[d>>2]=(c[d>>2]|0)+4}n=0;fa(98,k|0,w|0,m|0,m|0);e=n;n=0;if(e&1){q=19;break}}hob(l)}if((q|0)==19){y=sa()|0;P()|0;Khb(w);Ea(y|0)}b=i+24|0;if(f9(w,b)|0){x=a+16|0;Hkb(x);Khb(w);yb=y;return}c[s>>2]=c[b>>2];n=0;c[r>>2]=c[s>>2];b=U(128,j|0,r|0)|0;s=n;n=0;do if(!(s&1)?(c[u>>2]=b,n=0,x=U(129,t|0,u|0)|0,u=n,n=0,!(u&1)):0){b=x+4|0;d=c[b>>2]|0;if((d|0)==(c[x+8>>2]|0)){n=0;da(1103,x|0,v|0);x=n;n=0;if(x&1)break;x=a+16|0;Hkb(x);Khb(w);yb=y;return}else{c[d>>2]=c[v>>2];c[b>>2]=(c[b>>2]|0)+4;x=a+16|0;Hkb(x);Khb(w);yb=y;return}}while(0);y=sa()|0;P()|0;Khb(w);Ea(y|0)}function bl(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=yb;yb=yb+80|0;r=y+64|0;k=y+56|0;w=y+40|0;l=y+32|0;h=y+24|0;m=y+16|0;o=y+12|0;p=y+8|0;u=y+4|0;s=y;i=cfb(c[b>>2]|0)|0;yib(w);f=i+8|0;nrb(l,f);Hib(h,f);f=l+4|0;g=c[h>>2]|0;h=c[h+4>>2]|0;j=a+16|0;t=a+84|0;v=a+80|0;while(1){if(!(dhb(c[l>>2]|0,c[f>>2]|0,g,h)|0))break;n=0;b=S(271,l|0)|0;e=n;n=0;if(e&1){q=19;break}b=c[b>>2]|0;c[m>>2]=b;if(!(f9(w,m)|0)){c[p>>2]=b;n=0;c[r>>2]=c[p>>2];b=U(184,j|0,r|0)|0;e=n;n=0;if(e&1){q=19;break}c[o>>2]=b;n=0;b=U(185,t|0,o|0)|0;e=n;n=0;if(e&1){q=19;break}d=b+4|0;e=c[d>>2]|0;if((e|0)==(c[b+8>>2]|0)){n=0;da(3785,b|0,v|0);e=n;n=0;if(e&1){q=19;break}}else{c[e>>2]=c[v>>2];c[d>>2]=(c[d>>2]|0)+4}n=0;fa(98,k|0,w|0,m|0,m|0);e=n;n=0;if(e&1){q=19;break}}hob(l)}if((q|0)==19){y=sa()|0;P()|0;Khb(w);Ea(y|0)}b=i+24|0;if(f9(w,b)|0){x=a+16|0;Hkb(x);Khb(w);yb=y;return}c[s>>2]=c[b>>2];n=0;c[r>>2]=c[s>>2];b=U(184,j|0,r|0)|0;s=n;n=0;do if(!(s&1)?(c[u>>2]=b,n=0,x=U(185,t|0,u|0)|0,u=n,n=0,!(u&1)):0){b=x+4|0;d=c[b>>2]|0;if((d|0)==(c[x+8>>2]|0)){n=0;da(3785,x|0,v|0);x=n;n=0;if(x&1)break;x=a+16|0;Hkb(x);Khb(w);yb=y;return}else{c[d>>2]=c[v>>2];c[b>>2]=(c[b>>2]|0)+4;x=a+16|0;Hkb(x);Khb(w);yb=y;return}}while(0);y=sa()|0;P()|0;Khb(w);Ea(y|0)}function cl(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=yb;yb=yb+80|0;r=y+64|0;k=y+56|0;w=y+40|0;l=y+32|0;h=y+24|0;m=y+16|0;o=y+12|0;p=y+8|0;u=y+4|0;s=y;i=cfb(c[b>>2]|0)|0;yib(w);f=i+8|0;nrb(l,f);Hib(h,f);f=l+4|0;g=c[h>>2]|0;h=c[h+4>>2]|0;j=a+16|0;t=a+84|0;v=a+80|0;while(1){if(!(dhb(c[l>>2]|0,c[f>>2]|0,g,h)|0))break;n=0;b=S(271,l|0)|0;e=n;n=0;if(e&1){q=19;break}b=c[b>>2]|0;c[m>>2]=b;if(!(f9(w,m)|0)){c[p>>2]=b;n=0;c[r>>2]=c[p>>2];b=U(104,j|0,r|0)|0;e=n;n=0;if(e&1){q=19;break}c[o>>2]=b;n=0;b=U(105,t|0,o|0)|0;e=n;n=0;if(e&1){q=19;break}d=b+4|0;e=c[d>>2]|0;if((e|0)==(c[b+8>>2]|0)){n=0;da(576,b|0,v|0);e=n;n=0;if(e&1){q=19;break}}else{c[e>>2]=c[v>>2];c[d>>2]=(c[d>>2]|0)+4}n=0;fa(98,k|0,w|0,m|0,m|0);e=n;n=0;if(e&1){q=19;break}}hob(l)}if((q|0)==19){y=sa()|0;P()|0;Khb(w);Ea(y|0)}b=i+24|0;if(f9(w,b)|0){x=a+16|0;Hkb(x);Khb(w);yb=y;return}c[s>>2]=c[b>>2];n=0;c[r>>2]=c[s>>2];b=U(104,j|0,r|0)|0;s=n;n=0;do if(!(s&1)?(c[u>>2]=b,n=0,x=U(105,t|0,u|0)|0,u=n,n=0,!(u&1)):0){b=x+4|0;d=c[b>>2]|0;if((d|0)==(c[x+8>>2]|0)){n=0;da(576,x|0,v|0);x=n;n=0;if(x&1)break;x=a+16|0;Hkb(x);Khb(w);yb=y;return}else{c[d>>2]=c[v>>2];c[b>>2]=(c[b>>2]|0)+4;x=a+16|0;Hkb(x);Khb(w);yb=y;return}}while(0);y=sa()|0;P()|0;Khb(w);Ea(y|0)}function dl(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;if(a[b+33>>0]&1)BM(IWa(150620,113049)|0);h=e+4|0;g=c[h>>2]|0;if((g|0)==6){yb=i;return}a:do if(!(a[e+20>>0]&1))switch(g|0){case 1:{switch(a[e+8>>0]|0){case 1:{tI(c[b+28>>2]|0,45-(a[e+9>>0]&1)&255)|0;break a}case 2:{tI(c[b+28>>2]|0,47-(a[e+9>>0]&1)&255)|0;break a}case 4:{tI(c[b+28>>2]|0,40)|0;break a}default:Ta()}break}case 2:{switch(a[e+8>>0]|0){case 1:{tI(c[b+28>>2]|0,49-(a[e+9>>0]&1)&255)|0;break a}case 2:{tI(c[b+28>>2]|0,51-(a[e+9>>0]&1)&255)|0;break a}case 4:{tI(c[b+28>>2]|0,53-(a[e+9>>0]&1)&255)|0;break a}case 8:{tI(c[b+28>>2]|0,41)|0;break a}default:Ta()}break}case 3:{tI(c[b+28>>2]|0,42)|0;break a}case 4:{tI(c[b+28>>2]|0,43)|0;break a}case 5:{h=tI(c[b+28>>2]|0,-3)|0;Pwb(f,0);YA(h,c[f>>2]|0)|0;break a}case 0:{ma(141129,112765,648,113063);break}case 6:{yb=i;return}default:break a}else{f=b+28|0;tI(c[f>>2]|0,-2)|0;switch(c[h>>2]|0){case 1:{switch(a[e+8>>0]|0){case 1:{tI(c[f>>2]|0,18)|0;break a}case 2:{tI(c[f>>2]|0,19)|0;break a}case 4:{tI(c[f>>2]|0,16)|0;break a}default:ma(141129,112765,658,113063)}break}case 2:{switch(a[e+8>>0]|0){case 1:{tI(c[f>>2]|0,20)|0;break a}case 2:{tI(c[f>>2]|0,21)|0;break a}case 4:{tI(c[f>>2]|0,22)|0;break a}case 8:{tI(c[f>>2]|0,17)|0;break a}default:ma(141129,112765,668,113063)}break}case 6:{yb=i;return}default:ma(141129,112765,673,113063)}}while(0);g=WCb(c[e+16>>2]|0)|0;h=d[e+8>>0]|0;G5(b,g,h,WCb(c[e+12>>2]|0)|0);yb=i;return}function el(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=yb;yb=yb+80|0;i=s+64|0;q=s+60|0;r=s+56|0;n=s+40|0;l=s+32|0;j=s+24|0;m=s+16|0;k=s+8|0;p=s;c[i>>2]=g;o=c[b>>2]|0;if((c[o+4>>2]|0)==6){yb=s;return}Gsb(q,h);g=vJa(c[q>>2]|0,0)|0;c[r>>2]=g;c[n>>2]=q;c[n+4>>2]=i;c[n+8>>2]=r;c[n+12>>2]=a;g=c[o>>2]|0;a:do if(PBb(g)|0){a=(Ffb(o)|0)+8|0;nrb(l,a);Hib(j,a);a=l+4|0;h=c[j>>2]|0;g=c[j+4>>2]|0;while(1){if(!(dhb(c[l>>2]|0,c[a>>2]|0,h,g)|0))break a;Wv(n,Qab(l)|0);hob(l)}}else{if(!(zAb(g)|0))ma(141129,108066,167,108175);a=(wdb(o)|0)+8|0;nrb(m,a);Hib(k,a);a=m+4|0;h=c[k>>2]|0;g=c[k+4>>2]|0;while(1){if(!(dhb(c[m>>2]|0,c[a>>2]|0,h,g)|0))break;Wv(n,Qab(m)|0);hob(m)}Wv(n,(wdb(o)|0)+28|0)}while(0);a=c[d+4>>2]|0;g=c[d>>2]|0;while(1){if((g|0)==(a|0))break;c[p>>2]=c[g>>2];j=(c[r>>2]|0)+12|0;k=Era(1)|0;l=fn(f,p)|0;l=c[l>>2]|0;m=Era(1)|0;n=T3a(c[q>>2]|0,e,1)|0;d=T3a(c[q>>2]|0,c[p>>2]|0,1)|0;Wla(j,S$(c[q>>2]|0,k,l,m,n,d,1)|0);g=g+4|0}Wla((c[r>>2]|0)+12|0,o);_u(c[r>>2]|0);c[b>>2]=c[r>>2];yb=s;return}function fl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;r=yb;yb=yb+96|0;s=r+72|0;i=r+64|0;w=r+48|0;k=r;l=r+32|0;m=d+16|0;g=c[m>>2]|0;if(g>>>0>250){g=c[d+36>>2]|0;Sb[c[(c[g>>2]|0)+20>>2]&8191](g,67720);g=c[m>>2]|0}c[m>>2]=g+1;p=d+24|0;h=c[p>>2]|0;j=d+20|0;q=h-(c[j>>2]|0)|0;if((c[d+28>>2]|0)==(h|0))_M(d+20|0,e);else{c[h>>2]=c[e>>2];c[p>>2]=(c[p>>2]|0)+4}h=c[d>>2]|0;c[i>>2]=c[e>>2];c[s>>2]=c[i>>2];e=wQ(h,s)|0;if(!e)ma(74589,96854,1192,67732);Fi(w,e,f);I3(l,d,w);n=0;ea(116,k|0,l|0,c[e+44>>2]|0);l=n;n=0;do if(!(l&1)){if(lsb(k)|0?!(dub(c[k+24>>2]|0,c[37374]|0)|0):0){n=0;fa(75,67753,96854,1204,67732);n=0;break}c[b>>2]=c[k>>2];c[b+4>>2]=c[k+4>>2];c[b+8>>2]=c[k+8>>2];c[b+12>>2]=c[k+12>>2];c[b+16>>2]=c[k+16>>2];c[b+20>>2]=c[k+20>>2];h=e+12|0;if((c[h>>2]|0)==(c[b+16>>2]|0)){c[m>>2]=g;b=c[j>>2]|0;e=c[p>>2]|0;g=e;while(1){if((g-b|0)>>>0<=q>>>0)break;v=e+-4|0;c[p>>2]=v;g=v;e=v}Htb(w);yb=r;return}n=0;g=U(59,150620,67801)|0;r=n;n=0;if((!(r&1)?(n=0,o=U(82,g|0,c[e+8>>2]|0)|0,r=n,n=0,!(r&1)):0)?(n=0,t=U(59,o|0,67810)|0,r=n,n=0,!(r&1)):0){n=0;e=s;g=e+24|0;do{a[e>>0]=a[b>>0]|0;e=e+1|0;b=b+1|0}while((e|0)<(g|0));b=U(83,t|0,s|0)|0;t=n;n=0;if(((!(t&1)?(n=0,u=U(59,b|0,67824)|0,t=n,n=0,!(t&1)):0)?(n=0,v=U(63,u|0,c[h>>2]|0)|0,u=n,n=0,!(u&1)):0)?(n=0,U(62,v|0,10)|0,v=n,n=0,!(v&1)):0){n=0;fa(75,141129,96854,1208,67732);n=0}}}while(0);v=sa()|0;P()|0;Htb(w);Ea(v|0)}function gl(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=yb;yb=yb+80|0;q=x+64|0;j=x+56|0;v=x+40|0;k=x+32|0;h=x+24|0;l=x+16|0;m=x+12|0;o=x+8|0;t=x+4|0;r=x;i=cfb(c[b>>2]|0)|0;yib(v);f=i+8|0;nrb(k,f);Hib(h,f);f=k+4|0;g=c[h>>2]|0;h=c[h+4>>2]|0;s=a+68|0;u=a+64|0;while(1){if(!(dhb(c[k>>2]|0,c[f>>2]|0,g,h)|0))break;n=0;b=S(271,k|0)|0;e=n;n=0;if(e&1){p=19;break}b=c[b>>2]|0;c[l>>2]=b;if(!(f9(v,l)|0)){c[o>>2]=b;n=0;c[q>>2]=c[o>>2];b=U(100,a|0,q|0)|0;e=n;n=0;if(e&1){p=19;break}c[m>>2]=b;n=0;b=U(101,s|0,m|0)|0;e=n;n=0;if(e&1){p=19;break}d=b+4|0;e=c[d>>2]|0;if((e|0)==(c[b+8>>2]|0)){n=0;da(395,b|0,u|0);e=n;n=0;if(e&1){p=19;break}}else{c[e>>2]=c[u>>2];c[d>>2]=(c[d>>2]|0)+4}n=0;fa(98,j|0,v|0,l|0,l|0);e=n;n=0;if(e&1){p=19;break}}hob(k)}if((p|0)==19){x=sa()|0;P()|0;Khb(v);Ea(x|0)}b=i+24|0;if(f9(v,b)|0){Hkb(a);Khb(v);yb=x;return}c[r>>2]=c[b>>2];n=0;c[q>>2]=c[r>>2];b=U(100,a|0,q|0)|0;r=n;n=0;do if(!(r&1)?(c[t>>2]=b,n=0,w=U(101,s|0,t|0)|0,t=n,n=0,!(t&1)):0){b=w+4|0;d=c[b>>2]|0;if((d|0)==(c[w+8>>2]|0)){n=0;da(395,w|0,u|0);w=n;n=0;if(w&1)break;Hkb(a);Khb(v);yb=x;return}else{c[d>>2]=c[u>>2];c[b>>2]=(c[b>>2]|0)+4;Hkb(a);Khb(v);yb=x;return}}while(0);x=sa()|0;P()|0;Khb(v);Ea(x|0)}function hl(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;n=yb;yb=yb+224|0;m=n+192|0;g=n+160|0;h=n+136|0;i=n+104|0;j=n+80|0;k=n+48|0;l=n+24|0;f=n;nz(g,d,c[e+8>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=n;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];nz(i,d,c[e+12>>2]|0);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=n;return}c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];c[j+20>>2]=c[g+20>>2];nz(k,d,c[e+16>>2]|0);c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2];c[g+20>>2]=c[k+20>>2];c[g+24>>2]=c[k+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=n;return}else{c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];c[l+8>>2]=c[g+8>>2];c[l+12>>2]=c[g+12>>2];c[l+16>>2]=c[g+16>>2];c[l+20>>2]=c[g+20>>2];jma(f,l,h,j);e=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,m);yb=n;return}}function il(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,s=0,t=0;t=yb;yb=yb+112|0;q=t+80|0;p=t+76|0;r=t+72|0;g=t+48|0;s=t+24|0;j=t;l=d+8|0;e=c[l>>2]|0;o=c[d+4>>2]|0;c[p>>2]=o;d=(o|0)==2;Gsb(r,b);n=c[r>>2]|0;f=T3a(n,0,o)|0;f=hIa(n,e,f,T3a(n,1,o)|0)|0;m=d?21:20;if(d){Heb(g,0,-2147483648);Heb(s,0,0)}else{Bqb(g,-2147483648);Bqb(s,0)}if((e|0)==((d?28:3)|0)){e=d?40:15;if(d)Heb(j,-1,-1);else Bqb(j,-1);d=T3a(n,0,o)|0;k=q;h=g;i=k+24|0;do{a[k>>0]=a[h>>0]|0;k=k+1|0;h=h+1|0}while((k|0)<(i|0));d=hIa(n,e,d,D7(r,q)|0)|0;b=T3a(n,1,o)|0;k=q;h=j;i=k+24|0;do{a[k>>0]=a[h>>0]|0;k=k+1|0;h=h+1|0}while((k|0)<(i|0));d=hIa(n,7,d,hIa(n,e,b,D7(r,q)|0)|0)|0;k=q;h=s;i=k+24|0;do{a[k>>0]=a[h>>0]|0;k=k+1|0;h=h+1|0}while((k|0)<(i|0));f=zOa(n,d,D7(r,q)|0,f)|0}g=mla(120)|0;mT(g);b=QS(c[l>>2]|0)|0;c[g+8>>2]=b;b=g+20|0;d=c[b>>2]|0;e=g+24|0;if((d|0)==(c[e>>2]|0)){_M(g+16|0,p);d=c[b>>2]|0}else{c[d>>2]=o;d=(c[b>>2]|0)+4|0;c[b>>2]=d}if((d|0)==(c[e>>2]|0)){_M(g+16|0,p);d=g+12|0;c[d>>2]=o;d=T3a(n,1,o)|0;d=pVa(n,m,d)|0;k=q;h=s;i=k+24|0;do{a[k>>0]=a[h>>0]|0;k=k+1|0;h=h+1|0}while((k|0)<(i|0));r=D7(r,q)|0;r=zOa(n,d,r,f)|0;s=g+44|0;c[s>>2]=r;yb=t;return g|0}else{c[d>>2]=o;c[b>>2]=(c[b>>2]|0)+4;d=g+12|0;c[d>>2]=o;d=T3a(n,1,o)|0;d=pVa(n,m,d)|0;k=q;h=s;i=k+24|0;do{a[k>>0]=a[h>>0]|0;k=k+1|0;h=h+1|0}while((k|0)<(i|0));r=D7(r,q)|0;r=zOa(n,d,r,f)|0;s=g+44|0;c[s>>2]=r;yb=t;return g|0}return 0}function jl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=yb;yb=yb+64|0;g=s+40|0;m=s+36|0;n=s+32|0;o=s+28|0;p=s+24|0;q=s+20|0;r=s+16|0;h=s+12|0;i=s+8|0;j=s+4|0;k=s;l=s+48|0;switch(c[d+32>>2]|0){case 1:{switch(a[d+8>>0]|0){case 1:{q=c[(c[b>>2]|0)+68>>2]|0;c[m>>2]=c[e>>2];r=(Peb(f)|0)&255;c[g>>2]=c[m>>2];Tb[q&255](b,g,r);yb=s;return}case 2:{q=c[(c[b>>2]|0)+72>>2]|0;c[n>>2]=c[e>>2];r=(Peb(f)|0)&65535;c[g>>2]=c[n>>2];Tb[q&255](b,g,r);yb=s;return}case 4:{q=c[(c[b>>2]|0)+76>>2]|0;c[o>>2]=c[e>>2];r=Peb(f)|0;c[g>>2]=c[o>>2];Tb[q&255](b,g,r);yb=s;return}default:ma(141129,96854,800,134503)}break}case 2:{switch(a[d+8>>0]|0){case 1:{q=c[(c[b>>2]|0)+68>>2]|0;c[p>>2]=c[e>>2];r=$Xa(f)|0;P()|0;c[g>>2]=c[p>>2];Tb[q&255](b,g,r&255);yb=s;return}case 2:{p=c[(c[b>>2]|0)+72>>2]|0;c[q>>2]=c[e>>2];r=$Xa(f)|0;P()|0;c[g>>2]=c[q>>2];Tb[p&255](b,g,r&65535);yb=s;return}case 4:{p=c[(c[b>>2]|0)+76>>2]|0;c[r>>2]=c[e>>2];q=$Xa(f)|0;P()|0;c[g>>2]=c[r>>2];Tb[p&255](b,g,q);yb=s;return}case 8:{p=c[(c[b>>2]|0)+80>>2]|0;c[h>>2]=c[e>>2];q=$Xa(f)|0;r=P()|0;c[g>>2]=c[h>>2];Ub[p&255](b,g,q,r);yb=s;return}default:ma(141129,96854,810,134503)}break}case 3:{q=c[(c[b>>2]|0)+76>>2]|0;c[i>>2]=c[e>>2];r=Vcb(f)|0;c[g>>2]=c[i>>2];Tb[q&255](b,g,r);yb=s;return}case 4:{p=c[(c[b>>2]|0)+80>>2]|0;c[j>>2]=c[e>>2];q=rVa(f)|0;r=P()|0;c[g>>2]=c[j>>2];Ub[p&255](b,g,q,r);yb=s;return}case 5:{r=c[(c[b>>2]|0)+84>>2]|0;c[k>>2]=c[e>>2];qIa(l,f);c[g>>2]=c[k>>2];Tb[r&255](b,g,l);yb=s;return}case 6:case 0:{ma(141129,96854,819,134503);break}default:{yb=s;return}}}function kl(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;q=yb;yb=yb+144|0;n=q+120|0;g=q+88|0;l=q+56|0;o=q+24|0;p=q;tw(g,e,c[f+16>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=q;return}tw(l,e,c[f+20>>2]|0);if(lsb(l)|0){c[b>>2]=c[l>>2];c[b+4>>2]=c[l+4>>2];c[b+8>>2]=c[l+8>>2];c[b+12>>2]=c[l+12>>2];c[b+16>>2]=c[l+16>>2];c[b+20>>2]=c[l+20>>2];c[b+24>>2]=c[l+24>>2];c[b+28>>2]=c[l+28>>2];yb=q;return}tw(o,e,c[f+24>>2]|0);if(lsb(o)|0){c[b>>2]=c[o>>2];c[b+4>>2]=c[o+4>>2];c[b+8>>2]=c[o+8>>2];c[b+12>>2]=c[o+12>>2];c[b+16>>2]=c[o+16>>2];c[b+20>>2]=c[o+20>>2];c[b+24>>2]=c[o+24>>2];c[b+28>>2]=c[o+28>>2];yb=q;return}h=e+4|0;e=c[h>>2]|0;m=n;j=g;k=m+24|0;do{a[m>>0]=a[j>>0]|0;m=m+1|0;j=j+1|0}while((m|0)<(k|0));i=Gv(e,f,n)|0;e=f+8|0;FB(p,c[h>>2]|0,i,d[e>>0]|0,c[f+4>>2]|0);if(yda(p,l)|0){g=c[h>>2]|0;e=d[e>>0]|0;m=n;j=o;k=m+24|0;do{a[m>>0]=a[j>>0]|0;m=m+1|0;j=j+1|0}while((m|0)<(k|0));Kw(g,i,e,n)}m=n;j=p;k=m+24|0;do{a[m>>0]=a[j>>0]|0;m=m+1|0;j=j+1|0}while((m|0)<(k|0));Wza(b,n);yb=q;return}function ll(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+32|0;s=t+16|0;u=t+4|0;o=t;c[o>>2]=d;h=c[d>>2]|0;c[s>>2]=h;s=pH(s,4)|0;q=b+4|0;k=c[q>>2]|0;p=(k|0)==0;a:do if(!p){l=k+-1|0;m=(k&l|0)==0;if(!m)if(s>>>0>>0)e=s;else e=(s>>>0)%(k>>>0)|0;else e=s&l;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if((f|0)!=(s|0)){if(!m){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(e|0))break a}}while((c[d+8>>2]|0)!=(h|0));u=d+12|0;yb=t;return u|0}}else e=0;while(0);ER(u,b,s,o);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)!=0&1;r=21}else{e=1;r=21}}else if(p){d=0;e=1;r=21}do if((r|0)==21){r=d|e;p=~~+I(+(i/j))>>>0;n=0;da(1091,b|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(!(r&1)){d=c[q>>2]|0;e=d+-1|0;if(!(d&e)){k=d;e=s&e;break}if(s>>>0>>0){k=d;e=s;break}k=d;e=(s>>>0)%(d>>>0)|0;break}d=sa()|0;P()|0;e=c[u>>2]|0;c[u>>2]=0;if(!e)Ea(d|0);if(a[u+8>>0]&1)acb(e+8|0);RCb(e);Ea(d|0)}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){s=b+8|0;d=c[u>>2]|0;c[d>>2]=c[s>>2];h=d;c[s>>2]=h;c[(c[b>>2]|0)+(e<<2)>>2]=s;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[b>>2]|0)+(e<<2)>>2]=h}}else{b=c[u>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=b;d=b}c[l>>2]=(c[l>>2]|0)+1;c[u>>2]=0;u=d;u=u+12|0;yb=t;return u|0}function ml(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;q=yb;yb=yb+272|0;p=q+248|0;g=q+216|0;h=q+192|0;k=q+168|0;l=q+144|0;m=q+120|0;n=q+96|0;o=q+72|0;f=q+48|0;i=q+24|0;j=q;AB(g,d,c[e+12>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=q;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];switch(c[e+8>>2]|0){case 0:{K9(k,h,a[e+16>>0]|0);e=p;f=k;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 1:{J9(l,h,a[e+16>>0]|0);e=p;f=l;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 2:{P9(m,h,a[e+16>>0]|0);e=p;f=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 3:{O9(n,h,a[e+16>>0]|0);e=p;f=n;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 4:{faa(o,h,a[e+16>>0]|0);e=p;f=o;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 5:{eaa(f,h,a[e+16>>0]|0);e=p;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 6:{haa(i,h,a[e+16>>0]|0);e=p;f=i;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 7:{gaa(j,h,a[e+16>>0]|0);e=p;f=j;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}default:ma(141129,96854,561,97361)}}function nl(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+32|0;s=t+16|0;u=t+4|0;o=t;c[o>>2]=d;h=c[d>>2]|0;c[s>>2]=h;s=pH(s,4)|0;q=b+4|0;k=c[q>>2]|0;p=(k|0)==0;a:do if(!p){l=k+-1|0;m=(k&l|0)==0;if(!m)if(s>>>0>>0)e=s;else e=(s>>>0)%(k>>>0)|0;else e=s&l;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if((f|0)!=(s|0)){if(!m){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(e|0))break a}}while((c[d+8>>2]|0)!=(h|0));u=d+12|0;yb=t;return u|0}}else e=0;while(0);zS(u,b,s,o);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)!=0&1;r=21}else{e=1;r=21}}else if(p){d=0;e=1;r=21}do if((r|0)==21){r=d|e;p=~~+I(+(i/j))>>>0;n=0;da(2366,b|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(!(r&1)){d=c[q>>2]|0;e=d+-1|0;if(!(d&e)){k=d;e=s&e;break}if(s>>>0>>0){k=d;e=s;break}k=d;e=(s>>>0)%(d>>>0)|0;break}d=sa()|0;P()|0;e=c[u>>2]|0;c[u>>2]=0;if(!e)Ea(d|0);if(a[u+8>>0]&1)s1a(e+8|0);RCb(e);Ea(d|0)}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){s=b+8|0;d=c[u>>2]|0;c[d>>2]=c[s>>2];h=d;c[s>>2]=h;c[(c[b>>2]|0)+(e<<2)>>2]=s;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[b>>2]|0)+(e<<2)>>2]=h}}else{b=c[u>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=b;d=b}c[l>>2]=(c[l>>2]|0)+1;c[u>>2]=0;u=d;u=u+12|0;yb=t;return u|0}function ol(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0;m=yb;yb=yb+144|0;i=m+128|0;j=m+124|0;o=m+64|0;p=m+44|0;q=m+24|0;k=m+12|0;f=m+8|0;h=m+4|0;l=m;c[j>>2]=a;p$a(o);n=0;da(2799,o|0,a|0);e=n;n=0;if(e&1){q=sa()|0;P()|0;$Qa(o);Ea(q|0)}c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;g[p+16>>2]=1.0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;g[q+16>>2]=1.0;c[k>>2]=j;c[k+4>>2]=p;c[k+8>>2]=q;b=c[o+28>>2]|0;a=c[o+24>>2]|0;while(1){if((a|0)==(b|0)){f=12;break}d=(c[a>>2]|0)+40|0;c[f>>2]=c[d>>2];n=0;c[i>>2]=c[f>>2];e=U(171,k|0,i|0)|0;r=n;n=0;if(r&1){f=9;break}c[d>>2]=e;a=a+4|0}do if((f|0)==9){a=sa()|0;P()|0}else if((f|0)==12){b=c[o+40>>2]|0;a=c[o+36>>2]|0;while(1){if((a|0)==(b|0))break;d=(c[a>>2]|0)+40|0;c[h>>2]=c[d>>2];n=0;c[i>>2]=c[h>>2];e=U(171,k|0,i|0)|0;r=n;n=0;if(r&1){f=8;break}c[d>>2]=e;a=a+4|0}if((f|0)==8){a=sa()|0;P()|0;break}b=c[o+52>>2]|0;a=c[o+48>>2]|0;while(1){if((a|0)==(b|0))break;d=(c[a>>2]|0)+24|0;c[l>>2]=c[d>>2];n=0;c[i>>2]=c[l>>2];e=U(171,k|0,i|0)|0;r=n;n=0;if(r&1){f=7;break}c[d>>2]=e;a=a+4|0}if((f|0)==7){a=sa()|0;P()|0;break}l=c[j>>2]|0;r=YH(c[l>>2]|0,c[l+4>>2]|0,q)|0;MR(l,r,c[(c[j>>2]|0)+4>>2]|0)|0;n=0;ca(520,c[j>>2]|0);r=n;n=0;if(r&1){a=sa()|0;P()|0;break}else{Pdb(q);Yqa(p);$Qa(o);yb=m;return}}while(0);Pdb(q);Yqa(p);r=a;$Qa(o);Ea(r|0)}function pl(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;l=a+4|0;m=c[l>>2]|0;d=m&-8;i=a+d|0;if(!(m&3)){if(b>>>0<256){a=0;return a|0}if(d>>>0>=(b+4|0)>>>0?(d-b|0)>>>0<=c[37564]<<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;k=a+b|0;c[l>>2]=m&1|b|2;c[k+4>>2]=d|3;m=i+4|0;c[m>>2]=c[m>>2]|1;rh(k,d);return a|0}if((c[37450]|0)==(i|0)){k=(c[37447]|0)+d|0;d=k-b|0;e=a+b|0;if(k>>>0<=b>>>0){a=0;return a|0}c[l>>2]=m&1|b|2;c[e+4>>2]=d|1;c[37450]=e;c[37447]=d;return a|0}if((c[37449]|0)==(i|0)){e=(c[37446]|0)+d|0;if(e>>>0>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){k=a+b|0;e=a+e|0;c[l>>2]=m&1|b|2;c[k+4>>2]=d|1;c[e>>2]=d;e=e+4|0;c[e>>2]=c[e>>2]&-2;e=k}else{c[l>>2]=m&1|e|2;e=a+e+4|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[37446]=d;c[37449]=e;return a|0}e=c[i+4>>2]|0;if(e&2|0){a=0;return a|0}j=(e&-8)+d|0;if(j>>>0>>0){a=0;return a|0}k=j-b|0;f=e>>>3;do if(e>>>0<256){e=c[i+8>>2]|0;d=c[i+12>>2]|0;if((d|0)==(e|0)){c[37444]=c[37444]&~(1<>2]=d;c[d+8>>2]=e;break}}else{h=c[i+24>>2]|0;d=c[i+12>>2]|0;do if((d|0)==(i|0)){e=i+16|0;f=e+4|0;d=c[f>>2]|0;if(!d){d=c[e>>2]|0;if(!d){f=0;break}}else e=f;while(1){g=d+20|0;f=c[g>>2]|0;if(!f){g=d+16|0;f=c[g>>2]|0;if(!f)break;else{d=f;e=g}}else{d=f;e=g}}c[e>>2]=0;f=d}else{f=c[i+8>>2]|0;c[f+12>>2]=d;c[d+8>>2]=f;f=d}while(0);if(h|0){d=c[i+28>>2]|0;e=150080+(d<<2)|0;if((c[e>>2]|0)==(i|0)){c[e>>2]=f;if(!f){c[37445]=c[37445]&~(1<>2]|0)==(i|0)?g:h+20|0)>>2]=f;if(!f)break}c[f+24>>2]=h;d=i+16|0;e=c[d>>2]|0;if(e|0){c[f+16>>2]=e;c[e+24>>2]=f}d=c[d+4>>2]|0;if(d|0){c[f+20>>2]=d;c[d+24>>2]=f}}}while(0);if(k>>>0<16){c[l>>2]=m&1|j|2;m=a+j+4|0;c[m>>2]=c[m>>2]|1;return a|0}else{i=a+b|0;c[l>>2]=m&1|b|2;c[i+4>>2]=k|3;m=a+j+4|0;c[m>>2]=c[m>>2]|1;rh(i,k);return a|0}return 0}function ql(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;q=yb;yb=yb+192|0;l=q+168|0;k=q+136|0;m=q+104|0;f=q+72|0;n=q+48|0;o=q+24|0;p=q;tw(k,d,c[e+12>>2]|0);if(lsb(k)|0){c[b>>2]=c[k>>2];c[b+4>>2]=c[k+4>>2];c[b+8>>2]=c[k+8>>2];c[b+12>>2]=c[k+12>>2];c[b+16>>2]=c[k+16>>2];c[b+20>>2]=c[k+20>>2];c[b+24>>2]=c[k+24>>2];c[b+28>>2]=c[k+28>>2];yb=q;return}tw(m,d,c[e+16>>2]|0);if(lsb(m)|0){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];c[b+12>>2]=c[m+12>>2];c[b+16>>2]=c[m+16>>2];c[b+20>>2]=c[m+20>>2];c[b+24>>2]=c[m+24>>2];c[b+28>>2]=c[m+28>>2];yb=q;return}tw(f,d,c[e+20>>2]|0);if(lsb(f)|0){c[b>>2]=c[f>>2];c[b+4>>2]=c[f+4>>2];c[b+8>>2]=c[f+8>>2];c[b+12>>2]=c[f+12>>2];c[b+16>>2]=c[f+16>>2];c[b+20>>2]=c[f+20>>2];c[b+24>>2]=c[f+24>>2];c[b+28>>2]=c[f+28>>2];yb=q;return}i=e+24|0;j=Era(c[i>>2]|0)|0;d=d+4|0;g=c[d>>2]|0;h=l;e=k;f=h+24|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(f|0));k=zQ(g,l,j)|0;FB(n,c[d>>2]|0,k,j,c[i>>2]|0);if(Opb(n,m)|0){Bqb(o,1);h=l;e=o;f=h+24|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(f|0));Wza(b,l);yb=q;return}else{Bqb(p,0);h=l;e=p;f=h+24|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(f|0));Wza(b,l);yb=q;return}}function rl(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,o=0;o=yb;yb=yb+32|0;d=o+20|0;f=o+16|0;m=o+4|0;g=o;b=Ct(a)|0;c[d>>2]=b;if(c[b+4>>2]|0){m=b;yb=o;return m|0}Gsb(f,c[a>>2]|0);c[m>>2]=0;h=m+4|0;c[h>>2]=0;e=m+8|0;c[e>>2]=0;n=0;da(332,m|0,d|0);j=n;n=0;do if(!(j&1)){do{n=0;b=S(324,a|0)|0;j=n;n=0;if(j&1){l=30;break}c[g>>2]=b;d=c[h>>2]|0;if((d|0)==(c[e>>2]|0)){n=0;da(332,m|0,g|0);j=n;n=0;if(j&1){l=30;break}}else{c[d>>2]=b;c[h>>2]=(c[h>>2]|0)+4}}while(!(c[b+4>>2]|0));if((l|0)==30){o=sa()|0;P()|0;Vob(m);Ea(o|0)}g=c[f>>2]|0;n=0;i=U(86,g|0,0)|0;j=n;n=0;if(!(j&1)){j=i+12|0;b=c[h>>2]|0;while(1){if((c[m>>2]|0)==(b|0))break;n=0;da(231,j|0,c[b+-4>>2]|0);f=n;n=0;if(f&1){l=29;break}b=(c[h>>2]|0)+-4|0;c[h>>2]=b}if((l|0)==29){o=sa()|0;P()|0;Vob(m);Ea(o|0)}n=0;da(4042,a|0,115929);l=n;n=0;if(!(l&1)?(n=0,k=U(74,j|0,0)|0,l=n,n=0,!(l&1)):0){f=c[(c[k>>2]|0)+4>>2]|0;if(vub(f)|0){n=0;e=U(133,c[a+120>>2]|0,f|0)|0;a=n;n=0;if(a&1)break;n=0;b=U(74,j|0,0)|0;a=n;n=0;if(a&1)break;n=0;b=V(70,g|0,e|0,c[b>>2]|0)|0;a=n;n=0;if(a&1)break;n=0;d=U(74,j|0,0)|0;a=n;n=0;if(a&1)break;c[d>>2]=b;n=0;b=V(71,g|0,e|0,f|0)|0;a=n;n=0;if(a&1)break;n=0;da(231,j|0,b|0);a=n;n=0;if(a&1)break}else if((f|0)!=6){n=0;fa(75,115968,112368,1472,115988);n=0;break}n=0;ca(517,i|0);a=n;n=0;if(!(a&1)){Vob(m);m=i;yb=o;return m|0}}}}while(0);o=sa()|0;P()|0;Vob(m);Ea(o|0);return 0}function sl(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,o=0,p=0,q=0,r=0;o=yb;yb=yb+32|0;i=o+16|0;j=o+8|0;k=o+4|0;l=o;$lb(b);c[b+24>>2]=d;q=b+28|0;c[q>>2]=0;m=b+32|0;c[m>>2]=0;c[b+36>>2]=0;p=b+40|0;yib(p);a[b+52>>0]=0;a[b+53>>0]=0;if((q|0)!=(e|0)?(n=0,ea(168,q|0,c[e>>2]|0,c[e+4>>2]|0),h=n,n=0,h&1):0){e=sa()|0;P()|0}else g=3;do if((g|0)==3){f=c[d+112>>2]|0;e=c[d+108>>2]|0;while(1){if((e|0)==(f|0))break;n=0;da(2838,b|0,e|0);h=n;n=0;if(h&1){g=26;break}e=e+16|0}if((g|0)==26){e=sa()|0;P()|0;break}f=c[d+76>>2]|0;e=c[d+72>>2]|0;while(1){if((e|0)==(f|0))break;n=0;da(2838,b|0,e|0);h=n;n=0;if(h&1){g=25;break}e=e+16|0}if((g|0)==25){e=sa()|0;P()|0;break}g=b+28|0;h=b+40|0;a:while(1){f=c[m>>2]|0;e=f;if((f|0)==(c[g>>2]|0)){g=23;break}f=e+-8|0;c[m>>2]=f;do if(!(GP(h,f)|0)){n=0;fa(123,j|0,h|0,f|0,f|0);r=n;n=0;if(r&1){g=24;break a}e=c[e+-4>>2]|0;if(!(c[f>>2]|0)){c[k>>2]=e;n=0;c[i>>2]=c[k>>2];e=U(64,d|0,i|0)|0;r=n;n=0;if(r&1){g=24;break a}if(Yrb(e)|0)break;n=0;da(2838,b|0,e+44|0);r=n;n=0;if(r&1){g=24;break a}else break}else{c[l>>2]=e;n=0;c[i>>2]=c[l>>2];e=U(173,d|0,i|0)|0;r=n;n=0;if(r&1){g=24;break a}if(Yrb(e)|0)break;n=0;da(2838,b|0,e+16|0);r=n;n=0;if(r&1){g=24;break a}else break}}while(0)}if((g|0)==23){yb=o;return}else if((g|0)==24){e=sa()|0;P()|0;break}}while(0);A1a(p);Vob(q);Hqb(b);Ea(e|0)}function tl(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+224|0;j=t+216|0;k=t+128|0;l=t+212|0;m=t+208|0;o=t+200|0;p=t;q=t+192|0;r=t+188|0;u=t+176|0;i=t+168|0;s=t+160|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[u+(d<<2)>>2]=0;d=d+1|0}c[i+4>>2]=0;c[i>>2]=49880;g=a[h+8+3>>0]|0;d=g<<24>>24<0;e=d?c[h>>2]|0:h;g=e+((d?c[h+4>>2]|0:g&255)<<2)|0;h=k+32|0;d=0;a:while(1){if(!((d|0)!=2&e>>>0>>0)){e=17;break}c[m>>2]=e;n=0;f=$(c[(c[i>>2]|0)+12>>2]|0,i|0,j|0,e|0,g|0,m|0,k|0,h|0,l|0)|0;d=n;n=0;if(d&1){e=15;break}if((f|0)==2?1:(c[m>>2]|0)==(e|0)){e=9;break}d=k;while(1){if(d>>>0>=(c[l>>2]|0)>>>0)break;n=0;da(91,u|0,a[d>>0]|0);e=n;n=0;if(e&1){e=14;break a}d=d+1|0}e=c[m>>2]|0;d=f}if((e|0)==9){n=0;ca(575,137486);n=0;d=sa()|0;P()|0;e=16}else if((e|0)==14){d=sa()|0;P()|0;e=16}else if((e|0)==15){d=sa()|0;P()|0;e=16}else if((e|0)==17){e=(a[u+11>>0]|0)<0?c[u>>2]|0:u;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}g=WCb(e)|0;c[s+4>>2]=0;c[s>>2]=49928;g=e+(y2(g)|0)|0;h=g;i=p+128|0;d=0;b:while(1){if(!((d|0)!=2&e>>>0>>0)){e=30;break}c[r>>2]=e;n=0;f=$(c[(c[s>>2]|0)+16>>2]|0,s|0,o|0,e|0,((h-e|0)>32?e+32|0:g)|0,r|0,p|0,i|0,q|0)|0;m=n;n=0;if(m&1){e=32;break}if((f|0)==2?1:(c[r>>2]|0)==(e|0)){e=25;break}d=p;while(1){if(d>>>0>=(c[q>>2]|0)>>>0)break;n=0;da(4190,b|0,c[d>>2]|0);m=n;n=0;if(m&1){e=31;break b}d=d+4|0}e=c[r>>2]|0;d=f}if((e|0)==25){n=0;ca(575,137486);n=0;d=sa()|0;P()|0}else if((e|0)==30){Chb(u);yb=t;return}else if((e|0)==31){d=sa()|0;P()|0}else if((e|0)==32){d=sa()|0;P()|0}bhb(b)}Chb(u);Ea(d|0)}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,l=0,m=0,o=0,p=0,q=0,r=0,s=0;s=yb;yb=yb+16|0;q=s;a:do if(((((d-b|0)>3?(a[b>>0]|0)==99:0)?(a[b+1>>0]|0)==108:0)?(o=b+2|0,i=ac(o,d,e)|0,!((i|0)==(o|0)|(i|0)==(d|0))):0)?(p=e+4|0,f=c[p>>2]|0,(c[e>>2]|0)!=(f|0)):0){l=f+-12|0;o=a[l+11>>0]|0;m=o<<24>>24<0;yM(f+-24|0,m?c[l>>2]|0:l,m?c[f+-8>>2]|0:o&255)|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[q+(f<<2)>>2]=0;f=f+1|0}f=c[p>>2]|0;h=f+-12|0;g=h+11|0;if((a[g>>0]|0)<0){Fsb(c[h>>2]|0,0);c[f+-8>>2]=0;f=h}else{Fsb(h,0);a[g>>0]=0;f=h}Yw(h);c[f>>2]=c[q>>2];c[f+4>>2]=c[q+4>>2];c[f+8>>2]=c[q+8>>2];f=0;while(1){if((f|0)==3)break;c[q+(f<<2)>>2]=0;f=f+1|0}Chb(q);NLa((c[p>>2]|0)+-24|0,139929)|0;m=q+11|0;o=q+4|0;f=0;g=i;while(1){if((a[g>>0]|0)==69)break;l=ac(g,d,e)|0;if((l|0)==(g|0)|(l|0)==(d|0)){f=b;break a}h=c[p>>2]|0;if((c[e>>2]|0)==(h|0)){f=b;break a}d6(q,h+-24|0);k=c[p>>2]|0;h=0;while(1){if((h|0)==-1)break;j=h+-1|0;J2a(k+(j*24|0)|0);h=j}h=k+-24|0;c[p>>2]=h;j=a[m>>0]|0;i=j<<24>>24<0;j=i?c[o>>2]|0:j&255;if(j)if((c[e>>2]|0)!=(h|0)){n=0;V(124,k+-48|0,(i?c[q>>2]|0:q)|0,j|0)|0;k=n;n=0;if(k&1){r=24;break}else{h=1;g=l}}else{h=0;f=b}else{h=1;g=l}Chb(q);if(!h)break a}if((r|0)==24){s=sa()|0;P()|0;Chb(q);Ea(s|0)}f=c[p>>2]|0;if((c[e>>2]|0)!=(f|0)){NLa(f+-24|0,139927)|0;f=g+1|0}else f=b}else f=b;while(0);yb=s;return f|0}function vl(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;a:do if(!(dub(b,c[d+8>>2]|0)|0)){if(!(dub(b,c[d>>2]|0)|0)){q=c[b+12>>2]|0;k=b+16+(q<<3)|0;Rha(b+16|0,d,e,f,g);h=b+24|0;if((q|0)<=1)break;b=c[b+8>>2]|0;if((b&2|0)==0?(j=d+36|0,(c[j>>2]|0)!=1):0){if(!(b&1)){b=d+54|0;while(1){if(a[b>>0]|0)break a;if((c[j>>2]|0)==1)break a;Rha(h,d,e,f,g);h=h+8|0;if(h>>>0>=k>>>0)break a}}b=d+24|0;i=d+54|0;while(1){if(a[i>>0]|0)break a;if((c[j>>2]|0)==1?(c[b>>2]|0)==1:0)break a;Rha(h,d,e,f,g);h=h+8|0;if(h>>>0>=k>>>0)break a}}b=d+54|0;while(1){if(a[b>>0]|0)break a;Rha(h,d,e,f,g);h=h+8|0;if(h>>>0>=k>>>0)break a}}if((c[d+16>>2]|0)!=(e|0)?(q=d+20|0,(c[q>>2]|0)!=(e|0)):0){c[d+32>>2]=f;p=d+44|0;if((c[p>>2]|0)==4)break;k=b+16+(c[b+12>>2]<<3)|0;f=d+52|0;l=d+53|0;n=d+54|0;m=b+8|0;o=d+24|0;h=0;i=b+16|0;j=0;b:while(1){if(i>>>0>=k>>>0){b=18;break}a[f>>0]=0;a[l>>0]=0;Fea(i,d,e,e,1,g);if(a[n>>0]|0){b=18;break}do if(a[l>>0]|0){if(!(a[f>>0]|0))if(!(c[m>>2]&1)){h=1;b=18;break b}else{h=1;b=j;break}if((c[o>>2]|0)==1){b=23;break b}if(!(c[m>>2]&2)){b=23;break b}else{h=1;b=1}}else b=j;while(0);i=i+8|0;j=b}do if((b|0)==18){if((!j?(c[q>>2]=e,e=d+40|0,c[e>>2]=(c[e>>2]|0)+1,(c[d+36>>2]|0)==1):0)?(c[o>>2]|0)==2:0){a[n>>0]=1;if(h){b=23;break}else{h=4;break}}if(h)b=23;else h=4}while(0);if((b|0)==23)h=3;c[p>>2]=h;break}if((f|0)==1)c[d+32>>2]=1}else IPa(d,e,f);while(0);return}function wl(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+32|0;s=t+16|0;u=t+4|0;o=t;c[o>>2]=d;h=c[d>>2]|0;c[s>>2]=h;s=pH(s,4)|0;q=b+4|0;k=c[q>>2]|0;p=(k|0)==0;a:do if(!p){l=k+-1|0;m=(k&l|0)==0;if(!m)if(s>>>0>>0)e=s;else e=(s>>>0)%(k>>>0)|0;else e=s&l;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if((f|0)!=(s|0)){if(!m){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(e|0))break a}}while((c[d+8>>2]|0)!=(h|0));u=d+12|0;yb=t;return u|0}}else e=0;while(0);zS(u,b,s,o);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)!=0&1;r=21}else{e=1;r=21}}else if(p){d=0;e=1;r=21}do if((r|0)==21){r=d|e;p=~~+I(+(i/j))>>>0;n=0;da(438,b|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(!(r&1)){d=c[q>>2]|0;e=d+-1|0;if(!(d&e)){k=d;e=s&e;break}if(s>>>0>>0){k=d;e=s;break}k=d;e=(s>>>0)%(d>>>0)|0;break}d=sa()|0;P()|0;e=c[u>>2]|0;c[u>>2]=0;if(!e)Ea(d|0);if(a[u+8>>0]&1)s1a(e+8|0);RCb(e);Ea(d|0)}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){s=b+8|0;d=c[u>>2]|0;c[d>>2]=c[s>>2];h=d;c[s>>2]=h;c[(c[b>>2]|0)+(e<<2)>>2]=s;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[b>>2]|0)+(e<<2)>>2]=h}}else{b=c[u>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=b;d=b}c[l>>2]=(c[l>>2]|0)+1;c[u>>2]=0;u=d;u=u+12|0;yb=t;return u|0}function xl(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+32|0;s=t+16|0;u=t+4|0;o=t;c[o>>2]=d;h=c[d>>2]|0;c[s>>2]=h;s=pH(s,4)|0;q=b+4|0;k=c[q>>2]|0;p=(k|0)==0;a:do if(!p){l=k+-1|0;m=(k&l|0)==0;if(!m)if(s>>>0>>0)e=s;else e=(s>>>0)%(k>>>0)|0;else e=s&l;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if((f|0)!=(s|0)){if(!m){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(e|0))break a}}while((c[d+8>>2]|0)!=(h|0));u=d+12|0;yb=t;return u|0}}else e=0;while(0);zS(u,b,s,o);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)!=0&1;r=21}else{e=1;r=21}}else if(p){d=0;e=1;r=21}do if((r|0)==21){r=d|e;p=~~+I(+(i/j))>>>0;n=0;da(437,b|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(!(r&1)){d=c[q>>2]|0;e=d+-1|0;if(!(d&e)){k=d;e=s&e;break}if(s>>>0>>0){k=d;e=s;break}k=d;e=(s>>>0)%(d>>>0)|0;break}d=sa()|0;P()|0;e=c[u>>2]|0;c[u>>2]=0;if(!e)Ea(d|0);if(a[u+8>>0]&1)s1a(e+8|0);RCb(e);Ea(d|0)}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){s=b+8|0;d=c[u>>2]|0;c[d>>2]=c[s>>2];h=d;c[s>>2]=h;c[(c[b>>2]|0)+(e<<2)>>2]=s;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[b>>2]|0)+(e<<2)>>2]=h}}else{b=c[u>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=b;d=b}c[l>>2]=(c[l>>2]|0)+1;c[u>>2]=0;u=d;u=u+12|0;yb=t;return u|0}function yl(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+32|0;s=t+16|0;u=t+4|0;o=t;c[o>>2]=d;h=c[d>>2]|0;c[s>>2]=h;s=pH(s,4)|0;q=b+4|0;k=c[q>>2]|0;p=(k|0)==0;a:do if(!p){l=k+-1|0;m=(k&l|0)==0;if(!m)if(s>>>0>>0)e=s;else e=(s>>>0)%(k>>>0)|0;else e=s&l;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if((f|0)!=(s|0)){if(!m){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(e|0))break a}}while((c[d+8>>2]|0)!=(h|0));u=d+12|0;yb=t;return u|0}}else e=0;while(0);K3(u,b,s,o);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)!=0&1;r=21}else{e=1;r=21}}else if(p){d=0;e=1;r=21}do if((r|0)==21){r=d|e;p=~~+I(+(i/j))>>>0;n=0;da(4062,b|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(!(r&1)){d=c[q>>2]|0;e=d+-1|0;if(!(d&e)){k=d;e=s&e;break}if(s>>>0>>0){k=d;e=s;break}k=d;e=(s>>>0)%(d>>>0)|0;break}d=sa()|0;P()|0;e=c[u>>2]|0;c[u>>2]=0;if(!e)Ea(d|0);if(a[u+8>>0]&1)NCa(e+8|0);RCb(e);Ea(d|0)}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){s=b+8|0;d=c[u>>2]|0;c[d>>2]=c[s>>2];h=d;c[s>>2]=h;c[(c[b>>2]|0)+(e<<2)>>2]=s;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[b>>2]|0)+(e<<2)>>2]=h}}else{b=c[u>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=b;d=b}c[l>>2]=(c[l>>2]|0)+1;c[u>>2]=0;u=d;u=u+12|0;yb=t;return u|0}function zl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0;switch(b-a>>2|0){case 2:{f=b+-4|0;d=c[f>>2]|0;e=c[a>>2]|0;if(!(yea(+h[d+16>>3],+h[e+16>>3])|0)){a=1;return a|0}c[a>>2]=d;c[f>>2]=e;a=1;return a|0}case 3:{Lt(a,a+4|0,b+-4|0)|0;a=1;return a|0}case 4:{Wu(a,a+4|0,a+8|0,b+-4|0)|0;a=1;return a|0}case 5:{Zr(a,a+4|0,a+8|0,a+12|0,b+-4|0)|0;a=1;return a|0}case 1:case 0:{a=1;return a|0}default:{e=a+8|0;Lt(a,a+4|0,e)|0;l=a+12|0;i=0;d=0;while(1){if((l|0)==(b|0)){d=1;e=19;break}k=c[l>>2]|0;j=k+16|0;if(yea(+h[j>>3],+h[(c[e>>2]|0)+16>>3])|0){c[l>>2]=0;f=l;while(1){m=c[e>>2]|0;c[e>>2]=0;g=c[f>>2]|0;c[f>>2]=m;if(g|0){Htb(g);RCb(g)}if((e|0)==(a|0)){e=a;break}f=e+-4|0;if(yea(+h[j>>3],+h[(c[f>>2]|0)+16>>3])|0){m=e;e=f;f=m}else break}f=c[e>>2]|0;c[e>>2]=k;if(f|0){Htb(f);RCb(f)}e=i+1|0;f=(e|0)==8;g=l+4|0;d=f?(g|0)==(b|0):d;if(f){e=19;break}else{i=e;e=f?g:l}}else e=l;l=e+4|0}if((e|0)==19)return d|0}}return 0}function Al(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+32|0;s=t+16|0;u=t+4|0;o=t;c[o>>2]=d;h=c[d>>2]|0;c[s>>2]=h;s=pH(s,4)|0;q=b+4|0;k=c[q>>2]|0;p=(k|0)==0;a:do if(!p){l=k+-1|0;m=(k&l|0)==0;if(!m)if(s>>>0>>0)e=s;else e=(s>>>0)%(k>>>0)|0;else e=s&l;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if((f|0)!=(s|0)){if(!m){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(e|0))break a}}while((c[d+8>>2]|0)!=(h|0));u=d+12|0;yb=t;return u|0}}else e=0;while(0);zS(u,b,s,o);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)!=0&1;r=21}else{e=1;r=21}}else if(p){d=0;e=1;r=21}do if((r|0)==21){r=d|e;p=~~+I(+(i/j))>>>0;n=0;da(999,b|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(!(r&1)){d=c[q>>2]|0;e=d+-1|0;if(!(d&e)){k=d;e=s&e;break}if(s>>>0>>0){k=d;e=s;break}k=d;e=(s>>>0)%(d>>>0)|0;break}d=sa()|0;P()|0;e=c[u>>2]|0;c[u>>2]=0;if(!e)Ea(d|0);if(a[u+8>>0]&1)s1a(e+8|0);RCb(e);Ea(d|0)}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){s=b+8|0;d=c[u>>2]|0;c[d>>2]=c[s>>2];h=d;c[s>>2]=h;c[(c[b>>2]|0)+(e<<2)>>2]=s;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[b>>2]|0)+(e<<2)>>2]=h}}else{b=c[u>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=b;d=b}c[l>>2]=(c[l>>2]|0)+1;c[u>>2]=0;u=d;u=u+12|0;yb=t;return u|0}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,k=0,l=0;l=yb;yb=yb+64|0;j=l+40|0;g=l+24|0;h=l;k=l+12|0;a:do if((d-b|0)>1?(i=e+4|0,f=c[i>>2]|0,(c[e>>2]|0)!=(f|0)):0){b:do switch(a[b>>0]|0){case 67:{switch(a[b+1>>0]|0){case 53:case 51:case 50:case 49:break;default:break a}Di(g,f+-24|0);X6(j,g);d=c[i>>2]|0;if(d>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,j|0);k=n;n=0;if(k&1){b=sa()|0;P()|0;J2a(j);Chb(g);break b}}else{I6(d,j);c[i>>2]=(c[i>>2]|0)+24}J2a(j);Chb(g);a[e+60>>0]=1;b=b+2|0;break a}case 68:{switch(a[b+1>>0]|0){case 53:case 50:case 49:case 48:break;default:break a}Di(k,f+-24|0);n=0;V(128,k|0,0,139999)|0;g=n;n=0;do if(g&1){b=sa()|0;P()|0}else{c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];c[h+8>>2]=c[k+8>>2];d=0;while(1){if((d|0)==3)break;c[k+(d<<2)>>2]=0;d=d+1|0}X6(j,h);d=c[i>>2]|0;if(d>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,j|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(j);Chb(h);break}}else{I6(d,j);c[i>>2]=(c[i>>2]|0)+24}J2a(j);Chb(h);Chb(k);a[e+60>>0]=1;b=b+2|0;break a}while(0);Chb(k);break}default:break a}while(0);Ea(b|0)}while(0);yb=l;return b|0}function Cl(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;l=yb;yb=yb+16|0;k=l;switch(b-a>>2|0){case 2:{e=b+-4|0;if(!(nE(d,e,a)|0)){k=1;yb=l;return k|0}k=c[a>>2]|0;c[a>>2]=c[e>>2];c[e>>2]=k;k=1;yb=l;return k|0}case 3:{Dz(a,a+4|0,b+-4|0,d)|0;k=1;yb=l;return k|0}case 4:{tC(a,a+4|0,a+8|0,b+-4|0,d)|0;k=1;yb=l;return k|0}case 5:{ex(a,a+4|0,a+8|0,a+12|0,b+-4|0,d)|0;k=1;yb=l;return k|0}case 1:case 0:{k=1;yb=l;return k|0}default:{f=a+8|0;Dz(a,a+4|0,f,d)|0;j=a+12|0;i=0;e=0;a:while(1){if((j|0)==(b|0)){e=1;f=24;break}if(nE(d,j,f)|0){g=c[j>>2]|0;c[j>>2]=0;c[k>>2]=g;g=j;while(1){m=c[f>>2]|0;c[f>>2]=0;h=c[g>>2]|0;c[g>>2]=m;if(h|0){IM(h);RCb(h)}if((f|0)==(a|0)){f=a;break}g=f+-4|0;n=0;h=V(90,d|0,k|0,g|0)|0;m=n;n=0;if(m&1){f=19;break a}if(h){m=f;f=g;g=m}else break}m=c[k>>2]|0;c[k>>2]=0;g=c[f>>2]|0;c[f>>2]=m;if(g|0){IM(g);RCb(g)}g=i+1|0;h=(g|0)==8;i=j+4|0;e=h?(i|0)==(b|0):e;f=c[k>>2]|0;c[k>>2]=0;if(f|0){IM(f);RCb(f)}if(h){f=24;break}else f=h?i:j}else{g=i;f=j}j=f+4|0;i=g}if((f|0)==19){e=sa()|0;P()|0;f=c[k>>2]|0;c[k>>2]=0;if(!f)Ea(e|0);IM(f);RCb(f);Ea(e|0)}else if((f|0)==24){yb=l;return e|0}}}return 0}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,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+64|0;k=t+56|0;l=t+52|0;m=t+40|0;o=t+36|0;p=t;q=t+32|0;c[l>>2]=d;c[m>>2]=0;r=m+4|0;c[r>>2]=0;f=m+8|0;c[f>>2]=0;n=0;da(222,m|0,l|0);j=n;n=0;if(j&1){t=sa()|0;P()|0;Vob(m);Ea(t|0)}while(1){if(!(WCb(c[d+16>>2]|0)|0))break;n=0;e=U(74,d+12|0,0)|0;j=n;n=0;if(j&1){s=27;break}if(!(OBb(c[c[e>>2]>>2]|0)|0))break;n=0;d=U(74,d+12|0,0)|0;j=n;n=0;if(j&1){s=27;break}n=0;d=S(231,c[d>>2]|0)|0;j=n;n=0;if(j&1){s=27;break}c[l>>2]=d;e=c[r>>2]|0;if((e|0)==(c[f>>2]|0)){n=0;da(222,m|0,l|0);j=n;n=0;if(j&1){s=27;break}}else{c[e>>2]=d;c[r>>2]=(c[r>>2]|0)+4}}if((s|0)==27){t=sa()|0;P()|0;Vob(m);Ea(t|0)}zsb(a);e=c[r>>2]|0;j=c[e+-4>>2]|0;d=e;a:while(1){if((d|0)==(c[m>>2]|0)){s=25;break}i=c[e+-4>>2]|0;c[l>>2]=i;c[r>>2]=e+-4;b:do if(lsb(a)|0){c[o>>2]=c[i+8>>2];c[k>>2]=c[o>>2];W5a(a,k)}else{e=i+16|0;f=(j|0)!=(i|0);g=i+12|0;d=0;while(1){if(d>>>0>=(WCb(c[e>>2]|0)|0)>>>0)break b;if(!(f&(d|0)==0)){n=0;h=U(74,g|0,d|0)|0;u=n;n=0;if(u&1)break a;n=0;ea(116,p|0,b|0,c[h>>2]|0);u=n;n=0;if(u&1)break a;c[a>>2]=c[p>>2];c[a+4>>2]=c[p+4>>2];c[a+8>>2]=c[p+8>>2];c[a+12>>2]=c[p+12>>2];c[a+16>>2]=c[p+16>>2];c[a+20>>2]=c[p+20>>2];c[a+24>>2]=c[p+24>>2];if(lsb(a)|0)break}d=d+1|0}c[q>>2]=c[i+8>>2];c[k>>2]=c[q>>2];W5a(a,k)}while(0);e=c[r>>2]|0;d=e}if((s|0)==25){Vob(m);yb=t;return}u=sa()|0;P()|0;Vob(m);Ea(u|0)}function El(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,o=0,p=0,q=0;q=yb;yb=yb+32|0;h=q+24|0;j=q+20|0;p=q+16|0;k=q+12|0;l=q+8|0;i=q+4|0;o=q;c[j>>2]=d;c[p>>2]=g;m=mla(120)|0;mT(m);if(c[37104]|0){IWa(150452,56221)|0;IWa(150452,65458)|0;d=0;while(1){if((d|0)==(f|0))break;if(d|0)IWa(150452,140151)|0;Ym(150452,c[e+(d<<2)>>2]|0)|0;d=d+1|0}if(!f)IWa(150452,133516)|0;IWa(150452,56261)|0;g=c[37053]|0;c[k>>2]=m;k=O8(148204,k)|0;c[k>>2]=g;k=IWa(IWa(IWa(Ym(IWa(150452,65491)|0,g)|0,65506)|0,b)|0,65544)|0;g=O8(148180,j)|0;g=IWa(Ym(IWa(Ym(k,c[g>>2]|0)|0,65562)|0,f)|0,65576)|0;k=O8(148192,p)|0;IWa(Ym(g,c[k>>2]|0)|0,57388)|0;IWa(150452,56345)|0}Zsb(l,b);c[m+8>>2]=c[l>>2];d=c[c[j>>2]>>2]|0;c[m+40>>2]=d;c[i>>2]=d;c[h>>2]=c[i>>2];d=sQ(a,h)|0;c[m+12>>2]=c[d+4>>2];g=d+8|0;h=m+16|0;if((g|0)!=(h|0))xz(h,c[g>>2]|0,c[d+12>>2]|0);g=m+32|0;h=m+36|0;b=m+28|0;d=0;while(1){if((d|0)==(f|0))break;i=c[e+(d<<2)>>2]|0;c[o>>2]=i;j=c[g>>2]|0;if(j>>>0<(c[h>>2]|0)>>>0){c[j>>2]=i;c[g>>2]=(c[g>>2]|0)+4}else _M(b,o);d=d+1|0}c[m+44>>2]=c[p>>2];Rfb(148300);n=0;da(216,a|0,m|0);p=n;n=0;if(p&1){q=sa()|0;P()|0;KZa(148300);Ea(q|0)}else{KZa(148300);yb=q;return m|0}return 0}function Fl(a,b,e){a=a|0;b=b|0;e=e|0;var f=0.0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0;p=yb;yb=yb+16|0;k=p;switch(c[e>>2]|0){case 1:{IWa(Zm(IWa(b,55744)|0,c[e+8>>2]|0)|0,139927)|0;yb=p;return}case 2:{o=e+8|0;IWa(Sm(IWa(b,55766)|0,c[o>>2]|0,c[o+4>>2]|0)|0,139927)|0;yb=p;return}case 3:{f=+g[e+8>>2];if(((irb(f)|0)&2147483647)>>>0>2139095040){IWa(b,55788)|0;yb=p;return}else{IWa(_m(IWa(b,55816)|0,f)|0,139927)|0;yb=p;return}}case 4:{f=+h[e+8>>3];o=leb(f)|0;m=(P()|0)&2147483647;if(m>>>0>2146435072|(m|0)==2146435072&o>>>0>0){IWa(b,55840)|0;yb=p;return}else{IWa(_m(IWa(b,55868)|0,f)|0,139927)|0;yb=p;return}}case 5:{EV(k);n=0;i=U(59,a|0,55892)|0;q=n;n=0;if((!(q&1)?(n=0,j=U(61,i|0,k|0)|0,q=n,n=0,!(q&1)):0)?(n=0,U(59,j|0,55901)|0,q=n,n=0,!(q&1)):0){i=e+8|0;e=0;while(1){if(e>>>0>=16)break;n=0;U(63,a|0,d[i+e>>0]|0|0)|0;q=n;n=0;if(q&1){o=26;break}if(e>>>0<15?(n=0,U(59,a|0,140151)|0,q=n,n=0,q&1):0){o=26;break}e=e+1|0}if((o|0)==26){q=sa()|0;P()|0;Chb(k);Ea(q|0)}n=0;U(59,a|0,55908)|0;q=n;n=0;if(((!(q&1)?(n=0,l=U(59,b|0,55912)|0,q=n,n=0,!(q&1)):0)?(n=0,m=U(61,l|0,k|0)|0,q=n,n=0,!(q&1)):0)?(n=0,U(59,m|0,139927)|0,q=n,n=0,!(q&1)):0){Chb(k);yb=p;return}}q=sa()|0;P()|0;Chb(k);Ea(q|0)}case 6:case 0:{ma(141129,55544,177,55935);break}default:{yb=p;return}}}function Gl(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+32|0;s=t+16|0;u=t+4|0;o=t;c[o>>2]=d;h=c[d>>2]|0;c[s>>2]=h;s=pH(s,4)|0;q=b+4|0;k=c[q>>2]|0;p=(k|0)==0;a:do if(!p){l=k+-1|0;m=(k&l|0)==0;if(!m)if(s>>>0>>0)e=s;else e=(s>>>0)%(k>>>0)|0;else e=s&l;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if((f|0)!=(s|0)){if(!m){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(e|0))break a}}while((c[d+8>>2]|0)!=(h|0));u=d+12|0;yb=t;return u|0}}else e=0;while(0);K3(u,b,s,o);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)!=0&1;r=21}else{e=1;r=21}}else if(p){d=0;e=1;r=21}do if((r|0)==21){r=d|e;p=~~+I(+(i/j))>>>0;n=0;da(3697,b|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(!(r&1)){d=c[q>>2]|0;e=d+-1|0;if(!(d&e)){k=d;e=s&e;break}if(s>>>0>>0){k=d;e=s;break}k=d;e=(s>>>0)%(d>>>0)|0;break}d=sa()|0;P()|0;e=c[u>>2]|0;c[u>>2]=0;if(!e)Ea(d|0);if(a[u+8>>0]&1)FTa(e+8|0);RCb(e);Ea(d|0)}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){s=b+8|0;d=c[u>>2]|0;c[d>>2]=c[s>>2];h=d;c[s>>2]=h;c[(c[b>>2]|0)+(e<<2)>>2]=s;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[b>>2]|0)+(e<<2)>>2]=h}}else{b=c[u>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=b;d=b}c[l>>2]=(c[l>>2]|0)+1;c[u>>2]=0;u=d;u=u+12|0;yb=t;return u|0}function Hl(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;g=yb;yb=yb+16|0;f=g;if(a[b+33>>0]&1)BM(IWa(150620,113023)|0);if((c[e+4>>2]|0)==6){yb=g;return}a:do if(!(a[e+20>>0]&1))switch(c[e+32>>2]|0){case 1:{switch(a[e+8>>0]|0){case 1:{tI(c[b+28>>2]|0,58)|0;break a}case 2:{tI(c[b+28>>2]|0,59)|0;break a}case 4:{tI(c[b+28>>2]|0,54)|0;break a}default:Ta()}break}case 2:{switch(a[e+8>>0]|0){case 1:{tI(c[b+28>>2]|0,60)|0;break a}case 2:{tI(c[b+28>>2]|0,61)|0;break a}case 4:{tI(c[b+28>>2]|0,62)|0;break a}case 8:{tI(c[b+28>>2]|0,55)|0;break a}default:Ta()}break}case 3:{tI(c[b+28>>2]|0,56)|0;break a}case 4:{tI(c[b+28>>2]|0,57)|0;break a}case 5:{h=tI(c[b+28>>2]|0,-3)|0;Pwb(f,1);YA(h,c[f>>2]|0)|0;break a}case 6:case 0:{ma(141129,112765,715,113038);break}default:break a}else{f=b+28|0;tI(c[f>>2]|0,-2)|0;switch(c[e+32>>2]|0){case 1:{switch(a[e+8>>0]|0){case 1:{tI(c[f>>2]|0,25)|0;break a}case 2:{tI(c[f>>2]|0,26)|0;break a}case 4:{tI(c[f>>2]|0,23)|0;break a}default:ma(141129,112765,725,113038)}break}case 2:{switch(a[e+8>>0]|0){case 1:{tI(c[f>>2]|0,27)|0;break a}case 2:{tI(c[f>>2]|0,28)|0;break a}case 4:{tI(c[f>>2]|0,29)|0;break a}case 8:{tI(c[f>>2]|0,24)|0;break a}default:ma(141129,112765,735,113038)}break}default:ma(141129,112765,739,113038)}}while(0);f=WCb(c[e+16>>2]|0)|0;h=d[e+8>>0]|0;G5(b,f,h,WCb(c[e+12>>2]|0)|0);yb=g;return}function Il(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+16|0;u=t+4|0;o=t;c[o>>2]=d;s=LAb(d)|0;q=b+4|0;k=c[q>>2]|0;p=(k|0)==0;a:do if(!p){m=k+-1|0;l=(k&m|0)==0;if(!l)if(s>>>0>>0)f=s;else f=(s>>>0)%(k>>>0)|0;else f=s&m;e=c[(c[b>>2]|0)+(f<<2)>>2]|0;if(e){h=c[d>>2]|0;do{e=c[e>>2]|0;if(!e)break a;d=c[e+4>>2]|0;if((d|0)!=(s|0)){if(!l){if(d>>>0>=k>>>0)d=(d>>>0)%(k>>>0)|0}else d=d&m;if((d|0)!=(f|0))break a}}while(!(dub(c[e+8>>2]|0,h)|0));u=e+12|0;yb=t;return u|0}}else f=0;while(0);m$(u,b,s,o);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){f=(k&k+-1|0)!=0&1;r=21}else{f=1;r=21}}else if(p){e=0;f=1;r=21}do if((r|0)==21){r=e|f;p=~~+I(+(i/j))>>>0;n=0;da(1005,b|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(!(r&1)){e=c[q>>2]|0;f=e+-1|0;if(!(e&f)){k=e;f=s&f;break}if(s>>>0>>0){k=e;f=s;break}k=e;f=(s>>>0)%(e>>>0)|0;break}e=sa()|0;P()|0;f=c[u>>2]|0;c[u>>2]=0;if(!f)Ea(e|0);if(a[u+8>>0]&1)rab(f+8|0);RCb(f);Ea(e|0)}while(0);e=c[(c[b>>2]|0)+(f<<2)>>2]|0;if(!e){s=b+8|0;e=c[u>>2]|0;c[e>>2]=c[s>>2];h=e;c[s>>2]=h;c[(c[b>>2]|0)+(f<<2)>>2]=s;if(c[e>>2]|0){f=c[(c[e>>2]|0)+4>>2]|0;d=k+-1|0;if(k&d){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&d;c[(c[b>>2]|0)+(f<<2)>>2]=h}}else{b=c[u>>2]|0;c[b>>2]=c[e>>2];c[e>>2]=b;e=b}c[l>>2]=(c[l>>2]|0)+1;c[u>>2]=0;u=e;u=u+12|0;yb=t;return u|0}function Jl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;a:do if(f)switch(e<<24>>24){case 25:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=1;c[e+32>>2]=1;break a}case 26:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=2;c[e+32>>2]=1;break a}case 23:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=4;c[e+32>>2]=1;break a}case 27:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=1;c[e+32>>2]=2;break a}case 28:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=2;c[e+32>>2]=2;break a}case 29:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=4;c[e+32>>2]=2;break a}case 24:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=8;c[e+32>>2]=2;break a}default:{f=0;return f|0}}else do switch(e<<24>>24){case 58:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=1;c[e+32>>2]=1;break a}case 59:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=2;c[e+32>>2]=1;break a}case 54:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=4;c[e+32>>2]=1;break a}case 60:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=1;c[e+32>>2]=2;break a}case 61:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=2;c[e+32>>2]=2;break a}case 62:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=4;c[e+32>>2]=2;break a}case 55:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=8;c[e+32>>2]=2;break a}case 56:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=4;c[e+32>>2]=3;break a}case 57:{e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=8;c[e+32>>2]=4;break a}default:{f=0;return f|0}}while(0);while(0);a[e+20>>0]=f&1;if(a[b+12>>0]&1)BM(IWa(150620,113023)|0);EI(b,e+16|0,e+12|0);f=rl(b)|0;c[e+28>>2]=f;f=rl(b)|0;c[e+24>>2]=f;iHa(e);c[d>>2]=e;f=1;return f|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,l=0,m=0,o=0,p=0,q=0;p=yb;yb=yb+48|0;e=p+44|0;k=p+40|0;g=p+32|0;f=p+24|0;j=p+16|0;m=p+8|0;o=p;c[k>>2]=b;a:do if(eCb(c[b+8>>2]|0)|0){zra(g,a,k);b=c[g>>2]|0;c[b+8>>2]=c[k>>2];i=b;n=0;d=S(290,a|0)|0;l=n;n=0;b:do if(!(l&1)?(c[b+12>>2]=d,c[f>>2]=c[(c[k>>2]|0)+8>>2],n=0,c[e>>2]=c[f>>2],ea(171,a|0,e|0,d|0),l=n,n=0,!(l&1)):0){h=a+40|0;c[j>>2]=i;f=j+4|0;b=g+4|0;d=c[b>>2]|0;c[f>>2]=d;if(d|0){l=d+4|0;c[l>>2]=(c[l>>2]|0)+1}g=a+44|0;d=c[g>>2]|0;e=a+48|0;do if(d>>>0>=(c[e>>2]|0)>>>0){n=0;da(3024,h|0,j|0);l=n;n=0;if(l&1){d=sa()|0;P()|0;OCa(c[f>>2]|0);break b}else{d=c[f>>2]|0;break}}else{c[d>>2]=i;c[d+4>>2]=c[f>>2];c[j>>2]=0;c[f>>2]=0;c[g>>2]=(c[g>>2]|0)+8;d=0}while(0);OCa(d);OCa(c[b>>2]|0);l=g;b=c[k>>2]|0;break a}else q=12;while(0);if((q|0)==12){d=sa()|0;P()|0;b=g+4|0}OCa(c[b>>2]|0);q=d;Ea(q|0)}else{e=a+48|0;h=a+40|0;l=a+44|0}while(0);i=b+12|0;j=m+4|0;k=o+4|0;b=WCb(c[b+16>>2]|0)|0;while(1){g=b+-1|0;if((b|0)<=0){q=23;break}gpa(o,a,uXa(i,g)|0);b=c[o>>2]|0;c[m>>2]=b;d=c[k>>2]|0;c[j>>2]=d;c[o>>2]=0;c[k>>2]=0;f=c[l>>2]|0;if(f>>>0<(c[e>>2]|0)>>>0){c[f>>2]=b;c[f+4>>2]=d;c[m>>2]=0;c[j>>2]=0;c[l>>2]=(c[l>>2]|0)+8;b=0}else{n=0;da(3024,h|0,m|0);f=n;n=0;if(f&1)break;b=c[j>>2]|0}OCa(b);OCa(0);b=g}if((q|0)==23){yb=p;return}q=sa()|0;P()|0;OCa(c[j>>2]|0);OCa(0);Ea(q|0)}function Ll(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,o=0,p=0,q=0,r=0,s=0;r=yb;yb=yb+48|0;g=r+32|0;p=r+16|0;m=r+12|0;q=r;o=b+12|0;if(a[o>>0]&1)BM(IWa(150620,117426)|0);h=IF(b)|0;if(a[o>>0]&1)BM(Ym(IWa(150620,117251)|0,h)|0);yib(p);i=b+128|0;j=b+144|0;k=b+148|0;l=b+140|0;f=0;while(1){if(f>>>0>=h>>>0){d=26;break}if(a[o>>0]&1){n=0;d=U(59,150620,117257)|0;e=n;n=0;if(e&1){d=10;break}n=0;ca(497,d|0);e=n;n=0;if(e&1){d=10;break}}n=0;d=S(217,12)|0;e=n;n=0;if(e&1){d=10;break}Ysb(d);c[m>>2]=d;n=0;d=S(304,b|0)|0;e=n;n=0;if(e&1){d=10;break}c[c[m>>2]>>2]=d;d=c[m>>2]|0;if(f9(p,d)|0){c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;e=Zzb(117441)|0;n=0;ea(95,q|0,117441,e|0);e=n;n=0;if(e&1){d=10;break}n=0;da(4022,b|0,q|0);e=n;n=0;if(e&1){d=17;break}Chb(q);d=c[m>>2]|0}n=0;fa(98,g|0,p|0,d|0,d|0);e=n;n=0;if(e&1){d=10;break}n=0;d=S(301,b|0)|0;e=n;n=0;if(e&1){d=10;break}c[(c[m>>2]|0)+8>>2]=d;n=0;d=S(301,b|0)|0;e=n;n=0;if(e&1){d=10;break}n=0;e=U(194,i|0,m|0)|0;s=n;n=0;if(s&1){d=10;break}c[e>>2]=d;d=c[j>>2]|0;if((d|0)==(c[k>>2]|0)){n=0;da(4027,l|0,m|0);s=n;n=0;if(s&1){d=10;break}}else{c[d>>2]=c[m>>2];c[j>>2]=(c[j>>2]|0)+4}f=f+1|0}if((d|0)==10){s=sa()|0;P()|0;Khb(p);Ea(s|0)}else if((d|0)==17){s=sa()|0;P()|0;Chb(q);Khb(p);Ea(s|0)}else if((d|0)==26){Khb(p);yb=r;return}}function Ml(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,o=0,p=0,q=0,r=0,s=0,t=0;q=yb;yb=yb+336|0;r=q+320|0;s=q+160|0;t=q+24|0;k=q+12|0;p=q;Sdb(r,0);n=0;fa(85,s|0,d|0,r|0,0);o=n;n=0;if(o&1){t=sa()|0;P()|0;Htb(r);Ea(t|0)}wpb(s,(a[148265]&1)!=0);o=t+56|0;c[t>>2]=31812;c[o>>2]=31832;Hoa(t+56|0,t+4|0);c[t+128>>2]=0;c[t+132>>2]=-1;c[t>>2]=39764;c[o>>2]=39784;o=t+4|0;RKa(o);c[o>>2]=39800;j=t+36|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0}c[t+48>>2]=0;c[t+52>>2]=16;l=(g|0)==0;do if(!l){c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;j=Zzb(g)|0;n=0;ea(95,k|0,g|0,j|0);g=n;n=0;if(!(g&1)){n=0;ea(114,s|0,t|0,k|0);g=n;n=0;if(g&1){e=sa()|0;P()|0;Chb(k);break}else{Chb(k);m=12;break}}else m=10}else m=12;while(0);if((m|0)==12){n=0;ca(507,s|0);m=n;n=0;if(!(m&1)){d=c[r>>2]|0;k=(c[r+4>>2]|0)-d|0;k=k>>>0>f>>>0?f:k;j=d+k|0;while(1){if((d|0)==(j|0))break;a[e>>0]=a[d>>0]|0;e=e+1|0;d=d+1|0}if(l){p=0;c[b>>2]=k;h=b+4|0;c[h>>2]=p;v$a(t);Z_(s);Htb(r);yb=q;return}n=0;da(75,p|0,o|0);o=n;n=0;if(!(o&1)){e=a[p+11>>0]|0;d=e<<24>>24<0;e=d?c[p+4>>2]|0:e&255;e=e>>>0>i>>>0?i:e;if(e|0)Pxa(h|0,(d?c[p>>2]|0:p)|0,e|0)|0;Chb(p);p=e;c[b>>2]=k;h=b+4|0;c[h>>2]=p;v$a(t);Z_(s);Htb(r);yb=q;return}else m=10}else m=10}if((m|0)==10){e=sa()|0;P()|0}v$a(t);Z_(s);t=e;Htb(r);Ea(t|0)}function Nl(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h[i>>3]=a;j=c[i>>2]|0;l=c[i+4>>2]|0;h[i>>3]=b;n=c[i>>2]|0;o=c[i+4>>2]|0;e=U4a(j|0,l|0,52)|0;P()|0;e=e&2047;m=U4a(n|0,o|0,52)|0;P()|0;m=m&2047;p=l&-2147483648;g=X2a(n|0,o|0,1)|0;k=P()|0;a:do if(!((g|0)==0&(k|0)==0)?(f=leb(b)|0,d=(P()|0)&2147483647,!((e|0)==2047|(d>>>0>2146435072|(d|0)==2146435072&f>>>0>0))):0){d=X2a(j|0,l|0,1)|0;f=P()|0;if(!(f>>>0>k>>>0|(f|0)==(k|0)&d>>>0>g>>>0))return +((d|0)==(g|0)&(f|0)==(k|0)?a*0.0:a);if(!e){d=X2a(j|0,l|0,12)|0;f=P()|0;if((f|0)>-1|(f|0)==-1&d>>>0>4294967295){e=0;do{e=e+-1|0;d=X2a(d|0,f|0,1)|0;f=P()|0}while((f|0)>-1|(f|0)==-1&d>>>0>4294967295)}else e=0;j=X2a(j|0,l|0,1-e|0)|0;g=P()|0}else g=l&1048575|1048576;if(!m){f=X2a(n|0,o|0,12)|0;k=P()|0;if((k|0)>-1|(k|0)==-1&f>>>0>4294967295){d=0;do{d=d+-1|0;f=X2a(f|0,k|0,1)|0;k=P()|0}while((k|0)>-1|(k|0)==-1&f>>>0>4294967295)}else d=0;n=X2a(n|0,o|0,1-d|0)|0;m=d;l=P()|0}else l=o&1048575|1048576;f=Ndb(j|0,g|0,n|0,l|0)|0;d=P()|0;k=(d|0)>-1|(d|0)==-1&f>>>0>4294967295;b:do if((e|0)>(m|0)){while(1){if(k){if((f|0)==0&(d|0)==0)break}else{f=j;d=g}j=X2a(f|0,d|0,1)|0;g=P()|0;e=e+-1|0;f=Ndb(j|0,g|0,n|0,l|0)|0;d=P()|0;k=(d|0)>-1|(d|0)==-1&f>>>0>4294967295;if((e|0)<=(m|0))break b}b=a*0.0;break a}while(0);if(k){if((f|0)==0&(d|0)==0){b=a*0.0;break}}else{d=g;f=j}if(d>>>0<1048576|(d|0)==1048576&f>>>0<0)do{f=X2a(f|0,d|0,1)|0;d=P()|0;e=e+-1|0}while(d>>>0<1048576|(d|0)==1048576&f>>>0<0);if((e|0)>0){o=Yeb(f|0,d|0,0,-1048576)|0;d=P()|0;e=X2a(e|0,0,52)|0;d=d|(P()|0);e=o|e}else{e=U4a(f|0,d|0,1-e|0)|0;d=P()|0}c[i>>2]=e;c[i+4>>2]=d|p;b=+h[i>>3]}else q=3;while(0);if((q|0)==3){b=a*b;b=b/b}return +b}function Ol(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;q=yb;yb=yb+48|0;g=q+40|0;k=q+32|0;m=q+24|0;o=q+16|0;h=q+12|0;l=q+8|0;n=q+4|0;p=q;i=b+26|0;a[i>>0]=(a[i>>0]&1)==0?a[d+26>>0]&1:1;i=b+27|0;a[i>>0]=(a[i>>0]&1)==0?a[d+27>>0]&1:1;i=b+76|0;a[i>>0]=(a[i>>0]&1)==0?a[d+76>>0]&1:1;i=b+77|0;a[i>>0]=(a[i>>0]&1)==0?a[d+77>>0]&1:1;i=b+78|0;a[i>>0]=(a[i>>0]&1)==0?a[d+78>>0]&1:1;i=b+79|0;a[i>>0]=(a[i>>0]&1)==0?a[d+79>>0]&1:1;i=d+32|0;j=b+28|0;e=c[d+28>>2]|0;while(1){if((i|0)==(e|0))break;f=c[e+16>>2]|0;c[h>>2]=f;FH(g,j,f,h);f=e;e=c[f+4>>2]|0;a:do if(!e)while(1){e=c[f+8>>2]|0;if((f|0)==(c[e>>2]|0))break a;f=e}else while(1){f=c[e>>2]|0;if(!f)break;e=f}while(0)}g=d+44|0;h=b+40|0;e=c[d+40>>2]|0;while(1){if((g|0)==(e|0))break;f=c[e+16>>2]|0;c[l>>2]=f;FH(k,h,f,l);f=e;e=c[f+4>>2]|0;b:do if(!e)while(1){e=c[f+8>>2]|0;if((f|0)==(c[e>>2]|0))break b;f=e}else while(1){f=c[e>>2]|0;if(!f)break;e=f}while(0)}g=d+56|0;h=b+52|0;e=c[d+52>>2]|0;while(1){if((g|0)==(e|0))break;c[n>>2]=c[e+16>>2];GG(m,h,n,n);f=e;e=c[f+4>>2]|0;c:do if(!e)while(1){e=c[f+8>>2]|0;if((f|0)==(c[e>>2]|0))break c;f=e}else while(1){f=c[e>>2]|0;if(!f)break;e=f}while(0)}h=d+68|0;g=b+64|0;e=c[d+64>>2]|0;while(1){if((h|0)==(e|0))break;c[p>>2]=c[e+16>>2];GG(o,g,p,p);f=e;e=c[f+4>>2]|0;d:do if(!e)while(1){e=c[f+8>>2]|0;if((f|0)==(c[e>>2]|0))break d;f=e}else while(1){f=c[e>>2]|0;if(!f)break;e=f}while(0)}yb=q;return}function Pl(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+64|0;k=t+56|0;l=t+52|0;m=t+40|0;o=t+36|0;p=t;q=t+32|0;c[l>>2]=d;c[m>>2]=0;r=m+4|0;c[r>>2]=0;f=m+8|0;c[f>>2]=0;n=0;da(222,m|0,l|0);j=n;n=0;if(j&1){t=sa()|0;P()|0;Vob(m);Ea(t|0)}while(1){if(!(WCb(c[d+16>>2]|0)|0))break;n=0;e=U(74,d+12|0,0)|0;j=n;n=0;if(j&1){s=27;break}if(!(OBb(c[c[e>>2]>>2]|0)|0))break;n=0;d=U(74,d+12|0,0)|0;j=n;n=0;if(j&1){s=27;break}n=0;d=S(231,c[d>>2]|0)|0;j=n;n=0;if(j&1){s=27;break}c[l>>2]=d;e=c[r>>2]|0;if((e|0)==(c[f>>2]|0)){n=0;da(222,m|0,l|0);j=n;n=0;if(j&1){s=27;break}}else{c[e>>2]=d;c[r>>2]=(c[r>>2]|0)+4}}if((s|0)==27){t=sa()|0;P()|0;Vob(m);Ea(t|0)}zsb(a);e=c[r>>2]|0;j=c[e+-4>>2]|0;d=e;a:while(1){if((d|0)==(c[m>>2]|0)){s=25;break}i=c[e+-4>>2]|0;c[l>>2]=i;c[r>>2]=e+-4;b:do if(lsb(a)|0){c[o>>2]=c[i+8>>2];c[k>>2]=c[o>>2];W5a(a,k)}else{e=i+16|0;f=(j|0)!=(i|0);g=i+12|0;d=0;while(1){if(d>>>0>=(WCb(c[e>>2]|0)|0)>>>0)break b;if(!(f&(d|0)==0)){n=0;h=U(74,g|0,d|0)|0;u=n;n=0;if(u&1)break a;n=0;ea(117,p|0,b|0,c[h>>2]|0);u=n;n=0;if(u&1)break a;c[a>>2]=c[p>>2];c[a+4>>2]=c[p+4>>2];c[a+8>>2]=c[p+8>>2];c[a+12>>2]=c[p+12>>2];c[a+16>>2]=c[p+16>>2];c[a+20>>2]=c[p+20>>2];c[a+24>>2]=c[p+24>>2];if(lsb(a)|0)break}d=d+1|0}c[q>>2]=c[i+8>>2];c[k>>2]=c[q>>2];W5a(a,k)}while(0);e=c[r>>2]|0;d=e}if((s|0)==25){Vob(m);yb=t;return}u=sa()|0;P()|0;Vob(m);Ea(u|0)}function Ql(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+32|0;s=t+16|0;u=t+4|0;o=t;c[o>>2]=d;h=c[d>>2]|0;c[s>>2]=h;s=pH(s,4)|0;q=b+4|0;k=c[q>>2]|0;p=(k|0)==0;a:do if(!p){l=k+-1|0;m=(k&l|0)==0;if(!m)if(s>>>0>>0)e=s;else e=(s>>>0)%(k>>>0)|0;else e=s&l;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if((f|0)!=(s|0)){if(!m){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(e|0))break a}}while((c[d+8>>2]|0)!=(h|0));u=d+12|0;yb=t;return u|0}}else e=0;while(0);m$(u,b,s,o);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)!=0&1;r=21}else{e=1;r=21}}else if(p){d=0;e=1;r=21}do if((r|0)==21){r=d|e;p=~~+I(+(i/j))>>>0;n=0;da(1008,b|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(!(r&1)){d=c[q>>2]|0;e=d+-1|0;if(!(d&e)){k=d;e=s&e;break}if(s>>>0>>0){k=d;e=s;break}k=d;e=(s>>>0)%(d>>>0)|0;break}d=sa()|0;P()|0;e=c[u>>2]|0;c[u>>2]=0;if(!e)Ea(d|0);if(a[u+8>>0]&1)Nrb(e+8|0);RCb(e);Ea(d|0)}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){s=b+8|0;d=c[u>>2]|0;c[d>>2]=c[s>>2];h=d;c[s>>2]=h;c[(c[b>>2]|0)+(e<<2)>>2]=s;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[b>>2]|0)+(e<<2)>>2]=h}}else{b=c[u>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=b;d=b}c[l>>2]=(c[l>>2]|0)+1;c[u>>2]=0;u=d;u=u+12|0;yb=t;return u|0}function Rl(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;j=yb;yb=yb+208|0;l=j+192|0;m=j+32|0;g=j+24|0;h=j+12|0;i=j;Sdb(l,(a[b>>0]&1)!=0);n=0;fa(85,m|0,d|0,l|0,(a[b>>0]&1)!=0|0);f=n;n=0;if(f&1){m=sa()|0;P()|0;Htb(l);Ea(m|0)}wpb(m,(a[b+2>>0]&1)!=0);f=b+16|0;d=a[f+11>>0]|0;if(d<<24>>24<0)d=c[b+20>>2]|0;else d=d&255;do if(d){n=0;ca(563,g|0);d=n;n=0;if(!(d&1)){d=c[g>>2]|0;c[g>>2]=0;n=0;ea(196,d|0,f|0,16);g=n;n=0;if(!(g&1)?(n=0,da(73,h|0,b+28|0),g=n,n=0,!(g&1)):0){n=0;ea(114,m|0,d|0,h|0);g=n;n=0;if(g&1){f=sa()|0;P()|0;Chb(h);break}else{Chb(h);k=14;break}}else k=12}else{d=0;k=12}}else{d=0;k=14}while(0);a:do if((k|0)==14){g=b+4|0;f=a[g+11>>0]|0;if(f<<24>>24<0)f=c[b+8>>2]|0;else f=f&255;do if(f|0){n=0;da(73,i|0,g|0);b=n;n=0;if(b&1){k=12;break a}n=0;da(4049,m|0,i|0);b=n;n=0;if(b&1){f=sa()|0;P()|0;Chb(i);break a}else{Chb(i);break}}while(0);n=0;ca(507,m|0);k=n;n=0;if(!(k&1)?(n=0,da(4050,l|0,e|0),k=n,n=0,!(k&1)):0){f=d;if(!d){Z_(m);Htb(l);yb=j;return}n=0;g=S(296,f+4|0)|0;k=n;n=0;if(!(k&1)){if((g|0)==0?(k=d+(c[(c[d>>2]|0)+-12>>2]|0)|0,n=0,da(85,k|0,c[k+16>>2]|4|0),k=n,n=0,k&1):0){k=12;break}Rb[c[(c[d>>2]|0)+4>>2]&1023](f);Z_(m);Htb(l);yb=j;return}else k=12}else k=12}while(0);if((k|0)==12){f=sa()|0;P()|0}if(d|0)Rb[c[(c[d>>2]|0)+4>>2]&1023](d);Z_(m);m=f;Htb(l);Ea(m|0)}function Sl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;i=j;a:do if((d-b|0)>1){f=a[b>>0]|0;b:do switch(f<<24>>24){case 100:case 111:{if((a[b+1>>0]|0)==110){g=b+2|0;if(f<<24>>24!=111){i=i1(g,d,e)|0;b=(i|0)==(g|0)?b:i;break a}f=hc(g,d,e)|0;if((f|0)==(g|0))break a;b=$f(f,d,e)|0;if((b|0)==(f|0)){b=f;break a}d=e+4|0;f=c[d>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(i,f+-24|0);g=c[d>>2]|0;f=0;while(1){if((f|0)==-1)break;e=f+-1|0;J2a(g+(e*24|0)|0);f=e}c[d>>2]=g+-24;e=a[i+11>>0]|0;d=e<<24>>24<0;n=0;V(124,g+-48|0,(d?c[i>>2]|0:i)|0,(d?c[i+4>>2]|0:e&255)|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(i);break b}else{Chb(i);break a}}else h=15;break}default:h=15}while(0);do if((h|0)==15){f=Wx(b,d,e)|0;if((f|0)!=(b|0)){b=f;break a}f=hc(b,d,e)|0;if((f|0)==(b|0))break a;b=$f(f,d,e)|0;if((b|0)==(f|0)){b=f;break a}d=e+4|0;f=c[d>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(i,f+-24|0);g=c[d>>2]|0;f=0;while(1){if((f|0)==-1)break;e=f+-1|0;J2a(g+(e*24|0)|0);f=e}c[d>>2]=g+-24;e=a[i+11>>0]|0;h=e<<24>>24<0;n=0;V(124,g+-48|0,(h?c[i>>2]|0:i)|0,(h?c[i+4>>2]|0:e&255)|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(i);break}else{Chb(i);break a}}while(0);Ea(b|0)}while(0);yb=j;return b|0}function Tl(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,o=0,p=0,q=0,r=0,s=0,t=0;r=yb;yb=yb+48|0;g=r+40|0;e=r+36|0;f=r+24|0;h=r+20|0;i=r+16|0;t=r+12|0;j=r+8|0;p=r+4|0;s=r;KM(f,71585,b);n=0;ea(101,e|0,((a[f+11>>0]|0)<0?c[f>>2]|0:f)|0,0);o=n;n=0;if(o&1){t=sa()|0;P()|0;Chb(f);Ea(t|0)}Chb(f);e=c[e>>2]|0;Ftb(h,e);c[g>>2]=c[h>>2];if(rDa(d,g)|0){Ftb(i,e);c[g>>2]=c[i>>2];t=sQ(d,g)|0;yb=r;return t|0}jFa(t);Ftb(j,e);o=c[t>>2]|0;c[o>>2]=c[j>>2];l=b+11|0;m=o;if((a[l>>0]|0)<0)e=c[b>>2]|0;else e=b;n=0;e=S(234,a[e>>0]|0)|0;k=n;n=0;do if(k&1){e=sa()|0;P()|0;c[t>>2]=0;if(!o){t=e;Ea(t|0)}}else{c[o+4>>2]=e;h=b+4|0;i=o+8|0;j=o+12|0;k=o+16|0;g=1;while(1){e=a[l>>0]|0;f=e<<24>>24<0;if(f)e=c[h>>2]|0;else e=e&255;if(g>>>0>=e>>>0)break;if(f)e=c[b>>2]|0;else e=b;n=0;e=S(234,a[e+g>>0]|0)|0;f=n;n=0;if(f&1){q=21;break}c[p>>2]=e;f=c[j>>2]|0;if(f>>>0>=(c[k>>2]|0)>>>0){n=0;da(212,i|0,p|0);f=n;n=0;if(f&1){q=21;break}}else{c[f>>2]=e;c[j>>2]=(c[j>>2]|0)+4}g=g+1|0}if((q|0)==21){e=sa()|0;P()|0;c[t>>2]=0;break}c[t>>2]=0;c[s>>2]=m;n=0;e=U(80,d|0,s|0)|0;q=n;n=0;if(q&1){e=sa()|0;P()|0;f=c[s>>2]|0;c[s>>2]=0;if(f|0){Xrb(f);RCb(f)}c[t>>2]=0;t=e;Ea(t|0)}else{f=c[s>>2]|0;c[s>>2]=0;if(f|0){Xrb(f);RCb(f)}c[t>>2]=0;t=e;yb=r;return t|0}}while(0);Xrb(o);RCb(o);t=e;Ea(t|0);return 0}function Ul(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+32|0;s=t+16|0;u=t+4|0;o=t;c[o>>2]=d;h=c[d>>2]|0;c[s>>2]=h;s=pH(s,4)|0;q=b+4|0;k=c[q>>2]|0;p=(k|0)==0;a:do if(!p){l=k+-1|0;m=(k&l|0)==0;if(!m)if(s>>>0>>0)e=s;else e=(s>>>0)%(k>>>0)|0;else e=s&l;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if((f|0)!=(s|0)){if(!m){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(e|0))break a}}while((c[d+8>>2]|0)!=(h|0));u=d+12|0;yb=t;return u|0}}else e=0;while(0);m$(u,b,s,o);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)!=0&1;r=21}else{e=1;r=21}}else if(p){d=0;e=1;r=21}do if((r|0)==21){r=d|e;p=~~+I(+(i/j))>>>0;n=0;da(1368,b|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(!(r&1)){d=c[q>>2]|0;e=d+-1|0;if(!(d&e)){k=d;e=s&e;break}if(s>>>0>>0){k=d;e=s;break}k=d;e=(s>>>0)%(d>>>0)|0;break}d=sa()|0;P()|0;e=c[u>>2]|0;c[u>>2]=0;if(!e)Ea(d|0);if(a[u+8>>0]&1)Nrb(e+8|0);RCb(e);Ea(d|0)}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){s=b+8|0;d=c[u>>2]|0;c[d>>2]=c[s>>2];h=d;c[s>>2]=h;c[(c[b>>2]|0)+(e<<2)>>2]=s;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[b>>2]|0)+(e<<2)>>2]=h}}else{b=c[u>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=b;d=b}c[l>>2]=(c[l>>2]|0)+1;c[u>>2]=0;u=d;u=u+12|0;yb=t;return u|0}function Vl(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+16|0;u=t+4|0;o=t;c[o>>2]=d;s=LAb(d)|0;q=b+4|0;k=c[q>>2]|0;p=(k|0)==0;a:do if(!p){m=k+-1|0;l=(k&m|0)==0;if(!l)if(s>>>0>>0)f=s;else f=(s>>>0)%(k>>>0)|0;else f=s&m;e=c[(c[b>>2]|0)+(f<<2)>>2]|0;if(e){h=c[d>>2]|0;do{e=c[e>>2]|0;if(!e)break a;d=c[e+4>>2]|0;if((d|0)!=(s|0)){if(!l){if(d>>>0>=k>>>0)d=(d>>>0)%(k>>>0)|0}else d=d&m;if((d|0)!=(f|0))break a}}while(!(dub(c[e+8>>2]|0,h)|0));u=e+12|0;yb=t;return u|0}}else f=0;while(0);YR(u,b,s,o);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){f=(k&k+-1|0)!=0&1;r=21}else{f=1;r=21}}else if(p){e=0;f=1;r=21}do if((r|0)==21){r=e|f;p=~~+I(+(i/j))>>>0;n=0;da(1049,b|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(!(r&1)){e=c[q>>2]|0;f=e+-1|0;if(!(e&f)){k=e;f=s&f;break}if(s>>>0>>0){k=e;f=s;break}k=e;f=(s>>>0)%(e>>>0)|0;break}e=sa()|0;P()|0;f=c[u>>2]|0;c[u>>2]=0;if(!f)Ea(e|0);if(a[u+8>>0]&1)Anb(f+8|0);RCb(f);Ea(e|0)}while(0);e=c[(c[b>>2]|0)+(f<<2)>>2]|0;if(!e){s=b+8|0;e=c[u>>2]|0;c[e>>2]=c[s>>2];h=e;c[s>>2]=h;c[(c[b>>2]|0)+(f<<2)>>2]=s;if(c[e>>2]|0){f=c[(c[e>>2]|0)+4>>2]|0;d=k+-1|0;if(k&d){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&d;c[(c[b>>2]|0)+(f<<2)>>2]=h}}else{b=c[u>>2]|0;c[b>>2]=c[e>>2];c[e>>2]=b;e=b}c[l>>2]=(c[l>>2]|0)+1;c[u>>2]=0;u=e;u=u+12|0;yb=t;return u|0}function Wl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;r=s+16|0;t=s+4|0;m=s;c[m>>2]=b;f=c[b>>2]|0;c[r>>2]=f;r=pH(r,4)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){k=j+-1|0;l=(j&k|0)==0;if(!l)if(r>>>0>>0)d=r;else d=(r>>>0)%(j>>>0)|0;else d=r&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(r|0)){if(!l){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(f|0));t=b+12|0;yb=s;return t|0}}else d=0;while(0);K3(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;q=21}else{d=1;q=21}}else if(o){b=0;d=1;q=21}do if((q|0)==21){q=b|d;o=~~+I(+(h/i))>>>0;n=0;da(383,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[p>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=r&d;break}if(r>>>0>>0){j=b;d=r;break}j=b;d=(r>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){r=a+8|0;b=c[t>>2]|0;c[b>>2]=c[r>>2];f=b;c[r>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=r;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=b;t=t+12|0;yb=s;return t|0}function Xl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=yb;yb=yb+32|0;t=w+16|0;x=w+4|0;u=w;k=c[b>>2]|0;v=k;if(!(eCb(k)|0)){yb=w;return}s=a+72|0;r=LAb(b)|0;p=a+76|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){l=j+-1|0;m=(j&l|0)==0;if(!m)if(r>>>0>>0)e=r;else e=(r>>>0)%(j>>>0)|0;else e=r&l;d=c[(c[s>>2]|0)+(e<<2)>>2]|0;if(!d)q=18;else while(1){d=c[d>>2]|0;if(!d){q=18;break a}f=c[d+4>>2]|0;if((f|0)!=(r|0)){if(!m){if(f>>>0>=j>>>0)f=(f>>>0)%(j>>>0)|0}else f=f&l;if((f|0)!=(e|0)){q=18;break a}}if(dub(c[d+8>>2]|0,k)|0){d=0;break a}}}else{e=0;q=18}while(0);if((q|0)==18){Uja(x,s,r,b);k=a+84|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+88>>2];if(i*+(j>>>0)>>0>2){e=(j&j+-1|0)!=0&1;q=22}else{e=1;q=22}}else if(o){d=0;e=1;q=22}do if((q|0)==22){q=d|e;o=~~+I(+(h/i))>>>0;n=0;da(86,s|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){d=sa()|0;P()|0;e=c[x>>2]|0;c[x>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){j=d;e=r&e;break}if(r>>>0>>0){j=d;e=r;break}j=d;e=(r>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[s>>2]|0)+(e<<2)>>2]|0;if(!d){r=a+80|0;d=c[x>>2]|0;c[d>>2]=c[r>>2];f=d;c[r>>2]=f;c[(c[s>>2]|0)+(e<<2)>>2]=r;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[s>>2]|0)+(d<<2)>>2]=f}}else{s=c[x>>2]|0;c[s>>2]=c[d>>2];c[d>>2]=s}c[k>>2]=(c[k>>2]|0)+1;c[x>>2]=0;d=1}c[u>>2]=v;c[t>>2]=c[u>>2];rea(a,d,t,126708);yb=w;return}function Yl(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,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+48|0;o=s+36|0;p=s+24|0;k=s+12|0;i=s;l=b+12|0;if(a[l>>0]&1)BM(IWa(150620,114483)|0);h=IF(b)|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[p+(d<<2)>>2]=0;d=d+1|0}f=p+11|0;g=p+4|0;e=0;while(1){if(e>>>0>=h>>>0){e=27;break}n=0;d=S(306,b|0)|0;t=n;n=0;if(t&1){e=13;break}if(!(d<<24>>24)){c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;t=Zzb(114487)|0;n=0;ea(95,k|0,114487,t|0);t=n;n=0;if(t&1){e=13;break}n=0;da(4022,b|0,k|0);t=n;n=0;if(t&1){e=16;break}Chb(k)}n=0;ea(187,i|0,p|0,d|0);t=n;n=0;if(t&1){e=13;break}if((a[f>>0]|0)<0){Fsb(c[p>>2]|0,0);c[g>>2]=0}else{Fsb(p,0);a[f>>0]=0}n=0;ca(510,p|0);t=n;n=0;if(t&1){e=22;break}c[p>>2]=c[i>>2];c[p+4>>2]=c[i+4>>2];c[p+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0}Chb(i);e=e+1|0}if((e|0)==13){m=sa()|0;P()|0}else if((e|0)==16){t=sa()|0;P()|0;Chb(k);Chb(p);Ea(t|0)}else if((e|0)==22){t=ta(0)|0;P()|0;yub(t)}else if((e|0)==27){if(a[l>>0]&1){n=0;d=U(59,150620,114615)|0;t=n;n=0;if(((!(t&1)?(n=0,q=U(61,d|0,p|0)|0,t=n,n=0,!(t&1)):0)?(n=0,r=U(59,q|0,114633)|0,t=n,n=0,!(t&1)):0)?(n=0,ca(497,r|0),t=n,n=0,!(t&1)):0)e=32}else e=32;if((e|0)==32?(n=0,da(230,o|0,p|0),t=n,n=0,!(t&1)):0){Chb(p);yb=s;return c[o>>2]|0}m=sa()|0;P()|0}t=m;Chb(p);Ea(t|0);return 0}function Zl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;r=s+16|0;t=s+4|0;m=s;c[m>>2]=b;f=c[b>>2]|0;c[r>>2]=f;r=pH(r,4)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){k=j+-1|0;l=(j&k|0)==0;if(!l)if(r>>>0>>0)d=r;else d=(r>>>0)%(j>>>0)|0;else d=r&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(r|0)){if(!l){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(f|0));t=b+12|0;yb=s;return t|0}}else d=0;while(0);K3(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;q=21}else{d=1;q=21}}else if(o){b=0;d=1;q=21}do if((q|0)==21){q=b|d;o=~~+I(+(h/i))>>>0;n=0;da(2367,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[p>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=r&d;break}if(r>>>0>>0){j=b;d=r;break}j=b;d=(r>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){r=a+8|0;b=c[t>>2]|0;c[b>>2]=c[r>>2];f=b;c[r>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=r;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=b;t=t+12|0;yb=s;return t|0}function _l(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;r=s+16|0;t=s+4|0;m=s;c[m>>2]=b;f=c[b>>2]|0;c[r>>2]=f;r=pH(r,4)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){k=j+-1|0;l=(j&k|0)==0;if(!l)if(r>>>0>>0)d=r;else d=(r>>>0)%(j>>>0)|0;else d=r&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(r|0)){if(!l){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(f|0));t=b+12|0;yb=s;return t|0}}else d=0;while(0);AW(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;q=21}else{d=1;q=21}}else if(o){b=0;d=1;q=21}do if((q|0)==21){q=b|d;o=~~+I(+(h/i))>>>0;n=0;da(226,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[p>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=r&d;break}if(r>>>0>>0){j=b;d=r;break}j=b;d=(r>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){r=a+8|0;b=c[t>>2]|0;c[b>>2]=c[r>>2];f=b;c[r>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=r;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=b;t=t+12|0;yb=s;return t|0}function $l(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+16|0;u=t+4|0;o=t;c[o>>2]=d;s=LAb(d)|0;q=b+4|0;k=c[q>>2]|0;p=(k|0)==0;a:do if(!p){m=k+-1|0;l=(k&m|0)==0;if(!l)if(s>>>0>>0)f=s;else f=(s>>>0)%(k>>>0)|0;else f=s&m;e=c[(c[b>>2]|0)+(f<<2)>>2]|0;if(e){h=c[d>>2]|0;do{e=c[e>>2]|0;if(!e)break a;d=c[e+4>>2]|0;if((d|0)!=(s|0)){if(!l){if(d>>>0>=k>>>0)d=(d>>>0)%(k>>>0)|0}else d=d&m;if((d|0)!=(f|0))break a}}while(!(dub(c[e+8>>2]|0,h)|0));u=e+12|0;yb=t;return u|0}}else f=0;while(0);m$(u,b,s,o);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){f=(k&k+-1|0)!=0&1;r=21}else{f=1;r=21}}else if(p){e=0;f=1;r=21}do if((r|0)==21){r=e|f;p=~~+I(+(i/j))>>>0;n=0;da(1454,b|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(!(r&1)){e=c[q>>2]|0;f=e+-1|0;if(!(e&f)){k=e;f=s&f;break}if(s>>>0>>0){k=e;f=s;break}k=e;f=(s>>>0)%(e>>>0)|0;break}e=sa()|0;P()|0;f=c[u>>2]|0;c[u>>2]=0;if(!f)Ea(e|0);if(a[u+8>>0]&1)Nrb(f+8|0);RCb(f);Ea(e|0)}while(0);e=c[(c[b>>2]|0)+(f<<2)>>2]|0;if(!e){s=b+8|0;e=c[u>>2]|0;c[e>>2]=c[s>>2];h=e;c[s>>2]=h;c[(c[b>>2]|0)+(f<<2)>>2]=s;if(c[e>>2]|0){f=c[(c[e>>2]|0)+4>>2]|0;d=k+-1|0;if(k&d){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&d;c[(c[b>>2]|0)+(f<<2)>>2]=h}}else{b=c[u>>2]|0;c[b>>2]=c[e>>2];c[e>>2]=b;e=b}c[l>>2]=(c[l>>2]|0)+1;c[u>>2]=0;u=e;u=u+12|0;yb=t;return u|0}function am(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;h=yb;yb=yb+48|0;d=h+44|0;i=h+32|0;e=h+28|0;j=h+16|0;f=h+12|0;k=h;g=a+84|0;if(!(c[g>>2]|0)){e=oa(20)|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;k=Zzb(125004)|0;n=0;ea(95,i|0,125004,k|0);k=n;n=0;if(!(k&1)){n=0;fa(134,e|0,i|0,c[b+28>>2]|0,c[b+32>>2]|0);b=n;n=0;if(b&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}a=sa()|0;P()|0;Chb(i);if(!d){b=a;Ea(b|0)}}else{a=sa()|0;P()|0}va(e|0);b=a;Ea(b|0)}if(!(Gcb(b)|0)){a=sY(kH(b)|0)|0;if(a>>>0<(Icb(c[g>>2]|0)|0)>>>0){b=a;yb=h;return b|0}e=oa(20)|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;j=Zzb(125054)|0;n=0;ea(95,k|0,125054,j|0);j=n;n=0;if(!(j&1)){n=0;fa(134,e|0,k|0,c[b+28>>2]|0,c[b+32>>2]|0);b=n;n=0;if(b&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}a=sa()|0;P()|0;Chb(k);if(!d){b=a;Ea(b|0)}}else{a=sa()|0;P()|0}va(e|0);b=a;Ea(b|0)}a=kH(b)|0;k=c[g>>2]|0;Ftb(e,a);if(f9(k+64|0,e)|0){b=c[g>>2]|0;Ftb(f,a);c[d>>2]=c[f>>2];b=uQ(b,d)|0;yb=h;return b|0}e=oa(20)|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;k=Zzb(125039)|0;n=0;ea(95,j|0,125039,k|0);k=n;n=0;if(!(k&1)){n=0;fa(134,e|0,j|0,c[b+28>>2]|0,c[b+32>>2]|0);b=n;n=0;if(b&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}a=sa()|0;P()|0;Chb(j);if(!d){b=a;Ea(b|0)}}else{a=sa()|0;P()|0}va(e|0);b=a;Ea(b|0);return 0}function bm(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+16|0;u=t+4|0;o=t;c[o>>2]=d;s=LAb(d)|0;q=b+4|0;k=c[q>>2]|0;p=(k|0)==0;a:do if(!p){m=k+-1|0;l=(k&m|0)==0;if(!l)if(s>>>0>>0)f=s;else f=(s>>>0)%(k>>>0)|0;else f=s&m;e=c[(c[b>>2]|0)+(f<<2)>>2]|0;if(e){h=c[d>>2]|0;do{e=c[e>>2]|0;if(!e)break a;d=c[e+4>>2]|0;if((d|0)!=(s|0)){if(!l){if(d>>>0>=k>>>0)d=(d>>>0)%(k>>>0)|0}else d=d&m;if((d|0)!=(f|0))break a}}while(!(dub(c[e+8>>2]|0,h)|0));u=e+12|0;yb=t;return u|0}}else f=0;while(0);m$(u,b,s,o);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){f=(k&k+-1|0)!=0&1;r=21}else{f=1;r=21}}else if(p){e=0;f=1;r=21}do if((r|0)==21){r=e|f;p=~~+I(+(i/j))>>>0;n=0;da(1050,b|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(!(r&1)){e=c[q>>2]|0;f=e+-1|0;if(!(e&f)){k=e;f=s&f;break}if(s>>>0>>0){k=e;f=s;break}k=e;f=(s>>>0)%(e>>>0)|0;break}e=sa()|0;P()|0;f=c[u>>2]|0;c[u>>2]=0;if(!f)Ea(e|0);if(a[u+8>>0]&1)Nrb(f+8|0);RCb(f);Ea(e|0)}while(0);e=c[(c[b>>2]|0)+(f<<2)>>2]|0;if(!e){s=b+8|0;e=c[u>>2]|0;c[e>>2]=c[s>>2];h=e;c[s>>2]=h;c[(c[b>>2]|0)+(f<<2)>>2]=s;if(c[e>>2]|0){f=c[(c[e>>2]|0)+4>>2]|0;d=k+-1|0;if(k&d){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&d;c[(c[b>>2]|0)+(f<<2)>>2]=h}}else{b=c[u>>2]|0;c[b>>2]=c[e>>2];c[e>>2]=b;e=b}c[l>>2]=(c[l>>2]|0)+1;c[u>>2]=0;u=e;u=u+12|0;yb=t;return u|0}function cm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=yb;yb=yb+32|0;f=b+28|0;c[f>>2]=a;h=b+24|0;j=b+20|0;i=b+16|0;g=b+12|0;e=b+8|0;d=b+4|0;a=b;c[h>>2]=f;Z2(h,c[37251]|0,c[37111]|0);Z2(h,c[37252]|0,c[37112]|0);Z2(h,c[37253]|0,c[37113]|0);Z2(h,c[37255]|0,c[37114]|0);Z2(h,c[37256]|0,c[37115]|0);Z2(h,c[37257]|0,c[37116]|0);Z2(h,c[37254]|0,c[37117]|0);Z2(h,c[37258]|0,c[37118]|0);c[j>>2]=f;r8(j,c[37157]|0,c[37123]|0);r8(j,c[37223]|0,c[37125]|0);r8(j,c[37158]|0,c[37143]|0);r8(j,c[37160]|0,c[37124]|0);r8(j,c[37164]|0,c[37127]|0);r8(j,c[37165]|0,c[37128]|0);r8(j,c[37161]|0,c[37144]|0);r8(j,c[37159]|0,c[37145]|0);r8(j,c[37163]|0,c[37146]|0);j=Ria()|0;KJa(WCb(c[f>>2]|0)|0,j)|0;m2a(i,51088,1);h=dWa(c[37153]|0)|0;h=Q5(h,c[37041]|0)|0;KQ(j,c[i>>2]|0,h);h=Ria()|0;KJa(WCb(c[f>>2]|0)|0,h)|0;m2a(g,135443,1);i=dWa(c[37105]|0)|0;m2a(e,134166,1);e=Q5(i,c[e>>2]|0)|0;KQ(h,c[g>>2]|0,e);e=Ria()|0;KJa(WCb(c[f>>2]|0)|0,e)|0;m2a(d,135434,1);f=dWa(c[37105]|0)|0;m2a(a,134157,1);a=Q5(f,c[a>>2]|0)|0;KQ(e,c[d>>2]|0,a);yb=b;return}function dm(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+16|0;t=s+4|0;m=s;c[m>>2]=d;r=c[d>>2]|0;p=b+4|0;k=c[p>>2]|0;o=(k|0)==0;a:do if(!o){l=k+-1|0;h=(k&l|0)==0;if(!h)if(r>>>0>>0)e=r;else e=(r>>>0)%(k>>>0)|0;else e=r&l;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if((f|0)!=(r|0)){if(!h){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(e|0))break a}}while((c[d+8>>2]|0)!=(r|0));t=d+12|0;yb=s;return t|0}}else e=0;while(0);k$(t,b,r,m);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)!=0&1;q=21}else{e=1;q=21}}else if(o){d=0;e=1;q=21}do if((q|0)==21){q=d|e;o=~~+I(+(i/j))>>>0;n=0;da(1717,b|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(!(q&1)){d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){k=d;e=r&e;break}if(r>>>0>>0){k=d;e=r;break}k=d;e=(r>>>0)%(d>>>0)|0;break}d=sa()|0;P()|0;e=c[t>>2]|0;c[t>>2]=0;if(!e)Ea(d|0);if(a[t+8>>0]&1)neb(e+8|0);RCb(e);Ea(d|0)}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){r=b+8|0;d=c[t>>2]|0;c[d>>2]=c[r>>2];h=d;c[r>>2]=h;c[(c[b>>2]|0)+(e<<2)>>2]=r;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[b>>2]|0)+(e<<2)>>2]=h}}else{b=c[t>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=b;d=b}c[l>>2]=(c[l>>2]|0)+1;c[t>>2]=0;t=d;t=t+12|0;yb=s;return t|0}function em(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,o=0,p=0;o=yb;yb=yb+304|0;j=o+288|0;k=o+196|0;l=o+96|0;m=o;h=iqb(c[d>>2]|0)|0;i=(h|0)==0;do if(!i?(e=b+44|0,f=Mba(e,h+8|0)|0,(f|0)!=(b+48|0)):0){g=Keb(c[c[f+20>>2]>>2]|0)|0;if(eCb(c[g+4>>2]|0)|0)ma(104569,104084,300,104588);else{p=c[g+12>>2]|0;g=knb(g)|0;c[g+8>>2]=p;dmb(g);JN(e,f)|0;a[b+92>>0]=1;break}}while(0);g=b+40|0;VA(k,pob(c[g>>2]|0)|0,0);n=0;e=U(154,k|0,c[d>>2]|0)|0;p=n;n=0;do if(!(p&1)){if(e?(n=0,da(3655,b|0,k|0),p=n,n=0,p&1):0)break;if(i){p=b+136|0;m=c[p>>2]|0;m=m+-4|0;c[p>>2]=m;Fha(k);yb=o;return}if(!(GQa(b,h)|0)){p=b+136|0;m=c[p>>2]|0;m=m+-4|0;c[p>>2]=m;Fha(k);yb=o;return}e=c[h+8>>2]|0;f=b+44|0;if(Jga(f,e)|0){n=0;fa(75,104598,104084,317,104588);n=0;break}p=pob(c[g>>2]|0)|0;n=0;ea(181,m|0,d|0,p|0);p=n;n=0;if(!(p&1)){c[l>>2]=e;kbb(l+4|0,m);n=0;fa(128,j|0,f|0,c[l>>2]|0,l|0);p=n;n=0;if(p&1){p=sa()|0;P()|0;Ogb(l);gob(m);Fha(k);Ea(p|0)}else{Ogb(l);gob(m);p=b+136|0;m=c[p>>2]|0;m=m+-4|0;c[p>>2]=m;Fha(k);yb=o;return}}}while(0);p=sa()|0;P()|0;Fha(k);Ea(p|0)}function fm(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=yb;yb=yb+48|0;y=z+16|0;t=z+12|0;u=z+8|0;v=z+4|0;w=z;x=mla(32)|0;qcb(x);fka(b,x);w0a(y);i=WCb(c[f+16>>2]|0)|0;q=Ryb(f)|0;r=x+20|0;a:while(1){s=i;if((q|0)==(s|0)){l=18;break}p=c[i+8>>2]|0;c[t>>2]=p;o=i+12|0;lKa(y);n=0;da(239,y|0,t|0);m=n;n=0;if(m&1){l=26;break}i=WCb(c[i+28>>2]|0)|0;l=Ryb(o)|0;while(1){m=i;if((l|0)==(m|0))break;k=c[i+8>>2]|0;c[u>>2]=k;bda(d,u);i=WCb(c[k+16>>2]|0)|0;while(1){j=i;if((Ryb(k)|0)==(j|0))break;A=c[i+8>>2]|0;c[v>>2]=A;i=c[j+4>>2]|0;j=A;if(!(pdb(o,j)|0)){n=0;da(239,g|0,v|0);A=n;n=0;if(A&1){l=25;break a}n=0;fa(91,j|0,1,x|0,o|0);A=n;n=0;if(A&1){l=25;break a}}}i=c[m+4>>2]|0}n=0;i=V(58,b|0,o|0,y|0)|0;A=n;n=0;if(A&1){l=26;break}n=0;j=U(90,r|0,p+100|0)|0;A=n;n=0;if(A&1){l=26;break}c[j>>2]=i;if(h)a[p+112>>0]=1;i=c[s+4>>2]|0}if((l|0)==18){i=WCb(c[e+16>>2]|0)|0;j=Ryb(e)|0;while(1){k=i;if((j|0)==(k|0)){l=23;break}A=c[i+8>>2]|0;c[w>>2]=A;if(!(pdb(f,A)|0)?(n=0,da(239,g|0,w|0),A=n,n=0,A&1):0)break;i=c[k+4>>2]|0}if((l|0)==23){SZa(y);yb=z;return x|0}A=sa()|0;P()|0;SZa(y);Ea(A|0)}else if((l|0)==25){A=sa()|0;P()|0;SZa(y);Ea(A|0)}else if((l|0)==26){A=sa()|0;P()|0;SZa(y);Ea(A|0)}return 0}function gm(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;r=yb;yb=yb+16|0;h=r+7|0;i=r+6|0;j=r+5|0;k=r+4|0;l=r+3|0;m=r+2|0;n=r+1|0;p=r;if(!(a[b+12>>0]&1))o=b+4|0;else{q=IWa(Sm(IWa(150620,109092)|0,d,e)|0,112332)|0;o=b+4|0;BM(IWa(Ym(q,(c[o>>2]|0)-(c[b>>2]|0)|0)|0,139927)|0)}f=d&255;a[h>>0]=f;g=c[o>>2]|0;q=b+8|0;if(g>>>0<(c[q>>2]|0)>>>0){a[g>>0]=f;g=(c[o>>2]|0)+1|0;c[o>>2]=g}else{qN(b,h);g=c[o>>2]|0}f=U4a(d|0,e|0,8)|0;P()|0;f=f&255;a[i>>0]=f;if(g>>>0<(c[q>>2]|0)>>>0){a[g>>0]=f;g=(c[o>>2]|0)+1|0;c[o>>2]=g}else{qN(b,i);g=c[o>>2]|0}f=U4a(d|0,e|0,16)|0;P()|0;f=f&255;a[j>>0]=f;if(g>>>0<(c[q>>2]|0)>>>0){a[g>>0]=f;g=(c[o>>2]|0)+1|0;c[o>>2]=g}else{qN(b,j);g=c[o>>2]|0}f=U4a(d|0,e|0,24)|0;P()|0;f=f&255;a[k>>0]=f;if(g>>>0<(c[q>>2]|0)>>>0){a[g>>0]=f;g=(c[o>>2]|0)+1|0;c[o>>2]=g}else{qN(b,k);g=c[o>>2]|0}f=e&255;a[l>>0]=f;if(g>>>0<(c[q>>2]|0)>>>0){a[g>>0]=f;g=(c[o>>2]|0)+1|0;c[o>>2]=g}else{qN(b,l);g=c[o>>2]|0}f=U4a(d|0,e|0,40)|0;P()|0;f=f&255;a[m>>0]=f;if(g>>>0<(c[q>>2]|0)>>>0){a[g>>0]=f;g=(c[o>>2]|0)+1|0;c[o>>2]=g}else{qN(b,m);g=c[o>>2]|0}f=U4a(d|0,e|0,48)|0;P()|0;f=f&255;a[n>>0]=f;if(g>>>0<(c[q>>2]|0)>>>0){a[g>>0]=f;g=(c[o>>2]|0)+1|0;c[o>>2]=g}else{qN(b,n);g=c[o>>2]|0}f=U4a(d|0,e|0,56)|0;P()|0;f=f&255;a[p>>0]=f;if(g>>>0<(c[q>>2]|0)>>>0){a[g>>0]=f;c[o>>2]=(c[o>>2]|0)+1;yb=r;return}else{qN(b,p);yb=r;return}}function hm(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+64|0;k=t+56|0;l=t+52|0;m=t+40|0;o=t+36|0;p=t;q=t+32|0;c[l>>2]=d;c[m>>2]=0;r=m+4|0;c[r>>2]=0;f=m+8|0;c[f>>2]=0;n=0;da(222,m|0,l|0);j=n;n=0;if(j&1){t=sa()|0;P()|0;Vob(m);Ea(t|0)}while(1){if(!(WCb(c[d+16>>2]|0)|0))break;n=0;e=U(74,d+12|0,0)|0;j=n;n=0;if(j&1){s=27;break}if(!(OBb(c[c[e>>2]>>2]|0)|0))break;n=0;d=U(74,d+12|0,0)|0;j=n;n=0;if(j&1){s=27;break}n=0;d=S(231,c[d>>2]|0)|0;j=n;n=0;if(j&1){s=27;break}c[l>>2]=d;e=c[r>>2]|0;if((e|0)==(c[f>>2]|0)){n=0;da(222,m|0,l|0);j=n;n=0;if(j&1){s=27;break}}else{c[e>>2]=d;c[r>>2]=(c[r>>2]|0)+4}}if((s|0)==27){t=sa()|0;P()|0;Vob(m);Ea(t|0)}zsb(a);e=c[r>>2]|0;j=c[e+-4>>2]|0;d=e;a:while(1){if((d|0)==(c[m>>2]|0)){s=25;break}i=c[e+-4>>2]|0;c[l>>2]=i;c[r>>2]=e+-4;b:do if(lsb(a)|0){c[o>>2]=c[i+8>>2];c[k>>2]=c[o>>2];W5a(a,k)}else{e=i+16|0;f=(j|0)!=(i|0);g=i+12|0;d=0;while(1){if(d>>>0>=(WCb(c[e>>2]|0)|0)>>>0)break b;if(!(f&(d|0)==0)){n=0;h=U(74,g|0,d|0)|0;u=n;n=0;if(u&1)break a;n=0;ea(161,p|0,b|0,c[h>>2]|0);u=n;n=0;if(u&1)break a;c[a>>2]=c[p>>2];c[a+4>>2]=c[p+4>>2];c[a+8>>2]=c[p+8>>2];c[a+12>>2]=c[p+12>>2];c[a+16>>2]=c[p+16>>2];c[a+20>>2]=c[p+20>>2];c[a+24>>2]=c[p+24>>2];if(lsb(a)|0)break}d=d+1|0}c[q>>2]=c[i+8>>2];c[k>>2]=c[q>>2];W5a(a,k)}while(0);e=c[r>>2]|0;d=e}if((s|0)==25){Vob(m);yb=t;return}u=sa()|0;P()|0;Vob(m);Ea(u|0)}function im(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;r=s+16|0;t=s+4|0;m=s;c[m>>2]=b;f=c[b>>2]|0;c[r>>2]=f;r=pH(r,4)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){k=j+-1|0;l=(j&k|0)==0;if(!l)if(r>>>0>>0)d=r;else d=(r>>>0)%(j>>>0)|0;else d=r&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(r|0)){if(!l){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(f|0));t=b+16|0;yb=s;return t|0}}else d=0;while(0);_0(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;q=21}else{d=1;q=21}}else if(o){b=0;d=1;q=21}do if((q|0)==21){q=b|d;o=~~+I(+(h/i))>>>0;n=0;da(2312,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[p>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=r&d;break}if(r>>>0>>0){j=b;d=r;break}j=b;d=(r>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){r=a+8|0;b=c[t>>2]|0;c[b>>2]=c[r>>2];f=b;c[r>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=r;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=b;t=t+16|0;yb=s;return t|0}function jm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;r=s+16|0;t=s+4|0;m=s;c[m>>2]=b;f=c[b>>2]|0;c[r>>2]=f;r=pH(r,4)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){k=j+-1|0;l=(j&k|0)==0;if(!l)if(r>>>0>>0)d=r;else d=(r>>>0)%(j>>>0)|0;else d=r&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(r|0)){if(!l){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(f|0));t=b+16|0;yb=s;return t|0}}else d=0;while(0);_0(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;q=21}else{d=1;q=21}}else if(o){b=0;d=1;q=21}do if((q|0)==21){q=b|d;o=~~+I(+(h/i))>>>0;n=0;da(2313,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[p>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=r&d;break}if(r>>>0>>0){j=b;d=r;break}j=b;d=(r>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){r=a+8|0;b=c[t>>2]|0;c[b>>2]=c[r>>2];f=b;c[r>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=r;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=b;t=t+16|0;yb=s;return t|0}function km(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;j=yb;yb=yb+48|0;k=j+24|0;l=j+12|0;m=j;c[a>>2]=0;g=b+16|0;f=0;while(1){h=nKa(c[g>>2]|0)|0;e=(h&255)>>>7^1;d=h&127;if(!f)b=-1;else b=(1<<32-f)+-1|0;b=b&d;if((b|0)!=(d|0)){i=5;break}b=c[a>>2]|d<>2]=b;if(e<<24>>24)break;b=f+7|0;if(b>>>0>31){i=15;break}f=b}if((i|0)==15){e=oa(20)|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;m=Zzb(114866)|0;n=0;ea(95,l|0,114866,m|0);m=n;n=0;if(!(m&1)){n=0;da(330,e|0,l|0);m=n;n=0;if(m&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(l);if(!d){m=b;Ea(m|0)}}else{b=sa()|0;P()|0}va(e|0);m=b;Ea(m|0)}do if((i|0)==5){if(e<<24>>24){b=c[a>>2]|b<>2]=b;break}e=oa(20)|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;m=Zzb(114823)|0;n=0;ea(95,k|0,114823,m|0);m=n;n=0;if(!(m&1)){n=0;da(330,e|0,k|0);m=n;n=0;if(m&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(k);if(!d){m=b;Ea(m|0)}}else{b=sa()|0;P()|0}va(e|0);m=b;Ea(m|0)}while(0);if(!((h&64)!=0&(f+7|0)>>>0<32)){yb=j;return}l=25-f|0;l=b<>l;c[a>>2]=l;if((l|0)<=-1){yb=j;return}e=oa(20)|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;l=Zzb(114879)|0;n=0;ea(95,m|0,114879,l|0);l=n;n=0;if(!(l&1)){n=0;da(330,e|0,m|0);l=n;n=0;if(l&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(m);if(!d){m=b;Ea(m|0)}}else{b=sa()|0;P()|0}va(e|0);m=b;Ea(m|0)}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,l=0,m=0,n=0;n=yb;yb=yb+224|0;m=n+192|0;g=n+160|0;h=n+136|0;i=n+104|0;j=n+80|0;k=n+48|0;l=n+24|0;f=n;AB(g,d,c[e+8>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=n;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];AB(i,d,c[e+12>>2]|0);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=n;return}c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];c[j+20>>2]=c[g+20>>2];AB(k,d,c[e+16>>2]|0);c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2];c[g+20>>2]=c[k+20>>2];c[g+24>>2]=c[k+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=n;return}else{c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];c[l+8>>2]=c[g+8>>2];c[l+12>>2]=c[g+12>>2];c[l+16>>2]=c[g+16>>2];c[l+20>>2]=c[g+20>>2];jma(f,l,h,j);e=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,m);yb=n;return}}function mm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;r=s+16|0;t=s+4|0;m=s;c[m>>2]=b;f=c[b>>2]|0;c[r>>2]=f;r=pH(r,4)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){k=j+-1|0;l=(j&k|0)==0;if(!l)if(r>>>0>>0)d=r;else d=(r>>>0)%(j>>>0)|0;else d=r&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(r|0)){if(!l){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(f|0));t=b+12|0;yb=s;return t|0}}else d=0;while(0);G$(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;q=21}else{d=1;q=21}}else if(o){b=0;d=1;q=21}do if((q|0)==21){q=b|d;o=~~+I(+(h/i))>>>0;n=0;da(130,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[p>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=r&d;break}if(r>>>0>>0){j=b;d=r;break}j=b;d=(r>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){r=a+8|0;b=c[t>>2]|0;c[b>>2]=c[r>>2];f=b;c[r>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=r;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=b;t=t+12|0;yb=s;return t|0}function nm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;r=s+16|0;t=s+4|0;m=s;c[m>>2]=b;f=c[b>>2]|0;c[r>>2]=f;r=pH(r,4)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){k=j+-1|0;l=(j&k|0)==0;if(!l)if(r>>>0>>0)d=r;else d=(r>>>0)%(j>>>0)|0;else d=r&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(r|0)){if(!l){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(f|0));t=b+12|0;yb=s;return t|0}}else d=0;while(0);K3(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;q=21}else{d=1;q=21}}else if(o){b=0;d=1;q=21}do if((q|0)==21){q=b|d;o=~~+I(+(h/i))>>>0;n=0;da(1007,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[p>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=r&d;break}if(r>>>0>>0){j=b;d=r;break}j=b;d=(r>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){r=a+8|0;b=c[t>>2]|0;c[b>>2]=c[r>>2];f=b;c[r>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=r;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=b;t=t+12|0;yb=s;return t|0}function om(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;r=s+16|0;t=s+4|0;m=s;c[m>>2]=b;f=c[b>>2]|0;c[r>>2]=f;r=pH(r,4)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){k=j+-1|0;l=(j&k|0)==0;if(!l)if(r>>>0>>0)d=r;else d=(r>>>0)%(j>>>0)|0;else d=r&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(r|0)){if(!l){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(f|0));t=b+12|0;yb=s;return t|0}}else d=0;while(0);K3(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;q=21}else{d=1;q=21}}else if(o){b=0;d=1;q=21}do if((q|0)==21){q=b|d;o=~~+I(+(h/i))>>>0;n=0;da(996,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[p>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=r&d;break}if(r>>>0>>0){j=b;d=r;break}j=b;d=(r>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){r=a+8|0;b=c[t>>2]|0;c[b>>2]=c[r>>2];f=b;c[r>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=r;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=b;t=t+12|0;yb=s;return t|0}function pm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+16|0;t=s+4|0;m=s;c[m>>2]=b;r=LAb(b)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){l=j+-1|0;k=(j&l|0)==0;if(!k)if(r>>>0>>0)e=r;else e=(r>>>0)%(j>>>0)|0;else e=r&l;d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(d){f=c[b>>2]|0;do{d=c[d>>2]|0;if(!d)break a;b=c[d+4>>2]|0;if((b|0)!=(r|0)){if(!k){if(b>>>0>=j>>>0)b=(b>>>0)%(j>>>0)|0}else b=b&l;if((b|0)!=(e|0))break a}}while(!(dub(c[d+8>>2]|0,f)|0));t=d+12|0;yb=s;return t|0}}else e=0;while(0);J0(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){e=(j&j+-1|0)!=0&1;q=21}else{e=1;q=21}}else if(o){d=0;e=1;q=21}do if((q|0)==21){q=d|e;o=~~+I(+(h/i))>>>0;n=0;da(1456,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){d=sa()|0;P()|0;e=c[t>>2]|0;c[t>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){j=d;e=r&e;break}if(r>>>0>>0){j=d;e=r;break}j=d;e=(r>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!d){r=a+8|0;d=c[t>>2]|0;c[d>>2]=c[r>>2];f=d;c[r>>2]=f;c[(c[a>>2]|0)+(e<<2)>>2]=r;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;b=j+-1|0;if(j&b){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&b;c[(c[a>>2]|0)+(e<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=a;d=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=d;t=t+12|0;yb=s;return t|0}function qm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0;o=yb;yb=yb+48|0;h=o+24|0;i=o;j=o+12|0;m=M5(b,d)|0;if(!((m|0)==(b|0)|(m|0)==(d|0))?(a[m>>0]|0)==69:0){k=e+11|0;g=a[k>>0]|0;l=e+4|0;a:do if((g<<24>>24<0?c[l>>2]|0:g&255)>>>0<=3){d=f+4|0;g=c[d>>2]|0;if(g>>>0<(c[f+8>>2]|0)>>>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;sia(g);c[d>>2]=(c[d>>2]|0)+24;g=d;break}else{DD(f);g=d;break}}else{NL(j,139929,e);n=0;U(216,j|0,139927)|0;g=n;n=0;do if(g&1){b=sa()|0;P()|0}else{c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0}X6(h,i);g=f+4|0;d=c[g>>2]|0;if(d>>>0>=(c[f+8>>2]|0)>>>0){n=0;da(4198,f|0,h|0);f=n;n=0;if(f&1){b=sa()|0;P()|0;J2a(h);Chb(i);break}}else{I6(d,h);c[g>>2]=(c[g>>2]|0)+24}J2a(h);Chb(i);Chb(j);break a}while(0);Chb(j);Ea(b|0)}while(0);if((a[b>>0]|0)==110){TN((c[g>>2]|0)+-24|0,45);b=b+1|0}qr((c[g>>2]|0)+-24|0,b,m);b=a[k>>0]|0;d=b<<24>>24<0;b=d?c[l>>2]|0:b&255;if(b>>>0<4)yM((c[g>>2]|0)+-24|0,d?c[e>>2]|0:e,b)|0;b=m+1|0}yb=o;return b|0}function rm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;r=s+16|0;t=s+4|0;m=s;c[m>>2]=b;f=c[b>>2]|0;c[r>>2]=f;r=pH(r,4)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){k=j+-1|0;l=(j&k|0)==0;if(!l)if(r>>>0>>0)d=r;else d=(r>>>0)%(j>>>0)|0;else d=r&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(r|0)){if(!l){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(f|0));t=b+12|0;yb=s;return t|0}}else d=0;while(0);K3(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;q=21}else{d=1;q=21}}else if(o){b=0;d=1;q=21}do if((q|0)==21){q=b|d;o=~~+I(+(h/i))>>>0;n=0;da(3734,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[p>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=r&d;break}if(r>>>0>>0){j=b;d=r;break}j=b;d=(r>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){r=a+8|0;b=c[t>>2]|0;c[b>>2]=c[r>>2];f=b;c[r>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=r;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=b;t=t+12|0;yb=s;return t|0}function sm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;r=s+16|0;t=s+4|0;m=s;c[m>>2]=b;f=c[b>>2]|0;c[r>>2]=f;r=pH(r,4)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){k=j+-1|0;l=(j&k|0)==0;if(!l)if(r>>>0>>0)d=r;else d=(r>>>0)%(j>>>0)|0;else d=r&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(r|0)){if(!l){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(f|0));t=b+12|0;yb=s;return t|0}}else d=0;while(0);K3(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;q=21}else{d=1;q=21}}else if(o){b=0;d=1;q=21}do if((q|0)==21){q=b|d;o=~~+I(+(h/i))>>>0;n=0;da(1002,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[p>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=r&d;break}if(r>>>0>>0){j=b;d=r;break}j=b;d=(r>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){r=a+8|0;b=c[t>>2]|0;c[b>>2]=c[r>>2];f=b;c[r>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=r;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=b;t=t+12|0;yb=s;return t|0}function tm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;r=s+16|0;t=s+4|0;m=s;c[m>>2]=b;f=c[b>>2]|0;c[r>>2]=f;r=pH(r,4)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){k=j+-1|0;l=(j&k|0)==0;if(!l)if(r>>>0>>0)d=r;else d=(r>>>0)%(j>>>0)|0;else d=r&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(r|0)){if(!l){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(f|0));t=b+12|0;yb=s;return t|0}}else d=0;while(0);K3(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;q=21}else{d=1;q=21}}else if(o){b=0;d=1;q=21}do if((q|0)==21){q=b|d;o=~~+I(+(h/i))>>>0;n=0;da(3696,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[p>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=r&d;break}if(r>>>0>>0){j=b;d=r;break}j=b;d=(r>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){r=a+8|0;b=c[t>>2]|0;c[b>>2]=c[r>>2];f=b;c[r>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=r;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=b;t=t+12|0;yb=s;return t|0}function um(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;r=s+16|0;t=s+4|0;m=s;c[m>>2]=b;f=c[b>>2]|0;c[r>>2]=f;r=pH(r,4)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){k=j+-1|0;l=(j&k|0)==0;if(!l)if(r>>>0>>0)d=r;else d=(r>>>0)%(j>>>0)|0;else d=r&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(r|0)){if(!l){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(f|0));t=b+12|0;yb=s;return t|0}}else d=0;while(0);K3(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;q=21}else{d=1;q=21}}else if(o){b=0;d=1;q=21}do if((q|0)==21){q=b|d;o=~~+I(+(h/i))>>>0;n=0;da(1951,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[p>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=r&d;break}if(r>>>0>>0){j=b;d=r;break}j=b;d=(r>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){r=a+8|0;b=c[t>>2]|0;c[b>>2]=c[r>>2];f=b;c[r>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=r;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=b;t=t+12|0;yb=s;return t|0}function vm(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,o=0,p=0,q=0;q=yb;yb=yb+80|0;l=q+48|0;p=q+32|0;i=q;m=q+24|0;if(c[37104]|0){IWa(150452,56221)|0;IWa(150452,66129)|0;h=0;while(1){if((h|0)==(g|0))break;if(h|0)IWa(150452,140151)|0;k=IWa(150452,113917)|0;IWa(IWa(k,c[f+(h<<2)>>2]|0)|0,113917)|0;h=h+1|0}IWa(150452,56261)|0;IWa(Ym(IWa(Ym(IWa(Ym(IWa(150452,66162)|0,d)|0,140151)|0,e)|0,66204)|0,g)|0,56341)|0;IWa(150452,56345)|0}j=Ojb(b+152|0)|0;Bqb(i,0);k=l;h=k+24|0;do{a[k>>0]=a[i>>0]|0;k=k+1|0;i=i+1|0}while((k|0)<(h|0));mya(j,l)|0;mdb(p,j);i=p+4|0;j=p+8|0;k=p+12|0;h=0;while(1){if(h>>>0>=g>>>0)break;n=0;da(211,m|0,c[f+(h<<2)>>2]|0);l=n;n=0;if(l&1){o=22;break}l=c[j>>2]|0;if(l>>>0>=(c[k>>2]|0)>>>0){n=0;da(217,i|0,m|0);l=n;n=0;if(l&1){o=22;break}}else{c[l>>2]=c[m>>2];c[j>>2]=(c[j>>2]|0)+4}h=h+1|0}if((o|0)==22){q=sa()|0;P()|0;Nrb(p);Ea(q|0)}n=0;V(52,b+64|0,d|0,0)|0;o=n;n=0;do if(!(o&1)?(n=0,V(52,b+68|0,e|0,0)|0,o=n,n=0,!(o&1)):0){a[b+56>>0]=1;h=b+76|0;i=c[h>>2]|0;if((i|0)==(c[b+80>>2]|0)){n=0;da(218,b+72|0,p|0);b=n;n=0;if(b&1)break;Nrb(p);yb=q;return}n=0;da(71,i|0,p|0);b=n;n=0;if(!(b&1)){c[h>>2]=(c[h>>2]|0)+16;Nrb(p);yb=q;return}}while(0);q=sa()|0;P()|0;Nrb(p);Ea(q|0)}function wm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;r=s+16|0;t=s+4|0;m=s;c[m>>2]=b;f=c[b>>2]|0;c[r>>2]=f;r=pH(r,4)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){k=j+-1|0;l=(j&k|0)==0;if(!l)if(r>>>0>>0)d=r;else d=(r>>>0)%(j>>>0)|0;else d=r&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(r|0)){if(!l){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(f|0));t=b+12|0;yb=s;return t|0}}else d=0;while(0);K3(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;q=21}else{d=1;q=21}}else if(o){b=0;d=1;q=21}do if((q|0)==21){q=b|d;o=~~+I(+(h/i))>>>0;n=0;da(2363,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[p>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=r&d;break}if(r>>>0>>0){j=b;d=r;break}j=b;d=(r>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){r=a+8|0;b=c[t>>2]|0;c[b>>2]=c[r>>2];f=b;c[r>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=r;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=b;t=t+12|0;yb=s;return t|0}function xm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=yb;yb=yb+32|0;t=v+16|0;w=v+4|0;p=v;c[p>>2]=d;u=b+88|0;c[t>>2]=d;t=pH(t,4)|0;r=b+92|0;l=c[r>>2]|0;q=(l|0)==0;a:do if(!q){m=l+-1|0;o=(l&m|0)==0;if(!o)if(t>>>0>>0)h=t;else h=(t>>>0)%(l>>>0)|0;else h=t&m;f=c[(c[u>>2]|0)+(h<<2)>>2]|0;if(f){do{f=c[f>>2]|0;if(!f)break a;i=c[f+4>>2]|0;if((i|0)!=(t|0)){if(!o){if(i>>>0>=l>>>0)i=(i>>>0)%(l>>>0)|0}else i=i&m;if((i|0)!=(h|0))break a}}while((c[f+8>>2]|0)!=(d|0));yb=v;return}}else h=0;while(0);SM(w,u,t,p,e);d=b+100|0;j=+(((c[d>>2]|0)+1|0)>>>0);k=+g[b+104>>2];if(k*+(l>>>0)>>0>2){h=(l&l+-1|0)!=0&1;s=21}else{h=1;s=21}}else if(q){f=0;h=1;s=21}do if((s|0)==21){s=f|h;q=~~+I(+(j/k))>>>0;n=0;da(1447,u|0,(s>>>0>>0?q:s)|0);s=n;n=0;if(!(s&1)){f=c[r>>2]|0;h=f+-1|0;if(!(f&h)){l=f;h=t&h;break}if(t>>>0>>0){l=f;h=t;break}l=f;h=(t>>>0)%(f>>>0)|0;break}f=sa()|0;P()|0;h=c[w>>2]|0;c[w>>2]=0;if(!h)Ea(f|0);if(a[w+8>>0]&1)blb(h+8|0);RCb(h);Ea(f|0)}while(0);f=c[(c[u>>2]|0)+(h<<2)>>2]|0;if(!f){b=b+96|0;f=c[w>>2]|0;c[f>>2]=c[b>>2];i=f;c[b>>2]=i;c[(c[u>>2]|0)+(h<<2)>>2]=b;if(c[f>>2]|0){f=c[(c[f>>2]|0)+4>>2]|0;h=l+-1|0;if(l&h){if(f>>>0>=l>>>0)f=(f>>>0)%(l>>>0)|0}else f=f&h;c[(c[u>>2]|0)+(f<<2)>>2]=i}}else{u=c[w>>2]|0;c[u>>2]=c[f>>2];c[f>>2]=u}c[d>>2]=(c[d>>2]|0)+1;c[w>>2]=0;yb=v;return}function ym(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;p=yb;yb=yb+144|0;o=p+120|0;j=p+112|0;f=p+80|0;m=p+56|0;g=p+24|0;k=p+108|0;l=p+104|0;n=p;switch(c[e+8>>2]|0){case 0:{Bqb(f,WCb(c[(c[d+4>>2]|0)+32>>2]|0)|0);e=o;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,o);yb=p;return}case 1:{Bqb(m,-1);i=uXa(e+16|0,0)|0;tw(g,d,c[i>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=p;return}h=d+4|0;i=WCb(c[(c[h>>2]|0)+32>>2]|0)|0;f=Peb(g)|0;if(f>>>0>65535){e=o;f=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,o);yb=p;return}d=c[h>>2]|0;e=WCb(c[d+32>>2]|0)|0;if(e>>>0>=~f>>>0){e=o;f=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,o);yb=p;return}f=e+f|0;if(f>>>0>(WCb(c[(c[d>>2]|0)+104>>2]|0)|0)>>>0){e=o;f=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,o);yb=p;return}else{d=c[d+36>>2]|0;m=c[(c[d>>2]|0)+16>>2]|0;j6a(k,e<<16,0);j6a(l,f<<16,0);c[j>>2]=c[k>>2];c[o>>2]=c[l>>2];Tb[m&255](d,j,o);G1a((c[h>>2]|0)+32|0,f,0)|0;Bqb(n,i);e=o;f=n;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,o);yb=p;return}}default:ma(141129,96854,1157,67851)}}function zm(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+16|0;t=s+4|0;m=s;c[m>>2]=d;r=c[d>>2]|0;p=b+4|0;k=c[p>>2]|0;o=(k|0)==0;a:do if(!o){l=k+-1|0;h=(k&l|0)==0;if(!h)if(r>>>0>>0)e=r;else e=(r>>>0)%(k>>>0)|0;else e=r&l;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if((f|0)!=(r|0)){if(!h){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(e|0))break a}}while((c[d+8>>2]|0)!=(r|0));t=d+12|0;yb=s;return t|0}}else e=0;while(0);m$(t,b,r,m);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)!=0&1;q=21}else{e=1;q=21}}else if(o){d=0;e=1;q=21}do if((q|0)==21){q=d|e;o=~~+I(+(i/j))>>>0;n=0;da(252,b|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(!(q&1)){d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){k=d;e=r&e;break}if(r>>>0>>0){k=d;e=r;break}k=d;e=(r>>>0)%(d>>>0)|0;break}d=sa()|0;P()|0;e=c[t>>2]|0;c[t>>2]=0;if(!e)Ea(d|0);if(a[t+8>>0]&1)Nrb(e+8|0);RCb(e);Ea(d|0)}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){r=b+8|0;d=c[t>>2]|0;c[d>>2]=c[r>>2];h=d;c[r>>2]=h;c[(c[b>>2]|0)+(e<<2)>>2]=r;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[b>>2]|0)+(e<<2)>>2]=h}}else{b=c[t>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=b;d=b}c[l>>2]=(c[l>>2]|0)+1;c[t>>2]=0;t=d;t=t+12|0;yb=s;return t|0}function Am(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;r=s+16|0;t=s+4|0;m=s;c[m>>2]=b;f=c[b>>2]|0;c[r>>2]=f;r=pH(r,4)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){k=j+-1|0;l=(j&k|0)==0;if(!l)if(r>>>0>>0)d=r;else d=(r>>>0)%(j>>>0)|0;else d=r&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(r|0)){if(!l){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(f|0));t=b+12|0;yb=s;return t|0}}else d=0;while(0);K3(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;q=21}else{d=1;q=21}}else if(o){b=0;d=1;q=21}do if((q|0)==21){q=b|d;o=~~+I(+(h/i))>>>0;n=0;da(2237,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[p>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=r&d;break}if(r>>>0>>0){j=b;d=r;break}j=b;d=(r>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){r=a+8|0;b=c[t>>2]|0;c[b>>2]=c[r>>2];f=b;c[r>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=r;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=b;t=t+12|0;yb=s;return t|0}function Bm(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0;r=yb;yb=yb+16|0;s=r;k=b+8|0;q=pm((c[a>>2]|0)+20|0,k)|0;if(!(W8(q,(c[c[a+4>>2]>>2]|0)+20|0)|0)){yb=r;return}q=c[a+8>>2]|0;o=LAb(k)|0;m=q+4|0;h=c[m>>2]|0;l=(h|0)==0;a:do if(!l){i=h+-1|0;j=(h&i|0)==0;if(!j)if(o>>>0>>0)a=o;else a=(o>>>0)%(h>>>0)|0;else a=o&i;b=c[(c[q>>2]|0)+(a<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;d=c[b+4>>2]|0;if((d|0)!=(o|0)){if(!j){if(d>>>0>=h>>>0)d=(d>>>0)%(h>>>0)|0}else d=d&i;if((d|0)!=(a|0))break a}}while(!(dub(c[b+8>>2]|0,c[k>>2]|0)|0));yb=r;return}}else a=0;while(0);Uja(s,q,o,k);i=q+12|0;e=+(((c[i>>2]|0)+1|0)>>>0);f=+g[q+16>>2];if(f*+(h>>>0)>>0>2){a=(h&h+-1|0)!=0&1;p=22}else{a=1;p=22}}else if(l){b=0;a=1;p=22}do if((p|0)==22){p=b|a;l=~~+I(+(e/f))>>>0;n=0;da(86,q|0,(p>>>0>>0?l:p)|0);p=n;n=0;if(p&1){b=sa()|0;P()|0;a=c[s>>2]|0;c[s>>2]=0;if(!a)Ea(b|0);RCb(a);Ea(b|0)}else{b=c[m>>2]|0;a=b+-1|0;if(!(b&a)){h=b;a=o&a;break}if(o>>>0>>0){h=b;a=o;break}h=b;a=(o>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[q>>2]|0)+(a<<2)>>2]|0;if(!b){p=q+8|0;b=c[s>>2]|0;c[b>>2]=c[p>>2];d=b;c[p>>2]=d;c[(c[q>>2]|0)+(a<<2)>>2]=p;if(c[b>>2]|0){b=c[(c[b>>2]|0)+4>>2]|0;a=h+-1|0;if(h&a){if(b>>>0>=h>>>0)b=(b>>>0)%(h>>>0)|0}else b=b&a;c[(c[q>>2]|0)+(b<<2)>>2]=d}}else{q=c[s>>2]|0;c[q>>2]=c[b>>2];c[b>>2]=q}c[i>>2]=(c[i>>2]|0)+1;c[s>>2]=0;yb=r;return}function Cm(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;o=yb;yb=yb+272|0;m=o;n=o+256|0;do if(!(a[d>>0]|0)){d=ab(135447)|0;if(d|0?a[d>>0]|0:0)break;d=ab(30704+(b*12|0)|0)|0;if(d|0?a[d>>0]|0:0)break;d=ab(135454)|0;if(d|0?a[d>>0]|0:0)break;d=135459}while(0);e=0;a:while(1){switch(a[d+e>>0]|0){case 47:case 0:break a;default:{}}e=e+1|0;if(e>>>0>=15){e=15;break}}f=a[d>>0]|0;if(f<<24>>24!=46?(a[d+e>>0]|0)==0:0)if(f<<24>>24==67)l=15;else{k=d;l=16}else{d=135459;l=15}if((l|0)==15)if(!(a[d+1>>0]|0))l=18;else{k=d;l=16}b:do if((l|0)==16)if((Cla(k,135459)|0)!=0?(Cla(k,135467)|0)!=0:0){d=c[37440]|0;if(d|0)do{if(!(Cla(k,d+8|0)|0))break b;d=c[d+24>>2]|0}while((d|0)!=0);Ca(149764);d=c[37440]|0;c:do if(d|0){while(1){if(!(Cla(k,d+8|0)|0))break;d=c[d+24>>2]|0;if(!d)break c}Oa(149764);break b}while(0);d:do if(((c[37422]|0)==0?(g=ab(135473)|0,(g|0)!=0):0)?(a[g>>0]|0)!=0:0){i=254-e|0;j=e+1|0;f=g;while(1){h=WH(f,58)|0;d=a[h>>0]|0;g=h-f+((d<<24>>24!=0)<<31>>31)|0;if(g>>>0>>0){Uv(m|0,f|0,g|0)|0;f=m+g|0;a[f>>0]=47;Uv(f+1|0,k|0,e|0)|0;a[m+(j+g)>>0]=0;f=Da(m|0,n|0)|0;if(f|0)break;d=a[h>>0]|0}f=h+(d<<24>>24!=0&1)|0;if(!(a[f>>0]|0)){l=41;break d}}d=qc(28)|0;if(!d){X_a(f,c[n>>2]|0);l=41;break}else{c[d>>2]=f;c[d+4>>2]=c[n>>2];n=d+8|0;Uv(n|0,k|0,e|0)|0;a[n+e>>0]=0;c[d+24>>2]=c[37440];c[37440]=d;break}}else l=41;while(0);if((l|0)==41){d=qc(28)|0;if(d){c[d>>2]=23936;c[d+4>>2]=20;n=d+8|0;Uv(n|0,k|0,e|0)|0;a[n+e>>0]=0;c[d+24>>2]=c[37440];c[37440]=d}}Oa(149764);d=(b|0)==0&(d|0)==0?46468:d}else{d=k;l=18}while(0);do if((l|0)==18){if((b|0)==0?(a[d+1>>0]|0)==46:0){d=46468;break}d=0}while(0);yb=o;return d|0}function Dm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+16|0;t=s+4|0;m=s;c[m>>2]=b;r=LAb(b)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){l=j+-1|0;k=(j&l|0)==0;if(!k)if(r>>>0>>0)e=r;else e=(r>>>0)%(j>>>0)|0;else e=r&l;d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(d){f=c[b>>2]|0;do{d=c[d>>2]|0;if(!d)break a;b=c[d+4>>2]|0;if((b|0)!=(r|0)){if(!k){if(b>>>0>=j>>>0)b=(b>>>0)%(j>>>0)|0}else b=b&l;if((b|0)!=(e|0))break a}}while(!(rmb(c[d+8>>2]|0,f)|0));t=d+12|0;yb=s;return t|0}}else e=0;while(0);K3(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){e=(j&j+-1|0)!=0&1;q=21}else{e=1;q=21}}else if(o){d=0;e=1;q=21}do if((q|0)==21){q=d|e;o=~~+I(+(h/i))>>>0;n=0;da(4058,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){d=sa()|0;P()|0;e=c[t>>2]|0;c[t>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){j=d;e=r&e;break}if(r>>>0>>0){j=d;e=r;break}j=d;e=(r>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!d){r=a+8|0;d=c[t>>2]|0;c[d>>2]=c[r>>2];f=d;c[r>>2]=f;c[(c[a>>2]|0)+(e<<2)>>2]=r;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;b=j+-1|0;if(j&b){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&b;c[(c[a>>2]|0)+(e<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=a;d=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=d;t=t+12|0;yb=s;return t|0}function Em(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;o=yb;yb=yb+16|0;h=o+12|0;k=o+8|0;l=o+4|0;m=o;n=mla(120)|0;mT(n);i=pk(e)|0;c[n+8>>2]=i;c[h>>2]=1;i=n+20|0;g=c[i>>2]|0;j=n+24|0;if(g>>>0<(c[j>>2]|0)>>>0){c[g>>2]=1;g=(c[i>>2]|0)+4|0;c[i>>2]=g}else{_M(n+16|0,h);g=c[i>>2]|0}c[k>>2]=1;if(g>>>0<(c[j>>2]|0)>>>0){c[g>>2]=1;c[i>>2]=(c[i>>2]|0)+4}else _M(n+16|0,k);c[l>>2]=1;g=n+32|0;h=c[g>>2]|0;if(h>>>0<(c[n+36>>2]|0)>>>0){c[h>>2]=1;c[g>>2]=(c[g>>2]|0)+4}else _M(n+28|0,l);j=c[e+4>>2]|0;c[n+12>>2]=j;Gsb(m,f);i=c[m>>2]|0;k=vJa(i,0)|0;l=k+12|0;g=T3a(i,0,1)|0;Wla(l,tVa(i,2,hIa(i,0,g,T3a(i,1,1)|0)|0)|0);Wla(l,lq(b,m,2,d[e+8>>0]|0)|0);g=c[e+16>>2]|0;if((WCb(g)|0)>>>0>1)Wla(l,Gy(b,g,m,2)|0);h=akb(f+152|0)|0;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];c[h+16>>2]=c[e+16>>2];c[h+20>>2]=c[e+20>>2];c[h+24>>2]=c[e+24>>2];e=T3a(i,2,1)|0;c[h+24>>2]=e;if(!(a[h+20>>0]&1)){e=h;Wla(l,e);uZa(k,j);e=n+44|0;c[e>>2]=k;aq(f,n);yb=o;return}g=h+9|0;if(!(a[g>>0]&1)){e=h;Wla(l,e);uZa(k,j);e=n+44|0;c[e>>2]=k;aq(f,n);yb=o;return}e=Qv(h,d[h+8>>0]|0,f)|0;a[g>>0]=0;Wla(l,e);uZa(k,j);e=n+44|0;c[e>>2]=k;aq(f,n);yb=o;return}function Fm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+16|0;t=s+4|0;m=s;c[m>>2]=b;r=LAb(b)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){l=j+-1|0;k=(j&l|0)==0;if(!k)if(r>>>0>>0)e=r;else e=(r>>>0)%(j>>>0)|0;else e=r&l;d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(d){f=c[b>>2]|0;do{d=c[d>>2]|0;if(!d)break a;b=c[d+4>>2]|0;if((b|0)!=(r|0)){if(!k){if(b>>>0>=j>>>0)b=(b>>>0)%(j>>>0)|0}else b=b&l;if((b|0)!=(e|0))break a}}while(!(rmb(c[d+8>>2]|0,f)|0));t=d+12|0;yb=s;return t|0}}else e=0;while(0);K3(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){e=(j&j+-1|0)!=0&1;q=21}else{e=1;q=21}}else if(o){d=0;e=1;q=21}do if((q|0)==21){q=d|e;o=~~+I(+(h/i))>>>0;n=0;da(331,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){d=sa()|0;P()|0;e=c[t>>2]|0;c[t>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){j=d;e=r&e;break}if(r>>>0>>0){j=d;e=r;break}j=d;e=(r>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!d){r=a+8|0;d=c[t>>2]|0;c[d>>2]=c[r>>2];f=d;c[r>>2]=f;c[(c[a>>2]|0)+(e<<2)>>2]=r;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;b=j+-1|0;if(j&b){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&b;c[(c[a>>2]|0)+(e<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=a;d=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=d;t=t+12|0;yb=s;return t|0}function Gm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+16|0;t=s+4|0;m=s;c[m>>2]=b;r=LAb(b)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){l=j+-1|0;k=(j&l|0)==0;if(!k)if(r>>>0>>0)e=r;else e=(r>>>0)%(j>>>0)|0;else e=r&l;d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(d){f=c[b>>2]|0;do{d=c[d>>2]|0;if(!d)break a;b=c[d+4>>2]|0;if((b|0)!=(r|0)){if(!k){if(b>>>0>=j>>>0)b=(b>>>0)%(j>>>0)|0}else b=b&l;if((b|0)!=(e|0))break a}}while(!(dub(c[d+8>>2]|0,f)|0));t=d+12|0;yb=s;return t|0}}else e=0;while(0);S1(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){e=(j&j+-1|0)!=0&1;q=21}else{e=1;q=21}}else if(o){d=0;e=1;q=21}do if((q|0)==21){q=d|e;o=~~+I(+(h/i))>>>0;n=0;da(134,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){d=sa()|0;P()|0;e=c[t>>2]|0;c[t>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){j=d;e=r&e;break}if(r>>>0>>0){j=d;e=r;break}j=d;e=(r>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!d){r=a+8|0;d=c[t>>2]|0;c[d>>2]=c[r>>2];f=d;c[r>>2]=f;c[(c[a>>2]|0)+(e<<2)>>2]=r;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;b=j+-1|0;if(j&b){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&b;c[(c[a>>2]|0)+(e<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=a;d=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=d;t=t+12|0;yb=s;return t|0}function Hm(a,b){a=a|0;b=b|0;if(!b)ma(112644,134747,85,112649);do switch(c[b>>2]|0){case 1:{Yh(a,b);return}case 2:{_s(a,b);return}case 3:{gu(a,b);return}case 4:{rE(a,b);return}case 5:{UU(a,b);return}case 6:{afa(a,b);return}case 7:{IE(a,b);return}case 8:{Wca(a,b);return}case 9:{n6(a,b);return}case 10:{Wca(a,b);return}case 11:{n6(a,b);return}case 12:{A6(a,b);return}case 13:{Y0(a,b);return}case 23:{F0(a,b);return}case 24:{BU(a,b);return}case 25:{RU(a,b);return}case 26:{V0(a,b);return}case 27:{n6(a,b);return}case 28:{c0(a,b);return}case 29:{i0(a,b);return}case 30:{jV(a,b);return}case 31:{V0(a,b);return}case 32:{RU(a,b);return}case 33:{Wca(a,b);return}case 34:{jV(a,b);return}case 35:{jV(a,b);return}case 14:{Wca(a,b);return}case 15:{n6(a,b);return}case 16:{V0(a,b);return}case 17:{jV(a,b);return}case 18:{H6(a,b);return}case 19:{bV(a,b);return}case 20:{eO(a,b);return}case 21:{Wca(a,b);return}case 22:{Wca(a,b);return}default:ma(141129,134747,128,112649)}while(0)}function Im(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;s=yb;yb=yb+16|0;q=s+4|0;n=s;m=b+64|0;if(!(c[m>>2]|0)){r=-1;yb=s;return r|0}e=P5(b)|0;r=b+12|0;d=c[r>>2]|0;if(!d){d=q+1|0;c[b+8>>2]=q;c[r>>2]=d;c[b+16>>2]=d}p=b+16|0;if(e){e=c[p>>2]|0;o=0}else{e=c[p>>2]|0;o=(e-(c[b+8>>2]|0)|0)/2|0;o=o>>>0<4?o:4}do if((d|0)==(e|0)){d=b+8|0;Pxa(c[d>>2]|0,e+(0-o)|0,o|0)|0;if(a[b+98>>0]&1){e=c[d>>2]|0;e=VM(e+o|0,1,(c[p>>2]|0)-e-o|0,c[m>>2]|0)|0;if(!e){e=-1;break}o=(c[d>>2]|0)+o|0;c[r>>2]=o;c[p>>2]=o+e;e=Qzb(a[o>>0]|0)|0;break}k=b+40|0;i=c[k>>2]|0;l=b+36|0;e=c[l>>2]|0;f=i;g=e;j=b+32|0;if((i|0)==(e|0)){i=k;e=g}else{Pxa(c[j>>2]|0,e|0,f-g|0)|0;i=k;f=c[k>>2]|0;e=c[l>>2]|0}g=c[j>>2]|0;f=g+(f-e)|0;c[l>>2]=f;if((g|0)==(b+44|0))e=8;else e=c[b+52>>2]|0;t=g+e|0;c[k>>2]=t;g=b+60|0;e=(c[g>>2]|0)-o|0;t=t-f|0;h=b+72|0;w=h;v=c[w+4>>2]|0;u=b+80|0;c[u>>2]=c[w>>2];c[u+4>>2]=v;f=VM(f,1,t>>>0>>0?t:e,c[m>>2]|0)|0;if(f){e=c[b+68>>2]|0;if(!e){w=oa(4)|0;TBb(w);za(w|0,39640,481)}v=(c[l>>2]|0)+f|0;c[k>>2]=v;w=c[d>>2]|0;if((Ob[c[(c[e>>2]|0)+16>>2]&15](e,h,c[j>>2]|0,v,l,w+o|0,w+(c[g>>2]|0)|0,n)|0)==3){e=c[j>>2]|0;w=c[i>>2]|0;c[d>>2]=e;c[r>>2]=e;c[p>>2]=w;e=Qzb(a[e>>0]|0)|0;break}f=c[n>>2]|0;g=c[d>>2]|0;e=g+o|0;if((f|0)!=(e|0)){c[d>>2]=g;c[r>>2]=e;c[p>>2]=f;e=Qzb(a[e>>0]|0)|0}else e=-1}else e=-1}else{e=Qzb(a[d>>0]|0)|0;d=b+8|0}while(0);if((c[d>>2]|0)!=(q|0)){w=e;yb=s;return w|0}c[d>>2]=0;c[r>>2]=0;c[p>>2]=0;w=e;yb=s;return w|0}function Jm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+16|0;t=s+4|0;m=s;c[m>>2]=b;r=LAb(b)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){l=j+-1|0;k=(j&l|0)==0;if(!k)if(r>>>0>>0)e=r;else e=(r>>>0)%(j>>>0)|0;else e=r&l;d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(d){f=c[b>>2]|0;do{d=c[d>>2]|0;if(!d)break a;b=c[d+4>>2]|0;if((b|0)!=(r|0)){if(!k){if(b>>>0>=j>>>0)b=(b>>>0)%(j>>>0)|0}else b=b&l;if((b|0)!=(e|0))break a}}while(!(dub(c[d+8>>2]|0,f)|0));t=d+12|0;yb=s;return t|0}}else e=0;while(0);K3(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){e=(j&j+-1|0)!=0&1;q=21}else{e=1;q=21}}else if(o){d=0;e=1;q=21}do if((q|0)==21){q=d|e;o=~~+I(+(h/i))>>>0;n=0;da(2912,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){d=sa()|0;P()|0;e=c[t>>2]|0;c[t>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){j=d;e=r&e;break}if(r>>>0>>0){j=d;e=r;break}j=d;e=(r>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!d){r=a+8|0;d=c[t>>2]|0;c[d>>2]=c[r>>2];f=d;c[r>>2]=f;c[(c[a>>2]|0)+(e<<2)>>2]=r;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;b=j+-1|0;if(j&b){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&b;c[(c[a>>2]|0)+(e<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=a;d=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=d;t=t+12|0;yb=s;return t|0}function Km(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0;l=yb;yb=yb+80|0;j=l;m=l+48|0;e=l+4|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;g[m+16>>2]=1.0;k=d+28|0;b=c[k>>2]|0;a=c[d+24>>2]|0;while(1){if((a|0)==(b|0)){i=10;break}n=0;U(174,m|0,(c[a>>2]|0)+8|0)|0;i=n;n=0;if(i&1){i=7;break}a=a+4|0}a:do if((i|0)==7){a=sa()|0;P()|0}else if((i|0)==10){n=0;da(998,e|0,d|0);h=n;n=0;do if(!(h&1)){Lvb(e);n=0;da(2911,e|0,m|0);h=n;n=0;if(!(h&1)?(n=0,ca(489,e|0),h=n,n=0,!(h&1)):0){osa(e);if(eCb(c[d+124>>2]|0)|0){n=0;a=U(174,m|0,d+124|0)|0;h=n;n=0;if(h&1)break;c[a>>2]=(c[a>>2]|0)+1}b=c[d+16>>2]|0;a=c[d+12>>2]|0;while(1){if((a|0)==(b|0))break;n=0;e=U(174,m|0,(c[a>>2]|0)+4|0)|0;h=n;n=0;if(h&1){i=6;break}c[e>>2]=(c[e>>2]|0)+1;a=a+4|0}if((i|0)==6){a=sa()|0;P()|0;break a}e=c[d+76>>2]|0;a=c[d+72>>2]|0;b:while(1){if((a|0)==(e|0))break;f=c[a+8>>2]|0;b=c[a+4>>2]|0;while(1){if((b|0)==(f|0))break;n=0;h=U(174,m|0,b|0)|0;o=n;n=0;if(o&1){i=5;break b}c[h>>2]=(c[h>>2]|0)+1;b=b+4|0}a=a+16|0}if((i|0)==5){a=sa()|0;P()|0;break a}d=c[d+24>>2]|0;o=c[k>>2]|0;c[j>>2]=m;n=0;ea(169,d|0,o|0,j|0);o=n;n=0;if(o&1)break;Pdb(m);yb=l;return}o=sa()|0;P()|0;osa(e);Pdb(m);Ea(o|0)}while(0);a=sa()|0;P()|0}while(0);o=a;Pdb(m);Ea(o|0)}function Lm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+16|0;t=s+4|0;m=s;c[m>>2]=b;r=oU(b)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){l=j+-1|0;k=(j&l|0)==0;if(!k)if(r>>>0>>0)e=r;else e=(r>>>0)%(j>>>0)|0;else e=r&l;d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if((f|0)!=(r|0)){if(!k){if(f>>>0>=j>>>0)f=(f>>>0)%(j>>>0)|0}else f=f&l;if((f|0)!=(e|0))break a}}while(!(yda(d+8|0,b)|0));t=d+32|0;yb=s;return t|0}}else e=0;while(0);tP(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){e=(j&j+-1|0)!=0&1;q=21}else{e=1;q=21}}else if(o){d=0;e=1;q=21}do if((q|0)==21){q=d|e;o=~~+I(+(h/i))>>>0;n=0;da(1004,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){d=sa()|0;P()|0;e=c[t>>2]|0;c[t>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){j=d;e=r&e;break}if(r>>>0>>0){j=d;e=r;break}j=d;e=(r>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!d){r=a+8|0;d=c[t>>2]|0;c[d>>2]=c[r>>2];b=d;c[r>>2]=b;c[(c[a>>2]|0)+(e<<2)>>2]=r;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;f=j+-1|0;if(j&f){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&f;c[(c[a>>2]|0)+(e<<2)>>2]=b}}else{a=c[t>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=a;d=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=d;t=t+32|0;yb=s;return t|0}function Mm(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=yb;yb=yb+64|0;f=d+48|0;g=d+36|0;h=d+24|0;j=d+12|0;k=d;i=St(a)|0;e=i&255;if((i<<24>>24|0)==(b<<24>>24|0)){yb=d;return}i=oa(12)|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;d=Zzb(118497)|0;n=0;ea(95,k|0,118497,d|0);d=n;n=0;do if(!(d&1)){n=0;da(91,k|0,b|0);b=n;n=0;if(b&1){a=sa()|0;P()|0;Chb(k);break}c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];a=0;while(1){if((a|0)==3)break;c[k+(a<<2)>>2]=0;a=a+1|0}n=0;U(69,j|0,118525)|0;b=n;n=0;if(b&1){a=sa()|0;P()|0;d=1}else{c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];a=0;while(1){if((a|0)==3)break;c[j+(a<<2)>>2]=0;a=a+1|0}n=0;da(91,h|0,e|0);e=n;n=0;if(e&1){a=sa()|0;P()|0;d=1}else{c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];a=0;while(1){if((a|0)==3)break;c[h+(a<<2)>>2]=0;a=a+1|0}n=0;U(69,g|0,118533)|0;e=n;n=0;if(e&1){a=sa()|0;P()|0;d=1}else{c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];a=0;while(1){if((a|0)==3)break;c[g+(a<<2)>>2]=0;a=a+1|0}n=0;da(4023,i|0,f|0);e=n;n=0;if(e&1)d=1;else{n=0;ea(122,i|0,37736,556);n=0;d=0}a=sa()|0;P()|0;Chb(f)}Chb(g)}Chb(h)}Chb(j);Chb(k);if(!d){k=a;Ea(k|0)}}else{a=sa()|0;P()|0}while(0);va(i|0);k=a;Ea(k|0)}function Nm(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+16|0;t=s+4|0;m=s;c[m>>2]=d;r=c[d>>2]|0;p=b+4|0;k=c[p>>2]|0;o=(k|0)==0;a:do if(!o){l=k+-1|0;h=(k&l|0)==0;if(!h)if(r>>>0>>0)e=r;else e=(r>>>0)%(k>>>0)|0;else e=r&l;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if((f|0)!=(r|0)){if(!h){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(e|0))break a}}while((c[d+8>>2]|0)!=(r|0));t=d+12|0;yb=s;return t|0}}else e=0;while(0);m$(t,b,r,m);l=b+12|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+16>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)!=0&1;q=21}else{e=1;q=21}}else if(o){d=0;e=1;q=21}do if((q|0)==21){q=d|e;o=~~+I(+(i/j))>>>0;n=0;da(1409,b|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(!(q&1)){d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){k=d;e=r&e;break}if(r>>>0>>0){k=d;e=r;break}k=d;e=(r>>>0)%(d>>>0)|0;break}d=sa()|0;P()|0;e=c[t>>2]|0;c[t>>2]=0;if(!e)Ea(d|0);if(a[t+8>>0]&1)Nrb(e+8|0);RCb(e);Ea(d|0)}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){r=b+8|0;d=c[t>>2]|0;c[d>>2]=c[r>>2];h=d;c[r>>2]=h;c[(c[b>>2]|0)+(e<<2)>>2]=r;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[b>>2]|0)+(e<<2)>>2]=h}}else{b=c[t>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=b;d=b}c[l>>2]=(c[l>>2]|0)+1;c[t>>2]=0;t=d;t=t+12|0;yb=s;return t|0}function Om(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+16|0;t=s+4|0;m=s;c[m>>2]=b;r=LAb(b)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){l=j+-1|0;k=(j&l|0)==0;if(!k)if(r>>>0>>0)e=r;else e=(r>>>0)%(j>>>0)|0;else e=r&l;d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(d){f=c[b>>2]|0;do{d=c[d>>2]|0;if(!d)break a;b=c[d+4>>2]|0;if((b|0)!=(r|0)){if(!k){if(b>>>0>=j>>>0)b=(b>>>0)%(j>>>0)|0}else b=b&l;if((b|0)!=(e|0))break a}}while(!(dub(c[d+8>>2]|0,f)|0));t=d+12|0;yb=s;return t|0}}else e=0;while(0);K3(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){e=(j&j+-1|0)!=0&1;q=21}else{e=1;q=21}}else if(o){d=0;e=1;q=21}do if((q|0)==21){q=d|e;o=~~+I(+(h/i))>>>0;n=0;da(1369,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){d=sa()|0;P()|0;e=c[t>>2]|0;c[t>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){j=d;e=r&e;break}if(r>>>0>>0){j=d;e=r;break}j=d;e=(r>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!d){r=a+8|0;d=c[t>>2]|0;c[d>>2]=c[r>>2];f=d;c[r>>2]=f;c[(c[a>>2]|0)+(e<<2)>>2]=r;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;b=j+-1|0;if(j&b){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&b;c[(c[a>>2]|0)+(e<<2)>>2]=f}}else{a=c[t>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=a;d=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=d;t=t+12|0;yb=s;return t|0}function Pm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+16|0;t=s+4|0;m=s;c[m>>2]=b;r=LAb(b)|0;p=a+4|0;i=c[p>>2]|0;o=(i|0)==0;a:do if(!o){l=i+-1|0;k=(i&l|0)==0;if(!k)if(r>>>0>>0)e=r;else e=(r>>>0)%(i>>>0)|0;else e=r&l;d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(d){j=c[b>>2]|0;do{d=c[d>>2]|0;if(!d)break a;b=c[d+4>>2]|0;if((b|0)!=(r|0)){if(!k){if(b>>>0>=i>>>0)b=(b>>>0)%(i>>>0)|0}else b=b&l;if((b|0)!=(e|0))break a}}while(!(dub(c[d+8>>2]|0,j)|0));yb=s;return}}else e=0;while(0);p_(t,a,r,m);j=a+12|0;f=+(((c[j>>2]|0)+1|0)>>>0);h=+g[a+16>>2];if(h*+(i>>>0)>>0>2){e=(i&i+-1|0)!=0&1;q=21}else{e=1;q=21}}else if(o){d=0;e=1;q=21}do if((q|0)==21){q=d|e;o=~~+I(+(f/h))>>>0;n=0;da(4146,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){d=sa()|0;P()|0;e=c[t>>2]|0;c[t>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=r&e;break}if(r>>>0>>0){i=d;e=r;break}i=d;e=(r>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!d){r=a+8|0;d=c[t>>2]|0;c[d>>2]=c[r>>2];b=d;c[r>>2]=b;c[(c[a>>2]|0)+(e<<2)>>2]=r;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;if(i&e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=b}}else{a=c[t>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=a}c[j>>2]=(c[j>>2]|0)+1;c[t>>2]=0;yb=s;return}function Qm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+16|0;t=s+4|0;m=s;c[m>>2]=b;r=oU(b)|0;p=a+4|0;j=c[p>>2]|0;o=(j|0)==0;a:do if(!o){l=j+-1|0;k=(j&l|0)==0;if(!k)if(r>>>0>>0)e=r;else e=(r>>>0)%(j>>>0)|0;else e=r&l;d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if((f|0)!=(r|0)){if(!k){if(f>>>0>=j>>>0)f=(f>>>0)%(j>>>0)|0}else f=f&l;if((f|0)!=(e|0))break a}}while(!(yda(d+8|0,b)|0));t=d+32|0;yb=s;return t|0}}else e=0;while(0);tP(t,a,r,m);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){e=(j&j+-1|0)!=0&1;q=21}else{e=1;q=21}}else if(o){d=0;e=1;q=21}do if((q|0)==21){q=d|e;o=~~+I(+(h/i))>>>0;n=0;da(2364,a|0,(q>>>0>>0?o:q)|0);q=n;n=0;if(q&1){d=sa()|0;P()|0;e=c[t>>2]|0;c[t>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){j=d;e=r&e;break}if(r>>>0>>0){j=d;e=r;break}j=d;e=(r>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!d){r=a+8|0;d=c[t>>2]|0;c[d>>2]=c[r>>2];b=d;c[r>>2]=b;c[(c[a>>2]|0)+(e<<2)>>2]=r;if(c[d>>2]|0){e=c[(c[d>>2]|0)+4>>2]|0;f=j+-1|0;if(j&f){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&f;c[(c[a>>2]|0)+(e<<2)>>2]=b}}else{a=c[t>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=a;d=a}c[k>>2]=(c[k>>2]|0)+1;c[t>>2]=0;t=d;t=t+32|0;yb=s;return t|0}function Rm(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,o=0,p=0,q=0,r=0;q=yb;yb=yb+16|0;j=q+12|0;m=q+8|0;o=q;n=0;da(84,o|0,b|0);l=n;n=0;a:do if(l&1){f=ta(0)|0;P()|0;g=b;h=b;p=20}else{b:do if(a[o>>0]|0){anb(j,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);n=0;k=U(66,c[j>>2]|0,151380)|0;l=n;n=0;c:do if(l&1){f=ta(0)|0;P()|0;XWa(j)}else{XWa(j);g=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;l=c[g+24>>2]|0;h=g+76|0;f=c[h>>2]|0;do if(dub(-1,f)|0){anb(j,g);n=0;f=U(66,c[j>>2]|0,151324)|0;r=n;n=0;if(!(r&1)?(n=0,i=U(c[(c[f>>2]|0)+28>>2]|0,f|0,32)|0,r=n,n=0,!(r&1)):0){XWa(j);f=i<<24>>24;c[h>>2]=f;p=10;break}f=ta(0)|0;P()|0;XWa(j)}else p=10;while(0);do if((p|0)==10){r=c[(c[k>>2]|0)+28>>2]|0;c[m>>2]=l;n=0;c[j>>2]=c[m>>2];f=Z(r|0,k|0,j|0,g|0,f&255|0,d|0,e|0)|0;r=n;n=0;if(r&1){f=ta(0)|0;P()|0;break}if(f|0)break b;r=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=0;da(85,r|0,c[r+16>>2]|5|0);r=n;n=0;if(!(r&1))break b;f=ta(0)|0;P()|0;break c}while(0)}while(0);sF(o);g=b;h=b;p=20;break a}while(0);sF(o)}while(0);do if((p|0)==20){pa(f|0)|0;n=0;ca(496,h+(c[(c[g>>2]|0)+-12>>2]|0)|0);r=n;n=0;if(!(r&1)){qa();break}f=sa()|0;P()|0;n=0;ba(5);r=n;n=0;if(r&1){r=ta(0)|0;P()|0;yub(r)}else Ea(f|0)}while(0);yb=q;return b|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,l=0,m=0,o=0,p=0,q=0,r=0;q=yb;yb=yb+16|0;j=q+12|0;m=q+8|0;o=q;n=0;da(84,o|0,b|0);l=n;n=0;a:do if(l&1){f=ta(0)|0;P()|0;g=b;h=b;p=20}else{b:do if(a[o>>0]|0){anb(j,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);n=0;k=U(66,c[j>>2]|0,151380)|0;l=n;n=0;c:do if(l&1){f=ta(0)|0;P()|0;XWa(j)}else{XWa(j);g=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;l=c[g+24>>2]|0;h=g+76|0;f=c[h>>2]|0;do if(dub(-1,f)|0){anb(j,g);n=0;f=U(66,c[j>>2]|0,151324)|0;r=n;n=0;if(!(r&1)?(n=0,i=U(c[(c[f>>2]|0)+28>>2]|0,f|0,32)|0,r=n,n=0,!(r&1)):0){XWa(j);f=i<<24>>24;c[h>>2]=f;p=10;break}f=ta(0)|0;P()|0;XWa(j)}else p=10;while(0);do if((p|0)==10){r=c[(c[k>>2]|0)+20>>2]|0;c[m>>2]=l;n=0;c[j>>2]=c[m>>2];f=Z(r|0,k|0,j|0,g|0,f&255|0,d|0,e|0)|0;r=n;n=0;if(r&1){f=ta(0)|0;P()|0;break}if(f|0)break b;r=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=0;da(85,r|0,c[r+16>>2]|5|0);r=n;n=0;if(!(r&1))break b;f=ta(0)|0;P()|0;break c}while(0)}while(0);sF(o);g=b;h=b;p=20;break a}while(0);sF(o)}while(0);do if((p|0)==20){pa(f|0)|0;n=0;ca(496,h+(c[(c[g>>2]|0)+-12>>2]|0)|0);r=n;n=0;if(!(r&1)){qa();break}f=sa()|0;P()|0;n=0;ba(5);r=n;n=0;if(r&1){r=ta(0)|0;P()|0;yub(r)}else Ea(f|0)}while(0);yb=q;return b|0}function Tm(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;W2(a,d,e,f);ihb(a,b);n=0;ca(552,a|0);f=n;n=0;do if(!(f&1)){d=c[b+48>>2]|0;e=c[d+4>>2]|0;d=c[d>>2]|0;a:while(1){if((d|0)==(e|0)){b=17;break}b=c[d>>2]|0;b:do if(b|0)switch(c[b>>2]|0){case 6:case 3:case 1:case 0:{n=0;da(4016,a|0,c[b+4>>2]|0);f=n;n=0;if(f&1){b=19;break a}else break b}case 2:{n=0;b=S(231,c[b+4>>2]|0)|0;f=n;n=0;if(f&1){b=19;break a}n=0;da(4017,a|0,b|0);f=n;n=0;if(f&1){b=19;break a}else break b}case 4:{n=0;b=S(235,c[b+4>>2]|0)|0;f=n;n=0;if(f&1){b=19;break a}n=0;da(4018,a|0,b|0);f=n;n=0;if(f&1){b=19;break a}else break b}case 5:{n=0;b=S(235,c[b+4>>2]|0)|0;f=n;n=0;if(f&1){b=19;break a}n=0;da(4019,a|0,b|0);f=n;n=0;if(f&1){b=19;break a}else break b}case 7:{n=0;b=S(238,c[b+4>>2]|0)|0;f=n;n=0;if(f&1){b=19;break a}n=0;da(4020,a|0,b|0);f=n;n=0;if(f&1){b=19;break a}else break b}default:{b=15;break a}}while(0);d=d+4|0}if((b|0)==15){n=0;fa(75,141129,112765,253,113600);n=0;break}else if((b|0)==17){n=0;ca(553,a|0);f=n;n=0;if(f&1)break;return}else if((b|0)==19){f=sa()|0;P()|0;fxa(a);Ea(f|0)}}while(0);f=sa()|0;P()|0;fxa(a);Ea(f|0)}function Um(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,o=0,p=0,q=0;p=yb;yb=yb+16|0;i=p+12|0;k=p+8|0;m=p;n=0;da(84,m|0,b|0);l=n;n=0;a:do if(l&1){e=ta(0)|0;P()|0;f=b;g=b;o=20}else{b:do if(a[m>>0]|0){anb(i,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);n=0;j=U(66,c[i>>2]|0,151380)|0;l=n;n=0;c:do if(l&1){e=ta(0)|0;P()|0;XWa(i)}else{XWa(i);f=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;l=c[f+24>>2]|0;g=f+76|0;e=c[g>>2]|0;do if(dub(-1,e)|0){anb(i,f);n=0;e=U(66,c[i>>2]|0,151324)|0;q=n;n=0;if(!(q&1)?(n=0,h=U(c[(c[e>>2]|0)+28>>2]|0,e|0,32)|0,q=n,n=0,!(q&1)):0){XWa(i);e=h<<24>>24;c[g>>2]=e;o=10;break}e=ta(0)|0;P()|0;XWa(i)}else o=10;while(0);do if((o|0)==10){q=c[(c[j>>2]|0)+24>>2]|0;c[k>>2]=l;n=0;c[i>>2]=c[k>>2];e=Y(q|0,j|0,i|0,f|0,e&255|0,d&65535|0)|0;q=n;n=0;if(q&1){e=ta(0)|0;P()|0;break}if(e|0)break b;q=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=0;da(85,q|0,c[q+16>>2]|5|0);q=n;n=0;if(!(q&1))break b;e=ta(0)|0;P()|0;break c}while(0)}while(0);sF(m);f=b;g=b;o=20;break a}while(0);sF(m)}while(0);do if((o|0)==20){pa(e|0)|0;n=0;ca(496,g+(c[(c[f>>2]|0)+-12>>2]|0)|0);q=n;n=0;if(!(q&1)){qa();break}e=sa()|0;P()|0;n=0;ba(5);q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}else Ea(e|0)}while(0);yb=p;return b|0}function Vm(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,o=0,p=0,q=0;p=yb;yb=yb+48|0;d=p+32|0;m=p+24|0;o=p+12|0;q=p;e=c[b+132>>2]|0;Es(b+184|0,J(e,e)|0);e=c[b+184>>2]|0;f=c[b+188>>2]|0;f=(e+(f>>>5<<2)-e<<3)+(f&31)|0;if(f|0){c[d>>2]=e;c[d+4>>2]=0;b_(d,f)}i=c[b+60>>2]|0;j=b+136|0;k=o+4|0;h=c[b+56>>2]|0;a:while(1){if((h|0)==(i|0)){e=23;break}c[m>>2]=c[h>>2];if(lC(j,m)|0){fnb(o,(c[h>>2]|0)+12|0);n=0;da(559,b|0,o|0);l=n;n=0;if(l&1){e=15;break}d=c[h>>2]|0;l=d+24|0;d=(c[d+28>>2]|0)-(c[l>>2]|0)>>4;while(1){g=d+-1|0;if((d|0)<=0)break;e=c[l>>2]|0;f=c[e+(g<<4)+4>>2]|0;b:do if(!(bCb(c[e+(g<<4)>>2]|0)|0)){n=0;d=U(103,o|0,f|0)|0;f=n;n=0;if(f&1){e=14;break a}if(d)a[e+(g<<4)+12>>0]=1}else{n=0;da(560,o|0,f|0);e=n;n=0;if(e&1){e=14;break a}e=c[k>>2]|0;d=c[o>>2]|0;while(1){if((d|0)==(e|0))break b;Nua(b,c[d>>2]|0,f);d=d+4|0}}while(0);d=g}Htb(o)}h=h+4|0}if((e|0)==14){d=sa()|0;P()|0}else if((e|0)==15){d=sa()|0;P()|0}else if((e|0)==23){fnb(q,c[b+52>>2]|0);e=uob(WCb(c[b+32>>2]|0)|0)|0;d=0;while(1){if(d>>>0>=e>>>0){e=30;break}n=0;da(560,q|0,d|0);o=n;n=0;if(o&1){e=27;break}d=d+1|0}do if((e|0)==27){d=sa()|0;P()|0}else if((e|0)==30){n=0;da(559,b|0,q|0);b=n;n=0;if(b&1){d=sa()|0;P()|0;break}else{Htb(q);yb=p;return}}while(0);Htb(q);q=d;Ea(q|0)}Htb(o);q=d;Ea(q|0)}function Wm(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,o=0,p=0,q=0;p=yb;yb=yb+16|0;i=p+12|0;k=p+8|0;m=p;n=0;da(84,m|0,b|0);l=n;n=0;a:do if(l&1){e=ta(0)|0;P()|0;f=b;g=b;o=20}else{b:do if(a[m>>0]|0){anb(i,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);n=0;j=U(66,c[i>>2]|0,151380)|0;l=n;n=0;c:do if(l&1){e=ta(0)|0;P()|0;XWa(i)}else{XWa(i);f=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;l=c[f+24>>2]|0;g=f+76|0;e=c[g>>2]|0;do if(dub(-1,e)|0){anb(i,f);n=0;e=U(66,c[i>>2]|0,151324)|0;q=n;n=0;if(!(q&1)?(n=0,h=U(c[(c[e>>2]|0)+28>>2]|0,e|0,32)|0,q=n,n=0,!(q&1)):0){XWa(i);e=h<<24>>24;c[g>>2]=e;o=10;break}e=ta(0)|0;P()|0;XWa(i)}else o=10;while(0);do if((o|0)==10){q=c[(c[j>>2]|0)+40>>2]|0;c[k>>2]=l;n=0;c[i>>2]=c[k>>2];e=Y(q|0,j|0,i|0,f|0,e&255|0,d|0)|0;q=n;n=0;if(q&1){e=ta(0)|0;P()|0;break}if(e|0)break b;q=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=0;da(85,q|0,c[q+16>>2]|5|0);q=n;n=0;if(!(q&1))break b;e=ta(0)|0;P()|0;break c}while(0)}while(0);sF(m);f=b;g=b;o=20;break a}while(0);sF(m)}while(0);do if((o|0)==20){pa(e|0)|0;n=0;ca(496,g+(c[(c[f>>2]|0)+-12>>2]|0)|0);q=n;n=0;if(!(q&1)){qa();break}e=sa()|0;P()|0;n=0;ba(5);q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}else Ea(e|0)}while(0);yb=p;return b|0}function Xm(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,o=0,p=0,q=0;q=yb;yb=yb+64|0;i=q+48|0;j=q+8|0;l=q+4|0;m=q;p=d+8|0;e=_g(b,c[p>>2]|0,0)|0;c[p>>2]=e;if(!e){Gjb(d);yb=q;return}f=iqb(e)|0;if(f|0){if(!(eCb(c[f+4>>2]|0)|0))ma(110770,110783,285,110814);m4a(f,0);qOa(b,f);yb=q;return}f=Rqb(e)|0;do if(((f|0?(o=f+12|0,g=cWa(o)|0,g=c[g>>2]|0,h=c[g+4>>2]|0,vub(h)|0):0)?(k=f+4|0,(c[k>>2]|0)==(h|0)):0)?(_g(b,g,0)|0)==0:0){e=c[f+8>>2]|0;if(eCb(e)|0){c[l>>2]=e;c[i>>2]=c[l>>2];k$a(j,i);a[j+28>>0]=1;c[m>>2]=f;n=0;da(253,j|0,m|0);m=n;n=0;if(m&1){q=sa()|0;P()|0;Arb(j);Ea(q|0)}if(c[j+32>>2]|0?c[j+36>>2]|0:0){Arb(j);break}Arb(j)}e=cWa(o)|0;c[e>>2]=0;pYa(o);c[k>>2]=0;e=WCb(c[f+16>>2]|0)|0;if(e>>>0>1){qOa(b,f);yb=q;return}if((e|0)==1){d=uXa(o,0)|0;qOa(b,c[d>>2]|0);yb=q;return}else{Gjb(d);yb=q;return}}while(0);f=wrb(c[p>>2]|0)|0;if(!f){yb=q;return}g=f+16|0;e=c[g>>2]|0;h=e;if(!e){yb=q;return}i=f+4|0;if(!(vub(c[i>>2]|0)|0)){yb=q;return}j=f+12|0;l=c[j>>2]|0;k=c[l+4>>2]|0;e=c[e+4>>2]|0;if((k|0)==6?vub(e)|0:0){c[p>>2]=h;c[g>>2]=d;c[i>>2]=0;qOa(b,f);yb=q;return}if((e|0)!=6){yb=q;return}if(!(vub(k)|0)){yb=q;return}c[p>>2]=l;c[j>>2]=d;c[i>>2]=0;qOa(b,f);yb=q;return}function Ym(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,o=0,p=0,q=0;p=yb;yb=yb+16|0;i=p+12|0;k=p+8|0;m=p;n=0;da(84,m|0,b|0);l=n;n=0;a:do if(l&1){e=ta(0)|0;P()|0;f=b;g=b;o=20}else{b:do if(a[m>>0]|0){anb(i,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);n=0;j=U(66,c[i>>2]|0,151380)|0;l=n;n=0;c:do if(l&1){e=ta(0)|0;P()|0;XWa(i)}else{XWa(i);f=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;l=c[f+24>>2]|0;g=f+76|0;e=c[g>>2]|0;do if(dub(-1,e)|0){anb(i,f);n=0;e=U(66,c[i>>2]|0,151324)|0;q=n;n=0;if(!(q&1)?(n=0,h=U(c[(c[e>>2]|0)+28>>2]|0,e|0,32)|0,q=n,n=0,!(q&1)):0){XWa(i);e=h<<24>>24;c[g>>2]=e;o=10;break}e=ta(0)|0;P()|0;XWa(i)}else o=10;while(0);do if((o|0)==10){q=c[(c[j>>2]|0)+24>>2]|0;c[k>>2]=l;n=0;c[i>>2]=c[k>>2];e=Y(q|0,j|0,i|0,f|0,e&255|0,d|0)|0;q=n;n=0;if(q&1){e=ta(0)|0;P()|0;break}if(e|0)break b;q=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=0;da(85,q|0,c[q+16>>2]|5|0);q=n;n=0;if(!(q&1))break b;e=ta(0)|0;P()|0;break c}while(0)}while(0);sF(m);f=b;g=b;o=20;break a}while(0);sF(m)}while(0);do if((o|0)==20){pa(e|0)|0;n=0;ca(496,g+(c[(c[f>>2]|0)+-12>>2]|0)|0);q=n;n=0;if(!(q&1)){qa();break}e=sa()|0;P()|0;n=0;ba(5);q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}else Ea(e|0)}while(0);yb=p;return b|0}function Zm(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,o=0,p=0,q=0;p=yb;yb=yb+16|0;i=p+12|0;k=p+8|0;m=p;n=0;da(84,m|0,b|0);l=n;n=0;a:do if(l&1){e=ta(0)|0;P()|0;f=b;g=b;o=20}else{b:do if(a[m>>0]|0){anb(i,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);n=0;j=U(66,c[i>>2]|0,151380)|0;l=n;n=0;c:do if(l&1){e=ta(0)|0;P()|0;XWa(i)}else{XWa(i);f=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;l=c[f+24>>2]|0;g=f+76|0;e=c[g>>2]|0;do if(dub(-1,e)|0){anb(i,f);n=0;e=U(66,c[i>>2]|0,151324)|0;q=n;n=0;if(!(q&1)?(n=0,h=U(c[(c[e>>2]|0)+28>>2]|0,e|0,32)|0,q=n,n=0,!(q&1)):0){XWa(i);e=h<<24>>24;c[g>>2]=e;o=10;break}e=ta(0)|0;P()|0;XWa(i)}else o=10;while(0);do if((o|0)==10){q=c[(c[j>>2]|0)+16>>2]|0;c[k>>2]=l;n=0;c[i>>2]=c[k>>2];e=Y(q|0,j|0,i|0,f|0,e&255|0,d|0)|0;q=n;n=0;if(q&1){e=ta(0)|0;P()|0;break}if(e|0)break b;q=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=0;da(85,q|0,c[q+16>>2]|5|0);q=n;n=0;if(!(q&1))break b;e=ta(0)|0;P()|0;break c}while(0)}while(0);sF(m);f=b;g=b;o=20;break a}while(0);sF(m)}while(0);do if((o|0)==20){pa(e|0)|0;n=0;ca(496,g+(c[(c[f>>2]|0)+-12>>2]|0)|0);q=n;n=0;if(!(q&1)){qa();break}e=sa()|0;P()|0;n=0;ba(5);q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}else Ea(e|0)}while(0);yb=p;return b|0}function _m(b,d){b=b|0;d=+d;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0;p=yb;yb=yb+16|0;i=p+12|0;k=p+8|0;m=p;n=0;da(84,m|0,b|0);l=n;n=0;a:do if(l&1){e=ta(0)|0;P()|0;f=b;g=b;o=20}else{b:do if(a[m>>0]|0){anb(i,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);n=0;j=U(66,c[i>>2]|0,151380)|0;l=n;n=0;c:do if(l&1){e=ta(0)|0;P()|0;XWa(i)}else{XWa(i);f=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;l=c[f+24>>2]|0;g=f+76|0;e=c[g>>2]|0;do if(dub(-1,e)|0){anb(i,f);n=0;e=U(66,c[i>>2]|0,151324)|0;q=n;n=0;if(!(q&1)?(n=0,h=U(c[(c[e>>2]|0)+28>>2]|0,e|0,32)|0,q=n,n=0,!(q&1)):0){XWa(i);e=h<<24>>24;c[g>>2]=e;o=10;break}e=ta(0)|0;P()|0;XWa(i)}else o=10;while(0);do if((o|0)==10){q=c[(c[j>>2]|0)+32>>2]|0;c[k>>2]=l;n=0;c[i>>2]=c[k>>2];e=X(q|0,j|0,i|0,f|0,e&255|0,+d)|0;q=n;n=0;if(q&1){e=ta(0)|0;P()|0;break}if(e|0)break b;q=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=0;da(85,q|0,c[q+16>>2]|5|0);q=n;n=0;if(!(q&1))break b;e=ta(0)|0;P()|0;break c}while(0)}while(0);sF(m);f=b;g=b;o=20;break a}while(0);sF(m)}while(0);do if((o|0)==20){pa(e|0)|0;n=0;ca(496,g+(c[(c[f>>2]|0)+-12>>2]|0)|0);q=n;n=0;if(!(q&1)){qa();break}e=sa()|0;P()|0;n=0;ba(5);q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}else Ea(e|0)}while(0);yb=p;return b|0}function $m(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+32|0;p=s+20|0;t=s+8|0;r=s+4|0;l=s;c[r>>2]=b;c[l>>2]=d;r=Al(a,r)|0;c[p>>2]=d;p=pH(p,4)|0;o=r+4|0;i=c[o>>2]|0;m=(i|0)==0;a:do if(!m){j=i+-1|0;k=(i&j|0)==0;if(!k)if(p>>>0>>0)b=p;else b=(p>>>0)%(i>>>0)|0;else b=p&j;a=c[(c[r>>2]|0)+(b<<2)>>2]|0;if(a){do{a=c[a>>2]|0;if(!a)break a;e=c[a+4>>2]|0;if((e|0)!=(p|0)){if(!k){if(e>>>0>=i>>>0)e=(e>>>0)%(i>>>0)|0}else e=e&j;if((e|0)!=(b|0))break a}}while((c[a+8>>2]|0)!=(d|0));yb=s;return}}else b=0;while(0);Uja(t,r,p,l);j=r+12|0;f=+(((c[j>>2]|0)+1|0)>>>0);h=+g[r+16>>2];if(h*+(i>>>0)>>0>2){b=(i&i+-1|0)!=0&1;q=21}else{b=1;q=21}}else if(m){a=0;b=1;q=21}do if((q|0)==21){q=a|b;m=~~+I(+(f/h))>>>0;n=0;da(994,r|0,(q>>>0>>0?m:q)|0);q=n;n=0;if(q&1){a=sa()|0;P()|0;b=c[t>>2]|0;c[t>>2]=0;if(!b)Ea(a|0);RCb(b);Ea(a|0)}else{a=c[o>>2]|0;b=a+-1|0;if(!(a&b)){i=a;b=p&b;break}if(p>>>0>>0){i=a;b=p;break}i=a;b=(p>>>0)%(a>>>0)|0;break}}while(0);a=c[(c[r>>2]|0)+(b<<2)>>2]|0;if(!a){q=r+8|0;a=c[t>>2]|0;c[a>>2]=c[q>>2];e=a;c[q>>2]=e;c[(c[r>>2]|0)+(b<<2)>>2]=q;if(c[a>>2]|0){a=c[(c[a>>2]|0)+4>>2]|0;b=i+-1|0;if(i&b){if(a>>>0>=i>>>0)a=(a>>>0)%(i>>>0)|0}else a=a&b;c[(c[r>>2]|0)+(a<<2)>>2]=e}}else{r=c[t>>2]|0;c[r>>2]=c[a>>2];c[a>>2]=r}c[j>>2]=(c[j>>2]|0)+1;c[t>>2]=0;yb=s;return}function an(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0;r=yb;yb=yb+16|0;s=r+4|0;l=r;c[l>>2]=b;q=c[b>>2]|0;o=a+4|0;j=c[o>>2]|0;m=(j|0)==0;a:do if(!m){k=j+-1|0;f=(j&k|0)==0;if(!f)if(q>>>0>>0)d=q;else d=(q>>>0)%(j>>>0)|0;else d=q&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(q|0)){if(!f){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(q|0));s=b+12|0;yb=r;return s|0}}else d=0;while(0);K3(s,a,q,l);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;p=21}else{d=1;p=21}}else if(m){b=0;d=1;p=21}do if((p|0)==21){p=b|d;m=~~+I(+(h/i))>>>0;n=0;da(1141,a|0,(p>>>0>>0?m:p)|0);p=n;n=0;if(p&1){b=sa()|0;P()|0;d=c[s>>2]|0;c[s>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[o>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=q&d;break}if(q>>>0>>0){j=b;d=q;break}j=b;d=(q>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){q=a+8|0;b=c[s>>2]|0;c[b>>2]=c[q>>2];f=b;c[q>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=q;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[s>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[s>>2]=0;s=b;s=s+12|0;yb=r;return s|0}function bn(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=yb;yb=yb+64|0;i=t+52|0;s=t+40|0;v=t+24|0;p=t+20|0;q=t+16|0;u=t+4|0;r=t;if(a[b+12>>0]&1)BM(IWa(150620,115103)|0);j=IF(b)|0;k=u+4|0;l=u+8|0;h=0;a:while(1){if(h>>>0>=j>>>0){e=27;break}if(IF(b)|0){c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;D8(s,115123,Zzb(115123)|0);n=0;da(4022,b|0,s|0);o=n;n=0;if(o&1){e=8;break}Chb(s)}Emb(v);n=0;m=S(305,b|0)|0;o=n;n=0;if(o&1){e=16;break}c[p>>2]=m;n=0;o=S(301,b|0)|0;g=n;n=0;if(g&1){e=16;break}c[q>>2]=o;c[u>>2]=0;c[k>>2]=0;c[l>>2]=0;n=0;da(219,u|0,o|0);g=n;n=0;if(g&1){e=18;break}d=0;while(1){if(d>>>0>=o>>>0)break;n=0;e=S(306,b|0)|0;g=n;n=0;if(g&1){e=17;break a}a[(c[u>>2]|0)+d>>0]=e;d=d+1|0}d=c[b>>2]|0;g=c[u>>2]|0;c[r>>2]=g;e=d+112|0;f=c[e>>2]|0;if(f>>>0>=(c[d+116>>2]|0)>>>0){n=0;fa(135,d+108|0,p|0,r|0,q|0);o=n;n=0;if(o&1){e=18;break}}else{n=0;ea(113,i|0,o|0,0);o=n;n=0;if(o&1){e=18;break}n=0;fa(83,f|0,m|0,g|0,c[i>>2]|0);o=n;n=0;if(o&1){e=18;break}c[e>>2]=(c[e>>2]|0)+16}Vob(u);Nrb(v);h=h+1|0}if((e|0)==8){v=sa()|0;P()|0;Chb(s);Ea(v|0)}else if((e|0)==16){d=sa()|0;P()|0}else if((e|0)==17){d=sa()|0;P()|0;e=19}else if((e|0)==18){d=sa()|0;P()|0;e=19}else if((e|0)==27){yb=t;return}if((e|0)==19)Vob(u);Nrb(v);v=d;Ea(v|0)}function cn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0;r=yb;yb=yb+16|0;s=r+4|0;l=r;c[l>>2]=b;q=c[b>>2]|0;o=a+4|0;j=c[o>>2]|0;m=(j|0)==0;a:do if(!m){k=j+-1|0;f=(j&k|0)==0;if(!f)if(q>>>0>>0)d=q;else d=(q>>>0)%(j>>>0)|0;else d=q&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(q|0)){if(!f){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(q|0));s=b+12|0;yb=r;return s|0}}else d=0;while(0);K3(s,a,q,l);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;p=21}else{d=1;p=21}}else if(m){b=0;d=1;p=21}do if((p|0)==21){p=b|d;m=~~+I(+(h/i))>>>0;n=0;da(433,a|0,(p>>>0>>0?m:p)|0);p=n;n=0;if(p&1){b=sa()|0;P()|0;d=c[s>>2]|0;c[s>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[o>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=q&d;break}if(q>>>0>>0){j=b;d=q;break}j=b;d=(q>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){q=a+8|0;b=c[s>>2]|0;c[b>>2]=c[q>>2];f=b;c[q>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=q;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[s>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[s>>2]=0;s=b;s=s+12|0;yb=r;return s|0}function dn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0;r=yb;yb=yb+16|0;s=r+4|0;l=r;c[l>>2]=b;q=c[b>>2]|0;o=a+4|0;j=c[o>>2]|0;m=(j|0)==0;a:do if(!m){k=j+-1|0;f=(j&k|0)==0;if(!f)if(q>>>0>>0)d=q;else d=(q>>>0)%(j>>>0)|0;else d=q&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(q|0)){if(!f){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(q|0));s=b+12|0;yb=r;return s|0}}else d=0;while(0);K3(s,a,q,l);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;p=21}else{d=1;p=21}}else if(m){b=0;d=1;p=21}do if((p|0)==21){p=b|d;m=~~+I(+(h/i))>>>0;n=0;da(1408,a|0,(p>>>0>>0?m:p)|0);p=n;n=0;if(p&1){b=sa()|0;P()|0;d=c[s>>2]|0;c[s>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[o>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=q&d;break}if(q>>>0>>0){j=b;d=q;break}j=b;d=(q>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){q=a+8|0;b=c[s>>2]|0;c[b>>2]=c[q>>2];f=b;c[q>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=q;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[s>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[s>>2]=0;s=b;s=s+12|0;yb=r;return s|0}function en(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;n=c[b>>2]|0;k=b+4|0;f=c[k>>2]|0;i=((c[d>>2]|0)-n<<3)+(c[d+4>>2]|0)-f|0;d=n;if((i|0)<=0){n=e+4|0;e=c[e>>2]|0;c[a>>2]=e;e=a+4|0;a=c[n>>2]|0;c[e>>2]=a;return}if(!f){k=i;n=e;l=e+4|0}else{h=32-f|0;j=(i|0)<(h|0)?i:h;h=c[d>>2]&(-1<>>(h-j|0));l=e+4|0;n=c[l>>2]|0;f=32-n|0;g=f>>>0>>0?f:j;d=c[e>>2]|0;c[d>>2]=c[d>>2]&~(-1<>>(f-g|0));d=c[l>>2]|0;f=c[k>>2]|0;if(d>>>0>f>>>0){n=c[e>>2]|0;c[n>>2]=c[n>>2]|h<>2]|0;c[n>>2]=c[n>>2]|h>>>(f-d|0)}f=g+(c[l>>2]|0)|0;d=(c[e>>2]|0)+(f>>>5<<2)|0;c[e>>2]=d;c[l>>2]=f&31;f=j-g|0;if((f|0)>0){c[d>>2]=c[d>>2]&~(-1>>>(32-f|0));n=c[e>>2]|0;c[n>>2]=c[n>>2]|h>>>((c[k>>2]|0)+g|0);c[l>>2]=f}d=(c[b>>2]|0)+4|0;c[b>>2]=d;k=i-j|0;n=e}g=c[l>>2]|0;m=32-g|0;g=-1<-32?i:-32)+32&-32;f=k;j=d;while(1){if((f|0)<=31)break;o=c[j>>2]|0;d=c[n>>2]|0;c[d>>2]=c[d>>2]&h;d=c[n>>2]|0;c[d>>2]=c[d>>2]|o<>2];d=(c[n>>2]|0)+4|0;c[n>>2]=d;c[d>>2]=c[d>>2]&g;d=c[n>>2]|0;c[d>>2]=c[d>>2]|o>>>m;d=(c[b>>2]|0)+4|0;c[b>>2]=d;f=f+-32|0;j=d}d=k-i|0;if((d|0)<=0){n=l;o=c[e>>2]|0;c[a>>2]=o;o=a+4|0;e=c[n>>2]|0;c[o>>2]=e;return}g=c[j>>2]&-1>>>(32-d|0);h=(m|0)<(d|0)?m:d;o=c[n>>2]|0;c[o>>2]=c[o>>2]&~(-1<>2]&-1>>>(m-h|0));o=c[n>>2]|0;c[o>>2]=c[o>>2]|g<>2];o=h+(c[l>>2]|0)|0;f=(c[n>>2]|0)+(o>>>5<<2)|0;c[n>>2]=f;c[l>>2]=o&31;d=d-h|0;if((d|0)<=0){n=l;o=c[e>>2]|0;c[a>>2]=o;o=a+4|0;e=c[n>>2]|0;c[o>>2]=e;return}c[f>>2]=c[f>>2]&~(-1>>>(32-d|0));n=c[n>>2]|0;c[n>>2]=c[n>>2]|g>>>h;c[l>>2]=d;n=l;o=c[e>>2]|0;c[a>>2]=o;o=a+4|0;e=c[n>>2]|0;c[o>>2]=e;return}function fn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0;r=yb;yb=yb+16|0;s=r+4|0;l=r;c[l>>2]=b;q=c[b>>2]|0;o=a+4|0;j=c[o>>2]|0;m=(j|0)==0;a:do if(!m){k=j+-1|0;f=(j&k|0)==0;if(!f)if(q>>>0>>0)d=q;else d=(q>>>0)%(j>>>0)|0;else d=q&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b){do{b=c[b>>2]|0;if(!b)break a;e=c[b+4>>2]|0;if((e|0)!=(q|0)){if(!f){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&k;if((e|0)!=(d|0))break a}}while((c[b+8>>2]|0)!=(q|0));s=b+12|0;yb=r;return s|0}}else d=0;while(0);K3(s,a,q,l);k=a+12|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+16>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)!=0&1;p=21}else{d=1;p=21}}else if(m){b=0;d=1;p=21}do if((p|0)==21){p=b|d;m=~~+I(+(h/i))>>>0;n=0;da(1410,a|0,(p>>>0>>0?m:p)|0);p=n;n=0;if(p&1){b=sa()|0;P()|0;d=c[s>>2]|0;c[s>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else{b=c[o>>2]|0;d=b+-1|0;if(!(b&d)){j=b;d=q&d;break}if(q>>>0>>0){j=b;d=q;break}j=b;d=(q>>>0)%(b>>>0)|0;break}}while(0);b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b){q=a+8|0;b=c[s>>2]|0;c[b>>2]=c[q>>2];f=b;c[q>>2]=f;c[(c[a>>2]|0)+(d<<2)>>2]=q;if(c[b>>2]|0){d=c[(c[b>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=f}}else{a=c[s>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=a;b=a}c[k>>2]=(c[k>>2]|0)+1;c[s>>2]=0;s=b;s=s+12|0;yb=r;return s|0}function gn(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;u=yb;yb=yb+128|0;s=u+96|0;n=u+72|0;o=u+48|0;r=u+24|0;t=u;switch(d|0){case 42:{l=24;k=19;j=17;break}case 44:{l=22;k=19;j=17;break}case 46:{l=20;k=23;j=21;break}case 48:{l=18;k=23;j=21;break}default:Ta()}q=b+44|0;m=c[q>>2]|0;d=Mcb(g)|0;d=T3a(c[m>>2]|0,d,1)|0;b=c[q>>2]|0;p=Mcb(i)|0;p=T3a(c[b>>2]|0,p,1)|0;p=hIa(c[m>>2]|0,j,d,p)|0;j=c[q>>2]|0;g=Mcb(g)|0;g=T3a(c[j>>2]|0,g,1)|0;d=c[q>>2]|0;m=Mcb(i)|0;m=T3a(c[d>>2]|0,m,1)|0;m=hIa(c[j>>2]|0,k,g,m)|0;g=c[q>>2]|0;k=Mcb(f)|0;k=T3a(c[g>>2]|0,k,1)|0;i=c[q>>2]|0;j=Mcb(h)|0;j=T3a(c[i>>2]|0,j,1)|0;j=hIa(c[g>>2]|0,l,k,j)|0;k=c[q>>2]|0;Bqb(n,0);l=s;g=n;i=l+24|0;do{a[l>>0]=a[g>>0]|0;l=l+1|0;g=g+1|0}while((l|0)<(i|0));b=D7(k,s)|0;d=c[q>>2]|0;Bqb(o,1);l=s;g=o;i=l+24|0;do{a[l>>0]=a[g>>0]|0;l=l+1|0;g=g+1|0}while((l|0)<(i|0));d=D7(d,s)|0;b=zOa(c[k>>2]|0,j,b,d)|0;d=c[q>>2]|0;Bqb(r,0);l=s;g=r;i=l+24|0;do{a[l>>0]=a[g>>0]|0;l=l+1|0;g=g+1|0}while((l|0)<(i|0));l=D7(d,s)|0;b=zOa(c[d>>2]|0,m,b,l)|0;d=c[q>>2]|0;Bqb(t,1);l=s;g=t;i=l+24|0;do{a[l>>0]=a[g>>0]|0;l=l+1|0;g=g+1|0}while((l|0)<(i|0));t=D7(d,s)|0;t=zOa(c[d>>2]|0,p,t,b)|0;e=Uha(c[q>>2]|0,e,t)|0;yb=u;return e|0}function hn(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=yb;yb=yb+112|0;m=s+100|0;u=s+68|0;k=s+64|0;t=s+40|0;p=s+32|0;q=s+8|0;r=s;c[m>>2]=b;uda(s+96|0,a);gfb(u,a);n=0;da(238,u|0,b|0);j=n;n=0;do if(j&1){b=sa()|0;P()|0}else{g=a+24|0;h=a+20|0;i=a+8|0;j=u+4|0;f=0;a:while(1){if(f>>>0>=(c[g>>2]|0)>>>0)break;b=(c[h>>2]|0)+f|0;b=c[(c[(c[i>>2]|0)+(b>>>10<<2)>>2]|0)+((b&1023)<<2)>>2]|0;c[k>>2]=b;b:do if(pdb(j,b)|0){e=WCb(c[b+16>>2]|0)|0;d=Ryb(b)|0;b=e;while(1){e=b;if((d|0)==(e|0))break b;n=0;da(239,(c[b+8>>2]|0)+24|0,k|0);b=n;n=0;if(b&1){l=5;break a}b=c[e+4>>2]|0}}while(0);f=f+1|0}if((l|0)==5){b=sa()|0;P()|0;break}w0a(t);b=WCb(c[u+20>>2]|0)|0;d=Ryb(j)|0;while(1){e=b;if((d|0)==(e|0)){l=18;break}c[p>>2]=c[b+8>>2];n=0;da(239,t|0,p|0);l=n;n=0;if(l&1){l=17;break}b=c[e+4>>2]|0}if((l|0)==17){b=sa()|0;P()|0}else if((l|0)==18){w0a(q);n=0;da(239,q|0,m|0);p=n;n=0;do if(!(p&1)?(Cmb(r,a),n=0,o=V(58,r|0,t|0,q|0)|0,r=n,n=0,!(r&1)):0){c[a+52>>2]=o;if(!o){n=0;fa(75,73152,72707,1450,73157);n=0;break}else{SZa(q);SZa(t);Xpb(u);yb=s;return}}while(0);b=sa()|0;P()|0;SZa(q)}SZa(t);t=b;Xpb(u);Ea(t|0)}while(0);t=b;Xpb(u);Ea(t|0)}function jn(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,o=0,p=0,q=0,r=0;p=yb;yb=yb+16|0;m=p;l=d+4|0;o=b+132|0;if(((c[l>>2]|0)-(c[d>>2]|0)>>2|0)!=(c[o>>2]|0))ma(76024,75526,319,76052);j=c[b+60>>2]|0;i=c[b+56>>2]|0;while(1){if((i|0)==(j|0))break;h=c[i>>2]|0;k=c[h+28>>2]|0;h=c[h+24>>2]|0;while(1){if((h|0)==(k|0))break;e=c[h>>2]|0;do if(!(bCb(e)|0)){if(OBb(e)|0){e=h+8|0;f=Keb(c[c[e>>2]>>2]|0)|0;g=f+8|0;q=c[(c[d>>2]|0)+(c[g>>2]<<2)>>2]|0;c[g>>2]=q;g=c[f+12>>2]|0;r=jqb(g)|0;if(r|0?(c[r+8>>2]|0)==(q|0):0){xea(h);break}if((a[h+12>>0]&1)==0?(c[c[e>>2]>>2]=g,!(eCb(c[f+4>>2]|0)|0)):0){r=knb(f)|0;c[r+8>>2]=c[c[e>>2]>>2];c[c[e>>2]>>2]=r}}}else{r=(Leb(c[c[h+8>>2]>>2]|0)|0)+8|0;c[r>>2]=c[(c[d>>2]|0)+(c[r>>2]<<2)>>2]}while(0);h=h+16|0}i=i+4|0}i=b+32|0;h=c[i>>2]|0;b=uob(WCb(h)|0)|0;g=c[l>>2]|0;e=0;f=c[d>>2]|0;while(1){if((f|0)==(g|0))break;r=(c[f>>2]|0)+1|0;e=e>>>0>>0?r:e;f=f+4|0}D$(m,h+28|0);r=c[i>>2]|0;WCb(r)|0;n=0;da(553,r+28|0,e-b|0);r=n;n=0;if(r&1){r=sa()|0;P()|0;Vob(m);Ea(r|0)}f=c[m>>2]|0;e=b;while(1){if(e>>>0>=(c[o>>2]|0)>>>0)break;g=c[(c[d>>2]|0)+(e<<2)>>2]|0;if(g>>>0>=b>>>0){q=c[f+(e-b<<2)>>2]|0;r=c[i>>2]|0;WCb(r)|0;c[(c[r+28>>2]|0)+(g-b<<2)>>2]=q}e=e+1|0}r=c[i>>2]|0;WCb(r)|0;Bna(r+52|0);r=c[i>>2]|0;WCb(r)|0;Ama(r+64|0);Vob(m);yb=p;return}function kn(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,o=0,p=0,q=0,r=0,s=0,t=0;q=yb;yb=yb+32|0;f=q+16|0;k=q+24|0;r=q;l=b+16|0;if(!(c[l>>2]|0)){yb=q;return}p=b+20|0;m=b+36|0;o=b+44|0;g=b+120|0;h=b+24|0;i=b+24|0;j=b+28|0;b=b+32|0;d=c[p>>2]|0;a:while(1){if(!d){b=18;break}e=c[m>>2]|0;if(d>>>0>e>>>0){b=18;break}if(d>>>0>>0){IWa(150620,115545)|0;Mpb(150620+(c[(c[37655]|0)+-12>>2]|0)|0);e=Ym(150620,c[p>>2]|0)|0;Npb(150620+(c[(c[37655]|0)+-12>>2]|0)|0);BM(e)}cAa(o);if(c[g>>2]|0)pF(f,o,h,h);sv(c[l>>2]|0,k);switch(a[k>>0]|0){case 34:{b=10;break a}case 44:break;default:{b=11;break a}}d=Qn(c[l>>2]|0)|0;d=(c[p>>2]|0)+d|0;t=Qn(c[l>>2]|0)|0;t=(c[i>>2]|0)+t|0;s=Qn(c[l>>2]|0)|0;s=(c[j>>2]|0)+s|0;e=Qn(c[l>>2]|0)|0;e=(c[b>>2]|0)+e|0;c[p>>2]=d;c[i>>2]=t;c[j>>2]=s;c[b>>2]=e}if((b|0)==10){c[p>>2]=0;yb=q;return}else if((b|0)==11){e=oa(12)|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;t=Zzb(115581)|0;n=0;ea(95,r|0,115581,t|0);t=n;n=0;if(!(t&1)){n=0;da(4023,e|0,r|0);t=n;n=0;if(t&1)d=1;else{n=0;ea(122,e|0,37736,556);n=0;d=0}b=sa()|0;P()|0;Chb(r);if(!d){t=b;Ea(t|0)}}else{b=sa()|0;P()|0}va(e|0);t=b;Ea(t|0)}else if((b|0)==18){yb=q;return}}function ln(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;f=c[b>>2]|0;n=b+4|0;g=c[n>>2]|0;h=g;e=f;while(1){if((e|0)==(h|0))break;if(dub(c[e>>2]|0,c[e+4>>2]|0)|0){o=4;break}e=e+16|0}if((o|0)==4)ma(78050,77745,626,78081);e=g-f|0;m=e>>4;if(!e)if(Ejb(a)|0)return;else ma(78087,77745,631,78081);qbb(a);if((e|0)==16){e=c[b>>2]|0;if((e|0)==(d|0))return;xz(d,c[e>>2]|0,c[e+4>>2]|0);return}k=a+116|0;l=Icb(c[k>>2]|0)|0;j=0;e=0;while(1){if((j|0)==(l|0))break;a:do if(Ppb(jka(c[k>>2]|0,j)|0)|0){g=c[b>>2]|0;i=c[n>>2]|0;f=g;while(1){if((i|0)==(f|0))break;h=c[(c[f>>2]|0)+(j<<2)>>2]|0;if(PBb(c[h>>2]|0)|0){o=19;break}f=f+16|0}if((o|0)==19){o=0;c[(c[d>>2]|0)+(j<<2)>>2]=h;break}f=0;while(1){if((i|0)==(g|0))break a;h=c[(c[g>>2]|0)+(j<<2)>>2]|0;if(f){if((h|0)!=(f|0))break}else{c[(c[d>>2]|0)+(j<<2)>>2]=h;f=h}g=g+16|0}b:do if(!e){e=Dmb()|0;h=iL(a,e)|0;g=0;while(1){if((g|0)==(m|0))break b;f=c[(c[b>>2]|0)+(g<<4)+12>>2]|0;if(!(PBb(c[f>>2]|0)|0)){f=bLa(h,g,f)|0;iL(a,f)|0}ufa(h,f);g=g+1|0}}while(0);g=iL(a,d0a(e,j)|0)|0;h=c[n>>2]|0;f=c[b>>2]|0;while(1){if((f|0)==(h|0))break;ufa(g,sma(a,c[(c[f>>2]|0)+(j<<2)>>2]|0,0)|0);f=f+16|0}c[(c[d>>2]|0)+(j<<2)>>2]=g}while(0);j=j+1|0}return}function mn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=yb;yb=yb+48|0;i=l+36|0;j=l+24|0;m=l+12|0;k=l;h=ac(b,d,f)|0;a:do if((h|0)!=(b|0)?(g=f+4|0,(c[f>>2]|0)!=(c[g>>2]|0)):0){CM(m,e,139929);n=0;da(4196,k|0,(c[g>>2]|0)+-24|0);f=n;n=0;if(f&1){b=sa()|0;P()|0}else{f=a[k+11>>0]|0;e=f<<24>>24<0;n=0;V(124,m|0,(e?c[k>>2]|0:k)|0,(e?c[k+4>>2]|0:f&255)|0)|0;f=n;n=0;do if(f&1){b=sa()|0;P()|0}else{c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,j|0,139927)|0;f=n;n=0;if(f&1){b=sa()|0;P()|0;Chb(j);break}c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];b=0;while(1){if((b|0)==3)break;c[j+(b<<2)>>2]=0;b=b+1|0}b=c[g>>2]|0;e=b+-24|0;d=e+11|0;if((a[d>>0]|0)<0){Fsb(c[e>>2]|0,0);c[b+-20>>2]=0;b=e}else{Fsb(e,0);a[d>>0]=0;b=e}Yw(e);c[b>>2]=c[i>>2];c[b+4>>2]=c[i+4>>2];c[b+8>>2]=c[i+8>>2];b=0;while(1){if((b|0)==3)break;c[i+(b<<2)>>2]=0;b=b+1|0}Chb(i);Chb(j);Chb(k);Chb(m);b=h;break a}while(0);Chb(k)}Chb(m);Ea(b|0)}while(0);yb=l;return b|0}function nn(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;i=yb;yb=yb+96|0;f=i+68|0;k=i+56|0;j=i+12|0;e=i;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;h=b+24|0;bma(k,h);n=0;ca(520,b|0);l=n;n=0;do if(l&1){a=sa()|0;P()|0}else{a=a+8|0;while(1){a=c[a>>2]|0;if(!a)break;n=0;da(216,b|0,c[a+8>>2]|0);l=n;n=0;if(l&1){g=6;break}}if((g|0)==6){a=sa()|0;P()|0;break}l=d+20|0;c[f>>2]=c[l>>2];c[f+4>>2]=c[l+4>>2];c[f+8>>2]=c[l+8>>2];c[f+12>>2]=c[l+12>>2];c[f+16>>2]=c[l+16>>2];ofa(j,b,f);Lvb(j);pub(j);c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;l=Zzb(92600)|0;n=0;ea(95,e|0,92600,l|0);l=n;n=0;do if(!(l&1)){n=0;da(68,j|0,e|0);l=n;n=0;if(l&1){a=sa()|0;P()|0;Chb(e);break}Chb(e);n=0;ca(521,j|0);l=n;n=0;if(!(l&1)?(n=0,ca(489,j|0),l=n,n=0,!(l&1)):0){d=c[b+28>>2]|0;a=c[h>>2]|0;while(1){if((a|0)==(d|0))break;c[a>>2]=0;a=a+4|0}bma(k,h);n=0;ca(520,b|0);l=n;n=0;if(!(l&1)){osa(j);l0a(k);yb=i;return}else g=16}else g=16}else g=16;while(0);if((g|0)==16){a=sa()|0;P()|0}osa(j);l=a;l0a(k);Ea(l|0)}while(0);l=a;l0a(k);Ea(l|0)}function on(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,o=0,p=0;o=yb;yb=yb+304|0;j=o+288|0;k=o+196|0;l=o+96|0;m=o;h=iqb(c[d>>2]|0)|0;i=(h|0)==0;do if(!i?(e=b+44|0,f=Mba(e,h+8|0)|0,(f|0)!=(b+48|0)):0){g=Keb(c[c[f+20>>2]>>2]|0)|0;if(eCb(c[g+4>>2]|0)|0)ma(104569,104084,300,104588);else{p=c[g+12>>2]|0;g=knb(g)|0;c[g+8>>2]=p;dmb(g);JN(e,f)|0;a[b+92>>0]=1;break}}while(0);g=b+40|0;VA(k,pob(c[g>>2]|0)|0,0);n=0;e=U(154,k|0,c[d>>2]|0)|0;p=n;n=0;do if(!(p&1)){if(e?(n=0,da(3143,b|0,k|0),p=n,n=0,p&1):0)break;if(i){Fha(k);yb=o;return}if(!(Zza(b,h)|0)){Fha(k);yb=o;return}f=c[h+8>>2]|0;e=b+44|0;if(Jga(e,f)|0){n=0;fa(75,104598,104084,317,104588);n=0;break}p=pob(c[g>>2]|0)|0;n=0;ea(177,m|0,d|0,p|0);p=n;n=0;if(!(p&1)){c[l>>2]=f;kbb(l+4|0,m);n=0;fa(124,j|0,e|0,c[l>>2]|0,l|0);p=n;n=0;if(p&1){p=sa()|0;P()|0;Ogb(l);gob(m);Fha(k);Ea(p|0)}else{Ogb(l);gob(m);Fha(k);yb=o;return}}}while(0);p=sa()|0;P()|0;Fha(k);Ea(p|0)}function pn(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,o=0,p=0;o=yb;yb=yb+304|0;j=o+288|0;k=o+196|0;l=o+96|0;m=o;h=iqb(c[d>>2]|0)|0;i=(h|0)==0;do if(!i?(e=b+44|0,f=Mba(e,h+8|0)|0,(f|0)!=(b+48|0)):0){g=Keb(c[c[f+20>>2]>>2]|0)|0;if(eCb(c[g+4>>2]|0)|0)ma(104569,104084,300,104588);else{p=c[g+12>>2]|0;g=knb(g)|0;c[g+8>>2]=p;dmb(g);JN(e,f)|0;a[b+92>>0]=1;break}}while(0);g=b+40|0;VA(k,pob(c[g>>2]|0)|0,0);n=0;e=U(154,k|0,c[d>>2]|0)|0;p=n;n=0;do if(!(p&1)){if(e?(n=0,da(3417,b|0,k|0),p=n,n=0,p&1):0)break;if(i){Fha(k);yb=o;return}if(!(Zza(b,h)|0)){Fha(k);yb=o;return}f=c[h+8>>2]|0;e=b+44|0;if(Jga(e,f)|0){n=0;fa(75,104598,104084,317,104588);n=0;break}p=pob(c[g>>2]|0)|0;n=0;ea(179,m|0,d|0,p|0);p=n;n=0;if(!(p&1)){c[l>>2]=f;kbb(l+4|0,m);n=0;fa(126,j|0,e|0,c[l>>2]|0,l|0);p=n;n=0;if(p&1){p=sa()|0;P()|0;Ogb(l);gob(m);Fha(k);Ea(p|0)}else{Ogb(l);gob(m);Fha(k);yb=o;return}}}while(0);p=sa()|0;P()|0;Fha(k);Ea(p|0)}function qn(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,o=0,p=0;o=yb;yb=yb+304|0;j=o+288|0;k=o+196|0;l=o+96|0;m=o;h=iqb(c[d>>2]|0)|0;i=(h|0)==0;do if(!i?(e=b+44|0,f=Mba(e,h+8|0)|0,(f|0)!=(b+48|0)):0){g=Keb(c[c[f+20>>2]>>2]|0)|0;if(eCb(c[g+4>>2]|0)|0)ma(104569,104084,300,104588);else{p=c[g+12>>2]|0;g=knb(g)|0;c[g+8>>2]=p;dmb(g);JN(e,f)|0;a[b+92>>0]=1;break}}while(0);g=b+40|0;VA(k,pob(c[g>>2]|0)|0,0);n=0;e=U(154,k|0,c[d>>2]|0)|0;p=n;n=0;do if(!(p&1)){if(e?(n=0,da(3298,b|0,k|0),p=n,n=0,p&1):0)break;if(i){Fha(k);yb=o;return}if(!(GQa(b,h)|0)){Fha(k);yb=o;return}f=c[h+8>>2]|0;e=b+44|0;if(Jga(e,f)|0){n=0;fa(75,104598,104084,317,104588);n=0;break}p=pob(c[g>>2]|0)|0;n=0;ea(178,m|0,d|0,p|0);p=n;n=0;if(!(p&1)){c[l>>2]=f;kbb(l+4|0,m);n=0;fa(125,j|0,e|0,c[l>>2]|0,l|0);p=n;n=0;if(p&1){p=sa()|0;P()|0;Ogb(l);gob(m);Fha(k);Ea(p|0)}else{Ogb(l);gob(m);Fha(k);yb=o;return}}}while(0);p=sa()|0;P()|0;Fha(k);Ea(p|0)}function rn(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,o=0,p=0;o=yb;yb=yb+304|0;j=o+288|0;k=o+196|0;l=o+96|0;m=o;h=iqb(c[d>>2]|0)|0;i=(h|0)==0;do if(!i?(e=b+44|0,f=Mba(e,h+8|0)|0,(f|0)!=(b+48|0)):0){g=Keb(c[c[f+20>>2]>>2]|0)|0;if(eCb(c[g+4>>2]|0)|0)ma(104569,104084,300,104588);else{p=c[g+12>>2]|0;g=knb(g)|0;c[g+8>>2]=p;dmb(g);JN(e,f)|0;a[b+92>>0]=1;break}}while(0);g=b+40|0;VA(k,pob(c[g>>2]|0)|0,0);n=0;e=U(154,k|0,c[d>>2]|0)|0;p=n;n=0;do if(!(p&1)){if(e?(n=0,da(3536,b|0,k|0),p=n,n=0,p&1):0)break;if(i){Fha(k);yb=o;return}if(!(GQa(b,h)|0)){Fha(k);yb=o;return}f=c[h+8>>2]|0;e=b+44|0;if(Jga(e,f)|0){n=0;fa(75,104598,104084,317,104588);n=0;break}p=pob(c[g>>2]|0)|0;n=0;ea(180,m|0,d|0,p|0);p=n;n=0;if(!(p&1)){c[l>>2]=f;kbb(l+4|0,m);n=0;fa(127,j|0,e|0,c[l>>2]|0,l|0);p=n;n=0;if(p&1){p=sa()|0;P()|0;Ogb(l);gob(m);Fha(k);Ea(p|0)}else{Ogb(l);gob(m);Fha(k);yb=o;return}}}while(0);p=sa()|0;P()|0;Fha(k);Ea(p|0)}function sn(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;s=yb;yb=yb+16|0;n=s+8|0;q=s;k=b+8|0;if(!(eCb(c[k>>2]|0)|0)){r=b+8|0;rW(a,r);yb=s;return}if((WCb(c[b+16>>2]|0)|0)!=1){r=b+8|0;rW(a,r);yb=s;return}l=uXa(b+12|0,0)|0;l=Rqb(c[l>>2]|0)|0;if(!l){r=b+8|0;rW(a,r);yb=s;return}if(!(eCb(c[l+8>>2]|0)|0)){r=b+8|0;rW(a,r);yb=s;return}m=l+4|0;if((c[m>>2]|0)!=(c[b+4>>2]|0)){r=b+8|0;rW(a,r);yb=s;return}d=n4(a+44|0,b+8|0)|0;o=d+4|0;i=n+4|0;j=q+4|0;p=l+8|0;d=c[d>>2]|0;while(1){if((o|0)==(d|0))break;e=c[d+16>>2]|0;f=Qqb(e)|0;if(!f){g=Jqb(e)|0;if(!g){r=19;break}e=g+8|0;nrb(n,e);Hib(q,e);e=c[q>>2]|0;f=c[j>>2]|0;while(1){if(!(dhb(c[n>>2]|0,c[i>>2]|0,e,f)|0))break;h=Qab(n)|0;if(dub(c[h>>2]|0,c[k>>2]|0)|0)c[h>>2]=c[p>>2];hob(n)}if(dub(c[g+24>>2]|0,c[k>>2]|0)|0)c[g+24>>2]=c[p>>2]}else if(dub(c[f+8>>2]|0,c[k>>2]|0)|0)c[f+8>>2]=c[p>>2];e=d;d=c[e+4>>2]|0;a:do if(!d)while(1){d=c[e+8>>2]|0;if((e|0)==(c[d>>2]|0))break a;e=d}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0)}if((r|0)==19)ma(141129,102017,72,126937);uZa(l,c[m>>2]|0);Pwb(c[a+16>>2]|0,l);r=b+8|0;rW(a,r);yb=s;return}function tn(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,o=0;m=yb;yb=yb+16|0;h=m;i=a+8|0;j=a+4|0;k=(c[i>>2]|0)-(c[j>>2]|0)>>2;g=((k*25|0)>>>0)/100|0;f=((k*50|0)>>>0)/100|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;n=0;da(614,h|0,f|0);e=n;n=0;if(e&1){m=sa()|0;P()|0;xBa(h);Ea(m|0)}b=0;while(1){if(b>>>0>=f>>>0)break;o=c[a>>2]|0;e=Nka(a)|0;e=c[(c[j>>2]|0)+(e<<2)>>2]|0;d=Nka(a)|0;n=0;d=V(63,o|0,e|0,c[(c[j>>2]|0)+(d<<2)>>2]|0)|0;e=n;n=0;if(e&1){l=19;break}o=(c[h>>2]|0)+(b<<2)|0;e=c[o>>2]|0;c[o>>2]=d;if(e|0){Htb(e);RCb(e)}b=b+1|0}if((l|0)==19){o=sa()|0;P()|0;xBa(h);Ea(o|0)}b=0;while(1){if(b>>>0>=f>>>0)break;d=(c[j>>2]|0)+(g+b<<2)|0;o=(c[h>>2]|0)+(b<<2)|0;e=c[d>>2]|0;c[d>>2]=c[o>>2];c[o>>2]=e;b=b+1|0}b=g+f|0;while(1){if(b>>>0>=k>>>0){l=17;break}n=0;d=S(272,c[a>>2]|0)|0;o=n;n=0;if(o&1)break;o=(c[j>>2]|0)+(b<<2)|0;e=c[o>>2]|0;c[o>>2]=d;if(e|0){Htb(e);RCb(e)}b=b+1|0}if((l|0)==17){Hla(c[j>>2]|0,c[i>>2]|0);xBa(h);yb=m;return}o=sa()|0;P()|0;xBa(h);Ea(o|0)}function un(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;switch(a|0){case 0:{a=ysb(0.0)|0;return a|0}case 1:{a=D5(c[37232]|0,ysb(0.0)|0)|0;return a|0}case 2:if(bCb(0)|0){a=c[37223]|0;a=c1(a,ysb(0.0)|0)|0;return a|0}else{a=dWa(0)|0;return a|0}case 3:{d=c[37227]|0;b=ysb(0.0)|0;a=ysb(0.0)|0;a=WK(d,b,a,ysb(0.0)|0,ysb(0.0)|0)|0;return a|0}case 4:{d=c[37228]|0;d=SP(d,ysb(0.0)|0,ysb(0.0)|0)|0;return d|0}case 5:{p=c[37229]|0;o=ysb(0.0)|0;n=ysb(0.0)|0;m=ysb(0.0)|0;l=ysb(0.0)|0;k=ysb(0.0)|0;j=ysb(0.0)|0;i=ysb(0.0)|0;h=ysb(0.0)|0;g=ysb(0.0)|0;f=ysb(0.0)|0;e=ysb(0.0)|0;a=ysb(0.0)|0;b=ysb(0.0)|0;d=ysb(0.0)|0;d=jx(p,o,n,m,l,k,j,i,h,g,f,e,a,b,d,ysb(0.0)|0,ysb(0.0)|0)|0;return d|0}case 6:{j=c[37230]|0;k=ysb(0.0)|0;l=ysb(0.0)|0;m=ysb(0.0)|0;n=ysb(0.0)|0;o=ysb(0.0)|0;p=ysb(0.0)|0;p=fF(j,k,l,m,n,o,p,ysb(0.0)|0,ysb(0.0)|0)|0;return p|0}case 7:{n=c[37231]|0;o=ysb(0.0)|0;p=ysb(0.0)|0;p=WK(n,o,p,ysb(0.0)|0,ysb(0.0)|0)|0;return p|0}default:ma(133516,74257,216,74312)}return 0}function vn(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,o=0,p=0;m=yb;yb=yb+32|0;o=m+20|0;l=m+16|0;j=m+12|0;p=m;k=ngb(c[b+4>>2]|0)|0;c[k+4>>2]=f;i=k+12|0;a[i>>0]=g;do if(!(Uba(h,125111,3)|0))c[k+8>>2]=0;else{if(!(Uba(h,125115,3)|0)){c[k+8>>2]=2;break}if(!(Uba(h,125119,2)|0)){c[k+8>>2]=3;break}if(!(Uba(h,125122,3)|0)){c[k+8>>2]=1;break}if(!(Uba(h,125126,3)|0)){c[k+8>>2]=4;break}if(!(Uba(h,125130,4)|0)){c[k+8>>2]=5;break}g=oa(20)|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;p=Zzb(125135)|0;n=0;ea(95,o|0,125135,p|0);p=n;n=0;if(!(p&1)){n=0;da(330,g|0,o|0);p=n;n=0;if(p&1)i=1;else{n=0;ea(122,g|0,31856,511);n=0;i=0}f=sa()|0;P()|0;Chb(o);if(!i){p=f;Ea(p|0)}}else{f=sa()|0;P()|0}va(g|0);p=f;Ea(p|0)}while(0);hCb(l);j6a(j,d[i>>0]|0,0);f=kh(e,k+16|0,l,c[j>>2]|0)|0;o=WCb(c[l>>2]|0)|0;if((o|0)==(d[i>>0]|0|0)){p=$db(b,Vr(e,f)|0)|0;c[k+20>>2]=p;p=$db(b,Vr(e,f+1|0)|0)|0;c[k+24>>2]=p;I5a(k);yb=m;return k|0}g=oa(20)|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;o=Zzb(125159)|0;n=0;ea(95,p|0,125159,o|0);o=n;n=0;if(!(o&1)){n=0;da(330,g|0,p|0);o=n;n=0;if(o&1)i=1;else{n=0;ea(122,g|0,31856,511);n=0;i=0}f=sa()|0;P()|0;Chb(p);if(!i){p=f;Ea(p|0)}}else{f=sa()|0;P()|0}va(g|0);p=f;Ea(p|0);return 0}function wn(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,o=0;o=yb;yb=yb+32|0;e=o+24|0;k=o+12|0;l=o;m=b+12|0;if(a[m>>0]&1)BM(IWa(150620,115342)|0);a[b+196>>0]=0;f=b+188|0;g=b+192|0;h=b+184|0;do{d=rc(b,e)|0;i=c[e>>2]|0;if(!i){j=5;break}d=c[f>>2]|0;if((d|0)==(c[g>>2]|0))_M(h,e);else{c[d>>2]=i;c[f>>2]=(c[f>>2]|0)+4}}while((c[(c[e>>2]|0)+4>>2]|0)!=6);if((j|0)==5){c[b+200>>2]=d;if(!(a[m>>0]&1)){yb=o;return}BM(IWa(150620,115364)|0);yb=o;return}g=b+36|0;d=c[g>>2]|0;do if((d|0)==(c[b+124>>2]|0)){c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;D8(k,115395,Zzb(115395)|0);n=0;da(4022,b|0,k|0);j=n;n=0;if(!(j&1)){Chb(k);d=c[g>>2]|0;break}o=sa()|0;P()|0;Chb(k);Ea(o|0)}while(0);f=b+8|0;e=c[f>>2]|0;do if(!(Hjb(e,d)|0)){c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;D8(l,114315,Zzb(114315)|0);n=0;da(4022,b|0,l|0);k=n;n=0;if(!(k&1)){Chb(l);e=c[f>>2]|0;d=c[g>>2]|0;break}o=sa()|0;P()|0;Chb(l);Ea(o|0)}while(0);d=a[(c[e>>2]|0)+d>>0]|0;switch(d<<24>>24){case 5:case 11:break;default:{fs(b);yb=o;return}}if(a[m>>0]&1)BM(IWa(150620,115442)|0);kn(b);c[b+200>>2]=d<<24>>24;c[g>>2]=(c[g>>2]|0)+1;yb=o;return}function xn(a,b){a=a|0;b=b|0;var c=0;a:do switch(a|0){case 1:do switch(b|0){case 1:{c=0;break a}case 2:{c=1;break a}case 3:{c=2;break a}case 4:{c=4;break a}case 5:{c=3;break a}case 7:{c=6;break a}case 8:{c=5;break a}case 9:{c=10;break a}case 10:{c=11;break a}case 11:{c=12;break a}case 12:{c=7;break a}case 13:{c=8;break a}case 14:{c=9;break a}case 15:{c=15;break a}case 16:{c=16;break a}default:{c=152;break a}}while(0);case 2:do switch(b|0){case 1:{c=25;break a}case 2:{c=26;break a}case 3:{c=27;break a}case 4:{c=29;break a}case 5:{c=28;break a}case 7:{c=31;break a}case 8:{c=30;break a}case 9:{c=35;break a}case 10:{c=36;break a}case 11:{c=37;break a}case 12:{c=32;break a}case 13:{c=33;break a}case 14:{c=34;break a}case 15:{c=40;break a}case 16:{c=41;break a}default:{c=152;break a}}while(0);case 3:switch(b|0){case 1:{c=50;break a}case 2:{c=51;break a}case 3:{c=52;break a}case 4:{c=53;break a}case 5:{c=53;break a}case 15:{c=57;break a}case 16:{c=58;break a}default:{c=152;break a}}case 4:switch(b|0){case 1:{c=63;break a}case 2:{c=64;break a}case 3:{c=65;break a}case 4:{c=66;break a}case 5:{c=66;break a}case 15:{c=70;break a}case 16:{c=71;break a}default:{c=152;break a}}case 5:{ma(84722,77852,148,77879);break}case 6:case 0:{c=152;break}default:ma(141129,77852,156,77879)}while(0);return c|0}function yn(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,o=0,p=0,q=0,r=0;q=yb;yb=yb+48|0;i=q+40|0;o=q+28|0;k=q+24|0;p=q+12|0;r=q;m=b+12|0;if(a[m>>0]&1)BM(IWa(150620,117236)|0);j=IF(b)|0;if(a[m>>0]&1)BM(Ym(IWa(150620,117251)|0,j)|0);h=0;while(1){if(h>>>0>=j>>>0){e=24;break}if(a[m>>0]&1)BM(IWa(150620,117257)|0);e=oH(b)|0;f=IF(b)|0;if(f>>>0>1){c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;D8(o,117266,Zzb(117266)|0);n=0;da(4022,b|0,o|0);l=n;n=0;if(l&1){e=12;break}Chb(o)}g=HF(b)|0;l=c[b>>2]|0;f5(r,h);n=0;U(77,r|0,117299)|0;d=n;n=0;if(d&1){e=21;break}c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];c[p+8>>2]=c[r+8>>2];d=0;while(1){if((d|0)==3)break;c[r+(d<<2)>>2]=0;d=d+1|0}n=0;da(230,k|0,p|0);d=n;n=0;if(d&1){e=22;break}n=0;c[i>>2]=c[k>>2];d=W(37,i|0,e|0,g|0,(f|0)==0|0)|0;g=n;n=0;if(g&1){e=22;break}n=0;da(3025,l|0,d|0);l=n;n=0;if(l&1){e=22;break}Chb(p);Chb(r);h=h+1|0}if((e|0)==12){r=sa()|0;P()|0;Chb(o);Ea(r|0)}else if((e|0)==21){d=sa()|0;P()|0}else if((e|0)==22){d=sa()|0;P()|0;Chb(p)}else if((e|0)==24){yb=q;return}Chb(r);r=d;Ea(r|0)}function zn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,h=0.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=yb;yb=yb+16|0;d=t;r=b+8|0;c[d>>2]=c[r>>2];d=pH(d,4)|0;j=b+4|0;c[j>>2]=d;i=a+4|0;e=c[i>>2]|0;s=a+12|0;f=+(((c[s>>2]|0)+1|0)>>>0);h=+g[a+16>>2];if(h*+(e>>>0)>>0>2){e=(e&e+-1|0)!=0&1;k=5}else{e=1;k=5}}else if(!e){d=0;e=1;k=5}else{q=e;m=d}if((k|0)==5){q=d|e;m=~~+I(+(f/h))>>>0;OL(a,q>>>0>>0?m:q);q=c[i>>2]|0;m=c[j>>2]|0}o=q+-1|0;p=(q&o|0)==0;if(!p)if(m>>>0>>0)n=m;else n=(m>>>0)%(q>>>0)|0;else n=m&o;e=c[(c[a>>2]|0)+(n<<2)>>2]|0;if(!e){d=a+8|0;c[b>>2]=c[d>>2];c[d>>2]=b;c[(c[a>>2]|0)+(n<<2)>>2]=d;d=c[b>>2]|0;if(!d){a=c[s>>2]|0;a=a+1|0;c[s>>2]=a;yb=t;return b|0}d=c[d+4>>2]|0;if(!p){if(d>>>0>=q>>>0)d=(d>>>0)%(q>>>0)|0}else d=d&o;c[(c[a>>2]|0)+(d<<2)>>2]=b;a=c[s>>2]|0;a=a+1|0;c[s>>2]=a;yb=t;return b|0}d=0;while(1){l=c[e>>2]|0;k=l;if(!l)break;i=c[l+4>>2]|0;if(!p)if(i>>>0>>0)j=i;else j=(i>>>0)%(q>>>0)|0;else j=i&o;if((j|0)!=(n|0))break;if((i|0)==(m|0)){i=(c[l+8>>2]|0)==(c[r>>2]|0);if(i|d^1)d=d|i;else break}else if(d)break;else d=0;e=l}c[b>>2]=k;c[e>>2]=b;d=c[b>>2]|0;if(!d){a=c[s>>2]|0;a=a+1|0;c[s>>2]=a;yb=t;return b|0}d=c[d+4>>2]|0;if(!p){if(d>>>0>=q>>>0)d=(d>>>0)%(q>>>0)|0}else d=d&o;if((d|0)==(n|0)){a=c[s>>2]|0;a=a+1|0;c[s>>2]=a;yb=t;return b|0}c[(c[a>>2]|0)+(d<<2)>>2]=b;a=c[s>>2]|0;a=a+1|0;c[s>>2]=a;yb=t;return b|0}function An(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=yb;yb=yb+64|0;d=j+40|0;e=j+28|0;f=j+16|0;g=j+52|0;h=j+12|0;i=j;if(a[b+12>>0]&1)BM(IWa(150620,114638)|0);do if((IF(b)|0)!=1){c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;D8(d,114670,Zzb(114670)|0);n=0;da(4022,b|0,d|0);k=n;n=0;if(!(k&1)){Chb(d);break}k=sa()|0;P()|0;Chb(d);Ea(k|0)}while(0);d=(c[b>>2]|0)+56|0;do if(a[d>>0]&1){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;D8(e,114709,Zzb(114709)|0);n=0;da(4022,b|0,e|0);k=n;n=0;if(!(k&1)){Chb(e);d=(c[b>>2]|0)+56|0;break}k=sa()|0;P()|0;Chb(e);Ea(k|0)}while(0);a[d>>0]=1;do if((JF(b)|0)!=-16){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,114751,Zzb(114751)|0);n=0;da(4022,b|0,f|0);k=n;n=0;if(!(k&1)){Chb(f);break}k=sa()|0;P()|0;Chb(f);Ea(k|0)}while(0);k=c[b>>2]|0;j6a(h,-1,0);oD(b,k+64|0,k+68|0,g,c[h>>2]|0);if(!(a[g>>0]&1)){yb=j;return}c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;D8(i,114786,Zzb(114786)|0);n=0;da(4022,b|0,i|0);k=n;n=0;if(k&1){k=sa()|0;P()|0;Chb(i);Ea(k|0)}else{Chb(i);yb=j;return}}function Bn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0;m=yb;yb=yb+96|0;j=m+64|0;i=m+48|0;g=m;o=m+32|0;l=m+24|0;if(!(a[(c[b>>2]|0)+56>>0]&1)){h=oa(20)|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;o=Zzb(119153)|0;n=0;ea(95,i|0,119153,o|0);o=n;n=0;if(!(o&1)){n=0;fa(134,h|0,i|0,c[d+28>>2]|0,c[d+32>>2]|0);o=n;n=0;if(o&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(i);if(!g){o=f;Ea(o|0)}}else{f=sa()|0;P()|0}va(h|0);o=f;Ea(o|0)}if(!f){f=Ojb(c[b+4>>2]|0)|0;Bqb(g,0);i=j;h=i+24|0;do{a[i>>0]=a[g>>0]|0;i=i+1|0;g=g+1|0}while((i|0)<(h|0));mya(f,j)|0}mdb(o,f);i=o+4|0;j=o+8|0;k=o+12|0;h=e;while(1){n=0;f=S(330,d|0)|0;e=n;n=0;if(e&1){g=19;break}if(h>>>0>=f>>>0){g=22;break}n=0;f=U(81,d|0,h|0)|0;e=n;n=0;if(e&1){g=19;break}n=0;f=U(205,b|0,f|0)|0;e=n;n=0;if(e&1){g=19;break}c[l>>2]=f;g=c[j>>2]|0;if(g>>>0>=(c[k>>2]|0)>>>0){n=0;da(217,i|0,l|0);e=n;n=0;if(e&1){g=19;break}}else{c[g>>2]=f;c[j>>2]=(c[j>>2]|0)+4}h=h+1|0}if((g|0)==19){f=sa()|0;P()|0}else if((g|0)==22){f=c[b>>2]|0;g=f+76|0;h=c[g>>2]|0;if((h|0)==(c[f+80>>2]|0)){n=0;da(218,f+72|0,o|0);d=n;n=0;if(!(d&1)){Nrb(o);yb=m;return}}else{n=0;da(71,h|0,o|0);d=n;n=0;if(!(d&1)){c[g>>2]=(c[g>>2]|0)+16;Nrb(o);yb=m;return}}f=sa()|0;P()|0}Nrb(o);o=f;Ea(o|0)}function Cn(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,o=0,p=0,q=0,r=0;r=yb;yb=yb+48|0;p=r+24|0;h=r+20|0;l=r+16|0;q=r+12|0;o=r;c[h>>2]=f;do if(!(PBb(c[e>>2]|0)|0)){i=Ql(a+44|0,h)|0;f=Qsa(a,e,0)|0;c[l>>2]=f;j=i+4|0;h=c[j>>2]|0;k=i+8|0;if((h|0)==(c[k>>2]|0))_M(i,l);else{c[h>>2]=f;c[j>>2]=(c[j>>2]|0)+4}e=$D(a,e,1,0)|0;c[q>>2]=e;f=c[j>>2]|0;if((f|0)==(c[k>>2]|0)){_M(i,q);break}else{c[f>>2]=e;c[j>>2]=(c[j>>2]|0)+4;break}}else{c[q>>2]=a;c[l>>2]=a;e=a}while(0);c[o>>2]=0;h=o+4|0;c[h>>2]=0;i=o+8|0;c[i>>2]=0;if(!(!(dub(c[b>>2]|0,c[b+4>>2]|0)|0)?(n=0,ea(134,o|0,b|0,l|0),l=n,n=0,l&1):0))m=12;a:do if((m|0)==12){do if(!(dub(c[d>>2]|0,c[d+4>>2]|0)|0)){f=c[h>>2]|0;if(f>>>0>=(c[i>>2]|0)>>>0){n=0;ea(134,o|0,d|0,q|0);q=n;n=0;if(q&1)break a;else break}n=0;da(1e3,p|0,d|0);q=n;n=0;if(q&1)break a;n=0;ea(135,f|0,p|0,e|0);q=n;n=0;if(!(q&1)){Vob(p);c[h>>2]=(c[h>>2]|0)+16;break}r=sa()|0;P()|0;Vob(p);kdb(o);Ea(r|0)}while(0);n=0;ea(136,a|0,o|0,g|0);q=n;n=0;if(!(q&1)){kdb(o);yb=r;return}}while(0);r=sa()|0;P()|0;kdb(o);Ea(r|0)}function Dn(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;l=yb;yb=yb+48|0;h=l+40|0;f=l+32|0;g=l+16|0;i=l+4|0;j=l;e=c[b>>2]|0;d=c[e>>2]|0;do if(!(Nyb(d)|0)){if(OBb(d)|0){yb=l;return}if(VBb(d)|0){g=(Tfb(e)|0)+16|0;if(!(c[g>>2]|0))break;ma(104233,104084,129,104260)}if(MAb(d)|0){gy(i,cfb(e)|0);f=i+4|0;b=a+68|0;d=c[i>>2]|0;while(1){if((f|0)==(d|0)){k=27;break}c[j>>2]=c[d+16>>2];n=0;fa(98,h|0,b|0,j|0,j|0);g=n;n=0;if(g&1)break;e=d;d=c[e+4>>2]|0;a:do if(!d)while(1){d=c[e+8>>2]|0;if((e|0)==(c[d>>2]|0))break a;e=d}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0)}if((k|0)==27){Khb(i);break}l=sa()|0;P()|0;Khb(i);Ea(l|0)}}else{d=tfb(e)|0;if(c[d+12>>2]|0){k=d+8|0;GG(f,a+68|0,k,k);break}f=O4(a+56|0,d+8|0)|0;c[g>>2]=b;aja(g+4|0,a+44|0);d=f+4|0;e=c[d>>2]|0;if(e>>>0>=(c[f+8>>2]|0)>>>0){n=0;da(3152,f|0,g|0);k=n;n=0;if(k&1){l=sa()|0;P()|0;C6a(g);Ea(l|0)}}else{o5a(e,g);c[d>>2]=(c[d>>2]|0)+16}C6a(g)}while(0);zea(a+44|0);yb=l;return}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,l=0;l=yb;yb=yb+48|0;h=l+40|0;f=l+32|0;g=l+16|0;i=l+4|0;j=l;e=c[b>>2]|0;d=c[e>>2]|0;do if(!(Nyb(d)|0)){if(OBb(d)|0){yb=l;return}if(VBb(d)|0){g=(Tfb(e)|0)+16|0;if(!(c[g>>2]|0))break;ma(104233,104084,129,104260)}if(MAb(d)|0){gy(i,cfb(e)|0);f=i+4|0;b=a+68|0;d=c[i>>2]|0;while(1){if((f|0)==(d|0)){k=27;break}c[j>>2]=c[d+16>>2];n=0;fa(98,h|0,b|0,j|0,j|0);g=n;n=0;if(g&1)break;e=d;d=c[e+4>>2]|0;a:do if(!d)while(1){d=c[e+8>>2]|0;if((e|0)==(c[d>>2]|0))break a;e=d}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0)}if((k|0)==27){Khb(i);break}l=sa()|0;P()|0;Khb(i);Ea(l|0)}}else{d=tfb(e)|0;if(c[d+12>>2]|0){k=d+8|0;GG(f,a+68|0,k,k);break}f=O4(a+56|0,d+8|0)|0;c[g>>2]=b;aja(g+4|0,a+44|0);d=f+4|0;e=c[d>>2]|0;if(e>>>0>=(c[f+8>>2]|0)>>>0){n=0;da(3426,f|0,g|0);k=n;n=0;if(k&1){l=sa()|0;P()|0;D6a(g);Ea(l|0)}}else{o5a(e,g);c[d>>2]=(c[d>>2]|0)+16}D6a(g)}while(0);Aea(a+44|0);yb=l;return}function Fn(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;l=yb;yb=yb+48|0;h=l+40|0;f=l+32|0;g=l+16|0;i=l+4|0;j=l;e=c[b>>2]|0;d=c[e>>2]|0;do if(!(Nyb(d)|0)){if(OBb(d)|0){yb=l;return}if(VBb(d)|0){g=(Tfb(e)|0)+16|0;if(!(c[g>>2]|0))break;ma(104233,104084,129,104260)}if(MAb(d)|0){gy(i,cfb(e)|0);f=i+4|0;b=a+68|0;d=c[i>>2]|0;while(1){if((f|0)==(d|0)){k=27;break}c[j>>2]=c[d+16>>2];n=0;fa(98,h|0,b|0,j|0,j|0);g=n;n=0;if(g&1)break;e=d;d=c[e+4>>2]|0;a:do if(!d)while(1){d=c[e+8>>2]|0;if((e|0)==(c[d>>2]|0))break a;e=d}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0)}if((k|0)==27){Khb(i);break}l=sa()|0;P()|0;Khb(i);Ea(l|0)}}else{d=tfb(e)|0;if(c[d+12>>2]|0){k=d+8|0;GG(f,a+68|0,k,k);break}f=O4(a+56|0,d+8|0)|0;c[g>>2]=b;aja(g+4|0,a+44|0);d=f+4|0;e=c[d>>2]|0;if(e>>>0>=(c[f+8>>2]|0)>>>0){n=0;da(3307,f|0,g|0);k=n;n=0;if(k&1){l=sa()|0;P()|0;E6a(g);Ea(l|0)}}else{o5a(e,g);c[d>>2]=(c[d>>2]|0)+16}E6a(g)}while(0);Bea(a+44|0);yb=l;return}function Gn(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;l=yb;yb=yb+48|0;h=l+40|0;f=l+32|0;g=l+16|0;i=l+4|0;j=l;e=c[b>>2]|0;d=c[e>>2]|0;do if(!(Nyb(d)|0)){if(OBb(d)|0){yb=l;return}if(VBb(d)|0){g=(Tfb(e)|0)+16|0;if(!(c[g>>2]|0))break;ma(104233,104084,129,104260)}if(MAb(d)|0){gy(i,cfb(e)|0);f=i+4|0;b=a+68|0;d=c[i>>2]|0;while(1){if((f|0)==(d|0)){k=27;break}c[j>>2]=c[d+16>>2];n=0;fa(98,h|0,b|0,j|0,j|0);g=n;n=0;if(g&1)break;e=d;d=c[e+4>>2]|0;a:do if(!d)while(1){d=c[e+8>>2]|0;if((e|0)==(c[d>>2]|0))break a;e=d}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0)}if((k|0)==27){Khb(i);break}l=sa()|0;P()|0;Khb(i);Ea(l|0)}}else{d=tfb(e)|0;if(c[d+12>>2]|0){k=d+8|0;GG(f,a+68|0,k,k);break}f=O4(a+56|0,d+8|0)|0;c[g>>2]=b;aja(g+4|0,a+44|0);d=f+4|0;e=c[d>>2]|0;if(e>>>0>=(c[f+8>>2]|0)>>>0){n=0;da(3545,f|0,g|0);k=n;n=0;if(k&1){l=sa()|0;P()|0;F6a(g);Ea(l|0)}}else{o5a(e,g);c[d>>2]=(c[d>>2]|0)+16}F6a(g)}while(0);Cea(a+44|0);yb=l;return}function Hn(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;l=yb;yb=yb+48|0;h=l+40|0;f=l+32|0;g=l+16|0;i=l+4|0;j=l;e=c[b>>2]|0;d=c[e>>2]|0;do if(!(Nyb(d)|0)){if(OBb(d)|0){yb=l;return}if(VBb(d)|0){g=(Tfb(e)|0)+16|0;if(!(c[g>>2]|0))break;ma(104233,104084,129,104260)}if(MAb(d)|0){gy(i,cfb(e)|0);f=i+4|0;b=a+68|0;d=c[i>>2]|0;while(1){if((f|0)==(d|0)){k=27;break}c[j>>2]=c[d+16>>2];n=0;fa(98,h|0,b|0,j|0,j|0);g=n;n=0;if(g&1)break;e=d;d=c[e+4>>2]|0;a:do if(!d)while(1){d=c[e+8>>2]|0;if((e|0)==(c[d>>2]|0))break a;e=d}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0)}if((k|0)==27){Khb(i);break}l=sa()|0;P()|0;Khb(i);Ea(l|0)}}else{d=tfb(e)|0;if(c[d+12>>2]|0){k=d+8|0;GG(f,a+68|0,k,k);break}f=O4(a+56|0,d+8|0)|0;c[g>>2]=b;aja(g+4|0,a+44|0);d=f+4|0;e=c[d>>2]|0;if(e>>>0>=(c[f+8>>2]|0)>>>0){n=0;da(3664,f|0,g|0);k=n;n=0;if(k&1){l=sa()|0;P()|0;G6a(g);Ea(l|0)}}else{o5a(e,g);c[d>>2]=(c[d>>2]|0)+16}G6a(g)}while(0);Dea(a+44|0);yb=l;return}function In(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=yb;yb=yb+16|0;g=j;e=Mqb(b)|0;c[g>>2]=e;h=e;if(e|0){b=Peb(e+8|0)|0;if(!b){yb=j;return}e=J(b,d)|0;b=c[a>>2]|0;c[b>>2]=(c[b>>2]|0)+e;b=c[a+4>>2]|0;e=b+4|0;f=c[e>>2]|0;if((f|0)==(c[b+8>>2]|0)){_M(b,g);yb=j;return}else{c[f>>2]=h;c[e>>2]=(c[e>>2]|0)+4;yb=j;return}}g=Aqb(b)|0;if(!g){yb=j;return}switch(c[g+8>>2]|0){case 0:{a=a+8|0;xca(c[(c[a>>2]|0)+16>>2]|0,c[g+12>>2]|0,d);xca(c[(c[a>>2]|0)+16>>2]|0,c[g+16>>2]|0,d);yb=j;return}case 1:{e=g+12|0;b=c[e>>2]|0;f=Mqb(b)|0;do if(f)if(!(Peb(f+8|0)|0)){b=a+8|0;break}else{b=c[e>>2]|0;i=13;break}else i=13;while(0);if((i|0)==13){a=a+8|0;xca(c[(c[a>>2]|0)+16>>2]|0,b,d);b=a}xca(c[(c[b>>2]|0)+16>>2]|0,c[g+16>>2]|0,0-d|0);yb=j;return}case 10:{b=Mqb(c[g+16>>2]|0)|0;if(!b){yb=j;return}i=c[a+8>>2]|0;a=c[g+12>>2]|0;d=J(AGa(Zaa(b)|0)|0,d)|0;xca(c[i+16>>2]|0,a,d);yb=j;return}case 2:{e=c[g+12>>2]|0;b=Mqb(e)|0;if(b|0){i=c[a+8>>2]|0;a=c[g+16>>2]|0;d=J(Peb(b+8|0)|0,d)|0;xca(c[i+16>>2]|0,a,d);yb=j;return}b=Mqb(c[g+16>>2]|0)|0;if(!b){yb=j;return}a=c[a+8>>2]|0;d=J(Peb(b+8|0)|0,d)|0;xca(c[a+16>>2]|0,e,d);yb=j;return}default:{yb=j;return}}}function Jn(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;p=yb;yb=yb+48|0;h=p+44|0;i=p+40|0;j=p+36|0;k=p+32|0;l=p+28|0;m=p+24|0;n=p+20|0;o=p+16|0;d=p+12|0;e=p+8|0;f=p+4|0;g=p;T_a(a,c[b+12>>2]|0);T_a(a,c[b+16>>2]|0);a=a+28|0;tI(c[a>>2]|0,-3)|0;do switch(c[b+8>>2]|0){case 0:{o=c[a>>2]|0;Pwb(h,84);YA(o,c[h>>2]|0)|0;yb=p;return}case 1:{o=c[a>>2]|0;Pwb(i,85);YA(o,c[i>>2]|0)|0;yb=p;return}case 2:{o=c[a>>2]|0;Pwb(j,86);YA(o,c[j>>2]|0)|0;yb=p;return}case 3:{o=c[a>>2]|0;Pwb(k,101);YA(o,c[k>>2]|0)|0;yb=p;return}case 4:{o=c[a>>2]|0;Pwb(l,102);YA(o,c[l>>2]|0)|0;yb=p;return}case 5:{o=c[a>>2]|0;Pwb(m,103);YA(o,c[m>>2]|0)|0;yb=p;return}case 6:{o=c[a>>2]|0;Pwb(n,118);YA(o,c[n>>2]|0)|0;yb=p;return}case 7:{n=c[a>>2]|0;Pwb(o,119);YA(n,c[o>>2]|0)|0;yb=p;return}case 8:{o=c[a>>2]|0;Pwb(d,120);YA(o,c[d>>2]|0)|0;yb=p;return}case 9:{o=c[a>>2]|0;Pwb(e,135);YA(o,c[e>>2]|0)|0;yb=p;return}case 10:{o=c[a>>2]|0;Pwb(f,136);YA(o,c[f>>2]|0)|0;yb=p;return}case 11:{o=c[a>>2]|0;Pwb(g,137);YA(o,c[g>>2]|0)|0;yb=p;return}default:{yb=p;return}}while(0)}function Kn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=b+12|0;e=c[(c[f>>2]|0)+4>>2]|0;if((e|0)!=6?(d=c[(c[b+16>>2]|0)+4>>2]|0,(d|0)!=6):0)BCa(a,e,d,b);d=b+8|0;switch(c[d>>2]|0){case 24:case 23:case 22:case 21:case 20:case 19:case 18:case 17:case 16:case 15:case 14:case 13:case 12:case 11:case 10:case 9:case 8:case 7:case 6:case 5:case 4:case 3:case 2:case 1:case 0:{Rqa(a,c[(c[f>>2]|0)+4>>2]|0,1,b,131261);break}case 49:case 48:case 47:case 46:case 45:case 44:case 43:case 42:case 41:case 40:case 39:case 38:case 37:case 36:case 35:case 34:case 33:case 32:case 31:case 30:case 29:case 28:case 27:case 26:case 25:{Rqa(a,c[(c[f>>2]|0)+4>>2]|0,2,b,131268);break}case 62:case 61:case 60:case 59:case 58:case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:{Rqa(a,c[(c[f>>2]|0)+4>>2]|0,3,b,131275);break}case 75:case 74:case 73:case 72:case 71:case 70:case 69:case 68:case 67:case 66:case 65:case 64:case 63:{Rqa(a,c[(c[f>>2]|0)+4>>2]|0,4,b,131282);break}case 151:case 150:case 149:case 148:case 147:case 146:case 145:case 144:case 143:case 142:case 141:case 140:case 139:case 138:case 137:case 136:case 135:case 134:case 133:case 132:case 131:case 130:case 129:case 128:case 127:case 126:case 125:case 124:case 123:case 122:case 121:case 120:case 119:case 118:case 117:case 115:case 116:case 114:case 113:case 112:case 111:case 109:case 110:case 108:case 107:case 106:case 105:case 104:case 101:case 100:case 103:case 102:case 99:case 98:case 97:case 96:case 95:case 94:case 91:case 90:case 93:case 92:case 89:case 88:case 87:case 86:case 85:case 84:case 81:case 80:case 83:case 82:case 79:case 78:case 77:case 76:{Rqa(a,c[(c[f>>2]|0)+4>>2]|0,5,b,131289);Rqa(a,c[(c[b+16>>2]|0)+4>>2]|0,5,b,131289);break}case 152:{ma(141129,126900,859,131297);break}default:{}}f=zTa(c[d>>2]|0)|0;WMa(a,jub(f,c[(c[a+44>>2]|0)+4>>2]|0)|0,b);return}function Ln(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;m=yb;yb=yb+16|0;i=m+8|0;k=m+4|0;f=m;l=b+8|0;d=c[l>>2]|0;e=Mqb(d)|0;if(e|0){l=Wsa(e+8|0)|0;do if(!((l|0)==0&(P()|0)==0)){d=c[b+12>>2]|0;e=c[b+16>>2]|0;if(e)ZHa(a+44|0,e)}else{d=c[b+16>>2]|0;e=a+44|0;if(d|0){ZHa(e,c[b+12>>2]|0);break}ZHa(e,b);Gjb(b);yb=m;return}while(0);qOa(a,d);yb=m;return}if((c[d+4>>2]|0)==6){e=a+44|0;ZHa(e,c[b+12>>2]|0);d=c[b+16>>2]|0;if(d|0)ZHa(e,d);qOa(a,c[l>>2]|0);yb=m;return}j=b+16|0;d=c[j>>2]|0;g=d;if(!d){if(!(Gzb(c[c[b+12>>2]>>2]|0)|0)){yb=m;return}Gsb(f,WCb(c[a+36>>2]|0)|0);qOa(a,Q6a(c[f>>2]|0,c[l>>2]|0)|0);yb=m;return}e=c[d>>2]|0;if(Gzb(e)|0){c[j>>2]=0;yb=m;return}h=b+12|0;f=c[h>>2]|0;d=c[f>>2]|0;if(Gzb(d)|0){c[h>>2]=g;c[j>>2]=0;Gsb(i,WCb(c[a+36>>2]|0)|0);a=pVa(c[i>>2]|0,20,c[l>>2]|0)|0;c[l>>2]=a;yb=m;return}if(!(Qyb(d)|0)){yb=m;return}if(!(Qyb(e)|0)){yb=m;return}d=(xfb(f)|0)+8|0;d=c[d>>2]|0;e=(xfb(c[j>>2]|0)|0)+8|0;e=c[e>>2]|0;if((c[d+4>>2]|0)!=(c[e+4>>2]|0)){yb=m;return}c[h>>2]=d;c[j>>2]=e;gQ(b);Gsb(k,WCb(c[a+36>>2]|0)|0);qOa(a,Q6a(c[k>>2]|0,b)|0);yb=m;return}function Mn(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=yb;yb=yb+16|0;h=m+8|0;j=m;l=b+64|0;if(!(c[l>>2]|0)){l=0;yb=m;return l|0}k=b+68|0;e=c[k>>2]|0;if(!e){m=oa(4)|0;TBb(m);za(m|0,39640,481)}i=b+92|0;d=c[i>>2]|0;do if(!(d&16)){if(d&8|0){f=b+80|0;g=c[f+4>>2]|0;h=j;c[h>>2]=c[f>>2];c[h+4>>2]=g;do if(!(a[b+98>>0]&1)){f=Eb[c[(c[e>>2]|0)+24>>2]&511](e)|0;h=b+36|0;g=c[h>>2]|0;d=(c[b+40>>2]|0)-g|0;if((f|0)>0){e=0;d=d+(J(f,(c[b+16>>2]|0)-(c[b+12>>2]|0)|0)|0)|0;break}e=c[b+12>>2]|0;if((e|0)==(c[b+16>>2]|0))e=0;else{k=c[k>>2]|0;f=b+32|0;k=Kb[c[(c[k>>2]|0)+32>>2]&31](k,j,c[f>>2]|0,g,e-(c[b+8>>2]|0)|0)|0;e=1;d=d+((c[h>>2]|0)-(c[f>>2]|0)-k)|0}}else{e=0;d=(c[b+16>>2]|0)-(c[b+12>>2]|0)|0}while(0);if(usb(c[l>>2]|0,0-d|0,1)|0){l=-1;yb=m;return l|0}if(e){k=c[j+4>>2]|0;l=b+72|0;c[l>>2]=c[j>>2];c[l+4>>2]=k}l=c[b+32>>2]|0;c[b+40>>2]=l;c[b+36>>2]=l;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[i>>2]=0}}else{if((c[b+24>>2]|0)!=(c[b+20>>2]|0)?(Gb[c[(c[b>>2]|0)+52>>2]&255](b,-1)|0)==-1:0){l=-1;yb=m;return l|0}f=b+72|0;g=b+32|0;d=b+52|0;a:while(1){j=c[k>>2]|0;e=c[g>>2]|0;e=Kb[c[(c[j>>2]|0)+20>>2]&31](j,f,e,e+(c[d>>2]|0)|0,h)|0;j=c[g>>2]|0;b=(c[h>>2]|0)-j|0;if((tTa(j,1,b,c[l>>2]|0)|0)!=(b|0)){d=-1;e=23;break}switch(e|0){case 1:break;case 2:{d=-1;e=23;break a}default:{e=10;break a}}}if((e|0)==10){if(!(rca(c[l>>2]|0)|0))break;else d=-1;yb=m;return d|0}else if((e|0)==23){yb=m;return d|0}}while(0);l=0;yb=m;return l|0}function Nn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0;q=yb;yb=yb+208|0;g=q+196|0;i=q+192|0;j=q+188|0;m=q+96|0;o=q+4|0;p=q;if((WCb(c[b+16>>2]|0)|0)>>>0<=1)ma(101430,101296,748,101447);e=b+8|0;if(!(eCb(c[e>>2]|0)|0)){yb=q;return}l=b+12|0;d=uXa(l,0)|0;d=Tqb(c[d>>2]|0)|0;h=(d|0)==0;if(h){f=uXa(l,0)|0;f=Qqb(c[f>>2]|0)|0}else f=Qqb(c[d+8>>2]|0)|0;if(!f){yb=q;return}k=f+16|0;if(!(c[k>>2]|0)){yb=q;return}d=c[e>>2]|0;if(!(dub(c[f+8>>2]|0,d)|0)){yb=q;return}if((c[f+4>>2]|0)==6){yb=q;return}c[i>>2]=d;c[g>>2]=c[i>>2];if((bU(b,g)|0)!=1){yb=q;return}if(h){if(c[f+12>>2]|0)ma(104345,101296,765,101447);Gsb(j,WCb(c[a+20>>2]|0)|0);p=c[j>>2]|0;p=zOa(p,pVa(p,20,c[k>>2]|0)|0,b,0)|0;Pwb(c[a>>2]|0,p);Gjb(f);uZa(b,c[b+4>>2]|0);yb=q;return}e=a+28|0;d=f+12|0;VA(m,c[e>>2]|0,c[d>>2]|0);if(QGa(m)|0){Fha(m);yb=q;return}n=0;ea(130,o|0,c[e>>2]|0,c[k>>2]|0);j=n;n=0;if(j&1){q=sa()|0;P()|0;Fha(m);Ea(q|0)}j=QGa(o)|0;Fha(o);Fha(m);if(j){yb=q;return}o=uXa(l,0)|0;Gjb(c[o>>2]|0);Gsb(p,WCb(c[a+20>>2]|0)|0);p=zOa(c[p>>2]|0,c[k>>2]|0,c[d>>2]|0,b)|0;Pwb(c[a>>2]|0,p);yb=q;return}function On(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;h=b+8|0;f=c[h>>2]|0;if(!f){k=a;return k|0}b=Rqb(a)|0;if((b|0)!=0?!(eCb(c[b+8>>2]|0)|0):0)k=d;else{b=vJa(c[d>>2]|0,a)|0;k=d;f=c[h>>2]|0}a=b;while(1){if(!f){j=a;break}b=qib(f)|0;if(!b){i=21;break}g=b+24|0;f=a;b=c[b+20>>2]|0;while(1){if((g|0)==(b|0))break;a=b;l=c[a+20>>2]|0;a=Op(c[a+16>>2]|0)|0;c[f+8>>2]=a;_u(f);a=vJa(c[k>>2]|0,f)|0;Wla(a+12|0,Hb[c[(c[l>>2]|0)+8>>2]&255](l,d,e)|0);_u(a);f=c[b+4>>2]|0;a:do if(!f)while(1){f=c[b+8>>2]|0;if((b|0)==(c[f>>2]|0)){b=f;break a}b=f}else{b=f;while(1){f=c[b>>2]|0;if(!f)break;b=f}}while(0);f=a}l=c[(c[h>>2]|0)+8>>2]|0;c[h>>2]=l;a=f;f=l}b:do if((i|0)==21){b=Xib(f)|0;if(b|0){j=Op(c[(c[b+20>>2]|0)+100>>2]|0)|0;c[a+8>>2]=j;j=a;break}b=ojb(f)|0;if(!b)ma(72702,72707,81,72737);switch(WCb(c[b+32>>2]|0)|0){case 0:{ma(72761,72707,82,72737);break}case 1:{j=Op(c[(c[(c[b+40>>2]|0)+8>>2]|0)+100>>2]|0)|0;c[a+8>>2]=j;j=a;break b}default:{f=WCb(c[b+40>>2]|0)|0;g=Ryb(b+24|0)|0;b=a;while(1){a=f;if((g|0)==(a|0)){j=b;break b}l=Op(c[(c[f+8>>2]|0)+100>>2]|0)|0;c[b+8>>2]=l;_u(b);l=vJa(c[k>>2]|0,b)|0;_u(l);b=l;f=c[a+4>>2]|0}}}}while(0);_u(j);l=j;return l|0}function Pn(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;u=yb;yb=yb+112|0;o=u+104|0;v=u+88|0;w=u+72|0;q=u+68|0;x=u+56|0;e=u+52|0;t=u+32|0;m=u+24|0;f=u+16|0;k=u+8|0;l=u+4|0;p=u;d=c[b+32>>2]|0;if(!(qqa(a,d)|0)){yb=u;return}pT(v,a,d);n=0;ea(145,w|0,a|0,1);j=n;n=0;if(j&1){x=sa()|0;P()|0;lNa(v);Ea(x|0)}c[q>>2]=b;c[x>>2]=0;i=x+4|0;c[i>>2]=0;j=x+8|0;c[j>>2]=0;c[e>>2]=0;c[t>>2]=a;c[t+4>>2]=e;c[t+8>>2]=q;c[t+12>>2]=w;c[t+16>>2]=v;g=b+8|0;nrb(m,g);Hib(f,g);g=m+4|0;h=c[f>>2]|0;f=c[f+4>>2]|0;while(1){if(!(dhb(c[m>>2]|0,c[g>>2]|0,h,f)|0)){e=15;break}n=0;d=S(271,m|0)|0;e=n;n=0;if(e&1){e=12;break}c[l>>2]=c[d>>2];n=0;c[o>>2]=c[l>>2];d=U(142,t|0,o|0)|0;e=n;n=0;if(e&1){e=12;break}c[k>>2]=d;e=c[i>>2]|0;if(e>>>0>=(c[j>>2]|0)>>>0){n=0;da(217,x|0,k|0);e=n;n=0;if(e&1){e=12;break}}else{c[e>>2]=d;c[i>>2]=(c[i>>2]|0)+4}hob(m)}if((e|0)==12){d=sa()|0;P()|0}else if((e|0)==15){n=0;da(1449,b+8|0,x|0);m=n;n=0;if(!(m&1)?(r=b+24|0,c[p>>2]=c[r>>2],n=0,c[o>>2]=c[p>>2],s=U(142,t|0,o|0)|0,t=n,n=0,!(t&1)):0){c[r>>2]=s;Pwb(c[a+16>>2]|0,c[q>>2]|0);Vob(x);lNa(w);lNa(v);yb=u;return}d=sa()|0;P()|0}Vob(x);lNa(w);x=d;lNa(v);Ea(x|0)}function Qn(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;g=yb;yb=yb+32|0;h=g+12|0;i=g;e=0;f=0;a:while(1){d=St(a)|0;if((d|0)==-1){b=3;break}do if((d|0)<=64)if((d|0)>47){if((d|0)>=58){b=19;break a}b=d+-28|0;break}else{switch(d|0){case 43:case 47:break;default:{b=19;break a}}b=(d|0)==43?30:31;break}else{if((d|0)<91){b=13;break a}if((d|0)<=96){b=19;break a}if((d|0)<103){b=14;break a}if((d|0)>=123){b=19;break a}b=d+-103|0}while(0);d=f|b<>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;i=Zzb(115602)|0;n=0;ea(95,h|0,115602,i|0);i=n;n=0;if(!(i&1)){n=0;da(4023,d|0,h|0);i=n;n=0;if(i&1)a=1;else{n=0;ea(122,d|0,37736,556);n=0;a=0}b=sa()|0;P()|0;Chb(h);if(!a){i=b;Ea(i|0)}}else{b=sa()|0;P()|0}va(d|0);i=b;Ea(i|0)}else if((b|0)==13){h=d+-65|0;h=h<>>1;i=0-h|0;i=f?h:i;yb=g;return i|0}else if((b|0)==14){h=d+-71|0;h=h<>>1;i=0-h|0;i=f?h:i;yb=g;return i|0}else if((b|0)==19){d=oa(12)|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=Zzb(115638)|0;n=0;ea(95,i|0,115638,h|0);h=n;n=0;if(!(h&1)){n=0;da(4023,d|0,i|0);h=n;n=0;if(h&1)a=1;else{n=0;ea(122,d|0,37736,556);n=0;a=0}b=sa()|0;P()|0;Chb(i);if(!a){i=b;Ea(i|0)}}else{b=sa()|0;P()|0}va(d|0);i=b;Ea(i|0)}return 0}function Rn(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=yb;yb=yb+32|0;i=z+16|0;j=z;e=c[d+28>>2]|0;if(!(qqa(b,e)|0)){yb=z;return}h=d+12|0;if((WCb(c[h>>2]|0)|0)>>>0>=4294967292)ma(82050,81381,494,113038);if(a[d+20>>0]&1)ma(82082,81381,495,113038);pT(i,b,e);g=d+8|0;e=a[g>>0]|0;a[g>>0]=(e&255)<4?e:4;g=WCb(c[d+16>>2]|0)|0;n=0;V(52,d+16|0,(g>>>0<4?g:4)|0,0)|0;g=n;n=0;a:do if(!(g&1)){c[d+32>>2]=1;do if(e<<24>>24==8){n=0;ea(145,j|0,b|0,1);g=n;n=0;if(g&1)break a;e=b+44|0;f=c[e>>2]|0;n=0;g=S(280,j|0)|0;A=n;n=0;if(((((((((!(A&1)?(k=d+24|0,n=0,l=V(70,c[f>>2]|0,g|0,c[k>>2]|0)|0,A=n,n=0,!(A&1)):0)?(m=c[e>>2]|0,n=0,o=S(280,j|0)|0,A=n,n=0,!(A&1)):0)?(n=0,p=V(71,c[m>>2]|0,o|0,1)|0,A=n,n=0,!(A&1)):0)?(c[k>>2]=p,q=c[e>>2]|0,r=(WCb(c[h>>2]|0)|0)+4|0,n=0,s=S(280,j|0)|0,A=n,n=0,!(A&1)):0)?(n=0,t=V(71,c[q>>2]|0,s|0,1)|0,A=n,n=0,!(A&1)):0)?(u=c[e>>2]|0,n=0,v=S(280,i|0)|0,A=n,n=0,!(A&1)):0)?(n=0,w=V(71,c[u>>2]|0,v|0,1)|0,A=n,n=0,!(A&1)):0)?(n=0,x=_(15,c[q>>2]|0,4,r|0,1,t|0,w|0,1)|0,A=n,n=0,!(A&1)):0)?(n=0,y=W(30,c[e>>2]|0,l|0,d|0,x|0)|0,A=n,n=0,!(A&1)):0){Pwb(c[b+16>>2]|0,y);lNa(j);break}A=sa()|0;P()|0;lNa(j);lNa(i);Ea(A|0)}while(0);lNa(i);yb=z;return}while(0);A=sa()|0;P()|0;lNa(i);Ea(A|0)}function Sn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=yb;yb=yb+352|0;o=v+320|0;m=v+304|0;j=v+296|0;i=v+280|0;l=v+272|0;r=v+240|0;p=v+340|0;g=v;u=v+336|0;s=v+332|0;t=v+328|0;q=l;c[q>>2]=37;c[q+4>>2]=0;q=d+4|0;k=rN(l+1|0,136638,c[q>>2]|0)|0;c[p>>2]=r;a=t8a()|0;if(k){c[i>>2]=c[d+8>>2];h[i+8>>3]=f;a=Hva(r,30,a,l,i)|0}else{h[j>>3]=f;a=Hva(r,30,a,l,j)|0}do if((a|0)>29){a=t8a()|0;if(k){c[m>>2]=c[d+8>>2];h[m+8>>3]=f;a=OAa(p,a,l,m)|0}else{h[o>>3]=f;a=OAa(p,a,l,o)|0}i=c[p>>2]|0;if(!i){n=0;ba(9);n=0;a=sa()|0;P()|0;break}else{m=i;l=i;w=11;break}}else{m=0;l=r;w=11}while(0);if((w|0)==11){k=l+a|0;j=XZ(l,k,c[q>>2]|0)|0;do if((l|0)!=(r|0)){a=qc(a<<3)|0;if(!a){n=0;ba(9);n=0;a=sa()|0;P()|0;break}else{g=a;i=a;w=15;break}}else{i=0;w=15}while(0);if((w|0)==15){anb(t,d);n=0;ia(9,l|0,j|0,k|0,g|0,u|0,s|0,t|0);w=n;n=0;do if(w&1){a=sa()|0;P()|0;XWa(t)}else{XWa(t);n=0;a=Z(47,c[b>>2]|0,g|0,c[u>>2]|0,c[s>>2]|0,d|0,e|0)|0;w=n;n=0;if(w&1){a=sa()|0;P()|0;break}c[b>>2]=a;if(i|0)wg(i);if(m|0)wg(m);yb=v;return a|0}while(0);if(i)wg(i)}if(m)wg(m)}Ea(a|0);return 0}function Tn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=yb;yb=yb+352|0;o=v+320|0;m=v+304|0;j=v+296|0;i=v+280|0;l=v+272|0;r=v+240|0;p=v+340|0;g=v;u=v+336|0;s=v+332|0;t=v+328|0;q=l;c[q>>2]=37;c[q+4>>2]=0;q=d+4|0;k=rN(l+1|0,151778,c[q>>2]|0)|0;c[p>>2]=r;a=t8a()|0;if(k){c[i>>2]=c[d+8>>2];h[i+8>>3]=f;a=Hva(r,30,a,l,i)|0}else{h[j>>3]=f;a=Hva(r,30,a,l,j)|0}do if((a|0)>29){a=t8a()|0;if(k){c[m>>2]=c[d+8>>2];h[m+8>>3]=f;a=OAa(p,a,l,m)|0}else{h[o>>3]=f;a=OAa(p,a,l,o)|0}i=c[p>>2]|0;if(!i){n=0;ba(9);n=0;a=sa()|0;P()|0;break}else{m=i;l=i;w=11;break}}else{m=0;l=r;w=11}while(0);if((w|0)==11){k=l+a|0;j=XZ(l,k,c[q>>2]|0)|0;do if((l|0)!=(r|0)){a=qc(a<<3)|0;if(!a){n=0;ba(9);n=0;a=sa()|0;P()|0;break}else{g=a;i=a;w=15;break}}else{i=0;w=15}while(0);if((w|0)==15){anb(t,d);n=0;ia(9,l|0,j|0,k|0,g|0,u|0,s|0,t|0);w=n;n=0;do if(w&1){a=sa()|0;P()|0;XWa(t)}else{XWa(t);n=0;a=Z(47,c[b>>2]|0,g|0,c[u>>2]|0,c[s>>2]|0,d|0,e|0)|0;w=n;n=0;if(w&1){a=sa()|0;P()|0;break}c[b>>2]=a;if(i|0)wg(i);if(m|0)wg(m);yb=v;return a|0}while(0);if(i)wg(i)}if(m)wg(m)}Ea(a|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,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;t=yb;yb=yb+16|0;q=t+4|0;k=t;c[q>>2]=0;p=q+4|0;c[p>>2]=0;l=q+8|0;c[l>>2]=0;m=a+24|0;i=0;j=0;e=c[a+20>>2]|0;while(1){if((m|0)==(e|0))break;f=e;n=0;g=U(87,b|0,c[f+16>>2]|0)|0;h=n;n=0;if(h&1){o=30;break}f=c[f+20>>2]|0;n=0;f=V(c[(c[f>>2]|0)+8>>2]|0,f|0,b|0,d|0)|0;h=n;n=0;if(h&1){o=30;break}n=0;h=W(7,c[b>>2]|0,g|0,f|0,0)|0;g=n;n=0;if(g&1){o=30;break}c[k>>2]=h;f=c[p>>2]|0;g=h;if((f|0)==(c[l>>2]|0)){n=0;da(228,q|0,k|0);f=n;n=0;if(f&1){o=30;break}}else{c[f>>2]=g;c[p>>2]=(c[p>>2]|0)+4}if(!i){i=h;g=h}else{c[i+16>>2]=g;gQ(i);i=c[k>>2]|0;g=j}f=c[e+4>>2]|0;a:do if(!f)while(1){f=c[e+8>>2]|0;if((e|0)==(c[f>>2]|0)){e=f;break a}e=f}else{e=f;while(1){f=c[e>>2]|0;if(!f)break;e=f}}while(0);j=g}if((o|0)==30){t=sa()|0;P()|0;Vob(q);Ea(t|0)}while(1){e=c[p>>2]|0;if((e|0)==(c[q>>2]|0))break;m=e+-4|0;o=c[m>>2]|0;c[p>>2]=m;gQ(o)}n=0;e=U(86,c[b>>2]|0,j|0)|0;p=n;n=0;if(!(p&1)?(n=0,r=W(11,e|0,a|0,b|0,d|0)|0,p=n,n=0,!(p&1)):0){e=c[a+8>>2]|0;if(!e){s=r;Vob(q);yb=t;return s|0}n=0;e=V(c[(c[e>>2]|0)+8>>2]|0,e|0,b|0,d|0)|0;d=n;n=0;if(!(d&1)?(n=0,s=V(57,c[b>>2]|0,r|0,e|0)|0,r=n,n=0,!(r&1)):0){Vob(q);yb=t;return s|0}}t=sa()|0;P()|0;Vob(q);Ea(t|0);return 0}function Vn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=yb;yb=yb+176|0;o=v+144|0;m=v+128|0;j=v+120|0;i=v+104|0;l=v+96|0;r=v+64|0;p=v+164|0;g=v;u=v+160|0;s=v+156|0;t=v+152|0;q=l;c[q>>2]=37;c[q+4>>2]=0;q=d+4|0;k=rN(l+1|0,136638,c[q>>2]|0)|0;c[p>>2]=r;a=t8a()|0;if(k){c[i>>2]=c[d+8>>2];h[i+8>>3]=f;a=Hva(r,30,a,l,i)|0}else{h[j>>3]=f;a=Hva(r,30,a,l,j)|0}do if((a|0)>29){a=t8a()|0;if(k){c[m>>2]=c[d+8>>2];h[m+8>>3]=f;a=OAa(p,a,l,m)|0}else{h[o>>3]=f;a=OAa(p,a,l,o)|0}i=c[p>>2]|0;if(!i){n=0;ba(9);n=0;a=sa()|0;P()|0;break}else{m=i;l=i;w=11;break}}else{m=0;l=r;w=11}while(0);if((w|0)==11){k=l+a|0;j=XZ(l,k,c[q>>2]|0)|0;do if((l|0)!=(r|0)){a=qc(a<<1)|0;if(!a){n=0;ba(9);n=0;a=sa()|0;P()|0;break}else{g=a;i=a;w=15;break}}else{i=0;w=15}while(0);if((w|0)==15){anb(t,d);n=0;ia(7,l|0,j|0,k|0,g|0,u|0,s|0,t|0);w=n;n=0;do if(w&1){a=sa()|0;P()|0;XWa(t)}else{XWa(t);n=0;a=Z(39,c[b>>2]|0,g|0,c[u>>2]|0,c[s>>2]|0,d|0,e|0)|0;w=n;n=0;if(w&1){a=sa()|0;P()|0;break}c[b>>2]=a;if(i|0)wg(i);if(m|0)wg(m);yb=v;return a|0}while(0);if(i)wg(i)}if(m)wg(m)}Ea(a|0);return 0}function Wn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=yb;yb=yb+176|0;o=v+144|0;m=v+128|0;j=v+120|0;i=v+104|0;l=v+96|0;r=v+64|0;p=v+164|0;g=v;u=v+160|0;s=v+156|0;t=v+152|0;q=l;c[q>>2]=37;c[q+4>>2]=0;q=d+4|0;k=rN(l+1|0,151778,c[q>>2]|0)|0;c[p>>2]=r;a=t8a()|0;if(k){c[i>>2]=c[d+8>>2];h[i+8>>3]=f;a=Hva(r,30,a,l,i)|0}else{h[j>>3]=f;a=Hva(r,30,a,l,j)|0}do if((a|0)>29){a=t8a()|0;if(k){c[m>>2]=c[d+8>>2];h[m+8>>3]=f;a=OAa(p,a,l,m)|0}else{h[o>>3]=f;a=OAa(p,a,l,o)|0}i=c[p>>2]|0;if(!i){n=0;ba(9);n=0;a=sa()|0;P()|0;break}else{m=i;l=i;w=11;break}}else{m=0;l=r;w=11}while(0);if((w|0)==11){k=l+a|0;j=XZ(l,k,c[q>>2]|0)|0;do if((l|0)!=(r|0)){a=qc(a<<1)|0;if(!a){n=0;ba(9);n=0;a=sa()|0;P()|0;break}else{g=a;i=a;w=15;break}}else{i=0;w=15}while(0);if((w|0)==15){anb(t,d);n=0;ia(7,l|0,j|0,k|0,g|0,u|0,s|0,t|0);w=n;n=0;do if(w&1){a=sa()|0;P()|0;XWa(t)}else{XWa(t);n=0;a=Z(39,c[b>>2]|0,g|0,c[u>>2]|0,c[s>>2]|0,d|0,e|0)|0;w=n;n=0;if(w&1){a=sa()|0;P()|0;break}c[b>>2]=a;if(i|0)wg(i);if(m|0)wg(m);yb=v;return a|0}while(0);if(i)wg(i)}if(m)wg(m)}Ea(a|0);return 0}function Xn(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;g=(d|0)==0;do if(!g){if(d>>>0<=1073741823){f=mla(d<<2)|0;break}e=oa(8)|0;n=0;da(67,e|0,138616);d=n;n=0;if(d&1){d=sa()|0;P()|0;va(e|0);Ea(d|0)}else{c[e>>2]=50788;za(e|0,39592,473)}}else f=0;while(0);e=c[b>>2]|0;c[b>>2]=f;if(e|0)RCb(e);c[b+4>>2]=d;if(g)return;e=0;while(1){if((e|0)==(d|0))break;c[(c[b>>2]|0)+(e<<2)>>2]=0;e=e+1|0}f=b+8|0;g=c[f>>2]|0;if(!g)return;e=c[g+4>>2]|0;u=d+-1|0;v=(u&d|0)==0;if(!v){if(e>>>0>=d>>>0)e=(e>>>0)%(d>>>0)|0}else e=e&u;c[(c[b>>2]|0)+(e<<2)>>2]=f;f=e;t=g;while(1){e=c[t>>2]|0;if(!e)break;g=c[e+4>>2]|0;if(!v){if(g>>>0>=d>>>0)g=(g>>>0)%(d>>>0)|0}else g=g&u;do if((g|0)!=(f|0)){h=(c[b>>2]|0)+(g<<2)|0;if(!(c[h>>2]|0)){c[h>>2]=t;f=g;break}o=e+8|0;p=o+11|0;q=e+12|0;m=e;a:while(1){r=c[m>>2]|0;s=r;if(!r)break;j=r+8|0;h=a[p>>0]|0;l=h<<24>>24<0;if(l)h=c[q>>2]|0;else h=h&255;i=a[j+11>>0]|0;k=i<<24>>24<0;if(k)i=c[r+12>>2]|0;else i=i&255;if((h|0)!=(i|0))break;if(l)i=c[o>>2]|0;else i=o;if(k)j=c[j>>2]|0;b:do if(l){if(qdb(i,j,h)|0)break a}else while(1){if(!h)break b;if((a[i>>0]|0)!=(a[j>>0]|0))break a;j=j+1|0;i=i+1|0;h=h+-1|0}while(0);m=r}c[t>>2]=s;c[m>>2]=c[c[(c[b>>2]|0)+(g<<2)>>2]>>2];c[c[(c[b>>2]|0)+(g<<2)>>2]>>2]=e;e=t}while(0);t=e}return}function Yn(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,o=0,p=0;m=yb;yb=yb+48|0;o=m;i=m+36|0;l=m+32|0;j=m+28|0;k=m+24|0;a:do if(!(c[f+4>>2]&1)){c[l>>2]=-1;p=c[(c[b>>2]|0)+16>>2]|0;c[j>>2]=c[d>>2];c[k>>2]=c[e>>2];c[i>>2]=c[j>>2];c[o>>2]=c[k>>2];i=Mb[p&63](b,i,o,f,g,l)|0;c[d>>2]=i;switch(c[l>>2]|0){case 0:{a[h>>0]=0;break}case 1:{a[h>>0]=1;break}default:{a[h>>0]=1;c[g>>2]=4}}}else{anb(o,f);n=0;j=U(66,c[o>>2]|0,151356)|0;p=n;n=0;do if(p&1){i=sa()|0;P()|0;XWa(o)}else{XWa(o);anb(o,f);n=0;i=U(66,c[o>>2]|0,151364)|0;p=n;n=0;if(p&1){i=sa()|0;P()|0;XWa(o);break}XWa(o);n=0;da(c[(c[i>>2]|0)+24>>2]|0,o|0,i|0);p=n;n=0;do if(!(p&1)){n=0;da(c[(c[i>>2]|0)+28>>2]|0,o+12|0,i|0);p=n;n=0;if(p&1){i=sa()|0;P()|0;bhb(o);break}b=o+24|0;n=0;i=_(18,d|0,c[e>>2]|0,o|0,b|0,j|0,g|0,1)|0;p=n;n=0;if(p&1){i=sa()|0;j=P()|0;do{b=b+-12|0;bhb(b)}while((b|0)!=(o|0));break}else{a[h>>0]=(i|0)==(o|0)&1;i=c[d>>2]|0;do{b=b+-12|0;bhb(b)}while((b|0)!=(o|0));break a}}else{i=sa()|0;P()|0}while(0)}while(0);Ea(i|0)}while(0);yb=m;return i|0}function Zn(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,o=0,p=0;m=yb;yb=yb+48|0;o=m;i=m+36|0;l=m+32|0;j=m+28|0;k=m+24|0;a:do if(!(c[f+4>>2]&1)){c[l>>2]=-1;p=c[(c[b>>2]|0)+16>>2]|0;c[j>>2]=c[d>>2];c[k>>2]=c[e>>2];c[i>>2]=c[j>>2];c[o>>2]=c[k>>2];i=Mb[p&63](b,i,o,f,g,l)|0;c[d>>2]=i;switch(c[l>>2]|0){case 0:{a[h>>0]=0;break}case 1:{a[h>>0]=1;break}default:{a[h>>0]=1;c[g>>2]=4}}}else{anb(o,f);n=0;j=U(66,c[o>>2]|0,151324)|0;p=n;n=0;do if(p&1){i=sa()|0;P()|0;XWa(o)}else{XWa(o);anb(o,f);n=0;i=U(66,c[o>>2]|0,151340)|0;p=n;n=0;if(p&1){i=sa()|0;P()|0;XWa(o);break}XWa(o);n=0;da(c[(c[i>>2]|0)+24>>2]|0,o|0,i|0);p=n;n=0;do if(!(p&1)){n=0;da(c[(c[i>>2]|0)+28>>2]|0,o+12|0,i|0);p=n;n=0;if(p&1){i=sa()|0;P()|0;Chb(o);break}b=o+24|0;n=0;i=_(17,d|0,c[e>>2]|0,o|0,b|0,j|0,g|0,1)|0;p=n;n=0;if(p&1){i=sa()|0;j=P()|0;do{b=b+-12|0;Chb(b)}while((b|0)!=(o|0));break}else{a[h>>0]=(i|0)==(o|0)&1;i=c[d>>2]|0;do{b=b+-12|0;Chb(b)}while((b|0)!=(o|0));break a}}else{i=sa()|0;P()|0}while(0)}while(0);Ea(i|0)}while(0);yb=m;return i|0}function _n(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=yb;yb=yb+16|0;h=g;a:do switch(a[b>>0]|0){case 105:switch(a[b+1>>0]|0){case 51:{if((a[b+2>>0]|0)!=50){f=21;break a}if(e){h=1;yb=g;return h|0}b=(a[b+3>>0]|0)==0;if(b|d)b=b?1:0;else break a;yb=g;return b|0}case 54:{if((a[b+2>>0]|0)!=52){f=21;break a}if(e){h=2;yb=g;return h|0}b=(a[b+3>>0]|0)==0;if(b|d)b=b?2:0;else break a;yb=g;return b|0}default:{f=21;break a}}case 102:switch(a[b+1>>0]|0){case 51:{if((a[b+2>>0]|0)!=50){f=21;break a}if(e){h=3;yb=g;return h|0}b=(a[b+3>>0]|0)==0;if(b|d)b=b?3:0;else break a;yb=g;return b|0}case 54:{if((a[b+2>>0]|0)!=52){f=21;break a}if(e){h=4;yb=g;return h|0}b=(a[b+3>>0]|0)==0;if(b|d)b=b?4:0;else break a;yb=g;return b|0}default:{f=21;break a}}case 118:{if(((a[b+1>>0]|0)==49?(a[b+2>>0]|0)==50:0)?(a[b+3>>0]|0)==56:0){if(e){h=5;yb=g;return h|0}b=(a[b+4>>0]|0)==0;if(b|d){h=b?5:0;yb=g;return h|0}}else f=21;break}default:f=21}while(0);if((f|0)==21?d:0){h=0;yb=g;return h|0}d=oa(20)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;g=Zzb(119455)|0;n=0;ea(95,h|0,119455,g|0);g=n;n=0;if(!(g&1)){n=0;da(330,d|0,h|0);g=n;n=0;if(g&1)e=1;else{n=0;ea(122,d|0,31856,511);n=0;e=0}b=sa()|0;P()|0;Chb(h);if(!e){h=b;Ea(h|0)}}else{b=sa()|0;P()|0}va(d|0);h=b;Ea(h|0);return 0}function $n(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,o=0,p=0,q=0,r=0;r=yb;yb=yb+48|0;d=r+44|0;j=r+40|0;k=r+36|0;p=r+24|0;l=r+20|0;m=r+16|0;q=r+4|0;o=r;i=dO(c[a+8>>2]|0)|0;f=i;g=WCb(c[b+24>>2]|0)|0;if((g|0)==0|(eCb(i)|0)^1){q=a;yb=r;return q|0}e=c[b+28>>2]|0;h=WCb(e)|0;Gsb(j,h);i=a+4|0;if((c[i>>2]|0)!=2&(g|0)==2){ox(b);q=Coa(c[a+12>>2]|0,e+152|0)|0;Ftb(k,c[37130]|0);c[l>>2]=q;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;n=0;da(174,p|0,1);q=n;n=0;if(q&1){r=sa()|0;P()|0;Qcb(p);Ea(r|0)}ssa(p,l,l+4|0);q=c[j>>2]|0;n=0;c[d>>2]=c[k>>2];d=W(14,q|0,d|0,p|0,1)|0;q=n;n=0;if(q&1){r=sa()|0;P()|0;Vob(p);Ea(r|0)}else{Vob(p);q=d;yb=r;return q|0}}else{J4(a,h,b);c[m>>2]=f;c[o>>2]=c[a+12>>2];c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;n=0;da(174,q|0,1);p=n;n=0;if(p&1){r=sa()|0;P()|0;Qcb(q);Ea(r|0)}ssa(q,o,o+4|0);p=c[i>>2]|0;o=c[j>>2]|0;n=0;c[d>>2]=c[m>>2];d=W(14,o|0,d|0,q|0,p|0)|0;p=n;n=0;if(p&1){r=sa()|0;P()|0;Vob(q);Ea(r|0)}else{Vob(q);q=d;yb=r;return q|0}}return 0}function ao(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=yb;yb=yb+96|0;g=i+28|0;d=i+24|0;h=i+12|0;f=i;$b(g);c[d>>2]=0;yib(h);c[f>>2]=g;c[f+4>>2]=d;c[f+8>>2]=h;n=0;da(2034,e|0,f|0);d=n;n=0;if(!(d&1)?(n=0,da(2035,e|0,f|0),d=n,n=0,!(d&1)):0){a:do if(a[b+16>>0]&1){b=c[e+16>>2]|0;d=c[e+12>>2]|0;while(1){if((d|0)==(b|0))break a;n=0;da(2036,f|0,c[d>>2]|0);k=n;n=0;if(k&1)break;d=d+4|0}k=sa()|0;P()|0;$$a(h);Sba(g);Ea(k|0)}while(0);n=0;ca(520,e|0);k=n;n=0;if(!(k&1)){e=h+4|0;d=c[h>>2]|0;while(1){if((e|0)==(d|0)){j=24;break}f=d;n=0;b=U(59,150452,c[f+20>>2]|0)|0;k=n;n=0;if(k&1)break;n=0;b=U(59,b|0,88538)|0;k=n;n=0;if(k&1)break;n=0;b=U(59,b|0,c[f+16>>2]|0)|0;k=n;n=0;if(k&1)break;n=0;U(62,b|0,10)|0;k=n;n=0;if(k&1)break;b=d;d=c[b+4>>2]|0;b:do if(!d)while(1){d=c[b+8>>2]|0;if((b|0)==(c[d>>2]|0))break b;b=d}else while(1){b=c[d>>2]|0;if(!b)break;d=b}while(0)}if((j|0)==24){$$a(h);Sba(g);yb=i;return}k=sa()|0;P()|0;$$a(h);Sba(g);Ea(k|0)}}k=sa()|0;P()|0;$$a(h);Sba(g);Ea(k|0)}function bo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0;l=a+12|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[a+16>>2]=1.0;m=a+20|0;i=a+32|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;g[a+36>>2]=1.0;h=b+36|0;j=b+40|0;e=c[j>>2]|0;d=c[h>>2]|0;while(1){if((d|0)==(e|0)){k=6;break}f=c[d>>2]|0;if(Yrb(f)|0?(n=0,da(2316,a|0,f|0),k=n,n=0,k&1):0){k=29;break}d=d+4|0}a:do if((k|0)==6){f=c[j>>2]|0;d=c[h>>2]|0;while(1){if((d|0)==(f|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0)?(n=0,da(2316,a|0,e|0),h=n,n=0,h&1):0){k=28;break}d=d+4|0}if((k|0)==28){d=sa()|0;P()|0;break}do if((c[i>>2]|0)==((c[j>>2]|0)-(c[b+36>>2]|0)>>2|0)){h=b+24|0;i=b+28|0;e=c[i>>2]|0;d=c[h>>2]|0;while(1){if((d|0)==(e|0))break;f=c[d>>2]|0;if(Yrb(f)|0?(n=0,da(2317,a|0,f|0),j=n,n=0,j&1):0){k=27;break}d=d+4|0}if((k|0)==27){d=sa()|0;P()|0;break a}f=c[i>>2]|0;d=c[h>>2]|0;while(1){if((d|0)==(f|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0)?(n=0,da(2317,a|0,e|0),j=n,n=0,j&1):0){k=26;break}d=d+4|0}if((k|0)==26){d=sa()|0;P()|0;break a}if((c[l>>2]|0)==((c[i>>2]|0)-(c[b+24>>2]|0)>>2|0))return;else{n=0;fa(75,98450,98405,67,98436);n=0;break}}else{n=0;fa(75,98361,98405,52,98436);n=0}while(0);d=sa()|0;P()|0}else if((k|0)==29){d=sa()|0;P()|0}while(0);Pdb(m);Pdb(a);Ea(d|0)}function co(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=c[b>>2]|0;do if(g){h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Eb[c[(c[g>>2]|0)+36>>2]&511](g)|0;else g=Qzb(a[h>>0]|0)|0;if(dub(g,-1)|0){c[b>>2]=0;h=1;break}else{h=(c[b>>2]|0)==0;break}}else h=1;while(0);if(d){g=c[d+12>>2]|0;if((g|0)==(c[d+16>>2]|0))g=Eb[c[(c[d>>2]|0)+36>>2]&511](d)|0;else g=Qzb(a[g>>0]|0)|0;if(!(dub(g,-1)|0))if(h){i=d;j=16}else j=15;else j=13}else j=13;if((j|0)==13)if(h)j=15;else{i=0;j=16}do if((j|0)==15)c[e>>2]=c[e>>2]|6;else if((j|0)==16){g=c[b>>2]|0;h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Eb[c[(c[g>>2]|0)+36>>2]&511](g)|0;else g=Qzb(a[h>>0]|0)|0;if((Hb[c[(c[f>>2]|0)+36>>2]&255](f,g&255,0)|0)<<24>>24!=37){c[e>>2]=c[e>>2]|4;break}g=c[b>>2]|0;h=g+12|0;d=c[h>>2]|0;if((d|0)==(c[g+16>>2]|0)){Eb[c[(c[g>>2]|0)+40>>2]&511](g)|0;g=c[b>>2]|0;if(!g)h=1;else j=24}else{c[h>>2]=d+1;j=24}do if((j|0)==24){h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Eb[c[(c[g>>2]|0)+36>>2]&511](g)|0;else g=Qzb(a[h>>0]|0)|0;if(dub(g,-1)|0){c[b>>2]=0;h=1;break}else{h=(c[b>>2]|0)==0;break}}while(0);if(i){g=c[i+12>>2]|0;if((g|0)==(c[i+16>>2]|0))g=Eb[c[(c[i>>2]|0)+36>>2]&511](i)|0;else g=Qzb(a[g>>0]|0)|0;if(!(dub(g,-1)|0)){if(h)break}else j=35}else j=35;if((j|0)==35?!h:0)break;c[e>>2]=c[e>>2]|2}while(0);return}function eo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=yb;yb=yb+16|0;h=t;m=c[e+8>>2]|0;c[h>>2]=m;h=pH(h,4)|0;r=e+4|0;c[r>>2]=h;q=d+4|0;j=c[q>>2]|0;p=(j|0)==0;a:do if(!p){n=j+-1|0;o=(j&n|0)==0;if(!o){if(h>>>0>=j>>>0)h=(h>>>0)%(j>>>0)|0}else h=h&n;f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(f){while(1){f=c[f>>2]|0;if(!f)break a;i=c[f+4>>2]|0;if(!o){if(i>>>0>=j>>>0)i=(i>>>0)%(j>>>0)|0}else i=i&n;if((i|0)!=(h|0))break a;if((c[f+8>>2]|0)==(m|0)){h=0;break}}e=f;c[b>>2]=e;b=b+4|0;a[b>>0]=h;yb=t;return}}else h=0;while(0);m=d+12|0;k=+(((c[m>>2]|0)+1|0)>>>0);l=+g[d+16>>2];if(l*+(j>>>0)>>0>2){h=(j&j+-1|0)!=0&1;s=20}else{h=1;s=20}}else if(p){f=0;h=1;s=20}do if((s|0)==20){i=f|h;h=~~+I(+(k/l))>>>0;OL(d,i>>>0>>0?h:i);i=c[q>>2]|0;h=c[r>>2]|0;f=i+-1|0;if(!(i&f)){j=i;h=h&f;break}if(h>>>0>>0)j=i;else{j=i;h=(h>>>0)%(i>>>0)|0}}while(0);f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f){f=d+8|0;c[e>>2]=c[f>>2];c[f>>2]=e;c[(c[d>>2]|0)+(h<<2)>>2]=f;f=c[e>>2]|0;if(!f)f=e;else{f=c[f+4>>2]|0;h=j+-1|0;if(j&h){if(f>>>0>=j>>>0)f=(f>>>0)%(j>>>0)|0}else f=f&h;c[(c[d>>2]|0)+(f<<2)>>2]=e;f=e}}else{c[e>>2]=c[f>>2];c[f>>2]=e;f=e}c[m>>2]=(c[m>>2]|0)+1;e=1;d=f;c[b>>2]=d;b=b+4|0;a[b>>0]=e;yb=t;return}function fo(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;p=yb;yb=yb+16|0;g=p+12|0;h=p+8|0;k=p+4|0;n=p;o=mla(120)|0;mT(o);i=Ok(b)|0;c[o+8>>2]=i;c[g>>2]=1;i=o+20|0;f=c[i>>2]|0;j=o+24|0;if(f>>>0<(c[j>>2]|0)>>>0){c[f>>2]=1;f=(c[i>>2]|0)+4|0;c[i>>2]=f}else{_M(o+16|0,g);f=c[i>>2]|0}c[h>>2]=1;if(f>>>0<(c[j>>2]|0)>>>0){c[f>>2]=1;f=(c[i>>2]|0)+4|0;c[i>>2]=f}else{_M(o+16|0,h);f=c[i>>2]|0}m=b+32|0;if((f|0)==(c[j>>2]|0))_M(o+16|0,m);else{c[f>>2]=c[m>>2];c[i>>2]=(c[i>>2]|0)+4}c[k>>2]=1;f=o+32|0;g=c[f>>2]|0;if(g>>>0<(c[o+36>>2]|0)>>>0){c[g>>2]=1;c[f>>2]=(c[f>>2]|0)+4}else _M(o+28|0,k);c[o+12>>2]=0;Gsb(n,e);j=c[n>>2]|0;k=vJa(j,0)|0;l=k+12|0;f=T3a(j,0,1)|0;Wla(l,tVa(j,3,hIa(j,0,f,T3a(j,1,1)|0)|0)|0);Wla(l,lq(a,n,3,d[b+8>>0]|0)|0);f=c[b+16>>2]|0;if((WCb(f)|0)>>>0>1)Wla(l,Gy(a,f,n,3)|0);h=Ihb(e+152|0)|0;i=h;f=b;g=i+36|0;do{c[i>>2]=c[f>>2];i=i+4|0;f=f+4|0}while((i|0)<(g|0));b=T3a(j,3,1)|0;c[h+24>>2]=b;b=T3a(j,2,c[m>>2]|0)|0;c[h+28>>2]=b;Wla(l,h);uZa(k,0);c[o+44>>2]=k;aq(e,o);yb=p;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;i=yb;yb=yb+96|0;g=i+64|0;e=i+32|0;h=i;zsb(g);f=c[d+12>>2]|0;if(f|0?(tw(e,b,f),c[g>>2]=c[e>>2],c[g+4>>2]=c[e+4>>2],c[g+8>>2]=c[e+8>>2],c[g+12>>2]=c[e+12>>2],c[g+16>>2]=c[e+16>>2],c[g+20>>2]=c[e+20>>2],c[g+24>>2]=c[e+24>>2],lsb(g)|0):0){c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=i;return}e=c[d+16>>2]|0;if(e|0){tw(h,b,e);if(lsb(h)|0){c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>2];c[a+28>>2]=c[h+28>>2];yb=i;return}h=Wsa(h)|0;if((h|0)==0&(P()|0)==0){c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=i;return}}c[g+24>>2]=c[d+8>>2];c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=i;return}function ho(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,o=0,p=0,q=0,r=0,s=0,t=0;t=yb;yb=yb+48|0;d=t+24|0;o=t+12|0;p=t+8|0;q=t+4|0;r=t;if(a[b+12>>0]&1)BM(IWa(150620,117343)|0);m=IF(b)|0;do if((m|0)==-1){c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;D8(d,117364,Zzb(117364)|0);n=0;da(4022,b|0,d|0);l=n;n=0;if(!(l&1)){Chb(d);break}t=sa()|0;P()|0;Chb(d);Ea(t|0)}while(0);l=b+216|0;k=0;while(1){if(k>>>0>=m>>>0){s=23;break}if(IF(b)|0){c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;D8(o,117382,Zzb(117382)|0);n=0;da(4022,b|0,o|0);j=n;n=0;if(j&1)break;Chb(o)}d=c[b>>2]|0;e=HF(b)|0;c[p>>2]=e;f=d+76|0;g=c[f>>2]|0;if(g>>>0<(c[d+80>>2]|0)>>>0){mdb(g,e);c[f>>2]=(c[f>>2]|0)+16}else jH(d+72|0,p);c[q>>2]=k;e=e6(l,q)|0;f=IF(b)|0;g=e+4|0;h=e+8|0;d=0;while(1){if((d|0)==(f|0))break;i=IF(b)|0;c[r>>2]=i;j=c[g>>2]|0;if(j>>>0<(c[h>>2]|0)>>>0){c[j>>2]=i;c[g>>2]=(c[g>>2]|0)+4}else _M(e,r);d=d+1|0}k=k+1|0}if((s|0)==23){yb=t;return}t=sa()|0;P()|0;Chb(o);Ea(t|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;h=yb;yb=yb+64|0;f=h+56|0;i=h+12|0;g=h;c[f>>2]=a;if(c[37104]|0){IWa(150452,56221)|0;IWa(150452,67198)|0;a=0;while(1){if((a|0)==(e|0))break;if(a|0)IWa(150452,140151)|0;j=IWa(150452,113917)|0;IWa(IWa(j,c[d+(a<<2)>>2]|0)|0,113917)|0;a=a+1|0}IWa(150452,56261)|0;a=IWa(150452,70628)|0;j=O8(148204,f)|0;IWa(Ym(IWa(Ym(a,c[j>>2]|0)|0,70669)|0,e)|0,56341)|0;IWa(150452,56345)|0}VSa(i,b);a=i+20|0;c[a>>2]=c[37063];c[a+4>>2]=c[37064];c[a+8>>2]=c[37065];c[a+12>>2]=c[37066];c[a+16>>2]=c[37067];a=0;while(1){if(a>>>0>=e>>>0){b=17;break}b=c[d+(a<<2)>>2]|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;j=Zzb(b)|0;n=0;ea(95,g|0,b|0,j|0);j=n;n=0;if(j&1){b=13;break}n=0;da(68,i|0,g|0);j=n;n=0;if(j&1){b=16;break}Chb(g);a=a+1|0}do if((b|0)==13){a=sa()|0;P()|0}else if((b|0)==16){j=sa()|0;P()|0;Chb(g);osa(i);Ea(j|0)}else if((b|0)==17){n=0;da(225,i|0,c[f>>2]|0);j=n;n=0;if(j&1){a=sa()|0;P()|0;break}else{osa(i);yb=h;return}}while(0);j=a;osa(i);Ea(j|0)}function jo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;h=i;f=c[a+4>>2]|0;d=c[a>>2]|0;while(1){if((d|0)==(f|0))break;Foa(h,c[d>>2]|0);n=0;U(80,b|0,h|0)|0;e=n;n=0;if(e&1){g=7;break}e=c[h>>2]|0;c[h>>2]=0;if(e|0){Xrb(e);RCb(e)}d=d+4|0}if((g|0)==7){d=sa()|0;P()|0;e=c[h>>2]|0;c[h>>2]=0;if(!e)Ea(d|0);Xrb(e);RCb(e);Ea(d|0)}e=c[a+16>>2]|0;d=c[a+12>>2]|0;while(1){f=d;if((e|0)==(f|0))break;h=mla(12)|0;g=c[d>>2]|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];uq(b,h);d=f+4|0}e=c[a+28>>2]|0;d=c[a+24>>2]|0;while(1){if((d|0)==(e|0))break;Qt(c[d>>2]|0,b)|0;d=d+4|0}e=c[a+40>>2]|0;d=c[a+36>>2]|0;while(1){if((d|0)==(e|0))break;cR(c[d>>2]|0,b)|0;d=d+4|0}b0(b+48|0,a+48|0);e=c[b+76>>2]|0;d=c[b+72>>2]|0;while(1){if((d|0)==(e|0))break;h=q5(c[d>>2]|0,b)|0;c[d>>2]=h;d=d+16|0}NP(b+84|0,a+84|0);e=c[b+112>>2]|0;d=c[b+108>>2]|0;while(1){if((d|0)==(e|0))break;h=q5(c[d>>2]|0,b)|0;c[d>>2]=h;d=d+16|0}c[b+124>>2]=c[a+124>>2];if((b|0)==(a|0)){yb=i;return}Vv(b+128|0,c[a+128>>2]|0,c[a+132>>2]|0);su(b+140|0,c[a+140>>2]|0,c[a+144>>2]|0);yb=i;return}function ko(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,s=0,t=0;t=yb;yb=yb+16|0;g=t+8|0;m=t+4|0;n=t;o=b+64|0;if(!(c[o>>2]|0)){s=-1;yb=t;return s|0}ES(b);r=b+20|0;s=c[r>>2]|0;p=b+28|0;q=c[p>>2]|0;l=dub(d,-1)|0;e=b+24|0;f=c[e>>2]|0;if(l){i=s;h=s}else{if(!f){c[e>>2]=g;c[r>>2]=g;c[p>>2]=g+1;f=g}h=Qzb(d)|0;a[f>>0]=h;f=(c[e>>2]|0)+1|0;c[e>>2]=f;h=c[r>>2]|0;i=h}g=f;if((f|0)!=(i|0)){a:do if(!(a[b+98>>0]&1)){j=b+32|0;c[m>>2]=c[j>>2];k=b+68|0;l=b+72|0;b=b+52|0;h=i;b:while(1){g=c[k>>2]|0;if(!g){f=11;break}i=c[j>>2]|0;f=Ob[c[(c[g>>2]|0)+12>>2]&15](g,l,h,f,n,i,i+(c[b>>2]|0)|0,m)|0;g=c[r>>2]|0;if((c[n>>2]|0)==(g|0)){e=-1;f=20;break}switch(f|0){case 3:{f=14;break b}case 1:case 0:break;default:{e=-1;f=20;break b}}h=c[j>>2]|0;i=(c[m>>2]|0)-h|0;if((tTa(h,1,i,c[o>>2]|0)|0)!=(i|0)){e=-1;f=20;break}if((f|0)!=1)break a;f=c[n>>2]|0;i=c[e>>2]|0;c[r>>2]=f;c[p>>2]=i;h=f;f=h+(i-f)|0;c[e>>2]=f}if((f|0)==11){t=oa(4)|0;TBb(t);za(t|0,39640,481)}else if((f|0)==14){n=(c[e>>2]|0)-g|0;if((tTa(g,1,n,c[o>>2]|0)|0)==(n|0))break;else e=-1;yb=t;return e|0}else if((f|0)==20){yb=t;return e|0}}else{n=g-h|0;if((tTa(h,1,n,c[o>>2]|0)|0)!=(n|0)){s=-1;yb=t;return s|0}}while(0);c[e>>2]=s;c[r>>2]=s;c[p>>2]=q}s=ylb(d)|0;yb=t;return s|0}function lo(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;l=b+8|0;i=l+3|0;g=a[i>>0]|0;h=g<<24>>24<0;if(h){m=c[b+4>>2]|0;f=(c[l>>2]&2147483647)+-1|0}else{m=g&255;f=1}d=m>>>0<2;j=d?1:(m+4&-4)+-1|0;a:do if((j|0)!=(f|0)){do if(d){d=c[b>>2]|0;if(h){e=d;g=0;f=b;k=24}else{Rkb(b,d,(g&255)+1|0);RCb(d);k=27}}else{e=j+1|0;d=e>>>0>1073741823;b:do if(j>>>0>f>>>0){if(!d){d=mla(e<<2)|0;break}d=oa(8)|0;n=0;da(67,d|0,138616);m=n;n=0;if(m&1){m=sa()|0;P()|0;va(d|0);Ea(m|0)}else{c[d>>2]=50788;za(d|0,39592,473)}}else{do if(d){d=oa(8)|0;n=0;da(67,d|0,138616);m=n;n=0;if(m&1){m=ta(0)|0;P()|0;va(d|0);d=m;break}else{c[d>>2]=50788;n=0;ea(122,d|0,39592,473);n=0;k=17;break}}else{n=0;d=S(217,e<<2|0)|0;k=n;n=0;if(k&1)k=17;else break b}while(0);if((k|0)==17){d=ta(0)|0;P()|0}pa(d|0)|0;qa();break a}while(0);if(h){e=c[b>>2]|0;g=1;f=d;k=24;break}else{Rkb(d,b,(g&255)+1|0);f=d;d=b+4|0;k=26;break}}while(0);if((k|0)==24){d=b+4|0;Rkb(f,e,(c[d>>2]|0)+1|0);RCb(e);if(g){e=j+1|0;k=26}else k=27}if((k|0)==26){c[l>>2]=e|-2147483648;c[d>>2]=m;c[b>>2]=f;break}else if((k|0)==27){a[i>>0]=m;break}}while(0);return}function mo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;r=yb;yb=yb+16|0;l=r;c[b>>2]=d;c[b+4>>2]=e;s=b+8|0;m=b+20|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;g[b+24>>2]=1.0;a[b+28>>0]=0;n=0;h=U(59,150452,106929)|0;k=n;n=0;do if((!(k&1)?(n=0,f=U(82,h|0,c[(c[d+116>>2]|0)+8>>2]|0)|0,k=n,n=0,!(k&1)):0)?(n=0,U(59,f|0,128472)|0,k=n,n=0,!(k&1)):0){k=e+24|0;h=e+28|0;i=c[h>>2]|0;d=c[k>>2]|0;while(1){j=d;if((i|0)==(j|0))break;f=c[d>>2]|0;c[l>>2]=f;if(!(aCb(c[f>>2]|0)|0)){d=c[m>>2]|0;n=0;f=U(180,s|0,l|0)|0;t=n;n=0;if(t&1){q=25;break}c[f>>2]=d}d=j+4|0}if((q|0)==25){d=sa()|0;P()|0;break}f=c[h>>2]|0;d=c[k>>2]|0;while(1){if((d|0)==(f|0))break;n=0;da(3694,b|0,c[d>>2]|0);t=n;n=0;if(t&1){q=24;break}d=d+4|0}if((q|0)==24){d=sa()|0;P()|0;break}f=c[e+60>>2]|0;d=c[e+56>>2]|0;while(1){if((d|0)==(f|0))break;n=0;da(3695,b|0,c[d>>2]|0);t=n;n=0;if(t&1){q=23;break}d=d+4|0}if((q|0)==23){d=sa()|0;P()|0;break}n=0;d=U(59,150452,106947)|0;t=n;n=0;if(((!(t&1)?(n=0,o=U(180,s|0,e+4|0)|0,t=n,n=0,!(t&1)):0)?(n=0,p=U(60,d|0,c[o>>2]|0)|0,t=n,n=0,!(t&1)):0)?(n=0,U(59,p|0,106955)|0,t=n,n=0,!(t&1)):0){yb=r;return}else q=26}else q=26;while(0);if((q|0)==26){d=sa()|0;P()|0}Pdb(s);Ea(d|0)}function no(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;f=h+8|0;g=h;c[f>>2]=d;c[g>>2]=f;c[g+4>>2]=b;gxa(g);SEa(Wm(SEa(b,91)|0,a)|0,32)|0;switch(c[a>>2]|0){case 0:{Wm(SEa(IWa(IWa(b,107599)|0,ala(c[a+4>>2]|0)|0)|0,32)|0,a)|0;break}case 1:{IWa(b,107604)|0;qy(c[a+4>>2]|0,b,1,0)|0;break}case 2:{Ym(IWa(b,107610)|0,c[a+4>>2]|0)|0;break}case 3:{Ym(IWa(b,107615)|0,c[a+4>>2]|0)|0;break}case 4:{IWa(Ym(IWa(b,107621)|0,(c[a+16>>2]|0)-(c[a+12>>2]|0)>>2)|0,107629)|0;yb=h;return}case 5:{IWa(b,107639)|0;break}case 6:{IWa(b,107644)|0;break}default:ma(141129,107648,58,107678)}d=a+16|0;if((c[a+12>>2]|0)!=(c[d>>2]|0)){SEa(b,10)|0;e=c[d>>2]|0;d=c[a+12>>2]|0;while(1){if((d|0)==(e|0))break;no(c[d>>2]|0,b,(c[f>>2]|0)+1|0);d=d+4|0}gxa(g)}g=IWa(b,107683)|0;IWa(Wm(g,c[a+8>>2]|0)|0,128472)|0;yb=h;return}function oo(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;l=yb;yb=yb+160|0;k=l+136|0;g=l+104|0;h=l+80|0;i=l+48|0;j=l+24|0;f=l;tw(g,d,c[e+8>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=l;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];tw(i,d,c[e+12>>2]|0);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=l;return}else{c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];c[j+20>>2]=c[g+20>>2];y7(f,h,j,e+16|0);e=k;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,k);yb=l;return}}function po(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,o=0,p=0;p=yb;yb=yb+32|0;h=p+24|0;o=p+12|0;k=p+8|0;l=p+4|0;m=p;c[h>>2]=b;c[o>>2]=o;i=o+4|0;c[i>>2]=o;j=o+8|0;c[j>>2]=0;n=0;da(240,o|0,h|0);h=n;n=0;if(h&1){p=sa()|0;P()|0;Pkb(o);Ea(p|0)}f=a+4|0;g=a+4|0;h=a+8|0;a:while(1){if(!(c[j>>2]|0)){b=18;break}c[k>>2]=c[(c[i>>2]|0)+8>>2];xFa(o);n=0;b=U(89,f|0,k|0)|0;e=n;n=0;if(e&1){b=20;break}e=c[b>>2]|0;c[l>>2]=e;b=c[a>>2]|0;if(pdb(b,e)|0){n=0;b=U(88,b|0,l|0)|0;e=n;n=0;if(e&1){b=20;break}bda(b,k)}n=0;b=U(89,f|0,k|0)|0;e=n;n=0;if(e&1){b=20;break}b:do if(c[b>>2]|0){n=0;b=U(89,f|0,k|0)|0;e=n;n=0;if(e&1){b=20;break a}c[b>>2]=0;d=c[k>>2]|0;b=WCb(c[d+16>>2]|0)|0;d=Ryb(d)|0;while(1){e=b;if((d|0)==(e|0))break b;c[m>>2]=c[b+8>>2];b=Mba(g,m)|0;if(((b|0)!=(h|0)?c[b+20>>2]|0:0)?(n=0,da(240,o|0,m|0),b=n,n=0,b&1):0){b=19;break a}b=c[e+4>>2]|0}}while(0)}if((b|0)==18){Pkb(o);yb=p;return}else if((b|0)==19){p=sa()|0;P()|0;Pkb(o);Ea(p|0)}else if((b|0)==20){p=sa()|0;P()|0;Pkb(o);Ea(p|0)}}function qo(a){a=a|0;if(!a)ma(112644,134747,192,112649);do switch(c[a>>2]|0){case 1:{hsb(a);return}case 2:{Eub(a);return}case 3:{Ntb(a);return}case 4:{gsb(a);return}case 5:{vrb(a);return}case 6:{Rtb(a);return}case 7:{job(a);return}case 9:{frb(a);return}case 11:{sqb(a);return}case 12:{Otb(a);return}case 13:{ftb(a);return}case 23:{uqb(a);return}case 24:{onb(a);return}case 25:{Bpb(a);return}case 26:{Apb(a);return}case 27:{Tob(a);return}case 28:{Sob(a);return}case 29:{Rob(a);return}case 30:{nnb(a);return}case 31:{tqb(a);return}case 32:{xpb(a);return}case 33:{grb(a);return}case 34:{zpb(a);return}case 35:{ypb(a);return}case 14:{gtb(a);return}case 15:{etb(a);return}case 16:{tsb(a);return}case 17:{ssb(a);return}case 18:{Qtb(a);return}case 20:{Ptb(a);return}case 22:case 21:case 19:case 10:case 8:return;default:ma(141129,134747,235,112649)}while(0)}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,k=0,l=0,m=0,n=0,o=0,p=0;p=yb;yb=yb+48|0;h=p+44|0;i=p+40|0;j=p+36|0;k=p+32|0;l=p+28|0;m=p+24|0;n=p+20|0;o=p+16|0;d=p+12|0;e=p+8|0;f=p+4|0;g=p;a=a+28|0;tI(c[a>>2]|0,-3)|0;do switch(c[b+8>>2]|0){case 0:{o=c[a>>2]|0;Pwb(h,84);YA(o,c[h>>2]|0)|0;yb=p;return}case 1:{o=c[a>>2]|0;Pwb(i,85);YA(o,c[i>>2]|0)|0;yb=p;return}case 2:{o=c[a>>2]|0;Pwb(j,86);YA(o,c[j>>2]|0)|0;yb=p;return}case 3:{o=c[a>>2]|0;Pwb(k,101);YA(o,c[k>>2]|0)|0;yb=p;return}case 4:{o=c[a>>2]|0;Pwb(l,102);YA(o,c[l>>2]|0)|0;yb=p;return}case 5:{o=c[a>>2]|0;Pwb(m,103);YA(o,c[m>>2]|0)|0;yb=p;return}case 6:{o=c[a>>2]|0;Pwb(n,118);YA(o,c[n>>2]|0)|0;yb=p;return}case 7:{n=c[a>>2]|0;Pwb(o,119);YA(n,c[o>>2]|0)|0;yb=p;return}case 8:{o=c[a>>2]|0;Pwb(d,120);YA(o,c[d>>2]|0)|0;yb=p;return}case 9:{o=c[a>>2]|0;Pwb(e,135);YA(o,c[e>>2]|0)|0;yb=p;return}case 10:{o=c[a>>2]|0;Pwb(f,136);YA(o,c[f>>2]|0)|0;yb=p;return}case 11:{o=c[a>>2]|0;Pwb(g,137);YA(o,c[g>>2]|0)|0;yb=p;return}default:{yb=p;return}}while(0)}function so(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;do if(a[b+1>>0]&1?(i=rrb(d,1)|0,hXa(c[i>>2]|0,c[37232]|0)|0):0){i=rrb(d,2)|0;i=c[i>>2]|0;WCb(i)|0;if(!(OBb(c[i>>2]|0)|0)){i=rrb(d,2)|0;i=c[i>>2]|0;WCb(i)|0;if(!(VBb(c[i>>2]|0)|0))break;i=rrb(d,2)|0;i=rrb(c[i>>2]|0,0)|0;if(!(hXa(c[i>>2]|0,c[37221]|0)|0))break;i=rrb(d,2)|0;i=rrb(c[i>>2]|0,1)|0;if(!(hXa(c[i>>2]|0,c[37233]|0)|0))break;i=rrb(d,2)|0;i=rrb(c[i>>2]|0,2)|0;i=c[i>>2]|0;WCb(i)|0;if(!(OBb(c[i>>2]|0)|0))break}i=b+12|0;h=c[i>>2]|0;f=rrb(d,2)|0;Xi(b,c[f>>2]|0);iR(b,1);f=b+4|0;d=c[f>>2]|0;e=d+h|0;a[d+(c[i>>2]|0)>>0]=0;if(JL(e,135434)|0)return;if(JL(e,135443)|0)return;if(alb(e,46)|0)return;g=alb(e,101)|0;if(!g){Qua(b,66749);return}iR(b,3);e=alb((c[f>>2]|0)+h|0,0)|0;while(1){if(e>>>0>>0)break;a[e+2>>0]=a[e>>0]|0;e=e+-1|0}a[g>>0]=46;a[g+1>>0]=48;c[i>>2]=(c[i>>2]|0)+2;return}while(0);f=b+4|0;g=b+12|0;e=a[(c[f>>2]|0)+((c[g>>2]|0)+-1)>>0]|0;if(e<<24>>24==45){i=rrb(d,1)|0;if(hXa(c[i>>2]|0,c[37233]|0)|0)f=22;else{e=a[(c[f>>2]|0)+((c[g>>2]|0)+-1)>>0]|0;f=20}}else f=20;if(((f|0)==20?e<<24>>24==43:0)?(i=rrb(d,1)|0,hXa(c[i>>2]|0,c[37232]|0)|0):0)f=22;if((f|0)==22)hfa(b,32);i=rrb(d,1)|0;Qua(b,e7a(WCb(c[i>>2]|0)|0)|0);i=rrb(d,2)|0;Ota(b,c[i>>2]|0,d,1);return}function to(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=c[a>>2]|0;do if(f){g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))f=Eb[c[(c[f>>2]|0)+36>>2]&511](f)|0;else f=WCb(c[g>>2]|0)|0;if(Nwb(f)|0){c[a>>2]=0;g=1;break}else{g=(c[a>>2]|0)==0;break}}else g=1;while(0);if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))f=Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0;else f=WCb(c[f>>2]|0)|0;if(!(Nwb(f)|0))if(g){h=b;i=16}else i=15;else i=13}else i=13;if((i|0)==13)if(g)i=15;else{h=0;i=16}do if((i|0)==15)c[d>>2]=c[d>>2]|6;else if((i|0)==16){f=c[a>>2]|0;g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))f=Eb[c[(c[f>>2]|0)+36>>2]&511](f)|0;else f=WCb(c[g>>2]|0)|0;if((Hb[c[(c[e>>2]|0)+52>>2]&255](e,f,0)|0)<<24>>24!=37){c[d>>2]=c[d>>2]|4;break}f=c[a>>2]|0;g=f+12|0;b=c[g>>2]|0;if((b|0)==(c[f+16>>2]|0)){Eb[c[(c[f>>2]|0)+40>>2]&511](f)|0;f=c[a>>2]|0;if(!f)g=1;else i=24}else{c[g>>2]=b+4;i=24}do if((i|0)==24){g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))f=Eb[c[(c[f>>2]|0)+36>>2]&511](f)|0;else f=WCb(c[g>>2]|0)|0;if(Nwb(f)|0){c[a>>2]=0;g=1;break}else{g=(c[a>>2]|0)==0;break}}while(0);if(h){f=c[h+12>>2]|0;if((f|0)==(c[h+16>>2]|0))f=Eb[c[(c[h>>2]|0)+36>>2]&511](h)|0;else f=WCb(c[f>>2]|0)|0;if(!(Nwb(f)|0)){if(g)break}else i=35}else i=35;if((i|0)==35?!g:0)break;c[d>>2]=c[d>>2]|2}while(0);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;j=yb;yb=yb+16|0;h=j;do if(c[a+4>>2]|0){e=Naa(a)|0;while(1){if(!e){e=0;i=8;break}if((b|0)==(d|0)){i=8;break}k=b;c[e+8>>2]=c[k+8>>2];k=k+12|0;f=e+12|0;c[f>>2]=c[k>>2];c[f+4>>2]=c[k+4>>2];c[f+8>>2]=c[k+8>>2];f=c[e>>2]|0;n=0;U(143,a|0,e|0)|0;k=n;n=0;if(k&1)break;e=f;b=c[b>>2]|0}if((i|0)==8){uSa(e);g=b;break}b=ta(0)|0;P()|0;pa(b|0)|0;uSa(e);n=0;ba(8);n=0;b=sa()|0;P()|0;n=0;ba(5);k=n;n=0;if(k&1){k=ta(0)|0;P()|0;yub(k)}else Ea(b|0)}else g=b;while(0);b=g;while(1){if((b|0)==(d|0)){i=16;break}LN(h,a,b+8|0);e=c[h>>2]|0;n=0;U(143,a|0,e|0)|0;k=n;n=0;if(k&1)break;c[h>>2]=0;b=c[b>>2]|0}if((i|0)==16){yb=j;return}b=sa()|0;P()|0;c[h>>2]=0;if(!e)Ea(b|0);RCb(e);Ea(b|0)}function vo(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;l=yb;yb=yb+192|0;i=l+92|0;j=l;g=c[d>>2]|0;if(!g){yb=l;return e|0}if((f|0)!=0?(c[f>>2]|0)!=0:0){h=a+40|0;VA(i,pob(c[h>>2]|0)|0,g);g=c[f>>2]|0;if(g|0){k=pob(c[h>>2]|0)|0;n=0;ea(130,j|0,k|0,g|0);k=n;n=0;if(k&1){l=sa()|0;P()|0;Fha(i);Ea(l|0)}k=Hi(j,i)|0;Fha(j);if(k){Fha(i);yb=l;return e|0}}Fha(i);g=c[d>>2]|0}g=Rqb(g)|0;if(!g){yb=l;return e|0}if(eCb(c[g+8>>2]|0)|0){yb=l;return e|0}j=g+16|0;if((WCb(c[j>>2]|0)|0)>>>0<=1){yb=l;return e|0}f=b+4|0;if((c[f>>2]|0)==0?hU(g)|0:0){yb=l;return e|0}k=g+12|0;h=cWa(k)|0;h=c[h>>2]|0;i=c[h+4>>2]|0;if((i|0)==6){yb=l;return e|0}if((c[g+4>>2]|0)!=(i|0)){yb=l;return e|0}c[d>>2]=h;if(!e){e=cWa(k)|0;c[e>>2]=b;uZa(g,c[f>>2]|0);Pwb(c[a+16>>2]|0,g);e=g;yb=l;return e|0}f=e+12|0;d=cWa(f)|0;if((c[d>>2]|0)!=(b|0))ma(87228,87186,434,87255);pYa(f);g=0;while(1){if(g>>>0>=((WCb(c[j>>2]|0)|0)+-1|0)>>>0)break;d=uXa(k,g)|0;Wla(f,c[d>>2]|0);g=g+1|0}Wla(f,b);yb=l;return e|0}function wo(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,s=0,t=0;t=yb;yb=yb+176|0;r=t+144|0;s=t+120|0;j=t+96|0;e=t+72|0;f=t+48|0;g=t+24|0;h=t;egb(s);egb(j);switch(c[d+8>>2]|0){case 54:{Bqb(e,-2147483648);c[s>>2]=c[e>>2];c[s+4>>2]=c[e+4>>2];c[s+8>>2]=c[e+8>>2];c[s+12>>2]=c[e+12>>2];c[s+16>>2]=c[e+16>>2];Bqb(f,2147483647);c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];c[j+16>>2]=c[f+16>>2];m=8;n=7;i=33;o=45;break}case 67:{Heb(g,0,-2147483648);c[s>>2]=c[g>>2];c[s+4>>2]=c[g+4>>2];c[s+8>>2]=c[g+8>>2];c[s+12>>2]=c[g+12>>2];c[s+16>>2]=c[g+16>>2];Heb(h,-1,2147483647);c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];c[j+16>>2]=c[h+16>>2];m=33;n=32;i=34;o=46;break}default:{yb=t;return}}k=b+44|0;p=c[k>>2]|0;e=pVa(c[p>>2]|0,i,c[d+12>>2]|0)|0;f=c[k>>2]|0;q=r;l=q+24|0;do{a[q>>0]=a[j>>0]|0;q=q+1|0;j=j+1|0}while((q|0)<(l|0));g=D7(f,r)|0;g=hIa(c[p>>2]|0,n,e,g)|0;h=c[k>>2]|0;f=pVa(c[h>>2]|0,i,c[d+16>>2]|0)|0;e=c[k>>2]|0;q=r;j=s;l=q+24|0;do{a[q>>0]=a[j>>0]|0;q=q+1|0;j=j+1|0}while((q|0)<(l|0));s=D7(e,r)|0;s=hIa(c[h>>2]|0,n,f,s)|0;s=hIa(c[p>>2]|0,m,g,s)|0;s=pVa(c[p>>2]|0,o,s)|0;Pwb(c[b+16>>2]|0,s);yb=t;return}function xo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+96|0;e=h+64|0;f=h+32|0;g=h;tw(e,b,c[d+8>>2]|0);if(lsb(e)|0){c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];c[a+28>>2]=c[e+28>>2];yb=h;return}tw(f,b,c[d+12>>2]|0);if(lsb(f)|0){c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];c[a+16>>2]=c[f+16>>2];c[a+20>>2]=c[f+20>>2];c[a+24>>2]=c[f+24>>2];c[a+28>>2]=c[f+28>>2];yb=h;return}tw(g,b,c[d+16>>2]|0);if(lsb(g)|0){c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=h;return}else{g=(Peb(g)|0)==0;g=g?f:e;c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=h;return}}function yo(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,o=0,p=0,q=0;p=yb;yb=yb+288|0;g=p+284|0;h=p+280|0;q=p+188|0;o=p+96|0;m=p+4|0;k=p;l=b+16|0;d=c[l>>2]|0;if(!d){q=0;yb=p;return q|0}j=b+12|0;f=c[j>>2]|0;if(!(vub(c[f+4>>2]|0)|0)){q=0;yb=p;return q|0}if(!(vub(c[d+4>>2]|0)|0)){q=0;yb=p;return q|0}i=a+28|0;e=c[i>>2]|0;do if(!(c[e+8>>2]|0)){Ncb(g,f);g=c[g>>2]|0;Ncb(h,c[l>>2]|0);if((g+(c[h>>2]|0)|0)>>>0>6){q=0;yb=p;return q|0}else{e=c[i>>2]|0;break}}while(0);d=b+8|0;VA(q,e,c[d>>2]|0);a:do if(QGa(q)|0)d=0;else{n=0;ea(130,o|0,c[i>>2]|0,c[j>>2]|0);b=n;n=0;if(b&1){p=sa()|0;P()|0;Fha(q);Ea(p|0)}b:do if(!(QGa(o)|0)){n=0;ea(130,m|0,c[i>>2]|0,c[l>>2]|0);i=n;n=0;do if(!(i&1)){if(QGa(m)|0){Fha(m);break b}Gsb(k,WCb(c[a+20>>2]|0)|0);n=0;d=W(22,c[k>>2]|0,c[d>>2]|0,c[j>>2]|0,c[l>>2]|0)|0;l=n;n=0;if(l&1){d=sa()|0;P()|0;Fha(m);break}else{Fha(m);Fha(o);break a}}else{d=sa()|0;P()|0}while(0);Fha(o);p=d;Fha(q);Ea(p|0)}while(0);Fha(o);d=0}while(0);Fha(q);q=d;yb=p;return q|0}function zo(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=yb;yb=yb+32|0;d=n+16|0;k=n+12|0;f=n+8|0;l=n+4|0;m=n;e=mAa(c[b+156>>2]|0)|0;if(!e){yb=n;return}h=b+72|0;if(a[h>>0]&1)BM(IWa(150620,113793)|0);i=E3(b,2)|0;j=b+68|0;g=c[j>>2]|0;Pwb(d,e);YA(g,c[d>>2]|0)|0;c[k>>2]=b;g=b+64|0;C6(c[g>>2]|0,b,k);R6(c[g>>2]|0,b,k);d=c[g>>2]|0;e=d+84|0;if(Yrb(e)|0){if(!(a[h>>0]&1))d=e;else{BM(IWa(150620,113809)|0);d=(c[g>>2]|0)+84|0}wUa(c[k>>2]|0,d);d=c[j>>2]|0;Pwb(f,2);YA(d,c[f>>2]|0)|0;d=c[g>>2]|0;o=c[d+100>>2]|0;e=c[d+104>>2]|0;f=Etb(d+84|0)|0;_T(b,o,e,f,(a[d+120>>0]&1)!=0);d=c[g>>2]|0}d=d+48|0;if(Yrb(d)|0){if(a[h>>0]&1){BM(IWa(150620,113826)|0);d=(c[g>>2]|0)+48|0}wUa(c[k>>2]|0,d);o=c[j>>2]|0;Pwb(l,1);YA(o,c[l>>2]|0)|0;o=c[j>>2]|0;Pwb(m,-16);zz(o,c[m>>2]|0);o=c[g>>2]|0;l=c[o+64>>2]|0;m=c[o+68>>2]|0;_T(b,l,m,Etb(o+48|0)|0,0)}gF(b,i);yb=n;return}function Ao(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}k=e+4|0;h=0;while(1){l=h+3|0;m=c[e>>2]|0;g=(c[k>>2]|0)-m|0;j=h+2|0;if(l>>>0>g>>>0)break;i=d[m+h>>0]|0;g=(d[m+(h+1)>>0]|0)<<8;f=d[m+j>>0]|0;n=0;da(91,b|0,a[54402+(i>>>2)>>0]|0);m=n;n=0;if(m&1){o=24;break}n=0;da(91,b|0,a[54402+((i<<16|g)>>>12&63)>>0]|0);m=n;n=0;if(m&1){o=24;break}n=0;da(91,b|0,a[54402+((g|f)>>>6&63)>>0]|0);m=n;n=0;if(m&1){o=24;break}n=0;da(91,b|0,a[54402+(f&63)>>0]|0);m=n;n=0;if(m&1){o=24;break}h=l}if((o|0)==24){o=sa()|0;P()|0;Chb(b);Ea(o|0)}f=h+1|0;do if((j|0)==(g|0)){g=d[m+h>>0]|0;f=d[m+f>>0]|0;n=0;da(91,b|0,a[54402+(g>>>2)>>0]|0);o=n;n=0;if(((!(o&1)?(n=0,da(91,b|0,a[54402+((g<<8|f)>>>4&63)>>0]|0),o=n,n=0,!(o&1)):0)?(n=0,da(91,b|0,a[54402+(f<<2&60)>>0]|0),o=n,n=0,!(o&1)):0)?(n=0,da(91,b|0,61),o=n,n=0,!(o&1)):0)return}else{if((f|0)!=(g|0))if((h|0)==(g|0))return;else{n=0;fa(75,54467,51625,477,54484);n=0;break}f=d[m+h>>0]|0;n=0;da(91,b|0,a[54402+(f>>>2)>>0]|0);o=n;n=0;if(((!(o&1)?(n=0,da(91,b|0,a[54402+(f<<4&48)>>0]|0),o=n,n=0,!(o&1)):0)?(n=0,da(91,b|0,61),o=n,n=0,!(o&1)):0)?(n=0,da(91,b|0,61),o=n,n=0,!(o&1)):0)return}while(0);o=sa()|0;P()|0;Chb(b);Ea(o|0)}function Bo(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;t=yb;yb=yb+16|0;j=t;a[d>>0]=0;g=e+(c[(c[e>>2]|0)+-12>>2]|0)|0;h=c[g+16>>2]|0;if(!h){g=c[g+72>>2]|0;if(g|0)Ju(g)|0;do if(!f?(i=e+(c[(c[e>>2]|0)+-12>>2]|0)|0,c[i+4>>2]&4096|0):0){anb(j,i);n=0;g=U(66,c[j>>2]|0,151324)|0;r=n;n=0;if(r&1){t=sa()|0;P()|0;XWa(j);Ea(t|0)}XWa(j);q=c[e+(c[(c[e>>2]|0)+-12>>2]|0)+24>>2]|0;k=g+8|0;l=q;m=(q|0)==0;o=l+12|0;p=l+16|0;r=q;while(1){if(m)break;g=c[o>>2]|0;if((g|0)==(c[p>>2]|0))g=Eb[c[(c[r>>2]|0)+36>>2]&511](l)|0;else g=Qzb(a[g>>0]|0)|0;j=dub(g,-1)|0;i=j?0:q;if(j)break;f=i;h=f+12|0;g=c[h>>2]|0;j=f+16|0;if((g|0)==(c[j>>2]|0))g=Eb[c[(c[i>>2]|0)+36>>2]&511](f)|0;else g=Qzb(a[g>>0]|0)|0;if((g&255)<<24>>24<=-1){s=23;break}if(!(b[(c[k>>2]|0)+(g<<24>>24<<1)>>1]&8192)){s=23;break}g=c[h>>2]|0;if((g|0)==(c[j>>2]|0))Eb[c[(c[i>>2]|0)+40>>2]&511](f)|0;else c[h>>2]=g+1}if((s|0)==23){g=c[h>>2]|0;if((g|0)==(c[j>>2]|0))g=Eb[c[(c[r>>2]|0)+36>>2]&511](f)|0;else g=Qzb(a[g>>0]|0)|0;if(!(dub(g,-1)|0))break}s=e+(c[(c[e>>2]|0)+-12>>2]|0)|0;eW(s,c[s+16>>2]|6)}while(0);a[d>>0]=(c[e+(c[(c[e>>2]|0)+-12>>2]|0)+16>>2]|0)==0&1}else eW(g,h|4);yb=t;return}function Co(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;l=yb;yb=yb+32|0;e=l+24|0;h=l;f=l+20|0;k=l+8|0;if(a[b+12>>0]&1)BM(IWa(150620,113275)|0);j=Nv(b)|0;i=d+4|0;c[i>>2]=j;j=d+8|0;g=hB(b)|0;c[j>>2]=g;c[f>>2]=g;c[e>>2]=c[f>>2];fib(h,e,0);g=b+156|0;e=c[g>>2]|0;if(e>>>0<(c[b+160>>2]|0)>>>0){m=h;f=c[m+4>>2]|0;h=e;c[h>>2]=c[m>>2];c[h+4>>2]=f;c[g>>2]=(c[g>>2]|0)+8}else VG(b+152|0,h);m=b+188|0;f=b+184|0;e=(c[m>>2]|0)-(c[f>>2]|0)>>2;wn(b);f=(c[m>>2]|0)-(c[f>>2]|0)>>2;if((f-e|0)==1){m=Ct(b)|0;c[d+12>>2]=m;m=c[g>>2]|0;m=m+-8|0;c[g>>2]=m;m=b+164|0;_ca(m,j);m=c[i>>2]|0;iZa(d,m);yb=l;return}do if(f>>>0>>0){c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;D8(k,116959,Zzb(116959)|0);n=0;da(4022,b|0,k|0);m=n;n=0;if(m&1){m=sa()|0;P()|0;Chb(k);Ea(m|0)}else{Chb(k);break}}while(0);m=Eeb(c[b+4>>2]|0)|0;pr(b,m,e,f);uZa(m,c[i>>2]|0);c[d+12>>2]=m;m=c[g>>2]|0;m=m+-8|0;c[g>>2]=m;m=b+164|0;_ca(m,j);m=c[i>>2]|0;iZa(d,m);yb=l;return}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,l=0,m=0,n=0,o=0;o=yb;yb=yb+96|0;n=o+72|0;k=o+64|0;f=o+32|0;l=o;m=o+68|0;tw(f,d,c[e+24>>2]|0);if(lsb(f)|0){c[b>>2]=c[f>>2];c[b+4>>2]=c[f+4>>2];c[b+8>>2]=c[f+8>>2];c[b+12>>2]=c[f+12>>2];c[b+16>>2]=c[f+16>>2];c[b+20>>2]=c[f+20>>2];c[b+24>>2]=c[f+24>>2];c[b+28>>2]=c[f+28>>2];yb=o;return}tw(l,d,c[e+28>>2]|0);if(lsb(l)|0){c[b>>2]=c[l>>2];c[b+4>>2]=c[l+4>>2];c[b+8>>2]=c[l+8>>2];c[b+12>>2]=c[l+12>>2];c[b+16>>2]=c[l+16>>2];c[b+20>>2]=c[l+20>>2];c[b+24>>2]=c[l+24>>2];c[b+28>>2]=c[l+28>>2];yb=o;return}else{d=d+4|0;g=c[d>>2]|0;j=n;h=f;i=j+24|0;do{a[j>>0]=a[h>>0]|0;j=j+1|0;h=h+1|0}while((j|0)<(i|0));j=Gv(g,e,n)|0;d=c[(c[d>>2]|0)+36>>2]|0;f=c[(c[d>>2]|0)+28>>2]|0;c[m>>2]=j;c[k>>2]=c[m>>2];j=n;h=l;i=j+24|0;do{a[j>>0]=a[h>>0]|0;j=j+1|0;h=h+1|0}while((j|0)<(i|0));Ub[f&255](d,e,k,n);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;zsb(b);yb=o;return}}function Eo(e,f,g,h,i,j){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0;c[g>>2]=e;c[j>>2]=h;p=f;q=i;a:while(1){m=c[g>>2]|0;if(m>>>0>=f>>>0){e=0;break}if(h>>>0>=i>>>0){e=1;break}l=a[m>>0]|0;o=l&255;do if(l<<24>>24>-1){b[h>>1]=l&255;e=m+1|0}else{if((l&255)<194){e=2;break a}if((l&255)<224){if((p-m|0)<2){e=1;break a}e=d[m+1>>0]|0;if((e&192|0)!=128){e=2;break a}b[h>>1]=e&63|o<<6&1984;e=m+2|0;break}if((l&255)<240){if((p-m|0)<3){e=1;break a}k=a[m+1>>0]|0;e=a[m+2>>0]|0;switch(l<<24>>24){case -32:{if((k&-32)<<24>>24!=-96){e=2;break a}break}case -19:{if((k&-32)<<24>>24!=-128){e=2;break a}break}default:if((k&-64)<<24>>24!=-128){e=2;break a}}e=e&255;if((e&192|0)!=128){e=2;break a}b[h>>1]=(k&63)<<6|o<<12|e&63;e=m+3|0;break}if((l&255)>=245){e=2;break a}if((p-m|0)<4){e=1;break a}n=a[m+1>>0]|0;e=a[m+2>>0]|0;k=a[m+3>>0]|0;switch(l<<24>>24){case -16:{if((n+112&255)>=48){e=2;break a}break}case -12:{if((n&-16)<<24>>24!=-128){e=2;break a}break}default:if((n&-64)<<24>>24!=-128){e=2;break a}}m=e&255;if((m&192|0)!=128){e=2;break a}l=k&255;if((l&192|0)!=128){e=2;break a}if((q-h|0)<4){e=1;break a}k=o&7;e=n&255;if((e<<12&196608|k<<18)>>>0>1114111){e=2;break a}b[h>>1]=e<<2&60|m>>>4&3|((e>>>4&3|k<<2)<<6)+16320|55296;e=h+2|0;c[j>>2]=e;b[e>>1]=l&63|m<<6&960|56320;e=(c[g>>2]|0)+4|0}while(0);c[g>>2]=e;h=(c[j>>2]|0)+2|0;c[j>>2]=h}return e|0}function Fo(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;k=yb;yb=yb+32|0;h=k+24|0;j=k;i=(c[b+4>>2]|0)-(c[b>>2]|0)|0;g=i>>2;if(!i){e=c[d>>2]|0;if((c[d+4>>2]|0)==(e|0))ma(111415,111339,163,111436);while(1){if(nKa(c[e+16>>2]|0)|0)break;e=c[d>>2]|0}yb=k;return}Rfb(149404);do if((((c[d+4>>2]|0)-(c[d>>2]|0)|0)/24|0|0)==(g|0)){i=b+12|0;if(a[i>>0]&1){n=0;fa(75,111465,111339,174,111436);n=0;break}a[i>>0]=1;c[h>>2]=149432;a[h+4>>0]=1;n=0;ca(503,149432);f=n;n=0;if(!(f&1)){n=0;ca(551,b|0);f=n;n=0;do if(!(f&1)){e=0;while(1){if(e>>>0>=g>>>0){f=23;break}f=c[(c[b>>2]|0)+(e<<2)>>2]|0;n=0;da(4010,j|0,(c[d>>2]|0)+(e*24|0)|0);l=n;n=0;if(l&1){f=19;break}n=0;da(4011,f|0,j|0);l=n;n=0;if(l&1){f=22;break}TIa(j);e=e+1|0}if((f|0)==19){e=sa()|0;P()|0;f=21;break}else if((f|0)==22){e=sa()|0;P()|0;TIa(j);break}else if((f|0)==23){Wba(b+16|0,h,b);a[i>>0]=0;KZa(149432);KZa(149404);yb=k;return}}else{e=sa()|0;P()|0;f=21}while(0);KZa(149432);l=e;KZa(149404);Ea(l|0)}}else{n=0;fa(75,111441,111339,173,111436);n=0}while(0);l=sa()|0;P()|0;KZa(149404);Ea(l|0)}function Go(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,o=0,p=0,q=0,r=0,s=0,t=0;t=yb;yb=yb+16|0;r=t+8|0;s=t;f=(b|0)==0;do if(!f){if(b>>>0<=1073741823){e=mla(b<<2)|0;break}d=oa(8)|0;n=0;da(67,d|0,138616);t=n;n=0;if(t&1){t=sa()|0;P()|0;va(d|0);Ea(t|0)}else{c[d>>2]=50788;za(d|0,39592,473)}}else e=0;while(0);d=c[a>>2]|0;c[a>>2]=e;if(d|0)RCb(d);c[a+4>>2]=b;if(f){yb=t;return}d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}e=a+8|0;f=c[e>>2]|0;if(!f){yb=t;return}d=c[f+4>>2]|0;p=b+-1|0;q=(p&b|0)==0;if(!q){if(d>>>0>=b>>>0)d=(d>>>0)%(b>>>0)|0}else d=d&p;c[(c[a>>2]|0)+(d<<2)>>2]=e;m=r+4|0;o=s+4|0;l=f;while(1){e=c[l>>2]|0;if(!e)break;f=c[e+4>>2]|0;if(!q){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&p;do if((f|0)!=(d|0)){g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0)){c[g>>2]=l;d=f;break}g=e+8|0;h=e;while(1){j=c[h>>2]|0;if(!j){k=29;break}cjb(r,g);cjb(s,j+8|0);if(!(xTa(c[r>>2]|0,c[m>>2]|0,c[s>>2]|0,c[o>>2]|0)|0)){k=31;break}h=c[h>>2]|0}if((k|0)==29){i=h;g=j}else if((k|0)==31){i=h;g=c[h>>2]|0}c[l>>2]=g;c[i>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=e;e=l}while(0);l=e}yb=t;return}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,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=yb;yb=yb+32|0;i=u+28|0;h=u+24|0;s=u+8|0;t=u;g=c[a>>2]|0;if(!(HYa(g,b)|0)){c[h>>2]=c[e>>2];c[i>>2]=c[h>>2];s=dWa(Kha(g,i,f)|0)|0;t=c[37277]|0;t=mv(s,t,uga(a,d,c[37044]|0)|0)|0;yb=u;return t|0}DW(s,c[d+4>>2]|0,g,c[a+8>>2]|0,c[a+4>>2]|0);n=0;g=V(45,a|0,d|0,s|0)|0;h=n;n=0;if(((((((!(h&1)?(n=0,j=S(225,g|0)|0,h=n,n=0,!(h&1)):0)?(n=0,k=U(56,j|0,1)|0,h=n,n=0,!(h&1)):0)?(l=WCb(c[k>>2]|0)|0,c[t>>2]=c[e>>2],m=c[a>>2]|0,n=0,c[i>>2]=c[t>>2],m=V(50,m|0,i|0,f|0)|0,t=n,n=0,!(t&1)):0)?(n=0,o=S(219,m|0)|0,t=n,n=0,!(t&1)):0)?(p=c[37277]|0,n=0,q=S(224,s|0)|0,t=n,n=0,!(t&1)):0)?(n=0,r=V(48,o|0,p|0,q|0)|0,t=n,n=0,!(t&1)):0)?(t=WCb(r)|0,n=0,U(57,l|0,t|0)|0,t=n,n=0,!(t&1)):0){dha(s);t=j;yb=u;return t|0}u=sa()|0;P()|0;dha(s);Ea(u|0);return 0}function Io(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+48|0;g=s+32|0;d=s+28|0;i=s+24|0;l=s+20|0;m=s+16|0;n=s+12|0;o=s+8|0;p=s+4|0;q=s;e=b+64|0;k=c[e>>2]|0;if((c[k+16>>2]|0)==(c[k+12>>2]|0)){yb=s;return}h=b+72|0;if(a[h>>0]&1)BM(IWa(150620,113663)|0);j=E3(b,7)|0;k=b+68|0;f=c[k>>2]|0;t=c[e>>2]|0;Pwb(d,(c[t+16>>2]|0)-(c[t+12>>2]|0)>>2);YA(f,c[d>>2]|0)|0;d=c[e>>2]|0;e=c[d+16>>2]|0;d=c[d+12>>2]|0;a:while(1){if((d|0)==(e|0))break;if(a[h>>0]&1)BM(IWa(150620,113679)|0);Jaa(b,c[c[d>>2]>>2]|0);f=c[k>>2]|0;Pwb(i,c[(c[d>>2]|0)+8>>2]|0);YA(f,c[i>>2]|0)|0;f=c[d>>2]|0;switch(c[f+8>>2]|0){case 0:{t=c[k>>2]|0;c[m>>2]=c[f+4>>2];c[g>>2]=c[m>>2];Pwb(l,rda(b,g)|0);YA(t,c[l>>2]|0)|0;break}case 1:{t=c[k>>2]|0;Pwb(n,0);YA(t,c[n>>2]|0)|0;break}case 2:{t=c[k>>2]|0;Pwb(o,0);YA(t,c[o>>2]|0)|0;break}case 3:{t=c[k>>2]|0;c[q>>2]=c[f+4>>2];c[g>>2]=c[q>>2];Pwb(p,Gda(b,g)|0);YA(t,c[p>>2]|0)|0;break}default:{r=13;break a}}d=d+4|0}if((r|0)==13)ma(141129,112368,307,113689);gF(b,j);yb=s;return}function Jo(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=yb;yb=yb+48|0;k=j+28|0;l=j+16|0;h=j+4|0;i=j;e=(c[b>>2]|0)+3|0;while(1){d=a[e>>0]|0;if(d<<24>>24!=32)break;e=e+1|0}g=e;a:while(1){switch(d<<24>>24){case 0:case 10:break a;default:{}}d=g+1|0;g=d;d=a[d>>0]|0}d=e;while(1){if(d>>>0>=g>>>0){f=23;break}if((a[d>>0]|0)==58)break;d=d+1|0}if((f|0)==23){yb=j;return}c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;qU(k,e,d);e=d+1|0;d=e;while(1){f=d>>>0>>0;if(!f)break;if((a[d>>0]|0)==58)break;d=d+1|0}c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;n=0;ea(200,l|0,e|0,d|0);e=n;n=0;if(e&1){l=sa()|0;P()|0;Chb(k);Ea(l|0)}do if(f){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;n=0;ea(200,h|0,d+1|0,g|0);g=n;n=0;if(g&1){d=sa()|0;P()|0}else{n=0;d=V(119,b+16|0,12,4)|0;g=n;n=0;if(!(g&1)?(n=0,ea(101,i|0,((a[k+11>>0]|0)<0?c[k>>2]|0:k)|0,0),g=n,n=0,!(g&1)):0){f=sY((a[l+11>>0]|0)<0?c[l>>2]|0:l)|0;g=sY((a[h+11>>0]|0)<0?c[h>>2]|0:h)|0;n9a(d,c[i>>2]|0,f,g);c[b+12>>2]=d;Chb(h);break}d=sa()|0;P()|0;Chb(h)}Chb(l);l=d;Chb(k);Ea(l|0)}while(0);Chb(l);Chb(k);yb=j;return}function Ko(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;j=g+8|0;while(1){g=c[d>>2]|0;do if(g){h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Eb[c[(c[g>>2]|0)+36>>2]&511](g)|0;else g=Qzb(a[h>>0]|0)|0;if(dub(g,-1)|0){c[d>>2]=0;h=1;break}else{h=(c[d>>2]|0)==0;break}}else h=1;while(0);if(e){g=c[e+12>>2]|0;if((g|0)==(c[e+16>>2]|0))g=Eb[c[(c[e>>2]|0)+36>>2]&511](e)|0;else g=Qzb(a[g>>0]|0)|0;if(!(dub(g,-1)|0)){if(!h)break}else k=14}else k=14;if((k|0)==14){k=0;if(h){e=0;break}else e=0}g=c[d>>2]|0;h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Eb[c[(c[g>>2]|0)+36>>2]&511](g)|0;else g=Qzb(a[h>>0]|0)|0;if((g&255)<<24>>24<=-1)break;if(!(b[(c[j>>2]|0)+(g<<24>>24<<1)>>1]&8192))break;g=c[d>>2]|0;h=g+12|0;i=c[h>>2]|0;if((i|0)==(c[g+16>>2]|0))Eb[c[(c[g>>2]|0)+40>>2]&511](g)|0;else c[h>>2]=i+1}g=c[d>>2]|0;do if(g){h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Eb[c[(c[g>>2]|0)+36>>2]&511](g)|0;else g=Qzb(a[h>>0]|0)|0;if(dub(g,-1)|0){c[d>>2]=0;h=1;break}else{h=(c[d>>2]|0)==0;break}}else h=1;while(0);if(e){g=c[e+12>>2]|0;if((g|0)==(c[e+16>>2]|0))g=Eb[c[(c[e>>2]|0)+36>>2]&511](e)|0;else g=Qzb(a[g>>0]|0)|0;if(!(dub(g,-1)|0)){if(!h)k=39}else k=37}else k=37;if((k|0)==37?h:0)k=39;if((k|0)==39)c[f>>2]=c[f>>2]|2;return}function Lo(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;m=b+16|0;d=c[m>>2]|0;if(!(WCb(d)|0))return;k=b+12|0;l=a+80|0;j=0;a:while(1){if(j>>>0>=(d+-1|0)>>>0){b=18;break}b=0;h=j;while(1){i=h+1|0;if(i>>>0>=d>>>0)break;d=uXa(k,i)|0;d=p7(c[d>>2]|0,c[l>>2]|0)|0;if(!d){e=uXa(k,i)|0;e=Rqb(c[e>>2]|0)|0;if(!e)break;d=e+16|0;if(!(WCb(c[d>>2]|0)|0))break;f=e+12|0;g=uXa(f,0)|0;g=p7(c[g>>2]|0,c[l>>2]|0)|0;if(!g)break;h=uXa(k,j)|0;if(b|(Ii(a,g,c[h>>2]|0)|0))b=1;else{if((WCb(c[d>>2]|0)|0)!=1){b=14;break a}qs(a,uXa(k,j)|0,g);h=uXa(k,j)|0;h=c[h>>2]|0;b=uXa(f,0)|0;c[b>>2]=h;b=uXa(k,j)|0;c[b>>2]=e;b=uXa(k,i)|0;c[b>>2]=g;Gjb(g);b=0}}else{h=uXa(k,j)|0;if(b|(Ii(a,d,c[h>>2]|0)|0))b=1;else{qs(a,uXa(k,j)|0,d);Gjb(d);b=0}}h=i;d=c[m>>2]|0}j=h+1|0;d=c[m>>2]|0}if((b|0)==14)ma(100147,100172,124,126937);else if((b|0)==18)return}function Mo(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,o=0;l=yb;yb=yb+80|0;i=l+68|0;e=l+64|0;j=l+8|0;k=l;IWa(150452,98758)|0;_ga(d);Zga(d);f=c[d+16>>2]|0;a=c[d+12>>2]|0;while(1){if((a|0)==(f|0))break;b=c[a>>2]|0;if(!(c[b+8>>2]|0)){c[e>>2]=c[b+4>>2];c[i>>2]=c[e>>2];h=wQ(d,i)|0;g=IWa(150452,99221)|0;IWa(mpa(g,c[h+8>>2]|0)|0,99225)|0}a=a+4|0}WV(j,d);f=c[d+76>>2]|0;e=c[d+72>>2]|0;a:while(1){if((e|0)==(f|0))break;g=c[e+8>>2]|0;a=c[e+4>>2]|0;while(1){h=a;if((g|0)==(h|0))break;c[k>>2]=c[a>>2];n=0;c[i>>2]=c[k>>2];a=U(64,d|0,i|0)|0;b=n;n=0;if(b&1){m=18;break a}n=0;b=U(59,150452,99221)|0;o=n;n=0;if(o&1){m=18;break a}n=0;a=U(82,b|0,c[a+8>>2]|0)|0;o=n;n=0;if(o&1){m=18;break a}n=0;U(59,a|0,99264)|0;o=n;n=0;if(o&1){m=18;break a}a=h+4|0}e=e+16|0}if((m|0)==18){o=sa()|0;P()|0;aOa(j);Ea(o|0)}n=0;U(59,150452,99294)|0;o=n;n=0;if(!(o&1)){aOa(j);yb=l;return}o=sa()|0;P()|0;aOa(j);Ea(o|0)}function No(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;f=e;if(u1(b)|0){yb=e;return}d=kH(Vr(b,0)|0)|0;if(dub(d,c[37382]|0)|0){Aqa(a,b);yb=e;return}if(dub(d,c[37383]|0)|0){mc(a,b,0);yb=e;return}if(dub(d,c[37386]|0)|0){Cf(a,b,0);yb=e;return}if(dub(d,c[37387]|0)|0){tB(a,b);yb=e;return}if(dub(d,c[37389]|0)|0){We(a,b);yb=e;return}if(dub(d,c[37390]|0)|0){yb=e;return}if(dub(d,c[37105]|0)|0){Dc(a,b,0);yb=e;return}if(dub(d,c[37391]|0)|0){Of(a,b,0);yb=e;return}if(dub(d,c[37392]|0)|0){Pma(a,b);yb=e;return}if(dub(d,c[37394]|0)|0){yb=e;return}SEa(IWa(IWa(150620,119110)|0,d)|0,10)|0;e=oa(20)|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;d=Zzb(119130)|0;n=0;ea(95,f|0,119130,d|0);d=n;n=0;if(!(d&1)){n=0;fa(134,e|0,f|0,c[b+28>>2]|0,c[b+32>>2]|0);b=n;n=0;if(b&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}a=sa()|0;P()|0;Chb(f);if(!d){f=a;Ea(f|0)}}else{a=sa()|0;P()|0}va(e|0);f=a;Ea(f|0)}function Oo(){ayb();Kxb();kxb();Gxb();Wwb();Dxb();Dwb();uwb();owb();mwb();sxb();qxb();pxb();oxb();kwb();jwb();iwb();hwb();nxb();gwb();mxb();jxb();fwb();ewb();ixb();hxb();gxb();fxb();exb();dxb();dwb();bxb();axb();$wb();_wb();Zwb();Ywb();cwb();bwb();awb();$vb();_vb();Zvb();Yvb();Xvb();Wvb();Vvb();Uvb();Tvb();Svb();Rvb();Ivb();Hvb();Gvb();Fvb();txb();Iwb();Hwb();Gwb();Fwb();Ewb();Cwb();Bwb();Awb();zwb();Evb();ywb();Dvb();xwb();wwb();vwb();Cvb();Bvb();Avb();zvb();twb();swb();yvb();rwb();qwb();pwb();xvb();wvb();nwb();mub();lub();zCb();return}function Po(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=yb;yb=yb+240|0;k=r+216|0;l=r+192|0;m=r+168|0;n=r+144|0;o=r+120|0;p=r+96|0;q=r+72|0;h=r+48|0;i=r+24|0;j=r;switch(c[b+16>>2]|0){case 3:{g=+L8a(b);e=+L8a(d);if(g==e&g==0.0){q=(irb(g)|0)<0;pUa(a,q?g:e);yb=r;return}f=e>>0>2139095040;b=((irb(e)|0)&2147483647)>>>0>2139095040;q=((irb(f)|0)&2147483647)>>>0>2139095040;b=p|b;e=p?g:e;if(q){if(!b){Bqb(k,2143289344);r_a(a,k);yb=r;return}}else if(!b){pUa(a,f);yb=r;return}pUa(n,e);q_a(m,n);Bqb(o,12582912);Gqa(l,m,o);r_a(a,l);yb=r;return}case 4:{g=+K8a(b);e=+K8a(d);if(g==e&g==0.0){leb(g)|0;q=(P()|0)<0;kEa(a,q?g:e);yb=r;return}f=e>>0>2146435072|(b|0)==2146435072&m>>>0>0;b=leb(e)|0;l=(P()|0)&2147483647;o=leb(f)|0;n=(P()|0)&2147483647;b=m|(l>>>0>2146435072|(l|0)==2146435072&b>>>0>0);e=m?g:e;if(n>>>0>2146435072|(n|0)==2146435072&o>>>0>0){if(!b){Heb(p,0,2146959360);qUa(a,p);yb=r;return}}else if(!b){kEa(a,f);yb=r;return}kEa(i,e);p=i;pZa(h,c[p>>2]|0,c[p+4>>2]|0,c[i+16>>2]|0);Heb(j,0,524288);Gqa(q,h,j);qUa(a,q);yb=r;return}default:ma(141129,111484,884,112153)}}function Qo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=yb;yb=yb+240|0;k=r+216|0;l=r+192|0;m=r+168|0;n=r+144|0;o=r+120|0;p=r+96|0;q=r+72|0;h=r+48|0;i=r+24|0;j=r;switch(c[b+16>>2]|0){case 3:{g=+L8a(b);e=+L8a(d);if(g==e&g==0.0){q=(irb(g)|0)<0;pUa(a,q?e:g);yb=r;return}f=g>>0>2139095040;b=((irb(e)|0)&2147483647)>>>0>2139095040;q=((irb(f)|0)&2147483647)>>>0>2139095040;b=p|b;e=p?g:e;if(q){if(!b){Bqb(k,2143289344);r_a(a,k);yb=r;return}}else if(!b){pUa(a,f);yb=r;return}pUa(n,e);q_a(m,n);Bqb(o,12582912);Gqa(l,m,o);r_a(a,l);yb=r;return}case 4:{g=+K8a(b);e=+K8a(d);if(g==e&g==0.0){leb(g)|0;q=(P()|0)<0;kEa(a,q?e:g);yb=r;return}f=g>>0>2146435072|(b|0)==2146435072&m>>>0>0;b=leb(e)|0;l=(P()|0)&2147483647;o=leb(f)|0;n=(P()|0)&2147483647;b=m|(l>>>0>2146435072|(l|0)==2146435072&b>>>0>0);e=m?g:e;if(n>>>0>2146435072|(n|0)==2146435072&o>>>0>0){if(!b){Heb(p,0,2146959360);qUa(a,p);yb=r;return}}else if(!b){kEa(a,f);yb=r;return}kEa(i,e);p=i;pZa(h,c[p>>2]|0,c[p+4>>2]|0,c[i+16>>2]|0);Heb(j,0,524288);Gqa(q,h,j);qUa(a,q);yb=r;return}default:ma(141129,111484,908,112157)}}function Ro(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0;q=yb;yb=yb+16|0;j=q;o=b+11|0;g=a[o>>0]|0;k=g<<24>>24<0;if(k)h=c[b>>2]|0;else h=b;p=d-h|0;m=f-e|0;do if(!m)l=29;else{if(k){h=c[b>>2]|0;i=c[b+4>>2]|0}else{h=b;i=g&255}if(ykb(e,h,h+i|0)|0){c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;NR(j,e,f);p=a[j+11>>0]|0;o=p<<24>>24<0;f=o?c[j>>2]|0:j;n=0;b=W(46,b|0,d|0,f|0,f+(o?c[j+4>>2]|0:p&255)|0)|0;p=n;n=0;if(p&1){q=sa()|0;P()|0;Chb(j);Ea(q|0)}else{Chb(j);break}}if(k){h=(c[b+8>>2]&2147483647)+-1|0;i=c[b+4>>2]|0}else{h=10;i=g&255}if((h-i|0)>>>0>=m>>>0){if(k)h=c[b>>2]|0;else h=b;g=i-p|0;if(g){l=h+p|0;Shb(l+m|0,l,g)|0}}else{mM(b,h,i+m-h|0,i,p,m);h=c[b>>2]|0}g=i+m|0;if((a[o>>0]|0)<0)c[b+4>>2]=g;else a[o>>0]=g;Fsb(h+g|0,0);g=h+p|0;while(1){if((e|0)==(f|0))break;Fsb(g,a[e>>0]|0);e=e+1|0;g=g+1|0}g=a[o>>0]|0;l=29}while(0);if((l|0)==29){if(g<<24>>24<0)b=c[b>>2]|0;b=b+p|0}yb=q;return b|0}function So(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;u=yb;yb=yb+96|0;m=u+88|0;n=u+32|0;o=u+80|0;r=u+72|0;s=u;t=u+64|0;p=b+4|0;k=d+100|0;nya(p,(WCb(c[k>>2]|0)|0)<<16);l=c[d+112>>2]|0;q=e+4|0;f=c[d+108>>2]|0;while(1){if((f|0)==(l|0))break;nwa(o,q);nz(n,o,c[f>>2]|0);j6a(m,Peb(n)|0,0);g=WCb(c[m>>2]|0)|0;h=f+8|0;i=f+4|0;j=g+((c[h>>2]|0)-(c[i>>2]|0))|0;if(j>>>0>(WCb(c[k>>2]|0)|0)<<16>>>0)Sb[c[(c[b>>2]|0)+20>>2]&8191](b,68969);e=0;while(1){j=c[i>>2]|0;if((e|0)==((c[h>>2]|0)-j|0))break;Tib(p,g+e|0,a[j+e>>0]|0);e=e+1|0}f=f+16|0}k=d+64|0;Dqa(b+16|0,WCb(c[k>>2]|0)|0);l=c[d+76>>2]|0;m=b+16|0;f=c[d+72>>2]|0;while(1){if((f|0)==(l|0))break;nwa(t,q);nz(s,t,c[f>>2]|0);j6a(r,Peb(s)|0,0);g=WCb(c[r>>2]|0)|0;h=f+8|0;i=f+4|0;d=g+((c[h>>2]|0)-(c[i>>2]|0)>>2)|0;if(d>>>0>(WCb(c[k>>2]|0)|0)>>>0)Sb[c[(c[b>>2]|0)+20>>2]&8191](b,69009);e=0;while(1){j=c[i>>2]|0;if((e|0)==((c[h>>2]|0)-j>>2|0))break;c[(c[m>>2]|0)+(g+e<<2)>>2]=c[j+(e<<2)>>2];e=e+1|0}f=f+16|0}yb=u;return}function To(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;l=yb;yb=yb+48|0;i=l+24|0;j=l+12|0;k=l;a:do if(((((d-b|0)>2?(a[b>>0]|0)==97:0)?(a[b+1>>0]|0)==122:0)?(m=b+2|0,h=ac(m,d,e)|0,(h|0)!=(m|0)):0)?(g=e+4|0,f=c[g>>2]|0,(c[e>>2]|0)!=(f|0)):0){d6(k,f+-24|0);n=0;V(128,k|0,0,141108)|0;m=n;n=0;do if(m&1){b=sa()|0;P()|0}else{c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];b=0;while(1){if((b|0)==3)break;c[k+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,j|0,139927)|0;m=n;n=0;if(m&1){b=sa()|0;P()|0;Chb(j);break}c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];b=0;while(1){if((b|0)==3)break;c[j+(b<<2)>>2]=0;b=b+1|0}b=c[g>>2]|0;e=b+-24|0;d=e+11|0;if((a[d>>0]|0)<0){Fsb(c[e>>2]|0,0);c[b+-20>>2]=0;b=e}else{Fsb(e,0);a[d>>0]=0;b=e}Yw(e);c[b>>2]=c[i>>2];c[b+4>>2]=c[i+4>>2];c[b+8>>2]=c[i+8>>2];b=0;while(1){if((b|0)==3)break;c[i+(b<<2)>>2]=0;b=b+1|0}Chb(i);Chb(j);Chb(k);b=h;break a}while(0);Chb(k);Ea(b|0)}while(0);yb=l;return b|0}function Uo(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;m=yb;yb=yb+16|0;f=m;n=0;ea(105,f|0,b|0,1);k=n;n=0;do if(!(k&1)){if(!(a[f>>0]&1)){yb=m;return b|0}k=d+11|0;if((a[k>>0]|0)<0){Fsb(c[d>>2]|0,0);j=d+4|0;c[j>>2]=0}else{Fsb(d,0);a[k>>0]=0;j=d+4|0}g=0;while(1){f=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0;h=f+12|0;i=c[h>>2]|0;if((i|0)==(c[f+16>>2]|0)){n=0;f=S(c[(c[f>>2]|0)+40>>2]|0,f|0)|0;i=n;n=0;if(i&1){l=11;break}}else{c[h>>2]=i+1;f=Qzb(a[i>>0]|0)|0}if(dub(f,-1)|0){l=21;break}g=g+1|0;f=Qzb(f)|0;if(Zqb(f,e)|0){f=0;break}n=0;da(91,d|0,f|0);i=n;n=0;if(i&1){l=11;break}if((a[k>>0]|0)<0?(c[j>>2]|0)==-17:0){f=4;break}}if((l|0)==11){h=ta(0)|0;P()|0;f=b;g=b;break}else if((l|0)==21)f=(g|0)==0?6:2;l=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=0;da(85,l|0,c[l+16>>2]|f|0);l=n;n=0;if(!(l&1)){yb=m;return b|0}else l=12}else l=12;while(0);if((l|0)==12){h=ta(0)|0;P()|0;f=b;g=b}pa(h|0)|0;n=0;ca(496,g+(c[(c[f>>2]|0)+-12>>2]|0)|0);l=n;n=0;if(!(l&1)){qa();yb=m;return b|0}f=sa()|0;P()|0;n=0;ba(5);m=n;n=0;if(m&1){m=ta(0)|0;P()|0;yub(m)}else Ea(f|0);return 0}function Vo(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;l=yb;yb=yb+48|0;i=l+24|0;j=l+12|0;k=l;a:do if(((((d-b|0)>2?(a[b>>0]|0)==97:0)?(a[b+1>>0]|0)==116:0)?(m=b+2|0,h=cc(m,d,e)|0,(h|0)!=(m|0)):0)?(g=e+4|0,f=c[g>>2]|0,(c[e>>2]|0)!=(f|0)):0){d6(k,f+-24|0);n=0;V(128,k|0,0,141108)|0;m=n;n=0;do if(m&1){b=sa()|0;P()|0}else{c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];b=0;while(1){if((b|0)==3)break;c[k+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,j|0,139927)|0;m=n;n=0;if(m&1){b=sa()|0;P()|0;Chb(j);break}c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];b=0;while(1){if((b|0)==3)break;c[j+(b<<2)>>2]=0;b=b+1|0}b=c[g>>2]|0;e=b+-24|0;d=e+11|0;if((a[d>>0]|0)<0){Fsb(c[e>>2]|0,0);c[b+-20>>2]=0;b=e}else{Fsb(e,0);a[d>>0]=0;b=e}Yw(e);c[b>>2]=c[i>>2];c[b+4>>2]=c[i+4>>2];c[b+8>>2]=c[i+8>>2];b=0;while(1){if((b|0)==3)break;c[i+(b<<2)>>2]=0;b=b+1|0}Chb(i);Chb(j);Chb(k);b=h;break a}while(0);Chb(k);Ea(b|0)}while(0);yb=l;return b|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,l=0,m=0,o=0;k=yb;yb=yb+48|0;f=k+36|0;l=k+24|0;m=k+12|0;h=k;i=a+136|0;j=c[i>>2]|0;c[f>>2]=b;f=sm(a+64|0,f)|0;c[f>>2]=j;c[i>>2]=b;f=cj(a,c[b+8>>2]|0)|0;if(!f)ma(78030,77745,268,78040);g=a+140|0;Y_(l,g);n=0;U(121,a|0,c[b+12>>2]|0)|0;e=n;n=0;if(!(e&1)?(n=0,da(1e3,m|0,g|0),e=n,n=0,!(e&1)):0){e=b+16|0;d=c[e>>2]|0;do if(!d){n=0;ha(13,a|0,l|0,m|0,f|0,b|0,g|0);o=n;n=0;if(o&1)o=14;else{c[i>>2]=j;Vob(m);Vob(l);yb=k;return a|0}}else{if((g|0)!=(l|0)){n=0;ea(133,g|0,c[l>>2]|0,c[l+4>>2]|0);d=n;n=0;if(d&1){o=14;break}d=c[e>>2]|0}n=0;U(121,a|0,d|0)|0;e=n;n=0;if(!(e&1)?(n=0,da(1e3,h|0,g|0),e=n,n=0,!(e&1)):0){n=0;ha(13,a|0,m|0,h|0,f|0,b|0,g|0);g=n;n=0;if(g&1){d=sa()|0;P()|0;Vob(h);break}Vob(h);c[i>>2]=j;Vob(m);Vob(l);yb=k;return a|0}else o=14}while(0);if((o|0)==14){d=sa()|0;P()|0}Vob(m);o=d;Vob(l);Ea(o|0)}o=sa()|0;P()|0;Vob(l);Ea(o|0);return 0}function Xo(b,d,e,f,g,h,i,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0;a:do if(b<<24>>24==h<<24>>24)if(a[d>>0]|0){a[d>>0]=0;e=c[g>>2]|0;c[g>>2]=e+1;a[e>>0]=46;g=a[j+11>>0]|0;if(((g<<24>>24<0?c[j+4>>2]|0:g&255)|0)!=0?(o=c[l>>2]|0,(o-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;o=0}else o=0}else o=-1;else{if(b<<24>>24==i<<24>>24?(i=a[j+11>>0]|0,(i<<24>>24<0?c[j+4>>2]|0:i&255)|0):0){if(!(a[d>>0]|0)){o=-1;break}o=c[l>>2]|0;if((o-k|0)>=160){o=0;break}k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;c[m>>2]=0;o=0;break}i=n+32|0;h=0;while(1){o=n+h|0;if((h|0)==32){o=i;break}if((a[o>>0]|0)==b<<24>>24)break;else h=h+1|0}h=o-n|0;if((h|0)>31)o=-1;else{i=a[31216+h>>0]|0;switch(h|0){case 24:case 25:{o=c[g>>2]|0;if((o|0)!=(f|0)?(a[o+-1>>0]&95)!=(a[e>>0]&127):0){o=-1;break a}c[g>>2]=o+1;a[o>>0]=i;o=0;break a}case 23:case 22:{a[e>>0]=80;o=c[g>>2]|0;c[g>>2]=o+1;a[o>>0]=i;o=0;break a}default:{o=i&95;if((((o|0)==(a[e>>0]|0)?(a[e>>0]=o|128,a[d>>0]|0):0)?(a[d>>0]=0,e=a[j+11>>0]|0,(e<<24>>24<0?c[j+4>>2]|0:e&255)|0):0)?(p=c[l>>2]|0,(p-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=p+4;c[p>>2]=k}l=c[g>>2]|0;c[g>>2]=l+1;a[l>>0]=i;if((h|0)>21){o=0;break a}c[m>>2]=(c[m>>2]|0)+1;o=0;break a}}}}while(0);return o|0}function Yo(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=yb;yb=yb+112|0;f=h+88|0;i=h+24|0;k=h+76|0;j=h;g=h+64|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,b,Zzb(b)|0);if((QB(a,f)|0)!=(a+4|0)){n=0;fa(75,94764,94804,43,94833);n=0;k=sa()|0;P()|0;Chb(f);Ea(k|0)}Chb(f);c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;D8(k,d,Zzb(d)|0);n=0;da(2187,j|0,e|0);f=n;n=0;if(f&1){a=sa()|0;P()|0}else{n=0;ea(156,i|0,k|0,j|0);f=n;n=0;if(f&1){a=sa()|0;P()|0}else{c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;f=Zzb(b)|0;n=0;ea(95,g|0,b|0,f|0);f=n;n=0;do if(!(f&1)){n=0;a=U(162,a|0,g|0)|0;f=n;n=0;if(f&1){a=sa()|0;P()|0;Chb(g);break}else{JU(a,i);Chb(g);Seb(i);TIa(j);Chb(k);yb=h;return}}else{a=sa()|0;P()|0}while(0);Seb(i)}TIa(j)}Chb(k);k=a;Ea(k|0)}function Zo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=b+16|0;h=WCb(c[l>>2]|0)|0;m=b+12|0;i=h+-1|0;j=b+4|0;n=a+44|0;g=0;d=0;while(1){if(g>>>0>=h>>>0){k=20;break}f=uXa(m,g)|0;f=c[f>>2]|0;if((g|0)==(i|0))e=vub(c[j>>2]|0)|0;else e=0;e=_g(a,f,e)|0;if(e){if((e|0)!=(f|0)){pI(n,f,e);f=uXa(m,g)|0;c[f>>2]=e}if((d|0)>0){o=uXa(m,g)|0;o=c[o>>2]|0;f=g-d|0;e=uXa(m,f)|0;c[e>>2]=o;e=uXa(m,g)|0;c[e>>2]=0}else f=g-d|0;o=uXa(m,f)|0;if(g>>>0>>0?(c[(c[o>>2]|0)+4>>2]|0)==6:0)break}else{ZHa(n,f);d=d+1|0}g=g+1|0}if((k|0)==20){if((d|0)<=0){o=Cu(b,a)|0;qOa(a,o);return}Cka(m,h-d|0);hba(n,b);o=Cu(b,a)|0;qOa(a,o);return}d=f;while(1){d=d+1|0;if(d>>>0>=(WCb(c[l>>2]|0)|0)>>>0)break;e=uXa(m,d)|0;e=c[e>>2]|0;if(e|0)ZHa(n,e)}Cka(m,f+1|0);hba(n,b);o=Cu(b,a)|0;qOa(a,o);return}function _o(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+96|0;g=i+64|0;e=i+32|0;h=i;zsb(g);f=c[d+12>>2]|0;if(f|0?(nz(e,b,f),c[g>>2]=c[e>>2],c[g+4>>2]=c[e+4>>2],c[g+8>>2]=c[e+8>>2],c[g+12>>2]=c[e+12>>2],c[g+16>>2]=c[e+16>>2],c[g+20>>2]=c[e+20>>2],c[g+24>>2]=c[e+24>>2],lsb(g)|0):0){c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=i;return}e=c[d+16>>2]|0;if(e|0){nz(h,b,e);if(lsb(h)|0){c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>2];c[a+28>>2]=c[h+28>>2];yb=i;return}h=Wsa(h)|0;if((h|0)==0&(P()|0)==0){c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=i;return}}c[g+24>>2]=c[d+8>>2];c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=i;return}function $o(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=yb;yb=yb+80|0;k=w+48|0;t=w+32|0;m=w;o=w+28|0;p=w+24|0;c[t>>2]=0;q=t+4|0;c[q>>2]=0;r=t+8|0;c[r>>2]=0;l=b+48|0;e=c[b+44>>2]|0;a:while(1){if((l|0)==(e|0))break;g=e;j=g+40|0;f=(c[g+44>>2]|0)-(c[j>>2]|0)>>2;Pxa(m|0,g+16|0,24)|0;n=0;g=k;h=m;i=g+24|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));f=U(114,k|0,f|0)|0;i=n;n=0;if(i&1){s=23;break}do if(f){n=0;f=U(115,b|0,j|0)|0;j=n;n=0;if(j&1){s=23;break a}c[o>>2]=f;g=c[q>>2]|0;if(g>>>0>=(c[r>>2]|0)>>>0){n=0;da(372,t|0,o|0);j=n;n=0;if(j&1){s=23;break a}else break}else{c[g>>2]=f;c[q>>2]=(c[q>>2]|0)+4;break}}while(0);f=e;e=c[f+4>>2]|0;b:do if(!e)while(1){e=c[f+8>>2]|0;if((f|0)==(c[e>>2]|0))break b;f=e}else while(1){f=c[e>>2]|0;if(!f)break;e=f}while(0)}if((s|0)==23){w=sa()|0;P()|0;Vob(t);Ea(w|0)}if((c[t>>2]|0)==(c[q>>2]|0)){Vob(t);yb=w;return}Gsb(p,WCb(c[b+36>>2]|0)|0);e=c[p>>2]|0;n=0;f=U(116,e|0,t|0)|0;s=n;n=0;if(!(s&1)?(u=d+44|0,n=0,v=V(57,e|0,f|0,c[u>>2]|0)|0,d=n,n=0,!(d&1)):0){c[u>>2]=v;Vob(t);yb=w;return}w=sa()|0;P()|0;Vob(t);Ea(w|0)}function ap(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0;s=yb;yb=yb+80|0;k=s+56|0;m=s+48|0;o=s+44|0;p=s+32|0;g=s;q=s+28|0;r=s+24|0;c[o>>2]=f;c[p>>2]=0;l=p+4|0;c[l>>2]=0;c[p+8>>2]=0;while(1){n=0;h=S(330,d|0)|0;i=n;n=0;if(i&1){j=18;break}if(e>>>0>=h>>>0)break;i=e+1|0;n=0;e=U(81,d|0,e|0)|0;h=n;n=0;if(h&1){j=18;break}n=0;e=S(332,e|0)|0;h=n;n=0;if(h&1){j=18;break}h=y2(e)|0;if(h|0?(n=0,ea(201,e|0,h|0,p|0),h=n,n=0,h&1):0){j=18;break}e=i}if((j|0)==18){s=sa()|0;P()|0;Vob(p);Ea(s|0)}if(!f){n=0;i=S(335,c[b+4>>2]|0)|0;f=n;n=0;if(!(f&1)){Bqb(g,0);h=k;e=h+24|0;do{a[h>>0]=a[g>>0]|0;h=h+1|0;g=g+1|0}while((h|0)<(e|0));mya(i,k)|0;c[o>>2]=i;f=i;j=12}}else j=12;do if((j|0)==12){d=c[b>>2]|0;i=c[p>>2]|0;c[q>>2]=i;g=(c[l>>2]|0)-i|0;c[r>>2]=g;e=d+112|0;h=c[e>>2]|0;if(h>>>0>=(c[d+116>>2]|0)>>>0){n=0;fa(141,d+108|0,o|0,q|0,r|0);r=n;n=0;if(r&1)break;Vob(p);yb=s;return}n=0;ea(113,m|0,g|0,0);r=n;n=0;if(!(r&1)?(n=0,fa(83,h|0,f|0,i|0,c[m>>2]|0),r=n,n=0,!(r&1)):0){c[e>>2]=(c[e>>2]|0)+16;Vob(p);yb=s;return}}while(0);s=sa()|0;P()|0;Vob(p);Ea(s|0)}function bp(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;u=yb;yb=yb+48|0;v=u+32|0;w=u+16|0;o=u;d=c[b+12>>2]|0;if(!(qqa(a,d)|0)){yb=u;return}t=b+16|0;if(!(c[t>>2]|0))ma(83207,81381,240,83260);pT(v,a,d);n=0;ea(146,w|0,a|0,c[t>>2]|0);f=n;n=0;if(f&1){w=sa()|0;P()|0;lNa(v);Ea(w|0)}n=0;ea(145,o|0,a|0,1);f=n;n=0;if(f&1){d=sa()|0;P()|0}else{c[b+4>>2]=1;d=a+44|0;e=c[d>>2]|0;n=0;f=S(280,o|0)|0;x=n;n=0;if(((((((((!(x&1)?(n=0,g=V(70,c[e>>2]|0,f|0,c[t>>2]|0)|0,x=n,n=0,!(x&1)):0)?(h=c[d>>2]|0,n=0,i=S(280,v|0)|0,x=n,n=0,!(x&1)):0)?(j=c[d>>2]|0,n=0,k=S(280,w|0)|0,x=n,n=0,!(x&1)):0)?(n=0,l=V(71,c[j>>2]|0,k|0,1)|0,x=n,n=0,!(x&1)):0)?(n=0,m=V(70,c[h>>2]|0,i|0,l|0)|0,x=n,n=0,!(x&1)):0)?(p=c[d>>2]|0,n=0,q=S(280,o|0)|0,x=n,n=0,!(x&1)):0)?(n=0,r=V(71,c[p>>2]|0,q|0,1)|0,x=n,n=0,!(x&1)):0)?(n=0,s=W(20,e|0,g|0,m|0,r|0)|0,x=n,n=0,!(x&1)):0)?(c[t>>2]=s,n=0,ea(147,a|0,b|0,v|0),x=n,n=0,!(x&1)):0){lNa(o);lNa(w);lNa(v);yb=u;return}d=sa()|0;P()|0;lNa(o)}lNa(w);x=d;lNa(v);Ea(x|0)}function cp(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,o=0;o=yb;yb=yb+64|0;j=o+40|0;k=o+12|0;l=o+24|0;m=o;a:do if((d-b|0)>2?(a[b>>0]|0)==116:0){f=a[b+1>>0]|0;switch(f<<24>>24){case 105:case 101:break;default:{d=b;break a}}g=b+2|0;if(f<<24>>24==101)d=ac(g,d,e)|0;else d=cc(g,d,e)|0;if((d|0)!=(g|0)?(i=e+4|0,h=c[i>>2]|0,(c[e>>2]|0)!=(h|0)):0){d6(m,h+-24|0);n=0;V(128,m|0,0,140132)|0;h=n;n=0;do if(h&1){d=sa()|0;P()|0}else{c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];f=0;while(1){if((f|0)==3)break;c[m+(f<<2)>>2]=0;f=f+1|0}n=0;U(216,l|0,139927)|0;h=n;n=0;if(h&1){d=sa()|0;P()|0;Chb(l);break}c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];f=0;while(1){if((f|0)==3)break;c[l+(f<<2)>>2]=0;f=f+1|0}X6(j,k);RC((c[i>>2]|0)+-24|0,j);J2a(j);Chb(k);Chb(l);Chb(m);break a}while(0);Chb(m);Ea(d|0)}else d=b}else d=b;while(0);yb=o;return d|0}function dp(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;e=c[i>>2]|0;j=a+100|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;f=d[e>>0]|0}else f=nI(a)|0;switch(f|0){case 43:case 45:{g=(f|0)==45&1;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=nI(a)|0;f=e+-48|0;if((b|0)!=0&f>>>0>9)if(!(c[j>>2]|0)){f=-2147483648;e=0}else{c[i>>2]=(c[i>>2]|0)+-1;k=15}else k=12;break}default:{g=0;e=f;f=f+-48|0;k=12}}do if((k|0)==12){if(f>>>0>9)if(!(c[j>>2]|0)){f=-2147483648;e=0;break}else{k=15;break}h=0;while(1){h=e+-48+(h*10|0)|0;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;f=d[e>>0]|0}else f=nI(a)|0;b=(f+-48|0)>>>0<10;if(!(b&(h|0)<214748364))break;else e=f}e=((h|0)<0)<<31>>31;if(b){do{l=BSa(h|0,e|0,10,0)|0;b=P()|0;f=Yeb(f|0,((f|0)<0)<<31>>31|0,-48,-1)|0;h=Yeb(f|0,P()|0,l|0,b|0)|0;e=P()|0;f=c[i>>2]|0;if(f>>>0<(c[j>>2]|0)>>>0){c[i>>2]=f+1;f=d[f>>0]|0}else f=nI(a)|0;b=(f+-48|0)>>>0<10}while(b&((e|0)<21474836|(e|0)==21474836&h>>>0<2061584302));if(b){do{f=c[i>>2]|0;if(f>>>0<(c[j>>2]|0)>>>0){c[i>>2]=f+1;f=d[f>>0]|0}else f=nI(a)|0}while((f+-48|0)>>>0<10);b=h}else b=h}else b=h;if(c[j>>2]|0)c[i>>2]=(c[i>>2]|0)+-1;j=(g|0)==0;l=Ndb(0,0,b|0,e|0)|0;f=P()|0;f=j?e:f;e=j?b:l}while(0);if((k|0)==15){c[i>>2]=(c[i>>2]|0)+-1;f=-2147483648;e=0}O(f|0);return e|0}function ep(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,o=0,p=0,q=0;p=yb;yb=yb+16|0;i=p+8|0;o=p;n=0;da(84,o|0,b|0);l=n;n=0;a:do if(l&1){e=ta(0)|0;P()|0;f=b;g=b}else{do if(a[o>>0]&1){k=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;l=c[k+24>>2]|0;h=d+e|0;g=(c[k+4>>2]&176|0)==32?h:d;f=k+76|0;e=c[f>>2]|0;do if(dub(-1,e)|0){anb(i,k);n=0;e=U(66,c[i>>2]|0,151324)|0;q=n;n=0;if(!(q&1)?(n=0,j=U(c[(c[e>>2]|0)+28>>2]|0,e|0,32)|0,q=n,n=0,!(q&1)):0){XWa(i);e=j<<24>>24;c[f>>2]=e;m=8;break}e=ta(0)|0;P()|0;XWa(i)}else m=8;while(0);if((m|0)==8){n=0;e=Z(39,l|0,d|0,g|0,h|0,k|0,e&255|0)|0;q=n;n=0;if(!(q&1)){if(e|0)break;q=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=0;da(85,q|0,c[q+16>>2]|5|0);q=n;n=0;if(!(q&1))break}e=ta(0)|0;P()|0}sF(o);f=b;g=b;break a}while(0);sF(o);yb=p;return b|0}while(0);pa(e|0)|0;n=0;ca(496,g+(c[(c[f>>2]|0)+-12>>2]|0)|0);q=n;n=0;if(!(q&1)){qa();yb=p;return b|0}e=sa()|0;P()|0;n=0;ba(5);q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}else Ea(e|0);return 0}function fp(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;l=yb;yb=yb+160|0;k=l+136|0;g=l+104|0;h=l+80|0;i=l+48|0;j=l+24|0;f=l;nz(g,d,c[e+8>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=l;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];nz(i,d,c[e+12>>2]|0);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=l;return}else{c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];c[j+20>>2]=c[g+20>>2];y7(f,h,j,e+16|0);e=k;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,k);yb=l;return}}function gp(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;while(1){f=c[a>>2]|0;do if(f){g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))f=Eb[c[(c[f>>2]|0)+36>>2]&511](f)|0;else f=WCb(c[g>>2]|0)|0;if(Nwb(f)|0){c[a>>2]=0;g=1;break}else{g=(c[a>>2]|0)==0;break}}else g=1;while(0);if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))f=Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0;else f=WCb(c[f>>2]|0)|0;if(!(Nwb(f)|0)){if(!g){g=b;break}}else i=14}else i=14;if((i|0)==14){i=0;if(g){g=0;break}else b=0}f=c[a>>2]|0;g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))f=Eb[c[(c[f>>2]|0)+36>>2]&511](f)|0;else f=WCb(c[g>>2]|0)|0;if(!(Hb[c[(c[e>>2]|0)+12>>2]&255](e,8192,f)|0)){g=b;break}f=c[a>>2]|0;g=f+12|0;h=c[g>>2]|0;if((h|0)==(c[f+16>>2]|0))Eb[c[(c[f>>2]|0)+40>>2]&511](f)|0;else c[g>>2]=h+4}b=c[a>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0;else b=WCb(c[f>>2]|0)|0;if(Nwb(b)|0){c[a>>2]=0;f=1;break}else{f=(c[a>>2]|0)==0;break}}else f=1;while(0);if(g){b=c[g+12>>2]|0;if((b|0)==(c[g+16>>2]|0))b=Eb[c[(c[g>>2]|0)+36>>2]&511](g)|0;else b=WCb(c[b>>2]|0)|0;if(!(Nwb(b)|0)){if(!f)i=38}else i=36}else i=36;if((i|0)==36?f:0)i=38;if((i|0)==38)c[d>>2]=c[d>>2]|2;return}function hp(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,o=0,p=0,q=0,r=0,s=0;r=yb;yb=yb+80|0;k=r+64|0;s=r+48|0;l=r+44|0;m=r+40|0;q=r;o=r+24|0;p=c[a+4>>2]|0;b=c[a>>2]|0;d=b+4|0;if((c[d>>2]|0)==(c[b>>2]|0)){s=d;a=b;a=c[a>>2]|0;c[s>>2]=a;yb=r;return}d=flb(sE()|0)|0;c[s>>2]=0;e=s+4|0;c[e>>2]=0;f=s+8|0;c[f>>2]=0;c[l>>2]=0;g=c[p>>2]|0;c[m>>2]=(c[g+28>>2]|0)-(c[g+24>>2]|0)>>2;g=o+4|0;h=o+8|0;i=o+12|0;b=0;while(1){if(b>>>0>=d>>>0){d=13;break}c[o>>2]=l;c[g>>2]=m;c[h>>2]=p;c[i>>2]=c[a>>2];n=0;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];da(2194,q|0,k|0);j=n;n=0;if(j&1){d=9;break}j=c[e>>2]|0;if(j>>>0>=(c[f>>2]|0)>>>0){n=0;da(2195,s|0,q|0);j=n;n=0;if(j&1){d=12;break}}else{R4(j,q);c[e>>2]=(c[e>>2]|0)+24}TIa(q);b=b+1|0}if((d|0)==9){b=sa()|0;P()|0}else if((d|0)==12){r=sa()|0;P()|0;TIa(q);n7a(s);Ea(r|0)}else if((d|0)==13){n=0;b=Q(77)|0;q=n;n=0;if(!(q&1)?(n=0,da(2196,b|0,s|0),q=n,n=0,!(q&1)):0){n7a(s);a=c[a>>2]|0;s=a+4|0;a=c[a>>2]|0;c[s>>2]=a;yb=r;return}b=sa()|0;P()|0}r=b;n7a(s);Ea(r|0)}function ip(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=yb;yb=yb+64|0;h=g+12|0;f=g;if(c[37104]|0){IWa(150452,56221)|0;IWa(150452,67198)|0;e=0;while(1){if((e|0)==(d|0))break;if(e|0)IWa(150452,140151)|0;i=IWa(150452,113917)|0;IWa(IWa(i,c[b+(e<<2)>>2]|0)|0,113917)|0;e=e+1|0}IWa(150452,56261)|0;IWa(Ym(IWa(150452,67228)|0,d)|0,56341)|0;IWa(150452,56345)|0}VSa(h,a);e=h+20|0;c[e>>2]=c[37063];c[e+4>>2]=c[37064];c[e+8>>2]=c[37065];c[e+12>>2]=c[37066];c[e+16>>2]=c[37067];e=0;while(1){if(e>>>0>=d>>>0){a=17;break}a=c[b+(e<<2)>>2]|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;i=Zzb(a)|0;n=0;ea(95,f|0,a|0,i|0);i=n;n=0;if(i&1){a=13;break}n=0;da(68,h|0,f|0);i=n;n=0;if(i&1){a=16;break}Chb(f);e=e+1|0}do if((a|0)==13){e=sa()|0;P()|0}else if((a|0)==16){i=sa()|0;P()|0;Chb(f);osa(h);Ea(i|0)}else if((a|0)==17){n=0;ca(489,h|0);i=n;n=0;if(i&1){e=sa()|0;P()|0;break}else{osa(h);yb=g;return}}while(0);i=e;osa(h);Ea(i|0)}function jp(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=yb;yb=yb+80|0;i=y+56|0;m=y+40|0;q=y+24|0;e=y;iG(m,b,1);n=0;ea(145,q|0,b|0,1);x=n;n=0;if(x&1){y=sa()|0;P()|0;lNa(m);Ea(y|0)}x=b+44|0;g=c[x>>2]|0;n=0;h=S(280,q|0)|0;z=n;n=0;if((((!(z&1)?(n=0,j=V(70,c[g>>2]|0,h|0,c[d+12>>2]|0)|0,z=n,n=0,!(z&1)):0)?(k=c[x>>2]|0,n=0,l=S(280,m|0)|0,z=n,n=0,!(z&1)):0)?(o=c[x>>2]|0,n=0,f=S(280,q|0)|0,z=n,n=0,!(z&1)):0)?(n=0,p=V(71,c[o>>2]|0,f|0,1)|0,z=n,n=0,!(z&1)):0){f=c[x>>2]|0;Bqb(e,31);n=0;g=i;d=g+24|0;do{a[g>>0]=a[e>>0]|0;g=g+1|0;e=e+1|0}while((g|0)<(d|0));e=U(120,f|0,i|0)|0;z=n;n=0;if((((((!(z&1)?(n=0,r=W(8,c[o>>2]|0,12,p|0,e|0)|0,z=n,n=0,!(z&1)):0)?(n=0,s=V(70,c[k>>2]|0,l|0,r|0)|0,z=n,n=0,!(z&1)):0)?(t=c[x>>2]|0,n=0,u=S(280,q|0)|0,z=n,n=0,!(z&1)):0)?(n=0,v=V(71,c[t>>2]|0,u|0,1)|0,z=n,n=0,!(z&1)):0)?(n=0,w=W(20,t|0,j|0,s|0,v|0)|0,z=n,n=0,!(z&1)):0)?(n=0,ea(147,b|0,w|0,m|0),z=n,n=0,!(z&1)):0){Pwb(c[b+16>>2]|0,w);lNa(q);lNa(m);yb=y;return}}z=sa()|0;P()|0;lNa(q);lNa(m);Ea(z|0)}function kp(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;if(a[b+33>>0]&1)BM(IWa(150620,112947)|0);h=e+16|0;T_a(b,c[h>>2]|0);if((c[(c[h>>2]|0)+4>>2]|0)==6)return;h=e+20|0;T_a(b,c[h>>2]|0);if((c[(c[h>>2]|0)+4>>2]|0)==6)return;h=e+24|0;T_a(b,c[h>>2]|0);if((c[(c[h>>2]|0)+4>>2]|0)==6)return;g=e+4|0;h=b+28|0;f=c[h>>2]|0;if((c[g>>2]|0)==6){Ygb(f);return}tI(f,-2)|0;a:do switch(c[g>>2]|0){case 1:{f=e+8|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,74)|0;i=f;break a}case 2:{tI(c[h>>2]|0,75)|0;i=f;break a}case 4:{tI(c[h>>2]|0,72)|0;i=f;break a}default:ma(141129,112765,824,112970)}break}case 2:{f=e+8|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,76)|0;i=f;break a}case 2:{tI(c[h>>2]|0,77)|0;i=f;break a}case 4:{tI(c[h>>2]|0,78)|0;i=f;break a}case 8:{tI(c[h>>2]|0,73)|0;i=f;break a}default:ma(141129,112765,833,112970)}break}default:ma(141129,112765,836,112970)}while(0);i=d[i>>0]|0;G5(b,i,i,WCb(c[e+12>>2]|0)|0);return}function lp(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=yb;yb=yb+96|0;i=j+64|0;e=j+32|0;g=j;zsb(a);egb(i);f=c[d+32>>2]|0;do if(f){tw(e,b,f);c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];if(lsb(a)|0){yb=j;return}else{c[i>>2]=c[a>>2];c[i+4>>2]=c[a+4>>2];c[i+8>>2]=c[a+8>>2];c[i+12>>2]=c[a+12>>2];c[i+16>>2]=c[a+16>>2];h=a;break}}else h=a;while(0);tw(g,b,c[d+28>>2]|0);c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];c[h+24>>2]=c[g+24>>2];if(lsb(a)|0){yb=j;return}f=Wsa(a)|0;g=P()|0;e=c[d+24>>2]|0;if((g|0)>-1|(g|0)==-1&f>>>0>4294967295?(WCb(c[d+12>>2]|0)|0)>>>0>f>>>0:0){e=uXa(d+8|0,f)|0;e=c[e>>2]|0}c[a+24>>2]=e;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];c[h+16>>2]=c[i+16>>2];yb=j;return}function mp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0;p=yb;yb=yb+80|0;o=p+40|0;k=p+32|0;l=p;m=p+64|0;a:do if((d-b|0)>>>0>16){f=0;d=k;while(1){g=a[b+f>>0]|0;i=g<<24>>24;if((f|0)==16){j=6;break}if(!(itb(i)|0))break;g=a[b+(f|1)>>0]|0;a[d>>0]=(((i+-48|0)>>>0<10?0:9)+i<<4)+g+((g+-48|0)>>>0<10?208:169);f=f+2|0;d=d+1|0}do if((j|0)==6){if(g<<24>>24==69){b:do if((d|0)!=(k|0)){f=k;while(1){d=d+-1|0;if(f>>>0>=d>>>0)break b;j=a[f>>0]|0;a[f>>0]=a[d>>0]|0;a[d>>0]=j;f=f+1|0}}while(0);c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[l+24>>2]=0;c[l+28>>2]=0;h[o>>3]=+h[k>>3];d=p_a(l,32,141238,o)|0;if(d>>>0>31)break;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;T3(m,l,d);X6(o,m);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,o|0);e=n;n=0;if(e&1){p=sa()|0;P()|0;J2a(o);Chb(m);Ea(p|0)}}else{I6(f,o);c[d>>2]=(c[d>>2]|0)+24}J2a(o);Chb(m);b=b+17|0}break a}while(0)}while(0);yb=p;return b|0}function np(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,o=0;o=yb;yb=yb+32|0;e=o+24|0;m=o+20|0;k=o+16|0;i=o+12|0;j=o;c[m>>2]=d;l=d;if(a[b+12>>0]&1)BM(IWa(150620,113216)|0);f=IF(b)|0;c[k>>2]=f;g=c[b+96>>2]|0;h=(c[b+100>>2]|0)-g>>2;if(f>>>0>>0){j=c[b>>2]|0;c[i>>2]=c[(c[g+(f<<2)>>2]|0)+40>>2];c[e>>2]=c[i>>2];f=sQ(j,e)|0}else{g=f-h|0;f=b+68|0;e=c[f>>2]|0;do if(g>>>0>=(c[b+72>>2]|0)-e>>2>>>0){c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;D8(j,116808,Zzb(116808)|0);n=0;da(4022,b|0,j|0);i=n;n=0;if(i&1){o=sa()|0;P()|0;Chb(j);Ea(o|0)}else{Chb(j);e=c[f>>2]|0;break}}while(0);f=c[e+(g<<2)>>2]|0}if(!f)ma(134211,112368,1971,116827);g=(c[f+12>>2]|0)-(c[f+8>>2]|0)>>2;h=d+8|0;Cka(h,g);e=0;while(1){if((g|0)==(e|0))break;i=rl(b)|0;j=uXa(h,g-e+-1|0)|0;c[j>>2]=i;e=e+1|0}c[d+4>>2]=c[f+4>>2];e=e6(b+108|0,k)|0;f=e+4|0;g=c[f>>2]|0;if((g|0)==(c[e+8>>2]|0)){_M(e,m);Crb(d);yb=o;return}else{c[g>>2]=l;c[f>>2]=(c[f>>2]|0)+4;Crb(d);yb=o;return}}function op(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;l=yb;yb=yb+48|0;i=l+24|0;j=l+12|0;k=l;h=ac(b,d,e)|0;a:do if((h|0)!=(b|0)?(g=e+4|0,f=c[g>>2]|0,(c[e>>2]|0)!=(f|0)):0){d6(k,f+-24|0);n=0;V(128,k|0,0,140200)|0;e=n;n=0;do if(e&1){b=sa()|0;P()|0}else{c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];b=0;while(1){if((b|0)==3)break;c[k+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,j|0,139927)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(j);break}c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];b=0;while(1){if((b|0)==3)break;c[j+(b<<2)>>2]=0;b=b+1|0}b=c[g>>2]|0;f=b+-24|0;d=f+11|0;if((a[d>>0]|0)<0){Fsb(c[f>>2]|0,0);c[b+-20>>2]=0;b=f}else{Fsb(f,0);a[d>>0]=0;b=f}Yw(f);c[b>>2]=c[i>>2];c[b+4>>2]=c[i+4>>2];c[b+8>>2]=c[i+8>>2];b=0;while(1){if((b|0)==3)break;c[i+(b<<2)>>2]=0;b=b+1|0}Chb(i);Chb(j);Chb(k);b=h;break a}while(0);Chb(k);Ea(b|0)}while(0);yb=l;return b|0}function pp(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=yb;yb=yb+288|0;e=k+184|0;f=k+92|0;g=k;h=b+12|0;i=Mqb(c[h>>2]|0)|0;j=b+16|0;d=Mqb(c[j>>2]|0)|0;switch(c[b+8>>2]|0){case 0:{if(i|0?(Peb(i+8|0)|0)==0:0){Pwb(c[a>>2]|0,c[j>>2]|0);yb=k;return}if(!d){yb=k;return}if(Peb(d+8|0)|0){yb=k;return}Pwb(c[a>>2]|0,c[h>>2]|0);yb=k;return}case 1:{if(!d){yb=k;return}if(Peb(d+8|0)|0){yb=k;return}Pwb(c[a>>2]|0,c[h>>2]|0);yb=k;return}case 10:{if(!((i|0)!=0?!(Peb(i+8|0)|0):0)){if(!d){yb=k;return}if(Zaa(d)|0){yb=k;return}}VA(e,c[a+24>>2]|0,c[j>>2]|0);j=QGa(e)|0;Fha(e);if(j){yb=k;return}Pwb(c[a>>2]|0,c[h>>2]|0);yb=k;return}case 2:{if((i|0?(Peb(i+8|0)|0)==0:0)?(VA(f,c[a+24>>2]|0,c[j>>2]|0),j=QGa(f)|0,Fha(f),!j):0){Pwb(c[a>>2]|0,i);yb=k;return}if(!d){yb=k;return}if(Peb(d+8|0)|0){yb=k;return}VA(g,c[a+24>>2]|0,c[h>>2]|0);j=QGa(g)|0;Fha(g);if(j){yb=k;return}Pwb(c[a>>2]|0,d);yb=k;return}default:{yb=k;return}}}function qp(b,d,e,f,g,h,i,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0;a:do if((b|0)==(h|0))if(a[d>>0]|0){a[d>>0]=0;e=c[g>>2]|0;c[g>>2]=e+1;a[e>>0]=46;g=a[j+11>>0]|0;if(((g<<24>>24<0?c[j+4>>2]|0:g&255)|0)!=0?(o=c[l>>2]|0,(o-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;o=0}else o=0}else o=-1;else{if((b|0)==(i|0)?(i=a[j+11>>0]|0,(i<<24>>24<0?c[j+4>>2]|0:i&255)|0):0){if(!(a[d>>0]|0)){o=-1;break}o=c[l>>2]|0;if((o-k|0)>=160){o=0;break}k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;c[m>>2]=0;o=0;break}i=n+128|0;h=0;while(1){o=n+(h<<2)|0;if((h|0)==32){o=i;break}if((c[o>>2]|0)==(b|0))break;else h=h+1|0}h=o-n|0;if((h|0)<=124){i=a[31216+(h>>2)>>0]|0;n=h+-88|0;switch(n>>>2|n<<30|0){case 2:case 3:{o=c[g>>2]|0;if((o|0)!=(f|0)?(a[o+-1>>0]&95)!=(a[e>>0]&127):0){o=-1;break a}c[g>>2]=o+1;a[o>>0]=i;o=0;break a}case 1:case 0:{a[e>>0]=80;break}default:{o=i&95;if((((o|0)==(a[e>>0]|0)?(a[e>>0]=o|128,a[d>>0]|0):0)?(a[d>>0]=0,e=a[j+11>>0]|0,(e<<24>>24<0?c[j+4>>2]|0:e&255)|0):0)?(p=c[l>>2]|0,(p-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=p+4;c[p>>2]=k}}}l=c[g>>2]|0;c[g>>2]=l+1;a[l>>0]=i;if((h|0)>84)o=0;else{c[m>>2]=(c[m>>2]|0)+1;o=0}}else o=-1}while(0);return o|0}function rp(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=yb;yb=yb+16|0;p=q;k=e;while(1){if((k|0)==(f|0)){k=f;break}if(!(a[k>>0]|0))break;k=k+1|0}c[j>>2]=h;c[g>>2]=e;n=i;o=b+8|0;while(1){if((h|0)==(i|0)|(e|0)==(f|0)){k=33;break}l=d;b=c[l+4>>2]|0;m=p;c[m>>2]=c[l>>2];c[m+4>>2]=b;m=k;b=Feb(c[o>>2]|0)|0;l=Iu(h,g,m-e|0,n-h>>2,d)|0;if(b|0)Feb(b)|0;if((l|0)==-1){k=10;break}h=(c[j>>2]|0)+(l<<2)|0;c[j>>2]=h;if((h|0)==(i|0)){k=30;break}e=c[g>>2]|0;if((k|0)==(f|0))k=f;else{k=Feb(c[o>>2]|0)|0;e=Ku(h,e,1,d)|0;if(k|0)Feb(k)|0;if(e|0){e=2;k=29;break}c[j>>2]=(c[j>>2]|0)+4;e=(c[g>>2]|0)+1|0;c[g>>2]=e;k=e;while(1){if((k|0)==(f|0)){k=f;break}if(!(a[k>>0]|0))break;k=k+1|0}h=c[j>>2]|0}}do if((k|0)==10){a:while(1){c[j>>2]=h;if((e|0)==(c[g>>2]|0)){k=19;break}k=Feb(c[o>>2]|0)|0;h=Ku(h,e,m-e|0,p)|0;if(k|0)Feb(k)|0;switch(h|0){case -1:{k=15;break a}case -2:{k=16;break a}case 0:{h=1;break}default:{}}e=e+h|0;h=(c[j>>2]|0)+4|0}if((k|0)==15){c[g>>2]=e;e=2;k=29;break}else if((k|0)==16){c[g>>2]=e;e=1;k=29;break}else if((k|0)==19){c[g>>2]=e;e=(e|0)!=(f|0)&1;k=29;break}}else if((k|0)==30){e=c[g>>2]|0;k=33}while(0);if((k|0)!=29)if((k|0)==33)e=(e|0)!=(f|0)&1;yb=q;return e|0}function sp(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;i=d+44|0;j=c[i>>2]|0;p=d+24|0;q=c[p>>2]|0;n=q;if(j>>>0>>0){c[i>>2]=n;i=q;o=n}else{i=j;o=j}switch(h&24){case 0:{q=b;c[q>>2]=0;c[q+4>>2]=0;q=b+8|0;c[q>>2]=-1;c[q+4>>2]=-1;return}case 24:{k=5;break}default:{}}if((k|0)==5?(g|0)==1:0){q=b;c[q>>2]=0;c[q+4>>2]=0;q=b+8|0;c[q>>2]=-1;c[q+4>>2]=-1;return}if(!i){l=0;m=0}else{i=d+32|0;if((a[i+11>>0]|0)<0)i=c[i>>2]|0;m=o-i|0;l=((m|0)<0)<<31>>31}switch(g|0){case 0:{j=0;i=0;break}case 1:{if(!(h&8))i=n-(c[d+20>>2]|0)|0;else i=(c[d+12>>2]|0)-(c[d+8>>2]|0)|0;j=i;i=((i|0)<0)<<31>>31;break}case 2:{j=m;i=l;break}default:{q=b;c[q>>2]=0;c[q+4>>2]=0;q=b+8|0;c[q>>2]=-1;c[q+4>>2]=-1;return}}j=Yeb(j|0,i|0,e|0,f|0)|0;k=P()|0;if((k|0)<0|((l|0)<(k|0)|(l|0)==(k|0)&m>>>0>>0)){q=b;c[q>>2]=0;c[q+4>>2]=0;q=b+8|0;c[q>>2]=-1;c[q+4>>2]=-1;return}i=h&8;if(!((j|0)==0&(k|0)==0)){if(i|0?(c[d+12>>2]|0)==0:0){q=b;c[q>>2]=0;c[q+4>>2]=0;q=b+8|0;c[q>>2]=-1;c[q+4>>2]=-1;return}if((h&16|0)!=0&(q|0)==0){q=b;c[q>>2]=0;c[q+4>>2]=0;q=b+8|0;c[q>>2]=-1;c[q+4>>2]=-1;return}}if(i|0){c[d+12>>2]=(c[d+8>>2]|0)+j;c[d+16>>2]=o}if(h&16|0)c[p>>2]=(c[d+20>>2]|0)+j;q=b;c[q>>2]=0;c[q+4>>2]=0;q=b+8|0;c[q>>2]=j;c[q+4>>2]=k;return}function tp(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,o=0,p=0;p=yb;yb=yb+32|0;l=p+8|0;m=p;c[l>>2]=0;j=l+4|0;c[j>>2]=0;k=l+8|0;c[k>>2]=0;e=a+52|0;f=e;a:while(1){f=c[f>>2]|0;if(!f)break;g=f;do if(Hi(b,g+24|0)|0){g=g+8|0;h=c[j>>2]|0;if((h|0)==(c[k>>2]|0)){n=0;da(1686,l|0,g|0);h=n;n=0;if(h&1){o=25;break a}else break}else{cjb(h,g);c[j>>2]=(c[j>>2]|0)+8;break}}while(0)}if((o|0)==25){p=sa()|0;P()|0;Vob(l);Ea(p|0)}b:do if(d|0?(i=iqb(d)|0,i|0):0){b=i+8|0;h=i+12|0;c:while(1){e=c[e>>2]|0;if(!e)break b;f=e;do if((c[f+20>>2]|0)==(c[b>>2]|0)?(c[f+16>>2]|0)!=(c[h>>2]|0):0){f=f+8|0;g=c[j>>2]|0;if((g|0)==(c[k>>2]|0)){n=0;da(1686,l|0,f|0);i=n;n=0;if(i&1)break c;else break}else{cjb(g,f);c[j>>2]=(c[j>>2]|0)+8;break}}while(0)}p=sa()|0;P()|0;Vob(l);Ea(p|0)}while(0);g=c[j>>2]|0;f=a+44|0;e=c[l>>2]|0;while(1){if((e|0)==(g|0)){o=22;break}cjb(m,e);n=0;da(1687,f|0,m|0);a=n;n=0;if(a&1)break;e=e+8|0}if((o|0)==22){Vob(l);yb=p;return}p=sa()|0;P()|0;Vob(l);Ea(p|0)}function up(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,o=0,p=0,q=0,r=0,s=0,t=0;t=yb;yb=yb+160|0;r=t+16|0;s=t;if(!(e>>>0>g>>>0|(e|0)==(g|0)&d>>>0>f>>>0)){yb=t;return}j=r+64|0;k=r+8|0;c[k>>2]=40176;c[r>>2]=31772;c[j>>2]=31792;c[r+4>>2]=0;Hoa(r+64|0,r+12|0);c[r+136>>2]=0;c[r+140>>2]=-1;c[r>>2]=40156;c[j>>2]=40196;c[k>>2]=40176;k=r+12|0;RKa(k);c[k>>2]=39800;j=r+44|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;i=0;while(1){if((i|0)==3)break;c[j+(i<<2)>>2]=0;i=i+1|0}c[r+56>>2]=0;c[r+60>>2]=24;n=0;i=U(59,r+8|0,h|0)|0;h=n;n=0;if(((((!(h&1)?(n=0,l=U(59,i|0,138977)|0,h=n,n=0,!(h&1)):0)?(n=0,m=V(42,l|0,d|0,e|0)|0,l=n,n=0,!(l&1)):0)?(n=0,o=U(59,m|0,67878)|0,m=n,n=0,!(m&1)):0)?(n=0,V(42,o|0,f|0,g|0)|0,g=n,n=0,!(g&1)):0)?(p=c[b+36>>2]|0,q=c[(c[p>>2]|0)+20>>2]|0,n=0,da(75,s|0,k|0),g=n,n=0,!(g&1)):0){n=0;da(q|0,p|0,((a[s+11>>0]|0)<0?c[s>>2]|0:s)|0);q=n;n=0;if(q&1){t=sa()|0;P()|0;Chb(s);c0a(r);Ea(t|0)}else{Chb(s);c0a(r);yb=t;return}}t=sa()|0;P()|0;c0a(r);Ea(t|0)}function vp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=yb;yb=yb+48|0;j=f+36|0;g=f+24|0;h=f+12|0;i=f;k=kH(b)|0;b=pjb(k,j,10)|0;e=P()|0;j=c[j>>2]|0;if((j|0)!=(k|0)?(a[j>>0]|0)==0:0){if(!(e>>>0>0|(e|0)==0&b>>>0>d>>>0)){yb=f;return b&255|0}f=oa(20)|0;n=0;da(88,i|0,d|0);k=n;n=0;do if(!(k&1)){n=0;U(77,i|0,124966)|0;k=n;n=0;if(k&1){b=sa()|0;P()|0;Chb(i);break}c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];b=0;while(1){if((b|0)==3)break;c[i+(b<<2)>>2]=0;b=b+1|0}n=0;da(330,f|0,h|0);k=n;n=0;if(k&1)e=1;else{n=0;ea(122,f|0,31856,511);n=0;e=0}b=sa()|0;P()|0;Chb(h);Chb(i);if(!e){k=b;Ea(k|0)}}else{b=sa()|0;P()|0}while(0);va(f|0);k=b;Ea(k|0)}f=oa(20)|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;k=Zzb(124946)|0;n=0;ea(95,g|0,124946,k|0);k=n;n=0;if(!(k&1)){n=0;da(330,f|0,g|0);k=n;n=0;if(k&1)e=1;else{n=0;ea(122,f|0,31856,511);n=0;e=0}b=sa()|0;P()|0;Chb(g);if(!e){k=b;Ea(k|0)}}else{b=sa()|0;P()|0}va(f|0);k=b;Ea(k|0);return 0}function wp(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;j=yb;yb=yb+64|0;k=j+48|0;h=j+44|0;l=j+40|0;i=j+32|0;g=j+24|0;f=j;c[l>>2]=c[d>>2];d=c[a>>2]|0;c[k>>2]=c[l>>2];d=a7(Kha(d,k,0)|0)|0;c[h>>2]=d;if(HYa(c[a>>2]|0,b)|0){d=Dia()|0;zEa(f,h);n=0;d=Z(40,a|0,e|0,d|0,f|0,c[a+4>>2]|0,c[b+4>>2]|0)|0;l=n;n=0;if(l&1){l=sa()|0;P()|0;TIa(f);Ea(l|0)}TIa(f);l=d;yb=j;return l|0}nrb(i,e);Hib(g,e);e=i+4|0;f=c[g>>2]|0;d=c[g+4>>2]|0;while(1){if(!(dhb(c[i>>2]|0,c[e>>2]|0,f,d)|0))break;l=Qab(i)|0;l=c[l>>2]|0;g=rrb(c[h>>2]|0,2)|0;g=WCb(c[g>>2]|0)|0;k=uga(a,l,c[37044]|0)|0;KJa(g,mG(k,Yga(c[l+4>>2]|0)|0)|0)|0;hob(i)}l=c[h>>2]|0;l=mG(l,Yga(c[b+4>>2]|0)|0)|0;yb=j;return l|0}function xp(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;l=yb;yb=yb+32|0;i=l+24|0;j=l+16|0;h=l+8|0;k=l;c[i>>2]=b;d=c[a+24>>2]|0;b=(c[a+28>>2]|0)-d>>2;if(b>>>0>1){f=c[d+(b+-2<<2)>>2]|0;g=O8(a+48|0,i)|0;c[g>>2]=f}else{g=O8(a+48|0,i)|0;c[g>>2]=0}d=c[i>>2]|0;b=Rqb(d)|0;if(b|0){if(!(eCb(c[b+8>>2]|0)|0)){k=c[i>>2]|0;V$(a,k,1);yb=l;return}k=i4(a+36|0,b+8|0)|0;c[k>>2]=b;k=c[i>>2]|0;V$(a,k,1);yb=l;return}b=Qqb(d)|0;if(b|0){i4(a+36|0,b+8|0)|0;k=c[i>>2]|0;V$(a,k,1);yb=l;return}g=Jqb(d)|0;if(!g){k=c[i>>2]|0;V$(a,k,1);yb=l;return}e=g+8|0;nrb(j,e);Hib(h,e);e=j+4|0;f=c[h>>2]|0;b=c[h+4>>2]|0;d=a+36|0;while(1){if(!(dhb(c[j>>2]|0,c[e>>2]|0,f,b)|0))break;h=Qab(j)|0;c[k>>2]=c[h>>2];i4(d,k)|0;hob(j)}i4(d,g+24|0)|0;k=c[i>>2]|0;V$(a,k,1);yb=l;return}function yp(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,o=0,p=0,q=0;q=yb;yb=yb+112|0;i=q+88|0;k=q+80|0;f=q+76|0;l=q+72|0;p=q+60|0;m=q+48|0;g=q+24|0;o=q;Gsb(k,WCb(c[b+36>>2]|0)|0);Cub(f);j=d+4|0;switch(c[j>>2]|0){case 1:{e=c[37303]|0;c[f>>2]=e;break}case 3:{e=c[37305]|0;c[f>>2]=e;break}case 4:{e=c[37306]|0;c[f>>2]=e;break}case 5:{ma(84722,84758,75,104123);break}case 0:{ma(141129,84758,76,104123);break}case 6:{ma(141129,84758,77,104123);break}case 2:{yb=q;return}default:e=c[f>>2]|0}c[l>>2]=e;f=b+44|0;h=c[f>>2]|0;c[f>>2]=h+1;Bqb(g,h);h=i;f=h+24|0;do{a[h>>0]=a[g>>0]|0;h=h+1|0;g=g+1|0}while((h|0)<(f|0));e=D7(k,i)|0;c[m>>2]=e;e=m+4|0;Bqb(o,c[d+8>>2]|0);h=i;g=o;f=h+24|0;do{a[h>>0]=a[g>>0]|0;h=h+1|0;g=g+1|0}while((h|0)<(f|0));o=D7(k,i)|0;c[e>>2]=o;c[m+8>>2]=d;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;n=0;da(174,p|0,3);o=n;n=0;if(o&1){q=sa()|0;P()|0;Qcb(p);Ea(q|0)}ssa(p,m,m+12|0);e=c[j>>2]|0;o=c[k>>2]|0;n=0;c[i>>2]=c[l>>2];e=W(14,o|0,i|0,p|0,e|0)|0;o=n;n=0;if(o&1){q=sa()|0;P()|0;Vob(p);Ea(q|0)}Pwb(c[b+16>>2]|0,e);Vob(p);yb=q;return}function zp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0;q=yb;yb=yb+64|0;p=q+24|0;l=q+60|0;m=q;o=q+48|0;a:do if((d-b|0)>>>0>8){f=0;d=l;while(1){i=a[b+f>>0]|0;j=i<<24>>24;if((f|0)==8){k=6;break}if(!(itb(j)|0))break;i=a[b+(f|1)>>0]|0;a[d>>0]=(((j+-48|0)>>>0<10?0:9)+j<<4)+i+((i+-48|0)>>>0<10?208:169);f=f+2|0;d=d+1|0}do if((k|0)==6){if(i<<24>>24==69){b:do if((d|0)!=(l|0)){f=l;while(1){d=d+-1|0;if(f>>>0>=d>>>0)break b;k=a[f>>0]|0;a[f>>0]=a[d>>0]|0;a[d>>0]=k;f=f+1|0}}while(0);c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;c[m+20>>2]=0;h[p>>3]=+g[l>>2];d=p_a(m,24,141241,p)|0;if(d>>>0>23)break;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;T3(o,m,d);X6(p,o);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,p|0);e=n;n=0;if(e&1){q=sa()|0;P()|0;J2a(p);Chb(o);Ea(q|0)}}else{I6(f,p);c[d>>2]=(c[d>>2]|0)+24}J2a(p);Chb(o);b=b+9|0}break a}while(0)}while(0);yb=q;return b|0}function Ap(){var b=0,d=0;if((a[147552]|0)==0?mlb(147552)|0:0){d=146192;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=146480)}zZa(146192,136908)|0;zZa(146204,136916)|0;zZa(146216,136925)|0;zZa(146228,136931)|0;zZa(146240,136937)|0;zZa(146252,136941)|0;zZa(146264,136946)|0;zZa(146276,136951)|0;zZa(146288,136958)|0;zZa(146300,136968)|0;zZa(146312,136976)|0;zZa(146324,136985)|0;zZa(146336,136994)|0;zZa(146348,136998)|0;zZa(146360,137002)|0;zZa(146372,137006)|0;zZa(146384,136937)|0;zZa(146396,137010)|0;zZa(146408,137014)|0;zZa(146420,137018)|0;zZa(146432,137022)|0;zZa(146444,137026)|0;zZa(146456,137030)|0;zZa(146468,137034)|0;return}function Bp(d,f,g,h,i,j){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0;c[g>>2]=d;c[j>>2]=h;m=f;d=c[g>>2]|0;a:while(1){if(d>>>0>=f>>>0){d=0;break}h=b[d>>1]|0;l=h&65535;do if((h&65535)<128){d=c[j>>2]|0;if((i-d|0)<1){d=1;break a}c[j>>2]=d+1;a[d>>0]=h}else{if((h&65535)<2048){d=c[j>>2]|0;if((i-d|0)<2){d=1;break a}c[j>>2]=d+1;a[d>>0]=l>>>6|192;k=c[j>>2]|0;c[j>>2]=k+1;a[k>>0]=l&63|128;break}if((h&65535)<55296){d=c[j>>2]|0;if((i-d|0)<3){d=1;break a}c[j>>2]=d+1;a[d>>0]=l>>>12|224;k=c[j>>2]|0;c[j>>2]=k+1;a[k>>0]=l>>>6&63|128;k=c[j>>2]|0;c[j>>2]=k+1;a[k>>0]=l&63|128;break}if((h&65535)>=56320){if((h&65535)<57344){d=2;break a}d=c[j>>2]|0;if((i-d|0)<3){d=1;break a}c[j>>2]=d+1;a[d>>0]=l>>>12|224;k=c[j>>2]|0;c[j>>2]=k+1;a[k>>0]=l>>>6&63|128;k=c[j>>2]|0;c[j>>2]=k+1;a[k>>0]=l&63|128;break}if((m-d|0)<4){d=1;break a}d=d+2|0;h=e[d>>1]|0;if((h&64512|0)!=56320){d=2;break a}if((i-(c[j>>2]|0)|0)<4){d=1;break a}k=l&960;if(((k<<10)+65536|0)>>>0>1114111){d=2;break a}c[g>>2]=d;d=(k>>>6)+1|0;k=c[j>>2]|0;c[j>>2]=k+1;a[k>>0]=d>>>2|240;k=c[j>>2]|0;c[j>>2]=k+1;a[k>>0]=l>>>2&15|d<<4&48|128;k=c[j>>2]|0;c[j>>2]=k+1;a[k>>0]=l<<4&48|h>>>6&15|128;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=h&63|128}while(0);d=(c[g>>2]|0)+2|0;c[g>>2]=d}return d|0}function Cp(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,o=0,p=0,q=0;q=yb;yb=yb+112|0;i=q+88|0;j=q+80|0;f=q+76|0;k=q+72|0;p=q+60|0;l=q+48|0;g=q+24|0;m=q;Gsb(j,WCb(c[b+36>>2]|0)|0);Cub(f);o=d+12|0;switch(c[(c[o>>2]|0)+4>>2]|0){case 1:{e=c[37307]|0;c[f>>2]=e;break}case 3:{e=c[37309]|0;c[f>>2]=e;break}case 4:{e=c[37310]|0;c[f>>2]=e;break}case 5:{ma(84722,84758,100,97427);break}case 0:{ma(141129,84758,102,97427);break}case 6:case 2:{yb=q;return}default:e=c[f>>2]|0}c[k>>2]=e;e=b+44|0;h=c[e>>2]|0;c[e>>2]=h+1;Bqb(g,h);h=i;e=g;f=h+24|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(f|0));b=D7(j,i)|0;c[l>>2]=b;b=l+4|0;Bqb(m,c[d+8>>2]|0);h=i;e=m;f=h+24|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(f|0));m=D7(j,i)|0;c[b>>2]=m;c[l+8>>2]=c[o>>2];c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;n=0;da(174,p|0,3);m=n;n=0;if(m&1){q=sa()|0;P()|0;Qcb(p);Ea(q|0)}ssa(p,l,l+12|0);b=c[(c[o>>2]|0)+4>>2]|0;m=c[j>>2]|0;n=0;c[i>>2]=c[k>>2];b=W(14,m|0,i|0,p|0,b|0)|0;m=n;n=0;if(m&1){q=sa()|0;P()|0;Vob(p);Ea(q|0)}c[o>>2]=b;Vob(p);yb=q;return}function Dp(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,l=0,m=0,n=0,o=0,p=0;c[f>>2]=b;c[i>>2]=g;p=e;a:while(1){o=c[f>>2]|0;if(o>>>0>=e>>>0){b=0;break}if(g>>>0>=h>>>0){b=1;break}m=a[o>>0]|0;b=m&255;do if(m<<24>>24<=-1){if((m&255)<194){b=2;break a}if((m&255)<224){if((p-o|0)<2){b=1;break a}j=d[o+1>>0]|0;if((j&192|0)!=128){b=2;break a}b=j&63|b<<6&1984;j=2;break}if((m&255)<240){if((p-o|0)<3){b=1;break a}k=a[o+1>>0]|0;j=a[o+2>>0]|0;switch(m<<24>>24){case -32:{if((k&-32)<<24>>24!=-96){b=2;break a}break}case -19:{if((k&-32)<<24>>24!=-128){b=2;break a}break}default:if((k&-64)<<24>>24!=-128){b=2;break a}}j=j&255;if((j&192|0)!=128){b=2;break a}b=(k&63)<<6|b<<12&61440|j&63;j=3;break}if((m&255)>=245){b=2;break a}if((p-o|0)<4){b=1;break a}n=a[o+1>>0]|0;j=a[o+2>>0]|0;l=a[o+3>>0]|0;switch(m<<24>>24){case -16:{if((n+112&255)>=48){b=2;break a}break}case -12:{if((n&-16)<<24>>24!=-128){b=2;break a}break}default:if((n&-64)<<24>>24!=-128){b=2;break a}}k=j&255;if((k&192|0)!=128){b=2;break a}j=l&255;if((j&192|0)!=128){b=2;break a}b=(n&63)<<12|b<<18&1835008|k<<6&4032|j&63;if(b>>>0>1114111){b=2;break a}else j=4}else j=1;while(0);c[g>>2]=b;c[f>>2]=o+j;o=(c[i>>2]|0)+4|0;c[i>>2]=o;g=o}return b|0}function Ep(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;l=yb;yb=yb+48|0;d=l+40|0;g=l+36|0;j=l+24|0;k=l;h=b+16|0;e=c[h>>2]|0;if(!e){yb=l;return}i=b+12|0;if(L6(c[i>>2]|0,e)|0){Gsb(d,WCb(c[a+36>>2]|0)|0);cFa(a,b);j=c[d>>2]|0;k=Q6a(j,c[b+8>>2]|0)|0;k=zMa(j,k,c[i>>2]|0)|0;uZa(k,c[b+4>>2]|0);Pwb(c[a+16>>2]|0,k);yb=l;return}d=Rqb(c[i>>2]|0)|0;e=Rqb(c[h>>2]|0)|0;c[g>>2]=a;f=(e|0)==0;if(!d){if(f){yb=l;return}d=DR(g,e,i)|0;if(!d){yb=l;return}}else if(f){e=DR(g,d,h)|0;if(!e){yb=l;return}}if(eCb(c[d+8>>2]|0)|0){yb=l;return}if(eCb(c[e+8>>2]|0)|0){yb=l;return}Wib(k,d);Wib(k+12|0,e);c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;n=0;da(621,j|0,2);i=n;n=0;if(i&1){l=sa()|0;P()|0;Qcb(j);Ea(l|0)}Xca(j,k,k+24|0);n=0;ea(128,a|0,j|0,b|0);k=n;n=0;if(k&1){l=sa()|0;P()|0;Vob(j);Ea(l|0)}Vob(j);yb=l;return}function Fp(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,o=0;m=yb;yb=yb+64|0;i=m+40|0;j=m+12|0;k=m+24|0;l=m;a:do if((d-b|0)>3?(a[b>>0]|0)==68:0){switch(a[b+1>>0]|0){case 84:case 116:break;default:break a}o=b+2|0;g=ac(o,d,e)|0;if((!((g|0)==(o|0)|(g|0)==(d|0))?(a[g>>0]|0)==69:0)?(h=e+4|0,f=c[h>>2]|0,(c[e>>2]|0)!=(f|0)):0){d6(l,f+-24|0);n=0;V(128,l|0,0,141245)|0;o=n;n=0;do if(o&1){b=sa()|0;P()|0}else{c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,k|0,139927)|0;o=n;n=0;if(o&1){b=sa()|0;P()|0;Chb(k);break}c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];b=0;while(1){if((b|0)==3)break;c[k+(b<<2)>>2]=0;b=b+1|0}X6(i,j);RC((c[h>>2]|0)+-24|0,i);J2a(i);Chb(j);Chb(k);Chb(l);b=g+1|0;break a}while(0);Chb(l);Ea(b|0)}}while(0);yb=m;return b|0}function Gp(){var b=0,d=0;if((a[147632]|0)==0?mlb(147632)|0:0){d=146944;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=147232)}yZa(146944,48564)|0;yZa(146956,48596)|0;yZa(146968,48632)|0;yZa(146980,48656)|0;yZa(146992,48680)|0;yZa(147004,48696)|0;yZa(147016,48716)|0;yZa(147028,48736)|0;yZa(147040,48764)|0;yZa(147052,48804)|0;yZa(147064,48836)|0;yZa(147076,48872)|0;yZa(147088,48908)|0;yZa(147100,48924)|0;yZa(147112,48940)|0;yZa(147124,48956)|0;yZa(147136,48680)|0;yZa(147148,48972)|0;yZa(147160,48988)|0;yZa(147172,49004)|0;yZa(147184,49020)|0;yZa(147196,49036)|0;yZa(147208,49052)|0;yZa(147220,49068)|0;return}function Hp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0;p=yb;yb=yb+96|0;o=p+48|0;k=p+40|0;l=p;m=p+72|0;a:do if((d-b|0)>>>0>20){f=0;d=k;while(1){g=a[b+f>>0]|0;i=g<<24>>24;if((f|0)==20){j=6;break}if(!(itb(i)|0))break;g=a[b+(f|1)>>0]|0;a[d>>0]=(((i+-48|0)>>>0<10?0:9)+i<<4)+g+((g+-48|0)>>>0<10?208:169);f=f+2|0;d=d+1|0}do if((j|0)==6){if(g<<24>>24==69){b:do if((d|0)!=(k|0)){f=k;while(1){d=d+-1|0;if(f>>>0>=d>>>0)break b;j=a[f>>0]|0;a[f>>0]=a[d>>0]|0;a[d>>0]=j;f=f+1|0}}while(0);d=l;f=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(f|0));h[o>>3]=+h[k>>3];d=p_a(l,40,141233,o)|0;if(d>>>0>39)break;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;T3(m,l,d);X6(o,m);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,o|0);e=n;n=0;if(e&1){p=sa()|0;P()|0;J2a(o);Chb(m);Ea(p|0)}}else{I6(f,o);c[d>>2]=(c[d>>2]|0)+24}J2a(o);Chb(m);b=b+21|0}break a}while(0)}while(0);yb=p;return b|0}function Ip(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+96|0;e=h+64|0;f=h+32|0;g=h;nz(e,b,c[d+8>>2]|0);if(lsb(e)|0){c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];c[a+28>>2]=c[e+28>>2];yb=h;return}nz(f,b,c[d+12>>2]|0);if(lsb(f)|0){c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];c[a+16>>2]=c[f+16>>2];c[a+20>>2]=c[f+20>>2];c[a+24>>2]=c[f+24>>2];c[a+28>>2]=c[f+28>>2];yb=h;return}nz(g,b,c[d+16>>2]|0);if(lsb(g)|0){c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=h;return}else{g=(Peb(g)|0)==0;g=g?f:e;c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=h;return}}function Jp(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=yb;yb=yb+16|0;j=l+12|0;k=l;e=c[d>>2]|0;c[j>>2]=e;f=c[b>>2]|0;g=f+140|0;if(TC(b+64|0,j)|0){k=b+64|0;k=Dm(k,j)|0;k=c[k>>2]|0;c[a>>2]=k;k=a+4|0;j=d+4|0;j=c[j>>2]|0;c[k>>2]=j;k=a+8|0;j=d+8|0;j=c[j>>2]|0;c[k>>2]=j;yb=l;return}h=f+144|0;i=((c[h>>2]|0)-(c[g>>2]|0)|0)/12|0;e=WCb(e)|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;D8(k,e,Zzb(e)|0);e=c[h>>2]|0;if(e>>>0>=(c[f+148>>2]|0)>>>0){n=0;da(224,g|0,k|0);h=n;n=0;if(h&1){l=sa()|0;P()|0;Chb(k);Ea(l|0)}}else{c[e>>2]=c[k>>2];c[e+4>>2]=c[k+4>>2];c[e+8>>2]=c[k+8>>2];e=0;while(1){if((e|0)==3)break;c[k+(e<<2)>>2]=0;e=e+1|0}c[h>>2]=(c[h>>2]|0)+12}Chb(k);k=b+64|0;h=Dm(k,j)|0;c[h>>2]=i;k=Dm(k,j)|0;k=c[k>>2]|0;c[a>>2]=k;k=a+4|0;j=d+4|0;j=c[j>>2]|0;c[k>>2]=j;k=a+8|0;j=d+8|0;j=c[j>>2]|0;c[k>>2]=j;yb=l;return}function Kp(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,s=0,t=0;r=yb;yb=yb+32|0;o=r+16|0;p=r+8|0;l=r+4|0;m=r;g=b+52|0;if(a[g>>0]|0){f=b+48|0;e=c[f>>2]|0;if(d){c[f>>2]=-1;a[g>>0]=0}}else{e=c[b+44>>2]|0;e=(e|0)>1?e:1;n=b+32|0;f=0;while(1){if(f>>>0>=e>>>0){q=8;break}g=Rea(c[n>>2]|0)|0;if((g|0)==-1){e=-1;break}a[o+f>>0]=g;f=f+1|0}if((q|0)==8){do if(!(a[b+53>>0]|0)){i=b+40|0;j=b+36|0;k=p+1|0;a:while(1){s=c[i>>2]|0;g=s;f=c[g>>2]|0;g=c[g+4>>2]|0;t=c[j>>2]|0;h=o+e|0;switch(Ob[c[(c[t>>2]|0)+16>>2]&15](t,s,o,h,l,p,k,m)|0){case 3:{q=14;break a}case 2:{q=16;break a}case 1:break;default:break a}t=c[i>>2]|0;c[t>>2]=f;c[t+4>>2]=g;if((e|0)==8){q=16;break}f=Rea(c[n>>2]|0)|0;if((f|0)==-1){q=16;break}a[h>>0]=f;e=e+1|0}if((q|0)==14)a[p>>0]=a[o>>0]|0;else if((q|0)==16){e=-1;break}q=18}else{a[p>>0]=a[o>>0]|0;q=18}while(0);b:do if((q|0)==18){if(d){e=Qzb(a[p>>0]|0)|0;c[b+48>>2]=e;break}while(1){if((e|0)<=0)break;e=e+-1|0;t=Qzb(a[o+e>>0]|0)|0;if((Fba(t,c[n>>2]|0)|0)==-1){e=-1;break b}}e=Qzb(a[p>>0]|0)|0}while(0)}}yb=r;return e|0}function Lp(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;j=yb;yb=yb+32|0;f=j+28|0;e=j;d=j+24|0;g=j+12|0;i=j+8|0;h=hB(a)|0;c[d>>2]=h;c[f>>2]=c[d>>2];fib(e,f,(b|0)!=0&(b|0)!=6&1);f=a+156|0;d=c[f>>2]|0;if(d>>>0<(c[a+160>>2]|0)>>>0){l=e;k=c[l+4>>2]|0;e=d;c[e>>2]=c[l>>2];c[e+4>>2]=k;c[f>>2]=(c[f>>2]|0)+8}else VG(a+152|0,e);l=a+188|0;e=a+184|0;d=(c[l>>2]|0)-(c[e>>2]|0)>>2;wn(a);e=(c[l>>2]|0)-(c[e>>2]|0)>>2;do if(e>>>0>>0){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;D8(g,116959,Zzb(116959)|0);n=0;da(4022,a|0,g|0);l=n;n=0;if(l&1){l=sa()|0;P()|0;Chb(g);Ea(l|0)}else{Chb(g);break}}while(0);c[f>>2]=(c[f>>2]|0)+-8;f=Eeb(c[a+4>>2]|0)|0;pr(a,f,d,e);e=f+8|0;c[e>>2]=h;uZa(f,b);d=a+164|0;if((NF(d,e)|0)==0?(Cub(i),c[e>>2]=c[i>>2],(WCb(c[f+16>>2]|0)|0)==1):0){l=uXa(f+12|0,0)|0;l=c[l>>2]|0;yb=j;return l|0}_ca(d,e);l=f;yb=j;return l|0}function Mp(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=yb;yb=yb+48|0;e=l+32|0;f=l+24|0;g=l+12|0;j=l+8|0;k=l;c[g>>2]=b;c[j>>2]=d;h=zI(a,d)|0;if(h|0){e=h+12|0;FH(l+16|0,c[e>>2]|0,b,g);d=dm(a,g)|0;e=c[e>>2]|0;b=c[h+16>>2]|0;if(b|0){k=b+4|0;c[k>>2]=(c[k>>2]|0)+1}c[d>>2]=e;j=d+4|0;k=c[j>>2]|0;c[j>>2]=b;OCa(k);yb=l;return}vDa(k);b=c[k>>2]|0;h=b;n=0;fa(104,f|0,b|0,c[g>>2]|0,g|0);f=n;n=0;if((!(f&1)?(n=0,fa(104,e|0,b|0,d|0,j|0),f=n,n=0,!(f&1)):0)?(n=0,i=U(155,a|0,g|0)|0,g=n,n=0,!(g&1)):0){f=k+4|0;b=c[f>>2]|0;if(b|0){g=b+4|0;c[g>>2]=(c[g>>2]|0)+1}c[i>>2]=h;i=i+4|0;e=c[i>>2]|0;c[i>>2]=b;OCa(e);n=0;e=U(155,a|0,j|0)|0;j=n;n=0;if(!(j&1)){d=c[f>>2]|0;if(!d)b=d;else{b=d+4|0;c[b>>2]=(c[b>>2]|0)+1;b=c[f>>2]|0}c[e>>2]=h;j=e+4|0;k=c[j>>2]|0;c[j>>2]=d;OCa(k);OCa(b);yb=l;return}}l=sa()|0;P()|0;OCa(c[k+4>>2]|0);Ea(l|0)}function Np(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=yb;yb=yb+64|0;d=f+48|0;e=f+36|0;g=f+24|0;h=f+12|0;i=f;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,73002,Zzb(73002)|0);n=0;da(229,i|0,b|0);b=n;n=0;if(b&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}b=a[i+11>>0]|0;j=b<<24>>24<0;n=0;V(43,h|0,(j?c[i>>2]|0:i)|0,(j?c[i+4>>2]|0:b&255)|0)|0;b=n;n=0;if(b&1){b=sa()|0;P()|0}else{c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;U(69,g|0,73009)|0;j=n;n=0;do if(!(j&1)){c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}n=0;da(230,d|0,e|0);j=n;n=0;if(j&1){b=sa()|0;P()|0;Chb(e);break}else{Chb(e);Chb(g);Chb(i);Chb(h);yb=f;return c[d>>2]|0}}else{b=sa()|0;P()|0}while(0);Chb(g)}Chb(i);j=b;Chb(h);Ea(j|0);return 0}function Op(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=yb;yb=yb+64|0;d=f+48|0;e=f+36|0;g=f+24|0;h=f+12|0;i=f;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,72786,Zzb(72786)|0);n=0;da(229,i|0,b|0);b=n;n=0;if(b&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}b=a[i+11>>0]|0;j=b<<24>>24<0;n=0;V(43,h|0,(j?c[i>>2]|0:i)|0,(j?c[i+4>>2]|0:b&255)|0)|0;b=n;n=0;if(b&1){b=sa()|0;P()|0}else{c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;U(69,g|0,72793)|0;j=n;n=0;do if(!(j&1)){c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}n=0;da(230,d|0,e|0);j=n;n=0;if(j&1){b=sa()|0;P()|0;Chb(e);break}else{Chb(e);Chb(g);Chb(i);Chb(h);yb=f;return c[d>>2]|0}}else{b=sa()|0;P()|0}while(0);Chb(g)}Chb(i);j=b;Chb(h);Ea(j|0);return 0}function Pp(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;l=yb;yb=yb+16|0;k=l+4|0;h=l;a:do if(!(c[e+4>>2]&1)){j=c[(c[b>>2]|0)+24>>2]|0;c[h>>2]=c[d>>2];c[k>>2]=c[h>>2];b=Kb[j&31](b,k,e,f,g&1)|0}else{anb(k,e);n=0;b=U(66,c[k>>2]|0,151340)|0;j=n;n=0;do if(!(j&1)){XWa(k);e=c[b>>2]|0;if(g)Sb[c[e+24>>2]&8191](k,b);else Sb[c[e+28>>2]&8191](k,b);i=k+11|0;b=a[i>>0]|0;e=c[k>>2]|0;j=k+4|0;g=b<<24>>24<0?e:k;while(1){h=b<<24>>24<0;if((g|0)==((h?e:k)+(h?c[j>>2]|0:b&255)|0)){e=9;break}b=a[g>>0]|0;e=c[d>>2]|0;if(e|0){f=e+24|0;h=c[f>>2]|0;if((h|0)==(c[e+28>>2]|0)){h=c[(c[e>>2]|0)+52>>2]|0;b=Qzb(b)|0;n=0;b=U(h|0,e|0,b|0)|0;h=n;n=0;if(h&1){e=18;break}}else{c[f>>2]=h+1;a[h>>0]=b;b=Qzb(b)|0}if(dub(b,-1)|0)c[d>>2]=0}g=g+1|0;b=a[i>>0]|0;e=c[k>>2]|0}if((e|0)==9){b=c[d>>2]|0;Chb(k);break a}else if((e|0)==18){b=sa()|0;P()|0;Chb(k);break}}else{b=sa()|0;P()|0;XWa(k)}while(0);Ea(b|0)}while(0);yb=l;return b|0}function Qp(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=yb;yb=yb+112|0;m=v+88|0;q=v+72|0;g=v+48|0;f=v+24|0;o=v;iG(q,b,1);l=b+44|0;u=c[l>>2]|0;Bqb(g,0);n=0;e=m;h=e+24|0;do{a[e>>0]=a[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));e=U(120,u|0,m|0)|0;h=n;n=0;if((!(h&1)?(n=0,p=_(15,c[u>>2]|0,8,0,8,e|0,c[d+12>>2]|0,4)|0,h=n,n=0,!(h&1)):0)?(i=c[l>>2]|0,n=0,j=S(280,q|0)|0,h=n,n=0,!(h&1)):0){d=c[l>>2]|0;Bqb(f,0);n=0;e=m;g=f;h=e+24|0;do{a[e>>0]=a[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));e=U(120,d|0,m|0)|0;h=n;n=0;if((!(h&1)?(n=0,k=_(16,c[d>>2]|0,4,1,4,4,e|0,1)|0,h=n,n=0,!(h&1)):0)?(n=0,r=V(70,c[i>>2]|0,j|0,k|0)|0,k=n,n=0,!(k&1)):0){d=c[l>>2]|0;Bqb(o,0);n=0;e=m;g=o;h=e+24|0;do{a[e>>0]=a[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));e=U(120,d|0,m|0)|0;o=n;n=0;if(((!(o&1)?(n=0,s=_(16,c[d>>2]|0,4,1,0,4,e|0,1)|0,o=n,n=0,!(o&1)):0)?(n=0,t=W(27,u|0,p|0,r|0,s|0)|0,u=n,n=0,!(u&1)):0)?(n=0,ea(147,b|0,t|0,q|0),u=n,n=0,!(u&1)):0){Pwb(c[b+16>>2]|0,t);lNa(q);yb=v;return}}}v=sa()|0;P()|0;lNa(q);Ea(v|0)}function Rp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+96|0;g=i+64|0;e=i+32|0;h=i;zsb(g);f=c[d+12>>2]|0;if(f|0?(AB(e,b,f),c[g>>2]=c[e>>2],c[g+4>>2]=c[e+4>>2],c[g+8>>2]=c[e+8>>2],c[g+12>>2]=c[e+12>>2],c[g+16>>2]=c[e+16>>2],c[g+20>>2]=c[e+20>>2],c[g+24>>2]=c[e+24>>2],lsb(g)|0):0){c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=i;return}e=c[d+16>>2]|0;if(e|0){AB(h,b,e);if(lsb(h)|0){c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>2];c[a+28>>2]=c[h+28>>2];yb=i;return}h=Wsa(h)|0;if((h|0)==0&(P()|0)==0){c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=i;return}}c[g+24>>2]=c[d+8>>2];c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=i;return}function Sp(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;j=yb;yb=yb+32|0;h=j+24|0;g=j+16|0;i=j;c[h>>2]=b;if(!(MQa(c[b+8>>2]|0)|0))ma(89776,89176,737,89808);c[g>>2]=a;c[g+4>>2]=h;c[i>>2]=a;c[i+4>>2]=h;c[i+8>>2]=g;a=c[b+12>>2]|0;e=c[a>>2]|0;k=_xb(e)|0;f=c[b+16>>2]|0;d=c[f>>2]|0;if(k?!(_xb(d)|0):0){p2(g);yb=j;return}if(_xb(d)|0){yb=j;return}if(Axb(e)|0?!(Axb(d)|0):0){taa(i);yb=j;return}if((e|0)!=(d|0)){if((e|0)<=(d|0)){yb=j;return}taa(i);yb=j;return}d=Kqb(a)|0;do if(d){k=dfb(f)|0;if((c[d+8>>2]|0)<=(c[k+8>>2]|0)){b=c[h>>2]|0;a=c[b+12>>2]|0;break}taa(i);yb=j;return}while(0);d=Aqb(a)|0;do if(d){k=Veb(c[b+16>>2]|0)|0;if((c[d+8>>2]|0)<=(c[k+8>>2]|0)){b=c[h>>2]|0;a=c[b+12>>2]|0;break}taa(i);yb=j;return}while(0);a=jqb(a)|0;if(!a){yb=j;return}k=Leb(c[b+16>>2]|0)|0;if((c[a+8>>2]|0)>>>0<=(c[k+8>>2]|0)>>>0){yb=j;return}taa(i);yb=j;return}function Tp(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;m=yb;yb=yb+32|0;d=m+16|0;j=m;f=b+8|0;e=c[f>>2]|0;if(!e){Pwb(d,0);l=Dba(c[d>>2]|0)|0;yb=m;return l|0}b=c[a>>2]|0;if(!(HYa(b,e)|0)){l=uga(a,e,c[37043]|0)|0;l=Dba(mG(l,Yga(c[(c[f>>2]|0)+4>>2]|0)|0)|0)|0;yb=m;return l|0}DW(j,c[e+4>>2]|0,b,c[a+8>>2]|0,c[37043]|0);n=0;b=Q(4)|0;e=n;n=0;if(((((((!(e&1)?(n=0,g=V(46,a|0,c[f>>2]|0,c[j+8>>2]|0)|0,a=n,n=0,!(a&1)):0)?(n=0,da(76,b|0,g|0),g=n,n=0,!(g&1)):0)?(n=0,h=S(224,j|0)|0,g=n,n=0,!(g&1)):0)?(n=0,i=S(226,c[(c[f>>2]|0)+4>>2]|0)|0,g=n,n=0,!(g&1)):0)?(n=0,k=U(72,h|0,i|0)|0,i=n,n=0,!(i&1)):0)?(n=0,l=S(227,k|0)|0,k=n,n=0,!(k&1)):0)?(n=0,da(76,b|0,l|0),l=n,n=0,!(l&1)):0){dha(j);l=b;yb=m;return l|0}m=sa()|0;P()|0;dha(j);Ea(m|0);return 0}function Up(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g;f=b+8|0;switch(c[f>>2]|0){case 45:case 20:case 44:case 19:case 43:case 18:case 42:case 17:case 41:case 16:case 40:case 15:case 39:case 14:case 38:case 13:case 37:case 12:case 36:case 11:case 35:case 10:case 34:case 9:case 33:case 8:case 32:case 7:case 31:case 6:case 30:case 5:case 29:case 4:case 28:case 3:case 27:case 2:case 26:case 1:case 25:case 0:{e=sma(a,cj(a,c[b+12>>2]|0)|0,b)|0;if(PBb(c[e>>2]|0)|0){b=e;yb=g;return b|0}d=sma(a,cj(a,c[b+16>>2]|0)|0,b)|0;if(PBb(c[d>>2]|0)|0){b=d;yb=g;return b|0}b=b1a(b,b)|0;a=iL(a,b)|0;ufa(a,e);ufa(a,d);yb=g;return b|0}case 49:case 24:case 47:case 22:case 48:case 23:case 46:case 21:{Gsb(e,c[a+120>>2]|0);switch(c[f>>2]|0){case 21:{d=17;break}case 46:{d=42;break}case 23:{d=19;break}case 48:{d=44;break}case 22:{d=18;break}case 47:{d=43;break}case 24:{d=20;break}case 49:{d=45;break}default:ma(141129,77745,529,77930)}a=Zab(a,hIa(c[e>>2]|0,d,c[b+16>>2]|0,c[b+12>>2]|0)|0)|0;c[a+8>>2]=b;b=a;yb=g;return b|0}default:{b=mHa(a,c[b+4>>2]|0)|0;yb=g;return b|0}}return 0}function Vp(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;l=yb;yb=yb+64|0;g=l+52|0;d=l+32|0;e=l+12|0;i=l+8|0;j=l+4|0;k=l;f=b+16|0;if(c[f>>2]|0){c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[d+16>>2]=0;CAb(e);c[e+8>>2]=c[f>>2];c[e+12>>2]=d;a=uga(a,e,c[a+4>>2]|0)|0;yb=l;return a|0}Pwb(i,0);h=b+8|0;if(!(NF(a+52|0,h)|0)){c[j>>2]=c[h>>2];e=c[a>>2]|0;c[g>>2]=c[j>>2];e=G2(Kha(e,g,2)|0)|0;f=e;c[i>>2]=f}else{c[k>>2]=c[h>>2];e=c[a>>2]|0;c[g>>2]=c[k>>2];e=r2(Kha(e,g,2)|0)|0;f=e;c[i>>2]=f}d=c[b+12>>2]|0;if(!d){a=f;yb=l;return a|0}b=u5(a+40|0,h)|0;a=Oaa(JR(a,d,c[b>>2]|0)|0)|0;b=rrb(a,1)|0;KJa(WCb(c[b>>2]|0)|0,e)|0;yb=l;return a|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,k=0;k=yb;yb=yb+16|0;e=k;if((b|0)==(a|0)){yb=k;return}i=a+16|0;g=c[i>>2]|0;f=g;j=b+16|0;h=c[j>>2]|0;d=(h|0)==(b|0);if((g|0)!=(a|0)){if(!d){c[i>>2]=h;c[j>>2]=f;yb=k;return}a=WCb(a)|0;n=0;da(c[(c[h>>2]|0)+12>>2]|0,h|0,a|0);h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}h=c[j>>2]|0;Rb[c[(c[h>>2]|0)+16>>2]&1023](h);c[j>>2]=c[i>>2];c[i>>2]=a;yb=k;return}if(!d){a=WCb(b)|0;n=0;da(c[(c[g>>2]|0)+12>>2]|0,g|0,a|0);j=n;n=0;if(j&1){j=ta(0)|0;P()|0;yub(j)}j=c[i>>2]|0;Rb[c[(c[j>>2]|0)+16>>2]&1023](j);j=b+16|0;c[i>>2]=c[j>>2];c[j>>2]=a;yb=k;return}d=WCb(e)|0;n=0;da(c[(c[g>>2]|0)+12>>2]|0,g|0,d|0);b=n;n=0;if(b&1){b=ta(0)|0;P()|0;yub(b)}b=c[i>>2]|0;Rb[c[(c[b>>2]|0)+16>>2]&1023](b);c[i>>2]=0;b=c[j>>2]|0;a=WCb(g)|0;n=0;da(c[(c[b>>2]|0)+12>>2]|0,b|0,a|0);g=n;n=0;if(g&1){g=ta(0)|0;P()|0;yub(g)}g=c[j>>2]|0;Rb[c[(c[g>>2]|0)+16>>2]&1023](g);c[j>>2]=0;c[i>>2]=a;a=WCb(h)|0;n=0;da(c[(c[d>>2]|0)+12>>2]|0,d|0,a|0);i=n;n=0;if(i&1){i=ta(0)|0;P()|0;yub(i)}Rb[c[(c[d>>2]|0)+16>>2]&1023](d);c[j>>2]=a;yb=k;return}function Xp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=yb;yb=yb+32|0;f=j+12|0;i=j;if(a[b+12>>0]&1)BM(IWa(150620,113194)|0);g=IF(b)|0;e=c[b>>2]|0;do if(g>>>0>=(c[e+4>>2]|0)-(c[e>>2]|0)>>2>>>0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,116738,Zzb(116738)|0);n=0;da(4022,b|0,f|0);h=n;n=0;if(!(h&1)){Chb(f);e=c[b>>2]|0;break}j=sa()|0;P()|0;Chb(f);Ea(j|0)}while(0);h=c[(c[e>>2]|0)+(g<<2)>>2]|0;do if(IF(b)|0){c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;D8(i,116771,Zzb(116771)|0);n=0;da(4022,b|0,i|0);g=n;n=0;if(!(g&1)){Chb(i);break}j=sa()|0;P()|0;Chb(i);Ea(j|0)}while(0);c[d+24>>2]=c[h>>2];f=(c[h+12>>2]|0)-(c[h+8>>2]|0)>>2;g=d+8|0;Cka(g,f);e=rl(b)|0;c[d+28>>2]=e;e=0;while(1){if((f|0)==(e|0))break;k=rl(b)|0;i=uXa(g,f-e+-1|0)|0;c[i>>2]=k;e=e+1|0}c[d+4>>2]=c[h+4>>2];q5a(d);yb=j;return}function Yp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=yb;yb=yb+48|0;g=i+24|0;h=i+12|0;j=i;a:do if(((b|0)!=(d|0)?(a[b>>0]|0)==46:0)?(f=e+4|0,(c[e>>2]|0)!=(c[f>>2]|0)):0){c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;NR(j,b,d);n=0;V(128,j|0,0,139924)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0}else{c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];b=0;while(1){if((b|0)==3)break;c[j+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,h|0,139927)|0;e=n;n=0;do if(!(e&1)){c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}e=a[g+11>>0]|0;b=e<<24>>24<0;n=0;V(124,(c[f>>2]|0)+-24|0,(b?c[g>>2]|0:g)|0,(b?c[g+4>>2]|0:e&255)|0)|0;f=n;n=0;if(f&1){b=sa()|0;P()|0;Chb(g);break}else{Chb(g);Chb(h);Chb(j);b=d;break a}}else{b=sa()|0;P()|0}while(0);Chb(h)}Chb(j);Ea(b|0)}while(0);yb=i;return b|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,l=0;k=yb;yb=yb+128|0;i=k+104|0;j=k+88|0;g=k+56|0;h=k+24|0;f=k;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;n=0;fa(86,g|0,d|0,e+8|0,j|0);l=n;n=0;if(!(l&1)){if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];Vob(j);yb=k;return}n=0;ea(116,h|0,d|0,c[e+28>>2]|0);l=n;n=0;if(!(l&1)){if(lsb(h)|0){c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];c[b+28>>2]=c[h+28>>2];Vob(j);yb=k;return}n=0;g=S(232,h|0)|0;l=n;n=0;if(!(l&1)?(l=c[d+4>>2]|0,d=c[l+36>>2]|0,l=WCb(l)|0,n=0,ha(c[(c[d>>2]|0)+12>>2]|0,f|0,d|0,g|0,j|0,c[e+4>>2]|0,l|0),l=n,n=0,!(l&1)):0){h=i;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,i);Vob(j);yb=k;return}}}l=sa()|0;P()|0;Vob(j);Ea(l|0)}function _p(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;l=yb;yb=yb+16|0;k=l+4|0;h=l;a:do if(!(c[e+4>>2]&1)){j=c[(c[b>>2]|0)+24>>2]|0;c[h>>2]=c[d>>2];c[k>>2]=c[h>>2];b=Kb[j&31](b,k,e,f,g&1)|0}else{anb(k,e);n=0;b=U(66,c[k>>2]|0,151364)|0;j=n;n=0;do if(!(j&1)){XWa(k);e=c[b>>2]|0;if(g)Sb[c[e+24>>2]&8191](k,b);else Sb[c[e+28>>2]&8191](k,b);i=k+8+3|0;b=a[i>>0]|0;e=c[k>>2]|0;j=k+4|0;g=b<<24>>24<0?e:k;while(1){h=b<<24>>24<0;if((g|0)==((h?e:k)+((h?c[j>>2]|0:b&255)<<2)|0)){e=9;break}b=c[g>>2]|0;e=c[d>>2]|0;if(e|0){f=e+24|0;h=c[f>>2]|0;if((h|0)==(c[e+28>>2]|0)){h=c[(c[e>>2]|0)+52>>2]|0;b=WCb(b)|0;n=0;b=U(h|0,e|0,b|0)|0;h=n;n=0;if(h&1){e=18;break}}else{c[f>>2]=h+4;c[h>>2]=b;b=WCb(b)|0}if(Nwb(b)|0)c[d>>2]=0}g=g+4|0;b=a[i>>0]|0;e=c[k>>2]|0}if((e|0)==9){b=c[d>>2]|0;bhb(k);break a}else if((e|0)==18){b=sa()|0;P()|0;bhb(k);break}}else{b=sa()|0;P()|0;XWa(k)}while(0);Ea(b|0)}while(0);yb=l;return b|0}function $p(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 aq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=yb;yb=yb+16|0;d=i+12|0;f=i+8|0;g=i+4|0;j=i;e=c[b+8>>2]|0;if(!(eCb(e)|0)){cqb();n=0;ca(491,135269);h=n;n=0;if(h&1){sa()|0;P()|0;iSa()}else iSa()}h=b+8|0;c[f>>2]=e;c[d>>2]=c[f>>2];if(lEa(a,d)|0){cqb();n=0;ca(491,135301);f=n;n=0;if(f&1){sa()|0;P()|0;iSa()}c[g>>2]=c[h>>2];n=0;c[d>>2]=c[g>>2];ca(498,d|0);g=n;n=0;if(g&1){sa()|0;P()|0;iSa()}n=0;ca(491,135203);g=n;n=0;if(g&1){sa()|0;P()|0;iSa()}else iSa()}c[j>>2]=b;d=a+28|0;e=c[d>>2]|0;if(e>>>0<(c[a+32>>2]|0)>>>0){c[j>>2]=0;c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4;c[j>>2]=0;j=a+200|0;j=G7(j,h)|0;c[j>>2]=b;yb=i;return}n=0;da(4185,a+24|0,j|0);g=n;n=0;if(g&1){d=sa()|0;P()|0;e=c[j>>2]|0;c[j>>2]=0;if(!e)Ea(d|0);IM(e);RCb(e);Ea(d|0)}else{d=c[j>>2]|0;c[j>>2]=0;if(!d){j=a+200|0;j=G7(j,h)|0;c[j>>2]=b;yb=i;return}IM(d);RCb(d);j=a+200|0;j=G7(j,h)|0;c[j>>2]=b;yb=i;return}}function bq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+96|0;d=h+72|0;e=h+48|0;f=h+24|0;g=h;if(!(dub(c[b>>2]|0,c[37410]|0)|0)){yb=h;return}if(!(dub(c[b+4>>2]|0,c[37105]|0)|0)){yb=h;return}switch(c[b+12>>2]|0){case 1:{Bqb(d,666);g=_5(c[a>>2]|0,b+8|0)|0;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];yb=h;return}case 2:{Heb(e,666,0);g=_5(c[a>>2]|0,b+8|0)|0;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];yb=h;return}case 3:{pUa(f,666.5999755859375);g=_5(c[a>>2]|0,b+8|0)|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];c[g+12>>2]=c[f+12>>2];c[g+16>>2]=c[f+16>>2];yb=h;return}case 4:{kEa(g,666.6);f=_5(c[a>>2]|0,b+8|0)|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];yb=h;return}case 5:{ma(84722,68938,130,140271);break}case 6:case 0:{ma(141129,68938,132,140271);break}default:{yb=h;return}}}function cq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Kqb(b)|0;if(d|0){if((c[d+8>>2]|0)!=20)return b|0;d=Kqb(c[d+12>>2]|0)|0;if(!d)return b|0;if((c[d+8>>2]|0)!=20)return b|0;b=c[d+12>>2]|0;return b|0}e=Aqb(b)|0;if(e|0){switch(c[e+8>>2]|0){case 8:{d=e+12|0;f=cq(a,c[d>>2]|0)|0;c[d>>2]=f;d=e+16|0;f=cq(a,c[d>>2]|0)|0;c[d>>2]=f;break}case 16:{d=Mqb(c[e+16>>2]|0)|0;if(d|0?(Peb(d+8|0)|0)==0:0){f=c[e+12>>2]|0;return f|0}break}default:{}}d=zM(e)|0;if(!d){f=b;return f|0}f=q$(a,d,Q0a(e)|0)|0;return f|0}d=Rqb(b)|0;if(!d){d=wrb(b)|0;if(!d){f=b;return f|0}if((c[d+4>>2]|0)!=1){f=b;return f|0}f=d+12|0;e=cq(a,c[f>>2]|0)|0;c[f>>2]=e;f=d+16|0;a=cq(a,c[f>>2]|0)|0;c[f>>2]=a;f=b;return f|0}else{if((c[d+4>>2]|0)!=1){f=b;return f|0}if(!(WCb(c[d+16>>2]|0)|0)){f=b;return f|0}f=d+12|0;e=cWa(f)|0;a=cq(a,c[e>>2]|0)|0;f=cWa(f)|0;c[f>>2]=a;f=b;return f|0}return 0}function dq(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;k=yb;yb=yb+32|0;f=k+12|0;g=k;h=k+8|0;i=k+16|0;j=b+33|0;if(!(a[j>>0]&1))e=d+4|0;else{l=IWa(Wm(IWa(150620,112806)|0,d)|0,112821)|0;e=d+4|0;BM(Zm(l,c[e>>2]|0)|0)}a:do switch(c[e>>2]|0){case 1:{l=tI(c[b+28>>2]|0,65)|0;Pwb(f,Peb(d+8|0)|0);zz(l,c[f>>2]|0);break}case 2:{i=tI(c[b+28>>2]|0,66)|0;Fmb(g,$Xa(d+8|0)|0,P()|0);l=g;cy(i,c[l>>2]|0,c[l+4>>2]|0);break}case 3:{Xt(tI(c[b+28>>2]|0,67)|0,Vcb(d+8|0)|0);break}case 4:{gm(tI(c[b+28>>2]|0,68)|0,rVa(d+8|0)|0,P()|0);break}case 5:{b=b+28|0;e=tI(c[b>>2]|0,-3)|0;Pwb(h,2);YA(e,c[h>>2]|0)|0;qIa(i,d+8|0);e=0;while(1){if((e|0)==16)break a;Hmb(c[b>>2]|0,a[i+e>>0]|0);e=e+1|0}}case 6:case 0:{ma(141129,112765,1033,112825);break}default:{}}while(0);if(!(a[j>>0]&1)){yb=k;return}IWa(150620,112836)|0;yb=k;return}function eq(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=yb;yb=yb+112|0;m=v+88|0;r=v+72|0;f=v+48|0;h=v+24|0;o=v;e=d+12|0;pT(r,b,c[e>>2]|0);i=b+44|0;p=c[i>>2]|0;Bqb(f,0);n=0;d=m;g=d+24|0;do{a[d>>0]=a[f>>0]|0;d=d+1|0;f=f+1|0}while((d|0)<(g|0));d=U(120,p|0,m|0)|0;g=n;n=0;if(!(g&1)?(n=0,q=_(15,c[p>>2]|0,4,0,4,d|0,c[e>>2]|0,1)|0,g=n,n=0,!(g&1)):0){e=c[i>>2]|0;Bqb(h,0);n=0;d=m;f=h;g=d+24|0;do{a[d>>0]=a[f>>0]|0;d=d+1|0;f=f+1|0}while((d|0)<(g|0));d=U(120,e|0,m|0)|0;h=n;n=0;if(((!(h&1)?(j=c[i>>2]|0,n=0,k=S(280,r|0)|0,h=n,n=0,!(h&1)):0)?(n=0,l=V(71,c[j>>2]|0,k|0,1)|0,k=n,n=0,!(k&1)):0)?(n=0,s=_(15,c[e>>2]|0,4,4,4,d|0,l|0,1)|0,l=n,n=0,!(l&1)):0){e=c[i>>2]|0;Bqb(o,0);n=0;d=m;f=o;g=d+24|0;do{a[d>>0]=a[f>>0]|0;d=d+1|0;f=f+1|0}while((d|0)<(g|0));d=U(120,e|0,m|0)|0;o=n;n=0;if((!(o&1)?(n=0,t=_(16,c[e>>2]|0,8,1,0,8,d|0,4)|0,o=n,n=0,!(o&1)):0)?(n=0,u=W(27,p|0,q|0,s|0,t|0)|0,t=n,n=0,!(t&1)):0){Pwb(c[b+16>>2]|0,u);lNa(r);yb=v;return}}}v=sa()|0;P()|0;lNa(r);Ea(v|0)}function fq(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;l=yb;yb=yb+160|0;k=l+136|0;g=l+104|0;h=l+80|0;i=l+48|0;j=l+24|0;f=l;AB(g,d,c[e+8>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=l;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];AB(i,d,c[e+12>>2]|0);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=l;return}else{c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];c[j+20>>2]=c[g+20>>2];y7(f,h,j,e+16|0);e=k;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,k);yb=l;return}}function gq(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,s=0,t=0;r=yb;yb=yb+32|0;o=r+16|0;p=r+8|0;l=r+4|0;m=r;g=b+52|0;if(a[g>>0]|0){f=b+48|0;e=c[f>>2]|0;if(d){c[f>>2]=-1;a[g>>0]=0}}else{e=c[b+44>>2]|0;e=(e|0)>1?e:1;n=b+32|0;f=0;while(1){if(f>>>0>=e>>>0){q=8;break}g=Rea(c[n>>2]|0)|0;if((g|0)==-1){e=-1;break}a[o+f>>0]=g;f=f+1|0}if((q|0)==8){do if(!(a[b+53>>0]|0)){i=b+40|0;j=b+36|0;k=p+4|0;a:while(1){s=c[i>>2]|0;g=s;f=c[g>>2]|0;g=c[g+4>>2]|0;t=c[j>>2]|0;h=o+e|0;switch(Ob[c[(c[t>>2]|0)+16>>2]&15](t,s,o,h,l,p,k,m)|0){case 3:{q=14;break a}case 2:{q=16;break a}case 1:break;default:break a}t=c[i>>2]|0;c[t>>2]=f;c[t+4>>2]=g;if((e|0)==8){q=16;break}f=Rea(c[n>>2]|0)|0;if((f|0)==-1){q=16;break}a[h>>0]=f;e=e+1|0}if((q|0)==14)c[p>>2]=a[o>>0];else if((q|0)==16){e=-1;break}q=18}else{c[p>>2]=a[o>>0];q=18}while(0);b:do if((q|0)==18){if(d){e=WCb(c[p>>2]|0)|0;c[b+48>>2]=e;break}while(1){if((e|0)<=0)break;e=e+-1|0;t=WCb(a[o+e>>0]|0)|0;if((Fba(t,c[n>>2]|0)|0)==-1){e=-1;break b}}e=WCb(c[p>>2]|0)|0}while(0)}}yb=r;return e|0}function hq(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,o=0,p=0;m=yb;yb=yb+32|0;g=m+20|0;f=m+16|0;h=m+12|0;i=m+8|0;e=m+24|0;j=m+4|0;k=m;n=0;ea(105,e|0,b|0,0);o=n;n=0;a:do if(o&1){e=ta(0)|0;P()|0;f=b;g=b;l=12}else b:do if(a[e>>0]|0){c[j>>2]=0;anb(k,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);n=0;e=U(66,c[k>>2]|0,151348)|0;o=n;n=0;do if(!(o&1)?(o=b+(c[(c[b>>2]|0)+-12>>2]|0)|0,p=c[(c[e>>2]|0)+36>>2]|0,c[h>>2]=c[o+24>>2],c[i>>2]=0,n=0,c[f>>2]=c[h>>2],c[g>>2]=c[i>>2],Z(p|0,e|0,f|0,g|0,o|0,j|0,d|0)|0,o=n,n=0,!(o&1)):0){XWa(k);p=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=0;da(85,p|0,c[p+16>>2]|c[j>>2]|0);p=n;n=0;if(p&1){e=ta(0)|0;P()|0;break}else break b}else l=8;while(0);if((l|0)==8){e=ta(0)|0;P()|0;XWa(k)}f=b;g=b;l=12;break a}while(0);while(0);do if((l|0)==12){pa(e|0)|0;n=0;ca(496,f+(c[(c[g>>2]|0)+-12>>2]|0)|0);p=n;n=0;if(!(p&1)){qa();break}e=sa()|0;P()|0;n=0;ba(5);p=n;n=0;if(p&1){p=ta(0)|0;P()|0;yub(p)}else Ea(e|0)}while(0);yb=m;return b|0}function iq(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,o=0,p=0;m=yb;yb=yb+32|0;g=m+20|0;f=m+16|0;h=m+12|0;i=m+8|0;e=m+24|0;j=m+4|0;k=m;n=0;ea(105,e|0,b|0,0);o=n;n=0;a:do if(o&1){e=ta(0)|0;P()|0;f=b;g=b;l=12}else b:do if(a[e>>0]|0){c[j>>2]=0;anb(k,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);n=0;e=U(66,c[k>>2]|0,151348)|0;o=n;n=0;do if(!(o&1)?(o=b+(c[(c[b>>2]|0)+-12>>2]|0)|0,p=c[(c[e>>2]|0)+28>>2]|0,c[h>>2]=c[o+24>>2],c[i>>2]=0,n=0,c[f>>2]=c[h>>2],c[g>>2]=c[i>>2],Z(p|0,e|0,f|0,g|0,o|0,j|0,d|0)|0,o=n,n=0,!(o&1)):0){XWa(k);p=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=0;da(85,p|0,c[p+16>>2]|c[j>>2]|0);p=n;n=0;if(p&1){e=ta(0)|0;P()|0;break}else break b}else l=8;while(0);if((l|0)==8){e=ta(0)|0;P()|0;XWa(k)}f=b;g=b;l=12;break a}while(0);while(0);do if((l|0)==12){pa(e|0)|0;n=0;ca(496,f+(c[(c[g>>2]|0)+-12>>2]|0)|0);p=n;n=0;if(!(p&1)){qa();break}e=sa()|0;P()|0;n=0;ba(5);p=n;n=0;if(p&1){p=ta(0)|0;P()|0;yub(p)}else Ea(e|0)}while(0);yb=m;return b|0}function jq(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=yb;yb=yb+16|0;h=n+4|0;l=n;c[h>>2]=d;m=d;if(c[d+4>>2]|0){yb=n;return}f=c[d+12>>2]|0;if(c[f+4>>2]|0){yb=n;return}if(!(c[b+52>>2]|0)){yb=n;return}g=c[(c[b+44>>2]|0)+16>>2]|0;j=Rqb(f)|0;if(((j|0?!(eCb(c[j+8>>2]|0)|0):0)?(i=j+16|0,WCb(c[i>>2]|0)|0):0)?(k=j+12|0,f=cWa(k)|0,Gzb(c[c[f>>2]>>2]|0)|0):0){Gsb(l,WCb(c[b+36>>2]|0)|0);o=WZ(b+44|0,g)|0;o=c[o>>2]|0;g=Keb(c[o>>2]|0)|0;h=g+12|0;p=c[h>>2]|0;f=uXa(k,(WCb(c[i>>2]|0)|0)+-1|0)|0;c[f>>2]=p;f=c[l>>2]|0;l=ytb(f)|0;c[o>>2]=l;_u(j);if(!(c[j+4>>2]|0))ma(104399,104084,613,104425);p=g+8|0;o=T3a(f,c[p>>2]|0,c[(c[h>>2]|0)+4>>2]|0)|0;c[d+16>>2]=o;gQ(d);p=(c[b+120>>2]|0)+(c[p>>2]<<2)|0;c[p>>2]=(c[p>>2]|0)+1;if(!(c[d+4>>2]|0))ma(104442,104084,619,104425);c[h>>2]=m;FHa(g);c[e>>2]=g;a[b+92>>0]=1;yb=n;return}f=b+160|0;g=c[f>>2]|0;if((g|0)==(c[b+164>>2]|0)){_M(b+156|0,h);yb=n;return}else{c[g>>2]=m;c[f>>2]=(c[f>>2]|0)+4;yb=n;return}}function kq(){iyb();rxb();lxb();cxb();Xwb();Hzb();Dzb();Czb();Bzb();Azb();zzb();yzb();xzb();wzb();vzb();uzb();tzb();szb();rzb();qzb();pzb();ozb();hyb();gyb();nzb();mzb();lzb();kzb();jzb();izb();hzb();gzb();fzb();ezb();dzb();czb();bzb();azb();eyb();dyb();cyb();byb();$yb();_yb();Zyb();Yyb();Xyb();Wyb();Vyb();$xb();Uyb();Mwb();Lyb();Lwb();Kwb();Jwb();Kyb();Jyb();Iyb();Hyb();Gyb();Fyb();Eyb();Dyb();Cyb();Byb();Ayb();zyb();yyb();xyb();wyb();vyb();uyb();tyb();syb();ryb();qyb();pyb();oyb();nyb();myb();lyb();kyb();jyb();return}function lq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0;r=yb;yb=yb+96|0;o=r+72|0;l=r+24|0;i=r;j=r+64|0;p=r+60|0;q=r+48|0;g=T3a(c[d>>2]|0,e,1)|0;Bqb(l,0);k=o;m=k+24|0;do{a[k>>0]=a[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0));h=D7(d,o)|0;h=hIa(c[d>>2]|0,15,g,h)|0;g=T3a(c[d>>2]|0,e,1)|0;Bqb(i,f);k=o;l=i;m=k+24|0;do{a[k>>0]=a[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0));m=D7(d,o)|0;m=hIa(c[d>>2]|0,0,g,m)|0;c[j>>2]=c[b+16>>2];g=c[d>>2]|0;c[o>>2]=c[j>>2];g=M_a(g,o,1)|0;g=_ha(c[d>>2]|0,4,0,0,4,g,1)|0;g=hIa(c[d>>2]|0,22,m,g)|0;h=hIa(c[d>>2]|0,8,h,g)|0;c[p>>2]=c[b+20>>2];c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;g=c[d>>2]|0;n=0;c[o>>2]=c[p>>2];g=W(14,g|0,o|0,q|0,0)|0;p=n;n=0;if(p&1){r=sa()|0;P()|0;Vob(q);Ea(r|0)}n=0;g=W(7,c[d>>2]|0,h|0,g|0,0)|0;d=n;n=0;if(d&1){r=sa()|0;P()|0;Vob(q);Ea(r|0)}else{Vob(q);yb=r;return g|0}return 0}function mq(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,o=0;o=yb;yb=yb+64|0;j=o+40|0;k=o+12|0;l=o+24|0;m=o;a:do if((((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==90:0)?(f=b+2|0,(a[f>>0]|0)==102):0)?(h=Ni(f,d,e)|0,(h|0)!=(f|0)):0)?(i=e+4|0,g=c[i>>2]|0,(c[e>>2]|0)!=(g|0)):0){d6(m,g+-24|0);n=0;V(128,m|0,0,140140)|0;g=n;n=0;do if(g&1){b=sa()|0;P()|0}else{c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,l|0,139927)|0;g=n;n=0;if(g&1){b=sa()|0;P()|0;Chb(l);break}c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}X6(j,k);RC((c[i>>2]|0)+-24|0,j);J2a(j);Chb(k);Chb(l);Chb(m);b=h;break a}while(0);Chb(m);Ea(b|0)}while(0);yb=o;return b|0}function nq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=yb;yb=yb+32|0;d=o+16|0;k=o+12|0;l=o+8|0;m=o+4|0;n=o;e=b+64|0;j=c[e>>2]|0;if((c[j+4>>2]|0)==(c[j>>2]|0)){yb=o;return}h=b+72|0;if(a[h>>0]&1)BM(IWa(150620,113878)|0);i=E3(b,1)|0;j=b+68|0;f=c[j>>2]|0;g=c[e>>2]|0;Pwb(d,(c[g+4>>2]|0)-(c[g>>2]|0)>>2);YA(f,c[d>>2]|0)|0;f=c[e>>2]|0;g=c[f+4>>2]|0;f=c[f>>2]|0;while(1){if((f|0)==(g|0))break;if(a[h>>0]&1)BM(IWa(150620,113679)|0);d=c[j>>2]|0;Pwb(k,-32);zz(d,c[k>>2]|0);d=c[j>>2]|0;e=c[f>>2]|0;Pwb(l,(c[e+12>>2]|0)-(c[e+8>>2]|0)>>2);YA(d,c[l>>2]|0)|0;d=c[f>>2]|0;e=c[d+12>>2]|0;d=c[d+8>>2]|0;while(1){if((d|0)==(e|0))break;p=c[j>>2]|0;zz(p,baa(c[d>>2]|0)|0);d=d+4|0}d=c[j>>2]|0;if(!(c[(c[f>>2]|0)+4>>2]|0)){Pwb(m,0);YA(d,c[m>>2]|0)|0}else{Pwb(n,1);YA(d,c[n>>2]|0)|0;p=c[j>>2]|0;zz(p,baa(c[(c[f>>2]|0)+4>>2]|0)|0)}f=f+4|0}gF(b,i);yb=o;return}function oq(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;n=yb;yb=yb+16|0;k=n+4|0;l=n;m=b+84|0;j=b+100|0;i=WCb(c[j>>2]|0)|0;e=b+104|0;_z(d,i>>>0>(WCb(c[e>>2]|0)|0)>>>0);if(Etb(m)|0)e=(WCb(c[e>>2]|0)|0)>>>0<65537;else e=1;Wz(d,e,133011);e=b+120|0;if(!(a[e>>0]&1))f=1;else f=Etb(m)|0;Wz(d,f,133051);if(a[e>>0]&1)Wz(d,Xxb(c[d+4>>2]|0)|0,133084);i=c[b+112>>2]|0;e=c[b+108>>2]|0;while(1){if((e|0)==(i|0))break;h=c[e>>2]|0;if(Pq(d,c[h+4>>2]|0,1,h,132895,0)|0){g=c[e>>2]|0;f=e+8|0;b=e+4|0;j6a(k,(c[f>>2]|0)-(c[b>>2]|0)|0,0);j6a(l,(WCb(c[j>>2]|0)|0)<<16,0);g=uL(g,c[k>>2]|0,c[l>>2]|0)|0;by(d,g,c[e>>2]|0,132924,0)|0;g=(c[f>>2]|0)-(c[b>>2]|0)|0;if(!(Yrb(m)|0))Jz(d,g>>>0<=(WCb(c[j>>2]|0)|0)<<16>>>0,g,133127);h=c[e>>2]|0;if(_xb(c[h>>2]|0)|0){h=(Peb((ffb(h)|0)+8|0)|0)+g|0;h=h>>>0<=(WCb(c[j>>2]|0)|0)<<16>>>0;Jz(d,h,(c[f>>2]|0)-(c[b>>2]|0)|0,133171)}}e=e+16|0}yb=n;return}function pq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=yb;yb=yb+16|0;d=i+12|0;f=i+8|0;g=i+4|0;j=i;e=c[b+8>>2]|0;if(!(eCb(e)|0)){cqb();n=0;ca(491,135323);h=n;n=0;if(h&1){sa()|0;P()|0;iSa()}else iSa()}h=b+8|0;c[f>>2]=e;c[d>>2]=c[f>>2];if(EEa(a,d)|0){cqb();n=0;ca(491,135353);f=n;n=0;if(f&1){sa()|0;P()|0;iSa()}c[g>>2]=c[h>>2];n=0;c[d>>2]=c[g>>2];ca(498,d|0);g=n;n=0;if(g&1){sa()|0;P()|0;iSa()}n=0;ca(491,135203);g=n;n=0;if(g&1){sa()|0;P()|0;iSa()}else iSa()}c[j>>2]=b;d=a+40|0;e=c[d>>2]|0;if(e>>>0<(c[a+44>>2]|0)>>>0){c[j>>2]=0;c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4;c[j>>2]=0;j=a+212|0;j=G7(j,h)|0;c[j>>2]=b;yb=i;return}n=0;da(4186,a+36|0,j|0);g=n;n=0;if(g&1){d=sa()|0;P()|0;e=c[j>>2]|0;c[j>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[j>>2]|0;c[j>>2]=0;if(!d){j=a+212|0;j=G7(j,h)|0;c[j>>2]=b;yb=i;return}RCb(d);j=a+212|0;j=G7(j,h)|0;c[j>>2]=b;yb=i;return}}function qq(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;o=yb;yb=yb+16|0;m=o;d=e;while(1){if((d|0)==(f|0)){d=f;break}if(!(c[d>>2]|0))break;d=d+4|0}c[j>>2]=h;c[g>>2]=e;l=i;n=b+8|0;a:while(1){if((h|0)==(i|0)|(e|0)==(f|0)){p=35;break}b=Feb(c[n>>2]|0)|0;k=Tv(h,g,d-e>>2,l-h|0)|0;if(b|0)Feb(b)|0;switch(k|0){case -1:{p=10;break a}case 0:{e=1;break a}default:{}}h=(c[j>>2]|0)+k|0;c[j>>2]=h;if((h|0)==(i|0)){p=33;break}if((d|0)==(f|0)){d=f;e=c[g>>2]|0}else{h=Feb(c[n>>2]|0)|0;e=wK(m,0)|0;if(h|0)Feb(h)|0;if((e|0)==-1){e=2;p=32;break}if(e>>>0>(l-(c[j>>2]|0)|0)>>>0){e=1;p=32;break}h=m;while(1){if(!e)break;b=a[h>>0]|0;k=c[j>>2]|0;c[j>>2]=k+1;a[k>>0]=b;h=h+1|0;e=e+-1|0}e=(c[g>>2]|0)+4|0;c[g>>2]=e;d=e;while(1){if((d|0)==(f|0)){d=f;break}if(!(c[d>>2]|0))break;d=d+4|0}h=c[j>>2]|0}}if((p|0)==10){c[j>>2]=h;while(1){if((e|0)==(c[g>>2]|0))break;f=c[e>>2]|0;d=Feb(c[n>>2]|0)|0;h=wK(h,f)|0;if(d|0)Feb(d)|0;if((h|0)==-1)break;h=(c[j>>2]|0)+h|0;c[j>>2]=h;e=e+4|0}c[g>>2]=e;e=2}else if((p|0)!=32)if((p|0)==33){e=c[g>>2]|0;p=35}if((p|0)==35)e=(e|0)!=(f|0)&1;yb=o;return e|0}function rq(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=yb;yb=yb+96|0;i=j+64|0;e=j+32|0;g=j;zsb(a);egb(i);f=c[d+32>>2]|0;do if(f){nz(e,b,f);c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];if(lsb(a)|0){yb=j;return}else{c[i>>2]=c[a>>2];c[i+4>>2]=c[a+4>>2];c[i+8>>2]=c[a+8>>2];c[i+12>>2]=c[a+12>>2];c[i+16>>2]=c[a+16>>2];h=a;break}}else h=a;while(0);nz(g,b,c[d+28>>2]|0);c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];c[h+24>>2]=c[g+24>>2];if(lsb(a)|0){yb=j;return}f=Wsa(a)|0;g=P()|0;e=c[d+24>>2]|0;if((g|0)>-1|(g|0)==-1&f>>>0>4294967295?(WCb(c[d+12>>2]|0)|0)>>>0>f>>>0:0){e=uXa(d+8|0,f)|0;e=c[e>>2]|0}c[a+24>>2]=e;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];c[h+16>>2]=c[i+16>>2];yb=j;return}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,o=0;f=(b|0)==0;do if(!f){if(b>>>0<=1073741823){e=mla(b<<2)|0;break}d=oa(8)|0;n=0;da(67,d|0,138616);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(d|0);Ea(b|0)}else{c[d>>2]=50788;za(d|0,39592,473)}}else e=0;while(0);d=c[a>>2]|0;c[a>>2]=e;if(d|0)RCb(d);c[a+4>>2]=b;if(f)return;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}e=a+8|0;f=c[e>>2]|0;if(!f)return;d=c[f+4>>2]|0;m=b+-1|0;o=(m&b|0)==0;if(!o){if(d>>>0>=b>>>0)d=(d>>>0)%(b>>>0)|0}else d=d&m;c[(c[a>>2]|0)+(d<<2)>>2]=e;e=d;l=f;while(1){d=c[l>>2]|0;if(!d)break;f=c[d+4>>2]|0;if(!o){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&m;do if((f|0)!=(e|0)){g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0)){c[g>>2]=l;e=f;break}g=d+8|0;h=d;while(1){j=c[h>>2]|0;if(!j){k=29;break}if(!(yda(g,j+8|0)|0)){k=31;break}h=c[h>>2]|0}if((k|0)==29){i=h;g=j}else if((k|0)==31){i=h;g=c[h>>2]|0}c[l>>2]=g;c[i>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d;d=l}while(0);l=d}return}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;switch(b-a>>2|0){case 2:{d=b+-4|0;e=c[d>>2]|0;f=c[a>>2]|0;if(!(zcb(e,f)|0)){a=1;return a|0}c[a>>2]=e;c[d>>2]=f;a=1;return a|0}case 3:{nB(a,a+4|0,b+-4|0)|0;a=1;return a|0}case 4:{iF(a,a+4|0,a+8|0,b+-4|0)|0;a=1;return a|0}case 5:{Ez(a,a+4|0,a+8|0,a+12|0,b+-4|0)|0;a=1;return a|0}case 1:case 0:{a=1;return a|0}default:{e=a+8|0;nB(a,a+4|0,e)|0;h=a+12|0;d=0;while(1){if((h|0)==(b|0)){d=1;i=16;break}g=c[h>>2]|0;if(zcb(g,c[e>>2]|0)|0){f=h;while(1){c[f>>2]=c[e>>2];if((e|0)==(a|0)){e=a;break}f=e+-4|0;if(zcb(g,c[f>>2]|0)|0){j=e;e=f;f=j}else break}c[e>>2]=g;d=d+1|0;if((d|0)==8)break}e=h;h=h+4|0}if((i|0)==16)return d|0;j=(h+4|0)==(b|0);return j|0}}return 0}function uq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=yb;yb=yb+16|0;d=h+12|0;f=h+8|0;g=h+4|0;i=h;e=c[b>>2]|0;if(!(eCb(e)|0)){cqb();n=0;ca(491,135219);j=n;n=0;if(j&1){sa()|0;P()|0;iSa()}else iSa()}c[f>>2]=e;c[d>>2]=c[f>>2];if(FEa(a,d)|0){cqb();n=0;ca(491,135249);j=n;n=0;if(j&1){sa()|0;P()|0;iSa()}c[g>>2]=c[b>>2];n=0;c[d>>2]=c[g>>2];ca(498,d|0);j=n;n=0;if(j&1){sa()|0;P()|0;iSa()}n=0;ca(491,135203);j=n;n=0;if(j&1){sa()|0;P()|0;iSa()}else iSa()}c[i>>2]=b;d=a+16|0;e=c[d>>2]|0;if(e>>>0<(c[a+20>>2]|0)>>>0){c[i>>2]=0;c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4;c[i>>2]=0;j=a+188|0;j=G7(j,b)|0;c[j>>2]=b;yb=h;return}n=0;da(4184,a+12|0,i|0);j=n;n=0;if(j&1){d=sa()|0;P()|0;e=c[i>>2]|0;c[i>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[i>>2]|0;c[i>>2]=0;if(!d){j=a+188|0;j=G7(j,b)|0;c[j>>2]=b;yb=h;return}RCb(d);j=a+188|0;j=G7(j,b)|0;c[j>>2]=b;yb=h;return}}function vq(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=yb;yb=yb+80|0;q=v+64|0;t=v+56|0;k=v+48|0;u=v+32|0;l=v+24|0;i=v+16|0;m=v+8|0;o=v+4|0;r=v;yib(u);g=d+8|0;nrb(l,g);Hib(i,g);g=l+4|0;h=c[i>>2]|0;i=c[i+4>>2]|0;j=k+4|0;s=d+32|0;while(1){if(!(dhb(c[l>>2]|0,c[g>>2]|0,h,i)|0))break;n=0;f=S(271,l|0)|0;w=n;n=0;if(w&1){p=12;break}f=c[f>>2]|0;c[m>>2]=f;n=0;fa(98,k|0,u|0,m|0,m|0);w=n;n=0;if(w&1){p=12;break}if(a[j>>0]&1?(c[o>>2]=f,w=c[s>>2]|0,n=0,c[q>>2]=c[o>>2],fa(110,b|0,q|0,e|0,w|0),w=n,n=0,w&1):0){p=12;break}hob(l)}if((p|0)==12){w=sa()|0;P()|0;Khb(u);Ea(w|0)}f=d+24|0;n=0;fa(98,t|0,u|0,f|0,f|0);w=n;n=0;if(!(w&1)){if(!(a[t+4>>0]&1)){Khb(u);yb=v;return}c[r>>2]=c[f>>2];w=c[s>>2]|0;n=0;c[q>>2]=c[r>>2];fa(110,b|0,q|0,e|0,w|0);w=n;n=0;if(!(w&1)){Khb(u);yb=v;return}}w=sa()|0;P()|0;Khb(u);Ea(w|0)}function wq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+64|0;e=g+24|0;f=g;tw(e,b,c[d+8>>2]|0);if(lsb(e)|0){c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];c[a+28>>2]=c[e+28>>2];yb=g;return}if(!(Peb(e)|0)){d=c[d+16>>2]|0;if(!d){c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;zsb(a);yb=g;return}else{tw(a,b,d);yb=g;return}}tw(a,b,c[d+12>>2]|0);if(lsb(a)|0){yb=g;return}if(c[d+16>>2]|0){yb=g;return}egb(f);c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];c[a+16>>2]=c[f+16>>2];yb=g;return}function xq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;l=yb;yb=yb+48|0;j=l+24|0;k=l;d=c[e>>2]|0;if(dub(d,c[37410]|0)|0?dub(c[e+4>>2]|0,c[37411]|0)|0:0){i=c[f+4>>2]|0;d=c[f>>2]|0;while(1){h=d;if((i|0)==(h|0))break;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=SEa(150452,40)|0;e=j;f=k;g=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));SEa(SEa(bx(d,j)|0,41)|0,10)|0;d=h+24|0}egb(b);yb=l;return}if(dub(d,c[37153]|0)|0?dub(c[e+4>>2]|0,c[37412]|0)|0:0){IWa(150452,68878)|0;za(oa(1)|0,31928,0)}cqb();n=0;ca(491,68886);b=n;n=0;if(b&1){sa()|0;P()|0;iSa()}n=0;ca(491,c[e>>2]|0);b=n;n=0;if(b&1){sa()|0;P()|0;iSa()}n=0;ca(491,140218);b=n;n=0;if(b&1){sa()|0;P()|0;iSa()}n=0;ca(491,c[e+8>>2]|0);b=n;n=0;if(b&1){sa()|0;P()|0;iSa()}else iSa()}function yq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=yb;yb=yb+32|0;g=f+12|0;h=f;e=Web(c[a+4>>2]|0)|0;i=e+8|0;c[i>>2]=d;lka(a,b,xmb(b)|0,e);d=(c[i>>2]|0)==1;a=WCb(c[e+20>>2]|0)|0;if(d){if((a|0)==1){Fla(e);yb=f;return e|0}d=oa(20)|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;i=Zzb(125907)|0;n=0;ea(95,g|0,125907,i|0);i=n;n=0;if(!(i&1)){n=0;da(330,d|0,g|0);i=n;n=0;if(i&1)b=1;else{n=0;ea(122,d|0,31856,511);n=0;b=0}a=sa()|0;P()|0;Chb(g);if(!b){i=a;Ea(i|0)}}else{a=sa()|0;P()|0}va(d|0);i=a;Ea(i|0)}else{if(!a){Fla(e);yb=f;return e|0}d=oa(20)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;i=Zzb(125937)|0;n=0;ea(95,h|0,125937,i|0);i=n;n=0;if(!(i&1)){n=0;da(330,d|0,h|0);i=n;n=0;if(i&1)b=1;else{n=0;ea(122,d|0,31856,511);n=0;b=0}a=sa()|0;P()|0;Chb(h);if(!b){i=a;Ea(i|0)}}else{a=sa()|0;P()|0}va(d|0);i=a;Ea(i|0)}return 0}function zq(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,o=0;m=yb;yb=yb+64|0;i=m+40|0;j=m+12|0;k=m+24|0;l=m;a:do if(((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==122:0)?(o=b+2|0,g=ac(o,d,e)|0,(g|0)!=(o|0)):0)?(h=e+4|0,f=c[h>>2]|0,(c[e>>2]|0)!=(f|0)):0){d6(l,f+-24|0);n=0;V(128,l|0,0,140154)|0;o=n;n=0;do if(o&1){b=sa()|0;P()|0}else{c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,k|0,139927)|0;o=n;n=0;if(o&1){b=sa()|0;P()|0;Chb(k);break}c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];b=0;while(1){if((b|0)==3)break;c[k+(b<<2)>>2]=0;b=b+1|0}X6(i,j);RC((c[h>>2]|0)+-24|0,i);J2a(i);Chb(j);Chb(k);Chb(l);b=g;break a}while(0);Chb(l);Ea(b|0)}while(0);yb=m;return b|0}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,l=0,m=0,n=0;m=yb;yb=yb+16|0;h=m+4|0;j=m;if(!(a[d+8>>0]&1)){yb=m;return}k=Yrb(d)|0;l=b+4|0;gQa(c[b>>2]|0,c[l>>2]|0)|0;if(k){SEa(c[b>>2]|0,40)|0;p9(b,d);OB(b,(c[b+24>>2]|0)+48|0);k=SEa(c[b>>2]|0,41)|0;i=b+16|0;IWa(k,c[i>>2]|0)|0}else{OB(b,d);i=b+16|0;IWa(c[b>>2]|0,c[i>>2]|0)|0}k=c[d+28>>2]|0;g=c[d+24>>2]|0;while(1){if((g|0)==(k|0))break;d=g+8|0;if((c[g+4>>2]|0)!=(c[d>>2]|0)){gQa(c[b>>2]|0,c[l>>2]|0)|0;SEa(c[b>>2]|0,40)|0;_cb(c[b>>2]|0,98564);i$a(b,c[g>>2]|0);e=c[d>>2]|0;d=c[g+4>>2]|0;while(1){f=d;if((e|0)==(f|0))break;n=c[d>>2]|0;SEa(c[b>>2]|0,32)|0;c[j>>2]=n;n=c[b>>2]|0;c[h>>2]=c[j>>2];Ica(h,n)|0;d=f+4|0}n=SEa(c[b>>2]|0,41)|0;IWa(n,c[i>>2]|0)|0}g=g+16|0}yb=m;return}function Bq(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;m=yb;yb=yb+192|0;l=m+160|0;e=m+120|0;f=m+96|0;g=m+72|0;h=m+48|0;i=m+24|0;j=m+144|0;k=m;egb(e);switch(c[d+4>>2]|0){case 1:{Bqb(f,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];break}case 2:{Heb(g,0,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];break}case 3:{pUa(h,0.0);c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];c[e+8>>2]=c[h+8>>2];c[e+12>>2]=c[h+12>>2];c[e+16>>2]=c[h+16>>2];break}case 4:{kEa(i,0.0);c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];c[e+8>>2]=c[i+8>>2];c[e+12>>2]=c[i+12>>2];c[e+16>>2]=c[i+16>>2];break}case 5:{d=j;f=d+16|0;do{a[d>>0]=0;d=d+1|0}while((d|0)<(f|0));M0a(k,j);c[e>>2]=c[k>>2];c[e+4>>2]=c[k+4>>2];c[e+8>>2]=c[k+8>>2];c[e+12>>2]=c[k+12>>2];c[e+16>>2]=c[k+16>>2];break}case 0:{b=Bib(d)|0;yb=m;return b|0}case 6:{b=slb(d)|0;yb=m;return b|0}default:{}}d=l;f=d+24|0;do{a[d>>0]=a[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(f|0));b=D7(b,l)|0;yb=m;return b|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,l=0,m=0,n=0,o=0,p=0,q=0;p=yb;yb=yb+48|0;j=p+36|0;f=p+32|0;k=p+24|0;i=p+16|0;l=p+12|0;m=p+8|0;n=p+4|0;o=p;if(a[b+33>>0]&1)BM(IWa(150620,113230)|0);e=c[d+32>>2]|0;if(e|0)T_a(b,e);T_a(b,c[d+28>>2]|0);g=vUa(d)|0;h=b+28|0;e=c[h>>2]|0;if(!g){Ygb(e);yb=p;return}g=tI(e,14)|0;Pwb(f,WCb(c[d+12>>2]|0)|0);YA(g,c[f>>2]|0)|0;f=d+8|0;nrb(k,f);Hib(i,f);f=k+4|0;g=c[i>>2]|0;e=c[i+4>>2]|0;while(1){if(!(dhb(c[k>>2]|0,c[f>>2]|0,g,e)|0))break;q=Qab(k)|0;i=c[h>>2]|0;c[m>>2]=c[q>>2];c[j>>2]=c[m>>2];Pwb(l,x7(b,j)|0);YA(i,c[l>>2]|0)|0;hob(k)}q=c[h>>2]|0;c[o>>2]=c[d+24>>2];c[j>>2]=c[o>>2];Pwb(n,x7(b,j)|0);YA(q,c[n>>2]|0)|0;yb=p;return}function Dq(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,o=0;m=yb;yb=yb+64|0;i=m+40|0;j=m+12|0;k=m+24|0;l=m;a:do if(((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==116:0)?(o=b+2|0,g=cc(o,d,e)|0,(g|0)!=(o|0)):0)?(h=e+4|0,f=c[h>>2]|0,(c[e>>2]|0)!=(f|0)):0){d6(l,f+-24|0);n=0;V(128,l|0,0,140154)|0;o=n;n=0;do if(o&1){b=sa()|0;P()|0}else{c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,k|0,139927)|0;o=n;n=0;if(o&1){b=sa()|0;P()|0;Chb(k);break}c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];b=0;while(1){if((b|0)==3)break;c[k+(b<<2)>>2]=0;b=b+1|0}X6(i,j);RC((c[h>>2]|0)+-24|0,i);J2a(i);Chb(j);Chb(k);Chb(l);b=g;break a}while(0);Chb(l);Ea(b|0)}while(0);yb=m;return b|0}function Eq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=yb;yb=yb+32|0;i=h+12|0;j=h;c[a>>2]=0;g=b+16|0;b=0;while(1){e=nKa(c[g>>2]|0)|0;f=e&127;if(!b)d=-1;else d=(1<<32-b)+-1|0;if((d&f|0)!=(f|0)){b=5;break}c[a>>2]=c[a>>2]|f<>24>-1){b=20;break}b=b+7|0;if(b>>>0>31){b=13;break}}if((b|0)==5){e=oa(20)|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;j=Zzb(114823)|0;n=0;ea(95,i|0,114823,j|0);j=n;n=0;if(!(j&1)){n=0;da(330,e|0,i|0);j=n;n=0;if(j&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(i);if(!d){j=b;Ea(j|0)}}else{b=sa()|0;P()|0}va(e|0);j=b;Ea(j|0)}else if((b|0)==13){e=oa(20)|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;i=Zzb(114866)|0;n=0;ea(95,j|0,114866,i|0);i=n;n=0;if(!(i&1)){n=0;da(330,e|0,j|0);i=n;n=0;if(i&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(j);if(!d){j=b;Ea(j|0)}}else{b=sa()|0;P()|0}va(e|0);j=b;Ea(j|0)}else if((b|0)==20){yb=h;return}}function Fq(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){p=1;yb=q;return p|0}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(150,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);p=0;yb=q;return p|0}}q=sa()|0;P()|0;v$a(o);Ea(q|0);return 0}function Gq(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){p=1;yb=q;return p|0}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(149,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);p=0;yb=q;return p|0}}q=sa()|0;P()|0;v$a(o);Ea(q|0);return 0}function Hq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=yb;yb=yb+32|0;g=f+12|0;h=f;e=c[b>>2]|0;switch(a[e>>0]|0){case 56:{c[b>>2]=e+1;h=1;yb=f;return h|0}case 49:{if((a[e+1>>0]|0)==54){c[b>>2]=e+2;h=2;yb=f;return h|0}e=oa(20)|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;h=Zzb(125372)|0;n=0;ea(95,g|0,125372,h|0);h=n;n=0;if(!(h&1)){n=0;da(330,e|0,g|0);h=n;n=0;if(h&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(g);if(!d){h=b;Ea(h|0)}}else{b=sa()|0;P()|0}va(e|0);h=b;Ea(h|0)}case 51:{if((a[e+1>>0]|0)==50){c[b>>2]=e+2;h=4;yb=f;return h|0}e=oa(20)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;g=Zzb(125399)|0;n=0;ea(95,h|0,125399,g|0);g=n;n=0;if(!(g&1)){n=0;da(330,e|0,h|0);g=n;n=0;if(g&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(h);if(!d){h=b;Ea(h|0)}}else{b=sa()|0;P()|0}va(e|0);h=b;Ea(h|0)}default:{h=d;yb=f;return h|0}}return 0}function Iq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+32|0;e=d+12|0;f=d;if((C8(a+12|0,b)|0)==(a+16|0)){d=oa(20)|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;f=Zzb(74044)|0;n=0;ea(95,e|0,74044,f|0);f=n;n=0;if(!(f&1)){n=0;da(330,d|0,e|0);f=n;n=0;if(f&1)b=1;else{n=0;ea(122,d|0,31856,511);n=0;b=0}a=sa()|0;P()|0;Chb(e);if(!b){f=a;Ea(f|0)}}else{a=sa()|0;P()|0}va(d|0);f=a;Ea(f|0)}a=a+12|0;e=O4(a,b)|0;if((c[e>>2]|0)!=(c[e+4>>2]|0)){f=(O4(a,b)|0)+4|0;yb=d;return c[(c[f>>2]|0)+-4>>2]|0}d=oa(20)|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;e=Zzb(74072)|0;n=0;ea(95,f|0,74072,e|0);e=n;n=0;if(!(e&1)){n=0;da(330,d|0,f|0);e=n;n=0;if(e&1)b=1;else{n=0;ea(122,d|0,31856,511);n=0;b=0}a=sa()|0;P()|0;Chb(f);if(!b){f=a;Ea(f|0)}}else{a=sa()|0;P()|0}va(d|0);f=a;Ea(f|0);return 0}function Jq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+96|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;if(a[b+12>>0]&1)BM(SEa(IWa(150620,116037)|0,e)|0);switch(e<<24>>24){case 65:{i=Ojb(c[b+4>>2]|0)|0;Bqb(f,JF(b)|0);b=i+8|0;c[b>>2]=c[f>>2];c[b+4>>2]=c[f+4>>2];c[b+8>>2]=c[f+8>>2];c[b+12>>2]=c[f+12>>2];c[b+16>>2]=c[f+16>>2];b=i;break}case 66:{i=Ojb(c[b+4>>2]|0)|0;Heb(g,EC(b)|0,P()|0);b=i+8|0;c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];b=i;break}case 67:{i=Ojb(c[b+4>>2]|0)|0;HD(h,b);b=i+8|0;c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];c[b+16>>2]=c[h+16>>2];b=i;break}case 68:{h=Ojb(c[b+4>>2]|0)|0;XC(i,b);b=h+8|0;c[b>>2]=c[i>>2];c[b+4>>2]=c[i+4>>2];c[b+8>>2]=c[i+8>>2];c[b+12>>2]=c[i+12>>2];c[b+16>>2]=c[i+16>>2];b=h;break}default:{d=0;yb=j;return d|0}}c[b+4>>2]=c[b+24>>2];c[d>>2]=b;d=1;yb=j;return d|0}function Kq(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;g=j+12|0;h=j;if((f+-72&255)>6){i=0;yb=j;return i|0}i=keb(c[b+4>>2]|0)|0;switch(f<<24>>24){case 72:{c[i+4>>2]=1;a[i+8>>0]=4;break}case 73:{c[i+4>>2]=2;a[i+8>>0]=8;break}case 74:{c[i+4>>2]=1;a[i+8>>0]=1;break}case 75:{c[i+4>>2]=1;a[i+8>>0]=2;break}case 76:{c[i+4>>2]=2;a[i+8>>0]=1;break}case 77:{c[i+4>>2]=2;a[i+8>>0]=2;break}case 78:{c[i+4>>2]=2;a[i+8>>0]=4;break}default:ma(141129,112368,2190,116531)}if(a[b+12>>0]&1)BM(IWa(150620,112947)|0);hCb(g);EI(b,g,i+12|0);g=WCb(c[g>>2]|0)|0;do if((g|0)!=(d[i+8>>0]|0|0)){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,116555,Zzb(116555)|0);n=0;da(4022,b|0,h|0);g=n;n=0;if(g&1){j=sa()|0;P()|0;Chb(h);Ea(j|0)}else{Chb(h);break}}while(0);h=rl(b)|0;c[i+24>>2]=h;h=rl(b)|0;c[i+20>>2]=h;h=rl(b)|0;c[i+16>>2]=h;sSa(i);c[e>>2]=i;i=1;yb=j;return i|0}function Lq(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,o=0,p=0,q=0;if(dub(d,-1)|0){q=ylb(d)|0;return q|0}m=b+12|0;o=b+8|0;p=(c[m>>2]|0)-(c[o>>2]|0)|0;q=b+24|0;f=c[q>>2]|0;l=b+28|0;g=c[l>>2]|0;e=f;do if((f|0)==(g|0)){if(!(c[b+48>>2]&16)){q=-1;return q|0}k=b+20|0;j=c[k>>2]|0;h=e-j|0;i=b+44|0;j=(c[i>>2]|0)-j|0;g=b+32|0;n=0;da(91,g|0,0);f=n;n=0;if(!(f&1)){e=g+11|0;if((a[e>>0]|0)<0)f=(c[b+40>>2]&2147483647)+-1|0;else f=10;n=0;da(92,g|0,f|0);f=n;n=0;if(!(f&1)){e=a[e>>0]|0;if(e<<24>>24<0){f=c[g>>2]|0;e=c[b+36>>2]|0}else{f=g;e=e&255}g=f+e|0;c[k>>2]=f;c[l>>2]=g;l=f+h|0;c[q>>2]=l;e=f+j|0;c[i>>2]=e;f=l;break}}q=ta(0)|0;P()|0;pa(q|0)|0;qa();q=-1;return q|0}else{i=b+44|0;e=c[i>>2]|0}while(0);j=f+1|0;h=j>>>0>>0?e:j;c[i>>2]=h;if(c[b+48>>2]&8|0){e=b+32|0;if((a[e+11>>0]|0)<0)e=c[e>>2]|0;c[o>>2]=e;c[m>>2]=e+p;c[b+16>>2]=h}e=d&255;if((f|0)==(g|0)){p=c[(c[b>>2]|0)+52>>2]|0;q=Qzb(e)|0;q=Gb[p&255](b,q)|0;return q|0}else{c[q>>2]=j;a[f>>0]=e;q=Qzb(e)|0;return q|0}return 0}function Mq(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;l=yb;yb=yb+16|0;j=l;n=0;da(84,j|0,b|0);h=n;n=0;a:do if(h&1){e=ta(0)|0;P()|0;f=b;d=b;k=13}else{b:do if(a[j>>0]|0){e=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;g=c[e+24>>2]|0;h=g;do if(!g){i=e;k=9}else{e=h+24|0;f=c[e>>2]|0;if((f|0)==(c[h+28>>2]|0)){g=c[(c[g>>2]|0)+52>>2]|0;e=Qzb(d)|0;n=0;e=U(g|0,h|0,e|0)|0;h=n;n=0;if(h&1)break}else{c[e>>2]=f+1;a[f>>0]=d;e=Qzb(d)|0}if(!(dub(e,-1)|0))break b;i=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;k=9}while(0);if((k|0)==9?(n=0,da(85,i|0,c[i+16>>2]|1|0),i=n,n=0,!(i&1)):0)break;e=ta(0)|0;P()|0;sF(j);f=b;d=b;k=13;break a}while(0);sF(j)}while(0);do if((k|0)==13){pa(e|0)|0;n=0;ca(496,f+(c[(c[d>>2]|0)+-12>>2]|0)|0);k=n;n=0;if(!(k&1)){qa();break}e=sa()|0;P()|0;n=0;ba(5);k=n;n=0;if(k&1){k=ta(0)|0;P()|0;yub(k)}else Ea(e|0)}while(0);yb=l;return b|0}function Nq(a,b){a=a|0;b=b|0;if(!b)ma(112644,134747,85,112649);do switch(c[b>>2]|0){case 1:{MRa(a,b);return}case 3:{nEa(a,b);return}case 4:{Fua(a,b);return}case 5:{EE(a,b);return}case 6:{_fb(a);return}case 7:{qqb(a);return}case 8:{Eua(a,b);return}case 9:{Dua(a,b);return}case 10:{$sa(a,b);return}case 11:{_sa(a,b);return}case 12:{sTa(a,b);return}case 13:{USa(a,b);return}case 23:{F2a(a);return}case 24:{F2a(a);return}case 25:{F2a(a);return}case 26:{F2a(a);return}case 15:{f2a(a,b);return}case 16:{YHa(a,b);return}case 19:{otb(a);return}case 20:{Dkb(a);return}case 22:{otb(a);return}case 21:case 18:case 17:case 14:case 35:case 34:case 33:case 32:case 31:case 30:case 29:case 28:case 27:case 2:return;default:ma(141129,134747,128,112649)}while(0)}function Oq(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,o=0,p=0;p=yb;yb=yb+160|0;h=p+152|0;l=p+16|0;m=p+4|0;o=p;if((b|0)!=2){yb=p;return}g=l+56|0;c[l>>2]=31812;c[g>>2]=31832;Hoa(l+56|0,l+4|0);c[l+128>>2]=0;c[l+132>>2]=-1;c[l>>2]=39764;c[g>>2]=39784;g=l+4|0;RKa(g);c[g>>2]=39800;f=l+36|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}c[l+48>>2]=0;c[l+52>>2]=16;n=0;b=U(63,l|0,2)|0;f=n;n=0;if(((((!(f&1)?(n=0,i=U(59,b|0,127681)|0,f=n,n=0,!(f&1)):0)?(n=0,j=U(63,i|0,2)|0,i=n,n=0,!(i&1)):0)?(n=0,k=U(59,j|0,138977)|0,j=n,n=0,!(j&1)):0)?(n=0,U(59,k|0,e|0)|0,e=n,n=0,!(e&1)):0)?(n=0,da(75,m|0,g|0),e=n,n=0,!(e&1)):0){c[o>>2]=c[d>>2];n=0;c[h>>2]=c[o>>2];fa(142,a|0,m|0,h|0,0);o=n;n=0;if(o&1){p=sa()|0;P()|0;Chb(m);v$a(l);Ea(p|0)}else{Chb(m);v$a(l);yb=p;return}}p=sa()|0;P()|0;v$a(l);Ea(p|0)}function Pq(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==(d|0)){p=1;yb=q;return p|0}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(146,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);p=0;yb=q;return p|0}}q=sa()|0;P()|0;v$a(o);Ea(q|0);return 0}function Qq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=b+4|0;h=b+8|0;d=c[b>>2]|0;a:while(1){while(1){e=a[d>>0]|0;if(!(Cxb(e<<24>>24)|0))break;if(e<<24>>24==10){c[g>>2]=(c[g>>2]|0)+1;d=d+1|0;c[h>>2]=d}else d=d+1|0;c[b>>2]=d}b:do switch(e<<24>>24){case 59:{if((a[d+1>>0]|0)!=59){i=28;break a}if((a[d+2>>0]|0)==64){Jo(b);d=c[b>>2]|0}c:while(1){switch(a[d>>0]|0){case 0:case 10:break c;default:{}}f=d+1|0;c[b>>2]=f;d=f}c[g>>2]=(c[g>>2]|0)+1;if(!(a[d>>0]|0)){i=28;break a}d=d+1|0;c[b>>2]=d;c[h>>2]=d;break}case 40:{if((a[d+1>>0]|0)!=59){i=28;break a}d=d+2|0;c[b>>2]=d;e=1;while(1){f=d;switch(a[d>>0]|0){case 0:{i=28;break a}case 40:{if((a[d+1>>0]|0)==59){d=d+2|0;c[b>>2]=d;e=e+1|0}else i=25;break}case 59:{if((a[d+1>>0]|0)==41){d=d+2|0;c[b>>2]=d;e=e+-1|0;if(!e)break b}else i=25;break}case 10:{c[g>>2]=(c[g>>2]|0)+1;c[h>>2]=f;d=d+1|0;c[b>>2]=d;break}default:i=25}if((i|0)==25){i=0;d=d+1|0;c[b>>2]=d}}}default:{i=28;break a}}while(0)}if((i|0)==28)return}function Rq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=b;j=a+4|0;if((j|0)!=(b|0)?(i=c[f>>2]|0,!(Bfb(i,b+16|0)|0)):0){if(!(Bfb(c[b+16>>2]|0,f)|0)){c[d>>2]=k;c[e>>2]=k;k=e;return k|0}h=1;g=k;while(1){if(!h)break;e=c[g+4>>2]|0;a:do if(!e)while(1){e=c[g+8>>2]|0;if((g|0)==(c[e>>2]|0))break a;g=e}else while(1){g=c[e>>2]|0;if(!g)break;e=g}while(0);h=h+-1|0;g=e}h=g;if((j|0)!=(h|0)?!(Bfb(i,g+16|0)|0):0){k=PH(a,d,f)|0;return k|0}e=b+4|0;if(!(c[e>>2]|0)){c[d>>2]=k;k=e;return k|0}else{c[d>>2]=g;k=h;return k|0}}h=c[b>>2]|0;if((c[a>>2]|0)!=(b|0)){b:do if(!h){g=b;while(1){e=c[g+8>>2]|0;if((c[e>>2]|0)!=(g|0))break b;g=e}}else{e=h;while(1){g=c[e+4>>2]|0;if(!g)break b;e=g}}while(0);if(!(Bfb(c[e+16>>2]|0,f)|0)){k=PH(a,d,f)|0;return k|0}}else e=k;if(!h){c[d>>2]=k;k=b;return k|0}else{c[d>>2]=e;k=e+4|0;return k|0}return 0}function Sq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=b+8|0;f=c[e>>2]|0;if(!($Fa(f)|0))return;g=c[b+4>>2]|0;d=c[b+12>>2]|0;if((g|0)!=6?(c[d+4>>2]|0)!=6:0){a:do if(!(qqa(a,d)|0)){switch(g|0){case 2:case 4:break a;default:{}}ma(81791,81381,896,132100)}while(0);do switch(f|0){case 3:case 1:{Rt(a,b);return}case 21:{AH(a,b);return}case 22:{jp(a,b);return}case 23:{AA(a,b);return}case 24:{gqa(a,b);return}case 34:{Qp(a,b);return}case 46:{eq(a,b);return}case 32:case 30:case 28:case 26:{bf(a,b);return}case 42:case 41:case 40:case 39:{Rj(a,b);return}case 5:{BM(IWa(150620,81858)|0);ma(141129,81381,916,132100);break}default:{BM(Zm(IWa(150620,81895)|0,c[e>>2]|0)|0);Ta()}}while(0)}if(qqa(a,d)|0)ma(81765,81381,892,132100);Pwb(c[a+16>>2]|0,d);return}function Tq(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,o=0;m=yb;yb=yb+64|0;f=m+60|0;e=m+56|0;o=m+52|0;l=m+24|0;g=m+20|0;h=m+16|0;j=m+12|0;k=m;i=c[b>>2]|0;c[o>>2]=i;c[f>>2]=c[o>>2];b=lEa(a,f)|0;if(b|0){o=b;yb=m;return o|0}cs(l,a);Ftb(g,c[37153]|0);c[h>>2]=i;c[e>>2]=c[g>>2];c[f>>2]=c[h>>2];b=g8(l,e,f)|0;a:do if(!b){n=0;b=S(217,120)|0;o=n;n=0;do if(!(o&1)?(mT(b),c[b+8>>2]=i,Ftb(j,c[37153]|0),c[b>>2]=c[j>>2],c[b+4>>2]=i,n=0,da(73,k|0,d|0),o=n,n=0,!(o&1)):0){n=0;e=U(136,k|0,a|0)|0;o=n;n=0;if(!(o&1)){Chb(k);c[b+40>>2]=c[e>>2];n=0;da(1638,b|0,e|0);o=n;n=0;if(o&1)break;n=0;da(216,a|0,b|0);o=n;n=0;if(o&1)break;else break a}else{o=sa()|0;P()|0;Chb(k);hib(l);Ea(o|0)}}while(0);o=sa()|0;P()|0;hib(l);Ea(o|0)}while(0);hib(l);o=b;yb=m;return o|0}function Uq(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(164,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function Vq(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(158,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function Wq(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(163,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function Xq(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(162,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function Yq(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(161,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function Zq(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(166,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function _q(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(169,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function $q(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(168,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function ar(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(160,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function br(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(159,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function cr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(154,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function dr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(165,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function er(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(157,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function fr(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;switch(b-a>>2|0){case 2:{e=b+-4|0;if(!(nx(c[d>>2]|0,c[d+4>>2]|0,c[e>>2]|0,c[a>>2]|0)|0)){k=1;return k|0}k=c[a>>2]|0;c[a>>2]=c[e>>2];c[e>>2]=k;k=1;return k|0}case 3:{vA(a,a+4|0,b+-4|0,d)|0;k=1;return k|0}case 4:{mF(a,a+4|0,a+8|0,b+-4|0,d)|0;k=1;return k|0}case 5:{vz(a,a+4|0,a+8|0,a+12|0,b+-4|0,d)|0;k=1;return k|0}case 1:case 0:{k=1;return k|0}default:{f=a+8|0;vA(a,a+4|0,f,d)|0;j=d+4|0;i=a+12|0;e=0;while(1){if((i|0)==(b|0)){e=1;k=16;break}if(nx(c[d>>2]|0,c[j>>2]|0,c[i>>2]|0,c[f>>2]|0)|0){h=c[i>>2]|0;g=i;while(1){c[g>>2]=c[f>>2];if((f|0)==(a|0)){f=a;break}g=f+-4|0;if(nx(c[d>>2]|0,c[j>>2]|0,h,c[g>>2]|0)|0){l=f;f=g;g=l}else break}c[f>>2]=h;e=e+1|0;if((e|0)==8)break}f=i;i=i+4|0}if((k|0)==16)return e|0;l=(i+4|0)==(b|0);return l|0}}return 0}function gr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(152,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function hr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(167,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function ir(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a:do if(c[a+8>>2]|0){e=Nta(a)|0;while(1){if(!e)break a;if((b|0)==(d|0))break;c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];f=vV(e)|0;k1(a,e)|0;e=c[b+4>>2]|0;b:do if(!e){e=b;while(1){b=c[e+8>>2]|0;if((c[b>>2]|0)==(e|0))break b;e=b}}else{b=e;while(1){e=c[b>>2]|0;if(!e)break;b=e}}while(0);e=f}b=e;while(1){e=c[b+8>>2]|0;if(!e)break;b=e}U6(a,b);b=d}while(0);e=b;while(1){if((e|0)==(d|0))break;TK(a,e+16|0)|0;b=c[e+4>>2]|0;c:do if(!b)while(1){b=c[e+8>>2]|0;if((c[b>>2]|0)==(e|0))break c;e=b}else while(1){e=c[b>>2]|0;if(!e)break;b=e}while(0);e=b}return}function jr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(170,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function kr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(156,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function lr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(155,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}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,l=0,m=0,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(175,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function nr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==6|(b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(145,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function or(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=yb;yb=yb+48|0;d=w+40|0;i=w+24|0;p=w+8|0;t=w;v=b+8|0;if(!(qqa(a,c[v>>2]|0)|0)){yb=w;return}iG(i,a,1);n=0;ea(146,p|0,a|0,c[v>>2]|0);g=n;n=0;if(g&1){w=sa()|0;P()|0;lNa(i);Ea(w|0)}e=a+44|0;f=c[e>>2]|0;n=0;g=S(280,i|0)|0;x=n;n=0;if(((((((!(x&1)?(n=0,h=V(70,c[f>>2]|0,g|0,c[v>>2]|0)|0,x=n,n=0,!(x&1)):0)?(j=c[e>>2]|0,Ftb(t,c[37179]|0),k=c[e>>2]|0,n=0,l=S(280,p|0)|0,x=n,n=0,!(x&1)):0)?(n=0,m=V(71,c[k>>2]|0,l|0,1)|0,x=n,n=0,!(x&1)):0)?(o=c[j>>2]|0,n=0,c[d>>2]=c[t>>2],o=V(78,o|0,d|0,m|0)|0,x=n,n=0,!(x&1)):0)?(q=c[e>>2]|0,n=0,r=S(280,i|0)|0,x=n,n=0,!(x&1)):0)?(n=0,s=V(71,c[q>>2]|0,r|0,1)|0,x=n,n=0,!(x&1)):0)?(c[v>>2]=s,n=0,u=W(21,c[e>>2]|0,h|0,o|0,b|0)|0,x=n,n=0,!(x&1)):0){Pwb(c[a+16>>2]|0,u);lNa(p);lNa(i);yb=w;return}x=sa()|0;P()|0;lNa(p);lNa(i);Ea(x|0)}function pr(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;n=yb;yb=yb+16|0;k=n+4|0;l=n;m=a+184|0;f=(c[a+188>>2]|0)-(c[m>>2]|0)>>2;if(f>>>0>>0)ma(116989,112368,1763,117021);if(d>>>0>e>>>0)ma(117039,112368,1764,117021);if(f>>>0>>0)ma(117052,112368,1765,117021);i=b+12|0;j=e+-1|0;h=b+16|0;g=d;f=-1;while(1){if(g>>>0>=e>>>0)break;b=c[(c[m>>2]|0)+(g<<2)>>2]|0;Wla(i,b);if((g>>>0>>0?vub(c[b+4>>2]|0)|0:0)?(Gsb(k,c[a>>2]|0),o=Q6a(c[k>>2]|0,b)|0,b=cWa(i)|0,c[b>>2]=o,(f|0)==-1):0)f=(WCb(c[h>>2]|0)|0)+-1|0;g=g+1|0}eva(a+184|0,d);if((f|0)==-1){yb=n;return}o=cWa(i)|0;if(c[(c[o>>2]|0)+4>>2]|0){yb=n;return}$z(a,117082);Gsb(l,c[a>>2]|0);e=uXa(i,f)|0;e=(xfb(c[e>>2]|0)|0)+8|0;e=c[e>>2]|0;o=e+4|0;m=cCa(c[a+120>>2]|0,c[o>>2]|0)|0;l=c[l>>2]|0;e=tVa(l,m,e)|0;k=uXa(i,f)|0;c[k>>2]=e;Wla(i,T3a(l,m,c[o>>2]|0)|0);yb=n;return}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,l=0,m=0,o=0,p=0;p=yb;yb=yb+16|0;k=d;j=p;o=b+11|0;f=a[o>>0]|0;g=f<<24>>24<0;if(g){i=(c[b+8>>2]&2147483647)+-1|0;m=c[b+4>>2]|0}else{i=10;m=f&255}l=e-k|0;do if(l|0){if(g){g=c[b>>2]|0;h=c[b+4>>2]|0}else{g=b;h=f&255}if(ykb(d,g,g+h|0)|0){c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;NR(j,d,e);o=a[j+11>>0]|0;m=o<<24>>24<0;n=0;V(124,b|0,(m?c[j>>2]|0:j)|0,(m?c[j+4>>2]|0:o&255)|0)|0;o=n;n=0;if(o&1){p=sa()|0;P()|0;Chb(j);Ea(p|0)}else{Chb(j);break}}if((i-m|0)>>>0>>0){mM(b,i,m+l-i|0,m,m,0);f=a[o>>0]|0}if(f<<24>>24<0)i=c[b>>2]|0;else i=b;h=e+(m-k)|0;g=i+m|0;f=d;while(1){if((f|0)==(e|0))break;Fsb(g,a[f>>0]|0);g=g+1|0;f=f+1|0}Fsb(i+h|0,0);f=m+l|0;if((a[o>>0]|0)<0){c[b+4>>2]=f;break}else{a[o>>0]=f;break}}while(0);yb=p;return}function rr(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0;q=yb;yb=yb+144|0;k=q+112|0;l=q+104|0;m=q+100|0;p=q+88|0;o=q+72|0;h=q+48|0;f=q+24|0;j=q;Gsb(l,WCb(c[b+36>>2]|0)|0);c[m>>2]=c[37312];i=b+44|0;g=c[i>>2]|0;c[i>>2]=g+1;Bqb(h,g);g=k;i=g+24|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b=D7(l,k)|0;c[o>>2]=b;b=o+4|0;Bqb(f,d[e+8>>0]|0);g=k;h=f;i=g+24|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));g=D7(l,k)|0;c[b>>2]=g;b=o+8|0;Bqb(j,c[e+12>>2]|0);g=k;h=j;i=g+24|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));f=D7(l,k)|0;c[b>>2]=f;f=e+24|0;c[o+12>>2]=c[f>>2];c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;n=0;da(174,p|0,4);j=n;n=0;if(j&1){q=sa()|0;P()|0;Qcb(p);Ea(q|0)}ssa(p,o,o+16|0);b=c[l>>2]|0;n=0;c[k>>2]=c[m>>2];b=W(14,b|0,k|0,p|0,1)|0;o=n;n=0;if(o&1){q=sa()|0;P()|0;Vob(p);Ea(q|0)}else{c[f>>2]=b;Vob(p);yb=q;return}}function sr(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0;q=yb;yb=yb+144|0;k=q+112|0;l=q+104|0;m=q+100|0;p=q+88|0;o=q+72|0;h=q+48|0;f=q+24|0;j=q;Gsb(l,WCb(c[b+36>>2]|0)|0);c[m>>2]=c[37311];i=b+44|0;g=c[i>>2]|0;c[i>>2]=g+1;Bqb(h,g);g=k;i=g+24|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b=D7(l,k)|0;c[o>>2]=b;b=o+4|0;Bqb(f,d[e+8>>0]|0);g=k;h=f;i=g+24|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));g=D7(l,k)|0;c[b>>2]=g;b=o+8|0;Bqb(j,c[e+12>>2]|0);g=k;h=j;i=g+24|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));f=D7(l,k)|0;c[b>>2]=f;f=e+24|0;c[o+12>>2]=c[f>>2];c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;n=0;da(174,p|0,4);j=n;n=0;if(j&1){q=sa()|0;P()|0;Qcb(p);Ea(q|0)}ssa(p,o,o+16|0);b=c[l>>2]|0;n=0;c[k>>2]=c[m>>2];b=W(14,b|0,k|0,p|0,1)|0;o=n;n=0;if(o&1){q=sa()|0;P()|0;Vob(p);Ea(q|0)}else{c[f>>2]=b;Vob(p);yb=q;return}}function tr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if(b<<24>>24==d<<24>>24){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(166,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(166,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(146,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function ur(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a:do if(c[a+8>>2]|0){e=Nta(a)|0;while(1){if(!e)break a;if((b|0)==(d|0))break;c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];f=vV(e)|0;h2(a,e)|0;e=c[b+4>>2]|0;b:do if(!e){e=b;while(1){b=c[e+8>>2]|0;if((c[b>>2]|0)==(e|0))break b;e=b}}else{b=e;while(1){e=c[b>>2]|0;if(!e)break;b=e}}while(0);e=f}b=e;while(1){e=c[b+8>>2]|0;if(!e)break;b=e}C7(a,b);b=d}while(0);e=b;while(1){if((e|0)==(d|0))break;CL(a,e+16|0)|0;b=c[e+4>>2]|0;c:do if(!b)while(1){b=c[e+8>>2]|0;if((c[b>>2]|0)==(e|0))break c;e=b}else while(1){e=c[b>>2]|0;if(!e)break;b=e}while(0);e=b}return}function vr(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;switch(b-a>>2|0){case 2:{e=b+-4|0;f=c[e>>2]|0;g=c[a>>2]|0;if(!(_ba(d,f,g)|0)){d=1;return d|0}c[a>>2]=f;c[e>>2]=g;d=1;return d|0}case 3:{kE(a,a+4|0,b+-4|0,d)|0;d=1;return d|0}case 4:{uH(a,a+4|0,a+8|0,b+-4|0,d)|0;d=1;return d|0}case 5:{uB(a,a+4|0,a+8|0,a+12|0,b+-4|0,d)|0;d=1;return d|0}case 1:case 0:{d=1;return d|0}default:{f=a+8|0;kE(a,a+4|0,f,d)|0;j=a+12|0;e=0;while(1){if((j|0)==(b|0)){e=1;k=16;break}i=c[j>>2]|0;h=c[f>>2]|0;if(_ba(d,i,h)|0){g=j;while(1){c[g>>2]=h;if((f|0)==(a|0)){f=a;break}g=f+-4|0;h=c[g>>2]|0;if(!(_ba(d,i,h)|0))break;else{l=f;f=g;g=l}}c[f>>2]=i;e=e+1|0;if((e|0)==8)break}f=j;j=j+4|0}if((k|0)==16)return e|0;l=(j+4|0)==(b|0);return l|0}}return 0}function wr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(158,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function xr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(152,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function yr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a:do if(c[a+8>>2]|0){e=Nta(a)|0;while(1){if(!e)break a;if((b|0)==(d|0))break;c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];f=vV(e)|0;h2(a,e)|0;e=c[b+4>>2]|0;b:do if(!e){e=b;while(1){b=c[e+8>>2]|0;if((c[b>>2]|0)==(e|0))break b;e=b}}else{b=e;while(1){e=c[b>>2]|0;if(!e)break;b=e}}while(0);e=f}b=e;while(1){e=c[b+8>>2]|0;if(!e)break;b=e}l8(a,b);b=d}while(0);e=b;while(1){if((e|0)==(d|0))break;CL(a,e+16|0)|0;b=c[e+4>>2]|0;c:do if(!b)while(1){b=c[e+8>>2]|0;if((c[b>>2]|0)==(e|0))break c;e=b}else while(1){e=c[b>>2]|0;if(!e)break;b=e}while(0);e=b}return}function zr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(172,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function Ar(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(174,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function Br(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(170,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function Cr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(171,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function Dr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(143,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function Er(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(78,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(78,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(146,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function Fr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(63,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(63,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(145,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function Gr(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,o=0,p=0;p=yb;yb=yb+160|0;m=p+16|0;o=p;if((b|0)!=(d|0)){yb=p;return}i=m+56|0;c[m>>2]=31812;c[i>>2]=31832;Hoa(m+56|0,m+4|0);c[m+128>>2]=0;c[m+132>>2]=-1;c[m>>2]=39764;c[i>>2]=39784;i=m+4|0;RKa(i);c[i>>2]=39800;h=m+36|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[h+(d<<2)>>2]=0;d=d+1|0}c[m+48>>2]=0;c[m+52>>2]=16;n=0;d=U(63,m|0,b|0)|0;h=n;n=0;if(((((!(h&1)?(n=0,j=U(59,d|0,127681)|0,h=n,n=0,!(h&1)):0)?(n=0,k=U(63,j|0,b|0)|0,j=n,n=0,!(j&1)):0)?(n=0,l=U(59,k|0,138977)|0,k=n,n=0,!(k&1)):0)?(n=0,U(59,l|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,o|0,i|0),f=n,n=0,!(f&1)):0){n=0;fa(146,a|0,o|0,e|0,g|0);g=n;n=0;if(g&1){p=sa()|0;P()|0;Chb(o);v$a(m);Ea(p|0)}else{Chb(o);v$a(m);yb=p;return}}p=sa()|0;P()|0;v$a(m);Ea(p|0)}function Hr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=yb;yb=yb+32|0;i=o+28|0;k=o+24|0;d=o+20|0;e=o+16|0;f=o+12|0;g=o+8|0;l=o+4|0;m=o;n=a+4|0;j=Lib(c[n>>2]|0)|0;c[k>>2]=1;Cub(d);if(Gcb(Vr(b,1)|0)|0){c[k>>2]=2;Ftb(e,kH(Vr(b,1)|0)|0);h=c[e>>2]|0;c[d>>2]=h;d=h}else{Zsb(f,134435);h=c[f>>2]|0;c[d>>2]=h;d=h}h=a+112|0;c[g>>2]=d;c[i>>2]=c[g>>2];d=Pz(h,i)|0;e=nM(b,k)|0;f=c[k>>2]|0;g=$db(a,Vr(b,f)|0)|0;c[j+8>>2]=g;g=f+2|0;c[k>>2]=g;p=oN(a,Vr(b,f+1|0)|0)|0;c[j+12>>2]=p;if(g>>>0<(xmb(b)|0)>>>0){c[k>>2]=f+3;p=oN(a,Vr(b,g)|0)|0;c[j+16>>2]=p}kma(j,e);c[l>>2]=d;c[i>>2]=c[l>>2];T5(h,i);c[m>>2]=d;c[i>>2]=c[m>>2];if(!(BT(j,i)|0)){p=j;yb=o;return p|0}p=Eeb(c[n>>2]|0)|0;c[p+8>>2]=d;Wla(p+12|0,j);uZa(p,c[j+4>>2]|0);yb=o;return p|0}function Ir(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;l=yb;yb=yb+48|0;i=l+4|0;j=l;$6(b+20|0);e=c[d+28>>2]|0;h=b+20|0;b=c[d+24>>2]|0;while(1){if((b|0)==(e|0))break;pm(h,(c[b>>2]|0)+8|0)|0;b=b+4|0}VSa(i,d);Lvb(i);n=0;da(1452,i|0,h|0);g=n;n=0;if(!(g&1)?(n=0,ca(489,i|0),g=n,n=0,!(g&1)):0){f=c[d+16>>2]|0;e=c[d+12>>2]|0;while(1){if((e|0)==(f|0))break;b=c[e>>2]|0;if(!(c[b+8>>2]|0)){n=0;b=U(144,h|0,b+4|0)|0;g=n;n=0;if(g&1){k=21;break}a[b+9>>0]=1}e=e+4|0}if((k|0)==21){l=sa()|0;P()|0;osa(i);Ea(l|0)}g=c[d+76>>2]|0;e=c[d+72>>2]|0;a:while(1){if((e|0)==(g|0)){k=19;break}f=c[e+8>>2]|0;b=c[e+4>>2]|0;while(1){d=b;if((f|0)==(d|0))break;c[j>>2]=c[b>>2];n=0;b=U(144,h|0,j|0)|0;m=n;n=0;if(m&1)break a;a[b+9>>0]=1;b=d+4|0}e=e+16|0}if((k|0)==19){osa(i);yb=l;return}m=sa()|0;P()|0;osa(i);Ea(m|0)}m=sa()|0;P()|0;osa(i);Ea(m|0)}function Jr(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,o=0,p=0;p=yb;yb=yb+160|0;m=p+16|0;o=p;if((b|0)!=(d|0)){yb=p;return}i=m+56|0;c[m>>2]=31812;c[i>>2]=31832;Hoa(m+56|0,m+4|0);c[m+128>>2]=0;c[m+132>>2]=-1;c[m>>2]=39764;c[i>>2]=39784;i=m+4|0;RKa(i);c[i>>2]=39800;h=m+36|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[h+(d<<2)>>2]=0;d=d+1|0}c[m+48>>2]=0;c[m+52>>2]=16;n=0;d=U(63,m|0,b|0)|0;h=n;n=0;if(((((!(h&1)?(n=0,j=U(59,d|0,127681)|0,h=n,n=0,!(h&1)):0)?(n=0,k=U(63,j|0,b|0)|0,j=n,n=0,!(j&1)):0)?(n=0,l=U(59,k|0,138977)|0,k=n,n=0,!(k&1)):0)?(n=0,U(59,l|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,o|0,i|0),f=n,n=0,!(f&1)):0){n=0;fa(172,a|0,o|0,e|0,g|0);g=n;n=0;if(g&1){p=sa()|0;P()|0;Chb(o);v$a(m);Ea(p|0)}else{Chb(o);v$a(m);yb=p;return}}p=sa()|0;P()|0;v$a(m);Ea(p|0)}function Kr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(60,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(60,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(144,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}function Lr(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,o=0,p=0,q=0;q=yb;yb=yb+160|0;o=q+16|0;p=q;if((b|0)==(d|0)){yb=q;return}j=o+56|0;c[o>>2]=31812;c[j>>2]=31832;Hoa(o+56|0,o+4|0);c[o+128>>2]=0;c[o+132>>2]=-1;c[o>>2]=39764;c[j>>2]=39784;j=o+4|0;RKa(j);c[j>>2]=39800;i=o+36|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[o+48>>2]=0;c[o+52>>2]=16;n=0;h=U(78,o|0,b|0)|0;i=n;n=0;if(((((!(i&1)?(n=0,k=U(59,h|0,127704)|0,i=n,n=0,!(i&1)):0)?(n=0,l=U(78,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=U(59,l|0,138977)|0,l=n,n=0,!(l&1)):0)?(n=0,U(59,m|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,p|0,j|0),f=n,n=0,!(f&1)):0){n=0;fa(175,a|0,p|0,e|0,g|0);g=n;n=0;if(g&1){q=sa()|0;P()|0;Chb(p);v$a(o);Ea(q|0)}else{Chb(p);v$a(o);yb=q;return}}q=sa()|0;P()|0;v$a(o);Ea(q|0)}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,l=0,m=0,o=0,p=0;p=yb;yb=yb+160|0;m=p+16|0;o=p;if((b|0)!=(d|0)){yb=p;return}i=m+56|0;c[m>>2]=31812;c[i>>2]=31832;Hoa(m+56|0,m+4|0);c[m+128>>2]=0;c[m+132>>2]=-1;c[m>>2]=39764;c[i>>2]=39784;i=m+4|0;RKa(i);c[i>>2]=39800;h=m+36|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[h+(d<<2)>>2]=0;d=d+1|0}c[m+48>>2]=0;c[m+52>>2]=16;n=0;d=U(63,m|0,b|0)|0;h=n;n=0;if(((((!(h&1)?(n=0,j=U(59,d|0,127681)|0,h=n,n=0,!(h&1)):0)?(n=0,k=U(63,j|0,b|0)|0,j=n,n=0,!(j&1)):0)?(n=0,l=U(59,k|0,138977)|0,k=n,n=0,!(k&1)):0)?(n=0,U(59,l|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,o|0,i|0),f=n,n=0,!(f&1)):0){n=0;fa(171,a|0,o|0,e|0,g|0);g=n;n=0;if(g&1){p=sa()|0;P()|0;Chb(o);v$a(m);Ea(p|0)}else{Chb(o);v$a(m);yb=p;return}}p=sa()|0;P()|0;v$a(m);Ea(p|0)}function Nr(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,o=0,p=0;p=yb;yb=yb+160|0;m=p+16|0;o=p;if((b|0)!=(d|0)){yb=p;return}i=m+56|0;c[m>>2]=31812;c[i>>2]=31832;Hoa(m+56|0,m+4|0);c[m+128>>2]=0;c[m+132>>2]=-1;c[m>>2]=39764;c[i>>2]=39784;i=m+4|0;RKa(i);c[i>>2]=39800;h=m+36|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[h+(d<<2)>>2]=0;d=d+1|0}c[m+48>>2]=0;c[m+52>>2]=16;n=0;d=U(63,m|0,b|0)|0;h=n;n=0;if(((((!(h&1)?(n=0,j=U(59,d|0,127681)|0,h=n,n=0,!(h&1)):0)?(n=0,k=U(63,j|0,b|0)|0,j=n,n=0,!(j&1)):0)?(n=0,l=U(59,k|0,138977)|0,k=n,n=0,!(k&1)):0)?(n=0,U(59,l|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,o|0,i|0),f=n,n=0,!(f&1)):0){n=0;fa(156,a|0,o|0,e|0,g|0);g=n;n=0;if(g&1){p=sa()|0;P()|0;Chb(o);v$a(m);Ea(p|0)}else{Chb(o);v$a(m);yb=p;return}}p=sa()|0;P()|0;v$a(m);Ea(p|0)}function Or(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,o=0,p=0;p=yb;yb=yb+160|0;m=p+16|0;o=p;if((b|0)!=(d|0)){yb=p;return}i=m+56|0;c[m>>2]=31812;c[i>>2]=31832;Hoa(m+56|0,m+4|0);c[m+128>>2]=0;c[m+132>>2]=-1;c[m>>2]=39764;c[i>>2]=39784;i=m+4|0;RKa(i);c[i>>2]=39800;h=m+36|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[h+(d<<2)>>2]=0;d=d+1|0}c[m+48>>2]=0;c[m+52>>2]=16;n=0;d=U(63,m|0,b|0)|0;h=n;n=0;if(((((!(h&1)?(n=0,j=U(59,d|0,127681)|0,h=n,n=0,!(h&1)):0)?(n=0,k=U(63,j|0,b|0)|0,j=n,n=0,!(j&1)):0)?(n=0,l=U(59,k|0,138977)|0,k=n,n=0,!(k&1)):0)?(n=0,U(59,l|0,f|0)|0,f=n,n=0,!(f&1)):0)?(n=0,da(75,o|0,i|0),f=n,n=0,!(f&1)):0){n=0;fa(143,a|0,o|0,e|0,g|0);g=n;n=0;if(g&1){p=sa()|0;P()|0;Chb(o);v$a(m);Ea(p|0)}else{Chb(o);v$a(m);yb=p;return}}p=sa()|0;P()|0;v$a(m);Ea(p|0)}function Pr(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=yb;yb=yb+32|0;i=k+12|0;j=k;if(f){gEa(a,b,e,g);yb=k;return}a:do switch(b|0){case 16:case 8:case 4:case 2:case 1:break;default:{h=c[a+44>>2]|0;f5(j,b);n=0;U(77,j|0,129265)|0;f=n;n=0;if(f&1){k=sa()|0;P()|0;Chb(j);Ea(k|0)}c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];f=0;while(1){if((f|0)==3)break;c[j+(f<<2)>>2]=0;f=f+1|0}f=WCb(c[a+32>>2]|0)|0;n=0;fa(146,h|0,i|0,g|0,f|0);h=n;n=0;if(!(h&1)){Chb(i);Chb(j);break a}k=sa()|0;P()|0;Chb(i);Chb(j);Ea(k|0)}}while(0);PGa(a,b>>>0<=e>>>0,g,129281)|0;switch(d|0){case 3:case 1:{PGa(a,b>>>0<5,g,129281)|0;yb=k;return}case 4:case 2:{PGa(a,b>>>0<9,g,129281)|0;yb=k;return}case 0:{ma(141129,126900,1164,129315);break}default:{yb=k;return}}}function Qr(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;m=yb;yb=yb+32|0;e=m+16|0;l=m+8|0;i=m;f=CU(c[b+36>>2]|0,1,d)|0;c[e>>2]=f;g=b+4|0;h=c[g>>2]|0;if(h>>>0<(c[b+8>>2]|0)>>>0){c[h>>2]=f;c[g>>2]=(c[g>>2]|0)+4}else _M(b,e);e=d+8|0;f=b+60|0;g=c[f>>2]|0;if((g|0)==(c[b+64>>2]|0))_M(b+56|0,e);else{c[g>>2]=c[e>>2];c[f>>2]=(c[f>>2]|0)+4}j=d+12|0;nrb(l,j);Hib(i,j);j=l+4|0;k=c[i>>2]|0;f=c[i+4>>2]|0;g=b+33|0;h=d;e=0;while(1){if(!(dhb(c[l>>2]|0,c[j>>2]|0,k,f)|0))break;i=Qab(l)|0;i=c[i>>2]|0;if(a[g>>0]&1){Ym(IWa(Ym(IWa(150620,113424)|0,h)|0,113427)|0,e)|0;BM(150620);e=e+1|0}yIa(b,i);hob(l)}VC(b,d);yb=m;return}function Rr(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=yb;yb=yb+32|0;h=l+24|0;i=l+16|0;j=l+8|0;k=l;c[h>>2]=(d|0)==0?0:2;c[i>>2]=h;c[i+4>>2]=b;g=a+4|0;f=0;a:while(1){e=c[a>>2]|0;if(f>>>0>=(c[g>>2]|0)-e>>2>>>0){e=12;break}e=c[e+(f<<2)>>2]|0;if(e|0){switch(c[e>>2]|0){case 0:{gxa(i);Fmb(j,d,b);Ik(j,c[e+4>>2]|0);break}case 6:case 3:case 1:{gxa(i);Fmb(k,d,b);Ik(k,c[e+4>>2]|0);c[h>>2]=(c[h>>2]|0)+1;break}case 7:case 5:case 2:{c[h>>2]=(c[h>>2]|0)+-1;gxa(i);IWa(b,98094)|0;break}case 4:{c[h>>2]=(c[h>>2]|0)+-1;gxa(i);IWa(b,134170)|0;c[h>>2]=(c[h>>2]|0)+1;gxa(i);break}default:{e=9;break a}}SEa(150452,10)|0}f=f+1|0}if((e|0)==9)ma(141129,97990,1548,98098);else if((e|0)==12){yb=l;return}}function Sr(a,b){a=a|0;b=b|0;var c=0;c=Rqb(b)|0;if(c|0){b=qt(a,c)|0;return b|0}c=wrb(b)|0;if(c|0){b=Wo(a,c)|0;return b|0}c=hrb(b)|0;if(c|0){b=pj(a,c)|0;return b|0}c=jqb(b)|0;if(c|0){b=yva(a,c)|0;return b|0}c=iqb(b)|0;if(c|0){b=Ls(a,c)|0;return b|0}c=Qqb(b)|0;if(c|0){b=RI(a,c)|0;return b|0}c=Jqb(b)|0;if(c|0){b=Jf(a,c)|0;return b|0}c=Mqb(b)|0;if(c|0){b=nna(a,c)|0;return b|0}c=Kqb(b)|0;if(c|0){b=WE(a,c)|0;return b|0}c=Aqb(b)|0;if(c|0){b=Up(a,c)|0;return b|0}c=yqb(b)|0;if(c|0){b=QE(a,c)|0;return b|0}if(tpb(b)|0){b=Mkb(a)|0;return b|0}c=Tqb(b)|0;if(!c){b=tF(a,b)|0;return b|0}else{b=Cra(a,c)|0;return b|0}return 0}function Tr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+96|0;e=h+64|0;f=h+32|0;g=h;AB(e,b,c[d+8>>2]|0);if(lsb(e)|0){c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];c[a+28>>2]=c[e+28>>2];yb=h;return}AB(f,b,c[d+12>>2]|0);if(lsb(f)|0){c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];c[a+16>>2]=c[f+16>>2];c[a+20>>2]=c[f+20>>2];c[a+24>>2]=c[f+24>>2];c[a+28>>2]=c[f+28>>2];yb=h;return}AB(g,b,c[d+16>>2]|0);if(lsb(g)|0){c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=h;return}else{g=(Peb(g)|0)==0;g=g?f:e;c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];c[a+28>>2]=c[g+28>>2];yb=h;return}}function Ur(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=b+8|0;g=c[(c[e>>2]|0)+4>>2]|0;oPa(a,(g|0)==6|(g|0)==1,b);g=b+16|0;if(!(c[g>>2]|0)){POa(a,vub(c[(c[b+12>>2]|0)+4>>2]|0)|0,b);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;CAa(a,c[b+4>>2]|0,0,b,127869);return}f=b+4|0;d=c[f>>2]|0;if((d|0)==6){d=b+12|0;if((c[(c[e>>2]|0)+4>>2]|0)!=6){CAa(a,c[(c[d>>2]|0)+4>>2]|0,6,b,128015);CAa(a,c[(c[g>>2]|0)+4>>2]|0,6,b,128062)}}else{e=b+12|0;$ra(a,c[(c[e>>2]|0)+4>>2]|0,d,b,127922);$ra(a,c[(c[g>>2]|0)+4>>2]|0,c[f>>2]|0,b,127968);d=e}e=c[(c[d>>2]|0)+4>>2]|0;if(vub(e)|0){CAa(a,c[f>>2]|0,e,b,128110);$ra(a,c[(c[g>>2]|0)+4>>2]|0,c[(c[d>>2]|0)+4>>2]|0,b,128145)}e=c[(c[g>>2]|0)+4>>2]|0;if(!(vub(e)|0))return;CAa(a,c[f>>2]|0,e,b,128182);$ra(a,c[(c[d>>2]|0)+4>>2]|0,c[(c[g>>2]|0)+4>>2]|0,b,128218);return}function Vr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=yb;yb=yb+32|0;g=e+12|0;h=e;if(!(UBb(a[b>>0]|0)|0)){f=oa(20)|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;h=Zzb(118773)|0;n=0;ea(95,g|0,118773,h|0);h=n;n=0;if(!(h&1)){n=0;fa(134,f|0,g|0,c[b+28>>2]|0,c[b+32>>2]|0);h=n;n=0;if(h&1)e=1;else{n=0;ea(122,f|0,31856,511);n=0;e=0}d=sa()|0;P()|0;Chb(g);if(!e){h=d;Ea(h|0)}}else{d=sa()|0;P()|0}va(f|0);h=d;Ea(h|0)}g=(GH(b)|0)+4|0;if((WCb(c[g>>2]|0)|0)>>>0>d>>>0){h=GH(b)|0;h=n0a(c[h>>2]|0,c[h+4>>2]|0,d)|0;yb=e;return c[h>>2]|0}f=oa(20)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;g=Zzb(118787)|0;n=0;ea(95,h|0,118787,g|0);g=n;n=0;if(!(g&1)){n=0;fa(134,f|0,h|0,c[b+28>>2]|0,c[b+32>>2]|0);g=n;n=0;if(g&1)e=1;else{n=0;ea(122,f|0,31856,511);n=0;e=0}d=sa()|0;P()|0;Chb(h);if(!e){h=d;Ea(h|0)}}else{d=sa()|0;P()|0}va(f|0);h=d;Ea(h|0);return 0}function Wr(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;n=yb;yb=yb+32|0;j=n+24|0;k=n+16|0;i=n+8|0;l=n+4|0;m=n;f=d+32|0;g=c[f>>2]|0;if(Pfb(g)|0){Iya(b,g)|0;yb=n;return}h=d+28|0;e=c[h>>2]|0;if(PBb(c[e+4>>2]|0)|0)if(!g){Iya(b,e)|0;yb=n;return}else{m=c[b+36>>2]|0;WCb(m)|0;m=Eeb(m+152|0)|0;l=m+12|0;Cka(l,2);j=Jma(b,c[f>>2]|0)|0;k=uXa(l,0)|0;c[k>>2]=j;k=c[h>>2]|0;l=uXa(l,1)|0;c[l>>2]=k;uZa(m,c[d+4>>2]|0);Iya(b,m)|0;yb=n;return}else{f=d+8|0;nrb(k,f);Hib(i,f);f=k+4|0;g=c[i>>2]|0;e=c[i+4>>2]|0;while(1){if(!(dhb(c[k>>2]|0,c[f>>2]|0,g,e)|0))break;i=Qab(k)|0;c[l>>2]=c[i>>2];c[j>>2]=c[l>>2];Ema(b,j);hob(k)}c[m>>2]=c[d+24>>2];c[j>>2]=c[m>>2];Ema(b,j);a[b+104>>0]=0;yb=n;return}}function Xr(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=b;i=a+4|0;if((i|0)!=(b|0)?(g=c[b+16>>2]|0,g>>>0<=f>>>0):0){if(g>>>0>=f>>>0){c[d>>2]=j;c[e>>2]=j;j=e;return j|0}h=1;g=j;while(1){if(!h)break;e=c[g+4>>2]|0;a:do if(!e)while(1){e=c[g+8>>2]|0;if((g|0)==(c[e>>2]|0))break a;g=e}else while(1){g=c[e>>2]|0;if(!g)break;e=g}while(0);h=h+-1|0;g=e}h=g;if((i|0)!=(h|0)?(c[g+16>>2]|0)>>>0<=f>>>0:0){j=lK(a,d,f)|0;return j|0}e=b+4|0;if(!(c[e>>2]|0)){c[d>>2]=j;j=e;return j|0}else{c[d>>2]=g;j=h;return j|0}}h=c[b>>2]|0;if((c[a>>2]|0)!=(b|0)){b:do if(!h){g=b;while(1){e=c[g+8>>2]|0;if((c[e>>2]|0)!=(g|0))break b;g=e}}else{e=h;while(1){g=c[e+4>>2]|0;if(!g)break b;e=g}}while(0);if((c[e+16>>2]|0)>>>0>=f>>>0){j=lK(a,d,f)|0;return j|0}}else e=j;if(!h){c[d>>2]=j;j=b;return j|0}else{c[d>>2]=e;j=e+4|0;return j|0}return 0}function Yr(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,o=0,p=0;p=yb;yb=yb+16|0;k=d;j=p;o=b+11|0;f=a[o>>0]|0;g=f<<24>>24<0;if(g){i=(c[b+8>>2]&2147483647)+-1|0;m=c[b+4>>2]|0}else{i=10;m=f&255}l=e-k|0;do if(l|0){if(g){g=c[b>>2]|0;h=c[b+4>>2]|0}else{g=b;h=f&255}if(ykb(d,g,g+h|0)|0){c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;qU(j,d,e);o=a[j+11>>0]|0;m=o<<24>>24<0;n=0;V(43,b|0,(m?c[j>>2]|0:j)|0,(m?c[j+4>>2]|0:o&255)|0)|0;o=n;n=0;if(o&1){p=sa()|0;P()|0;Chb(j);Ea(p|0)}else{Chb(j);break}}if((i-m|0)>>>0>>0){nR(b,i,m+l-i|0,m,m);f=a[o>>0]|0}if(f<<24>>24<0)i=c[b>>2]|0;else i=b;h=e+(m-k)|0;g=i+m|0;f=d;while(1){if((f|0)==(e|0))break;Fsb(g,a[f>>0]|0);g=g+1|0;f=f+1|0}Fsb(i+h|0,0);f=m+l|0;if((a[o>>0]|0)<0){c[b+4>>2]=f;break}else{a[o>>0]=f;break}}while(0);yb=p;return b|0}function Zr(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0;j=Wu(a,b,d,e)|0;g=c[f>>2]|0;i=c[e>>2]|0;if(!(yea(+h[g+16>>3],+h[i+16>>3])|0))return j|0;c[e>>2]=g;c[f>>2]=i;g=c[e>>2]|0;i=c[d>>2]|0;if(!(yea(+h[g+16>>3],+h[i+16>>3])|0)){j=j+1|0;return j|0}c[d>>2]=g;c[e>>2]=i;g=c[d>>2]|0;i=c[b>>2]|0;if(!(yea(+h[g+16>>3],+h[i+16>>3])|0)){j=j+2|0;return j|0}c[b>>2]=g;c[d>>2]=i;g=c[b>>2]|0;i=c[a>>2]|0;if(!(yea(+h[g+16>>3],+h[i+16>>3])|0)){j=j+3|0;return j|0}c[a>>2]=g;c[b>>2]=i;j=j+4|0;return j|0}function _r(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;j=yb;yb=yb+32|0;e=j+16|0;f=j+12|0;k=j;i=Wdb(c[b+4>>2]|0)|0;g=i+8|0;h=1;while(1){l=Vr(d,h)|0;if(UBb(a[l>>0]|0)|0)break;l=vj(b,Vr(d,h)|0)|0;c[f>>2]=l;c[e>>2]=c[f>>2];kla(g,e);h=h+1|0}if(WCb(c[i+12>>2]|0)|0){f=cWa(g)|0;c[i+24>>2]=c[f>>2];pYa(g);f=h+1|0;l=$db(b,Vr(d,h)|0)|0;e=i+28|0;c[e>>2]=l;if(f>>>0>=(xmb(d)|0)>>>0){yb=j;return i|0}c[i+32>>2]=c[e>>2];l=$db(b,Vr(d,f)|0)|0;c[e>>2]=l;yb=j;return i|0}g=oa(20)|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;l=Zzb(125998)|0;n=0;ea(95,k|0,125998,l|0);l=n;n=0;if(!(l&1)){n=0;da(330,g|0,k|0);l=n;n=0;if(l&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(k);if(!f){l=e;Ea(l|0)}}else{e=sa()|0;P()|0}va(g|0);l=e;Ea(l|0);return 0}function $r(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,o=0,p=0;p=yb;yb=yb+48|0;j=p+32|0;k=p+24|0;l=p+12|0;m=p;g=b+36|0;h=d+11|0;i=d+4|0;o=b+24|0;f=b+28|0;while(1){b=c[g>>2]|0;c[g>>2]=b+1;f5(m,b);b=a[h>>0]|0;if(b<<24>>24<0){e=c[d>>2]|0;b=c[i>>2]|0}else{e=d;b=b&255}n=0;W(17,m|0,0,e|0,b|0)|0;e=n;n=0;if(e&1){b=12;break}c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}n=0;da(230,k|0,l|0);e=n;n=0;if(e&1){b=13;break}Chb(l);Chb(m);if((C8(o,k)|0)==(f|0)){b=11;break}}if((b|0)==11){GG(j,o,k,k);yb=p;return c[k>>2]|0}else if((b|0)==12){p=sa()|0;P()|0;Chb(m);Ea(p|0)}else if((b|0)==13){p=sa()|0;P()|0;Chb(l);Chb(m);Ea(p|0)}return 0}function as(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;g=yb;yb=yb+32|0;k=g+28|0;i=g+24|0;d=g+12|0;e=g;f=c[a>>2]|0;Roa(f+48|0);zoa(f+16|0,b);h=_ob(b)|0;j=f+48|0;c[k>>2]=88176;k=O8(j,k)|0;c[k>>2]=h;k=c[a+4>>2]|0;a=c[a+8>>2]|0;h=c[a>>2]|0;c[a>>2]=h+1;h=c[(c[k>>2]|0)+(h*12|0)+8>>2]|0;c[i>>2]=88189;a=O8(j,i)|0;c[a>>2]=h;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;D8(e,88204,Zzb(88204)|0);n=0;U(69,e|0,c[b+8>>2]|0)|0;b=n;n=0;if(b&1){k=sa()|0;P()|0;Chb(e);Ea(k|0)}c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];a=0;while(1){if((a|0)==3)break;c[e+(a<<2)>>2]=0;a=a+1|0}n=0;da(2027,f|0,d|0);k=n;n=0;if(!(k&1)){Chb(d);Chb(e);yb=g;return}k=sa()|0;P()|0;Chb(d);Chb(e);Ea(k|0)}function bs(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;m=yb;yb=yb+16|0;h=m+12|0;f=m+8|0;j=m+4|0;k=m;if(!(eCb(c[d+8>>2]|0)|0)){yb=m;return}if((WCb(c[d+16>>2]|0)|0)!=1){yb=m;return}l=d+12|0;e=uXa(l,0)|0;e=hrb(c[e>>2]|0)|0;if(e|0){k=e+12|0;j=c[k>>2]|0;l=uXa(l,0)|0;c[l>>2]=j;c[k>>2]=d;uZa(d,c[d+4>>2]|0);Qpb(e);Pwb(c[b>>2]|0,e);a[b+24>>0]=1;yb=m;return}i=uXa(l,0)|0;i=wrb(c[i>>2]|0)|0;if(!i){yb=m;return}e=c[i+8>>2]|0;g=d+8|0;c[f>>2]=c[g>>2];c[h>>2]=c[f>>2];if(bU(e,h)|0){yb=m;return}e=i+16|0;f=c[e>>2]|0;if((f|0)!=0?(c[j>>2]=c[g>>2],c[h>>2]=c[j>>2],(bU(f,h)|0)!=0):0){j=c[i+12>>2]|0;c[k>>2]=c[g>>2];c[h>>2]=c[k>>2];if(bU(j,h)|0){yb=m;return}}else e=i+12|0;k=c[e>>2]|0;l=uXa(l,0)|0;c[l>>2]=k;c[e>>2]=d;_u(d);gQ(i);Pwb(c[b>>2]|0,i);a[b+24>>0]=1;yb=m;return}function cs(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,o=0,p=0,q=0;q=yb;yb=yb+16|0;g=q+4|0;k=q;c[a>>2]=b;l=a+4|0;h=a+8|0;i=a+12|0;m=a+16|0;o=a+20|0;j=a+24|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;d=c[b+40>>2]|0;a=c[b+36>>2]|0;a:while(1){if((a|0)==(d|0))break;f=c[a>>2]|0;e=f;do if(Yrb(f)|0){c[g>>2]=e;f=c[h>>2]|0;if(f>>>0>=(c[i>>2]|0)>>>0){n=0;da(132,l|0,g|0);f=n;n=0;if(f&1){p=17;break a}else break}else{c[f>>2]=e;c[h>>2]=(c[h>>2]|0)+4;break}}while(0);a=a+4|0}if((p|0)==17){q=sa()|0;P()|0;Vob(m);Vob(l);Ea(q|0)}f=c[b+28>>2]|0;a=c[b+24>>2]|0;b:while(1){if((a|0)==(f|0)){p=15;break}b=c[a>>2]|0;d=b;do if(Yrb(b)|0){c[k>>2]=d;e=c[o>>2]|0;if(e>>>0>=(c[j>>2]|0)>>>0){n=0;da(133,m|0,k|0);b=n;n=0;if(b&1)break b;else break}else{c[e>>2]=d;c[o>>2]=(c[o>>2]|0)+4;break}}while(0);a=a+4|0}if((p|0)==15){yb=q;return}q=sa()|0;P()|0;Vob(m);Vob(l);Ea(q|0)}function ds(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0;a5a(a,6);f=a+24|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[a+40>>2]=1.0;i=a+44|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;g[a+60>>2]=1.0;j=a+64|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;g[a+80>>2]=1.0;k=a+84|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;g[a+100>>2]=1.0;l=a+104|0;c[l>>2]=0;c[a+108>>2]=0;c[a+112>>2]=0;h=a+124|0;b=a+168|0;d=h;e=d+44|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>2]=1.0;b=a+172|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+188>>2]=1.0;n=0;da(211,a+192|0,77547);e=n;n=0;if(e&1){e=sa()|0;P()|0;Pdb(b);ola(a+152|0);Vob(a+140|0);VZa(h);Vob(l);Pdb(k);Pdb(j);tua(i);Pdb(f);Brb(a);Ea(e|0)}else return}function es(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;m=yb;yb=yb+16|0;h=m;k=zFb()|0;n=0;f=U(55,k|0,c[a+16>>2]|0)|0;j=n;n=0;if(j&1){j=ta(0)|0;P()|0;yub(j)}if(f|0){i=a+12|0;f=(c[i>>2]|0)+d+-1&0-d;c[i>>2]=f;if(!((f+b|0)>>>0<=32768?(e=c[a+4>>2]|0,(e|0)!=(c[a>>2]|0)):0)){e=b+32767&-32768;if(e>>>0>>0)ma(51112,118839,123,51143);e=Ozb(e)|0;c[h>>2]=e;if(!e)Ta();f=a+4|0;g=c[f>>2]|0;if((g|0)==(c[a+8>>2]|0)){_M(a,h);e=c[f>>2]|0}else{c[g>>2]=e;e=(c[f>>2]|0)+4|0;c[f>>2]=e}c[i>>2]=0;f=0}d=(c[e+-4>>2]|0)+f|0;c[i>>2]=f+b;b=d;yb=m;return b|0}j=0;e=a;a=0;a:while(1){while(1){n=0;f=U(55,k|0,c[e+16>>2]|0)|0;i=n;n=0;if(i&1){l=7;break a}if(f|0){l=15;break a}h=e+20|0;f=c[h>>2]|0;if(!f)break;e=f}if(!j){i=mla(24)|0;G0a(i);f=i}else{f=j;i=a}g=c[h>>2]|0;if(!g)c[h>>2]=f;if(!g)break;j=f;e=g;a=i}if((l|0)==7){k=ta(0)|0;P()|0;yub(k)}if((l|0)==15?j|0:0){ETa(j);RCb(a)}b=es(e,b,d)|0;yb=m;return b|0}function fs(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,o=0,p=0,q=0,r=0;r=yb;yb=yb+16|0;k=r+4|0;h=r;j=b+12|0;if(a[j>>0]&1)BM(IWa(150620,115490)|0);o=b+184|0;h$(k,o);p=b+197|0;l=a[p>>0]|0;a[p>>0]=1;e=b+188|0;l=l&1;c[e>>2]=c[b+184>>2];m=b+196|0;f=b+192|0;while(1){a[m>>0]=1;n=0;g=U(196,b|0,h|0)|0;i=n;n=0;if(i&1){q=16;break}d=c[h>>2]|0;i=d;if(!d)break;d=c[e>>2]|0;if((d|0)==(c[f>>2]|0)){n=0;da(332,o|0,h|0);i=n;n=0;if(i&1){q=16;break}}else{c[d>>2]=i;c[e>>2]=(c[e>>2]|0)+4}}if((q|0)==16){r=sa()|0;P()|0;Vob(k);Ea(r|0)}if(a[j>>0]&1){n=0;d=U(59,150620,115513)|0;j=n;n=0;if(!(j&1)?(n=0,ca(497,d|0),j=n,n=0,!(j&1)):0)q=9}else q=9;if((q|0)==9){c[b+200>>2]=g;a[m>>0]=0;a[p>>0]=l;if((o|0)==(k|0)){Vob(k);yb=r;return}n=0;ea(190,o|0,c[k>>2]|0,c[k+4>>2]|0);q=n;n=0;if(!(q&1)){Vob(k);yb=r;return}}r=sa()|0;P()|0;Vob(k);Ea(r|0)}function gs(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;i=j;a:do if(!b){e=c[d>>2]|0;b=c[e>>2]|0;if(!b)e=0;else{f=e;e=0;do{if(b>>>0>127){b=wK(i,b)|0;if((b|0)==-1){e=-1;break a}}else b=1;e=b+e|0;f=f+4|0;b=c[f>>2]|0}while((b|0)!=0)}}else{b:do if(e>>>0>3){f=e;g=c[d>>2]|0;while(1){h=c[g>>2]|0;if((h+-1|0)>>>0>126){if(!h)break;h=wK(b,h)|0;if((h|0)==-1){e=-1;break a}b=b+h|0;f=f-h|0}else{a[b>>0]=h;b=b+1|0;f=f+-1|0;g=c[d>>2]|0}g=g+4|0;c[d>>2]=g;if(f>>>0<=3)break b}a[b>>0]=0;c[d>>2]=0;e=e-f|0;break a}else f=e;while(0);if(f){g=c[d>>2]|0;while(1){h=c[g>>2]|0;if((h+-1|0)>>>0>126){if(!h){g=20;break}h=wK(i,h)|0;if((h|0)==-1){e=-1;break a}if(f>>>0>>0){g=23;break}wK(b,c[g>>2]|0)|0;b=b+h|0;f=f-h|0}else{a[b>>0]=h;b=b+1|0;f=f+-1|0;g=c[d>>2]|0}g=g+4|0;c[d>>2]=g;if(!f)break a}if((g|0)==20){a[b>>0]=0;c[d>>2]=0;e=e-f|0;break}else if((g|0)==23){e=e-f|0;break}}}while(0);yb=j;return e|0}function hs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+32|0;f=h;g=c[d+8>>2]|0;tw(f,b,c[d+12>>2]|0);if(lsb(f)|0){c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];c[a+16>>2]=c[f+16>>2];c[a+20>>2]=c[f+20>>2];c[a+24>>2]=c[f+24>>2];c[a+28>>2]=c[f+28>>2];yb=h;return}d=d+4|0;e=c[d>>2]|0;if(eCb(e)|0?(c[f+16>>2]|0)!=(e|0):0)ma(67982,96854,1013,97427);g=(c[c[b+8>>2]>>2]|0)+(g*24|0)|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];c[g+12>>2]=c[f+12>>2];c[g+16>>2]=c[f+16>>2];if(eCb(c[d>>2]|0)|0){c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];c[a+16>>2]=c[f+16>>2];c[a+20>>2]=c[f+20>>2];c[a+24>>2]=c[f+24>>2];c[a+28>>2]=c[f+28>>2];yb=h;return}else{c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;zsb(a);yb=h;return}}function is(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;f=(b|0)==0;do if(!f){if(b>>>0<=1073741823){e=mla(b<<2)|0;break}d=oa(8)|0;n=0;da(67,d|0,138616);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(d|0);Ea(b|0)}else{c[d>>2]=50788;za(d|0,39592,473)}}else e=0;while(0);d=c[a>>2]|0;c[a>>2]=e;if(d|0)RCb(d);c[a+4>>2]=b;if(f)return;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}e=a+8|0;f=c[e>>2]|0;if(!f)return;d=c[f+4>>2]|0;l=b+-1|0;m=(l&b|0)==0;if(!m){if(d>>>0>=b>>>0)d=(d>>>0)%(b>>>0)|0}else d=d&l;c[(c[a>>2]|0)+(d<<2)>>2]=e;e=d;k=f;while(1){d=c[k>>2]|0;if(!d)break;f=c[d+4>>2]|0;if(!m){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&l;do if((f|0)!=(e|0)){g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0)){c[g>>2]=k;e=f;break}h=d+8|0;g=d;while(1){i=c[g>>2]|0;j=i;if(!i)break;if(!(rmb(c[h>>2]|0,c[i+8>>2]|0)|0))break;g=i}c[k>>2]=j;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d;d=k}while(0);k=d}return}function js(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;k=yb;yb=yb+32|0;h=k+24|0;e=k+16|0;j=k;if(pqb(c[b+16>>2]|0)|0){yb=k;return}if(!(eCb(c[b+8>>2]|0)|0)){yb=k;return}d=b+8|0;if(f9(a+96|0,d)|0){yb=k;return}i=cWa(b+12|0)|0;if(vub(c[(c[i>>2]|0)+4>>2]|0)|0){yb=k;return}i=C8(a+60|0,d)|0;if((i|0)==(a+64|0)){yb=k;return}f=b+12|0;nrb(h,f);Hib(e,f);f=h+4|0;g=c[e>>2]|0;d=c[e+4>>2]|0;e=1;while(1){if(!(dhb(c[h>>2]|0,c[f>>2]|0,g,d)|0))break;l=Qab(h)|0;l=e&(c[(c[l>>2]|0)+4>>2]|0)!=6;hob(h);e=l}f=i+20|0;do if(e){Wib(j,b);d=i+24|0;e=c[d>>2]|0;if(e>>>0<(c[i+28>>2]|0)>>>0){c[e>>2]=c[j>>2];c[e+4>>2]=c[j+4>>2];c[e+8>>2]=c[j+8>>2];c[d>>2]=(c[d>>2]|0)+12;break}else{$F(f,j);break}}while(0);Df(a,f,b);yb=k;return}function ks(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,o=0;o=yb;yb=yb+16|0;m=o+4|0;j=o;k=b+12|0;if(a[k>>0]&1)BM(IWa(150620,117811)|0);l=IF(b)|0;if(a[k>>0]&1)BM(Ym(IWa(150620,117251)|0,l)|0);g=b+72|0;h=b+76|0;i=b+68|0;f=0;while(1){if(f>>>0>=l>>>0){d=16;break}if(a[k>>0]&1)BM(IWa(150620,117257)|0);e=IF(b)|0;d=c[b>>2]|0;if(e>>>0>=(c[d+4>>2]|0)-(c[d>>2]|0)>>2>>>0){c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;D8(m,117837,Zzb(117837)|0);n=0;da(4022,b|0,m|0);d=n;n=0;if(d&1){d=17;break}Chb(m);d=c[b>>2]|0}d=c[(c[d>>2]|0)+(e<<2)>>2]|0;c[j>>2]=d;e=c[g>>2]|0;if(e>>>0<(c[h>>2]|0)>>>0){c[e>>2]=d;c[g>>2]=(c[g>>2]|0)+4}else _M(i,j);f=f+1|0}if((d|0)==16){yb=o;return}else if((d|0)==17){o=sa()|0;P()|0;Chb(m);Ea(o|0)}}function ls(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,o=0;o=yb;yb=yb+16|0;j=o;g=b+8|0;m=g+3|0;f=a[m>>0]|0;h=f<<24>>24<0;if(h){i=(c[g>>2]&2147483647)+-1|0;l=c[b+4>>2]|0}else{i=1;l=f&255}g=e-d|0;k=g>>2;do if(g|0){if(h){g=c[b>>2]|0;h=c[b+4>>2]|0}else{g=b;h=f&255}if(ykb(d,g,g+(h<<2)|0)|0){c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;KF(j,d,e);m=a[j+8+3>>0]|0;e=m<<24>>24<0;n=0;V(123,b|0,(e?c[j>>2]|0:j)|0,(e?c[j+4>>2]|0:m&255)|0)|0;m=n;n=0;if(m&1){o=sa()|0;P()|0;bhb(j);Ea(o|0)}else{bhb(j);break}}if((i-l|0)>>>0>>0){rD(b,i,l+k-i|0,l,l);f=a[m>>0]|0}if(f<<24>>24<0)f=c[b>>2]|0;else f=b;f=f+(l<<2)|0;while(1){if((d|0)==(e|0))break;Ftb(f,c[d>>2]|0);f=f+4|0;d=d+4|0}Ftb(f,0);d=l+k|0;if((a[m>>0]|0)<0){c[b+4>>2]=d;break}else{a[m>>0]=d;break}}while(0);yb=o;return b|0}function ms(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 1:{IW(a+16|0,2372,b);break}case 2:{a=a+16|0;IW(a,2373,b);e=(Tfb(d)|0)+16|0;if(c[e>>2]|0){IW(a,2371,(Tfb(d)|0)+16|0);IW(a,2374,b)}IW(a,2371,(Tfb(d)|0)+12|0);IW(a,2375,b);IW(a,2371,(Tfb(d)|0)+8|0);return}case 3:{IW(a+16|0,2376,b);break}case 4:{IW(a+16|0,2377,b);break}case 5:{IW(a+16|0,2378,b);break}case 19:{IW(a+16|0,2379,b);break}case 22:{IW(a+16|0,2379,b);break}default:{}}_3(a,b);if((c[d>>2]|0)!=3)return;IW(a+16|0,2380,b);return}function ns(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;k=yb;yb=yb+80|0;d=k+68|0;m=k+64|0;f=k+24|0;g=k+56|0;h=k+52|0;i=k;j=k+48|0;e=a+36|0;l=WCb(c[e>>2]|0)|0;c[m>>2]=c[b+24>>2];c[d>>2]=c[m>>2];d=wQ(l,d)|0;if(!(Yrb(d)|0)){yb=k;return}if(!(dub(c[d>>2]|0,c[37142]|0)|0)){yb=k;return}if(!(dub(c[d+4>>2]|0,c[37147]|0)|0)){yb=k;return}d=b+8|0;b=uXa(d,1)|0;b=Mqb(c[b>>2]|0)|0;if(!b){yb=k;return}b=b+8|0;kEa(f,2.0);if(yda(b,f)|0){l=uXa(d,0)|0;l=c[l>>2]|0;m=WCb(c[a+32>>2]|0)|0;qQ(g,l,m,WCb(c[e>>2]|0)|0);Gsb(h,WCb(c[e>>2]|0)|0);m=c[g+4>>2]|0;l=c[h>>2]|0;m=hIa(l,65,m,T3a(l,c[g>>2]|0,c[m+4>>2]|0)|0)|0;Pwb(c[a+16>>2]|0,m);yb=k;return}kEa(i,.5);if(!(yda(b,i)|0)){yb=k;return}Gsb(j,WCb(c[e>>2]|0)|0);m=uXa(d,0)|0;m=pVa(c[j>>2]|0,19,c[m>>2]|0)|0;Pwb(c[a+16>>2]|0,m);yb=k;return}function os(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;f=(b|0)==0;do if(!f){if(b>>>0<=1073741823){e=mla(b<<2)|0;break}d=oa(8)|0;n=0;da(67,d|0,138616);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(d|0);Ea(b|0)}else{c[d>>2]=50788;za(d|0,39592,473)}}else e=0;while(0);d=c[a>>2]|0;c[a>>2]=e;if(d|0)RCb(d);c[a+4>>2]=b;if(f)return;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}e=a+8|0;f=c[e>>2]|0;if(!f)return;d=c[f+4>>2]|0;l=b+-1|0;m=(l&b|0)==0;if(!m){if(d>>>0>=b>>>0)d=(d>>>0)%(b>>>0)|0}else d=d&l;c[(c[a>>2]|0)+(d<<2)>>2]=e;e=d;k=f;while(1){d=c[k>>2]|0;if(!d)break;f=c[d+4>>2]|0;if(!m){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&l;do if((f|0)!=(e|0)){g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0)){c[g>>2]=k;e=f;break}h=d+8|0;g=d;while(1){i=c[g>>2]|0;j=i;if(!i)break;if(!(xsb(c[h>>2]|0,c[i+8>>2]|0)|0))break;g=i}c[k>>2]=j;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d;d=k}while(0);k=d}return}function ps(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=yb;yb=yb+96|0;i=j+64|0;e=j+32|0;g=j;zsb(a);egb(i);f=c[d+32>>2]|0;do if(f){AB(e,b,f);c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];if(lsb(a)|0){yb=j;return}else{c[i>>2]=c[a>>2];c[i+4>>2]=c[a+4>>2];c[i+8>>2]=c[a+8>>2];c[i+12>>2]=c[a+12>>2];c[i+16>>2]=c[a+16>>2];h=a;break}}else h=a;while(0);AB(g,b,c[d+28>>2]|0);c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];c[h+24>>2]=c[g+24>>2];if(lsb(a)|0){yb=j;return}f=Wsa(a)|0;g=P()|0;e=c[d+24>>2]|0;if((g|0)>-1|(g|0)==-1&f>>>0>4294967295?(WCb(c[d+12>>2]|0)|0)>>>0>f>>>0:0){e=uXa(d+8|0,f)|0;e=c[e>>2]|0}c[a+24>>2]=e;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];c[h+16>>2]=c[i+16>>2];yb=j;return}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,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=yb;yb=yb+64|0;e=s+48|0;l=s+44|0;r=s+8|0;p=s+4|0;q=s;u=a+84|0;h=c[u>>2]|0;c[u>>2]=h+1;u=B_a(c[d+8>>2]|0)|0;t=a+36|0;Gsb(l,WCb(c[t>>2]|0)|0);g=ku(h)|0;h=ju(h)|0;i=c[d+16>>2]|0;A3a(r);c[r+24>>2]=c[a+80>>2];c[r+28>>2]=u;c[r+32>>2]=g;Dlb(r,WCb(c[t>>2]|0)|0);n=0;da(2460,r|0,b|0);t=n;n=0;if(((!(t&1)?(j=c[b>>2]|0,c[p>>2]=g,c[q>>2]=h,f=c[l>>2]|0,n=0,c[e>>2]=c[q>>2],k=W(9,f|0,e|0,0,0)|0,u=n,n=0,!(u&1)):0)?(n=0,c[e>>2]=c[p>>2],m=W(34,f|0,j|0,e|0,k|0)|0,u=n,n=0,!(u&1)):0)?(n=0,o=V(57,f|0,m|0,c[d+12>>2]|0)|0,u=n,n=0,!(u&1)):0){c[o+8>>2]=h;c[b>>2]=o;if(!i){Arb(r);yb=s;return}n=0;e=S(235,i|0)|0;u=n;n=0;if(!(u&1)?(n=0,ea(164,a|0,b|0,e|0),u=n,n=0,!(u&1)):0){Arb(r);yb=s;return}}u=sa()|0;P()|0;Arb(r);Ea(u|0)}function rs(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;if(a[b+33>>0]&1)BM(IWa(150620,112947)|0);if((c[(c[e+16>>2]|0)+4>>2]|0)==6)return;if((c[(c[e+20>>2]|0)+4>>2]|0)==6)return;if((c[(c[e+24>>2]|0)+4>>2]|0)==6)return;f=e+4|0;if((c[f>>2]|0)==6)return;h=b+28|0;tI(c[h>>2]|0,-2)|0;a:do switch(c[f>>2]|0){case 1:{f=e+8|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,74)|0;g=f;break a}case 2:{tI(c[h>>2]|0,75)|0;g=f;break a}case 4:{tI(c[h>>2]|0,72)|0;g=f;break a}default:ma(141129,112765,824,112970)}break}case 2:{f=e+8|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,76)|0;g=f;break a}case 2:{tI(c[h>>2]|0,77)|0;g=f;break a}case 4:{tI(c[h>>2]|0,78)|0;g=f;break a}case 8:{tI(c[h>>2]|0,73)|0;g=f;break a}default:ma(141129,112765,833,112970)}break}default:ma(141129,112765,836,112970)}while(0);h=d[g>>0]|0;G5(b,h,h,WCb(c[e+12>>2]|0)|0);return}function ss(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;f=(b|0)==0;do if(!f){if(b>>>0<=1073741823){e=mla(b<<2)|0;break}d=oa(8)|0;n=0;da(67,d|0,138616);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(d|0);Ea(b|0)}else{c[d>>2]=50788;za(d|0,39592,473)}}else e=0;while(0);d=c[a>>2]|0;c[a>>2]=e;if(d|0)RCb(d);c[a+4>>2]=b;if(f)return;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}e=a+8|0;f=c[e>>2]|0;if(!f)return;d=c[f+4>>2]|0;l=b+-1|0;m=(l&b|0)==0;if(!m){if(d>>>0>=b>>>0)d=(d>>>0)%(b>>>0)|0}else d=d&l;c[(c[a>>2]|0)+(d<<2)>>2]=e;e=d;k=f;while(1){d=c[k>>2]|0;if(!d)break;f=c[d+4>>2]|0;if(!m){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&l;do if((f|0)!=(e|0)){g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0)){c[g>>2]=k;e=f;break}h=d+8|0;g=d;while(1){i=c[g>>2]|0;j=i;if(!i)break;if(!(dub(c[h>>2]|0,c[i+8>>2]|0)|0))break;g=i}c[k>>2]=j;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d;d=k}while(0);k=d}return}function ts(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,h=0;switch(c[b+16>>2]|0){case 3:{g=+L8a(b);f=+L8a(d);d=((irb(f)|0)^(irb(g)|0)|0)>-1;e=d?0.0:-0.0;switch(NFa(f)|0){case 2:{switch(NFa(g)|0){case 0:{pUa(a,+Cja(g));return}case 2:{pUa(a,+bb(l,+e));return}case 1:case 3:case 4:{pUa(a,+bb(m,+e));return}default:ma(141129,111484,613,112044)}break}case 3:case 4:case 1:case 0:{pUa(a,g/f);return}default:ma(141129,111484,619,112044)}break}case 4:{g=+K8a(b);e=+K8a(d);h=leb(e)|0;d=P()|0;b=U4a(leb(g)|0,P()|0,63)|0;P()|0;d=U4a(h|0,d|0,63)|0;P()|0;f=(b|0)==(d|0)?0.0:-0.0;switch(jja(e)|0){case 2:{switch(jja(g)|0){case 0:{kEa(a,+m6(g));return}case 2:{kEa(a,+cb(l,+f));return}case 1:case 3:case 4:{kEa(a,+cb(m,+f));return}default:ma(141129,111484,633,112044)}break}case 3:case 4:case 1:case 0:{kEa(a,g/e);return}default:ma(141129,111484,639,112044)}break}default:ma(141129,111484,642,112044)}}function us(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,k=0,l=0;l=c;e=0;f=b;a:while(1){if(!(e>>>0>>0&f>>>0>>0))break;k=a[f>>0]|0;j=k&255;do if(k<<24>>24<=-1){if((k&255)<194)break a;if((k&255)<224){if((l-f|0)<2)break a;if((a[f+1>>0]&-64)<<24>>24!=-128)break a;f=f+2|0;break}if((k&255)<240){if((l-f|0)<3)break a;g=a[f+1>>0]|0;h=a[f+2>>0]|0;switch(k<<24>>24){case -32:{if(!((g&-32)<<24>>24==-96&(h&-64)<<24>>24==-128))break a;break}case -19:{if(!((g&-32)<<24>>24==-128&(h&-64)<<24>>24==-128))break a;break}default:if(!((g&-64)<<24>>24==-128&(h&-64)<<24>>24==-128))break a}f=f+3|0;break}if((k&255)>=245)break a;if((d-e|0)>>>0<2|(l-f|0)<4)break a;g=a[f+1>>0]|0;h=a[f+2>>0]|0;i=a[f+3>>0]|0;switch(k<<24>>24){case -16:{if(!((g+112&255)<48&(h&-64)<<24>>24==-128&(i&-64)<<24>>24==-128))break a;break}case -12:{if(!((g&-16)<<24>>24==-128&(h&-64)<<24>>24==-128&(i&-64)<<24>>24==-128))break a;break}default:if(!((g&-64)<<24>>24==-128&(h&-64)<<24>>24==-128&(i&-64)<<24>>24==-128))break a}if(((g&48)<<12|j<<18&1835008)>>>0>1114111)break a;else{e=e+1|0;f=f+4|0}}else f=f+1|0;while(0);e=e+1|0}return f-b|0}function vs(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;l=yb;yb=yb+48|0;j=l+24|0;k=l+20|0;f=l+16|0;g=l+12|0;i=l;h=b+120|0;Gsb(k,c[h>>2]|0);e=c[d>>2]|0;if(VBb(e)|0){i=c[d+4>>2]|0;j=jka(c[b+116>>2]|0,i)|0;k=T3a(c[k>>2]|0,i,j)|0;yb=l;return k|0}if(z5a(d)|0){f=j;e=(ffb(c[d+4>>2]|0)|0)+8|0;b=f+24|0;do{a[f>>0]=a[e>>0]|0;f=f+1|0;e=e+1|0}while((f|0)<(b|0));k=D7(k,j)|0;yb=l;return k|0}if(OBb(e)|0){i=(yba(b,d)|0)+8|0;i=c[i>>2]|0;j=jka(c[b+116>>2]|0,i)|0;k=T3a(c[k>>2]|0,i,j)|0;yb=l;return k|0}if(MAb(e)|0){k=vs(b,c[c[d+12>>2]>>2]|0)|0;yb=l;return k|0}if(!(bCb(e)|0))ma(141129,77745,746,77775);Gsb(f,c[h>>2]|0);c[g>>2]=c[b+192>>2];c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;e=c[d+4>>2]|0;k=c[f>>2]|0;n=0;c[j>>2]=c[g>>2];e=W(14,k|0,j|0,i|0,e|0)|0;k=n;n=0;if(k&1){l=sa()|0;P()|0;Vob(i);Ea(l|0)}Vob(i);k=e;yb=l;return k|0}function ws(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;m=yb;yb=yb+16|0;i=m+4|0;k=m;c[i>>2]=d;l=d;if(c[d+4>>2]|0){yb=m;return}if(!(c[b+52>>2]|0)){yb=m;return}e=c[(c[b+44>>2]|0)+16>>2]|0;h=Rqb(c[d+12>>2]|0)|0;if(((h|0?!(eCb(c[h+8>>2]|0)|0):0)?(g=h+16|0,WCb(c[g>>2]|0)|0):0)?(j=h+12|0,f=cWa(j)|0,Gzb(c[c[f>>2]>>2]|0)|0):0){Gsb(k,WCb(c[b+36>>2]|0)|0);i=WZ(b+44|0,e)|0;i=c[i>>2]|0;e=Keb(c[i>>2]|0)|0;f=e+12|0;n=c[f>>2]|0;j=uXa(j,(WCb(c[g>>2]|0)|0)+-1|0)|0;c[j>>2]=n;k=ytb(c[k>>2]|0)|0;c[i>>2]=k;_u(h);if(!(c[h+4>>2]|0))ma(104194,104084,357,104214);Qpb(d);c[f>>2]=l;FHa(e);Pwb(c[b+16>>2]|0,e);zea(b+44|0);a[b+92>>0]=1;yb=m;return}e=b+172|0;f=c[e>>2]|0;if((f|0)==(c[b+176>>2]|0)){_M(b+168|0,i);yb=m;return}else{c[f>>2]=l;c[e>>2]=(c[e>>2]|0)+4;yb=m;return}}function xs(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;m=yb;yb=yb+16|0;i=m+4|0;k=m;c[i>>2]=d;l=d;if(c[d+4>>2]|0){yb=m;return}if(!(c[b+52>>2]|0)){yb=m;return}e=c[(c[b+44>>2]|0)+16>>2]|0;h=Rqb(c[d+12>>2]|0)|0;if(((h|0?!(eCb(c[h+8>>2]|0)|0):0)?(g=h+16|0,WCb(c[g>>2]|0)|0):0)?(j=h+12|0,f=cWa(j)|0,Gzb(c[c[f>>2]>>2]|0)|0):0){Gsb(k,WCb(c[b+36>>2]|0)|0);i=WZ(b+44|0,e)|0;i=c[i>>2]|0;e=Keb(c[i>>2]|0)|0;f=e+12|0;n=c[f>>2]|0;j=uXa(j,(WCb(c[g>>2]|0)|0)+-1|0)|0;c[j>>2]=n;k=ytb(c[k>>2]|0)|0;c[i>>2]=k;_u(h);if(!(c[h+4>>2]|0))ma(104194,104084,357,104214);Qpb(d);c[f>>2]=l;FHa(e);Pwb(c[b+16>>2]|0,e);Bea(b+44|0);a[b+92>>0]=1;yb=m;return}e=b+172|0;f=c[e>>2]|0;if((f|0)==(c[b+176>>2]|0)){_M(b+168|0,i);yb=m;return}else{c[f>>2]=l;c[e>>2]=(c[e>>2]|0)+4;yb=m;return}}function ys(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;n=yb;yb=yb+16|0;j=n;k=Keb(c[b>>2]|0)|0;l=k+12|0;d=wrb(c[l>>2]|0)|0;if(!d){m=0;yb=n;return m|0}if(!(vub(c[d+4>>2]|0)|0)){m=0;yb=n;return m|0}if(!(vub(c[(c[d+8>>2]|0)+4>>2]|0)|0)){m=0;yb=n;return m|0}Gsb(j,WCb(c[a+20>>2]|0)|0);m=d+12|0;e=jqb(c[m>>2]|0)|0;if((e|0)!=0?(g=e+8|0,f=k+8|0,(c[g>>2]|0)==(c[f>>2]|0)):0){vwa(j,d);i=c[f>>2]|0;f=c[g>>2]|0}else{e=jqb(c[d+16>>2]|0)|0;if(!e){m=0;yb=n;return m|0}f=c[e+8>>2]|0;if((f|0)==(c[k+8>>2]|0))i=f;else{m=0;yb=n;return m|0}}h=eCb(c[k+4>>2]|0)|0;if((i|0)!=(f|0))ma(101336,101296,961,101361);f=d+16|0;g=c[f>>2]|0;if((g|0)!=(e|0))ma(101386,101296,962,101361);c[l>>2]=c[m>>2];FHa(k);c[m>>2]=k;c[f>>2]=0;gQ(d);if(h){m4a(k,0);d=zMa(c[j>>2]|0,d,g)|0}c[b>>2]=d;Sma(a,m);m=1;yb=n;return m|0}function zs(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=yb;yb=yb+192|0;h=k+92|0;i=k;if((c[b+8>>2]|0)!=8)ma(89296,89176,991,89318);j=Aqb(c[b+12>>2]|0)|0;if(!j){j=0;yb=k;return j|0}b=Aqb(c[b+16>>2]|0)|0;if(!b){j=0;yb=k;return j|0}d=j+8|0;e=b+8|0;if((c[d>>2]|0)==(c[e>>2]|0)){j=0;yb=k;return j|0}f=j+12|0;if(!(L6(c[f>>2]|0,c[b+12>>2]|0)|0)){j=0;yb=k;return j|0}g=j+16|0;if(!(L6(c[g>>2]|0,c[b+16>>2]|0)|0)){j=0;yb=k;return j|0}b=a+40|0;a=pob(c[b>>2]|0)|0;VA(h,a,c[f>>2]|0);if(QGa(h)|0){Fha(h);j=0;yb=k;return j|0}f=pob(c[b>>2]|0)|0;n=0;ea(130,i|0,f|0,c[g>>2]|0);g=n;n=0;if(g&1){k=sa()|0;P()|0;Fha(h);Ea(k|0)}g=QGa(i)|0;Fha(i);Fha(h);if(g){j=0;yb=k;return j|0}if((c[d>>2]|0)!=15){j=0;yb=k;return j|0}if((c[e>>2]|0)!=21){j=0;yb=k;return j|0}c[d>>2]=23;yb=k;return j|0}function As(){var a=0,b=0,d=0;U0();c[37569]=47448;c[37571]=47468;c[37570]=0;Hoa(150284,150956);c[37589]=0;c[37590]=-1;T0();c[37591]=47488;c[37593]=47508;c[37592]=0;Hoa(150372,151020);c[37611]=0;c[37612]=-1;OQ(151084,46644,151132);c[37613]=31180;c[37614]=31200;Hoa(150456,151084);c[37632]=0;c[37633]=-1;NQ(151140,46644,151188);c[37634]=47528;c[37635]=47548;Hoa(150540,151140);c[37653]=0;c[37654]=-1;OQ(151196,46772,151244);c[37655]=31180;c[37656]=31200;Hoa(150624,151196);c[37674]=0;c[37675]=-1;b=c[150620+(c[(c[37655]|0)+-12>>2]|0)+24>>2]|0;c[37697]=31180;c[37698]=31200;Hoa(150792,b);c[37716]=0;c[37717]=-1;NQ(151252,46772,151300);c[37676]=47528;c[37677]=47548;Hoa(150708,151252);c[37695]=0;c[37696]=-1;b=c[150704+(c[(c[37676]|0)+-12>>2]|0)+24>>2]|0;c[37718]=47528;c[37719]=47548;Hoa(150876,b);c[37737]=0;c[37738]=-1;c[150276+(c[(c[37569]|0)+-12>>2]|0)+72>>2]=150452;c[150364+(c[(c[37591]|0)+-12>>2]|0)+72>>2]=150536;b=(c[37655]|0)+-12|0;a=150620+(c[b>>2]|0)+4|0;c[a>>2]=c[a>>2]|8192;a=(c[37676]|0)+-12|0;d=150704+(c[a>>2]|0)+4|0;c[d>>2]=c[d>>2]|8192;c[150620+(c[b>>2]|0)+72>>2]=150452;c[150704+(c[a>>2]|0)+72>>2]=150536;return}function Bs(a,b){a=a|0;b=b|0;var d=0;if(!b)ma(112644,134747,85,112649);do switch(c[b>>2]|0){case 1:{d=AT(a,b)|0;break}case 2:{d=tla(a,b)|0;break}case 3:{d=Egb(a,c[b+12>>2]|0)|0;break}case 4:{d=mNa(a,b)|0;break}case 5:{d=aKa(a,b)|0;break}case 6:{d=aU(a,b)|0;break}case 7:{d=iN(a,b)|0;break}case 22:case 21:case 35:case 34:case 33:case 32:case 31:case 30:case 29:case 28:case 27:case 26:case 25:case 8:{d=0;break}case 9:{d=1;break}case 10:{d=1;break}case 11:{d=2;break}case 12:{d=j$a(a,b)|0;break}case 13:{d=qxa(a,b)|0;break}case 23:{d=100;break}case 24:{d=100;break}case 14:{d=1;break}case 15:{d=pC(a,b)|0;break}case 16:{d=ih(a,b)|0;break}case 17:{d=dna(a,b)|0;break}case 18:{d=pib(a,c[b+8>>2]|0)|0;break}case 19:{d=djb(a,c[b+8>>2]|0)|0;break}case 20:{d=100;break}default:ma(141129,134747,128,112649)}while(0);return d|0}function Cs(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,o=0,p=0;p=yb;yb=yb+32|0;o=p+12|0;g=p+8|0;h=p+4|0;i=p;c[o>>2]=0;j=o+4|0;c[j>>2]=0;k=o+8|0;c[k>>2]=0;l=a+8|0;f=c[a+12>>2]|0;e=c[l>>2]|0;a:while(1){if((e|0)==(f|0))break;b=c[e>>2]|0;c[g>>2]=b;do if((b|0)==2){c[h>>2]=1;b=c[j>>2]|0;if(b>>>0<(c[k>>2]|0)>>>0){c[b>>2]=1;b=(c[j>>2]|0)+4|0;c[j>>2]=b}else{n=0;da(212,o|0,h|0);d=n;n=0;if(d&1){m=18;break a}b=c[j>>2]|0}c[i>>2]=1;if(b>>>0>=(c[k>>2]|0)>>>0){n=0;da(212,o|0,i|0);d=n;n=0;if(d&1){m=18;break a}else break}else{c[b>>2]=1;c[j>>2]=(c[j>>2]|0)+4;break}}else{d=c[j>>2]|0;if((d|0)==(c[k>>2]|0)){n=0;da(1451,o|0,g|0);d=n;n=0;if(d&1){m=18;break a}else break}else{c[d>>2]=b;c[j>>2]=(c[j>>2]|0)+4;break}}while(0);e=e+4|0}if((m|0)==18){p=sa()|0;P()|0;Vob(o);Ea(p|0)}bma(o,l);b=a+4|0;if((c[b>>2]|0)!=2){Vob(o);yb=p;return}c[b>>2]=1;Vob(o);yb=p;return}function Ds(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;m=yb;yb=yb+32|0;f=m;k=a+4|0;j=c[k>>2]|0;g=c[a>>2]|0;if((j|0)!=(g|0)){l=j;l=l+-4|0;b=c[b>>2]|0;c[l>>2]=b;l=c[k>>2]|0;l=l+-4|0;c[k>>2]=l;yb=m;return}l=a+8|0;h=c[l>>2]|0;d=a+12|0;n=c[d>>2]|0;e=n;i=h;if(h>>>0>=n>>>0){n=e-g|0;n=(n|0)==0?1:n>>1;aS(f,n,(n+3|0)>>>2,c[a+16>>2]|0);Xqa(f,c[k>>2]|0,c[l>>2]|0);n=c[a>>2]|0;c[a>>2]=c[f>>2];c[f>>2]=n;n=f+4|0;j=c[k>>2]|0;c[k>>2]=c[n>>2];c[n>>2]=j;n=f+8|0;j=c[l>>2]|0;c[l>>2]=c[n>>2];c[n>>2]=j;n=f+12|0;l=c[d>>2]|0;c[d>>2]=c[n>>2];c[n>>2]=l;Mwa(f);n=c[k>>2]|0;n=n+-4|0;l=c[b>>2]|0;c[n>>2]=l;n=c[k>>2]|0;n=n+-4|0;c[k>>2]=n;yb=m;return}f=((e-i>>2)+1|0)/2|0;e=h+(f<<2)|0;a=i-j|0;if(!a){d=e;a=e}else{d=e+(0-(a>>2)<<2)|0;Pxa(d|0,j|0,a|0)|0;a=(c[l>>2]|0)+(f<<2)|0}c[k>>2]=d;c[l>>2]=a;n=d;n=n+-4|0;l=c[b>>2]|0;c[n>>2]=l;n=c[k>>2]|0;n=n+-4|0;c[k>>2]=n;yb=m;return}function Es(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,o=0;o=yb;yb=yb+48|0;h=o+32|0;m=o+24|0;i=o+8|0;j=o;k=a+4|0;d=c[k>>2]|0;if(d>>>0>=b>>>0){c[k>>2]=b;yb=o;return}e=c[a+8>>2]|0;f=e<<5;l=b-d|0;do if(f>>>0>>0|d>>>0>(f-l|0)>>>0){c[i>>2]=0;g=i+4|0;c[g>>2]=0;c[i+8>>2]=0;d=ZBb()|0;if(d>>>0>>0){n=0;ba(7);n=0;o=sa()|0;P()|0;ilb(i);Ea(o|0)}if(f>>>0>>1>>>0){d=e<<6;f=b+31&-32;d=d>>>0>>0?f:d}n=0;da(556,i|0,d|0);f=n;n=0;if(f&1){o=sa()|0;P()|0;ilb(i);Ea(o|0)}else{d=c[k>>2]|0;c[g>>2]=d+l;b=c[a>>2]|0;c[h>>2]=c[i>>2];c[h+4>>2]=0;Ow(j,b,0,b+(d>>>5<<2)|0,d&31,h);d=j;b=c[d>>2]|0;d=c[d+4>>2]|0;bma(a,i);ilb(i);break}}else{j=(c[a>>2]|0)+(d>>>5<<2)|0;c[k>>2]=b;b=j;d=d&31}while(0);if(!l){yb=o;return}c[m>>2]=b;c[m+4>>2]=d;b_(m,l);yb=o;return}function Fs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=yb;yb=yb+32|0;h=g+12|0;i=g;f=kH(a)|0;e=alb(f,46)|0;if(!e){e=oa(20)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;i=Zzb(125426)|0;n=0;ea(95,h|0,125426,i|0);i=n;n=0;if(!(i&1)){n=0;fa(134,e|0,h|0,c[a+28>>2]|0,c[a+32>>2]|0);i=n;n=0;if(i&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(h);if(!d){i=b;Ea(i|0)}}else{b=sa()|0;P()|0}va(e|0);i=b;Ea(i|0)}h=y2(f)|0;b=e+b|0;b=d?b+7|0:b;if(b>>>0<=(f+h|0)>>>0){yb=g;return b|0}e=oa(20)|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=Zzb(125455)|0;n=0;ea(95,i|0,125455,h|0);h=n;n=0;if(!(h&1)){n=0;fa(134,e|0,i|0,c[a+28>>2]|0,c[a+32>>2]|0);h=n;n=0;if(h&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(i);if(!d){i=b;Ea(i|0)}}else{b=sa()|0;P()|0}va(e|0);i=b;Ea(i|0);return 0}function Gs(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;m=yb;yb=yb+16|0;k=m+8|0;g=m;q3(e,WCb(c[d+4>>2]|0)|0);nrb(k,d);Hib(g,d);d=k+4|0;f=c[g>>2]|0;g=c[g+4>>2]|0;i=e+4|0;j=e+8|0;while(1){if(!(dhb(c[k>>2]|0,c[d>>2]|0,f,g)|0))break;h=Qab(k)|0;tw(a,b,c[h>>2]|0);if(lsb(a)|0){l=9;break}h=c[i>>2]|0;if((h|0)==(c[j>>2]|0))dE(e,a);else{c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[i>>2]=(c[i>>2]|0)+24}hob(k)}if((l|0)==9){yb=m;return}c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;zsb(a);yb=m;return}function Hs(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;n=yb;yb=yb+32|0;h=n+16|0;d=n+12|0;l=n+8|0;m=n+4|0;j=n;e=a+44|0;k=b+24|0;if(!(LF(c[e>>2]|0,k)|0)){yb=n;return}if((c[b+4>>2]|0)==6){yb=n;return}f=a+32|0;i=c[f>>2]|0;WCb(i)|0;if(!(cub(c[b+24>>2]|0,c[i+8>>2]|0)|0)){yb=n;return}i=a+36|0;Gsb(d,WCb(c[i>>2]|0)|0);g=vJa(c[d>>2]|0,b)|0;Pwb(c[a+16>>2]|0,g);d=c[e>>2]|0;b=c[f>>2]|0;WCb(b)|0;b=b+8|0;if(!(LF(d+20|0,b)|0))ma(84056,83997,162,116827);f=$l(d+20|0,b)|0;e=uXa(g+12|0,0)|0;c[l>>2]=e;b=WCb(c[i>>2]|0)|0;c[j>>2]=c[k>>2];c[h>>2]=c[j>>2];b=wQ(b,h)|0;c[m>>2]=b;d=f+4|0;a=c[d>>2]|0;if(a>>>0<(c[f+8>>2]|0)>>>0){Fmb(a,e,b);c[d>>2]=(c[d>>2]|0)+8;yb=n;return}else{WG(f,l,m);yb=n;return}}function Is(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 1:{IW(a+16|0,3776,b);break}case 2:{a=a+16|0;IW(a,3777,b);e=(Tfb(d)|0)+16|0;if(c[e>>2]|0){IW(a,3775,(Tfb(d)|0)+16|0);IW(a,3778,b)}IW(a,3775,(Tfb(d)|0)+12|0);IW(a,3779,b);IW(a,3775,(Tfb(d)|0)+8|0);return}case 3:{IW(a+16|0,3780,b);break}case 4:{IW(a+16|0,3781,b);break}case 5:{IW(a+16|0,3782,b);break}case 19:{IW(a+16|0,3783,b);break}case 22:{IW(a+16|0,3783,b);break}default:{}}W6(a,b);if((c[d>>2]|0)!=3)return;IW(a+16|0,3784,b);return}function Js(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0.0,i=0,j=0,k=0;k=yb;yb=yb+5024|0;d=k+2516|0;i=k;e=_ob(WCb(c[a+32>>2]|0)|0)|0;if(e>>>0<2){Ij(a,b);yb=k;return}e=J(e,e+-1|0)|0;Kya(d,a);Ov(i,d,e>>>0<20?e:20);e=i+4|0;d=c[c[e>>2]>>2]|0;WCb(d)|0;f=+Ylb(+h[d+16>>3]);while(1){n=0;ca(515,i|0);d=n;n=0;if(d&1){j=10;break}d=c[c[e>>2]>>2]|0;WCb(d)|0;g=+Ylb(+h[d+16>>3]);if(g==f)break;f=g}if((j|0)==10){k=sa()|0;P()|0;mEa(i);Ea(k|0)}n=0;ea(127,a|0,d|0,b|0);j=n;n=0;if(j&1){k=sa()|0;P()|0;mEa(i);Ea(k|0)}else{mEa(i);yb=k;return}}function Ks(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 1:{IW(a+16|0,1094,b);break}case 2:{a=a+16|0;IW(a,1095,b);e=(Tfb(d)|0)+16|0;if(c[e>>2]|0){IW(a,1093,(Tfb(d)|0)+16|0);IW(a,1096,b)}IW(a,1093,(Tfb(d)|0)+12|0);IW(a,1097,b);IW(a,1093,(Tfb(d)|0)+8|0);return}case 3:{IW(a+16|0,1098,b);break}case 4:{IW(a+16|0,1099,b);break}case 5:{IW(a+16|0,1100,b);break}case 19:{IW(a+16|0,1101,b);break}case 22:{IW(a+16|0,1101,b);break}default:{}}n7(a,b);if((c[d>>2]|0)!=3)return;IW(a+16|0,1102,b);return}function Ls(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i+8|0;g=i+4|0;h=i;c[f>>2]=b;if(!(adb(c[a+116>>2]|0,c[b+8>>2]|0)|0)){yb=i;return a|0}if(Ejb(a)|0){yb=i;return a|0}if(!(vub(c[(c[b+12>>2]|0)+4>>2]|0)|0))ma(77944,77745,402,77978);d=a+108|0;e=c[d>>2]|0;if((e|0)==(c[a+112>>2]|0))_M(a+104|0,f);else{c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4}b=c[a+136>>2]|0;d=a+64|0;c[g>>2]=c[f>>2];e=sm(d,g)|0;c[e>>2]=b;e=c[f>>2]|0;g=sm(d,e+12|0)|0;c[g>>2]=e;g=cj(a,c[(c[f>>2]|0)+12>>2]|0)|0;c[h>>2]=g;e=om(a+24|0,f)|0;c[e>>2]=g;c[(c[a+140>>2]|0)+(c[(c[f>>2]|0)+8>>2]<<2)>>2]=g;if(oC(a+84|0,h)|0){yb=i;return a|0}g=c[f>>2]|0;h=nm(a+84|0,h)|0;c[h>>2]=g;yb=i;return a|0}function Ms(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;switch(e|0){case 5:{e=jfb(c[b+4>>2]|0)|0;c[e+8>>2]=0;f=Ax(b,16)|0;a[e+16>>0]=f;break}case 6:{e=jfb(c[b+4>>2]|0)|0;c[e+8>>2]=1;f=Ax(b,16)|0;a[e+16>>0]=f;break}case 9:{e=jfb(c[b+4>>2]|0)|0;c[e+8>>2]=2;f=Ax(b,8)|0;a[e+16>>0]=f;break}case 10:{e=jfb(c[b+4>>2]|0)|0;c[e+8>>2]=3;f=Ax(b,8)|0;a[e+16>>0]=f;break}case 13:{e=jfb(c[b+4>>2]|0)|0;c[e+8>>2]=4;f=Ax(b,4)|0;a[e+16>>0]=f;break}case 16:{e=jfb(c[b+4>>2]|0)|0;c[e+8>>2]=5;f=Ax(b,2)|0;a[e+16>>0]=f;break}case 19:{e=jfb(c[b+4>>2]|0)|0;c[e+8>>2]=6;f=Ax(b,4)|0;a[e+16>>0]=f;break}case 22:{e=jfb(c[b+4>>2]|0)|0;c[e+8>>2]=7;f=Ax(b,2)|0;a[e+16>>0]=f;break}default:{f=0;return f|0}}f=rl(b)|0;c[e+12>>2]=f;k7(e);c[d>>2]=e;f=1;return f|0}function Ns(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;m=yb;yb=yb+32|0;f=m;k=a+4|0;j=c[k>>2]|0;g=c[a>>2]|0;if((j|0)!=(g|0)){l=j;l=l+-4|0;b=c[b>>2]|0;c[l>>2]=b;l=c[k>>2]|0;l=l+-4|0;c[k>>2]=l;yb=m;return}l=a+8|0;h=c[l>>2]|0;d=a+12|0;n=c[d>>2]|0;e=n;i=h;if(h>>>0>=n>>>0){n=e-g|0;n=(n|0)==0?1:n>>1;aS(f,n,(n+3|0)>>>2,a+12|0);Xqa(f,c[k>>2]|0,c[l>>2]|0);n=c[a>>2]|0;c[a>>2]=c[f>>2];c[f>>2]=n;n=f+4|0;j=c[k>>2]|0;c[k>>2]=c[n>>2];c[n>>2]=j;n=f+8|0;j=c[l>>2]|0;c[l>>2]=c[n>>2];c[n>>2]=j;n=f+12|0;l=c[d>>2]|0;c[d>>2]=c[n>>2];c[n>>2]=l;Mwa(f);n=c[k>>2]|0;n=n+-4|0;l=c[b>>2]|0;c[n>>2]=l;n=c[k>>2]|0;n=n+-4|0;c[k>>2]=n;yb=m;return}f=((e-i>>2)+1|0)/2|0;e=h+(f<<2)|0;a=i-j|0;if(!a){d=e;a=e}else{d=e+(0-(a>>2)<<2)|0;Pxa(d|0,j|0,a|0)|0;a=(c[l>>2]|0)+(f<<2)|0}c[k>>2]=d;c[l>>2]=a;n=d;n=n+-4|0;l=c[b>>2]|0;c[n>>2]=l;n=c[k>>2]|0;n=n+-4|0;c[k>>2]=n;yb=m;return}function Os(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;o=c[f>>2]|0;p=(o|0)==(e|0);do if(p){m=(a[l+24>>0]|0)==b<<24>>24;if(!m?(a[l+25>>0]|0)!=b<<24>>24:0){n=5;break}c[f>>2]=e+1;a[e>>0]=m?43:45;c[g>>2]=0;m=0}else n=5;while(0);a:do if((n|0)==5){n=a[i+11>>0]|0;if(b<<24>>24==h<<24>>24?((n<<24>>24<0?c[i+4>>2]|0:n&255)|0)!=0:0){m=c[k>>2]|0;if((m-j|0)>=160){m=0;break}f=c[g>>2]|0;c[k>>2]=m+4;c[m>>2]=f;c[g>>2]=0;m=0;break}i=l+26|0;h=0;while(1){m=l+h|0;if((h|0)==26){m=i;break}if((a[m>>0]|0)==b<<24>>24)break;else h=h+1|0}m=m-l|0;if((m|0)>23)m=-1;else{switch(d|0){case 10:case 8:{if((m|0)>=(d|0)){m=-1;break a}break}case 16:{if((m|0)>=22){if(p){m=-1;break a}if((o-e|0)>=3){m=-1;break a}if((a[o+-1>>0]|0)!=48){m=-1;break a}c[g>>2]=0;m=a[31216+m>>0]|0;c[f>>2]=o+1;a[o>>0]=m;m=0;break a}break}default:{}}m=a[31216+m>>0]|0;c[f>>2]=o+1;a[o>>0]=m;c[g>>2]=(c[g>>2]|0)+1;m=0}}while(0);return m|0}function Ps(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;o=c[f>>2]|0;p=(o|0)==(e|0);do if(p){m=(c[l+96>>2]|0)==(b|0);if(!m?(c[l+100>>2]|0)!=(b|0):0){n=5;break}c[f>>2]=e+1;a[e>>0]=m?43:45;c[g>>2]=0;m=0}else n=5;while(0);a:do if((n|0)==5){n=a[i+11>>0]|0;if((b|0)==(h|0)?((n<<24>>24<0?c[i+4>>2]|0:n&255)|0)!=0:0){m=c[k>>2]|0;if((m-j|0)>=160){m=0;break}f=c[g>>2]|0;c[k>>2]=m+4;c[m>>2]=f;c[g>>2]=0;m=0;break}i=l+104|0;h=0;while(1){m=l+(h<<2)|0;if((h|0)==26){m=i;break}if((c[m>>2]|0)==(b|0))break;else h=h+1|0}m=m-l|0;h=m>>2;if((m|0)>92)m=-1;else{switch(d|0){case 10:case 8:{if((h|0)>=(d|0)){m=-1;break a}break}case 16:{if((m|0)>=88){if(p){m=-1;break a}if((o-e|0)>=3){m=-1;break a}if((a[o+-1>>0]|0)!=48){m=-1;break a}c[g>>2]=0;m=a[31216+h>>0]|0;c[f>>2]=o+1;a[o>>0]=m;m=0;break a}break}default:{}}m=a[31216+h>>0]|0;c[f>>2]=o+1;a[o>>0]=m;c[g>>2]=(c[g>>2]|0)+1;m=0}}while(0);return m|0}function Qs(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;n=b+11|0;e=a[n>>0]|0;f=e<<24>>24<0;if(f){m=c[b+4>>2]|0;j=m>>>0<11?m:11;e=(c[b+8>>2]&2147483647)+-1|0}else{m=e&255;j=m>>>0<11?m:11;e=10}if((j-m+e|0)>>>0>>0)BE(b,e,d-j+m-e|0,m,0,j,d,141348);else{if(f)l=c[b>>2]|0;else l=b;do if((j|0)!=(d|0)){i=m-j|0;if(!i){f=j;h=0;g=141348;e=d;k=17}else{if(j>>>0>d>>>0){Shb(l,141348,d)|0;Shb(l+d|0,l+j|0,i)|0;f=j;e=d;break}do if(l>>>0<141348>>>0&(l+m|0)>>>0>141348>>>0)if((l+j|0)>>>0>141348>>>0){Shb(l,141348,j)|0;f=0;h=j;g=141348+d|0;e=d-j|0;break}else{f=j;h=0;g=141348+(d-j)|0;e=d;break}else{f=j;h=0;g=141348;e=d}while(0);k=l+h|0;Shb(k+e|0,k+f|0,i)|0;k=17}}else{f=d;h=0;g=141348;e=d;k=17}while(0);if((k|0)==17)Shb(l+h|0,g,e)|0;e=e-f+m|0;if((a[n>>0]|0)<0)c[b+4>>2]=e;else a[n>>0]=e;Fsb(l+e|0,0)}return}function Rs(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 1:{IW(a+16|0,567,b);break}case 2:{a=a+16|0;IW(a,568,b);e=(Tfb(d)|0)+16|0;if(c[e>>2]|0){IW(a,566,(Tfb(d)|0)+16|0);IW(a,569,b)}IW(a,566,(Tfb(d)|0)+12|0);IW(a,570,b);IW(a,566,(Tfb(d)|0)+8|0);return}case 3:{IW(a+16|0,571,b);break}case 4:{IW(a+16|0,572,b);break}case 5:{IW(a+16|0,573,b);break}case 19:{IW(a+16|0,574,b);break}case 22:{IW(a+16|0,574,b);break}default:{}}V6(a,b);if((c[d>>2]|0)!=3)return;IW(a+16|0,575,b);return}function Ss(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;m=yb;yb=yb+16|0;h=m+8|0;j=m;k=Icb(b)|0;eva(a+36|0,k);l=a+36|0;e=c[l>>2]|0;d=(c[a+40>>2]|0)-e>>2;while(1){if((d|0)<=0)break;i=e;c[i>>2]=0;d=d+-1|0;e=i+4|0}eva(a+48|0,k);e=c[a+48>>2]|0;d=(c[a+52>>2]|0)-e>>2;while(1){if((d|0)<=0)break;i=e;c[i>>2]=0;d=d+-1|0;e=i+4|0}Es(a+24|0,k);i=a+24|0;f=c[i>>2]|0;e=uob(b)|0;g=f;if((e|0)>-1)d=e>>>5;else d=(e+-31|0)/32|0;d=(g+(d<<2)-f<<3)+(e&31)|0;if(!d)d=f;else{c[h>>2]=f;c[h+4>>2]=0;b_(h,d);g=c[i>>2]|0;d=g}e=uob(b)|0;if((e|0)>-1)d=d+(e>>>5<<2)|0;else d=d+(((e+-31|0)/32|0)<<2)|0;f=e&31;e=c[a+28>>2]|0;e=(g+(e>>>5<<2)-d<<3)+(e&31)-f|0;if(e|0){c[j>>2]=d;c[j+4>>2]=f;J_(j,e)}aQ(a,b+44|0);d=0;while(1){if((d|0)==(k|0))break;if(!(c[(c[l>>2]|0)+(d<<2)>>2]|0)){j=(c[i>>2]|0)+(d>>>5<<2)|0;c[j>>2]=c[j>>2]&~(1<<(d&31))}d=d+1|0}yb=m;return}function Ts(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;do switch(d|0){case 84:{d=lgb(c[a+4>>2]|0)|0;c[d+8>>2]=0;break}case 85:{d=lgb(c[a+4>>2]|0)|0;c[d+8>>2]=1;break}case 86:{d=lgb(c[a+4>>2]|0)|0;c[d+8>>2]=2;break}case 101:{d=lgb(c[a+4>>2]|0)|0;c[d+8>>2]=3;break}case 102:{d=lgb(c[a+4>>2]|0)|0;c[d+8>>2]=4;break}case 103:{d=lgb(c[a+4>>2]|0)|0;c[d+8>>2]=5;break}case 118:{d=lgb(c[a+4>>2]|0)|0;c[d+8>>2]=6;break}case 119:{d=lgb(c[a+4>>2]|0)|0;c[d+8>>2]=7;break}case 120:{d=lgb(c[a+4>>2]|0)|0;c[d+8>>2]=8;break}case 135:{d=lgb(c[a+4>>2]|0)|0;c[d+8>>2]=9;break}case 136:{d=lgb(c[a+4>>2]|0)|0;c[d+8>>2]=10;break}case 137:{d=lgb(c[a+4>>2]|0)|0;c[d+8>>2]=11;break}default:{b=0;return b|0}}while(0);e=rl(a)|0;c[d+16>>2]=e;a=rl(a)|0;c[d+12>>2]=a;Wna(d);c[b>>2]=d;b=1;return b|0}function Us(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;f=(b|0)==0;do if(!f){if(b>>>0<=1073741823){e=mla(b<<2)|0;break}d=oa(8)|0;n=0;da(67,d|0,138616);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(d|0);Ea(b|0)}else{c[d>>2]=50788;za(d|0,39592,473)}}else e=0;while(0);d=c[a>>2]|0;c[a>>2]=e;if(d|0)RCb(d);c[a+4>>2]=b;if(f)return;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}e=a+8|0;f=c[e>>2]|0;if(!f)return;d=c[f+4>>2]|0;l=b+-1|0;m=(l&b|0)==0;if(!m){if(d>>>0>=b>>>0)d=(d>>>0)%(b>>>0)|0}else d=d&l;c[(c[a>>2]|0)+(d<<2)>>2]=e;e=d;k=f;while(1){d=c[k>>2]|0;if(!d)break;f=c[d+4>>2]|0;if(!m){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&l;do if((f|0)!=(e|0)){g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0)){c[g>>2]=k;e=f;break}h=d+8|0;g=d;while(1){i=c[g>>2]|0;j=i;if(!i)break;if((c[h>>2]|0)!=(c[i+8>>2]|0))break;g=i}c[k>>2]=j;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d;d=k}while(0);k=d}return}function Vs(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+32|0;h=t+16|0;m=t;pT(h,a,c[b+12>>2]|0);n=0;ea(145,m|0,a|0,1);s=n;n=0;if(s&1){t=sa()|0;P()|0;lNa(h);Ea(t|0)}c[b+4>>2]=1;s=a+44|0;d=c[s>>2]|0;n=0;e=S(280,m|0)|0;u=n;n=0;if((((((((!(u&1)?(n=0,f=V(70,c[d>>2]|0,e|0,b|0)|0,u=n,n=0,!(u&1)):0)?(g=c[s>>2]|0,i=(c[b+8>>2]|0)+1|0,n=0,j=S(280,h|0)|0,u=n,n=0,!(u&1)):0)?(n=0,k=V(71,c[g>>2]|0,j|0,1)|0,u=n,n=0,!(u&1)):0)?(n=0,l=V(70,c[g>>2]|0,i|0,k|0)|0,u=n,n=0,!(u&1)):0)?(o=c[s>>2]|0,n=0,p=S(280,m|0)|0,u=n,n=0,!(u&1)):0)?(n=0,q=V(71,c[o>>2]|0,p|0,1)|0,u=n,n=0,!(u&1)):0)?(n=0,r=W(20,c[s>>2]|0,f|0,l|0,q|0)|0,u=n,n=0,!(u&1)):0)?(Pwb(c[a+16>>2]|0,r),n=0,ea(147,a|0,r|0,h|0),u=n,n=0,!(u&1)):0){lNa(m);lNa(h);yb=t;return}u=sa()|0;P()|0;lNa(m);lNa(h);Ea(u|0)}function Ws(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,k=0,l=0;l=c;k=0;e=b;a:while(1){if(!(k>>>0>>0&e>>>0>>0))break;j=a[e>>0]|0;i=j&255;do if(j<<24>>24<=-1){if((j&255)<194)break a;if((j&255)<224){if((l-e|0)<2)break a;if((a[e+1>>0]&-64)<<24>>24!=-128)break a;e=e+2|0;break}if((j&255)<240){if((l-e|0)<3)break a;f=a[e+1>>0]|0;g=a[e+2>>0]|0;switch(j<<24>>24){case -32:{if(!((f&-32)<<24>>24==-96&(g&-64)<<24>>24==-128))break a;break}case -19:{if(!((f&-32)<<24>>24==-128&(g&-64)<<24>>24==-128))break a;break}default:if(!((f&-64)<<24>>24==-128&(g&-64)<<24>>24==-128))break a}e=e+3|0;break}if((j&255)>=245)break a;if((l-e|0)<4)break a;f=a[e+1>>0]|0;g=a[e+2>>0]|0;h=a[e+3>>0]|0;switch(j<<24>>24){case -16:{if(!((f+112&255)<48&(g&-64)<<24>>24==-128&(h&-64)<<24>>24==-128))break a;break}case -12:{if(!((f&-16)<<24>>24==-128&(g&-64)<<24>>24==-128&(h&-64)<<24>>24==-128))break a;break}default:if(!((f&-64)<<24>>24==-128&(g&-64)<<24>>24==-128&(h&-64)<<24>>24==-128))break a}if(((f&48)<<12|i<<18&1835008)>>>0>1114111)break a;else e=e+4|0}else e=e+1|0;while(0);k=k+1|0}return e-b|0}function Xs(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;m=Gxa(d)|0;n=c[b+4>>2]|0;if(!n){p=0;return p|0}o=n+-1|0;p=(n&o|0)==0;if(!p)if(m>>>0>>0)l=m;else l=(m>>>0)%(n>>>0)|0;else l=m&o;b=c[(c[b>>2]|0)+(l<<2)>>2]|0;if(!b){p=0;return p|0}j=a[d+11>>0]|0;h=j<<24>>24<0;i=c[d+4>>2]|0;j=j&255;k=c[d>>2]|0;a:while(1){b=c[b>>2]|0;if(!b){b=0;e=26;break}e=c[b+4>>2]|0;b:do if((e|0)==(m|0)){f=b+8|0;e=a[f+11>>0]|0;g=e<<24>>24<0;if(g)e=c[b+12>>2]|0;else e=e&255;if((e|0)==((h?i:j)|0)){if(g)if(!(qdb(c[f>>2]|0,h?k:d,e)|0)){e=26;break a}else break;g=h?k:d;while(1){if(!e){e=26;break a}if((a[f>>0]|0)!=(a[g>>0]|0))break b;g=g+1|0;f=f+1|0;e=e+-1|0}}}else{if(!p){if(e>>>0>=n>>>0)e=(e>>>0)%(n>>>0)|0}else e=e&o;if((e|0)!=(l|0)){b=0;e=26;break a}}while(0)}if((e|0)==26)return b|0;return 0}function Ys(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;k=yb;yb=yb+64|0;e=k+48|0;i=k+8|0;j=k;f=a+64|0;d=c[f>>2]|0;g=c[d+28>>2]|0;d=c[d+24>>2]|0;while(1){if((d|0)==(g|0))break;b=c[d>>2]|0;if(bCb(c[b+40>>2]|0)|0){eE(e,b);n=0;b=U(136,e|0,c[f>>2]|0)|0;l=n;n=0;if(l&1){h=6;break}c[(c[d>>2]|0)+40>>2]=c[b>>2];Chb(e)}d=d+4|0}if((h|0)==6){l=sa()|0;P()|0;Chb(e);Ea(l|0)}bo(i,c[f>>2]|0);HG(a+12|0,i);HG(a+32|0,i+20|0);n=0;da(4012,j|0,c[f>>2]|0);l=n;n=0;if(l&1){l=sa()|0;P()|0;i0a(i);Ea(l|0)}l=a+156|0;h=c[j>>2]|0;c[j>>2]=0;b=c[l>>2]|0;c[l>>2]=h;if(!b){c[j>>2]=0;i0a(i);yb=k;return}hib(b);RCb(b);c[j>>2]=0;i0a(i);yb=k;return}function Zs(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;m=yb;yb=yb+16|0;k=m+8|0;h=m;l=b+33|0;if(a[l>>0]&1)BM(IWa(150620,113409)|0);f=b+28|0;tI(c[f>>2]|0,2)|0;f=c[f>>2]|0;e=c[d+4>>2]|0;zz(f,baa((e|0)==6?0:e)|0);e=d+8|0;f=b+60|0;g=c[f>>2]|0;if((g|0)==(c[b+64>>2]|0))_M(b+56|0,e);else{c[g>>2]=c[e>>2];c[f>>2]=(c[f>>2]|0)+4}i=d+12|0;nrb(k,i);Hib(h,i);i=k+4|0;j=c[h>>2]|0;f=c[h+4>>2]|0;g=d;e=0;while(1){if(!(dhb(c[k>>2]|0,c[i>>2]|0,j,f)|0))break;h=Qab(k)|0;h=c[h>>2]|0;if(a[l>>0]&1){Ym(IWa(Ym(IWa(150620,113424)|0,g)|0,113427)|0,e)|0;BM(150620);e=e+1|0}T_a(b,h);hob(k)}ZY(b,d);yb=m;return}function _s(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+16|0;f=g;SEa(c[b>>2]|0,40)|0;Fmb(f,c[b+28>>2]|0,c[b>>2]|0);Ik(f,d);_Va(b);sV(b,c[d+8>>2]|0);f=b+20|0;e=c[d+12>>2]|0;if((((a[f>>0]&1)==0?OBb(c[e>>2]|0)|0:0)?(h=(Rqb(e)|0)+8|0,bCb(c[h>>2]|0)|0):0)?(h=(Rqb(e)|0)+16|0,(WCb(c[h>>2]|0)|0)==1):0){h=cWa((Rqb(e)|0)+12|0)|0;sV(b,c[h>>2]|0)}else sV(b,e);d=c[d+16>>2]|0;do if(d|0){if((((a[f>>0]&1)==0?OBb(c[d>>2]|0)|0:0)?(h=(Rqb(d)|0)+8|0,bCb(c[h>>2]|0)|0):0)?(h=(Rqb(d)|0)+16|0,(WCb(c[h>>2]|0)|0)==1):0){h=cWa((Rqb(d)|0)+12|0)|0;sV(b,c[h>>2]|0);break}sV(b,d)}while(0);y9(b);if(!(a[f>>0]&1)){yb=g;return}IWa(c[b>>2]|0,98336)|0;yb=g;return}function $s(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0;c[a>>2]=b+12;c[a+4>>2]=d;c[a+8>>2]=e;c[a+12>>2]=f;i=a+16|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;g[a+32>>2]=1.0;h=(WCb(c[b+16>>2]|0)|0)+-1|0;b=-1;d=0;a:while(1){f=(b|0)==-1;while(1){if(d>>>0>=h>>>0){f=14;break a}e=c[a>>2]|0;if(f){n=0;e=U(74,e|0,d|0)|0;j=n;n=0;if(j&1){f=15;break a}n=0;e=U(113,a|0,c[e>>2]|0)|0;j=n;n=0;if(j&1){f=15;break a}if(e|0){f=8;break}}else{n=0;e=U(74,e|0,d|0)|0;j=n;n=0;if(j&1){f=15;break a}if(sla(c[e>>2]|0)|0){f=12;break}}d=d+1|0}if((f|0)==8){e=d;d=d+1|0}else if((f|0)==12){n=0;d=V(69,a|0,b|0,d|0)|0;j=n;n=0;if(j&1){f=16;break}else e=-1}b=e}if((f|0)==14)return;else if((f|0)==15){j=sa()|0;P()|0;Oua(i);Ea(j|0)}else if((f|0)==16){j=sa()|0;P()|0;Oua(i);Ea(j|0)}}function at(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=yb;yb=yb+96|0;j=u+64|0;q=u+48|0;e=u+24|0;m=u;if((c[d+4>>2]|0)!=2){yb=u;return}iG(q,b,1);t=b+44|0;i=c[t>>2]|0;h=d+8|0;n=0;d=S(281,h|0)|0;P()|0;g=n;n=0;if(!(g&1)){Bqb(e,d);n=0;g=j;d=e;f=g+24|0;do{a[g>>0]=a[d>>0]|0;g=g+1|0;d=d+1|0}while((g|0)<(f|0));e=U(120,i|0,j|0)|0;i=n;n=0;if((!(i&1)?(o=c[t>>2]|0,n=0,p=S(280,q|0)|0,i=n,n=0,!(i&1)):0)?(k=c[t>>2]|0,n=0,S(281,h|0)|0,l=P()|0,i=n,n=0,!(i&1)):0){Bqb(m,l);n=0;g=j;d=m;f=g+24|0;do{a[g>>0]=a[d>>0]|0;g=g+1|0;d=d+1|0}while((g|0)<(f|0));d=U(120,k|0,j|0)|0;m=n;n=0;if(((!(m&1)?(n=0,r=V(70,c[o>>2]|0,p|0,d|0)|0,p=n,n=0,!(p&1)):0)?(n=0,s=V(55,c[t>>2]|0,r|0,e|0)|0,t=n,n=0,!(t&1)):0)?(n=0,ea(147,b|0,s|0,q|0),t=n,n=0,!(t&1)):0){Pwb(c[b+16>>2]|0,s);lNa(q);yb=u;return}}}u=sa()|0;P()|0;lNa(q);Ea(u|0)}function bt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0;q=yb;yb=yb+32|0;h=q+24|0;k=q+12|0;l=q+8|0;m=q+4|0;o=q;if(c[b+32>>2]|0){yb=q;return}gy(k,b);i=k+4|0;j=a+36|0;d=c[k>>2]|0;a:while(1){if((i|0)==(d|0))break;c[m>>2]=c[d+16>>2];n=0;c[h>>2]=c[m>>2];e=U(169,a|0,h|0)|0;g=n;n=0;if(g&1){p=21;break}g=Rqb(e)|0;c[l>>2]=g;do if(g|0){n=0;e=U(170,j|0,l|0)|0;g=n;n=0;if(g&1){p=21;break a}c[o>>2]=b;f=e+4|0;g=c[f>>2]|0;if(g>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(372,e|0,o|0);g=n;n=0;if(g&1){p=21;break a}else break}else{c[g>>2]=b;c[f>>2]=(c[f>>2]|0)+4;break}}while(0);e=d;d=c[e+4>>2]|0;b:do if(!d)while(1){d=c[e+8>>2]|0;if((e|0)==(c[d>>2]|0))break b;e=d}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0)}if((p|0)==21){q=sa()|0;P()|0;Khb(k);Ea(q|0)}Khb(k);yb=q;return}function ct(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+48|0;d=i+36|0;f=i+32|0;g=i+12|0;h=i;gQa(c[a>>2]|0,c[a+4>>2]|0)|0;c[a+28>>2]=b;c[a+32>>2]=0;c[a+36>>2]=0;c[a+40>>2]=0;SEa(c[a>>2]|0,40)|0;p9(a,b);e=c[b+40>>2]|0;if(eCb(e)|0){g=c[a+24>>2]|0;c[f>>2]=e;c[d>>2]=c[f>>2];Bt(a,sQ(g,d)|0,b+8|0);g=c[a>>2]|0;SEa(g,41)|0;g=c[a>>2]|0;h=a+16|0;h=c[h>>2]|0;IWa(g,h)|0;yb=i;return}eE(h,b);n=0;da(2315,g|0,h|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}Chb(h);n=0;ea(162,a|0,g|0,b+8|0);h=n;n=0;if(h&1){i=sa()|0;P()|0;Xrb(g);Ea(i|0)}else{Xrb(g);g=c[a>>2]|0;SEa(g,41)|0;g=c[a>>2]|0;h=a+16|0;h=c[h>>2]|0;IWa(g,h)|0;yb=i;return}}function dt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;h=j+4|0;i=j;if(a[b+33>>0]&1)BM(IWa(150620,113360)|0);f=c[d+8>>2]|0;g=(c[f+4>>2]|0)==6;yIa(b,f);if(g){AQ(b);yb=j;return}e=CU(c[b+36>>2]|0,3,d)|0;c[h>>2]=e;f=b+4|0;g=c[f>>2]|0;if(g>>>0<(c[b+8>>2]|0)>>>0){c[g>>2]=e;c[f>>2]=(c[f>>2]|0)+4}else _M(b,h);Ftb(i,c[37121]|0);e=b+60|0;f=c[e>>2]|0;if(f>>>0<(c[b+64>>2]|0)>>>0){c[f>>2]=c[i>>2];c[e>>2]=(c[e>>2]|0)+4}else _M(b+56|0,i);Fv(b,c[d+12>>2]|0);if(c[d+16>>2]|0)Fw(b,d);xF(b,d);yb=j;return}function et(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=c[b+4>>2]|0;if(!f){e=b+4|0;c[d>>2]=e;return e|0}l=Dtb(b)|0;n=a[e+11>>0]|0;p=n<<24>>24<0;m=c[e+4>>2]|0;n=n&255;o=c[e>>2]|0;while(1){b=f+16|0;j=a[b+11>>0]|0;k=j<<24>>24<0;if(k){i=c[f+20>>2]|0;g=c[b>>2]|0}else{i=j&255;g=b}h=p?m:n;g=qdb(p?o:e,g,i>>>0>>0?i:h)|0;if(!g)if(h>>>0>>0)h=9;else h=11;else if((g|0)<0)h=9;else h=11;if((h|0)==9){b=c[f>>2]|0;if(!b){h=10;break}}else if((h|0)==11){h=p?m:n;if(k){g=c[f+20>>2]|0;b=c[b>>2]|0}else g=j&255;b=qdb(b,p?o:e,h>>>0>>0?h:g)|0;if(!b){if(g>>>0>=h>>>0){h=19;break}}else if((b|0)>=0){h=19;break}g=f+4|0;b=c[g>>2]|0;if(!b){h=18;break}else f=g}l=f;f=b}if((h|0)==10){c[d>>2]=f;e=f;return e|0}else if((h|0)==18){c[d>>2]=f;e=g;return e|0}else if((h|0)==19){c[d>>2]=f;e=l;return e|0}return 0}function ft(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;j=yb;yb=yb+32|0;e=j+20|0;l=j+16|0;h=j+12|0;k=j;i=kgb(c[b+4>>2]|0)|0;f=rA(b,Vr(d,1)|0)|0;c[i+8>>2]=f;g=c[b>>2]|0;c[l>>2]=f;c[e>>2]=c[l>>2];if(!(EEa(g,e)|0)){k=Vr(d,2)|0;k=$db(b,k)|0;l=i+12|0;c[l>>2]=k;mjb(i);yb=j;return i|0}c[h>>2]=f;c[e>>2]=c[h>>2];l=(EEa(g,e)|0)+20|0;if(a[l>>0]&1){k=Vr(d,2)|0;k=$db(b,k)|0;l=i+12|0;c[l>>2]=k;mjb(i);yb=j;return i|0}b=oa(20)|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;l=Zzb(125483)|0;n=0;ea(95,k|0,125483,l|0);l=n;n=0;if(!(l&1)){n=0;fa(134,b|0,k|0,c[d+28>>2]|0,c[d+32>>2]|0);l=n;n=0;if(l&1)f=1;else{n=0;ea(122,b|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(k);if(!f){l=e;Ea(l|0)}}else{e=sa()|0;P()|0}va(b|0);l=e;Ea(l|0);return 0}function gt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=d+8|0;d=CGa(b+40|0,c[h>>2]|0)|0;if(!d)return;g=d+4|0;f=-1;d=c[d>>2]|0;while(1){if((g|0)==(d|0))break;e=c[d+16>>2]|0;if((f|0)!=-1?(i=una(b,c[h>>2]|0,e)|0,i>>>0<=(una(b,c[h>>2]|0,f)|0)>>>0):0)e=f;f=c[d+4>>2]|0;a:do if(!f)while(1){f=c[d+8>>2]|0;if((d|0)==(c[f>>2]|0)){d=f;break a}d=f}else{d=f;while(1){f=c[d>>2]|0;if(!f)break;d=f}}while(0);f=e}if((f|0)==-1)ma(104066,104084,821,104123);d=c[h>>2]|0;if((f|0)==(d|0))return;g=una(b,d,f)|0;i=c[h>>2]|0;if(g>>>0<=(una(b,i,i)|0)>>>0)return;d=b+24|0;e=(c[c[d>>2]>>2]|0)+(f<<2)|0;c[e>>2]=(c[e>>2]|0)+1;d=(c[c[d>>2]>>2]|0)+(c[h>>2]<<2)|0;e=c[d>>2]|0;if(!e)ma(104137,104084,828,104123);c[d>>2]=e+-1;c[h>>2]=f;a[b+36>>0]=1;return}function ht(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;j=yb;yb=yb+16|0;d=j+8|0;f=j+4|0;g=j;h=c[b>>2]|0;e=c[h>>2]|0;i=h;if(!(eCb(e)|0)){cqb();n=0;ca(491,135141);k=n;n=0;if(k&1){sa()|0;P()|0;iSa()}else iSa()}c[f>>2]=e;c[d>>2]=c[f>>2];if(!(rDa(a,d)|0)){d=a+4|0;e=c[d>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=0;c[e>>2]=i;c[d>>2]=(c[d>>2]|0)+4;k=a+176|0;k=G7(k,h)|0;c[k>>2]=h;yb=j;return h|0}else{SF(a,b);k=a+176|0;k=G7(k,h)|0;c[k>>2]=h;yb=j;return h|0}}cqb();n=0;ca(491,135177);k=n;n=0;if(k&1){sa()|0;P()|0;iSa()}c[g>>2]=c[c[b>>2]>>2];n=0;c[d>>2]=c[g>>2];ca(498,d|0);k=n;n=0;if(k&1){sa()|0;P()|0;iSa()}n=0;ca(491,135203);k=n;n=0;if(k&1){sa()|0;P()|0;iSa()}else iSa();return 0}function it(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;j=yb;yb=yb+32|0;f=j+16|0;g=j+4|0;h=j;e=c[b>>2]|0;if(!(vub(c[e+4>>2]|0)|0)){i=0;yb=j;return i|0}i=a+44|0;d=c[i>>2]|0;if((d|0)==(c[a+48>>2]|0)){d=a+40|0;_M(d,b)}else{c[d>>2]=e;c[i>>2]=(c[i>>2]|0)+4;d=a+40|0}h$(f,d);e=WCb(c[a+32>>2]|0)|0;n=0;e=U(76,f|0,e|0)|0;k=n;n=0;a:do if(!(k&1)){do if(!e){n=0;da(173,g|0,d|0);k=n;n=0;if(k&1)break a;n=0;d=S(230,g|0)|0;k=n;n=0;if(k&1){k=sa()|0;P()|0;Vob(g);Vob(f);Ea(k|0)}else{Vob(g);Vob(f);if(d){d=0;break}Gsb(h,WCb(c[a+36>>2]|0)|0);d=Q6a(c[h>>2]|0,c[b>>2]|0)|0;c[b>>2]=d;d=1;break}}else{Vob(f);d=0}while(0);c[i>>2]=(c[i>>2]|0)+-4;k=d;yb=j;return k|0}while(0);k=sa()|0;P()|0;Vob(f);Ea(k|0);return 0}function jt(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 1:{IW(a,386,b);break}case 2:{IW(a,387,b);e=(Tfb(d)|0)+16|0;if(c[e>>2]|0){IW(a,385,(Tfb(d)|0)+16|0);IW(a,388,b)}IW(a,385,(Tfb(d)|0)+12|0);IW(a,389,b);IW(a,385,(Tfb(d)|0)+8|0);return}case 3:{IW(a,390,b);break}case 4:{IW(a,391,b);break}case 5:{IW(a,392,b);break}case 19:{IW(a,393,b);break}case 22:{IW(a,393,b);break}default:{}}M6(a,b);if((c[d>>2]|0)!=3)return;IW(a,394,b);return}function kt(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=yb;yb=yb+16|0;i=j;a=ab(80068)|0;if(!a){IWa(150620,80085)|0;Ta()}Zsb(i,a);f=IWa(150620,80125)|0;h=c[i>>2]|0;IWa(mpa(f,h)|0,127446)|0;f=c[d+28>>2]|0;g=d+152|0;a=0;e=c[d+24>>2]|0;while(1){if((e|0)==(f|0))break;b=c[e>>2]|0;if(cub(c[b+8>>2]|0,h)|0){c[b+32>>2]=c[b+28>>2];b=yfb(g)|0;c[(c[e>>2]|0)+44>>2]=b}else a=1;e=e+4|0}if(!a){IWa(150620,80137)|0;Ta()}b=c[d+108>>2]|0;e=d+112|0;a=c[e>>2]|0;while(1){if((a|0)==(b|0))break;h=a+-16|0;Nrb(h);a=h}c[e>>2]=b;b=c[d+72>>2]|0;e=d+76|0;a=c[e>>2]|0;while(1){if((a|0)==(b|0))break;h=a+-16|0;Nrb(h);a=h}c[e>>2]=b;e=c[d+12>>2]|0;f=d+16|0;a=c[f>>2]|0;while(1){if((a|0)==(e|0))break;a=a+-4|0;b=c[a>>2]|0;c[a>>2]=0;if(b|0)RCb(b)}c[f>>2]=e;h=mla(12)|0;Ysb(h);i=c[i>>2]|0;c[h>>2]=i;c[h+4>>2]=i;c[h+8>>2]=0;uq(d,h);yb=j;return}function lt(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;p=yb;yb=yb+32|0;f=e;l=d;h=b;n=p;j=c[a>>2]|0;o=h-j>>2;k=f-l|0;m=k>>2;if((k|0)<=0){d=b;yb=p;return d|0}i=c[a+8>>2]|0;g=c[a+4>>2]|0;k=g;if((m|0)>(i-g>>2|0)){h=(g-j>>2)+m|0;f=YBb()|0;if(h>>>0>f>>>0)Apa();g=i-j|0;if(g>>2>>>0>>1>>>0){f=g>>1;f=f>>>0>>0?h:f}aS(n,f,o,a+8|0);Xqa(n,d,e);d=RM(a,n,b)|0;Mwa(n);yb=p;return d|0}g=g-h>>2;if((m|0)>(g|0)){f=d+(g<<2)|0;Mma(a,f,e)}else g=m;if((g|0)<=0){d=b;yb=p;return d|0}v9(a,b,k,b+(m<<2)|0);f=f-l|0;if(!f){d=b;yb=p;return d|0}Pxa(b|0,d|0,f|0)|0;d=b;yb=p;return d|0}function mt(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=yb;yb=yb+32|0;i=p+20|0;d=p+16|0;l=p+12|0;m=p+8|0;n=p+4|0;o=p;e=b+64|0;if(!(a[(c[e>>2]|0)+56>>0]&1)){yb=p;return}if(a[b+72>>0]&1)BM(IWa(150620,113627)|0);j=E3(b,9)|0;k=b+68|0;f=c[k>>2]|0;h=c[e>>2]|0;Pwb(d,(c[h+76>>2]|0)-(c[h+72>>2]|0)>>4);YA(f,c[d>>2]|0)|0;e=c[e>>2]|0;f=c[e+76>>2]|0;e=c[e+72>>2]|0;while(1){if((e|0)==(f|0))break;d=c[k>>2]|0;Pwb(l,0);YA(d,c[l>>2]|0)|0;uma(b,c[e>>2]|0);tI(c[k>>2]|0,11)|0;d=c[k>>2]|0;g=e+8|0;Pwb(m,(c[g>>2]|0)-(c[e+4>>2]|0)>>2);YA(d,c[m>>2]|0)|0;g=c[g>>2]|0;d=c[e+4>>2]|0;while(1){h=d;if((g|0)==(h|0))break;q=c[k>>2]|0;c[o>>2]=c[d>>2];c[i>>2]=c[o>>2];Pwb(n,rda(b,i)|0);YA(q,c[n>>2]|0)|0;d=h+4|0}e=e+16|0}gF(b,j);yb=p;return}function nt(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+32|0;d=h+16|0;f=h+4|0;g=h;if(a[b+12>>0]&1)BM(IWa(150620,118079)|0);switch(IF(b)|0){case 1:break;case 0:{yb=h;return}default:e=4}do if((e|0)==4){c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;D8(d,118093,Zzb(118093)|0);n=0;da(4022,b|0,d|0);e=n;n=0;if(!(e&1)){Chb(d);break}h=sa()|0;P()|0;Chb(d);Ea(h|0)}while(0);d=(c[b>>2]|0)+92|0;do if(a[d>>0]&1){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,118118,Zzb(118118)|0);n=0;da(4022,b|0,f|0);e=n;n=0;if(!(e&1)){Chb(f);d=(c[b>>2]|0)+92|0;break}h=sa()|0;P()|0;Chb(f);Ea(h|0)}while(0);a[d>>0]=1;f=c[b>>2]|0;j6a(g,-1,0);oD(b,f+100|0,f+104|0,f+120|0,c[g>>2]|0);yb=h;return}function ot(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+112|0;i=j+88|0;g=j+56|0;h=j+24|0;f=j;tw(g,d,c[e+12>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=j;return}tw(h,d,c[e+16>>2]|0);if(lsb(h)|0){c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];c[b+28>>2]=c[h+28>>2];yb=j;return}else{Bqb(f,0);e=i;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,i);yb=j;return}}function pt(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;m=yb;yb=yb+32|0;e=m;l=a+8|0;i=c[l>>2]|0;f=a+12|0;g=c[f>>2]|0;if((i|0)!=(g|0)){k=i;b=c[b>>2]|0;c[k>>2]=b;k=c[l>>2]|0;k=k+4|0;c[l>>2]=k;yb=m;return}k=a+4|0;j=c[k>>2]|0;n=c[a>>2]|0;d=n;h=j;if(j>>>0<=n>>>0){n=g-d|0;n=(n|0)==0?1:n>>1;aS(e,n,n>>>2,c[a+16>>2]|0);Xqa(e,c[k>>2]|0,c[l>>2]|0);n=c[a>>2]|0;c[a>>2]=c[e>>2];c[e>>2]=n;n=e+4|0;j=c[k>>2]|0;c[k>>2]=c[n>>2];c[n>>2]=j;n=e+8|0;k=c[l>>2]|0;c[l>>2]=c[n>>2];c[n>>2]=k;n=e+12|0;k=c[f>>2]|0;c[f>>2]=c[n>>2];c[n>>2]=k;Mwa(e);n=c[l>>2]|0;k=c[b>>2]|0;c[n>>2]=k;n=c[l>>2]|0;n=n+4|0;c[l>>2]=n;yb=m;return}a=((h-d>>2)+1|0)/-2|0;e=j+(a<<2)|0;d=i-h|0;if(!d)a=e;else{Pxa(e|0,j|0,d|0)|0;a=(c[k>>2]|0)+(a<<2)|0}n=e+(d>>2<<2)|0;c[l>>2]=n;c[k>>2]=a;k=c[b>>2]|0;c[n>>2]=k;n=c[l>>2]|0;n=n+4|0;c[l>>2]=n;yb=m;return}function qt(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;j=yb;yb=yb+32|0;d=j+16|0;g=j+8|0;f=j;h=a+136|0;i=c[h>>2]|0;c[d>>2]=b;d=sm(a+64|0,d)|0;c[d>>2]=i;c[h>>2]=b;d=b+12|0;nrb(g,d);Hib(f,d);d=g+4|0;e=c[f>>2]|0;f=c[f+4>>2]|0;while(1){if(!(dhb(c[g>>2]|0,c[d>>2]|0,e,f)|0))break;k=Qab(g)|0;cj(a,c[k>>2]|0)|0;hob(g)}if(!(eCb(c[b+8>>2]|0)|0)){c[h>>2]=i;yb=j;return a|0}e=NF(a+152|0,b+8|0)|0;if(!e){c[h>>2]=i;yb=j;return a|0}f=e+12|0;d=a+140|0;do if(!(Ejb(a)|0)){b=e+16|0;g=c[b>>2]|0;if((g|0)==(c[e+20>>2]|0)){sC(f,d);break}else{Y_(g,d);c[b>>2]=(c[b>>2]|0)+12;break}}while(0);Jt(a,f,d);c[h>>2]=i;yb=j;return a|0}function rt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+64|0;e=g+24|0;f=g;nz(e,b,c[d+8>>2]|0);if(lsb(e)|0){c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];c[a+28>>2]=c[e+28>>2];yb=g;return}if(!(Peb(e)|0)){d=c[d+16>>2]|0;if(!d){c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;zsb(a);yb=g;return}else{nz(a,b,d);yb=g;return}}nz(a,b,c[d+12>>2]|0);if(lsb(a)|0){yb=g;return}if(c[d+16>>2]|0){yb=g;return}egb(f);c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];c[a+16>>2]=c[f+16>>2];yb=g;return}function st(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;p=yb;yb=yb+16|0;j=p+4|0;n=p;o=mla(120)|0;mT(o);c[o+8>>2]=c[a>>2];c[o+12>>2]=d;c[o+44>>2]=0;f=c[b+4>>2]|0;g=o+20|0;h=o+24|0;i=o+16|0;k=o+60|0;l=o+64|0;m=o+52|0;a=c[b>>2]|0;while(1){if((a|0)==(f|0))break;d=a+4|0;b=c[g>>2]|0;if((b|0)==(c[h>>2]|0))_M(i,d);else{c[b>>2]=c[d>>2];c[g>>2]=(c[g>>2]|0)+4}d=c[k>>2]|0;c[j>>2]=d;b=G7(l,a)|0;c[b>>2]=d;b=u7(m,j)|0;c[b>>2]=c[a>>2];a=a+8|0}f=c[e+4>>2]|0;g=o+32|0;h=o+36|0;i=o+28|0;a=c[e>>2]|0;while(1){if((a|0)==(f|0))break;d=a+4|0;b=c[g>>2]|0;if((b|0)==(c[h>>2]|0))_M(i,d);else{c[b>>2]=c[d>>2];c[g>>2]=(c[g>>2]|0)+4}j=c[k>>2]|0;c[n>>2]=j;e=G7(l,a)|0;c[e>>2]=j;e=u7(m,n)|0;c[e>>2]=c[a>>2];a=a+8|0}yb=p;return o|0}function tt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,o=0;iob(b);l=b+12|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;g[b+28>>2]=1.0;m=b+32|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;g[b+48>>2]=1.0;o=b+52|0;c[o>>2]=0;c[b+56>>2]=0;c[b+60>>2]=0;c[b+64>>2]=d;c[b+68>>2]=e;a[b+72>>0]=f&1;a[b+73>>0]=1;d=b+76|0;k=b+80|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=0;while(1){if((d|0)==3)break;c[k+(d<<2)>>2]=0;d=d+1|0}j=b+92|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0}d=b+104|0;G0a(d);e=b+128|0;c[e>>2]=0;c[b+132>>2]=0;c[b+136>>2]=0;f=b+156|0;c[f>>2]=0;n=0;ca(508,b|0);i=n;n=0;if(!(i&1))return;h=sa()|0;P()|0;i=c[f>>2]|0;c[f>>2]=0;if(i|0){hib(i);RCb(i)}Vob(e);ETa(d);Chb(j);Chb(k);Vob(o);Pdb(m);Pdb(l);Htb(b);Ea(h|0)}function ut(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;i=j+8|0;h=j+4|0;f=j;g=b+12|0;switch(WCb(c[b+16>>2]|0)|0){case 1:{d=b+8|0;if(!(eCb(c[d>>2]|0)|0)){yb=j;return}f=uXa(g,0)|0;f=Rqb(c[f>>2]|0)|0;if(!f){yb=j;return}e=c[f+8>>2]|0;if(!(eCb(e)|0)){yb=j;return}d=c[d>>2]|0;if(!(cub(e,d)|0)){yb=j;return}if((c[f+4>>2]|0)!=(c[b+4>>2]|0)){yb=j;return}c[h>>2]=d;c[i>>2]=c[h>>2];hu(a,f,i);yb=j;return}case 2:{e=uXa(g,0)|0;e=Rqb(c[e>>2]|0)|0;d=uXa(g,1)|0;d=Qqb(c[d>>2]|0)|0;if(!e){yb=j;return}if((d|0)==0|(eCb(c[e+8>>2]|0)|0)^1){yb=j;return}if(!(aeb(d)|0)){yb=j;return}c[f>>2]=c[d+8>>2];c[i>>2]=c[f>>2];hu(a,e,i);yb=j;return}default:{yb=j;return}}}function vt(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+192|0;e=h;d=b+92|0;g=e+104|0;c[e>>2]=37660;c[g>>2]=37680;Hoa(e+104|0,e+4|0);c[e+176>>2]=0;c[e+180>>2]=-1;c[e>>2]=46188;c[g>>2]=46208;g=e+4|0;n=0;ca(547,g|0);i=n;n=0;if(i&1){i=sa()|0;P()|0;h=e+104|0;ktb(h);Ea(i|0)}if((a[d+11>>0]|0)<0)d=c[d>>2]|0;if((pB(g,d,16)|0)==0?(i=e+(c[(c[e>>2]|0)+-12>>2]|0)|0,n=0,da(85,i|0,c[i+16>>2]|4|0),i=n,n=0,i&1):0){i=sa()|0;P()|0;FO(g);h=e+104|0;ktb(h);Ea(i|0)}d=b+64|0;n=0;ea(185,c[d>>2]|0,e|0,b|0);i=n;n=0;if((!(i&1)?(n=0,ea(186,c[d>>2]|0,e|0,b|0),i=n,n=0,!(i&1)):0)?(n=0,f=S(296,g|0)|0,i=n,n=0,!(i&1)):0){if(f|0){u9a(e);yb=h;return}i=e+(c[(c[e>>2]|0)+-12>>2]|0)|0;n=0;da(85,i|0,c[i+16>>2]|4|0);i=n;n=0;if(!(i&1)){u9a(e);yb=h;return}}i=sa()|0;P()|0;u9a(e);Ea(i|0)}function wt(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;m=yb;yb=yb+32|0;e=m;l=a+8|0;i=c[l>>2]|0;f=a+12|0;g=c[f>>2]|0;if((i|0)!=(g|0)){k=i;b=c[b>>2]|0;c[k>>2]=b;k=c[l>>2]|0;k=k+4|0;c[l>>2]=k;yb=m;return}k=a+4|0;j=c[k>>2]|0;n=c[a>>2]|0;d=n;h=j;if(j>>>0<=n>>>0){n=g-d|0;n=(n|0)==0?1:n>>1;aS(e,n,n>>>2,a+12|0);Xqa(e,c[k>>2]|0,c[l>>2]|0);n=c[a>>2]|0;c[a>>2]=c[e>>2];c[e>>2]=n;n=e+4|0;j=c[k>>2]|0;c[k>>2]=c[n>>2];c[n>>2]=j;n=e+8|0;k=c[l>>2]|0;c[l>>2]=c[n>>2];c[n>>2]=k;n=e+12|0;k=c[f>>2]|0;c[f>>2]=c[n>>2];c[n>>2]=k;Mwa(e);n=c[l>>2]|0;k=c[b>>2]|0;c[n>>2]=k;n=c[l>>2]|0;n=n+4|0;c[l>>2]=n;yb=m;return}a=((h-d>>2)+1|0)/-2|0;e=j+(a<<2)|0;d=i-h|0;if(!d)a=e;else{Pxa(e|0,j|0,d|0)|0;a=(c[k>>2]|0)+(a<<2)|0}n=e+(d>>2<<2)|0;c[l>>2]=n;c[k>>2]=a;k=c[b>>2]|0;c[n>>2]=k;n=c[l>>2]|0;n=n+4|0;c[l>>2]=n;yb=m;return}function xt(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;m=yb;yb=yb+32|0;e=m+28|0;f=m+24|0;g=m+20|0;h=m+16|0;i=m+12|0;j=m+8|0;k=m+4|0;l=m;T_a(b,c[d+12>>2]|0);b=b+28|0;tI(c[b>>2]|0,-3)|0;switch(c[d+8>>2]|0){case 0:{l=c[b>>2]|0;Pwb(e,5);YA(l,c[e>>2]|0)|0;break}case 1:{l=c[b>>2]|0;Pwb(f,6);YA(l,c[f>>2]|0)|0;break}case 2:{l=c[b>>2]|0;Pwb(g,9);YA(l,c[g>>2]|0)|0;break}case 3:{l=c[b>>2]|0;Pwb(h,10);YA(l,c[h>>2]|0)|0;break}case 4:{l=c[b>>2]|0;Pwb(i,13);YA(l,c[i>>2]|0)|0;break}case 5:{l=c[b>>2]|0;Pwb(j,16);YA(l,c[j>>2]|0)|0;break}case 6:{l=c[b>>2]|0;Pwb(k,19);YA(l,c[k>>2]|0)|0;break}case 7:{k=c[b>>2]|0;Pwb(l,22);YA(k,c[l>>2]|0)|0;break}default:{}}Hmb(c[b>>2]|0,a[d+16>>0]|0);yb=m;return}function yt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=yb;yb=yb+272|0;h=e+252|0;f=e;if(c[37104]|0)IWa(150452,66487)|0;d=mla(224)|0;n=0;ca(502,d|0);i=n;n=0;if(i&1){i=sa()|0;P()|0;RCb(d);Ea(i|0)}iob(h);n=0;da(219,h|0,b|0);i=n;n=0;if(!(i&1)){if(b|0)Pxa(c[h>>2]|0,a|0,b|0)|0;yx(f,d,h);n=0;ca(509,f|0);i=n;n=0;if(!(i&1)){TE(f);Vob(h);yb=e;return d|0}a=ta(31856)|0;i=P()|0;TE(f);if((i|0)==(db(31856)|0)){i=pa(a|0)|0;n=0;ca(504,i|0);i=n;n=0;if(!(i&1)?(n=0,ba(3),i=n,n=0,!(i&1)):0){n=0;ca(491,67476);i=n;n=0;if(i&1){sa()|0;P()|0;iSa()}else iSa()}a=sa()|0;P()|0;n=0;ba(5);i=n;n=0;if(i&1){i=ta(0)|0;P()|0;yub(i)}else g=a}else g=a}else{g=sa()|0;P()|0}Vob(h);i=g;Ea(i|0);return 0}function zt(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;m=yb;yb=yb+16|0;i=m+12|0;h=m+8|0;j=m+4|0;k=m;l=fbb(a+152|0)|0;if(c[37104]|0){IWa(150452,56221)|0;IWa(150452,56617)|0;g=0;while(1){if((g|0)==(e|0))break;if(g|0)IWa(150452,140151)|0;o=IWa(150452,55712)|0;n=O8(148192,d+(g<<2)|0)|0;IWa(Ym(o,c[n>>2]|0)|0,139976)|0;g=g+1|0}if(!e)IWa(150452,133516)|0;IWa(150452,56483)|0;Pwb(h,f);Eg(l,b,e,c[h>>2]|0);IWa(150452,56345)|0}c[l+28>>2]=b;b=l+8|0;g=0;while(1){if((g|0)==(e|0))break;Wla(b,c[d+(g<<2)>>2]|0);g=g+1|0}Zsb(j,f);o=c[j>>2]|0;c[l+24>>2]=o;c[k>>2]=o;c[i>>2]=c[k>>2];o=(sQ(a,i)|0)+4|0;c[l+4>>2]=c[o>>2];q5a(l);yb=m;return l|0}function At(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;o=yb;yb=yb+64|0;n=o+40|0;g=o+32|0;k=o+28|0;l=o+24|0;e=o;m=b+44|0;if(!(c[m>>2]|0)){w_a(g,d);j=b+44|0;i=c[g>>2]|0;c[g>>2]=0;f=c[j>>2]|0;c[j>>2]=i;if(f|0)RCb(f);c[g>>2]=0}g=d+36|0;h=(c[d+40>>2]|0)-(c[g>>2]|0)>>2;f=0;while(1){if((f|0)==(h|0))break;i=(c[g>>2]|0)+(f<<2)|0;j=(c[i>>2]|0)+12|0;if((c[j>>2]|0)==2){c[j>>2]=1;j=cR(c[i>>2]|0,d)|0;c[k>>2]=c[(c[i>>2]|0)+8>>2];c[n>>2]=c[k>>2];i=Sx(n)|0;c[j+8>>2]=i;pq(d,j)}f=f+1|0}i=mla(24)|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;Zmb(i);c[i+12>>2]=1;Ftb(l,c[37179]|0);c[i+8>>2]=c[l>>2];g=c[m>>2]|0;Bqb(e,0);h=n;f=h+24|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(f|0));n=D7(g,n)|0;c[i+16>>2]=n;a[i+20>>0]=1;pq(d,i);oA(b+16|0,d);yb=o;return}function Bt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;IWa(c[a>>2]|0,98627)|0;if(d|0){f=SEa(c[a>>2]|0,32)|0;mpa(f,c[d>>2]|0)|0}d=b+12|0;if((c[d>>2]|0)!=(c[b+8>>2]|0)){IWa(c[a>>2]|0,c[a+12>>2]|0)|0;SEa(c[a>>2]|0,40)|0;Obb(c[a>>2]|0,134274)|0;e=c[d>>2]|0;d=c[b+8>>2]|0;while(1){f=c[a>>2]|0;if((d|0)==(e|0))break;f=SEa(f,32)|0;IWa(f,ala(c[d>>2]|0)|0)|0;d=d+4|0}SEa(f,41)|0}d=b+4|0;if(!(c[d>>2]|0)){a=c[a>>2]|0;IWa(a,139927)|0;return}IWa(c[a>>2]|0,c[a+12>>2]|0)|0;SEa(c[a>>2]|0,40)|0;b=Obb(c[a>>2]|0,98079)|0;SEa(IWa(b,ala(c[d>>2]|0)|0)|0,41)|0;a=c[a>>2]|0;IWa(a,139927)|0;return}function Ct(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;f=i+12|0;g=i;e=b+12|0;if(a[e>>0]&1)BM(IWa(150620,115214)|0);h=b+188|0;d=c[h>>2]|0;do if((c[b+184>>2]|0)==(d|0)){if(a[b+196>>0]&1){if(a[e>>0]&1)BM(IWa(150620,115231)|0);h=yfb(c[b+4>>2]|0)|0;yb=i;return h|0}f5(g,c[b+36>>2]|0);n=0;U(77,g|0,115277)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(g);Ea(i|0)}c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];d=0;while(1){if((d|0)==3)break;c[g+(d<<2)>>2]=0;d=d+1|0}n=0;da(4022,b|0,f|0);b=n;n=0;if(!(b&1)){Chb(f);Chb(g);d=c[h>>2]|0;break}i=sa()|0;P()|0;Chb(f);Chb(g);Ea(i|0)}while(0);f=d+-4|0;g=c[f>>2]|0;c[h>>2]=f;h=g;yb=i;return h|0}function Dt(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;switch(b|0){case 43:{i=18;j=18;break}case 45:{i=20;j=18;break}case 47:{i=22;j=22;break}case 49:{i=24;j=22;break}default:Ta()}a=a+44|0;l=c[a>>2]|0;k=Mcb(f)|0;k=T3a(c[l>>2]|0,k,1)|0;m=c[a>>2]|0;b=Mcb(h)|0;b=T3a(c[m>>2]|0,b,1)|0;b=hIa(c[l>>2]|0,j,k,b)|0;k=c[a>>2]|0;j=Mcb(f)|0;j=T3a(c[k>>2]|0,j,1)|0;l=c[a>>2]|0;f=Mcb(h)|0;f=T3a(c[l>>2]|0,f,1)|0;f=hIa(c[k>>2]|0,15,j,f)|0;j=c[a>>2]|0;e=Mcb(e)|0;e=T3a(c[j>>2]|0,e,1)|0;k=c[a>>2]|0;h=Mcb(g)|0;h=T3a(c[k>>2]|0,h,1)|0;h=hIa(c[j>>2]|0,i,e,h)|0;g=c[a>>2]|0;h=hIa(c[g>>2]|0,7,f,h)|0;return Uha(g,d,hIa(c[g>>2]|0,8,b,h)|0)|0}function Et(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;p=yb;yb=yb+32|0;f=e;l=d;h=b;n=p;j=c[a>>2]|0;o=h-j>>2;k=f-l|0;m=k>>2;if((k|0)<=0){d=b;yb=p;return d|0}i=c[a+8>>2]|0;g=c[a+4>>2]|0;k=g;if((m|0)>(i-g>>2|0)){h=(g-j>>2)+m|0;f=YBb()|0;if(h>>>0>f>>>0)Apa();g=i-j|0;if(g>>2>>>0>>1>>>0){f=g>>1;f=f>>>0>>0?h:f}aS(n,f,o,a+8|0);Xqa(n,d,e);d=RM(a,n,b)|0;Mwa(n);yb=p;return d|0}g=g-h>>2;if((m|0)>(g|0)){f=d+(g<<2)|0;ssa(a,f,e)}else g=m;if((g|0)<=0){d=b;yb=p;return d|0}v9(a,b,k,b+(m<<2)|0);f=f-l|0;if(!f){d=b;yb=p;return d|0}Pxa(b|0,d|0,f|0)|0;d=b;yb=p;return d|0}function Ft(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;l=yb;yb=yb+32|0;k=l+12|0;j=l;a:do if((((((d-b|0)>2?(a[b>>0]|0)==100:0)?(a[b+1>>0]|0)==115:0)?(m=b+2|0,f=ac(m,d,e)|0,(f|0)!=(m|0)):0)?(h=ac(f,d,e)|0,(h|0)!=(f|0)):0)?(i=e+4|0,g=c[i>>2]|0,((g-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){d6(k,g+-24|0);d=c[i>>2]|0;b=0;while(1){if((b|0)==-1)break;m=b+-1|0;J2a(d+(m*24|0)|0);b=m}c[i>>2]=d+-24;n=0;ea(218,j|0,140220,k|0);m=n;n=0;do if(!(m&1)){m=a[j+11>>0]|0;g=m<<24>>24<0;n=0;V(124,(c[i>>2]|0)+-24|0,(g?c[j>>2]|0:j)|0,(g?c[j+4>>2]|0:m&255)|0)|0;m=n;n=0;if(m&1){b=sa()|0;P()|0;Chb(j);break}else{Chb(j);Chb(k);b=h;break a}}else{b=sa()|0;P()|0}while(0);Chb(k);Ea(b|0)}while(0);yb=l;return b|0}function Gt(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;l=yb;yb=yb+32|0;k=l+12|0;j=l;a:do if((((((d-b|0)>2?(a[b>>0]|0)==100:0)?(a[b+1>>0]|0)==116:0)?(m=b+2|0,f=ac(m,d,e)|0,(f|0)!=(m|0)):0)?(h=Rc(f,d,e)|0,(h|0)!=(f|0)):0)?(i=e+4|0,g=c[i>>2]|0,((g-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){d6(k,g+-24|0);d=c[i>>2]|0;b=0;while(1){if((b|0)==-1)break;m=b+-1|0;J2a(d+(m*24|0)|0);b=m}c[i>>2]=d+-24;n=0;ea(218,j|0,140218,k|0);m=n;n=0;do if(!(m&1)){m=a[j+11>>0]|0;g=m<<24>>24<0;n=0;V(124,(c[i>>2]|0)+-24|0,(g?c[j>>2]|0:j)|0,(g?c[j+4>>2]|0:m&255)|0)|0;m=n;n=0;if(m&1){b=sa()|0;P()|0;Chb(j);break}else{Chb(j);Chb(k);b=h;break a}}else{b=sa()|0;P()|0}while(0);Chb(k);Ea(b|0)}while(0);yb=l;return b|0}function Ht(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;k=yb;yb=yb+48|0;e=k+40|0;f=k+28|0;g=k+24|0;h=k;c[a>>2]=b;i=a+4|0;yib(i);j=a+20|0;c[j>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;hCb(a+32|0);c[a+36>>2]=d;n=0;ea(c[(c[d>>2]|0)+4>>2]|0,d|0,i|0,b|0);l=n;n=0;if((!(l&1)?(c[a+32>>2]=c[b+100>>2],n=0,da(223,b|0,a|0),l=n,n=0,!(l&1)):0)?(l=WCb(a)|0,n=0,ea(c[c[d>>2]>>2]|0,d|0,b|0,l|0),l=n,n=0,!(l&1)):0){b=c[b+124>>2]|0;if(!(eCb(b)|0)){yb=k;return}c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[g>>2]=b;n=0;c[e>>2]=c[g>>2];fa(88,h|0,a|0,e|0,f|0);l=n;n=0;if(l&1){l=sa()|0;P()|0;Vob(f);Vob(j);fXa(i);Ea(l|0)}else{Vob(f);yb=k;return}}l=sa()|0;P()|0;Vob(j);fXa(i);Ea(l|0)}function It(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;m=Gxa(d)|0;n=c[b+4>>2]|0;if(!n){p=0;return p|0}o=n+-1|0;p=(n&o|0)==0;if(!p)if(m>>>0>>0)l=m;else l=(m>>>0)%(n>>>0)|0;else l=m&o;b=c[(c[b>>2]|0)+(l<<2)>>2]|0;if(!b){p=0;return p|0}j=a[d+11>>0]|0;h=j<<24>>24<0;i=c[d+4>>2]|0;j=j&255;k=c[d>>2]|0;a:while(1){b=c[b>>2]|0;if(!b){b=0;e=26;break}e=c[b+4>>2]|0;b:do if((m|0)==(e|0)){f=b+8|0;e=a[f+11>>0]|0;g=e<<24>>24<0;if(g)e=c[b+12>>2]|0;else e=e&255;if((e|0)==((h?i:j)|0)){if(g)if(!(qdb(c[f>>2]|0,h?k:d,e)|0)){e=26;break a}else break;g=h?k:d;while(1){if(!e){e=26;break a}if((a[f>>0]|0)!=(a[g>>0]|0))break b;g=g+1|0;f=f+1|0;e=e+-1|0}}}else{if(!p){if(e>>>0>=n>>>0)e=(e>>>0)%(n>>>0)|0}else e=e&o;if((e|0)!=(l|0)){b=0;e=26;break a}}while(0)}if((e|0)==26)return b|0;return 0}function Jt(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;l=yb;yb=yb+32|0;j=l+16|0;k=l+4|0;g=l;c[k>>2]=0;h=k+4|0;c[h>>2]=0;i=k+8|0;c[i>>2]=0;f=c[b+4>>2]|0;b=c[b>>2]|0;while(1){if((b|0)==(f|0)){b=12;break}c[g>>2]=a;e=c[h>>2]|0;if(e>>>0>=(c[i>>2]|0)>>>0){n=0;ea(137,k|0,b|0,g|0);e=n;n=0;if(e&1){b=10;break}}else{n=0;da(1e3,j|0,b|0);m=n;n=0;if(m&1){b=10;break}n=0;ea(135,e|0,j|0,a|0);m=n;n=0;if(m&1){b=6;break}Vob(j);c[h>>2]=(c[h>>2]|0)+16}b=b+12|0}if((b|0)==6){m=sa()|0;P()|0;Vob(j);kdb(k);Ea(m|0)}else if((b|0)==10){m=sa()|0;P()|0;kdb(k);Ea(m|0)}else if((b|0)==12){n=0;ea(136,a|0,k|0,d|0);m=n;n=0;if(!(m&1)){kdb(k);yb=l;return}m=sa()|0;P()|0;kdb(k);Ea(m|0)}}function Kt(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;i=yb;yb=yb+32|0;l=i+16|0;m=i+12|0;j=i;h=keb(c[b+4>>2]|0)|0;c[h+4>>2]=f;k=h+8|0;a[k>>0]=g;hCb(l);j6a(m,d[k>>0]|0,0);f=kh(e,h+12|0,l,c[m>>2]|0)|0;g=WCb(c[l>>2]|0)|0;if((g|0)==(d[k>>0]|0|0)){m=$db(b,Vr(e,f)|0)|0;c[h+16>>2]=m;m=$db(b,Vr(e,f+1|0)|0)|0;c[h+20>>2]=m;m=$db(b,Vr(e,f+2|0)|0)|0;c[h+24>>2]=m;sSa(h);yb=i;return h|0}b=oa(20)|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;m=Zzb(125332)|0;n=0;ea(95,j|0,125332,m|0);m=n;n=0;if(!(m&1)){n=0;da(330,b|0,j|0);m=n;n=0;if(m&1)g=1;else{n=0;ea(122,b|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(j);if(!g){m=f;Ea(m|0)}}else{f=sa()|0;P()|0}va(b|0);m=f;Ea(m|0);return 0}function Lt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0.0;f=c[b>>2]|0;j=c[a>>2]|0;l=+h[f+16>>3];i=j+16|0;k=yea(l,+h[i>>3])|0;e=c[d>>2]|0;g=yea(+h[e+16>>3],l)|0;if(!k){if(!g){k=0;return k|0}c[b>>2]=e;c[d>>2]=f;e=c[b>>2]|0;f=c[a>>2]|0;if(!(yea(+h[e+16>>3],+h[f+16>>3])|0)){k=1;return k|0}c[a>>2]=e;c[b>>2]=f;k=2;return k|0}if(g){c[a>>2]=e;c[d>>2]=j;k=1;return k|0}c[a>>2]=f;c[b>>2]=j;e=c[d>>2]|0;if(!(yea(+h[e+16>>3],+h[i>>3])|0)){k=1;return k|0}c[b>>2]=e;c[d>>2]=j;k=2;return k|0}function Mt(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;f=d+8|0;k=b+44|0;l=Mba(k,f)|0;if((l|0)==(b+48|0))return;m=l+20|0;i=Keb(c[c[m>>2]>>2]|0)|0;if(!(a[b+93>>0]&1))h=(c[(c[b+120>>2]|0)+(c[f>>2]<<2)>>2]|0)==1;else h=1;j=c[i+12>>2]|0;g=jqb(j)|0;do if(!g){f=c[b+132>>2]|0;g=(c[b+136>>2]|0)-f>>2;if(g>>>0<=1)ma(106320,104084,212,104123);if((c[f+(g+-1<<2)>>2]|0)!=(d|0))ma(106348,104084,213,104123);if(!(zxb(c[c[f+(g+-2<<2)>>2]>>2]|0)|0))return;if(!h){Pwb(c[b+16>>2]|0,i);if(eCb(c[i+4>>2]|0)|0)ma(104180,104084,238,104123);else{m4a(i,1);e=d;break}}else{e=d;n=14}}else{if(h){e=d;n=14;break}c[f>>2]=c[g+8>>2];a[b+92>>0]=1;return}while(0);if((n|0)==14)Pwb(c[b+16>>2]|0,j);c[c[m>>2]>>2]=e;Bib(d)|0;JN(k,l)|0;a[b+92>>0]=1;return}function Nt(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;p=yb;yb=yb+48|0;i=p+36|0;e=p+32|0;k=p+24|0;h=p+16|0;l=p+12|0;m=p+8|0;n=p+4|0;o=p;if(a[b+33>>0]&1)BM(IWa(150620,113230)|0);if(!(vUa(d)|0)){yb=p;return}j=b+28|0;f=tI(c[j>>2]|0,14)|0;Pwb(e,WCb(c[d+12>>2]|0)|0);YA(f,c[e>>2]|0)|0;f=d+8|0;nrb(k,f);Hib(h,f);f=k+4|0;g=c[h>>2]|0;e=c[h+4>>2]|0;while(1){if(!(dhb(c[k>>2]|0,c[f>>2]|0,g,e)|0))break;q=Qab(k)|0;h=c[j>>2]|0;c[m>>2]=c[q>>2];c[i>>2]=c[m>>2];Pwb(l,x7(b,i)|0);YA(h,c[l>>2]|0)|0;hob(k)}q=c[j>>2]|0;c[o>>2]=c[d+24>>2];c[i>>2]=c[o>>2];Pwb(n,x7(b,i)|0);YA(q,c[n>>2]|0)|0;yb=p;return}function Ot(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;n=yb;yb=yb+16|0;l=n+8|0;j=n+4|0;m=n;i=b+16|0;h=c[i>>2]|0;if((c[b+20>>2]|0)-h>>2>>>0<=d>>>0){Sb[c[(c[b>>2]|0)+20>>2]&8191](b,67578);h=c[i>>2]|0}i=c[g>>2]|0;c[j>>2]=c[h+(d<<2)>>2];c[l>>2]=c[j>>2];i=lEa(i,l)|0;if(!i)Sb[c[(c[b>>2]|0)+20>>2]&8191](b,67597);d=i+20|0;j=i+16|0;if(((c[d>>2]|0)-(c[j>>2]|0)>>2|0)!=(((c[e+4>>2]|0)-(c[e>>2]|0)|0)/24|0|0))Sb[c[(c[b>>2]|0)+20>>2]&8191](b,67625);h=0;while(1){k=c[j>>2]|0;if(h>>>0>=(c[d>>2]|0)-k>>2>>>0)break;if((c[k+(h<<2)>>2]|0)!=(c[(c[e>>2]|0)+(h*24|0)+16>>2]|0))Sb[c[(c[b>>2]|0)+20>>2]&8191](b,67658);h=h+1|0}if((c[i+12>>2]|0)!=(f|0))Sb[c[(c[b>>2]|0)+20>>2]&8191](b,67690);if(Yrb(i)|0){Ub[c[(c[b>>2]|0)+8>>2]&255](a,b,i,e);yb=n;return}else{c[m>>2]=c[i+8>>2];c[l>>2]=c[m>>2];fl(a,g,l,e);yb=n;return}}function Pt(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;j=yb;yb=yb+16|0;g=j+4|0;i=j;h=Eeb(a+152|0)|0;if(b|0){Zsb(g,b);c[h+8>>2]=c[g>>2]}g=h+12|0;a=0;while(1){if((a|0)==(e|0))break;Wla(g,c[d+(a<<2)>>2]|0);a=a+1|0}if((f|0)==-1)_u(h);else uZa(h,f);if(!(c[37104]|0)){i=h;yb=j;return i|0}IWa(150452,56221)|0;IWa(150452,56432)|0;a=0;while(1){if((a|0)==(e|0))break;if(a|0?(IWa(150452,140151)|0,((a>>>0)%6|0|0)==5):0)IWa(150452,56474)|0;k=IWa(150452,55712)|0;g=O8(148192,d+(a<<2)|0)|0;IWa(Ym(k,c[g>>2]|0)|0,139976)|0;a=a+1|0}if(!e)IWa(150452,133516)|0;IWa(150452,56483)|0;Pwb(i,b);ug(h,56490,c[i>>2]|0,56504,e,f);IWa(150452,56345)|0;k=h;yb=j;return k|0}function Qt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;f=h;g=mla(120)|0;d=g;e=d+120|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));mT(g);c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];d=a+16|0;e=g+16|0;if((d|0)!=(e|0))xz(e,c[d>>2]|0,c[a+20>>2]|0);d=a+28|0;e=g+28|0;if((d|0)!=(e|0))xz(e,c[d>>2]|0,c[a+32>>2]|0);Cub(f);c[g+40>>2]=c[f>>2];Pla(g+52|0,a+52|0);ila(g+64|0,a+64|0);n1(g+76|0,a+76|0);f=q5(c[a+44>>2]|0,b)|0;c[g+44>>2]=f;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];if(!(c[a+48>>2]|0)){aq(b,g);yb=h;return g|0}else ma(83389,98405,85,83404);return 0}function Rt(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;j=yb;yb=yb+32|0;k=j+16|0;l=j;g=b+12|0;pT(k,a,c[g>>2]|0);n=0;ea(145,l|0,a|0,1);i=n;n=0;if(i&1){l=sa()|0;P()|0;lNa(k);Ea(l|0)}h=a+44|0;i=c[h>>2]|0;n=0;d=S(280,l|0)|0;m=n;n=0;a:do if((!(m&1)?(n=0,e=V(70,c[i>>2]|0,d|0,c[g>>2]|0)|0,m=n,n=0,!(m&1)):0)?(n=0,f=V(55,c[h>>2]|0,e|0,0)|0,m=n,n=0,!(m&1)):0)switch(c[b+8>>2]|0){case 1:{n=0;fa(111,a|0,f|0,k|0,l|0);m=n;n=0;if(m&1)break a;lNa(l);lNa(k);yb=j;return}case 3:{n=0;a=U(59,150620,81922)|0;m=n;n=0;if(m&1)break a;n=0;ca(497,a|0);m=n;n=0;if(m&1)break a;n=0;fa(75,141129,81381,859,81956);n=0;break a}default:{n=0;ba(6);n=0;break a}}while(0);m=sa()|0;P()|0;lNa(l);lNa(k);Ea(m|0)}function St(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;d=j;g=b+4|0;c[g>>2]=0;n=0;ea(105,d|0,b|0,1);f=n;n=0;a:do if(f&1){d=-1;i=8}else{do if(a[d>>0]|0){d=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0;e=d+12|0;f=c[e>>2]|0;if((f|0)==(c[d+16>>2]|0)){n=0;d=S(c[(c[d>>2]|0)+40>>2]|0,d|0)|0;f=n;n=0;if(f&1){d=-1;i=8;break a}}else{c[e>>2]=f+1;d=Qzb(a[f>>0]|0)|0}if(dub(d,-1)|0){g=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=0;da(85,g|0,c[g+16>>2]|6|0);g=n;n=0;if(g&1){i=8;break a}else break}else{c[g>>2]=1;break}}else d=-1;while(0);h=d}while(0);do if((i|0)==8){i=ta(0)|0;P()|0;pa(i|0)|0;n=0;ca(496,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);i=n;n=0;if(!(i&1)){qa();h=d;break}d=sa()|0;P()|0;n=0;ba(5);i=n;n=0;if(i&1){i=ta(0)|0;P()|0;yub(i)}else Ea(d|0)}while(0);yb=j;return h|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,l=0,m=0;l=yb;yb=yb+32|0;k=l;f=(c[b+4>>2]|0)-(c[b>>2]|0)|0;g=f>>2;iob(k);n=0;da(551,k|0,g|0);j=n;n=0;do if(!(j&1)){e=0;while(1){if((e|0)==(g|0))break;c[(c[k>>2]|0)+(c[(c[d>>2]|0)+(e<<2)>>2]<<2)>>2]=e;e=e+1|0}n=0;j=S(217,24)|0;i=n;n=0;if(!(i&1)?(iob(j),n=0,da(615,j|0,b|0),i=n,n=0,!(i&1)):0){if(!f){n=0;fa(75,76245,75526,454,76255);n=0;break}i=g+-1|0;e=uob(WCb(c[(c[a>>2]|0)+32>>2]|0)|0)|0;while(1){if(e>>>0>=i>>>0)break;m=c[k>>2]|0;g=c[j>>2]|0;d=g+(e<<2)|0;b=c[d>>2]|0;f=e+1|0;g=g+(f<<2)|0;h=c[g>>2]|0;if((c[m+(b<<2)>>2]|0)>>>0>(c[m+(h<<2)>>2]|0)>>>0){c[d>>2]=h;c[g>>2]=b;e=e+2|0}else e=f}n=0;da(616,a|0,j|0);m=n;n=0;if(!(m&1)){Htb(k);yb=l;return j|0}}}while(0);m=sa()|0;P()|0;Htb(k);Ea(m|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;i=f+4|0;j=f+8|0;while(1){if(!((a|0)!=(b|0)&(d|0)!=(e|0)))break;g=c[a+16>>2]|0;h=g;a:do if(Bfb(g,d+16|0)|0){g=c[a+4>>2]|0;if(!g)while(1){g=c[a+8>>2]|0;if((c[g>>2]|0)==(a|0)){a=g;break a}a=g}a=g;while(1){g=c[a>>2]|0;if(!g)break;a=g}}else{b:do if(!(Bfb(c[d+16>>2]|0,a+16|0)|0)){g=c[i>>2]|0;if((g|0)==(c[j>>2]|0))_M(f,a+16|0);else{c[g>>2]=h;c[i>>2]=(c[i>>2]|0)+4}g=c[a+4>>2]|0;if(!g)while(1){g=c[a+8>>2]|0;if((c[g>>2]|0)==(a|0)){a=g;break b}a=g}a=g;while(1){g=c[a>>2]|0;if(!g)break;a=g}}while(0);g=c[d+4>>2]|0;if(!g)while(1){g=c[d+8>>2]|0;if((c[g>>2]|0)==(d|0)){d=g;break a}d=g}d=g;while(1){g=c[d>>2]|0;if(!g)break;d=g}}while(0)}return f|0}function Vt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;g=j+24|0;h=j+12|0;i=j;e=a+24|0;f=a+28|0;if((C8(e,b)|0)==(f|0)){i=c[b>>2]|0;c[g>>2]=i;yb=j;return i|0}d=c[b>>2]|0;a=a+36|0;while(1){b=c[a>>2]|0;c[a>>2]=b+1;g5(i,b);n=0;U(77,i|0,d|0)|0;b=n;n=0;if(b&1){b=10;break}c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];b=0;while(1){if((b|0)==3)break;c[i+(b<<2)>>2]=0;b=b+1|0}n=0;da(230,g|0,h|0);b=n;n=0;if(b&1){b=11;break}Chb(h);Chb(i);if((C8(e,g)|0)==(f|0)){b=13;break}}if((b|0)==10){j=sa()|0;P()|0;Chb(i);Ea(j|0)}else if((b|0)==11){j=sa()|0;P()|0;Chb(h);Chb(i);Ea(j|0)}else if((b|0)==13){i=c[g>>2]|0;yb=j;return i|0}return 0}function Wt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;Qua(a,134435);peb(a);hfa(a,40);e=rrb(b,1)|0;Xi(a,c[e>>2]|0);hfa(a,41);Alb(a);e=n9(b)|0;a:do if(e){d=rrb(b,2)|0;while(1){d=c[d>>2]|0;WCb(d)|0;if(!(VBb(c[d>>2]|0)|0)){f=8;break a}g=rrb(d,0)|0;if(!(hXa(c[g>>2]|0,c[37203]|0)|0)){f=8;break a}if(!(n9(d)|0))break;d=rrb(d,3)|0}hfa(a,123);g=a+16|0;c[g>>2]=(c[g>>2]|0)+1;BIa(a);d=rrb(b,2)|0;Xi(a,c[d>>2]|0);c[g>>2]=(c[g>>2]|0)+-1;BIa(a);hfa(a,125)}else f=8;while(0);if((f|0)==8?(g=rrb(b,2)|0,uQa(a,c[g>>2]|0),g=rrb(b,2)|0,!(HNa(c[g>>2]|0)|0)):0)hfa(a,59);if(!e)return;Alb(a);Qua(a,134170);peb(a);g=rrb(b,3)|0;uQa(a,c[g>>2]|0);g=rrb(b,3)|0;if(HNa(c[g>>2]|0)|0)return;hfa(a,59);return}function Xt(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;m=yb;yb=yb+16|0;f=m+3|0;h=m+2|0;i=m+1|0;l=m;if(!(a[b+12>>0]&1))j=b+4|0;else{k=IWa(Zm(IWa(150620,109105)|0,d)|0,112332)|0;j=b+4|0;BM(IWa(Ym(k,(c[j>>2]|0)-(c[b>>2]|0)|0)|0,139927)|0)}e=d&255;a[f>>0]=e;g=c[j>>2]|0;k=b+8|0;if(g>>>0<(c[k>>2]|0)>>>0){a[g>>0]=e;f=(c[j>>2]|0)+1|0;c[j>>2]=f}else{qN(b,f);f=c[j>>2]|0}e=d>>>8&255;a[h>>0]=e;if(f>>>0<(c[k>>2]|0)>>>0){a[f>>0]=e;f=(c[j>>2]|0)+1|0;c[j>>2]=f}else{qN(b,h);f=c[j>>2]|0}e=d>>>16&255;a[i>>0]=e;if(f>>>0<(c[k>>2]|0)>>>0){a[f>>0]=e;f=(c[j>>2]|0)+1|0;c[j>>2]=f}else{qN(b,i);f=c[j>>2]|0}e=d>>>24&255;a[l>>0]=e;if(f>>>0<(c[k>>2]|0)>>>0){a[f>>0]=e;c[j>>2]=(c[j>>2]|0)+1;yb=m;return}else{qN(b,l);yb=m;return}}function Yt(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;l=yb;yb=yb+16|0;i=l+4|0;j=l;k=u5(a+40|0,b+8|0)|0;c[k>>2]=c[a+4>>2];k=Dia()|0;g=WCb(c[b+16>>2]|0)|0;e=a+4|0;h=g+(((dub(c[e>>2]|0,c[37043]|0)|0)^1)<<31>>31)|0;f=b+12|0;d=0;while(1){if((d|0)==(h|0))break;m=uXa(f,d)|0;eD(k,WCb(uga(a,c[m>>2]|0,c[37043]|0)|0)|0);d=d+1|0}if(cub(c[e>>2]|0,c[37043]|0)|0){m=uXa(f,g+-1|0)|0;eD(k,JR(a,c[m>>2]|0,c[e>>2]|0)|0)}d=c[b+8>>2]|0;if(!(eCb(d)|0)){m=k;yb=l;return m|0}c[j>>2]=d;m=c[a>>2]|0;c[i>>2]=c[j>>2];m=E5(Kha(m,i,2)|0,k)|0;yb=l;return m|0}function Zt(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;j=yb;yb=yb+16|0;k=j;e=a+8|0;Dz(a,a+4|0,e,d)|0;h=a+12|0;a:while(1){if((h|0)==(b|0)){i=17;break}if(nE(d,h,e)|0){f=c[h>>2]|0;c[h>>2]=0;c[k>>2]=f;f=h;while(1){l=c[e>>2]|0;c[e>>2]=0;g=c[f>>2]|0;c[f>>2]=l;if(g|0){IM(g);RCb(g)}if((e|0)==(a|0)){e=a;break}f=e+-4|0;n=0;g=V(90,d|0,k|0,f|0)|0;l=n;n=0;if(l&1)break a;if(g){l=e;e=f;f=l}else break}l=c[k>>2]|0;c[k>>2]=0;f=c[e>>2]|0;c[e>>2]=l;if(f|0){IM(f);RCb(f)}e=c[k>>2]|0;c[k>>2]=0;if(e|0){IM(e);RCb(e)}}e=h;h=h+4|0}if((i|0)==17){yb=j;return}e=sa()|0;P()|0;f=c[k>>2]|0;c[k>>2]=0;if(!f)Ea(e|0);IM(f);RCb(f);Ea(e|0)}function _t(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i+12|0;g=i;if((e+-1&255)>1){h=0;yb=i;return h|0}h=Lfb(c[b+4>>2]|0)|0;switch(e<<24>>24){case 1:{c[h+24>>2]=1;break}case 2:{c[h+24>>2]=2;break}default:ma(141129,112368,2212,116474)}c[h+4>>2]=1;if(a[b+12>>0]&1)BM(IWa(150620,112911)|0);e=rl(b)|0;c[h+20>>2]=e;e=rl(b)|0;c[h+16>>2]=e;e=rl(b)|0;c[h+12>>2]=e;hCb(f);EI(b,f,h+8|0);f=WCb(c[f>>2]|0)|0;do if((f|0)!=(Era(c[h+24>>2]|0)|0)){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;D8(g,116495,Zzb(116495)|0);n=0;da(4022,b|0,g|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Ea(i|0)}else{Chb(g);break}}while(0);fHa(h);c[d>>2]=h;h=1;yb=i;return h|0}function $t(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;j=yb;yb=yb+16|0;h=j+8|0;d=j;i=b+12|0;if((WCb(c[i>>2]|0)|0)>>>0>16){cqb();n=0;ca(491,80735);g=n;n=0;if(g&1){sa()|0;P()|0;iSa()}g=WCb(c[i>>2]|0)|0;n=0;ca(524,g|0);g=n;n=0;if(g&1){sa()|0;P()|0;iSa()}else iSa()}e=b+8|0;nrb(h,e);Hib(d,e);e=h+4|0;f=c[d>>2]|0;d=c[d+4>>2]|0;g=a+36|0;while(1){if(!(dhb(c[h>>2]|0,c[e>>2]|0,f,d)|0))break;k=Qab(h)|0;l=c[k>>2]|0;l=fH(l,WCb(c[g>>2]|0)|0)|0;c[k>>2]=l;hob(h)}d=b+8|0;while(1){if((WCb(c[i>>2]|0)|0)>>>0>=16)break;Wla(d,jgb(2,WCb(c[g>>2]|0)|0)|0)}c[b+24>>2]=c[a+44>>2];k=b+4|0;l=c[k>>2]|0;c[k>>2]=2;q5a(b);l=dJ(b,l,WCb(c[g>>2]|0)|0)|0;Pwb(c[a+16>>2]|0,l);yb=j;return}function au(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;h=e+20|0;if(!(a[h>>0]&1))f=e+32|0;else{qJa(b,Xxb(c[(c[b+44>>2]|0)+4>>2]|0)|0,e,128981);f=e+32|0;switch(c[f>>2]|0){case 6:case 2:case 1:{g=1;break}default:g=0}qJa(b,g,e,129573)}if((c[f>>2]|0)==5)qJa(b,Szb(c[(c[b+44>>2]|0)+4>>2]|0)|0,e,129054);if(!(a[h>>0]&1))g=0;else{g=c[b+36>>2]|0;WCb(g)|0;g=(a[g+120>>0]&1)==0}SMa(b,g,e);g=e+8|0;UF(b,a[g>>0]|0,c[f>>2]|0,e);i=WCb(c[e+16>>2]|0)|0;Pr(b,i,c[f>>2]|0,d[g>>0]|0,(a[h>>0]&1)!=0,e);dra(b,c[(c[e+24>>2]|0)+4>>2]|0,1,e,129607);g=e+28|0;BFa(b,c[(c[g>>2]|0)+4>>2]|0,e);dra(b,c[(c[g>>2]|0)+4>>2]|0,c[f>>2]|0,e,129672);if(!(a[h>>0]&1))return;SBa(b,c[f>>2]|0,e,129700);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,l=0,m=0;m=yb;yb=yb+96|0;j=m+64|0;f=m+24|0;k=m;l=m+56|0;tw(f,d,c[e+24>>2]|0);if(lsb(f)|0){c[b>>2]=c[f>>2];c[b+4>>2]=c[f+4>>2];c[b+8>>2]=c[f+8>>2];c[b+12>>2]=c[f+12>>2];c[b+16>>2]=c[f+16>>2];c[b+20>>2]=c[f+20>>2];c[b+24>>2]=c[f+24>>2];c[b+28>>2]=c[f+28>>2];yb=m;return}else{h=d+4|0;g=c[h>>2]|0;i=j;d=i+24|0;do{a[i>>0]=a[f>>0]|0;i=i+1|0;f=f+1|0}while((i|0)<(d|0));d=Gv(g,e,j)|0;i=c[(c[h>>2]|0)+36>>2]|0;f=c[(c[i>>2]|0)+24>>2]|0;c[l>>2]=d;c[j>>2]=c[l>>2];Ub[f&255](k,i,e,j);i=j;f=k;d=i+24|0;do{a[i>>0]=a[f>>0]|0;i=i+1|0;f=f+1|0}while((i|0)<(d|0));Wza(b,j);yb=m;return}}function cu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if(!(Eb[c[(c[b>>2]|0)+20>>2]&511](b)|0))ma(95432,94804,485,95459);g=Eb[c[(c[b>>2]|0)+24>>2]&511](b)|0;a:do if(RUa()|0){n=0;e=S(217,16)|0;h=n;n=0;do if(!(h&1)){n=0;da(2197,e|0,d|0);h=n;n=0;if(h&1){a=sa()|0;P()|0;RCb(e);break}else{f=9;break a}}else{a=sa()|0;P()|0}while(0);if(!g){h=a;Ea(h|0)}}else{e=0;f=9}while(0);if((f|0)==9){n=0;fa(c[(c[g>>2]|0)+16>>2]|0,g|0,a|0,c[a>>2]|0,d|0);h=n;n=0;do if(!(h&1)?(n=0,ea(159,a|0,b|0,d|0),h=n,n=0,!(h&1)):0){if(RUa()|0?(n=0,ca(534,e|0),h=n,n=0,h&1):0)break;if(!e){h=c[g>>2]|0;h=h+4|0;h=c[h>>2]|0;Rb[h&1023](g);return}RCb(e);h=c[g>>2]|0;h=h+4|0;h=c[h>>2]|0;Rb[h&1023](g);return}while(0);a=sa()|0;P()|0;if(e)RCb(e)}Rb[c[(c[g>>2]|0)+4>>2]&1023](g);h=a;Ea(h|0)}function du(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;g=j+4|0;h=j;d=c[b>>2]|0;f=d;e=1;while(1){if(!e)break;e=a[f>>0]|0;if(!(e<<24>>24)){i=18;break}f=f+1|0;e=HH(e)|0}if((i|0)==18){yb=j;return}c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[g+(e<<2)>>2]=0;e=e+1|0}while(1){e=a[d>>0]|0;if(!(e<<24>>24))break;if(HH(e)|0){n=0;da(91,g|0,e|0);f=n;n=0;if(f&1){i=19;break}}else{n=0;da(91,g|0,92);f=n;n=0;if(f&1){i=19;break}f=Jub(e<<24>>24>>4)|0;n=0;da(91,g|0,f|0);f=n;n=0;if(f&1){i=19;break}f=Jub(e&15)|0;n=0;da(91,g|0,f|0);f=n;n=0;if(f&1){i=19;break}}d=d+1|0}if((i|0)==19){j=sa()|0;P()|0;Chb(g);Ea(j|0)}n=0;da(230,h|0,g|0);i=n;n=0;if(i&1){j=sa()|0;P()|0;Chb(g);Ea(j|0)}else{c[b>>2]=c[h>>2];Chb(g);yb=j;return}}function eu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;f=e;d=kH(Vr(b,0)|0)|0;if(dub(d,c[37390]|0)|0)lc(a,b);if(!(u1(b)|0)){yb=e;return}if(dub(d,c[37383]|0)|0){mc(a,b,1);yb=e;return}if(dub(d,c[37105]|0)|0){Dc(a,b,1);yb=e;return}if(dub(d,c[37391]|0)|0){Of(a,b,1);yb=e;return}if(dub(d,c[37386]|0)|0){Cf(a,b,1);yb=e;return}e=oa(20)|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;d=Zzb(126167)|0;n=0;ea(95,f|0,126167,d|0);d=n;n=0;if(!(d&1)){n=0;fa(134,e|0,f|0,c[b+28>>2]|0,c[b+32>>2]|0);b=n;n=0;if(b&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}a=sa()|0;P()|0;Chb(f);if(!d){f=a;Ea(f|0)}}else{a=sa()|0;P()|0}va(e|0);f=a;Ea(f|0)}function fu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;Tja(a+200|0);d=c[a+28>>2]|0;e=a+200|0;b=c[a+24>>2]|0;while(1){f=b;if((d|0)==(f|0))break;h=c[b>>2]|0;g=G7(e,h+8|0)|0;c[g>>2]=h;b=f+4|0}uia(a+176|0);d=c[a+4>>2]|0;e=a+176|0;b=c[a>>2]|0;while(1){f=b;if((d|0)==(f|0))break;g=c[b>>2]|0;h=G7(e,g)|0;c[h>>2]=g;b=f+4|0}tka(a+188|0);d=c[a+16>>2]|0;e=a+188|0;b=c[a+12>>2]|0;while(1){f=b;if((d|0)==(f|0))break;g=c[b>>2]|0;h=G7(e,g)|0;c[h>>2]=g;b=f+4|0}ska(a+212|0);e=c[a+40>>2]|0;f=a+212|0;b=c[a+36>>2]|0;while(1){d=b;if((e|0)==(d|0))break;g=c[b>>2]|0;h=G7(f,g+8|0)|0;c[h>>2]=g;b=d+4|0}return}function gu(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;l=yb;yb=yb+32|0;e=l+16|0;j=l+8|0;h=l;SEa(c[b>>2]|0,40)|0;Fmb(e,c[b+28>>2]|0,c[b>>2]|0);Ik(e,d);_Va(b);e=c[d+12>>2]|0;f=Rqb(e)|0;i=b+20|0;a:do if(!((a[i>>0]&1)!=0|(f|0)==0)?bCb(c[f+8>>2]|0)|0:0){f=f+12|0;nrb(j,f);Hib(h,f);f=j+4|0;g=c[h>>2]|0;e=c[h+4>>2]|0;while(1){if(!(dhb(c[j>>2]|0,c[f>>2]|0,g,e)|0))break a;h=Qab(j)|0;sV(b,c[h>>2]|0);hob(j)}}else k=6;while(0);if((k|0)==6)sV(b,e);y9(b);if(!(a[i>>0]&1)){yb=l;return}IWa(c[b>>2]|0,98323)|0;e=d+8|0;if(!(eCb(c[e>>2]|0)|0)){yb=l;return}b=SEa(c[b>>2]|0,32)|0;mpa(b,c[e>>2]|0)|0;yb=l;return}function hu(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;s=yb;yb=yb+32|0;j=s+28|0;i=s+20|0;l=s+24|0;m=s+16|0;n=s+12|0;q=s+8|0;o=s+4|0;r=s;c[l>>2]=d;p=b+36|0;k=e6(p,l)|0;f=k+4|0;g=c[f>>2]|0;h=b+48|0;d=c[k>>2]|0;while(1){if((d|0)==(g|0))break;t=c[d>>2]|0;c[m>>2]=c[(c[l>>2]|0)+8>>2];c[n>>2]=c[e>>2];c[i>>2]=c[m>>2];c[j>>2]=c[n>>2];if(Az(t,i,j)|0)a[h>>0]=1;d=d+4|0}c[o>>2]=c[e>>2];c[j>>2]=c[o>>2];t=Rqb(GF(b,j)|0)|0;c[q>>2]=t;if(!t){yb=s;return}j=c[f>>2]|0;d=c[k>>2]|0;while(1){i=d;if((j|0)==(i|0))break;d=c[d>>2]|0;c[r>>2]=d;f=e6(p,q)|0;g=f+4|0;h=c[g>>2]|0;if((h|0)==(c[f+8>>2]|0))_M(f,r);else{c[h>>2]=d;c[g>>2]=(c[g>>2]|0)+4}d=i+4|0}yb=s;return}function iu(a){a=a|0;var b=0;do switch(a|0){case 0:{ma(141129,134390,81,134417);break}case 1:{b=134186;break}case 2:{b=134435;break}case 3:{b=134438;break}case 4:{b=134443;break}case 5:{b=134449;break}case 6:{b=134206;break}case 7:{b=134192;break}case 8:{b=134456;break}case 9:{b=134466;break}case 10:{b=134476;break}case 11:{b=134487;break}case 12:{b=134498;break}case 13:{b=134503;break}case 14:{b=134509;break}case 15:{b=134515;break}case 16:{b=134521;break}case 17:{b=134528;break}case 18:{b=134535;break}case 19:{b=134540;break}case 20:{b=134547;break}case 21:{b=134552;break}case 22:{b=134556;break}case 24:{b=134568;break}case 23:{b=134583;break}case 25:{b=134594;break}case 26:{b=134606;break}case 27:{b=134618;break}case 28:{b=134631;break}case 29:{b=134644;break}case 30:{b=134657;break}case 31:{b=134672;break}case 32:{b=134683;break}case 33:{b=134695;break}case 34:{b=134705;break}case 35:{b=134717;break}case 36:{ma(141129,134390,117,134417);break}default:ma(141129,134390,119,134417)}while(0);return b|0}function ju(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=yb;yb=yb+48|0;d=f+36|0;e=f+24|0;g=f+12|0;h=f;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;D8(g,100218,Zzb(100218)|0);n=0;da(229,h|0,b|0);b=n;n=0;if(b&1){h=sa()|0;P()|0;Chb(g);Ea(h|0)}b=a[h+11>>0]|0;i=b<<24>>24<0;n=0;V(43,g|0,(i?c[h>>2]|0:h)|0,(i?c[h+4>>2]|0:b&255)|0)|0;b=n;n=0;do if(!(b&1)){c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}n=0;da(230,d|0,e|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;Chb(e);break}else{Chb(e);Chb(h);Chb(g);yb=f;return c[d>>2]|0}}else{b=sa()|0;P()|0}while(0);Chb(h);i=b;Chb(g);Ea(i|0);return 0}function ku(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=yb;yb=yb+48|0;d=f+36|0;e=f+24|0;g=f+12|0;h=f;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;D8(g,100226,Zzb(100226)|0);n=0;da(229,h|0,b|0);b=n;n=0;if(b&1){h=sa()|0;P()|0;Chb(g);Ea(h|0)}b=a[h+11>>0]|0;i=b<<24>>24<0;n=0;V(43,g|0,(i?c[h>>2]|0:h)|0,(i?c[h+4>>2]|0:b&255)|0)|0;b=n;n=0;do if(!(b&1)){c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}n=0;da(230,d|0,e|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;Chb(e);break}else{Chb(e);Chb(h);Chb(g);yb=f;return c[d>>2]|0}}else{b=sa()|0;P()|0}while(0);Chb(h);i=b;Chb(g);Ea(i|0);return 0}function lu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=yb;yb=yb+48|0;h=j+20|0;i=j;f=Icb(d)|0;g=b+116|0;c[g>>2]=f;Hwa(b+140|0,J(f,f)|0);f=c[b+140>>2]|0;e=(c[b+144>>2]|0)-f|0;while(1){if((e|0)<=0)break;k=f;a[k>>0]=0;e=e+-1|0;f=k+1|0}eva(b+152|0,c[g>>2]|0);f=c[b+152>>2]|0;e=(c[b+156>>2]|0)-f>>2;while(1){if((e|0)<=0)break;k=f;c[k>>2]=0;e=e+-1|0;f=k+4|0}jI(b,d);nf(h,b);HG(b+120|0,h);Pdb(h);$j(i,b+120|0);Dv(b,i);Pdb(i);$e(b);yb=j;return}function mu(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;m=yb;yb=yb+32|0;e=m+28|0;f=m+24|0;g=m+20|0;h=m+16|0;i=m+12|0;j=m+8|0;k=m+4|0;l=m;b=b+28|0;tI(c[b>>2]|0,-3)|0;switch(c[d+8>>2]|0){case 0:{l=c[b>>2]|0;Pwb(e,5);YA(l,c[e>>2]|0)|0;break}case 1:{l=c[b>>2]|0;Pwb(f,6);YA(l,c[f>>2]|0)|0;break}case 2:{l=c[b>>2]|0;Pwb(g,9);YA(l,c[g>>2]|0)|0;break}case 3:{l=c[b>>2]|0;Pwb(h,10);YA(l,c[h>>2]|0)|0;break}case 4:{l=c[b>>2]|0;Pwb(i,13);YA(l,c[i>>2]|0)|0;break}case 5:{l=c[b>>2]|0;Pwb(j,16);YA(l,c[j>>2]|0)|0;break}case 6:{l=c[b>>2]|0;Pwb(k,19);YA(l,c[k>>2]|0)|0;break}case 7:{k=c[b>>2]|0;Pwb(l,22);YA(k,c[l>>2]|0)|0;break}default:{}}Hmb(c[b>>2]|0,a[d+16>>0]|0);yb=m;return}function nu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=yb;yb=yb+48|0;h=j+20|0;i=j;f=Icb(d)|0;g=b+116|0;c[g>>2]=f;Hwa(b+140|0,J(f,f)|0);f=c[b+140>>2]|0;e=(c[b+144>>2]|0)-f|0;while(1){if((e|0)<=0)break;k=f;a[k>>0]=0;e=e+-1|0;f=k+1|0}eva(b+152|0,c[g>>2]|0);f=c[b+152>>2]|0;e=(c[b+156>>2]|0)-f>>2;while(1){if((e|0)<=0)break;k=f;c[k>>2]=0;e=e+-1|0;f=k+4|0}oI(b,d);mf(h,b);HG(b+120|0,h);Pdb(h);_j(i,b+120|0);Dv(b,i);Pdb(i);_e(b);yb=j;return}function ou(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;m=yb;yb=yb+48|0;i=m+32|0;h=m+24|0;e=m+16|0;j=m+8|0;k=m+4|0;l=m;if(a[b+33>>0]&1)BM(IWa(150620,113194)|0);f=d+8|0;nrb(h,f);Hib(e,f);f=h+4|0;g=c[e>>2]|0;e=c[e+4>>2]|0;while(1){if(!(dhb(c[h>>2]|0,c[f>>2]|0,g,e)|0))break;n=Qab(h)|0;T_a(b,c[n>>2]|0);hob(h)}T_a(b,c[d+28>>2]|0);e=b+28|0;n=tI(c[e>>2]|0,17)|0;b=c[b+24>>2]|0;c[k>>2]=c[d+24>>2];c[i>>2]=c[k>>2];Pwb(j,Gaa(b,i)|0);n=YA(n,c[j>>2]|0)|0;Pwb(l,0);YA(n,c[l>>2]|0)|0;if((c[d+4>>2]|0)!=6){yb=m;return}Ygb(c[e>>2]|0);yb=m;return}function pu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;e=j+16|0;i=j+4|0;h=j;c[e>>2]=b;c[i>>2]=i;f=i+4|0;c[f>>2]=i;g=i+8|0;c[g>>2]=0;n=0;da(240,i|0,e|0);e=n;n=0;if(e&1){j=sa()|0;P()|0;Pkb(i);Ea(j|0)}e=a+4|0;a:while(1){if(!(c[g>>2]|0)){b=11;break}b=c[(c[f>>2]|0)+8>>2]|0;c[h>>2]=b;xFa(i);b:do if(!(pdb(e,b)|0)){n=0;da(239,e|0,h|0);d=n;n=0;if(d&1){b=13;break a}d=WCb(c[b+16>>2]|0)|0;a=Ryb(b)|0;b=d;while(1){d=b;if((a|0)==(d|0))break b;n=0;da(240,i|0,b+8|0);b=n;n=0;if(b&1){b=12;break a}b=c[d+4>>2]|0}}while(0)}if((b|0)==11){Pkb(i);yb=j;return}else if((b|0)==12){j=sa()|0;P()|0;Pkb(i);Ea(j|0)}else if((b|0)==13){j=sa()|0;P()|0;Pkb(i);Ea(j|0)}}function qu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;e=a+16|0;h=c[(c[e>>2]|0)+4>>2]|0;d=a+12|0;if(!(Kvb(c[(c[d>>2]|0)+4>>2]|0)|0)){a=0;return a|0}b=a+8|0;g=c[b>>2]|0;if((g|0)!=(xn(h,15)|0)?(g=c[b>>2]|0,(g|0)!=(xn(h,16)|0)):0){a=0;return a|0}g=Aqb(c[d>>2]|0)|0;if(!g){a=0;return a|0}b=g+8|0;f=c[b>>2]|0;if((f|0)!=(xn(h,1)|0)?(f=c[b>>2]|0,(f|0)!=(xn(h,2)|0)):0){a=0;return a|0}f=Mqb(c[g+16>>2]|0)|0;if(!f){a=0;return a|0}b=c[e>>2]|0;d=Mqb(b)|0;if(d|0){a=Zv(a,g,f,0,d)|0;return a|0}d=Aqb(b)|0;if(!d){a=0;return a|0}b=d+8|0;e=c[b>>2]|0;if((e|0)!=(xn(h,1)|0)?(e=c[b>>2]|0,(e|0)!=(xn(h,2)|0)):0){a=0;return a|0}b=Mqb(c[d+16>>2]|0)|0;if(!b){a=0;return a|0}a=Zv(a,g,f,d,b)|0;return a|0}function ru(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=yb;yb=yb+16|0;j=l+4|0;k=l;h=c[b>>2]|0;g=eCb(h)|0;i=c[d>>2]|0;e=g^(eCb(i)|0);if(e|g^1){k=e^1;yb=l;return k|0}e=c[a>>2]|0;f=e+4|0;g=c[f>>2]|0;if((g|0)==(c[e+8>>2]|0))_M(e,b);else{c[g>>2]=h;c[f>>2]=(c[f>>2]|0)+4}e=O4(c[a+4>>2]|0,b)|0;f=e+4|0;g=c[f>>2]|0;if((g|0)==(c[e+8>>2]|0))_M(e,d);else{c[g>>2]=i;c[f>>2]=(c[f>>2]|0)+4}e=c[a+8>>2]|0;b=a+12|0;f=c[b>>2]|0;c[j>>2]=f;g=e+4|0;h=c[g>>2]|0;if(h>>>0<(c[e+8>>2]|0)>>>0){c[h>>2]=f;c[g>>2]=(c[g>>2]|0)+4}else _M(e,j);h=c[a+16>>2]|0;e=c[b>>2]|0;c[k>>2]=e;f=h+4|0;g=c[f>>2]|0;if(g>>>0<(c[h+8>>2]|0)>>>0){c[g>>2]=e;c[f>>2]=(c[f>>2]|0)+4;k=1;yb=l;return k|0}else{_M(h,k);k=1;yb=l;return k|0}return 0}function su(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=(d-b|0)/12|0;f=a+8|0;e=c[a>>2]|0;if(g>>>0>(((c[f>>2]|0)-e|0)/12|0)>>>0){Iaa(a);e=vxb()|0;if(g>>>0>e>>>0)Apa();f=((c[f>>2]|0)-(c[a>>2]|0)|0)/12|0;if(f>>>0>>1>>>0){e=f<<1;e=e>>>0>>0?g:e}ZV(a,e);Lha(a,b,d);return}i=a+4|0;h=((c[i>>2]|0)-e|0)/12|0;g=g>>>0>h>>>0;h=g?b+(h*12|0)|0:d;f=e;e=b;while(1){if((e|0)==(h|0))break;aua(f,e)|0;f=f+12|0;e=e+12|0}if(g){Lha(a,h,d);return}e=c[i>>2]|0;while(1){if((f|0)==(e|0))break;d=e+-12|0;Chb(d);e=d}c[i>>2]=f;return}function tu(a){a=a|0;var b=0;b=c[(c[a+12>>2]|0)+4>>2]|0;if((b|0)==6){c[a+4>>2]=6;return}do switch(c[a+8>>2]|0){case 19:case 17:case 15:case 13:case 11:case 9:case 7:case 5:case 3:case 1:case 18:case 16:case 14:case 12:case 10:case 8:case 6:case 4:case 2:case 0:{c[a+4>>2]=b;return}case 21:case 20:{c[a+4>>2]=1;return}case 48:case 47:{c[a+4>>2]=1;return}case 51:case 50:case 49:case 23:case 22:{c[a+4>>2]=2;return}case 24:{c[a+4>>2]=1;return}case 43:{c[a+4>>2]=4;return}case 44:{c[a+4>>2]=3;return}case 33:case 55:case 54:case 53:case 52:case 31:case 29:case 27:case 25:{c[a+4>>2]=1;return}case 34:case 59:case 58:case 57:case 56:case 32:case 30:case 28:case 26:{c[a+4>>2]=2;return}case 41:case 39:case 37:case 35:case 45:{c[a+4>>2]=3;return}case 42:case 40:case 38:case 36:case 46:{c[a+4>>2]=4;return}case 92:case 91:case 90:case 89:case 88:case 87:case 86:case 85:case 84:case 83:case 82:case 81:case 80:case 79:case 76:case 73:case 70:case 67:case 66:case 65:case 64:case 63:case 62:case 61:case 60:{c[a+4>>2]=5;return}case 78:case 77:case 75:case 74:case 72:case 71:case 69:case 68:{c[a+4>>2]=1;return}case 93:{ma(141129,134390,615,134833);break}default:return}while(0)}function uu(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,o=0;o=yb;yb=yb+16|0;l=o;if(!(Umb(d,112562)|0)){Jaa(b,d);yb=o;return}c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[l+(e<<2)>>2]=0;e=e+1|0}h=y2(d)|0;e=0;while(1){if((e|0)>=(h|0))break;g=e+1|0;f=a[d+e>>0]|0;if(((f<<24>>24==92?(i=e+2|0,(i|0)<(h|0)):0)?(j=a[d+g>>0]|0,jsa(j)|0):0)?(k=a[d+i>>0]|0,jsa(k)|0):0){g=Clb(k)|0;g=((Clb(j)|0)<<4|g)&255;n=0;da(91,l|0,g|0);g=n;n=0;if(g&1){m=19;break}e=e+3|0}else{n=0;da(91,l|0,f|0);f=n;n=0;if(f&1){m=19;break}else e=g}}if((m|0)==19){o=sa()|0;P()|0;Chb(l);Ea(o|0)}n=0;da(4014,b|0,((a[l+11>>0]|0)<0?c[l>>2]|0:l)|0);m=n;n=0;if(m&1){o=sa()|0;P()|0;Chb(l);Ea(o|0)}else{Chb(l);yb=o;return}}function vu(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;iob(a);l=b+4|0;m=d+4|0;n=0;da(551,a|0,((c[l>>2]|0)-(c[b>>2]|0)>>2)+((c[m>>2]|0)-(c[d>>2]|0)>>2)|0);k=n;n=0;if(k&1){m=sa()|0;P()|0;Htb(a);Ea(m|0)}e=0;g=0;f=0;while(1){j=c[l>>2]|0;i=c[b>>2]|0;h=i;if(f>>>0>=j-i>>2>>>0)break;k=c[d>>2]|0;if(g>>>0>=(c[m>>2]|0)-k>>2>>>0)break;j=c[h+(f<<2)>>2]|0;h=c[k+(g<<2)>>2]|0;if(j>>>0>>0){c[(c[a>>2]|0)+(e<<2)>>2]=j;f=f+1|0}else{i=(c[a>>2]|0)+(e<<2)|0;if(j>>>0>h>>>0)c[i>>2]=h;else{c[i>>2]=j;f=f+1|0}g=g+1|0}e=e+1|0}while(1){if(f>>>0>=j-i>>2>>>0)break;c[(c[a>>2]|0)+(e<<2)>>2]=c[h+(f<<2)>>2];k=c[b>>2]|0;e=e+1|0;f=f+1|0;j=c[l>>2]|0;i=k;h=k}while(1){f=c[d>>2]|0;if(g>>>0>=(c[m>>2]|0)-f>>2>>>0)break;c[(c[a>>2]|0)+(e<<2)>>2]=c[f+(g<<2)>>2];g=g+1|0;e=e+1|0}n=0;da(551,a|0,e|0);m=n;n=0;if(m&1){m=sa()|0;P()|0;Htb(a);Ea(m|0)}else return}function wu(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;m=yb;yb=yb+16|0;k=m+4|0;l=m;c[k>>2]=0;g=k+4|0;c[g>>2]=0;h=k+8|0;c[h>>2]=0;i=a+48|0;d=c[a+44>>2]|0;a:while(1){if((i|0)==(d|0))break;e=d;do if(Hi(b,e+24|0)|0){e=e+16|0;f=c[g>>2]|0;if((f|0)==(c[h>>2]|0)){n=0;da(997,k|0,e|0);f=n;n=0;if(f&1){j=20;break a}else break}else{c[f>>2]=c[e>>2];c[g>>2]=(c[g>>2]|0)+4;break}}while(0);e=d;d=c[e+4>>2]|0;b:do if(!d)while(1){d=c[e+8>>2]|0;if((e|0)==(c[d>>2]|0))break b;e=d}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0)}if((j|0)==20){m=sa()|0;P()|0;Vob(k);Ea(m|0)}f=c[g>>2]|0;e=a+44|0;d=c[k>>2]|0;while(1){if((d|0)==(f|0))break;c[l>>2]=c[d>>2];y5(e,l);d=d+4|0}Vob(k);yb=m;return}function xu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h;if(!(pEa(c[a+108>>2]|0,c[b+108>>2]|0)|0)){g=0;yb=h;return g|0}if(!(Mdb(c[a+104>>2]|0,c[b+104>>2]|0)|0)){g=0;yb=h;return g|0}f=WCb(c[a+8>>2]|0)|0;if((f|0)!=(WCb(c[b+8>>2]|0)|0)){g=0;yb=h;return g|0}f=WCb(c[a+16>>2]|0)|0;e=Ryb(a)|0;a=f;while(1){f=a;if((e|0)==(f|0)){a=1;d=11;break}d=c[a+8>>2]|0;c[g>>2]=d;a=c[a+12>>2]|0;if(!(oeb(b,d)|0)){a=0;d=11;break}d=ZH(b,g)|0;d=c[d>>2]|0;if(!(pEa(c[a+8>>2]|0,c[d+8>>2]|0)|0)){a=0;d=11;break}if(!(TX(c[a+12>>2]|0,c[d+12>>2]|0)|0)){a=0;d=11;break}if(!(pEa(c[a+16>>2]|0,c[d+16>>2]|0)|0)){a=0;d=11;break}a=c[f+4>>2]|0}if((d|0)==11){yb=h;return a|0}return 0}function yu(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;l=yb;yb=yb+32|0;f=l+20|0;g=l+16|0;h=l+12|0;i=l+8|0;j=l+4|0;k=l;T_a(b,c[d+12>>2]|0);T_a(b,c[d+20>>2]|0);e=b+28|0;tI(c[e>>2]|0,-3)|0;switch(c[d+8>>2]|0){case 0:{k=c[e>>2]|0;Pwb(f,7);YA(k,c[f>>2]|0)|0;break}case 1:{k=c[e>>2]|0;Pwb(g,11);YA(k,c[g>>2]|0)|0;break}case 2:{k=c[e>>2]|0;Pwb(h,14);YA(k,c[h>>2]|0)|0;break}case 3:{k=c[e>>2]|0;Pwb(i,17);YA(k,c[i>>2]|0)|0;break}case 4:{k=c[e>>2]|0;Pwb(j,20);YA(k,c[j>>2]|0)|0;break}case 5:{j=c[e>>2]|0;Pwb(k,23);YA(j,c[k>>2]|0)|0;break}default:{}}b=a[d+16>>0]|0;if((b&255)<16){Hmb(c[e>>2]|0,b);yb=l;return}else ma(112857,112765,915,112874)}function zu(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;f=yb;yb=yb+16|0;g=f;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[g+(d<<2)>>2]=0;d=d+1|0}e=a[h+11>>0]|0;i=e<<24>>24<0;d=i?c[h>>2]|0:h;e=d+(i?c[h+4>>2]|0:e&255)|0;while(1){if(d>>>0>=e>>>0){e=9;break}n=0;da(91,g|0,a[d>>0]|0);i=n;n=0;if(i&1){e=8;break}d=d+1|0}do if((e|0)==8){d=sa()|0;P()|0}else if((e|0)==9){d=(a[g+11>>0]|0)<0?c[g>>2]|0:g;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[b+(e<<2)>>2]=0;e=e+1|0}e=d+(y2(WCb(d)|0)|0)|0;while(1){if(d>>>0>=e>>>0){e=17;break}n=0;da(91,b|0,a[d>>0]|0);i=n;n=0;if(i&1){e=16;break}d=d+1|0}if((e|0)==16){d=sa()|0;P()|0;Chb(b);break}else if((e|0)==17){Chb(g);yb=f;return}}while(0);Chb(g);Ea(d|0)}function Au(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=yb;yb=yb+208|0;b=f+152|0;d=f;if(c[37104]|0)IWa(150452,66487)|0;e=mla(224)|0;n=0;ca(502,e|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;RCb(e);Ea(g|0)}n=0;da(220,b|0,a|0);g=n;n=0;if(g&1){b=ta(31856)|0;a=P()|0}else{n=0;a=U(81,c[b+40>>2]|0,0)|0;g=n;n=0;if(!(g&1)?(n=0,fa(84,d|0,e|0,a|0,0),g=n,n=0,!(g&1)):0){T$(d);Dub(b);yb=f;return e|0}g=ta(31856)|0;a=P()|0;Dub(b);b=g}if((a|0)!=(db(31856)|0)){g=b;Ea(g|0)}g=pa(b|0)|0;n=0;ca(504,g|0);g=n;n=0;if(!(g&1)?(n=0,ba(3),g=n,n=0,!(g&1)):0){n=0;ca(491,66512);g=n;n=0;if(g&1){sa()|0;P()|0;iSa()}else iSa()}a=sa()|0;P()|0;n=0;ba(5);g=n;n=0;if(g&1){g=ta(0)|0;P()|0;yub(g)}else{g=a;Ea(g|0)}return 0}function Bu(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;l=yb;yb=yb+16|0;j=l+8|0;i=l;k=b+33|0;if(a[k>>0]&1)BM(IWa(150620,113409)|0);f=b+28|0;tI(c[f>>2]|0,2)|0;f=c[f>>2]|0;e=c[d+4>>2]|0;zz(f,baa((e|0)==6?0:e)|0);e=d+8|0;f=b+60|0;g=c[f>>2]|0;if((g|0)==(c[b+64>>2]|0))_M(b+56|0,e);else{c[g>>2]=c[e>>2];c[f>>2]=(c[f>>2]|0)+4}g=d+12|0;nrb(j,g);Hib(i,g);g=j+4|0;h=c[i>>2]|0;f=c[i+4>>2]|0;e=d;b=0;while(1){if(!(dhb(c[j>>2]|0,c[g>>2]|0,h,f)|0))break;Qab(j)|0;if(a[k>>0]&1){Ym(IWa(Ym(IWa(150620,113424)|0,e)|0,113427)|0,b)|0;BM(150620);b=b+1|0}hob(j)}yb=l;return}function Cu(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;l=yb;yb=yb+112|0;e=l+100|0;g=l+96|0;h=l+4|0;i=l;f=a+16|0;d=c[f>>2]|0;do if((WCb(d)|0)==1){d=a+12|0;m=uXa(d,0)|0;m=c[m>>2]|0;c[g>>2]=c[a+8>>2];c[e>>2]=c[g>>2];if(BT(m,e)|0){j=c[f>>2]|0;k=10;break}f=uXa(d,0)|0;f=c[f>>2]|0;VA(h,pob(c[b+40>>2]|0)|0,f);m=QGa(h)|0;Fha(h);e=c[f+4>>2]|0;if(!m?!(vub(e)|0):0){Gsb(i,WCb(c[b+36>>2]|0)|0);m=Bq(i,a)|0;yb=l;return m|0}d=c[a+4>>2]|0;if((d|0)==(e|0)){m=f;yb=l;return m|0}if(!((vub(d)|0)&(e|0)==6))ma(110824,110886,47,110916)}else{j=d;k=10}while(0);if((k|0)==10?(WCb(j)|0)==0:0)Bib(a)|0;m=a;yb=l;return m|0}function Du(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;p=yb;yb=yb+32|0;i=p+16|0;h=p+8|0;j=p+4|0;m=p;f=b+8|0;nrb(i,f);Hib(h,f);f=i+4|0;g=c[h>>2]|0;h=c[h+4>>2]|0;e=a+28|0;n=a+32|0;k=b+32|0;o=a+36|0;l=a+40|0;while(1){if(!(dhb(c[i>>2]|0,c[f>>2]|0,g,h)|0))break;d=Qab(i)|0;do if(dub(c[d>>2]|0,c[e>>2]|0)|0){a=c[k>>2]|0;if(!a)a=0;else a=c[a+4>>2]|0;c[j>>2]=a;d=c[o>>2]|0;if(d>>>0<(c[l>>2]|0)>>>0){c[d>>2]=a;c[o>>2]=(c[o>>2]|0)+4;break}else{_M(n,j);break}}while(0);hob(i)}if(!(dub(c[b+24>>2]|0,c[e>>2]|0)|0)){yb=p;return}a=c[k>>2]|0;if(!a)a=0;else a=c[a+4>>2]|0;c[m>>2]=a;d=c[o>>2]|0;if(d>>>0<(c[l>>2]|0)>>>0){c[d>>2]=a;c[o>>2]=(c[o>>2]|0)+4;yb=p;return}else{_M(n,m);yb=p;return}}function Eu(b){b=b|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;g=h;e=b+8|0;f=b+36|0;do if(!(Hjb(c[e>>2]|0,c[f>>2]|0)|0)){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;D8(g,114315,Zzb(114315)|0);n=0;da(4022,b|0,g|0);i=n;n=0;if(i&1){i=sa()|0;P()|0;Chb(g);Ea(i|0)}else{Chb(g);break}}while(0);if(!(a[b+12>>0]&1)){g=e;g=c[g>>2]|0;i=c[f>>2]|0;b=i+1|0;c[f>>2]=b;g=c[g>>2]|0;i=g+i|0;i=a[i>>0]|0;yb=h;return i|0}else{g=IWa(150620,114339)|0;g=IWa(Zm(g,d[(c[c[e>>2]>>2]|0)+(c[f>>2]|0)>>0]|0)|0,112332)|0;BM(IWa(Ym(g,c[f>>2]|0)|0,139927)|0);g=e;g=c[g>>2]|0;i=c[f>>2]|0;b=i+1|0;c[f>>2]=b;g=c[g>>2]|0;i=g+i|0;i=a[i>>0]|0;yb=h;return i|0}return 0}function Fu(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;m=yb;yb=yb+16|0;j=m+12|0;h=m+8|0;k=m+4|0;l=m;i=Wdb(a+152|0)|0;if(c[37104]|0){IWa(150452,56221)|0;IWa(150452,56567)|0;a=0;while(1){if((a|0)==(d|0))break;if(a|0)IWa(150452,140151)|0;n=IWa(150452,113917)|0;IWa(IWa(n,c[b+(a<<2)>>2]|0)|0,113917)|0;a=a+1|0}if(!d)IWa(150452,133516)|0;IWa(150452,56483)|0;Pwb(h,e);vg(i,d,c[h>>2]|0,f,g);IWa(150452,56345)|0}h=i+8|0;a=0;while(1){if((a|0)==(d|0))break;Zsb(k,c[b+(a<<2)>>2]|0);c[j>>2]=c[k>>2];kla(h,j);a=a+1|0}Zsb(l,e);c[i+24>>2]=c[l>>2];c[i+28>>2]=f;c[i+32>>2]=g;_zb(i);yb=m;return i|0}function Gu(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=yb;yb=yb+64|0;t=u;l=b+56|0;a[l>>0]=1;m=b+16|0;o=b+72|0;p=b+84|0;q=b+60|0;r=b+72|0;s=b+76|0;g=b+84|0;h=b+88|0;i=b+96|0;j=b+108|0;f=b+36|0;k=t+16|0;e=1;while(1){if(!(e&1)){e=7;break}a[l>>0]=0;c4a(m,d);Ic(b,o,0)|0;Ic(b,p,0)|0;Rca(q);c[s>>2]=c[r>>2];c[h>>2]=c[g>>2];rHa(i);lFa(j);e=a[l>>0]|0;if(e&1){Y3(t);e=WCb(c[f>>2]|0)|0;n=0;ea(104,k|0,d|0,e|0);e=n;n=0;if(e&1){e=8;break}JXa(t);e=a[l>>0]|0}}if((e|0)==7){yb=u;return}else if((e|0)==8){u=sa()|0;P()|0;JXa(t);Ea(u|0)}}function Hu(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,o=0,p=0,q=0;q=yb;yb=yb+32|0;g=q+20|0;p=q+8|0;i=q+4|0;j=q;c[p>>2]=0;k=p+4|0;c[k>>2]=0;l=p+8|0;c[l>>2]=0;h=b+20|0;m=b+16|0;f=0;while(1){if(f>>>0>=(WCb(c[h>>2]|0)|0)>>>0)break;n=0;d=U(74,m|0,f|0)|0;e=n;n=0;if(e&1){o=11;break}n=0;d=U(96,a|0,c[d>>2]|0)|0;e=n;n=0;if(e&1){o=11;break}c[i>>2]=d;e=c[k>>2]|0;if(e>>>0>=(c[l>>2]|0)>>>0){n=0;da(372,p|0,i|0);e=n;n=0;if(e&1){o=11;break}}else{c[e>>2]=d;c[k>>2]=(c[k>>2]|0)+4}f=f+1|0}if((o|0)==11){q=sa()|0;P()|0;Vob(p);Ea(q|0)}d=c[b+8>>2]|0;c[j>>2]=c[b+12>>2];o=c[a+32>>2]|0;n=0;c[g>>2]=c[j>>2];d=W(15,o|0,d|0,g|0,p|0)|0;o=n;n=0;if(!(o&1)){Vob(p);yb=q;return d|0}q=sa()|0;P()|0;Vob(p);Ea(q|0);return 0}function Iu(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;p=yb;yb=yb+1040|0;l=p;n=p+1024|0;g=c[b>>2]|0;c[n>>2]=g;o=(a|0)!=0;h=o?e:256;i=o?a:l;e=g;a:do if((h|0)!=0&(g|0)!=0){a=0;j=d;k=i;while(1){i=j>>>2;d=i>>>0>=h>>>0;if(!(j>>>0>131|d)){d=j;i=k;break a}e=d?h:i;d=j-e|0;e=Ai(k,n,e,f)|0;if((e|0)==-1)break;i=(k|0)==(l|0);h=h-(i?0:e)|0;i=i?k:k+(e<<2)|0;a=e+a|0;e=c[n>>2]|0;g=e;if((h|0)!=0&(e|0)!=0){j=d;k=i}else break a}g=c[n>>2]|0;a=-1;i=k;h=0;e=g}else a=0;while(0);b:do if((e|0)!=0?(h|0)!=0&(d|0)!=0:0){while(1){g=Ku(i,e,d,f)|0;if((g+2|0)>>>0<3)break;e=e+g|0;d=d-g|0;h=h+-1|0;a=a+1|0;if(!((h|0)!=0&(d|0)!=0)){m=15;break}else i=i+4|0}if((m|0)==15){c[n>>2]=e;break}c[n>>2]=e;switch(g|0){case -1:{a=-1;break b}case 0:{c[n>>2]=0;e=0;break b}default:{c[f>>2]=0;break b}}}else e=g;while(0);if(o)c[b>>2]=e;yb=p;return a|0}function Ju(b){b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;d=f;a:do if(c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0){n=0;da(84,d|0,b|0);e=n;n=0;b:do if(e&1){d=ta(0)|0;P()|0}else{do if(a[d>>0]|0){e=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0;n=0;e=S(c[(c[e>>2]|0)+24>>2]|0,e|0)|0;g=n;n=0;if(!(g&1)){if((e|0)!=-1)break;g=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=0;da(85,g|0,c[g+16>>2]|1|0);g=n;n=0;if(!(g&1))break}g=ta(0)|0;P()|0;sF(d);d=g;break b}while(0);sF(d);break a}while(0);pa(d|0)|0;n=0;ca(496,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);g=n;n=0;if(!(g&1)){qa();break}d=sa()|0;P()|0;n=0;ba(5);g=n;n=0;if(g&1){g=ta(0)|0;P()|0;yub(g)}else Ea(d|0)}while(0);yb=f;return b|0}function Ku(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;l=yb;yb=yb+16|0;h=l;j=(g|0)==0?149756:g;g=c[j>>2]|0;a:do if(!e)if(!g)g=0;else k=19;else{i=(b|0)==0?h:b;if(!f)g=-2;else{if(!g){g=a[e>>0]|0;if(g<<24>>24>-1){c[i>>2]=g&255;g=g<<24>>24!=0&1;break}if(!(c[c[11771]>>2]|0)){c[i>>2]=g<<24>>24&57343;g=1;break}g=(g&255)+-194|0;if(g>>>0>50){k=19;break}g=c[23968+(g<<2)>>2]|0;h=f+-1|0;if(h){e=e+1|0;k=11}}else{h=f;k=11}b:do if((k|0)==11){b=d[e>>0]|0;m=b>>>3;if((m+-16|m+(g>>26))>>>0>7){k=19;break a}g=b+-128|g<<6;b=h+-1|0;if((g|0)<0)do{e=e+1|0;if(!b)break b;h=a[e>>0]|0;if((h&-64)<<24>>24!=-128){k=19;break a}g=(h&255)+-128|g<<6;b=b+-1|0}while((g|0)<0);c[j>>2]=0;c[i>>2]=g;g=f-b|0;break a}while(0);c[j>>2]=g;g=-2}}while(0);if((k|0)==19){c[j>>2]=0;c[37419]=84;g=-1}yb=l;return g|0}function Lu(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,o=0;o=yb;yb=yb+32|0;m=o+4|0;k=o;if(c[37104]|0)IWa(150452,71489)|0;Fbb(m);c[m+4>>2]=b;j=m+12|0;f=m+16|0;g=m+8|0;b=0;while(1){if(b>>>0>=e>>>0)break;h=c[d+(b<<2)>>2]|0;c[k>>2]=h;i=c[j>>2]|0;if(i>>>0>=(c[f>>2]|0)>>>0){n=0;da(212,g|0,k|0);i=n;n=0;if(i&1){l=17;break}}else{c[i>>2]=h;c[j>>2]=(c[j>>2]|0)+4}b=b+1|0}if((l|0)==17){o=sa()|0;P()|0;Xrb(m);Ea(o|0)}n=0;ca(503,148272);l=n;n=0;if(l&1){o=sa()|0;P()|0;Xrb(m);Ea(o|0)}g=c[a>>2]|0;f=(c[a+4>>2]|0)-g>>2;b=0;while(1){if(b>>>0>=f>>>0){l=15;break}h=c[g+(b<<2)>>2]|0;if(O1(h,m)|0){l=14;break}b=b+1|0}if((l|0)==14){KZa(148272);l=h;Xrb(m);yb=o;return l|0}else if((l|0)==15){KZa(148272);l=0;Xrb(m);yb=o;return l|0}return 0}function Mu(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;n=yb;yb=yb+32|0;f=n+20|0;j=n+16|0;k=n+8|0;l=n;m=b+12|0;if(a[m>>0]&1)BM(IWa(150620,113230)|0);g=rl(b)|0;c[d+28>>2]=g;g=IF(b)|0;if(a[m>>0]&1)BM(Ym(IWa(150620,116837)|0,g)|0);h=d+8|0;e=0;while(1){i=IF(b)|0;if((e|0)==(g|0))break;ci(k,b,i);c[j>>2]=c[k>>2];c[f>>2]=c[j>>2];kla(h,f);e=e+1|0}ci(l,b,i);c[d+24>>2]=c[l>>2];if(a[m>>0]&1){m=IWa(150620,116847)|0;BM(mpa(m,c[d+24>>2]|0)|0)}if(!(c[l+4>>2]|0)){_zb(d);yb=n;return}m=rl(b)|0;c[d+32>>2]=m;_zb(d);yb=n;return}function Nu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=yb;yb=yb+16|0;e=j+4|0;f=j;i=b+44|0;if(!(a[(c[i>>2]|0)+1>>0]&1)){yb=j;return}h=WCb(c[b+36>>2]|0)|0;c[f>>2]=c[d+24>>2];c[e>>2]=c[f>>2];e=rDa(h,e)|0;if(!(oGa(b,(e|0)!=0,d,128475)|0)){yb=j;return}Boa(b,c[(c[d+28>>2]|0)+4>>2]|0,1,d,128505)|0;g=d+12|0;f=WCb(c[g>>2]|0)|0;h=e+8|0;if(!(oGa(b,(f|0)==((c[e+12>>2]|0)-(c[h>>2]|0)>>2|0),d,128401)|0)){yb=j;return}f=d+8|0;e=0;while(1){if(e>>>0>=(WCb(c[g>>2]|0)|0)>>>0)break;k=uXa(f,e)|0;if(!(Boa(b,c[(c[k>>2]|0)+4>>2]|0,c[(c[h>>2]|0)+(e<<2)>>2]|0,d,128430)|0)?(a[(c[i>>2]|0)+8>>0]&1)==0:0)IWa(Ym(IWa(i7a(b)|0,128458)|0,e)|0,128472)|0;e=e+1|0}yb=j;return}function Ou(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0;d=a+8|0;Lt(a,a+4|0,d)|0;i=a+12|0;while(1){if((i|0)==(b|0))break;j=c[i>>2]|0;g=j+16|0;if(yea(+h[g>>3],+h[(c[d>>2]|0)+16>>3])|0){c[i>>2]=0;e=i;while(1){k=c[d>>2]|0;c[d>>2]=0;f=c[e>>2]|0;c[e>>2]=k;if(f|0){Htb(f);RCb(f)}if((d|0)==(a|0)){d=a;break}e=d+-4|0;if(yea(+h[g>>3],+h[(c[e>>2]|0)+16>>3])|0){k=d;d=e;e=k}else break}e=c[d>>2]|0;c[d>>2]=j;if(e|0){Htb(e);RCb(e)}}d=i;i=i+4|0}return}function Pu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;e=h;i=b+36|0;f=c[i>>2]|0;g=Yl(b)|0;f=(c[i>>2]|0)-f|0;do if(f>>>0>d>>>0){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;D8(e,114179,Zzb(114179)|0);n=0;da(4022,b|0,e|0);i=n;n=0;if(i&1){i=sa()|0;P()|0;Chb(e);Ea(i|0)}else{Chb(e);break}}while(0);f=d-f|0;if(xsb(g,134035)|0){Qf(b,f);yb=h;return}if(xsb(g,134064)|0)IWa(150620,114201)|0;e=c[b>>2]|0;Q7(e+128|0,(((c[e+132>>2]|0)-(c[e+128>>2]|0)|0)/24|0)+1|0);e=c[(c[b>>2]|0)+132>>2]|0;zZa(e+-24|0,g)|0;Hwa(e+-12|0,f);e=e+-12|0;d=0;while(1){if((d|0)==(f|0))break;i=Eu(b)|0;a[(c[e>>2]|0)+d>>0]=i;d=d+1|0}yb=h;return}function Qu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=((c[a+4>>2]|0)-(c[a>>2]|0)>>2)+-2|0;a:while(1){if((g|0)<=-1){e=17;break}h=c[a>>2]|0;d=c[h+(g<<2)>>2]|0;h=c[h+(g+1<<2)>>2]|0;f=c[d>>2]|0;if(OBb(f)|0){f=ufb(d)|0;e=f+16|0;f=f+12|0;d=0;while(1){if(d>>>0>=((WCb(c[e>>2]|0)|0)+-1|0)>>>0)break;i=uXa(f,d)|0;if((c[i>>2]|0)==(h|0)){d=0;e=18;break a}d=d+1|0}i=cWa(f)|0;if((c[i>>2]|0)!=(h|0)){e=9;break}}else{if(!(VBb(f)|0)){e=15;break}d=Tfb(d)|0;if((h|0)==(c[d+8>>2]|0)){d=1;e=18;break}e=c[d+16>>2]|0;if(!e){d=0;e=18;break}if(!((h|0)==(e|0)?1:(h|0)==(c[d+12>>2]|0))){e=14;break}}g=g+-1|0}if((e|0)==9)ma(75029,75057,37,75096);else if((e|0)==14)ma(75109,75057,43,75096);else if((e|0)==15)return (Qyb(f)|0)^1|0;else if((e|0)==17){i=(c[b+12>>2]|0)!=0;return i|0}else if((e|0)==18)return d|0;return 0}function Ru(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;c[e>>2]=b;c[h>>2]=f;b=c[e>>2]|0;a:while(1){if(b>>>0>=d>>>0){b=0;break}i=c[b>>2]|0;if(i>>>0>1114111|(i&-2048|0)==55296){b=2;break}do if(i>>>0>=128){if(i>>>0<2048){b=c[h>>2]|0;if((g-b|0)<2){b=1;break a}c[h>>2]=b+1;a[b>>0]=i>>>6|192;f=c[h>>2]|0;c[h>>2]=f+1;a[f>>0]=i&63|128;break}b=c[h>>2]|0;f=g-b|0;if(i>>>0<65536){if((f|0)<3){b=1;break a}c[h>>2]=b+1;a[b>>0]=i>>>12|224;f=c[h>>2]|0;c[h>>2]=f+1;a[f>>0]=i>>>6&63|128;f=c[h>>2]|0;c[h>>2]=f+1;a[f>>0]=i&63|128;break}else{if((f|0)<4){b=1;break a}c[h>>2]=b+1;a[b>>0]=i>>>18|240;f=c[h>>2]|0;c[h>>2]=f+1;a[f>>0]=i>>>12&63|128;f=c[h>>2]|0;c[h>>2]=f+1;a[f>>0]=i>>>6&63|128;f=c[h>>2]|0;c[h>>2]=f+1;a[f>>0]=i&63|128;break}}else{b=c[h>>2]|0;if((g-b|0)<1){b=1;break a}c[h>>2]=b+1;a[b>>0]=i}while(0);b=(c[e>>2]|0)+4|0;c[e>>2]=b}return b|0}function Su(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=yb;yb=yb+16|0;d=g;Pwb(d,0);switch(c[b+8>>2]|0){case 1:{Vra(c[a>>2]|0,51751);h=c[37176]|0;e=b+16|0;f=uXa(e,0)|0;f=uga(a,c[f>>2]|0,c[37044]|0)|0;e=uXa(e,0)|0;e=c1(h,mG(f,Yga(c[(c[e>>2]|0)+4>>2]|0)|0)|0)|0;f=e;c[d>>2]=f;d=a;break}case 0:{Vra(c[a>>2]|0,51766);e=a7(c[37177]|0)|0;f=e;c[d>>2]=f;d=a;break}default:{h=a7(c[37041]|0)|0;yb=g;return h|0}}if(!(HYa(c[d>>2]|0,b)|0)){h=f;yb=g;return h|0}h=dWa(c[a+4>>2]|0)|0;h=mv(h,c[37277]|0,e)|0;yb=g;return h|0}function Tu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+32|0;f=h+24|0;d=h+16|0;g=h;if((c[b+16>>2]|0)==0?(c[b+12>>2]|0)==0:0){d=Rqb(c[(c[a+44>>2]|0)+-4>>2]|0)|0;if((d|0?(e=d+12|0,i=cWa(e)|0,(b|0)==(c[i>>2]|0)):0)?(i=cWa(e)|0,!(vub(c[(c[i>>2]|0)+4>>2]|0)|0)):0){e=O4(a+60|0,b+8|0)|0;E0a(g,b,d);d=e+4|0;a=c[d>>2]|0;if(a>>>0<(c[e+8>>2]|0)>>>0){c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[d>>2]=(c[d>>2]|0)+12;yb=h;return}else{$F(e,g);yb=h;return}}i=b+8|0;GG(f,a+96|0,i,i);yb=h;return}i=b+8|0;GG(d,a+96|0,i,i);yb=h;return}function Uu(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Zzb(134035)|0;f=b+11|0;e=a[f>>0]|0;do if((d|0)==((e<<24>>24<0?c[b+4>>2]|0:e&255)|0)){n=0;d=V(54,b|0,134035,d|0)|0;g=n;n=0;if(g&1){g=ta(0)|0;P()|0;yub(g)}if(!d)return 1;else{e=a[f>>0]|0;break}}while(0);d=Zzb(134040)|0;do if((d|0)==((e<<24>>24<0?c[b+4>>2]|0:e&255)|0)){n=0;d=V(54,b|0,134040,d|0)|0;g=n;n=0;if(g&1){g=ta(0)|0;P()|0;yub(g)}if(!d)return 1;else{e=a[f>>0]|0;break}}while(0);g=e<<24>>24<0;d=g?c[b>>2]|0:b;f=Zzb(109861)|0;if(!f)return 1;h=d+(g?c[b+4>>2]|0:e&255)|0;f=e$(d,h,109861,109861+f|0)|0;if((f|0)!=(h|0)&(f|0)==(d|0))return 1;d=g?c[b>>2]|0:b;f=Zzb(109868)|0;if(!f)return 1;else{h=d+(g?c[b+4>>2]|0:e&255)|0;b=e$(d,h,109868,109868+f|0)|0;return (b|0)==(d|0)&(b|0)!=(h|0)|0}return 0}function Vu(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;l=yb;yb=yb+80|0;i=l+48|0;g=l+44|0;j=l+40|0;k=l+28|0;h=l+24|0;e=l;Gsb(g,WCb(c[b+36>>2]|0)|0);c[j>>2]=c[37313];b=c[37314]|0;c[37314]=b+1;Bqb(e,b);b=i;f=b+24|0;do{a[b>>0]=a[e>>0]|0;b=b+1|0;e=e+1|0}while((b|0)<(f|0));f=D7(g,i)|0;c[h>>2]=f;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;n=0;da(174,k|0,1);f=n;n=0;if(f&1){l=sa()|0;P()|0;Qcb(k);Ea(l|0)}ssa(k,h,h+4|0);e=c[g>>2]|0;n=0;c[i>>2]=c[j>>2];b=W(14,e|0,i|0,k|0,0)|0;j=n;n=0;if(j&1){l=sa()|0;P()|0;Vob(k);Ea(l|0)}n=0;b=V(57,e|0,b|0,d|0)|0;d=n;n=0;if(d&1){l=sa()|0;P()|0;Vob(k);Ea(l|0)}else{Vob(k);yb=l;return b|0}return 0}function Wu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0;i=Lt(a,b,d)|0;f=c[e>>2]|0;g=c[d>>2]|0;if(!(yea(+h[f+16>>3],+h[g+16>>3])|0))return i|0;c[d>>2]=f;c[e>>2]=g;f=c[d>>2]|0;g=c[b>>2]|0;if(!(yea(+h[f+16>>3],+h[g+16>>3])|0)){i=i+1|0;return i|0}c[b>>2]=f;c[d>>2]=g;f=c[b>>2]|0;g=c[a>>2]|0;if(!(yea(+h[f+16>>3],+h[g+16>>3])|0)){i=i+2|0;return i|0}c[a>>2]=f;c[b>>2]=g;i=i+3|0;return i|0}function Xu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h;if((b|0)==(d|0))ma(73345,72707,870,73358);f=c[b+12>>2]|0;do if(!f){e=b+8|0;f=d+8|0;if(!(c[e>>2]|0)){c[f>>2]=0;g=d+12|0;e=c[g>>2]|0;c[g>>2]=0;if(!e)break;Vob(e);RCb(e);break}if(c[f>>2]|0)if(!(c[d+12>>2]|0)){Gsb(g,c[c[a>>2]>>2]|0);g=hIa(c[g>>2]|0,8,c[f>>2]|0,c[e>>2]|0)|0;c[f>>2]=g;break}else ma(73391,72707,889,73358)}else{e=c[d+12>>2]|0;if(e|0){Et(e,c[e+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0;break}if(c[d+8>>2]|0)ma(73374,72707,873,73358)}while(0);a=c[b+16>>2]|0;if(!a){yb=h;return}e=d+16|0;f=c[e>>2]|0;if(!f){c[e>>2]=a;yb=h;return}if(Mdb(f,a)|0){yb=h;return}else ma(73411,72707,904,73358)}function Yu(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,o=0;o=yb;yb=yb+80|0;g=o+56|0;i=o+52|0;j=o+48|0;m=o+36|0;k=o+24|0;e=o;if((c[d+4>>2]|0)==6){yb=o;return}Gsb(i,WCb(c[b+36>>2]|0)|0);h=Ok(d)|0;c[j>>2]=h;c[k>>2]=c[d+24>>2];h=k+4|0;Bqb(e,WCb(c[d+12>>2]|0)|0);l=g;f=l+24|0;do{a[l>>0]=a[e>>0]|0;l=l+1|0;e=e+1|0}while((l|0)<(f|0));l=D7(i,g)|0;c[h>>2]=l;c[k+8>>2]=c[d+28>>2];c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;n=0;da(174,m|0,3);l=n;n=0;if(l&1){o=sa()|0;P()|0;Qcb(m);Ea(o|0)}ssa(m,k,k+12|0);e=c[i>>2]|0;n=0;c[g>>2]=c[j>>2];e=W(14,e|0,g|0,m|0,0)|0;l=n;n=0;if(l&1){o=sa()|0;P()|0;Vob(m);Ea(o|0)}Pwb(c[b+16>>2]|0,e);Vob(m);yb=o;return}function Zu(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,o=0;o=yb;yb=yb+80|0;g=o+56|0;i=o+48|0;j=o+44|0;m=o+32|0;k=o+24|0;e=o;l=d+4|0;if((c[l>>2]|0)==6){yb=o;return}Gsb(i,WCb(c[b+36>>2]|0)|0);h=pk(d)|0;c[j>>2]=h;c[k>>2]=c[d+24>>2];h=k+4|0;Bqb(e,WCb(c[d+12>>2]|0)|0);f=g;d=f+24|0;do{a[f>>0]=a[e>>0]|0;f=f+1|0;e=e+1|0}while((f|0)<(d|0));f=D7(i,g)|0;c[h>>2]=f;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;n=0;da(174,m|0,2);h=n;n=0;if(h&1){o=sa()|0;P()|0;Qcb(m);Ea(o|0)}ssa(m,k,k+8|0);d=c[l>>2]|0;l=c[i>>2]|0;n=0;c[g>>2]=c[j>>2];d=W(14,l|0,g|0,m|0,d|0)|0;l=n;n=0;if(l&1){o=sa()|0;P()|0;Vob(m);Ea(o|0)}Pwb(c[b+16>>2]|0,d);Vob(m);yb=o;return}function _u(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+80|0;b=j+64|0;h=j+56|0;g=j+48|0;e=j+4|0;f=j;d=c[a+8>>2]|0;if(eCb(d)|0){c[f>>2]=d;c[b>>2]=c[f>>2];pY(e,a,b);i=pga(e+32|0)|0;c[a+4>>2]=i;n=0;ea(207,a|0,0,0);i=n;n=0;if(i&1){j=sa()|0;P()|0;jhb(e);Ea(j|0)}jhb(e);yb=j;return}if(!(WCb(c[a+16>>2]|0)|0)){c[a+4>>2]=0;yb=j;return}e=cWa(a+12|0)|0;e=c[(c[e>>2]|0)+4>>2]|0;f=a+4|0;c[f>>2]=e;if(vub(e)|0|(e|0)==6){yb=j;return}d=a+12|0;nrb(h,d);Hib(g,d);d=h+4|0;e=c[g>>2]|0;b=c[g+4>>2]|0;while(1){if(!(dhb(c[h>>2]|0,c[d>>2]|0,e,b)|0)){i=12;break}g=Qab(h)|0;if((c[(c[g>>2]|0)+4>>2]|0)==6)break;hob(h)}if((i|0)==12){yb=j;return}c[f>>2]=6;yb=j;return}function $u(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;switch(e|0){case 7:{e=ifb(c[b+4>>2]|0)|0;c[e+8>>2]=0;f=Ax(b,16)|0;a[e+16>>0]=f;break}case 11:{e=ifb(c[b+4>>2]|0)|0;c[e+8>>2]=1;f=Ax(b,8)|0;a[e+16>>0]=f;break}case 14:{e=ifb(c[b+4>>2]|0)|0;c[e+8>>2]=2;f=Ax(b,4)|0;a[e+16>>0]=f;break}case 17:{e=ifb(c[b+4>>2]|0)|0;c[e+8>>2]=3;f=Ax(b,2)|0;a[e+16>>0]=f;break}case 20:{e=ifb(c[b+4>>2]|0)|0;c[e+8>>2]=4;f=Ax(b,4)|0;a[e+16>>0]=f;break}case 23:{e=ifb(c[b+4>>2]|0)|0;c[e+8>>2]=5;f=Ax(b,2)|0;a[e+16>>0]=f;break}default:{f=0;return f|0}}f=rl(b)|0;c[e+20>>2]=f;f=rl(b)|0;c[e+12>>2]=f;zna(e);c[d>>2]=e;f=1;return f|0}function av(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=yb;yb=yb+32|0;k=l+8|0;i=l+4|0;j=l;v2(k,b);h=c[k+4>>2]|0;g=a+56|0;b=c[k>>2]|0;a:while(1){f=b;if((h|0)==(f|0)){b=0;a=18;break}c[i>>2]=c[b>>2];n=0;b=U(99,c[g>>2]|0,i|0)|0;e=n;n=0;if(e&1){a=19;break}e=b+4|0;b=c[b>>2]|0;while(1){if((e|0)==(b|0))break;a=c[b+16>>2]|0;c[j>>2]=a;if(a|0?lC(d,j)|0:0){b=1;a=18;break a}a=b;b=c[a+4>>2]|0;b:do if(!b)while(1){b=c[a+8>>2]|0;if((a|0)==(c[b>>2]|0))break b;a=b}else while(1){a=c[b>>2]|0;if(!a)break;b=a}while(0)}b=f+4|0}if((a|0)==18){Htb(k);yb=l;return b|0}else if((a|0)==19){l=sa()|0;P()|0;Htb(k);Ea(l|0)}return 0}function bv(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,o=0,p=0,q=0,r=0;l=yb;yb=yb+32|0;k=l;b=l+12|0;i=l+8|0;j=l+4|0;a[b>>0]=a[136640]|0;a[b+1>>0]=a[136641]|0;a[b+2>>0]=a[136642]|0;a[b+3>>0]=a[136643]|0;a[b+4>>0]=a[136644]|0;a[b+5>>0]=a[136645]|0;m=e+4|0;S5(b+1|0,141194,1,c[m>>2]|0);p=(c[m>>2]|0)>>>9&1;r=p+13|0;h=fb()|0;o=yb;yb=yb+((1*r|0)+15&-16)|0;q=t8a()|0;c[k>>2]=g;g=o+(Hva(o,r,q,b,k)|0)|0;m=XZ(o,g,c[m>>2]|0)|0;b=yb;yb=yb+((1*((p<<1|24)+-1<<2)|0)+15&-16)|0;anb(j,e);n=0;ia(8,o|0,m|0,g|0,b|0,k|0,i|0,j|0);g=n;n=0;if(g&1){r=sa()|0;P()|0;XWa(j);Ea(r|0)}else{XWa(j);r=tv(c[d>>2]|0,b,c[k>>2]|0,c[i>>2]|0,e,f)|0;eb(h|0);yb=l;return r|0}return 0}function cv(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,o=0,p=0,q=0,r=0;l=yb;yb=yb+32|0;k=l;b=l+12|0;i=l+8|0;j=l+4|0;a[b>>0]=a[136640]|0;a[b+1>>0]=a[136641]|0;a[b+2>>0]=a[136642]|0;a[b+3>>0]=a[136643]|0;a[b+4>>0]=a[136644]|0;a[b+5>>0]=a[136645]|0;m=e+4|0;S5(b+1|0,141194,1,c[m>>2]|0);p=(c[m>>2]|0)>>>9&1;r=p+13|0;h=fb()|0;o=yb;yb=yb+((1*r|0)+15&-16)|0;q=t8a()|0;c[k>>2]=g;g=o+(Hva(o,r,q,b,k)|0)|0;m=XZ(o,g,c[m>>2]|0)|0;b=yb;yb=yb+((1*((p<<1|24)+-1|0)|0)+15&-16)|0;anb(j,e);n=0;ia(6,o|0,m|0,g|0,b|0,k|0,i|0,j|0);g=n;n=0;if(g&1){r=sa()|0;P()|0;XWa(j);Ea(r|0)}else{XWa(j);r=Gw(c[d>>2]|0,b,c[k>>2]|0,c[i>>2]|0,e,f)|0;eb(h|0);yb=l;return r|0}return 0}function dv(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;h=b+4|0;g=WCb(c[h>>2]|0)|0;f=e+4|0;IWa(g,ala(c[f>>2]|0)|0)|0;if(a[e+20>>0]&1)IWa(c[h>>2]|0,98184)|0;IWa(c[h>>2]|0,98207)|0;g=e+8|0;b=a[g>>0]|0;if(!((b&255)>=4?!((c[f>>2]|0)==2&(b&255)<8):0)){switch(b<<24>>24){case 1:{SEa(c[h>>2]|0,56)|0;break}case 2:{IWa(c[h>>2]|0,98165)|0;break}case 4:{IWa(c[h>>2]|0,98168)|0;break}default:Ta()}IWa(c[h>>2]|0,(a[e+9>>0]&1)==0?98150:98213)|0}b=e+12|0;if(WCb(c[b>>2]|0)|0){f=IWa(c[h>>2]|0,98135)|0;Ym(f,WCb(c[b>>2]|0)|0)|0}b=e+16|0;e=WCb(c[b>>2]|0)|0;if((e|0)==(d[g>>0]|0|0))return;h=IWa(c[h>>2]|0,98199)|0;Ym(h,WCb(c[b>>2]|0)|0)|0;return}function ev(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;a:do if(b>>>0>>0){b:do if((a[b>>0]|0)!=95){if((cc(b,d,e)|0)!=(d|0)){c[f>>2]=-2;break a}}else{if((d-b|0)<=3){c[f>>2]=-2;break a}switch(a[b+1>>0]|0){case 90:{g=b+2|0;b=Nc(g,d,e)|0;if(!((b|0)==(g|0)|(b|0)==(d|0))?(a[b>>0]|0)==46:0)b=Yp(b,d,e)|0;if((b|0)==(d|0))break b;c[f>>2]=-2;break a}case 95:{g=11;break}default:{}}if(((g|0)==11?(a[b+2>>0]|0)==95:0)?(a[b+3>>0]|0)==90:0){g=b+4|0;b=Nc(g,d,e)|0;if((b|0)==(g|0)|(b|0)==(d|0)){c[f>>2]=-2;break a}if((oF(b,d,c[e>>2]|0,c[e+4>>2]|0)|0)==(d|0))break;c[f>>2]=-2;break a}c[f>>2]=-2;break a}while(0);if((c[f>>2]|0)==0?(c[e>>2]|0)==(c[e+4>>2]|0):0)c[f>>2]=-2}else c[f>>2]=-2;while(0);return}function fv(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,o=0,p=0,q=0,r=0;l=yb;yb=yb+32|0;k=l;b=l+12|0;i=l+8|0;j=l+4|0;a[b>>0]=a[136640]|0;a[b+1>>0]=a[136641]|0;a[b+2>>0]=a[136642]|0;a[b+3>>0]=a[136643]|0;a[b+4>>0]=a[136644]|0;a[b+5>>0]=a[136645]|0;m=e+4|0;S5(b+1|0,141194,0,c[m>>2]|0);p=(c[m>>2]|0)>>>9&1;r=p|12;h=fb()|0;o=yb;yb=yb+((1*r|0)+15&-16)|0;q=t8a()|0;c[k>>2]=g;g=o+(Hva(o,r,q,b,k)|0)|0;m=XZ(o,g,c[m>>2]|0)|0;b=yb;yb=yb+((1*((p<<1|21)<<2)|0)+15&-16)|0;anb(j,e);n=0;ia(8,o|0,m|0,g|0,b|0,k|0,i|0,j|0);g=n;n=0;if(g&1){r=sa()|0;P()|0;XWa(j);Ea(r|0)}else{XWa(j);r=tv(c[d>>2]|0,b,c[k>>2]|0,c[i>>2]|0,e,f)|0;eb(h|0);yb=l;return r|0}return 0}function gv(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;j=yb;yb=yb+16|0;g=j+4|0;h=j;i=Web(a+152|0)|0;if(c[37104]|0){IWa(150452,56221)|0;IWa(150452,56617)|0;a=0;while(1){if((a|0)==(f|0))break;if(a|0)IWa(150452,140151)|0;l=IWa(150452,55712)|0;k=O8(148192,e+(a<<2)|0)|0;IWa(Ym(l,c[k>>2]|0)|0,139976)|0;a=a+1|0}if(!f)IWa(150452,133516)|0;IWa(150452,56483)|0;Pwb(g,d);Jg(i,c[g>>2]|0,f);IWa(150452,56345)|0}c[i+8>>2]=b;if(d|0){Zsb(h,d);c[i+12>>2]=c[h>>2]}b=i+16|0;a=0;while(1){if((a|0)==(f|0))break;Wla(b,c[e+(a<<2)>>2]|0);a=a+1|0}Fla(i);yb=j;return i|0}function hv(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=b+11|0;g=a[i>>0]|0;h=g<<24>>24<0;if(h){k=c[b+4>>2]|0;f=(c[b+8>>2]&2147483647)+-1|0}else{k=g&255;f=10}d=k>>>0<11;j=d?10:(k+16&-16)+-1|0;a:do if((j|0)!=(f|0)){do if(d){d=c[b>>2]|0;if(h){e=d;g=0;f=b;h=15}else{dib(b,d,(g&255)+1|0)|0;RCb(d);h=18}}else{e=j+1|0;if(j>>>0<=f>>>0){n=0;d=S(217,e|0)|0;f=n;n=0;if(f&1){k=ta(0)|0;P()|0;pa(k|0)|0;qa();break a}}else d=mla(e)|0;if(h){e=c[b>>2]|0;g=1;f=d;h=15;break}else{dib(d,b,(g&255)+1|0)|0;f=d;d=b+4|0;h=17;break}}while(0);if((h|0)==15){d=b+4|0;dib(f,e,(c[d>>2]|0)+1|0)|0;RCb(e);if(g){e=j+1|0;h=17}else h=18}if((h|0)==17){c[b+8>>2]=e|-2147483648;c[d>>2]=k;c[b>>2]=f;break}else if((h|0)==18){a[i>>0]=k;break}}while(0);return}function iv(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;j=yb;yb=yb+16|0;g=j+4|0;h=j;i=Xeb(a+152|0)|0;if(c[37104]|0){IWa(150452,56221)|0;IWa(150452,56617)|0;a=0;while(1){if((a|0)==(e|0))break;if(a|0)IWa(150452,140151)|0;l=IWa(150452,55712)|0;k=O8(148192,d+(a<<2)|0)|0;IWa(Ym(l,c[k>>2]|0)|0,139976)|0;a=a+1|0}if(!e)IWa(150452,133516)|0;IWa(150452,56483)|0;Pwb(g,b);ug(i,56659,c[g>>2]|0,56672,e,f);IWa(150452,56345)|0}Zsb(h,b);c[i+24>>2]=c[h>>2];b=i+8|0;a=0;while(1){if((a|0)==(e|0))break;Wla(b,c[d+(a<<2)>>2]|0);a=a+1|0}c[i+4>>2]=f;Crb(i);yb=j;return i|0}function jv(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,o=0,p=0,q=0,r=0;l=yb;yb=yb+32|0;k=l;b=l+12|0;i=l+8|0;j=l+4|0;a[b>>0]=a[136640]|0;a[b+1>>0]=a[136641]|0;a[b+2>>0]=a[136642]|0;a[b+3>>0]=a[136643]|0;a[b+4>>0]=a[136644]|0;a[b+5>>0]=a[136645]|0;m=e+4|0;S5(b+1|0,141194,0,c[m>>2]|0);p=(c[m>>2]|0)>>>9&1;r=p|12;h=fb()|0;o=yb;yb=yb+((1*r|0)+15&-16)|0;q=t8a()|0;c[k>>2]=g;g=o+(Hva(o,r,q,b,k)|0)|0;m=XZ(o,g,c[m>>2]|0)|0;b=yb;yb=yb+((1*(p<<1|21)|0)+15&-16)|0;anb(j,e);n=0;ia(6,o|0,m|0,g|0,b|0,k|0,i|0,j|0);g=n;n=0;if(g&1){r=sa()|0;P()|0;XWa(j);Ea(r|0)}else{XWa(j);r=Gw(c[d>>2]|0,b,c[k>>2]|0,c[i>>2]|0,e,f)|0;eb(h|0);yb=l;return r|0}return 0}function kv(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;l=yb;yb=yb+48|0;k=l+24|0;i=l+12|0;j=l;xy(k,b);f=c[a+4>>2]|0;g=j+4|0;h=j+8|0;d=k+4|0;e=i+4|0;b=c[a>>2]|0;while(1){if((b|0)==(f|0)){b=1;a=9;break}n=0;da(697,i|0,c[b>>2]|0);a=n;n=0;if(a&1){a=6;break}c[j>>2]=0;c[g>>2]=0;c[h>>2]=0;n=0;Y(24,c[k>>2]|0,d|0,c[i>>2]|0,e|0,j|0)|0;a=n;n=0;if(a&1){a=7;break}a=(c[g>>2]|0)==(c[j>>2]|0);Vob(j);Khb(i);if(!a){b=0;a=9;break}b=b+4|0}if((a|0)==6){l=sa()|0;P()|0;Khb(k);Ea(l|0)}else if((a|0)==7){l=sa()|0;P()|0;Vob(j);Khb(i);Khb(k);Ea(l|0)}else if((a|0)==9){Khb(k);yb=l;return b|0}return 0}function lv(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;do if(!(dub(b,c[d+8>>2]|0)|0)){if(!(dub(b,c[d>>2]|0)|0)){i=c[b+8>>2]|0;Vb[c[(c[i>>2]|0)+24>>2]&15](i,d,e,f,g);break}if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;i=d+44|0;if((c[i>>2]|0)==4)break;f=d+52|0;a[f>>0]=0;j=d+53|0;a[j>>0]=0;b=c[b+8>>2]|0;Wb[c[(c[b>>2]|0)+20>>2]&15](b,d,e,e,1,g);if(a[j>>0]|0)if(!(a[f>>0]|0)){f=1;b=11}else b=15;else{f=0;b=11}do if((b|0)==11){c[h>>2]=e;j=d+40|0;c[j>>2]=(c[j>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1;if(f){b=15;break}else{f=4;break}}if(f)b=15;else f=4}while(0);if((b|0)==15)f=3;c[i>>2]=f;break}if((f|0)==1)c[d+32>>2]=1}else IPa(d,e,f);while(0);return}function mv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g+4|0;c[e>>2]=b;f=g;if(dub(b,c[37277]|0)|0){b=WCb(a)|0;if(bCb(c[a>>2]|0)|0){e=kfb()|0;a=Dbb(b)|0;Pwb(f,yFa(e,c[a>>2]|0,d)|0);f=c[f>>2]|0;yb=g;return f|0}else{Pwb(f,uJa(ehb()|0,a,d)|0);f=c[f>>2]|0;yb=g;return f|0}}else if(dub(b,c[37266]|0)|0){e=WCb(INa(3)|0)|0;Pwb(f,KJa(KJa(KJa(e,WGa(148832)|0)|0,a)|0,d)|0);f=c[f>>2]|0;yb=g;return f|0}else{b=WCb(INa(4)|0)|0;b=KJa(b,WGa(148804)|0)|0;Pwb(f,KJa(KJa(KJa(b,WGa(e)|0)|0,a)|0,d)|0);f=c[f>>2]|0;yb=g;return f|0}return 0}function nv(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=c[b>>2]|0;f=c[b+4>>2]|0;d=((c[d>>2]|0)-g<<3)+(c[d+4>>2]|0)-f|0;if((d|0)<=0){b=c[e>>2]|0;c[a>>2]=b;b=a+4|0;e=e+4|0;e=c[e>>2]|0;c[b>>2]=e;return}if(!f){h=e;f=g}else{i=32-f|0;h=(d|0)<(i|0)?d:i;i=-1<>>(i-h|0);g=c[g>>2]&i;f=c[e>>2]|0;c[f>>2]=c[f>>2]&~i;f=c[e>>2]|0;c[f>>2]=c[f>>2]|g;f=e+4|0;g=h+(c[f>>2]|0)|0;c[e>>2]=(c[e>>2]|0)+(g>>>5<<2);c[f>>2]=g&31;f=(c[b>>2]|0)+4|0;c[b>>2]=f;d=d-h|0;h=e}g=(d|0)/32|0;Pxa(c[e>>2]|0,f|0,g<<2|0)|0;d=d-(g<<5)|0;c[h>>2]=(c[h>>2]|0)+(g<<2);if((d|0)<=0){i=c[e>>2]|0;c[a>>2]=i;i=a+4|0;e=e+4|0;e=c[e>>2]|0;c[i>>2]=e;return}i=(c[b>>2]|0)+(g<<2)|0;c[b>>2]=i;g=-1>>>(32-d|0);b=c[i>>2]&g;i=c[h>>2]|0;c[i>>2]=c[i>>2]&~g;i=c[h>>2]|0;c[i>>2]=c[i>>2]|b;c[e+4>>2]=d;i=c[e>>2]|0;c[a>>2]=i;i=a+4|0;e=e+4|0;e=c[e>>2]|0;c[i>>2]=e;return}function ov(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=yb;yb=yb+16|0;i=m+4|0;j=m;RKa(d);c[d>>2]=46120;c[d+32>>2]=0;c[d+36>>2]=0;c[d+40>>2]=0;e=d+52|0;k=d+68|0;l=d+98|0;h=d+4|0;f=e;g=f+44|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));b[e+44>>1]=0;a[e+46>>0]=0;wjb(i,c[h>>2]|0);n=0;e=S(295,c[i>>2]|0)|0;g=n;n=0;if(g&1){g=ta(0)|0;P()|0;yub(g)}XWa(i);do if(e){wjb(j,c[h>>2]|0);n=0;e=U(66,c[j>>2]|0,151628)|0;i=n;n=0;if(!(i&1)){c[k>>2]=e;XWa(j);k=c[k>>2]|0;k=(Eb[c[(c[k>>2]|0)+28>>2]&511](k)|0)&1;a[l>>0]=k;break}m=sa()|0;P()|0;XWa(j);olb(d);Ea(m|0)}while(0);n=0;V(c[(c[d>>2]|0)+12>>2]|0,d|0,0,4096)|0;l=n;n=0;if(!(l&1)){yb=m;return}m=sa()|0;P()|0;olb(d);Ea(m|0)}function pv(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;j=c[d+4>>2]|0;f=c[e+4>>2]|0;k=j+-1|0;l=(j&k|0)==0;if(!l)if(f>>>0>>0)i=f;else i=(f>>>0)%(j>>>0)|0;else i=f&k;h=(c[d>>2]|0)+(i<<2)|0;m=c[h>>2]|0;while(1){f=c[m>>2]|0;if((f|0)==(e|0))break;m=f}if((m|0)!=(d+8|0)){f=c[m+4>>2]|0;if(!l){if(f>>>0>=j>>>0)f=(f>>>0)%(j>>>0)|0}else f=f&k;if((f|0)==(i|0))h=e;else g=15}else g=15;do if((g|0)==15){f=c[e>>2]|0;if(f|0){f=c[f+4>>2]|0;if(!l){if(f>>>0>=j>>>0)f=(f>>>0)%(j>>>0)|0}else f=f&k;if((f|0)==(i|0)){h=e;break}}c[h>>2]=0;h=e}while(0);g=c[h>>2]|0;f=g;if(g){g=c[g+4>>2]|0;if(!l){if(g>>>0>=j>>>0)g=(g>>>0)%(j>>>0)|0}else g=g&k;if((g|0)!=(i|0)){c[(c[d>>2]|0)+(g<<2)>>2]=m;f=c[e>>2]|0}}c[m>>2]=f;c[h>>2]=0;m=d+12|0;c[m>>2]=(c[m>>2]|0)+-1;c[b>>2]=e;c[b+4>>2]=d+8;a[b+8>>0]=1;return}function qv(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0,g=0,h=0.0,i=0,j=0,k=0,l=0,m=0.0;l=yb;yb=yb+16|0;j=l+4|0;k=l;c[j>>2]=0;d=j+4|0;c[d>>2]=0;c[j+8>>2]=0;n=0;fa(100,c[a>>2]|0,b|0,j|0,k|0);i=n;n=0;if(i&1){l=sa()|0;P()|0;Vob(j);Ea(l|0)}f=c[j>>2]|0;i=c[d>>2]|0;d=f;a:do if((i|0)!=(d|0)){g=f;while(1){d=d+4|0;f=g;if((d|0)==(i|0)){d=f;break a}g=(c[f>>2]|0)>>>0<(c[d>>2]|0)>>>0?d:g}}while(0);f=c[d>>2]|0;g=c[(c[a>>2]|0)+132>>2]|0;if(g>>>0>>0){n=0;fa(75,76198,75526,403,76228);n=0;l=sa()|0;P()|0;Vob(j);Ea(l|0)}h=1.0/(+(g>>>0)*2.0);d=0;e=+((g-f|0)>>>0);while(1){if((d|0)==(g|0))break;m=(c[(c[b>>2]|0)+(d<<2)>>2]|0)==(d|0)?e+h:e;d=d+1|0;e=m}Zeb(b,e*100.0+ +((c[k>>2]|0)>>>0));Vob(j);yb=l;return}function rv(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=yb;yb=yb+32|0;i=k+20|0;j=k;f=c[a>>2]|0;h=(c[a+4>>2]|0)-f>>4;g=h+1|0;e=Wub()|0;if(g>>>0>e>>>0)Apa();f=(c[a+8>>2]|0)-f|0;if(f>>4>>>0>>1>>>0){e=f>>3;e=e>>>0>>0?g:e}AR(j,e,h,a+8|0);e=j+8|0;f=c[e>>2]|0;n=0;da(1e3,i|0,b|0);b=n;n=0;if(b&1){k=sa()|0;P()|0;ooa(j);Ea(k|0)}n=0;ea(135,f|0,i|0,c[d>>2]|0);d=n;n=0;if(!(d&1)){Vob(i);c[e>>2]=f+16;TR(a,j);ooa(j);yb=k;return}k=sa()|0;P()|0;Vob(i);ooa(j);Ea(k|0)}function sv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;n=0;ea(105,e|0,b|0,0);g=n;n=0;do if(!(g&1)){if(!(a[e>>0]&1)){yb=h;return}e=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0;f=e+12|0;g=c[f>>2]|0;if((g|0)==(c[e+16>>2]|0)){n=0;e=S(c[(c[e>>2]|0)+40>>2]|0,e|0)|0;g=n;n=0;if(g&1)break}else{c[f>>2]=g+1;e=Qzb(a[g>>0]|0)|0}if(dub(e,-1)|0){d=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=0;da(85,d|0,c[d+16>>2]|6|0);d=n;n=0;if(d&1)break;yb=h;return}else{b=Qzb(e)|0;a[d>>0]=b;yb=h;return}}while(0);d=ta(0)|0;P()|0;pa(d|0)|0;n=0;ca(496,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);d=n;n=0;if(!(d&1)){qa();yb=h;return}e=sa()|0;P()|0;n=0;ba(5);h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}else Ea(e|0)}function tv(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,o=0;m=yb;yb=yb+16|0;l=m;a:do if(!b)b=0;else{o=d;i=f-o>>2;k=g+12|0;j=c[k>>2]|0;i=(j|0)>(i|0)?j-i|0:0;j=e;o=j-o|0;g=o>>2;if((o|0)>0?(Hb[c[(c[b>>2]|0)+48>>2]&255](b,d,g)|0)!=(g|0):0){b=0;break}do if((i|0)>0){c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;FK(l,i,h);n=0;g=V(c[(c[b>>2]|0)+48>>2]|0,b|0,((a[l+8+3>>0]|0)<0?c[l>>2]|0:l)|0,i|0)|0;o=n;n=0;if(!(o&1)){bhb(l);if((g|0)==(i|0))break;else{b=0;break a}}else{o=sa()|0;P()|0;bhb(l);Ea(o|0)}}while(0);o=f-j|0;f=o>>2;if((o|0)>0?(Hb[c[(c[b>>2]|0)+48>>2]&255](b,e,f)|0)!=(f|0):0){b=0;break}c[k>>2]=0}while(0);yb=m;return b|0}function uv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+80|0;d=h+32|0;e=h+8|0;f=h;g=Mba(a,b)|0;if((g|0)!=(a+4|0)){g=c[g+20>>2]|0;g=g+12|0;yb=h;return g|0}c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;w0a(e);c[d>>2]=c[b>>2];n=0;da(242,d+4|0,e|0);g=n;n=0;if(g&1){h=sa()|0;P()|0;SZa(e);Ea(h|0)}n=0;da(246,a+12|0,d|0);g=n;n=0;if(g&1){h=sa()|0;P()|0;Xpb(d);SZa(e);Ea(h|0)}else{Xpb(d);SZa(e);g=c[a+12>>2]|0;e=c[b>>2]|0;c[f>>2]=e;c[f+4>>2]=g;uC(h+64|0,a,e,f);g=g+12|0;yb=h;return g|0}return 0}function vv(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;k=yb;yb=yb+16|0;g=k;d=a+32|0;if(cHa(d,b)|0){yb=k;return}c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];Rga(g,(c[(c[a+24>>2]|0)+140>>2]|0)+((c[b>>2]|0)*12|0)|0);n=0;d=U(59,c[a>>2]|0,98498)|0;l=n;n=0;if(((((((!(l&1)?(n=0,e=U(61,d|0,g|0)|0,l=n,n=0,!(l&1)):0)?(n=0,f=U(59,e|0,112435)|0,l=n,n=0,!(l&1)):0)?(n=0,h=U(60,f|0,c[b+4>>2]|0)|0,l=n,n=0,!(l&1)):0)?(n=0,i=U(59,h|0,112435)|0,l=n,n=0,!(l&1)):0)?(n=0,j=U(60,i|0,c[b+8>>2]|0)|0,l=n,n=0,!(l&1)):0)?(n=0,U(62,j|0,10)|0,l=n,n=0,!(l&1)):0)?(n=0,U(165,c[a>>2]|0,c[a+4>>2]|0)|0,l=n,n=0,!(l&1)):0){Chb(g);yb=k;return}l=sa()|0;P()|0;Chb(g);Ea(l|0)}function wv(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;i=b+4|0;h=WCb(c[i>>2]|0)|0;f=e+32|0;IWa(h,ala(c[f>>2]|0)|0)|0;if(a[e+20>>0]&1)IWa(c[i>>2]|0,98184)|0;IWa(c[i>>2]|0,98192)|0;h=e+8|0;b=a[h>>0]|0;if(!((b&255)>=4?!((c[f>>2]|0)==2&(b&255)<8):0))g=5;a:do if((g|0)==5)switch(b<<24>>24){case 1:{SEa(c[i>>2]|0,56)|0;break a}case 2:{IWa(c[i>>2]|0,98165)|0;break a}case 4:{IWa(c[i>>2]|0,98168)|0;break a}default:Ta()}while(0);b=e+12|0;if(WCb(c[b>>2]|0)|0){g=IWa(c[i>>2]|0,98135)|0;Ym(g,WCb(c[b>>2]|0)|0)|0}b=e+16|0;e=WCb(c[b>>2]|0)|0;if((e|0)==(d[h>>0]|0|0))return;i=IWa(c[i>>2]|0,98199)|0;Ym(i,WCb(c[b>>2]|0)|0)|0;return}function xv(a){a=a|0;var b=0,d=0;if((c[a+4>>2]|0)==6)return a|0;b=iqb(a)|0;if(b|0){if(!(eCb(c[b+4>>2]|0)|0))return a|0;a=xv(c[b+12>>2]|0)|0;return a|0}b=Rqb(a)|0;if(b|0){if(eCb(c[b+8>>2]|0)|0)return a|0;if(!(WCb(c[b+16>>2]|0)|0))return a|0;a=cWa(b+12|0)|0;a=xv(c[a>>2]|0)|0;return a|0}b=hrb(a)|0;if(b|0){a=xv(c[b+12>>2]|0)|0;return a|0}b=wrb(a)|0;if(!b){b=Qqb(a)|0;if(!b)return a|0;if(!(c[b+16>>2]|0))return a|0;b=c[b+12>>2]|0;if(!b)return a|0;a=xv(b)|0;return a|0}d=c[b+16>>2]|0;if(!d)return a|0;b=c[b+12>>2]|0;if((c[b+4>>2]|0)==6){a=xv(d)|0;return a|0}if((c[d+4>>2]|0)!=6)return a|0;a=xv(b)|0;return a|0}function yv(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=b+72|0;if(a[g>>0]&1)BM(IWa(150620,112266)|0);i=c[b+56>>2]|0;h=b+68|0;f=c[b+52>>2]|0;while(1){if((f|0)==(i|0))break;if(!(a[g>>0]&1)){e=f;b=f+8|0}else{b=IWa(150620,112275)|0;b=IWa(Zm(b,a[c[f>>2]>>0]|0)|0,139997)|0;b=IWa(Zm(b,a[(c[f>>2]|0)+1>>0]|0)|0,112290)|0;e=c[h>>2]|0;e=IWa(Ym(b,(c[e+4>>2]|0)-(c[e>>2]|0)|0)|0,112295)|0;b=f+8|0;BM(Ym(e,c[b>>2]|0)|0);e=f}d=c[h>>2]|0;SV(d,c[b>>2]|0,(c[d+4>>2]|0)-(c[d>>2]|0)|0);d=f+4|0;b=0;while(1){if(b>>>0>=(c[d>>2]|0)>>>0)break;Hmb(c[h>>2]|0,a[(c[e>>2]|0)+b>>0]|0);b=b+1|0}f=f+12|0}return}function zv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+64|0;e=g+24|0;f=g;AB(e,b,c[d+8>>2]|0);if(lsb(e)|0){c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];c[a+28>>2]=c[e+28>>2];yb=g;return}if(!(Peb(e)|0)){d=c[d+16>>2]|0;if(!d){c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;zsb(a);yb=g;return}else{AB(a,b,d);yb=g;return}}AB(a,b,c[d+12>>2]|0);if(lsb(a)|0){yb=g;return}if(c[d+16>>2]|0){yb=g;return}egb(f);c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];c[a+16>>2]=c[f+16>>2];yb=g;return}function Av(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h;c[b+4>>2]=0;n=0;ea(105,d|0,b|0,1);e=n;n=0;do if(e&1){d=-1;g=8}else{if(a[d>>0]|0){d=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0;e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;d=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;e=n;n=0;if(e&1){d=-1;g=8;break}}else d=Qzb(a[e>>0]|0)|0;if(dub(d,-1)|0?(e=b+(c[(c[b>>2]|0)+-12>>2]|0)|0,n=0,da(85,e|0,c[e+16>>2]|2|0),e=n,n=0,e&1):0){g=8;break}}else d=-1;f=d}while(0);do if((g|0)==8){g=ta(0)|0;P()|0;pa(g|0)|0;n=0;ca(496,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);g=n;n=0;if(!(g&1)){qa();f=d;break}d=sa()|0;P()|0;n=0;ba(5);g=n;n=0;if(g&1){g=ta(0)|0;P()|0;yub(g)}else Ea(d|0)}while(0);yb=h;return f|0}function Bv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=yb;yb=yb+32|0;f=g;h=a+104|0;c[a>>2]=37660;c[h>>2]=37680;Hoa(a+104|0,a+4|0);c[a+176>>2]=0;c[a+180>>2]=-1;c[a>>2]=46188;c[h>>2]=46208;n=0;ca(547,a+4|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;ktb(a+104|0);Ea(h|0)}c[f>>2]=a;n=0;da(73,f+4|0,b|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;u9a(a);Ea(h|0)}c[f+16>>2]=d;c[f+20>>2]=e;n=0;b=S(297,f|0)|0;h=n;n=0;if(!(h&1)){c[a+184>>2]=31180;c[a+188>>2]=31200;Hoa(a+188|0,b);c[a+260>>2]=0;c[a+264>>2]=-1;m$a(f);yb=g;return}h=sa()|0;P()|0;m$a(f);u9a(a);Ea(h|0)}function Cv(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;h=e+20|0;if(!(a[h>>0]&1))f=e+4|0;else{WJa(b,Xxb(c[(c[b+44>>2]|0)+4>>2]|0)|0,e,128981);f=e+4|0;switch(c[f>>2]|0){case 6:case 2:case 1:{g=1;break}default:g=0}WJa(b,g,e,129021)}if((c[f>>2]|0)==5)WJa(b,Szb(c[(c[b+44>>2]|0)+4>>2]|0)|0,e,129054);if(!(a[h>>0]&1))g=0;else{g=c[b+36>>2]|0;WCb(g)|0;g=(a[g+120>>0]&1)==0}mJa(b,g,e,129088);g=e+8|0;UF(b,a[g>>0]|0,c[f>>2]|0,e);i=WCb(c[e+16>>2]|0)|0;Pr(b,i,c[f>>2]|0,d[g>>0]|0,(a[h>>0]&1)!=0,e);Bxa(b,c[(c[e+24>>2]|0)+4>>2]|0,e);if(!(a[h>>0]&1))return;mJa(b,(a[e+9>>0]&1)!=0,e,129158);SBa(b,c[f>>2]|0,e,129188);return}function Dv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=yb;yb=yb+16|0;e=g;f=c[a+44>>2]|0;d=c[a+40>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;c[e>>2]=a;if(!(lC(b,e)|0)){c[a+52>>2]=c[a+48>>2];a=c[d>>2]|0;c[a+40>>2]=c[a+36>>2]}else{h=NH(c[a+48>>2]|0,c[a+52>>2]|0,b)|0;Exa(a+48|0,h,c[(c[d>>2]|0)+52>>2]|0)|0;h=c[d>>2]|0;a=NH(c[h+36>>2]|0,c[h+40>>2]|0,b)|0;Exa(h+36|0,a,c[(c[d>>2]|0)+40>>2]|0)|0}d=d+4|0}yb=g;return}function Ev(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;j=yb;yb=yb+16|0;g=j+8|0;h=j+4|0;i=j;j6a(h,(WCb(c[a+32>>2]|0)|0)<<16,0);if((c[e+16>>2]|0)==1){f=Peb(e)|0;e=f;f=((f|0)<0)<<31>>31}else{e=$Xa(e)|0;f=P()|0}l=b+16|0;m=WCb(c[l>>2]|0)|0;k=WCb(c[h>>2]|0)|0;up(a,m,0,k,0,67882);up(a,e,f,k-(WCb(c[l>>2]|0)|0)|0,0,67898);f=Yeb(e|0,f|0,WCb(c[l>>2]|0)|0,0)|0;h=P()|0;b=b+12|0;up(a,d[b>>0]|0,0,k,0,67913);j6a(i,f,h);S4(a,c[i>>2]|0,d[b>>0]|0);j6a(g,f,h);yb=j;return c[g>>2]|0}function Fv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;d=i+20|0;e=i+16|0;g=i+8|0;f=i;h=Rqb(b)|0;if(h|0?(c[e>>2]=c[h+8>>2],c[d>>2]=c[e>>2],!(BT(h,d)|0)):0){b=h+12|0;nrb(g,b);Hib(f,b);b=g+4|0;e=c[f>>2]|0;d=c[f+4>>2]|0;while(1){if(!(dhb(c[g>>2]|0,c[b>>2]|0,e,d)|0))break;f=Qab(g)|0;yIa(a,c[f>>2]|0);hob(g)}if((c[h+4>>2]|0)!=6){yb=i;return}h=cWa(h+12|0)|0;if((c[(c[h>>2]|0)+4>>2]|0)==6){yb=i;return}AQ(a);yb=i;return}yIa(a,b);yb=i;return}function Gv(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;j=yb;yb=yb+16|0;g=j+8|0;h=j+4|0;i=j;j6a(h,(WCb(c[a+32>>2]|0)|0)<<16,0);if((c[e+16>>2]|0)==1){f=Peb(e)|0;e=f;f=((f|0)<0)<<31>>31}else{e=$Xa(e)|0;f=P()|0}l=b+12|0;m=WCb(c[l>>2]|0)|0;k=WCb(c[h>>2]|0)|0;up(a,m,0,k,0,67882);up(a,e,f,k-(WCb(c[l>>2]|0)|0)|0,0,67898);f=Yeb(e|0,f|0,WCb(c[l>>2]|0)|0,0)|0;h=P()|0;b=b+8|0;up(a,d[b>>0]|0,0,k,0,67913);j6a(i,f,h);S4(a,c[i>>2]|0,d[b>>0]|0);j6a(g,f,h);yb=j;return c[g>>2]|0}function Hv(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;l=yb;yb=yb+32|0;j=l+20|0;k=l;g=c[a>>2]|0;i=(c[a+4>>2]|0)-g>>4;h=i+1|0;f=Wub()|0;if(h>>>0>f>>>0)Apa();g=(c[a+8>>2]|0)-g|0;if(g>>4>>>0>>1>>>0){f=g>>3;f=f>>>0>>0?h:f}AR(k,f,i,a+8|0);g=k+8|0;h=c[g>>2]|0;f=c[b>>2]|0;e=c[e>>2]|0;n=0;ea(113,j|0,e|0,((e|0)<0)<<31>>31|0);e=n;n=0;if(e&1){l=sa()|0;P()|0;Qpa(k);Ea(l|0)}n=0;fa(83,h|0,f|0,d|0,c[j>>2]|0);j=n;n=0;if(j&1){l=sa()|0;P()|0;Qpa(k);Ea(l|0)}else{c[g>>2]=h+16;US(a,k);Qpa(k);yb=l;return}}function Iv(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;l=yb;yb=yb+32|0;j=l+24|0;f=l+16|0;e=l+8|0;k=l;gpa(e,a,b+12|0);g=c[e>>2]|0;c[f>>2]=g;h=f+4|0;d=e+4|0;i=c[d>>2]|0;c[h>>2]=i;c[e>>2]=0;c[d>>2]=0;d=a+44|0;e=c[d>>2]|0;do if(e>>>0>=(c[a+48>>2]|0)>>>0){n=0;da(3024,a+40|0,f|0);i=n;n=0;if(i&1){l=sa()|0;P()|0;OCa(c[h>>2]|0);OCa(0);Ea(l|0)}else{d=c[h>>2]|0;break}}else{c[e>>2]=g;c[e+4>>2]=i;c[f>>2]=0;c[h>>2]=0;c[d>>2]=(c[d>>2]|0)+8;d=0}while(0);OCa(d);OCa(0);if(!(eCb(c[b+8>>2]|0)|0)){yb=l;return}h=WCb(c[a+24>>2]|0)|0;i=kib(a)|0;c[k>>2]=c[b+8>>2];c[j>>2]=c[k>>2];YZa(a,j,i);mcb(h,i,0);yb=l;return}function Jv(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;n=yb;yb=yb+32|0;k=n+16|0;i=n+8|0;j=n;cjb(k,b);k=WCb(c[k+4>>2]|0)|0;l=c[a+4>>2]|0;if(!l){m=0;yb=n;return m|0}m=l+-1|0;g=(l&m|0)==0;if(!g)if(k>>>0>>0)h=k;else h=(k>>>0)%(l>>>0)|0;else h=k&m;a=c[(c[a>>2]|0)+(h<<2)>>2]|0;if(!a){m=0;yb=n;return m|0}e=i+4|0;f=j+4|0;while(1){a=c[a>>2]|0;if(!a){a=0;d=17;break}d=c[a+4>>2]|0;if((d|0)==(k|0)){cjb(i,a+8|0);cjb(j,b);if(xTa(c[i>>2]|0,c[e>>2]|0,c[j>>2]|0,c[f>>2]|0)|0){d=17;break}}else{if(!g){if(d>>>0>=l>>>0)d=(d>>>0)%(l>>>0)|0}else d=d&m;if((d|0)!=(h|0)){a=0;d=17;break}}}if((d|0)==17){yb=n;return a|0}return 0}function Kv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=yb;yb=yb+16|0;f=g;switch(e<<24>>24){case 63:{e=Web(c[b+4>>2]|0)|0;c[e+8>>2]=0;break}case 64:{e=Web(c[b+4>>2]|0)|0;c[e+8>>2]=1;h=e+16|0;Cka(h,1);i=rl(b)|0;h=uXa(h,0)|0;c[h>>2]=i;break}default:{i=0;yb=g;return i|0}}if(a[b+12>>0]&1)BM(IWa(150620,112689)|0);do if(IF(b)|0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,115876,Zzb(115876)|0);n=0;da(4022,b|0,f|0);i=n;n=0;if(i&1){i=sa()|0;P()|0;Chb(f);Ea(i|0)}else{Chb(f);break}}while(0);Fla(e);c[d>>2]=e;i=1;yb=g;return i|0}function Lv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;Qua(a,134449);Alb(a);hfa(a,40);f=rrb(b,1)|0;Xi(a,c[f>>2]|0);hfa(a,41);Alb(a);hfa(a,123);BIa(a);f=rrb(b,2)|0;f=c[f>>2]|0;g=a+16|0;h=a+12|0;b=0;while(1){if(b>>>0>=(K0a(WCb(f)|0)|0)>>>0)break;d=rrb(f,b)|0;d=c[d>>2]|0;e=rrb(d,0)|0;if(zgb(c[e>>2]|0)|0)Qua(a,66802);else{Qua(a,66811);e=rrb(d,0)|0;Xi(a,c[e>>2]|0);hfa(a,58)}e=rrb(d,1)|0;do if(K0a(WCb(c[e>>2]|0)|0)|0){c[g>>2]=(c[g>>2]|0)+1;BIa(a);e=c[h>>2]|0;d=rrb(d,1)|0;U_(a,c[d>>2]|0);c[g>>2]=(c[g>>2]|0)+-1;if((e|0)==(c[h>>2]|0)){c[h>>2]=e+-1;break}else{BIa(a);break}}else BIa(a);while(0);b=b+1|0}hfa(a,125);return}function Mv(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;k=yb;yb=yb+32|0;d=k+28|0;f=k+24|0;g=k+20|0;j=k+8|0;h=k;e=QS(c[a+8>>2]|0)|0;i=e;if(eCb(e)|0?WCb(c[b+24>>2]|0)|0:0){e=c[a+4>>2]|0;l=WCb(c[b+28>>2]|0)|0;Gsb(f,l);p4(a,l,b);c[g>>2]=i;c[h>>2]=c[a+12>>2];c[h+4>>2]=c[a+16>>2];c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;n=0;da(174,j|0,2);i=n;n=0;if(i&1){l=sa()|0;P()|0;Qcb(j);Ea(l|0)}ssa(j,h,h+8|0);l=c[f>>2]|0;n=0;c[d>>2]=c[g>>2];d=W(14,l|0,d|0,j|0,e|0)|0;l=n;n=0;if(l&1){l=sa()|0;P()|0;Vob(j);Ea(l|0)}Vob(j);l=d;yb=k;return l|0}l=a;yb=k;return l|0}function Nv(a){a=a|0;var b=0,d=0,e=0,f=0;d=yb;yb=yb+32|0;e=d+12|0;f=d;b=JF(a)|0;switch(b|0){case -1:{f=1;yb=d;return f|0}case -2:{f=2;yb=d;return f|0}case -3:{f=3;yb=d;return f|0}case -4:{f=4;yb=d;return f|0}case -5:{f=5;yb=d;return f|0}case -64:{f=0;yb=d;return f|0}default:{h5(f,b);n=0;U(77,f|0,117163)|0;d=n;n=0;if(d&1){e=sa()|0;P()|0;Chb(f);Ea(e|0)}c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}n=0;da(4022,a|0,e|0);a=n;n=0;if(!(a&1)){Chb(e);Chb(f);ma(141129,112368,854,117183)}a=sa()|0;P()|0;Chb(e);e=a;Chb(f);Ea(e|0)}}return 0}function Ov(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;c[a>>2]=b;h=a+4|0;c[h>>2]=0;i=a+8|0;c[i>>2]=0;c[a+12>>2]=0;nla(a+16|0,1337);n=0;da(614,h|0,d|0);g=n;n=0;if(g&1){j=sa()|0;P()|0;xBa(h);Ea(j|0)}g=a+4|0;a=0;while(1){if(a>>>0>=d>>>0){j=8;break}n=0;e=S(272,b|0)|0;f=n;n=0;if(f&1)break;k=(c[g>>2]|0)+(a<<2)|0;f=c[k>>2]|0;c[k>>2]=e;if(f|0){Htb(f);RCb(f)}a=a+1|0}if((j|0)==8){Hla(c[g>>2]|0,c[i>>2]|0);return}k=sa()|0;P()|0;xBa(h);Ea(k|0)}function Pv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+48|0;e=g+32|0;f=g;c[e>>2]=c[d+8>>2];tw(f,b,c[d+12>>2]|0);if(lsb(f)|0){c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];c[a+16>>2]=c[f+16>>2];c[a+20>>2]=c[f+20>>2];c[a+24>>2]=c[f+24>>2];c[a+28>>2]=c[f+28>>2];yb=g;return}else{e=_5((c[b+4>>2]|0)+4|0,e)|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[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;zsb(a);yb=g;return}}function Qv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;f=h+4|0;g=h;switch(c[a+4>>2]|0){case 1:{switch(b|0){case 1:case 2:{g=(b|0)==1?24:16;Gsb(f,d);e=w7(g,1,d)|0;f=c[f>>2]|0;g=hIa(f,12,hIa(f,10,a,e)|0,w7(g,1,d)|0)|0;yb=h;return g|0}case 4:{g=a;yb=h;return g|0}default:ma(103676,103687,81,103710)}break}case 2:{switch(b|0){case 1:{e=56;break}case 2:case 4:{e=(b|0)==2?48:32;break}case 8:{g=a;yb=h;return g|0}default:ma(103741,103687,98,103710)}Gsb(g,d);f=w7(e,2,d)|0;g=c[g>>2]|0;g=hIa(g,37,hIa(g,35,a,f)|0,w7(e,2,d)|0)|0;yb=h;return g|0}default:ma(103722,103687,84,103710)}return 0}function Rv(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;d=yb;yb=yb+272|0;g=d+240|0;e=d+196|0;h=d+176|0;f=d+160|0;b=d;sfb(h);c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2];c[g+16>>2]=c[h+16>>2];ofa(e,a,g);Lvb(e);n=0;ca(529,e|0);g=n;n=0;if(!(g&1)?(n=0,ca(489,e|0),h=n,n=0,!(h&1)):0){Sdb(f,0);n=0;fa(85,b|0,a|0,f|0,0);h=n;n=0;do if(!(h&1)){n=0;ca(507,b|0);h=n;n=0;if(h&1){a=sa()|0;P()|0;Z_(b);break}else{h=(c[f+4>>2]|0)-(c[f>>2]|0)|0;Z_(b);Htb(f);osa(e);yb=d;return h|0}}else{a=sa()|0;P()|0}while(0);Htb(f);h=a;osa(e);Ea(h|0)}h=sa()|0;P()|0;osa(e);Ea(h|0);return 0}function Sv(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;l=yb;yb=yb+32|0;j=l+20|0;k=l;g=c[a>>2]|0;i=(c[a+4>>2]|0)-g>>4;h=i+1|0;f=Wub()|0;if(h>>>0>f>>>0)Apa();g=(c[a+8>>2]|0)-g|0;if(g>>4>>>0>>1>>>0){f=g>>3;f=f>>>0>>0?h:f}AR(k,f,i,a+8|0);h=k+8|0;i=c[h>>2]|0;g=c[b>>2]|0;f=c[d>>2]|0;n=0;ea(113,j|0,c[e>>2]|0,0);e=n;n=0;if(e&1){l=sa()|0;P()|0;Qpa(k);Ea(l|0)}n=0;fa(83,i|0,g|0,f|0,c[j>>2]|0);j=n;n=0;if(j&1){l=sa()|0;P()|0;Qpa(k);Ea(l|0)}else{c[h>>2]=i+16;US(a,k);Qpa(k);yb=l;return}}function Tv(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;m=yb;yb=yb+272|0;j=m;k=m+256|0;f=c[b>>2]|0;c[k>>2]=f;l=(a|0)!=0;h=l?e:256;g=l?a:j;e=f;a:do if((h|0)!=0&(f|0)!=0){a=0;i=d;while(1){d=i>>>0>=h>>>0;if(!(d|i>>>0>32)){d=i;i=h;break a}e=d?h:i;d=i-e|0;e=gs(g,k,e)|0;if((e|0)==-1)break;f=(g|0)==(j|0);h=h-(f?0:e)|0;g=f?g:g+e|0;a=e+a|0;e=c[k>>2]|0;f=e;if((h|0)!=0&(e|0)!=0)i=d;else{i=h;break a}}f=c[k>>2]|0;a=-1;i=0;e=f}else{a=0;i=h}while(0);do if((e|0)!=0?(i|0)!=0&(d|0)!=0:0){h=d;f=i;while(1){d=wK(g,c[e>>2]|0)|0;if((d+1|0)>>>0<2){f=11;break}e=e+4|0;h=h+-1|0;f=f-d|0;a=d+a|0;if(!((f|0)!=0&(h|0)!=0)){f=13;break}else g=g+d|0}if((f|0)==11){j=(d|0)==0;c[k>>2]=j?0:e;a=j?a:-1;e=j?0:e;break}else if((f|0)==13){c[k>>2]=e;break}}else e=f;while(0);if(l)c[b>>2]=e;yb=m;return a|0}function Uv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192){Za(b|0,d|0,e|0)|0;return b|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 Vv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=(d-b|0)/24|0;f=a+8|0;e=c[a>>2]|0;if(g>>>0>(((c[f>>2]|0)-e|0)/24|0)>>>0){Bha(a);e=Oxb()|0;if(g>>>0>e>>>0)Apa();f=((c[f>>2]|0)-(c[a>>2]|0)|0)/24|0;if(f>>>0>>1>>>0){e=f<<1;e=e>>>0>>0?g:e}oW(a,e);kqa(a,b,d);return}i=a+4|0;h=((c[i>>2]|0)-e|0)/24|0;g=g>>>0>h>>>0;h=g?b+(h*24|0)|0:d;f=e;e=b;while(1){if((e|0)==(h|0))break;Nla(f,e);f=f+24|0;e=e+24|0}if(g){kqa(a,h,d);return}e=c[i>>2]|0;while(1){if((f|0)==(e|0))break;d=e+-24|0;Aeb(d);e=d}c[i>>2]=f;return}function Wv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=yb;yb=yb+16|0;i=h+4|0;f=h;g=c[a+12>>2]|0;d=cCa(c[c[a+4>>2]>>2]|0,c[(c[b>>2]|0)+4>>2]|0)|0;e=tVa(c[c[a>>2]>>2]|0,d,c[b>>2]|0)|0;j=a+8|0;Wla((c[c[j>>2]>>2]|0)+12|0,e);_u(c[c[j>>2]>>2]|0);c[i>>2]=b;if(!(lC(g+184|0,i)|0)){i=c[a>>2]|0;j=c[b>>2]|0;j=j+4|0;j=c[j>>2]|0;i=c[i>>2]|0;j=T3a(i,d,j)|0;c[b>>2]=j;yb=h;return}c[f>>2]=b;i=rm(g+184|0,f)|0;c[i>>2]=e+12;i=c[a>>2]|0;j=c[b>>2]|0;j=j+4|0;j=c[j>>2]|0;i=c[i>>2]|0;j=T3a(i,d,j)|0;c[b>>2]=j;yb=h;return}function Xv(){var b=0,d=0;if((a[147568]|0)==0?mlb(147568)|0:0){d=146480;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=146648)}zZa(146480,137038)|0;zZa(146492,137045)|0;zZa(146504,137052)|0;zZa(146516,137060)|0;zZa(146528,137070)|0;zZa(146540,137079)|0;zZa(146552,137086)|0;zZa(146564,137095)|0;zZa(146576,137099)|0;zZa(146588,137103)|0;zZa(146600,137107)|0;zZa(146612,137111)|0;zZa(146624,137115)|0;zZa(146636,137119)|0;return}function Yv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;a[d+12>>0]=(d|0)==(b|0)&1;while(1){if((d|0)==(b|0)){f=18;break}h=c[d+8>>2]|0;e=h+12|0;if(a[e>>0]&1){f=18;break}g=h+8|0;i=c[g>>2]|0;f=c[i>>2]|0;if((h|0)==(f|0)){f=c[i+4>>2]|0;if(!f){f=7;break}f=f+12|0;if(a[f>>0]&1){f=7;break}a[e>>0]=1;a[i+12>>0]=(i|0)==(b|0)&1;a[f>>0]=1}else{if(!f){f=13;break}f=f+12|0;if(a[f>>0]&1){f=13;break}a[e>>0]=1;a[i+12>>0]=(i|0)==(b|0)&1;a[f>>0]=1}d=i}if((f|0)==7){if((d|0)==(c[h>>2]|0))d=i;else{jba(h);d=c[g>>2]|0;e=d+12|0;d=c[d+8>>2]|0}a[e>>0]=1;a[d+12>>0]=0;Aaa(d);return}else if((f|0)==13){if((d|0)==(c[h>>2]|0)){Aaa(h);d=c[g>>2]|0;e=d+12|0;d=c[d+8>>2]|0}else d=i;a[e>>0]=1;a[d+12>>0]=0;jba(d);return}else if((f|0)==18)return}function Zv(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;l=yb;yb=yb+96|0;h=l+72|0;i=l+48|0;j=l+24|0;k=l;g=c[(c[a+16>>2]|0)+4>>2]|0;d=d+8|0;c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];c[h+16>>2]=c[d+16>>2];c[h+20>>2]=c[d+20>>2];d=c[b+8>>2]|0;if((d|0)==(xn(g,2)|0)){aN(i,h);c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];c[h+16>>2]=c[i+16>>2]}if(e|0?(i=c[e+8>>2]|0,(i|0)==(xn(g,2)|0)):0){aN(j,h);c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];c[h+12>>2]=c[j+12>>2];c[h+16>>2]=c[j+16>>2]}j=f+8|0;EU(k,j,h);c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];c[j+16>>2]=c[k+16>>2];c[a+12>>2]=c[b+12>>2];yb=l;return a|0}function _v(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;h=yb;yb=yb+16|0;f=h+12|0;g=h;if(e<<24>>24){g=0;yb=h;return g|0}e=Kfb(c[b+4>>2]|0)|0;if(a[b+12>>0]&1)BM(IWa(150620,112891)|0);i=e+4|0;c[i>>2]=1;j=rl(b)|0;c[e+16>>2]=j;j=rl(b)|0;c[e+12>>2]=j;hCb(f);EI(b,f,e+8|0);f=WCb(c[f>>2]|0)|0;do if((f|0)!=(Era(c[i>>2]|0)|0)){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;D8(g,116438,Zzb(116438)|0);n=0;da(4022,b|0,g|0);j=n;n=0;if(j&1){j=sa()|0;P()|0;Chb(g);Ea(j|0)}else{Chb(g);break}}while(0);MVa(e);c[d>>2]=e;j=1;yb=h;return j|0}function $v(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;k=yb;yb=yb+16|0;g=k+8|0;h=k+4|0;j=k;i=1;while(1){if(!(i>>>0<(xmb(b)|0)>>>0&i>>>0<3))break;f=Vr(b,i)|0;if(!($Bb(a[f>>0]|0)|0))break;l=$cb(Vr(b,i)|0)|0;f=Vr(b,i)|0;if(l){Ftb(g,kH(f)|0);c[e>>2]=c[g>>2]}else{if(!(Gcb(f)|0))break;Ftb(h,kH(Vr(b,i)|0)|0);c[d>>2]=c[h>>2]}i=i+1|0}if(i>>>0>=(xmb(b)|0)>>>0){l=i;yb=k;return l|0}l=Vr(b,i)|0;if(!(UBb(a[l>>0]|0)|0)){l=i;yb=k;return l|0}b=Vr(b,i)|0;if(!(xmb(b)|0)){l=i;yb=k;return l|0}l=kH(Vr(b,0)|0)|0;if(!(dub(l,c[37389]|0)|0)){l=i;yb=k;return l|0}Ftb(j,kH(Vr(b,1)|0)|0);c[e>>2]=c[j>>2];l=i+1|0;yb=k;return l|0}function aw(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=yb;yb=yb+32|0;i=j;f=c[a>>2]|0;h=(c[a+4>>2]|0)-f>>4;g=h+1|0;e=Wub()|0;if(g>>>0>e>>>0)Apa();f=(c[a+8>>2]|0)-f|0;if(f>>4>>>0>>1>>>0){e=f>>3;e=e>>>0>>0?g:e}AR(i,e,h,a+8|0);e=i+8|0;f=c[e>>2]|0;c[f>>2]=c[b>>2];n=0;da(1090,f+4|0,d|0);d=n;n=0;if(d&1){j=sa()|0;P()|0;c7(i);Ea(j|0)}else{c[e>>2]=f+16;zK(a,i);c7(i);yb=j;return}}function bw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;f=h+12|0;i=h;g=Fs(Vr(b,0)|0,11,0)|0;c[f>>2]=g;g=Hq(f,(Era(d)|0)&255)|0;e=alb(c[f>>2]|0,46)|0;c[f>>2]=e;if(e|0){e=e+1|0;c[f>>2]=e;if(!(Uba(e,125103,7)|0)){i=Kt(a,b,d,g)|0;yb=h;return i|0}else{i=vn(a,b,d,g,e)|0;yb=h;return i|0}}b=oa(20)|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=Zzb(125070)|0;n=0;ea(95,i|0,125070,h|0);h=n;n=0;if(!(h&1)){n=0;da(330,b|0,i|0);h=n;n=0;if(h&1)a=1;else{n=0;ea(122,b|0,31856,511);n=0;a=0}e=sa()|0;P()|0;Chb(i);if(!a){i=e;Ea(i|0)}}else{e=sa()|0;P()|0}va(b|0);i=e;Ea(i|0);return 0}function cw(){var b=0,d=0;if((a[147648]|0)==0?mlb(147648)|0:0){d=147232;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=147400)}yZa(147232,49084)|0;yZa(147244,49112)|0;yZa(147256,49140)|0;yZa(147268,49172)|0;yZa(147280,49212)|0;yZa(147292,49248)|0;yZa(147304,49276)|0;yZa(147316,49312)|0;yZa(147328,49328)|0;yZa(147340,49344)|0;yZa(147352,49360)|0;yZa(147364,49376)|0;yZa(147376,49392)|0;yZa(147388,49408)|0;return}function dw(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,o=0,p=0,q=0,r=0,s=0;l=yb;yb=yb+32|0;k=l+8|0;p=l;i=l+20|0;j=l+16|0;a=p;c[a>>2]=37;c[a+4>>2]=0;a=d+4|0;S5(p+1|0,141199,1,c[a>>2]|0);o=(c[a>>2]|0)>>>9&1;r=o+23|0;h=fb()|0;m=yb;yb=yb+((1*r|0)+15&-16)|0;q=t8a()|0;s=k;c[s>>2]=f;c[s+4>>2]=g;g=m+(Hva(m,r,q,p,k)|0)|0;f=XZ(m,g,c[a>>2]|0)|0;a=yb;yb=yb+((1*((o<<1|44)+-1<<2)|0)+15&-16)|0;anb(j,d);n=0;ia(8,m|0,f|0,g|0,a|0,k|0,i|0,j|0);g=n;n=0;if(g&1){s=sa()|0;P()|0;XWa(j);Ea(s|0)}else{XWa(j);s=tv(c[b>>2]|0,a,c[k>>2]|0,c[i>>2]|0,d,e)|0;eb(h|0);yb=l;return s|0}return 0}function ew(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=yb;yb=yb+16|0;g=k+8|0;d=k+4|0;h=k;c[g>>2]=b;i=Keb(c[b>>2]|0)|0;j=c[a+80>>2]|0;if(!j)if(eCb(c[i+4>>2]|0)|0){c[b>>2]=c[i+12>>2];yb=k;return}else{Gsb(d,WCb(c[a+36>>2]|0)|0);a=Q6a(c[d>>2]|0,c[i+12>>2]|0)|0;c[b>>2]=a;yb=k;return}c[h>>2]=1;f=i+8|0;d=j+28|0;e=c[d>>2]|0;if(e>>>0<(c[j+32>>2]|0)>>>0){N$(e,1,c[f>>2]|0,b);c[d>>2]=(c[d>>2]|0)+16}else xA(j+24|0,h,f,g);d=B6(c[i+12>>2]|0)|0;if(!d){yb=k;return}j=a+16|0;a=d+8|0;q7(j,c[f>>2]|0,c[a>>2]|0);q7(j,c[f>>2]|0,c[a>>2]|0);yb=k;return}function fw(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,o=0,p=0,q=0,r=0,s=0;l=yb;yb=yb+32|0;k=l+8|0;p=l;i=l+20|0;j=l+16|0;a=p;c[a>>2]=37;c[a+4>>2]=0;a=d+4|0;S5(p+1|0,141199,0,c[a>>2]|0);o=(c[a>>2]|0)>>>9&1|22;r=o+1|0;h=fb()|0;m=yb;yb=yb+((1*r|0)+15&-16)|0;q=t8a()|0;s=k;c[s>>2]=f;c[s+4>>2]=g;g=m+(Hva(m,r,q,p,k)|0)|0;f=XZ(m,g,c[a>>2]|0)|0;a=yb;yb=yb+((1*((o<<1)+-1<<2)|0)+15&-16)|0;anb(j,d);n=0;ia(8,m|0,f|0,g|0,a|0,k|0,i|0,j|0);g=n;n=0;if(g&1){s=sa()|0;P()|0;XWa(j);Ea(s|0)}else{XWa(j);s=tv(c[b>>2]|0,a,c[k>>2]|0,c[i>>2]|0,d,e)|0;eb(h|0);yb=l;return s|0}return 0}function gw(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,o=0,p=0,q=0,r=0,s=0;l=yb;yb=yb+32|0;k=l+8|0;p=l;i=l+20|0;j=l+16|0;a=p;c[a>>2]=37;c[a+4>>2]=0;a=d+4|0;S5(p+1|0,141199,1,c[a>>2]|0);o=(c[a>>2]|0)>>>9&1;r=o+23|0;h=fb()|0;m=yb;yb=yb+((1*r|0)+15&-16)|0;q=t8a()|0;s=k;c[s>>2]=f;c[s+4>>2]=g;g=m+(Hva(m,r,q,p,k)|0)|0;f=XZ(m,g,c[a>>2]|0)|0;a=yb;yb=yb+((1*((o<<1|44)+-1|0)|0)+15&-16)|0;anb(j,d);n=0;ia(6,m|0,f|0,g|0,a|0,k|0,i|0,j|0);g=n;n=0;if(g&1){s=sa()|0;P()|0;XWa(j);Ea(s|0)}else{XWa(j);s=Gw(c[b>>2]|0,a,c[k>>2]|0,c[i>>2]|0,d,e)|0;eb(h|0);yb=l;return s|0}return 0}function hw(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,o=0,p=0,q=0,r=0,s=0;l=yb;yb=yb+32|0;k=l+8|0;p=l;i=l+20|0;j=l+16|0;a=p;c[a>>2]=37;c[a+4>>2]=0;a=d+4|0;S5(p+1|0,141199,0,c[a>>2]|0);o=(c[a>>2]|0)>>>9&1|22;r=o+1|0;h=fb()|0;m=yb;yb=yb+((1*r|0)+15&-16)|0;q=t8a()|0;s=k;c[s>>2]=f;c[s+4>>2]=g;g=m+(Hva(m,r,q,p,k)|0)|0;f=XZ(m,g,c[a>>2]|0)|0;a=yb;yb=yb+((1*((o<<1)+-1|0)|0)+15&-16)|0;anb(j,d);n=0;ia(6,m|0,f|0,g|0,a|0,k|0,i|0,j|0);g=n;n=0;if(g&1){s=sa()|0;P()|0;XWa(j);Ea(s|0)}else{XWa(j);s=Gw(c[b>>2]|0,a,c[k>>2]|0,c[i>>2]|0,d,e)|0;eb(h|0);yb=l;return s|0}return 0}function iw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=yb;yb=yb+16|0;g=f+4|0;h=f;SEa(c[b>>2]|0,40)|0;SEa(Obb(c[b>>2]|0,134260)|0,32)|0;c[h>>2]=c[d+12>>2];e=c[b>>2]|0;c[g>>2]=c[h>>2];SEa(Ica(g,e)|0,32)|0;e=d+36|0;if(a[e>>0]&1){SEa(c[b>>2]|0,40)|0;Obb(c[b>>2]|0,98619)|0}h=c[b>>2]|0;Ym(h,WCb(c[d+16>>2]|0)|0)|0;if(Etb(d)|0){h=SEa(c[b>>2]|0,32)|0;Ym(h,WCb(c[d+20>>2]|0)|0)|0}if(!(a[e>>0]&1)){h=c[b>>2]|0;IWa(h,139927)|0;yb=f;return}IWa(c[b>>2]|0,139927)|0;h=c[b>>2]|0;IWa(h,139927)|0;yb=f;return}function jw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;hfa(b,123);i=b+16|0;c[i>>2]=(c[i>>2]|0)+1;BIa(b);h=rrb(d,1)|0;h=c[h>>2]|0;f=0;while(1){if(f>>>0>=(K0a(WCb(h)|0)|0)>>>0)break;if(f|0){if(!(a[b>>0]&1))hfa(b,44);else Qua(b,140151);BIa(b)}g=rrb(h,f)|0;g=rrb(c[g>>2]|0,0)|0;g=e7a(WCb(c[g>>2]|0)|0)|0;d=g;a:while(1){e=a[d>>0]|0;if(!(e<<24>>24)){d=13;break}if(!(Vmb(e<<24>>24)|0))switch(e<<24>>24){case 36:case 95:break;default:{d=14;break a}}d=d+1|0}if((d|0)==13)Qua(b,g);else if((d|0)==14){hfa(b,34);Qua(b,g);hfa(b,34)}Qua(b,112435);Alb(b);g=rrb(h,f)|0;g=rrb(c[g>>2]|0,1)|0;Xi(b,c[g>>2]|0);f=f+1|0}c[i>>2]=(c[i>>2]|0)+-1;BIa(b);hfa(b,125);return}function kw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=d-b>>4;f=a+8|0;e=c[a>>2]|0;if(g>>>0>(c[f>>2]|0)-e>>4>>>0){oha(a);e=Wub()|0;if(g>>>0>e>>>0)Apa();f=(c[f>>2]|0)-(c[a>>2]|0)|0;if(f>>4>>>0>>1>>>0){e=f>>3;e=e>>>0>>0?g:e}tW(a,e);Dpa(a,b,d);return}i=a+4|0;h=(c[i>>2]|0)-e>>4;g=g>>>0>h>>>0;h=g?b+(h<<4)|0:d;f=e;e=b;while(1){if((e|0)==(h|0))break;Ssa(f,e);f=f+16|0;e=e+16|0}if(g){Dpa(a,h,d);return}e=c[i>>2]|0;while(1){if((f|0)==(e|0))break;d=e+-16|0;Nrb(d);e=d}c[i>>2]=f;return}function lw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=((c[a+4>>2]|0)-(c[a>>2]|0)>>2)+-2|0;a:while(1){if((f|0)<=-1){b=17;break}g=c[a>>2]|0;b=c[g+(f<<2)>>2]|0;g=c[g+(f+1<<2)>>2]|0;d=c[b>>2]|0;if(OBb(d)|0){e=ufb(b)|0;d=e+16|0;e=e+12|0;b=0;while(1){if(b>>>0>=((WCb(c[d>>2]|0)|0)+-1|0)>>>0)break;h=uXa(e,b)|0;if((c[h>>2]|0)==(g|0)){b=17;break a}b=b+1|0}h=cWa(e)|0;if((c[h>>2]|0)!=(g|0)){b=9;break}}else{if(!(VBb(d)|0)){b=15;break}b=Tfb(b)|0;if((g|0)==(c[b+8>>2]|0)){b=17;break}d=c[b+16>>2]|0;if(!d){b=17;break}if(!((g|0)==(d|0)?1:(g|0)==(c[b+12>>2]|0))){b=14;break}}f=f+-1|0}if((b|0)==9)ma(75029,75057,64,75155);else if((b|0)==14)ma(75109,75057,70,75155);else if((b|0)==15)return Qyb(d)|0;else if((b|0)==17)return 0;return 0}function mw(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;m=yb;yb=yb+48|0;k=m+32|0;g=m+16|0;f=m;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=bqb(Ia(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;o=c[f+4>>2]|0;n=g>>>0>o>>>0;f=n?f+8|0:f;b=b+(n<<31>>31)|0;o=g-(n?o:0)|0;c[f>>2]=(c[f>>2]|0)+o;n=f+4|0;c[n>>2]=(c[n>>2]|0)-o;c[k>>2]=c[h>>2];c[k+4>>2]=f;c[k+8>>2]=b;g=bqb(Ia(146,k|0)|0)|0;if((e|0)==(g|0)){l=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 l=3;while(0);if((l|0)==3){o=c[a+44>>2]|0;c[a+16>>2]=o+(c[a+48>>2]|0);c[i>>2]=o;c[j>>2]=o}yb=m;return d|0}function nw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=d-b>>4;f=a+8|0;e=c[a>>2]|0;if(g>>>0>(c[f>>2]|0)-e>>4>>>0){oha(a);e=Wub()|0;if(g>>>0>e>>>0)Apa();f=(c[f>>2]|0)-(c[a>>2]|0)|0;if(f>>4>>>0>>1>>>0){e=f>>3;e=e>>>0>>0?g:e}tW(a,e);Ppa(a,b,d);return}i=a+4|0;h=(c[i>>2]|0)-e>>4;g=g>>>0>h>>>0;h=g?b+(h<<4)|0:d;f=e;e=b;while(1){if((e|0)==(h|0))break;Zsa(f,e);f=f+16|0;e=e+16|0}if(g){Ppa(a,h,d);return}e=c[i>>2]|0;while(1){if((f|0)==(e|0))break;d=e+-16|0;Nrb(d);e=d}c[i>>2]=f;return}function ow(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;i=j+8|0;g=j;h=a+4|0;Kra(i,h);Vda(g,h);h=i+4|0;g=c[g+4>>2]|0;d=0;a=c[h>>2]|0;a:while(1){if((a|0)==(g|0)){a=16;break}e=c[a>>2]|0;f=e+108|0;b:do if(c[f>>2]|0){b=c[e+8>>2]|0;if((WCb(b)|0)>>>0<2){c[f>>2]=0;if(!(bCb(b)|0)?(f=c[e+16>>2]|0,WCb(f)|0,(c[(c[f+12>>2]|0)+12>>2]|0)!=0):0){a=7;break a}else d=1}}else{b=WCb(c[e+16>>2]|0)|0;e=Ryb(e)|0;while(1){f=b;if((e|0)==(f|0))break b;if(c[(c[b+12>>2]|0)+12>>2]|0){a=11;break a}b=c[f+4>>2]|0}}while(0);a=a+4|0;c[h>>2]=a;b=c[i>>2]|0;if((a-(c[b>>2]|0)|0)==4096){a=b+4|0;c[i>>2]=a;a=c[a>>2]|0;c[h>>2]=a}}if((a|0)==7)ma(73253,72707,706,73309);else if((a|0)==11)ma(73318,72707,713,73309);else if((a|0)==16){yb=j;return d|0}return 0}function pw(b){b=b|0;var d=0,e=0;eqa(b);_P(b);Uib(b);e=b+76|0;if(c[e>>2]|0)MK(b);nq(b);zo(b);QK(b);qE(b);DH(b);sL(b);Io(b);dL(b);mt(b);qL(b);Li(b);if(a[b+73>>0]&1)Rw(b);if(c[e>>2]|0){d=a[b+80+11>>0]|0;if(d<<24>>24<0)d=c[b+84>>2]|0;else d=d&255;if(d|0)KW(b)}d=a[b+92+11>>0]|0;if(d<<24>>24<0)d=c[b+96>>2]|0;else d=d&255;if(d|0)vt(b);if(!(c[e>>2]|0)){PL(b);yv(b);return}hE(b);PL(b);yv(b);return}function qw(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;m=yb;yb=yb+16|0;i=m+12|0;j=m+8|0;k=m+4|0;l=m;c[i>>2]=f;f=mla(120)|0;g=f;h=g+120|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));mT(f);if(c[37104]|0){g=IWa(IWa(IWa(IWa(IWa(IWa(IWa(150452,65746)|0,b)|0,65788)|0,d)|0,65788)|0,e)|0,65544)|0;h=O8(148180,i)|0;IWa(Ym(g,c[h>>2]|0)|0,57388)|0}Zsb(j,b);c[f+8>>2]=c[j>>2];Zsb(k,d);c[f>>2]=c[k>>2];Zsb(l,e);c[f+4>>2]=c[l>>2];l=c[i>>2]|0;c[f+40>>2]=c[l>>2];zha(f,l);aq(a,f);yb=m;return}function rw(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;k=yb;yb=yb+16|0;j=k;do if((((((d-b|0)>2?(a[b>>0]|0)==112:0)?(a[b+1>>0]|0)==116:0)?(l=b+2|0,f=ac(l,d,e)|0,(f|0)!=(l|0)):0)?(h=ac(f,d,e)|0,(h|0)!=(f|0)):0)?(i=e+4|0,g=c[i>>2]|0,((g-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){d6(j,g+-24|0);d=c[i>>2]|0;b=0;while(1){if((b|0)==-1)break;l=b+-1|0;J2a(d+(l*24|0)|0);b=l}c[i>>2]=d+-24;n=0;U(216,d+-48|0,140197)|0;l=n;n=0;if(!(l&1)?(l=a[j+11>>0]|0,e=l<<24>>24<0,n=0,V(124,(c[i>>2]|0)+-24|0,(e?c[j>>2]|0:j)|0,(e?c[j+4>>2]|0:l&255)|0)|0,l=n,n=0,!(l&1)):0){Chb(j);b=h;break}l=sa()|0;P()|0;Chb(j);Ea(l|0)}while(0);yb=k;return b|0}function sw(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;o=yb;yb=yb+32|0;l=o+16|0;f=o+8|0;m=o+4|0;n=o;do if(!(dub(d,-1)|0)){k=Qzb(d)|0;a[f>>0]=k;if(a[b+44>>0]|0)if((tTa(f,1,1,c[b+32>>2]|0)|0)==1){e=14;break}else{b=-1;break}c[m>>2]=l;e=f+1|0;g=b+36|0;h=b+40|0;i=l+8|0;j=l;k=b+32|0;while(1){b=c[g>>2]|0;b=Ob[c[(c[b>>2]|0)+12>>2]&15](b,c[h>>2]|0,f,e,n,l,i,m)|0;if((c[n>>2]|0)==(f|0)){e=13;break}if((b|0)==3){e=7;break}if(b>>>0>=2){e=13;break}f=(c[m>>2]|0)-j|0;if((tTa(l,1,f,c[k>>2]|0)|0)!=(f|0)){e=13;break}if((b|0)==1)f=c[n>>2]|0;else{e=12;break}}if((e|0)==7)if((tTa(f,1,1,c[k>>2]|0)|0)==1)e=12;else e=13;if((e|0)==12){e=14;break}else if((e|0)==13){b=-1;break}}else e=14;while(0);if((e|0)==14)b=ylb(d)|0;yb=o;return b|0}function tw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;If(a,b,d);if(lsb(a)|0)return;e=d+4|0;f=c[e>>2]|0;g=vub(f)|0;b=a+16|0;a=c[b>>2]|0;if(g){if((a|0)==(f|0))return}else if((vub(a)|0)^1|(a|0)==(f|0))return;g=IWa(150620,96798)|0;g=IWa(IWa(g,ala(c[e>>2]|0)|0)|0,96808)|0;SEa(Wm(IWa(IWa(g,ala(c[b>>2]|0)|0)|0,96818)|0,d)|0,10)|0;if((c[b>>2]|0)==(c[e>>2]|0))return;else ma(96825,96854,129,112649)}function uw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;g=h;if(a[b+33>>0]&1)BM(IWa(150620,113360)|0);e=c[d+8>>2]|0;i=(c[e+4>>2]|0)==6;T_a(b,e);e=b+28|0;f=c[e>>2]|0;if(i){Ygb(f);yb=h;return}tI(f,4)|0;f=c[e>>2]|0;e=c[d+4>>2]|0;zz(f,baa((e|0)==6?0:e)|0);Ftb(g,c[37121]|0);e=b+60|0;f=c[e>>2]|0;if(f>>>0<(c[b+64>>2]|0)>>>0){c[f>>2]=c[g>>2];c[e>>2]=(c[e>>2]|0)+4}else _M(b+56|0,g);Ww(b,c[d+12>>2]|0);if(c[d+16>>2]|0)sO(b,d);D3(b,d);yb=h;return}function vw(b){b=b|0;var d=0,e=0,f=0,g=0;a:do if(!(a[b+32>>0]&1)){f=b+4|0;g=b+28|0;d=c[b>>2]|0;while(1){if((f|0)==(d|0))break;aq(c[g>>2]|0,c[d+20>>2]|0);e=d;d=c[e+4>>2]|0;b:do if(!d)while(1){d=c[e+8>>2]|0;if((e|0)==(c[d>>2]|0))break b;e=d}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0)}f=b+16|0;d=c[b+12>>2]|0;while(1){if((f|0)==(d|0))break a;aq(c[g>>2]|0,c[d+20>>2]|0);e=d;d=c[e+4>>2]|0;c:do if(!d)while(1){d=c[e+8>>2]|0;if((e|0)==(c[d>>2]|0))break c;e=d}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0)}}while(0);Tja(b);Tja(b+12|0);return}function ww(b,d){b=b|0;d=+d;var e=0,f=0,g=0;e=leb(d)|0;f=P()|0;if(d==0.0&(f|0)<0){IWa(b,111722)|0;return}g=f&2147483647;if(g>>>0>2146435072|(g|0)==2146435072&e>>>0>0){IWa(IWa(b,(f|0)<0?140051:151778)|0,135443)|0;e=vfa(d)|0;f=P()|0;if((e|0)==0&(f|0)==0)return;g=IWa(b,111718)|0;Mpb(b+(c[(c[b>>2]|0)+-12>>2]|0)|0);Rm(g,e,f)|0;Npb(b+(c[(c[b>>2]|0)+-12>>2]|0)|0);return}if(0==0&(f&2146435072|0)==2146435072){IWa(b,(f|0)<0?111725:135409)|0;return}e=tj(d,1)|0;switch(a[e>>0]|0){case 46:{SEa(b,48)|0;break}case 45:{f=e+1|0;if((a[f>>0]|0)==46){IWa(b,111722)|0;e=f}break}default:{}}IWa(b,e)|0;return}function xw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=a+12|0;g=a+24|0;h=a+36|0;b=a+48|0;d=a;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));n=0;ca(500,b|0);e=n;n=0;do if(!(e&1)){n=0;ca(501,a+84|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Nob(b);b=e;break}else{Cub(a+124|0);h=a+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[h+20>>2]=0;G0a(a+152|0);yib(a+176|0);yib(a+188|0);yib(a+200|0);yib(a+212|0);return}}else{b=sa()|0;P()|0}while(0);$0a(h);l0a(g);$0a(f);WZa(a);Ea(b|0)}function yw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+96|0;e=g+32|0;f=g;Ybb(b+96|0,d);Y1a(e);h=WCb(c[b+36>>2]|0)|0;c[e+32>>2]=h;b=b+120|0;c[e+24>>2]=b;a[e+28>>0]=1;n=0;da(3062,e|0,d|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;W8a(e);Ea(h|0)}$5a(f);c[f+24>>2]=b;n=0;da(3063,f|0,d|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;Arb(f);W8a(e);Ea(h|0)}if(a[e+36>>0]&1){h=1;Arb(f);W8a(e);yb=g;return h|0}h=(a[f+28>>0]&1)!=0;Arb(f);W8a(e);yb=g;return h|0}function zw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+96|0;e=g+32|0;f=g;Ybb(b+96|0,d);Y1a(e);h=WCb(c[b+36>>2]|0)|0;c[e+32>>2]=h;b=b+120|0;c[e+24>>2]=b;a[e+28>>0]=0;n=0;da(3336,e|0,d|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;X8a(e);Ea(h|0)}$5a(f);c[f+24>>2]=b;n=0;da(3337,f|0,d|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;Arb(f);X8a(e);Ea(h|0)}if(a[e+36>>0]&1){h=1;Arb(f);X8a(e);yb=g;return h|0}h=(a[f+28>>0]&1)!=0;Arb(f);X8a(e);yb=g;return h|0}function Aw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+96|0;e=g+32|0;f=g;Ybb(b+96|0,d);Y1a(e);h=WCb(c[b+36>>2]|0)|0;c[e+32>>2]=h;b=b+120|0;c[e+24>>2]=b;a[e+28>>0]=1;n=0;da(3217,e|0,d|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;Y8a(e);Ea(h|0)}$5a(f);c[f+24>>2]=b;n=0;da(3218,f|0,d|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;Arb(f);Y8a(e);Ea(h|0)}if(a[e+36>>0]&1){h=1;Arb(f);Y8a(e);yb=g;return h|0}h=(a[f+28>>0]&1)!=0;Arb(f);Y8a(e);yb=g;return h|0}function Bw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+96|0;e=g+32|0;f=g;Ybb(b+96|0,d);Y1a(e);h=WCb(c[b+36>>2]|0)|0;c[e+32>>2]=h;b=b+120|0;c[e+24>>2]=b;a[e+28>>0]=0;n=0;da(3455,e|0,d|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;Z8a(e);Ea(h|0)}$5a(f);c[f+24>>2]=b;n=0;da(3456,f|0,d|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;Arb(f);Z8a(e);Ea(h|0)}if(a[e+36>>0]&1){h=1;Arb(f);Z8a(e);yb=g;return h|0}h=(a[f+28>>0]&1)!=0;Arb(f);Z8a(e);yb=g;return h|0}function Cw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+96|0;e=g+32|0;f=g;Ybb(b+96|0,d);Y1a(e);h=WCb(c[b+36>>2]|0)|0;c[e+32>>2]=h;b=b+120|0;c[e+24>>2]=b;a[e+28>>0]=0;n=0;da(3574,e|0,d|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;_8a(e);Ea(h|0)}$5a(f);c[f+24>>2]=b;n=0;da(3575,f|0,d|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;Arb(f);_8a(e);Ea(h|0)}if(a[e+36>>0]&1){h=1;Arb(f);_8a(e);yb=g;return h|0}h=(a[f+28>>0]&1)!=0;Arb(f);_8a(e);yb=g;return h|0}function Dw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;d=i+4|0;g=i;hCb(d);h=wA(a,c[b+8>>2]|0,d)|0;e=a+4|0;f=WCb(JR(a,c[b+12>>2]|0,c[e>>2]|0)|0)|0;Pwb(g,0);b=c[b+16>>2]|0;if(b|0){e=WCb(JR(a,b,c[e>>2]|0)|0)|0;c[g>>2]=e}b=c[d>>2]|0;if(bCb(b)|0){h=p3(h,f,c[g>>2]|0)|0;yb=i;return h|0}else{h=Oaa(h)|0;d=rrb(h,1)|0;d=WCb(c[d>>2]|0)|0;e=dWa(b)|0;KJa(d,p3(e,f,c[g>>2]|0)|0)|0;yb=i;return h|0}return 0}function Ew(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=yb;yb=yb+32|0;g=k+28|0;h=k+16|0;i=k+4|0;j=k;if(b){j=1;yb=k;return j|0}c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;D8(i,e,Zzb(e)|0);n=0;U(77,i|0,126777)|0;e=n;n=0;if(e&1){k=sa()|0;P()|0;Chb(i);Ea(k|0)}c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];b=0;while(1){if((b|0)==3)break;c[i+(b<<2)>>2]=0;b=b+1|0}c[j>>2]=c[d>>2];n=0;c[g>>2]=c[j>>2];fa(142,a|0,h|0,g|0,f|0);j=n;n=0;if(j&1){k=sa()|0;P()|0;Chb(h);Chb(i);Ea(k|0)}else{Chb(h);Chb(i);j=0;yb=k;return j|0}return 0} -function vf(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;t=yb;yb=yb+128|0;h=t;y=t+104|0;g=t+100|0;x=t+88|0;m=t+84|0;w=t+72|0;v=t+40|0;u=t+28|0;p=t+16|0;q=t+12|0;r=t+8|0;l=Icb(b)|0;c[y>>2]=0;s=y+4|0;c[s>>2]=0;d=y+8|0;c[d>>2]=0;e=0;while(1){if(e>>>0>=l>>>0){o=10;break}c[g>>2]=e;f=c[s>>2]|0;if(f>>>0>=(c[d>>2]|0)>>>0){n=0;da(2949,y|0,g|0);o=n;n=0;if(o&1){o=7;break}}else{c[f>>2]=e;c[s>>2]=(c[s>>2]|0)+4}e=e+1|0}if((o|0)==7){d=sa()|0;P()|0}else if((o|0)==10){j=c[y>>2]|0;k=c[s>>2]|0;c[h>>2]=a;c[h+4>>2]=b;n=0;ea(170,j|0,k|0,h|0);k=n;n=0;do if(!(k&1)){i=b+20|0;e=c[i>>2]|0;j=b+16|0;d=c[j>>2]|0;g=e-d>>2;h=c[y>>2]|0;f=0;while(1){if(f>>>0>=g>>>0)break;if((c[h+(f<<2)>>2]|0)>>>0>=g>>>0){o=14;break}f=f+1|0}if((o|0)==14){n=0;fa(75,102695,102729,61,102767);n=0;break}f=0;while(1){if(f>>>0>=e-d>>2>>>0)break;c[(c[y>>2]|0)+(f<<2)>>2]=f;f=f+1|0;e=c[i>>2]|0;d=c[j>>2]|0}f=b+28|0;n=0;da(2950,x|0,f|0);o=n;n=0;if(!(o&1)){g=b+32|0;c[g>>2]=c[b+28>>2];k=uob(b)|0;h=a+44|0;i=c[x>>2]|0;j=b+36|0;while(1){d=c[y>>2]|0;if(k>>>0>=(c[s>>2]|0)-d>>2>>>0){o=32;break}c[m>>2]=c[d+(k<<2)>>2];n=0;d=U(147,h|0,m|0)|0;o=n;n=0;if(o&1){o=27;break}if(!(c[d>>2]|0)){o=30;break}d=uob(b)|0;d=i+((c[m>>2]|0)-d<<2)|0;e=c[g>>2]|0;if((e|0)==(c[j>>2]|0)){n=0;da(1451,f|0,d|0);o=n;n=0;if(o&1){o=27;break}}else{c[e>>2]=c[d>>2];c[g>>2]=(c[g>>2]|0)+4}k=k+1|0}if((o|0)==27){d=sa()|0;P()|0;o=29}else if((o|0)==30){n=0;da(551,y|0,k|0);o=n;n=0;if(o&1){d=sa()|0;P()|0;o=29}else o=32}if((o|0)!=29)if((o|0)==32){Eqa(a+44|0);c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;n=0;da(551,w|0,l|0);m=n;n=0;if(m&1){d=sa()|0;P()|0}else{d=0;while(1){e=c[y>>2]|0;if(d>>>0>=(c[s>>2]|0)-e>>2>>>0)break;m=Rjb(b,d)|0;f=c[w>>2]|0;if(m)c[f+(d<<2)>>2]=d;else c[f+(c[e+(d<<2)>>2]<<2)>>2]=d;d=d+1|0}PRa(v,b,w);n=0;da(2951,v|0,b+44|0);m=n;n=0;do if(m&1){d=sa()|0;P()|0}else{yib(u);i=b+52|0;f=b+56|0;g=u+4|0;d=c[i>>2]|0;while(1){if((f|0)==(d|0))break;m=d+16|0;n=0;W(35,u|0,g|0,c[m>>2]|0,m|0)|0;m=n;n=0;if(m&1){o=53;break}e=d;d=c[e+4>>2]|0;a:do if(!d)while(1){d=c[e+8>>2]|0;if((e|0)==(c[d>>2]|0))break a;e=d}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0)}if((o|0)==53){d=sa()|0;P()|0;gHa(u);break}yib(p);h=b+64|0;f=b+68|0;g=p+4|0;d=c[h>>2]|0;while(1){if((f|0)==(d|0)){o=66;break}o=d+16|0;n=0;W(36,p|0,g|0,o|0,o|0)|0;o=n;n=0;if(o&1){o=74;break}e=d;d=c[e+4>>2]|0;b:do if(!d)while(1){d=c[e+8>>2]|0;if((e|0)==(c[d>>2]|0))break b;e=d}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0)}do if((o|0)==66){Bna(b+52|0);Ama(b+64|0);f=u+8|0;e=0;while(1){d=c[y>>2]|0;if(e>>>0>=(c[s>>2]|0)-d>>2>>>0){o=77;break}d=d+(e<<2)|0;if((c[d>>2]|0)>>>0<(c[f>>2]|0)>>>0){n=0;d=U(67,u|0,d|0)|0;b=n;n=0;if(b&1){o=75;break}c[q>>2]=c[d>>2];c[r>>2]=e;n=0;d=U(175,i|0,r|0)|0;b=n;n=0;if(b&1){o=75;break}c[d>>2]=c[q>>2];n=0;d=U(68,h|0,q|0)|0;b=n;n=0;if(b&1){o=75;break}c[d>>2]=e}e=e+1|0}if((o|0)==75){d=sa()|0;P()|0;l1a(p);break}else if((o|0)==77){l1a(p);D2a(u);Arb(v);Vob(w);Vob(x);Vob(y);yb=t;return}}else if((o|0)==74){d=sa()|0;P()|0;XFa(p)}while(0);D2a(u)}while(0);Arb(v)}Vob(w)}Vob(x);x=d;Vob(y);Ea(x|0)}}while(0);d=sa()|0;P()|0}x=d;Vob(y);Ea(x|0)}function wf(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,o=0,p=0,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=yb;yb=yb+240|0;u=A+224|0;B=A+212|0;q=A+200|0;m=A+192|0;o=A+100|0;p=A+8|0;y=A+4|0;z=A;c[u>>2]=d;t=d;if(!(eCb(c[d+8>>2]|0)|0)){yb=A;return}e=d+8|0;if(f9(b+68|0,e)|0){yb=A;return}x=O4(b+56|0,e)|0;f=c[x>>2]|0;c[B>>2]=f;w=x+4|0;g=c[w>>2]|0;c[B+4>>2]=g;v=x+8|0;c[B+8>>2]=c[v>>2];c[v>>2]=0;c[w>>2]=0;c[x>>2]=0;B0(b+56|0,e);x=f;a:do if((g|0)!=(f|0)){n=0;e=S(239,c[c[x>>2]>>2]|0)|0;w=n;n=0;do if(w&1)s=6;else{if(c[e+12>>2]|0){n=0;fa(75,104276,104084,375,104325);n=0;s=6;break}r=b+44|0;h=b+48|0;w=g-f>>4;e=c[r>>2]|0;b:while(1){if((h|0)==(e|0))break a;v=c[e+16>>2]|0;f=0;while(1){if(f>>>0>=w>>>0)break b;if(!(Jga(x+(f<<4)+4|0,v)|0))break;f=f+1|0}f=e;e=c[f+4>>2]|0;c:do if(!e)while(1){e=c[f+8>>2]|0;if((f|0)==(c[e>>2]|0))break c;f=e}else while(1){f=c[e>>2]|0;if(!f)break;e=f}while(0)}l=q+4|0;k=b+40|0;j=0;while(1){if(j>>>0>=w>>>0){s=46;break}n=0;e=U(179,x+(j<<4)+4|0,v|0)|0;i=n;n=0;if(i&1){s=5;break}h=c[e>>2]|0;n=0;e=S(239,c[c[x+(j<<4)>>2]>>2]|0)|0;i=n;n=0;if(i&1){s=5;break}n=0;i=S(244,c[h>>2]|0)|0;g=n;n=0;if(g&1){s=5;break}g=e+16|0;e=c[g>>2]|0;if(e|0){n=0;da(1794,q|0,e|0);f=n;n=0;if(f&1){s=5;break}f=c[l>>2]|0;e=c[q>>2]|0;while(1){if((e|0)==(f|0))break;if((c[e>>2]|0)==(i|0)){s=36;break}e=e+4|0}if((s|0)==36){s=0;esb(m);c[h>>2]=m;f=pob(c[k>>2]|0)|0;n=0;ea(130,o|0,f|0,c[g>>2]|0);g=n;n=0;if(g&1){s=39;break}g=pob(c[k>>2]|0)|0;n=0;ea(130,p|0,g|0,i|0);g=n;n=0;if(g&1){s=40;break}c[h>>2]=i;i=Hi(o,p)|0;Fha(p);Fha(o);if(i){s=42;break}}Htb(q)}j=j+1|0}if((s|0)==5){e=sa()|0;P()|0;break}else if((s|0)==39){e=sa()|0;P()|0}else if((s|0)==40){e=sa()|0;P()|0;Fha(o)}else if((s|0)==42){Htb(q);break a}else if((s|0)==46){h=d+16|0;if(WCb(c[h>>2]|0)|0){i=d+12|0;n=0;e=S(275,i|0)|0;s=n;n=0;if(s&1){s=6;break}if(Gzb(c[c[e>>2]>>2]|0)|0){n=0;e=U(179,r|0,v|0)|0;u=n;n=0;if(u&1){s=6;break}g=c[e>>2]|0;n=0;e=S(244,c[g>>2]|0)|0;u=n;n=0;if(u&1){s=6;break}f=c[e+12>>2]|0;e=(WCb(c[h>>2]|0)|0)+-1|0;n=0;e=U(74,i|0,e|0)|0;u=n;n=0;if(u&1){s=6;break}c[e>>2]=f;c[d+4>>2]=c[f+4>>2];Gjb(c[g>>2]|0);k=b+36|0;j=0;while(1){if(j>>>0>=w>>>0){s=68;break}n=0;e=U(179,x+(j<<4)+4|0,v|0)|0;u=n;n=0;if(u&1){s=4;break}g=c[e>>2]|0;i=c[x+(j<<4)>>2]|0;n=0;h=S(239,c[i>>2]|0)|0;u=n;n=0;if(u&1){s=4;break}e=h+12|0;if(c[e>>2]|0){s=60;break}n=0;f=S(244,c[g>>2]|0)|0;u=n;n=0;if(u&1){s=4;break}if(!(c[h+16>>2]|0)){c[e>>2]=c[f+12>>2];Gjb(f)}else{c[e>>2]=f;m4a(f,1);e=c[k>>2]|0;WCb(e)|0;n=0;e=S(292,e+152|0)|0;u=n;n=0;if(u&1){s=4;break}c[g>>2]=e;Cva(h);Gsb(y,WCb(c[k>>2]|0)|0);n=0;e=U(161,c[y>>2]|0,h|0)|0;u=n;n=0;if(u&1){s=4;break}c[i>>2]=e}j=j+1|0}if((s|0)==4){e=sa()|0;P()|0;break}else if((s|0)==60){n=0;fa(75,104345,104084,460,104325);n=0;s=6;break}else if((s|0)==68){Gsb(z,WCb(c[k>>2]|0)|0);n=0;e=V(70,c[z>>2]|0,v|0,d|0)|0;z=n;n=0;if(z&1){s=6;break}Pwb(c[b+16>>2]|0,e);Bea(b+44|0);a[b+92>>0]=1;break a}}}e=b+148|0;f=c[e>>2]|0;if((f|0)==(c[b+152>>2]|0)){n=0;da(222,b+144|0,u|0);b=n;n=0;if(b&1){s=6;break}else break a}else{c[f>>2]=t;c[e>>2]=(c[e>>2]|0)+4;break a}}Htb(q);A=e;x4a(B);Ea(A|0)}while(0);if((s|0)==6){e=sa()|0;P()|0}A=e;x4a(B);Ea(A|0)}while(0);x4a(B);yb=A;return}function xf(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,o=0,p=0,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=yb;yb=yb+240|0;u=A+224|0;B=A+212|0;q=A+200|0;m=A+192|0;o=A+100|0;p=A+8|0;y=A+4|0;z=A;c[u>>2]=d;t=d;if(!(eCb(c[d+8>>2]|0)|0)){yb=A;return}e=d+8|0;if(f9(b+68|0,e)|0){yb=A;return}x=O4(b+56|0,e)|0;f=c[x>>2]|0;c[B>>2]=f;w=x+4|0;g=c[w>>2]|0;c[B+4>>2]=g;v=x+8|0;c[B+8>>2]=c[v>>2];c[v>>2]=0;c[w>>2]=0;c[x>>2]=0;z0(b+56|0,e);x=f;a:do if((g|0)!=(f|0)){n=0;e=S(239,c[c[x>>2]>>2]|0)|0;w=n;n=0;do if(w&1)s=6;else{if(c[e+12>>2]|0){n=0;fa(75,104276,104084,375,104325);n=0;s=6;break}r=b+44|0;h=b+48|0;w=g-f>>4;e=c[r>>2]|0;b:while(1){if((h|0)==(e|0))break a;v=c[e+16>>2]|0;f=0;while(1){if(f>>>0>=w>>>0)break b;if(!(Jga(x+(f<<4)+4|0,v)|0))break;f=f+1|0}f=e;e=c[f+4>>2]|0;c:do if(!e)while(1){e=c[f+8>>2]|0;if((f|0)==(c[e>>2]|0))break c;f=e}else while(1){f=c[e>>2]|0;if(!f)break;e=f}while(0)}l=q+4|0;k=b+40|0;j=0;while(1){if(j>>>0>=w>>>0){s=46;break}n=0;e=U(178,x+(j<<4)+4|0,v|0)|0;i=n;n=0;if(i&1){s=5;break}h=c[e>>2]|0;n=0;e=S(239,c[c[x+(j<<4)>>2]>>2]|0)|0;i=n;n=0;if(i&1){s=5;break}n=0;i=S(244,c[h>>2]|0)|0;g=n;n=0;if(g&1){s=5;break}g=e+16|0;e=c[g>>2]|0;if(e|0){n=0;da(1794,q|0,e|0);f=n;n=0;if(f&1){s=5;break}f=c[l>>2]|0;e=c[q>>2]|0;while(1){if((e|0)==(f|0))break;if((c[e>>2]|0)==(i|0)){s=36;break}e=e+4|0}if((s|0)==36){s=0;esb(m);c[h>>2]=m;f=pob(c[k>>2]|0)|0;n=0;ea(130,o|0,f|0,c[g>>2]|0);g=n;n=0;if(g&1){s=39;break}g=pob(c[k>>2]|0)|0;n=0;ea(130,p|0,g|0,i|0);g=n;n=0;if(g&1){s=40;break}c[h>>2]=i;i=Hi(o,p)|0;Fha(p);Fha(o);if(i){s=42;break}}Htb(q)}j=j+1|0}if((s|0)==5){e=sa()|0;P()|0;break}else if((s|0)==39){e=sa()|0;P()|0}else if((s|0)==40){e=sa()|0;P()|0;Fha(o)}else if((s|0)==42){Htb(q);break a}else if((s|0)==46){h=d+16|0;if(WCb(c[h>>2]|0)|0){i=d+12|0;n=0;e=S(275,i|0)|0;s=n;n=0;if(s&1){s=6;break}if(Gzb(c[c[e>>2]>>2]|0)|0){n=0;e=U(178,r|0,v|0)|0;u=n;n=0;if(u&1){s=6;break}g=c[e>>2]|0;n=0;e=S(244,c[g>>2]|0)|0;u=n;n=0;if(u&1){s=6;break}f=c[e+12>>2]|0;e=(WCb(c[h>>2]|0)|0)+-1|0;n=0;e=U(74,i|0,e|0)|0;u=n;n=0;if(u&1){s=6;break}c[e>>2]=f;c[d+4>>2]=c[f+4>>2];Gjb(c[g>>2]|0);k=b+36|0;j=0;while(1){if(j>>>0>=w>>>0){s=68;break}n=0;e=U(178,x+(j<<4)+4|0,v|0)|0;u=n;n=0;if(u&1){s=4;break}g=c[e>>2]|0;i=c[x+(j<<4)>>2]|0;n=0;h=S(239,c[i>>2]|0)|0;u=n;n=0;if(u&1){s=4;break}e=h+12|0;if(c[e>>2]|0){s=60;break}n=0;f=S(244,c[g>>2]|0)|0;u=n;n=0;if(u&1){s=4;break}if(!(c[h+16>>2]|0)){c[e>>2]=c[f+12>>2];Gjb(f)}else{c[e>>2]=f;m4a(f,1);e=c[k>>2]|0;WCb(e)|0;n=0;e=S(292,e+152|0)|0;u=n;n=0;if(u&1){s=4;break}c[g>>2]=e;Cva(h);Gsb(y,WCb(c[k>>2]|0)|0);n=0;e=U(161,c[y>>2]|0,h|0)|0;u=n;n=0;if(u&1){s=4;break}c[i>>2]=e}j=j+1|0}if((s|0)==4){e=sa()|0;P()|0;break}else if((s|0)==60){n=0;fa(75,104345,104084,460,104325);n=0;s=6;break}else if((s|0)==68){Gsb(z,WCb(c[k>>2]|0)|0);n=0;e=V(70,c[z>>2]|0,v|0,d|0)|0;z=n;n=0;if(z&1){s=6;break}Pwb(c[b+16>>2]|0,e);zea(b+44|0);a[b+92>>0]=1;break a}}}e=b+148|0;f=c[e>>2]|0;if((f|0)==(c[b+152>>2]|0)){n=0;da(222,b+144|0,u|0);b=n;n=0;if(b&1){s=6;break}else break a}else{c[f>>2]=t;c[e>>2]=(c[e>>2]|0)+4;break a}}Htb(q);A=e;v4a(B);Ea(A|0)}while(0);if((s|0)==6){e=sa()|0;P()|0}A=e;v4a(B);Ea(A|0)}while(0);v4a(B);yb=A;return}function yf(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,o=0,p=0;p=yb;yb=yb+64|0;m=p+48|0;i=p+36|0;k=p+24|0;l=p+12|0;j=p;a:do if((d-b|0)>2){switch(a[b>>0]|0){case 84:break;case 71:switch(a[b+1>>0]|0){case 86:{m=b+2|0;f=qj(m,d,e)|0;if((f|0)==(m|0)){o=71;break a}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0))break a;IGa(g+-24|0,0,141759)|0;b=f;o=71;break a}case 82:{m=b+2|0;f=qj(m,d,e)|0;if((f|0)==(m|0)){o=71;break a}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0))break a;IGa(g+-24|0,0,141779)|0;b=f;o=71;break a}default:{o=71;break a}}default:{o=71;break a}}f=b+1|0;switch(a[f>>0]|0){case 86:{m=b+2|0;f=cc(m,d,e)|0;if((f|0)==(m|0)){o=71;break a}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0))break a;IGa(g+-24|0,0,141608)|0;b=f;o=71;break a}case 84:{m=b+2|0;f=cc(m,d,e)|0;if((f|0)==(m|0)){o=71;break a}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0))break a;IGa(g+-24|0,0,141620)|0;b=f;o=71;break a}case 73:{m=b+2|0;f=cc(m,d,e)|0;if((f|0)==(m|0)){o=71;break a}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0))break a;IGa(g+-24|0,0,141629)|0;b=f;o=71;break a}case 83:{m=b+2|0;f=cc(m,d,e)|0;if((f|0)==(m|0)){o=71;break a}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0))break a;IGa(g+-24|0,0,141643)|0;b=f;o=71;break a}case 99:{m=b+2|0;f=CO(m,d)|0;if((f|0)==(m|0)){o=71;break a}h=CO(f,d)|0;if((h|0)==(f|0)){o=71;break a}g=Nc(h,d,e)|0;if((g|0)==(h|0)){o=71;break a}f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;IGa(f+-24|0,0,141662)|0;b=g;o=71;break a}case 67:{h=b+2|0;f=cc(h,d,e)|0;if((f|0)==(h|0)){o=71;break a}g=M5(f,d)|0;if((g|0)==(f|0)|(g|0)==(d|0)){o=71;break a}if((a[g>>0]|0)!=95){o=71;break a}g=g+1|0;h=cc(g,d,e)|0;if((h|0)==(g|0)){o=71;break a}g=e+4|0;f=c[g>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(m,f+-24|0);f=c[g>>2]|0;b=0;while(1){if((b|0)==-1)break;o=b+-1|0;J2a(f+(o*24|0)|0);b=o}c[g>>2]=f+-24;n=0;V(128,m|0,0,141689)|0;o=n;n=0;if(o&1){b=sa()|0;P()|0}else{c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,l|0,141714)|0;o=n;n=0;if(o&1){b=sa()|0;P()|0}else{c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}n=0;da(4196,j|0,(c[g>>2]|0)+-24|0);o=n;n=0;do if(o&1){b=sa()|0;P()|0}else{o=a[j+11>>0]|0;e=o<<24>>24<0;n=0;V(124,k|0,(e?c[j>>2]|0:j)|0,(e?c[j+4>>2]|0:o&255)|0)|0;o=n;n=0;if(o&1){b=sa()|0;P()|0;Chb(j);break}c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];b=0;while(1){if((b|0)==3)break;c[k+(b<<2)>>2]=0;b=b+1|0}b=c[g>>2]|0;g=b+-24|0;f=g+11|0;if((a[f>>0]|0)<0){Fsb(c[g>>2]|0,0);c[b+-20>>2]=0;b=g}else{Fsb(g,0);a[f>>0]=0;b=g}Yw(g);c[b>>2]=c[i>>2];c[b+4>>2]=c[i+4>>2];c[b+8>>2]=c[i+8>>2];b=0;while(1){if((b|0)==3)break;c[i+(b<<2)>>2]=0;b=b+1|0}Chb(i);Chb(j);Chb(k);Chb(l);Chb(m);b=h;o=71;break a}while(0);Chb(k)}Chb(l)}Chb(m);Ea(b|0)}default:{g=CO(f,d)|0;do if((g|0)!=(f|0)){f=Nc(g,d,e)|0;if((f|0)!=(g|0)){g=c[e+4>>2]|0;if((c[e>>2]|0)!=(g|0)){g=g+-24|0;if((a[b+2>>0]|0)==118){IGa(g,0,141719)|0;g=0;break}else{IGa(g,0,141737)|0;g=0;break}}else{g=1;f=b}}else{g=0;f=b}}else{g=3;f=b}while(0);switch(g&3){case 3:case 0:{b=f;o=71;break a}default:{}}if(!g){b=f;o=71;break a}else break a}}}else o=71;while(0);yb=p;return b|0}function zf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;q=yb;yb=yb+304|0;k=q+280|0;l=q+268|0;m=q+264|0;p=q+252|0;o=q;c[b>>2]=d;c[b+4>>2]=d+152;w=b+8|0;x=b+20|0;y=b+32|0;c[b+48>>2]=0;z=b+52|0;h=w;i=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0));yib(z);u=b+64|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;g[b+80>>2]=1.0;v=b+84|0;c[v>>2]=0;s=b+88|0;yib(s);t=b+112|0;sOa(t);n=0;h=S(330,e|0)|0;i=n;n=0;do if(!(i&1)){if(!h){j=oa(20)|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;q=Zzb(119042)|0;n=0;ea(95,k|0,119042,q|0);q=n;n=0;if(!(q&1)){n=0;da(330,j|0,k|0);q=n;n=0;if(q&1)i=1;else{n=0;ea(122,j|0,31856,511);n=0;i=0}h=sa()|0;P()|0;Chb(k);if(!i){i=h;break}}else{h=sa()|0;P()|0}va(j|0);i=h;break}n=0;h=U(81,e|0,0)|0;k=n;n=0;if(!(k&1)?(n=0,j=S(331,h|0)|0,k=n,n=0,!(k&1)):0){if(cub(j,c[37381]|0)|0){j=oa(20)|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;q=Zzb(119074)|0;n=0;ea(95,l|0,119074,q|0);q=n;n=0;if(!(q&1)){n=0;da(330,j|0,l|0);q=n;n=0;if(q&1)i=1;else{n=0;ea(122,j|0,31856,511);n=0;i=0}h=sa()|0;P()|0;Chb(l);if(!i){i=h;break}}else{h=sa()|0;P()|0}va(j|0);i=h;break}n=0;h=S(330,e|0)|0;l=n;n=0;if(!(l&1)){if((h|0)==1){yb=q;return}n=0;h=U(81,e|0,1)|0;l=n;n=0;if(!(l&1)){if(Gcb(h)|0)if(!f)i=2;else{n=0;h=U(81,e|0,1)|0;l=n;n=0;if(l&1){r=8;break}n=0;h=S(331,h|0)|0;l=n;n=0;if(l&1){r=8;break}Ftb(m,h);c[f>>2]=c[m>>2];i=2}else i=1;n=0;h=S(330,e|0)|0;m=n;n=0;if(!(m&1)){if(i>>>0>>0){n=0;h=U(81,e|0,i|0)|0;m=n;n=0;if(m&1){r=8;break}if($Bb(a[h>>0]|0)|0){c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;while(1){n=0;h=S(330,e|0)|0;r=n;n=0;if(r&1){r=41;break}if(i>>>0>=h>>>0){r=43;break}j=i+1|0;n=0;h=U(81,e|0,i|0)|0;r=n;n=0;if(r&1){r=41;break}n=0;h=S(332,h|0)|0;r=n;n=0;if(r&1){r=41;break}i=y2(h)|0;if(i|0?(n=0,ea(201,h|0,i|0,p|0),r=n,n=0,r&1):0){r=41;break}i=j}do if((r|0)==41){h=sa()|0;P()|0}else if((r|0)==43){yx(o,d,p);n=0;ca(509,o|0);e=n;n=0;if(e&1){h=sa()|0;P()|0;TE(o);break}TE(o);Vob(p);yb=q;return}while(0);Vob(p);i=h;break}}f=b+44|0;c[f>>2]=0;l=i;h=0;while(1){n=0;j=S(330,e|0)|0;p=n;n=0;if(p&1){r=7;break}if(l>>>0>=j>>>0)break;n=0;k=U(81,e|0,l|0)|0;p=n;n=0;if(p&1){r=7;break}n=0;da(4054,b|0,k|0);p=n;n=0;if(p&1){r=7;break}n=0;da(4055,b|0,k|0);p=n;n=0;if(p&1){r=7;break}n=0;j=U(81,k|0,0)|0;p=n;n=0;if(p&1){r=7;break}n=0;j=S(331,j|0)|0;p=n;n=0;if(p&1){r=7;break}if(dub(j,c[37383]|0)|0){n=0;j=S(333,k|0)|0;p=n;n=0;if(p&1){r=7;break}h=h+((j^1)&1)|0}l=l+1|0}if((r|0)==7){h=sa()|0;P()|0;r=9;break}c[f>>2]=(c[f>>2]|0)-h;while(1){n=0;h=S(330,e|0)|0;r=n;n=0;if(r&1){r=6;break}if(i>>>0>=h>>>0){r=65;break}n=0;h=U(81,e|0,i|0)|0;r=n;n=0;if(r&1){r=6;break}n=0;da(4056,b|0,h|0);r=n;n=0;if(r&1){r=6;break}i=i+1|0}if((r|0)==6){h=sa()|0;P()|0;r=9;break}else if((r|0)==65){yb=q;return}}else r=8}else r=8}else r=8}else r=8}else r=8;while(0);if((r|0)==8){h=sa()|0;P()|0;r=9}if((r|0)==9)i=h;oIa(t);KYa(s);h=c[v>>2]|0;c[v>>2]=0;if(!h){Pdb(u);KYa(z);Vob(y);Vob(x);Vob(w);Ea(i|0)}IM(h);RCb(h);Pdb(u);KYa(z);Vob(y);Vob(x);Vob(w);Ea(i|0)}function Af(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=yb;yb=yb+80|0;A=C+76|0;g=C+64|0;r=C+60|0;s=C+56|0;D=C+44|0;t=C+40|0;u=C+36|0;v=C+32|0;w=C+28|0;l=C+24|0;m=C+20|0;o=C+8|0;p=C+4|0;B=C;q=b+84|0;if(!(c[q>>2]|0)){f=oa(20)|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;D=Zzb(126082)|0;n=0;ea(95,g|0,126082,D|0);D=n;n=0;if(!(D&1)){n=0;da(330,f|0,g|0);D=n;n=0;if(D&1)e=1;else{n=0;ea(122,f|0,31856,511);n=0;e=0}d=sa()|0;P()|0;Chb(g);if(!e){D=d;Ea(D|0)}}else{d=sa()|0;P()|0}va(f|0);D=d;Ea(D|0)}j=b+4|0;h=Eeb(c[j>>2]|0)|0;c[r>>2]=h;c[s>>2]=d;c[D>>2]=0;y=D+4|0;c[y>>2]=0;k=D+8|0;c[k>>2]=0;z=b+112|0;e=h;f=0;g=0;i=d;d=h;a:while(1){if(f>>>0>=g>>>0){n=0;ea(206,D|0,s|0,r|0);h=n;n=0;if(h&1){x=28;break}}else{c[f>>2]=i;c[f+4>>2]=d;c[y>>2]=(c[y>>2]|0)+8}c[t>>2]=1;Cub(u);n=0;d=S(330,i|0)|0;h=n;n=0;if(h&1){x=28;break}do if(d>>>0>1){n=0;d=U(81,i|0,1)|0;h=n;n=0;if(h&1){x=28;break a}if($Bb(a[d>>0]|0)|0){n=0;d=U(81,i|0,1)|0;h=n;n=0;if(h&1){x=28;break a}if(!(Gcb(d)|0)){n=0;d=U(81,i|0,1)|0;h=n;n=0;if(h&1){x=28;break a}n=0;d=S(331,d|0)|0;h=n;n=0;if(h&1){x=28;break a}n=0;d=U(199,d|0,1)|0;h=n;n=0;if(h&1){x=28;break a}if(d|0){n=0;da(211,w|0,134186);h=n;n=0;if(h&1){x=28;break a}d=c[w>>2]|0;c[u>>2]=d;break}}c[t>>2]=2;n=0;d=U(81,i|0,1)|0;h=n;n=0;if(h&1){x=28;break a}n=0;d=S(331,d|0)|0;h=n;n=0;if(h&1){x=28;break a}Ftb(v,d);d=c[v>>2]|0;c[u>>2]=d}else x=32}else x=32;while(0);if((x|0)==32){x=0;n=0;da(211,l|0,134186);h=n;n=0;if(h&1){x=28;break}d=c[l>>2]|0;c[u>>2]=d}c[m>>2]=d;n=0;c[A>>2]=c[m>>2];d=U(206,z|0,A|0)|0;h=n;n=0;if(h&1){x=28;break}c[e+8>>2]=d;n=0;d=U(207,i|0,t|0)|0;h=n;n=0;if(h&1){x=28;break}c[e+4>>2]=d;e=c[t>>2]|0;n=0;d=S(330,i|0)|0;h=n;n=0;if(h&1){x=28;break}if(e>>>0>=d>>>0){x=48;break}n=0;i=U(81,i|0,e|0)|0;h=n;n=0;if(h&1){x=28;break}n=0;d=U(81,i|0,0)|0;h=n;n=0;if(h&1){x=28;break}n=0;d=S(331,d|0)|0;h=n;n=0;if(h&1){x=28;break}if(!(dub(d,c[37397]|0)|0)){x=48;break}n=0;e=S(307,c[j>>2]|0)|0;h=n;n=0;if(h&1){x=28;break}c[r>>2]=e;d=c[i+36>>2]|0;h=e;if(d|0){n=0;ea(205,o|0,b|0,d|0);g=n;n=0;if(g&1){x=28;break}d=(c[q>>2]|0)+76|0;c[p>>2]=h;n=0;d=U(197,d|0,p|0)|0;g=n;n=0;if(g&1){x=28;break}c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2]}c[s>>2]=i;f=c[y>>2]|0;g=c[k>>2]|0;d=h}do if((x|0)==28){d=sa()|0;P()|0}else if((x|0)==48){g=(c[y>>2]|0)-(c[D>>2]|0)>>3;b:while(1){i=g+-1|0;d=c[D>>2]|0;if((g|0)<=0){x=78;break}j=c[d+(i<<3)>>2]|0;h=c[d+(i<<3)+4>>2]|0;n=0;d=S(330,j|0)|0;x=n;n=0;if(x&1){x=27;break}c:do if(d>>>0>1){d=1;while(1){n=0;e=S(330,j|0)|0;x=n;n=0;if(x&1){x=26;break b}if(d>>>0>=e>>>0)break;n=0;e=U(81,j|0,d|0)|0;x=n;n=0;if(x&1){x=26;break b}if(!($Bb(a[e>>0]|0)|0))break;d=d+1|0}n=0;e=S(330,j|0)|0;x=n;n=0;if(x&1){x=27;break b}if(d>>>0>>0){n=0;e=U(81,j|0,d|0)|0;x=n;n=0;if(x&1){x=27;break b}n=0;e=U(81,e|0,0)|0;x=n;n=0;if(x&1){x=27;break b}n=0;e=S(331,e|0)|0;x=n;n=0;if(x&1){x=27;break b}d=d+((dub(e,c[37385]|0)|0)&1)|0}e=c[D>>2]|0;if((g|0)<((c[y>>2]|0)-e>>3|0)){f=h+12|0;n=0;da(231,f|0,c[e+(g<<3)+4>>2]|0);x=n;n=0;if(x&1){x=27;break b}d=d+1|0}else f=h+12|0;while(1){n=0;e=S(330,j|0)|0;x=n;n=0;if(x&1){x=25;break b}if(d>>>0>=e>>>0)break c;n=0;e=U(81,j|0,d|0)|0;x=n;n=0;if(x&1){x=25;break b}n=0;e=U(204,b|0,e|0)|0;x=n;n=0;if(x&1){x=25;break b}n=0;da(231,f|0,e|0);x=n;n=0;if(x&1){x=25;break b}d=d+1|0}}while(0);c[B>>2]=c[h+8>>2];n=0;c[A>>2]=c[B>>2];da(4059,z|0,A|0);x=n;n=0;if(x&1){x=27;break}n=0;da(620,h|0,c[h+4>>2]|0);x=n;n=0;if(x&1){x=27;break}g=i}if((x|0)==25){d=sa()|0;P()|0;break}else if((x|0)==26){d=sa()|0;P()|0;break}else if((x|0)==27){d=sa()|0;P()|0;break}else if((x|0)==78){B=c[d+4>>2]|0;Vob(D);yb=C;return B|0}}while(0);Vob(D);D=d;Ea(D|0);return 0}function Bf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;if(a[b+33>>0]&1)BM(IWa(150620,112989)|0);h=e+20|0;T_a(b,c[h>>2]|0);if((c[(c[h>>2]|0)+4>>2]|0)==6)return;h=e+24|0;T_a(b,c[h>>2]|0);if((c[(c[h>>2]|0)+4>>2]|0)==6)return;g=e+4|0;h=b+28|0;f=c[h>>2]|0;if((c[g>>2]|0)==6){Ygb(f);return}tI(f,-2)|0;a:do switch(c[e+8>>2]|0){case 0:{switch(c[g>>2]|0){case 1:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,32)|0;i=f;break a}case 2:{tI(c[h>>2]|0,33)|0;i=f;break a}case 4:{tI(c[h>>2]|0,30)|0;i=f;break a}default:ma(141129,112765,787,113008)}break}case 2:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,34)|0;i=f;break a}case 2:{tI(c[h>>2]|0,35)|0;i=f;break a}case 4:{tI(c[h>>2]|0,36)|0;i=f;break a}case 8:{tI(c[h>>2]|0,31)|0;i=f;break a}default:ma(141129,112765,787,113008)}break}default:ma(141129,112765,787,113008)}break}case 1:{switch(c[g>>2]|0){case 1:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,39)|0;i=f;break a}case 2:{tI(c[h>>2]|0,40)|0;i=f;break a}case 4:{tI(c[h>>2]|0,37)|0;i=f;break a}default:ma(141129,112765,788,113008)}break}case 2:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,41)|0;i=f;break a}case 2:{tI(c[h>>2]|0,42)|0;i=f;break a}case 4:{tI(c[h>>2]|0,43)|0;i=f;break a}case 8:{tI(c[h>>2]|0,38)|0;i=f;break a}default:ma(141129,112765,788,113008)}break}default:ma(141129,112765,788,113008)}break}case 2:{switch(c[g>>2]|0){case 1:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,46)|0;i=f;break a}case 2:{tI(c[h>>2]|0,47)|0;i=f;break a}case 4:{tI(c[h>>2]|0,44)|0;i=f;break a}default:ma(141129,112765,789,113008)}break}case 2:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,48)|0;i=f;break a}case 2:{tI(c[h>>2]|0,49)|0;i=f;break a}case 4:{tI(c[h>>2]|0,50)|0;i=f;break a}case 8:{tI(c[h>>2]|0,45)|0;i=f;break a}default:ma(141129,112765,789,113008)}break}default:ma(141129,112765,789,113008)}break}case 3:{switch(c[g>>2]|0){case 1:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,53)|0;i=f;break a}case 2:{tI(c[h>>2]|0,54)|0;i=f;break a}case 4:{tI(c[h>>2]|0,51)|0;i=f;break a}default:ma(141129,112765,790,113008)}break}case 2:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,55)|0;i=f;break a}case 2:{tI(c[h>>2]|0,56)|0;i=f;break a}case 4:{tI(c[h>>2]|0,57)|0;i=f;break a}case 8:{tI(c[h>>2]|0,52)|0;i=f;break a}default:ma(141129,112765,790,113008)}break}default:ma(141129,112765,790,113008)}break}case 4:{switch(c[g>>2]|0){case 1:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,60)|0;i=f;break a}case 2:{tI(c[h>>2]|0,61)|0;i=f;break a}case 4:{tI(c[h>>2]|0,58)|0;i=f;break a}default:ma(141129,112765,791,113008)}break}case 2:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,62)|0;i=f;break a}case 2:{tI(c[h>>2]|0,63)|0;i=f;break a}case 4:{tI(c[h>>2]|0,64)|0;i=f;break a}case 8:{tI(c[h>>2]|0,59)|0;i=f;break a}default:ma(141129,112765,791,113008)}break}default:ma(141129,112765,791,113008)}break}case 5:{switch(c[g>>2]|0){case 1:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,67)|0;i=f;break a}case 2:{tI(c[h>>2]|0,68)|0;i=f;break a}case 4:{tI(c[h>>2]|0,65)|0;i=f;break a}default:ma(141129,112765,792,113008)}break}case 2:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,69)|0;i=f;break a}case 2:{tI(c[h>>2]|0,70)|0;i=f;break a}case 4:{tI(c[h>>2]|0,71)|0;i=f;break a}case 8:{tI(c[h>>2]|0,66)|0;i=f;break a}default:ma(141129,112765,792,113008)}break}default:ma(141129,112765,792,113008)}break}default:ma(141129,112765,793,113008)}while(0);i=d[i>>0]|0;G5(b,i,i,WCb(c[e+16>>2]|0)|0);return}function Cf(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=yb;yb=yb+144|0;p=D+136|0;B=D+132|0;C=D+128|0;i=D+116|0;f=D+112|0;g=D+108|0;h=D+104|0;t=D+100|0;m=D+96|0;q=D+92|0;s=D+80|0;j=D+76|0;k=D+72|0;l=D+68|0;r=D+56|0;u=D+52|0;v=D+48|0;w=D;x=D+36|0;y=D+32|0;z=D+28|0;A=D+24|0;e=(c[b>>2]|0)+92|0;if(a[e>>0]&1){g=oa(20)|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;E=Zzb(119556)|0;n=0;ea(95,i|0,119556,E|0);E=n;n=0;if(!(E&1)){n=0;da(330,g|0,i|0);E=n;n=0;if(E&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(i);if(!f){E=e;Ea(E|0)}}else{e=sa()|0;P()|0}va(g|0);E=e;Ea(E|0)}a[e>>0]=1;a[(c[b>>2]|0)+120>>0]=0;if(Gcb(Vr(d,1)|0)|0){Ftb(f,kH(Vr(d,1)|0)|0);c[(c[b>>2]|0)+96>>2]=c[f>>2];i=2}else i=1;Cub(g);Cub(h);h=Vr(d,i)|0;if(UBb(a[h>>0]|0)|0){e=Vr(d,i)|0;h=kH(Vr(e,0)|0)|0;a:do if(dub(h,c[37389]|0)|0){TTa(t);n=0;e=U(81,e|0,1)|0;r=n;n=0;do if(!(r&1)?(n=0,o=S(331,e|0)|0,r=n,n=0,!(r&1)):0){Ftb(m,o);e=c[t>>2]|0;r=c[m>>2]|0;c[e>>2]=r;c[e+4>>2]=c[(c[b>>2]|0)+96>>2];c[e+8>>2]=2;f=c[b>>2]|0;c[q>>2]=r;c[p>>2]=c[q>>2];if(!(FEa(f,p)|0)){c[t>>2]=0;n=0;da(72,f|0,e|0);s=n;n=0;if(s&1){E=18;break}c[t>>2]=0;break a}h=oa(20)|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;b=Zzb(119228)|0;n=0;ea(95,s|0,119228,b|0);b=n;n=0;if(!(b&1)){n=0;fa(134,h|0,s|0,c[d+28>>2]|0,c[d+32>>2]|0);d=n;n=0;if(d&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(s);if(!g){g=t;break}}else{f=sa()|0;P()|0}va(h|0);g=t}else E=18;while(0);if((E|0)==18){f=sa()|0;P()|0;g=t;e=c[t>>2]|0}c[g>>2]=0;if(!e){E=f;Ea(E|0)}RCb(e);E=f;Ea(E|0)}else{t=kH(Vr(e,0)|0)|0;if(dub(t,c[37390]|0)|0){Ftb(j,kH(Vr(e,1)|0)|0);c[(c[b>>2]|0)+84>>2]=c[j>>2];Ftb(k,kH(Vr(e,2)|0)|0);c[(c[b>>2]|0)+88>>2]=c[k>>2];break}t=kH(Vr(e,0)|0)|0;m2a(l,119574,1);if(dub(t,c[l>>2]|0)|0){a[(c[b>>2]|0)+120>>0]=1;gx(b,e,1)|0;break}if(xmb(e)|0?(E=kH(Vr(e,0)|0)|0,!(cub(E,c[37390]|0)|0)):0){g=oa(20)|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;E=Zzb(119581)|0;n=0;ea(95,r|0,119581,E|0);E=n;n=0;if(!(E&1)){n=0;da(330,g|0,r|0);E=n;n=0;if(E&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(r);if(!f){E=e;Ea(E|0)}}else{e=sa()|0;P()|0}va(g|0);E=e;Ea(E|0)}ap(b,Vr(d,i)|0,1,0);d=c[b>>2]|0;E=c[d+108>>2]|0;G1a(d+100|0,(c[E+8>>2]|0)-(c[E+4>>2]|0)|0,0)|0;yb=D;return}while(0);e=i+1|0}else e=i;if(!(a[(c[b>>2]|0)+120>>0]&1))e=gx(b,d,e)|0;l=b+4|0;m=x+4|0;o=x+8|0;b:while(1){if(e>>>0>=(xmb(d)|0)>>>0){E=60;break}g=Vr(d,e)|0;hCb(u);t=kH(Vr(g,0)|0)|0;if(dub(t,c[37387]|0)|0){G1a(u,0,0)|0;f=1}else{f=iD(Vr(g,1)|0,119599)|0;c[u>>2]=f;f=2}f=kH(Vr(g,f)|0)|0;k=Ojb(c[l>>2]|0)|0;c[v>>2]=k;c[k+4>>2]=1;Bqb(w,WCb(c[u>>2]|0)|0);g=k+8|0;c[g>>2]=c[w>>2];c[g+4>>2]=c[w+4>>2];c[g+8>>2]=c[w+8>>2];c[g+12>>2]=c[w+12>>2];c[g+16>>2]=c[w+16>>2];g=y2(f)|0;do if(!g){f=c[b>>2]|0;c[A>>2]=0;g=f+112|0;h=c[g>>2]|0;if(h>>>0<(c[f+116>>2]|0)>>>0){j6a(C,0,0);v6(h,k,151778,c[C>>2]|0);c[g>>2]=(c[g>>2]|0)+16;break}else{Hv(f+108|0,v,151778,A);break}}else{c[x>>2]=0;c[m>>2]=0;c[o>>2]=0;n=0;ea(201,f|0,g|0,x|0);t=n;n=0;if(t&1)break b;f=c[b>>2]|0;j=c[x>>2]|0;c[y>>2]=j;g=(c[m>>2]|0)-j|0;c[z>>2]=g;h=f+112|0;i=c[h>>2]|0;if(i>>>0>=(c[f+116>>2]|0)>>>0){n=0;fa(140,f+108|0,v|0,y|0,z|0);t=n;n=0;if(t&1)break b}else{n=0;ea(113,B|0,g|0,0);t=n;n=0;if(t&1)break b;n=0;fa(83,i|0,k|0,j|0,c[B>>2]|0);t=n;n=0;if(t&1)break b;c[h>>2]=(c[h>>2]|0)+16}Vob(x)}while(0);e=e+1|0}if((E|0)==60){yb=D;return}E=sa()|0;P()|0;Vob(x);Ea(E|0)}function Df(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,o=0,p=0,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=yb;yb=yb+64|0;i=z+56|0;A=z+44|0;r=z+40|0;s=z+28|0;t=z+24|0;w=z+16|0;u=z+8|0;y=z;v=d+4|0;f=c[v>>2]|0;g=c[d>>2]|0;if(((f-g|0)/12|0)>>>0<2){yb=z;return}h=b+108|0;while(1){if((g|0)==(f|0)){j=8;break}if(c[g>>2]|0?Paa(h,g)|0:0){j=79;break}c[i>>2]=c[g+4>>2];if(Paa(h,i)|0){j=79;break}Pua(g);g=g+12|0}if((j|0)==8){c[A>>2]=0;x=A+4|0;c[x>>2]=0;k=A+8|0;c[k>>2]=0;l=s+4|0;m=s+8|0;o=t+4|0;p=0;q=0;a:while(1){g=c[d>>2]|0;h=c[v>>2]|0;f=g;while(1){if((f|0)==(h|0))break;i=c[f+4>>2]|0;if(!i){j=12;break a}if(q>>>0>=(LSa(c[f>>2]|0,i)|0)>>>0){j=40;break a}f=f+12|0}n=0;i=V(68,c[g>>2]|0,c[g+4>>2]|0,q|0)|0;j=n;n=0;if(j&1){j=18;break}c[r>>2]=i;h=c[v>>2]|0;j=i;g=c[d>>2]|0;while(1){if((g|0)==(h|0))break;n=0;f=V(68,c[g>>2]|0,c[g+4>>2]|0,q|0)|0;B=n;n=0;if(B&1){j=17;break a}n=0;f=U(112,i|0,f|0)|0;B=n;n=0;if(B&1){j=17;break a}if(!f){j=40;break a}g=g+12|0}c[t>>2]=j;c[s>>2]=0;c[l>>2]=0;c[m>>2]=0;n=0;da(174,s|0,1);B=n;n=0;if(B&1){j=32;break}ssa(s,t,o);n=0;f=U(111,s|0,e|0)|0;B=n;n=0;if(B&1){j=34;break}Vob(s);if(!f){j=40;break}f=c[x>>2]|0;if((f|0)==(c[k>>2]|0)){n=0;da(332,A|0,r|0);B=n;n=0;if(B&1){j=18;break}}else{c[f>>2]=j;c[x>>2]=(c[x>>2]|0)+4}n=0;f=S(274,i|0)|0;B=n;n=0;if(B&1){j=18;break}p=p+f|0;q=q+1|0}b:do if((j|0)==12){n=0;fa(75,76431,76320,325,76442);n=0;j=19}else if((j|0)==17){f=sa()|0;P()|0}else if((j|0)==18){f=sa()|0;P()|0}else if((j|0)==32){B=sa()|0;P()|0;Qcb(s);Vob(A);Ea(B|0)}else if((j|0)==34){B=sa()|0;P()|0;Vob(s);Vob(A);Ea(B|0)}else if((j|0)==40){c:do if(p|0){d:do if(p>>>0<3){g=c[v>>2]|0;f=c[d>>2]|0;while(1){if((f|0)==(g|0))break;if(q>>>0>=((WCb(c[(c[f+4>>2]|0)+16>>2]|0)|0)+-1|0)>>>0)break d;f=f+12|0}f=c[b+44>>2]|0;if((e|0)!=(c[f+-4>>2]|0)){n=0;fa(75,76466,76320,366,76442);n=0;j=19;break b}g=c[b+40>>2]|0;f=f-g>>2;if(f>>>0<2)break c;f=Rqb(c[g+(f+-2<<2)>>2]|0)|0;if(!f)break c;h=f+12|0;nrb(w,h);Hib(u,h);h=w+4|0;i=c[u>>2]|0;f=c[u+4>>2]|0;while(1){if(!(dhb(c[w>>2]|0,c[h>>2]|0,i,f)|0))break c;n=0;g=S(228,w|0)|0;B=n;n=0;if(B&1)break;if((c[g>>2]|0)==(e|0))break d;hob(w)}f=sa()|0;P()|0;break b}while(0);j=c[v>>2]|0;h=c[d>>2]|0;e:while(1){if((h|0)==(j|0)){j=69;break}i=h+4|0;n=0;da(619,b|0,c[i>>2]|0);B=n;n=0;if(B&1){j=15;break}if(!(bCb(c[h>>2]|0)|0)){n=0;f=S(275,(c[i>>2]|0)+12|0)|0;B=n;n=0;if(B&1){j=15;break}f=c[f>>2]|0;n=0;ca(516,(c[i>>2]|0)+12|0);B=n;n=0;if(B&1){j=15;break}}else f=0;g=0;while(1){if(g>>>0>=(c[x>>2]|0)-(c[A>>2]|0)>>2>>>0)break;n=0;ca(516,(c[i>>2]|0)+12|0);B=n;n=0;if(B&1){j=14;break e}g=g+1|0}if(!(bCb(c[h>>2]|0)|0)?(n=0,da(231,(c[i>>2]|0)+12|0,f|0),B=n,n=0,B&1):0){j=15;break}B=c[i>>2]|0;n=0;da(620,B|0,c[B+4>>2]|0);B=n;n=0;if(B&1){j=15;break}h=h+12|0}if((j|0)==14){f=sa()|0;P()|0;break b}else if((j|0)==15){f=sa()|0;P()|0;break b}else if((j|0)==69){a[b+56>>0]=1;Gsb(y,WCb(c[b+36>>2]|0)|0);n=0;h=U(86,c[y>>2]|0,0)|0;B=n;n=0;if(B&1){j=19;break b}f=h+12|0;n=0;da(231,f|0,e|0);B=n;n=0;if(B&1){j=19;break b}g=c[x>>2]|0;while(1){if((c[A>>2]|0)==(g|0))break;n=0;da(231,f|0,c[g+-4>>2]|0);B=n;n=0;if(B&1){j=13;break}g=(c[x>>2]|0)+-4|0;c[x>>2]=g}if((j|0)==13){f=sa()|0;P()|0;break b}f=c[e+4>>2]|0;n=0;ca(517,e|0);B=n;n=0;if(B&1){j=19;break b}n=0;da(620,h|0,f|0);B=n;n=0;if(B&1){j=19;break b}Pwb(c[b+16>>2]|0,h);break}}while(0);Vob(A);yb=z;return}while(0);if((j|0)==19){f=sa()|0;P()|0}B=f;Vob(A);Ea(B|0)}else if((j|0)==79){yb=z;return}}function Ef(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;B=yb;yb=yb+64|0;s=B+40|0;C=B+28|0;D=B+8|0;v=B+4|0;w=B;x=D+4|0;y=D+12|0;z=D+16|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;c[D+12>>2]=0;g[z>>2]=1.0;A=a+52|0;r=a+56|0;u=D+8|0;e=0;d=c[A>>2]|0;b=0;a:while(1){if((r|0)==(d|0)){t=52;break}o=d+20|0;h=LAb(o)|0;q=c[x>>2]|0;p=(q|0)==0;b:do if(!p){l=q+-1|0;m=(q&l|0)==0;if(!m)if(h>>>0>>0)e=h;else e=(h>>>0)%(q>>>0)|0;else e=h&l;f=c[(c[D>>2]|0)+(e<<2)>>2]|0;if(!f)t=19;else while(1){f=c[f>>2]|0;if(!f){t=19;break b}k=c[f+4>>2]|0;if((k|0)!=(h|0)){if(!m){if(k>>>0>=q>>>0)k=(k>>>0)%(q>>>0)|0}else k=k&l;if((k|0)!=(e|0)){t=19;break b}}if(dub(c[f+8>>2]|0,c[o>>2]|0)|0){h=e;break b}}}else t=19;while(0);if((t|0)==19){t=0;n=0;fa(74,s|0,D|0,h|0,o|0);o=n;n=0;if(o&1){t=51;break}i=+(((c[y>>2]|0)+1|0)>>>0);j=+g[z>>2];if(j*+(q>>>0)>>0>2){e=(q&q+-1|0)==0;t=24}else{e=0;t=24}}else if(p){e=0;b=0;t=24}else{k=q;h=e}do if((t|0)==24){t=0;q=b|(e^1)&1;p=~~+I(+(i/j))>>>0;n=0;da(86,D|0,(q>>>0

>>0?p:q)|0);q=n;n=0;if(q&1){t=29;break a}b=c[x>>2]|0;e=b+-1|0;if(!(b&e)){k=b;h=h&e;break}if(h>>>0>>0)k=b;else{k=b;h=(h>>>0)%(b>>>0)|0}}while(0);b=c[(c[D>>2]|0)+(h<<2)>>2]|0;if(!b){b=c[s>>2]|0;c[b>>2]=c[u>>2];f=b;c[u>>2]=f;c[(c[D>>2]|0)+(h<<2)>>2]=u;if(c[b>>2]|0){b=c[(c[b>>2]|0)+4>>2]|0;e=k+-1|0;if(k&e){if(b>>>0>=k>>>0)b=(b>>>0)%(k>>>0)|0}else b=b&e;c[(c[D>>2]|0)+(b<<2)>>2]=f}}else{q=c[s>>2]|0;c[q>>2]=c[b>>2];c[b>>2]=q}b=(c[y>>2]|0)+1|0;c[y>>2]=b;c[s>>2]=0}e=c[d+4>>2]|0;c:do if(!e)while(1){e=c[d+8>>2]|0;if((d|0)==(c[e>>2]|0)){d=e;break c}d=e}else{d=e;while(1){e=c[d>>2]|0;if(!e)break;d=e}}while(0);e=h}if((t|0)==29){b=sa()|0;P()|0;d=c[s>>2]|0;c[s>>2]=0;if(!d){C=b;Pdb(D);Ea(C|0)}RCb(d);C=b;Pdb(D);Ea(C|0)}else if((t|0)==51){C=sa()|0;P()|0;Pdb(D);Ea(C|0)}else if((t|0)==52){q=a+64|0;d=0;e=0;d:while(1){c[v>>2]=e;if(e>>>0>=(Icb(a)|0)>>>0){t=99;break}e:do if(!(bCa(a,e)|0)){while(1){p=b+1|0;n=0;b=S(222,b|0)|0;s=n;n=0;if(s&1){t=49;break d}c[w>>2]=b;if(!(LF(D,w)|0))break;b=p}n=0;b=U(67,A|0,v|0)|0;s=n;n=0;if(s&1){t=50;break d}c[b>>2]=c[w>>2];b=c[v>>2]|0;n=0;e=U(68,q|0,w|0)|0;s=n;n=0;if(s&1){t=50;break d}c[e>>2]=b;o=LAb(w)|0;h=c[x>>2]|0;m=(h|0)==0;f:do if(!m){k=h+-1|0;l=(h&k|0)==0;if(!l)if(o>>>0>>0)d=o;else d=(o>>>0)%(h>>>0)|0;else d=o&k;b=c[(c[D>>2]|0)+(d<<2)>>2]|0;if(b){f=c[w>>2]|0;while(1){b=c[b>>2]|0;if(!b)break f;e=c[b+4>>2]|0;if((e|0)!=(o|0)){if(!l){if(e>>>0>=h>>>0)e=(e>>>0)%(h>>>0)|0}else e=e&k;if((e|0)!=(d|0))break f}if(dub(c[b+8>>2]|0,f)|0){b=p;break e}}}}while(0);n=0;fa(74,C|0,D|0,o|0,w|0);s=n;n=0;if(s&1){t=50;break d}i=+(((c[y>>2]|0)+1|0)>>>0);j=+g[z>>2];if(j*+(h>>>0)>>0>2){d=(h&h+-1|0)==0;t=81}else{d=0;t=81}}else if(m){d=0;b=0;t=81}do if((t|0)==81){t=0;s=b|(d^1)&1;r=~~+I(+(i/j))>>>0;n=0;da(86,D|0,(s>>>0>>0?r:s)|0);s=n;n=0;if(s&1){t=86;break d}b=c[x>>2]|0;d=b+-1|0;if(!(b&d)){h=b;d=o&d;break}if(o>>>0>>0){h=b;d=o}else{h=b;d=(o>>>0)%(b>>>0)|0}}while(0);b=c[(c[D>>2]|0)+(d<<2)>>2]|0;if(!b){b=c[C>>2]|0;c[b>>2]=c[u>>2];f=b;c[u>>2]=f;c[(c[D>>2]|0)+(d<<2)>>2]=u;if(c[b>>2]|0){b=c[(c[b>>2]|0)+4>>2]|0;e=h+-1|0;if(h&e){if(b>>>0>=h>>>0)b=(b>>>0)%(h>>>0)|0}else b=b&e;c[(c[D>>2]|0)+(b<<2)>>2]=f}}else{s=c[C>>2]|0;c[s>>2]=c[b>>2];c[b>>2]=s}c[y>>2]=(c[y>>2]|0)+1;c[C>>2]=0;b=p}while(0);e=(c[v>>2]|0)+1|0}if((t|0)==49){C=sa()|0;P()|0;Pdb(D);Ea(C|0)}else if((t|0)==50){C=sa()|0;P()|0;Pdb(D);Ea(C|0)}else if((t|0)==86){b=sa()|0;P()|0;d=c[C>>2]|0;c[C>>2]=0;if(!d){C=b;Pdb(D);Ea(C|0)}RCb(d);C=b;Pdb(D);Ea(C|0)}else if((t|0)==99){Pdb(D);yb=B;return}}}function Ff(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0.0,j=0.0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=yb;yb=yb+32|0;s=v+20|0;w=v+8|0;u=v+4|0;l=v;c[u>>2]=d;if(!(a[147408]|0)){c[37082]=0;c[37083]=0;c[37084]=0;c[37085]=0;g[37086]=1.0;ya(487,148328,k|0)|0;r=147408;c[r>>2]=1;c[r+4>>2]=0}d=OG(c[37082]|0,c[37083]|0,d)|0;if(d|0){w=c[d+8>>2]|0;c[u>>2]=w;c[b>>2]=w;yb=v;return}if(!(a[147416]|0))mlb(147416)|0;Rfb(148348);if((a[147424]|0)==0?mlb(147424)|0:0){c[37094]=0;c[37095]=0;c[37096]=0;c[37097]=0;g[37098]=1.0}h=c[37095]|0;d=c[u>>2]|0;f=OG(c[37094]|0,h,d)|0;a:do if(!f){if(!e){if((a[147432]|0)==0?mlb(147432)|0:0){c[37099]=0;c[37100]=0;c[37101]=0}n=0;da(64,l|0,u|0);r=n;n=0;if(r&1)break;d=c[37100]|0;do if(d>>>0<(c[37101]|0)>>>0){r=c[l>>2]|0;c[l>>2]=0;c[d>>2]=r;c[37100]=(c[37100]|0)+4;c[l>>2]=0}else{n=0;da(65,148396,l|0);r=n;n=0;if(!(r&1)){d=c[l>>2]|0;c[l>>2]=0;if(!d)break;Chb(d);RCb(d);break}d=sa()|0;P()|0;f=c[l>>2]|0;c[l>>2]=0;if(!f){w=d;KZa(148348);Ea(w|0)}Chb(f);RCb(f);w=d;KZa(148348);Ea(w|0)}while(0);d=c[(c[37100]|0)+-4>>2]|0;if((a[d+11>>0]|0)<0)d=c[d>>2]|0;c[u>>2]=d;h=c[37095]|0}r=d;q=Wsb(d)|0;p=(h|0)==0;b:do if(!p){m=h+-1|0;o=(h&m|0)==0;if(!o)if(q>>>0>>0)f=q;else f=(q>>>0)%(h>>>0)|0;else f=q&m;e=c[(c[37094]|0)+(f<<2)>>2]|0;if(e)while(1){e=c[e>>2]|0;if(!e)break b;l=c[e+4>>2]|0;if((l|0)!=(q|0)){if(!o){if(l>>>0>=h>>>0)l=(l>>>0)%(h>>>0)|0}else l=l&m;if((l|0)!=(f|0))break b}if(xsb(c[e+8>>2]|0,d)|0){t=65;break a}}}else f=0;while(0);n=0;fa(70,s|0,148376,q|0,u|0);o=n;n=0;if(!(o&1)){i=+(((c[37097]|0)+1|0)>>>0);j=+g[37098];if(j*+(h>>>0)>>0>2){h=(h&h+-1|0)==0;t=48}else{h=0;t=48}}else if(p){h=0;f=0;t=48}else{l=h;h=f}do if((t|0)==48){t=f|(h^1)&1;p=~~+I(+(i/j))>>>0;n=0;da(66,148376,(t>>>0

>>0?p:t)|0);t=n;n=0;if(t&1){d=sa()|0;P()|0;f=c[s>>2]|0;c[s>>2]=0;if(!f){w=d;KZa(148348);Ea(w|0)}RCb(f);w=d;KZa(148348);Ea(w|0)}else{f=c[37095]|0;h=f+-1|0;if(!(f&h)){l=f;h=q&h;break}if(q>>>0>>0){l=f;h=q;break}l=f;h=(q>>>0)%(f>>>0)|0;break}}while(0);f=c[(c[37094]|0)+(h<<2)>>2]|0;if(!f){f=c[s>>2]|0;c[f>>2]=c[37096];e=f;c[37096]=e;c[(c[37094]|0)+(h<<2)>>2]=148384;if(c[f>>2]|0){f=c[(c[f>>2]|0)+4>>2]|0;h=l+-1|0;if(l&h){if(f>>>0>=l>>>0)f=(f>>>0)%(l>>>0)|0}else f=f&h;c[(c[37094]|0)+(f<<2)>>2]=e}}else{t=c[s>>2]|0;c[t>>2]=c[f>>2];c[f>>2]=t}c[37097]=(c[37097]|0)+1;c[s>>2]=0;t=65}}else{r=c[f+8>>2]|0;c[u>>2]=r;d=r;t=65}while(0);do if((t|0)==65){q=Wsb(d)|0;p=c[37083]|0;o=(p|0)==0;c:do if(!o){l=p+-1|0;m=(p&l|0)==0;if(!m)if(q>>>0

>>0)f=q;else f=(q>>>0)%(p>>>0)|0;else f=q&l;h=c[(c[37082]|0)+(f<<2)>>2]|0;if(!h)t=81;else while(1){h=c[h>>2]|0;if(!h){t=81;break c}e=c[h+4>>2]|0;if((e|0)!=(q|0)){if(!m){if(e>>>0>=p>>>0)e=(e>>>0)%(p>>>0)|0}else e=e&l;if((e|0)!=(f|0)){t=81;break c}}if(xsb(c[h+8>>2]|0,d)|0)break c}}else{f=0;t=81}while(0);if((t|0)==81){n=0;fa(70,w|0,148328,q|0,u|0);u=n;n=0;if(u&1)break;i=+(((c[37085]|0)+1|0)>>>0);j=+g[37086];if(j*+(p>>>0)>>0>2){f=(p&p+-1|0)!=0&1;t=86}else{f=1;t=86}}else if(o){d=0;f=1;t=86}else e=p;do if((t|0)==86){u=d|f;t=~~+I(+(i/j))>>>0;n=0;da(66,148328,(u>>>0>>0?t:u)|0);u=n;n=0;if(u&1){d=sa()|0;P()|0;f=c[w>>2]|0;c[w>>2]=0;if(!f){w=d;KZa(148348);Ea(w|0)}RCb(f);w=d;KZa(148348);Ea(w|0)}else{d=c[37083]|0;f=d+-1|0;if(!(d&f)){e=d;f=q&f;break}if(q>>>0>>0){e=d;f=q;break}e=d;f=(q>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[37082]|0)+(f<<2)>>2]|0;if(!d){d=c[w>>2]|0;c[d>>2]=c[37084];h=d;c[37084]=h;c[(c[37082]|0)+(f<<2)>>2]=148336;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;f=e+-1|0;if(e&f){if(d>>>0>=e>>>0)d=(d>>>0)%(e>>>0)|0}else d=d&f;c[(c[37082]|0)+(d<<2)>>2]=h}}else{u=c[w>>2]|0;c[u>>2]=c[d>>2];c[d>>2]=u}c[37085]=(c[37085]|0)+1;c[w>>2]=0}KZa(148348);w=r;c[b>>2]=w;yb=v;return}while(0);w=sa()|0;P()|0;KZa(148348);Ea(w|0)}function Gf(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,o=0,p=0,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=yb;yb=yb+64|0;i=z+56|0;A=z+44|0;r=z+40|0;s=z+28|0;t=z+24|0;w=z+16|0;u=z+8|0;y=z;v=d+4|0;f=c[v>>2]|0;g=c[d>>2]|0;if(((f-g|0)/12|0)>>>0<2){yb=z;return}h=b+108|0;while(1){if((g|0)==(f|0)){j=8;break}if(c[g>>2]|0?Paa(h,g)|0:0){j=78;break}c[i>>2]=c[g+4>>2];if(Paa(h,i)|0){j=78;break}Pua(g);g=g+12|0}if((j|0)==8){c[A>>2]=0;x=A+4|0;c[x>>2]=0;k=A+8|0;c[k>>2]=0;l=s+4|0;m=s+8|0;o=t+4|0;p=0;q=0;a:while(1){g=c[d>>2]|0;h=c[v>>2]|0;f=g;while(1){if((f|0)==(h|0))break;i=c[f+4>>2]|0;if(!i){j=12;break a}if(q>>>0>=(LSa(c[f>>2]|0,i)|0)>>>0){j=40;break a}f=f+12|0}n=0;i=V(67,c[g>>2]|0,c[g+4>>2]|0,q|0)|0;j=n;n=0;if(j&1){j=18;break}c[r>>2]=i;h=c[v>>2]|0;j=i;g=c[d>>2]|0;while(1){if((g|0)==(h|0))break;n=0;f=V(67,c[g>>2]|0,c[g+4>>2]|0,q|0)|0;B=n;n=0;if(B&1){j=17;break a}n=0;f=U(112,i|0,f|0)|0;B=n;n=0;if(B&1){j=17;break a}if(!f){j=40;break a}g=g+12|0}c[t>>2]=j;c[s>>2]=0;c[l>>2]=0;c[m>>2]=0;n=0;da(174,s|0,1);B=n;n=0;if(B&1){j=32;break}ssa(s,t,o);n=0;f=U(111,s|0,e|0)|0;B=n;n=0;if(B&1){j=34;break}Vob(s);if(!f){j=40;break}f=c[x>>2]|0;if((f|0)==(c[k>>2]|0)){n=0;da(332,A|0,r|0);B=n;n=0;if(B&1){j=18;break}}else{c[f>>2]=j;c[x>>2]=(c[x>>2]|0)+4}n=0;f=S(274,i|0)|0;B=n;n=0;if(B&1){j=18;break}p=p+f|0;q=q+1|0}b:do if((j|0)==12){n=0;fa(75,76431,76320,325,76442);n=0;j=19}else if((j|0)==17){f=sa()|0;P()|0}else if((j|0)==18){f=sa()|0;P()|0}else if((j|0)==32){B=sa()|0;P()|0;Qcb(s);Vob(A);Ea(B|0)}else if((j|0)==34){B=sa()|0;P()|0;Vob(s);Vob(A);Ea(B|0)}else if((j|0)==40){c:do if(p|0){d:do if(p>>>0<3){g=c[v>>2]|0;f=c[d>>2]|0;while(1){if((f|0)==(g|0))break;if(q>>>0>=((WCb(c[(c[f+4>>2]|0)+16>>2]|0)|0)+-1|0)>>>0)break d;f=f+12|0}f=c[b+44>>2]|0;if((e|0)!=(c[f+-4>>2]|0)){n=0;fa(75,76466,76320,366,76442);n=0;j=19;break b}g=c[b+40>>2]|0;f=f-g>>2;if(f>>>0<2)break c;f=Rqb(c[g+(f+-2<<2)>>2]|0)|0;if(!f)break c;h=f+12|0;nrb(w,h);Hib(u,h);h=w+4|0;i=c[u>>2]|0;f=c[u+4>>2]|0;while(1){if(!(dhb(c[w>>2]|0,c[h>>2]|0,i,f)|0))break c;n=0;g=S(228,w|0)|0;B=n;n=0;if(B&1)break;if((c[g>>2]|0)==(e|0))break d;hob(w)}f=sa()|0;P()|0;break b}while(0);j=c[v>>2]|0;h=c[d>>2]|0;e:while(1){if((h|0)==(j|0)){j=69;break}i=h+4|0;n=0;da(619,b|0,c[i>>2]|0);B=n;n=0;if(B&1){j=15;break}if(!(bCb(c[h>>2]|0)|0)){n=0;f=S(275,(c[i>>2]|0)+12|0)|0;B=n;n=0;if(B&1){j=15;break}f=c[f>>2]|0;n=0;ca(516,(c[i>>2]|0)+12|0);B=n;n=0;if(B&1){j=15;break}}else f=0;g=0;while(1){if(g>>>0>=(c[x>>2]|0)-(c[A>>2]|0)>>2>>>0)break;n=0;ca(516,(c[i>>2]|0)+12|0);B=n;n=0;if(B&1){j=14;break e}g=g+1|0}if(!(bCb(c[h>>2]|0)|0)?(n=0,da(231,(c[i>>2]|0)+12|0,f|0),B=n,n=0,B&1):0){j=15;break}B=c[i>>2]|0;n=0;da(620,B|0,c[B+4>>2]|0);B=n;n=0;if(B&1){j=15;break}h=h+12|0}if((j|0)==14){f=sa()|0;P()|0;break b}else if((j|0)==15){f=sa()|0;P()|0;break b}else if((j|0)==69){a[b+56>>0]=1;Gsb(y,WCb(c[b+36>>2]|0)|0);n=0;f=U(86,c[y>>2]|0,0)|0;B=n;n=0;if(B&1){j=19;break b}g=f+12|0;n=0;da(231,g|0,e|0);B=n;n=0;if(B&1){j=19;break b}h=c[x>>2]|0;while(1){if((c[A>>2]|0)==(h|0))break;n=0;da(231,g|0,c[h+-4>>2]|0);B=n;n=0;if(B&1){j=13;break}h=(c[x>>2]|0)+-4|0;c[x>>2]=h}if((j|0)==13){f=sa()|0;P()|0;break b}B=c[e+4>>2]|0;gQ(e);n=0;da(620,f|0,B|0);B=n;n=0;if(B&1){j=19;break b}Pwb(c[b+16>>2]|0,f);break}}while(0);Vob(A);yb=z;return}while(0);if((j|0)==19){f=sa()|0;P()|0}B=f;Vob(A);Ea(B|0)}else if((j|0)==78){yb=z;return}}function Hf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;if(a[b+33>>0]&1)BM(IWa(150620,112989)|0);if((c[(c[e+20>>2]|0)+4>>2]|0)==6)return;if((c[(c[e+24>>2]|0)+4>>2]|0)==6)return;f=e+4|0;if((c[f>>2]|0)==6)return;h=b+28|0;tI(c[h>>2]|0,-2)|0;a:do switch(c[e+8>>2]|0){case 0:{switch(c[f>>2]|0){case 1:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,32)|0;g=f;break a}case 2:{tI(c[h>>2]|0,33)|0;g=f;break a}case 4:{tI(c[h>>2]|0,30)|0;g=f;break a}default:ma(141129,112765,787,113008)}break}case 2:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,34)|0;g=f;break a}case 2:{tI(c[h>>2]|0,35)|0;g=f;break a}case 4:{tI(c[h>>2]|0,36)|0;g=f;break a}case 8:{tI(c[h>>2]|0,31)|0;g=f;break a}default:ma(141129,112765,787,113008)}break}default:ma(141129,112765,787,113008)}break}case 1:{switch(c[f>>2]|0){case 1:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,39)|0;g=f;break a}case 2:{tI(c[h>>2]|0,40)|0;g=f;break a}case 4:{tI(c[h>>2]|0,37)|0;g=f;break a}default:ma(141129,112765,788,113008)}break}case 2:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,41)|0;g=f;break a}case 2:{tI(c[h>>2]|0,42)|0;g=f;break a}case 4:{tI(c[h>>2]|0,43)|0;g=f;break a}case 8:{tI(c[h>>2]|0,38)|0;g=f;break a}default:ma(141129,112765,788,113008)}break}default:ma(141129,112765,788,113008)}break}case 2:{switch(c[f>>2]|0){case 1:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,46)|0;g=f;break a}case 2:{tI(c[h>>2]|0,47)|0;g=f;break a}case 4:{tI(c[h>>2]|0,44)|0;g=f;break a}default:ma(141129,112765,789,113008)}break}case 2:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,48)|0;g=f;break a}case 2:{tI(c[h>>2]|0,49)|0;g=f;break a}case 4:{tI(c[h>>2]|0,50)|0;g=f;break a}case 8:{tI(c[h>>2]|0,45)|0;g=f;break a}default:ma(141129,112765,789,113008)}break}default:ma(141129,112765,789,113008)}break}case 3:{switch(c[f>>2]|0){case 1:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,53)|0;g=f;break a}case 2:{tI(c[h>>2]|0,54)|0;g=f;break a}case 4:{tI(c[h>>2]|0,51)|0;g=f;break a}default:ma(141129,112765,790,113008)}break}case 2:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,55)|0;g=f;break a}case 2:{tI(c[h>>2]|0,56)|0;g=f;break a}case 4:{tI(c[h>>2]|0,57)|0;g=f;break a}case 8:{tI(c[h>>2]|0,52)|0;g=f;break a}default:ma(141129,112765,790,113008)}break}default:ma(141129,112765,790,113008)}break}case 4:{switch(c[f>>2]|0){case 1:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,60)|0;g=f;break a}case 2:{tI(c[h>>2]|0,61)|0;g=f;break a}case 4:{tI(c[h>>2]|0,58)|0;g=f;break a}default:ma(141129,112765,791,113008)}break}case 2:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,62)|0;g=f;break a}case 2:{tI(c[h>>2]|0,63)|0;g=f;break a}case 4:{tI(c[h>>2]|0,64)|0;g=f;break a}case 8:{tI(c[h>>2]|0,59)|0;g=f;break a}default:ma(141129,112765,791,113008)}break}default:ma(141129,112765,791,113008)}break}case 5:{switch(c[f>>2]|0){case 1:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,67)|0;g=f;break a}case 2:{tI(c[h>>2]|0,68)|0;g=f;break a}case 4:{tI(c[h>>2]|0,65)|0;g=f;break a}default:ma(141129,112765,792,113008)}break}case 2:{f=e+12|0;switch(a[f>>0]|0){case 1:{tI(c[h>>2]|0,69)|0;g=f;break a}case 2:{tI(c[h>>2]|0,70)|0;g=f;break a}case 4:{tI(c[h>>2]|0,71)|0;g=f;break a}case 8:{tI(c[h>>2]|0,66)|0;g=f;break a}default:ma(141129,112765,792,113008)}break}default:ma(141129,112765,792,113008)}break}default:ma(141129,112765,793,113008)}while(0);h=d[g>>0]|0;G5(b,h,h,WCb(c[e+16>>2]|0)|0);return}function If(a,b,d){a=a|0;b=b|0;d=d|0;if(!d)ma(112644,134747,85,112649);do switch(c[d>>2]|0){case 1:{Dl(a,b,d);return}case 2:{wq(a,b,d);return}case 3:{nQ(a,b,d);return}case 4:{go(a,b,d);return}case 5:{lp(a,b,d);return}case 6:{Uk(a,b,d);return}case 7:{Zp(a,b,d);return}case 8:{p6(a,c[c[b+8>>2]>>2]|0,c[d+8>>2]|0);return}case 9:{hs(a,b,d);return}case 10:{QJ(a,b,d);return}case 11:{Pv(a,b,d);return}case 12:{bu(a,b,d);return}case 13:{Do(a,b,d);return}case 23:{Pi(a,b,d);return}case 24:{kl(a,b,d);return}case 25:{ql(a,b,d);return}case 26:{ot(a,b,d);return}case 27:{Jk(a,b,d);return}case 28:{Cj(a,b,d);return}case 29:{oo(a,b,d);return}case 30:{Ak(a,b,d);return}case 31:{gh(a,b,d);return}case 32:{LFa(a);return}case 33:{LFa(a);return}case 34:{LFa(a);return}case 35:{LFa(a);return}case 14:{Yma(a,d);return}case 15:{uc(a,b,d);return}case 16:{dc(a,b,d);return}case 17:{xo(a,b,d);return}case 18:{iC(a,b,c[d+8>>2]|0);return}case 19:{zG(a,b,d);return}case 20:{ym(a,b,d);return}case 21:{LFa(a);return}case 22:{S2a(b);break}default:ma(141129,134747,128,112649)}while(0)}function Jf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;E=yb;yb=yb+80|0;C=E+56|0;w=E+44|0;F=E+24|0;u=E+16|0;e=E+8|0;v=E+4|0;D=E;cj(a,c[b+28>>2]|0)|0;if(Ejb(a)|0){$pb(a);yb=E;return a|0}y=F+4|0;d=F+8|0;B=F+12|0;x=F+16|0;c[F>>2]=0;c[F+4>>2]=0;c[F+8>>2]=0;c[F+12>>2]=0;g[x>>2]=1.0;s=b+8|0;nrb(u,s);Hib(e,s);s=u+4|0;A=F+8|0;t=c[e>>2]|0;r=c[e+4>>2]|0;e=0;a:while(1){if(!(dhb(c[u>>2]|0,c[s>>2]|0,t,r)|0)){z=46;break}n=0;f=S(271,u|0)|0;q=n;n=0;if(q&1){z=44;break}o=c[f>>2]|0;c[v>>2]=o;q=LAb(v)|0;j=c[y>>2]|0;p=(j|0)==0;b:do if(!p){i=j+-1|0;m=(j&i|0)==0;if(!m)if(q>>>0>>0)e=q;else e=(q>>>0)%(j>>>0)|0;else e=q&i;f=c[(c[F>>2]|0)+(e<<2)>>2]|0;if(!f)z=21;else while(1){f=c[f>>2]|0;if(!f){z=21;break b}h=c[f+4>>2]|0;if((h|0)!=(q|0)){if(!m){if(h>>>0>=j>>>0)h=(h>>>0)%(j>>>0)|0}else h=h&i;if((h|0)!=(e|0)){z=21;break b}}if(dub(c[f+8>>2]|0,o)|0)break b}}else z=21;while(0);if((z|0)==21){z=0;n=0;fa(74,w|0,F|0,q|0,v|0);o=n;n=0;if(o&1){z=44;break}k=+(((c[B>>2]|0)+1|0)>>>0);l=+g[x>>2];if(l*+(j>>>0)>>0>2){f=(j&j+-1|0)==0;z=26}else{f=0;z=26}}else if(p){f=0;e=0;z=26}do if((z|0)==26){z=0;p=e|(f^1)&1;o=~~+I(+(k/l))>>>0;n=0;da(86,F|0,(p>>>0>>0?o:p)|0);p=n;n=0;if(p&1){z=31;break a}e=c[y>>2]|0;f=e+-1|0;if(!(e&f)){j=e;e=q&f;break}if(q>>>0>>0){j=e;e=q}else{j=e;e=(q>>>0)%(e>>>0)|0}}while(0);f=c[(c[F>>2]|0)+(e<<2)>>2]|0;if(!f){f=c[w>>2]|0;c[f>>2]=c[A>>2];i=f;c[A>>2]=i;c[(c[F>>2]|0)+(e<<2)>>2]=A;if(c[f>>2]|0){f=c[(c[f>>2]|0)+4>>2]|0;h=j+-1|0;if(j&h){if(f>>>0>=j>>>0)f=(f>>>0)%(j>>>0)|0}else f=f&h;c[(c[F>>2]|0)+(f<<2)>>2]=i}}else{q=c[w>>2]|0;c[q>>2]=c[f>>2];c[f>>2]=q}c[B>>2]=(c[B>>2]|0)+1;c[w>>2]=0}hob(u)}if((z|0)==31){d=sa()|0;P()|0;e=c[w>>2]|0;c[w>>2]=0;if(!e){E=d;Pdb(F);Ea(E|0)}RCb(e);E=d;Pdb(F);Ea(E|0)}else if((z|0)==44){E=sa()|0;P()|0;Pdb(F);Ea(E|0)}else if((z|0)==46){o=b+24|0;q=LAb(o)|0;i=c[y>>2]|0;p=(i|0)==0;c:do if(!p){j=i+-1|0;m=(i&j|0)==0;if(!m)if(q>>>0>>0)f=q;else f=(q>>>0)%(i>>>0)|0;else f=q&j;e=c[(c[F>>2]|0)+(f<<2)>>2]|0;if(!e)z=62;else while(1){e=c[e>>2]|0;if(!e){z=62;break c}h=c[e+4>>2]|0;if((h|0)!=(q|0)){if(!m){if(h>>>0>=i>>>0)h=(h>>>0)%(i>>>0)|0}else h=h&j;if((h|0)!=(f|0)){z=62;break c}}if(dub(c[e+8>>2]|0,c[o>>2]|0)|0)break c}}else{f=0;z=62}while(0);if((z|0)==62){n=0;fa(74,C|0,F|0,q|0,o|0);w=n;n=0;if(w&1){E=sa()|0;P()|0;Pdb(F);Ea(E|0)}l=+(((c[B>>2]|0)+1|0)>>>0);k=+g[x>>2];if(k*+(i>>>0)>>0>2){f=(i&i+-1|0)!=0&1;z=67}else{f=1;z=67}}else if(p){e=0;f=1;z=67}do if((z|0)==67){z=e|f;x=~~+I(+(l/k))>>>0;n=0;da(86,F|0,(z>>>0>>0?x:z)|0);z=n;n=0;if(z&1){d=sa()|0;P()|0;e=c[C>>2]|0;c[C>>2]=0;if(!e){E=d;Pdb(F);Ea(E|0)}RCb(e);E=d;Pdb(F);Ea(E|0)}else{e=c[y>>2]|0;f=e+-1|0;if(!(e&f)){i=e;f=q&f;break}if(q>>>0>>0){i=e;f=q;break}i=e;f=(q>>>0)%(e>>>0)|0;break}}while(0);e=c[(c[F>>2]|0)+(f<<2)>>2]|0;if(!e){e=c[C>>2]|0;c[e>>2]=c[A>>2];h=e;c[A>>2]=h;c[(c[F>>2]|0)+(f<<2)>>2]=A;if(c[e>>2]|0){e=c[(c[e>>2]|0)+4>>2]|0;f=i+-1|0;if(i&f){if(e>>>0>=i>>>0)e=(e>>>0)%(i>>>0)|0}else e=e&f;c[(c[F>>2]|0)+(e<<2)>>2]=h}}else{A=c[C>>2]|0;c[A>>2]=c[e>>2];c[e>>2]=A}c[B>>2]=(c[B>>2]|0)+1;c[C>>2]=0}i=a+152|0;j=a+140|0;while(1){d=c[d>>2]|0;if(!d){z=91;break}c[D>>2]=c[d+8>>2];n=0;e=U(123,i|0,D|0)|0;C=n;n=0;if(C&1){z=43;break}f=e+4|0;h=c[f>>2]|0;if((h|0)==(c[e+8>>2]|0)){n=0;da(1001,e|0,j|0);C=n;n=0;if(C&1){z=43;break}}else{n=0;da(1e3,h|0,j|0);C=n;n=0;if(C&1){z=43;break}c[f>>2]=(c[f>>2]|0)+12}}if((z|0)==43){E=sa()|0;P()|0;Pdb(F);Ea(E|0)}else if((z|0)==91){Pdb(F);$pb(a);yb=E;return a|0}}return 0}function Kf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=yb;yb=yb+160|0;t=D+152|0;h=D+136|0;j=D+120|0;f=D+116|0;m=D+88|0;C=D+72|0;r=D+56|0;o=D+52|0;s=D+40|0;p=D+36|0;x=D+8|0;y=D+4|0;u=D;g=c[b>>2]|0;if(HYa(g,e)|0){C=b+8|0;DW(h,1,g,c[C>>2]|0,c[37043]|0);Mob(j);C=c[C>>2]|0;g=c[h+8>>2]|0;Ftb(f,WCb(g)|0);n=0;c[t>>2]=c[f>>2];f=U(71,C|0,t|0)|0;C=n;n=0;if((((!(C&1)?(c[j+8>>2]=f,c[m>>2]=c[e>>2],c[m+4>>2]=c[e+4>>2],c[m+8>>2]=c[e+8>>2],c[m+12>>2]=c[e+12>>2],c[m+16>>2]=c[e+16>>2],c[m+20>>2]=c[e+20>>2],c[m+24>>2]=j,n=0,i=V(46,b|0,c[e+24>>2]|0,g|0)|0,C=n,n=0,!(C&1)):0)?(n=0,k=S(225,i|0)|0,C=n,n=0,!(C&1)):0)?(n=0,l=V(47,b|0,m|0,c[b+4>>2]|0)|0,C=n,n=0,!(C&1)):0)?(n=0,da(76,k|0,l|0),C=n,n=0,!(C&1)):0){dha(h);C=k;yb=D;return C|0}D=sa()|0;P()|0;dha(h);Ea(D|0)}f=WCb(c[e+16>>2]|0)|0;if(f|0?(z=e+8|0,f>>>0<(d[z>>0]|0)>>>0):0){h=b+8|0;DW(C,1,g,c[h>>2]|0,c[37043]|0);Lob(r);f=c[h>>2]|0;g=WCb(c[C+8>>2]|0)|0;Ftb(o,g);n=0;c[t>>2]=c[o>>2];f=U(71,f|0,t|0)|0;v=n;n=0;do if((!(v&1)?(c[r+8>>2]=f,c[r+12>>2]=c[e+24>>2],n=0,A=V(44,b|0,r|0,c[37043]|0)|0,v=n,n=0,!(v&1)):0)?(Mob(s),q=c[h>>2]|0,Ftb(p,g),n=0,c[t>>2]=c[p>>2],q=U(71,q|0,t|0)|0,v=n,n=0,!(v&1)):0){c[s+8>>2]=q;c[x>>2]=c[e>>2];c[x+4>>2]=c[e+4>>2];c[x+8>>2]=c[e+8>>2];c[x+12>>2]=c[e+12>>2];c[x+16>>2]=c[e+16>>2];c[x+20>>2]=c[e+20>>2];c[x+24>>2]=s;a[x+8>>0]=1;Pwb(y,0);g=e+4|0;if((c[g>>2]|0)!=1){n=0;f=U(59,150620,52334)|0;D=n;n=0;if(D&1){B=16;break}n=0;f=U(63,f|0,c[g>>2]|0)|0;D=n;n=0;if(D&1){B=16;break}n=0;ca(497,f|0);D=n;n=0;if(D&1){B=16;break}n=0;ba(6);n=0;B=16;break}n=0;f=V(44,b|0,x|0,c[37044]|0)|0;e=n;n=0;if(!(e&1)?(n=0,w=U(72,f|0,0)|0,e=n,n=0,!(e&1)):0){c[y>>2]=w;k=x+12|0;j=1;f=w;while(1){if(j>>>0>=(d[z>>0]|0)>>>0)break;Lub(k);n=0;g=V(44,b|0,x|0,c[37044]|0)|0;e=n;n=0;if(e&1){B=15;break}n=0;g=U(72,g|0,0)|0;e=n;n=0;if(e&1){B=15;break}h=c[37249]|0;n=0;i=R(1,+(+(j<<3>>>0)))|0;e=n;n=0;if(e&1){B=15;break}n=0;g=V(48,g|0,h|0,i|0)|0;e=n;n=0;if(e&1){B=15;break}n=0;f=V(48,f|0,c[37234]|0,g|0)|0;e=n;n=0;if(e&1){B=15;break}c[y>>2]=f;j=j+1|0}if((B|0)==15){f=sa()|0;P()|0;break}n=0;f=U(73,A|0,f|0)|0;b=n;n=0;if(!(b&1)){dha(C);C=f;yb=D;return C|0}else B=16}else B=16}else B=16;while(0);if((B|0)==16){f=sa()|0;P()|0}dha(C);D=f;Ea(D|0)}f=uga(b,c[e+24>>2]|0,c[37044]|0)|0;g=WCb(c[e+12>>2]|0)|0;if(g){C=c[37232]|0;f=mG(mv(f,C,ysb(+(g>>>0))|0)|0,0)|0}Pwb(u,0);g=e+4|0;a:do switch(c[g>>2]|0){case 1:{h=e+8|0;switch(a[h>>0]|0){case 1:{v=Tea(dWa((a[e+9>>0]&1)==0?c[37255]|0:c[37251]|0)|0,A_a(f,0)|0)|0;c[u>>2]=v;break a}case 2:{v=Tea(dWa((a[e+9>>0]&1)==0?c[37256]|0:c[37252]|0)|0,A_a(f,1)|0)|0;c[u>>2]=v;break a}case 4:{v=Tea(dWa((a[e+9>>0]&1)==0?c[37257]|0:c[37253]|0)|0,A_a(f,2)|0)|0;c[u>>2]=v;break a}default:{BM(SEa(IWa(150620,52359)|0,a[h>>0]|0)|0);Ta()}}break}case 3:{v=Tea(dWa(c[37254]|0)|0,A_a(f,2)|0)|0;c[u>>2]=v;break}case 4:{v=Tea(dWa(c[37258]|0)|0,A_a(f,3)|0)|0;c[u>>2]=v;break}default:{BM(Zm(IWa(150620,52334)|0,c[g>>2]|0)|0);Ta()}}while(0);C=mG(v,Yga(c[g>>2]|0)|0)|0;yb=D;return C|0}function Lf(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;C=yb;yb=yb+112|0;w=C+104|0;u=C+92|0;A=C+88|0;v=C+72|0;B=C+56|0;E=C+44|0;F=C+32|0;G=C+20|0;D=C+8|0;x=C+4|0;y=C;z=c[b>>2]|0;t=z+108|0;h=NF(t,d)|0;if(!h){iG(v,z,1);s=LAb(d)|0;q=z+112|0;k=c[q>>2]|0;p=(k|0)==0;a:do if(!p){m=k+-1|0;o=(k&m|0)==0;if(!o)if(s>>>0>>0)f=s;else f=(s>>>0)%(k>>>0)|0;else f=s&m;e=c[(c[t>>2]|0)+(f<<2)>>2]|0;if(!e)r=18;else{l=c[d>>2]|0;while(1){e=c[e>>2]|0;if(!e){r=18;break a}h=c[e+4>>2]|0;if((h|0)!=(s|0)){if(!o){if(h>>>0>=k>>>0)h=(h>>>0)%(k>>>0)|0}else h=h&m;if((h|0)!=(f|0)){r=18;break a}}if(dub(c[e+8>>2]|0,l)|0)break a}}}else{f=0;r=18}while(0);b:do if((r|0)==18){n=0;ga(11,u|0,t|0,s|0,d|0,v|0);o=n;n=0;c:do if(o&1){e=sa()|0;P()|0}else{l=z+120|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[z+124>>2];if(j*+(k>>>0)>>0>2){f=(k&k+-1|0)==0;r=23}else{f=0;r=23}}else if(p){f=0;e=0;r=23}do if((r|0)==23){r=e|(f^1)&1;p=~~+I(+(i/j))>>>0;n=0;da(1450,t|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(r&1){e=sa()|0;P()|0;f=c[u>>2]|0;c[u>>2]=0;if(!f)break c;if(a[u+8>>0]&1)blb(f+8|0);RCb(f);break c}else{e=c[q>>2]|0;f=e+-1|0;if(!(e&f)){k=e;f=s&f;break}if(s>>>0>>0){k=e;f=s;break}k=e;f=(s>>>0)%(e>>>0)|0;break}}while(0);e=c[(c[t>>2]|0)+(f<<2)>>2]|0;if(!e){s=z+116|0;e=c[u>>2]|0;c[e>>2]=c[s>>2];h=e;c[s>>2]=h;c[(c[t>>2]|0)+(f<<2)>>2]=s;if(c[e>>2]|0){e=c[(c[e>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[t>>2]|0)+(e<<2)>>2]=h}}else{s=c[u>>2]|0;c[s>>2]=c[e>>2];c[e>>2]=s}c[l>>2]=(c[l>>2]|0)+1;c[u>>2]=0;break b}while(0);lNa(v);G=e;Ea(G|0)}while(0);lNa(v);h=NF(t,d)|0}f=c[d>>2]|0;v=WCb(f)|0;c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;D8(G,v,Zzb(v)|0);n=0;U(77,G|0,83102)|0;v=n;n=0;if(v&1){e=sa()|0;P()|0}else{c[F>>2]=c[G>>2];c[F+4>>2]=c[G+4>>2];c[F+8>>2]=c[G+8>>2];e=0;while(1){if((e|0)==3)break;c[G+(e<<2)>>2]=0;e=e+1|0}n=0;U(69,F|0,103672)|0;v=n;n=0;if(v&1){e=sa()|0;P()|0}else{c[E>>2]=c[F>>2];c[E+4>>2]=c[F+4>>2];c[E+8>>2]=c[F+8>>2];e=0;while(1){if((e|0)==3)break;c[F+(e<<2)>>2]=0;e=e+1|0}u=c[b+4>>2]|0;v=c[u>>2]|0;c[u>>2]=v+1;n=0;da(88,D|0,v|0);v=n;n=0;if(v&1){e=sa()|0;P()|0}else{v=a[D+11>>0]|0;u=v<<24>>24<0;n=0;V(43,E|0,(u?c[D>>2]|0:D)|0,(u?c[D+4>>2]|0:v&255)|0)|0;v=n;n=0;do if(!(v&1)){c[B>>2]=c[E>>2];c[B+4>>2]=c[E+4>>2];c[B+8>>2]=c[E+8>>2];e=0;while(1){if((e|0)==3)break;c[E+(e<<2)>>2]=0;e=e+1|0}n=0;da(230,A|0,B|0);v=n;n=0;if(v&1){e=sa()|0;P()|0;Chb(B);break}else{Chb(B);Chb(D);Chb(E);Chb(F);Chb(G);D=z+44|0;z=c[D>>2]|0;G=c[A>>2]|0;c[x>>2]=G;F=b+8|0;A=c[c[F>>2]>>2]|0;z=c[z>>2]|0;c[w>>2]=c[x>>2];A=bYa(z,w,A)|0;c[A+4>>2]=1;z=c[D>>2]|0;E=b+12|0;v=Mcb(c[E>>2]|0)|0;A=tVa(c[z>>2]|0,v,A)|0;v=c[D>>2]|0;x=Mcb(h+12|0)|0;u=c[D>>2]|0;B=Mcb(c[b+16>>2]|0)|0;B=T3a(c[u>>2]|0,B,1)|0;B=tVa(c[v>>2]|0,x,B)|0;D=c[D>>2]|0;c[y>>2]=f;E=Mcb(c[E>>2]|0)|0;E=T3a(c[D>>2]|0,E,1)|0;D=c[D>>2]|0;c[w>>2]=c[y>>2];E=ITa(z,A,B,nHa(D,w,E,0)|0)|0;c[c[F>>2]>>2]=E;yb=C;return G|0}}else{e=sa()|0;P()|0}while(0);Chb(D)}Chb(E)}Chb(F)}Chb(G);G=e;Ea(G|0);return 0}function Mf(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,o=0,p=0,q=0,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,Q=0,R=0,S=0,T=0;S=yb;yb=yb+176|0;v=S+172|0;K=S+168|0;L=S+112|0;M=S+64|0;N=S+60|0;O=S+56|0;Q=S+40|0;R=S+24|0;D=S+16|0;E=S+8|0;F=S;w=b+16|0;G=b+12|0;H=L+36|0;A=L+40|0;B=L+44|0;C=L+48|0;I=M+36|0;J=d+152|0;z=Q+4|0;x=D+4|0;y=E+4|0;f=1;g=0;a:while(1){if(!f){u=69;break}f=0;h=0;b:while(1){if(f>>>0>=(WCb(c[w>>2]|0)|0)>>>0){f=h;break}k=uXa(G,f)|0;k=c[k>>2]|0;j=Rqb(k)|0;do if(!j){l=uXa(G,f)|0;l=Tqb(c[l>>2]|0)|0;if(!l){i=uXa(G,f)|0;i=hrb(c[i>>2]|0)|0;if(!i)break;j=Rqb(c[i+12>>2]|0)|0;if(!j)break;else{u=23;break}}k=l+8|0;m=Rqb(c[k>>2]|0)|0;if((m|0)!=0?!(hU(m)|0):0){if(eCb(c[m+8>>2]|0)|0){c[K>>2]=m;oWa(L,e);i=m+8|0;c[H>>2]=c[i>>2];n=0;da(1836,L|0,K|0);t=n;n=0;if(t&1){u=14;break a}n=0;j=V(86,a[A>>0]|0,c[B>>2]|0,c[C>>2]|0)|0;t=n;n=0;if(t&1){u=14;break a}if(j){bvb(L);break}Lcb(M,e);c[I>>2]=c[i>>2];Dlb(M,d);n=0;da(1837,M|0,K|0);u=n;n=0;if(u&1){u=16;break a}uub(M);bvb(L)}g=m+12|0;h=cWa(g)|0;h=c[h>>2]|0;if(vub(c[h+4>>2]|0)|0){c[k>>2]=h;dmb(l);u=cWa(g)|0;c[u>>2]=l}_u(m);i=uXa(G,f)|0;c[i>>2]=m;i=0;k=m;g=1;j=m;h=1;u=23}}else{i=0;u=23}while(0);c:do if((u|0)==23){u=0;s=j+12|0;t=WCb(c[j+16>>2]|0)|0;if((t|0)!=0?!(Eha(j)|0):0){r=c[j+8>>2]|0;l=r;d:do if(eCb(r)|0){if(vub(c[j+4>>2]|0)|0)break c;m=0;while(1){if(m>>>0>=t>>>0){l=0;m=t;break d}r=uXa(s,m)|0;r=c[r>>2]|0;c[N>>2]=l;c[v>>2]=c[N>>2];if(BT(r,v)|0){l=t;break d}m=m+1|0}}else{l=0;m=t}while(0);r=(i|0)==0;if(!r){q=c[i+8>>2]|0;p=t;while(1){o=p+-1|0;if((o|0)<=-1)break;T=uXa(s,o)|0;T=c[T>>2]|0;c[O>>2]=q;c[v>>2]=c[O>>2];if(BT(T,v)|0){u=35;break}p=o}if((u|0)==35){u=0;l=p>>>0>>0?l:p;m=0}if(l>>>0>>0?(T=cWa(s)|0,vub(c[(c[T>>2]|0)+4>>2]|0)|0):0)break}if(m|0){g=m;u=41;break b}if((l|0)!=(t|0)){g=0;u=41;break b}}}while(0);f=f+1|0}if((u|0)==41){u=0;$jb(Q,J);h=0;while(1){if((h|0)==(f|0))break;T=uXa(G,h)|0;Wla(Q,c[T>>2]|0);h=h+1|0}h=0;while(1){if((h|0)==(g|0))break;T=uXa(s,h)|0;Wla(Q,c[T>>2]|0);h=h+1|0}if(g>>>0>>0){Wla(Q,k);$jb(R,J);while(1){if(g>>>0>=l>>>0)break;T=uXa(s,g)|0;Wla(R,c[T>>2]|0);g=g+1|0}g=l;while(1){if(g>>>0>=t>>>0)break;T=uXa(s,g)|0;Wla(Q,c[T>>2]|0);g=g+1|0}qEa(s,R);_u(j);if(!r)Qpb(i)}while(1){f=f+1|0;if(f>>>0>=(WCb(c[w>>2]|0)|0)>>>0)break;T=uXa(G,f)|0;Wla(Q,c[T>>2]|0)}e:do if(!(pqb(c[z>>2]|0)|0)){h=cWa(Q)|0;h=c[h>>2]|0;nrb(D,Q);Hib(E,Q);f=c[E>>2]|0;g=c[y>>2]|0;while(1){if(!(dhb(c[D>>2]|0,c[x>>2]|0,f,g)|0))break e;i=Qab(D)|0;j=c[i>>2]|0;if((j|0)!=(h|0)?vub(c[j+4>>2]|0)|0:0){Gsb(F,d);T=Q6a(c[F>>2]|0,c[i>>2]|0)|0;c[i>>2]=T}hob(D)}}while(0);qEa(G,Q);f=1;g=1}f=(f&1)!=0}if((u|0)==14){T=sa()|0;P()|0;bvb(L);Ea(T|0)}else if((u|0)==16){T=sa()|0;P()|0;uub(M);bvb(L);Ea(T|0)}else if((u|0)==69){if(!g){yb=S;return}uZa(b,c[b+4>>2]|0);yb=S;return}}function Nf(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0;N=yb;yb=yb+96|0;B=N+92|0;O=N+80|0;l=N+76|0;m=N+72|0;p=N+68|0;q=N+64|0;r=N+60|0;Q=N+40|0;M=N+36|0;C=N+32|0;D=N+28|0;E=N+24|0;F=N+20|0;G=N+16|0;H=N+12|0;J=N+8|0;K=N+4|0;L=N;v=b+12|0;u=b+16|0;k=c[u>>2]|0;i=d+4|0;j=c[v>>2]|0;while(1){if((j|0)==(k|0))break;e=c[j>>2]|0;a:do switch(c[e+8>>2]|0){case 0:{if(a[d>>0]&1){c[l>>2]=c[e+4>>2];c[B>>2]=c[l>>2];e=wQ(b,B)|0;h=c[e+12>>2]|0;f=e+8|0;c[m>>2]=c[f>>2];c[B>>2]=c[m>>2];Oq(d,h,B,133313);h=c[e+20>>2]|0;e=c[e+16>>2]|0;while(1){if((e|0)==(h|0))break a;z=c[e>>2]|0;c[p>>2]=c[f>>2];c[B>>2]=c[p>>2];Oq(d,z,B,133361);e=e+4|0}}break}case 3:{if(!(Yub(c[i>>2]|0)|0)?(c[q>>2]=c[e+4>>2],c[B>>2]=c[q>>2],o=EEa(b,B)|0,o|0):0){z=(a[o+20>>0]&1)!=0;c[r>>2]=c[o+8>>2];c[B>>2]=c[r>>2];rx(d,z,B,133408)}break}default:{}}while(0);j=j+4|0}x=Q+4|0;y=Q+12|0;z=Q+16|0;c[Q>>2]=0;c[Q+4>>2]=0;c[Q+8>>2]=0;c[Q+12>>2]=0;g[z>>2]=1.0;u=c[u>>2]|0;q=b+60|0;w=Q+8|0;r=b+96|0;e=0;p=c[v>>2]|0;b:while(1){if((p|0)==(u|0)){A=66;break}v=c[p>>2]|0;h=c[v+4>>2]|0;switch(c[v+8>>2]|0){case 0:{c[M>>2]=h;c[B>>2]=c[M>>2];v=(lEa(b,B)|0)!=0;c[C>>2]=h;n=0;c[B>>2]=c[C>>2];Y(27,d|0,v|0,B|0,133442,0)|0;v=n;n=0;if(v&1){A=16;break b}break}case 3:{c[D>>2]=h;c[B>>2]=c[D>>2];v=(EEa(b,B)|0)!=0;c[E>>2]=h;n=0;c[B>>2]=c[E>>2];Y(27,d|0,v|0,B|0,133480,0)|0;v=n;n=0;if(v&1){A=16;break b}break}case 1:{n=0;da(211,F|0,133516);v=n;n=0;if(v&1){A=16;break b}f=h;if(dub(f,c[F>>2]|0)|0)f=1;else f=dub(f,c[q>>2]|0)|0;c[G>>2]=h;n=0;c[B>>2]=c[G>>2];Y(27,d|0,f|0,B|0,133518,0)|0;v=n;n=0;if(v&1){A=16;break b}break}case 2:{n=0;da(211,H|0,133516);v=n;n=0;if(v&1){A=16;break b}f=h;if(dub(f,c[H>>2]|0)|0)f=1;else f=dub(f,c[r>>2]|0)|0;c[J>>2]=h;n=0;c[B>>2]=c[J>>2];Y(27,d|0,f|0,B|0,133553,0)|0;v=n;n=0;if(v&1){A=16;break b}break}default:{A=26;break b}}l=c[c[p>>2]>>2]|0;c[K>>2]=l;v=(LF(Q,K)|0)!=0;c[L>>2]=l;n=0;c[B>>2]=c[L>>2];fa(178,d|0,v|0,B|0,133605);v=n;n=0;if(v&1){A=16;break}o=LAb(K)|0;j=c[x>>2]|0;m=(j|0)==0;c:do if(!m){i=j+-1|0;k=(j&i|0)==0;if(!k)if(o>>>0>>0)e=o;else e=(o>>>0)%(j>>>0)|0;else e=o&i;f=c[(c[Q>>2]|0)+(e<<2)>>2]|0;if(!f)A=44;else while(1){f=c[f>>2]|0;if(!f){A=44;break c}h=c[f+4>>2]|0;if((h|0)!=(o|0)){if(!k){if(h>>>0>=j>>>0)h=(h>>>0)%(j>>>0)|0}else h=h&i;if((h|0)!=(e|0)){A=44;break c}}if(dub(c[f+8>>2]|0,l)|0)break c}}else A=44;while(0);if((A|0)==44){A=0;n=0;fa(74,O|0,Q|0,o|0,K|0);v=n;n=0;if(v&1){A=16;break}s=+(((c[y>>2]|0)+1|0)>>>0);t=+g[z>>2];if(t*+(j>>>0)>>0>2){f=(j&j+-1|0)==0;A=49}else{f=0;A=49}}else if(m){f=0;e=0;A=49}do if((A|0)==49){A=0;v=e|(f^1)&1;m=~~+I(+(s/t))>>>0;n=0;da(86,Q|0,(v>>>0>>0?m:v)|0);v=n;n=0;if(v&1){A=54;break b}e=c[x>>2]|0;f=e+-1|0;if(!(e&f)){j=e;e=o&f;break}if(o>>>0>>0){j=e;e=o}else{j=e;e=(o>>>0)%(e>>>0)|0}}while(0);f=c[(c[Q>>2]|0)+(e<<2)>>2]|0;if(!f){f=c[O>>2]|0;c[f>>2]=c[w>>2];i=f;c[w>>2]=i;c[(c[Q>>2]|0)+(e<<2)>>2]=w;if(c[f>>2]|0){f=c[(c[f>>2]|0)+4>>2]|0;h=j+-1|0;if(j&h){if(f>>>0>=j>>>0)f=(f>>>0)%(j>>>0)|0}else f=f&h;c[(c[Q>>2]|0)+(f<<2)>>2]=i}}else{v=c[O>>2]|0;c[v>>2]=c[f>>2];c[f>>2]=v}c[y>>2]=(c[y>>2]|0)+1;c[O>>2]=0}p=p+4|0}if((A|0)==16){O=sa()|0;P()|0;Pdb(Q);Ea(O|0)}else if((A|0)==26){n=0;fa(75,141129,126900,1258,133589);n=0;O=sa()|0;P()|0;Pdb(Q);Ea(O|0)}else if((A|0)==54){e=sa()|0;P()|0;f=c[O>>2]|0;c[O>>2]=0;if(!f){O=e;Pdb(Q);Ea(O|0)}RCb(f);O=e;Pdb(Q);Ea(O|0)}else if((A|0)==66){Pdb(Q);yb=N;return}}function Of(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=yb;yb=yb+96|0;p=v+80|0;l=v+68|0;g=v+64|0;h=v+60|0;i=v+56|0;u=v+52|0;o=v+48|0;s=v+44|0;t=v+32|0;q=v+20|0;j=v+16|0;k=v+12|0;r=v;f=(c[b>>2]|0)+56|0;if(a[f>>0]&1){h=oa(20)|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;w=Zzb(119208)|0;n=0;ea(95,l|0,119208,w|0);w=n;n=0;if(!(w&1)){n=0;da(330,h|0,l|0);w=n;n=0;if(w&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(l);if(!g){w=f;Ea(w|0)}}else{f=sa()|0;P()|0}va(h|0);w=f;Ea(w|0)}a[f>>0]=1;if((xmb(d)|0)==1){yb=v;return}if(Gcb(Vr(d,1)|0)|0){Ftb(g,kH(Vr(d,1)|0)|0);c[(c[b>>2]|0)+60>>2]=c[g>>2];f=2}else f=1;if((f|0)==(xmb(d)|0)){yb=v;return}Cub(h);Cub(i);l=Vr(d,f)|0;if(UBb(a[l>>0]|0)|0){g=Vr(d,f)|0;l=kH(Vr(g,0)|0)|0;a:do if(dub(l,c[37389]|0)|0){TTa(u);n=0;g=U(81,g|0,1)|0;r=n;n=0;do if(!(r&1)?(n=0,m=S(331,g|0)|0,r=n,n=0,!(r&1)):0){Ftb(o,m);i=c[u>>2]|0;r=c[o>>2]|0;c[i>>2]=r;c[i+4>>2]=c[(c[b>>2]|0)+60>>2];c[i+8>>2]=1;g=c[b>>2]|0;c[s>>2]=r;c[p>>2]=c[s>>2];if(!(FEa(g,p)|0)){c[u>>2]=0;n=0;da(72,g|0,i|0);w=n;n=0;if(w&1){w=20;break}c[u>>2]=0;break a}h=oa(20)|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;v=Zzb(119228)|0;n=0;ea(95,t|0,119228,v|0);v=n;n=0;if(!(v&1)){n=0;fa(134,h|0,t|0,c[d+28>>2]|0,c[d+32>>2]|0);v=n;n=0;if(v&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(t);if(!g){g=f;h=u;f=i;break}}else{f=sa()|0;P()|0}va(h|0);g=f;h=u;f=i}else w=20;while(0);if((w|0)==20){g=sa()|0;P()|0;h=u;f=c[u>>2]|0}c[h>>2]=0;if(!f){w=g;Ea(w|0)}RCb(f);w=g;Ea(w|0)}else{w=kH(Vr(g,0)|0)|0;if(!(dub(w,c[37390]|0)|0)){h=oa(20)|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;w=Zzb(119270)|0;n=0;ea(95,r|0,119270,w|0);w=n;n=0;if(!(w&1)){n=0;da(330,h|0,r|0);w=n;n=0;if(w&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(r);if(!g){w=f;Ea(w|0)}}else{f=sa()|0;P()|0}va(h|0);w=f;Ea(w|0)}if(e){Ftb(j,kH(Vr(g,1)|0)|0);c[(c[b>>2]|0)+48>>2]=c[j>>2];Ftb(k,kH(Vr(g,2)|0)|0);c[(c[b>>2]|0)+52>>2]=c[k>>2];break}h=oa(20)|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;w=Zzb(119245)|0;n=0;ea(95,q|0,119245,w|0);w=n;n=0;if(!(w&1)){n=0;da(330,h|0,q|0);w=n;n=0;if(w&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(q);if(!g){w=f;Ea(w|0)}}else{f=sa()|0;P()|0}va(h|0);w=f;Ea(w|0)}while(0);f=f+1|0}if((f|0)==(xmb(d)|0)){yb=v;return}if(!(Gcb(Vr(d,f)|0)|0)){w=kH(Vr(d,f)|0)|0;if(dub(w,c[37407]|0)|0){Bn(b,Vr(d,f+1|0)|0,1,0);f=c[b>>2]|0;w=c[f+72>>2]|0;g=w;if((c[f+76>>2]|0)==(w|0)){w=f+68|0;G1a(w,0,0)|0;c[(c[b>>2]|0)+64>>2]=c[w>>2];yb=v;return}else{w=f+68|0;G1a(w,(c[g+8>>2]|0)-(c[g+4>>2]|0)>>2,0)|0;c[(c[b>>2]|0)+64>>2]=c[w>>2];yb=v;return}}w=kH(Vr(d,(xmb(d)|0)+-1|0)|0)|0;if(dub(w,c[37407]|0)|0){if(f>>>0<((xmb(d)|0)+-1|0)>>>0){w=sY(kH(Vr(d,f)|0)|0)|0;G1a((c[b>>2]|0)+64|0,w,((w|0)<0)<<31>>31)|0;f=f+1|0}if(f>>>0>=((xmb(d)|0)+-1|0)>>>0){yb=v;return}w=sY(kH(Vr(d,f)|0)|0)|0;G1a((c[b>>2]|0)+68|0,w,((w|0)<0)<<31>>31)|0;yb=v;return}}Bn(b,d,f,0);f=c[b>>2]|0;w=c[f+72>>2]|0;g=w;if((c[f+76>>2]|0)==(w|0)){w=f+68|0;G1a(w,0,0)|0;c[(c[b>>2]|0)+64>>2]=c[w>>2];yb=v;return}else{w=f+68|0;G1a(w,(c[g+8>>2]|0)-(c[g+4>>2]|0)>>2,0)|0;c[(c[b>>2]|0)+64>>2]=c[w>>2];yb=v;return}}function Pf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:while(1){m=b;o=b+-4|0;while(1){n=a;b:while(1){l=n;a=m-l|0;d=a>>2;switch(d|0){case 2:{r=5;break a}case 3:{r=7;break a}case 4:{r=8;break a}case 5:{r=9;break a}case 1:case 0:{r=60;break a}default:{}}if((a|0)<28){r=11;break a}k=n+(((d|0)/2|0)<<2)|0;if((a|0)>3996){a=(d|0)/4|0;a=Zr(n,n+(a<<2)|0,k,k+(a<<2)|0,o)|0}else a=Lt(n,k,o)|0;f=c[n>>2]|0;j=+h[f+16>>3];g=+h[(c[k>>2]|0)+16>>3];if(yea(j,g)|0){e=o;break}d=o;while(1){d=d+-4|0;if((n|0)==(d|0))break;e=c[d>>2]|0;if(yea(+h[e+16>>3],g)|0){r=37;break b}}a=n+4|0;l=c[o>>2]|0;e=l;if(!(yea(j,+h[l+16>>3])|0)){while(1){if((a|0)==(o|0)){r=60;break a}d=c[a>>2]|0;if(yea(j,+h[d+16>>3])|0)break;a=a+4|0}c[a>>2]=e;c[o>>2]=d;a=a+4|0}if((a|0)==(o|0)){r=60;break a}d=o;while(1){g=+h[(c[n>>2]|0)+16>>3];while(1){l=c[a>>2]|0;f=l;if(yea(g,+h[l+16>>3])|0)break;a=a+4|0}do{d=d+-4|0;l=c[d>>2]|0;e=l}while(yea(g,+h[l+16>>3])|0);if(a>>>0>=d>>>0)break;c[a>>2]=e;c[d>>2]=f;a=a+4|0}n=a}if((r|0)==37){r=0;c[n>>2]=e;c[d>>2]=f;e=d;a=a+1|0}d=n+4|0;c:do if(d>>>0>>0)while(1){g=+h[(c[k>>2]|0)+16>>3];while(1){f=c[d>>2]|0;i=f;if(!(yea(+h[f+16>>3],g)|0))break;d=d+4|0}do{e=e+-4|0;s=c[e>>2]|0;f=s}while(!(yea(+h[s+16>>3],g)|0));if(d>>>0>e>>>0){e=k;f=d;break c}c[d>>2]=f;c[e>>2]=i;k=(k|0)==(d|0)?e:k;a=a+1|0;d=d+4|0}else{e=k;f=d}while(0);if((f|0)!=(e|0)?(p=c[e>>2]|0,q=c[f>>2]|0,yea(+h[p+16>>3],+h[q+16>>3])|0):0){c[f>>2]=p;c[e>>2]=q;a=a+1|0}if(a|0){r=57;break}d=zl(n,f)|0;a=f+4|0;if(zl(a,b)|0){r=53;break}if(!d){r=57;break}}do if((r|0)==53){r=0;if(d){r=60;break a}else{b=f;a=n}}else if((r|0)==57){r=0;s=f;if((s-l|0)<(m-s|0)){Pf(n,f);a=f+4|0;break}else{Pf(f+4|0,b);b=f;a=n;break}}while(0)}if((r|0)==5){a=c[o>>2]|0;b=c[n>>2]|0;if(!(yea(+h[a+16>>3],+h[b+16>>3])|0))return;c[n>>2]=a;c[o>>2]=b;return}else if((r|0)==7){Lt(n,n+4|0,o)|0;return}else if((r|0)==8){Wu(n,n+4|0,n+8|0,o)|0;return}else if((r|0)==9){Zr(n,n+4|0,n+8|0,n+12|0,o)|0;return}else if((r|0)==11){Ou(n,b);return}else if((r|0)==60)return}function Qf(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,o=0,p=0,q=0,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;F=yb;yb=yb+128|0;v=F+120|0;K=F+108|0;y=F+104|0;z=F+100|0;A=F+96|0;E=F+84|0;I=F+72|0;J=F+60|0;G=F+48|0;B=F+36|0;H=F+24|0;C=F+12|0;D=F;if(a[b+12>>0]&1)BM(IWa(150620,114349)|0);w=b+36|0;m=c[w>>2]|0;x=m+d|0;o=v+4|0;p=G+11|0;q=G+4|0;r=b+100|0;s=b+96|0;t=b+88|0;u=b+84|0;d=m;a:while(1){if(d>>>0>=x>>>0){e=61;break}m=IF(b)|0;k=IF(b)|0;l=c[w>>2]|0;if((m|0)==1){m=IF(b)|0;yib(K);j=0;while(1){if(j>>>0>=m>>>0)break;n=0;i=S(301,b|0)|0;h=n;n=0;if(h&1){e=29;break a}n=0;d=S(304,b|0)|0;h=n;n=0;if(h&1){e=29;break a}c[y>>2]=d;n=0;ca(557,y|0);h=n;n=0;if(h&1){e=29;break a}g=c[y>>2]|0;c[z>>2]=g;f=g;e=1;h=f;while(1){n=0;fa(98,v|0,K|0,z|0,z|0);d=n;n=0;if(d&1){e=28;break a}if(a[o>>0]&1)break;c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;h=Zzb(140218)|0;n=0;ea(95,J|0,140218,h|0);h=n;n=0;if(h&1){e=28;break a}n=0;U(77,J|0,f|0)|0;h=n;n=0;if(h&1){e=32;break a}c[I>>2]=c[J>>2];c[I+4>>2]=c[J+4>>2];c[I+8>>2]=c[J+8>>2];d=0;while(1){if((d|0)==3)break;c[J+(d<<2)>>2]=0;d=d+1|0}n=0;da(229,G|0,e|0);h=n;n=0;if(h&1){e=33;break a}h=a[p>>0]|0;g=h<<24>>24<0;n=0;V(43,I|0,(g?c[G>>2]|0:G)|0,(g?c[q>>2]|0:h&255)|0)|0;h=n;n=0;if(h&1){e=34;break a}c[E>>2]=c[I>>2];c[E+4>>2]=c[I+4>>2];c[E+8>>2]=c[I+8>>2];d=0;while(1){if((d|0)==3)break;c[I+(d<<2)>>2]=0;d=d+1|0}n=0;da(230,A|0,E|0);h=n;n=0;if(h&1){e=35;break a}h=c[A>>2]|0;c[z>>2]=h;Chb(E);Chb(G);Chb(I);Chb(J);e=e+1|0;g=h}e=c[s>>2]|0;d=(c[r>>2]|0)-e>>2;do if(i>>>0>>0)c[(c[e+(i<<2)>>2]|0)+8>>2]=g;else{d=i-d|0;e=c[u>>2]|0;if(d>>>0<(c[t>>2]|0)-e>>2>>>0){c[(c[e+(d<<2)>>2]|0)+8>>2]=g;break}c[H>>2]=0;c[H+4>>2]=0;c[H+8>>2]=0;i=Zzb(h)|0;n=0;ea(95,H|0,h|0,i|0);i=n;n=0;if(i&1){e=29;break a}n=0;U(77,H|0,114390)|0;i=n;n=0;if(i&1){e=50;break a}c[B>>2]=c[H>>2];c[B+4>>2]=c[H+4>>2];c[B+8>>2]=c[H+8>>2];d=0;while(1){if((d|0)==3)break;c[H+(d<<2)>>2]=0;d=d+1|0}n=0;da(4022,b|0,B|0);i=n;n=0;if(i&1){e=51;break a}Chb(B);Chb(H)}while(0);j=j+1|0}if((c[w>>2]|0)!=(l+k|0)){c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;m=Zzb(114412)|0;n=0;ea(95,C|0,114412,m|0);m=n;n=0;if(m&1){e=30;break}n=0;da(4022,b|0,C|0);m=n;n=0;if(m&1){e=58;break}Chb(C)}Khb(K);d=c[w>>2]|0}else{d=IWa(150620,114362)|0;BM(Ym(d,c[w>>2]|0)|0);d=l+k|0;c[w>>2]=d}}switch(e|0){case 28:{d=sa()|0;P()|0;e=31;break}case 29:{d=sa()|0;P()|0;e=31;break}case 30:{d=sa()|0;P()|0;e=31;break}case 32:{d=sa()|0;P()|0;e=38;break}case 33:{d=sa()|0;P()|0;e=37;break}case 34:{d=sa()|0;P()|0;e=36;break}case 35:{d=sa()|0;P()|0;Chb(E);e=36;break}case 50:{d=sa()|0;P()|0;e=52;break}case 51:{d=sa()|0;P()|0;Chb(B);e=52;break}case 58:{d=sa()|0;P()|0;Chb(C);break}case 61:{if((d|0)==(x|0)){yb=F;return}c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;D8(D,114449,Zzb(114449)|0);n=0;da(4022,b|0,D|0);K=n;n=0;if(K&1){K=sa()|0;P()|0;Chb(D);Ea(K|0)}else{Chb(D);yb=F;return}}}if((e|0)!=31)if((e|0)==36){Chb(G);e=37}else if((e|0)==52)Chb(H);if((e|0)==37){Chb(I);e=38}if((e|0)==38)Chb(J);Khb(K);K=d;Ea(K|0)}function Rf(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;v=yb;yb=yb+48|0;t=v+44|0;y=v+40|0;f=v+36|0;q=v+32|0;s=v+20|0;u=v+16|0;w=v+4|0;x=v;jFa(y);n=0;e=U(81,d|0,1)|0;r=n;n=0;do if(!(r&1)){if($Bb(a[e>>0]|0)|0){n=0;e=U(81,d|0,1)|0;r=n;n=0;if(r&1){j=8;break}n=0;e=S(331,e|0)|0;r=n;n=0;if(r&1){j=8;break}Ftb(f,e);c[c[y>>2]>>2]=c[f>>2];e=2}else e=1;n=0;k=U(81,d|0,e|0)|0;r=n;n=0;if(!(r&1)){e=c[y>>2]|0;l=e+8|0;m=e+12|0;o=e+16|0;p=e+4|0;r=e;j=1;a:while(1){n=0;f=S(330,k|0)|0;i=n;n=0;if(i&1){j=7;break}if(j>>>0>=f>>>0){j=44;break}n=0;i=U(81,k|0,j|0)|0;h=n;n=0;if(h&1){j=7;break}n=0;f=U(81,i|0,0)|0;h=n;n=0;if(h&1){j=7;break}n=0;f=S(331,f|0)|0;h=n;n=0;if(h&1){j=7;break}b:do if(!(dub(f,c[37384]|0)|0)){n=0;f=U(81,i|0,0)|0;h=n;n=0;if(h&1){j=7;break a}n=0;f=S(331,f|0)|0;h=n;n=0;if(h&1){j=7;break a}if(dub(f,c[37385]|0)|0){n=0;f=S(330,i|0)|0;h=n;n=0;if(h&1){j=7;break a}if(f>>>0>2){j=33;break a}n=0;f=U(81,i|0,1)|0;i=n;n=0;if(i&1){j=7;break a}n=0;f=S(331,f|0)|0;i=n;n=0;if(i&1){j=7;break a}n=0;f=U(199,f|0,0)|0;i=n;n=0;if(i&1){j=7;break a}c[p>>2]=f}}else{h=1;while(1){n=0;f=S(330,i|0)|0;g=n;n=0;if(g&1){j=6;break a}if(h>>>0>=f>>>0)break b;n=0;f=U(81,i|0,h|0)|0;g=n;n=0;if(g&1){j=6;break a}n=0;f=S(331,f|0)|0;g=n;n=0;if(g&1){j=6;break a}n=0;f=U(199,f|0,0)|0;g=n;n=0;if(g&1){j=6;break a}c[q>>2]=f;g=c[m>>2]|0;if(g>>>0>=(c[o>>2]|0)>>>0){n=0;da(212,l|0,q|0);g=n;n=0;if(g&1){j=6;break a}}else{c[g>>2]=f;c[m>>2]=(c[m>>2]|0)+4}h=h+1|0}}while(0);j=j+1|0}if((j|0)==6){f=sa()|0;g=y;P()|0;j=9;break}else if((j|0)==7){f=sa()|0;g=y;P()|0;j=9;break}else if((j|0)==33){h=oa(20)|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;x=Zzb(119673)|0;n=0;ea(95,s|0,119673,x|0);x=n;n=0;if(!(x&1)){n=0;fa(134,h|0,s|0,c[i+28>>2]|0,c[i+32>>2]|0);x=n;n=0;if(x&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(s);if(!g){g=y;j=65;break}}else{f=sa()|0;P()|0}va(h|0);g=y;j=65;break}else if((j|0)==44){f=c[e>>2]|0;if(!(eCb(f)|0)){f=c[b>>2]|0;n=0;f=S(222,(c[f+4>>2]|0)-(c[f>>2]|0)>>2|0)|0;s=n;n=0;if(s&1){j=8;break}c[e>>2]=f}g=b+24|0;h=c[g>>2]|0;if((h|0)==(c[b+28>>2]|0)){n=0;da(232,b+20|0,e|0);s=n;n=0;if(s&1){j=8;break}}else{c[h>>2]=f;c[g>>2]=(c[g>>2]|0)+4}f=c[b>>2]|0;c[u>>2]=c[e>>2];c[t>>2]=c[u>>2];if(rDa(f,t)|0){h=oa(20)|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;x=Zzb(126526)|0;n=0;ea(95,w|0,126526,x|0);x=n;n=0;if(!(x&1)){n=0;fa(134,h|0,w|0,c[d+28>>2]|0,c[d+32>>2]|0);x=n;n=0;if(x&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(w);if(g)j=56}else{f=sa()|0;P()|0;j=56}if((j|0)==56)va(h|0);c[y>>2]=0;break}c[y>>2]=0;c[x>>2]=r;n=0;U(80,f|0,x|0)|0;w=n;n=0;if(w&1){e=sa()|0;P()|0;f=c[x>>2]|0;c[x>>2]=0;if(f|0){Xrb(f);RCb(f)}c[y>>2]=0;y=e;Ea(y|0)}else{e=c[x>>2]|0;c[x>>2]=0;if(!e){c[y>>2]=0;yb=v;return}Xrb(e);RCb(e);c[y>>2]=0;yb=v;return}}}else j=8}else j=8;while(0);if((j|0)==8){f=sa()|0;P()|0;g=y;e=c[y>>2]|0;j=9}if((j|0)==9)j=65;if((j|0)==65){c[g>>2]=0;if(!e){y=f;Ea(y|0)}}Xrb(e);RCb(e);y=f;Ea(y|0)}function Sf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0;N=yb;yb=yb+336|0;z=N+324|0;M=N+312|0;B=N+308|0;H=N+304|0;A=N+168|0;x=N+152|0;K=N+16|0;J=N;c[B>>2]=b;C=a+16|0;d=c[C>>2]|0;y=b;if(!(WCb(d)|0))Zsb(H,132706);else c[H>>2]=c[d+8>>2];f=b+4|0;j=c[f>>2]|0;qo(b);k=c[f>>2]|0;if((k|0)!=(j|0)){a:do if(!((vub(j)|0)&(k|0)==6)){l=A+56|0;c[A>>2]=31812;c[l>>2]=31832;Hoa(A+56|0,A+4|0);c[A+128>>2]=0;c[A+132>>2]=-1;c[A>>2]=39764;c[l>>2]=39784;l=A+4|0;RKa(l);c[l>>2]=39800;e=A+36|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[e+(d<<2)>>2]=0;d=d+1|0}c[A+48>>2]=0;c[A+52>>2]=16;n=0;d=U(59,A|0,132721)|0;e=n;n=0;do if(((((((((((!(e&1)?(n=0,m=U(82,d|0,c[H>>2]|0)|0,e=n,n=0,!(e&1)):0)?(n=0,o=U(59,m|0,132742)|0,m=n,n=0,!(m&1)):0)?(n=0,p=U(182,o|0,b|0)|0,o=n,n=0,!(o&1)):0)?(n=0,q=U(59,p|0,132747)|0,p=n,n=0,!(p&1)):0)?(n=0,r=S(223,j|0)|0,p=n,n=0,!(p&1)):0)?(n=0,s=U(59,q|0,r|0)|0,r=n,n=0,!(r&1)):0)?(n=0,t=U(59,s|0,132760)|0,s=n,n=0,!(s&1)):0)?(n=0,u=S(223,k|0)|0,s=n,n=0,!(s&1)):0)?(n=0,v=U(59,t|0,u|0)|0,u=n,n=0,!(u&1)):0)?(n=0,U(59,v|0,128472)|0,v=n,n=0,!(v&1)):0)?(w=c[a+24>>2]|0,n=0,da(75,x|0,l|0),v=n,n=0,!(v&1)):0){v=WCb(c[C>>2]|0)|0;n=0;fa(146,w|0,x|0,b|0,v|0);w=n;n=0;if(w&1){d=sa()|0;P()|0;Chb(x);break}else{Chb(x);v$a(A);break a}}else L=23;while(0);if((L|0)==23){d=sa()|0;P()|0}v$a(A);N=d;Ea(N|0)}while(0);c[f>>2]=j}q=a+28|0;c[z>>2]=y;p=pH(z,4)|0;o=a+32|0;j=c[o>>2]|0;m=(j|0)==0;b:do if(!m){k=j+-1|0;l=(j&k|0)==0;if(!l)if(p>>>0>>0)e=p;else e=(p>>>0)%(j>>>0)|0;else e=p&k;d=c[(c[q>>2]|0)+(e<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break b;f=c[d+4>>2]|0;if((f|0)!=(p|0)){if(!l){if(f>>>0>=j>>>0)f=(f>>>0)%(j>>>0)|0}else f=f&k;if((f|0)!=(e|0))break b}}while((c[d+8>>2]|0)!=(b|0));f=K+56|0;c[K>>2]=31812;c[f>>2]=31832;Hoa(K+56|0,K+4|0);c[K+128>>2]=0;c[K+132>>2]=-1;c[K>>2]=39764;c[f>>2]=39784;f=K+4|0;RKa(f);c[f>>2]=39800;e=K+36|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[e+(d<<2)>>2]=0;d=d+1|0}c[K+48>>2]=0;c[K+52>>2]=16;n=0;d=U(59,K|0,132773)|0;M=n;n=0;do if(((((!(M&1)?(n=0,D=U(82,d|0,c[H>>2]|0)|0,M=n,n=0,!(M&1)):0)?(n=0,E=U(59,D|0,132742)|0,M=n,n=0,!(M&1)):0)?(n=0,F=U(182,E|0,b|0)|0,M=n,n=0,!(M&1)):0)?(n=0,U(62,F|0,10)|0,M=n,n=0,!(M&1)):0)?(G=c[a+24>>2]|0,n=0,da(75,J|0,f|0),M=n,n=0,!(M&1)):0){M=WCb(c[C>>2]|0)|0;n=0;fa(146,G|0,J|0,b|0,M|0);M=n;n=0;if(M&1){d=sa()|0;P()|0;Chb(J);break}Chb(J);v$a(K);yb=N;return}else L=75;while(0);if((L|0)==75){d=sa()|0;P()|0}v$a(K);N=d;Ea(N|0)}}else e=0;while(0);Uja(M,q,p,B);k=a+40|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+44>>2];if(i*+(j>>>0)>>0>2){e=(j&j+-1|0)!=0&1;L=47}else{e=1;L=47}}else if(m){d=0;e=1;L=47}do if((L|0)==47){L=d|e;K=~~+I(+(h/i))>>>0;n=0;da(2274,q|0,(L>>>0>>0?K:L)|0);L=n;n=0;if(L&1){d=sa()|0;P()|0;e=c[M>>2]|0;c[M>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[o>>2]|0;e=d+-1|0;if(!(d&e)){j=d;e=p&e;break}if(p>>>0>>0){j=d;e=p;break}j=d;e=(p>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[q>>2]|0)+(e<<2)>>2]|0;if(!d){a=a+36|0;d=c[M>>2]|0;c[d>>2]=c[a>>2];f=d;c[a>>2]=f;c[(c[q>>2]|0)+(e<<2)>>2]=a;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[q>>2]|0)+(d<<2)>>2]=f}}else{a=c[M>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=a}c[k>>2]=(c[k>>2]|0)+1;c[M>>2]=0;yb=N;return}function Tf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;q=yb;yb=yb+96|0;s=q+84|0;r=q+72|0;i=q+60|0;k=q+48|0;l=q+36|0;m=q+24|0;o=q+12|0;p=q;g=ac(b,d,f)|0;a:do if((g|0)!=(b|0)){j=ac(g,d,f)|0;h=f+4|0;if((j|0)==(g|0)){g=c[h>>2]|0;d=0;while(1){if((d|0)==-1)break;s=d+-1|0;J2a(g+(s*24|0)|0);d=s}c[h>>2]=g+-24;break}d=c[h>>2]|0;if(((d-(c[f>>2]|0)|0)/24|0)>>>0>=2){d6(s,d+-24|0);d=c[h>>2]|0;b=0;while(1){if((b|0)==-1)break;f=b+-1|0;J2a(d+(f*24|0)|0);b=f}c[h>>2]=d+-24;n=0;da(4196,r|0,d+-48|0);f=n;n=0;if(f&1){b=sa()|0;P()|0}else{b=c[h>>2]|0;f=b+-24|0;d=f+11|0;if((a[d>>0]|0)<0){Fsb(c[f>>2]|0,0);c[b+-20>>2]=0}else{Fsb(f,0);a[d>>0]=0}b=Zzb(139965)|0;d=e+11|0;h=a[d>>0]|0;g=e+4|0;if((b|0)==((h<<24>>24<0?c[g>>2]|0:h&255)|0)){n=0;b=V(129,e|0,139965,b|0)|0;h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}if((b|0)==0?(n=0,da(4195,f|0,40),h=n,n=0,h&1):0)h=17;else h=18}else h=18;b:do if((h|0)==18){n=0;ea(218,p|0,139929,r|0);b=n;n=0;if(b&1){b=sa()|0;P()|0}else{n=0;U(216,p|0,140215)|0;b=n;n=0;if(b&1){b=sa()|0;P()|0}else{c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];b=0;while(1){if((b|0)==3)break;c[p+(b<<2)>>2]=0;b=b+1|0}b=a[d>>0]|0;t=b<<24>>24<0;n=0;V(124,o|0,(t?c[e>>2]|0:e)|0,(t?c[g>>2]|0:b&255)|0)|0;b=n;n=0;if(b&1){b=sa()|0;P()|0}else{c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,m|0,139924)|0;t=n;n=0;if(t&1){b=sa()|0;P()|0}else{c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}t=a[s+11>>0]|0;b=t<<24>>24<0;n=0;V(124,l|0,(b?c[s>>2]|0:s)|0,(b?c[s+4>>2]|0:t&255)|0)|0;t=n;n=0;if(t&1){b=sa()|0;P()|0}else{c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,k|0,139927)|0;t=n;n=0;do if(t&1){b=sa()|0;P()|0}else{c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];b=0;while(1){if((b|0)==3)break;c[k+(b<<2)>>2]=0;b=b+1|0}t=a[i+11>>0]|0;b=t<<24>>24<0;n=0;V(124,f|0,(b?c[i>>2]|0:i)|0,(b?c[i+4>>2]|0:t&255)|0)|0;t=n;n=0;if(t&1){b=sa()|0;P()|0;Chb(i);break}Chb(i);Chb(k);Chb(l);Chb(m);Chb(o);Chb(p);b=Zzb(139965)|0;t=a[d>>0]|0;do if((b|0)==((t<<24>>24<0?c[g>>2]|0:t&255)|0)){n=0;b=V(129,e|0,139965,b|0)|0;t=n;n=0;if(t&1){t=ta(0)|0;P()|0;yub(t)}if(b|0)break;n=0;da(4195,f|0,41);t=n;n=0;if(t&1){h=17;break b}}while(0);Chb(r);Chb(s);b=j;break a}while(0);Chb(k)}Chb(l)}Chb(m)}Chb(o)}Chb(p)}}while(0);if((h|0)==17){b=sa()|0;P()|0}Chb(r)}Chb(s);Ea(b|0)}}while(0);yb=q;return b|0}function Uf(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,o=0,p=0;p=yb;yb=yb+16|0;o=p;if(b){m=Thb(e,151556)|0;if(d){Sb[c[(c[m>>2]|0)+44>>2]&8191](o,m);e=c[o>>2]|0;a[f>>0]=e;a[f+1>>0]=e>>8;a[f+2>>0]=e>>16;a[f+3>>0]=e>>24;Sb[c[(c[m>>2]|0)+32>>2]&8191](o,m);e=k+11|0;if((a[e>>0]|0)<0){Fsb(c[k>>2]|0,0);c[k+4>>2]=0}else{Fsb(k,0);a[e>>0]=0}n=0;ca(510,k|0);f=n;n=0;if(f&1){f=ta(0)|0;P()|0;yub(f)}c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];e=0;while(1){if((e|0)==3)break;c[o+(e<<2)>>2]=0;e=e+1|0}Chb(o);b=m}else{Sb[c[(c[m>>2]|0)+40>>2]&8191](o,m);e=c[o>>2]|0;a[f>>0]=e;a[f+1>>0]=e>>8;a[f+2>>0]=e>>16;a[f+3>>0]=e>>24;Sb[c[(c[m>>2]|0)+28>>2]&8191](o,m);e=k+11|0;if((a[e>>0]|0)<0){Fsb(c[k>>2]|0,0);c[k+4>>2]=0}else{Fsb(k,0);a[e>>0]=0}n=0;ca(510,k|0);f=n;n=0;if(f&1){f=ta(0)|0;P()|0;yub(f)}c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];e=0;while(1){if((e|0)==3)break;c[o+(e<<2)>>2]=0;e=e+1|0}Chb(o);b=m}e=Eb[c[(c[m>>2]|0)+12>>2]&511](m)|0;a[g>>0]=e;e=Eb[c[(c[m>>2]|0)+16>>2]&511](m)|0;a[h>>0]=e;Sb[c[(c[b>>2]|0)+20>>2]&8191](o,m);e=i+11|0;if((a[e>>0]|0)<0){Fsb(c[i>>2]|0,0);c[i+4>>2]=0}else{Fsb(i,0);a[e>>0]=0}n=0;ca(510,i|0);h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];e=0;while(1){if((e|0)==3)break;c[o+(e<<2)>>2]=0;e=e+1|0}Chb(o);Sb[c[(c[b>>2]|0)+24>>2]&8191](o,m);e=j+11|0;if((a[e>>0]|0)<0){Fsb(c[j>>2]|0,0);c[j+4>>2]=0}else{Fsb(j,0);a[e>>0]=0}n=0;ca(510,j|0);i=n;n=0;if(i&1){i=ta(0)|0;P()|0;yub(i)}c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];e=0;while(1){if((e|0)==3)break;c[o+(e<<2)>>2]=0;e=e+1|0}Chb(o);e=Eb[c[(c[m>>2]|0)+36>>2]&511](m)|0}else{m=Thb(e,151548)|0;if(d){Sb[c[(c[m>>2]|0)+44>>2]&8191](o,m);e=c[o>>2]|0;a[f>>0]=e;a[f+1>>0]=e>>8;a[f+2>>0]=e>>16;a[f+3>>0]=e>>24;Sb[c[(c[m>>2]|0)+32>>2]&8191](o,m);e=k+11|0;if((a[e>>0]|0)<0){Fsb(c[k>>2]|0,0);c[k+4>>2]=0}else{Fsb(k,0);a[e>>0]=0}n=0;ca(510,k|0);f=n;n=0;if(f&1){f=ta(0)|0;P()|0;yub(f)}c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];e=0;while(1){if((e|0)==3)break;c[o+(e<<2)>>2]=0;e=e+1|0}Chb(o);b=m}else{Sb[c[(c[m>>2]|0)+40>>2]&8191](o,m);e=c[o>>2]|0;a[f>>0]=e;a[f+1>>0]=e>>8;a[f+2>>0]=e>>16;a[f+3>>0]=e>>24;Sb[c[(c[m>>2]|0)+28>>2]&8191](o,m);e=k+11|0;if((a[e>>0]|0)<0){Fsb(c[k>>2]|0,0);c[k+4>>2]=0}else{Fsb(k,0);a[e>>0]=0}n=0;ca(510,k|0);f=n;n=0;if(f&1){f=ta(0)|0;P()|0;yub(f)}c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];e=0;while(1){if((e|0)==3)break;c[o+(e<<2)>>2]=0;e=e+1|0}Chb(o);b=m}e=Eb[c[(c[m>>2]|0)+12>>2]&511](m)|0;a[g>>0]=e;e=Eb[c[(c[m>>2]|0)+16>>2]&511](m)|0;a[h>>0]=e;Sb[c[(c[b>>2]|0)+20>>2]&8191](o,m);e=i+11|0;if((a[e>>0]|0)<0){Fsb(c[i>>2]|0,0);c[i+4>>2]=0}else{Fsb(i,0);a[e>>0]=0}n=0;ca(510,i|0);h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];e=0;while(1){if((e|0)==3)break;c[o+(e<<2)>>2]=0;e=e+1|0}Chb(o);Sb[c[(c[b>>2]|0)+24>>2]&8191](o,m);e=j+11|0;if((a[e>>0]|0)<0){Fsb(c[j>>2]|0,0);c[j+4>>2]=0}else{Fsb(j,0);a[e>>0]=0}n=0;ca(510,j|0);i=n;n=0;if(i&1){i=ta(0)|0;P()|0;yub(i)}c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];e=0;while(1){if((e|0)==3)break;c[o+(e<<2)>>2]=0;e=e+1|0}Chb(o);e=Eb[c[(c[m>>2]|0)+36>>2]&511](m)|0}c[l>>2]=e;yb=p;return}function Vf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0;J=yb;yb=yb+208|0;K=J+192|0;E=J+188|0;B=J+184|0;x=J+48|0;y=J+32|0;z=J+20|0;u=J+16|0;w=J+4|0;G=J;H=b+64+(e*20|0)|0;F=WCb(c[d>>2]|0)|0;c[E>>2]=F;d=oC(H,E)|0;if(d|0){K=c[d+12>>2]|0;yb=J;return K|0}hCb(B);j=x+56|0;k=x+4|0;l=x+56|0;m=x+128|0;o=x+132|0;p=x+4|0;q=x+36|0;r=x+48|0;s=x+52|0;t=y+11|0;E=b+124|0;f=(e|0)==0;e=0;while(1){c[x>>2]=31812;c[j>>2]=31832;Hoa(l,k);c[m>>2]=0;c[o>>2]=-1;c[x>>2]=39764;c[j>>2]=39784;RKa(p);c[p>>2]=39800;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[q+(d<<2)>>2]=0;d=d+1|0}c[r>>2]=0;c[s>>2]=16;n=0;U(59,x|0,F|0)|0;D=n;n=0;if(D&1){q=11;break}if(e|0){n=0;d=U(59,x|0,103672)|0;D=n;n=0;if(D&1){q=11;break}n=0;U(63,d|0,e|0)|0;D=n;n=0;if(D&1){q=11;break}}n=0;da(75,z|0,p|0);D=n;n=0;if(D&1){q=11;break}n=0;da(79,y|0,z|0);D=n;n=0;if(D&1){q=16;break}Chb(z);n=0;ea(101,u|0,((a[t>>0]|0)<0?c[y>>2]|0:y)|0,0);D=n;n=0;if(D&1){q=28;break}C=c[u>>2]|0;c[B>>2]=C;D=C;if(!(kF(E,B)|0)){q=31;break}if(f){q=18;break}Chb(y);v$a(x);e=e+1|0}do if((q|0)==11){K=sa()|0;P()|0;v$a(x);Ea(K|0)}else if((q|0)==16){K=sa()|0;P()|0;Chb(z);v$a(x);Ea(K|0)}else if((q|0)==18){n=0;ba(3);K=n;n=0;if(K&1){A=sa()|0;P()|0;break}n=0;ca(491,53557);K=n;n=0;if(!(K&1)?(n=0,da(73,w|0,y|0),K=n,n=0,!(K&1)):0){n=0;ca(494,w|0);K=n;n=0;if(!(K&1)?(n=0,ba(4),K=n,n=0,!(K&1)):0){Chb(w);iSa()}sa()|0;P()|0;Chb(w);iSa()}sa()|0;P()|0;iSa()}else if((q|0)==28){A=sa()|0;P()|0}else if((q|0)==31){Chb(y);v$a(x);p=LAb(B)|0;o=b+128|0;j=c[o>>2]|0;m=(j|0)==0;a:do if(!m){k=j+-1|0;l=(j&k|0)==0;if(!l)if(p>>>0>>0)e=p;else e=(p>>>0)%(j>>>0)|0;else e=p&k;d=c[(c[E>>2]|0)+(e<<2)>>2]|0;if(!d)q=47;else while(1){d=c[d>>2]|0;if(!d){q=47;break a}f=c[d+4>>2]|0;if((f|0)!=(p|0)){if(!l){if(f>>>0>=j>>>0)f=(f>>>0)%(j>>>0)|0}else f=f&k;if((f|0)!=(e|0)){q=47;break a}}if(rmb(c[d+8>>2]|0,D)|0)break a}}else{e=0;q=47}while(0);if((q|0)==47){Uja(K,E,p,B);k=b+136|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[b+140>>2];if(i*+(j>>>0)>>0>2){e=(j&j+-1|0)!=0&1;q=51}else{e=1;q=51}}else if(m){d=0;e=1;q=51}do if((q|0)==51){B=d|e;A=~~+I(+(h/i))>>>0;n=0;da(80,E|0,(B>>>0>>0?A:B)|0);B=n;n=0;if(B&1){d=sa()|0;P()|0;e=c[K>>2]|0;c[K>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[o>>2]|0;e=d+-1|0;if(!(d&e)){j=d;e=p&e;break}if(p>>>0>>0){j=d;e=p;break}j=d;e=(p>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[E>>2]|0)+(e<<2)>>2]|0;if(!d){b=b+132|0;d=c[K>>2]|0;c[d>>2]=c[b>>2];f=d;c[b>>2]=f;c[(c[E>>2]|0)+(e<<2)>>2]=b;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[E>>2]|0)+(d<<2)>>2]=f}}else{E=c[K>>2]|0;c[E>>2]=c[d>>2];c[d>>2]=E}c[k>>2]=(c[k>>2]|0)+1;c[K>>2]=0}c[G>>2]=F;K=mm(H,G)|0;c[K>>2]=C;K=D;yb=J;return K|0}while(0);Chb(y);K=A;v$a(x);Ea(K|0);return 0}function Wf(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,o=0;o=yb;yb=yb+16|0;m=o;if(b){b=Thb(e,151572)|0;if(d){Sb[c[(c[b>>2]|0)+44>>2]&8191](m,b);e=c[m>>2]|0;a[f>>0]=e;a[f+1>>0]=e>>8;a[f+2>>0]=e>>16;a[f+3>>0]=e>>24;Sb[c[(c[b>>2]|0)+32>>2]&8191](m,b);e=k+8+3|0;if((a[e>>0]|0)<0){Ftb(c[k>>2]|0,0);c[k+4>>2]=0}else{Ftb(k,0);a[e>>0]=0}n=0;ca(577,k|0);f=n;n=0;if(f&1){f=ta(0)|0;P()|0;yub(f)}c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];e=0;while(1){if((e|0)==3)break;c[m+(e<<2)>>2]=0;e=e+1|0}bhb(m)}else{Sb[c[(c[b>>2]|0)+40>>2]&8191](m,b);e=c[m>>2]|0;a[f>>0]=e;a[f+1>>0]=e>>8;a[f+2>>0]=e>>16;a[f+3>>0]=e>>24;Sb[c[(c[b>>2]|0)+28>>2]&8191](m,b);e=k+8+3|0;if((a[e>>0]|0)<0){Ftb(c[k>>2]|0,0);c[k+4>>2]=0}else{Ftb(k,0);a[e>>0]=0}n=0;ca(577,k|0);f=n;n=0;if(f&1){f=ta(0)|0;P()|0;yub(f)}c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];e=0;while(1){if((e|0)==3)break;c[m+(e<<2)>>2]=0;e=e+1|0}bhb(m)}e=Eb[c[(c[b>>2]|0)+12>>2]&511](b)|0;c[g>>2]=e;e=Eb[c[(c[b>>2]|0)+16>>2]&511](b)|0;c[h>>2]=e;Sb[c[(c[b>>2]|0)+20>>2]&8191](m,b);e=i+11|0;if((a[e>>0]|0)<0){Fsb(c[i>>2]|0,0);c[i+4>>2]=0}else{Fsb(i,0);a[e>>0]=0}n=0;ca(510,i|0);h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];e=0;while(1){if((e|0)==3)break;c[m+(e<<2)>>2]=0;e=e+1|0}Chb(m);Sb[c[(c[b>>2]|0)+24>>2]&8191](m,b);e=j+8+3|0;if((a[e>>0]|0)<0){Ftb(c[j>>2]|0,0);c[j+4>>2]=0}else{Ftb(j,0);a[e>>0]=0}n=0;ca(577,j|0);i=n;n=0;if(i&1){i=ta(0)|0;P()|0;yub(i)}c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];e=0;while(1){if((e|0)==3)break;c[m+(e<<2)>>2]=0;e=e+1|0}bhb(m);e=Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0}else{b=Thb(e,151564)|0;if(d){Sb[c[(c[b>>2]|0)+44>>2]&8191](m,b);e=c[m>>2]|0;a[f>>0]=e;a[f+1>>0]=e>>8;a[f+2>>0]=e>>16;a[f+3>>0]=e>>24;Sb[c[(c[b>>2]|0)+32>>2]&8191](m,b);e=k+8+3|0;if((a[e>>0]|0)<0){Ftb(c[k>>2]|0,0);c[k+4>>2]=0}else{Ftb(k,0);a[e>>0]=0}n=0;ca(577,k|0);f=n;n=0;if(f&1){f=ta(0)|0;P()|0;yub(f)}c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];e=0;while(1){if((e|0)==3)break;c[m+(e<<2)>>2]=0;e=e+1|0}bhb(m)}else{Sb[c[(c[b>>2]|0)+40>>2]&8191](m,b);e=c[m>>2]|0;a[f>>0]=e;a[f+1>>0]=e>>8;a[f+2>>0]=e>>16;a[f+3>>0]=e>>24;Sb[c[(c[b>>2]|0)+28>>2]&8191](m,b);e=k+8+3|0;if((a[e>>0]|0)<0){Ftb(c[k>>2]|0,0);c[k+4>>2]=0}else{Ftb(k,0);a[e>>0]=0}n=0;ca(577,k|0);f=n;n=0;if(f&1){f=ta(0)|0;P()|0;yub(f)}c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];e=0;while(1){if((e|0)==3)break;c[m+(e<<2)>>2]=0;e=e+1|0}bhb(m)}e=Eb[c[(c[b>>2]|0)+12>>2]&511](b)|0;c[g>>2]=e;e=Eb[c[(c[b>>2]|0)+16>>2]&511](b)|0;c[h>>2]=e;Sb[c[(c[b>>2]|0)+20>>2]&8191](m,b);e=i+11|0;if((a[e>>0]|0)<0){Fsb(c[i>>2]|0,0);c[i+4>>2]=0}else{Fsb(i,0);a[e>>0]=0}n=0;ca(510,i|0);h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];e=0;while(1){if((e|0)==3)break;c[m+(e<<2)>>2]=0;e=e+1|0}Chb(m);Sb[c[(c[b>>2]|0)+24>>2]&8191](m,b);e=j+8+3|0;if((a[e>>0]|0)<0){Ftb(c[j>>2]|0,0);c[j+4>>2]=0}else{Ftb(j,0);a[e>>0]=0}n=0;ca(577,j|0);i=n;n=0;if(i&1){i=ta(0)|0;P()|0;yub(i)}c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];e=0;while(1){if((e|0)==3)break;c[m+(e<<2)>>2]=0;e=e+1|0}bhb(m);e=Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0}c[l>>2]=e;yb=o;return}function Xf(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=yb;yb=yb+112|0;e=v+96|0;w=v+84|0;g=v+80|0;i=v+76|0;j=v+72|0;k=v+68|0;r=v+64|0;u=v+8|0;s=v+4|0;t=v;c[w>>2]=0;p=w+4|0;c[p>>2]=0;q=w+8|0;c[q>>2]=0;f=c[d+124>>2]|0;do if(eCb(f)|0){h=d+124|0;c[g>>2]=f;n=0;c[e>>2]=c[g>>2];e=U(64,d|0,e|0)|0;o=n;n=0;if(!(o&1)){if(Gzb(c[c[e+44>>2]>>2]|0)|0){hCb(d+124|0);m=12;break}c[i>>2]=0;e=c[p>>2]|0;if(e>>>0>=(c[q>>2]|0)>>>0){n=0;ea(166,w|0,i|0,h|0);o=n;n=0;if(o&1){m=7;break}else{m=12;break}}else{c[e>>2]=0;c[e+4>>2]=c[h>>2];c[p>>2]=(c[p>>2]|0)+8;m=12;break}}else m=7}else m=12;while(0);do if((m|0)==12){if(a[b+16>>0]&1?(n=0,da(2798,d|0,w|0),o=n,n=0,o&1):0){m=7;break}i=c[d+16>>2]|0;o=0;f=0;h=c[d+12>>2]|0;a:while(1){if((h|0)==(i|0))break;b:do switch(c[(c[h>>2]|0)+8>>2]|0){case 0:{c[j>>2]=0;e=(c[h>>2]|0)+4|0;g=c[p>>2]|0;if(g>>>0>=(c[q>>2]|0)>>>0){n=0;ea(166,w|0,j|0,e|0);l=n;n=0;if(l&1){m=6;break a}else{e=o;break b}}else{c[g>>2]=0;c[g+4>>2]=c[e>>2];c[p>>2]=(c[p>>2]|0)+8;e=o;break b}}case 3:{c[k>>2]=1;e=(c[h>>2]|0)+4|0;g=c[p>>2]|0;if(g>>>0>=(c[q>>2]|0)>>>0){n=0;ea(166,w|0,k|0,e|0);l=n;n=0;if(l&1){m=6;break a}else{e=o;break b}}else{c[g>>2]=1;c[g+4>>2]=c[e>>2];c[p>>2]=(c[p>>2]|0)+8;e=o;break b}}case 2:{f=1;e=o;break}case 1:{e=1;break}default:e=o}while(0);o=e;h=h+4|0}if((m|0)==6){e=sa()|0;P()|0;break}h=Yrb(d+84|0)|0;k=Yrb(d+48|0)|0;l=d+76|0;i=c[l>>2]|0;g=c[d+72>>2]|0;c:while(1){if((g|0)==(i|0))break;b=c[g+8>>2]|0;e=c[g+4>>2]|0;while(1){if((e|0)==(b|0))break;c[r>>2]=0;j=c[p>>2]|0;if(j>>>0>=(c[q>>2]|0)>>>0){n=0;ea(166,w|0,r|0,e|0);j=n;n=0;if(j&1){m=5;break c}}else{c[j>>2]=0;c[j+4>>2]=c[e>>2];c[p>>2]=(c[p>>2]|0)+8}e=e+4|0}g=g+16|0}if((m|0)==5){e=sa()|0;P()|0;break}n=0;ea(167,u|0,d|0,w|0);r=n;n=0;if(r&1)m=7;else{q=d+24|0;p=d+28|0;r=EH(c[q>>2]|0,c[p>>2]|0,u)|0;tS(q,r,c[p>>2]|0)|0;p=d+36|0;r=d+40|0;q=yI(c[p>>2]|0,c[r>>2]|0,u)|0;fW(p,q,c[r>>2]|0)|0;n=0;ca(520,d|0);r=n;n=0;do if(!(r&1)){if(!f?(a[u+52>>0]&1)==0:0){if(h){f=d+108|0;e=c[d+112>>2]|0}else{f=d+108|0;e=c[f>>2]|0;h=d+112|0;g=c[h>>2]|0;while(1){if((g|0)==(e|0))break;r=g+-16|0;Nrb(r);g=r}c[h>>2]=e}if((c[f>>2]|0)==(e|0)){a[d+92>>0]=0;Cub(s);s=c[s>>2]|0;c[d+88>>2]=s;c[d+84>>2]=s;n=0;V(52,d+100|0,0,0)|0;s=n;n=0;if(s&1)break;n=0;V(52,d+104|0,0,0)|0;s=n;n=0;if(s&1)break}}if(o){DQa(u);Vob(w);yb=v;return}if(a[u+53>>0]&1){DQa(u);Vob(w);yb=v;return}if(k){f=d+72|0;e=c[l>>2]|0}else{g=d+72|0;e=c[g>>2]|0;f=c[l>>2]|0;while(1){if((f|0)==(e|0))break;s=f+-16|0;Nrb(s);f=s}c[l>>2]=e;f=g}if((c[f>>2]|0)!=(e|0)){DQa(u);Vob(w);yb=v;return}a[d+56>>0]=0;Cub(t);t=c[t>>2]|0;c[d+52>>2]=t;c[d+48>>2]=t;n=0;V(52,d+64|0,0,0)|0;t=n;n=0;if(!(t&1)?(n=0,V(52,d+68|0,0,0)|0,t=n,n=0,!(t&1)):0){DQa(u);Vob(w);yb=v;return}}while(0);v=sa()|0;P()|0;DQa(u);Vob(w);Ea(v|0)}}while(0);if((m|0)==7){e=sa()|0;P()|0}v=e;Vob(w);Ea(v|0)}function Yf(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;a:do if(e>>>0>36){c[37419]=22;h=0;g=0}else{s=b+4|0;r=b+100|0;do{i=c[s>>2]|0;if(i>>>0<(c[r>>2]|0)>>>0){c[s>>2]=i+1;i=d[i>>0]|0}else i=nI(b)|0}while((Cxb(i)|0)!=0);b:do switch(i|0){case 43:case 45:{i=((i|0)==45)<<31>>31;j=c[s>>2]|0;if(j>>>0<(c[r>>2]|0)>>>0){c[s>>2]=j+1;q=i;i=d[j>>0]|0;break b}else{q=i;i=nI(b)|0;break b}}default:q=0}while(0);j=(e|0)==0;do if((e|16|0)==16&(i|0)==48){i=c[s>>2]|0;if(i>>>0<(c[r>>2]|0)>>>0){c[s>>2]=i+1;i=d[i>>0]|0}else i=nI(b)|0;if((i|32|0)!=120)if(j){p=8;o=47;break}else{o=32;break}i=c[s>>2]|0;if(i>>>0<(c[r>>2]|0)>>>0){c[s>>2]=i+1;i=d[i>>0]|0}else i=nI(b)|0;if((d[26561+i>>0]|0)>15){g=(c[r>>2]|0)==0;if(!g)c[s>>2]=(c[s>>2]|0)+-1;if(!f){HFa(b,0);h=0;g=0;break a}if(g){h=0;g=0;break a}c[s>>2]=(c[s>>2]|0)+-1;h=0;g=0;break a}else{p=16;o=47}}else{e=j?10:e;if(e>>>0>(d[26561+i>>0]|0)>>>0)o=32;else{if(c[r>>2]|0)c[s>>2]=(c[s>>2]|0)+-1;HFa(b,0);c[37419]=22;h=0;g=0;break a}}while(0);c:do if((o|0)==32)if((e|0)==10){e=i+-48|0;if(e>>>0<10){i=0;do{i=(i*10|0)+e|0;e=c[s>>2]|0;if(e>>>0<(c[r>>2]|0)>>>0){c[s>>2]=e+1;j=d[e>>0]|0}else j=nI(b)|0;e=j+-48|0;f=e>>>0<10}while(f&i>>>0<429496729);if(f){m=0;do{f=BSa(i|0,m|0,10,0)|0;k=P()|0;l=((e|0)<0)<<31>>31;p=~l;if(k>>>0>p>>>0|(k|0)==(p|0)&f>>>0>~e>>>0){n=10;e=j;j=m;o=76;break c}i=Yeb(f|0,k|0,e|0,l|0)|0;m=P()|0;e=c[s>>2]|0;if(e>>>0<(c[r>>2]|0)>>>0){c[s>>2]=e+1;j=d[e>>0]|0}else j=nI(b)|0;e=j+-48|0}while(e>>>0<10&(m>>>0<429496729|(m|0)==429496729&i>>>0<2576980378));if(e>>>0>9){f=q;e=m}else{n=10;e=j;j=m;o=76}}else{f=q;e=0}}else{f=q;e=0;i=0}}else{p=e;o=47}while(0);d:do if((o|0)==47){if(!(p+-1&p)){n=a[135421+((p*23|0)>>>5&7)>>0]|0;f=a[26561+i>>0]|0;j=f&255;if(p>>>0>j>>>0){i=0;do{i=j|i<>2]|0;if(e>>>0<(c[r>>2]|0)>>>0){c[s>>2]=e+1;e=d[e>>0]|0}else e=nI(b)|0;f=a[26561+e>>0]|0;j=f&255}while(i>>>0<134217728&p>>>0>j>>>0);k=j;j=0}else{e=i;k=j;j=0;i=0}l=U4a(-1,-1,n|0)|0;m=P()|0;if(p>>>0<=k>>>0|(m>>>0>>0|(m|0)==(j|0)&l>>>0>>0)){n=p;o=76;break}while(1){i=X2a(i|0,j|0,n|0)|0;j=P()|0;i=i|f&255;e=c[s>>2]|0;if(e>>>0<(c[r>>2]|0)>>>0){c[s>>2]=e+1;e=d[e>>0]|0}else e=nI(b)|0;f=a[26561+e>>0]|0;if(p>>>0<=(f&255)>>>0|(j>>>0>m>>>0|(j|0)==(m|0)&i>>>0>l>>>0)){n=p;o=76;break d}}}j=a[26561+i>>0]|0;f=j&255;if(p>>>0>f>>>0){i=0;do{i=f+(J(i,p)|0)|0;e=c[s>>2]|0;if(e>>>0<(c[r>>2]|0)>>>0){c[s>>2]=e+1;e=d[e>>0]|0}else e=nI(b)|0;j=a[26561+e>>0]|0;f=j&255}while(i>>>0<119304647&p>>>0>f>>>0);k=0}else{e=i;i=0;k=0}if(p>>>0>f>>>0){m=znb(-1,-1,p|0,0)|0;n=P()|0;l=k;while(1){if(l>>>0>n>>>0|(l|0)==(n|0)&i>>>0>m>>>0){n=p;j=l;o=76;break d}f=BSa(i|0,l|0,p|0,0)|0;k=P()|0;j=j&255;if(k>>>0>4294967295|(k|0)==-1&f>>>0>~j>>>0){n=p;j=l;o=76;break d}i=Yeb(f|0,k|0,j|0,0)|0;f=P()|0;e=c[s>>2]|0;if(e>>>0<(c[r>>2]|0)>>>0){c[s>>2]=e+1;e=d[e>>0]|0}else e=nI(b)|0;j=a[26561+e>>0]|0;if(p>>>0<=(j&255)>>>0){n=p;j=f;o=76;break}else l=f}}else{n=p;j=k;o=76}}while(0);if((o|0)==76)if(n>>>0>(d[26561+e>>0]|0)>>>0){do{i=c[s>>2]|0;if(i>>>0<(c[r>>2]|0)>>>0){c[s>>2]=i+1;i=d[i>>0]|0}else i=nI(b)|0}while(n>>>0>(d[26561+i>>0]|0)>>>0);c[37419]=34;f=(g&1|0)==0&0==0?q:0;e=h;i=g}else{f=q;e=j}if(c[r>>2]|0)c[s>>2]=(c[s>>2]|0)+-1;if(!(e>>>0>>0|(e|0)==(h|0)&i>>>0>>0)){if(!((g&1|0)!=0|0!=0|(f|0)!=0)){c[37419]=34;g=Yeb(g|0,h|0,-1,-1)|0;h=P()|0;break}if(e>>>0>h>>>0|(e|0)==(h|0)&i>>>0>g>>>0){c[37419]=34;break}}g=((f|0)<0)<<31>>31;g=Ndb(i^f|0,e^g|0,f|0,g|0)|0;h=P()|0}while(0);O(h|0);return g|0}function Zf(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,o=0,p=0,q=0,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=yb;yb=yb+176|0;x=M+168|0;L=M+152|0;B=M+140|0;d=M+136|0;K=M+120|0;C=M+108|0;v=M+104|0;G=M+88|0;I=M+76|0;y=M+72|0;z=M;w=M+56|0;u=M+40|0;t=M+24|0;r=c[a>>2]|0;if(HYa(r,b)|0){h=b+8|0;e=a+8|0;DW(L,c[(c[h>>2]|0)+4>>2]|0,r,c[e>>2]|0,c[37043]|0);Mob(B);w=c[e>>2]|0;g=c[L+8>>2]|0;Ftb(d,WCb(g)|0);n=0;c[x>>2]=c[d>>2];d=U(71,w|0,x|0)|0;w=n;n=0;if(!(w&1)?(c[B+8>>2]=d,A=b+12|0,n=0,ga(4,K|0,c[(c[A>>2]|0)+4>>2]|0,c[a>>2]|0,c[e>>2]|0,c[37043]|0),w=n,n=0,!(w&1)):0){Mob(C);d=c[e>>2]|0;f=c[K+8>>2]|0;Ftb(v,WCb(f)|0);n=0;c[x>>2]=c[v>>2];d=U(71,d|0,x|0)|0;w=n;n=0;if(!(w&1)?(c[C+8>>2]=d,n=0,ga(4,G|0,1,c[a>>2]|0,c[e>>2]|0,c[37043]|0),w=n,n=0,!(w&1)):0){Mob(I);d=c[e>>2]|0;e=c[G+8>>2]|0;Ftb(y,WCb(e)|0);n=0;c[x>>2]=c[y>>2];d=U(71,d|0,x|0)|0;y=n;n=0;if((((((((!(y&1)?(c[I+8>>2]=d,x=b,y=c[x+4>>2]|0,D=z,c[D>>2]=c[x>>2],c[D+4>>2]=y,c[z+8>>2]=B,c[z+12>>2]=C,c[z+16>>2]=I,n=0,D=V(46,a|0,c[h>>2]|0,g|0)|0,I=n,n=0,!(I&1)):0)?(n=0,E=S(225,D|0)|0,I=n,n=0,!(I&1)):0)?(n=0,F=V(46,a|0,c[A>>2]|0,f|0)|0,I=n,n=0,!(I&1)):0)?(n=0,da(76,E|0,F|0),I=n,n=0,!(I&1)):0)?(n=0,H=V(46,a|0,c[b+16>>2]|0,e|0)|0,b=n,n=0,!(b&1)):0)?(n=0,da(76,E|0,H|0),b=n,n=0,!(b&1)):0)?(n=0,J=V(47,a|0,z|0,c[a+4>>2]|0)|0,b=n,n=0,!(b&1)):0)?(n=0,da(76,E|0,J|0),b=n,n=0,!(b&1)):0){dha(G);dha(K);dha(L);L=E;yb=M;return L|0}d=sa()|0;P()|0;dha(G)}else{d=sa()|0;P()|0}dha(K)}else{d=sa()|0;P()|0}dha(L);M=d;Ea(M|0)}L=b+4|0;d=a+8|0;DW(w,c[L>>2]|0,r,c[d>>2]|0,c[37043]|0);n=0;ga(4,u|0,c[L>>2]|0,c[a>>2]|0,c[d>>2]|0,c[37043]|0);L=n;n=0;if(L&1){d=sa()|0;P()|0}else{n=0;ga(4,t|0,1,c[a>>2]|0,c[d>>2]|0,c[37043]|0);L=n;n=0;if(L&1){d=sa()|0;P()|0}else{n=0;d=V(44,a|0,c[b+8>>2]|0,c[37044]|0)|0;L=n;n=0;do if(((((((((((((!(L&1)?(n=0,e=V(44,a|0,c[b+12>>2]|0,c[37044]|0)|0,L=n,n=0,!(L&1)):0)?(n=0,f=V(44,a|0,c[b+16>>2]|0,c[37044]|0)|0,L=n,n=0,!(L&1)):0)?(n=0,g=S(224,w|0)|0,L=n,n=0,!(L&1)):0)?(n=0,s=V(48,g|0,c[37277]|0,d|0)|0,L=n,n=0,!(L&1)):0)?(n=0,h=S(224,u|0)|0,L=n,n=0,!(L&1)):0)?(n=0,i=V(48,h|0,c[37277]|0,e|0)|0,L=n,n=0,!(L&1)):0)?(n=0,j=S(224,t|0)|0,L=n,n=0,!(L&1)):0)?(n=0,k=V(48,j|0,c[37277]|0,f|0)|0,L=n,n=0,!(L&1)):0)?(n=0,l=S(224,t|0)|0,L=n,n=0,!(L&1)):0)?(n=0,m=S(224,w|0)|0,L=n,n=0,!(L&1)):0)?(n=0,o=S(224,u|0)|0,L=n,n=0,!(L&1)):0)?(n=0,p=V(49,l|0,m|0,o|0)|0,L=n,n=0,!(L&1)):0)?(n=0,q=U(73,k|0,p|0)|0,L=n,n=0,!(L&1)):0){n=0;d=U(73,i|0,q|0)|0;L=n;n=0;if(L&1)break;n=0;d=U(73,s|0,d|0)|0;L=n;n=0;if(L&1)break;dha(t);dha(u);dha(w);L=d;yb=M;return L|0}while(0);d=sa()|0;P()|0;dha(t)}dha(u)}dha(w);M=d;Ea(M|0);return 0}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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=yb;yb=yb+64|0;d=N+44|0;K=N+32|0;H=N+28|0;I=N+24|0;L=N+12|0;M=N;J=b+12|0;if(a[J>>0]&1)BM(IWa(150620,117463)|0);F=IF(b)|0;G=b+68|0;do if((F|0)!=((c[b+72>>2]|0)-(c[G>>2]|0)>>2|0)){c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;D8(d,117480,Zzb(117480)|0);n=0;da(4022,b|0,d|0);E=n;n=0;if(!(E&1)){Chb(d);break}N=sa()|0;P()|0;Chb(d);Ea(N|0)}while(0);q=b+36|0;r=b+124|0;s=b+120|0;t=b+44|0;u=b+80|0;v=b+197|0;w=b+176|0;x=b+152|0;y=b+156|0;z=b+184|0;A=b+188|0;B=b+248|0;C=b+88|0;D=b+92|0;E=b+84|0;p=0;while(1){e=(a[J>>0]&1)==0;if(p>>>0>=F>>>0){d=60;break}if(!e){o=IWa(150620,117528)|0;BM(Ym(o,c[q>>2]|0)|0)}d=IF(b)|0;if(!d){c[K>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;D8(K,117541,Zzb(117541)|0);n=0;da(4022,b|0,K|0);o=n;n=0;if(o&1){d=14;break}Chb(K)}c[r>>2]=(c[q>>2]|0)+d;l=mla(120)|0;mT(l);c[H>>2]=l;d=w$(p)|0;c[l+8>>2]=d;c[s>>2]=l;kn(b);d=c[(c[G>>2]|0)+(p<<2)>>2]|0;o=l;if(a[J>>0]&1){Ym(IWa(150620,117561)|0,p)|0;BM(150620)}c[l+40>>2]=c[d>>2];m=l+12|0;c[m>>2]=c[d+4>>2];k=d+12|0;g=d+8|0;h=l+20|0;i=l+24|0;j=l+16|0;f=0;while(1){d=c[g>>2]|0;if(f>>>0>=(c[k>>2]|0)-d>>2>>>0)break;d=d+(f<<2)|0;e=c[h>>2]|0;if(e>>>0<(c[i>>2]|0)>>>0){c[e>>2]=c[d>>2];c[h>>2]=(c[h>>2]|0)+4}else _M(j,d);f=f+1|0}f=IF(b)|0;g=l+32|0;h=l+36|0;i=l+28|0;e=0;while(1){if((e|0)==(f|0))break;d=IF(b)|0;j=oH(b)|0;c[I>>2]=j;while(1){if(!d)break;k=c[g>>2]|0;if((k|0)==(c[h>>2]|0))_M(i,I);else{c[k>>2]=j;c[g>>2]=(c[g>>2]|0)+4}d=d+-1|0}e=e+1|0}cZ(l+96|0,t);if(a[J>>0]&1){Ym(IWa(150620,117570)|0,p)|0;BM(150620)}c[u>>2]=0;cAa(t);a[v>>0]=0;if(c[w>>2]|0){d=35;break}if((c[x>>2]|0)!=(c[y>>2]|0)){d=37;break}if((c[z>>2]|0)!=(c[A>>2]|0)){d=39;break}if(c[B>>2]|0){d=41;break}m=Lp(b,c[m>>2]|0)|0;c[l+44>>2]=m;if(c[B>>2]|0){d=43;break}if((c[y>>2]|0)!=(c[x>>2]|0)){d=45;break}if(c[w>>2]|0){d=47;break}if((c[z>>2]|0)!=(c[A>>2]|0)){c[L>>2]=0;c[L+4>>2]=0;c[L+8>>2]=0;D8(L,117701,Zzb(117701)|0);n=0;da(4022,b|0,L|0);m=n;n=0;if(m&1){d=51;break}Chb(L)}if((c[q>>2]|0)!=(c[r>>2]|0)){c[M>>2]=0;c[M+4>>2]=0;c[M+8>>2]=0;D8(M,117734,Zzb(117734)|0);n=0;da(4022,b|0,M|0);m=n;n=0;if(m&1){d=55;break}Chb(M)}cZ(l+108|0,t);c[s>>2]=0;cAa(t);d=c[C>>2]|0;if((d|0)==(c[D>>2]|0))_M(E,H);else{c[d>>2]=o;c[C>>2]=(c[C>>2]|0)+4}p=p+1|0}switch(d|0){case 14:{N=sa()|0;P()|0;Chb(K);Ea(N|0)}case 35:{ma(117592,112368,1125,117621);break}case 37:{ma(117635,112368,1126,117621);break}case 39:{ma(117654,112368,1127,117621);break}case 41:{ma(115151,112368,1128,117621);break}case 43:{ma(115151,112368,1130,117621);break}case 45:{ma(117678,112368,1131,117621);break}case 47:{ma(117592,112368,1132,117621);break}case 51:{N=sa()|0;P()|0;Chb(L);Ea(N|0)}case 55:{N=sa()|0;P()|0;Chb(M);Ea(N|0)}case 60:{if(e){yb=N;return}BM(IWa(150620,117790)|0);yb=N;return}}}function $f(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,o=0,p=0,q=0,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=yb;yb=yb+64|0;z=B+32|0;C=B+16|0;x=B+12|0;A=B;a:do if((d-b|0)>1?(a[b>>0]|0)==73:0){w=e+61|0;v=e+36|0;if(a[w>>0]|0){h=c[v>>2]|0;g=c[h+-16>>2]|0;h=h+-12|0;f=c[h>>2]|0;while(1){if((f|0)==(g|0))break;y=f+-16|0;V5(y);f=y}c[h>>2]=g}c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;T3(C,139963,Zzb(139963)|0);y=e+4|0;o=e+12|0;p=e+40|0;q=e+32|0;t=C+11|0;u=C+4|0;r=z+11|0;s=z+4|0;i=b+1|0;b:while(1){if((a[i>>0]|0)==69){g=55;break}if(a[w>>0]|0){c[x>>2]=c[o>>2];f=c[v>>2]|0;if(f>>>0>=(c[p>>2]|0)>>>0){n=0;da(4201,q|0,x|0);m=n;n=0;if(m&1){g=16;break}}else{Krb(z,x);c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=c[z>>2];c[v>>2]=(c[v>>2]|0)+16}}l=((c[y>>2]|0)-(c[e>>2]|0)|0)/24|0;n=0;m=V(131,i|0,d|0,e|0)|0;k=n;n=0;if(k&1){g=23;break}g=((c[y>>2]|0)-(c[e>>2]|0)|0)/24|0;if(a[w>>0]|0){h=c[v>>2]|0;f=0;while(1){if((f|0)==-1)break;k=f+-1|0;F$(h+(k<<4)|0);f=k}c[v>>2]=h+-16}if((m|0)==(i|0)|(m|0)==(d|0)){g=66;break}c:do if(a[w>>0]|0){h=c[v>>2]|0;f=c[o>>2]|0;c[z>>2]=f;i=h+-12|0;j=c[i>>2]|0;if(j>>>0>=(c[h+-8>>2]|0)>>>0){n=0;da(4202,h+-16|0,z|0);k=n;n=0;if(k&1){g=32;break b}}else{c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=f;c[i>>2]=(c[i>>2]|0)+16}f=l;while(1){if(f>>>0>=g>>>0)break c;h=c[(c[v>>2]|0)+-12>>2]|0;i=(c[e>>2]|0)+(f*24|0)|0;j=h+-12|0;k=c[j>>2]|0;if((k|0)==(c[h+-8>>2]|0)){n=0;da(4203,h+-16|0,i|0);k=n;n=0;if(k&1){g=38;break b}}else{n=0;da(4200,k|0,i|0);k=n;n=0;if(k&1){g=38;break b}c[j>>2]=(c[j>>2]|0)+24}f=f+1|0}}while(0);f=l;while(1){if(f>>>0>=g>>>0)break;k=a[t>>0]|0;if((k<<24>>24<0?c[u>>2]|0:k&255)>>>0>1?(n=0,U(216,C|0,140151)|0,k=n,n=0,k&1):0){g=43;break b}n=0;da(4196,z|0,(c[e>>2]|0)+(f*24|0)|0);k=n;n=0;if(k&1){g=47;break b}k=a[r>>0]|0;j=k<<24>>24<0;n=0;V(124,C|0,(j?c[z>>2]|0:z)|0,(j?c[s>>2]|0:k&255)|0)|0;k=n;n=0;if(k&1){g=48;break b}Chb(z);f=f+1|0}while(1){if((g|0)==(l|0))break;h=c[y>>2]|0;f=0;while(1){if((f|0)==-1)break;k=f+-1|0;J2a(h+(k*24|0)|0);f=k}c[y>>2]=h+-24;g=g+-1|0}i=m}do if((g|0)==16){b=sa()|0;P()|0}else if((g|0)==23){b=sa()|0;P()|0}else if((g|0)==32){b=sa()|0;P()|0}else if((g|0)==38){b=sa()|0;P()|0}else if((g|0)==43){b=sa()|0;P()|0}else if((g|0)==47){b=sa()|0;P()|0;g=49}else if((g|0)==48){b=sa()|0;P()|0;Chb(z);g=49}else if((g|0)==55){b=i+1|0;x=a[t>>0]|0;w=x<<24>>24<0;if((a[(w?c[C>>2]|0:C)+(w?c[u>>2]|0:x&255)+-1>>0]|0)==62){n=0;U(216,C|0,141342)|0;x=n;n=0;if(x&1)g=57}else{n=0;U(216,C|0,139965)|0;x=n;n=0;if(x&1)g=57}if((g|0)==57){b=sa()|0;P()|0;break}c[A>>2]=c[C>>2];c[A+4>>2]=c[C+4>>2];c[A+8>>2]=c[C+8>>2];f=0;while(1){if((f|0)==3)break;c[C+(f<<2)>>2]=0;f=f+1|0}X6(z,A);f=c[y>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,z|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(z);Chb(A);break}}else{I6(f,z);c[y>>2]=(c[y>>2]|0)+24}J2a(z);Chb(A);Chb(C);break a}else if((g|0)==66){Chb(C);break a}while(0);Chb(C);Ea(b|0)}while(0);yb=B;return b|0}function ag(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=yb;yb=yb+32|0;s=w+20|0;x=w+8|0;v=w+4|0;q=w;c[v>>2]=d;r=e+1|0;e=oC(b+68|0,v)|0;if(e|0){x=c[e+12>>2]|0;yb=w;return x|0}u=b+36|0;if(oC(u,v)|0){x=d;yb=w;return x|0}a:do switch(c[d>>2]|0){case 4:case 0:break;case 1:{e=c[c[d+4>>2]>>2]|0;if(_xb(e)|0){x=d;yb=w;return x|0}do if(r>>>0<(c[b+12>>2]|0)>>>0?(c[b+28>>2]|0)-(c[b+24>>2]|0)>>2>>>0<(c[b+16>>2]|0)>>>0:0){if((c[b+4>>2]|0)!=(d|0)?oC(c[b+8>>2]|0,v)|0:0)break;if(Axb(e)|0)ma(107529,106895,249,125111);f=0;e=d;while(1){if(f>>>0>=(c[e+16>>2]|0)-(c[e+12>>2]|0)>>2>>>0)break a;ag(b,Jcb(e,f)|0,r)|0;f=f+1|0;e=c[v>>2]|0}}while(0);e=F5(d)|0;if(!(vub(e)|0))ma(107508,106895,242,125111);d=Reb(e)|0;n=0;e=U(181,b+68|0,v|0)|0;r=n;n=0;if(!(r&1)){f=c[e>>2]|0;c[e>>2]=d;if(f|0){Brb(f);RCb(f)}c[v>>2]=d;break a}e=sa()|0;P()|0;if(!d)Ea(e|0);Brb(d);RCb(d);Ea(e|0)}case 2:{d=ag(b,Jcb(d,0)|0,r)|0;if(!d)ma(134186,106895,257,125111);h=(c[d+16>>2]|0)-(c[d+12>>2]|0)>>2;k=b+120|0;l=b+112|0;m=b+116|0;o=b+108|0;f=0;while(1){if((f|0)==(h|0))break;e=Jcb(d,f)|0;c[q>>2]=e;p=e;do if(!(PBb(c[e>>2]|0)|0)){if(a[k>>0]&1){ag(b,e,r)|0;break}e=c[l>>2]|0;if((e|0)==(c[m>>2]|0)){_M(o,q);break}else{c[e>>2]=p;c[l>>2]=(c[l>>2]|0)+4;break}}while(0);f=f+1|0}f=h+1|0;e=1;while(1){if(e>>>0>=f>>>0)break a;ag(b,Jcb(c[v>>2]|0,e)|0,r)|0;e=e+1|0}}case 3:{ag(b,Jcb(d,0)|0,r)|0;ag(b,Jcb(c[v>>2]|0,1)|0,r)|0;break}case 5:{ag(b,Jcb(d,0)|0,r)|0;break}case 6:{a[b+20>>0]=1;x=0;yb=w;return x|0}default:ma(141129,106895,295,125111)}while(0);if(oC(u,v)|0)ma(107557,106895,298,125111);e=b+28|0;f=c[e>>2]|0;if((f|0)==(c[b+32>>2]|0)){_M(b+24|0,v);e=v}else{c[f>>2]=c[v>>2];c[e>>2]=(c[e>>2]|0)+4;e=v}e=c[e>>2]|0;c[s>>2]=e;q=pH(s,4)|0;p=b+40|0;o=c[p>>2]|0;m=(o|0)==0;b:do if(!m){k=o+-1|0;l=(o&k|0)==0;if(!l)if(q>>>0>>0)f=q;else f=(q>>>0)%(o>>>0)|0;else f=q&k;d=c[(c[u>>2]|0)+(f<<2)>>2]|0;if(d){do{d=c[d>>2]|0;if(!d)break b;h=c[d+4>>2]|0;if((h|0)!=(q|0)){if(!l){if(h>>>0>=o>>>0)h=(h>>>0)%(o>>>0)|0}else h=h&k;if((h|0)!=(f|0))break b}}while((c[d+8>>2]|0)!=(e|0));yb=w;return e|0}}else f=0;while(0);Uja(x,u,q,v);k=b+48|0;i=+(((c[k>>2]|0)+1|0)>>>0);j=+g[b+52>>2];if(j*+(o>>>0)>>0>2){f=(o&o+-1|0)!=0&1;t=66}else{f=1;t=66}}else if(m){e=0;f=1;t=66}else h=o;do if((t|0)==66){t=e|f;s=~~+I(+(i/j))>>>0;n=0;da(994,u|0,(t>>>0>>0?s:t)|0);t=n;n=0;if(t&1){e=sa()|0;P()|0;f=c[x>>2]|0;c[x>>2]=0;if(!f)Ea(e|0);RCb(f);Ea(e|0)}else{e=c[p>>2]|0;f=e+-1|0;if(!(e&f)){h=e;f=q&f;break}if(q>>>0>>0){h=e;f=q;break}h=e;f=(q>>>0)%(e>>>0)|0;break}}while(0);e=c[(c[u>>2]|0)+(f<<2)>>2]|0;if(!e){b=b+44|0;e=c[x>>2]|0;c[e>>2]=c[b>>2];d=e;c[b>>2]=d;c[(c[u>>2]|0)+(f<<2)>>2]=b;if(c[e>>2]|0){e=c[(c[e>>2]|0)+4>>2]|0;f=h+-1|0;if(h&f){if(e>>>0>=h>>>0)e=(e>>>0)%(h>>>0)|0}else e=e&f;c[(c[u>>2]|0)+(e<<2)>>2]=d}}else{u=c[x>>2]|0;c[u>>2]=c[e>>2];c[e>>2]=u}c[k>>2]=(c[k>>2]|0)+1;c[x>>2]=0;x=c[v>>2]|0;yb=w;return x|0}function bg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;r=yb;yb=yb+128|0;j=r+96|0;m=r;u=r+48|0;q=r+36|0;s=r+24|0;o=c[b+60>>2]|0;p=b+136|0;l=b+52|0;k=c[b+56>>2]|0;while(1){if((k|0)==(o|0))break;i=c[k>>2]|0;eva(i,c[p>>2]|0);a:do if((c[k>>2]|0)==(c[l>>2]|0)){h=0;while(1){e=c[p>>2]|0;if(h>>>0>=e>>>0)break a;if(Rjb(d,h)|0){g=Tdb(b)|0;c[(c[i>>2]|0)+(h<<2)>>2]=g}else{cmb(m,jka(d,h)|0);e=j;f=m;g=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));g=IX(b,j)|0;c[(c[i>>2]|0)+(h<<2)>>2]=g}h=h+1|0}}else{f=0;while(1){e=c[p>>2]|0;if(f>>>0>=e>>>0)break a;c[(c[i>>2]|0)+(f<<2)>>2]=0;f=f+1|0}}while(0);f=(c[k>>2]|0)+12|0;eva(f,e);e=0;while(1){if(e>>>0>=(c[p>>2]|0)>>>0)break;c[(c[f>>2]|0)+(e<<2)>>2]=0;e=e+1|0}k=k+4|0}vIa(u);n=0;da(2361,u|0,c[l>>2]|0);o=n;n=0;do if(o&1){e=sa()|0;P()|0}else{d=u+20|0;l=q+4|0;m=s+4|0;b:while(1){if(pqb(c[d>>2]|0)|0){t=69;break}n=0;k=S(285,u|0)|0;o=n;n=0;if(o&1){t=25;break}e=c[k+48>>2]|0;f=c[k+52>>2]|0;do if((e|0)!=(f|0)){if((f-e|0)==4){e=c[e>>2]|0;f=e+12|0;if((k|0)==(f|0))break;n=0;ea(163,k|0,c[f>>2]|0,c[e+16>>2]|0);o=n;n=0;if(o&1){t=25;break b}else break}n=0;da(2362,q|0,k+48|0);o=n;n=0;if(o&1){t=25;break b}j=0;while(1){if(j>>>0>=(c[p>>2]|0)>>>0)break;f=(c[k>>2]|0)+(j<<2)|0;if(!($R(b,k,j,c[f>>2]|0)|0)){g=c[q>>2]|0;i=c[l>>2]|0;e=c[(c[(c[g>>2]|0)+12>>2]|0)+(j<<2)>>2]|0;while(1){g=g+4|0;if((g|0)==(i|0))break;h=c[(c[(c[g>>2]|0)+12>>2]|0)+(j<<2)>>2]|0;if(e){if(!((h|0)==0|(e|0)==(h|0))){t=37;break}}else e=h}if((t|0)==37){t=0;n=0;e=V(87,b|0,k|0,j|0)|0;o=n;n=0;if(o&1){t=32;break b}f=(c[k>>2]|0)+(j<<2)|0}c[f>>2]=e}j=j+1|0}Vob(q)}while(0);n=0;da(234,s|0,k|0);o=n;n=0;if(o&1){t=25;break}g=c[k+28>>2]|0;f=c[k+24>>2]|0;while(1){if((f|0)==(g|0))break;n=0;h=S(244,c[c[f>>2]>>2]|0)|0;o=n;n=0;if(o&1){t=50;break b}e=c[s>>2]|0;n=0;i=V(88,b|0,c[h+12>>2]|0,e|0)|0;o=n;n=0;if(o&1){t=50;break b}c[e+(c[h+8>>2]<<2)>>2]=i;f=f+4|0}h=k+12|0;e=c[m>>2]|0;g=c[s>>2]|0;o=c[h>>2]|0;i=g;j=o;c:do if((e-g|0)==((c[k+16>>2]|0)-o|0)){f=i;g=j;while(1){if((f|0)==(e|0))break;if((c[f>>2]|0)!=(c[g>>2]|0)){t=57;break c}f=f+4|0;g=g+4|0}Vob(s)}else t=57;while(0);if((t|0)==57){t=0;f=c[p>>2]|0;e=0;while(1){if(e>>>0>=f>>>0)break;if((c[i+(e<<2)>>2]|0)>>>0<(c[j+(e<<2)>>2]|0)>>>0){t=60;break b}e=e+1|0}bma(h,s);f=c[k+40>>2]|0;e=c[k+36>>2]|0;while(1){if((e|0)==(f|0))break;n=0;da(2361,u|0,c[e>>2]|0);o=n;n=0;if(o&1){t=49;break b}e=e+4|0}Vob(s)}}if((t|0)==25){e=sa()|0;P()|0;break}else if((t|0)==32){t=sa()|0;P()|0;Vob(q);Ipa(u);Ea(t|0)}else if((t|0)==49){e=sa()|0;P()|0}else if((t|0)==50){e=sa()|0;P()|0}else if((t|0)==60){n=0;fa(75,99424,99463,296,99511);n=0;e=sa()|0;P()|0}else if((t|0)==69){Ipa(u);yb=r;return}Vob(s);t=e;Ipa(u);Ea(t|0)}while(0);t=e;Ipa(u);Ea(t|0)}function cg(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0;G=yb;yb=yb+80|0;y=G+76|0;H=G+64|0;E=G+56|0;x=G+48|0;J=G+24|0;F=G+20|0;K=G;z=(c[a>>2]|0)+4|0;Kra(E,z);Vda(x,z);z=E+4|0;A=K+4|0;B=K+12|0;C=K+16|0;D=K+8|0;x=c[x+4>>2]|0;d=0;e=0;b=c[z>>2]|0;a:while(1){if((b|0)==(x|0)){w=63;break}u=c[b>>2]|0;w0a(J);s=WCb(c[u+16>>2]|0)|0;v=Ryb(u)|0;t=d;d=s;while(1){s=d;if((v|0)==(s|0))break;r=d;q=c[r+8>>2]|0;r=c[r+12>>2]|0;c[F>>2]=q;c[K>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;c[K+12>>2]=0;g[C>>2]=1.0;d=q;while(1){n=0;f=S(236,d|0)|0;p=n;n=0;if(p&1){w=12;break a}if(!f)break;if((WCb(c[d+8>>2]|0)|0)!=1)break;f=c[d+16>>2]|0;WCb(f)|0;p=c[f+8>>2]|0;f=c[f+12>>2]|0;if(c[f+8>>2]|0){w=11;break a}if(c[f+12>>2]|0){w=11;break a}if(c[f+16>>2]|0)break;c[F>>2]=p;if(lC(K,F)|0){d=p;break}c[y>>2]=p;o=pH(y,4)|0;k=c[A>>2]|0;m=(k|0)==0;b:do if(!m){h=k+-1|0;l=(k&h|0)==0;if(!l)if(o>>>0>>0)e=o;else e=(o>>>0)%(k>>>0)|0;else e=o&h;d=c[(c[K>>2]|0)+(e<<2)>>2]|0;if(!d)w=32;else while(1){d=c[d>>2]|0;if(!d){w=32;break b}f=c[d+4>>2]|0;if((f|0)!=(o|0)){do if(l)f=f&h;else{if(f>>>0>>0)break;f=(f>>>0)%(k>>>0)|0}while(0);if((f|0)!=(e|0)){w=32;break b}}if((c[d+8>>2]|0)==(p|0))break b}}else w=32;while(0);if((w|0)==32){w=0;n=0;fa(92,H|0,K|0,o|0,F|0);l=n;n=0;if(l&1){w=12;break a}i=+(((c[B>>2]|0)+1|0)>>>0);j=+g[C>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)==0;w=37}else{e=0;w=37}}else if(m){d=0;e=0;w=37}do if((w|0)==37){w=0;m=d|(e^1)&1;l=~~+I(+(i/j))>>>0;n=0;da(250,K|0,(m>>>0>>0?l:m)|0);m=n;n=0;if(m&1){w=42;break a}d=c[A>>2]|0;e=d+-1|0;if(!(d&e)){k=d;e=o&e;break}if(o>>>0>>0){k=d;e=o}else{k=d;e=(o>>>0)%(d>>>0)|0}}while(0);d=c[(c[K>>2]|0)+(e<<2)>>2]|0;if(!d){d=c[H>>2]|0;c[d>>2]=c[D>>2];h=d;c[D>>2]=h;c[(c[K>>2]|0)+(e<<2)>>2]=D;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;f=k+-1|0;do if(!(k&f))d=d&f;else{if(d>>>0>>0)break;d=(d>>>0)%(k>>>0)|0}while(0);c[(c[K>>2]|0)+(d<<2)>>2]=h}}else{o=c[H>>2]|0;c[o>>2]=c[d>>2];c[d>>2]=o}c[B>>2]=(c[B>>2]|0)+1;c[H>>2]=0}d=p}f=t|(d|0)!=(q|0);if(oeb(J,d)|0){n=0;d=U(85,J|0,F|0)|0;t=n;n=0;if(t&1){w=13;break a}n=0;ea(120,a|0,r|0,c[d>>2]|0);t=n;n=0;if(t&1){w=13;break a}}else{n=0;d=U(85,J|0,F|0)|0;t=n;n=0;if(t&1){w=13;break a}c[d>>2]=r}Pdb(K);t=f;d=c[s+4>>2]|0}$Ha(u,J);ASa(J);b=b+4|0;c[z>>2]=b;d=c[E>>2]|0;if((b-(c[d>>2]|0)|0)==4096){b=d+4|0;c[E>>2]=b;b=c[b>>2]|0;c[z>>2]=b}d=t}if((w|0)==11){n=0;fa(75,73698,72707,553,73758);n=0;H=sa()|0;P()|0;Pdb(K);ASa(J);Ea(H|0)}else if((w|0)==12){H=sa()|0;P()|0;Pdb(K);ASa(J);Ea(H|0)}else if((w|0)==13){H=sa()|0;P()|0;Pdb(K);ASa(J);Ea(H|0)}else if((w|0)==42){b=sa()|0;P()|0;d=c[H>>2]|0;c[H>>2]=0;if(!d){H=b;Pdb(K);ASa(J);Ea(H|0)}RCb(d);H=b;Pdb(K);ASa(J);Ea(H|0)}else if((w|0)==63){yb=G;return d|0}return 0}function dg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=yb;yb=yb+80|0;z=y+56|0;A=y+44|0;f=y+40|0;m=y+36|0;o=y+32|0;p=y+28|0;u=y+24|0;v=y+12|0;s=y+8|0;t=y+4|0;x=y;GPa(z,b);c[A>>2]=A;k=A+4|0;c[k>>2]=A;l=A+8|0;c[l>>2]=0;r=a+16|0;j=WCb(c[r>>2]|0)|0;w=Ryb(a)|0;q=z+4|0;a=j;while(1){e=a;if((w|0)==(e|0)){d=14;break}a=c[a+8>>2]|0;c[f>>2]=a;n=0;d=U(89,q|0,f|0)|0;j=n;n=0;if(j&1){d=12;break}c[d>>2]=a;n=0;a=U(88,b|0,f|0)|0;j=n;n=0;if(j&1){d=12;break}n=0;da(239,a|0,f|0);j=n;n=0;if(j&1){d=12;break}n=0;da(240,A|0,f|0);j=n;n=0;if(j&1){d=12;break}a=c[e+4>>2]|0}do if((d|0)==12){a=sa()|0;P()|0}else if((d|0)==14){i=z+4|0;j=z+8|0;a:while(1){if(!(c[l>>2]|0)){d=29;break}c[m>>2]=c[(c[k>>2]|0)+8>>2];xFa(A);n=0;a=U(89,q|0,m|0)|0;h=n;n=0;if(h&1){d=11;break}e=c[a>>2]|0;c[o>>2]=e;f=e;b:do if(e|0){g=c[m>>2]|0;a=WCb(c[g+16>>2]|0)|0;g=Ryb(g)|0;while(1){h=a;if((g|0)==(h|0))break b;d=c[a+8>>2]|0;c[p>>2]=d;a=Mba(i,p)|0;if((a|0)==(j|0)){n=0;a=U(89,q|0,p|0)|0;d=n;n=0;if(d&1){d=10;break a}c[a>>2]=e;n=0;a=U(88,b|0,o|0)|0;d=n;n=0;if(d&1){d=10;break a}n=0;da(239,a|0,p|0);d=n;n=0;if(d&1){d=10;break a}n=0;da(240,A|0,p|0);d=n;n=0;if(d&1){d=10;break a}}else{a=c[a+20>>2]|0;if(!((a|0)==0|(a|0)==(f|0))?(n=0,da(245,z|0,d|0),d=n,n=0,d&1):0){d=10;break a}}a=c[h+4>>2]|0}}while(0)}if((d|0)==10){a=sa()|0;P()|0;break}else if((d|0)==11){a=sa()|0;P()|0;break}else if((d|0)==29){i=v+4|0;j=v+8|0;a=WCb(c[r>>2]|0)|0;c:while(1){k=a;if((w|0)==(k|0)){d=50;break}c[u>>2]=c[a+8>>2];n=0;a=U(88,b|0,u|0)|0;p=n;n=0;if(p&1){d=9;break}c[v>>2]=v;c[i>>2]=v;c[j>>2]=0;p=WCb(c[a+16>>2]|0)|0;g=Ryb(a)|0;a=p;while(1){h=a;if((g|0)==(h|0))break;e=c[a+8>>2]|0;c[s>>2]=e;a=WCb(c[e+40>>2]|0)|0;e=Ryb(e+24|0)|0;while(1){f=a;if((e|0)==(f|0))break;c[t>>2]=c[a+8>>2];n=0;a=U(89,q|0,t|0)|0;p=n;n=0;if(p&1){d=36;break c}a=c[a>>2]|0;n=0;d=U(89,q|0,s|0)|0;p=n;n=0;if(p&1){d=36;break c}if((a|0)!=(c[d>>2]|0)?(n=0,da(240,v|0,s|0),p=n,n=0,p&1):0){d=36;break c}a=c[f+4>>2]|0}a=c[h+4>>2]|0}while(1){if(!(c[j>>2]|0))break;p=c[(c[i>>2]|0)+8>>2]|0;xFa(v);n=0;da(245,z|0,p|0);p=n;n=0;if(p&1){d=37;break c}}Pkb(v);a=c[k+4>>2]|0}if((d|0)==9){a=sa()|0;P()|0;break}else if((d|0)==36){a=sa()|0;P()|0}else if((d|0)==37){a=sa()|0;P()|0}else if((d|0)==50){a=WCb(c[r>>2]|0)|0;while(1){d=a;if((w|0)==(d|0)){d=56;break}c[x>>2]=c[a+8>>2];n=0;a=U(88,b|0,x|0)|0;v=n;n=0;if(v&1){d=8;break}if(!(WCb(c[a+8>>2]|0)|0))c8(b,x);a=c[d+4>>2]|0}if((d|0)==8){a=sa()|0;P()|0;break}else if((d|0)==56){Pkb(A);WSa(z);yb=y;return}}Pkb(v);y=a;Pkb(A);WSa(z);Ea(y|0)}}while(0);y=a;Pkb(A);WSa(z);Ea(y|0)}function eg(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,o=0,p=0,q=0,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;A=yb;yb=yb+144|0;x=A+136|0;E=A+124|0;F=A+80|0;D=A+68|0;B=A+56|0;C=A+44|0;z=A;a=c[b+24>>2]|0;if((a|0)<=2?(c[b+28>>2]|0)<=0:0)a=(a|0)>1?10:1;else a=(c[d+28>>2]|0)-(c[d+24>>2]|0)>>2;p=D+4|0;q=B+8|0;r=d+24|0;s=d+28|0;t=d+76|0;u=B+4|0;o=d+124|0;v=d+124|0;w=d+16|0;a:while(1){if(!a){b=68;break}a=a+-1|0;hW(E,d);n=0;da(998,F|0,d|0);m=n;n=0;if(m&1){b=14;break}Lvb(F);n=0;da(1255,F|0,E|0);m=n;n=0;if(m&1){b=15;break}n=0;ca(489,F|0);m=n;n=0;if(m&1){b=15;break}yib(D);n=0;ea(144,d|0,D|0,E|0);m=n;n=0;if(m&1){b=16;break}yib(B);yib(C);b=c[D>>2]|0;while(1){if((p|0)==(b|0))break;m=b;i=m+20|0;m=(c[m+24>>2]|0)-(c[i>>2]|0)|0;j=m>>2;b:do if((m|0)!=4){k=j+-1|0;h=0;while(1){if(h>>>0>=k>>>0)break b;l=c[(c[i>>2]|0)+(h<<2)>>2]|0;m=l+8|0;c:do if(!(f9(C,m)|0)){e=h;while(1){e=e+1|0;if(e>>>0>=j>>>0)break c;f=c[(c[i>>2]|0)+(e<<2)>>2]|0;g=f+8|0;do if(!(f9(C,g)|0)){n=0;f=U(130,l|0,f|0)|0;G=n;n=0;if(G&1){b=17;break a}if(!f)break;n=0;f=U(131,B|0,g|0)|0;G=n;n=0;if(G&1){b=17;break a}c[f>>2]=c[m>>2];n=0;fa(98,x|0,C|0,g|0,g|0);G=n;n=0;if(G&1){b=17;break a}}while(0)}}while(0);h=h+1|0}}while(0);e=b;b=c[e+4>>2]|0;d:do if(!b)while(1){b=c[e+8>>2]|0;if((e|0)==(c[b>>2]|0))break d;e=b}else while(1){e=c[b>>2]|0;if(!e)break;b=e}while(0)}if(!(c[q>>2]|0)){b=64;break}G=XH(c[r>>2]|0,c[s>>2]|0,C)|0;tS(r,G,c[s>>2]|0)|0;n=0;ca(520,d|0);G=n;n=0;if(G&1){b=18;break}n=0;da(998,z|0,d|0);G=n;n=0;if(G&1){b=18;break}Lvb(z);n=0;da(1256,z|0,B|0);G=n;n=0;if(G&1){b=52;break}n=0;ca(489,z|0);G=n;n=0;if(G&1){b=52;break}f=c[t>>2]|0;e=c[d+72>>2]|0;while(1){if((e|0)==(f|0))break;g=c[e+8>>2]|0;b=c[e+4>>2]|0;while(1){if((b|0)==(g|0))break;h=C8(B,b)|0;if((h|0)!=(u|0))c[b>>2]=c[h+20>>2];b=b+4|0}e=e+16|0}if(eCb(c[o>>2]|0)|0?(y=C8(B,v)|0,(y|0)!=(u|0)):0)c[v>>2]=c[y+20>>2];e=c[w>>2]|0;b=c[d+12>>2]|0;while(1){if((b|0)==(e|0))break;f=(c[b>>2]|0)+4|0;g=C8(B,f)|0;if((g|0)!=(u|0))c[f>>2]=c[g+20>>2];b=b+4|0}osa(z);Khb(C);$$a(B);dSa(D);osa(F);Ckb(E)}if((b|0)==14){G=sa()|0;P()|0;Ckb(E);Ea(G|0)}else if((b|0)==15){a=sa()|0;P()|0}else if((b|0)==16){a=sa()|0;P()|0;b=66}else if((b|0)==17){a=sa()|0;P()|0;b=19}else if((b|0)==18){a=sa()|0;P()|0;b=19}else if((b|0)==52){a=sa()|0;P()|0;osa(z);b=65}else if((b|0)==64){Khb(C);$$a(B);dSa(D);osa(F);Ckb(E);yb=A;return}else if((b|0)==68){yb=A;return}if((b|0)==19)b=65;if((b|0)==65){Khb(C);$$a(B);b=66}if((b|0)==66)dSa(D);osa(F);G=a;Ckb(E);Ea(G|0)}function fg(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;b=yb;yb=yb+96|0;C=b+92|0;B=b+88|0;A=b+84|0;y=b+80|0;s=b+76|0;z=b+72|0;m=b+68|0;j=b+64|0;x=b+60|0;v=b+56|0;u=b+52|0;w=b+48|0;r=b+44|0;q=b+40|0;p=b+36|0;o=b+32|0;n=b+28|0;k=b+24|0;l=b+20|0;f=b+16|0;i=b+12|0;h=b+8|0;d=b+4|0;g=b;e=uY(c[37176]|0)|0;m2a(C,51238,1);z7(e,c[C>>2]|0);C=rrb(e,3)|0;C=WCb(c[C>>2]|0)|0;m2a(B,51238,1);B=dWa(c[B>>2]|0)|0;t=c[37277]|0;m2a(A,51238,1);KJa(C,WCb(mv(B,t,mG(dWa(c[A>>2]|0)|0,0)|0)|0)|0)|0;A=Ria()|0;t=rrb(e,3)|0;KJa(WCb(c[t>>2]|0)|0,A)|0;m2a(y,51249,1);t=mG(a7(c[37177]|0)|0,0)|0;KQ(A,c[y>>2]|0,t);t=Ria()|0;y=rrb(e,3)|0;KJa(WCb(c[y>>2]|0)|0,t)|0;m2a(s,51258,1);m2a(z,51249,1);z=dWa(c[z>>2]|0)|0;y=c[37232]|0;m2a(m,51238,1);m=mG(mv(z,y,dWa(c[m>>2]|0)|0)|0,0)|0;KQ(t,c[s>>2]|0,m);m=Dia()|0;c[j>>2]=m;s=rrb(e,3)|0;s=WCb(c[s>>2]|0)|0;m2a(x,51249,1);x=dWa(c[x>>2]|0)|0;t=c[37239]|0;m2a(v,51258,1);v=mv(x,t,dWa(c[v>>2]|0)|0)|0;m2a(u,139931,1);m2a(w,51258,1);w=dWa(c[w>>2]|0)|0;t=c[37239]|0;t=mv(w,t,_pb(65536)|0)|0;t=mv(v,c[u>>2]|0,t)|0;Pwb(r,0);KJa(s,p3(t,m,c[r>>2]|0)|0)|0;r=Ria()|0;_qa(m,r);m2a(q,51267,1);t=c[37119]|0;s=c[37157]|0;m2a(p,51258,1);p=dWa(c[p>>2]|0)|0;p=rma(c1(t,SP(s,p,_pb(65536)|0)|0)|0)|0;KQ(r,c[q>>2]|0,p);p=Ria()|0;_qa(m,p);m2a(o,51277,1);q=dWa(c[37105]|0)|0;q=Q5(q,c[37111]|0)|0;m2a(n,51267,1);n=rma(E1(q,dWa(c[n>>2]|0)|0)|0)|0;KQ(p,c[o>>2]|0,n);m2a(k,51277,1);k=dWa(c[k>>2]|0)|0;m2a(l,51286,1);l=Q5(k,c[l>>2]|0)|0;_qa(m,E1(l,dWa(c[37251]|0)|0)|0);l=dWa(c[37251]|0)|0;k=c[37277]|0;m2a(f,51277,1);_qa(m,mv(l,k,dWa(c[f>>2]|0)|0)|0);c[i>>2]=j;GR(i,c[37252]|0,c[37112]|0);GR(i,c[37253]|0,c[37113]|0);GR(i,c[37255]|0,c[37114]|0);GR(i,c[37256]|0,c[37115]|0);GR(i,c[37257]|0,c[37116]|0);GR(i,c[37254]|0,c[37117]|0);GR(i,c[37258]|0,c[37118]|0);j=c[j>>2]|0;i=dWa(c[37152]|0)|0;f=c[37277]|0;m2a(h,51267,1);_qa(j,mv(i,f,dWa(c[h>>2]|0)|0)|0);h=rrb(e,3)|0;h=WCb(c[h>>2]|0)|0;m2a(d,51249,1);KJa(h,Dba(dWa(c[d>>2]|0)|0)|0)|0;d=uY(c[37177]|0)|0;h=rrb(d,3)|0;h=WCb(c[h>>2]|0)|0;f=dWa(c[37152]|0)|0;m2a(g,51290,1);g=Q5(f,c[g>>2]|0)|0;f=c[37245]|0;KJa(h,Dba(mG(mv(g,f,_pb(65536)|0)|0,0)|0)|0)|0;a=WCb(a)|0;KJa(a,e)|0;KJa(a,d)|0;yb=b;return}function gg(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,o=0,p=0,q=0,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=yb;yb=yb+96|0;A=D+92|0;z=D+88|0;f=D+84|0;g=D+72|0;h=D+60|0;o=D+56|0;p=D+52|0;q=D+48|0;r=D+44|0;s=D+40|0;t=D+28|0;u=D+24|0;w=D+20|0;y=D+8|0;x=D+4|0;B=D;Gsb(z,b);C=mla(120)|0;d=C;e=d+120|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));mT(C);c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,85910,Zzb(85910)|0);n=0;U(69,h|0,c[a+8>>2]|0)|0;v=n;n=0;do if(!(v&1)){c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];d=0;while(1){if((d|0)==3)break;c[h+(d<<2)>>2]=0;d=d+1|0}n=0;da(230,f|0,g|0);v=n;n=0;if(v&1){d=sa()|0;P()|0;Chb(g);break}v=C+8|0;c[v>>2]=c[f>>2];Chb(g);Chb(h);m=Xeb(b+152|0)|0;c[m+24>>2]=c[a+8>>2];g=a+12|0;c[m+4>>2]=c[g>>2];h=c[a+20>>2]|0;i=m+8|0;j=C+16|0;k=C+20|0;l=C+24|0;f=c[a+16>>2]|0;while(1){if((f|0)==(h|0))break;d=c[f>>2]|0;c[o>>2]=d;a:do switch(d|0){case 2:{d=(c[k>>2]|0)-(c[j>>2]|0)>>2;Wla(i,hEa(z,d,d+1|0)|0);c[p>>2]=1;d=c[k>>2]|0;if(d>>>0<(c[l>>2]|0)>>>0){c[d>>2]=1;d=(c[k>>2]|0)+4|0;c[k>>2]=d}else{_M(j,p);d=c[k>>2]|0}c[q>>2]=1;if(d>>>0<(c[l>>2]|0)>>>0){c[d>>2]=1;c[k>>2]=(c[k>>2]|0)+4;break a}else{_M(j,q);break a}}case 3:{d=c[z>>2]|0;Wla(i,pVa(d,44,T3a(d,(c[k>>2]|0)-(c[j>>2]|0)>>2,4)|0)|0);c[r>>2]=4;d=c[k>>2]|0;if(d>>>0<(c[l>>2]|0)>>>0){c[d>>2]=4;c[k>>2]=(c[k>>2]|0)+4;break a}else{_M(j,r);break a}}default:{Wla(i,T3a(c[z>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)>>2,d)|0);e=c[k>>2]|0;if((e|0)==(c[l>>2]|0)){_M(j,o);break a}else{c[e>>2]=d;c[k>>2]=(c[k>>2]|0)+4;break a}}}while(0);f=f+4|0}d=c[g>>2]|0;b:do switch(d|0){case 2:{c[s>>2]=c[37379];c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;D8(t,86420,Zzb(86420)|0);n=0;c[A>>2]=c[s>>2];h=V(83,b|0,A|0,t|0)|0;s=n;n=0;if(s&1){D=sa()|0;P()|0;Chb(t);Ea(D|0)}Chb(t);c[C+12>>2]=1;Cub(u);c[A>>2]=c[u>>2];e=MG(C,A,2)|0;d=c[z>>2]|0;f=vJa(d,0)|0;g=f+12|0;Wla(g,tVa(d,e,m)|0);c[w>>2]=c[h+8>>2];u=IZ(z,e)|0;c[x>>2]=u;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;n=0;da(174,y|0,1);u=n;n=0;if(u&1){D=sa()|0;P()|0;Qcb(y);Ea(D|0)}ssa(y,x,x+4|0);n=0;c[A>>2]=c[w>>2];d=W(14,d|0,A|0,y|0,0)|0;x=n;n=0;if(!(x&1)?(n=0,da(231,g|0,d|0),x=n,n=0,!(x&1)):0){Vob(y);Wla(g,_Wa(z,e)|0);_u(f);c[C+44>>2]=f;break b}D=sa()|0;P()|0;Vob(y);Ea(D|0)}case 3:{c[C+12>>2]=4;z=pVa(c[z>>2]|0,43,m)|0;c[C+44>>2]=z;break}default:{c[C+12>>2]=d;c[C+44>>2]=m}}while(0);d=c[v>>2]|0;c[B>>2]=d;c[A>>2]=c[B>>2];if(!(lEa(b,A)|0)){aq(b,C);C=c[v>>2]|0;yb=D;return C|0}else{C=d;yb=D;return C|0}}else{d=sa()|0;P()|0}while(0);Chb(h);D=d;Ea(D|0);return 0}function hg(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,o=0;o=yb;yb=yb+16|0;m=o;if(b){b=Thb(d,151556)|0;Sb[c[(c[b>>2]|0)+44>>2]&8191](m,b);d=c[m>>2]|0;a[e>>0]=d;a[e+1>>0]=d>>8;a[e+2>>0]=d>>16;a[e+3>>0]=d>>24;Sb[c[(c[b>>2]|0)+32>>2]&8191](m,b);d=k+11|0;if((a[d>>0]|0)<0){Fsb(c[k>>2]|0,0);c[k+4>>2]=0}else{Fsb(k,0);a[d>>0]=0}n=0;ca(510,k|0);e=n;n=0;if(e&1){e=ta(0)|0;P()|0;yub(e)}c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}Chb(m);Sb[c[(c[b>>2]|0)+28>>2]&8191](m,b);d=j+11|0;if((a[d>>0]|0)<0){Fsb(c[j>>2]|0,0);c[j+4>>2]=0}else{Fsb(j,0);a[d>>0]=0}n=0;ca(510,j|0);k=n;n=0;if(k&1){k=ta(0)|0;P()|0;yub(k)}c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}Chb(m);d=Eb[c[(c[b>>2]|0)+12>>2]&511](b)|0;a[f>>0]=d;d=Eb[c[(c[b>>2]|0)+16>>2]&511](b)|0;a[g>>0]=d;Sb[c[(c[b>>2]|0)+20>>2]&8191](m,b);d=h+11|0;if((a[d>>0]|0)<0){Fsb(c[h>>2]|0,0);c[h+4>>2]=0}else{Fsb(h,0);a[d>>0]=0}n=0;ca(510,h|0);g=n;n=0;if(g&1){g=ta(0)|0;P()|0;yub(g)}c[h>>2]=c[m>>2];c[h+4>>2]=c[m+4>>2];c[h+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}Chb(m);Sb[c[(c[b>>2]|0)+24>>2]&8191](m,b);d=i+11|0;if((a[d>>0]|0)<0){Fsb(c[i>>2]|0,0);c[i+4>>2]=0}else{Fsb(i,0);a[d>>0]=0}n=0;ca(510,i|0);h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}Chb(m);d=Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0}else{b=Thb(d,151548)|0;Sb[c[(c[b>>2]|0)+44>>2]&8191](m,b);d=c[m>>2]|0;a[e>>0]=d;a[e+1>>0]=d>>8;a[e+2>>0]=d>>16;a[e+3>>0]=d>>24;Sb[c[(c[b>>2]|0)+32>>2]&8191](m,b);d=k+11|0;if((a[d>>0]|0)<0){Fsb(c[k>>2]|0,0);c[k+4>>2]=0}else{Fsb(k,0);a[d>>0]=0}n=0;ca(510,k|0);e=n;n=0;if(e&1){e=ta(0)|0;P()|0;yub(e)}c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}Chb(m);Sb[c[(c[b>>2]|0)+28>>2]&8191](m,b);d=j+11|0;if((a[d>>0]|0)<0){Fsb(c[j>>2]|0,0);c[j+4>>2]=0}else{Fsb(j,0);a[d>>0]=0}n=0;ca(510,j|0);k=n;n=0;if(k&1){k=ta(0)|0;P()|0;yub(k)}c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}Chb(m);d=Eb[c[(c[b>>2]|0)+12>>2]&511](b)|0;a[f>>0]=d;d=Eb[c[(c[b>>2]|0)+16>>2]&511](b)|0;a[g>>0]=d;Sb[c[(c[b>>2]|0)+20>>2]&8191](m,b);d=h+11|0;if((a[d>>0]|0)<0){Fsb(c[h>>2]|0,0);c[h+4>>2]=0}else{Fsb(h,0);a[d>>0]=0}n=0;ca(510,h|0);g=n;n=0;if(g&1){g=ta(0)|0;P()|0;yub(g)}c[h>>2]=c[m>>2];c[h+4>>2]=c[m+4>>2];c[h+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}Chb(m);Sb[c[(c[b>>2]|0)+24>>2]&8191](m,b);d=i+11|0;if((a[d>>0]|0)<0){Fsb(c[i>>2]|0,0);c[i+4>>2]=0}else{Fsb(i,0);a[d>>0]=0}n=0;ca(510,i|0);h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}Chb(m);d=Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0}c[l>>2]=d;yb=o;return}function ig(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,o=0;o=yb;yb=yb+16|0;m=o;if(b){b=Thb(d,151572)|0;Sb[c[(c[b>>2]|0)+44>>2]&8191](m,b);d=c[m>>2]|0;a[e>>0]=d;a[e+1>>0]=d>>8;a[e+2>>0]=d>>16;a[e+3>>0]=d>>24;Sb[c[(c[b>>2]|0)+32>>2]&8191](m,b);d=k+8+3|0;if((a[d>>0]|0)<0){Ftb(c[k>>2]|0,0);c[k+4>>2]=0}else{Ftb(k,0);a[d>>0]=0}n=0;ca(577,k|0);e=n;n=0;if(e&1){e=ta(0)|0;P()|0;yub(e)}c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}bhb(m);Sb[c[(c[b>>2]|0)+28>>2]&8191](m,b);d=j+8+3|0;if((a[d>>0]|0)<0){Ftb(c[j>>2]|0,0);c[j+4>>2]=0}else{Ftb(j,0);a[d>>0]=0}n=0;ca(577,j|0);k=n;n=0;if(k&1){k=ta(0)|0;P()|0;yub(k)}c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}bhb(m);d=Eb[c[(c[b>>2]|0)+12>>2]&511](b)|0;c[f>>2]=d;d=Eb[c[(c[b>>2]|0)+16>>2]&511](b)|0;c[g>>2]=d;Sb[c[(c[b>>2]|0)+20>>2]&8191](m,b);d=h+11|0;if((a[d>>0]|0)<0){Fsb(c[h>>2]|0,0);c[h+4>>2]=0}else{Fsb(h,0);a[d>>0]=0}n=0;ca(510,h|0);g=n;n=0;if(g&1){g=ta(0)|0;P()|0;yub(g)}c[h>>2]=c[m>>2];c[h+4>>2]=c[m+4>>2];c[h+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}Chb(m);Sb[c[(c[b>>2]|0)+24>>2]&8191](m,b);d=i+8+3|0;if((a[d>>0]|0)<0){Ftb(c[i>>2]|0,0);c[i+4>>2]=0}else{Ftb(i,0);a[d>>0]=0}n=0;ca(577,i|0);h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}bhb(m);d=Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0}else{b=Thb(d,151564)|0;Sb[c[(c[b>>2]|0)+44>>2]&8191](m,b);d=c[m>>2]|0;a[e>>0]=d;a[e+1>>0]=d>>8;a[e+2>>0]=d>>16;a[e+3>>0]=d>>24;Sb[c[(c[b>>2]|0)+32>>2]&8191](m,b);d=k+8+3|0;if((a[d>>0]|0)<0){Ftb(c[k>>2]|0,0);c[k+4>>2]=0}else{Ftb(k,0);a[d>>0]=0}n=0;ca(577,k|0);e=n;n=0;if(e&1){e=ta(0)|0;P()|0;yub(e)}c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}bhb(m);Sb[c[(c[b>>2]|0)+28>>2]&8191](m,b);d=j+8+3|0;if((a[d>>0]|0)<0){Ftb(c[j>>2]|0,0);c[j+4>>2]=0}else{Ftb(j,0);a[d>>0]=0}n=0;ca(577,j|0);k=n;n=0;if(k&1){k=ta(0)|0;P()|0;yub(k)}c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}bhb(m);d=Eb[c[(c[b>>2]|0)+12>>2]&511](b)|0;c[f>>2]=d;d=Eb[c[(c[b>>2]|0)+16>>2]&511](b)|0;c[g>>2]=d;Sb[c[(c[b>>2]|0)+20>>2]&8191](m,b);d=h+11|0;if((a[d>>0]|0)<0){Fsb(c[h>>2]|0,0);c[h+4>>2]=0}else{Fsb(h,0);a[d>>0]=0}n=0;ca(510,h|0);g=n;n=0;if(g&1){g=ta(0)|0;P()|0;yub(g)}c[h>>2]=c[m>>2];c[h+4>>2]=c[m+4>>2];c[h+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}Chb(m);Sb[c[(c[b>>2]|0)+24>>2]&8191](m,b);d=i+8+3|0;if((a[d>>0]|0)<0){Ftb(c[i>>2]|0,0);c[i+4>>2]=0}else{Ftb(i,0);a[d>>0]=0}n=0;ca(577,i|0);h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0}bhb(m);d=Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0}c[l>>2]=d;yb=o;return}function jg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+80|0;r=t+72|0;h=t+60|0;f=t+56|0;g=t+52|0;i=t+40|0;u=t+20|0;o=t+16|0;q=t+4|0;s=t;if(!(a[(c[b>>2]|0)+56>>0]&1)){g=oa(20)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;u=Zzb(125962)|0;n=0;ea(95,h|0,125962,u|0);u=n;n=0;if(!(u&1)){n=0;da(330,g|0,h|0);u=n;n=0;if(u&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(h);if(!f){u=e;Ea(u|0)}}else{e=sa()|0;P()|0}va(g|0);u=e;Ea(u|0)}p=fbb(c[b+4>>2]|0)|0;e=Vr(d,1)|0;m=kH(Vr(e,0)|0)|0;m2a(f,134211,1);if(dub(m,c[f>>2]|0)|0){u=kH(Vr(e,1)|0)|0;e=c[b>>2]|0;Ftb(g,u);c[r>>2]=c[g>>2];e=rDa(e,r)|0;if(e|0){o=c[e>>2]|0;c[p+24>>2]=o;q=2;u=c[b>>2]|0;c[s>>2]=o;c[r>>2]=c[s>>2];s=sQ(u,r)|0;s=s+4|0;s=c[s>>2]|0;u=p+4|0;c[u>>2]=s;u=xmb(d)|0;u=u+-1|0;Oja(b,d,q,u,p);u=xmb(d)|0;u=u+-1|0;d=Vr(d,u)|0;d=$db(b,d)|0;u=p+28|0;c[u>>2]=d;q5a(p);yb=t;return p|0}g=oa(20)|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;u=Zzb(125971)|0;n=0;ea(95,i|0,125971,u|0);u=n;n=0;if(!(u&1)){n=0;fa(134,g|0,i|0,c[d+28>>2]|0,c[d+32>>2]|0);u=n;n=0;if(u&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(i);if(!f){u=e;Ea(u|0)}}else{e=sa()|0;P()|0}va(g|0);u=e;Ea(u|0)}Fbb(u);i=u+8|0;j=u+12|0;k=u+16|0;l=u+4|0;m=1;a:while(1){n=0;h=U(81,d|0,m|0)|0;g=n;n=0;if(g&1){f=33;break}n=0;e=U(81,h|0,0)|0;g=n;n=0;if(g&1){f=33;break}n=0;e=S(331,e|0)|0;g=n;n=0;if(g&1){f=33;break}b:do if(dub(e,c[37384]|0)|0){g=1;while(1){n=0;e=S(330,h|0)|0;f=n;n=0;if(f&1){f=32;break a}if(g>>>0>=e>>>0)break b;n=0;e=U(81,h|0,g|0)|0;f=n;n=0;if(f&1){f=32;break a}n=0;e=S(331,e|0)|0;f=n;n=0;if(f&1){f=32;break a}n=0;e=U(199,e|0,0)|0;f=n;n=0;if(f&1){f=32;break a}c[o>>2]=e;f=c[j>>2]|0;if(f>>>0>=(c[k>>2]|0)>>>0){n=0;da(212,i|0,o|0);f=n;n=0;if(f&1){f=32;break a}}else{c[f>>2]=e;c[j>>2]=(c[j>>2]|0)+4}g=g+1|0}}else{n=0;e=U(81,h|0,0)|0;g=n;n=0;if(g&1){f=33;break a}n=0;e=S(331,e|0)|0;g=n;n=0;if(g&1){f=33;break a}if(!(dub(e,c[37385]|0)|0)){f=44;break a}n=0;e=U(81,h|0,1)|0;h=n;n=0;if(h&1){f=33;break a}n=0;e=S(331,e|0)|0;h=n;n=0;if(h&1){f=33;break a}n=0;e=U(199,e|0,0)|0;h=n;n=0;if(h&1){f=33;break a}c[l>>2]=e}while(0);m=m+1|0}do if((f|0)==32){e=sa()|0;P()|0;f=35}else if((f|0)==33){e=sa()|0;P()|0;f=35}else if((f|0)==44){n=0;da(89,q|0,u|0);o=n;n=0;if(o&1){e=sa()|0;P()|0;f=35;break}n=0;e=U(136,q|0,c[b>>2]|0)|0;o=n;n=0;if(o&1){e=sa()|0;P()|0;Chb(q);break}o=p+24|0;c[o>>2]=c[e>>2];Chb(q);Xrb(u);q=m;o=c[o>>2]|0;u=c[b>>2]|0;c[s>>2]=o;c[r>>2]=c[s>>2];s=sQ(u,r)|0;s=s+4|0;s=c[s>>2]|0;u=p+4|0;c[u>>2]=s;u=xmb(d)|0;u=u+-1|0;Oja(b,d,q,u,p);u=xmb(d)|0;u=u+-1|0;d=Vr(d,u)|0;d=$db(b,d)|0;u=p+28|0;c[u>>2]=d;q5a(p);yb=t;return p|0}while(0);Xrb(u);u=e;Ea(u|0);return 0}function kg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=yb;yb=yb+368|0;i=t;q=t+360|0;u=t+216|0;v=t+72|0;m=t+60|0;r=t+48|0;s=t+36|0;o=t+24|0;h=Ada(b)|0;e=u+64|0;g=u+8|0;c[g>>2]=40176;c[u>>2]=31772;c[e>>2]=31792;c[u+4>>2]=0;Hoa(u+64|0,u+12|0);c[u+136>>2]=0;c[u+140>>2]=-1;c[u>>2]=40156;c[e>>2]=40196;c[g>>2]=40176;g=u+12|0;RKa(g);c[g>>2]=39800;e=u+44|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[e+(b<<2)>>2]=0;b=b+1|0}f=u+8|0;c[u+56>>2]=0;c[u+60>>2]=24;e=v+64|0;p=v+8|0;c[p>>2]=40176;c[v>>2]=31772;c[e>>2]=31792;c[v+4>>2]=0;Hoa(v+64|0,v+12|0);c[v+136>>2]=0;c[v+140>>2]=-1;c[v>>2]=40156;c[e>>2]=40196;c[p>>2]=40176;p=v+12|0;RKa(p);c[p>>2]=39800;e=v+44|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[e+(b<<2)>>2]=0;b=b+1|0}b=v+8|0;c[v+56>>2]=0;c[v+60>>2]=24;n=0;e=U(59,b|0,55712)|0;w=n;n=0;do if(((((((!(w&1)?(n=0,j=U(78,e|0,h|0)|0,w=n,n=0,!(w&1)):0)?(n=0,k=U(59,j|0,56513)|0,w=n,n=0,!(w&1)):0)?(n=0,l=U(59,k|0,56816)|0,w=n,n=0,!(w&1)):0)?(n=0,U(59,l|0,139929)|0,w=n,n=0,!(w&1)):0)?(n=0,c[i>>2]=c[d>>2],c[i+4>>2]=c[d+4>>2],c[i+8>>2]=c[d+8>>2],c[i+12>>2]=c[d+12>>2],c[i+16>>2]=c[d+16>>2],c[i+20>>2]=c[d+20>>2],ea(109,f|0,b|0,i|0),w=n,n=0,!(w&1)):0)?(n=0,U(59,b|0,56341)|0,w=n,n=0,!(w&1)):0)?(n=0,da(75,m|0,g|0),w=n,n=0,!(w&1)):0){w=a[m+11>>0]|0;w=((w<<24>>24<0?c[m+4>>2]|0:w&255)|0)==0;Chb(m);if(w){n=0;b=U(59,150452,113424)|0;w=n;n=0;if(w&1)break;n=0;da(75,o|0,p|0);w=n;n=0;if(w&1)break;n=0;U(61,b|0,o|0)|0;w=n;n=0;if(w&1){w=sa()|0;P()|0;Chb(o);c0a(v);c0a(u);Ea(w|0)}else{Chb(o);c0a(v);c0a(u);yb=t;return}}n=0;U(59,150452,56221)|0;w=n;n=0;if(!(w&1)){c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[r+(b<<2)>>2]=0;b=b+1|0}while(1){anb(q,u+(c[(c[u>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[q>>2]|0,151324)|0;w=n;n=0;if(w&1){e=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;w=n;n=0;if(w&1){e=23;break}XWa(q);n=0;V(51,u|0,r|0,b|0)|0;w=n;n=0;if(w&1){e=27;break}if(c[u+(c[(c[u>>2]|0)+-12>>2]|0)+16>>2]&5|0){e=33;break}n=0;b=U(59,150452,88806)|0;w=n;n=0;if(w&1){e=27;break}n=0;b=U(61,b|0,r|0)|0;w=n;n=0;if(w&1){e=27;break}n=0;U(59,b|0,127446)|0;w=n;n=0;if(w&1){e=27;break}}if((e|0)==23){b=sa()|0;P()|0;XWa(q)}else if((e|0)==27){b=sa()|0;P()|0}else if((e|0)==33){Chb(r);n=0;b=U(59,150452,88806)|0;w=n;n=0;if(w&1)break;n=0;da(75,s|0,p|0);w=n;n=0;if(w&1)break;n=0;U(61,b|0,s|0)|0;w=n;n=0;if(w&1){w=sa()|0;P()|0;Chb(s);c0a(v);c0a(u);Ea(w|0)}else{Chb(s);n=0;U(59,150452,56345)|0;w=n;n=0;if(w&1)break;c0a(v);c0a(u);yb=t;return}}Chb(r);w=b;c0a(v);c0a(u);Ea(w|0)}}while(0);w=sa()|0;P()|0;c0a(v);c0a(u);Ea(w|0)}function lg(b,d,e){b=b|0;d=d|0;e=e|0;do switch(e<<24>>24){case 103:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=0;break}case 121:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=1;break}case 104:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=2;break}case 122:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=3;break}case 105:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=4;break}case 123:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=5;break}case 69:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=20;break}case 80:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=21;break}case -116:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=6;break}case -102:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=7;break}case -117:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=8;break}case -103:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=9;break}case -115:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=10;break}case -101:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=11;break}case -114:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=12;break}case -100:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=13;break}case -112:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=16;break}case -98:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=17;break}case -111:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=18;break}case -97:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=19;break}case -77:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=37;break}case -72:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=38;break}case -78:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=35;break}case -73:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=36;break}case -75:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=41;break}case -70:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=42;break}case -76:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=39;break}case -71:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=40;break}case -84:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=22;break}case -83:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=23;break}case -89:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=24;break}case -87:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=27;break}case -85:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=31;break}case -88:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=25;break}case -86:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=29;break}case -81:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=28;break}case -79:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=32;break}case -82:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=26;break}case -80:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=30;break}case -113:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=14;break}case -99:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=15;break}case -74:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=44;break}case -69:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=43;break}case -68:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=33;break}case -67:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=34;break}case -66:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=45;break}case -65:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=46;break}case -64:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=47;break}case -63:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=48;break}case -62:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=49;break}case -61:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=50;break}case -60:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=51;break}default:{d=0;return d|0}}while(0);if(a[b+12>>0]&1)BM(IWa(150620,112791)|0);b=rl(b)|0;c[e+12>>2]=b;tu(e);c[d>>2]=e;d=1;return d|0}function mg(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,s=0;s=yb;yb=yb+64|0;e=s+60|0;f=s+56|0;h=s+16|0;p=s+8|0;o=s;q=b+4|0;gQa(c[b>>2]|0,c[q>>2]|0)|0;r=b+28|0;c[r>>2]=d;c[b+32>>2]=0;c[b+36>>2]=0;c[b+40>>2]=0;if(c[d+104>>2]|0)vv(b,(c[d+96>>2]|0)+16|0);SEa(c[b>>2]|0,40)|0;_cb(c[b>>2]|0,98030);g=d+8|0;c[f>>2]=c[g>>2];k=c[b>>2]|0;c[e>>2]=c[f>>2];Ica(e,k)|0;e=c[b+24>>2]|0;if(e|0?(a[b+8>>0]&1)==0:0){if(!(c[b+56>>2]|0)){bo(h,e);HG(b+44|0,h);i0a(h)}j=IWa(c[b>>2]|0,98036)|0;k=Om(b+44|0,g)|0;IWa(Ym(j,c[k>>2]|0)|0,98041)|0}k=b+21|0;if(((a[k>>0]&1)==0?c[d+48>>2]|0:0)?(a[b+8>>0]&1)==0:0)IWa(c[b>>2]|0,98045)|0;e=d+40|0;if(eCb(c[e>>2]|0)|0){j=IWa(IWa(c[b>>2]|0,c[b+12>>2]|0)|0,98065)|0;SEa(mpa(j,c[e>>2]|0)|0,41)|0}h=d+20|0;e=c[h>>2]|0;i=d+16|0;f=c[i>>2]|0;a:do if((e|0)!=(f|0)){j=b+12|0;g=0;while(1){if(g>>>0>=e-f>>2>>>0)break a;IWa(c[b>>2]|0,c[j>>2]|0)|0;SEa(c[b>>2]|0,40)|0;e=Obb(c[b>>2]|0,98072)|0;e=SEa(mpa(e,Eda(g,c[r>>2]|0)|0)|0,32)|0;SEa(IWa(e,ala(jka(d,g)|0)|0)|0,41)|0;g=g+1|0;e=c[h>>2]|0;f=c[i>>2]|0}}while(0);e=d+12|0;if(c[e>>2]|0){IWa(c[b>>2]|0,c[b+12>>2]|0)|0;SEa(c[b>>2]|0,40)|0;j=Obb(c[b>>2]|0,98079)|0;SEa(IWa(j,ala(c[e>>2]|0)|0)|0,41)|0}_Va(b);h=b+16|0;e=uob(d)|0;while(1){if(e>>>0>=(Icb(d)|0)>>>0)break;gQa(c[b>>2]|0,c[q>>2]|0)|0;SEa(c[b>>2]|0,40)|0;j=Obb(c[b>>2]|0,98087)|0;j=SEa(mpa(j,Eda(e,c[r>>2]|0)|0)|0,32)|0;SEa(IWa(j,ala(jka(d,e)|0)|0)|0,41)|0;IWa(c[b>>2]|0,c[h>>2]|0)|0;e=e+1|0}if((a[k>>0]&1)!=0?(l=c[d+48>>2]|0,(l|0)!=0):0)Rr(l,c[b>>2]|0,d);else m=25;b:do if((m|0)==25){e=d+44|0;if(((a[b+20>>0]&1)==0?(n=c[e>>2]|0,OBb(c[n>>2]|0)|0):0)?(n=(ufb(n)|0)+8|0,bCb(c[n>>2]|0)|0):0){f=(ufb(c[e>>2]|0)|0)+12|0;nrb(p,f);Hib(o,f);f=p+4|0;g=c[o>>2]|0;e=c[o+4>>2]|0;while(1){if(!(dhb(c[p>>2]|0,c[f>>2]|0,g,e)|0))break b;o=Qab(p)|0;sV(b,c[o>>2]|0);hob(p)}}sV(b,c[e>>2]|0)}while(0);e=c[r>>2]|0;if(c[e+116>>2]|0?okb(b+32|0,(c[e+108>>2]|0)+16|0)|0:0){gQa(c[b>>2]|0,c[q>>2]|0)|0;if(!(a[b+8>>0]&1))c[q>>2]=(c[q>>2]|0)+-1;vv(b,(c[(c[r>>2]|0)+108>>2]|0)+16|0);SEa(c[b>>2]|0,41)|0;q=c[b>>2]|0;r=c[h>>2]|0;IWa(q,r)|0;yb=s;return}y9(b);q=c[b>>2]|0;r=c[h>>2]|0;IWa(q,r)|0;yb=s;return}function ng(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;x=yb;yb=yb+80|0;k=x+64|0;z=x+52|0;r=x+48|0;u=x+36|0;s=x+32|0;t=x+28|0;y=x+16|0;v=x+4|0;w=x;yib(z);m=c[e+76>>2]|0;o=b+144|0;l=c[e+72>>2]|0;a:while(1){if((l|0)==(m|0)){g=25;break}p=l+8|0;q=l+4|0;j=0;while(1){f=c[q>>2]|0;if(j>>>0>=(c[p>>2]|0)-f>>2>>>0)break;h=c[f+(j<<2)>>2]|0;c[r>>2]=h;n=0;c[k>>2]=c[r>>2];f=U(64,e|0,k|0)|0;i=n;n=0;if(i&1){g=15;break a}n=0;da(81,u|0,f|0);i=n;n=0;if(i&1){g=15;break a}n=0;i=U(65,z|0,u|0)|0;g=n;n=0;if(g&1){g=18;break a}b:do if((c[i+4>>2]|0)==(c[i>>2]|0)){n=0;da(82,i|0,c[o>>2]|0);g=n;n=0;if(g&1){g=18;break a}f=0;while(1){if(f>>>0>=(c[o>>2]|0)>>>0)break b;c[s>>2]=h;n=0;c[k>>2]=c[s>>2];g=V(39,b|0,k|0,0)|0;A=n;n=0;if(A&1){g=17;break a}c[(c[i>>2]|0)+(f<<2)>>2]=g;f=f+1|0}}else{c[t>>2]=h;n=0;c[k>>2]=c[t>>2];f=V(39,b|0,k|0,0)|0;A=n;n=0;if(A&1){g=18;break a}n=0;g=S(221,c[l>>2]|0)|0;P()|0;A=n;n=0;if(A&1){g=18;break a}c[(c[i>>2]|0)+(j+g<<2)>>2]=f}while(0);Chb(u);j=j+1|0}l=l+16|0}do if((g|0)==15){f=sa()|0;P()|0;g=16}else if((g|0)==17){f=sa()|0;P()|0;g=19}else if((g|0)==18){f=sa()|0;P()|0;g=19}else if((g|0)==25){l=z+4|0;b=y+11|0;f=c[z>>2]|0;c:while(1){if((l|0)==(f|0)){g=58;break}i=f;g=i+16|0;k=i+28|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;A=Zzb(51485)|0;n=0;ea(95,v|0,51485,A|0);A=n;n=0;if(A&1){g=14;break}h=a[g+11>>0]|0;if(h<<24>>24<0){g=c[g>>2]|0;h=c[i+20>>2]|0}else h=h&255;n=0;V(43,v|0,g|0,h|0)|0;A=n;n=0;if(A&1){g=45;break}c[y>>2]=c[v>>2];c[y+4>>2]=c[v+4>>2];c[y+8>>2]=c[v+8>>2];g=0;while(1){if((g|0)==3)break;c[v+(g<<2)>>2]=0;g=g+1|0}Chb(v);n=0;ea(101,w|0,((a[b>>0]|0)<0?c[y>>2]|0:y)|0,0);A=n;n=0;if(A&1){g=47;break}n=0;g=Q(2)|0;A=n;n=0;if(A&1){g=47;break}A=WCb(d)|0;n=0;U(57,A|0,g|0)|0;A=n;n=0;if(A&1){g=47;break}n=0;j=Q(3)|0;A=n;n=0;if(A&1){g=47;break}n=0;ea(102,g|0,c[w>>2]|0,j|0);A=n;n=0;if(A&1){g=47;break}i=c[i+32>>2]|0;g=c[k>>2]|0;while(1){h=g;if((i|0)==(h|0))break;n=0;g=S(219,c[g>>2]|0)|0;A=n;n=0;if(A&1){g=46;break c}n=0;da(83,j|0,g|0);A=n;n=0;if(A&1){g=46;break c}g=h+4|0}Chb(y);g=f;f=c[g+4>>2]|0;d:do if(!f)while(1){f=c[g+8>>2]|0;if((g|0)==(c[f>>2]|0))break d;g=f}else while(1){g=c[f>>2]|0;if(!g)break;f=g}while(0)}if((g|0)==14){f=sa()|0;P()|0;g=16;break}else if((g|0)==45){A=sa()|0;P()|0;Chb(v);Jua(z);Ea(A|0)}else if((g|0)==46){f=sa()|0;P()|0}else if((g|0)==47){f=sa()|0;P()|0}else if((g|0)==58){Jua(z);yb=x;return}Chb(y);A=f;Jua(z);Ea(A|0)}while(0);if((g|0)==16){A=f;Jua(z);Ea(A|0)}else if((g|0)==19){Chb(u);A=f;Jua(z);Ea(A|0)}}function og(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;w=yb;yb=yb+352|0;t=w+336|0;x=w+192|0;y=w+48|0;m=w+36|0;u=w+24|0;v=w+12|0;r=w;k=Ada(b)|0;j=x+64|0;l=x+8|0;c[l>>2]=40176;c[x>>2]=31772;c[j>>2]=31792;c[x+4>>2]=0;Hoa(x+64|0,x+12|0);c[x+136>>2]=0;c[x+140>>2]=-1;c[x>>2]=40156;c[j>>2]=40196;c[l>>2]=40176;l=x+12|0;RKa(l);c[l>>2]=39800;j=x+44|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[j+(b<<2)>>2]=0;b=b+1|0}c[x+56>>2]=0;c[x+60>>2]=24;j=y+64|0;s=y+8|0;c[s>>2]=40176;c[y>>2]=31772;c[j>>2]=31792;c[y+4>>2]=0;Hoa(y+64|0,y+12|0);c[y+136>>2]=0;c[y+140>>2]=-1;c[y>>2]=40156;c[j>>2]=40196;c[s>>2]=40176;s=y+12|0;RKa(s);c[s>>2]=39800;j=y+44|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[j+(b<<2)>>2]=0;b=b+1|0}b=y+8|0;c[y+56>>2]=0;c[y+60>>2]=24;n=0;j=U(59,b|0,55712)|0;z=n;n=0;do if(((((((!(z&1)?(n=0,o=U(78,j|0,k|0)|0,z=n,n=0,!(z&1)):0)?(n=0,p=U(59,o|0,56513)|0,z=n,n=0,!(z&1)):0)?(n=0,q=U(59,p|0,57081)|0,z=n,n=0,!(z&1)):0)?(n=0,U(59,q|0,139929)|0,z=n,n=0,!(z&1)):0)?(n=0,ia(4,b|0,d|0,e|0,f|0,g|0,h|0,i|0),z=n,n=0,!(z&1)):0)?(n=0,U(59,b|0,56341)|0,z=n,n=0,!(z&1)):0)?(n=0,da(75,m|0,l|0),z=n,n=0,!(z&1)):0){z=a[m+11>>0]|0;z=((z<<24>>24<0?c[m+4>>2]|0:z&255)|0)==0;Chb(m);if(z){n=0;b=U(59,150452,113424)|0;z=n;n=0;if(z&1)break;n=0;da(75,r|0,s|0);z=n;n=0;if(z&1)break;n=0;U(61,b|0,r|0)|0;z=n;n=0;if(z&1){z=sa()|0;P()|0;Chb(r);c0a(y);c0a(x);Ea(z|0)}else{Chb(r);c0a(y);c0a(x);yb=w;return}}n=0;U(59,150452,56221)|0;z=n;n=0;if(!(z&1)){c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[u+(b<<2)>>2]=0;b=b+1|0}while(1){anb(t,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[t>>2]|0,151324)|0;z=n;n=0;if(z&1){j=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;z=n;n=0;if(z&1){j=23;break}XWa(t);n=0;V(51,x|0,u|0,b|0)|0;z=n;n=0;if(z&1){j=27;break}if(c[x+(c[(c[x>>2]|0)+-12>>2]|0)+16>>2]&5|0){j=33;break}n=0;b=U(59,150452,88806)|0;z=n;n=0;if(z&1){j=27;break}n=0;b=U(61,b|0,u|0)|0;z=n;n=0;if(z&1){j=27;break}n=0;U(59,b|0,127446)|0;z=n;n=0;if(z&1){j=27;break}}if((j|0)==23){b=sa()|0;P()|0;XWa(t)}else if((j|0)==27){b=sa()|0;P()|0}else if((j|0)==33){Chb(u);n=0;b=U(59,150452,88806)|0;z=n;n=0;if(z&1)break;n=0;da(75,v|0,s|0);z=n;n=0;if(z&1)break;n=0;U(61,b|0,v|0)|0;z=n;n=0;if(z&1){z=sa()|0;P()|0;Chb(v);c0a(y);c0a(x);Ea(z|0)}else{Chb(v);n=0;U(59,150452,56345)|0;z=n;n=0;if(z&1)break;c0a(y);c0a(x);yb=w;return}}Chb(u);z=b;c0a(y);c0a(x);Ea(z|0)}}while(0);z=sa()|0;P()|0;c0a(y);c0a(x);Ea(z|0)}function pg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;w=yb;yb=yb+352|0;t=w+336|0;x=w+192|0;y=w+48|0;m=w+36|0;u=w+24|0;v=w+12|0;r=w;k=Ada(b)|0;j=x+64|0;l=x+8|0;c[l>>2]=40176;c[x>>2]=31772;c[j>>2]=31792;c[x+4>>2]=0;Hoa(x+64|0,x+12|0);c[x+136>>2]=0;c[x+140>>2]=-1;c[x>>2]=40156;c[j>>2]=40196;c[l>>2]=40176;l=x+12|0;RKa(l);c[l>>2]=39800;j=x+44|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[j+(b<<2)>>2]=0;b=b+1|0}c[x+56>>2]=0;c[x+60>>2]=24;j=y+64|0;s=y+8|0;c[s>>2]=40176;c[y>>2]=31772;c[j>>2]=31792;c[y+4>>2]=0;Hoa(y+64|0,y+12|0);c[y+136>>2]=0;c[y+140>>2]=-1;c[y>>2]=40156;c[j>>2]=40196;c[s>>2]=40176;s=y+12|0;RKa(s);c[s>>2]=39800;j=y+44|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[j+(b<<2)>>2]=0;b=b+1|0}b=y+8|0;c[y+56>>2]=0;c[y+60>>2]=24;n=0;j=U(59,b|0,55712)|0;z=n;n=0;do if(((((((!(z&1)?(n=0,o=U(78,j|0,k|0)|0,z=n,n=0,!(z&1)):0)?(n=0,p=U(59,o|0,56513)|0,z=n,n=0,!(z&1)):0)?(n=0,q=U(59,p|0,56802)|0,z=n,n=0,!(z&1)):0)?(n=0,U(59,q|0,139929)|0,z=n,n=0,!(z&1)):0)?(n=0,ia(2,b|0,d|0,e|0,f|0,g|0,h|0,i|0),z=n,n=0,!(z&1)):0)?(n=0,U(59,b|0,56341)|0,z=n,n=0,!(z&1)):0)?(n=0,da(75,m|0,l|0),z=n,n=0,!(z&1)):0){z=a[m+11>>0]|0;z=((z<<24>>24<0?c[m+4>>2]|0:z&255)|0)==0;Chb(m);if(z){n=0;b=U(59,150452,113424)|0;z=n;n=0;if(z&1)break;n=0;da(75,r|0,s|0);z=n;n=0;if(z&1)break;n=0;U(61,b|0,r|0)|0;z=n;n=0;if(z&1){z=sa()|0;P()|0;Chb(r);c0a(y);c0a(x);Ea(z|0)}else{Chb(r);c0a(y);c0a(x);yb=w;return}}n=0;U(59,150452,56221)|0;z=n;n=0;if(!(z&1)){c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[u+(b<<2)>>2]=0;b=b+1|0}while(1){anb(t,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[t>>2]|0,151324)|0;z=n;n=0;if(z&1){j=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;z=n;n=0;if(z&1){j=23;break}XWa(t);n=0;V(51,x|0,u|0,b|0)|0;z=n;n=0;if(z&1){j=27;break}if(c[x+(c[(c[x>>2]|0)+-12>>2]|0)+16>>2]&5|0){j=33;break}n=0;b=U(59,150452,88806)|0;z=n;n=0;if(z&1){j=27;break}n=0;b=U(61,b|0,u|0)|0;z=n;n=0;if(z&1){j=27;break}n=0;U(59,b|0,127446)|0;z=n;n=0;if(z&1){j=27;break}}if((j|0)==23){b=sa()|0;P()|0;XWa(t)}else if((j|0)==27){b=sa()|0;P()|0}else if((j|0)==33){Chb(u);n=0;b=U(59,150452,88806)|0;z=n;n=0;if(z&1)break;n=0;da(75,v|0,s|0);z=n;n=0;if(z&1)break;n=0;U(61,b|0,v|0)|0;z=n;n=0;if(z&1){z=sa()|0;P()|0;Chb(v);c0a(y);c0a(x);Ea(z|0)}else{Chb(v);n=0;U(59,150452,56345)|0;z=n;n=0;if(z&1)break;c0a(y);c0a(x);yb=w;return}}Chb(u);z=b;c0a(y);c0a(x);Ea(z|0)}}while(0);z=sa()|0;P()|0;c0a(y);c0a(x);Ea(z|0)}function qg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;w=yb;yb=yb+352|0;t=w+336|0;x=w+192|0;y=w+48|0;m=w+36|0;u=w+24|0;v=w+12|0;r=w;k=Ada(b)|0;j=x+64|0;l=x+8|0;c[l>>2]=40176;c[x>>2]=31772;c[j>>2]=31792;c[x+4>>2]=0;Hoa(x+64|0,x+12|0);c[x+136>>2]=0;c[x+140>>2]=-1;c[x>>2]=40156;c[j>>2]=40196;c[l>>2]=40176;l=x+12|0;RKa(l);c[l>>2]=39800;j=x+44|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[j+(b<<2)>>2]=0;b=b+1|0}c[x+56>>2]=0;c[x+60>>2]=24;j=y+64|0;s=y+8|0;c[s>>2]=40176;c[y>>2]=31772;c[j>>2]=31792;c[y+4>>2]=0;Hoa(y+64|0,y+12|0);c[y+136>>2]=0;c[y+140>>2]=-1;c[y>>2]=40156;c[j>>2]=40196;c[s>>2]=40176;s=y+12|0;RKa(s);c[s>>2]=39800;j=y+44|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[j+(b<<2)>>2]=0;b=b+1|0}b=y+8|0;c[y+56>>2]=0;c[y+60>>2]=24;n=0;j=U(59,b|0,55712)|0;z=n;n=0;do if(((((((!(z&1)?(n=0,o=U(78,j|0,k|0)|0,z=n,n=0,!(z&1)):0)?(n=0,p=U(59,o|0,56513)|0,z=n,n=0,!(z&1)):0)?(n=0,q=U(59,p|0,57063)|0,z=n,n=0,!(z&1)):0)?(n=0,U(59,q|0,139929)|0,z=n,n=0,!(z&1)):0)?(n=0,ia(3,b|0,d|0,e|0,f|0,g|0,h|0,i|0),z=n,n=0,!(z&1)):0)?(n=0,U(59,b|0,56341)|0,z=n,n=0,!(z&1)):0)?(n=0,da(75,m|0,l|0),z=n,n=0,!(z&1)):0){z=a[m+11>>0]|0;z=((z<<24>>24<0?c[m+4>>2]|0:z&255)|0)==0;Chb(m);if(z){n=0;b=U(59,150452,113424)|0;z=n;n=0;if(z&1)break;n=0;da(75,r|0,s|0);z=n;n=0;if(z&1)break;n=0;U(61,b|0,r|0)|0;z=n;n=0;if(z&1){z=sa()|0;P()|0;Chb(r);c0a(y);c0a(x);Ea(z|0)}else{Chb(r);c0a(y);c0a(x);yb=w;return}}n=0;U(59,150452,56221)|0;z=n;n=0;if(!(z&1)){c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[u+(b<<2)>>2]=0;b=b+1|0}while(1){anb(t,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[t>>2]|0,151324)|0;z=n;n=0;if(z&1){j=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;z=n;n=0;if(z&1){j=23;break}XWa(t);n=0;V(51,x|0,u|0,b|0)|0;z=n;n=0;if(z&1){j=27;break}if(c[x+(c[(c[x>>2]|0)+-12>>2]|0)+16>>2]&5|0){j=33;break}n=0;b=U(59,150452,88806)|0;z=n;n=0;if(z&1){j=27;break}n=0;b=U(61,b|0,u|0)|0;z=n;n=0;if(z&1){j=27;break}n=0;U(59,b|0,127446)|0;z=n;n=0;if(z&1){j=27;break}}if((j|0)==23){b=sa()|0;P()|0;XWa(t)}else if((j|0)==27){b=sa()|0;P()|0}else if((j|0)==33){Chb(u);n=0;b=U(59,150452,88806)|0;z=n;n=0;if(z&1)break;n=0;da(75,v|0,s|0);z=n;n=0;if(z&1)break;n=0;U(61,b|0,v|0)|0;z=n;n=0;if(z&1){z=sa()|0;P()|0;Chb(v);c0a(y);c0a(x);Ea(z|0)}else{Chb(v);n=0;U(59,150452,56345)|0;z=n;n=0;if(z&1)break;c0a(y);c0a(x);yb=w;return}}Chb(u);z=b;c0a(y);c0a(x);Ea(z|0)}}while(0);z=sa()|0;P()|0;c0a(y);c0a(x);Ea(z|0)}function rg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;w=yb;yb=yb+352|0;t=w+336|0;x=w+192|0;y=w+48|0;m=w+36|0;u=w+24|0;v=w+12|0;r=w;k=Ada(b)|0;j=x+64|0;l=x+8|0;c[l>>2]=40176;c[x>>2]=31772;c[j>>2]=31792;c[x+4>>2]=0;Hoa(x+64|0,x+12|0);c[x+136>>2]=0;c[x+140>>2]=-1;c[x>>2]=40156;c[j>>2]=40196;c[l>>2]=40176;l=x+12|0;RKa(l);c[l>>2]=39800;j=x+44|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[j+(b<<2)>>2]=0;b=b+1|0}c[x+56>>2]=0;c[x+60>>2]=24;j=y+64|0;s=y+8|0;c[s>>2]=40176;c[y>>2]=31772;c[j>>2]=31792;c[y+4>>2]=0;Hoa(y+64|0,y+12|0);c[y+136>>2]=0;c[y+140>>2]=-1;c[y>>2]=40156;c[j>>2]=40196;c[s>>2]=40176;s=y+12|0;RKa(s);c[s>>2]=39800;j=y+44|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[j+(b<<2)>>2]=0;b=b+1|0}b=y+8|0;c[y+56>>2]=0;c[y+60>>2]=24;n=0;j=U(59,b|0,55712)|0;z=n;n=0;do if(((((((!(z&1)?(n=0,o=U(78,j|0,k|0)|0,z=n,n=0,!(z&1)):0)?(n=0,p=U(59,o|0,56513)|0,z=n,n=0,!(z&1)):0)?(n=0,q=U(59,p|0,56789)|0,z=n,n=0,!(z&1)):0)?(n=0,U(59,q|0,139929)|0,z=n,n=0,!(z&1)):0)?(n=0,ia(1,b|0,d|0,e|0,f|0,g|0,h|0,i|0),z=n,n=0,!(z&1)):0)?(n=0,U(59,b|0,56341)|0,z=n,n=0,!(z&1)):0)?(n=0,da(75,m|0,l|0),z=n,n=0,!(z&1)):0){z=a[m+11>>0]|0;z=((z<<24>>24<0?c[m+4>>2]|0:z&255)|0)==0;Chb(m);if(z){n=0;b=U(59,150452,113424)|0;z=n;n=0;if(z&1)break;n=0;da(75,r|0,s|0);z=n;n=0;if(z&1)break;n=0;U(61,b|0,r|0)|0;z=n;n=0;if(z&1){z=sa()|0;P()|0;Chb(r);c0a(y);c0a(x);Ea(z|0)}else{Chb(r);c0a(y);c0a(x);yb=w;return}}n=0;U(59,150452,56221)|0;z=n;n=0;if(!(z&1)){c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[u+(b<<2)>>2]=0;b=b+1|0}while(1){anb(t,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[t>>2]|0,151324)|0;z=n;n=0;if(z&1){j=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;z=n;n=0;if(z&1){j=23;break}XWa(t);n=0;V(51,x|0,u|0,b|0)|0;z=n;n=0;if(z&1){j=27;break}if(c[x+(c[(c[x>>2]|0)+-12>>2]|0)+16>>2]&5|0){j=33;break}n=0;b=U(59,150452,88806)|0;z=n;n=0;if(z&1){j=27;break}n=0;b=U(61,b|0,u|0)|0;z=n;n=0;if(z&1){j=27;break}n=0;U(59,b|0,127446)|0;z=n;n=0;if(z&1){j=27;break}}if((j|0)==23){b=sa()|0;P()|0;XWa(t)}else if((j|0)==27){b=sa()|0;P()|0}else if((j|0)==33){Chb(u);n=0;b=U(59,150452,88806)|0;z=n;n=0;if(z&1)break;n=0;da(75,v|0,s|0);z=n;n=0;if(z&1)break;n=0;U(61,b|0,v|0)|0;z=n;n=0;if(z&1){z=sa()|0;P()|0;Chb(v);c0a(y);c0a(x);Ea(z|0)}else{Chb(v);n=0;U(59,150452,56345)|0;z=n;n=0;if(z&1)break;c0a(y);c0a(x);yb=w;return}}Chb(u);z=b;c0a(y);c0a(x);Ea(z|0)}}while(0);z=sa()|0;P()|0;c0a(y);c0a(x);Ea(z|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,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;x=yb;yb=yb+240|0;w=x+192|0;u=x+160|0;A=x+220|0;y=x+208|0;v=x+204|0;r=x;s=x+200|0;t=x+196|0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[A+(b<<2)>>2]=0;b=b+1|0}anb(y,f);n=0;b=U(66,c[y>>2]|0,151324)|0;q=n;n=0;if(!(q&1)?(n=0,W(c[(c[b>>2]|0)+32>>2]|0,b|0,31216,31242,u|0)|0,q=n,n=0,!(q&1)):0){XWa(y);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}q=y+11|0;if((a[q>>0]|0)<0)b=(c[y+8>>2]&2147483647)+-1|0;else b=10;n=0;da(92,y|0,b|0);p=n;n=0;if(p&1){b=sa()|0;P()|0}else{b=(a[q>>0]|0)<0?c[y>>2]|0:y;c[v>>2]=b;c[s>>2]=r;c[t>>2]=0;o=y+4|0;p=y+8|0;i=c[d>>2]|0;j=i;a:while(1){if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0)){n=0;f=S(c[(c[i>>2]|0)+36>>2]|0,i|0)|0;m=n;n=0;if(m&1){z=35;break}}else f=Qzb(a[f>>0]|0)|0;if(dub(f,-1)|0){c[d>>2]=0;m=0;j=0;k=1}else{m=i;k=0}}else{m=0;j=0;k=1}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0)){n=0;f=S(c[(c[i>>2]|0)+36>>2]|0,i|0)|0;l=n;n=0;if(l&1){z=35;break a}}else f=Qzb(a[f>>0]|0)|0;if(!(dub(f,-1)|0))if(k)break;else{z=46;break a}else{c[e>>2]=0;z=25;break}}else z=25;while(0);if((z|0)==25){z=0;if(k){i=0;z=46;break}else i=0}f=a[q>>0]|0;f=f<<24>>24<0?c[o>>2]|0:f&255;if((c[v>>2]|0)==(b+f|0)){n=0;da(92,y|0,f<<1|0);l=n;n=0;if(l&1){z=37;break}if((a[q>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;n=0;da(92,y|0,b|0);l=n;n=0;if(l&1){z=37;break}b=(a[q>>0]|0)<0?c[y>>2]|0:y;c[v>>2]=b+f}k=m+12|0;f=c[k>>2]|0;l=m+16|0;if((f|0)==(c[l>>2]|0)){n=0;f=S(c[(c[m>>2]|0)+36>>2]|0,m|0)|0;B=n;n=0;if(B&1){z=35;break}}else f=Qzb(a[f>>0]|0)|0;if(Os(f&255,16,b,v,t,0,A,r,s,u)|0){z=46;break}f=c[k>>2]|0;if((f|0)==(c[l>>2]|0)){n=0;S(c[(c[m>>2]|0)+40>>2]|0,m|0)|0;B=n;n=0;if(B&1){z=35;break}}else c[k>>2]=f+1;i=m}if((z|0)==35){b=sa()|0;P()|0}else if((z|0)==37){b=sa()|0;P()|0}else if((z|0)==46){n=0;da(92,y|0,(c[v>>2]|0)-b|0);B=n;n=0;b:do if(!(B&1)){u=a[q>>0]|0;v=c[y>>2]|0;B=t8a()|0;c[w>>2]=h;if((uDa(u<<24>>24<0?v:y,B,0,w)|0)!=1)c[g>>2]=4;if(m){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0)){n=0;b=S(c[(c[j>>2]|0)+36>>2]|0,m|0)|0;B=n;n=0;if(B&1)break}else b=Qzb(a[b>>0]|0)|0;if(dub(b,-1)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0)){n=0;b=S(c[(c[i>>2]|0)+36>>2]|0,i|0)|0;B=n;n=0;if(B&1)break b}else b=Qzb(a[b>>0]|0)|0;if(!(dub(b,-1)|0))if(f)break;else{z=63;break}else{c[e>>2]=0;z=61;break}}else z=61;while(0);if((z|0)==61?f:0)z=63;if((z|0)==63)c[g>>2]=c[g>>2]|2;B=c[d>>2]|0;Chb(y);Chb(A);yb=x;return B|0}while(0);b=sa()|0;P()|0}}Chb(y)}else{b=sa()|0;P()|0;XWa(y)}Chb(A);Ea(b|0);return 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,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;v=yb;yb=yb+352|0;s=v+336|0;w=v+192|0;x=v+48|0;p=v+36|0;t=v+24|0;u=v+12|0;q=v;j=Ada(b)|0;i=w+64|0;k=w+8|0;c[k>>2]=40176;c[w>>2]=31772;c[i>>2]=31792;c[w+4>>2]=0;Hoa(w+64|0,w+12|0);c[w+136>>2]=0;c[w+140>>2]=-1;c[w>>2]=40156;c[i>>2]=40196;c[k>>2]=40176;k=w+12|0;RKa(k);c[k>>2]=39800;i=w+44|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[i+(b<<2)>>2]=0;b=b+1|0}c[w+56>>2]=0;c[w+60>>2]=24;i=x+64|0;r=x+8|0;c[r>>2]=40176;c[x>>2]=31772;c[i>>2]=31792;c[x+4>>2]=0;Hoa(x+64|0,x+12|0);c[x+136>>2]=0;c[x+140>>2]=-1;c[x>>2]=40156;c[i>>2]=40196;c[r>>2]=40176;r=x+12|0;RKa(r);c[r>>2]=39800;i=x+44|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[i+(b<<2)>>2]=0;b=b+1|0}b=x+8|0;c[x+56>>2]=0;c[x+60>>2]=24;n=0;i=U(59,b|0,55712)|0;y=n;n=0;do if(((((((!(y&1)?(n=0,l=U(78,i|0,j|0)|0,y=n,n=0,!(y&1)):0)?(n=0,m=U(59,l|0,56513)|0,y=n,n=0,!(y&1)):0)?(n=0,o=U(59,m|0,56966)|0,y=n,n=0,!(y&1)):0)?(n=0,U(59,o|0,139929)|0,y=n,n=0,!(y&1)):0)?(n=0,ha(12,b|0,d|0,e|0,f|0,g|0,h|0),y=n,n=0,!(y&1)):0)?(n=0,U(59,b|0,56341)|0,y=n,n=0,!(y&1)):0)?(n=0,da(75,p|0,k|0),y=n,n=0,!(y&1)):0){y=a[p+11>>0]|0;y=((y<<24>>24<0?c[p+4>>2]|0:y&255)|0)==0;Chb(p);if(y){n=0;b=U(59,150452,113424)|0;y=n;n=0;if(y&1)break;n=0;da(75,q|0,r|0);y=n;n=0;if(y&1)break;n=0;U(61,b|0,q|0)|0;y=n;n=0;if(y&1){y=sa()|0;P()|0;Chb(q);c0a(x);c0a(w);Ea(y|0)}else{Chb(q);c0a(x);c0a(w);yb=v;return}}n=0;U(59,150452,56221)|0;y=n;n=0;if(!(y&1)){c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[t+(b<<2)>>2]=0;b=b+1|0}while(1){anb(s,w+(c[(c[w>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[s>>2]|0,151324)|0;y=n;n=0;if(y&1){i=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;y=n;n=0;if(y&1){i=23;break}XWa(s);n=0;V(51,w|0,t|0,b|0)|0;y=n;n=0;if(y&1){i=27;break}if(c[w+(c[(c[w>>2]|0)+-12>>2]|0)+16>>2]&5|0){i=33;break}n=0;b=U(59,150452,88806)|0;y=n;n=0;if(y&1){i=27;break}n=0;b=U(61,b|0,t|0)|0;y=n;n=0;if(y&1){i=27;break}n=0;U(59,b|0,127446)|0;y=n;n=0;if(y&1){i=27;break}}if((i|0)==23){b=sa()|0;P()|0;XWa(s)}else if((i|0)==27){b=sa()|0;P()|0}else if((i|0)==33){Chb(t);n=0;b=U(59,150452,88806)|0;y=n;n=0;if(y&1)break;n=0;da(75,u|0,r|0);y=n;n=0;if(y&1)break;n=0;U(61,b|0,u|0)|0;y=n;n=0;if(y&1){y=sa()|0;P()|0;Chb(u);c0a(x);c0a(w);Ea(y|0)}else{Chb(u);n=0;U(59,150452,56345)|0;y=n;n=0;if(y&1)break;c0a(x);c0a(w);yb=v;return}}Chb(t);y=b;c0a(x);c0a(w);Ea(y|0)}}while(0);y=sa()|0;P()|0;c0a(x);c0a(w);Ea(y|0)}function ug(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;v=yb;yb=yb+352|0;s=v+336|0;w=v+192|0;x=v+48|0;p=v+36|0;u=v+24|0;t=v+12|0;q=v;j=Ada(b)|0;i=w+64|0;k=w+8|0;c[k>>2]=40176;c[w>>2]=31772;c[i>>2]=31792;c[w+4>>2]=0;Hoa(w+64|0,w+12|0);c[w+136>>2]=0;c[w+140>>2]=-1;c[w>>2]=40156;c[i>>2]=40196;c[k>>2]=40176;k=w+12|0;RKa(k);c[k>>2]=39800;i=w+44|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[i+(b<<2)>>2]=0;b=b+1|0}c[w+56>>2]=0;c[w+60>>2]=24;i=x+64|0;r=x+8|0;c[r>>2]=40176;c[x>>2]=31772;c[i>>2]=31792;c[x+4>>2]=0;Hoa(x+64|0,x+12|0);c[x+136>>2]=0;c[x+140>>2]=-1;c[x>>2]=40156;c[i>>2]=40196;c[r>>2]=40176;r=x+12|0;RKa(r);c[r>>2]=39800;i=x+44|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[i+(b<<2)>>2]=0;b=b+1|0}b=x+8|0;c[x+56>>2]=0;c[x+60>>2]=24;n=0;i=U(59,b|0,55712)|0;y=n;n=0;do if(((((((!(y&1)?(n=0,l=U(78,i|0,j|0)|0,y=n,n=0,!(y&1)):0)?(n=0,m=U(59,l|0,56513)|0,y=n,n=0,!(y&1)):0)?(n=0,o=U(59,m|0,d|0)|0,y=n,n=0,!(y&1)):0)?(n=0,U(59,o|0,139929)|0,y=n,n=0,!(y&1)):0)?(n=0,ga(5,b|0,e|0,f|0,g|0,h|0),y=n,n=0,!(y&1)):0)?(n=0,U(59,b|0,56341)|0,y=n,n=0,!(y&1)):0)?(n=0,da(75,p|0,k|0),y=n,n=0,!(y&1)):0){y=a[p+11>>0]|0;y=((y<<24>>24<0?c[p+4>>2]|0:y&255)|0)==0;Chb(p);if(y){n=0;b=U(59,150452,113424)|0;y=n;n=0;if(y&1)break;n=0;da(75,q|0,r|0);y=n;n=0;if(y&1)break;n=0;U(61,b|0,q|0)|0;y=n;n=0;if(y&1){y=sa()|0;P()|0;Chb(q);c0a(x);c0a(w);Ea(y|0)}else{Chb(q);c0a(x);c0a(w);yb=v;return}}n=0;U(59,150452,56221)|0;y=n;n=0;if(!(y&1)){c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[u+(b<<2)>>2]=0;b=b+1|0}while(1){anb(s,w+(c[(c[w>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[s>>2]|0,151324)|0;y=n;n=0;if(y&1){i=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;y=n;n=0;if(y&1){i=23;break}XWa(s);n=0;V(51,w|0,u|0,b|0)|0;y=n;n=0;if(y&1){i=27;break}if(c[w+(c[(c[w>>2]|0)+-12>>2]|0)+16>>2]&5|0){i=33;break}n=0;b=U(59,150452,88806)|0;y=n;n=0;if(y&1){i=27;break}n=0;b=U(61,b|0,u|0)|0;y=n;n=0;if(y&1){i=27;break}n=0;U(59,b|0,127446)|0;y=n;n=0;if(y&1){i=27;break}}if((i|0)==23){b=sa()|0;P()|0;XWa(s)}else if((i|0)==27){b=sa()|0;P()|0}else if((i|0)==33){Chb(u);n=0;b=U(59,150452,88806)|0;y=n;n=0;if(y&1)break;n=0;da(75,t|0,r|0);y=n;n=0;if(y&1)break;n=0;U(61,b|0,t|0)|0;y=n;n=0;if(y&1){y=sa()|0;P()|0;Chb(t);c0a(x);c0a(w);Ea(y|0)}else{Chb(t);n=0;U(59,150452,56345)|0;y=n;n=0;if(y&1)break;c0a(x);c0a(w);yb=v;return}}Chb(u);y=b;c0a(x);c0a(w);Ea(y|0)}}while(0);y=sa()|0;P()|0;c0a(x);c0a(w);Ea(y|0)}function vg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;u=yb;yb=yb+352|0;r=u+336|0;v=u+192|0;w=u+48|0;o=u+36|0;s=u+24|0;t=u+12|0;p=u;i=Ada(b)|0;h=v+64|0;j=v+8|0;c[j>>2]=40176;c[v>>2]=31772;c[h>>2]=31792;c[v+4>>2]=0;Hoa(v+64|0,v+12|0);c[v+136>>2]=0;c[v+140>>2]=-1;c[v>>2]=40156;c[h>>2]=40196;c[j>>2]=40176;j=v+12|0;RKa(j);c[j>>2]=39800;h=v+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}c[v+56>>2]=0;c[v+60>>2]=24;h=w+64|0;q=w+8|0;c[q>>2]=40176;c[w>>2]=31772;c[h>>2]=31792;c[w+4>>2]=0;Hoa(w+64|0,w+12|0);c[w+136>>2]=0;c[w+140>>2]=-1;c[w>>2]=40156;c[h>>2]=40196;c[q>>2]=40176;q=w+12|0;RKa(q);c[q>>2]=39800;h=w+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}b=w+8|0;c[w+56>>2]=0;c[w+60>>2]=24;n=0;h=U(59,b|0,55712)|0;x=n;n=0;do if(((((((!(x&1)?(n=0,k=U(78,h|0,i|0)|0,x=n,n=0,!(x&1)):0)?(n=0,l=U(59,k|0,56513)|0,x=n,n=0,!(x&1)):0)?(n=0,m=U(59,l|0,56596)|0,x=n,n=0,!(x&1)):0)?(n=0,U(59,m|0,139929)|0,x=n,n=0,!(x&1)):0)?(n=0,ha(11,b|0,56611,d|0,e|0,f|0,g|0),x=n,n=0,!(x&1)):0)?(n=0,U(59,b|0,56341)|0,x=n,n=0,!(x&1)):0)?(n=0,da(75,o|0,j|0),x=n,n=0,!(x&1)):0){x=a[o+11>>0]|0;x=((x<<24>>24<0?c[o+4>>2]|0:x&255)|0)==0;Chb(o);if(x){n=0;b=U(59,150452,113424)|0;x=n;n=0;if(x&1)break;n=0;da(75,p|0,q|0);x=n;n=0;if(x&1)break;n=0;U(61,b|0,p|0)|0;x=n;n=0;if(x&1){x=sa()|0;P()|0;Chb(p);c0a(w);c0a(v);Ea(x|0)}else{Chb(p);c0a(w);c0a(v);yb=u;return}}n=0;U(59,150452,56221)|0;x=n;n=0;if(!(x&1)){c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[s+(b<<2)>>2]=0;b=b+1|0}while(1){anb(r,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[r>>2]|0,151324)|0;x=n;n=0;if(x&1){h=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;x=n;n=0;if(x&1){h=23;break}XWa(r);n=0;V(51,v|0,s|0,b|0)|0;x=n;n=0;if(x&1){h=27;break}if(c[v+(c[(c[v>>2]|0)+-12>>2]|0)+16>>2]&5|0){h=33;break}n=0;b=U(59,150452,88806)|0;x=n;n=0;if(x&1){h=27;break}n=0;b=U(61,b|0,s|0)|0;x=n;n=0;if(x&1){h=27;break}n=0;U(59,b|0,127446)|0;x=n;n=0;if(x&1){h=27;break}}if((h|0)==23){b=sa()|0;P()|0;XWa(r)}else if((h|0)==27){b=sa()|0;P()|0}else if((h|0)==33){Chb(s);n=0;b=U(59,150452,88806)|0;x=n;n=0;if(x&1)break;n=0;da(75,t|0,q|0);x=n;n=0;if(x&1)break;n=0;U(61,b|0,t|0)|0;x=n;n=0;if(x&1){x=sa()|0;P()|0;Chb(t);c0a(w);c0a(v);Ea(x|0)}else{Chb(t);n=0;U(59,150452,56345)|0;x=n;n=0;if(x&1)break;c0a(w);c0a(v);yb=u;return}}Chb(s);x=b;c0a(w);c0a(v);Ea(x|0)}}while(0);x=sa()|0;P()|0;c0a(w);c0a(v);Ea(x|0)}function wg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;d=a+-8|0;f=c[37448]|0;a=c[a+-4>>2]|0;b=a&-8;j=d+b|0;do if(!(a&1)){e=c[d>>2]|0;if(!(a&3))return;h=d+(0-e)|0;g=e+b|0;if(h>>>0>>0)return;if((c[37449]|0)==(h|0)){a=j+4|0;b=c[a>>2]|0;if((b&3|0)!=3){i=h;b=g;break}c[37446]=g;c[a>>2]=b&-2;c[h+4>>2]=g|1;c[h+g>>2]=g;return}d=e>>>3;if(e>>>0<256){a=c[h+8>>2]|0;b=c[h+12>>2]|0;if((b|0)==(a|0)){c[37444]=c[37444]&~(1<>2]=b;c[b+8>>2]=a;i=h;b=g;break}}f=c[h+24>>2]|0;a=c[h+12>>2]|0;do if((a|0)==(h|0)){b=h+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){a=0;break}}else b=d;while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0}else{i=c[h+8>>2]|0;c[i+12>>2]=a;c[a+8>>2]=i}while(0);if(f){b=c[h+28>>2]|0;d=150080+(b<<2)|0;if((c[d>>2]|0)==(h|0)){c[d>>2]=a;if(!a){c[37445]=c[37445]&~(1<>2]|0)==(h|0)?i:f+20|0)>>2]=a;if(!a){i=h;b=g;break}}c[a+24>>2]=f;b=h+16|0;d=c[b>>2]|0;if(d|0){c[a+16>>2]=d;c[d+24>>2]=a}b=c[b+4>>2]|0;if(b){c[a+20>>2]=b;c[b+24>>2]=a;i=h;b=g}else{i=h;b=g}}else{i=h;b=g}}else{i=d;h=d}while(0);if(h>>>0>=j>>>0)return;a=j+4|0;e=c[a>>2]|0;if(!(e&1))return;if(!(e&2)){if((c[37450]|0)==(j|0)){j=(c[37447]|0)+b|0;c[37447]=j;c[37450]=i;c[i+4>>2]=j|1;if((i|0)!=(c[37449]|0))return;c[37449]=0;c[37446]=0;return}if((c[37449]|0)==(j|0)){j=(c[37446]|0)+b|0;c[37446]=j;c[37449]=h;c[i+4>>2]=j|1;c[h+j>>2]=j;return}f=(e&-8)+b|0;d=e>>>3;do if(e>>>0<256){b=c[j+8>>2]|0;a=c[j+12>>2]|0;if((a|0)==(b|0)){c[37444]=c[37444]&~(1<>2]=a;c[a+8>>2]=b;break}}else{g=c[j+24>>2]|0;a=c[j+12>>2]|0;do if((a|0)==(j|0)){b=j+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){d=0;break}}else b=d;while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;d=a}else{d=c[j+8>>2]|0;c[d+12>>2]=a;c[a+8>>2]=d;d=a}while(0);if(g|0){a=c[j+28>>2]|0;b=150080+(a<<2)|0;if((c[b>>2]|0)==(j|0)){c[b>>2]=d;if(!d){c[37445]=c[37445]&~(1<>2]|0)==(j|0)?e:g+20|0)>>2]=d;if(!d)break}c[d+24>>2]=g;a=j+16|0;b=c[a>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}a=c[a+4>>2]|0;if(a|0){c[d+20>>2]=a;c[a+24>>2]=d}}}while(0);c[i+4>>2]=f|1;c[h+f>>2]=f;if((i|0)==(c[37449]|0)){c[37446]=f;return}}else{c[a>>2]=e&-2;c[i+4>>2]=b|1;c[h+b>>2]=b;f=b}a=f>>>3;if(f>>>0<256){d=149816+(a<<1<<2)|0;b=c[37444]|0;a=1<>2]|0}c[b>>2]=i;c[a+12>>2]=i;c[i+8>>2]=a;c[i+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)e=31;else{h=(a+1048320|0)>>>16&8;j=a<>>16&4;j=j<>>16&2;e=14-(g|h|e)+(j<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;a=150080+(e<<2)|0;c[i+28>>2]=e;c[i+20>>2]=0;c[i+16>>2]=0;b=c[37445]|0;d=1<>2]=i;c[i+24>>2]=a;c[i+12>>2]=i;c[i+8>>2]=i}else{a=c[a>>2]|0;b:do if((c[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(f|0)){a=b;break b}else{e=e<<1;a=b}}c[d>>2]=i;c[i+24>>2]=a;c[i+12>>2]=i;c[i+8>>2]=i;break a}while(0);h=a+8|0;j=c[h>>2]|0;c[j+12>>2]=i;c[h>>2]=i;c[i+8>>2]=j;c[i+12>>2]=a;c[i+24>>2]=0}while(0);j=(c[37452]|0)+-1|0;c[37452]=j;if(j|0)return;a=150232;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[37452]=-1;return}function xg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=yb;yb=yb+112|0;j=x;l=(f-e|0)/12|0;do if(l>>>0>100){k=qc(l)|0;if(!k){n=0;ba(9);n=0;e=sa()|0;P()|0;break}else{j=k;w=k;o=5;break}}else{w=0;o=5}while(0);if((o|0)==5){o=e;p=j;k=0;while(1){if((o|0)==(f|0))break;m=a[o+11>>0]|0;if(m<<24>>24<0)m=c[o+4>>2]|0;else m=m&255;if(!m){a[p>>0]=2;k=k+1|0;l=l+-1|0}else a[p>>0]=1;o=o+12|0;p=p+1|0}v=0;s=k;p=d;a:while(1){k=c[b>>2]|0;do if(k){m=c[k+12>>2]|0;if((m|0)==(c[k+16>>2]|0)){n=0;k=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;u=n;n=0;if(u&1){o=40;break a}}else k=Qzb(a[m>>0]|0)|0;if(dub(k,-1)|0){c[b>>2]=0;o=1;break}else{o=(c[b>>2]|0)==0;break}}else o=1;while(0);if(!p){u=0;k=1;p=0}else{k=c[p+12>>2]|0;if((k|0)==(c[p+16>>2]|0)){n=0;k=S(c[(c[p>>2]|0)+36>>2]|0,p|0)|0;u=n;n=0;if(u&1){o=40;break}}else k=Qzb(a[k>>0]|0)|0;t=dub(k,-1)|0;u=t?0:p;k=t;p=t?0:p}m=c[b>>2]|0;if(!((l|0)!=0&(o^k))){o=28;break}k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0)){n=0;k=S(c[(c[m>>2]|0)+36>>2]|0,m|0)|0;t=n;n=0;if(t&1){o=46;break}}else k=Qzb(a[k>>0]|0)|0;k=k&255;if(!i){n=0;k=U(c[(c[g>>2]|0)+12>>2]|0,g|0,k|0)|0;t=n;n=0;if(t&1){o=46;break}else d=k}else d=k;t=v+1|0;q=e;p=0;r=j;k=s;while(1){if((q|0)==(f|0))break;do if((a[r>>0]|0)==1){o=q+11|0;if((a[o>>0]|0)<0)m=c[q>>2]|0;else m=q;m=a[m+v>>0]|0;if(!i){n=0;m=U(c[(c[g>>2]|0)+12>>2]|0,g|0,m|0)|0;s=n;n=0;if(s&1){o=56;break a}}if(d<<24>>24!=m<<24>>24){a[r>>0]=0;m=p;l=l+-1|0;break}m=a[o>>0]|0;if(m<<24>>24<0)m=c[q+4>>2]|0;else m=m&255;if((m|0)==(t|0)){a[r>>0]=2;m=1;k=k+1|0;l=l+-1|0}else m=1}else m=p;while(0);q=q+12|0;p=m;r=r+1|0}b:do if(p){m=c[b>>2]|0;o=m+12|0;p=c[o>>2]|0;if((p|0)==(c[m+16>>2]|0)){n=0;S(c[(c[m>>2]|0)+40>>2]|0,m|0)|0;v=n;n=0;if(v&1){o=72;break a}}else c[o>>2]=p+1;if((k+l|0)>>>0>1){o=e;p=j;while(1){if((o|0)==(f|0))break b;if((a[p>>0]|0)==2){m=a[o+11>>0]|0;if(m<<24>>24<0)m=c[o+4>>2]|0;else m=m&255;if((m|0)!=(t|0)){a[p>>0]=0;k=k+-1|0}}o=o+12|0;p=p+1|0}}}while(0);v=t;s=k;p=u}if((o|0)==28){do if(m){k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0)){n=0;k=S(c[(c[m>>2]|0)+36>>2]|0,m|0)|0;i=n;n=0;if(i&1)break}else k=Qzb(a[k>>0]|0)|0;if(dub(k,-1)|0){c[b>>2]=0;l=1;o=35;break}else{l=(c[b>>2]|0)==0;o=35;break}}else{l=1;o=35}while(0);do if((o|0)==35){if(p){k=c[p+12>>2]|0;if((k|0)==(c[p+16>>2]|0)){n=0;k=S(c[(c[p>>2]|0)+36>>2]|0,p|0)|0;b=n;n=0;if(b&1)break}else k=Qzb(a[k>>0]|0)|0;if(!(dub(k,-1)|0)){if(!l)o=82}else o=80}else o=80;if((o|0)==80?l:0)o=82;if((o|0)==82)c[h>>2]=c[h>>2]|2;while(1){if((e|0)==(f|0)){o=88;break}if((a[j>>0]|0)==2)break;e=e+12|0;j=j+1|0}if((o|0)==88){c[h>>2]=c[h>>2]|4;e=f}if(w|0)wg(w);yb=x;return e|0}while(0);e=sa()|0;P()|0}else if((o|0)==40){e=sa()|0;P()|0}else if((o|0)==46){e=sa()|0;P()|0}else if((o|0)==56){e=sa()|0;P()|0}else if((o|0)==72){e=sa()|0;P()|0}if(w)wg(w)}Ea(e|0);return 0}function yg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;u=yb;yb=yb+352|0;r=u+336|0;v=u+192|0;w=u+48|0;o=u+36|0;t=u+24|0;s=u+12|0;p=u;i=Ada(b)|0;h=v+64|0;j=v+8|0;c[j>>2]=40176;c[v>>2]=31772;c[h>>2]=31792;c[v+4>>2]=0;Hoa(v+64|0,v+12|0);c[v+136>>2]=0;c[v+140>>2]=-1;c[v>>2]=40156;c[h>>2]=40196;c[j>>2]=40176;j=v+12|0;RKa(j);c[j>>2]=39800;h=v+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}c[v+56>>2]=0;c[v+60>>2]=24;h=w+64|0;q=w+8|0;c[q>>2]=40176;c[w>>2]=31772;c[h>>2]=31792;c[w+4>>2]=0;Hoa(w+64|0,w+12|0);c[w+136>>2]=0;c[w+140>>2]=-1;c[w>>2]=40156;c[h>>2]=40196;c[q>>2]=40176;q=w+12|0;RKa(q);c[q>>2]=39800;h=w+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}b=w+8|0;c[w+56>>2]=0;c[w+60>>2]=24;n=0;h=U(59,b|0,55712)|0;x=n;n=0;do if(((((((!(x&1)?(n=0,k=U(78,h|0,i|0)|0,x=n,n=0,!(x&1)):0)?(n=0,l=U(59,k|0,56513)|0,x=n,n=0,!(x&1)):0)?(n=0,m=U(59,l|0,57275)|0,x=n,n=0,!(x&1)):0)?(n=0,U(59,m|0,139929)|0,x=n,n=0,!(x&1)):0)?(n=0,ga(10,b|0,d|0,e|0,f|0,g|0),x=n,n=0,!(x&1)):0)?(n=0,U(59,b|0,56341)|0,x=n,n=0,!(x&1)):0)?(n=0,da(75,o|0,j|0),x=n,n=0,!(x&1)):0){x=a[o+11>>0]|0;x=((x<<24>>24<0?c[o+4>>2]|0:x&255)|0)==0;Chb(o);if(x){n=0;b=U(59,150452,113424)|0;x=n;n=0;if(x&1)break;n=0;da(75,p|0,q|0);x=n;n=0;if(x&1)break;n=0;U(61,b|0,p|0)|0;x=n;n=0;if(x&1){x=sa()|0;P()|0;Chb(p);c0a(w);c0a(v);Ea(x|0)}else{Chb(p);c0a(w);c0a(v);yb=u;return}}n=0;U(59,150452,56221)|0;x=n;n=0;if(!(x&1)){c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[t+(b<<2)>>2]=0;b=b+1|0}while(1){anb(r,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[r>>2]|0,151324)|0;x=n;n=0;if(x&1){h=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;x=n;n=0;if(x&1){h=23;break}XWa(r);n=0;V(51,v|0,t|0,b|0)|0;x=n;n=0;if(x&1){h=27;break}if(c[v+(c[(c[v>>2]|0)+-12>>2]|0)+16>>2]&5|0){h=33;break}n=0;b=U(59,150452,88806)|0;x=n;n=0;if(x&1){h=27;break}n=0;b=U(61,b|0,t|0)|0;x=n;n=0;if(x&1){h=27;break}n=0;U(59,b|0,127446)|0;x=n;n=0;if(x&1){h=27;break}}if((h|0)==23){b=sa()|0;P()|0;XWa(r)}else if((h|0)==27){b=sa()|0;P()|0}else if((h|0)==33){Chb(t);n=0;b=U(59,150452,88806)|0;x=n;n=0;if(x&1)break;n=0;da(75,s|0,q|0);x=n;n=0;if(x&1)break;n=0;U(61,b|0,s|0)|0;x=n;n=0;if(x&1){x=sa()|0;P()|0;Chb(s);c0a(w);c0a(v);Ea(x|0)}else{Chb(s);n=0;U(59,150452,56345)|0;x=n;n=0;if(x&1)break;c0a(w);c0a(v);yb=u;return}}Chb(t);x=b;c0a(w);c0a(v);Ea(x|0)}}while(0);x=sa()|0;P()|0;c0a(w);c0a(v);Ea(x|0)}function zg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;u=yb;yb=yb+352|0;r=u+336|0;v=u+192|0;w=u+48|0;o=u+36|0;t=u+24|0;s=u+12|0;p=u;i=Ada(b)|0;h=v+64|0;j=v+8|0;c[j>>2]=40176;c[v>>2]=31772;c[h>>2]=31792;c[v+4>>2]=0;Hoa(v+64|0,v+12|0);c[v+136>>2]=0;c[v+140>>2]=-1;c[v>>2]=40156;c[h>>2]=40196;c[j>>2]=40176;j=v+12|0;RKa(j);c[j>>2]=39800;h=v+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}c[v+56>>2]=0;c[v+60>>2]=24;h=w+64|0;q=w+8|0;c[q>>2]=40176;c[w>>2]=31772;c[h>>2]=31792;c[w+4>>2]=0;Hoa(w+64|0,w+12|0);c[w+136>>2]=0;c[w+140>>2]=-1;c[w>>2]=40156;c[h>>2]=40196;c[q>>2]=40176;q=w+12|0;RKa(q);c[q>>2]=39800;h=w+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}b=w+8|0;c[w+56>>2]=0;c[w+60>>2]=24;n=0;h=U(59,b|0,55712)|0;x=n;n=0;do if(((((((!(x&1)?(n=0,k=U(78,h|0,i|0)|0,x=n,n=0,!(x&1)):0)?(n=0,l=U(59,k|0,56513)|0,x=n,n=0,!(x&1)):0)?(n=0,m=U(59,l|0,57103)|0,x=n,n=0,!(x&1)):0)?(n=0,U(59,m|0,139929)|0,x=n,n=0,!(x&1)):0)?(n=0,ga(8,b|0,d|0,e|0,f|0,g|0),x=n,n=0,!(x&1)):0)?(n=0,U(59,b|0,56341)|0,x=n,n=0,!(x&1)):0)?(n=0,da(75,o|0,j|0),x=n,n=0,!(x&1)):0){x=a[o+11>>0]|0;x=((x<<24>>24<0?c[o+4>>2]|0:x&255)|0)==0;Chb(o);if(x){n=0;b=U(59,150452,113424)|0;x=n;n=0;if(x&1)break;n=0;da(75,p|0,q|0);x=n;n=0;if(x&1)break;n=0;U(61,b|0,p|0)|0;x=n;n=0;if(x&1){x=sa()|0;P()|0;Chb(p);c0a(w);c0a(v);Ea(x|0)}else{Chb(p);c0a(w);c0a(v);yb=u;return}}n=0;U(59,150452,56221)|0;x=n;n=0;if(!(x&1)){c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[t+(b<<2)>>2]=0;b=b+1|0}while(1){anb(r,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[r>>2]|0,151324)|0;x=n;n=0;if(x&1){h=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;x=n;n=0;if(x&1){h=23;break}XWa(r);n=0;V(51,v|0,t|0,b|0)|0;x=n;n=0;if(x&1){h=27;break}if(c[v+(c[(c[v>>2]|0)+-12>>2]|0)+16>>2]&5|0){h=33;break}n=0;b=U(59,150452,88806)|0;x=n;n=0;if(x&1){h=27;break}n=0;b=U(61,b|0,t|0)|0;x=n;n=0;if(x&1){h=27;break}n=0;U(59,b|0,127446)|0;x=n;n=0;if(x&1){h=27;break}}if((h|0)==23){b=sa()|0;P()|0;XWa(r)}else if((h|0)==27){b=sa()|0;P()|0}else if((h|0)==33){Chb(t);n=0;b=U(59,150452,88806)|0;x=n;n=0;if(x&1)break;n=0;da(75,s|0,q|0);x=n;n=0;if(x&1)break;n=0;U(61,b|0,s|0)|0;x=n;n=0;if(x&1){x=sa()|0;P()|0;Chb(s);c0a(w);c0a(v);Ea(x|0)}else{Chb(s);n=0;U(59,150452,56345)|0;x=n;n=0;if(x&1)break;c0a(w);c0a(v);yb=u;return}}Chb(t);x=b;c0a(w);c0a(v);Ea(x|0)}}while(0);x=sa()|0;P()|0;c0a(w);c0a(v);Ea(x|0)}function Ag(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;u=yb;yb=yb+352|0;r=u+336|0;v=u+192|0;w=u+48|0;o=u+36|0;t=u+24|0;s=u+12|0;p=u;i=Ada(b)|0;h=v+64|0;j=v+8|0;c[j>>2]=40176;c[v>>2]=31772;c[h>>2]=31792;c[v+4>>2]=0;Hoa(v+64|0,v+12|0);c[v+136>>2]=0;c[v+140>>2]=-1;c[v>>2]=40156;c[h>>2]=40196;c[j>>2]=40176;j=v+12|0;RKa(j);c[j>>2]=39800;h=v+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}c[v+56>>2]=0;c[v+60>>2]=24;h=w+64|0;q=w+8|0;c[q>>2]=40176;c[w>>2]=31772;c[h>>2]=31792;c[w+4>>2]=0;Hoa(w+64|0,w+12|0);c[w+136>>2]=0;c[w+140>>2]=-1;c[w>>2]=40156;c[h>>2]=40196;c[q>>2]=40176;q=w+12|0;RKa(q);c[q>>2]=39800;h=w+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}b=w+8|0;c[w+56>>2]=0;c[w+60>>2]=24;n=0;h=U(59,b|0,55712)|0;x=n;n=0;do if(((((((!(x&1)?(n=0,k=U(78,h|0,i|0)|0,x=n,n=0,!(x&1)):0)?(n=0,l=U(59,k|0,56513)|0,x=n,n=0,!(x&1)):0)?(n=0,m=U(59,l|0,57161)|0,x=n,n=0,!(x&1)):0)?(n=0,U(59,m|0,139929)|0,x=n,n=0,!(x&1)):0)?(n=0,ga(9,b|0,d|0,e|0,f|0,g|0),x=n,n=0,!(x&1)):0)?(n=0,U(59,b|0,56341)|0,x=n,n=0,!(x&1)):0)?(n=0,da(75,o|0,j|0),x=n,n=0,!(x&1)):0){x=a[o+11>>0]|0;x=((x<<24>>24<0?c[o+4>>2]|0:x&255)|0)==0;Chb(o);if(x){n=0;b=U(59,150452,113424)|0;x=n;n=0;if(x&1)break;n=0;da(75,p|0,q|0);x=n;n=0;if(x&1)break;n=0;U(61,b|0,p|0)|0;x=n;n=0;if(x&1){x=sa()|0;P()|0;Chb(p);c0a(w);c0a(v);Ea(x|0)}else{Chb(p);c0a(w);c0a(v);yb=u;return}}n=0;U(59,150452,56221)|0;x=n;n=0;if(!(x&1)){c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[t+(b<<2)>>2]=0;b=b+1|0}while(1){anb(r,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[r>>2]|0,151324)|0;x=n;n=0;if(x&1){h=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;x=n;n=0;if(x&1){h=23;break}XWa(r);n=0;V(51,v|0,t|0,b|0)|0;x=n;n=0;if(x&1){h=27;break}if(c[v+(c[(c[v>>2]|0)+-12>>2]|0)+16>>2]&5|0){h=33;break}n=0;b=U(59,150452,88806)|0;x=n;n=0;if(x&1){h=27;break}n=0;b=U(61,b|0,t|0)|0;x=n;n=0;if(x&1){h=27;break}n=0;U(59,b|0,127446)|0;x=n;n=0;if(x&1){h=27;break}}if((h|0)==23){b=sa()|0;P()|0;XWa(r)}else if((h|0)==27){b=sa()|0;P()|0}else if((h|0)==33){Chb(t);n=0;b=U(59,150452,88806)|0;x=n;n=0;if(x&1)break;n=0;da(75,s|0,q|0);x=n;n=0;if(x&1)break;n=0;U(61,b|0,s|0)|0;x=n;n=0;if(x&1){x=sa()|0;P()|0;Chb(s);c0a(w);c0a(v);Ea(x|0)}else{Chb(s);n=0;U(59,150452,56345)|0;x=n;n=0;if(x&1)break;c0a(w);c0a(v);yb=u;return}}Chb(t);x=b;c0a(w);c0a(v);Ea(x|0)}}while(0);x=sa()|0;P()|0;c0a(w);c0a(v);Ea(x|0)}function Bg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;u=yb;yb=yb+352|0;r=u+336|0;v=u+192|0;w=u+48|0;o=u+36|0;t=u+24|0;s=u+12|0;p=u;i=Ada(b)|0;h=v+64|0;j=v+8|0;c[j>>2]=40176;c[v>>2]=31772;c[h>>2]=31792;c[v+4>>2]=0;Hoa(v+64|0,v+12|0);c[v+136>>2]=0;c[v+140>>2]=-1;c[v>>2]=40156;c[h>>2]=40196;c[j>>2]=40176;j=v+12|0;RKa(j);c[j>>2]=39800;h=v+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}c[v+56>>2]=0;c[v+60>>2]=24;h=w+64|0;q=w+8|0;c[q>>2]=40176;c[w>>2]=31772;c[h>>2]=31792;c[w+4>>2]=0;Hoa(w+64|0,w+12|0);c[w+136>>2]=0;c[w+140>>2]=-1;c[w>>2]=40156;c[h>>2]=40196;c[q>>2]=40176;q=w+12|0;RKa(q);c[q>>2]=39800;h=w+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}b=w+8|0;c[w+56>>2]=0;c[w+60>>2]=24;n=0;h=U(59,b|0,55712)|0;x=n;n=0;do if(((((((!(x&1)?(n=0,k=U(78,h|0,i|0)|0,x=n,n=0,!(x&1)):0)?(n=0,l=U(59,k|0,56513)|0,x=n,n=0,!(x&1)):0)?(n=0,m=U(59,l|0,56947)|0,x=n,n=0,!(x&1)):0)?(n=0,U(59,m|0,139929)|0,x=n,n=0,!(x&1)):0)?(n=0,ga(7,b|0,d|0,e|0,f|0,g|0),x=n,n=0,!(x&1)):0)?(n=0,U(59,b|0,56341)|0,x=n,n=0,!(x&1)):0)?(n=0,da(75,o|0,j|0),x=n,n=0,!(x&1)):0){x=a[o+11>>0]|0;x=((x<<24>>24<0?c[o+4>>2]|0:x&255)|0)==0;Chb(o);if(x){n=0;b=U(59,150452,113424)|0;x=n;n=0;if(x&1)break;n=0;da(75,p|0,q|0);x=n;n=0;if(x&1)break;n=0;U(61,b|0,p|0)|0;x=n;n=0;if(x&1){x=sa()|0;P()|0;Chb(p);c0a(w);c0a(v);Ea(x|0)}else{Chb(p);c0a(w);c0a(v);yb=u;return}}n=0;U(59,150452,56221)|0;x=n;n=0;if(!(x&1)){c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[t+(b<<2)>>2]=0;b=b+1|0}while(1){anb(r,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[r>>2]|0,151324)|0;x=n;n=0;if(x&1){h=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;x=n;n=0;if(x&1){h=23;break}XWa(r);n=0;V(51,v|0,t|0,b|0)|0;x=n;n=0;if(x&1){h=27;break}if(c[v+(c[(c[v>>2]|0)+-12>>2]|0)+16>>2]&5|0){h=33;break}n=0;b=U(59,150452,88806)|0;x=n;n=0;if(x&1){h=27;break}n=0;b=U(61,b|0,t|0)|0;x=n;n=0;if(x&1){h=27;break}n=0;U(59,b|0,127446)|0;x=n;n=0;if(x&1){h=27;break}}if((h|0)==23){b=sa()|0;P()|0;XWa(r)}else if((h|0)==27){b=sa()|0;P()|0}else if((h|0)==33){Chb(t);n=0;b=U(59,150452,88806)|0;x=n;n=0;if(x&1)break;n=0;da(75,s|0,q|0);x=n;n=0;if(x&1)break;n=0;U(61,b|0,s|0)|0;x=n;n=0;if(x&1){x=sa()|0;P()|0;Chb(s);c0a(w);c0a(v);Ea(x|0)}else{Chb(s);n=0;U(59,150452,56345)|0;x=n;n=0;if(x&1)break;c0a(w);c0a(v);yb=u;return}}Chb(t);x=b;c0a(w);c0a(v);Ea(x|0)}}while(0);x=sa()|0;P()|0;c0a(w);c0a(v);Ea(x|0)}function Cg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;u=yb;yb=yb+352|0;r=u+336|0;v=u+192|0;w=u+48|0;o=u+36|0;t=u+24|0;s=u+12|0;p=u;i=Ada(b)|0;h=v+64|0;j=v+8|0;c[j>>2]=40176;c[v>>2]=31772;c[h>>2]=31792;c[v+4>>2]=0;Hoa(v+64|0,v+12|0);c[v+136>>2]=0;c[v+140>>2]=-1;c[v>>2]=40156;c[h>>2]=40196;c[j>>2]=40176;j=v+12|0;RKa(j);c[j>>2]=39800;h=v+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}c[v+56>>2]=0;c[v+60>>2]=24;h=w+64|0;q=w+8|0;c[q>>2]=40176;c[w>>2]=31772;c[h>>2]=31792;c[w+4>>2]=0;Hoa(w+64|0,w+12|0);c[w+136>>2]=0;c[w+140>>2]=-1;c[w>>2]=40156;c[h>>2]=40196;c[q>>2]=40176;q=w+12|0;RKa(q);c[q>>2]=39800;h=w+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}b=w+8|0;c[w+56>>2]=0;c[w+60>>2]=24;n=0;h=U(59,b|0,55712)|0;x=n;n=0;do if(((((((!(x&1)?(n=0,k=U(78,h|0,i|0)|0,x=n,n=0,!(x&1)):0)?(n=0,l=U(59,k|0,56513)|0,x=n,n=0,!(x&1)):0)?(n=0,m=U(59,l|0,d|0)|0,x=n,n=0,!(x&1)):0)?(n=0,U(59,m|0,139929)|0,x=n,n=0,!(x&1)):0)?(n=0,fa(76,b|0,e|0,f|0,g|0),x=n,n=0,!(x&1)):0)?(n=0,U(59,b|0,56341)|0,x=n,n=0,!(x&1)):0)?(n=0,da(75,o|0,j|0),x=n,n=0,!(x&1)):0){x=a[o+11>>0]|0;x=((x<<24>>24<0?c[o+4>>2]|0:x&255)|0)==0;Chb(o);if(x){n=0;b=U(59,150452,113424)|0;x=n;n=0;if(x&1)break;n=0;da(75,p|0,q|0);x=n;n=0;if(x&1)break;n=0;U(61,b|0,p|0)|0;x=n;n=0;if(x&1){x=sa()|0;P()|0;Chb(p);c0a(w);c0a(v);Ea(x|0)}else{Chb(p);c0a(w);c0a(v);yb=u;return}}n=0;U(59,150452,56221)|0;x=n;n=0;if(!(x&1)){c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[t+(b<<2)>>2]=0;b=b+1|0}while(1){anb(r,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[r>>2]|0,151324)|0;x=n;n=0;if(x&1){h=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;x=n;n=0;if(x&1){h=23;break}XWa(r);n=0;V(51,v|0,t|0,b|0)|0;x=n;n=0;if(x&1){h=27;break}if(c[v+(c[(c[v>>2]|0)+-12>>2]|0)+16>>2]&5|0){h=33;break}n=0;b=U(59,150452,88806)|0;x=n;n=0;if(x&1){h=27;break}n=0;b=U(61,b|0,t|0)|0;x=n;n=0;if(x&1){h=27;break}n=0;U(59,b|0,127446)|0;x=n;n=0;if(x&1){h=27;break}}if((h|0)==23){b=sa()|0;P()|0;XWa(r)}else if((h|0)==27){b=sa()|0;P()|0}else if((h|0)==33){Chb(t);n=0;b=U(59,150452,88806)|0;x=n;n=0;if(x&1)break;n=0;da(75,s|0,q|0);x=n;n=0;if(x&1)break;n=0;U(61,b|0,s|0)|0;x=n;n=0;if(x&1){x=sa()|0;P()|0;Chb(s);c0a(w);c0a(v);Ea(x|0)}else{Chb(s);n=0;U(59,150452,56345)|0;x=n;n=0;if(x&1)break;c0a(w);c0a(v);yb=u;return}}Chb(t);x=b;c0a(w);c0a(v);Ea(x|0)}}while(0);x=sa()|0;P()|0;c0a(w);c0a(v);Ea(x|0)}function Dg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;u=yb;yb=yb+352|0;r=u+336|0;v=u+192|0;w=u+48|0;o=u+36|0;t=u+24|0;s=u+12|0;p=u;i=Ada(b)|0;h=v+64|0;j=v+8|0;c[j>>2]=40176;c[v>>2]=31772;c[h>>2]=31792;c[v+4>>2]=0;Hoa(v+64|0,v+12|0);c[v+136>>2]=0;c[v+140>>2]=-1;c[v>>2]=40156;c[h>>2]=40196;c[j>>2]=40176;j=v+12|0;RKa(j);c[j>>2]=39800;h=v+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}c[v+56>>2]=0;c[v+60>>2]=24;h=w+64|0;q=w+8|0;c[q>>2]=40176;c[w>>2]=31772;c[h>>2]=31792;c[w+4>>2]=0;Hoa(w+64|0,w+12|0);c[w+136>>2]=0;c[w+140>>2]=-1;c[w>>2]=40156;c[h>>2]=40196;c[q>>2]=40176;q=w+12|0;RKa(q);c[q>>2]=39800;h=w+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}b=w+8|0;c[w+56>>2]=0;c[w+60>>2]=24;n=0;h=U(59,b|0,55712)|0;x=n;n=0;do if(((((((!(x&1)?(n=0,k=U(78,h|0,i|0)|0,x=n,n=0,!(x&1)):0)?(n=0,l=U(59,k|0,56513)|0,x=n,n=0,!(x&1)):0)?(n=0,m=U(59,l|0,d|0)|0,x=n,n=0,!(x&1)):0)?(n=0,U(59,m|0,139929)|0,x=n,n=0,!(x&1)):0)?(n=0,fa(79,b|0,e|0,f|0,g|0),x=n,n=0,!(x&1)):0)?(n=0,U(59,b|0,56341)|0,x=n,n=0,!(x&1)):0)?(n=0,da(75,o|0,j|0),x=n,n=0,!(x&1)):0){x=a[o+11>>0]|0;x=((x<<24>>24<0?c[o+4>>2]|0:x&255)|0)==0;Chb(o);if(x){n=0;b=U(59,150452,113424)|0;x=n;n=0;if(x&1)break;n=0;da(75,p|0,q|0);x=n;n=0;if(x&1)break;n=0;U(61,b|0,p|0)|0;x=n;n=0;if(x&1){x=sa()|0;P()|0;Chb(p);c0a(w);c0a(v);Ea(x|0)}else{Chb(p);c0a(w);c0a(v);yb=u;return}}n=0;U(59,150452,56221)|0;x=n;n=0;if(!(x&1)){c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[t+(b<<2)>>2]=0;b=b+1|0}while(1){anb(r,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[r>>2]|0,151324)|0;x=n;n=0;if(x&1){h=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;x=n;n=0;if(x&1){h=23;break}XWa(r);n=0;V(51,v|0,t|0,b|0)|0;x=n;n=0;if(x&1){h=27;break}if(c[v+(c[(c[v>>2]|0)+-12>>2]|0)+16>>2]&5|0){h=33;break}n=0;b=U(59,150452,88806)|0;x=n;n=0;if(x&1){h=27;break}n=0;b=U(61,b|0,t|0)|0;x=n;n=0;if(x&1){h=27;break}n=0;U(59,b|0,127446)|0;x=n;n=0;if(x&1){h=27;break}}if((h|0)==23){b=sa()|0;P()|0;XWa(r)}else if((h|0)==27){b=sa()|0;P()|0}else if((h|0)==33){Chb(t);n=0;b=U(59,150452,88806)|0;x=n;n=0;if(x&1)break;n=0;da(75,s|0,q|0);x=n;n=0;if(x&1)break;n=0;U(61,b|0,s|0)|0;x=n;n=0;if(x&1){x=sa()|0;P()|0;Chb(s);c0a(w);c0a(v);Ea(x|0)}else{Chb(s);n=0;U(59,150452,56345)|0;x=n;n=0;if(x&1)break;c0a(w);c0a(v);yb=u;return}}Chb(t);x=b;c0a(w);c0a(v);Ea(x|0)}}while(0);x=sa()|0;P()|0;c0a(w);c0a(v);Ea(x|0)}function Eg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=yb;yb=yb+352|0;q=t+336|0;u=t+192|0;v=t+48|0;m=t+36|0;r=t+24|0;s=t+12|0;o=t;h=Ada(b)|0;g=u+64|0;i=u+8|0;c[i>>2]=40176;c[u>>2]=31772;c[g>>2]=31792;c[u+4>>2]=0;Hoa(u+64|0,u+12|0);c[u+136>>2]=0;c[u+140>>2]=-1;c[u>>2]=40156;c[g>>2]=40196;c[i>>2]=40176;i=u+12|0;RKa(i);c[i>>2]=39800;g=u+44|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}c[u+56>>2]=0;c[u+60>>2]=24;g=v+64|0;p=v+8|0;c[p>>2]=40176;c[v>>2]=31772;c[g>>2]=31792;c[v+4>>2]=0;Hoa(v+64|0,v+12|0);c[v+136>>2]=0;c[v+140>>2]=-1;c[v>>2]=40156;c[g>>2]=40196;c[p>>2]=40176;p=v+12|0;RKa(p);c[p>>2]=39800;g=v+44|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}b=v+8|0;c[v+56>>2]=0;c[v+60>>2]=24;n=0;g=U(59,b|0,55712)|0;w=n;n=0;do if(((((((!(w&1)?(n=0,j=U(78,g|0,h|0)|0,w=n,n=0,!(w&1)):0)?(n=0,k=U(59,j|0,56513)|0,w=n,n=0,!(w&1)):0)?(n=0,l=U(59,k|0,56681)|0,w=n,n=0,!(w&1)):0)?(n=0,U(59,l|0,139929)|0,w=n,n=0,!(w&1)):0)?(n=0,ga(6,b|0,d|0,56672,e|0,f|0),w=n,n=0,!(w&1)):0)?(n=0,U(59,b|0,56341)|0,w=n,n=0,!(w&1)):0)?(n=0,da(75,m|0,i|0),w=n,n=0,!(w&1)):0){w=a[m+11>>0]|0;w=((w<<24>>24<0?c[m+4>>2]|0:w&255)|0)==0;Chb(m);if(w){n=0;b=U(59,150452,113424)|0;w=n;n=0;if(w&1)break;n=0;da(75,o|0,p|0);w=n;n=0;if(w&1)break;n=0;U(61,b|0,o|0)|0;w=n;n=0;if(w&1){w=sa()|0;P()|0;Chb(o);c0a(v);c0a(u);Ea(w|0)}else{Chb(o);c0a(v);c0a(u);yb=t;return}}n=0;U(59,150452,56221)|0;w=n;n=0;if(!(w&1)){c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[r+(b<<2)>>2]=0;b=b+1|0}while(1){anb(q,u+(c[(c[u>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[q>>2]|0,151324)|0;w=n;n=0;if(w&1){g=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;w=n;n=0;if(w&1){g=23;break}XWa(q);n=0;V(51,u|0,r|0,b|0)|0;w=n;n=0;if(w&1){g=27;break}if(c[u+(c[(c[u>>2]|0)+-12>>2]|0)+16>>2]&5|0){g=33;break}n=0;b=U(59,150452,88806)|0;w=n;n=0;if(w&1){g=27;break}n=0;b=U(61,b|0,r|0)|0;w=n;n=0;if(w&1){g=27;break}n=0;U(59,b|0,127446)|0;w=n;n=0;if(w&1){g=27;break}}if((g|0)==23){b=sa()|0;P()|0;XWa(q)}else if((g|0)==27){b=sa()|0;P()|0}else if((g|0)==33){Chb(r);n=0;b=U(59,150452,88806)|0;w=n;n=0;if(w&1)break;n=0;da(75,s|0,p|0);w=n;n=0;if(w&1)break;n=0;U(61,b|0,s|0)|0;w=n;n=0;if(w&1){w=sa()|0;P()|0;Chb(s);c0a(v);c0a(u);Ea(w|0)}else{Chb(s);n=0;U(59,150452,56345)|0;w=n;n=0;if(w&1)break;c0a(v);c0a(u);yb=t;return}}Chb(r);w=b;c0a(v);c0a(u);Ea(w|0)}}while(0);w=sa()|0;P()|0;c0a(v);c0a(u);Ea(w|0)}function Fg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=yb;yb=yb+352|0;q=t+336|0;u=t+192|0;v=t+48|0;m=t+36|0;r=t+24|0;s=t+12|0;o=t;h=Ada(b)|0;g=u+64|0;i=u+8|0;c[i>>2]=40176;c[u>>2]=31772;c[g>>2]=31792;c[u+4>>2]=0;Hoa(u+64|0,u+12|0);c[u+136>>2]=0;c[u+140>>2]=-1;c[u>>2]=40156;c[g>>2]=40196;c[i>>2]=40176;i=u+12|0;RKa(i);c[i>>2]=39800;g=u+44|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}c[u+56>>2]=0;c[u+60>>2]=24;g=v+64|0;p=v+8|0;c[p>>2]=40176;c[v>>2]=31772;c[g>>2]=31792;c[v+4>>2]=0;Hoa(v+64|0,v+12|0);c[v+136>>2]=0;c[v+140>>2]=-1;c[v>>2]=40156;c[g>>2]=40196;c[p>>2]=40176;p=v+12|0;RKa(p);c[p>>2]=39800;g=v+44|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}b=v+8|0;c[v+56>>2]=0;c[v+60>>2]=24;n=0;g=U(59,b|0,55712)|0;w=n;n=0;do if(((((((!(w&1)?(n=0,j=U(78,g|0,h|0)|0,w=n,n=0,!(w&1)):0)?(n=0,k=U(59,j|0,56513)|0,w=n,n=0,!(w&1)):0)?(n=0,l=U(59,k|0,56553)|0,w=n,n=0,!(w&1)):0)?(n=0,U(59,l|0,139929)|0,w=n,n=0,!(w&1)):0)?(n=0,fa(77,b|0,d|0,e|0,f|0),w=n,n=0,!(w&1)):0)?(n=0,U(59,b|0,56341)|0,w=n,n=0,!(w&1)):0)?(n=0,da(75,m|0,i|0),w=n,n=0,!(w&1)):0){w=a[m+11>>0]|0;w=((w<<24>>24<0?c[m+4>>2]|0:w&255)|0)==0;Chb(m);if(w){n=0;b=U(59,150452,113424)|0;w=n;n=0;if(w&1)break;n=0;da(75,o|0,p|0);w=n;n=0;if(w&1)break;n=0;U(61,b|0,o|0)|0;w=n;n=0;if(w&1){w=sa()|0;P()|0;Chb(o);c0a(v);c0a(u);Ea(w|0)}else{Chb(o);c0a(v);c0a(u);yb=t;return}}n=0;U(59,150452,56221)|0;w=n;n=0;if(!(w&1)){c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[r+(b<<2)>>2]=0;b=b+1|0}while(1){anb(q,u+(c[(c[u>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[q>>2]|0,151324)|0;w=n;n=0;if(w&1){g=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;w=n;n=0;if(w&1){g=23;break}XWa(q);n=0;V(51,u|0,r|0,b|0)|0;w=n;n=0;if(w&1){g=27;break}if(c[u+(c[(c[u>>2]|0)+-12>>2]|0)+16>>2]&5|0){g=33;break}n=0;b=U(59,150452,88806)|0;w=n;n=0;if(w&1){g=27;break}n=0;b=U(61,b|0,r|0)|0;w=n;n=0;if(w&1){g=27;break}n=0;U(59,b|0,127446)|0;w=n;n=0;if(w&1){g=27;break}}if((g|0)==23){b=sa()|0;P()|0;XWa(q)}else if((g|0)==27){b=sa()|0;P()|0}else if((g|0)==33){Chb(r);n=0;b=U(59,150452,88806)|0;w=n;n=0;if(w&1)break;n=0;da(75,s|0,p|0);w=n;n=0;if(w&1)break;n=0;U(61,b|0,s|0)|0;w=n;n=0;if(w&1){w=sa()|0;P()|0;Chb(s);c0a(v);c0a(u);Ea(w|0)}else{Chb(s);n=0;U(59,150452,56345)|0;w=n;n=0;if(w&1)break;c0a(v);c0a(u);yb=t;return}}Chb(r);w=b;c0a(v);c0a(u);Ea(w|0)}}while(0);w=sa()|0;P()|0;c0a(v);c0a(u);Ea(w|0)}function Gg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=yb;yb=yb+352|0;q=t+336|0;u=t+192|0;v=t+48|0;m=t+36|0;r=t+24|0;s=t+12|0;o=t;h=Ada(b)|0;g=u+64|0;i=u+8|0;c[i>>2]=40176;c[u>>2]=31772;c[g>>2]=31792;c[u+4>>2]=0;Hoa(u+64|0,u+12|0);c[u+136>>2]=0;c[u+140>>2]=-1;c[u>>2]=40156;c[g>>2]=40196;c[i>>2]=40176;i=u+12|0;RKa(i);c[i>>2]=39800;g=u+44|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}c[u+56>>2]=0;c[u+60>>2]=24;g=v+64|0;p=v+8|0;c[p>>2]=40176;c[v>>2]=31772;c[g>>2]=31792;c[v+4>>2]=0;Hoa(v+64|0,v+12|0);c[v+136>>2]=0;c[v+140>>2]=-1;c[v>>2]=40156;c[g>>2]=40196;c[p>>2]=40176;p=v+12|0;RKa(p);c[p>>2]=39800;g=v+44|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}b=v+8|0;c[v+56>>2]=0;c[v+60>>2]=24;n=0;g=U(59,b|0,55712)|0;w=n;n=0;do if(((((((!(w&1)?(n=0,j=U(78,g|0,h|0)|0,w=n,n=0,!(w&1)):0)?(n=0,k=U(59,j|0,56513)|0,w=n,n=0,!(w&1)):0)?(n=0,l=U(59,k|0,d|0)|0,w=n,n=0,!(w&1)):0)?(n=0,U(59,l|0,139929)|0,w=n,n=0,!(w&1)):0)?(n=0,ea(106,b|0,e|0,f|0),w=n,n=0,!(w&1)):0)?(n=0,U(59,b|0,56341)|0,w=n,n=0,!(w&1)):0)?(n=0,da(75,m|0,i|0),w=n,n=0,!(w&1)):0){w=a[m+11>>0]|0;w=((w<<24>>24<0?c[m+4>>2]|0:w&255)|0)==0;Chb(m);if(w){n=0;b=U(59,150452,113424)|0;w=n;n=0;if(w&1)break;n=0;da(75,o|0,p|0);w=n;n=0;if(w&1)break;n=0;U(61,b|0,o|0)|0;w=n;n=0;if(w&1){w=sa()|0;P()|0;Chb(o);c0a(v);c0a(u);Ea(w|0)}else{Chb(o);c0a(v);c0a(u);yb=t;return}}n=0;U(59,150452,56221)|0;w=n;n=0;if(!(w&1)){c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[r+(b<<2)>>2]=0;b=b+1|0}while(1){anb(q,u+(c[(c[u>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[q>>2]|0,151324)|0;w=n;n=0;if(w&1){g=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;w=n;n=0;if(w&1){g=23;break}XWa(q);n=0;V(51,u|0,r|0,b|0)|0;w=n;n=0;if(w&1){g=27;break}if(c[u+(c[(c[u>>2]|0)+-12>>2]|0)+16>>2]&5|0){g=33;break}n=0;b=U(59,150452,88806)|0;w=n;n=0;if(w&1){g=27;break}n=0;b=U(61,b|0,r|0)|0;w=n;n=0;if(w&1){g=27;break}n=0;U(59,b|0,127446)|0;w=n;n=0;if(w&1){g=27;break}}if((g|0)==23){b=sa()|0;P()|0;XWa(q)}else if((g|0)==27){b=sa()|0;P()|0}else if((g|0)==33){Chb(r);n=0;b=U(59,150452,88806)|0;w=n;n=0;if(w&1)break;n=0;da(75,s|0,p|0);w=n;n=0;if(w&1)break;n=0;U(61,b|0,s|0)|0;w=n;n=0;if(w&1){w=sa()|0;P()|0;Chb(s);c0a(v);c0a(u);Ea(w|0)}else{Chb(s);n=0;U(59,150452,56345)|0;w=n;n=0;if(w&1)break;c0a(v);c0a(u);yb=t;return}}Chb(r);w=b;c0a(v);c0a(u);Ea(w|0)}}while(0);w=sa()|0;P()|0;c0a(v);c0a(u);Ea(w|0)}function Hg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=yb;yb=yb+352|0;q=t+336|0;u=t+192|0;v=t+48|0;m=t+36|0;r=t+24|0;s=t+12|0;o=t;h=Ada(b)|0;g=u+64|0;i=u+8|0;c[i>>2]=40176;c[u>>2]=31772;c[g>>2]=31792;c[u+4>>2]=0;Hoa(u+64|0,u+12|0);c[u+136>>2]=0;c[u+140>>2]=-1;c[u>>2]=40156;c[g>>2]=40196;c[i>>2]=40176;i=u+12|0;RKa(i);c[i>>2]=39800;g=u+44|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}c[u+56>>2]=0;c[u+60>>2]=24;g=v+64|0;p=v+8|0;c[p>>2]=40176;c[v>>2]=31772;c[g>>2]=31792;c[v+4>>2]=0;Hoa(v+64|0,v+12|0);c[v+136>>2]=0;c[v+140>>2]=-1;c[v>>2]=40156;c[g>>2]=40196;c[p>>2]=40176;p=v+12|0;RKa(p);c[p>>2]=39800;g=v+44|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}b=v+8|0;c[v+56>>2]=0;c[v+60>>2]=24;n=0;g=U(59,b|0,55712)|0;w=n;n=0;do if(((((((!(w&1)?(n=0,j=U(78,g|0,h|0)|0,w=n,n=0,!(w&1)):0)?(n=0,k=U(59,j|0,56513)|0,w=n,n=0,!(w&1)):0)?(n=0,l=U(59,k|0,57141)|0,w=n,n=0,!(w&1)):0)?(n=0,U(59,l|0,139929)|0,w=n,n=0,!(w&1)):0)?(n=0,fa(81,b|0,d|0,e|0,f|0),w=n,n=0,!(w&1)):0)?(n=0,U(59,b|0,56341)|0,w=n,n=0,!(w&1)):0)?(n=0,da(75,m|0,i|0),w=n,n=0,!(w&1)):0){w=a[m+11>>0]|0;w=((w<<24>>24<0?c[m+4>>2]|0:w&255)|0)==0;Chb(m);if(w){n=0;b=U(59,150452,113424)|0;w=n;n=0;if(w&1)break;n=0;da(75,o|0,p|0);w=n;n=0;if(w&1)break;n=0;U(61,b|0,o|0)|0;w=n;n=0;if(w&1){w=sa()|0;P()|0;Chb(o);c0a(v);c0a(u);Ea(w|0)}else{Chb(o);c0a(v);c0a(u);yb=t;return}}n=0;U(59,150452,56221)|0;w=n;n=0;if(!(w&1)){c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[r+(b<<2)>>2]=0;b=b+1|0}while(1){anb(q,u+(c[(c[u>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[q>>2]|0,151324)|0;w=n;n=0;if(w&1){g=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;w=n;n=0;if(w&1){g=23;break}XWa(q);n=0;V(51,u|0,r|0,b|0)|0;w=n;n=0;if(w&1){g=27;break}if(c[u+(c[(c[u>>2]|0)+-12>>2]|0)+16>>2]&5|0){g=33;break}n=0;b=U(59,150452,88806)|0;w=n;n=0;if(w&1){g=27;break}n=0;b=U(61,b|0,r|0)|0;w=n;n=0;if(w&1){g=27;break}n=0;U(59,b|0,127446)|0;w=n;n=0;if(w&1){g=27;break}}if((g|0)==23){b=sa()|0;P()|0;XWa(q)}else if((g|0)==27){b=sa()|0;P()|0}else if((g|0)==33){Chb(r);n=0;b=U(59,150452,88806)|0;w=n;n=0;if(w&1)break;n=0;da(75,s|0,p|0);w=n;n=0;if(w&1)break;n=0;U(61,b|0,s|0)|0;w=n;n=0;if(w&1){w=sa()|0;P()|0;Chb(s);c0a(v);c0a(u);Ea(w|0)}else{Chb(s);n=0;U(59,150452,56345)|0;w=n;n=0;if(w&1)break;c0a(v);c0a(u);yb=t;return}}Chb(r);w=b;c0a(v);c0a(u);Ea(w|0)}}while(0);w=sa()|0;P()|0;c0a(v);c0a(u);Ea(w|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,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=yb;yb=yb+352|0;q=t+336|0;u=t+192|0;v=t+48|0;m=t+36|0;r=t+24|0;s=t+12|0;o=t;h=Ada(b)|0;g=u+64|0;i=u+8|0;c[i>>2]=40176;c[u>>2]=31772;c[g>>2]=31792;c[u+4>>2]=0;Hoa(u+64|0,u+12|0);c[u+136>>2]=0;c[u+140>>2]=-1;c[u>>2]=40156;c[g>>2]=40196;c[i>>2]=40176;i=u+12|0;RKa(i);c[i>>2]=39800;g=u+44|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}c[u+56>>2]=0;c[u+60>>2]=24;g=v+64|0;p=v+8|0;c[p>>2]=40176;c[v>>2]=31772;c[g>>2]=31792;c[v+4>>2]=0;Hoa(v+64|0,v+12|0);c[v+136>>2]=0;c[v+140>>2]=-1;c[v>>2]=40156;c[g>>2]=40196;c[p>>2]=40176;p=v+12|0;RKa(p);c[p>>2]=39800;g=v+44|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}b=v+8|0;c[v+56>>2]=0;c[v+60>>2]=24;n=0;g=U(59,b|0,55712)|0;w=n;n=0;do if(((((((!(w&1)?(n=0,j=U(78,g|0,h|0)|0,w=n,n=0,!(w&1)):0)?(n=0,k=U(59,j|0,56513)|0,w=n,n=0,!(w&1)):0)?(n=0,l=U(59,k|0,d|0)|0,w=n,n=0,!(w&1)):0)?(n=0,U(59,l|0,139929)|0,w=n,n=0,!(w&1)):0)?(n=0,ea(107,b|0,e|0,f|0),w=n,n=0,!(w&1)):0)?(n=0,U(59,b|0,56341)|0,w=n,n=0,!(w&1)):0)?(n=0,da(75,m|0,i|0),w=n,n=0,!(w&1)):0){w=a[m+11>>0]|0;w=((w<<24>>24<0?c[m+4>>2]|0:w&255)|0)==0;Chb(m);if(w){n=0;b=U(59,150452,113424)|0;w=n;n=0;if(w&1)break;n=0;da(75,o|0,p|0);w=n;n=0;if(w&1)break;n=0;U(61,b|0,o|0)|0;w=n;n=0;if(w&1){w=sa()|0;P()|0;Chb(o);c0a(v);c0a(u);Ea(w|0)}else{Chb(o);c0a(v);c0a(u);yb=t;return}}n=0;U(59,150452,56221)|0;w=n;n=0;if(!(w&1)){c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[r+(b<<2)>>2]=0;b=b+1|0}while(1){anb(q,u+(c[(c[u>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[q>>2]|0,151324)|0;w=n;n=0;if(w&1){g=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;w=n;n=0;if(w&1){g=23;break}XWa(q);n=0;V(51,u|0,r|0,b|0)|0;w=n;n=0;if(w&1){g=27;break}if(c[u+(c[(c[u>>2]|0)+-12>>2]|0)+16>>2]&5|0){g=33;break}n=0;b=U(59,150452,88806)|0;w=n;n=0;if(w&1){g=27;break}n=0;b=U(61,b|0,r|0)|0;w=n;n=0;if(w&1){g=27;break}n=0;U(59,b|0,127446)|0;w=n;n=0;if(w&1){g=27;break}}if((g|0)==23){b=sa()|0;P()|0;XWa(q)}else if((g|0)==27){b=sa()|0;P()|0}else if((g|0)==33){Chb(r);n=0;b=U(59,150452,88806)|0;w=n;n=0;if(w&1)break;n=0;da(75,s|0,p|0);w=n;n=0;if(w&1)break;n=0;U(61,b|0,s|0)|0;w=n;n=0;if(w&1){w=sa()|0;P()|0;Chb(s);c0a(v);c0a(u);Ea(w|0)}else{Chb(s);n=0;U(59,150452,56345)|0;w=n;n=0;if(w&1)break;c0a(v);c0a(u);yb=t;return}}Chb(r);w=b;c0a(v);c0a(u);Ea(w|0)}}while(0);w=sa()|0;P()|0;c0a(v);c0a(u);Ea(w|0)}function Jg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=yb;yb=yb+352|0;p=s+336|0;t=s+192|0;u=s+48|0;l=s+36|0;q=s+24|0;r=s+12|0;m=s;h=Ada(b)|0;f=t+64|0;g=t+8|0;c[g>>2]=40176;c[t>>2]=31772;c[f>>2]=31792;c[t+4>>2]=0;Hoa(t+64|0,t+12|0);c[t+136>>2]=0;c[t+140>>2]=-1;c[t>>2]=40156;c[f>>2]=40196;c[g>>2]=40176;g=t+12|0;RKa(g);c[g>>2]=39800;f=t+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}c[t+56>>2]=0;c[t+60>>2]=24;f=u+64|0;o=u+8|0;c[o>>2]=40176;c[u>>2]=31772;c[f>>2]=31792;c[u+4>>2]=0;Hoa(u+64|0,u+12|0);c[u+136>>2]=0;c[u+140>>2]=-1;c[u>>2]=40156;c[f>>2]=40196;c[o>>2]=40176;o=u+12|0;RKa(o);c[o>>2]=39800;f=u+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}b=u+8|0;c[u+56>>2]=0;c[u+60>>2]=24;n=0;f=U(59,b|0,55712)|0;v=n;n=0;do if(((((((!(v&1)?(n=0,i=U(78,f|0,h|0)|0,v=n,n=0,!(v&1)):0)?(n=0,j=U(59,i|0,56513)|0,v=n,n=0,!(v&1)):0)?(n=0,k=U(59,j|0,56902)|0,v=n,n=0,!(v&1)):0)?(n=0,U(59,k|0,139929)|0,v=n,n=0,!(v&1)):0)?(n=0,fa(80,b|0,d|0,56672,e|0),v=n,n=0,!(v&1)):0)?(n=0,U(59,b|0,56341)|0,v=n,n=0,!(v&1)):0)?(n=0,da(75,l|0,g|0),v=n,n=0,!(v&1)):0){v=a[l+11>>0]|0;v=((v<<24>>24<0?c[l+4>>2]|0:v&255)|0)==0;Chb(l);if(v){n=0;b=U(59,150452,113424)|0;v=n;n=0;if(v&1)break;n=0;da(75,m|0,o|0);v=n;n=0;if(v&1)break;n=0;U(61,b|0,m|0)|0;v=n;n=0;if(v&1){v=sa()|0;P()|0;Chb(m);c0a(u);c0a(t);Ea(v|0)}else{Chb(m);c0a(u);c0a(t);yb=s;return}}n=0;U(59,150452,56221)|0;v=n;n=0;if(!(v&1)){c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}while(1){anb(p,t+(c[(c[t>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[p>>2]|0,151324)|0;v=n;n=0;if(v&1){f=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;v=n;n=0;if(v&1){f=23;break}XWa(p);n=0;V(51,t|0,q|0,b|0)|0;v=n;n=0;if(v&1){f=27;break}if(c[t+(c[(c[t>>2]|0)+-12>>2]|0)+16>>2]&5|0){f=33;break}n=0;b=U(59,150452,88806)|0;v=n;n=0;if(v&1){f=27;break}n=0;b=U(61,b|0,q|0)|0;v=n;n=0;if(v&1){f=27;break}n=0;U(59,b|0,127446)|0;v=n;n=0;if(v&1){f=27;break}}if((f|0)==23){b=sa()|0;P()|0;XWa(p)}else if((f|0)==27){b=sa()|0;P()|0}else if((f|0)==33){Chb(q);n=0;b=U(59,150452,88806)|0;v=n;n=0;if(v&1)break;n=0;da(75,r|0,o|0);v=n;n=0;if(v&1)break;n=0;U(61,b|0,r|0)|0;v=n;n=0;if(v&1){v=sa()|0;P()|0;Chb(r);c0a(u);c0a(t);Ea(v|0)}else{Chb(r);n=0;U(59,150452,56345)|0;v=n;n=0;if(v&1)break;c0a(u);c0a(t);yb=s;return}}Chb(q);v=b;c0a(u);c0a(t);Ea(v|0)}}while(0);v=sa()|0;P()|0;c0a(u);c0a(t);Ea(v|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,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=yb;yb=yb+352|0;p=s+336|0;t=s+192|0;u=s+48|0;l=s+36|0;q=s+24|0;r=s+12|0;m=s;g=Ada(b)|0;f=t+64|0;h=t+8|0;c[h>>2]=40176;c[t>>2]=31772;c[f>>2]=31792;c[t+4>>2]=0;Hoa(t+64|0,t+12|0);c[t+136>>2]=0;c[t+140>>2]=-1;c[t>>2]=40156;c[f>>2]=40196;c[h>>2]=40176;h=t+12|0;RKa(h);c[h>>2]=39800;f=t+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}c[t+56>>2]=0;c[t+60>>2]=24;f=u+64|0;o=u+8|0;c[o>>2]=40176;c[u>>2]=31772;c[f>>2]=31792;c[u+4>>2]=0;Hoa(u+64|0,u+12|0);c[u+136>>2]=0;c[u+140>>2]=-1;c[u>>2]=40156;c[f>>2]=40196;c[o>>2]=40176;o=u+12|0;RKa(o);c[o>>2]=39800;f=u+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}b=u+8|0;c[u+56>>2]=0;c[u+60>>2]=24;n=0;f=U(59,b|0,55712)|0;v=n;n=0;do if(((((((!(v&1)?(n=0,i=U(78,f|0,g|0)|0,v=n,n=0,!(v&1)):0)?(n=0,j=U(59,i|0,56513)|0,v=n,n=0,!(v&1)):0)?(n=0,k=U(59,j|0,57210)|0,v=n,n=0,!(v&1)):0)?(n=0,U(59,k|0,139929)|0,v=n,n=0,!(v&1)):0)?(n=0,fa(82,b|0,d|0,e|0,57230),v=n,n=0,!(v&1)):0)?(n=0,U(59,b|0,56341)|0,v=n,n=0,!(v&1)):0)?(n=0,da(75,l|0,h|0),v=n,n=0,!(v&1)):0){v=a[l+11>>0]|0;v=((v<<24>>24<0?c[l+4>>2]|0:v&255)|0)==0;Chb(l);if(v){n=0;b=U(59,150452,113424)|0;v=n;n=0;if(v&1)break;n=0;da(75,m|0,o|0);v=n;n=0;if(v&1)break;n=0;U(61,b|0,m|0)|0;v=n;n=0;if(v&1){v=sa()|0;P()|0;Chb(m);c0a(u);c0a(t);Ea(v|0)}else{Chb(m);c0a(u);c0a(t);yb=s;return}}n=0;U(59,150452,56221)|0;v=n;n=0;if(!(v&1)){c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}while(1){anb(p,t+(c[(c[t>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[p>>2]|0,151324)|0;v=n;n=0;if(v&1){f=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;v=n;n=0;if(v&1){f=23;break}XWa(p);n=0;V(51,t|0,q|0,b|0)|0;v=n;n=0;if(v&1){f=27;break}if(c[t+(c[(c[t>>2]|0)+-12>>2]|0)+16>>2]&5|0){f=33;break}n=0;b=U(59,150452,88806)|0;v=n;n=0;if(v&1){f=27;break}n=0;b=U(61,b|0,q|0)|0;v=n;n=0;if(v&1){f=27;break}n=0;U(59,b|0,127446)|0;v=n;n=0;if(v&1){f=27;break}}if((f|0)==23){b=sa()|0;P()|0;XWa(p)}else if((f|0)==27){b=sa()|0;P()|0}else if((f|0)==33){Chb(q);n=0;b=U(59,150452,88806)|0;v=n;n=0;if(v&1)break;n=0;da(75,r|0,o|0);v=n;n=0;if(v&1)break;n=0;U(61,b|0,r|0)|0;v=n;n=0;if(v&1){v=sa()|0;P()|0;Chb(r);c0a(u);c0a(t);Ea(v|0)}else{Chb(r);n=0;U(59,150452,56345)|0;v=n;n=0;if(v&1)break;c0a(u);c0a(t);yb=s;return}}Chb(q);v=b;c0a(u);c0a(t);Ea(v|0)}}while(0);v=sa()|0;P()|0;c0a(u);c0a(t);Ea(v|0)}function Lg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=yb;yb=yb+352|0;p=s+336|0;t=s+192|0;u=s+48|0;l=s+36|0;q=s+24|0;r=s+12|0;m=s;h=Ada(b)|0;f=t+64|0;g=t+8|0;c[g>>2]=40176;c[t>>2]=31772;c[f>>2]=31792;c[t+4>>2]=0;Hoa(t+64|0,t+12|0);c[t+136>>2]=0;c[t+140>>2]=-1;c[t>>2]=40156;c[f>>2]=40196;c[g>>2]=40176;g=t+12|0;RKa(g);c[g>>2]=39800;f=t+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}c[t+56>>2]=0;c[t+60>>2]=24;f=u+64|0;o=u+8|0;c[o>>2]=40176;c[u>>2]=31772;c[f>>2]=31792;c[u+4>>2]=0;Hoa(u+64|0,u+12|0);c[u+136>>2]=0;c[u+140>>2]=-1;c[u>>2]=40156;c[f>>2]=40196;c[o>>2]=40176;o=u+12|0;RKa(o);c[o>>2]=39800;f=u+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}b=u+8|0;c[u+56>>2]=0;c[u+60>>2]=24;n=0;f=U(59,b|0,55712)|0;v=n;n=0;do if(((((((!(v&1)?(n=0,i=U(78,f|0,h|0)|0,v=n,n=0,!(v&1)):0)?(n=0,j=U(59,i|0,56513)|0,v=n,n=0,!(v&1)):0)?(n=0,k=U(59,j|0,56753)|0,v=n,n=0,!(v&1)):0)?(n=0,U(59,k|0,139929)|0,v=n,n=0,!(v&1)):0)?(n=0,ea(108,b|0,d|0,e|0),v=n,n=0,!(v&1)):0)?(n=0,U(59,b|0,56341)|0,v=n,n=0,!(v&1)):0)?(n=0,da(75,l|0,g|0),v=n,n=0,!(v&1)):0){v=a[l+11>>0]|0;v=((v<<24>>24<0?c[l+4>>2]|0:v&255)|0)==0;Chb(l);if(v){n=0;b=U(59,150452,113424)|0;v=n;n=0;if(v&1)break;n=0;da(75,m|0,o|0);v=n;n=0;if(v&1)break;n=0;U(61,b|0,m|0)|0;v=n;n=0;if(v&1){v=sa()|0;P()|0;Chb(m);c0a(u);c0a(t);Ea(v|0)}else{Chb(m);c0a(u);c0a(t);yb=s;return}}n=0;U(59,150452,56221)|0;v=n;n=0;if(!(v&1)){c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}while(1){anb(p,t+(c[(c[t>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[p>>2]|0,151324)|0;v=n;n=0;if(v&1){f=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;v=n;n=0;if(v&1){f=23;break}XWa(p);n=0;V(51,t|0,q|0,b|0)|0;v=n;n=0;if(v&1){f=27;break}if(c[t+(c[(c[t>>2]|0)+-12>>2]|0)+16>>2]&5|0){f=33;break}n=0;b=U(59,150452,88806)|0;v=n;n=0;if(v&1){f=27;break}n=0;b=U(61,b|0,q|0)|0;v=n;n=0;if(v&1){f=27;break}n=0;U(59,b|0,127446)|0;v=n;n=0;if(v&1){f=27;break}}if((f|0)==23){b=sa()|0;P()|0;XWa(p)}else if((f|0)==27){b=sa()|0;P()|0}else if((f|0)==33){Chb(q);n=0;b=U(59,150452,88806)|0;v=n;n=0;if(v&1)break;n=0;da(75,r|0,o|0);v=n;n=0;if(v&1)break;n=0;U(61,b|0,r|0)|0;v=n;n=0;if(v&1){v=sa()|0;P()|0;Chb(r);c0a(u);c0a(t);Ea(v|0)}else{Chb(r);n=0;U(59,150452,56345)|0;v=n;n=0;if(v&1)break;c0a(u);c0a(t);yb=s;return}}Chb(q);v=b;c0a(u);c0a(t);Ea(v|0)}}while(0);v=sa()|0;P()|0;c0a(u);c0a(t);Ea(v|0)}function Mg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=yb;yb=yb+112|0;j=w;l=(f-e|0)/12|0;do if(l>>>0>100){k=qc(l)|0;if(!k){n=0;ba(9);n=0;e=sa()|0;P()|0;break}else{j=k;v=k;o=5;break}}else{v=0;o=5}while(0);if((o|0)==5){o=e;p=j;k=0;while(1){if((o|0)==(f|0))break;m=a[o+8+3>>0]|0;if(m<<24>>24<0)m=c[o+4>>2]|0;else m=m&255;if(!m){a[p>>0]=2;k=k+1|0;l=l+-1|0}else a[p>>0]=1;o=o+12|0;p=p+1|0}u=0;r=k;p=d;a:while(1){k=c[b>>2]|0;do if(k){m=c[k+12>>2]|0;if((m|0)==(c[k+16>>2]|0)){n=0;k=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;t=n;n=0;if(t&1){o=40;break a}}else k=WCb(c[m>>2]|0)|0;if(Nwb(k)|0){c[b>>2]=0;o=1;break}else{o=(c[b>>2]|0)==0;break}}else o=1;while(0);if(!p){t=0;k=1;p=0}else{k=c[p+12>>2]|0;if((k|0)==(c[p+16>>2]|0)){n=0;k=S(c[(c[p>>2]|0)+36>>2]|0,p|0)|0;t=n;n=0;if(t&1){o=40;break}}else k=WCb(c[k>>2]|0)|0;s=Nwb(k)|0;t=s?0:p;k=s;p=s?0:p}m=c[b>>2]|0;if(!((l|0)!=0&(o^k))){o=28;break}k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0)){n=0;k=S(c[(c[m>>2]|0)+36>>2]|0,m|0)|0;s=n;n=0;if(s&1){o=46;break}}else k=WCb(c[k>>2]|0)|0;if(!i){n=0;k=U(c[(c[g>>2]|0)+28>>2]|0,g|0,k|0)|0;s=n;n=0;if(s&1){o=46;break}}s=u+1|0;d=e;p=0;q=j;while(1){if((d|0)==(f|0))break;do if((a[q>>0]|0)==1){o=d+8+3|0;if((a[o>>0]|0)<0)m=c[d>>2]|0;else m=d;m=c[m+(u<<2)>>2]|0;if(!i){n=0;m=U(c[(c[g>>2]|0)+28>>2]|0,g|0,m|0)|0;x=n;n=0;if(x&1){o=56;break a}}if((k|0)!=(m|0)){a[q>>0]=0;m=p;o=r;l=l+-1|0;break}m=a[o>>0]|0;if(m<<24>>24<0)m=c[d+4>>2]|0;else m=m&255;if((m|0)==(s|0)){a[q>>0]=2;m=1;o=r+1|0;l=l+-1|0}else{m=1;o=r}}else{m=p;o=r}while(0);d=d+12|0;p=m;q=q+1|0;r=o}b:do if(p){k=c[b>>2]|0;m=k+12|0;o=c[m>>2]|0;if((o|0)==(c[k+16>>2]|0)){n=0;S(c[(c[k>>2]|0)+40>>2]|0,k|0)|0;x=n;n=0;if(x&1){o=72;break a}}else c[m>>2]=o+4;if((r+l|0)>>>0>1){o=e;p=j;k=r;while(1){if((o|0)==(f|0))break b;if((a[p>>0]|0)==2){m=a[o+8+3>>0]|0;if(m<<24>>24<0)m=c[o+4>>2]|0;else m=m&255;if((m|0)!=(s|0)){a[p>>0]=0;k=k+-1|0}}o=o+12|0;p=p+1|0}}else k=r}else k=r;while(0);u=s;r=k;p=t}if((o|0)==28){do if(m){k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0)){n=0;k=S(c[(c[m>>2]|0)+36>>2]|0,m|0)|0;x=n;n=0;if(x&1)break}else k=WCb(c[k>>2]|0)|0;if(Nwb(k)|0){c[b>>2]=0;l=1;o=35;break}else{l=(c[b>>2]|0)==0;o=35;break}}else{l=1;o=35}while(0);do if((o|0)==35){if(p){k=c[p+12>>2]|0;if((k|0)==(c[p+16>>2]|0)){n=0;k=S(c[(c[p>>2]|0)+36>>2]|0,p|0)|0;x=n;n=0;if(x&1)break}else k=WCb(c[k>>2]|0)|0;if(!(Nwb(k)|0)){if(!l)o=82}else o=80}else o=80;if((o|0)==80?l:0)o=82;if((o|0)==82)c[h>>2]=c[h>>2]|2;while(1){if((e|0)==(f|0)){o=88;break}if((a[j>>0]|0)==2)break;e=e+12|0;j=j+1|0}if((o|0)==88){c[h>>2]=c[h>>2]|4;e=f}if(v|0)wg(v);yb=w;return e|0}while(0);e=sa()|0;P()|0}else if((o|0)==40){e=sa()|0;P()|0}else if((o|0)==46){e=sa()|0;P()|0}else if((o|0)==56){e=sa()|0;P()|0}else if((o|0)==72){e=sa()|0;P()|0}if(v)wg(v)}Ea(e|0);return 0}function Ng(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=yb;yb=yb+352|0;p=s+336|0;t=s+192|0;u=s+48|0;l=s+36|0;q=s+24|0;r=s+12|0;m=s;g=Ada(b)|0;f=t+64|0;h=t+8|0;c[h>>2]=40176;c[t>>2]=31772;c[f>>2]=31792;c[t+4>>2]=0;Hoa(t+64|0,t+12|0);c[t+136>>2]=0;c[t+140>>2]=-1;c[t>>2]=40156;c[f>>2]=40196;c[h>>2]=40176;h=t+12|0;RKa(h);c[h>>2]=39800;f=t+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}c[t+56>>2]=0;c[t+60>>2]=24;f=u+64|0;o=u+8|0;c[o>>2]=40176;c[u>>2]=31772;c[f>>2]=31792;c[u+4>>2]=0;Hoa(u+64|0,u+12|0);c[u+136>>2]=0;c[u+140>>2]=-1;c[u>>2]=40156;c[f>>2]=40196;c[o>>2]=40176;o=u+12|0;RKa(o);c[o>>2]=39800;f=u+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}b=u+8|0;c[u+56>>2]=0;c[u+60>>2]=24;n=0;f=U(59,b|0,55712)|0;v=n;n=0;do if(((((((!(v&1)?(n=0,i=U(78,f|0,g|0)|0,v=n,n=0,!(v&1)):0)?(n=0,j=U(59,i|0,56513)|0,v=n,n=0,!(v&1)):0)?(n=0,k=U(59,j|0,56702)|0,v=n,n=0,!(v&1)):0)?(n=0,U(59,k|0,139929)|0,v=n,n=0,!(v&1)):0)?(n=0,fa(78,b|0,56518,d|0,e|0),v=n,n=0,!(v&1)):0)?(n=0,U(59,b|0,56341)|0,v=n,n=0,!(v&1)):0)?(n=0,da(75,l|0,h|0),v=n,n=0,!(v&1)):0){v=a[l+11>>0]|0;v=((v<<24>>24<0?c[l+4>>2]|0:v&255)|0)==0;Chb(l);if(v){n=0;b=U(59,150452,113424)|0;v=n;n=0;if(v&1)break;n=0;da(75,m|0,o|0);v=n;n=0;if(v&1)break;n=0;U(61,b|0,m|0)|0;v=n;n=0;if(v&1){v=sa()|0;P()|0;Chb(m);c0a(u);c0a(t);Ea(v|0)}else{Chb(m);c0a(u);c0a(t);yb=s;return}}n=0;U(59,150452,56221)|0;v=n;n=0;if(!(v&1)){c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}while(1){anb(p,t+(c[(c[t>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[p>>2]|0,151324)|0;v=n;n=0;if(v&1){f=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;v=n;n=0;if(v&1){f=23;break}XWa(p);n=0;V(51,t|0,q|0,b|0)|0;v=n;n=0;if(v&1){f=27;break}if(c[t+(c[(c[t>>2]|0)+-12>>2]|0)+16>>2]&5|0){f=33;break}n=0;b=U(59,150452,88806)|0;v=n;n=0;if(v&1){f=27;break}n=0;b=U(61,b|0,q|0)|0;v=n;n=0;if(v&1){f=27;break}n=0;U(59,b|0,127446)|0;v=n;n=0;if(v&1){f=27;break}}if((f|0)==23){b=sa()|0;P()|0;XWa(p)}else if((f|0)==27){b=sa()|0;P()|0}else if((f|0)==33){Chb(q);n=0;b=U(59,150452,88806)|0;v=n;n=0;if(v&1)break;n=0;da(75,r|0,o|0);v=n;n=0;if(v&1)break;n=0;U(61,b|0,r|0)|0;v=n;n=0;if(v&1){v=sa()|0;P()|0;Chb(r);c0a(u);c0a(t);Ea(v|0)}else{Chb(r);n=0;U(59,150452,56345)|0;v=n;n=0;if(v&1)break;c0a(u);c0a(t);yb=s;return}}Chb(q);v=b;c0a(u);c0a(t);Ea(v|0)}}while(0);v=sa()|0;P()|0;c0a(u);c0a(t);Ea(v|0)}function Og(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=yb;yb=yb+352|0;p=s+336|0;t=s+192|0;u=s+48|0;l=s+36|0;q=s+24|0;r=s+12|0;m=s;g=Ada(b)|0;f=t+64|0;h=t+8|0;c[h>>2]=40176;c[t>>2]=31772;c[f>>2]=31792;c[t+4>>2]=0;Hoa(t+64|0,t+12|0);c[t+136>>2]=0;c[t+140>>2]=-1;c[t>>2]=40156;c[f>>2]=40196;c[h>>2]=40176;h=t+12|0;RKa(h);c[h>>2]=39800;f=t+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}c[t+56>>2]=0;c[t+60>>2]=24;f=u+64|0;o=u+8|0;c[o>>2]=40176;c[u>>2]=31772;c[f>>2]=31792;c[u+4>>2]=0;Hoa(u+64|0,u+12|0);c[u+136>>2]=0;c[u+140>>2]=-1;c[u>>2]=40156;c[f>>2]=40196;c[o>>2]=40176;o=u+12|0;RKa(o);c[o>>2]=39800;f=u+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}b=u+8|0;c[u+56>>2]=0;c[u+60>>2]=24;n=0;f=U(59,b|0,55712)|0;v=n;n=0;do if(((((((!(v&1)?(n=0,i=U(78,f|0,g|0)|0,v=n,n=0,!(v&1)):0)?(n=0,j=U(59,i|0,56513)|0,v=n,n=0,!(v&1)):0)?(n=0,k=U(59,j|0,57122)|0,v=n,n=0,!(v&1)):0)?(n=0,U(59,k|0,139929)|0,v=n,n=0,!(v&1)):0)?(n=0,ea(111,b|0,d|0,e|0),v=n,n=0,!(v&1)):0)?(n=0,U(59,b|0,56341)|0,v=n,n=0,!(v&1)):0)?(n=0,da(75,l|0,h|0),v=n,n=0,!(v&1)):0){v=a[l+11>>0]|0;v=((v<<24>>24<0?c[l+4>>2]|0:v&255)|0)==0;Chb(l);if(v){n=0;b=U(59,150452,113424)|0;v=n;n=0;if(v&1)break;n=0;da(75,m|0,o|0);v=n;n=0;if(v&1)break;n=0;U(61,b|0,m|0)|0;v=n;n=0;if(v&1){v=sa()|0;P()|0;Chb(m);c0a(u);c0a(t);Ea(v|0)}else{Chb(m);c0a(u);c0a(t);yb=s;return}}n=0;U(59,150452,56221)|0;v=n;n=0;if(!(v&1)){c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}while(1){anb(p,t+(c[(c[t>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[p>>2]|0,151324)|0;v=n;n=0;if(v&1){f=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;v=n;n=0;if(v&1){f=23;break}XWa(p);n=0;V(51,t|0,q|0,b|0)|0;v=n;n=0;if(v&1){f=27;break}if(c[t+(c[(c[t>>2]|0)+-12>>2]|0)+16>>2]&5|0){f=33;break}n=0;b=U(59,150452,88806)|0;v=n;n=0;if(v&1){f=27;break}n=0;b=U(61,b|0,q|0)|0;v=n;n=0;if(v&1){f=27;break}n=0;U(59,b|0,127446)|0;v=n;n=0;if(v&1){f=27;break}}if((f|0)==23){b=sa()|0;P()|0;XWa(p)}else if((f|0)==27){b=sa()|0;P()|0}else if((f|0)==33){Chb(q);n=0;b=U(59,150452,88806)|0;v=n;n=0;if(v&1)break;n=0;da(75,r|0,o|0);v=n;n=0;if(v&1)break;n=0;U(61,b|0,r|0)|0;v=n;n=0;if(v&1){v=sa()|0;P()|0;Chb(r);c0a(u);c0a(t);Ea(v|0)}else{Chb(r);n=0;U(59,150452,56345)|0;v=n;n=0;if(v&1)break;c0a(u);c0a(t);yb=s;return}}Chb(q);v=b;c0a(u);c0a(t);Ea(v|0)}}while(0);v=sa()|0;P()|0;c0a(u);c0a(t);Ea(v|0)}function Pg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=yb;yb=yb+352|0;p=s+336|0;t=s+192|0;u=s+48|0;l=s+36|0;q=s+24|0;r=s+12|0;m=s;g=Ada(b)|0;f=t+64|0;h=t+8|0;c[h>>2]=40176;c[t>>2]=31772;c[f>>2]=31792;c[t+4>>2]=0;Hoa(t+64|0,t+12|0);c[t+136>>2]=0;c[t+140>>2]=-1;c[t>>2]=40156;c[f>>2]=40196;c[h>>2]=40176;h=t+12|0;RKa(h);c[h>>2]=39800;f=t+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}c[t+56>>2]=0;c[t+60>>2]=24;f=u+64|0;o=u+8|0;c[o>>2]=40176;c[u>>2]=31772;c[f>>2]=31792;c[u+4>>2]=0;Hoa(u+64|0,u+12|0);c[u+136>>2]=0;c[u+140>>2]=-1;c[u>>2]=40156;c[f>>2]=40196;c[o>>2]=40176;o=u+12|0;RKa(o);c[o>>2]=39800;f=u+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}b=u+8|0;c[u+56>>2]=0;c[u+60>>2]=24;n=0;f=U(59,b|0,55712)|0;v=n;n=0;do if(((((((!(v&1)?(n=0,i=U(78,f|0,g|0)|0,v=n,n=0,!(v&1)):0)?(n=0,j=U(59,i|0,56513)|0,v=n,n=0,!(v&1)):0)?(n=0,k=U(59,j|0,56830)|0,v=n,n=0,!(v&1)):0)?(n=0,U(59,k|0,139929)|0,v=n,n=0,!(v&1)):0)?(n=0,ea(110,b|0,d|0,e|0),v=n,n=0,!(v&1)):0)?(n=0,U(59,b|0,56341)|0,v=n,n=0,!(v&1)):0)?(n=0,da(75,l|0,h|0),v=n,n=0,!(v&1)):0){v=a[l+11>>0]|0;v=((v<<24>>24<0?c[l+4>>2]|0:v&255)|0)==0;Chb(l);if(v){n=0;b=U(59,150452,113424)|0;v=n;n=0;if(v&1)break;n=0;da(75,m|0,o|0);v=n;n=0;if(v&1)break;n=0;U(61,b|0,m|0)|0;v=n;n=0;if(v&1){v=sa()|0;P()|0;Chb(m);c0a(u);c0a(t);Ea(v|0)}else{Chb(m);c0a(u);c0a(t);yb=s;return}}n=0;U(59,150452,56221)|0;v=n;n=0;if(!(v&1)){c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}while(1){anb(p,t+(c[(c[t>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[p>>2]|0,151324)|0;v=n;n=0;if(v&1){f=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;v=n;n=0;if(v&1){f=23;break}XWa(p);n=0;V(51,t|0,q|0,b|0)|0;v=n;n=0;if(v&1){f=27;break}if(c[t+(c[(c[t>>2]|0)+-12>>2]|0)+16>>2]&5|0){f=33;break}n=0;b=U(59,150452,88806)|0;v=n;n=0;if(v&1){f=27;break}n=0;b=U(61,b|0,q|0)|0;v=n;n=0;if(v&1){f=27;break}n=0;U(59,b|0,127446)|0;v=n;n=0;if(v&1){f=27;break}}if((f|0)==23){b=sa()|0;P()|0;XWa(p)}else if((f|0)==27){b=sa()|0;P()|0}else if((f|0)==33){Chb(q);n=0;b=U(59,150452,88806)|0;v=n;n=0;if(v&1)break;n=0;da(75,r|0,o|0);v=n;n=0;if(v&1)break;n=0;U(61,b|0,r|0)|0;v=n;n=0;if(v&1){v=sa()|0;P()|0;Chb(r);c0a(u);c0a(t);Ea(v|0)}else{Chb(r);n=0;U(59,150452,56345)|0;v=n;n=0;if(v&1)break;c0a(u);c0a(t);yb=s;return}}Chb(q);v=b;c0a(u);c0a(t);Ea(v|0)}}while(0);v=sa()|0;P()|0;c0a(u);c0a(t);Ea(v|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,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=yb;yb=yb+352|0;p=s+336|0;t=s+192|0;u=s+48|0;l=s+36|0;q=s+24|0;r=s+12|0;m=s;g=Ada(b)|0;f=t+64|0;h=t+8|0;c[h>>2]=40176;c[t>>2]=31772;c[f>>2]=31792;c[t+4>>2]=0;Hoa(t+64|0,t+12|0);c[t+136>>2]=0;c[t+140>>2]=-1;c[t>>2]=40156;c[f>>2]=40196;c[h>>2]=40176;h=t+12|0;RKa(h);c[h>>2]=39800;f=t+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}c[t+56>>2]=0;c[t+60>>2]=24;f=u+64|0;o=u+8|0;c[o>>2]=40176;c[u>>2]=31772;c[f>>2]=31792;c[u+4>>2]=0;Hoa(u+64|0,u+12|0);c[u+136>>2]=0;c[u+140>>2]=-1;c[u>>2]=40156;c[f>>2]=40196;c[o>>2]=40176;o=u+12|0;RKa(o);c[o>>2]=39800;f=u+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}b=u+8|0;c[u+56>>2]=0;c[u+60>>2]=24;n=0;f=U(59,b|0,55712)|0;v=n;n=0;do if(((((((!(v&1)?(n=0,i=U(78,f|0,g|0)|0,v=n,n=0,!(v&1)):0)?(n=0,j=U(59,i|0,56513)|0,v=n,n=0,!(v&1)):0)?(n=0,k=U(59,j|0,d|0)|0,v=n,n=0,!(v&1)):0)?(n=0,U(59,k|0,139929)|0,v=n,n=0,!(v&1)):0)?(n=0,da(214,b|0,e|0),v=n,n=0,!(v&1)):0)?(n=0,U(59,b|0,56341)|0,v=n,n=0,!(v&1)):0)?(n=0,da(75,l|0,h|0),v=n,n=0,!(v&1)):0){v=a[l+11>>0]|0;v=((v<<24>>24<0?c[l+4>>2]|0:v&255)|0)==0;Chb(l);if(v){n=0;b=U(59,150452,113424)|0;v=n;n=0;if(v&1)break;n=0;da(75,m|0,o|0);v=n;n=0;if(v&1)break;n=0;U(61,b|0,m|0)|0;v=n;n=0;if(v&1){v=sa()|0;P()|0;Chb(m);c0a(u);c0a(t);Ea(v|0)}else{Chb(m);c0a(u);c0a(t);yb=s;return}}n=0;U(59,150452,56221)|0;v=n;n=0;if(!(v&1)){c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}while(1){anb(p,t+(c[(c[t>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[p>>2]|0,151324)|0;v=n;n=0;if(v&1){f=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;v=n;n=0;if(v&1){f=23;break}XWa(p);n=0;V(51,t|0,q|0,b|0)|0;v=n;n=0;if(v&1){f=27;break}if(c[t+(c[(c[t>>2]|0)+-12>>2]|0)+16>>2]&5|0){f=33;break}n=0;b=U(59,150452,88806)|0;v=n;n=0;if(v&1){f=27;break}n=0;b=U(61,b|0,q|0)|0;v=n;n=0;if(v&1){f=27;break}n=0;U(59,b|0,127446)|0;v=n;n=0;if(v&1){f=27;break}}if((f|0)==23){b=sa()|0;P()|0;XWa(p)}else if((f|0)==27){b=sa()|0;P()|0}else if((f|0)==33){Chb(q);n=0;b=U(59,150452,88806)|0;v=n;n=0;if(v&1)break;n=0;da(75,r|0,o|0);v=n;n=0;if(v&1)break;n=0;U(61,b|0,r|0)|0;v=n;n=0;if(v&1){v=sa()|0;P()|0;Chb(r);c0a(u);c0a(t);Ea(v|0)}else{Chb(r);n=0;U(59,150452,56345)|0;v=n;n=0;if(v&1)break;c0a(u);c0a(t);yb=s;return}}Chb(q);v=b;c0a(u);c0a(t);Ea(v|0)}}while(0);v=sa()|0;P()|0;c0a(u);c0a(t);Ea(v|0)}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,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;p=yb;yb=yb+96|0;e=p+80|0;f=p+64|0;s=p+48|0;t=p+32|0;r=p+16|0;q=p;o=b+8|0;if(!(aqb(c[o>>2]|0)|0)){yb=p;return}h=b+12|0;d=c[h>>2]|0;if(!(qqa(a,d)|0)){Pwb(c[a+16>>2]|0,d);b=c[b+16>>2]|0;if(!(qqa(a,b)|0)){yb=p;return}pT(e,a,b);lNa(e);yb=p;return}g=b+16|0;if(!(qqa(a,c[g>>2]|0)|0)){s=c[a+44>>2]|0;t=Q6a(c[s>>2]|0,d)|0;t=Uha(s,t,c[g>>2]|0)|0;Pwb(c[a+16>>2]|0,t);pT(f,a,c[h>>2]|0);lNa(f);yb=p;return}iG(s,a,1);n=0;ea(146,t|0,a|0,c[h>>2]|0);f=n;n=0;if(f&1){t=sa()|0;P()|0;lNa(s);Ea(t|0)}n=0;ea(145,r|0,a|0,1);f=n;n=0;if(f&1){b=sa()|0;P()|0}else{n=0;ea(146,q|0,a|0,c[g>>2]|0);f=n;n=0;if(f&1){b=sa()|0;P()|0}else{b=a+44|0;d=c[b>>2]|0;n=0;e=S(280,r|0)|0;f=n;n=0;a:do if((((!(f&1)?(n=0,i=V(70,c[d>>2]|0,e|0,c[g>>2]|0)|0,g=n,n=0,!(g&1)):0)?(j=c[b>>2]|0,n=0,k=S(280,s|0)|0,g=n,n=0,!(g&1)):0)?(n=0,l=V(70,c[j>>2]|0,k|0,c[h>>2]|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=V(55,c[b>>2]|0,l|0,i|0)|0,l=n,n=0,!(l&1)):0){b=c[o>>2]|0;do switch(b|0){case 25:{n=0;b=Z(42,a|0,m|0,s|0,t|0,r|0,q|0)|0;o=n;n=0;if(o&1)break a;Pwb(c[a+16>>2]|0,b);break}case 26:{n=0;b=Z(43,a|0,m|0,s|0,t|0,r|0,q|0)|0;o=n;n=0;if(o&1)break a;Pwb(c[a+16>>2]|0,b);break}case 39:case 38:case 31:case 30:case 29:case 28:case 27:{n=0;b=U(59,150620,81647)|0;p=n;n=0;if(p&1)break a;n=0;b=U(63,b|0,c[o>>2]|0)|0;p=n;n=0;if(p&1)break a;n=0;ca(497,b|0);p=n;n=0;if(p&1)break a;n=0;fa(75,141129,81381,1461,131297);n=0;break a}case 34:case 33:case 32:{n=0;b=_(7,a|0,b|0,m|0,s|0,t|0,r|0,q|0)|0;o=n;n=0;if(o&1)break a;Pwb(c[a+16>>2]|0,b);break}case 36:case 37:case 35:{n=0;b=_(8,a|0,b|0,m|0,s|0,t|0,r|0,q|0)|0;o=n;n=0;if(o&1)break a;Pwb(c[a+16>>2]|0,b);break}case 40:{n=0;b=Z(44,a|0,m|0,s|0,t|0,r|0,q|0)|0;o=n;n=0;if(o&1)break a;Pwb(c[a+16>>2]|0,b);break}case 41:{n=0;b=Z(45,a|0,m|0,s|0,t|0,r|0,q|0)|0;o=n;n=0;if(o&1)break a;Pwb(c[a+16>>2]|0,b);break}case 48:case 46:case 44:case 42:{n=0;b=_(9,a|0,b|0,m|0,s|0,t|0,r|0,q|0)|0;o=n;n=0;if(o&1)break a;Pwb(c[a+16>>2]|0,b);break}case 49:case 47:case 45:case 43:{n=0;b=_(10,a|0,b|0,m|0,s|0,t|0,r|0,q|0)|0;o=n;n=0;if(o&1)break a;Pwb(c[a+16>>2]|0,b);break}default:{n=0;b=U(59,150620,81680)|0;p=n;n=0;if(p&1)break a;n=0;b=U(63,b|0,c[o>>2]|0)|0;p=n;n=0;if(p&1)break a;n=0;ca(497,b|0);p=n;n=0;if(p&1)break a;n=0;ba(6);n=0;break a}}while(0);lNa(q);lNa(r);lNa(t);lNa(s);yb=p;return}while(0);b=sa()|0;P()|0;lNa(q)}lNa(r)}lNa(t);t=b;lNa(s);Ea(t|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,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;x=yb;yb=yb+304|0;w=x+264|0;u=x+160|0;A=x+292|0;y=x+280|0;v=x+276|0;r=x;s=x+272|0;t=x+268|0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[A+(b<<2)>>2]=0;b=b+1|0}anb(y,f);n=0;b=U(66,c[y>>2]|0,151356)|0;q=n;n=0;if(!(q&1)?(n=0,W(c[(c[b>>2]|0)+48>>2]|0,b|0,31216,31242,u|0)|0,q=n,n=0,!(q&1)):0){XWa(y);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}q=y+11|0;if((a[q>>0]|0)<0)b=(c[y+8>>2]&2147483647)+-1|0;else b=10;n=0;da(92,y|0,b|0);p=n;n=0;if(p&1){b=sa()|0;P()|0}else{b=(a[q>>0]|0)<0?c[y>>2]|0:y;c[v>>2]=b;c[s>>2]=r;c[t>>2]=0;o=y+4|0;p=y+8|0;i=c[d>>2]|0;j=i;a:while(1){if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0)){n=0;f=S(c[(c[i>>2]|0)+36>>2]|0,i|0)|0;m=n;n=0;if(m&1){z=35;break}}else f=WCb(c[f>>2]|0)|0;if(Nwb(f)|0){c[d>>2]=0;m=0;j=0;k=1}else{m=i;k=0}}else{m=0;j=0;k=1}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0)){n=0;f=S(c[(c[i>>2]|0)+36>>2]|0,i|0)|0;l=n;n=0;if(l&1){z=35;break a}}else f=WCb(c[f>>2]|0)|0;if(!(Nwb(f)|0))if(k)break;else{z=46;break a}else{c[e>>2]=0;z=25;break}}else z=25;while(0);if((z|0)==25){z=0;if(k){i=0;z=46;break}else i=0}f=a[q>>0]|0;f=f<<24>>24<0?c[o>>2]|0:f&255;if((c[v>>2]|0)==(b+f|0)){n=0;da(92,y|0,f<<1|0);l=n;n=0;if(l&1){z=37;break}if((a[q>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;n=0;da(92,y|0,b|0);l=n;n=0;if(l&1){z=37;break}b=(a[q>>0]|0)<0?c[y>>2]|0:y;c[v>>2]=b+f}k=m+12|0;f=c[k>>2]|0;l=m+16|0;if((f|0)==(c[l>>2]|0)){n=0;f=S(c[(c[m>>2]|0)+36>>2]|0,m|0)|0;B=n;n=0;if(B&1){z=35;break}}else f=WCb(c[f>>2]|0)|0;if(Ps(f,16,b,v,t,0,A,r,s,u)|0){z=46;break}f=c[k>>2]|0;if((f|0)==(c[l>>2]|0)){n=0;S(c[(c[m>>2]|0)+40>>2]|0,m|0)|0;B=n;n=0;if(B&1){z=35;break}}else c[k>>2]=f+4;i=m}if((z|0)==35){b=sa()|0;P()|0}else if((z|0)==37){b=sa()|0;P()|0}else if((z|0)==46){n=0;da(92,y|0,(c[v>>2]|0)-b|0);B=n;n=0;b:do if(!(B&1)){u=a[q>>0]|0;v=c[y>>2]|0;B=t8a()|0;c[w>>2]=h;if((uDa(u<<24>>24<0?v:y,B,0,w)|0)!=1)c[g>>2]=4;if(m){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0)){n=0;b=S(c[(c[j>>2]|0)+36>>2]|0,m|0)|0;B=n;n=0;if(B&1)break}else b=WCb(c[b>>2]|0)|0;if(Nwb(b)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0)){n=0;b=S(c[(c[i>>2]|0)+36>>2]|0,i|0)|0;B=n;n=0;if(B&1)break b}else b=WCb(c[b>>2]|0)|0;if(!(Nwb(b)|0))if(f)break;else{z=63;break}else{c[e>>2]=0;z=61;break}}else z=61;while(0);if((z|0)==61?f:0)z=63;if((z|0)==63)c[g>>2]=c[g>>2]|2;B=c[d>>2]|0;Chb(y);Chb(A);yb=x;return B|0}while(0);b=sa()|0;P()|0}}Chb(y)}else{b=sa()|0;P()|0;XWa(y)}Chb(A);Ea(b|0);return 0}function Tg(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;B=yb;yb=yb+64|0;D=B+36|0;f=B+32|0;v=B+28|0;C=B+16|0;y=B+4|0;w=B;z=WCb(c[a+32>>2]|0)|0;x=D+4|0;A=D+12|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;c[D+12>>2]=0;g[D+16>>2]=1.0;b=0;while(1){c[f>>2]=b;if(b>>>0>=(Icb(z)|0)>>>0){d=13;break}n=0;b=U(84,z|0,b|0)|0;u=n;n=0;if(u&1){d=9;break}if((b|0)==1){b=c[A>>2]|0;n=0;d=S(293,1)|0;u=n;n=0;if(u&1){d=9;break}n=0;e=U(141,D|0,f|0)|0;u=n;n=0;if(u&1){d=9;break}u=J(b,d)|0;c[e>>2]=u}b=(c[f>>2]|0)+1|0}do if((d|0)==9){b=sa()|0;P()|0}else if((d|0)==13){o=c[a+60>>2]|0;p=a+136|0;q=y+4|0;r=y+8|0;s=C+4|0;t=a+184|0;u=a+36|0;k=-1;b=0;m=c[a+56>>2]|0;a:while(1){if((m|0)==(o|0)){d=51;break}c[v>>2]=c[m>>2];if(lC(p,v)|0){f=c[m>>2]|0;l=f+24|0;h=f+28|0;j=c[l>>2]|0;i=(c[h>>2]|0)-j>>4;d=0;e=-1;while(1){if((d|0)==(i|0))break;E=VBb(c[j+(d<<4)>>2]|0)|0;E=E?d:e;d=d+1|0;e=E}if((e|0)!=-1){n=0;da(1090,C|0,f+12|0);E=n;n=0;if(E&1){d=8;break}e=(c[h>>2]|0)-(c[l>>2]|0)>>4;d=k;while(1){k=e+-1|0;if((e|0)<=0)break;j=c[l>>2]|0;e=c[j+(k<<4)>>2]|0;do if(bCb(e)|0){n=0;da(560,C|0,c[j+(k<<4)+4>>2]|0);E=n;n=0;if(E&1){d=25;break a}}else{if(OBb(e)|0){n=0;U(103,C|0,c[j+(k<<4)+4>>2]|0)|0;E=n;n=0;if(E&1){d=25;break a}else break}if(!(VBb(e)|0)){d=45;break a}c[y>>2]=0;c[q>>2]=0;c[r>>2]=0;f=c[s>>2]|0;e=c[C>>2]|0;while(1){if((e|0)==(f|0))break;h=c[e>>2]|0;c[w>>2]=h;do if(UG(c[D>>2]|0,c[x>>2]|0,h)|0){i=c[q>>2]|0;if((i|0)==(c[r>>2]|0)){n=0;da(997,y|0,w|0);E=n;n=0;if(E&1){d=36;break a}else break}else{c[i>>2]=h;c[q>>2]=(c[q>>2]|0)+4;break}}while(0);e=e+4|0}if((c[y>>2]|0)!=(c[q>>2]|0)){if(!b){n=0;d=U(133,z|0,1)|0;E=n;n=0;if(E&1){d=37;break a}}n=0;b=U(183,t|0,j+(k<<4)+8|0)|0;E=n;n=0;if(E&1){d=37;break a}E=WCb(c[u>>2]|0)|0;n=0;ia(5,a|0,c[b>>2]|0,y|0,d|0,D|0,z|0,E|0);E=n;n=0;if(E&1){d=37;break a}else b=1}Vob(y)}while(0);e=k}Htb(C)}else d=k}else d=k;k=d;m=m+4|0}if((d|0)==8){b=sa()|0;P()|0;break}else if((d|0)==25){b=sa()|0;P()|0;d=26}else if((d|0)==36){b=sa()|0;P()|0;d=38}else if((d|0)==37){b=sa()|0;P()|0;d=38}else if((d|0)==45){n=0;fa(75,141129,108066,130,108104);n=0;b=sa()|0;P()|0;d=26}else if((d|0)==51){if(!b){Pdb(D);yb=B;return}n=0;b=S(293,1)|0;E=n;n=0;if(!(E&1)?(E=WCb(c[u>>2]|0)|0,C=J(b,c[A>>2]|0)|0,n=0,fa(131,k|0,z|0,C|0,E|0),E=n,n=0,!(E&1)):0){Pdb(D);yb=B;return}b=sa()|0;P()|0;break}if((d|0)!=26)if((d|0)==38)Vob(y);Htb(C);E=b;Pdb(D);Ea(E|0)}while(0);E=b;Pdb(D);Ea(E|0)}function Ug(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;r=yb;yb=yb+352|0;o=r+336|0;s=r+192|0;t=r+48|0;k=r+36|0;p=r+24|0;q=r+12|0;l=r;g=Ada(b)|0;e=s+64|0;f=s+8|0;c[f>>2]=40176;c[s>>2]=31772;c[e>>2]=31792;c[s+4>>2]=0;Hoa(s+64|0,s+12|0);c[s+136>>2]=0;c[s+140>>2]=-1;c[s>>2]=40156;c[e>>2]=40196;c[f>>2]=40176;f=s+12|0;RKa(f);c[f>>2]=39800;e=s+44|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[e+(b<<2)>>2]=0;b=b+1|0}c[s+56>>2]=0;c[s+60>>2]=24;e=t+64|0;m=t+8|0;c[m>>2]=40176;c[t>>2]=31772;c[e>>2]=31792;c[t+4>>2]=0;Hoa(t+64|0,t+12|0);c[t+136>>2]=0;c[t+140>>2]=-1;c[t>>2]=40156;c[e>>2]=40196;c[m>>2]=40176;m=t+12|0;RKa(m);c[m>>2]=39800;e=t+44|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[e+(b<<2)>>2]=0;b=b+1|0}b=t+8|0;c[t+56>>2]=0;c[t+60>>2]=24;n=0;e=U(59,b|0,55712)|0;u=n;n=0;do if(((((((!(u&1)?(n=0,h=U(78,e|0,g|0)|0,u=n,n=0,!(u&1)):0)?(n=0,i=U(59,h|0,56513)|0,u=n,n=0,!(u&1)):0)?(n=0,j=U(59,i|0,57294)|0,u=n,n=0,!(u&1)):0)?(n=0,U(59,j|0,139929)|0,u=n,n=0,!(u&1)):0)?(n=0,ea(112,b|0,56518,d|0),u=n,n=0,!(u&1)):0)?(n=0,U(59,b|0,56341)|0,u=n,n=0,!(u&1)):0)?(n=0,da(75,k|0,f|0),u=n,n=0,!(u&1)):0){u=a[k+11>>0]|0;u=((u<<24>>24<0?c[k+4>>2]|0:u&255)|0)==0;Chb(k);if(u){n=0;b=U(59,150452,113424)|0;u=n;n=0;if(u&1)break;n=0;da(75,l|0,m|0);u=n;n=0;if(u&1)break;n=0;U(61,b|0,l|0)|0;u=n;n=0;if(u&1){u=sa()|0;P()|0;Chb(l);c0a(t);c0a(s);Ea(u|0)}else{Chb(l);c0a(t);c0a(s);yb=r;return}}n=0;U(59,150452,56221)|0;u=n;n=0;if(!(u&1)){c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[p+(b<<2)>>2]=0;b=b+1|0}while(1){anb(o,s+(c[(c[s>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[o>>2]|0,151324)|0;u=n;n=0;if(u&1){e=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;u=n;n=0;if(u&1){e=23;break}XWa(o);n=0;V(51,s|0,p|0,b|0)|0;u=n;n=0;if(u&1){e=27;break}if(c[s+(c[(c[s>>2]|0)+-12>>2]|0)+16>>2]&5|0){e=33;break}n=0;b=U(59,150452,88806)|0;u=n;n=0;if(u&1){e=27;break}n=0;b=U(61,b|0,p|0)|0;u=n;n=0;if(u&1){e=27;break}n=0;U(59,b|0,127446)|0;u=n;n=0;if(u&1){e=27;break}}if((e|0)==23){b=sa()|0;P()|0;XWa(o)}else if((e|0)==27){b=sa()|0;P()|0}else if((e|0)==33){Chb(p);n=0;b=U(59,150452,88806)|0;u=n;n=0;if(u&1)break;n=0;da(75,q|0,m|0);u=n;n=0;if(u&1)break;n=0;U(61,b|0,q|0)|0;u=n;n=0;if(u&1){u=sa()|0;P()|0;Chb(q);c0a(t);c0a(s);Ea(u|0)}else{Chb(q);n=0;U(59,150452,56345)|0;u=n;n=0;if(u&1)break;c0a(t);c0a(s);yb=r;return}}Chb(p);u=b;c0a(t);c0a(s);Ea(u|0)}}while(0);u=sa()|0;P()|0;c0a(t);c0a(s);Ea(u|0)}function Vg(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;r=yb;yb=yb+352|0;o=r+336|0;s=r+192|0;t=r+48|0;k=r+36|0;p=r+24|0;q=r+12|0;l=r;g=Ada(b)|0;e=s+64|0;f=s+8|0;c[f>>2]=40176;c[s>>2]=31772;c[e>>2]=31792;c[s+4>>2]=0;Hoa(s+64|0,s+12|0);c[s+136>>2]=0;c[s+140>>2]=-1;c[s>>2]=40156;c[e>>2]=40196;c[f>>2]=40176;f=s+12|0;RKa(f);c[f>>2]=39800;e=s+44|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[e+(b<<2)>>2]=0;b=b+1|0}c[s+56>>2]=0;c[s+60>>2]=24;e=t+64|0;m=t+8|0;c[m>>2]=40176;c[t>>2]=31772;c[e>>2]=31792;c[t+4>>2]=0;Hoa(t+64|0,t+12|0);c[t+136>>2]=0;c[t+140>>2]=-1;c[t>>2]=40156;c[e>>2]=40196;c[m>>2]=40176;m=t+12|0;RKa(m);c[m>>2]=39800;e=t+44|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[e+(b<<2)>>2]=0;b=b+1|0}b=t+8|0;c[t+56>>2]=0;c[t+60>>2]=24;n=0;e=U(59,b|0,55712)|0;u=n;n=0;do if(((((((!(u&1)?(n=0,h=U(78,e|0,g|0)|0,u=n,n=0,!(u&1)):0)?(n=0,i=U(59,h|0,56513)|0,u=n,n=0,!(u&1)):0)?(n=0,j=U(59,i|0,d|0)|0,u=n,n=0,!(u&1)):0)?(n=0,U(59,j|0,139929)|0,u=n,n=0,!(u&1)):0)?(n=0,da(215,b|0,56518),u=n,n=0,!(u&1)):0)?(n=0,U(59,b|0,56341)|0,u=n,n=0,!(u&1)):0)?(n=0,da(75,k|0,f|0),u=n,n=0,!(u&1)):0){u=a[k+11>>0]|0;u=((u<<24>>24<0?c[k+4>>2]|0:u&255)|0)==0;Chb(k);if(u){n=0;b=U(59,150452,113424)|0;u=n;n=0;if(u&1)break;n=0;da(75,l|0,m|0);u=n;n=0;if(u&1)break;n=0;U(61,b|0,l|0)|0;u=n;n=0;if(u&1){u=sa()|0;P()|0;Chb(l);c0a(t);c0a(s);Ea(u|0)}else{Chb(l);c0a(t);c0a(s);yb=r;return}}n=0;U(59,150452,56221)|0;u=n;n=0;if(!(u&1)){c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[p+(b<<2)>>2]=0;b=b+1|0}while(1){anb(o,s+(c[(c[s>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[o>>2]|0,151324)|0;u=n;n=0;if(u&1){e=23;break}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;u=n;n=0;if(u&1){e=23;break}XWa(o);n=0;V(51,s|0,p|0,b|0)|0;u=n;n=0;if(u&1){e=27;break}if(c[s+(c[(c[s>>2]|0)+-12>>2]|0)+16>>2]&5|0){e=33;break}n=0;b=U(59,150452,88806)|0;u=n;n=0;if(u&1){e=27;break}n=0;b=U(61,b|0,p|0)|0;u=n;n=0;if(u&1){e=27;break}n=0;U(59,b|0,127446)|0;u=n;n=0;if(u&1){e=27;break}}if((e|0)==23){b=sa()|0;P()|0;XWa(o)}else if((e|0)==27){b=sa()|0;P()|0}else if((e|0)==33){Chb(p);n=0;b=U(59,150452,88806)|0;u=n;n=0;if(u&1)break;n=0;da(75,q|0,m|0);u=n;n=0;if(u&1)break;n=0;U(61,b|0,q|0)|0;u=n;n=0;if(u&1){u=sa()|0;P()|0;Chb(q);c0a(t);c0a(s);Ea(u|0)}else{Chb(q);n=0;U(59,150452,56345)|0;u=n;n=0;if(u&1)break;c0a(t);c0a(s);yb=r;return}}Chb(p);u=b;c0a(t);c0a(s);Ea(u|0)}}while(0);u=sa()|0;P()|0;c0a(t);c0a(s);Ea(u|0)}function Wg(a,b){a=a|0;b=b|0;if(!b)ma(112644,134747,85,112649);do switch(c[b>>2]|0){case 1:{b=Yt(a,b)|0;return b|0}case 2:{b=Dw(a,b)|0;return b|0}case 3:{b=Sj(a,b)|0;return b|0}case 4:{b=Vp(a,b)|0;return b|0}case 5:{b=wk(a,b)|0;return b|0}case 6:{b=d8(a,b)|0;return b|0}case 7:{b=zk(a,b)|0;return b|0}case 8:{b=x1(a,c[b+8>>2]|0)|0;return b|0}case 9:{b=I0(a,b)|0;return b|0}case 10:{b=g7(c[a>>2]|0,b)|0;return b|0}case 11:{b=U5(a,b)|0;return b|0}case 12:{b=Kf(a,b)|0;return b|0}case 13:{b=Ue(a,b)|0;return b|0}case 23:{b=LJa()|0;return b|0}case 24:{b=LJa()|0;return b|0}case 25:{b=LJa()|0;return b|0}case 26:{b=LJa()|0;return b|0}case 27:{b=LJa()|0;return b|0}case 28:{b=LJa()|0;return b|0}case 29:{b=LJa()|0;return b|0}case 30:{b=LJa()|0;return b|0}case 31:{b=LJa()|0;return b|0}case 32:{b=LJa()|0;return b|0}case 33:{b=LJa()|0;return b|0}case 34:{b=LJa()|0;return b|0}case 35:{b=LJa()|0;return b|0}case 14:{b=Yk(a,b)|0;return b|0}case 15:{b=Ye(a,b)|0;return b|0}case 16:{b=Se(a,b)|0;return b|0}case 17:{b=Zf(a,b)|0;return b|0}case 18:{b=o5(a,b)|0;return b|0}case 19:{b=Tp(a,b)|0;return b|0}case 20:{b=Su(a,b)|0;return b|0}case 21:{b=Pcb()|0;return b|0}case 22:{b=B2a()|0;return b|0}default:ma(141129,134747,128,112649)}while(0);return 0}function Xg(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;x=yb;yb=yb+48|0;j=x+40|0;u=x+24|0;v=x+12|0;w=x;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[v>>2]=0;h=v+4|0;c[h>>2]=0;c[v+8>>2]=0;c[w>>2]=0;k=w+4|0;c[k>>2]=0;c[w+8>>2]=0;t=b+132|0;n=0;da(551,f|0,c[t>>2]|0);r=n;n=0;do if((!(r&1)?(n=0,da(553,u|0,c[t>>2]|0),r=n,n=0,!(r&1)):0)?(r=c[t>>2]|0,r=J(r,r)|0,n=0,da(554,v|0,r|0),r=n,n=0,!(r&1)):0){i=c[v>>2]|0;h=c[h>>2]|0;h=(i+(h>>>5<<2)-i<<3)+(h&31)|0;if(h|0){c[j>>2]=i;c[j+4>>2]=0;b_(j,h)}r=b+32|0;l=uob(WCb(c[r>>2]|0)|0)|0;q=J(l,c[t>>2]|0)|0;n=0;da(555,w|0,q|0);q=n;n=0;if(!(q&1)){i=c[w>>2]|0;h=(c[k>>2]|0)-i|0;while(1){if((h|0)<=0)break;q=i;a[q>>0]=0;h=h+-1|0;i=q+1|0}c[g>>2]=0;p=c[v>>2]|0;q=b+16|0;k=0;while(1){if(k>>>0>=l>>>0){h=22;break}if((c[(c[e>>2]|0)+(k<<2)>>2]|0)!=(k|0)){h=13;break}c[(c[f>>2]|0)+(k<<2)>>2]=k;h=WCb(c[r>>2]|0)|0;n=0;h=U(84,h|0,k|0)|0;o=n;n=0;if(o&1){h=43;break}c[(c[u>>2]|0)+(k<<2)>>2]=h;j=l;while(1){h=c[t>>2]|0;if(j>>>0>=h>>>0)break;h=(J(h,k)|0)+j|0;i=p+(h>>>5<<2)|0;h=1<<(h&31);if(eHa(b,k,j)|0)h=c[i>>2]|h;else h=c[i>>2]&~h;c[i>>2]=h;m=xKa(q,k,j)|0;o=(c[w>>2]|0)+((J(c[t>>2]|0,k)|0)+j)|0;a[o>>0]=m;j=j+1|0}k=k+1|0}if((h|0)==13){n=0;fa(75,75512,75526,219,75565);n=0;break}else if((h|0)==22){j=k;o=k;h=c[t>>2]|0;a:while(1){if(o>>>0>=h>>>0){h=40;break}m=c[(c[e>>2]|0)+(o<<2)>>2]|0;l=0;h=-1;i=-1;while(1){if(l>>>0>=j>>>0)break;k=(J(l,c[t>>2]|0)|0)+m|0;if(!(c[p+(k>>>5<<2)>>2]&1<<(k&31))){k=WCb(c[r>>2]|0)|0;n=0;k=U(84,k|0,m|0)|0;y=n;n=0;if(y&1){h=41;break a}if((k|0)==(c[(c[u>>2]|0)+(l<<2)>>2]|0)?(s=(c[w>>2]|0)+((J(l,c[t>>2]|0)|0)+m)|0,s=a[s>>0]|0,(i|0)==-1|(s&255)>(h&255)):0){c[(c[f>>2]|0)+(m<<2)>>2]=l;h=s;i=l}}l=l+1|0}if((i|0)==-1){c[(c[f>>2]|0)+(m<<2)>>2]=j;h=WCb(c[r>>2]|0)|0;n=0;h=U(84,h|0,m|0)|0;y=n;n=0;if(y&1){h=42;break}c[(c[u>>2]|0)+(j<<2)>>2]=h;h=j+1|0;y=(xKa(q,j,m)|0)&255;c[g>>2]=(c[g>>2]|0)+y;y=J(h,c[t>>2]|0)|0;n=0;da(555,w|0,y|0);y=n;n=0;if(y&1){h=42;break}else k=h}else{c[g>>2]=(c[g>>2]|0)+(h&255);k=j;j=i}h=o;while(1){i=h+1|0;h=c[t>>2]|0;if(i>>>0>=h>>>0)break;l=c[(c[e>>2]|0)+(i<<2)>>2]|0;h=(J(j,h)|0)+l|0;y=p+(h>>>5<<2)|0;h=1<<(h&31);z=c[y>>2]|0;A=(z&h|0)!=0|(eHa(b,m,l)|0);c[y>>2]=A?z|h:z&~h;y=xKa(q,m,l)|0;h=(J(j,c[t>>2]|0)|0)+l|0;h=(c[w>>2]|0)+h|0;a[h>>0]=(d[h>>0]|0)+(y&255);h=i}j=k;o=o+1|0}if((h|0)==40){Vob(w);ilb(v);Vob(u);yb=x;return}else if((h|0)==41){A=sa()|0;P()|0;Vob(w);ilb(v);Vob(u);Ea(A|0)}else if((h|0)==42){A=sa()|0;P()|0;Vob(w);ilb(v);Vob(u);Ea(A|0)}}else if((h|0)==43){A=sa()|0;P()|0;Vob(w);ilb(v);Vob(u);Ea(A|0)}}}while(0);A=sa()|0;P()|0;Vob(w);ilb(v);Vob(u);Ea(A|0)}function Yg(a,b){a=a|0;b=b|0;if(!b)ma(112644,134747,85,112649);do switch(c[b>>2]|0){case 1:{b=LG(a,b)|0;return b|0}case 2:{b=eV(a,b)|0;return b|0}case 3:{b=H4(a,b)|0;return b|0}case 4:{b=tU(a,b)|0;return b|0}case 5:{b=tR(a,b)|0;return b|0}case 6:{b=FC(a,b)|0;return b|0}case 7:{b=Cz(a,b)|0;return b|0}case 8:{b=tSa(a,c[b+4>>2]|0,c[b+8>>2]|0)|0;return b|0}case 9:{b=j1(a,b)|0;return b|0}case 10:{b=gda(a,b)|0;return b|0}case 11:{b=Q3(a,b)|0;return b|0}case 12:{b=RH(a,b)|0;return b|0}case 13:{b=RB(a,b)|0;return b|0}case 23:{b=HU(a,b)|0;return b|0}case 24:{b=MO(a,b)|0;return b|0}case 25:{b=IR(a,b)|0;return b|0}case 26:{b=P3(a,b)|0;return b|0}case 27:{b=$ba(a,b)|0;return b|0}case 28:{b=$$(a,b)|0;return b|0}case 29:{b=H3(a,b)|0;return b|0}case 30:{b=uV(a,b)|0;return b|0}case 31:{b=j3(a,b)|0;return b|0}case 32:{b=CT(a,b)|0;return b|0}case 33:{b=wZa(a,c[b+8>>2]|0)|0;return b|0}case 34:{b=aW(a,b)|0;return b|0}case 35:{b=$V(a,b)|0;return b|0}case 14:{b=Fca(a,b)|0;return b|0}case 15:{b=Fna(a,c[b+8>>2]|0,c[b+12>>2]|0)|0;return b|0}case 16:{b=V3(a,b)|0;return b|0}case 17:{b=SW(a,b)|0;return b|0}case 18:{b=jta(a,c[b+8>>2]|0)|0;return b|0}case 19:{b=Xra(a,c[b+8>>2]|0)|0;return b|0}case 20:{b=Hu(a,b)|0;return b|0}case 21:{b=_5a(a)|0;return b|0}case 22:{b=j0a(a)|0;return b|0}default:ma(141129,134747,128,112649)}while(0);return 0}function Zg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=yb;yb=yb+272|0;s=z+256|0;t=z+248|0;l=z+240|0;w=z+224|0;m=z+216|0;o=z+208|0;x=z+100|0;y=z;e=iqb(d)|0;if(!e){d=jqb(d)|0;if(!d){yb=z;return}i=d+8|0;d=CGa(b+64|0,c[i>>2]|0)|0;if(!d){yb=z;return}e=c[d>>2]|0;h=d+4|0;a:do if((h|0)==(e|0))d=e;else{d=e;while(1){f=c[e+4>>2]|0;b:do if(!f)while(1){f=c[e+8>>2]|0;if((e|0)==(c[f>>2]|0))break b;e=f}else while(1){e=c[f>>2]|0;if(!e)break;f=e}while(0);e=f;if((f|0)==(h|0))break a;d=(c[f+16>>2]|0)>>>0<(c[d+16>>2]|0)>>>0?e:d}}while(0);c[i>>2]=c[d+16>>2];yb=z;return}f=b+64|0;i=e+8|0;PM(f,c[i>>2]|0);h=e+12|0;d=c[h>>2]|0;e=jqb(d)|0;if(e){Mp(f,c[i>>2]|0,c[e+8>>2]|0);d=c[h>>2]|0}if(!(XD(b,d)|0)){yb=z;return}h0a(m,d);v=b+44|0;e=Jv(v,m)|0;if(e|0){Gsb(o,WCb(c[b+36>>2]|0)|0);y=T3a(c[o>>2]|0,c[e+20>>2]|0,c[d+4>>2]|0)|0;c[h>>2]=y;a[b+84>>0]=1;yb=z;return}r=c[i>>2]|0;DSa(y,d,r,pob(c[b+40>>2]|0)|0);cjb(x,m);XSa(x+8|0,y);cjb(l,x);r=WCb(c[l+4>>2]|0)|0;q=b+48|0;h=c[q>>2]|0;p=(h|0)==0;c:do if(!p){m=h+-1|0;o=(h&m|0)==0;if(!o)if(r>>>0>>0)e=r;else e=(r>>>0)%(h>>>0)|0;else e=r&m;d=c[(c[v>>2]|0)+(e<<2)>>2]|0;if(!d)u=24;else{i=s+4|0;l=t+4|0;while(1){d=c[d>>2]|0;if(!d){u=24;break c}f=c[d+4>>2]|0;if((f|0)!=(r|0)){if(!o){if(f>>>0>=h>>>0)f=(f>>>0)%(h>>>0)|0}else f=f&m;if((f|0)!=(e|0)){u=24;break c}}cjb(s,d+8|0);cjb(t,x);n=0;f=W(33,c[s>>2]|0,c[i>>2]|0,c[t>>2]|0,c[l>>2]|0)|0;A=n;n=0;if(A&1)break;if(f)break c}A=sa()|0;P()|0;Kkb(x);Xsb(y);Ea(A|0)}}else{e=0;u=24}while(0);if((u|0)==24){n=0;fa(114,w|0,v|0,r|0,x|0);A=n;n=0;if(A&1){A=sa()|0;P()|0;Kkb(x);Xsb(y);Ea(A|0)}i=b+56|0;j=+(((c[i>>2]|0)+1|0)>>>0);k=+g[b+60>>2];if(k*+(h>>>0)>>0>2){e=(h&h+-1|0)!=0&1;u=29}else{e=1;u=29}}else if(p){d=0;e=1;u=29}do if((u|0)==29){A=d|e;u=~~+I(+(j/k))>>>0;n=0;da(1716,v|0,(A>>>0>>0?u:A)|0);A=n;n=0;if(!(A&1)){d=c[q>>2]|0;e=d+-1|0;if(!(d&e)){h=d;e=r&e;break}if(r>>>0>>0){h=d;e=r;break}h=d;e=(r>>>0)%(d>>>0)|0;break}d=sa()|0;P()|0;e=c[w>>2]|0;c[w>>2]=0;if(!e){A=d;Kkb(x);Xsb(y);Ea(A|0)}if(a[w+8>>0]&1)Kkb(e+8|0);RCb(e);A=d;Kkb(x);Xsb(y);Ea(A|0)}while(0);d=c[(c[v>>2]|0)+(e<<2)>>2]|0;if(!d){A=b+52|0;d=c[w>>2]|0;c[d>>2]=c[A>>2];f=d;c[A>>2]=f;c[(c[v>>2]|0)+(e<<2)>>2]=A;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=h+-1|0;if(h&e){if(d>>>0>=h>>>0)d=(d>>>0)%(h>>>0)|0}else d=d&e;c[(c[v>>2]|0)+(d<<2)>>2]=f}}else{A=c[w>>2]|0;c[A>>2]=c[d>>2];c[d>>2]=A}c[i>>2]=(c[i>>2]|0)+1;c[w>>2]=0}Kkb(x);Xsb(y);yb=z;return}function _g(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;x=yb;yb=yb+1200|0;u=x+1104|0;v=x+1012|0;q=x+920|0;w=x+828|0;r=x+736|0;s=x+644|0;t=x+552|0;j=x+460|0;k=x+368|0;l=x+276|0;m=x+184|0;o=x+92|0;p=x;if((c[b+4>>2]|0)==6){w=b;yb=x;return w|0}i=a+40|0;a:while(1){b:while(1){switch(c[b>>2]|0){case 21:{b=0;a=38;break a}case 14:case 8:case 10:{a=8;break a}case 12:{a=5;break a}case 15:case 16:case 17:break;default:{a=39;break a}}if(d){a=38;break a}a=Kqb(b)|0;do if(!a){a=Aqb(b)|0;if(a|0)break b;g=Teb(b)|0;y=pob(c[i>>2]|0)|0;a=g+8|0;VA(j,y,c[a>>2]|0);y=QGa(j)|0;Fha(j);e=pob(c[i>>2]|0)|0;h=g+12|0;f=c[h>>2]|0;if(y){VA(k,e,f);y=QGa(k)|0;Fha(k);if(y){a=38;break a}y=pob(c[i>>2]|0)|0;VA(l,y,c[g+16>>2]|0);y=QGa(l)|0;Fha(l);if(y){a=38;break a}b=c[a>>2]|0;break}VA(m,e,f);y=QGa(m)|0;Fha(m);f=pob(c[i>>2]|0)|0;a=g+16|0;e=c[a>>2]|0;if(y){VA(o,f,e);y=QGa(o)|0;Fha(o);if(y){a=38;break a}b=c[h>>2]|0;break}else{VA(p,f,e);y=QGa(p)|0;Fha(p);if(!y){b=0;a=38;break a}b=c[a>>2]|0;break}}else{VA(v,pob(c[i>>2]|0)|0,0);f2a(v,a);if(QGa(v)|0){a=14;break a}y=pob(c[i>>2]|0)|0;b=a+12|0;n=0;ea(130,q|0,y|0,c[b>>2]|0);y=n;n=0;if(y&1){a=16;break a}y=QGa(q)|0;Fha(q);if(!y){b=0;a=14;break a}b=c[b>>2]|0;Fha(v)}while(0)}VA(w,pob(c[i>>2]|0)|0,0);YHa(w,a);if(QGa(w)|0){a=25;break}y=pob(c[i>>2]|0)|0;f=a+12|0;n=0;ea(130,r|0,y|0,c[f>>2]|0);y=n;n=0;if(y&1){a=27;break}y=QGa(r)|0;Fha(r);g=pob(c[i>>2]|0)|0;a=a+16|0;e=c[a>>2]|0;if(y){n=0;ea(130,s|0,g|0,e|0);y=n;n=0;if(y&1){a=27;break}y=QGa(s)|0;Fha(s);if(y){a=25;break}else b=f}else{n=0;ea(130,t|0,g|0,e|0);y=n;n=0;if(y&1){a=27;break}y=QGa(t)|0;Fha(t);if(y)b=a;else{b=0;a=25;break}}b=c[b>>2]|0;Fha(w)}if((a|0)==5){if(d){y=b;yb=x;return y|0}VA(u,pob(c[i>>2]|0)|0,b);y=QGa(u)|0;Fha(u);if(y){y=b;yb=x;return y|0}y=(vfb(b)|0)+24|0;y=c[y>>2]|0;yb=x;return y|0}else if((a|0)==8){yb=x;return (d?b:0)|0}else if((a|0)==14){Fha(v);y=b;yb=x;return y|0}else if((a|0)==16){y=sa()|0;P()|0;Fha(v);Ea(y|0)}else if((a|0)==25){Fha(w);y=b;yb=x;return y|0}else if((a|0)==27){y=sa()|0;P()|0;Fha(w);Ea(y|0)}else if((a|0)==38){y=b;yb=x;return y|0}else if((a|0)==39){yb=x;return b|0}return 0}function $g(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;s=yb;yb=yb+112|0;t=s+40|0;l=s+36|0;u=s+24|0;v=s+12|0;m=s+8|0;o=s+4|0;p=s;Yz(t,c[a>>2]|0);n=0;ca(528,t|0);k=n;n=0;if(k&1){v=sa()|0;P()|0;P2(t);Ea(v|0)}c[l>>2]=-1;c[u>>2]=0;h=u+4|0;c[h>>2]=0;i=u+8|0;c[i>>2]=0;c[v>>2]=0;j=v+4|0;c[j>>2]=0;k=v+8|0;c[k>>2]=0;f=a+8|0;g=t+44|0;a=0;a:while(1){c[m>>2]=a;e=c[f>>2]|0;b=c[e>>2]|0;if(a>>>0>=(c[e+4>>2]|0)-b>>2>>>0){b=64;break}e=c[b+(a<<2)>>2]|0;b:do if(e|0){n=0;a=S(294,e|0)|0;d=n;n=0;if(d&1){b=7;break a}while(1){if(!a)break;b=c[h>>2]|0;d=c[u>>2]|0;if((b|0)==(d|0)){b=14;break a}while(1){w=(c[b+-4>>2]|0)==-1;b=b+-4|0;c[h>>2]=b;if(w)break;if((d|0)==(b|0)){b=18;break a}}a=a+-1|0}a=c[e>>2]|0;do if(gab(a)|0){a=c[j>>2]|0;if((a|0)==(c[k>>2]|0)){n=0;da(3861,v|0,u|0);w=n;n=0;if(w&1){b=7;break a}}else{n=0;da(234,a|0,u|0);w=n;n=0;if(w&1){b=7;break a}c[j>>2]=(c[j>>2]|0)+12}c[h>>2]=c[u>>2]}else{if(!(Lab(a)|0)){if(!(eCb(a)|0))break;c[h>>2]=c[u>>2];break}b=c[j>>2]|0;if((c[v>>2]|0)==(b|0)){b=29;break a}a=b+-12|0;if((u|0)==(a|0))d=b;else{n=0;ea(163,u|0,c[a>>2]|0,c[b+-8>>2]|0);w=n;n=0;if(w&1){b=7;break a}d=c[j>>2]|0;a=d+-12|0}b=0;while(1){if((b|0)==-1)break;w=b+-1|0;Vob(d+(w*12|0)|0);b=w}c[j>>2]=a}while(0);b=c[e+8>>2]|0;w=vub(b)|0;a=c[e+4>>2]|0;if(!w){if(!((zxb(c[a>>2]|0)|0)&(b|0)==0))break;a=c[h>>2]|0;if((a|0)==(c[i>>2]|0)){n=0;da(997,u|0,m|0);w=n;n=0;if(w&1){b=7;break a}else break}else{c[a>>2]=c[m>>2];c[h>>2]=(c[h>>2]|0)+4;break}}w=jqb(a)|0;c[o>>2]=w;c:do if(w|0?(q=c[h>>2]|0,r=c[u>>2]|0,(q|0)!=(r|0)):0){a=q-r>>2;b=r;while(1){a=a+-1|0;d=c[b+(a<<2)>>2]|0;if((d|0)==-1)break c;n=0;b=S(244,c[(c[(c[c[f>>2]>>2]|0)+(d<<2)>>2]|0)+4>>2]|0)|0;w=n;n=0;if(w&1){b=6;break a}c[p>>2]=b;if((c[b+8>>2]|0)==(c[(c[o>>2]|0)+8>>2]|0)){n=0;b=U(99,t|0,o|0)|0;w=n;n=0;if(w&1){b=6;break a}if((c[b+8>>2]|0)==1?(c[(c[b>>2]|0)+16>>2]|0)==(c[p>>2]|0):0){n=0;b=U(156,g|0,p|0)|0;w=n;n=0;if(w&1){b=6;break a}if((c[b+12>>2]|0)==1)break}}if(!a)break c;b=c[u>>2]|0}if((c[(c[b+8>>2]|0)+8>>2]|0)!=(c[o>>2]|0)){b=52;break a}c[(c[c[f>>2]>>2]|0)+(d<<2)>>2]=0;c[(c[c[f>>2]>>2]|0)+(c[m>>2]<<2)>>2]=0;c[(c[u>>2]|0)+(a<<2)>>2]=-1;break b}while(0);a=c[h>>2]|0;if((a|0)==(c[i>>2]|0)){n=0;da(997,u|0,l|0);w=n;n=0;if(w&1){b=7;break a}else break}else{c[a>>2]=c[l>>2];c[h>>2]=(c[h>>2]|0)+4;break}}while(0);a=(c[m>>2]|0)+1|0}if((b|0)==6){a=sa()|0;P()|0}else if((b|0)==7){a=sa()|0;P()|0}else if((b|0)==14){n=0;fa(75,109411,109118,166,109429);n=0;b=8}else if((b|0)==18){n=0;fa(75,109411,109118,171,109429);n=0;b=8}else if((b|0)==29){n=0;fa(75,109441,109118,184,109429);n=0;b=8}else if((b|0)==52){n=0;fa(75,109462,109118,211,109429);n=0;b=8}else if((b|0)==64){iib(v);Vob(u);P2(t);yb=s;return}if((b|0)==8){a=sa()|0;P()|0}iib(v);Vob(u);w=a;P2(t);Ea(w|0)}function ah(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;u=yb;yb=yb+64|0;x=u+40|0;y=u+28|0;p=u+24|0;v=u+12|0;w=u;c[x>>2]=0;t=x+4|0;c[t>>2]=0;q=x+8|0;c[q>>2]=0;c[y>>2]=0;r=y+4|0;c[r>>2]=0;s=y+8|0;c[s>>2]=0;k=b+16|0;n=0;d=S(327,k|0)|0;o=n;n=0;do if(!(o&1)){c[p>>2]=d;l=b+12|0;m=b+4|0;o=b+8|0;g=d;f=d;i=d;j=d;a:while(1){n=0;ca(564,b|0);h=n;n=0;if(h&1){e=5;break}d=c[b>>2]|0;switch(a[d>>0]|0){case 0:{e=33;break a}case 40:{c[b>>2]=d+1;d=c[t>>2]|0;if((d|0)==(c[q>>2]|0)){n=0;da(4051,x|0,p|0);j=n;n=0;if(j&1){e=5;break a}}else{c[d>>2]=i;c[t>>2]=(c[t>>2]|0)+4}n=0;f=S(327,k|0)|0;j=n;n=0;if(j&1){e=5;break a}e=Z3a(f,c[m>>2]|0,(c[b>>2]|0)-(c[o>>2]|0)+-1|0,c[l>>2]|0)|0;c[p>>2]=e;d=c[r>>2]|0;if((d|0)==(c[s>>2]|0)){n=0;da(4052,y|0,l|0);j=n;n=0;if(j&1){e=5;break a}d=c[r>>2]|0}else{c[d>>2]=c[l>>2];d=(c[r>>2]|0)+4|0;c[r>>2]=d}if(((c[t>>2]|0)-(c[x>>2]|0)|0)==(d-(c[y>>2]|0)|0)){h=f;g=f;d=f}else{e=17;break a}break}case 41:{c[b>>2]=d+1;c[j+40>>2]=c[l>>2];d=c[x>>2]|0;f=c[t>>2]|0;if((d|0)==(f|0)){e=19;break a}g=f+-4|0;e=c[g>>2]|0;c[p>>2]=e;h=c[r>>2]|0;i=e;if((f-d|0)!=(h-(c[y>>2]|0)|0)){e=26;break a}c[t>>2]=g;d=h+-4|0;c[l>>2]=c[d>>2];c[r>>2]=d;n=0;d=S(328,i|0)|0;h=n;n=0;if(h&1){e=5;break a}n=0;da(4053,d|0,j|0);j=n;n=0;if(j&1){e=5;break a}else{h=i;g=i;d=i}break}default:{n=0;d=S(328,j|0)|0;h=n;n=0;if(h&1){e=5;break a}n=0;e=S(329,b|0)|0;h=n;n=0;if(h&1){e=5;break a}n=0;da(4053,d|0,e|0);h=n;n=0;if(h&1){e=5;break a}else{h=f;e=i;d=j}}}f=h;i=e;j=d}if((e|0)==5){d=sa()|0;P()|0;break}else if((e|0)==17){n=0;fa(75,118882,118915,128,118951);n=0;e=6;break}else if((e|0)==19){f=oa(20)|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;w=Zzb(118957)|0;n=0;ea(95,v|0,118957,w|0);w=n;n=0;if(!(w&1)){n=0;da(330,f|0,v|0);w=n;n=0;if(w&1)e=1;else{n=0;ea(122,f|0,31856,511);n=0;e=0}d=sa()|0;P()|0;Chb(v);if(!e){w=d;Vob(y);Vob(x);Ea(w|0)}}else{d=sa()|0;P()|0}va(f|0);w=d;Vob(y);Vob(x);Ea(w|0)}else if((e|0)==26){n=0;fa(75,118882,118915,137,118951);n=0;e=6;break}else if((e|0)==33){if((c[t>>2]|0)==(c[x>>2]|0)){Vob(y);Vob(x);yb=u;return f|0}f=oa(20)|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;v=Zzb(118976)|0;n=0;ea(95,w|0,118976,v|0);v=n;n=0;if(!(v&1)){n=0;fa(134,f|0,w|0,c[g+28>>2]|0,c[g+32>>2]|0);v=n;n=0;if(v&1)e=1;else{n=0;ea(122,f|0,31856,511);n=0;e=0}d=sa()|0;P()|0;Chb(w);if(!e){w=d;Vob(y);Vob(x);Ea(w|0)}}else{d=sa()|0;P()|0}va(f|0);w=d;Vob(y);Vob(x);Ea(w|0)}}else e=6;while(0);if((e|0)==6){d=sa()|0;P()|0}w=d;Vob(y);Vob(x);Ea(w|0);return 0}function bh(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;w=yb;yb=yb+16|0;x=w;v=Thb(c[i>>2]|0,151356)|0;s=Thb(c[i>>2]|0,151364)|0;Sb[c[(c[s>>2]|0)+20>>2]&8191](x,s);c[h>>2]=f;i=a[b>>0]|0;a:do switch(i<<24>>24){case 43:case 45:{n=0;i=U(c[(c[v>>2]|0)+44>>2]|0,v|0,i|0)|0;t=n;n=0;if(t&1){i=sa()|0;P()|0;break a}else{k=c[h>>2]|0;c[h>>2]=k+4;c[k>>2]=i;k=b+1|0;u=5;break a}}default:{k=b;u=5}}while(0);b:do if((u|0)==5){t=e;c:do if((t-k|0)>1?(a[k>>0]|0)==48:0){i=k+1|0;switch(a[i>>0]|0){case 88:case 120:break;default:{u=6;break c}}n=0;j=U(c[(c[v>>2]|0)+44>>2]|0,v|0,48)|0;r=n;n=0;if(!(r&1)?(m=c[h>>2]|0,c[h>>2]=m+4,c[m>>2]=j,m=k+2|0,n=0,l=U(c[(c[v>>2]|0)+44>>2]|0,v|0,a[i>>0]|0)|0,r=n,n=0,!(r&1)):0){i=c[h>>2]|0;c[h>>2]=i+4;c[i>>2]=l;i=m;while(1){if(i>>>0>=e>>>0){k=m;j=i;u=20;break c}u=a[i>>0]|0;t8a()|0;if(!(GCb(u<<24>>24)|0)){k=m;j=i;u=20;break c}i=i+1|0}}}else u=6;while(0);d:do if((u|0)==6){i=k;while(1){if(i>>>0>=e>>>0){j=i;u=20;break d}u=a[i>>0]|0;t8a()|0;if(!(HCb(u<<24>>24)|0)){j=i;u=20;break d}i=i+1|0}}while(0);e:do if((u|0)==20){q=x+11|0;p=a[q>>0]|0;r=x+4|0;f:do if((p<<24>>24<0?c[r>>2]|0:p&255)|0){g:do if((k|0)!=(j|0)){i=j;l=k;while(1){i=i+-1|0;if(l>>>0>=i>>>0)break g;p=a[l>>0]|0;a[l>>0]=a[i>>0]|0;a[i>>0]=p;l=l+1|0}}while(0);n=0;p=S(c[(c[s>>2]|0)+16>>2]|0,s|0)|0;o=n;n=0;if(o&1){i=sa()|0;P()|0;break b}o=k;i=0;l=0;while(1){if(o>>>0>=j>>>0)break;m=a[((a[q>>0]|0)<0?c[x>>2]|0:x)+i>>0]|0;if(m<<24>>24>0&(l|0)==(m<<24>>24|0)){l=c[h>>2]|0;c[h>>2]=l+4;c[l>>2]=p;l=a[q>>0]|0;i=i+(i>>>0<((l<<24>>24<0?c[r>>2]|0:l&255)+-1|0)>>>0&1)|0;l=0}n=0;m=U(c[(c[v>>2]|0)+44>>2]|0,v|0,a[o>>0]|0)|0;y=n;n=0;if(y&1){u=39;break}y=c[h>>2]|0;c[h>>2]=y+4;c[y>>2]=m;o=o+1|0;l=l+1|0}if((u|0)==39){i=sa()|0;P()|0;break b}i=f+(k-b<<2)|0;l=c[h>>2]|0;if((i|0)==(l|0))k=v;else{k=l;while(1){k=k+-4|0;if(i>>>0>=k>>>0){k=v;i=l;break f}y=c[i>>2]|0;c[i>>2]=c[k>>2];c[k>>2]=y;i=i+4|0}}}else{n=0;W(c[(c[v>>2]|0)+48>>2]|0,v|0,k|0,j|0,c[h>>2]|0)|0;y=n;n=0;if(y&1)break e;i=(c[h>>2]|0)+(j-k<<2)|0;c[h>>2]=i;k=v}while(0);while(1){if(j>>>0>=e>>>0)break;i=a[j>>0]|0;if(i<<24>>24==46){u=43;break}n=0;i=U(c[(c[k>>2]|0)+44>>2]|0,v|0,i|0)|0;y=n;n=0;if(y&1){u=14;break}r=c[h>>2]|0;y=r+4|0;c[h>>2]=y;c[r>>2]=i;j=j+1|0;i=y}if((u|0)==14){i=sa()|0;P()|0;break b}if((u|0)==43){n=0;i=S(c[(c[s>>2]|0)+12>>2]|0,s|0)|0;y=n;n=0;if(y&1)break;u=c[h>>2]|0;y=u+4|0;c[h>>2]=y;c[u>>2]=i;j=j+1|0;i=y}n=0;W(c[(c[v>>2]|0)+48>>2]|0,v|0,j|0,e|0,i|0)|0;y=n;n=0;if(!(y&1)){y=(c[h>>2]|0)+(t-j<<2)|0;c[h>>2]=y;c[g>>2]=(d|0)==(e|0)?y:f+(d-b<<2)|0;Chb(x);yb=w;return}}while(0);i=sa()|0;P()|0}while(0);Chb(x);Ea(i|0)}function ch(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,o=0,p=0,q=0,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=yb;yb=yb+80|0;A=C;z=C+56|0;s=C+52|0;t=C+48|0;w0a(A);w0a(A+24|0);q=z+8|0;r=z+16|0;g=0;o=d;p=0;e=0;a:while(1){g=1-g|0;y=A+(g*24|0)|0;lKa(y);b:do switch(WCb(c[o+8>>2]|0)|0){case 0:{B=54;break a}case 1:{f=c[(c[o+16>>2]|0)+8>>2]|0;if(!(WCb(c[f+32>>2]|0)|0)){n=0;f=W(12,a|0,b|0,f|0,y|0)|0;o=n;n=0;if(o&1){B=3;break a}if(p|0)c[p+8>>2]=f;e=(e|0)==0?f:e;if(!(WCb(c[A+(g*24|0)+8>>2]|0)|0)){B=54;break a}else break b}else{n=0;f=W(13,a|0,b|0,o|0,y|0)|0;o=n;n=0;if(o&1){B=3;break a}if(p|0)c[p+8>>2]=f;e=(e|0)==0?f:e;if(!(WCb(c[A+(g*24|0)+8>>2]|0)|0)){B=54;break a}else break b}}default:{w0a(z);n=0;da(241,o|0,z|0);m=n;n=0;if(m&1){B=22;break a}if(WCb(c[q>>2]|0)|0){f=WCb(c[r>>2]|0)|0;l=Ryb(z)|0;while(1){m=f;if((l|0)==(m|0))break;i=f;j=c[i+8>>2]|0;i=i+12|0;f=c[m+4>>2]|0;h=WCb(c[j+40>>2]|0)|0;j=Ryb(j+24|0)|0;while(1){k=h;if((j|0)==(k|0))break;if(!(pdb(i,c[h+8>>2]|0)|0)){B=21;break}h=c[k+4>>2]|0}if((B|0)==21){B=0;jYa(z,m)}}c:do if((WCb(c[q>>2]|0)|0)==2?(x=c[r>>2]|0,WCb(x)|0,u=c[x+8>>2]|0,c[s>>2]=u,v=WCb(c[x+20>>2]|0)|0,x=c[x+4>>2]|0,w=c[x+8>>2]|0,c[t>>2]=w,x=WCb(c[x+20>>2]|0)|0,(v|0)!=(x|0)):0){if((v|0)>(x|0)){c[s>>2]=w;c[t>>2]=u}n=0;j=U(88,z|0,s|0)|0;m=n;n=0;if(m&1){B=22;break a}f=WCb(c[j+16>>2]|0)|0;k=Ryb(j)|0;while(1){l=f;if((k|0)==(l|0))break;h=c[f+8>>2]|0;f=WCb(c[h+16>>2]|0)|0;h=Ryb(h)|0;while(1){i=f;if((h|0)==(i|0))break;if(!(pdb(j,c[f+8>>2]|0)|0))break c;f=c[i+4>>2]|0}f=c[l+4>>2]|0}c8(z,t)}while(0);if(WCb(c[q>>2]|0)|0){f=WCb(c[o+16>>2]|0)|0;h=Ryb(o)|0;while(1){i=f;if((h|0)==(i|0)){f=0;break}if(oeb(d,c[f+8>>2]|0)|0){f=1;break}f=c[i+4>>2]|0}n=0;f=Z(41,a|0,b|0,o|0,z|0,y|0,f|0)|0;o=n;n=0;if(o&1){B=22;break a}if(p|0)c[p+8>>2]=f;e=(e|0)==0?f:e;if(!(WCb(c[A+(g*24|0)+8>>2]|0)|0)){B=52;break a}iEa(z);break b}}n=0;f=W(13,a|0,b|0,o|0,y|0)|0;o=n;n=0;if(o&1){B=22;break a}if(p|0)c[p+8>>2]=f;e=(e|0)==0?f:e;if(!(WCb(c[A+(g*24|0)+8>>2]|0)|0)){B=52;break a}iEa(z)}}while(0);o=y;p=f}if((B|0)==3){C=sa()|0;P()|0;B=A+24|0;SZa(B);SZa(A);Ea(C|0)}else if((B|0)==22){C=sa()|0;P()|0;iEa(z);B=A+24|0;SZa(B);SZa(A);Ea(C|0)}else if((B|0)==52){iEa(z);B=e;z=A+24|0;SZa(z);SZa(A);yb=C;return B|0}else if((B|0)==54){B=A+24|0;SZa(B);SZa(A);yb=C;return e|0}return 0}function dh(d,e,f,g,h,i,j,k){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,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=yb;yb=yb+16|0;s=z+12|0;r=z+8|0;u=z+4|0;v=z;anb(s,g);n=0;x=U(66,c[s>>2]|0,151324)|0;t=n;n=0;if(t&1){z=sa()|0;P()|0;XWa(s);Ea(z|0)}XWa(s);c[h>>2]=0;t=x+8|0;l=0;a:while(1){if(!((j|0)!=(k|0)&(l|0)==0))break;m=e;if(!e){p=0;q=0;o=1}else{l=c[e+12>>2]|0;if((l|0)==(c[e+16>>2]|0))l=Eb[c[(c[e>>2]|0)+36>>2]&511](e)|0;else l=Qzb(a[l>>0]|0)|0;l=dub(l,-1)|0;p=l?0:e;q=l?0:e;o=l;m=l?0:m}e=f;if(f){l=c[f+12>>2]|0;if((l|0)==(c[f+16>>2]|0))l=Eb[c[(c[f>>2]|0)+36>>2]&511](f)|0;else l=Qzb(a[l>>0]|0)|0;if(!(dub(l,-1)|0)){if(!o){y=61;break}}else{e=0;y=14}}else y=14;if((y|0)==14){y=0;if(o){f=0;y=61;break}else f=0}b:do if((Hb[c[(c[x>>2]|0)+36>>2]&255](x,a[j>>0]|0,0)|0)<<24>>24==37){o=j+1|0;if((o|0)==(k|0)){y=61;break a}l=Hb[c[(c[x>>2]|0)+36>>2]&255](x,a[o>>0]|0,0)|0;switch(l<<24>>24){case 48:case 69:{j=j+2|0;if((j|0)==(k|0)){y=61;break a}p=l;l=Hb[c[(c[x>>2]|0)+36>>2]&255](x,a[j>>0]|0,0)|0;j=o;break}default:p=0}q=c[(c[d>>2]|0)+36>>2]|0;c[u>>2]=m;c[v>>2]=e;c[r>>2]=c[u>>2];c[s>>2]=c[v>>2];j=j+2|0;e=Ob[q&15](d,r,s,g,h,i,l,p)|0}else{e=a[j>>0]|0;if(e<<24>>24>-1?(w=c[t>>2]|0,b[w+(e<<24>>24<<1)>>1]&8192):0){do{j=j+1|0;if((j|0)==(k|0)){j=k;break}e=a[j>>0]|0;if(e<<24>>24<=-1)break}while((b[w+(e<<24>>24<<1)>>1]&8192)!=0);e=p;m=f;p=f;l=q;while(1){if(!l){q=0;l=1}else{f=c[l+12>>2]|0;if((f|0)==(c[l+16>>2]|0))f=Eb[c[(c[l>>2]|0)+36>>2]&511](l)|0;else f=Qzb(a[f>>0]|0)|0;o=dub(f,-1)|0;e=o?0:e;q=o?0:l;l=o}if(p){f=c[p+12>>2]|0;if((f|0)==(c[p+16>>2]|0))f=Eb[c[(c[p>>2]|0)+36>>2]&511](p)|0;else f=Qzb(a[f>>0]|0)|0;if(!(dub(f,-1)|0))if(l)f=m;else{f=m;break b}else{f=0;y=40}}else{f=m;y=40}if((y|0)==40){y=0;if(l)break b;else p=0}m=q+12|0;l=c[m>>2]|0;o=q+16|0;if((l|0)==(c[o>>2]|0))l=Eb[c[(c[q>>2]|0)+36>>2]&511](q)|0;else l=Qzb(a[l>>0]|0)|0;if((l&255)<<24>>24<=-1)break b;if(!(b[(c[t>>2]|0)+(l<<24>>24<<1)>>1]&8192))break b;l=c[m>>2]|0;if((l|0)==(c[o>>2]|0))Eb[c[(c[q>>2]|0)+40>>2]&511](q)|0;else c[m>>2]=l+1;m=f;l=q}}l=q+12|0;e=c[l>>2]|0;m=q+16|0;if((e|0)==(c[m>>2]|0))e=Eb[c[(c[q>>2]|0)+36>>2]&511](q)|0;else e=Qzb(a[e>>0]|0)|0;o=Gb[c[(c[x>>2]|0)+12>>2]&255](x,e&255)|0;if(o<<24>>24!=(Gb[c[(c[x>>2]|0)+12>>2]&255](x,a[j>>0]|0)|0)<<24>>24){c[h>>2]=4;e=p;break}e=c[l>>2]|0;if((e|0)==(c[m>>2]|0))Eb[c[(c[q>>2]|0)+40>>2]&511](q)|0;else c[l>>2]=e+1;j=j+1|0;e=p}while(0);l=c[h>>2]|0}if((y|0)==61){c[h>>2]=4;e=q}if(!e){e=0;l=1}else{j=c[e+12>>2]|0;if((j|0)==(c[e+16>>2]|0))j=Eb[c[(c[e>>2]|0)+36>>2]&511](e)|0;else j=Qzb(a[j>>0]|0)|0;l=dub(j,-1)|0;e=l?0:e}if(f){j=c[f+12>>2]|0;if((j|0)==(c[f+16>>2]|0))f=Eb[c[(c[f>>2]|0)+36>>2]&511](f)|0;else f=Qzb(a[j>>0]|0)|0;if(!(dub(f,-1)|0)){if(!l)y=74}else y=72}else y=72;if((y|0)==72?l:0)y=74;if((y|0)==74)c[h>>2]=c[h>>2]|2;yb=z;return e|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,l=0,m=0;a:while(1){j=b;k=b+-4|0;while(1){b:while(1){i=a;e=j-i|0;f=e>>2;switch(f|0){case 2:{l=5;break a}case 3:{l=7;break a}case 4:{l=8;break a}case 5:{l=9;break a}case 1:case 0:{l=60;break a}default:{}}if((e|0)<28){l=11;break a}h=a+(((f|0)/2|0)<<2)|0;if((e|0)>3996){e=(f|0)/4|0;e=ex(a,a+(e<<2)|0,h,h+(e<<2)|0,k,d)|0}else e=Dz(a,h,k,d)|0;if(nE(d,a,h)|0){f=k;break}f=k;while(1){f=f+-4|0;if((a|0)==(f|0))break;if(nE(d,f,h)|0){l=37;break b}}e=a+4|0;if(!(nE(d,a,k)|0)){while(1){if((e|0)==(k|0)){l=60;break a}if(nE(d,a,e)|0)break;e=e+4|0}i=c[e>>2]|0;c[e>>2]=c[k>>2];c[k>>2]=i;e=e+4|0}if((e|0)==(k|0)){l=60;break a}f=k;while(1){while(1){if(nE(d,a,e)|0)break;e=e+4|0}do f=f+-4|0;while(nE(d,a,f)|0);if(e>>>0>=f>>>0)break;i=c[e>>2]|0;c[e>>2]=c[f>>2];c[f>>2]=i;e=e+4|0}a=e}if((l|0)==37){l=0;g=c[a>>2]|0;c[a>>2]=c[f>>2];c[f>>2]=g;e=e+1|0}g=a+4|0;c:do if(g>>>0>>0)while(1){while(1){if(!(nE(d,g,h)|0))break;g=g+4|0}do f=f+-4|0;while(!(nE(d,f,h)|0));if(g>>>0>f>>>0){f=h;break c}m=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=m;h=(h|0)==(g|0)?f:h;e=e+1|0;g=g+4|0}else f=h;while(0);if((g|0)!=(f|0)?nE(d,f,g)|0:0){m=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=m;e=e+1|0}if(e|0){l=57;break}e=Cl(a,g,d)|0;f=g+4|0;if(Cl(f,b,d)|0){l=53;break}if(!e){l=57;break}a=f}do if((l|0)==53){l=0;if(e){l=60;break a}else b=g}else if((l|0)==57){l=0;m=g;if((m-i|0)<(j-m|0)){eh(a,g,d);a=g+4|0;break}else{eh(g+4|0,b,d);b=g;break}}while(0)}if((l|0)==5){if(!(nE(d,k,a)|0))return;m=c[a>>2]|0;c[a>>2]=c[k>>2];c[k>>2]=m;return}else if((l|0)==7){Dz(a,a+4|0,k,d)|0;return}else if((l|0)==8){tC(a,a+4|0,a+8|0,k,d)|0;return}else if((l|0)==9){ex(a,a+4|0,a+8|0,a+12|0,k,d)|0;return}else if((l|0)==11){Zt(a,b,d);return}else if((l|0)==60)return}function fh(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;w=yb;yb=yb+16|0;x=w;v=Thb(c[i>>2]|0,151324)|0;t=Thb(c[i>>2]|0,151340)|0;Sb[c[(c[t>>2]|0)+20>>2]&8191](x,t);c[h>>2]=f;i=a[b>>0]|0;a:do switch(i<<24>>24){case 43:case 45:{n=0;i=U(c[(c[v>>2]|0)+28>>2]|0,v|0,i|0)|0;s=n;n=0;if(s&1){i=sa()|0;P()|0;break a}else{k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=i;k=b+1|0;u=5;break a}}default:{k=b;u=5}}while(0);b:do if((u|0)==5){s=e;c:do if((s-k|0)>1?(a[k>>0]|0)==48:0){i=k+1|0;switch(a[i>>0]|0){case 88:case 120:break;default:{u=6;break c}}n=0;j=U(c[(c[v>>2]|0)+28>>2]|0,v|0,48)|0;r=n;n=0;if(!(r&1)?(m=c[h>>2]|0,c[h>>2]=m+1,a[m>>0]=j,m=k+2|0,n=0,l=U(c[(c[v>>2]|0)+28>>2]|0,v|0,a[i>>0]|0)|0,r=n,n=0,!(r&1)):0){i=c[h>>2]|0;c[h>>2]=i+1;a[i>>0]=l;i=m;while(1){if(i>>>0>=e>>>0){k=m;u=20;break c}u=a[i>>0]|0;t8a()|0;if(!(GCb(u<<24>>24)|0)){k=m;u=20;break c}i=i+1|0}}}else u=6;while(0);d:do if((u|0)==6){i=k;while(1){if(i>>>0>=e>>>0){u=20;break d}u=a[i>>0]|0;t8a()|0;if(!(HCb(u<<24>>24)|0)){u=20;break d}i=i+1|0}}while(0);e:do if((u|0)==20){q=x+11|0;p=a[q>>0]|0;r=x+4|0;f:do if((p<<24>>24<0?c[r>>2]|0:p&255)|0){g:do if((k|0)!=(i|0)){j=i;l=k;while(1){j=j+-1|0;if(l>>>0>=j>>>0)break g;p=a[l>>0]|0;a[l>>0]=a[j>>0]|0;a[j>>0]=p;l=l+1|0}}while(0);n=0;p=S(c[(c[t>>2]|0)+16>>2]|0,t|0)|0;o=n;n=0;if(o&1){i=sa()|0;P()|0;break b}o=k;j=0;l=0;while(1){if(o>>>0>=i>>>0)break;m=a[((a[q>>0]|0)<0?c[x>>2]|0:x)+j>>0]|0;if(m<<24>>24>0&(l|0)==(m<<24>>24|0)){l=c[h>>2]|0;c[h>>2]=l+1;a[l>>0]=p;l=a[q>>0]|0;j=j+(j>>>0<((l<<24>>24<0?c[r>>2]|0:l&255)+-1|0)>>>0&1)|0;l=0}n=0;m=U(c[(c[v>>2]|0)+28>>2]|0,v|0,a[o>>0]|0)|0;y=n;n=0;if(y&1){u=39;break}y=c[h>>2]|0;c[h>>2]=y+1;a[y>>0]=m;o=o+1|0;l=l+1|0}if((u|0)==39){i=sa()|0;P()|0;break b}k=f+(k-b)|0;j=c[h>>2]|0;if((k|0)==(j|0))k=v;else while(1){j=j+-1|0;if(k>>>0>=j>>>0){k=v;break f}y=a[k>>0]|0;a[k>>0]=a[j>>0]|0;a[j>>0]=y;k=k+1|0}}else{n=0;W(c[(c[v>>2]|0)+32>>2]|0,v|0,k|0,i|0,c[h>>2]|0)|0;y=n;n=0;if(y&1)break e;c[h>>2]=(c[h>>2]|0)+(i-k);k=v}while(0);while(1){if(i>>>0>=e>>>0)break;j=a[i>>0]|0;if(j<<24>>24==46){u=43;break}n=0;j=U(c[(c[k>>2]|0)+28>>2]|0,v|0,j|0)|0;y=n;n=0;if(y&1){u=14;break}y=c[h>>2]|0;c[h>>2]=y+1;a[y>>0]=j;i=i+1|0}if((u|0)==14){i=sa()|0;P()|0;break b}if((u|0)==43){n=0;j=S(c[(c[t>>2]|0)+12>>2]|0,t|0)|0;y=n;n=0;if(y&1)break;y=c[h>>2]|0;c[h>>2]=y+1;a[y>>0]=j;i=i+1|0}n=0;W(c[(c[v>>2]|0)+32>>2]|0,v|0,i|0,e|0,c[h>>2]|0)|0;y=n;n=0;if(!(y&1)){y=(c[h>>2]|0)+(s-i)|0;c[h>>2]=y;c[g>>2]=(d|0)==(e|0)?y:f+(d-b)|0;Chb(x);yb=w;return}}while(0);i=sa()|0;P()|0}while(0);Chb(x);Ea(i|0)}function gh(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;w=yb;yb=yb+432|0;v=w+400|0;g=w+368|0;h=w+344|0;i=w+312|0;j=w+288|0;s=w+264|0;t=w+240|0;u=w+216|0;f=w+192|0;k=w+168|0;l=w+144|0;m=w+120|0;n=w+96|0;o=w+72|0;p=w+48|0;q=w+24|0;r=w;tw(g,d,c[e+12>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=w;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];tw(i,d,c[e+16>>2]|0);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=w;return}c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];c[j+20>>2]=c[g+20>>2];do switch(c[e+8>>2]|0){case 0:{g9a(s,h,j);e=v;f=s;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 1:{c8a(t,h,j);e=v;f=t;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 2:{b8a(u,h,j);e=v;f=u;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 3:{A9a(f,h,j);e=v;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 4:{w8a(k,h,j);e=v;f=k;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 5:{v8a(l,h,j);e=v;f=l;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 6:{tab(m,h,j);e=v;f=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 7:{e9a(n,h,j);e=v;f=n;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 8:{c9a(o,h,j);e=v;f=o;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 9:{sab(p,h,j);e=v;f=p;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 10:{d9a(q,h,j);e=v;f=q;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 11:{b9a(r,h,j);e=v;f=r;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}default:ma(141129,96854,626,97346)}while(0)}function hh(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;l=yb;yb=yb+32|0;i=l;a:do if((d-b|0)>1?(a[b>>0]|0)==83:0){h=a[b+1>>0]|0;b:do switch(h|0){case 97:{Nfa(i,141255);f=e+4|0;g=c[f>>2]|0;if(g>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,i|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(i);break b}}else{I6(g,i);c[f>>2]=(c[f>>2]|0)+24}J2a(i);b=b+2|0;break a}case 98:{Mfa(i,141270);f=e+4|0;g=c[f>>2]|0;if(g>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,i|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(i);break b}}else{I6(g,i);c[f>>2]=(c[f>>2]|0)+24}J2a(i);b=b+2|0;break a}case 115:{Qfa(i,140749);f=e+4|0;g=c[f>>2]|0;if(g>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,i|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(i);break b}}else{I6(g,i);c[f>>2]=(c[f>>2]|0)+24}J2a(i);b=b+2|0;break a}case 105:{Pfa(i,140845);f=e+4|0;g=c[f>>2]|0;if(g>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,i|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(i);break b}}else{I6(g,i);c[f>>2]=(c[f>>2]|0)+24}J2a(i);b=b+2|0;break a}case 111:{Pfa(i,140922);f=e+4|0;g=c[f>>2]|0;if(g>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,i|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(i);break b}}else{I6(g,i);c[f>>2]=(c[f>>2]|0)+24}J2a(i);b=b+2|0;break a}case 100:{Ofa(i,140999);f=e+4|0;g=c[f>>2]|0;if(g>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,i|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(i);break b}}else{I6(g,i);c[f>>2]=(c[f>>2]|0)+24}J2a(i);b=b+2|0;break a}case 95:{f=c[e+16>>2]|0;if((f|0)==(c[e+20>>2]|0))break a;h=c[f+4>>2]|0;i=e+4|0;j=e+8|0;f=c[f>>2]|0;while(1){if((f|0)==(h|0))break;g=c[i>>2]|0;if((g|0)==(c[j>>2]|0))vB(e,f);else{Oga(g,f);c[i>>2]=(c[i>>2]|0)+24}f=f+24|0}b=b+2|0;break a}default:{g=h+-48|0;f=g>>>0<10;if(!f?(qCb(h)|0)==0:0)break a;k=b+2|0;f=f?g:h+-55|0;while(1){if((k|0)==(d|0))break a;g=a[k>>0]|0;h=g<<24>>24;j=h+-48|0;i=j>>>0<10;if(!i?(qCb(h)|0)==0:0)break;k=k+1|0;f=(i?j:h+-55|0)+(f*36|0)|0}if(g<<24>>24!=95)break a;f=f+1|0;d=c[e+16>>2]|0;g=d;if(f>>>0>=(c[e+20>>2]|0)-d>>4>>>0)break a;h=c[g+(f<<4)+4>>2]|0;i=e+4|0;j=e+8|0;b=c[g+(f<<4)>>2]|0;while(1){if((b|0)==(h|0))break;f=c[i>>2]|0;if((f|0)==(c[j>>2]|0))vB(e,b);else{Oga(f,b);c[i>>2]=(c[i>>2]|0)+24}b=b+24|0}b=k+1|0;break a}}while(0);Ea(b|0)}while(0);yb=l;return b|0}function ih(a,b){a=a|0;b=b|0;var d=0;do switch(c[b+8>>2]|0){case 0:{d=1;break}case 1:{d=1;break}case 2:{d=2;break}case 3:{d=3;break}case 4:{d=3;break}case 5:{d=3;break}case 6:{d=3;break}case 7:{d=1;break}case 8:{d=1;break}case 9:{d=1;break}case 10:{d=1;break}case 11:{d=1;break}case 12:{d=1;break}case 13:{d=1;break}case 14:{d=1;break}case 25:{d=1;break}case 26:{d=1;break}case 27:{d=2;break}case 28:{d=3;break}case 29:{d=3;break}case 30:{d=3;break}case 31:{d=3;break}case 32:{d=1;break}case 33:{d=1;break}case 34:{d=1;break}case 35:{d=1;break}case 36:{d=1;break}case 37:{d=1;break}case 38:{d=1;break}case 39:{d=1;break}case 50:{d=1;break}case 51:{d=1;break}case 52:{d=2;break}case 53:{d=3;break}case 54:{d=1;break}case 55:{d=1;break}case 56:{d=1;break}case 63:{d=1;break}case 64:{d=1;break}case 65:{d=2;break}case 66:{d=3;break}case 67:{d=1;break}case 68:{d=1;break}case 69:{d=1;break}case 18:{d=1;break}case 17:{d=1;break}case 20:{d=1;break}case 19:{d=1;break}case 22:{d=1;break}case 21:{d=1;break}case 24:{d=1;break}case 23:{d=1;break}case 43:{d=1;break}case 42:{d=1;break}case 45:{d=1;break}case 44:{d=1;break}case 47:{d=1;break}case 46:{d=1;break}case 49:{d=1;break}case 48:{d=1;break}case 59:{d=1;break}case 61:{d=1;break}case 60:{d=1;break}case 62:{d=1;break}case 72:{d=1;break}case 74:{d=1;break}case 73:{d=1;break}case 75:{d=1;break}case 15:{d=1;break}case 16:{d=1;break}case 40:{d=1;break}case 41:{d=1;break}case 57:{d=1;break}case 58:{d=1;break}case 70:{d=1;break}case 71:{d=1;break}case 76:{d=1;break}case 77:{d=1;break}case 78:{d=1;break}case 79:{d=1;break}case 82:{d=1;break}case 83:{d=1;break}case 80:{d=1;break}case 81:{d=1;break}case 84:{d=1;break}case 85:{d=1;break}case 86:{d=1;break}case 87:{d=1;break}case 88:{d=1;break}case 89:{d=1;break}case 92:{d=1;break}case 93:{d=1;break}case 90:{d=1;break}case 91:{d=1;break}case 94:{d=1;break}case 95:{d=1;break}case 96:{d=1;break}case 97:{d=1;break}case 98:{d=1;break}case 99:{d=1;break}case 102:{d=1;break}case 103:{d=1;break}case 100:{d=1;break}case 101:{d=1;break}case 104:{d=1;break}case 105:{d=1;break}case 106:{d=1;break}case 107:{d=1;break}case 108:{d=1;break}case 110:{d=1;break}case 109:{d=1;break}case 111:{d=1;break}case 112:{d=1;break}case 113:{d=1;break}case 114:{d=1;break}case 116:{d=1;break}case 115:{d=1;break}case 117:{d=1;break}case 118:{d=1;break}case 119:{d=1;break}case 120:{d=1;break}case 121:{d=1;break}case 122:{d=1;break}case 123:{d=1;break}case 124:{d=1;break}case 125:{d=1;break}case 126:{d=1;break}case 127:{d=2;break}case 128:{d=1;break}case 129:{d=1;break}case 130:{d=1;break}case 131:{d=1;break}case 132:{d=1;break}case 133:{d=1;break}case 134:{d=2;break}case 135:{d=1;break}case 136:{d=1;break}case 137:{d=2;break}case 138:{d=1;break}case 139:{d=1;break}case 140:{d=1;break}case 141:{d=1;break}case 142:{d=2;break}case 143:{d=3;break}case 144:{d=1;break}case 145:{d=1;break}case 146:{d=1;break}case 147:{d=1;break}case 148:{d=2;break}case 149:{d=3;break}case 150:{d=1;break}case 151:{d=1;break}case 152:{ma(141129,85950,349,131297);break}default:d=0}while(0);d=d+(Bs(a,c[b+12>>2]|0)|0)|0;return d+(Bs(a,c[b+16>>2]|0)|0)|0}function jh(a,b,d){a=a|0;b=b|0;d=d|0;if(!d)ma(112644,134747,85,112649);do switch(c[d>>2]|0){case 1:{Pl(a,b,d);return}case 2:{rt(a,b,d);return}case 3:{bdb();break}case 4:{_o(a,b,d);return}case 5:{rq(a,b,d);return}case 6:{ddb();break}case 7:{V7a();break}case 8:{hbb();break}case 9:{wbb();break}case 10:{w6(a,c[b+4>>2]|0,d);return}case 11:{_ab();break}case 12:{cdb();break}case 13:{wcb();break}case 23:{LFa(a);return}case 24:{LFa(a);return}case 25:{LFa(a);return}case 26:{LFa(a);return}case 27:{Wk(a,b,d);return}case 28:{ak(a,b,d);return}case 29:{fp(a,b,d);return}case 30:{hl(a,b,d);return}case 31:{Gh(a,b,d);return}case 32:{dab();break}case 33:{xbb();break}case 34:{fab();break}case 35:{eab();break}case 14:{Yma(a,d);return}case 15:{vc(a,b,d);return}case 16:{ec(a,b,d);return}case 17:{Ip(a,b,d);return}case 18:{kG(a,b,c[d+8>>2]|0);return}case 19:{vM(a,b,d);return}case 20:{ndb();break}case 21:{LFa(a);return}case 22:{S2a(b);break}default:ma(141129,134747,128,112649)}while(0)}function kh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0;k=yb;yb=yb+80|0;l=k+64|0;m=k+52|0;j=k+48|0;o=k+36|0;p=k+24|0;q=k+12|0;r=k;G1a(d,0,0)|0;c[e>>2]=f;i=1;a:while(1){h=Vr(b,i)|0;if(UBb(a[h>>0]|0)|0){f=48;break}h=kH(Vr(b,i)|0)|0;f=alb(h,61)|0;if(!f){f=4;break}f=f+1|0;if(!(a[f>>0]|0)){f=11;break}f=pjb(f,j,10)|0;g=P()|0;if(a[c[j>>2]>>0]|0){f=18;break}switch(a[h>>0]|0){case 97:{if(g>>>0>0|(g|0)==0&f>>>0>4294967295){f=26;break a}G1a(e,f,g)|0;break}case 111:{if(g>>>0>0|(g|0)==0&f>>>0>4294967295){f=34;break a}G1a(d,f,g)|0;break}default:{f=40;break a}}i=i+1|0}if((f|0)==4){h=oa(20)|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;r=Zzb(125195)|0;n=0;ea(95,l|0,125195,r|0);r=n;n=0;if(!(r&1)){n=0;da(330,h|0,l|0);r=n;n=0;if(r&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(l);if(!g){r=f;Ea(r|0)}}else{f=sa()|0;P()|0}va(h|0);r=f;Ea(r|0)}else if((f|0)==11){h=oa(20)|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;r=Zzb(125225)|0;n=0;ea(95,m|0,125225,r|0);r=n;n=0;if(!(r&1)){n=0;fa(134,h|0,m|0,c[b+28>>2]|0,c[b+32>>2]|0);r=n;n=0;if(r&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(m);if(!g){r=f;Ea(r|0)}}else{f=sa()|0;P()|0}va(h|0);r=f;Ea(r|0)}else if((f|0)==18){h=oa(20)|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;r=Zzb(125259)|0;n=0;ea(95,o|0,125259,r|0);r=n;n=0;if(!(r&1)){n=0;fa(134,h|0,o|0,c[b+28>>2]|0,c[b+32>>2]|0);r=n;n=0;if(r&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(o);if(!g){r=f;Ea(r|0)}}else{f=sa()|0;P()|0}va(h|0);r=f;Ea(r|0)}else if((f|0)==26){h=oa(20)|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;r=Zzb(125290)|0;n=0;ea(95,p|0,125290,r|0);r=n;n=0;if(!(r&1)){n=0;da(330,h|0,p|0);r=n;n=0;if(r&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(p);if(!g){r=f;Ea(r|0)}}else{f=sa()|0;P()|0}va(h|0);r=f;Ea(r|0)}else if((f|0)==34){h=oa(20)|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;r=Zzb(125300)|0;n=0;ea(95,q|0,125300,r|0);r=n;n=0;if(!(r&1)){n=0;da(330,h|0,q|0);r=n;n=0;if(r&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(q);if(!g){r=f;Ea(r|0)}}else{f=sa()|0;P()|0}va(h|0);r=f;Ea(r|0)}else if((f|0)==40){h=oa(20)|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;q=Zzb(125311)|0;n=0;ea(95,r|0,125311,q|0);q=n;n=0;if(!(q&1)){n=0;da(330,h|0,r|0);q=n;n=0;if(q&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(r);if(!g){r=f;Ea(r|0)}}else{f=sa()|0;P()|0}va(h|0);r=f;Ea(r|0)}else if((f|0)==48){yb=k;return i|0}return 0}function lh(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=yb;yb=yb+64|0;C=D+48|0;E=D+32|0;y=D+16|0;w=D;x=d+12|0;e=c[x>>2]|0;if(!(qqa(b,e)|0)){yb=D;return}if(!e)ma(83113,81381,265,83136);pT(E,b,e);z=d+8|0;B=b+108|0;e=NF(B,z)|0;do if(e){n=0;da(1448,y|0,e+12|0);C=n;n=0;if(C&1)A=45;else{n=0;ea(145,w|0,b|0,1);C=n;n=0;if(C&1){e=sa()|0;P()|0}else{e=b+44|0;f=c[e>>2]|0;n=0;h=S(280,w|0)|0;C=n;n=0;if((((((((!(C&1)?(n=0,k=V(70,c[f>>2]|0,h|0,c[x>>2]|0)|0,C=n,n=0,!(C&1)):0)?(l=c[e>>2]|0,n=0,m=S(280,y|0)|0,C=n,n=0,!(C&1)):0)?(o=c[e>>2]|0,n=0,p=S(280,E|0)|0,C=n,n=0,!(C&1)):0)?(n=0,q=V(71,c[o>>2]|0,p|0,1)|0,C=n,n=0,!(C&1)):0)?(n=0,r=V(70,c[l>>2]|0,m|0,q|0)|0,C=n,n=0,!(C&1)):0)?(s=c[e>>2]|0,n=0,t=S(280,w|0)|0,C=n,n=0,!(C&1)):0)?(n=0,u=V(71,c[s>>2]|0,t|0,1)|0,C=n,n=0,!(C&1)):0)?(c[x>>2]=u,c[d+4>>2]=1,n=0,v=W(31,c[e>>2]|0,k|0,r|0,d|0)|0,d=n,n=0,!(d&1)):0){Pwb(c[b+16>>2]|0,v);lNa(w);lNa(y);A=58;break}e=sa()|0;P()|0;lNa(w)}lNa(y);D=e;lNa(E);Ea(D|0)}}else{q=LAb(z)|0;p=b+112|0;k=c[p>>2]|0;o=(k|0)==0;a:do if(!o){l=k+-1|0;m=(k&l|0)==0;if(!m)if(q>>>0>>0)f=q;else f=(q>>>0)%(k>>>0)|0;else f=q&l;e=c[(c[B>>2]|0)+(f<<2)>>2]|0;if(!e)A=21;else while(1){e=c[e>>2]|0;if(!e){A=21;break a}h=c[e+4>>2]|0;if((h|0)!=(q|0)){if(!m){if(h>>>0>=k>>>0)h=(h>>>0)%(k>>>0)|0}else h=h&l;if((h|0)!=(f|0)){A=21;break a}}if(dub(c[e+8>>2]|0,c[z>>2]|0)|0)break a}}else{f=0;A=21}while(0);if((A|0)==21){n=0;ga(11,C|0,B|0,q|0,z|0,E|0);z=n;n=0;if(z&1){A=45;break}l=b+120|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+g[b+124>>2];if(j*+(k>>>0)>>0>2){f=(k&k+-1|0)!=0&1;A=26}else{f=1;A=26}}else if(o){e=0;f=1;A=26}do if((A|0)==26){A=e|f;z=~~+I(+(i/j))>>>0;n=0;da(1450,B|0,(A>>>0>>0?z:A)|0);A=n;n=0;if(!(A&1)){e=c[p>>2]|0;f=e+-1|0;if(!(e&f)){k=e;f=q&f;break}if(q>>>0>>0){k=e;f=q;break}k=e;f=(q>>>0)%(e>>>0)|0;break}e=sa()|0;P()|0;f=c[C>>2]|0;c[C>>2]=0;if(!f){D=e;lNa(E);Ea(D|0)}if(a[C+8>>0]&1)blb(f+8|0);RCb(f);D=e;lNa(E);Ea(D|0)}while(0);e=c[(c[B>>2]|0)+(f<<2)>>2]|0;if(!e){b=b+116|0;e=c[C>>2]|0;c[e>>2]=c[b>>2];h=e;c[b>>2]=h;c[(c[B>>2]|0)+(f<<2)>>2]=b;if(c[e>>2]|0){e=c[(c[e>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[B>>2]|0)+(e<<2)>>2]=h}}else{B=c[C>>2]|0;c[B>>2]=c[e>>2];c[e>>2]=B}c[l>>2]=(c[l>>2]|0)+1;c[C>>2]=0}c[d+4>>2]=1;A=58}while(0);if((A|0)==45){D=sa()|0;P()|0;lNa(E);Ea(D|0)}else if((A|0)==58){lNa(E);yb=D;return}}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,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;v=yb;yb=yb+144|0;u=v+128|0;p=v+120|0;w=v+28|0;x=v+16|0;q=v+12|0;r=v+8|0;s=v;if(!((e|0)!=-1&(d|0)!=-1&d>>>0>>0))ma(76810,76892,149,76928);m=b+12|0;VA(w,c[m>>2]|0,0);n=0;f=U(74,c[b>>2]|0,e|0)|0;t=n;n=0;if(!(t&1)?(n=0,da(808,w|0,c[f>>2]|0),t=n,n=0,!(t&1)):0){a[w+26>>0]=0;c[x>>2]=0;o=x+4|0;c[o>>2]=0;i=x+8|0;c[i>>2]=0;j=b+16|0;h=q;k=s+4|0;l=p+4|0;t=u+8|0;f=e;a:while(1){f=f+-1|0;n=0;g=U(74,c[b>>2]|0,f|0)|0;y=n;n=0;if(y&1){k=26;break}n=0;g=U(113,b|0,c[g>>2]|0)|0;y=n;n=0;if(y&1){k=26;break}c[q>>2]=g;if(!g){n=0;g=U(74,c[b>>2]|0,f|0)|0;y=n;n=0;if(y&1){k=26;break}n=0;da(808,w|0,c[g>>2]|0);y=n;n=0;if(y&1){k=26;break}}else{y=oC(j,q)|0;g=y;if(!y){c[r>>2]=h;c[s>>2]=c[m>>2];c[k>>2]=q;n=0;fa(106,u|0,j|0,r|0,s|0);y=n;n=0;if(y&1){k=26;break}g=c[u>>2]|0;n=0;ea(129,p|0,j|0,g|0);y=n;n=0;if(y&1){k=14;break}if(!(a[l>>0]&1)){c[u>>2]=0;if(g|0){if(a[t>>0]&1)gob(g+8|0);RCb(g)}}else{c[u>>2]=0;c[u>>2]=0}g=c[p>>2]|0}g=g+12|0;do if(Hi(w,g)|0){n=0;da(919,w|0,g|0);y=n;n=0;if(y&1){k=26;break a}}else{g=c[o>>2]|0;if((g|0)==(c[i>>2]|0)){n=0;da(920,x|0,q|0);y=n;n=0;if(y&1){k=26;break a}else break}else{c[g>>2]=c[q>>2];c[o>>2]=(c[o>>2]|0)+4;break}}while(0);if((f|0)==(d|0)){k=41;break}}if(!f){k=39;break}}do if((k|0)==14){f=sa()|0;P()|0;c[u>>2]=0;if(g){if(a[t>>0]&1)gob(g+8|0);RCb(g)}}else if((k|0)==26){f=sa()|0;P()|0;k=28}else if((k|0)==39){n=0;fa(75,76944,76892,184,76928);n=0;k=27}else if((k|0)==41){f=c[o>>2]|0;g=c[x>>2]|0;if((f|0)==(g|0)){y=e;y=y+1|0;Vob(x);Fha(w);yb=v;return y|0}j=f-g>>2;i=j+-1|0;f=0;while(1){if(d>>>0>e>>>0)break;if(f>>>0>>0){n=0;g=U(74,c[b>>2]|0,d|0)|0;y=n;n=0;if(y&1){k=25;break}if((c[g>>2]|0)==(c[(c[x>>2]|0)+(i-f<<2)>>2]|0))f=f+1|0;else k=48}else k=48;if((k|0)==48){k=0;if(!f)f=0;else{n=0;g=U(74,c[b>>2]|0,d|0)|0;y=n;n=0;if(y&1){k=25;break}g=c[g>>2]|0;n=0;h=U(74,c[b>>2]|0,d-f|0)|0;y=n;n=0;if(y&1){k=25;break}c[h>>2]=g}}d=d+1|0}if((k|0)==25){f=sa()|0;P()|0;k=28;break}if((f|0)!=(j|0)){n=0;fa(75,76950,76892,206,76928);n=0;k=27;break}f=0;while(1){if(f>>>0>=j>>>0)break;g=c[(c[x>>2]|0)+(f<<2)>>2]|0;n=0;h=U(74,c[b>>2]|0,e-f|0)|0;y=n;n=0;if(y&1){k=24;break}c[h>>2]=g;f=f+1|0}if((k|0)==24){f=sa()|0;P()|0;k=28;break}y=e-j|0;y=y+1|0;Vob(x);Fha(w);yb=v;return y|0}while(0);if((k|0)==27){f=sa()|0;P()|0;k=28}Vob(x);y=f;Fha(w);Ea(y|0)}y=sa()|0;P()|0;Fha(w);Ea(y|0);return 0}function nh(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;B=yb;yb=yb+240|0;u=B+160|0;i=B+231|0;j=B+230|0;C=B+216|0;D=B+204|0;y=B+200|0;z=B;v=B+196|0;w=B+192|0;x=B+229|0;t=B+228|0;bB(C,e,u,i,j);c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[D+(e<<2)>>2]=0;e=e+1|0}s=D+11|0;if((a[s>>0]|0)<0)e=(c[D+8>>2]&2147483647)+-1|0;else e=10;n=0;da(92,D|0,e|0);r=n;n=0;if(r&1){e=sa()|0;P()|0}else{k=(a[s>>0]|0)<0?c[D>>2]|0:D;c[y>>2]=k;c[v>>2]=z;c[w>>2]=0;a[x>>0]=1;a[t>>0]=69;q=D+4|0;r=D+8|0;p=a[i>>0]|0;o=a[j>>0]|0;j=k;i=b;k=b;while(1){if(!k){m=0;b=1;l=0}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;m=n;n=0;if(m&1){A=27;break}}else e=Qzb(a[e>>0]|0)|0;l=dub(e,-1)|0;i=l?0:i;m=l?0:b;b=l;l=l?0:k}if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;k=n;n=0;if(k&1){A=27;break}}else e=Qzb(a[e>>0]|0)|0;if(!(dub(e,-1)|0)){if(!b){A=38;break}}else A=18}else A=18;if((A|0)==18){A=0;if(b){d=0;A=38;break}else d=0}b=a[s>>0]|0;b=b<<24>>24<0?c[q>>2]|0:b&255;if((c[y>>2]|0)==(j+b|0)){n=0;da(92,D|0,b<<1|0);k=n;n=0;if(k&1){A=29;break}if((a[s>>0]|0)<0)e=(c[r>>2]&2147483647)+-1|0;else e=10;n=0;da(92,D|0,e|0);k=n;n=0;if(k&1){A=29;break}j=(a[s>>0]|0)<0?c[D>>2]|0:D;c[y>>2]=j+b}b=l+12|0;e=c[b>>2]|0;k=l+16|0;if((e|0)==(c[k>>2]|0)){n=0;e=S(c[(c[l>>2]|0)+36>>2]|0,l|0)|0;E=n;n=0;if(E&1){A=27;break}}else e=Qzb(a[e>>0]|0)|0;if(Xo(e&255,x,t,j,y,p,o,C,z,v,w,u)|0){A=38;break}e=c[b>>2]|0;if((e|0)==(c[k>>2]|0)){n=0;S(c[(c[l>>2]|0)+40>>2]|0,l|0)|0;E=n;n=0;if(E&1){A=27;break}}else c[b>>2]=e+1;k=l;b=m}if((A|0)==27){e=sa()|0;P()|0}else if((A|0)==29){e=sa()|0;P()|0}else if((A|0)==38){E=a[C+11>>0]|0;e=c[v>>2]|0;if(!((a[x>>0]|0)==0?1:((E<<24>>24<0?c[C+4>>2]|0:E&255)|0)==0)?(e-z|0)<160:0){x=c[w>>2]|0;E=e+4|0;c[v>>2]=E;c[e>>2]=x;e=E}F=+D4(j,c[y>>2]|0,f);g[h>>2]=F;aC(C,z,e,f);do if(!l){j=1;A=46}else{e=c[l+12>>2]|0;if((e|0)==(c[l+16>>2]|0)){n=0;e=S(c[(c[m>>2]|0)+36>>2]|0,l|0)|0;E=n;n=0;if(E&1)break}else e=Qzb(a[e>>0]|0)|0;j=dub(e,-1)|0;i=j?0:i;A=46}while(0);do if((A|0)==46){if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;E=n;n=0;if(E&1)break}else e=Qzb(a[e>>0]|0)|0;if(!(dub(e,-1)|0)){if(!j)A=53}else A=51}else A=51;if((A|0)==51?j:0)A=53;if((A|0)==53)c[f>>2]=c[f>>2]|2;Chb(D);Chb(C);yb=B;return i|0}while(0);e=sa()|0;P()|0}}Chb(D);Chb(C);Ea(e|0);return 0}function oh(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;B=yb;yb=yb+240|0;u=B+160|0;i=B+231|0;j=B+230|0;C=B+216|0;D=B+204|0;y=B+200|0;z=B;v=B+196|0;w=B+192|0;x=B+229|0;t=B+228|0;bB(C,e,u,i,j);c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[D+(e<<2)>>2]=0;e=e+1|0}s=D+11|0;if((a[s>>0]|0)<0)e=(c[D+8>>2]&2147483647)+-1|0;else e=10;n=0;da(92,D|0,e|0);r=n;n=0;if(r&1){e=sa()|0;P()|0}else{k=(a[s>>0]|0)<0?c[D>>2]|0:D;c[y>>2]=k;c[v>>2]=z;c[w>>2]=0;a[x>>0]=1;a[t>>0]=69;q=D+4|0;r=D+8|0;p=a[i>>0]|0;o=a[j>>0]|0;j=k;i=b;k=b;while(1){if(!k){m=0;b=1;l=0}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;m=n;n=0;if(m&1){A=27;break}}else e=Qzb(a[e>>0]|0)|0;l=dub(e,-1)|0;i=l?0:i;m=l?0:b;b=l;l=l?0:k}if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;k=n;n=0;if(k&1){A=27;break}}else e=Qzb(a[e>>0]|0)|0;if(!(dub(e,-1)|0)){if(!b){A=38;break}}else A=18}else A=18;if((A|0)==18){A=0;if(b){d=0;A=38;break}else d=0}b=a[s>>0]|0;b=b<<24>>24<0?c[q>>2]|0:b&255;if((c[y>>2]|0)==(j+b|0)){n=0;da(92,D|0,b<<1|0);k=n;n=0;if(k&1){A=29;break}if((a[s>>0]|0)<0)e=(c[r>>2]&2147483647)+-1|0;else e=10;n=0;da(92,D|0,e|0);k=n;n=0;if(k&1){A=29;break}j=(a[s>>0]|0)<0?c[D>>2]|0:D;c[y>>2]=j+b}b=l+12|0;e=c[b>>2]|0;k=l+16|0;if((e|0)==(c[k>>2]|0)){n=0;e=S(c[(c[l>>2]|0)+36>>2]|0,l|0)|0;E=n;n=0;if(E&1){A=27;break}}else e=Qzb(a[e>>0]|0)|0;if(Xo(e&255,x,t,j,y,p,o,C,z,v,w,u)|0){A=38;break}e=c[b>>2]|0;if((e|0)==(c[k>>2]|0)){n=0;S(c[(c[l>>2]|0)+40>>2]|0,l|0)|0;E=n;n=0;if(E&1){A=27;break}}else c[b>>2]=e+1;k=l;b=m}if((A|0)==27){e=sa()|0;P()|0}else if((A|0)==29){e=sa()|0;P()|0}else if((A|0)==38){E=a[C+11>>0]|0;e=c[v>>2]|0;if(!((a[x>>0]|0)==0?1:((E<<24>>24<0?c[C+4>>2]|0:E&255)|0)==0)?(e-z|0)<160:0){x=c[w>>2]|0;E=e+4|0;c[v>>2]=E;c[e>>2]=x;e=E}F=+B4(j,c[y>>2]|0,f);h[g>>3]=F;aC(C,z,e,f);do if(!l){j=1;A=46}else{e=c[l+12>>2]|0;if((e|0)==(c[l+16>>2]|0)){n=0;e=S(c[(c[m>>2]|0)+36>>2]|0,l|0)|0;E=n;n=0;if(E&1)break}else e=Qzb(a[e>>0]|0)|0;j=dub(e,-1)|0;i=j?0:i;A=46}while(0);do if((A|0)==46){if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;E=n;n=0;if(E&1)break}else e=Qzb(a[e>>0]|0)|0;if(!(dub(e,-1)|0)){if(!j)A=53}else A=51}else A=51;if((A|0)==51?j:0)A=53;if((A|0)==53)c[f>>2]=c[f>>2]|2;Chb(D);Chb(C);yb=B;return i|0}while(0);e=sa()|0;P()|0}}Chb(D);Chb(C);Ea(e|0);return 0}function ph(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;B=yb;yb=yb+240|0;u=B+160|0;i=B+231|0;j=B+230|0;C=B+216|0;D=B+204|0;y=B+200|0;z=B;v=B+196|0;w=B+192|0;x=B+229|0;t=B+228|0;bB(C,e,u,i,j);c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[D+(e<<2)>>2]=0;e=e+1|0}s=D+11|0;if((a[s>>0]|0)<0)e=(c[D+8>>2]&2147483647)+-1|0;else e=10;n=0;da(92,D|0,e|0);r=n;n=0;if(r&1){e=sa()|0;P()|0}else{k=(a[s>>0]|0)<0?c[D>>2]|0:D;c[y>>2]=k;c[v>>2]=z;c[w>>2]=0;a[x>>0]=1;a[t>>0]=69;q=D+4|0;r=D+8|0;p=a[i>>0]|0;o=a[j>>0]|0;j=k;i=b;k=b;while(1){if(!k){m=0;b=1;l=0}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;m=n;n=0;if(m&1){A=27;break}}else e=Qzb(a[e>>0]|0)|0;l=dub(e,-1)|0;i=l?0:i;m=l?0:b;b=l;l=l?0:k}if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;k=n;n=0;if(k&1){A=27;break}}else e=Qzb(a[e>>0]|0)|0;if(!(dub(e,-1)|0)){if(!b){A=38;break}}else A=18}else A=18;if((A|0)==18){A=0;if(b){d=0;A=38;break}else d=0}b=a[s>>0]|0;b=b<<24>>24<0?c[q>>2]|0:b&255;if((c[y>>2]|0)==(j+b|0)){n=0;da(92,D|0,b<<1|0);k=n;n=0;if(k&1){A=29;break}if((a[s>>0]|0)<0)e=(c[r>>2]&2147483647)+-1|0;else e=10;n=0;da(92,D|0,e|0);k=n;n=0;if(k&1){A=29;break}j=(a[s>>0]|0)<0?c[D>>2]|0:D;c[y>>2]=j+b}b=l+12|0;e=c[b>>2]|0;k=l+16|0;if((e|0)==(c[k>>2]|0)){n=0;e=S(c[(c[l>>2]|0)+36>>2]|0,l|0)|0;E=n;n=0;if(E&1){A=27;break}}else e=Qzb(a[e>>0]|0)|0;if(Xo(e&255,x,t,j,y,p,o,C,z,v,w,u)|0){A=38;break}e=c[b>>2]|0;if((e|0)==(c[k>>2]|0)){n=0;S(c[(c[l>>2]|0)+40>>2]|0,l|0)|0;E=n;n=0;if(E&1){A=27;break}}else c[b>>2]=e+1;k=l;b=m}if((A|0)==27){e=sa()|0;P()|0}else if((A|0)==29){e=sa()|0;P()|0}else if((A|0)==38){E=a[C+11>>0]|0;e=c[v>>2]|0;if(!((a[x>>0]|0)==0?1:((E<<24>>24<0?c[C+4>>2]|0:E&255)|0)==0)?(e-z|0)<160:0){x=c[w>>2]|0;E=e+4|0;c[v>>2]=E;c[e>>2]=x;e=E}F=+E4(j,c[y>>2]|0,f);h[g>>3]=F;aC(C,z,e,f);do if(!l){j=1;A=46}else{e=c[l+12>>2]|0;if((e|0)==(c[l+16>>2]|0)){n=0;e=S(c[(c[m>>2]|0)+36>>2]|0,l|0)|0;E=n;n=0;if(E&1)break}else e=Qzb(a[e>>0]|0)|0;j=dub(e,-1)|0;i=j?0:i;A=46}while(0);do if((A|0)==46){if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;E=n;n=0;if(E&1)break}else e=Qzb(a[e>>0]|0)|0;if(!(dub(e,-1)|0)){if(!j)A=53}else A=51}else A=51;if((A|0)==51?j:0)A=53;if((A|0)==53)c[f>>2]=c[f>>2]|2;Chb(D);Chb(C);yb=B;return i|0}while(0);e=sa()|0;P()|0}}Chb(D);Chb(C);Ea(e|0);return 0}function qh(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;a:while(1){k=b;m=b+-4|0;while(1){l=a;b:while(1){j=l;a=k-j|0;d=a>>2;switch(d|0){case 2:{p=5;break a}case 3:{p=7;break a}case 4:{p=8;break a}case 5:{p=9;break a}case 1:case 0:{p=60;break a}default:{}}if((a|0)<124){p=11;break a}i=l+(((d|0)/2|0)<<2)|0;if((a|0)>3996){a=(d|0)/4|0;a=Ez(l,l+(a<<2)|0,i,i+(a<<2)|0,m)|0}else a=nB(l,i,m)|0;h=c[l>>2]|0;f=c[i>>2]|0;g=h;if(zcb(h,f)|0){e=m;break}d=m;while(1){d=d+-4|0;if((l|0)==(d|0))break;e=c[d>>2]|0;if(zcb(e,f)|0){p=37;break b}}a=l+4|0;j=c[m>>2]|0;e=j;if(!(zcb(h,j)|0)){while(1){if((a|0)==(m|0)){p=60;break a}d=c[a>>2]|0;if(zcb(h,d)|0)break;a=a+4|0}c[a>>2]=e;c[m>>2]=d;a=a+4|0}if((a|0)==(m|0)){p=60;break a}d=m;while(1){g=c[l>>2]|0;while(1){j=c[a>>2]|0;f=j;if(zcb(g,j)|0)break;a=a+4|0}do{d=d+-4|0;j=c[d>>2]|0;e=j}while(zcb(g,j)|0);if(a>>>0>=d>>>0)break;c[a>>2]=e;c[d>>2]=f;a=a+4|0}l=a}if((p|0)==37){p=0;c[l>>2]=e;c[d>>2]=g;e=d;a=a+1|0}d=l+4|0;c:do if(d>>>0>>0)while(1){h=c[i>>2]|0;while(1){f=c[d>>2]|0;g=f;if(!(zcb(f,h)|0))break;d=d+4|0}do{e=e+-4|0;q=c[e>>2]|0;f=q}while(!(zcb(q,h)|0));if(d>>>0>e>>>0){e=i;f=d;break c}c[d>>2]=f;c[e>>2]=g;i=(i|0)==(d|0)?e:i;a=a+1|0;d=d+4|0}else{e=i;f=d}while(0);if((f|0)!=(e|0)?(n=c[e>>2]|0,o=c[f>>2]|0,zcb(n,o)|0):0){c[f>>2]=n;c[e>>2]=o;a=a+1|0}if(a|0){p=57;break}d=tq(l,f)|0;a=f+4|0;if(tq(a,b)|0){p=53;break}if(!d){p=57;break}}do if((p|0)==53){p=0;if(d){p=60;break a}else{b=f;a=l}}else if((p|0)==57){p=0;q=f;if((q-j|0)<(k-q|0)){qh(l,f);a=f+4|0;break}else{qh(f+4|0,b);b=f;a=l;break}}while(0)}if((p|0)==5){b=c[m>>2]|0;a=c[l>>2]|0;if(!(zcb(b,a)|0))return;c[l>>2]=b;c[m>>2]=a;return}else if((p|0)==7){nB(l,l+4|0,m)|0;return}else if((p|0)==8){iF(l,l+4|0,l+8|0,m)|0;return}else if((p|0)==9){Ez(l,l+4|0,l+8|0,l+12|0,m)|0;return}else if((p|0)==11){UH(l,b);return}else if((p|0)==60)return}function rh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){f=c[a>>2]|0;if(!(d&3))return;h=a+(0-f)|0;b=f+b|0;if((c[37449]|0)==(h|0)){a=i+4|0;d=c[a>>2]|0;if((d&3|0)!=3)break;c[37446]=b;c[a>>2]=d&-2;c[h+4>>2]=b|1;c[i>>2]=b;return}e=f>>>3;if(f>>>0<256){a=c[h+8>>2]|0;d=c[h+12>>2]|0;if((d|0)==(a|0)){c[37444]=c[37444]&~(1<>2]=d;c[d+8>>2]=a;break}}g=c[h+24>>2]|0;a=c[h+12>>2]|0;do if((a|0)==(h|0)){d=h+16|0;e=d+4|0;a=c[e>>2]|0;if(!a){a=c[d>>2]|0;if(!a){a=0;break}}else d=e;while(1){f=a+20|0;e=c[f>>2]|0;if(!e){f=a+16|0;e=c[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}c[d>>2]=0}else{f=c[h+8>>2]|0;c[f+12>>2]=a;c[a+8>>2]=f}while(0);if(g){d=c[h+28>>2]|0;e=150080+(d<<2)|0;if((c[e>>2]|0)==(h|0)){c[e>>2]=a;if(!a){c[37445]=c[37445]&~(1<>2]|0)==(h|0)?f:g+20|0)>>2]=a;if(!a)break}c[a+24>>2]=g;d=h+16|0;e=c[d>>2]|0;if(e|0){c[a+16>>2]=e;c[e+24>>2]=a}d=c[d+4>>2]|0;if(d){c[a+20>>2]=d;c[d+24>>2]=a}}}else h=a;while(0);a=i+4|0;e=c[a>>2]|0;if(!(e&2)){if((c[37450]|0)==(i|0)){i=(c[37447]|0)+b|0;c[37447]=i;c[37450]=h;c[h+4>>2]=i|1;if((h|0)!=(c[37449]|0))return;c[37449]=0;c[37446]=0;return}if((c[37449]|0)==(i|0)){i=(c[37446]|0)+b|0;c[37446]=i;c[37449]=h;c[h+4>>2]=i|1;c[h+i>>2]=i;return}f=(e&-8)+b|0;d=e>>>3;do if(e>>>0<256){a=c[i+8>>2]|0;b=c[i+12>>2]|0;if((b|0)==(a|0)){c[37444]=c[37444]&~(1<>2]=b;c[b+8>>2]=a;break}}else{g=c[i+24>>2]|0;b=c[i+12>>2]|0;do if((b|0)==(i|0)){a=i+16|0;d=a+4|0;b=c[d>>2]|0;if(!b){b=c[a>>2]|0;if(!b){d=0;break}}else a=d;while(1){e=b+20|0;d=c[e>>2]|0;if(!d){e=b+16|0;d=c[e>>2]|0;if(!d)break;else{b=d;a=e}}else{b=d;a=e}}c[a>>2]=0;d=b}else{d=c[i+8>>2]|0;c[d+12>>2]=b;c[b+8>>2]=d;d=b}while(0);if(g|0){b=c[i+28>>2]|0;a=150080+(b<<2)|0;if((c[a>>2]|0)==(i|0)){c[a>>2]=d;if(!d){c[37445]=c[37445]&~(1<>2]|0)==(i|0)?e:g+20|0)>>2]=d;if(!d)break}c[d+24>>2]=g;b=i+16|0;a=c[b>>2]|0;if(a|0){c[d+16>>2]=a;c[a+24>>2]=d}b=c[b+4>>2]|0;if(b|0){c[d+20>>2]=b;c[b+24>>2]=d}}}while(0);c[h+4>>2]=f|1;c[h+f>>2]=f;if((h|0)==(c[37449]|0)){c[37446]=f;return}}else{c[a>>2]=e&-2;c[h+4>>2]=b|1;c[h+b>>2]=b;f=b}b=f>>>3;if(f>>>0<256){d=149816+(b<<1<<2)|0;a=c[37444]|0;b=1<>2]|0}c[a>>2]=h;c[b+12>>2]=h;c[h+8>>2]=b;c[h+12>>2]=d;return}b=f>>>8;if(b)if(f>>>0>16777215)e=31;else{g=(b+1048320|0)>>>16&8;i=b<>>16&4;i=i<>>16&2;e=14-(d|g|e)+(i<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;b=150080+(e<<2)|0;c[h+28>>2]=e;c[h+20>>2]=0;c[h+16>>2]=0;a=c[37445]|0;d=1<>2]=h;c[h+24>>2]=b;c[h+12>>2]=h;c[h+8>>2]=h;return}b=c[b>>2]|0;a:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(f|0)){b=a;break a}else{e=e<<1;b=a}}c[d>>2]=h;c[h+24>>2]=b;c[h+12>>2]=h;c[h+8>>2]=h;return}while(0);g=b+8|0;i=c[g>>2]|0;c[i+12>>2]=h;c[g>>2]=h;c[h+8>>2]=i;c[h+12>>2]=b;c[h+24>>2]=0;return}function sh(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;x=yb;yb=yb+208|0;i=x+196|0;y=x+184|0;z=x+172|0;u=x+168|0;v=x;s=x+164|0;t=x+160|0;h=c[e+4>>2]|0;jU(y,e,i);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[z+(e<<2)>>2]=0;e=e+1|0}r=xZa(h)|0;q=z+11|0;if((a[q>>0]|0)<0)e=(c[z+8>>2]&2147483647)+-1|0;else e=10;n=0;da(92,z|0,e|0);p=n;n=0;if(p&1){e=sa()|0;P()|0}else{h=(a[q>>0]|0)<0?c[z>>2]|0:z;c[u>>2]=h;c[s>>2]=v;c[t>>2]=0;o=z+4|0;p=z+8|0;m=a[i>>0]|0;i=h;h=b;k=b;while(1){if(!k){b=0;j=1;k=0}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;l=n;n=0;if(l&1){w=27;break}}else e=Qzb(a[e>>0]|0)|0;l=dub(e,-1)|0;h=l?0:h;b=l?0:b;j=l;k=l?0:k}if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;l=n;n=0;if(l&1){w=27;break}}else e=Qzb(a[e>>0]|0)|0;if(!(dub(e,-1)|0))if(j)l=d;else{w=38;break}else w=18}else w=18;if((w|0)==18){w=0;if(j){d=0;w=38;break}else l=0}d=a[q>>0]|0;d=d<<24>>24<0?c[o>>2]|0:d&255;if((c[u>>2]|0)==(i+d|0)){n=0;da(92,z|0,d<<1|0);j=n;n=0;if(j&1){w=29;break}if((a[q>>0]|0)<0)e=(c[p>>2]&2147483647)+-1|0;else e=10;n=0;da(92,z|0,e|0);j=n;n=0;if(j&1){w=29;break}i=(a[q>>0]|0)<0?c[z>>2]|0:z;c[u>>2]=i+d}d=k+12|0;e=c[d>>2]|0;j=k+16|0;if((e|0)==(c[j>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;A=n;n=0;if(A&1){w=27;break}}else e=Qzb(a[e>>0]|0)|0;if(Os(e&255,r,i,u,t,m,y,v,s,31216)|0){d=l;w=38;break}e=c[d>>2]|0;if((e|0)==(c[j>>2]|0)){n=0;S(c[(c[k>>2]|0)+40>>2]|0,k|0)|0;A=n;n=0;if(A&1){w=27;break}}else c[d>>2]=e+1;d=l}if((w|0)==27){e=sa()|0;P()|0}else if((w|0)==29){e=sa()|0;P()|0}else if((w|0)==38){A=a[y+11>>0]|0;e=c[s>>2]|0;if(((A<<24>>24<0?c[y+4>>2]|0:A&255)|0)!=0?(e-v|0)<160:0){t=c[t>>2]|0;A=e+4|0;c[s>>2]=A;c[e>>2]=t;e=A}t=OP(i,c[u>>2]|0,f,r)|0;u=P()|0;A=g;c[A>>2]=t;c[A+4>>2]=u;aC(y,v,e,f);do if(!k){i=1;w=46}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[b>>2]|0)+36>>2]|0,k|0)|0;A=n;n=0;if(A&1)break}else e=Qzb(a[e>>0]|0)|0;i=dub(e,-1)|0;h=i?0:h;w=46}while(0);do if((w|0)==46){if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;A=n;n=0;if(A&1)break}else e=Qzb(a[e>>0]|0)|0;if(!(dub(e,-1)|0)){if(!i)w=53}else w=51}else w=51;if((w|0)==51?i:0)w=53;if((w|0)==53)c[f>>2]=c[f>>2]|2;Chb(z);Chb(y);yb=x;return h|0}while(0);e=sa()|0;P()|0}}Chb(z);Chb(y);Ea(e|0);return 0}function th(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;x=yb;yb=yb+208|0;i=x+196|0;y=x+184|0;z=x+172|0;u=x+168|0;v=x;s=x+164|0;t=x+160|0;h=c[e+4>>2]|0;jU(y,e,i);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[z+(e<<2)>>2]=0;e=e+1|0}r=xZa(h)|0;q=z+11|0;if((a[q>>0]|0)<0)e=(c[z+8>>2]&2147483647)+-1|0;else e=10;n=0;da(92,z|0,e|0);p=n;n=0;if(p&1){e=sa()|0;P()|0}else{h=(a[q>>0]|0)<0?c[z>>2]|0:z;c[u>>2]=h;c[s>>2]=v;c[t>>2]=0;o=z+4|0;p=z+8|0;m=a[i>>0]|0;i=h;h=b;k=b;while(1){if(!k){b=0;j=1;k=0}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;l=n;n=0;if(l&1){w=27;break}}else e=Qzb(a[e>>0]|0)|0;l=dub(e,-1)|0;h=l?0:h;b=l?0:b;j=l;k=l?0:k}if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;l=n;n=0;if(l&1){w=27;break}}else e=Qzb(a[e>>0]|0)|0;if(!(dub(e,-1)|0))if(j)l=d;else{w=38;break}else w=18}else w=18;if((w|0)==18){w=0;if(j){d=0;w=38;break}else l=0}d=a[q>>0]|0;d=d<<24>>24<0?c[o>>2]|0:d&255;if((c[u>>2]|0)==(i+d|0)){n=0;da(92,z|0,d<<1|0);j=n;n=0;if(j&1){w=29;break}if((a[q>>0]|0)<0)e=(c[p>>2]&2147483647)+-1|0;else e=10;n=0;da(92,z|0,e|0);j=n;n=0;if(j&1){w=29;break}i=(a[q>>0]|0)<0?c[z>>2]|0:z;c[u>>2]=i+d}d=k+12|0;e=c[d>>2]|0;j=k+16|0;if((e|0)==(c[j>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;A=n;n=0;if(A&1){w=27;break}}else e=Qzb(a[e>>0]|0)|0;if(Os(e&255,r,i,u,t,m,y,v,s,31216)|0){d=l;w=38;break}e=c[d>>2]|0;if((e|0)==(c[j>>2]|0)){n=0;S(c[(c[k>>2]|0)+40>>2]|0,k|0)|0;A=n;n=0;if(A&1){w=27;break}}else c[d>>2]=e+1;d=l}if((w|0)==27){e=sa()|0;P()|0}else if((w|0)==29){e=sa()|0;P()|0}else if((w|0)==38){A=a[y+11>>0]|0;e=c[s>>2]|0;if(((A<<24>>24<0?c[y+4>>2]|0:A&255)|0)!=0?(e-v|0)<160:0){t=c[t>>2]|0;A=e+4|0;c[s>>2]=A;c[e>>2]=t;e=A}t=eU(i,c[u>>2]|0,f,r)|0;u=P()|0;A=g;c[A>>2]=t;c[A+4>>2]=u;aC(y,v,e,f);do if(!k){i=1;w=46}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[b>>2]|0)+36>>2]|0,k|0)|0;A=n;n=0;if(A&1)break}else e=Qzb(a[e>>0]|0)|0;i=dub(e,-1)|0;h=i?0:h;w=46}while(0);do if((w|0)==46){if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;A=n;n=0;if(A&1)break}else e=Qzb(a[e>>0]|0)|0;if(!(dub(e,-1)|0)){if(!i)w=53}else w=51}else w=51;if((w|0)==51?i:0)w=53;if((w|0)==53)c[f>>2]=c[f>>2]|2;Chb(z);Chb(y);yb=x;return h|0}while(0);e=sa()|0;P()|0}}Chb(z);Chb(y);Ea(e|0);return 0}function uh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;F=yb;yb=yb+48|0;A=F+32|0;G=F+20|0;B=F+16|0;C=F+4|0;D=F;if(!(z5a(d)|0))ma(77693,77561,160,77709);E=a+44|0;t=a+64|0;u=a+68|0;v=a+76|0;w=a+80|0;x=C+4|0;y=C+8|0;z=a+72|0;r=a+84|0;e=0;a=(G_(E,b)|0)+8|0;a:while(1){a=c[a>>2]|0;if(!a){s=60;break}q=c[a+8>>2]|0;c[B>>2]=q;c[A>>2]=q;i=pH(A,4)|0;j=c[u>>2]|0;p=(j|0)==0;b:do if(!p){m=j+-1|0;o=(j&m|0)==0;if(!o)if(i>>>0>>0)e=i;else e=(i>>>0)%(j>>>0)|0;else e=i&m;f=c[(c[t>>2]|0)+(e<<2)>>2]|0;if(!f)s=21;else while(1){f=c[f>>2]|0;if(!f){s=21;break b}h=c[f+4>>2]|0;if((h|0)!=(i|0)){if(!o){if(h>>>0>=j>>>0)h=(h>>>0)%(j>>>0)|0}else h=h&m;if((h|0)!=(e|0)){s=21;break b}}if((c[f+8>>2]|0)==(q|0)){m=e;break b}}}else s=21;while(0);if((s|0)==21){s=0;Uja(G,t,i,B);k=+(((c[v>>2]|0)+1|0)>>>0);l=+g[w>>2];if(l*+(j>>>0)>>0>2){f=(j&j+-1|0)==0;s=25}else{f=0;s=25}}else if(p){f=0;e=0;s=25}else i=e;do if((s|0)==25){s=0;p=e|(f^1)&1;o=~~+I(+(k/l))>>>0;n=0;da(994,t|0,(p>>>0>>0?o:p)|0);p=n;n=0;if(p&1){s=30;break a}e=c[u>>2]|0;f=e+-1|0;if(!(e&f)){j=e;i=i&f;break}if(i>>>0>>0)j=e;else{j=e;i=(i>>>0)%(e>>>0)|0}}while(0);e=c[(c[t>>2]|0)+(i<<2)>>2]|0;if(!e){e=c[G>>2]|0;c[e>>2]=c[z>>2];h=e;c[z>>2]=h;c[(c[t>>2]|0)+(i<<2)>>2]=z;if(c[e>>2]|0){e=c[(c[e>>2]|0)+4>>2]|0;f=j+-1|0;if(j&f){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&f;c[(c[t>>2]|0)+(e<<2)>>2]=h}}else{p=c[G>>2]|0;c[p>>2]=c[e>>2];c[e>>2]=p}c[v>>2]=(c[v>>2]|0)+1;c[G>>2]=0;m=i}$m(E,d,q);c[C>>2]=0;c[x>>2]=0;c[y>>2]=0;h=q+16|0;i=q+12|0;e=0;while(1){c[D>>2]=e;f=c[i>>2]|0;if(e>>>0>=(c[h>>2]|0)-f>>2>>>0)break;f=f+(e<<2)|0;do if((c[f>>2]|0)==(b|0)){c[f>>2]=d;e=c[x>>2]|0;if((e|0)!=(c[y>>2]|0)){p=c[D>>2]|0;c[e>>2]=p;c[x>>2]=(c[x>>2]|0)+4;e=p;break}n=0;da(997,C|0,D|0);p=n;n=0;if(p&1){s=62;break a}e=c[D>>2]|0}while(0);e=e+1|0}e=c[C>>2]|0;j=c[x>>2]|0;if((e|0)==(j|0)){s=51;break}c:do switch(c[q>>2]|0){case 1:{i=c[q+4>>2]|0;while(1){if((e|0)==(j|0))break c;f=c[e>>2]|0;n=0;h=U(118,r|0,d|0)|0;q=n;n=0;if(q&1){s=61;break a}n=0;f=U(119,i|0,f|0)|0;q=n;n=0;if(q&1){s=61;break a}c[f>>2]=h;e=e+4|0}}case 5:case 3:case 2:break;default:{s=58;break a}}while(0);Vob(C);e=m}if((s|0)==30){a=sa()|0;P()|0;e=c[G>>2]|0;c[G>>2]=0;if(!e)Ea(a|0);RCb(e);Ea(a|0)}else if((s|0)==51){n=0;fa(75,77728,77561,177,77709);n=0}else if((s|0)==58){n=0;fa(75,141129,77561,207,77709);n=0}else if((s|0)==60){jha(E,b);yb=F;return}else if((s|0)==61){G=sa()|0;P()|0;Vob(C);Ea(G|0)}else if((s|0)==62){G=sa()|0;P()|0;Vob(C);Ea(G|0)}G=sa()|0;P()|0;Vob(C);Ea(G|0)}function vh(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;v=yb;yb=yb+112|0;p=v+100|0;u=v+96|0;t=v+92|0;f=v+88|0;g=v+76|0;h=v+64|0;w=v+20|0;i=v+16|0;j=v+12|0;l=v+8|0;q=v+4|0;r=v;m=c[d+4>>2]|0;s=Ffb(c[c[d>>2]>>2]|0)|0;Gsb(u,a);Gsb(t,a);t=vJa(c[t>>2]|0,0)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,84040,Zzb(84040)|0);n=0;U(69,h|0,c[m+8>>2]|0)|0;o=n;n=0;do if(o&1){e=sa()|0;P()|0}else{c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];e=0;while(1){if((e|0)==3)break;c[h+(e<<2)>>2]=0;e=e+1|0}n=0;da(230,f|0,g|0);o=n;n=0;if(o&1){e=sa()|0;P()|0;Chb(g);break}o=t+8|0;c[o>>2]=c[f>>2];Chb(g);Chb(h);c[c[d>>2]>>2]=t;uTa(w);c[w+36>>2]=c[o>>2];c[w+40>>2]=u;k=w+24|0;e=0;while(1){c[i>>2]=e;if(e>>>0>=(Icb(m)|0)>>>0){b=20;break}n=0;e=U(84,m|0,e|0)|0;h=n;n=0;if(h&1){b=17;break}n=0;e=U(133,b|0,e|0)|0;h=n;n=0;if(h&1){b=17;break}n=0;d=U(147,k|0,i|0)|0;h=n;n=0;if(h&1){b=17;break}c[d>>2]=e;e=(c[i>>2]|0)+1|0}do if((b|0)==17){e=sa()|0;P()|0}else if((b|0)==20){f=m+20|0;g=m+16|0;i=t+12|0;h=s+8|0;e=0;while(1){c[j>>2]=e;if(e>>>0>=(c[f>>2]|0)-(c[g>>2]|0)>>2>>>0)break;n=0;e=U(147,k|0,j|0)|0;d=n;n=0;if(d&1){b=16;break}e=c[e>>2]|0;n=0;d=U(74,h|0,c[j>>2]|0)|0;x=n;n=0;if(x&1){b=16;break}n=0;e=V(70,c[u>>2]|0,e|0,c[d>>2]|0)|0;x=n;n=0;if(x&1){b=16;break}n=0;da(231,i|0,e|0);x=n;n=0;if(x&1){b=16;break}e=(c[j>>2]|0)+1|0}if((b|0)==16){e=sa()|0;P()|0;break}g=m+32|0;h=m+28|0;f=0;while(1){if(f>>>0>=(c[g>>2]|0)-(c[h>>2]|0)>>2>>>0)break;e=(uob(m)|0)+f|0;c[l>>2]=e;n=0;e=U(148,k|0,l|0)|0;x=n;n=0;if(x&1){b=15;break}e=c[e>>2]|0;n=0;d=U(149,c[(c[h>>2]|0)+(f<<2)>>2]|0,a|0)|0;x=n;n=0;if(x&1){b=15;break}n=0;e=V(70,c[u>>2]|0,e|0,d|0)|0;x=n;n=0;if(x&1){b=15;break}n=0;da(231,i|0,e|0);x=n;n=0;if(x&1){b=15;break}f=f+1|0}if((b|0)==15){e=sa()|0;P()|0;break}n=0;e=U(150,c[m+44>>2]|0,a|0)|0;x=n;n=0;if((!(x&1)?(c[q>>2]=e,n=0,da(1455,w|0,q|0),x=n,n=0,!(x&1)):0)?(n=0,da(231,i|0,c[q>>2]|0),x=n,n=0,!(x&1)):0){x=c[s+4>>2]|0;c[t+4>>2]=x;if(!((x|0)==0?(c[(c[q>>2]|0)+4>>2]|0)==6:0)){UZa(w);yb=v;return}c[r>>2]=c[o>>2];e=c[u>>2]|0;n=0;c[p>>2]=c[r>>2];e=W(9,e|0,p|0,0,0)|0;x=n;n=0;if(!(x&1)?(n=0,da(231,i|0,e|0),x=n,n=0,!(x&1)):0){UZa(w);yb=v;return}}e=sa()|0;P()|0}while(0);UZa(w);x=e;Ea(x|0)}while(0);Chb(h);x=e;Ea(x|0)}function wh(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;y=yb;yb=yb+304|0;i=y+300|0;z=y+288|0;A=y+276|0;v=y+272|0;w=y;u=y+268|0;t=y+264|0;h=c[e+4>>2]|0;r=ogb(e,y+160|0)|0;dU(z,e,i);c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[A+(e<<2)>>2]=0;e=e+1|0}s=xZa(h)|0;q=A+11|0;if((a[q>>0]|0)<0)e=(c[A+8>>2]&2147483647)+-1|0;else e=10;n=0;da(92,A|0,e|0);p=n;n=0;if(p&1){e=sa()|0;P()|0}else{h=(a[q>>0]|0)<0?c[A>>2]|0:A;c[v>>2]=h;c[u>>2]=w;c[t>>2]=0;o=A+4|0;p=A+8|0;m=c[i>>2]|0;i=h;h=b;k=b;while(1){if(!k){b=0;j=1;k=0}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;l=n;n=0;if(l&1){x=27;break}}else e=WCb(c[e>>2]|0)|0;l=Nwb(e)|0;h=l?0:h;b=l?0:b;j=l;k=l?0:k}if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;l=n;n=0;if(l&1){x=27;break}}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0))if(j)l=d;else{x=38;break}else x=18}else x=18;if((x|0)==18){x=0;if(j){d=0;x=38;break}else l=0}d=a[q>>0]|0;d=d<<24>>24<0?c[o>>2]|0:d&255;if((c[v>>2]|0)==(i+d|0)){n=0;da(92,A|0,d<<1|0);j=n;n=0;if(j&1){x=29;break}if((a[q>>0]|0)<0)e=(c[p>>2]&2147483647)+-1|0;else e=10;n=0;da(92,A|0,e|0);j=n;n=0;if(j&1){x=29;break}i=(a[q>>0]|0)<0?c[A>>2]|0:A;c[v>>2]=i+d}d=k+12|0;e=c[d>>2]|0;j=k+16|0;if((e|0)==(c[j>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;B=n;n=0;if(B&1){x=27;break}}else e=WCb(c[e>>2]|0)|0;if(Ps(e,s,i,v,t,m,z,w,u,r)|0){d=l;x=38;break}e=c[d>>2]|0;if((e|0)==(c[j>>2]|0)){n=0;S(c[(c[k>>2]|0)+40>>2]|0,k|0)|0;B=n;n=0;if(B&1){x=27;break}}else c[d>>2]=e+4;d=l}if((x|0)==27){e=sa()|0;P()|0}else if((x|0)==29){e=sa()|0;P()|0}else if((x|0)==38){B=a[z+11>>0]|0;e=c[u>>2]|0;if(((B<<24>>24<0?c[z+4>>2]|0:B&255)|0)!=0?(e-w|0)<160:0){t=c[t>>2]|0;B=e+4|0;c[u>>2]=B;c[e>>2]=t;e=B}u=OP(i,c[v>>2]|0,f,s)|0;v=P()|0;B=g;c[B>>2]=u;c[B+4>>2]=v;aC(z,w,e,f);do if(!k){i=1;x=46}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[b>>2]|0)+36>>2]|0,k|0)|0;B=n;n=0;if(B&1)break}else e=WCb(c[e>>2]|0)|0;i=Nwb(e)|0;h=i?0:h;x=46}while(0);do if((x|0)==46){if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;B=n;n=0;if(B&1)break}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0)){if(!i)x=53}else x=51}else x=51;if((x|0)==51?i:0)x=53;if((x|0)==53)c[f>>2]=c[f>>2]|2;Chb(A);Chb(z);yb=y;return h|0}while(0);e=sa()|0;P()|0}}Chb(A);Chb(z);Ea(e|0);return 0}function xh(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;y=yb;yb=yb+304|0;i=y+300|0;z=y+288|0;A=y+276|0;v=y+272|0;w=y;u=y+268|0;t=y+264|0;h=c[e+4>>2]|0;r=ogb(e,y+160|0)|0;dU(z,e,i);c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[A+(e<<2)>>2]=0;e=e+1|0}s=xZa(h)|0;q=A+11|0;if((a[q>>0]|0)<0)e=(c[A+8>>2]&2147483647)+-1|0;else e=10;n=0;da(92,A|0,e|0);p=n;n=0;if(p&1){e=sa()|0;P()|0}else{h=(a[q>>0]|0)<0?c[A>>2]|0:A;c[v>>2]=h;c[u>>2]=w;c[t>>2]=0;o=A+4|0;p=A+8|0;m=c[i>>2]|0;i=h;h=b;k=b;while(1){if(!k){b=0;j=1;k=0}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;l=n;n=0;if(l&1){x=27;break}}else e=WCb(c[e>>2]|0)|0;l=Nwb(e)|0;h=l?0:h;b=l?0:b;j=l;k=l?0:k}if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;l=n;n=0;if(l&1){x=27;break}}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0))if(j)l=d;else{x=38;break}else x=18}else x=18;if((x|0)==18){x=0;if(j){d=0;x=38;break}else l=0}d=a[q>>0]|0;d=d<<24>>24<0?c[o>>2]|0:d&255;if((c[v>>2]|0)==(i+d|0)){n=0;da(92,A|0,d<<1|0);j=n;n=0;if(j&1){x=29;break}if((a[q>>0]|0)<0)e=(c[p>>2]&2147483647)+-1|0;else e=10;n=0;da(92,A|0,e|0);j=n;n=0;if(j&1){x=29;break}i=(a[q>>0]|0)<0?c[A>>2]|0:A;c[v>>2]=i+d}d=k+12|0;e=c[d>>2]|0;j=k+16|0;if((e|0)==(c[j>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;B=n;n=0;if(B&1){x=27;break}}else e=WCb(c[e>>2]|0)|0;if(Ps(e,s,i,v,t,m,z,w,u,r)|0){d=l;x=38;break}e=c[d>>2]|0;if((e|0)==(c[j>>2]|0)){n=0;S(c[(c[k>>2]|0)+40>>2]|0,k|0)|0;B=n;n=0;if(B&1){x=27;break}}else c[d>>2]=e+4;d=l}if((x|0)==27){e=sa()|0;P()|0}else if((x|0)==29){e=sa()|0;P()|0}else if((x|0)==38){B=a[z+11>>0]|0;e=c[u>>2]|0;if(((B<<24>>24<0?c[z+4>>2]|0:B&255)|0)!=0?(e-w|0)<160:0){t=c[t>>2]|0;B=e+4|0;c[u>>2]=B;c[e>>2]=t;e=B}u=eU(i,c[v>>2]|0,f,s)|0;v=P()|0;B=g;c[B>>2]=u;c[B+4>>2]=v;aC(z,w,e,f);do if(!k){i=1;x=46}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[b>>2]|0)+36>>2]|0,k|0)|0;B=n;n=0;if(B&1)break}else e=WCb(c[e>>2]|0)|0;i=Nwb(e)|0;h=i?0:h;x=46}while(0);do if((x|0)==46){if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;B=n;n=0;if(B&1)break}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0)){if(!i)x=53}else x=51}else x=51;if((x|0)==51?i:0)x=53;if((x|0)==53)c[f>>2]=c[f>>2]|2;Chb(A);Chb(z);yb=y;return h|0}while(0);e=sa()|0;P()|0}}Chb(A);Chb(z);Ea(e|0);return 0}function yh(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;k=yb;yb=yb+16|0;h=k+8|0;e=k+4|0;f=k;c[h>>2]=d;g=b+4|0;d=nfa(c[g>>2]|0,d)|0;c[h>>2]=d;if(!d)ma(106969,106895,439,134087);a:do switch(c[d>>2]|0){case 0:{e=IWa(150452,140107)|0;f=tm(b+8|0,h)|0;IWa(IWa(IWa(Ym(e,c[f>>2]|0)|0,112435)|0,ala(c[(c[h>>2]|0)+4>>2]|0)|0)|0,106988)|0;break}case 1:{if(jxa()|0){IWa(150452,106995)|0;qy(c[(c[h>>2]|0)+4>>2]|0,150452,1,0)|0;SEa(150452,10)|0}e=IWa(150452,140107)|0;f=tm(b+8|0,h)|0;IWa(Ym(e,c[f>>2]|0)|0,106998)|0;Oi(b,c[h>>2]|0);break}case 2:{d=Jcb(d,0)|0;c[e>>2]=d;d=(c[d+16>>2]|0)-(c[d+12>>2]|0)>>2;m=IWa(150452,140107)|0;l=b+8|0;f=tm(l,h)|0;f=IWa(Ym(m,c[f>>2]|0)|0,107002)|0;e=tm(l,e)|0;Ym(f,c[e>>2]|0)|0;e=d+1|0;d=1;while(1){if(d>>>0>=e>>>0)break a;IWa(150452,140151)|0;qH(b,Jcb(c[h>>2]|0,d)|0);d=d+1|0}}case 3:{l=IWa(150452,107011)|0;m=Jcb(c[h>>2]|0,0)|0;c[f>>2]=m;m=tm(b+8|0,f)|0;m=SEa(Ym(l,c[m>>2]|0)|0,32)|0;SEa(Ym(m,c[(c[h>>2]|0)+4>>2]|0)|0,32)|0;qH(b,Jcb(c[h>>2]|0,1)|0);IWa(150452,107021)|0;break}case 4:{m=IWa(150452,140107)|0;l=tm(b+8|0,h)|0;l=IWa(Ym(m,c[l>>2]|0)|0,107027)|0;m=c[h>>2]|0;Ym(l,(c[m+16>>2]|0)-(c[m+12>>2]|0)>>2)|0;break}case 5:{m=Jcb(d,0)|0;f=IWa(150452,140107)|0;l=tm(b+8|0,h)|0;l=SEa(Ym(f,c[l>>2]|0)|0,58)|0;IWa(l,ala(F5(m)|0)|0)|0;IWa(150452,107037)|0;qH(b,m);break}case 6:{IWa(150452,107046)|0;ma(141129,106895,484,134087);break}default:ma(141129,106895,486,134087)}while(0);e=c[h>>2]|0;d=c[e>>2]|0;if(!(!(OBb(d)|0)?!(VBb(d)|0):0))j=18;if(((j|0)==18?(i=c[g>>2]|0,(c[e+8>>2]|0)!=(c[(c[i+4>>2]|0)+8>>2]|0)):0)?lC(i+88|0,h)|0:0){IWa(150452,107056)|0;a[b+28>>0]=1}SEa(150452,10)|0;if(!(jxa()|0)){yb=k;return}e=c[h>>2]|0;d=c[e>>2]|0;if(!(OBb(d)|0)?!(VBb(d)|0):0){yb=k;return}BA(b,e);yb=k;return}function zh(d,e,f,g,h){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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;y=yb;yb=yb+208|0;j=y+196|0;z=y+184|0;A=y+172|0;v=y+168|0;w=y;t=y+164|0;u=y+160|0;i=c[f+4>>2]|0;jU(z,f,j);c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[A+(f<<2)>>2]=0;f=f+1|0}s=xZa(i)|0;r=A+11|0;if((a[r>>0]|0)<0)f=(c[A+8>>2]&2147483647)+-1|0;else f=10;n=0;da(92,A|0,f|0);q=n;n=0;if(q&1){f=sa()|0;P()|0}else{i=(a[r>>0]|0)<0?c[A>>2]|0:A;c[v>>2]=i;c[t>>2]=w;c[u>>2]=0;p=A+4|0;q=A+8|0;o=a[j>>0]|0;j=i;i=d;l=d;while(1){if(!l){d=0;k=1;l=0}else{f=c[l+12>>2]|0;if((f|0)==(c[l+16>>2]|0)){n=0;f=S(c[(c[l>>2]|0)+36>>2]|0,l|0)|0;m=n;n=0;if(m&1){x=27;break}}else f=Qzb(a[f>>0]|0)|0;m=dub(f,-1)|0;i=m?0:i;d=m?0:d;k=m;l=m?0:l}if(e){f=c[e+12>>2]|0;if((f|0)==(c[e+16>>2]|0)){n=0;f=S(c[(c[e>>2]|0)+36>>2]|0,e|0)|0;m=n;n=0;if(m&1){x=27;break}}else f=Qzb(a[f>>0]|0)|0;if(!(dub(f,-1)|0))if(k)m=e;else{x=38;break}else x=18}else x=18;if((x|0)==18){x=0;if(k){e=0;x=38;break}else m=0}e=a[r>>0]|0;e=e<<24>>24<0?c[p>>2]|0:e&255;if((c[v>>2]|0)==(j+e|0)){n=0;da(92,A|0,e<<1|0);k=n;n=0;if(k&1){x=29;break}if((a[r>>0]|0)<0)f=(c[q>>2]&2147483647)+-1|0;else f=10;n=0;da(92,A|0,f|0);k=n;n=0;if(k&1){x=29;break}j=(a[r>>0]|0)<0?c[A>>2]|0:A;c[v>>2]=j+e}e=l+12|0;f=c[e>>2]|0;k=l+16|0;if((f|0)==(c[k>>2]|0)){n=0;f=S(c[(c[l>>2]|0)+36>>2]|0,l|0)|0;B=n;n=0;if(B&1){x=27;break}}else f=Qzb(a[f>>0]|0)|0;if(Os(f&255,s,j,v,u,o,z,w,t,31216)|0){e=m;x=38;break}f=c[e>>2]|0;if((f|0)==(c[k>>2]|0)){n=0;S(c[(c[l>>2]|0)+40>>2]|0,l|0)|0;B=n;n=0;if(B&1){x=27;break}}else c[e>>2]=f+1;e=m}if((x|0)==27){f=sa()|0;P()|0}else if((x|0)==29){f=sa()|0;P()|0}else if((x|0)==38){B=a[z+11>>0]|0;f=c[t>>2]|0;if(((B<<24>>24<0?c[z+4>>2]|0:B&255)|0)!=0?(f-w|0)<160:0){u=c[u>>2]|0;B=f+4|0;c[t>>2]=B;c[f>>2]=u;f=B}B=$M(j,c[v>>2]|0,g,s)|0;b[h>>1]=B;aC(z,w,f,g);do if(!l){j=1;x=46}else{f=c[l+12>>2]|0;if((f|0)==(c[l+16>>2]|0)){n=0;f=S(c[(c[d>>2]|0)+36>>2]|0,l|0)|0;B=n;n=0;if(B&1)break}else f=Qzb(a[f>>0]|0)|0;j=dub(f,-1)|0;i=j?0:i;x=46}while(0);do if((x|0)==46){if(e){f=c[e+12>>2]|0;if((f|0)==(c[e+16>>2]|0)){n=0;f=S(c[(c[e>>2]|0)+36>>2]|0,e|0)|0;B=n;n=0;if(B&1)break}else f=Qzb(a[f>>0]|0)|0;if(!(dub(f,-1)|0)){if(!j)x=53}else x=51}else x=51;if((x|0)==51?j:0)x=53;if((x|0)==53)c[g>>2]=c[g>>2]|2;Chb(A);Chb(z);yb=y;return i|0}while(0);f=sa()|0;P()|0}}Chb(A);Chb(z);Ea(f|0);return 0}function Ah(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;x=yb;yb=yb+208|0;i=x+196|0;y=x+184|0;z=x+172|0;u=x+168|0;v=x;s=x+164|0;t=x+160|0;h=c[e+4>>2]|0;jU(y,e,i);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[z+(e<<2)>>2]=0;e=e+1|0}r=xZa(h)|0;q=z+11|0;if((a[q>>0]|0)<0)e=(c[z+8>>2]&2147483647)+-1|0;else e=10;n=0;da(92,z|0,e|0);p=n;n=0;if(p&1){e=sa()|0;P()|0}else{h=(a[q>>0]|0)<0?c[z>>2]|0:z;c[u>>2]=h;c[s>>2]=v;c[t>>2]=0;o=z+4|0;p=z+8|0;m=a[i>>0]|0;i=h;h=b;k=b;while(1){if(!k){b=0;j=1;k=0}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;l=n;n=0;if(l&1){w=27;break}}else e=Qzb(a[e>>0]|0)|0;l=dub(e,-1)|0;h=l?0:h;b=l?0:b;j=l;k=l?0:k}if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;l=n;n=0;if(l&1){w=27;break}}else e=Qzb(a[e>>0]|0)|0;if(!(dub(e,-1)|0))if(j)l=d;else{w=38;break}else w=18}else w=18;if((w|0)==18){w=0;if(j){d=0;w=38;break}else l=0}d=a[q>>0]|0;d=d<<24>>24<0?c[o>>2]|0:d&255;if((c[u>>2]|0)==(i+d|0)){n=0;da(92,z|0,d<<1|0);j=n;n=0;if(j&1){w=29;break}if((a[q>>0]|0)<0)e=(c[p>>2]&2147483647)+-1|0;else e=10;n=0;da(92,z|0,e|0);j=n;n=0;if(j&1){w=29;break}i=(a[q>>0]|0)<0?c[z>>2]|0:z;c[u>>2]=i+d}d=k+12|0;e=c[d>>2]|0;j=k+16|0;if((e|0)==(c[j>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;A=n;n=0;if(A&1){w=27;break}}else e=Qzb(a[e>>0]|0)|0;if(Os(e&255,r,i,u,t,m,y,v,s,31216)|0){d=l;w=38;break}e=c[d>>2]|0;if((e|0)==(c[j>>2]|0)){n=0;S(c[(c[k>>2]|0)+40>>2]|0,k|0)|0;A=n;n=0;if(A&1){w=27;break}}else c[d>>2]=e+1;d=l}if((w|0)==27){e=sa()|0;P()|0}else if((w|0)==29){e=sa()|0;P()|0}else if((w|0)==38){A=a[y+11>>0]|0;e=c[s>>2]|0;if(((A<<24>>24<0?c[y+4>>2]|0:A&255)|0)!=0?(e-v|0)<160:0){t=c[t>>2]|0;A=e+4|0;c[s>>2]=A;c[e>>2]=t;e=A}A=wO(i,c[u>>2]|0,f,r)|0;c[g>>2]=A;aC(y,v,e,f);do if(!k){i=1;w=46}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[b>>2]|0)+36>>2]|0,k|0)|0;A=n;n=0;if(A&1)break}else e=Qzb(a[e>>0]|0)|0;i=dub(e,-1)|0;h=i?0:h;w=46}while(0);do if((w|0)==46){if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;A=n;n=0;if(A&1)break}else e=Qzb(a[e>>0]|0)|0;if(!(dub(e,-1)|0)){if(!i)w=53}else w=51}else w=51;if((w|0)==51?i:0)w=53;if((w|0)==53)c[f>>2]=c[f>>2]|2;Chb(z);Chb(y);yb=x;return h|0}while(0);e=sa()|0;P()|0}}Chb(z);Chb(y);Ea(e|0);return 0}function Bh(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;B=yb;yb=yb+336|0;u=B+160|0;i=B+328|0;j=B+324|0;C=B+312|0;D=B+300|0;y=B+296|0;z=B;v=B+292|0;w=B+288|0;x=B+333|0;t=B+332|0;aB(C,e,u,i,j);c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[D+(e<<2)>>2]=0;e=e+1|0}s=D+11|0;if((a[s>>0]|0)<0)e=(c[D+8>>2]&2147483647)+-1|0;else e=10;n=0;da(92,D|0,e|0);r=n;n=0;if(r&1){e=sa()|0;P()|0}else{k=(a[s>>0]|0)<0?c[D>>2]|0:D;c[y>>2]=k;c[v>>2]=z;c[w>>2]=0;a[x>>0]=1;a[t>>0]=69;q=D+4|0;r=D+8|0;p=c[i>>2]|0;o=c[j>>2]|0;j=k;i=b;k=b;while(1){if(!k){m=0;b=1;l=0}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;m=n;n=0;if(m&1){A=27;break}}else e=WCb(c[e>>2]|0)|0;l=Nwb(e)|0;i=l?0:i;m=l?0:b;b=l;l=l?0:k}if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;k=n;n=0;if(k&1){A=27;break}}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0)){if(!b){A=38;break}}else A=18}else A=18;if((A|0)==18){A=0;if(b){d=0;A=38;break}else d=0}b=a[s>>0]|0;b=b<<24>>24<0?c[q>>2]|0:b&255;if((c[y>>2]|0)==(j+b|0)){n=0;da(92,D|0,b<<1|0);k=n;n=0;if(k&1){A=29;break}if((a[s>>0]|0)<0)e=(c[r>>2]&2147483647)+-1|0;else e=10;n=0;da(92,D|0,e|0);k=n;n=0;if(k&1){A=29;break}j=(a[s>>0]|0)<0?c[D>>2]|0:D;c[y>>2]=j+b}b=l+12|0;e=c[b>>2]|0;k=l+16|0;if((e|0)==(c[k>>2]|0)){n=0;e=S(c[(c[l>>2]|0)+36>>2]|0,l|0)|0;E=n;n=0;if(E&1){A=27;break}}else e=WCb(c[e>>2]|0)|0;if(qp(e,x,t,j,y,p,o,C,z,v,w,u)|0){A=38;break}e=c[b>>2]|0;if((e|0)==(c[k>>2]|0)){n=0;S(c[(c[l>>2]|0)+40>>2]|0,l|0)|0;E=n;n=0;if(E&1){A=27;break}}else c[b>>2]=e+4;k=l;b=m}if((A|0)==27){e=sa()|0;P()|0}else if((A|0)==29){e=sa()|0;P()|0}else if((A|0)==38){E=a[C+11>>0]|0;e=c[v>>2]|0;if(!((a[x>>0]|0)==0?1:((E<<24>>24<0?c[C+4>>2]|0:E&255)|0)==0)?(e-z|0)<160:0){x=c[w>>2]|0;E=e+4|0;c[v>>2]=E;c[e>>2]=x;e=E}F=+D4(j,c[y>>2]|0,f);g[h>>2]=F;aC(C,z,e,f);do if(!l){j=1;A=46}else{e=c[l+12>>2]|0;if((e|0)==(c[l+16>>2]|0)){n=0;e=S(c[(c[m>>2]|0)+36>>2]|0,l|0)|0;E=n;n=0;if(E&1)break}else e=WCb(c[e>>2]|0)|0;j=Nwb(e)|0;i=j?0:i;A=46}while(0);do if((A|0)==46){if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;E=n;n=0;if(E&1)break}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0)){if(!j)A=53}else A=51}else A=51;if((A|0)==51?j:0)A=53;if((A|0)==53)c[f>>2]=c[f>>2]|2;Chb(D);Chb(C);yb=B;return i|0}while(0);e=sa()|0;P()|0}}Chb(D);Chb(C);Ea(e|0);return 0}function Ch(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;B=yb;yb=yb+336|0;u=B+160|0;i=B+328|0;j=B+324|0;C=B+312|0;D=B+300|0;y=B+296|0;z=B;v=B+292|0;w=B+288|0;x=B+333|0;t=B+332|0;aB(C,e,u,i,j);c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[D+(e<<2)>>2]=0;e=e+1|0}s=D+11|0;if((a[s>>0]|0)<0)e=(c[D+8>>2]&2147483647)+-1|0;else e=10;n=0;da(92,D|0,e|0);r=n;n=0;if(r&1){e=sa()|0;P()|0}else{k=(a[s>>0]|0)<0?c[D>>2]|0:D;c[y>>2]=k;c[v>>2]=z;c[w>>2]=0;a[x>>0]=1;a[t>>0]=69;q=D+4|0;r=D+8|0;p=c[i>>2]|0;o=c[j>>2]|0;j=k;i=b;k=b;while(1){if(!k){m=0;b=1;l=0}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;m=n;n=0;if(m&1){A=27;break}}else e=WCb(c[e>>2]|0)|0;l=Nwb(e)|0;i=l?0:i;m=l?0:b;b=l;l=l?0:k}if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;k=n;n=0;if(k&1){A=27;break}}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0)){if(!b){A=38;break}}else A=18}else A=18;if((A|0)==18){A=0;if(b){d=0;A=38;break}else d=0}b=a[s>>0]|0;b=b<<24>>24<0?c[q>>2]|0:b&255;if((c[y>>2]|0)==(j+b|0)){n=0;da(92,D|0,b<<1|0);k=n;n=0;if(k&1){A=29;break}if((a[s>>0]|0)<0)e=(c[r>>2]&2147483647)+-1|0;else e=10;n=0;da(92,D|0,e|0);k=n;n=0;if(k&1){A=29;break}j=(a[s>>0]|0)<0?c[D>>2]|0:D;c[y>>2]=j+b}b=l+12|0;e=c[b>>2]|0;k=l+16|0;if((e|0)==(c[k>>2]|0)){n=0;e=S(c[(c[l>>2]|0)+36>>2]|0,l|0)|0;E=n;n=0;if(E&1){A=27;break}}else e=WCb(c[e>>2]|0)|0;if(qp(e,x,t,j,y,p,o,C,z,v,w,u)|0){A=38;break}e=c[b>>2]|0;if((e|0)==(c[k>>2]|0)){n=0;S(c[(c[l>>2]|0)+40>>2]|0,l|0)|0;E=n;n=0;if(E&1){A=27;break}}else c[b>>2]=e+4;k=l;b=m}if((A|0)==27){e=sa()|0;P()|0}else if((A|0)==29){e=sa()|0;P()|0}else if((A|0)==38){E=a[C+11>>0]|0;e=c[v>>2]|0;if(!((a[x>>0]|0)==0?1:((E<<24>>24<0?c[C+4>>2]|0:E&255)|0)==0)?(e-z|0)<160:0){x=c[w>>2]|0;E=e+4|0;c[v>>2]=E;c[e>>2]=x;e=E}F=+B4(j,c[y>>2]|0,f);h[g>>3]=F;aC(C,z,e,f);do if(!l){j=1;A=46}else{e=c[l+12>>2]|0;if((e|0)==(c[l+16>>2]|0)){n=0;e=S(c[(c[m>>2]|0)+36>>2]|0,l|0)|0;E=n;n=0;if(E&1)break}else e=WCb(c[e>>2]|0)|0;j=Nwb(e)|0;i=j?0:i;A=46}while(0);do if((A|0)==46){if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;E=n;n=0;if(E&1)break}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0)){if(!j)A=53}else A=51}else A=51;if((A|0)==51?j:0)A=53;if((A|0)==53)c[f>>2]=c[f>>2]|2;Chb(D);Chb(C);yb=B;return i|0}while(0);e=sa()|0;P()|0}}Chb(D);Chb(C);Ea(e|0);return 0}function Dh(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;B=yb;yb=yb+336|0;u=B+160|0;i=B+328|0;j=B+324|0;C=B+312|0;D=B+300|0;y=B+296|0;z=B;v=B+292|0;w=B+288|0;x=B+333|0;t=B+332|0;aB(C,e,u,i,j);c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[D+(e<<2)>>2]=0;e=e+1|0}s=D+11|0;if((a[s>>0]|0)<0)e=(c[D+8>>2]&2147483647)+-1|0;else e=10;n=0;da(92,D|0,e|0);r=n;n=0;if(r&1){e=sa()|0;P()|0}else{k=(a[s>>0]|0)<0?c[D>>2]|0:D;c[y>>2]=k;c[v>>2]=z;c[w>>2]=0;a[x>>0]=1;a[t>>0]=69;q=D+4|0;r=D+8|0;p=c[i>>2]|0;o=c[j>>2]|0;j=k;i=b;k=b;while(1){if(!k){m=0;b=1;l=0}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;m=n;n=0;if(m&1){A=27;break}}else e=WCb(c[e>>2]|0)|0;l=Nwb(e)|0;i=l?0:i;m=l?0:b;b=l;l=l?0:k}if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;k=n;n=0;if(k&1){A=27;break}}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0)){if(!b){A=38;break}}else A=18}else A=18;if((A|0)==18){A=0;if(b){d=0;A=38;break}else d=0}b=a[s>>0]|0;b=b<<24>>24<0?c[q>>2]|0:b&255;if((c[y>>2]|0)==(j+b|0)){n=0;da(92,D|0,b<<1|0);k=n;n=0;if(k&1){A=29;break}if((a[s>>0]|0)<0)e=(c[r>>2]&2147483647)+-1|0;else e=10;n=0;da(92,D|0,e|0);k=n;n=0;if(k&1){A=29;break}j=(a[s>>0]|0)<0?c[D>>2]|0:D;c[y>>2]=j+b}b=l+12|0;e=c[b>>2]|0;k=l+16|0;if((e|0)==(c[k>>2]|0)){n=0;e=S(c[(c[l>>2]|0)+36>>2]|0,l|0)|0;E=n;n=0;if(E&1){A=27;break}}else e=WCb(c[e>>2]|0)|0;if(qp(e,x,t,j,y,p,o,C,z,v,w,u)|0){A=38;break}e=c[b>>2]|0;if((e|0)==(c[k>>2]|0)){n=0;S(c[(c[l>>2]|0)+40>>2]|0,l|0)|0;E=n;n=0;if(E&1){A=27;break}}else c[b>>2]=e+4;k=l;b=m}if((A|0)==27){e=sa()|0;P()|0}else if((A|0)==29){e=sa()|0;P()|0}else if((A|0)==38){E=a[C+11>>0]|0;e=c[v>>2]|0;if(!((a[x>>0]|0)==0?1:((E<<24>>24<0?c[C+4>>2]|0:E&255)|0)==0)?(e-z|0)<160:0){x=c[w>>2]|0;E=e+4|0;c[v>>2]=E;c[e>>2]=x;e=E}F=+E4(j,c[y>>2]|0,f);h[g>>3]=F;aC(C,z,e,f);do if(!l){j=1;A=46}else{e=c[l+12>>2]|0;if((e|0)==(c[l+16>>2]|0)){n=0;e=S(c[(c[m>>2]|0)+36>>2]|0,l|0)|0;E=n;n=0;if(E&1)break}else e=WCb(c[e>>2]|0)|0;j=Nwb(e)|0;i=j?0:i;A=46}while(0);do if((A|0)==46){if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;E=n;n=0;if(E&1)break}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0)){if(!j)A=53}else A=51}else A=51;if((A|0)==51?j:0)A=53;if((A|0)==53)c[f>>2]=c[f>>2]|2;Chb(D);Chb(C);yb=B;return i|0}while(0);e=sa()|0;P()|0}}Chb(D);Chb(C);Ea(e|0);return 0}function Eh(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;x=yb;yb=yb+208|0;i=x+196|0;y=x+184|0;z=x+172|0;u=x+168|0;v=x;s=x+164|0;t=x+160|0;h=c[e+4>>2]|0;jU(y,e,i);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[z+(e<<2)>>2]=0;e=e+1|0}r=xZa(h)|0;q=z+11|0;if((a[q>>0]|0)<0)e=(c[z+8>>2]&2147483647)+-1|0;else e=10;n=0;da(92,z|0,e|0);p=n;n=0;if(p&1){e=sa()|0;P()|0}else{h=(a[q>>0]|0)<0?c[z>>2]|0:z;c[u>>2]=h;c[s>>2]=v;c[t>>2]=0;o=z+4|0;p=z+8|0;m=a[i>>0]|0;i=h;h=b;k=b;while(1){if(!k){b=0;j=1;k=0}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;l=n;n=0;if(l&1){w=27;break}}else e=Qzb(a[e>>0]|0)|0;l=dub(e,-1)|0;h=l?0:h;b=l?0:b;j=l;k=l?0:k}if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;l=n;n=0;if(l&1){w=27;break}}else e=Qzb(a[e>>0]|0)|0;if(!(dub(e,-1)|0))if(j)l=d;else{w=38;break}else w=18}else w=18;if((w|0)==18){w=0;if(j){d=0;w=38;break}else l=0}d=a[q>>0]|0;d=d<<24>>24<0?c[o>>2]|0:d&255;if((c[u>>2]|0)==(i+d|0)){n=0;da(92,z|0,d<<1|0);j=n;n=0;if(j&1){w=29;break}if((a[q>>0]|0)<0)e=(c[p>>2]&2147483647)+-1|0;else e=10;n=0;da(92,z|0,e|0);j=n;n=0;if(j&1){w=29;break}i=(a[q>>0]|0)<0?c[z>>2]|0:z;c[u>>2]=i+d}d=k+12|0;e=c[d>>2]|0;j=k+16|0;if((e|0)==(c[j>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;A=n;n=0;if(A&1){w=27;break}}else e=Qzb(a[e>>0]|0)|0;if(Os(e&255,r,i,u,t,m,y,v,s,31216)|0){d=l;w=38;break}e=c[d>>2]|0;if((e|0)==(c[j>>2]|0)){n=0;S(c[(c[k>>2]|0)+40>>2]|0,k|0)|0;A=n;n=0;if(A&1){w=27;break}}else c[d>>2]=e+1;d=l}if((w|0)==27){e=sa()|0;P()|0}else if((w|0)==29){e=sa()|0;P()|0}else if((w|0)==38){A=a[y+11>>0]|0;e=c[s>>2]|0;if(((A<<24>>24<0?c[y+4>>2]|0:A&255)|0)!=0?(e-v|0)<160:0){t=c[t>>2]|0;A=e+4|0;c[s>>2]=A;c[e>>2]=t;e=A}A=EG(i,c[u>>2]|0,f,r)|0;c[g>>2]=A;aC(y,v,e,f);do if(!k){i=1;w=46}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[b>>2]|0)+36>>2]|0,k|0)|0;A=n;n=0;if(A&1)break}else e=Qzb(a[e>>0]|0)|0;i=dub(e,-1)|0;h=i?0:h;w=46}while(0);do if((w|0)==46){if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;A=n;n=0;if(A&1)break}else e=Qzb(a[e>>0]|0)|0;if(!(dub(e,-1)|0)){if(!i)w=53}else w=51}else w=51;if((w|0)==51?i:0)w=53;if((w|0)==53)c[f>>2]=c[f>>2]|2;Chb(z);Chb(y);yb=x;return h|0}while(0);e=sa()|0;P()|0}}Chb(z);Chb(y);Ea(e|0);return 0}function Fh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=yb;yb=yb+48|0;w=C+44|0;z=C+32|0;D=C+12|0;x=C+8|0;A=C+4|0;B=C;p=a+84|0;PJ(p,b,WCb(c[a+36>>2]|0)|0);Bk(a+44|0,p);c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;c[D+12>>2]=0;g[D+16>>2]=1.0;p=c[a+212>>2]|0;u=a+64|0;q=a+68|0;v=a+76|0;r=a+80|0;s=a+72|0;b=0;d=c[a+208>>2]|0;a:while(1){t=d;if((p|0)==(t|0)){y=44;break}l=c[d>>2]|0;c[x>>2]=l;c[w>>2]=l;o=pH(w,4)|0;j=c[q>>2]|0;m=(j|0)==0;b:do if(!m){f=j+-1|0;k=(j&f|0)==0;if(!k)if(o>>>0>>0)b=o;else b=(o>>>0)%(j>>>0)|0;else b=o&f;d=c[(c[u>>2]|0)+(b<<2)>>2]|0;if(!d)y=19;else while(1){d=c[d>>2]|0;if(!d){y=19;break b}e=c[d+4>>2]|0;if((e|0)!=(o|0)){if(!k){if(e>>>0>=j>>>0)e=(e>>>0)%(j>>>0)|0}else e=e&f;if((e|0)!=(b|0)){y=19;break b}}if((c[d+8>>2]|0)==(l|0))break b}}else y=19;while(0);if((y|0)==19){y=0;n=0;fa(107,z|0,u|0,o|0,x|0);l=n;n=0;if(l&1){y=43;break}h=+(((c[v>>2]|0)+1|0)>>>0);i=+g[r>>2];if(i*+(j>>>0)>>0>2){d=(j&j+-1|0)==0;y=24}else{d=0;y=24}}else if(m){d=0;b=0;y=24}do if((y|0)==24){y=0;m=b|(d^1)&1;l=~~+I(+(h/i))>>>0;n=0;da(994,u|0,(m>>>0>>0?l:m)|0);m=n;n=0;if(m&1){y=29;break a}b=c[q>>2]|0;d=b+-1|0;if(!(b&d)){j=b;b=o&d;break}if(o>>>0>>0){j=b;b=o}else{j=b;b=(o>>>0)%(b>>>0)|0}}while(0);d=c[(c[u>>2]|0)+(b<<2)>>2]|0;if(!d){d=c[z>>2]|0;c[d>>2]=c[s>>2];f=d;c[s>>2]=f;c[(c[u>>2]|0)+(b<<2)>>2]=s;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[u>>2]|0)+(d<<2)>>2]=f}}else{o=c[z>>2]|0;c[o>>2]=c[d>>2];c[d>>2]=o}c[v>>2]=(c[v>>2]|0)+1;c[z>>2]=0}d=t+4|0}if((y|0)==29){b=sa()|0;P()|0;d=c[z>>2]|0;c[z>>2]=0;if(!d){C=b;Pdb(D);Ea(C|0)}RCb(d);C=b;Pdb(D);Ea(C|0)}else if((y|0)==43){C=sa()|0;P()|0;Pdb(D);Ea(C|0)}else if((y|0)==44){b=a+72|0;while(1){if(!(c[v>>2]|0))break;x=c[b>>2]|0;z=c[x+8>>2]|0;_6(u,x)|0;n=0;da(995,a|0,z|0);z=n;n=0;if(z&1){y=42;break}}if((y|0)==42){C=sa()|0;P()|0;Pdb(D);Ea(C|0)}e=c[a+192>>2]|0;f=a+108|0;b=c[a+188>>2]|0;while(1){d=b;if((e|0)==(d|0)){y=56;break}c[A>>2]=c[b>>2];n=0;b=U(117,f|0,A|0)|0;a=n;n=0;if(a&1){y=41;break}b=c[b>>2]|0;c[B>>2]=b;if(oC(D,B)|0){if(!(OBb(c[b>>2]|0)|0)){y=53;break}c[(c[A>>2]|0)+12>>2]=c[b+4>>2]}b=d+4|0}if((y|0)==41){C=sa()|0;P()|0;Pdb(D);Ea(C|0)}else if((y|0)==53){n=0;fa(75,107225,77561,75,108386);n=0;C=sa()|0;P()|0;Pdb(D);Ea(C|0)}else if((y|0)==56){Pdb(D);yb=C;return}}}function Gh(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;w=yb;yb=yb+432|0;v=w+400|0;g=w+368|0;h=w+344|0;i=w+312|0;j=w+288|0;s=w+264|0;t=w+240|0;u=w+216|0;f=w+192|0;k=w+168|0;l=w+144|0;m=w+120|0;n=w+96|0;o=w+72|0;p=w+48|0;q=w+24|0;r=w;nz(g,d,c[e+12>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=w;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];nz(i,d,c[e+16>>2]|0);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=w;return}c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];c[j+20>>2]=c[g+20>>2];do switch(c[e+8>>2]|0){case 0:{g9a(s,h,j);e=v;f=s;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 1:{c8a(t,h,j);e=v;f=t;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 2:{b8a(u,h,j);e=v;f=u;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 3:{A9a(f,h,j);e=v;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 4:{w8a(k,h,j);e=v;f=k;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 5:{v8a(l,h,j);e=v;f=l;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 6:{tab(m,h,j);e=v;f=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 7:{e9a(n,h,j);e=v;f=n;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 8:{c9a(o,h,j);e=v;f=o;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 9:{sab(p,h,j);e=v;f=p;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 10:{d9a(q,h,j);e=v;f=q;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 11:{b9a(r,h,j);e=v;f=r;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}default:ma(141129,96854,626,97346)}while(0)}function Hh(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,o=0,p=0,q=0,r=0;p=yb;yb=yb+16|0;k=p+12|0;j=p+8|0;m=p+4|0;o=p;c[g>>2]=0;anb(k,f);n=0;l=U(66,c[k>>2]|0,151356)|0;r=n;n=0;if(r&1){r=sa()|0;P()|0;XWa(k);Ea(r|0)}XWa(k);do switch(i<<24>>24|0){case 65:case 97:{e7(b,h+24|0,d,c[e>>2]|0,g,l);q=28;break}case 104:case 66:case 98:{y6(b,h+16|0,d,c[e>>2]|0,g,l);q=28;break}case 99:{r=b+8|0;r=Eb[c[(c[r>>2]|0)+12>>2]&511](r)|0;q=a[r+8+3>>0]|0;i=q<<24>>24<0;o=i?c[r>>2]|0:r;q=Lh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,o,o+((i?c[r+4>>2]|0:q&255)<<2)|0)|0;c[d>>2]=q;q=28;break}case 101:case 100:{vha(h+12|0,d,c[e>>2]|0,g,l);q=28;break}case 68:{q=Lh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,31264,31296)|0;c[d>>2]=q;q=28;break}case 70:{q=Lh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,31296,31328)|0;c[d>>2]=q;q=28;break}case 72:{wia(h+8|0,d,c[e>>2]|0,g,l);q=28;break}case 73:{Sga(h+8|0,d,c[e>>2]|0,g,l);q=28;break}case 106:{wha(h+28|0,d,c[e>>2]|0,g,l);q=28;break}case 109:{Pha(h+16|0,d,c[e>>2]|0,g,l);q=28;break}case 77:{jia(h+4|0,d,c[e>>2]|0,g,l);q=28;break}case 116:case 110:{gp(d,c[e>>2]|0,g,l);q=28;break}case 112:{qI(b,h+8|0,d,c[e>>2]|0,g,l);q=28;break}case 114:{q=Lh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,31328,31372)|0;c[d>>2]=q;q=28;break}case 82:{q=Lh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,31376,31396)|0;c[d>>2]=q;q=28;break}case 83:{iia(h,d,c[e>>2]|0,g,l);q=28;break}case 84:{q=Lh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,31408,31440)|0;c[d>>2]=q;q=28;break}case 119:{hia(h+24|0,d,c[e>>2]|0,g,l);q=28;break}case 120:{r=c[(c[b>>2]|0)+20>>2]|0;c[m>>2]=c[d>>2];c[o>>2]=c[e>>2];c[j>>2]=c[m>>2];c[k>>2]=c[o>>2];j=Mb[r&63](b,j,k,f,g,h)|0;break}case 88:{r=b+8|0;r=Eb[c[(c[r>>2]|0)+24>>2]&511](r)|0;q=a[r+8+3>>0]|0;i=q<<24>>24<0;o=i?c[r>>2]|0:r;q=Lh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,o,o+((i?c[r+4>>2]|0:q&255)<<2)|0)|0;c[d>>2]=q;q=28;break}case 121:{lda(h+20|0,d,c[e>>2]|0,g,l);q=28;break}case 89:{kpa(h+20|0,d,c[e>>2]|0,g,l);q=28;break}case 37:{to(d,c[e>>2]|0,g,l);q=28;break}default:{c[g>>2]=c[g>>2]|4;q=28}}while(0);if((q|0)==28)j=c[d>>2]|0;yb=p;return j|0}function Ih(d,e,f,g,h){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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;z=yb;yb=yb+304|0;j=z+300|0;A=z+288|0;B=z+276|0;w=z+272|0;x=z;v=z+268|0;u=z+264|0;i=c[f+4>>2]|0;s=ogb(f,z+160|0)|0;dU(A,f,j);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[B+(f<<2)>>2]=0;f=f+1|0}t=xZa(i)|0;r=B+11|0;if((a[r>>0]|0)<0)f=(c[B+8>>2]&2147483647)+-1|0;else f=10;n=0;da(92,B|0,f|0);q=n;n=0;if(q&1){f=sa()|0;P()|0}else{i=(a[r>>0]|0)<0?c[B>>2]|0:B;c[w>>2]=i;c[v>>2]=x;c[u>>2]=0;p=B+4|0;q=B+8|0;o=c[j>>2]|0;j=i;i=d;l=d;while(1){if(!l){d=0;k=1;l=0}else{f=c[l+12>>2]|0;if((f|0)==(c[l+16>>2]|0)){n=0;f=S(c[(c[l>>2]|0)+36>>2]|0,l|0)|0;m=n;n=0;if(m&1){y=27;break}}else f=WCb(c[f>>2]|0)|0;m=Nwb(f)|0;i=m?0:i;d=m?0:d;k=m;l=m?0:l}if(e){f=c[e+12>>2]|0;if((f|0)==(c[e+16>>2]|0)){n=0;f=S(c[(c[e>>2]|0)+36>>2]|0,e|0)|0;m=n;n=0;if(m&1){y=27;break}}else f=WCb(c[f>>2]|0)|0;if(!(Nwb(f)|0))if(k)m=e;else{y=38;break}else y=18}else y=18;if((y|0)==18){y=0;if(k){e=0;y=38;break}else m=0}e=a[r>>0]|0;e=e<<24>>24<0?c[p>>2]|0:e&255;if((c[w>>2]|0)==(j+e|0)){n=0;da(92,B|0,e<<1|0);k=n;n=0;if(k&1){y=29;break}if((a[r>>0]|0)<0)f=(c[q>>2]&2147483647)+-1|0;else f=10;n=0;da(92,B|0,f|0);k=n;n=0;if(k&1){y=29;break}j=(a[r>>0]|0)<0?c[B>>2]|0:B;c[w>>2]=j+e}e=l+12|0;f=c[e>>2]|0;k=l+16|0;if((f|0)==(c[k>>2]|0)){n=0;f=S(c[(c[l>>2]|0)+36>>2]|0,l|0)|0;C=n;n=0;if(C&1){y=27;break}}else f=WCb(c[f>>2]|0)|0;if(Ps(f,t,j,w,u,o,A,x,v,s)|0){e=m;y=38;break}f=c[e>>2]|0;if((f|0)==(c[k>>2]|0)){n=0;S(c[(c[l>>2]|0)+40>>2]|0,l|0)|0;C=n;n=0;if(C&1){y=27;break}}else c[e>>2]=f+4;e=m}if((y|0)==27){f=sa()|0;P()|0}else if((y|0)==29){f=sa()|0;P()|0}else if((y|0)==38){C=a[A+11>>0]|0;f=c[v>>2]|0;if(((C<<24>>24<0?c[A+4>>2]|0:C&255)|0)!=0?(f-x|0)<160:0){u=c[u>>2]|0;C=f+4|0;c[v>>2]=C;c[f>>2]=u;f=C}C=$M(j,c[w>>2]|0,g,t)|0;b[h>>1]=C;aC(A,x,f,g);do if(!l){j=1;y=46}else{f=c[l+12>>2]|0;if((f|0)==(c[l+16>>2]|0)){n=0;f=S(c[(c[d>>2]|0)+36>>2]|0,l|0)|0;C=n;n=0;if(C&1)break}else f=WCb(c[f>>2]|0)|0;j=Nwb(f)|0;i=j?0:i;y=46}while(0);do if((y|0)==46){if(e){f=c[e+12>>2]|0;if((f|0)==(c[e+16>>2]|0)){n=0;f=S(c[(c[e>>2]|0)+36>>2]|0,e|0)|0;C=n;n=0;if(C&1)break}else f=WCb(c[f>>2]|0)|0;if(!(Nwb(f)|0)){if(!j)y=53}else y=51}else y=51;if((y|0)==51?j:0)y=53;if((y|0)==53)c[g>>2]=c[g>>2]|2;Chb(B);Chb(A);yb=z;return i|0}while(0);f=sa()|0;P()|0}}Chb(B);Chb(A);Ea(f|0);return 0}function Jh(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;y=yb;yb=yb+304|0;i=y+300|0;z=y+288|0;A=y+276|0;v=y+272|0;w=y;u=y+268|0;t=y+264|0;h=c[e+4>>2]|0;r=ogb(e,y+160|0)|0;dU(z,e,i);c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[A+(e<<2)>>2]=0;e=e+1|0}s=xZa(h)|0;q=A+11|0;if((a[q>>0]|0)<0)e=(c[A+8>>2]&2147483647)+-1|0;else e=10;n=0;da(92,A|0,e|0);p=n;n=0;if(p&1){e=sa()|0;P()|0}else{h=(a[q>>0]|0)<0?c[A>>2]|0:A;c[v>>2]=h;c[u>>2]=w;c[t>>2]=0;o=A+4|0;p=A+8|0;m=c[i>>2]|0;i=h;h=b;k=b;while(1){if(!k){b=0;j=1;k=0}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;l=n;n=0;if(l&1){x=27;break}}else e=WCb(c[e>>2]|0)|0;l=Nwb(e)|0;h=l?0:h;b=l?0:b;j=l;k=l?0:k}if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;l=n;n=0;if(l&1){x=27;break}}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0))if(j)l=d;else{x=38;break}else x=18}else x=18;if((x|0)==18){x=0;if(j){d=0;x=38;break}else l=0}d=a[q>>0]|0;d=d<<24>>24<0?c[o>>2]|0:d&255;if((c[v>>2]|0)==(i+d|0)){n=0;da(92,A|0,d<<1|0);j=n;n=0;if(j&1){x=29;break}if((a[q>>0]|0)<0)e=(c[p>>2]&2147483647)+-1|0;else e=10;n=0;da(92,A|0,e|0);j=n;n=0;if(j&1){x=29;break}i=(a[q>>0]|0)<0?c[A>>2]|0:A;c[v>>2]=i+d}d=k+12|0;e=c[d>>2]|0;j=k+16|0;if((e|0)==(c[j>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;B=n;n=0;if(B&1){x=27;break}}else e=WCb(c[e>>2]|0)|0;if(Ps(e,s,i,v,t,m,z,w,u,r)|0){d=l;x=38;break}e=c[d>>2]|0;if((e|0)==(c[j>>2]|0)){n=0;S(c[(c[k>>2]|0)+40>>2]|0,k|0)|0;B=n;n=0;if(B&1){x=27;break}}else c[d>>2]=e+4;d=l}if((x|0)==27){e=sa()|0;P()|0}else if((x|0)==29){e=sa()|0;P()|0}else if((x|0)==38){B=a[z+11>>0]|0;e=c[u>>2]|0;if(((B<<24>>24<0?c[z+4>>2]|0:B&255)|0)!=0?(e-w|0)<160:0){t=c[t>>2]|0;B=e+4|0;c[u>>2]=B;c[e>>2]=t;e=B}B=wO(i,c[v>>2]|0,f,s)|0;c[g>>2]=B;aC(z,w,e,f);do if(!k){i=1;x=46}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[b>>2]|0)+36>>2]|0,k|0)|0;B=n;n=0;if(B&1)break}else e=WCb(c[e>>2]|0)|0;i=Nwb(e)|0;h=i?0:h;x=46}while(0);do if((x|0)==46){if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;B=n;n=0;if(B&1)break}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0)){if(!i)x=53}else x=51}else x=51;if((x|0)==51?i:0)x=53;if((x|0)==53)c[f>>2]=c[f>>2]|2;Chb(A);Chb(z);yb=y;return h|0}while(0);e=sa()|0;P()|0}}Chb(A);Chb(z);Ea(e|0);return 0}function Kh(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;y=yb;yb=yb+304|0;i=y+300|0;z=y+288|0;A=y+276|0;v=y+272|0;w=y;u=y+268|0;t=y+264|0;h=c[e+4>>2]|0;r=ogb(e,y+160|0)|0;dU(z,e,i);c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[A+(e<<2)>>2]=0;e=e+1|0}s=xZa(h)|0;q=A+11|0;if((a[q>>0]|0)<0)e=(c[A+8>>2]&2147483647)+-1|0;else e=10;n=0;da(92,A|0,e|0);p=n;n=0;if(p&1){e=sa()|0;P()|0}else{h=(a[q>>0]|0)<0?c[A>>2]|0:A;c[v>>2]=h;c[u>>2]=w;c[t>>2]=0;o=A+4|0;p=A+8|0;m=c[i>>2]|0;i=h;h=b;k=b;while(1){if(!k){b=0;j=1;k=0}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;l=n;n=0;if(l&1){x=27;break}}else e=WCb(c[e>>2]|0)|0;l=Nwb(e)|0;h=l?0:h;b=l?0:b;j=l;k=l?0:k}if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;l=n;n=0;if(l&1){x=27;break}}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0))if(j)l=d;else{x=38;break}else x=18}else x=18;if((x|0)==18){x=0;if(j){d=0;x=38;break}else l=0}d=a[q>>0]|0;d=d<<24>>24<0?c[o>>2]|0:d&255;if((c[v>>2]|0)==(i+d|0)){n=0;da(92,A|0,d<<1|0);j=n;n=0;if(j&1){x=29;break}if((a[q>>0]|0)<0)e=(c[p>>2]&2147483647)+-1|0;else e=10;n=0;da(92,A|0,e|0);j=n;n=0;if(j&1){x=29;break}i=(a[q>>0]|0)<0?c[A>>2]|0:A;c[v>>2]=i+d}d=k+12|0;e=c[d>>2]|0;j=k+16|0;if((e|0)==(c[j>>2]|0)){n=0;e=S(c[(c[k>>2]|0)+36>>2]|0,k|0)|0;B=n;n=0;if(B&1){x=27;break}}else e=WCb(c[e>>2]|0)|0;if(Ps(e,s,i,v,t,m,z,w,u,r)|0){d=l;x=38;break}e=c[d>>2]|0;if((e|0)==(c[j>>2]|0)){n=0;S(c[(c[k>>2]|0)+40>>2]|0,k|0)|0;B=n;n=0;if(B&1){x=27;break}}else c[d>>2]=e+4;d=l}if((x|0)==27){e=sa()|0;P()|0}else if((x|0)==29){e=sa()|0;P()|0}else if((x|0)==38){B=a[z+11>>0]|0;e=c[u>>2]|0;if(((B<<24>>24<0?c[z+4>>2]|0:B&255)|0)!=0?(e-w|0)<160:0){t=c[t>>2]|0;B=e+4|0;c[u>>2]=B;c[e>>2]=t;e=B}B=EG(i,c[v>>2]|0,f,s)|0;c[g>>2]=B;aC(z,w,e,f);do if(!k){i=1;x=46}else{e=c[k+12>>2]|0;if((e|0)==(c[k+16>>2]|0)){n=0;e=S(c[(c[b>>2]|0)+36>>2]|0,k|0)|0;B=n;n=0;if(B&1)break}else e=WCb(c[e>>2]|0)|0;i=Nwb(e)|0;h=i?0:h;x=46}while(0);do if((x|0)==46){if(d){e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0)){n=0;e=S(c[(c[d>>2]|0)+36>>2]|0,d|0)|0;B=n;n=0;if(B&1)break}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0)){if(!i)x=53}else x=51}else x=51;if((x|0)==51?i:0)x=53;if((x|0)==53)c[f>>2]=c[f>>2]|2;Chb(A);Chb(z);yb=y;return h|0}while(0);e=sa()|0;P()|0}}Chb(A);Chb(z);Ea(e|0);return 0}function Lh(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,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=yb;yb=yb+16|0;q=v+12|0;p=v+8|0;r=v+4|0;s=v;anb(q,e);n=0;t=U(66,c[q>>2]|0,151356)|0;o=n;n=0;if(o&1){v=sa()|0;P()|0;XWa(q);Ea(v|0)}XWa(q);c[f>>2]=0;j=0;a:while(1){if(!((h|0)!=(i|0)&(j|0)==0))break;k=b;if(!b){m=0;o=0;l=1}else{j=c[b+12>>2]|0;if((j|0)==(c[b+16>>2]|0))j=Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0;else j=WCb(c[j>>2]|0)|0;j=Nwb(j)|0;m=j?0:b;o=j?0:b;l=j;k=j?0:k}b=d;if(d){j=c[d+12>>2]|0;if((j|0)==(c[d+16>>2]|0))j=Eb[c[(c[d>>2]|0)+36>>2]&511](d)|0;else j=WCb(c[j>>2]|0)|0;if(!(Nwb(j)|0)){if(!l){u=58;break}}else{b=0;u=14}}else u=14;if((u|0)==14){u=0;if(l){d=0;u=58;break}else d=0}b:do if((Hb[c[(c[t>>2]|0)+52>>2]&255](t,c[h>>2]|0,0)|0)<<24>>24==37){l=h+4|0;if((l|0)==(i|0)){u=58;break a}j=Hb[c[(c[t>>2]|0)+52>>2]&255](t,c[l>>2]|0,0)|0;switch(j<<24>>24){case 48:case 69:{h=h+8|0;if((h|0)==(i|0)){u=58;break a}m=j;j=Hb[c[(c[t>>2]|0)+52>>2]&255](t,c[h>>2]|0,0)|0;h=l;break}default:m=0}o=c[(c[a>>2]|0)+36>>2]|0;c[r>>2]=k;c[s>>2]=b;c[p>>2]=c[r>>2];c[q>>2]=c[s>>2];h=h+8|0;b=Ob[o&15](a,p,q,e,f,g,j,m)|0}else{if(!(Hb[c[(c[t>>2]|0)+12>>2]&255](t,8192,c[h>>2]|0)|0)){j=o+12|0;b=c[j>>2]|0;k=o+16|0;if((b|0)==(c[k>>2]|0))b=Eb[c[(c[o>>2]|0)+36>>2]&511](o)|0;else b=WCb(c[b>>2]|0)|0;l=Gb[c[(c[t>>2]|0)+28>>2]&255](t,b)|0;if((l|0)!=(Gb[c[(c[t>>2]|0)+28>>2]&255](t,c[h>>2]|0)|0)){c[f>>2]=4;b=m;break}b=c[j>>2]|0;if((b|0)==(c[k>>2]|0))Eb[c[(c[o>>2]|0)+40>>2]&511](o)|0;else c[j>>2]=b+4;h=h+4|0;b=m;break}do{h=h+4|0;if((h|0)==(i|0)){h=i;break}}while(Hb[c[(c[t>>2]|0)+12>>2]&255](t,8192,c[h>>2]|0)|0);b=m;k=d;j=o;m=d;while(1){if(!j){o=0;j=1}else{d=c[j+12>>2]|0;if((d|0)==(c[j+16>>2]|0))d=Eb[c[(c[j>>2]|0)+36>>2]&511](j)|0;else d=WCb(c[d>>2]|0)|0;l=Nwb(d)|0;b=l?0:b;o=l?0:j;j=l}if(m){d=c[m+12>>2]|0;if((d|0)==(c[m+16>>2]|0))d=Eb[c[(c[m>>2]|0)+36>>2]&511](m)|0;else d=WCb(c[d>>2]|0)|0;if(!(Nwb(d)|0))if(j)d=k;else{d=k;break b}else{d=0;u=38}}else{d=k;u=38}if((u|0)==38){u=0;if(j)break b;else m=0}k=o+12|0;j=c[k>>2]|0;l=o+16|0;if((j|0)==(c[l>>2]|0))j=Eb[c[(c[o>>2]|0)+36>>2]&511](o)|0;else j=WCb(c[j>>2]|0)|0;if(!(Hb[c[(c[t>>2]|0)+12>>2]&255](t,8192,j)|0))break b;j=c[k>>2]|0;if((j|0)==(c[l>>2]|0))Eb[c[(c[o>>2]|0)+40>>2]&511](o)|0;else c[k>>2]=j+4;k=d;j=o}}while(0);j=c[f>>2]|0}if((u|0)==58){c[f>>2]=4;b=o}if(!b){b=0;j=1}else{h=c[b+12>>2]|0;if((h|0)==(c[b+16>>2]|0))h=Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0;else h=WCb(c[h>>2]|0)|0;j=Nwb(h)|0;b=j?0:b}if(d){h=c[d+12>>2]|0;if((h|0)==(c[d+16>>2]|0))d=Eb[c[(c[d>>2]|0)+36>>2]&511](d)|0;else d=WCb(c[h>>2]|0)|0;if(!(Nwb(d)|0)){if(!j)u=71}else u=69}else u=69;if((u|0)==69?j:0)u=71;if((u|0)==71)c[f>>2]=c[f>>2]|2;yb=v;return b|0}function Mh(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,o=0,p=0,q=0,r=0;p=yb;yb=yb+16|0;k=p+12|0;j=p+8|0;m=p+4|0;o=p;c[g>>2]=0;anb(k,f);n=0;l=U(66,c[k>>2]|0,151324)|0;r=n;n=0;if(r&1){r=sa()|0;P()|0;XWa(k);Ea(r|0)}XWa(k);do switch(i<<24>>24|0){case 65:case 97:{f7(b,h+24|0,d,c[e>>2]|0,g,l);q=28;break}case 104:case 66:case 98:{z6(b,h+16|0,d,c[e>>2]|0,g,l);q=28;break}case 99:{r=b+8|0;r=Eb[c[(c[r>>2]|0)+12>>2]&511](r)|0;q=a[r+11>>0]|0;i=q<<24>>24<0;o=i?c[r>>2]|0:r;q=dh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,o,o+(i?c[r+4>>2]|0:q&255)|0)|0;c[d>>2]=q;q=28;break}case 101:case 100:{xha(h+12|0,d,c[e>>2]|0,g,l);q=28;break}case 68:{q=dh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,137123,137131)|0;c[d>>2]=q;q=28;break}case 70:{q=dh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,137131,137139)|0;c[d>>2]=q;q=28;break}case 72:{xia(h+8|0,d,c[e>>2]|0,g,l);q=28;break}case 73:{Tga(h+8|0,d,c[e>>2]|0,g,l);q=28;break}case 106:{yha(h+28|0,d,c[e>>2]|0,g,l);q=28;break}case 109:{Qha(h+16|0,d,c[e>>2]|0,g,l);q=28;break}case 77:{mia(h+4|0,d,c[e>>2]|0,g,l);q=28;break}case 116:case 110:{Ko(d,c[e>>2]|0,g,l);q=28;break}case 112:{sI(b,h+8|0,d,c[e>>2]|0,g,l);q=28;break}case 114:{q=dh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,137139,137150)|0;c[d>>2]=q;q=28;break}case 82:{q=dh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,137150,137155)|0;c[d>>2]=q;q=28;break}case 83:{lia(h,d,c[e>>2]|0,g,l);q=28;break}case 84:{q=dh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,137155,137163)|0;c[d>>2]=q;q=28;break}case 119:{kia(h+24|0,d,c[e>>2]|0,g,l);q=28;break}case 120:{r=c[(c[b>>2]|0)+20>>2]|0;c[m>>2]=c[d>>2];c[o>>2]=c[e>>2];c[j>>2]=c[m>>2];c[k>>2]=c[o>>2];j=Mb[r&63](b,j,k,f,g,h)|0;break}case 88:{r=b+8|0;r=Eb[c[(c[r>>2]|0)+24>>2]&511](r)|0;q=a[r+11>>0]|0;i=q<<24>>24<0;o=i?c[r>>2]|0:r;q=dh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,o,o+(i?c[r+4>>2]|0:q&255)|0)|0;c[d>>2]=q;q=28;break}case 121:{mda(h+20|0,d,c[e>>2]|0,g,l);q=28;break}case 89:{lpa(h+20|0,d,c[e>>2]|0,g,l);q=28;break}case 37:{co(d,c[e>>2]|0,g,l);q=28;break}default:{c[g>>2]=c[g>>2]|4;q=28}}while(0);if((q|0)==28)j=c[d>>2]|0;yb=p;return j|0}function Nh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=yb;yb=yb+32|0;h=z+28|0;v=z+16|0;u=z+12|0;x=z+8|0;y=z+4|0;w=z;c[u>>2]=b;if(lC(a,u)|0){yb=z;return}c[h>>2]=b;t=pH(h,4)|0;r=a+4|0;k=c[r>>2]|0;q=(k|0)==0;a:do if(!q){l=k+-1|0;m=(k&l|0)==0;if(!m)if(t>>>0>>0)i=t;else i=(t>>>0)%(k>>>0)|0;else i=t&l;h=c[(c[a>>2]|0)+(i<<2)>>2]|0;if(!h)s=18;else while(1){h=c[h>>2]|0;if(!h){s=18;break a}j=c[h+4>>2]|0;if((j|0)!=(t|0)){if(!m){if(j>>>0>=k>>>0)j=(j>>>0)%(k>>>0)|0}else j=j&l;if((j|0)!=(i|0)){s=18;break a}}if((c[h+8>>2]|0)==(b|0))break a}}else{i=0;s=18}while(0);if((s|0)==18){Uja(v,a,t,u);l=a+12|0;o=+(((c[l>>2]|0)+1|0)>>>0);p=+g[a+16>>2];if(p*+(k>>>0)>>0>2){i=(k&k+-1|0)!=0&1;s=22}else{i=1;s=22}}else if(q){h=0;i=1;s=22}do if((s|0)==22){s=h|i;q=~~+I(+(o/p))>>>0;n=0;da(434,a|0,(s>>>0>>0?q:s)|0);s=n;n=0;if(s&1){h=sa()|0;P()|0;i=c[v>>2]|0;c[v>>2]=0;if(!i)Ea(h|0);RCb(i);Ea(h|0)}else{h=c[r>>2]|0;i=h+-1|0;if(!(h&i)){k=h;i=t&i;break}if(t>>>0>>0){k=h;i=t;break}k=h;i=(t>>>0)%(h>>>0)|0;break}}while(0);h=c[(c[a>>2]|0)+(i<<2)>>2]|0;if(!h){t=a+8|0;h=c[v>>2]|0;c[h>>2]=c[t>>2];j=h;c[t>>2]=j;c[(c[a>>2]|0)+(i<<2)>>2]=t;if(c[h>>2]|0){h=c[(c[h>>2]|0)+4>>2]|0;i=k+-1|0;if(k&i){if(h>>>0>=k>>>0)h=(h>>>0)%(k>>>0)|0}else h=h&i;c[(c[a>>2]|0)+(h<<2)>>2]=j}}else{t=c[v>>2]|0;c[t>>2]=c[h>>2];c[h>>2]=t}c[l>>2]=(c[l>>2]|0)+1;c[v>>2]=0}h=wl(e+44|0,u)|0;if((jxa()|0)>1){v=IWa(150452,107704)|0;v=IWa(Wm(v,c[u>>2]|0)|0,140151)|0;IWa(Ym(v,c[h+12>>2]|0)|0,107720)|0}l=e+24|0;m=f+4|0;b=f+8|0;h=h+8|0;while(1){h=c[h>>2]|0;if(!h){s=61;break}c[x>>2]=c[h+8>>2];i=xl(l,x)|0;j=c[i+12>>2]|0;if(j>>>0>=2){s=44;break}do if(!j){i=Efa(d,c[x>>2]|0)|0;if(i|0?Qyb(c[i>>2]|0)|0:0)break;c[y>>2]=0;i=c[m>>2]|0;if(i>>>0<(c[b>>2]|0)>>>0){c[i>>2]=0;c[m>>2]=(c[m>>2]|0)+4}else _M(f,y);if((jxa()|0)>1)IWa(150452,107755)|0}else{i=c[(c[i+8>>2]|0)+8>>2]|0;j=c[i+12>>2]|0;k=j;if((j|0)==(c[x>>2]|0)){Nh(a,i,d,e,f);break}c[w>>2]=k;i=c[m>>2]|0;if((i|0)==(c[b>>2]|0))_M(f,w);else{c[i>>2]=k;c[m>>2]=(c[m>>2]|0)+4}if((jxa()|0)>1)SEa(Wm(IWa(150452,107768)|0,j)|0,10)|0}while(0)}if((s|0)==44)ma(107727,106895,97,107744);else if((s|0)==61){yb=z;return}}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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=yb;yb=yb+48|0;m=q+32|0;p=q+28|0;n=q+24|0;f=q+20|0;h=q+16|0;l=q+8|0;o=q;c[n>>2]=e;if(a[b+24>>0]&1){k=IWa(150620,51576)|0;e=c[37102]|0;c[37102]=e+1;e=IWa(Zm(k,e)|0,139961)|0;BM(mpa(e,c[(c[n>>2]|0)+8>>2]|0)|0);e=c[n>>2]|0}Ef(e);c[f>>2]=c[(c[n>>2]|0)+8>>2];c[m>>2]=c[f>>2];k=uY(Vf(b,m,0)|0)|0;c[p>>2]=k;k=b+40|0;f=c[k>>2]|0;g=b+44|0;e=c[g>>2]|0;while(1){if((e|0)==(f|0))break;j=e+-12|0;Vob(j);e=j}c[g>>2]=f;_4(b+40|0,5);j=b+28|0;c[b+32>>2]=c[j>>2];eva(b+28|0,5);c[(c[j>>2]|0)+16>>2]=0;c[(c[j>>2]|0)+12>>2]=0;c[(c[j>>2]|0)+4>>2]=0;e=0;while(1){f=c[n>>2]|0;if(e>>>0>=(uob(f)|0)>>>0)break;i=qea(f,e)|0;c[h>>2]=i;c[m>>2]=c[h>>2];i=Vf(b,m,1)|0;z7(c[p>>2]|0,i);r=rrb(c[p>>2]|0,3)|0;r=WCb(c[r>>2]|0)|0;f=dWa(i)|0;g=c[37277]|0;i=dWa(i)|0;KJa(r,WCb(mv(f,g,mG(i,Yga(jka(c[n>>2]|0,e)|0)|0)|0)|0)|0)|0;e=e+1|0}h=Ria()|0;r=c[p>>2]|0;i=rrb(r,3)|0;i=K0a(WCb(c[i>>2]|0)|0)|0;r=rrb(r,3)|0;KJa(WCb(c[r>>2]|0)|0,h)|0;c[l>>2]=p;c[l+4>>2]=n;O7(b,c[(c[n>>2]|0)+44>>2]|0);do if(!(pea(c[(c[n>>2]|0)+44>>2]|0)|0)){g=c[n>>2]|0;r=_la(b,c[g+44>>2]|0)|0;e=c[g+12>>2]|0;f=(e|0)==0;if(!r)if(f){r=c[p>>2]|0;eD(r,vQ(b,d,g,c[37043]|0)|0);break}else{Tma(l,vQ(b,d,g,c[37044]|0)|0);break}if(f){e=c[37043]|0;f=g}else{e=Tj(b,e,g)|0;f=c[n>>2]|0}r=c[p>>2]|0;eD(r,vQ(b,d,f,e)|0);if(c[(c[n>>2]|0)+12>>2]|0){Tma(l,dWa(e)|0);z8(c[k>>2]|0,c[(c[n>>2]|0)+12>>2]|0,e)}}else{r=c[p>>2]|0;eD(r,vQ(b,d,c[n>>2]|0,c[37043]|0)|0)}while(0);f=c[n>>2]|0;e=uob(f)|0;while(1){if(e>>>0>=(Icb(f)|0)>>>0)break;r=qea(f,e)|0;c[o>>2]=r;c[m>>2]=c[o>>2];r=Vf(b,m,1)|0;KQ(h,r,un(Yga(jka(c[n>>2]|0,e)|0)|0)|0);e=e+1|0;f=c[n>>2]|0}r=rrb(h,1)|0;if(!(K0a(WCb(c[r>>2]|0)|0)|0)){r=rrb(c[p>>2]|0,3)|0;BK(WCb(c[r>>2]|0)|0,i)}f=c[k>>2]|0;e=c[j>>2]|0;if(((c[f+16>>2]|0)-(c[f+12>>2]|0)>>2|0)!=(c[e+4>>2]|0))ma(51593,51625,902,51648);if(((c[f+40>>2]|0)-(c[f+36>>2]|0)>>2|0)!=(c[e+12>>2]|0))ma(51664,51625,903,51648);if(((c[f+52>>2]|0)-(c[f+48>>2]|0)>>2|0)==(c[e+16>>2]|0)){lFa(b+52|0);yb=q;return c[p>>2]|0}else ma(51696,51625,904,51648);return 0}function Ph(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;g=j+12|0;h=j;if((f+-30&255)>41){i=0;yb=j;return i|0}i=ngb(c[b+4>>2]|0)|0;do switch(f<<24>>24){case 30:{c[i+8>>2]=0;c[i+4>>2]=1;a[i+12>>0]=4;break}case 32:{c[i+8>>2]=0;c[i+4>>2]=1;a[i+12>>0]=1;break}case 33:{c[i+8>>2]=0;c[i+4>>2]=1;a[i+12>>0]=2;break}case 31:{c[i+8>>2]=0;c[i+4>>2]=2;a[i+12>>0]=8;break}case 34:{c[i+8>>2]=0;c[i+4>>2]=2;a[i+12>>0]=1;break}case 35:{c[i+8>>2]=0;c[i+4>>2]=2;a[i+12>>0]=2;break}case 36:{c[i+8>>2]=0;c[i+4>>2]=2;a[i+12>>0]=4;break}case 37:{c[i+8>>2]=1;c[i+4>>2]=1;a[i+12>>0]=4;break}case 39:{c[i+8>>2]=1;c[i+4>>2]=1;a[i+12>>0]=1;break}case 40:{c[i+8>>2]=1;c[i+4>>2]=1;a[i+12>>0]=2;break}case 38:{c[i+8>>2]=1;c[i+4>>2]=2;a[i+12>>0]=8;break}case 41:{c[i+8>>2]=1;c[i+4>>2]=2;a[i+12>>0]=1;break}case 42:{c[i+8>>2]=1;c[i+4>>2]=2;a[i+12>>0]=2;break}case 43:{c[i+8>>2]=1;c[i+4>>2]=2;a[i+12>>0]=4;break}case 44:{c[i+8>>2]=2;c[i+4>>2]=1;a[i+12>>0]=4;break}case 46:{c[i+8>>2]=2;c[i+4>>2]=1;a[i+12>>0]=1;break}case 47:{c[i+8>>2]=2;c[i+4>>2]=1;a[i+12>>0]=2;break}case 45:{c[i+8>>2]=2;c[i+4>>2]=2;a[i+12>>0]=8;break}case 48:{c[i+8>>2]=2;c[i+4>>2]=2;a[i+12>>0]=1;break}case 49:{c[i+8>>2]=2;c[i+4>>2]=2;a[i+12>>0]=2;break}case 50:{c[i+8>>2]=2;c[i+4>>2]=2;a[i+12>>0]=4;break}case 51:{c[i+8>>2]=3;c[i+4>>2]=1;a[i+12>>0]=4;break}case 53:{c[i+8>>2]=3;c[i+4>>2]=1;a[i+12>>0]=1;break}case 54:{c[i+8>>2]=3;c[i+4>>2]=1;a[i+12>>0]=2;break}case 52:{c[i+8>>2]=3;c[i+4>>2]=2;a[i+12>>0]=8;break}case 55:{c[i+8>>2]=3;c[i+4>>2]=2;a[i+12>>0]=1;break}case 56:{c[i+8>>2]=3;c[i+4>>2]=2;a[i+12>>0]=2;break}case 57:{c[i+8>>2]=3;c[i+4>>2]=2;a[i+12>>0]=4;break}case 58:{c[i+8>>2]=4;c[i+4>>2]=1;a[i+12>>0]=4;break}case 60:{c[i+8>>2]=4;c[i+4>>2]=1;a[i+12>>0]=1;break}case 61:{c[i+8>>2]=4;c[i+4>>2]=1;a[i+12>>0]=2;break}case 59:{c[i+8>>2]=4;c[i+4>>2]=2;a[i+12>>0]=8;break}case 62:{c[i+8>>2]=4;c[i+4>>2]=2;a[i+12>>0]=1;break}case 63:{c[i+8>>2]=4;c[i+4>>2]=2;a[i+12>>0]=2;break}case 64:{c[i+8>>2]=4;c[i+4>>2]=2;a[i+12>>0]=4;break}case 65:{c[i+8>>2]=5;c[i+4>>2]=1;a[i+12>>0]=4;break}case 67:{c[i+8>>2]=5;c[i+4>>2]=1;a[i+12>>0]=1;break}case 68:{c[i+8>>2]=5;c[i+4>>2]=1;a[i+12>>0]=2;break}case 66:{c[i+8>>2]=5;c[i+4>>2]=2;a[i+12>>0]=8;break}case 69:{c[i+8>>2]=5;c[i+4>>2]=2;a[i+12>>0]=1;break}case 70:{c[i+8>>2]=5;c[i+4>>2]=2;a[i+12>>0]=2;break}case 71:{c[i+8>>2]=5;c[i+4>>2]=2;a[i+12>>0]=4;break}default:ma(141129,112368,2157,116593)}while(0);if(a[b+12>>0]&1)BM(IWa(150620,112989)|0);hCb(g);EI(b,g,i+16|0);g=WCb(c[g>>2]|0)|0;do if((g|0)!=(d[i+12>>0]|0|0)){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,116613,Zzb(116613)|0);n=0;da(4022,b|0,h|0);g=n;n=0;if(g&1){j=sa()|0;P()|0;Chb(h);Ea(j|0)}else{Chb(h);break}}while(0);h=rl(b)|0;c[i+24>>2]=h;h=rl(b)|0;c[i+20>>2]=h;I5a(i);c[e>>2]=i;i=1;yb=j;return i|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,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=yb;yb=yb+32|0;u=t+12|0;q=t;a:do if(((b|0)!=(d|0)?(a[b>>0]|0)==70:0)?(f=b+1|0,(f|0)!=(d|0)):0){if((a[f>>0]|0)==89){f=b+2|0;if((f|0)==(d|0))break}g=cc(f,d,e)|0;if((g|0)!=(f|0)){c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;T3(u,139929,Zzb(139929)|0);r=e+4|0;o=u+11|0;p=u+4|0;l=q+11|0;m=q+4|0;k=0;f=g;b:while(1){c:while(1){if((f|0)==(d|0)){s=11;break b}switch(a[f>>0]|0){case 69:{s=17;break b}case 118:{f=f+1|0;break}case 82:{h=f+1|0;if((h|0)!=(d|0)?(a[h>>0]|0)==69:0){g=1;f=h;break c}else s=24;break}case 79:{h=f+1|0;if((h|0)!=(d|0)?(a[h>>0]|0)==69:0){g=2;f=h;break c}else s=24;break}default:s=24}d:do if((s|0)==24){s=0;g=((c[r>>2]|0)-(c[e>>2]|0)|0)/24|0;n=0;i=V(127,f|0,d|0,e|0)|0;j=n;n=0;if(j&1){s=27;break b}j=((c[r>>2]|0)-(c[e>>2]|0)|0)/24|0;if((i|0)==(f|0)|(i|0)==(d|0)){s=50;break b}f=g;while(1){if(f>>>0>=j>>>0)break;h=a[o>>0]|0;if((h<<24>>24<0?c[p>>2]|0:h&255)>>>0>1?(n=0,U(216,u|0,140151)|0,h=n,n=0,h&1):0){s=32;break b}n=0;da(4196,q|0,(c[e>>2]|0)+(f*24|0)|0);h=n;n=0;if(h&1){s=36;break b}h=a[l>>0]|0;v=h<<24>>24<0;n=0;V(124,u|0,(v?c[q>>2]|0:q)|0,(v?c[m>>2]|0:h&255)|0)|0;h=n;n=0;if(h&1){s=37;break b}Chb(q);f=f+1|0}f=g;while(1){if(f>>>0>=j>>>0){f=i;break d}h=c[r>>2]|0;g=0;while(1){if((g|0)==-1)break;v=g+-1|0;J2a(h+(v*24|0)|0);g=v}c[r>>2]=h+-24;f=f+1|0}}while(0)}k=g}e:do if((s|0)==11){g=c[r>>2]|0;f=0;while(1){if((f|0)==-1)break;v=f+-1|0;J2a(g+(v*24|0)|0);f=v}c[r>>2]=g+-24;s=50}else if((s|0)==17){g=f+1|0;n=0;U(216,u|0,139927)|0;v=n;n=0;f:do if(!(v&1)){switch(k&3){case 1:{n=0;U(216,u|0,141355)|0;v=n;n=0;if(v&1)break f;break}case 2:{n=0;U(216,u|0,141358)|0;v=n;n=0;if(v&1)break f;break}default:{}}f=c[r>>2]|0;if((c[e>>2]|0)==(f|0)){s=50;break e}n=0;U(216,f+-24|0,139961)|0;v=n;n=0;if(!(v&1)?(v=a[o>>0]|0,e=v<<24>>24<0,n=0,W(42,(c[r>>2]|0)+-12|0,0,(e?c[u>>2]|0:u)|0,(e?c[p>>2]|0:v&255)|0)|0,v=n,n=0,!(v&1)):0){Chb(u);b=g;break a}}while(0);b=sa()|0;P()|0}else if((s|0)==27){b=sa()|0;P()|0}else if((s|0)==32){b=sa()|0;P()|0}else if((s|0)==36){b=sa()|0;P()|0;s=38}else if((s|0)==37){b=sa()|0;P()|0;Chb(q);s=38}while(0);if((s|0)!=38)if((s|0)==50){Chb(u);break}Chb(u);Ea(b|0)}}while(0);yb=t;return b|0}function Rh(a,b){a=a|0;b=b|0;if(!b)ma(112644,134747,85,112649);do switch(c[b>>2]|0){case 1:{Qr(a,b);return}case 2:{dt(a,b);return}case 3:{zy(a,b);return}case 4:{lG(a,b);return}case 5:{wH(a,b);return}case 6:{hA(a,b);return}case 7:{dx(a,b);return}case 8:{q1(a,b);return}case 9:{zR(a,b);return}case 10:{m1(a,b);return}case 11:{P1(a,b);return}case 12:{uR(a,b);return}case 13:{MJ(a,b);return}case 23:{eF(a,b);return}case 24:{aA(a,b);return}case 25:{UD(a,b);return}case 26:{rK(a,b);return}case 27:{kfa(a,b);return}case 28:{g3(a,b);return}case 29:{h3(a,b);return}case 30:{nT(a,b);return}case 31:{s3(a,b);return}case 32:{iT(a,b);return}case 33:{SGa(a,b);return}case 34:{nT(a,b);return}case 35:{nT(a,b);return}case 14:{kY(a,b);return}case 15:{mR(a,b);return}case 16:{zJ(a,b);return}case 17:{zF(a,b);return}case 18:{B2(a,b);return}case 19:{P$(a,b);return}case 20:{DU(a,b);return}case 21:{gea(a,b);return}case 22:{Kca(a,b);return}default:ma(141129,134747,128,112649)}while(0)}function Sh(){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;E=yb;yb=yb+80|0;b=E+68|0;d=E+52|0;f=E+67|0;g=E+48|0;h=E+66|0;i=E+44|0;j=E+65|0;k=E+40|0;l=E+64|0;m=E+36|0;n=E+63|0;o=E+32|0;p=E+62|0;q=E+28|0;r=E+61|0;s=E+24|0;t=E+60|0;u=E+20|0;v=E+59|0;w=E+16|0;x=E+58|0;y=E+12|0;z=E+57|0;A=E+8|0;B=E+56|0;C=E+4|0;D=E;a[b>>0]=0;c[d>>2]=0;e=c[37287]|0;if(e>>>0<(c[37288]|0)>>>0){$4a(e,140218,0,0);b=(c[37287]|0)+40|0;c[37287]=b}else{sA(149144,140218,b,d);b=c[37287]|0}a[f>>0]=1;c[g>>2]=1;if(b>>>0<(c[37288]|0)>>>0){$4a(b,74386,1,1);b=(c[37287]|0)+40|0;c[37287]=b}else{sA(149144,74386,f,g);b=c[37287]|0}a[h>>0]=0;c[i>>2]=0;if(b>>>0<(c[37288]|0)>>>0){$4a(b,74394,0,0);b=(c[37287]|0)+40|0;c[37287]=b}else{sA(149144,74394,h,i);b=c[37287]|0}a[j>>0]=0;c[k>>2]=0;if(b>>>0<(c[37288]|0)>>>0){$4a(b,74400,0,0);b=(c[37287]|0)+40|0;c[37287]=b}else{sA(149144,74400,j,k);b=c[37287]|0}a[l>>0]=0;c[m>>2]=0;if(b>>>0<(c[37288]|0)>>>0){$4a(b,74404,0,0);b=(c[37287]|0)+40|0;c[37287]=b}else{sA(149144,74404,l,m);b=c[37287]|0}a[n>>0]=0;c[o>>2]=0;if(b>>>0<(c[37288]|0)>>>0){$4a(b,74414,0,0);b=(c[37287]|0)+40|0;c[37287]=b}else{sA(149144,74414,n,o);b=c[37287]|0}a[p>>0]=0;c[q>>2]=0;if(b>>>0<(c[37288]|0)>>>0){$4a(b,74424,0,0);b=(c[37287]|0)+40|0;c[37287]=b}else{sA(149144,74424,p,q);b=c[37287]|0}a[r>>0]=0;c[s>>2]=0;if(b>>>0<(c[37288]|0)>>>0){$4a(b,139949,0,0);b=(c[37287]|0)+40|0;c[37287]=b}else{sA(149144,139949,r,s);b=c[37287]|0}a[t>>0]=0;c[u>>2]=0;if(b>>>0<(c[37288]|0)>>>0){$4a(b,140027,0,0);b=(c[37287]|0)+40|0;c[37287]=b}else{sA(149144,140027,t,u);b=c[37287]|0}a[v>>0]=0;c[w>>2]=0;if(b>>>0<(c[37288]|0)>>>0){$4a(b,140074,0,0);b=(c[37287]|0)+40|0;c[37287]=b}else{sA(149144,140074,v,w);b=c[37287]|0}a[x>>0]=1;c[y>>2]=3;if(b>>>0<(c[37288]|0)>>>0){$4a(b,74430,1,3);b=(c[37287]|0)+40|0;c[37287]=b}else{sA(149144,74430,x,y);b=c[37287]|0}a[z>>0]=1;c[A>>2]=0;if(b>>>0<(c[37288]|0)>>>0){$4a(b,139995,1,0);b=(c[37287]|0)+40|0;c[37287]=b}else{sA(149144,139995,z,A);b=c[37287]|0}a[B>>0]=1;c[C>>2]=0;if(b>>>0<(c[37288]|0)>>>0){$4a(b,139997,1,0);c[37287]=(c[37287]|0)+40}else sA(149144,139997,B,C);W$();d=0;while(1){b=c[37286]|0;if(d>>>0>=(((c[37287]|0)-b|0)/40|0)>>>0)break;b=b+(d*40|0)+8|0;while(1){b=c[b>>2]|0;if(!b)break;c[D>>2]=c[b+8>>2];C=Fm((c[37289]|0)+((c[(c[37286]|0)+(d*40|0)+36>>2]|0)*20|0)|0,D)|0;c[C>>2]=d}d=d+1|0}yb=E;return}function Th(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;w=yb;yb=yb+432|0;v=w+400|0;g=w+368|0;h=w+344|0;i=w+312|0;j=w+288|0;s=w+264|0;t=w+240|0;u=w+216|0;f=w+192|0;k=w+168|0;l=w+144|0;m=w+120|0;n=w+96|0;o=w+72|0;p=w+48|0;q=w+24|0;r=w;AB(g,d,c[e+12>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=w;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];AB(i,d,c[e+16>>2]|0);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=w;return}c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];c[j+20>>2]=c[g+20>>2];do switch(c[e+8>>2]|0){case 0:{g9a(s,h,j);e=v;f=s;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 1:{c8a(t,h,j);e=v;f=t;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 2:{b8a(u,h,j);e=v;f=u;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 3:{A9a(f,h,j);e=v;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 4:{w8a(k,h,j);e=v;f=k;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 5:{v8a(l,h,j);e=v;f=l;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 6:{tab(m,h,j);e=v;f=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 7:{e9a(n,h,j);e=v;f=n;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 8:{c9a(o,h,j);e=v;f=o;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 9:{sab(p,h,j);e=v;f=p;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 10:{d9a(q,h,j);e=v;f=q;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}case 11:{b9a(r,h,j);e=v;f=r;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,v);yb=w;return}default:ma(141129,96854,626,97346)}while(0)}function Uh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=yb;yb=yb+80|0;v=A+76|0;z=A+64|0;q=A+60|0;h=A+56|0;i=A+52|0;j=A+48|0;k=A+44|0;l=A+40|0;m=A+36|0;d=A+32|0;e=A+28|0;f=A+24|0;w=A+20|0;y=A+8|0;x=A;Cub(q);do switch(c[b+8>>2]|0){case 67:case 54:{wo(a,b);yb=A;return}case 13:{Ftb(h,c[37172]|0);u=c[h>>2]|0;c[q>>2]=u;break}case 14:{Ftb(i,c[37174]|0);u=c[i>>2]|0;c[q>>2]=u;break}case 38:{Ftb(j,c[37173]|0);u=c[j>>2]|0;c[q>>2]=u;break}case 39:{Ftb(k,c[37175]|0);u=c[k>>2]|0;c[q>>2]=u;break}case 27:{Ftb(l,c[37184]|0);u=c[l>>2]|0;c[q>>2]=u;break}case 28:{Ftb(m,c[37185]|0);u=c[m>>2]|0;c[q>>2]=u;break}case 29:{Ftb(d,c[37186]|0);u=c[d>>2]|0;c[q>>2]=u;break}case 30:{Ftb(e,c[37187]|0);u=c[e>>2]|0;c[q>>2]=u;break}case 31:{Ftb(f,c[37188]|0);u=c[f>>2]|0;c[q>>2]=u;break}default:{yb=A;return}}while(0);i=u;s=a+48|0;r=LAb(q)|0;m=a+52|0;h=c[m>>2]|0;l=(h|0)==0;a:do if(!l){j=h+-1|0;k=(h&j|0)==0;if(!k)if(r>>>0>>0)e=r;else e=(r>>>0)%(h>>>0)|0;else e=r&j;d=c[(c[s>>2]|0)+(e<<2)>>2]|0;if(!d)t=28;else while(1){d=c[d>>2]|0;if(!d){t=28;break a}f=c[d+4>>2]|0;if((f|0)!=(r|0)){if(!k){if(f>>>0>=h>>>0)f=(f>>>0)%(h>>>0)|0}else f=f&j;if((f|0)!=(e|0)){t=28;break a}}if(dub(c[d+8>>2]|0,i)|0)break a}}else{e=0;t=28}while(0);if((t|0)==28){Uja(z,s,r,q);i=a+60|0;o=+(((c[i>>2]|0)+1|0)>>>0);p=+g[a+64>>2];if(p*+(h>>>0)>>0>2){e=(h&h+-1|0)!=0&1;t=32}else{e=1;t=32}}else if(l){d=0;e=1;t=32}do if((t|0)==32){t=d|e;q=~~+I(+(o/p))>>>0;n=0;da(86,s|0,(t>>>0>>0?q:t)|0);t=n;n=0;if(t&1){d=sa()|0;P()|0;e=c[z>>2]|0;c[z>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[m>>2]|0;e=d+-1|0;if(!(d&e)){h=d;e=r&e;break}if(r>>>0>>0){h=d;e=r;break}h=d;e=(r>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[s>>2]|0)+(e<<2)>>2]|0;if(!d){t=a+56|0;d=c[z>>2]|0;c[d>>2]=c[t>>2];f=d;c[t>>2]=f;c[(c[s>>2]|0)+(e<<2)>>2]=t;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=h+-1|0;if(h&e){if(d>>>0>=h>>>0)d=(d>>>0)%(h>>>0)|0}else d=d&e;c[(c[s>>2]|0)+(d<<2)>>2]=f}}else{t=c[z>>2]|0;c[t>>2]=c[d>>2];c[d>>2]=t}c[i>>2]=(c[i>>2]|0)+1;c[z>>2]=0}d=c[a+44>>2]|0;c[w>>2]=u;c[x>>2]=c[b+12>>2];c[x+4>>2]=c[b+16>>2];c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;n=0;da(174,y|0,2);z=n;n=0;if(z&1){A=sa()|0;P()|0;Qcb(y);Ea(A|0)}ssa(y,x,x+8|0);z=c[b+4>>2]|0;d=c[d>>2]|0;n=0;c[v>>2]=c[w>>2];d=W(14,d|0,v|0,y|0,z|0)|0;z=n;n=0;if(z&1){A=sa()|0;P()|0;Vob(y);Ea(A|0)}Pwb(c[a+16>>2]|0,d);Vob(y);yb=A;return}function Vh(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,o=0,p=0,q=0,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=yb;yb=yb+128|0;l=E+96|0;F=E+80|0;G=E+64|0;C=E+48|0;h=E+24|0;g=E;D=d+4|0;if((c[D>>2]|0)!=2){yb=E;return}if(a[d+20>>0]&1)ma(82132,81381,445,113063);iG(F,b,1);n=0;ea(145,G|0,b|0,1);z=n;n=0;if(z&1){G=sa()|0;P()|0;lNa(F);Ea(G|0)}n=0;ea(145,C|0,b|0,1);z=n;n=0;if(z&1){e=sa()|0;P()|0}else{z=b+44|0;e=c[z>>2]|0;n=0;f=S(280,C|0)|0;o=n;n=0;a:do if(!(o&1)?(A=d+24|0,n=0,B=V(70,c[e>>2]|0,f|0,c[A>>2]|0)|0,o=n,n=0,!(o&1)):0){o=d+8|0;do if((a[o>>0]|0)==8){i=c[z>>2]|0;n=0;j=S(280,G|0)|0;m=n;n=0;if(m&1)break a;f=c[z>>2]|0;g=(a[d+9>>0]&1)!=0;h=(WCb(c[d+12>>2]|0)|0)+4|0;n=0;e=S(280,C|0)|0;m=n;n=0;if(m&1)break a;n=0;e=V(71,c[f>>2]|0,e|0,1)|0;m=n;n=0;if(m&1)break a;n=0;e=_(16,c[f>>2]|0,4,g|0,h|0,1,e|0,1)|0;m=n;n=0;if(m&1)break a;n=0;e=V(70,c[i>>2]|0,j|0,e|0)|0;m=n;n=0;if(m&1)break a}else{m=c[z>>2]|0;if(!(a[d+9>>0]&1)){n=0;f=S(280,G|0)|0;k=n;n=0;if(k&1)break a;e=c[z>>2]|0;Bqb(g,0);n=0;k=l;h=k+24|0;do{a[k>>0]=a[g>>0]|0;k=k+1|0;g=g+1|0}while((k|0)<(h|0));e=U(120,e|0,l|0)|0;l=n;n=0;if(l&1)break a;n=0;e=V(70,c[m>>2]|0,f|0,e|0)|0;m=n;n=0;if(m&1)break a;else break}n=0;j=S(280,G|0)|0;k=n;n=0;if(k&1)break a;i=c[z>>2]|0;n=0;e=S(280,F|0)|0;k=n;n=0;if(k&1)break a;n=0;f=V(71,c[i>>2]|0,e|0,1)|0;k=n;n=0;if(k&1)break a;e=c[z>>2]|0;Bqb(h,31);n=0;k=l;g=h;h=k+24|0;do{a[k>>0]=a[g>>0]|0;k=k+1|0;g=g+1|0}while((k|0)<(h|0));e=U(120,e|0,l|0)|0;l=n;n=0;if(l&1)break a;n=0;e=W(8,c[i>>2]|0,12,f|0,e|0)|0;l=n;n=0;if(l&1)break a;n=0;e=V(70,c[m>>2]|0,j|0,e|0)|0;m=n;n=0;if(m&1)break a}while(0);c[D>>2]=1;D=a[o>>0]|0;a[o>>0]=(D&255)<4?D:4;D=WCb(c[d+16>>2]|0)|0;n=0;V(52,d+16|0,(D>>>0<4?D:4)|0,0)|0;D=n;n=0;if((((((((!(D&1)?(p=c[z>>2]|0,n=0,q=S(280,C|0)|0,D=n,n=0,!(D&1)):0)?(n=0,r=V(71,c[p>>2]|0,q|0,1)|0,D=n,n=0,!(D&1)):0)?(c[A>>2]=r,s=c[z>>2]|0,n=0,t=S(280,F|0)|0,D=n,n=0,!(D&1)):0)?(n=0,u=V(70,c[s>>2]|0,t|0,d|0)|0,D=n,n=0,!(D&1)):0)?(v=c[z>>2]|0,n=0,w=S(280,F|0)|0,D=n,n=0,!(D&1)):0)?(n=0,x=V(71,c[v>>2]|0,w|0,1)|0,D=n,n=0,!(D&1)):0)?(n=0,y=Y(25,s|0,B|0,u|0,e|0,x|0)|0,D=n,n=0,!(D&1)):0)?(Pwb(c[b+16>>2]|0,y),n=0,ea(147,b|0,y|0,G|0),D=n,n=0,!(D&1)):0){lNa(C);lNa(G);lNa(F);yb=E;return}}while(0);e=sa()|0;P()|0;lNa(C)}lNa(G);G=e;lNa(F);Ea(G|0)}function Wh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=yb;yb=yb+96|0;k=z+64|0;w=z+44|0;p=z+56|0;q=z+52|0;x=z+48|0;g=z+40|0;j=z;l=z+36|0;s=z+24|0;Ftb(p,c[37153]|0);Zsb(q,108118);c[w>>2]=c[p>>2];c[k>>2]=c[q>>2];w=PZ(f,w,k)|0;if(!w){cqb();n=0;ca(491,108127);q=n;n=0;if(q&1){sa()|0;P()|0;iSa()}else iSa()}h=WBb(e)|0;Gsb(x,f);o=c[x>>2]|0;p=vJa(o,0)|0;q=p+12|0;i=w+8|0;c[g>>2]=c[i>>2];c[k>>2]=c[g>>2];Wla(q,tVa(o,b,M_a(o,k,1)|0)|0);g=T3a(o,b,1)|0;Bqb(j,h);h=k;e=j;f=h+24|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(f|0));m=hIa(o,0,g,D7(x,k)|0)|0;c[l>>2]=c[i>>2];c[k>>2]=c[l>>2];Wla(q,IQa(o,k,m)|0);m=d+44|0;zW(s,c[m>>2]|0);k=c[s+4>>2]|0;j=c[s>>2]|0;while(1){if((j|0)==(k|0))break;l=c[j>>2]|0;n=0;f=S(270,c[l>>2]|0)|0;i=n;n=0;if(i&1){y=37;break}h=f+8|0;i=c[h>>2]|0;if((i|0)!=0?(c[i+4>>2]|0)!=6:0){n=0;e=U(86,o|0,0)|0;i=n;n=0;if(i&1){y=37;break}n=0;g=U(133,d|0,c[(c[h>>2]|0)+4>>2]|0)|0;i=n;n=0;if(i&1){y=37;break}n=0;f=V(70,o|0,g|0,c[h>>2]|0)|0;i=n;n=0;if(i&1){y=37;break}i=e+12|0;n=0;da(231,i|0,f|0);f=n;n=0;if(f&1){y=37;break}n=0;f=V(92,x|0,w|0,b|0)|0;A=n;n=0;if(A&1){y=37;break}n=0;da(231,i|0,f|0);A=n;n=0;if(A&1){y=37;break}n=0;f=V(71,o|0,g|0,c[(c[h>>2]|0)+4>>2]|0)|0;A=n;n=0;if(A&1){y=37;break}n=0;f=U(110,o|0,f|0)|0;A=n;n=0;if(A&1){y=37;break}n=0;da(231,i|0,f|0);A=n;n=0;if(A&1){y=37;break}n=0;ca(517,e|0);A=n;n=0;if(A&1){y=37;break}}else{n=0;e=V(92,x|0,w|0,b|0)|0;A=n;n=0;if(A&1){y=37;break}n=0;e=V(57,o|0,e|0,f|0)|0;A=n;n=0;if(A&1){y=37;break}}c[l>>2]=e;j=j+4|0}if((y|0)==37){A=sa()|0;P()|0;Htb(s);Ea(A|0)}e=c[m>>2]|0;switch(c[e+4>>2]|0){case 0:{n=0;da(231,q|0,e|0);A=n;n=0;if((!(A&1)?(n=0,r=V(92,x|0,w|0,b|0)|0,A=n,n=0,!(A&1)):0)?(n=0,da(231,q|0,r|0),A=n,n=0,!(A&1)):0)y=35;break}case 6:{n=0;da(231,q|0,e|0);A=n;n=0;if(!(A&1))y=35;break}default:{f=d+12|0;n=0;e=U(133,d|0,c[f>>2]|0)|0;A=n;n=0;if((((((!(A&1)?(n=0,t=V(70,o|0,e|0,c[m>>2]|0)|0,A=n,n=0,!(A&1)):0)?(n=0,da(231,q|0,t|0),A=n,n=0,!(A&1)):0)?(n=0,u=V(92,x|0,w|0,b|0)|0,A=n,n=0,!(A&1)):0)?(n=0,da(231,q|0,u|0),A=n,n=0,!(A&1)):0)?(n=0,v=V(71,o|0,e|0,c[f>>2]|0)|0,A=n,n=0,!(A&1)):0)?(n=0,da(231,q|0,v|0),A=n,n=0,!(A&1)):0)y=35}}if((y|0)==35?(n=0,ca(517,p|0),A=n,n=0,!(A&1)):0){c[m>>2]=p;Htb(s);yb=z;return}A=sa()|0;P()|0;Htb(s);Ea(A|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,l=0,m=0,n=0;l=d+4|0;a:while(1){j=b;k=b+-4|0;while(1){b:while(1){i=a;e=j-i|0;f=e>>2;switch(f|0){case 2:{m=5;break a}case 3:{m=7;break a}case 4:{m=8;break a}case 5:{m=9;break a}case 1:case 0:{m=60;break a}default:{}}if((e|0)<124){m=11;break a}h=a+(((f|0)/2|0)<<2)|0;if((e|0)>3996){e=(f|0)/4|0;e=vz(a,a+(e<<2)|0,h,h+(e<<2)|0,k,d)|0}else e=vA(a,h,k,d)|0;if(nx(c[d>>2]|0,c[l>>2]|0,c[a>>2]|0,c[h>>2]|0)|0){f=k;break}f=k;while(1){f=f+-4|0;if((a|0)==(f|0))break;if(nx(c[d>>2]|0,c[l>>2]|0,c[f>>2]|0,c[h>>2]|0)|0){m=37;break b}}e=a+4|0;if(!(nx(c[d>>2]|0,c[l>>2]|0,c[a>>2]|0,c[k>>2]|0)|0)){while(1){if((e|0)==(k|0)){m=60;break a}if(nx(c[d>>2]|0,c[l>>2]|0,c[a>>2]|0,c[e>>2]|0)|0)break;e=e+4|0}i=c[e>>2]|0;c[e>>2]=c[k>>2];c[k>>2]=i;e=e+4|0}if((e|0)==(k|0)){m=60;break a}f=k;while(1){while(1){if(nx(c[d>>2]|0,c[l>>2]|0,c[a>>2]|0,c[e>>2]|0)|0)break;e=e+4|0}do f=f+-4|0;while(nx(c[d>>2]|0,c[l>>2]|0,c[a>>2]|0,c[f>>2]|0)|0);if(e>>>0>=f>>>0)break;i=c[e>>2]|0;c[e>>2]=c[f>>2];c[f>>2]=i;e=e+4|0}a=e}if((m|0)==37){m=0;g=c[a>>2]|0;c[a>>2]=c[f>>2];c[f>>2]=g;e=e+1|0}g=a+4|0;c:do if(g>>>0>>0)while(1){while(1){if(!(nx(c[d>>2]|0,c[l>>2]|0,c[g>>2]|0,c[h>>2]|0)|0))break;g=g+4|0}do f=f+-4|0;while(!(nx(c[d>>2]|0,c[l>>2]|0,c[f>>2]|0,c[h>>2]|0)|0));if(g>>>0>f>>>0){f=h;break c}n=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=n;h=(h|0)==(g|0)?f:h;e=e+1|0;g=g+4|0}else f=h;while(0);if((g|0)!=(f|0)?nx(c[d>>2]|0,c[l>>2]|0,c[f>>2]|0,c[g>>2]|0)|0:0){n=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=n;e=e+1|0}if(e|0){m=57;break}e=fr(a,g,d)|0;f=g+4|0;if(fr(f,b,d)|0){m=53;break}if(!e){m=57;break}a=f}do if((m|0)==53){m=0;if(e){m=60;break a}else b=g}else if((m|0)==57){m=0;n=g;if((n-i|0)<(j-n|0)){Xh(a,g,d);a=g+4|0;break}else{Xh(g+4|0,b,d);b=g;break}}while(0)}if((m|0)==5){if(!(nx(c[d>>2]|0,c[l>>2]|0,c[k>>2]|0,c[a>>2]|0)|0))return;n=c[a>>2]|0;c[a>>2]=c[k>>2];c[k>>2]=n;return}else if((m|0)==7){vA(a,a+4|0,k,d)|0;return}else if((m|0)==8){mF(a,a+4|0,a+8|0,k,d)|0;return}else if((m|0)==9){vz(a,a+4|0,a+8|0,a+12|0,k,d)|0;return}else if((m|0)==11){HI(a,b,d);return}else if((m|0)==60)return}function Yh(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,o=0,p=0,q=0,r=0,s=0,t=0;t=yb;yb=yb+32|0;o=t+20|0;s=t+8|0;j=t;c[o>>2]=d;c[s>>2]=0;p=s+4|0;c[p>>2]=0;k=s+8|0;c[k>>2]=0;l=b+4|0;q=b+20|0;m=b+28|0;f=0;g=0;h=0;e=0;while(1){i=d;if((f|0)==(g|0))d=h;else{n=0;U(165,c[b>>2]|0,c[l>>2]|0)|0;h=n;n=0;if(h&1){r=49;break}n=0;da(2318,b|0,d|0);h=n;n=0;if(h&1){r=49;break}d=c[p>>2]|0;e=d}if((e|0)==(c[k>>2]|0)){n=0;da(222,s|0,o|0);i=n;n=0;if(i&1){r=49;break}}else{c[d>>2]=i;c[p>>2]=(c[p>>2]|0)+4}if(a[q>>0]&1){n=0;d=U(59,c[b>>2]|0,98321)|0;i=n;n=0;if(i&1){r=49;break}n=0;e=S(223,c[(c[o>>2]|0)+4>>2]|0)|0;i=n;n=0;if(i&1){r=49;break}n=0;d=U(59,d|0,e|0)|0;i=n;n=0;if(i&1){r=49;break}n=0;U(59,d|0,126838)|0;i=n;n=0;if(i&1){r=49;break}}n=0;U(62,c[b>>2]|0,40)|0;i=n;n=0;if(i&1){r=49;break}Fmb(j,c[m>>2]|0,c[b>>2]|0);e=c[o>>2]|0;n=0;da(2319,j|0,e|0);i=n;n=0;if(i&1){r=49;break}n=0;ca(535,b|0);i=n;n=0;if(i&1){r=49;break}if(!(WCb(c[e+16>>2]|0)|0))break;d=e+12|0;n=0;f=U(74,d|0,0)|0;i=n;n=0;if(i&1){r=49;break}if(!(OBb(c[c[f>>2]>>2]|0)|0))break;n=0;d=U(74,d|0,0)|0;i=n;n=0;if(i&1){r=49;break}n=0;d=S(231,c[d>>2]|0)|0;i=n;n=0;if(i&1){r=49;break}c[o>>2]=d;e=c[p>>2]|0;f=e;g=c[s>>2]|0;h=e}if((r|0)==49){t=sa()|0;P()|0;Vob(s);Ea(t|0)}f=c[p>>2]|0;k=c[f+-4>>2]|0;d=f;a:while(1){if((d|0)==(c[s>>2]|0))break;e=c[f+-4>>2]|0;c[o>>2]=e;c[p>>2]=f+-4;h=e+16|0;i=(k|0)!=(e|0);j=e+12|0;g=0;while(1){if(g>>>0>=(WCb(c[h>>2]|0)|0)>>>0)break;if(i&(g|0)==0){n=0;ca(536,b|0);m=n;n=0;if(m&1){r=48;break a}if(a[q>>0]&1){n=0;U(59,c[b>>2]|0,98347)|0;m=n;n=0;if(m&1){r=48;break a}n=0;d=U(74,j|0,0)|0;m=n;n=0;if(m&1){r=48;break a}n=0;d=S(231,c[d>>2]|0)|0;m=n;n=0;if(m&1){r=48;break a}d=d+8|0;if(eCb(c[d>>2]|0)|0){n=0;f=U(62,c[b>>2]|0,32)|0;m=n;n=0;if(m&1){r=48;break a}n=0;U(82,f|0,c[d>>2]|0)|0;m=n;n=0;if(m&1){r=48;break a}}}n=0;U(62,c[b>>2]|0,10)|0;m=n;n=0;if(m&1){r=48;break a}}else{n=0;d=U(74,j|0,g|0)|0;m=n;n=0;if(m&1){r=48;break a}n=0;da(2320,b|0,c[d>>2]|0);m=n;n=0;if(m&1){r=48;break a}}g=g+1|0}f=c[p>>2]|0;d=f}if((r|0)==48){t=sa()|0;P()|0;Vob(s);Ea(t|0)}n=0;ca(536,b|0);r=n;n=0;if(!(r&1)){if(!(a[q>>0]&1)){Vob(s);yb=t;return}n=0;U(59,c[b>>2]|0,98347)|0;r=n;n=0;if(!(r&1)){if(!(eCb(c[e+8>>2]|0)|0)){Vob(s);yb=t;return}n=0;d=U(62,c[b>>2]|0,32)|0;r=n;n=0;if(!(r&1)?(n=0,U(82,d|0,c[e+8>>2]|0)|0,r=n,n=0,!(r&1)):0){Vob(s);yb=t;return}}}t=sa()|0;P()|0;Vob(s);Ea(t|0)}function Zh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=yb;yb=yb+304|0;d=o+96|0;e=o+212|0;f=o+72|0;g=o+48|0;h=o+120|0;l=o+24|0;m=o;i=b+16|0;j=c[i>>2]|0;n=c[j+4>>2]|0;j=ffb(j)|0;a:do if(!(Kvb(n)|0)){if(!(yxb(n)|0)){b=0;yb=o;return b|0}}else{k=j+8|0;aO(d,0,n);do if(yda(k,d)|0){d=b+8|0;p=c[d>>2]|0;if(((((p|0)!=(xn(n,9)|0)?(p=c[d>>2]|0,(p|0)!=(xn(n,10)|0)):0)?(p=c[d>>2]|0,(p|0)!=(xn(n,11)|0)):0)?(p=c[d>>2]|0,(p|0)!=(xn(n,13)|0)):0)?(p=c[d>>2]|0,(p|0)!=(xn(n,14)|0)):0){p=c[d>>2]|0;if((p|0)!=(xn(n,3)|0)?(p=c[d>>2]|0,(p|0)!=(xn(n,12)|0)):0)break;p=pob(c[a+40>>2]|0)|0;VA(e,p,c[b+12>>2]|0);p=QGa(e)|0;Fha(e);if(p)break;p=c[i>>2]|0;yb=o;return p|0}p=c[b+12>>2]|0;yb=o;return p|0}while(0);Bqb(f,-1);if(!(yda(k,f)|0)?(Heb(g,-1,-1),!(yda(k,g)|0)):0)f=b+8|0;else{f=b+8|0;p=c[f>>2]|0;if((p|0)==(xn(n,12)|0)){p=c[b+12>>2]|0;yb=o;return p|0}p=c[f>>2]|0;if((p|0)==(xn(n,13)|0)?(p=pob(c[a+40>>2]|0)|0,VA(h,p,c[b+12>>2]|0),p=QGa(h)|0,Fha(h),!p):0){p=c[i>>2]|0;yb=o;return p|0}}p=c[f>>2]|0;if((p|0)!=(xn(n,1)|0)?(p=c[f>>2]|0,(p|0)!=(xn(n,2)|0)):0)break;d=Wsa(k)|0;e=P()|0;b:do if((d|0)<8192){switch(d|0){case 0:break;case 64:if(!e)break b;else break a;default:break a}if((e|0)<65536)switch(e|0){case 512:case 4:break b;default:break a}if((e|0)<8388608)switch(e|0){case 65536:break b;default:break a}if((e|0)<1073741824)switch(e|0){case 8388608:break b;default:break a}else switch(e|0){case 1073741824:break b;default:break a}}else{if((d|0)<1048576){switch(d|0){case 8192:break;default:break a}if(!e)break;else break a}if((d|0)<134217728){switch(d|0){case 1048576:break;default:break a}if(!e)break;else break a}else{switch(d|0){case 134217728:break;default:break a}if(!e)break;else break a}}while(0);aN(l,k);c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];c[k+16>>2]=c[l+16>>2];p=c[f>>2]|0;if((p|0)==(xn(n,1)|0))d=xn(n,2)|0;else d=xn(n,1)|0;c[f>>2]=d;p=b;yb=o;return p|0}while(0);aO(m,1,n);if(!(yda(j+8|0,m)|0)){p=0;yb=o;return p|0}d=b+8|0;p=c[d>>2]|0;if(((p|0)!=(xn(n,3)|0)?(p=c[d>>2]|0,(p|0)!=(xn(n,5)|0)):0)?(p=c[d>>2]|0,(p|0)!=(xn(n,4)|0)):0){p=0;yb=o;return p|0}p=c[b+12>>2]|0;yb=o;return p|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,l=0,m=0,o=0,p=0,q=0,r=0;m=yb;yb=yb+112|0;q=m+88|0;i=m+64|0;j=m+36|0;k=m+48|0;l=m+24|0;o=m+12|0;p=m;a:do if((((d-b|0)>2?(a[b>>0]|0)==99:0)?(a[b+1>>0]|0)==118:0)?(f=e+63|0,r=a[f>>0]|0,a[f>>0]=0,h=b+2|0,g=cc(h,d,e)|0,a[f>>0]=r,!((g|0)==(h|0)|(g|0)==(d|0))):0){if((a[g>>0]|0)!=95){f=ac(g,d,e)|0;if((f|0)==(g|0)){f=b;break}}else{f=g+1|0;if((f|0)==(d|0)){f=b;break}g=a[f>>0]|0;b:do if(g<<24>>24==69){g=e+4|0;d=c[g>>2]|0;if(d>>>0<(c[e+8>>2]|0)>>>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;sia(d);c[g>>2]=(c[g>>2]|0)+24;break}else{DD(e);break}}else while(1){if(g<<24>>24==69)break b;g=ac(f,d,e)|0;if((g|0)==(f|0)|(g|0)==(d|0)){f=b;break a}f=g;g=a[g>>0]|0}while(0);f=f+1|0}h=e+4|0;g=c[h>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0>=2){d6(q,g+-24|0);d=c[h>>2]|0;g=0;while(1){if((g|0)==-1)break;r=g+-1|0;J2a(d+(r*24|0)|0);g=r}c[h>>2]=d+-24;n=0;da(4196,p|0,d+-48|0);r=n;n=0;if(r&1){f=sa()|0;P()|0}else{n=0;V(128,p|0,0,139929)|0;r=n;n=0;if(r&1){f=sa()|0;P()|0}else{c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];g=0;while(1){if((g|0)==3)break;c[p+(g<<2)>>2]=0;g=g+1|0}n=0;U(216,o|0,141093)|0;r=n;n=0;if(r&1){f=sa()|0;P()|0}else{c[l>>2]=c[o>>2];c[l+4>>2]=c[o+4>>2];c[l+8>>2]=c[o+8>>2];g=0;while(1){if((g|0)==3)break;c[o+(g<<2)>>2]=0;g=g+1|0}r=a[q+11>>0]|0;e=r<<24>>24<0;n=0;V(124,l|0,(e?c[q>>2]|0:q)|0,(e?c[q+4>>2]|0:r&255)|0)|0;r=n;n=0;do if(r&1){f=sa()|0;P()|0}else{c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];g=0;while(1){if((g|0)==3)break;c[l+(g<<2)>>2]=0;g=g+1|0}n=0;U(216,k|0,139927)|0;r=n;n=0;if(r&1){f=sa()|0;P()|0;Chb(k);break}c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];g=0;while(1){if((g|0)==3)break;c[k+(g<<2)>>2]=0;g=g+1|0}X6(i,j);RC((c[h>>2]|0)+-24|0,i);J2a(i);Chb(j);Chb(k);Chb(l);Chb(o);Chb(p);Chb(q);break a}while(0);Chb(l)}Chb(o)}Chb(p)}Chb(q);Ea(f|0)}else f=b}else f=b;while(0);yb=m;return f|0}function $h(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,o=0,p=0,q=0,r=0;r=yb;yb=yb+32|0;h=r+16|0;j=r+4|0;k=r;c[h>>2]=d;f=c[d>>2]|0;q=b+48|0;e=c[f>>2]|0;g=d;if(Nyb(e)|0){e=b+52|0;c[e>>2]=c[q>>2];p=(tfb(f)|0)+16|0;if(c[p>>2]|0){beb(b);yb=r;return}d=c[e>>2]|0;if((d|0)==(c[b+56>>2]|0)){_M(q,h);yb=r;return}else{c[d>>2]=g;c[e>>2]=(c[e>>2]|0)+4;yb=r;return}}if(Uxb(e)|0){d=c[q>>2]|0;e=b+52|0;c[e>>2]=d;if((d|0)==(c[b+56>>2]|0)){_M(q,h);yb=r;return}else{c[d>>2]=g;c[e>>2]=(c[e>>2]|0)+4;yb=r;return}}if(VBb(e)|0){f=Tfb(f)|0;if((c[(c[f+8>>2]|0)+4>>2]|0)==6){Wrb(b);yb=r;return}g=f+16|0;if(!(c[g>>2]|0)){beb(b);yb=r;return}h=b+64|0;o=c[h>>2]|0;d=o;if((o|0)==(c[b+60>>2]|0))ma(101628,101296,87,101653);e=d+-12|0;c[j>>2]=0;i=j+4|0;c[i>>2]=0;c[j+8>>2]=0;c[j>>2]=c[e>>2];o=d+-8|0;c[i>>2]=c[o>>2];d=d+-4|0;c[j+8>>2]=c[d>>2];c[d>>2]=0;c[o>>2]=0;c[e>>2]=0;e=c[h>>2]|0;d=0;while(1){if((d|0)==-1)break;o=d+-1|0;Vob(e+(o*12|0)|0);d=o}c[h>>2]=e+-12;if(!((c[(c[f+12>>2]|0)+4>>2]|0)!=0?(c[(c[g>>2]|0)+4>>2]|0)!=0:0))p=22;do if((p|0)==22){n=0;ca(538,j|0);p=n;n=0;if(!(p&1)?(n=0,ca(539,b|0),p=n,n=0,!(p&1)):0)break;r=sa()|0;P()|0;Vob(j);Ea(r|0)}while(0);h=c[i>>2]|0;i=b+52|0;f=b+56|0;d=c[j>>2]|0;while(1){g=d;if((h|0)==(g|0)){p=30;break}d=c[d>>2]|0;c[k>>2]=d;e=c[i>>2]|0;if((e|0)==(c[f>>2]|0)){n=0;da(2763,q|0,k|0);b=n;n=0;if(b&1){p=64;break}}else{c[e>>2]=d;c[i>>2]=(c[i>>2]|0)+4}d=g+4|0}if((p|0)==30){Vob(j);yb=r;return}else if((p|0)==64){r=sa()|0;P()|0;Vob(j);Ea(r|0)}}o=Rqb(f)|0;if(!o){if(Gzb(e)|0){beb(b);yb=r;return}if(aCb(e)|0){yb=r;return}d=Jqb(f)|0;Wrb(b);if(!d){yb=r;return}si(b,d);yb=r;return}k=c[o+8>>2]|0;g=o+12|0;a:do if(eCb(k)|0){l=(c[b+52>>2]|0)-(c[q>>2]|0)>>2;m=b+44|0;j=0;d=0;while(1){if((j|0)==(l|0))break;f=c[q>>2]|0;h=c[f+(j<<2)>>2]|0;i=Qqb(c[h>>2]|0)|0;e=h;if((i|0)!=0?dub(c[i+8>>2]|0,k)|0:0){e=c[i+12>>2]|0;if(!e)Gjb(i);else c[h>>2]=e;a[m>>0]=1;d=d+1|0}else if(!d)d=0;else c[f+(j-d<<2)>>2]=e;j=j+1|0}if(d|0)eva(q,l-d|0);d=o+16|0;while(1){if(!(WCb(c[d>>2]|0)|0))break a;q=cWa(g)|0;if(!(Gzb(c[c[q>>2]>>2]|0)|0))break a;Cka(g,(WCb(c[d>>2]|0)|0)+-1|0);a[m>>0]=1}}else d=o+16|0;while(0);e=WCb(c[d>>2]|0)|0;f=e+-1|0;d=0;while(1){if(d>>>0>=e>>>0){p=63;break}if((d|0)!=(f|0)?(q=uXa(g,d)|0,(c[(c[q>>2]|0)+4>>2]|0)==6):0)break;d=d+1|0}if((p|0)==63){yb=r;return}beb(b);yb=r;return}function ai(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;t=yb;yb=yb+48|0;x=t+44|0;p=t+32|0;u=t+20|0;q=t+16|0;r=t+4|0;v=t;s=b+12|0;if(a[s>>0]&1)BM(IWa(150620,117999)|0);o=IF(b)|0;if(a[s>>0]&1)BM(Ym(IWa(150620,117251)|0,o)|0);m=0;a:while(1){if(m>>>0>=o>>>0){w=54;break}if(a[s>>0]&1)BM(IWa(150620,117257)|0);jFa(x);n=0;d=S(300,b|0)|0;l=n;n=0;if(l&1){w=19;break}if((d|0)!=-32){n=0;da(229,u|0,d|0);l=n;n=0;if(l&1){w=19;break}n=0;U(77,u|0,118017)|0;l=n;n=0;if(l&1){w=21;break}c[p>>2]=c[u>>2];c[p+4>>2]=c[u+4>>2];c[p+8>>2]=c[u+8>>2];d=0;while(1){if((d|0)==3)break;c[u+(d<<2)>>2]=0;d=d+1|0}n=0;da(4022,b|0,p|0);l=n;n=0;if(l&1){w=22;break}Chb(p);Chb(u)}n=0;j=S(301,b|0)|0;l=n;n=0;if(l&1){w=19;break}if(a[s>>0]&1){n=0;d=U(59,150620,118037)|0;l=n;n=0;if(l&1){w=19;break}n=0;d=U(78,d|0,j|0)|0;l=n;n=0;if(l&1){w=19;break}n=0;ca(497,d|0);l=n;n=0;if(l&1){w=19;break}}k=c[x>>2]|0;e=k+8|0;f=k+12|0;g=k+16|0;l=k;d=0;while(1){if(d>>>0>=j>>>0)break;n=0;h=S(302,b|0)|0;i=n;n=0;if(i&1){w=18;break a}c[q>>2]=h;i=c[f>>2]|0;if(i>>>0>=(c[g>>2]|0)>>>0){n=0;da(212,e|0,q|0);i=n;n=0;if(i&1){w=18;break a}}else{c[i>>2]=h;c[f>>2]=(c[f>>2]|0)+4}d=d+1|0}n=0;d=S(301,b|0)|0;j=n;n=0;if(j&1){w=19;break}switch(d|0){case 0:{c[k+4>>2]=0;break}case 1:{w=43;break}default:{c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;w=Zzb(118050)|0;n=0;ea(95,r|0,118050,w|0);w=n;n=0;if(w&1){w=19;break a}n=0;da(4022,b|0,r|0);w=n;n=0;if(w&1){w=42;break a}Chb(r);w=43}}if((w|0)==43){w=0;n=0;d=S(303,b|0)|0;j=n;n=0;if(j&1){w=19;break}c[k+4>>2]=d}d=c[b>>2]|0;n=0;d=S(222,(c[d+4>>2]|0)-(c[d>>2]|0)>>2|0)|0;j=n;n=0;if(j&1){w=19;break}c[k>>2]=d;k=c[b>>2]|0;c[x>>2]=0;c[v>>2]=l;n=0;U(80,k|0,v|0)|0;l=n;n=0;if(l&1){w=50;break}d=c[v>>2]|0;c[v>>2]=0;if(d|0){Xrb(d);RCb(d)}c[x>>2]=0;m=m+1|0}if((w|0)==18){d=sa()|0;P()|0;w=20}else if((w|0)==19){d=sa()|0;P()|0;w=20}else if((w|0)==21){d=sa()|0;P()|0;w=23}else if((w|0)==22){d=sa()|0;P()|0;Chb(p);w=23}else if((w|0)==42){e=sa()|0;P()|0;Chb(r)}else if((w|0)==50){e=sa()|0;P()|0;d=c[v>>2]|0;c[v>>2]=0;if(d){Xrb(d);RCb(d)}}else if((w|0)==54){yb=t;return}if((w|0)==20)e=d;else if((w|0)==23){Chb(u);e=d}d=c[x>>2]|0;c[x>>2]=0;if(!d)Ea(e|0);Xrb(d);RCb(d);Ea(e|0)}function bi(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,o=0,p=0,q=0,r=0,s=0,t=0;t=yb;yb=yb+64|0;o=t+56|0;p=t+48|0;e=t+40|0;k=t+32|0;i=t+24|0;m=t+16|0;s=t+8|0;r=t;c[o>>2]=b;xta(p,a,o);l=c[p>>2]|0;c[l+8>>2]=c[o>>2];d=WCb(c[a+24>>2]|0)|0;b=l+12|0;c[b>>2]=d;n=0;d=S(291,a|0)|0;q=n;n=0;do if(!(q&1)?(n=0,ea(172,c[b>>2]|0,d|0,c[(c[o>>2]|0)+8>>2]|0),q=n,n=0,!(q&1)):0){q=a+40|0;if(!(c[(c[o>>2]|0)+16>>2]|0)){b=p+4|0;i=b}else{c[e>>2]=l;d=e+4|0;j=p+4|0;b=c[j>>2]|0;c[d>>2]=b;if(b|0){h=b+4|0;c[h>>2]=(c[h>>2]|0)+1}g=a+44|0;b=c[g>>2]|0;h=a+48|0;do if(b>>>0<(c[h>>2]|0)>>>0){c[b>>2]=l;c[b+4>>2]=c[d>>2];c[e>>2]=0;c[d>>2]=0;c[g>>2]=(c[g>>2]|0)+8;b=0}else{n=0;da(3024,q|0,e|0);f=n;n=0;if(!(f&1)){b=c[d>>2]|0;break}t=sa()|0;P()|0;OCa(c[d>>2]|0);s=j;s=c[s>>2]|0;OCa(s);Ea(t|0)}while(0);OCa(b);n=0;ea(173,i|0,a|0,(c[o>>2]|0)+16|0);f=n;n=0;if(f&1)break;d=c[i>>2]|0;c[k>>2]=d;e=k+4|0;b=i+4|0;f=c[b>>2]|0;c[e>>2]=f;c[i>>2]=0;c[b>>2]=0;b=c[g>>2]|0;do if(b>>>0<(c[h>>2]|0)>>>0){c[b>>2]=d;c[b+4>>2]=f;c[k>>2]=0;c[e>>2]=0;c[g>>2]=(c[g>>2]|0)+8;b=0}else{n=0;da(3024,q|0,k|0);k=n;n=0;if(!(k&1)){b=c[e>>2]|0;break}t=sa()|0;P()|0;OCa(c[e>>2]|0);OCa(0);s=j;s=c[s>>2]|0;OCa(s);Ea(t|0)}while(0);OCa(b);OCa(0);i=j;b=j}c[m>>2]=l;d=m+4|0;b=c[b>>2]|0;c[d>>2]=b;if(b|0){k=b+4|0;c[k>>2]=(c[k>>2]|0)+1}g=a+44|0;b=c[g>>2]|0;h=a+48|0;do if(b>>>0<(c[h>>2]|0)>>>0){c[b>>2]=l;c[b+4>>2]=c[d>>2];c[m>>2]=0;c[d>>2]=0;c[g>>2]=(c[g>>2]|0)+8;b=0}else{n=0;da(3024,q|0,m|0);m=n;n=0;if(!(m&1)){b=c[d>>2]|0;break}t=sa()|0;P()|0;OCa(c[d>>2]|0);s=i;s=c[s>>2]|0;OCa(s);Ea(t|0)}while(0);OCa(b);n=0;ea(173,r|0,a|0,(c[o>>2]|0)+12|0);o=n;n=0;if(!(o&1)){d=c[r>>2]|0;c[s>>2]=d;e=s+4|0;b=r+4|0;f=c[b>>2]|0;c[e>>2]=f;c[r>>2]=0;c[b>>2]=0;b=c[g>>2]|0;if(b>>>0<(c[h>>2]|0)>>>0){c[b>>2]=d;c[b+4>>2]=f;c[s>>2]=0;c[e>>2]=0;c[g>>2]=(c[g>>2]|0)+8;s=0;OCa(s);OCa(0);s=c[i>>2]|0;OCa(s);yb=t;return}n=0;da(3024,q|0,s|0);s=n;n=0;if(s&1){t=sa()|0;P()|0;OCa(c[e>>2]|0);OCa(0);s=i;s=c[s>>2]|0;OCa(s);Ea(t|0)}else{s=c[e>>2]|0;OCa(s);OCa(0);s=c[i>>2]|0;OCa(s);yb=t;return}}}while(0);t=sa()|0;P()|0;s=p+4|0;s=c[s>>2]|0;OCa(s);Ea(t|0)}function ci(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=yb;yb=yb+48|0;v=u+24|0;i=u+12|0;k=u;l=d+12|0;if(a[l>>0]&1)BM(Zm(IWa(150620,116857)|0,e)|0);f=d+156|0;j=d+152|0;h=(c[f>>2]|0)-(c[j>>2]|0)>>3;do if(h>>>0<(e+1|0)>>>0){c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;D8(i,116873,Zzb(116873)|0);n=0;da(4022,d|0,i|0);s=n;n=0;if(!(s&1)){Chb(i);h=(c[f>>2]|0)-(c[j>>2]|0)>>3;break}v=sa()|0;P()|0;Chb(i);Ea(v|0)}while(0);f=h+-1-e|0;do if(f>>>0>=h>>>0){c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;D8(k,116894,Zzb(116894)|0);n=0;da(4022,d|0,k|0);s=n;n=0;if(!(s&1)){Chb(k);break}v=sa()|0;P()|0;Chb(k);Ea(v|0)}while(0);if(a[l>>0]&1){s=IWa(150620,116916)|0;s=IWa(mpa(s,c[(c[j>>2]|0)+(f<<3)>>2]|0)|0,116929)|0;BM(Zm(s,c[(c[j>>2]|0)+(f<<3)+4>>2]|0)|0)}r=(c[j>>2]|0)+(f<<3)|0;if(a[d+197>>0]&1){d=r;t=d;t=c[t>>2]|0;d=d+4|0;d=c[d>>2]|0;v=b;b=v;c[b>>2]=t;v=v+4|0;c[v>>2]=d;yb=u;return}s=d+164|0;q=LAb(r)|0;p=d+168|0;e=c[p>>2]|0;l=(e|0)==0;a:do if(!l){j=e+-1|0;k=(e&j|0)==0;if(!k)if(q>>>0>>0)h=q;else h=(q>>>0)%(e>>>0)|0;else h=q&j;f=c[(c[s>>2]|0)+(h<<2)>>2]|0;if(f){do{f=c[f>>2]|0;if(!f)break a;i=c[f+4>>2]|0;if((i|0)!=(q|0)){if(!k){if(i>>>0>=e>>>0)i=(i>>>0)%(e>>>0)|0}else i=i&j;if((i|0)!=(h|0))break a}}while(!(dub(c[f+8>>2]|0,c[r>>2]|0)|0));d=r;t=d;t=c[t>>2]|0;d=d+4|0;d=c[d>>2]|0;v=b;b=v;c[b>>2]=t;v=v+4|0;c[v>>2]=d;yb=u;return}}else h=0;while(0);Uja(v,s,q,r);j=d+176|0;m=+(((c[j>>2]|0)+1|0)>>>0);o=+g[d+180>>2];if(o*+(e>>>0)>>0>2){h=(e&e+-1|0)!=0&1;t=34}else{h=1;t=34}}else if(l){f=0;h=1;t=34}do if((t|0)==34){t=f|h;l=~~+I(+(m/o))>>>0;n=0;da(86,s|0,(t>>>0>>0?l:t)|0);t=n;n=0;if(t&1){f=sa()|0;P()|0;h=c[v>>2]|0;c[v>>2]=0;if(!h)Ea(f|0);RCb(h);Ea(f|0)}else{f=c[p>>2]|0;h=f+-1|0;if(!(f&h)){e=f;h=q&h;break}if(q>>>0>>0){e=f;h=q;break}e=f;h=(q>>>0)%(f>>>0)|0;break}}while(0);f=c[(c[s>>2]|0)+(h<<2)>>2]|0;if(!f){d=d+172|0;f=c[v>>2]|0;c[f>>2]=c[d>>2];i=f;c[d>>2]=i;c[(c[s>>2]|0)+(h<<2)>>2]=d;if(c[f>>2]|0){f=c[(c[f>>2]|0)+4>>2]|0;h=e+-1|0;if(e&h){if(f>>>0>=e>>>0)f=(f>>>0)%(e>>>0)|0}else f=f&h;c[(c[s>>2]|0)+(f<<2)>>2]=i}}else{d=c[v>>2]|0;c[d>>2]=c[f>>2];c[f>>2]=d}c[j>>2]=(c[j>>2]|0)+1;c[v>>2]=0;d=r;t=d;t=c[t>>2]|0;d=d+4|0;d=c[d>>2]|0;v=b;b=v;c[b>>2]=t;v=v+4|0;c[v>>2]=d;yb=u;return}function di(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,o=0,p=0,q=0,r=0,s=0,t=0;m=yb;yb=yb+144|0;t=m+128|0;f=m+116|0;o=m+104|0;k=m+92|0;p=m+80|0;r=m+68|0;s=m+56|0;q=m+16|0;l=m;h=c[37327]|0;c[37327]=h+1;h5(t,h);h=t+11|0;i=t+4|0;while(1){e=a[h>>0]|0;if((e<<24>>24<0?c[i>>2]|0:e&255)>>>0>=3){e=16;break}n=0;da(2192,f|0,t|0);e=n;n=0;if(e&1){e=13;break}if((a[h>>0]|0)<0){Fsb(c[t>>2]|0,0);c[i>>2]=0}else{Fsb(t,0);a[h>>0]=0}n=0;ca(510,t|0);e=n;n=0;if(e&1){e=8;break}c[t>>2]=c[f>>2];c[t+4>>2]=c[f+4>>2];c[t+8>>2]=c[f+8>>2];e=0;while(1){if((e|0)==3)break;c[f+(e<<2)>>2]=0;e=e+1|0}Chb(f)}do if((e|0)==8){s=ta(0)|0;P()|0;yub(s)}else if((e|0)==13){j=sa()|0;P()|0}else if((e|0)==16){c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;j=Zzb(96050)|0;n=0;ea(95,s|0,96050,j|0);j=n;n=0;if(j&1){j=sa()|0;P()|0;break}j=a[h>>0]|0;h=j<<24>>24<0;n=0;V(43,s|0,(h?c[t>>2]|0:t)|0,(h?c[i>>2]|0:j&255)|0)|0;j=n;n=0;if(j&1){e=sa()|0;P()|0}else{c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];e=0;while(1){if((e|0)==3)break;c[s+(e<<2)>>2]=0;e=e+1|0}n=0;U(69,r|0,140051)|0;j=n;n=0;if(j&1){e=sa()|0;P()|0}else{c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];c[p+8>>2]=c[r+8>>2];e=0;while(1){if((e|0)==3)break;c[r+(e<<2)>>2]=0;e=e+1|0}n=0;U(69,p|0,b|0)|0;b=n;n=0;do if(b&1){e=sa()|0;P()|0}else{c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];e=0;while(1){if((e|0)==3)break;c[p+(e<<2)>>2]=0;e=e+1|0}n=0;U(69,k|0,96055)|0;b=n;n=0;if(b&1){e=sa()|0;P()|0;Chb(k);break}c[o>>2]=c[k>>2];c[o+4>>2]=c[k+4>>2];c[o+8>>2]=c[k+8>>2];e=0;while(1){if((e|0)==3)break;c[k+(e<<2)>>2]=0;e=e+1|0}Chb(k);Chb(p);Chb(r);Chb(s);SX(q);xxb(q);n=0;da(73,l|0,o|0);s=n;n=0;do if(!(s&1)){n=0;ea(158,q|0,d|0,l|0);s=n;n=0;if(s&1){e=sa()|0;P()|0;Chb(l);break}else{Chb(l);uOa(q);Chb(o);Chb(t);yb=m;return}}else{e=sa()|0;P()|0}while(0);uOa(q);Chb(o);s=e;Chb(t);Ea(s|0)}while(0);Chb(p)}Chb(r)}Chb(s);s=e;Chb(t);Ea(s|0)}while(0);s=j;Chb(t);Ea(s|0)}function ei(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;a:while(1){l=b;n=b+-4|0;while(1){m=a;b:while(1){k=m;a=l-k|0;e=a>>2;switch(e|0){case 2:{q=5;break a}case 3:{q=7;break a}case 4:{q=8;break a}case 5:{q=9;break a}case 1:case 0:{q=60;break a}default:{}}if((a|0)<124){q=11;break a}i=m+(((e|0)/2|0)<<2)|0;if((a|0)>3996){a=(e|0)/4|0;a=uB(m,m+(a<<2)|0,i,i+(a<<2)|0,n,d)|0}else a=kE(m,i,n,d)|0;h=c[m>>2]|0;g=c[i>>2]|0;if(_ba(d,h,g)|0){e=n;break}e=n;while(1){e=e+-4|0;if((m|0)==(e|0))break;f=c[e>>2]|0;if(_ba(d,f,g)|0){q=37;break b}}a=m+4|0;f=c[n>>2]|0;if(!(_ba(d,h,f)|0)){while(1){if((a|0)==(n|0)){q=60;break a}e=c[a>>2]|0;if(_ba(d,h,e)|0)break;a=a+4|0}c[a>>2]=f;c[n>>2]=e;a=a+4|0}if((a|0)==(n|0)){q=60;break a}e=n;while(1){h=c[m>>2]|0;while(1){g=c[a>>2]|0;if(_ba(d,h,g)|0)break;a=a+4|0}do{e=e+-4|0;f=c[e>>2]|0}while(_ba(d,h,f)|0);if(a>>>0>=e>>>0)break;c[a>>2]=f;c[e>>2]=g;a=a+4|0}m=a}if((q|0)==37){q=0;c[m>>2]=f;c[e>>2]=h;a=a+1|0}f=m+4|0;c:do if(f>>>0>>0){j=i;while(1){i=c[j>>2]|0;while(1){h=c[f>>2]|0;if(!(_ba(d,h,i)|0))break;f=f+4|0}do{e=e+-4|0;g=c[e>>2]|0}while(!(_ba(d,g,i)|0));if(f>>>0>e>>>0){e=j;break c}c[f>>2]=g;c[e>>2]=h;j=(j|0)==(f|0)?e:j;a=a+1|0;f=f+4|0}}else e=i;while(0);if((f|0)!=(e|0)?(o=c[e>>2]|0,p=c[f>>2]|0,_ba(d,o,p)|0):0){c[f>>2]=o;c[e>>2]=p;a=a+1|0}if(a|0){q=57;break}e=vr(m,f,d)|0;a=f+4|0;if(vr(a,b,d)|0){q=53;break}if(!e){q=57;break}}do if((q|0)==53){q=0;if(e){q=60;break a}else{b=f;a=m}}else if((q|0)==57){q=0;n=f;if((n-k|0)<(l-n|0)){ei(m,f,d);a=f+4|0;break}else{ei(f+4|0,b,d);b=f;a=m;break}}while(0)}if((q|0)==5){b=c[n>>2]|0;a=c[m>>2]|0;if(!(_ba(d,b,a)|0))return;c[m>>2]=b;c[n>>2]=a;return}else if((q|0)==7){kE(m,m+4|0,n,d)|0;return}else if((q|0)==8){uH(m,m+4|0,m+8|0,n,d)|0;return}else if((q|0)==9){uB(m,m+4|0,m+8|0,m+12|0,n,d)|0;return}else if((q|0)==11){mK(m,b,d);return}else if((q|0)==60)return}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,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;A=yb;yb=yb+64|0;h=A+48|0;x=A+44|0;B=A+32|0;s=A;t=A+28|0;u=A+24|0;y=A+20|0;z=A+8|0;c[x>>2]=d;if(a[b+12>>0]&1)BM(IWa(150620,113409)|0);c[B>>2]=0;v=B+4|0;c[v>>2]=0;i=B+8|0;c[i>>2]=0;j=b+152|0;w=b+156|0;k=b+160|0;l=b+8|0;m=b+36|0;o=b+4|0;p=b+52|0;q=b+44|0;r=b+120|0;e=d;g=d;while(1){n=0;d=S(303,b|0)|0;f=n;n=0;if(f&1){e=19;break}c[e+4>>2]=d;n=0;d=S(323,b|0)|0;f=n;n=0;if(f&1){e=19;break}c[e+8>>2]=d;c[t>>2]=d;d=(c[e+4>>2]|0)!=0&1;c[h>>2]=c[t>>2];fib(s,h,d);d=c[w>>2]|0;if(d>>>0>=(c[k>>2]|0)>>>0){n=0;da(4041,j|0,s|0);f=n;n=0;if(f&1){e=19;break}}else{C=s;e=c[C+4>>2]|0;f=d;c[f>>2]=c[C>>2];c[f+4>>2]=e;c[w>>2]=(c[w>>2]|0)+8}d=c[v>>2]|0;if((d|0)==(c[i>>2]|0)){n=0;da(222,B|0,x|0);C=n;n=0;if(C&1){e=19;break}}else{c[d>>2]=g;c[v>>2]=(c[v>>2]|0)+4}if((a[(c[c[l>>2]>>2]|0)+(c[m>>2]|0)>>0]|0)!=2){e=22;break}n=0;ca(560,b|0);C=n;n=0;if(C&1){e=19;break}n=0;d=S(307,c[o>>2]|0)|0;C=n;n=0;if(C&1){e=19;break}c[x>>2]=d;c[m>>2]=(c[m>>2]|0)+1;g=d;if(c[p>>2]|0){e=c[q>>2]|0;f=(c[r>>2]|0)+76|0;c[u>>2]=g;n=0;f=U(197,f|0,u|0)|0;C=n;n=0;if(C&1){e=19;break}C=e+16|0;c[f>>2]=c[C>>2];c[f+4>>2]=c[C+4>>2];c[f+8>>2]=c[C+8>>2]}e=d}do if((e|0)==19){d=sa()|0;P()|0}else if((e|0)==22){i=b+188|0;j=b+184|0;k=b+192|0;l=b+184|0;m=b+164|0;e=0;a:while(1){d=c[v>>2]|0;if((d|0)==(c[B>>2]|0)){e=37;break}f=d+-4|0;d=c[f>>2]|0;c[x>>2]=d;c[v>>2]=f;f=c[i>>2]|0;h=f-(c[j>>2]|0)>>2;g=f;do if(e){c[y>>2]=e;if((c[k>>2]|0)>>>0<=f>>>0){n=0;da(372,l|0,y|0);C=n;n=0;if(C&1){e=18;break a}else{e=d;break}}else{c[g>>2]=e;c[i>>2]=(c[i>>2]|0)+4;e=c[x>>2]|0;break}}else e=d;while(0);n=0;ca(561,b|0);C=n;n=0;if(C&1){e=18;break}d=(c[i>>2]|0)-(c[j>>2]|0)>>2;if(d>>>0>>0){c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;C=Zzb(116959)|0;n=0;ea(95,z|0,116959,C|0);C=n;n=0;if(C&1){e=18;break}n=0;da(4022,b|0,z|0);C=n;n=0;if(C&1){e=33;break}Chb(z)}n=0;fa(137,b|0,e|0,h|0,d|0);C=n;n=0;if(C&1){e=18;break}t=c[x>>2]|0;u=c[t+4>>2]|0;d=t+8|0;C=(NF(m,d)|0)!=0;n=0;ea(191,t|0,u|0,C|0);C=n;n=0;if(C&1){e=18;break}c[w>>2]=(c[w>>2]|0)+-8;_ca(m,d)}if((e|0)==18){d=sa()|0;P()|0;break}else if((e|0)==33){C=sa()|0;P()|0;Chb(z);Vob(B);Ea(C|0)}else if((e|0)==37){Vob(B);yb=A;return}}while(0);C=d;Vob(B);Ea(C|0)}function gi(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,o=0;m=yb;yb=yb+64|0;o=m+44|0;k=m+32|0;l=m+20|0;h=m+16|0;g=m+4|0;f=m;e=c[b>>2]|0;d=a[e>>0]|0;if(d<<24>>24==36){j=e+1|0;c[b>>2]=j;i=1;d=a[j>>0]|0}else{i=0;j=e}if(d<<24>>24!=34){e=j;a:while(1){if(!(d<<24>>24))break;if(Cxb(d<<24>>24)|0)break;switch(d<<24>>24){case 40:case 41:case 59:break a;default:{}}o=e+1|0;c[b>>2]=o;d=a[o>>0]|0;e=o}if((j|0)!=(e|0)){a[e>>0]=0;o=Bdb(b+16|0)|0;m2a(f,j,0);l=M$a(o,c[f>>2]|0,i,0)|0;Z3a(l,c[b+4>>2]|0,j-(c[b+8>>2]|0)|0,c[b+12>>2]|0)|0;a[c[b>>2]>>0]=d;yb=m;return o|0}f=oa(20)|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;o=Zzb(118866)|0;n=0;ea(95,g|0,118866,o|0);o=n;n=0;if(!(o&1)){n=0;fa(134,f|0,g|0,c[b+4>>2]|0,(c[b>>2]|0)-(c[b+8>>2]|0)|0);o=n;n=0;if(o&1)e=1;else{n=0;ea(122,f|0,31856,511);n=0;e=0}d=sa()|0;P()|0;Chb(g);if(!e){o=d;Ea(o|0)}}else{d=sa()|0;P()|0}va(f|0);o=d;Ea(o|0)}d=j+1|0;c[b>>2]=d;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[o+(e<<2)>>2]=0;e=e+1|0}b:while(1){e=a[d>>0]|0;switch(e<<24>>24){case 0:{g=9;break b}case 34:{g=31;break b}case 92:{n=0;da(91,o|0,92);g=n;n=0;if(g&1){g=20;break b}d=a[(c[b>>2]|0)+1>>0]|0;if(!(d<<24>>24)){g=17;break b}n=0;da(91,o|0,d|0);g=n;n=0;if(g&1){g=20;break b}d=(c[b>>2]|0)+2|0;break}default:{n=0;da(91,o|0,e|0);g=n;n=0;if(g&1){g=20;break b}d=(c[b>>2]|0)+1|0}}c[b>>2]=d}do if((g|0)==9){f=oa(20)|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;m=Zzb(118995)|0;n=0;ea(95,k|0,118995,m|0);m=n;n=0;if(!(m&1)){n=0;fa(134,f|0,k|0,c[b+4>>2]|0,j-(c[b+8>>2]|0)|0);b=n;n=0;if(b&1)e=1;else{n=0;ea(122,f|0,31856,511);n=0;e=0}d=sa()|0;P()|0;Chb(k);if(!e)break}else{d=sa()|0;P()|0}va(f|0)}else if((g|0)==17){f=oa(20)|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;m=Zzb(119015)|0;n=0;ea(95,l|0,119015,m|0);m=n;n=0;if(!(m&1)){n=0;fa(134,f|0,l|0,c[b+4>>2]|0,j-(c[b+8>>2]|0)|0);b=n;n=0;if(b&1)e=1;else{n=0;ea(122,f|0,31856,511);n=0;e=0}d=sa()|0;P()|0;Chb(l);if(!e)break}else{d=sa()|0;P()|0}va(f|0)}else if((g|0)==20){d=sa()|0;P()|0;g=22}else if((g|0)==31){c[b>>2]=d+1;n=0;d=S(327,b+16|0)|0;l=n;n=0;if(!(l&1)?(n=0,ea(101,h|0,((a[o+11>>0]|0)<0?c[o>>2]|0:o)|0,0),l=n,n=0,!(l&1)):0){l=M$a(d,c[h>>2]|0,i,1)|0;Z3a(l,c[b+4>>2]|0,j-(c[b+8>>2]|0)|0,c[b+12>>2]|0)|0;Chb(o);o=d;yb=m;return o|0}d=sa()|0;P()|0;g=22}while(0);Chb(o);o=d;Ea(o|0);return 0}function hi(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,o=0,p=0;p=yb;yb=yb+80|0;k=p+52|0;l=p+32|0;g=p+28|0;h=p+24|0;j=p+4|0;i=p;b=a+16|0;d=c[b>>2]|0;if(d>>>0>1023){c[b>>2]=d+-1024;i=a+4|0;h=c[i>>2]|0;j=c[h>>2]|0;h=h+4|0;c[i>>2]=h;k=a+8|0;b=c[k>>2]|0;d=a+12|0;o=c[d>>2]|0;e=o;f=h;g=b;do if((b|0)==(o|0)){o=c[a>>2]|0;b=o;if(o>>>0>=h>>>0){b=e-b|0;b=(b|0)==0?1:b>>1;aS(l,b,b>>>2,a+12|0);Xqa(l,c[i>>2]|0,c[k>>2]|0);b=c[a>>2]|0;c[a>>2]=c[l>>2];c[l>>2]=b;b=l+4|0;a=c[i>>2]|0;c[i>>2]=c[b>>2];c[b>>2]=a;b=l+8|0;a=c[k>>2]|0;c[k>>2]=c[b>>2];c[b>>2]=a;b=l+12|0;a=c[d>>2]|0;c[d>>2]=c[b>>2];c[b>>2]=a;Mwa(l);b=c[k>>2]|0;break}b=((f-b>>2)+1|0)/-2|0;e=h+(b<<2)|0;d=g-h|0;if(!d)b=e;else{Pxa(e|0,h|0,d|0)|0;b=(c[i>>2]|0)+(b<<2)|0}a=e+(d>>2<<2)|0;c[k>>2]=a;c[i>>2]=b;b=a}while(0);c[b>>2]=j;c[k>>2]=(c[k>>2]|0)+4;yb=p;return}o=a+8|0;e=c[o>>2]|0;m=a+4|0;b=e-(c[m>>2]|0)|0;l=a+12|0;f=c[l>>2]|0;d=f-(c[a>>2]|0)|0;if(b>>>0>>0){b=mla(4096)|0;if((f|0)!=(e|0)){c[g>>2]=b;wt(a,g);yb=p;return}c[h>>2]=b;Ns(a,h);g=c[m>>2]|0;h=c[g>>2]|0;g=g+4|0;c[m>>2]=g;b=c[o>>2]|0;j=c[l>>2]|0;d=j;e=g;f=b;do if((b|0)==(j|0)){j=c[a>>2]|0;b=j;if(j>>>0>=g>>>0){b=d-b|0;b=(b|0)==0?1:b>>1;aS(k,b,b>>>2,a+12|0);Xqa(k,c[m>>2]|0,c[o>>2]|0);b=c[a>>2]|0;c[a>>2]=c[k>>2];c[k>>2]=b;b=k+4|0;a=c[m>>2]|0;c[m>>2]=c[b>>2];c[b>>2]=a;b=k+8|0;a=c[o>>2]|0;c[o>>2]=c[b>>2];c[b>>2]=a;b=k+12|0;a=c[l>>2]|0;c[l>>2]=c[b>>2];c[b>>2]=a;Mwa(k);b=c[o>>2]|0;break}b=((e-b>>2)+1|0)/-2|0;e=g+(b<<2)|0;d=f-g|0;if(!d)b=e;else{Pxa(e|0,g|0,d|0)|0;b=(c[m>>2]|0)+(b<<2)|0}a=e+(d>>2<<2)|0;c[o>>2]=a;c[m>>2]=b;b=a}while(0);c[b>>2]=h;c[o>>2]=(c[o>>2]|0)+4;yb=p;return}aS(j,(d|0)==0?1:d>>1,b>>2,a+12|0);n=0;d=S(217,4096)|0;k=n;n=0;if(k&1){p=sa()|0;P()|0;Mwa(j);Ea(p|0)}c[i>>2]=d;n=0;da(2368,j|0,i|0);k=n;n=0;if(k&1){b=sa()|0;P()|0;if(!d){p=b;Mwa(j);Ea(p|0)}RCb(d);p=b;Mwa(j);Ea(p|0)}b=c[o>>2]|0;while(1){d=c[m>>2]|0;if((b|0)==(d|0)){b=29;break}b=b+-4|0;n=0;da(2369,j|0,b|0);k=n;n=0;if(k&1){b=26;break}}if((b|0)==26){p=sa()|0;P()|0;Mwa(j);Ea(p|0)}else if((b|0)==29){k=c[a>>2]|0;c[a>>2]=c[j>>2];c[j>>2]=k;a=j+4|0;c[m>>2]=c[a>>2];c[a>>2]=d;a=j+8|0;m=c[o>>2]|0;c[o>>2]=c[a>>2];c[a>>2]=m;a=j+12|0;o=c[l>>2]|0;c[l>>2]=c[a>>2];c[a>>2]=o;Mwa(j);yb=p;return}}function ii(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0.0,i=0,j=0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=a+4|0;i=c[z>>2]|0;y=a+100|0;if(i>>>0<(c[y>>2]|0)>>>0){c[z>>2]=i+1;i=d[i>>0]|0}else i=nI(a)|0;j=0;a:while(1){switch(i|0){case 46:{x=10;break a}case 48:break;default:{p=0;m=j;l=0;j=0;break a}}i=c[z>>2]|0;if(i>>>0<(c[y>>2]|0)>>>0){c[z>>2]=i+1;i=d[i>>0]|0}else i=nI(a)|0;j=1}if((x|0)==10){i=c[z>>2]|0;if(i>>>0<(c[y>>2]|0)>>>0){c[z>>2]=i+1;i=d[i>>0]|0}else i=nI(a)|0;if((i|0)==48){l=0;j=0;do{i=c[z>>2]|0;if(i>>>0<(c[y>>2]|0)>>>0){c[z>>2]=i+1;i=d[i>>0]|0}else i=nI(a)|0;l=Yeb(l|0,j|0,-1,-1)|0;j=P()|0}while((i|0)==48);p=1;m=1}else{p=1;m=j;l=0;j=0}}o=0;n=1.0;h=0.0;v=0;s=p;t=m;u=0;m=0;while(1){q=i+-48|0;p=i|32;if(q>>>0>=10){r=(i|0)==46;if(!(r|(p+-97|0)>>>0<6))break;if(r)if(!s){s=1;k=n;q=v;r=t;l=m;j=u;p=u}else{i=46;break}else x=24}else x=24;if((x|0)==24){x=0;i=(i|0)>57?p+-87|0:q;do if(!((u|0)<0|(u|0)==0&m>>>0<8))if((u|0)<0|(u|0)==0&m>>>0<14){n=n*.0625;k=n;h=h+n*+(i|0);i=v;break}else{i=(o|0)!=0|(i|0)==0;o=i?o:1;k=n;h=i?h:h+n*.5;i=v;break}else{k=n;i=i+(v<<4)|0}while(0);m=Yeb(m|0,u|0,1,0)|0;q=i;r=1;p=P()|0}i=c[z>>2]|0;if(i>>>0<(c[y>>2]|0)>>>0){c[z>>2]=i+1;i=d[i>>0]|0}else i=nI(a)|0;n=k;v=q;t=r;u=p}do if(!t){i=(c[y>>2]|0)==0;if(!i)c[z>>2]=(c[z>>2]|0)+-1;if(g){if(!i?(w=c[z>>2]|0,c[z>>2]=w+-1,s|0):0)c[z>>2]=w+-2}else HFa(a,0);h=+(f|0)*0.0}else{o=(s|0)==0;p=o?m:l;o=o?u:j;if((u|0)<0|(u|0)==0&m>>>0<8){j=v;l=u;do{j=j<<4;x=m;m=Yeb(m|0,l|0,1,0)|0;w=l;l=P()|0}while((w|0)<0|(w|0)==0&x>>>0<7);m=j}else m=v;if((i|32|0)==112){j=dp(a,g)|0;i=P()|0;if((j|0)==0&(i|0)==-2147483648){if(!g){HFa(a,0);h=0.0;break}if(!(c[y>>2]|0)){j=0;i=0}else{c[z>>2]=(c[z>>2]|0)+-1;j=0;i=0}}}else if(!(c[y>>2]|0)){j=0;i=0}else{c[z>>2]=(c[z>>2]|0)+-1;j=0;i=0}l=X2a(p|0,o|0,2)|0;l=Yeb(l|0,P()|0,-32,-1)|0;l=Yeb(l|0,P()|0,j|0,i|0)|0;i=P()|0;if(!m){h=+(f|0)*0.0;break}z=0-e|0;g=((z|0)<0)<<31>>31;if((i|0)>(g|0)|(i|0)==(g|0)&l>>>0>z>>>0){c[37419]=34;h=+(f|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}z=e+-106|0;g=((z|0)<0)<<31>>31;if((i|0)<(g|0)|(i|0)==(g|0)&l>>>0>>0){c[37419]=34;h=+(f|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if((m|0)>-1){j=m;do{z=!(h>=.5);j=j<<1|(z^1)&1;h=h+(z?h:h+-1.0);l=Yeb(l|0,i|0,-1,-1)|0;i=P()|0}while((j|0)>-1);n=h;m=j}else n=h;z=((b|0)<0)<<31>>31;e=Ndb(32,0,e|0,((e|0)<0)<<31>>31|0)|0;i=Yeb(e|0,P()|0,l|0,i|0)|0;e=P()|0;if((e|0)<(z|0)|(e|0)==(z|0)&i>>>0>>0)if((i|0)>0)x=65;else{j=0;i=84;x=67}else{i=b;x=65}if((x|0)==65)if((i|0)<53){j=i;i=84-i|0;x=67}else{k=0.0;h=+(f|0)}if((x|0)==67){h=+(f|0);k=+XBb(+R1(1.0,i),h);i=j}f=(m&1|0)==0&(n!=0.0&(i|0)<32);h=(f?0.0:n)*h+(k+h*+((m+(f&1)|0)>>>0))-k;if(!(h!=0.0))c[37419]=34;h=+cCb(h,l)}while(0);return +h}function ji(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,o=0,p=0;p=yb;yb=yb+80|0;k=p+52|0;l=p+32|0;g=p+28|0;h=p+24|0;j=p+4|0;i=p;b=a+16|0;d=c[b>>2]|0;if(d>>>0>1023){c[b>>2]=d+-1024;i=a+4|0;h=c[i>>2]|0;j=c[h>>2]|0;h=h+4|0;c[i>>2]=h;k=a+8|0;b=c[k>>2]|0;d=a+12|0;o=c[d>>2]|0;e=o;f=h;g=b;do if((b|0)==(o|0)){o=c[a>>2]|0;b=o;if(o>>>0>=h>>>0){b=e-b|0;b=(b|0)==0?1:b>>1;aS(l,b,b>>>2,a+12|0);Xqa(l,c[i>>2]|0,c[k>>2]|0);b=c[a>>2]|0;c[a>>2]=c[l>>2];c[l>>2]=b;b=l+4|0;a=c[i>>2]|0;c[i>>2]=c[b>>2];c[b>>2]=a;b=l+8|0;a=c[k>>2]|0;c[k>>2]=c[b>>2];c[b>>2]=a;b=l+12|0;a=c[d>>2]|0;c[d>>2]=c[b>>2];c[b>>2]=a;Mwa(l);b=c[k>>2]|0;break}b=((f-b>>2)+1|0)/-2|0;e=h+(b<<2)|0;d=g-h|0;if(!d)b=e;else{Pxa(e|0,h|0,d|0)|0;b=(c[i>>2]|0)+(b<<2)|0}a=e+(d>>2<<2)|0;c[k>>2]=a;c[i>>2]=b;b=a}while(0);c[b>>2]=j;c[k>>2]=(c[k>>2]|0)+4;yb=p;return}o=a+8|0;e=c[o>>2]|0;m=a+4|0;b=e-(c[m>>2]|0)|0;l=a+12|0;f=c[l>>2]|0;d=f-(c[a>>2]|0)|0;if(b>>>0>>0){b=mla(4096)|0;if((f|0)!=(e|0)){c[g>>2]=b;wt(a,g);yb=p;return}c[h>>2]=b;Ns(a,h);g=c[m>>2]|0;h=c[g>>2]|0;g=g+4|0;c[m>>2]=g;b=c[o>>2]|0;j=c[l>>2]|0;d=j;e=g;f=b;do if((b|0)==(j|0)){j=c[a>>2]|0;b=j;if(j>>>0>=g>>>0){b=d-b|0;b=(b|0)==0?1:b>>1;aS(k,b,b>>>2,a+12|0);Xqa(k,c[m>>2]|0,c[o>>2]|0);b=c[a>>2]|0;c[a>>2]=c[k>>2];c[k>>2]=b;b=k+4|0;a=c[m>>2]|0;c[m>>2]=c[b>>2];c[b>>2]=a;b=k+8|0;a=c[o>>2]|0;c[o>>2]=c[b>>2];c[b>>2]=a;b=k+12|0;a=c[l>>2]|0;c[l>>2]=c[b>>2];c[b>>2]=a;Mwa(k);b=c[o>>2]|0;break}b=((e-b>>2)+1|0)/-2|0;e=g+(b<<2)|0;d=f-g|0;if(!d)b=e;else{Pxa(e|0,g|0,d|0)|0;b=(c[m>>2]|0)+(b<<2)|0}a=e+(d>>2<<2)|0;c[o>>2]=a;c[m>>2]=b;b=a}while(0);c[b>>2]=h;c[o>>2]=(c[o>>2]|0)+4;yb=p;return}aS(j,(d|0)==0?1:d>>1,b>>2,a+12|0);n=0;d=S(217,4096)|0;k=n;n=0;if(k&1){p=sa()|0;P()|0;Mwa(j);Ea(p|0)}c[i>>2]=d;n=0;da(247,j|0,i|0);k=n;n=0;if(k&1){b=sa()|0;P()|0;if(!d){p=b;Mwa(j);Ea(p|0)}RCb(d);p=b;Mwa(j);Ea(p|0)}b=c[o>>2]|0;while(1){d=c[m>>2]|0;if((b|0)==(d|0)){b=29;break}b=b+-4|0;n=0;da(248,j|0,b|0);k=n;n=0;if(k&1){b=26;break}}if((b|0)==26){p=sa()|0;P()|0;Mwa(j);Ea(p|0)}else if((b|0)==29){k=c[a>>2]|0;c[a>>2]=c[j>>2];c[j>>2]=k;a=j+4|0;c[m>>2]=c[a>>2];c[a>>2]=d;a=j+8|0;m=c[o>>2]|0;c[o>>2]=c[a>>2];c[a>>2]=m;a=j+12|0;o=c[l>>2]|0;c[l>>2]=c[a>>2];c[a>>2]=o;Mwa(j);yb=p;return}}function ki(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,o=0,p=0;p=yb;yb=yb+80|0;k=p+52|0;l=p+32|0;g=p+28|0;h=p+24|0;j=p+4|0;i=p;b=a+16|0;d=c[b>>2]|0;if(d>>>0>1023){c[b>>2]=d+-1024;i=a+4|0;h=c[i>>2]|0;j=c[h>>2]|0;h=h+4|0;c[i>>2]=h;k=a+8|0;b=c[k>>2]|0;d=a+12|0;o=c[d>>2]|0;e=o;f=h;g=b;do if((b|0)==(o|0)){o=c[a>>2]|0;b=o;if(o>>>0>=h>>>0){b=e-b|0;b=(b|0)==0?1:b>>1;aS(l,b,b>>>2,a+12|0);Xqa(l,c[i>>2]|0,c[k>>2]|0);b=c[a>>2]|0;c[a>>2]=c[l>>2];c[l>>2]=b;b=l+4|0;a=c[i>>2]|0;c[i>>2]=c[b>>2];c[b>>2]=a;b=l+8|0;a=c[k>>2]|0;c[k>>2]=c[b>>2];c[b>>2]=a;b=l+12|0;a=c[d>>2]|0;c[d>>2]=c[b>>2];c[b>>2]=a;Mwa(l);b=c[k>>2]|0;break}b=((f-b>>2)+1|0)/-2|0;e=h+(b<<2)|0;d=g-h|0;if(!d)b=e;else{Pxa(e|0,h|0,d|0)|0;b=(c[i>>2]|0)+(b<<2)|0}a=e+(d>>2<<2)|0;c[k>>2]=a;c[i>>2]=b;b=a}while(0);c[b>>2]=j;c[k>>2]=(c[k>>2]|0)+4;yb=p;return}o=a+8|0;e=c[o>>2]|0;m=a+4|0;b=e-(c[m>>2]|0)|0;l=a+12|0;f=c[l>>2]|0;d=f-(c[a>>2]|0)|0;if(b>>>0>>0){b=mla(4096)|0;if((f|0)!=(e|0)){c[g>>2]=b;wt(a,g);yb=p;return}c[h>>2]=b;Ns(a,h);g=c[m>>2]|0;h=c[g>>2]|0;g=g+4|0;c[m>>2]=g;b=c[o>>2]|0;j=c[l>>2]|0;d=j;e=g;f=b;do if((b|0)==(j|0)){j=c[a>>2]|0;b=j;if(j>>>0>=g>>>0){b=d-b|0;b=(b|0)==0?1:b>>1;aS(k,b,b>>>2,a+12|0);Xqa(k,c[m>>2]|0,c[o>>2]|0);b=c[a>>2]|0;c[a>>2]=c[k>>2];c[k>>2]=b;b=k+4|0;a=c[m>>2]|0;c[m>>2]=c[b>>2];c[b>>2]=a;b=k+8|0;a=c[o>>2]|0;c[o>>2]=c[b>>2];c[b>>2]=a;b=k+12|0;a=c[l>>2]|0;c[l>>2]=c[b>>2];c[b>>2]=a;Mwa(k);b=c[o>>2]|0;break}b=((e-b>>2)+1|0)/-2|0;e=g+(b<<2)|0;d=f-g|0;if(!d)b=e;else{Pxa(e|0,g|0,d|0)|0;b=(c[m>>2]|0)+(b<<2)|0}a=e+(d>>2<<2)|0;c[o>>2]=a;c[m>>2]=b;b=a}while(0);c[b>>2]=h;c[o>>2]=(c[o>>2]|0)+4;yb=p;return}aS(j,(d|0)==0?1:d>>1,b>>2,a+12|0);n=0;d=S(217,4096)|0;k=n;n=0;if(k&1){p=sa()|0;P()|0;Mwa(j);Ea(p|0)}c[i>>2]=d;n=0;da(236,j|0,i|0);k=n;n=0;if(k&1){b=sa()|0;P()|0;if(!d){p=b;Mwa(j);Ea(p|0)}RCb(d);p=b;Mwa(j);Ea(p|0)}b=c[o>>2]|0;while(1){d=c[m>>2]|0;if((b|0)==(d|0)){b=29;break}b=b+-4|0;n=0;da(237,j|0,b|0);k=n;n=0;if(k&1){b=26;break}}if((b|0)==26){p=sa()|0;P()|0;Mwa(j);Ea(p|0)}else if((b|0)==29){k=c[a>>2]|0;c[a>>2]=c[j>>2];c[j>>2]=k;a=j+4|0;c[m>>2]=c[a>>2];c[a>>2]=d;a=j+8|0;m=c[o>>2]|0;c[o>>2]=c[a>>2];c[a>>2]=m;a=j+12|0;o=c[l>>2]|0;c[l>>2]=c[a>>2];c[a>>2]=o;Mwa(j);yb=p;return}}function li(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,o=0,p=0,q=0,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;I=yb;yb=yb+48|0;J=I+32|0;K=I+16|0;H=I;iG(J,a,1);n=0;ea(145,K|0,a|0,1);E=n;n=0;if(E&1){K=sa()|0;P()|0;lNa(J);Ea(K|0)}n=0;ea(145,H|0,a|0,1);E=n;n=0;if(E&1){h=sa()|0;P()|0}else{E=a+44|0;h=c[E>>2]|0;n=0;i=S(280,J|0)|0;L=n;n=0;do if(((((((((((((((!(L&1)?(j=c[E>>2]|0,n=0,k=S(280,d|0)|0,L=n,n=0,!(L&1)):0)?(n=0,l=V(71,c[j>>2]|0,k|0,1)|0,L=n,n=0,!(L&1)):0)?(m=c[E>>2]|0,n=0,o=S(280,f|0)|0,L=n,n=0,!(L&1)):0)?(n=0,p=V(71,c[m>>2]|0,o|0,1)|0,L=n,n=0,!(L&1)):0)?(n=0,q=W(8,c[j>>2]|0,1,l|0,p|0)|0,L=n,n=0,!(L&1)):0)?(n=0,F=V(70,c[h>>2]|0,i|0,q|0)|0,L=n,n=0,!(L&1)):0)?(r=c[E>>2]|0,n=0,s=S(280,H|0)|0,L=n,n=0,!(L&1)):0)?(t=c[E>>2]|0,n=0,u=S(280,d|0)|0,L=n,n=0,!(L&1)):0)?(n=0,v=V(71,c[t>>2]|0,u|0,1)|0,L=n,n=0,!(L&1)):0)?(w=c[E>>2]|0,n=0,x=S(280,f|0)|0,L=n,n=0,!(L&1)):0)?(n=0,y=V(71,c[w>>2]|0,x|0,1)|0,L=n,n=0,!(L&1)):0)?(n=0,z=W(8,c[t>>2]|0,18,v|0,y|0)|0,L=n,n=0,!(L&1)):0)?(n=0,G=V(70,c[r>>2]|0,s|0,z|0)|0,L=n,n=0,!(L&1)):0)?(C=c[E>>2]|0,n=0,D=S(280,K|0)|0,L=n,n=0,!(L&1)):0)?(B=c[E>>2]|0,n=0,A=S(280,H|0)|0,L=n,n=0,!(L&1)):0){n=0;j=V(71,c[B>>2]|0,A|0,1)|0;L=n;n=0;if(L&1)break;i=c[E>>2]|0;n=0;h=S(280,g|0)|0;L=n;n=0;if(L&1)break;n=0;h=V(71,c[i>>2]|0,h|0,1)|0;L=n;n=0;if(L&1)break;n=0;h=W(8,c[B>>2]|0,0,j|0,h|0)|0;L=n;n=0;if(L&1)break;n=0;m=V(70,c[C>>2]|0,D|0,h|0)|0;L=n;n=0;if(L&1)break;d=c[E>>2]|0;n=0;l=S(280,K|0)|0;L=n;n=0;if(L&1)break;k=c[E>>2]|0;n=0;h=S(280,e|0)|0;L=n;n=0;if(L&1)break;n=0;j=V(71,c[k>>2]|0,h|0,1)|0;L=n;n=0;if(L&1)break;h=c[E>>2]|0;n=0;i=S(280,K|0)|0;L=n;n=0;if(L&1)break;n=0;h=V(71,c[h>>2]|0,i|0,1)|0;L=n;n=0;if(L&1)break;n=0;h=W(8,c[k>>2]|0,1,j|0,h|0)|0;L=n;n=0;if(L&1)break;n=0;j=V(70,c[d>>2]|0,l|0,h|0)|0;L=n;n=0;if(L&1)break;h=c[E>>2]|0;n=0;i=S(280,J|0)|0;L=n;n=0;if(L&1)break;n=0;h=V(71,c[h>>2]|0,i|0,1)|0;L=n;n=0;if(L&1)break;n=0;h=_(11,c[E>>2]|0,b|0,F|0,G|0,m|0,j|0,h|0)|0;L=n;n=0;if(L&1)break;n=0;ea(147,a|0,h|0,K|0);L=n;n=0;if(L&1)break;lNa(H);lNa(K);lNa(J);yb=I;return h|0}while(0);h=sa()|0;P()|0;lNa(H)}lNa(K);L=h;lNa(J);Ea(L|0);return 0}function mi(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=yb;yb=yb+96|0;u=y+92|0;e=y+88|0;f=y+76|0;g=y+64|0;h=y+60|0;i=y+56|0;m=y+52|0;A=y+40|0;o=y+36|0;q=y+32|0;z=y+20|0;t=y+16|0;v=y+12|0;w=y;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;D8(g,81154,Zzb(81154)|0);s=c[b>>2]|0;p=s;n=0;U(69,g|0,s|0)|0;s=n;n=0;do if(s&1){b=sa()|0;P()|0}else{c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}n=0;da(230,e|0,f|0);s=n;n=0;if(s&1){b=sa()|0;P()|0;Chb(f);break}Chb(f);Chb(g);r=c[e>>2]|0;c[h>>2]=r;c[u>>2]=c[h>>2];s=r;if(lEa(d,u)|0){cqb();n=0;ca(491,81170);l=n;n=0;if(l&1){sa()|0;P()|0;iSa()}else iSa()}c[i>>2]=p;c[u>>2]=c[i>>2];k=wQ(d,u)|0;h=k+16|0;l=c[k+12>>2]|0;Gsb(m,d);c[A>>2]=0;i=A+4|0;c[i>>2]=0;j=A+8|0;c[j>>2]=0;k=k+20|0;g=c[m>>2]|0;f=0;while(1){if(f>>>0>=(c[k>>2]|0)-(c[h>>2]|0)>>2>>>0){e=24;break}n=0;b=V(71,g|0,f|0,2)|0;m=n;n=0;if(m&1){e=21;break}n=0;b=V(75,b|0,c[(c[h>>2]|0)+(f<<2)>>2]|0,d|0)|0;m=n;n=0;if(m&1){e=21;break}c[o>>2]=b;e=c[i>>2]|0;if(e>>>0>=(c[j>>2]|0)>>>0){n=0;da(372,A|0,o|0);m=n;n=0;if(m&1){e=21;break}}else{c[e>>2]=b;c[i>>2]=(c[i>>2]|0)+4}f=f+1|0}do if((e|0)==21){b=sa()|0;P()|0;e=23}else if((e|0)==24){c[q>>2]=p;n=0;c[u>>2]=c[q>>2];h=W(14,g|0,u|0,A|0,l|0)|0;q=n;n=0;if(q&1){b=sa()|0;P()|0;e=23;break}c[z>>2]=0;e=z+4|0;c[e>>2]=0;f=z+8|0;c[f>>2]=0;b=0;while(1){if(b>>>0>=16){e=34;break}c[t>>2]=2;g=c[e>>2]|0;if(g>>>0>=(c[f>>2]|0)>>>0){n=0;da(212,z|0,t|0);q=n;n=0;if(q&1){e=31;break}}else{c[g>>2]=2;c[e>>2]=(c[e>>2]|0)+4}b=b+1|0}do if((e|0)==31){b=sa()|0;P()|0;e=33}else if((e|0)==34){c[v>>2]=r;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;n=0;b=U(138,h|0,d|0)|0;t=n;n=0;if(!(t&1)?(n=0,c[u>>2]=c[v>>2],x=Y(21,u|0,z|0,2,w|0,b|0)|0,v=n,n=0,!(v&1)):0){Vob(w);c[x+40>>2]=c[a+16>>2];n=0;da(216,d|0,x|0);x=n;n=0;if(x&1){b=sa()|0;P()|0;e=33;break}else{Vob(z);Vob(A);yb=y;return s|0}}b=sa()|0;P()|0;Vob(w)}while(0);Vob(z)}while(0);Vob(A);A=b;Ea(A|0)}while(0);Chb(g);A=b;Ea(A|0);return 0}function ni(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=yb;yb=yb+80|0;v=A+68|0;z=A+56|0;q=A+52|0;f=A+48|0;h=A+44|0;i=A+40|0;j=A+36|0;k=A+32|0;l=A+28|0;d=A+24|0;e=A+20|0;w=A+16|0;y=A+4|0;x=A;Cub(q);switch(c[b+8>>2]|0){case 16:{Ftb(f,c[37180]|0);u=c[f>>2]|0;c[q>>2]=u;break}case 17:{Ftb(h,c[37181]|0);u=c[h>>2]|0;c[q>>2]=u;break}case 14:{Ftb(i,c[37182]|0);u=c[i>>2]|0;c[q>>2]=u;break}case 15:{Ftb(j,c[37183]|0);u=c[j>>2]|0;c[q>>2]=u;break}case 5:{Ftb(k,c[37171]|0);u=c[k>>2]|0;c[q>>2]=u;break}case 4:{Ftb(l,c[37170]|0);u=c[l>>2]|0;c[q>>2]=u;break}case 3:{Ftb(d,c[37167]|0);u=c[d>>2]|0;c[q>>2]=u;break}case 2:{Ftb(e,c[37166]|0);u=c[e>>2]|0;c[q>>2]=u;break}default:{yb=A;return}}i=u;t=a+48|0;r=LAb(q)|0;p=a+52|0;h=c[p>>2]|0;l=(h|0)==0;a:do if(!l){j=h+-1|0;k=(h&j|0)==0;if(!k)if(r>>>0>>0)e=r;else e=(r>>>0)%(h>>>0)|0;else e=r&j;d=c[(c[t>>2]|0)+(e<<2)>>2]|0;if(!d)s=26;else while(1){d=c[d>>2]|0;if(!d){s=26;break a}f=c[d+4>>2]|0;if((f|0)!=(r|0)){if(!k){if(f>>>0>=h>>>0)f=(f>>>0)%(h>>>0)|0}else f=f&j;if((f|0)!=(e|0)){s=26;break a}}if(dub(c[d+8>>2]|0,i)|0)break a}}else{e=0;s=26}while(0);if((s|0)==26){Uja(z,t,r,q);i=a+60|0;m=+(((c[i>>2]|0)+1|0)>>>0);o=+g[a+64>>2];if(o*+(h>>>0)>>0>2){e=(h&h+-1|0)!=0&1;s=30}else{e=1;s=30}}else if(l){d=0;e=1;s=30}do if((s|0)==30){s=d|e;q=~~+I(+(m/o))>>>0;n=0;da(86,t|0,(s>>>0>>0?q:s)|0);s=n;n=0;if(s&1){d=sa()|0;P()|0;e=c[z>>2]|0;c[z>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){h=d;e=r&e;break}if(r>>>0>>0){h=d;e=r;break}h=d;e=(r>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[t>>2]|0)+(e<<2)>>2]|0;if(!d){s=a+56|0;d=c[z>>2]|0;c[d>>2]=c[s>>2];f=d;c[s>>2]=f;c[(c[t>>2]|0)+(e<<2)>>2]=s;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=h+-1|0;if(h&e){if(d>>>0>=h>>>0)d=(d>>>0)%(h>>>0)|0}else d=d&e;c[(c[t>>2]|0)+(d<<2)>>2]=f}}else{t=c[z>>2]|0;c[t>>2]=c[d>>2];c[d>>2]=t}c[i>>2]=(c[i>>2]|0)+1;c[z>>2]=0}d=c[a+44>>2]|0;c[w>>2]=u;c[x>>2]=c[b+12>>2];c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;n=0;da(174,y|0,1);z=n;n=0;if(z&1){A=sa()|0;P()|0;Qcb(y);Ea(A|0)}ssa(y,x,x+4|0);z=c[b+4>>2]|0;d=c[d>>2]|0;n=0;c[v>>2]=c[w>>2];d=W(14,d|0,v|0,y|0,z|0)|0;z=n;n=0;if(z&1){A=sa()|0;P()|0;Vob(y);Ea(A|0)}Pwb(c[a+16>>2]|0,d);Vob(y);yb=A;return}function oi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=b+12|0;AFa(a,c[(c[e>>2]|0)+4>>2]|0,b);f=c[(c[e>>2]|0)+4>>2]|0;if((f|0)==6)return;d=b+8|0;do switch(c[d>>2]|0){case 4:case 2:case 0:{Uya(a,f,1,b,131392);break}case 5:case 3:case 1:{Uya(a,f,2,b,131429);break}case 18:case 16:case 14:case 12:case 10:case 8:case 6:{Uya(a,f,3,b,131466);break}case 19:case 17:case 15:case 13:case 11:case 9:case 7:{Uya(a,f,4,b,131503);break}case 20:{pJa(a,(f|0)==1,b,131540);break}case 21:{pJa(a,(f|0)==2,b,131566);break}case 48:case 47:case 23:case 22:{Uya(a,f,1,b,131592);break}case 51:case 50:case 49:{Uya(a,f,2,b,131592);break}case 24:{Uya(a,f,2,b,131620);break}case 28:case 27:case 26:case 25:{Uya(a,f,3,b,131646);break}case 57:case 53:case 56:case 52:{Uya(a,f,3,b,131646);break}case 32:case 31:case 30:case 29:{Uya(a,f,4,b,131646);break}case 59:case 55:case 58:case 54:{Uya(a,f,4,b,131646);break}case 33:{Uya(a,f,3,b,131673);break}case 34:{Uya(a,f,4,b,131710);break}case 36:case 35:case 38:case 37:{Uya(a,f,1,b,131747);break}case 40:case 39:case 42:case 41:{Uya(a,f,2,b,131747);break}case 43:{Uya(a,f,3,b,131776);break}case 44:{Uya(a,f,4,b,131805);break}case 45:{Uya(a,f,1,b,131833);break}case 46:{Uya(a,f,2,b,131870);break}case 62:case 61:case 60:{Uya(a,c[b+4>>2]|0,5,b,131907);Uya(a,c[(c[e>>2]|0)+4>>2]|0,1,b,131940);break}case 63:{Uya(a,c[b+4>>2]|0,5,b,131907);Uya(a,c[(c[e>>2]|0)+4>>2]|0,2,b,131965);break}case 64:{Uya(a,c[b+4>>2]|0,5,b,131907);Uya(a,c[(c[e>>2]|0)+4>>2]|0,3,b,131990);break}case 65:{Uya(a,c[b+4>>2]|0,5,b,131907);Uya(a,c[(c[e>>2]|0)+4>>2]|0,4,b,131965);break}case 92:case 91:case 90:case 89:case 88:case 87:case 86:case 85:case 84:case 83:case 82:case 81:case 80:case 79:case 76:case 73:case 70:case 67:case 66:{Uya(a,c[b+4>>2]|0,5,b,132015);Uya(a,c[(c[e>>2]|0)+4>>2]|0,5,b,132034);break}case 78:case 77:case 75:case 74:case 72:case 71:case 69:case 68:{Uya(a,c[b+4>>2]|0,1,b,132056);Uya(a,c[(c[e>>2]|0)+4>>2]|0,5,b,132034);break}case 93:{ma(141129,126900,1042,132100);break}default:{}}while(0);f=RY(c[d>>2]|0)|0;pJa(a,jub(f,c[(c[a+44>>2]|0)+4>>2]|0)|0,b,131309);return}function pi(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=yb;yb=yb+16|0;v=w+12|0;t=w+8|0;q=w+4|0;u=w;if(c[37104]|0){IWa(150452,56221)|0;m=0;while(1){if((m|0)==(j|0))break;Ym(IWa(150452,66218)|0,m)|0;IWa(150452,66241)|0;o=i+(m<<2)|0;p=g+(m<<2)|0;l=0;while(1){if(l>>>0>=(c[o>>2]|0)>>>0)break;if(l|0)IWa(150452,140151)|0;Zm(150452,a[(c[p>>2]|0)+l>>0]|0)|0;l=l+1|0}IWa(150452,56261)|0;m=m+1|0}IWa(150452,66249)|0;l=0;while(1){if((l|0)==(j|0))break;if(l|0)IWa(150452,140151)|0;Ym(IWa(150452,134247)|0,l)|0;l=l+1|0}m=(j|0)==0;if(m)IWa(150452,133516)|0;IWa(150452,56261)|0;IWa(150452,66281)|0;l=0;while(1){if((l|0)==(j|0))break;if(l|0)IWa(150452,140151)|0;o=IWa(150452,55712)|0;p=O8(148192,h+(l<<2)|0)|0;IWa(Ym(o,c[p>>2]|0)|0,139976)|0;l=l+1|0}if(m)IWa(150452,133516)|0;IWa(150452,56261)|0;IWa(150452,66329)|0;l=0;while(1){if((l|0)==(j|0))break;if(l|0)IWa(150452,140151)|0;Ym(150452,c[i+(l<<2)>>2]|0)|0;l=l+1|0}if(m)IWa(150452,133516)|0;IWa(150452,56261)|0;IWa(Ym(IWa(Ym(IWa(150452,66367)|0,d)|0,140151)|0,e)|0,140151)|0;$ha(f,150452);IWa(Zm(IWa(Ym(IWa(150452,66402)|0,j)|0,140151)|0,k&255)|0,56341)|0;IWa(150452,56345)|0}G1a(b+100|0,d,0)|0;G1a(b+104|0,e,0)|0;a[b+92>>0]=1;a[b+120>>0]=k<<24>>24!=0&1;do if(f|0){TTa(t);n=0;da(211,q|0,f|0);k=n;n=0;if((!(k&1)?(r=c[t>>2]|0,c[r>>2]=c[q>>2],n=0,s=S(222,0)|0,k=n,n=0,!(k&1)):0)?(c[r+4>>2]=s,c[r+8>>2]=2,c[t>>2]=0,n=0,da(72,b|0,r|0),k=n,n=0,!(k&1)):0){c[t>>2]=0;break}l=sa()|0;P()|0;m=c[t>>2]|0;c[t>>2]=0;if(!m)Ea(l|0);RCb(m);Ea(l|0)}while(0);e=b+112|0;f=b+116|0;m=b+108|0;l=0;while(1){if((l|0)==(j|0))break;o=c[h+(l<<2)>>2]|0;c[u>>2]=o;p=g+(l<<2)|0;d=i+(l<<2)|0;q=c[e>>2]|0;if(q>>>0<(c[f>>2]|0)>>>0){t=c[p>>2]|0;j6a(v,c[d>>2]|0,0);v6(q,o,t,c[v>>2]|0);c[e>>2]=(c[e>>2]|0)+16}else Sv(m,u,p,d);l=l+1|0}yb=w;return}function qi(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=yb;yb=yb+32|0;u=s+16|0;g=s+12|0;o=s+8|0;p=s+4|0;t=s;jFa(u);if(!b){n=0;g=S(222,(c[a+4>>2]|0)-(c[a>>2]|0)>>2|0)|0;r=n;n=0;if(r&1)q=6;else{h=c[u>>2]|0;c[h>>2]=g;q=9}}else{n=0;da(211,g|0,b|0);r=n;n=0;if(r&1)q=6;else{h=c[u>>2]|0;c[h>>2]=c[g>>2];q=9}}do if((q|0)==9){r=h;c[h+4>>2]=d;i=h+12|0;j=h+16|0;k=h+8|0;g=0;while(1){if(g>>>0>=f>>>0)break;l=c[e+(g<<2)>>2]|0;c[o>>2]=l;m=c[i>>2]|0;if(m>>>0>=(c[j>>2]|0)>>>0){n=0;da(212,k|0,o|0);m=n;n=0;if(m&1){q=5;break}}else{c[m>>2]=l;c[i>>2]=(c[i>>2]|0)+4}g=g+1|0}if((q|0)==5){g=sa()|0;P()|0;c[u>>2]=0;break}if(c[37104]|0){n=0;U(59,150452,56221)|0;o=n;n=0;if(o&1){q=6;break}n=0;U(59,150452,56226)|0;o=n;n=0;if(o&1){q=6;break}g=0;while(1){if(g>>>0>=f>>>0)break;if(g|0?(n=0,U(59,150452,140151)|0,o=n,n=0,o&1):0){q=4;break}n=0;U(60,150452,c[e+(g<<2)>>2]|0)|0;o=n;n=0;if(o&1){q=4;break}g=g+1|0}if((q|0)==4){g=sa()|0;i=u;P()|0;q=46;break}if((f|0)==0?(n=0,U(59,150452,133516)|0,q=n,n=0,q&1):0){q=6;break}n=0;U(59,150452,56261)|0;q=n;n=0;if(q&1){q=6;break}h=c[37047]|0;n=0;g=U(59,150452,56266)|0;q=n;n=0;if(q&1){q=6;break}n=0;g=U(78,g|0,h|0)|0;q=n;n=0;if(q&1){q=6;break}n=0;U(59,g|0,56285)|0;q=n;n=0;if(q&1){q=6;break}c[p>>2]=r;n=0;g=U(79,148180,p|0)|0;q=n;n=0;if(q&1){q=6;break}c[g>>2]=h;n=0;da(213,b|0,150452);b=n;n=0;if(b&1){q=6;break}n=0;g=U(59,150452,140151)|0;b=n;n=0;if(b&1){q=6;break}n=0;g=U(60,g|0,d|0)|0;d=n;n=0;if(d&1){q=6;break}n=0;g=U(59,g|0,56326)|0;d=n;n=0;if(d&1){q=6;break}n=0;g=U(60,g|0,f|0)|0;f=n;n=0;if(f&1){q=6;break}n=0;U(59,g|0,56341)|0;f=n;n=0;if(f&1){q=6;break}n=0;U(59,150452,56345)|0;f=n;n=0;if(f&1){q=6;break}}n=0;ca(503,148272);f=n;n=0;if(!(f&1)){c[u>>2]=0;c[t>>2]=r;n=0;h=U(80,a|0,t|0)|0;a=n;n=0;if(a&1){g=sa()|0;P()|0;h=c[t>>2]|0;c[t>>2]=0;if(h|0){Xrb(h);RCb(h)}KZa(148272);c[u>>2]=0;u=g;Ea(u|0)}else{g=c[t>>2]|0;c[t>>2]=0;if(!g){KZa(148272);c[u>>2]=0;yb=s;return h|0}Xrb(g);RCb(g);KZa(148272);c[u>>2]=0;yb=s;return h|0}}else q=6}while(0);if((q|0)==6){g=sa()|0;P()|0;i=u;h=c[u>>2]|0;q=46}if((q|0)==46){c[i>>2]=0;if(!h){u=g;Ea(u|0)}}Xrb(h);RCb(h);u=g;Ea(u|0);return 0}function ri(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,o=0,p=0,q=0,r=0;p=yb;yb=yb+64|0;q=p+48|0;m=p+24|0;i=p;o=p+12|0;a:do if(((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==90:0)?(g=b+2|0,(a[g>>0]|0)==84):0)?(k=e+4|0,j=((c[k>>2]|0)-(c[e>>2]|0)|0)/24|0,l=tk(g,d,e)|0,f=((c[k>>2]|0)-(c[e>>2]|0)|0)/24|0,(l|0)!=(g|0)):0){c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;T3(q,140140,Zzb(140140)|0);b:do if((j|0)==(f|0))h=26;else{n=0;da(4196,m|0,(c[e>>2]|0)+(j*24|0)|0);g=n;n=0;do if(g&1){b=sa()|0;P()|0}else{g=a[m+11>>0]|0;d=g<<24>>24<0;n=0;V(124,q|0,(d?c[m>>2]|0:m)|0,(d?c[m+4>>2]|0:g&255)|0)|0;g=n;n=0;if(g&1){b=sa()|0;P()|0;Chb(m);break}Chb(m);g=m+11|0;h=m+4|0;b=j;while(1){b=b+1|0;if((b|0)==(f|0)){h=26;break b}n=0;da(4196,i|0,(c[e>>2]|0)+(b*24|0)|0);d=n;n=0;if(d&1){h=21;break}n=0;V(128,i|0,0,140151)|0;d=n;n=0;if(d&1){h=22;break}c[m>>2]=c[i>>2];c[m+4>>2]=c[i+4>>2];c[m+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0}d=a[g>>0]|0;r=d<<24>>24<0;n=0;V(124,q|0,(r?c[m>>2]|0:m)|0,(r?c[h>>2]|0:d&255)|0)|0;d=n;n=0;if(d&1){h=23;break}Chb(m);Chb(i)}if((h|0)==21){b=sa()|0;P()|0}else if((h|0)==22){b=sa()|0;P()|0;h=24}else if((h|0)==23){b=sa()|0;P()|0;Chb(m);h=24}if((h|0)==24)Chb(i);break b}while(0)}while(0);do if((h|0)==26){n=0;U(216,q|0,139927)|0;r=n;n=0;if(r&1){b=sa()|0;P()|0;break}while(1){if((f|0)==(j|0))break;d=c[k>>2]|0;b=0;while(1){if((b|0)==-1)break;r=b+-1|0;J2a(d+(r*24|0)|0);b=r}c[k>>2]=d+-24;f=f+-1|0}c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}X6(m,o);b=c[k>>2]|0;if(b>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,m|0);r=n;n=0;if(r&1){b=sa()|0;P()|0;J2a(m);Chb(o);break}}else{I6(b,m);c[k>>2]=(c[k>>2]|0)+24}J2a(m);Chb(o);Chb(q);b=l;break a}while(0);Chb(q);Ea(b|0)}while(0);yb=p;return b|0}function si(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=yb;yb=yb+112|0;s=A+88|0;j=A+84|0;h=A+24|0;l=A+80|0;m=A+76|0;n=A+72|0;o=A+68|0;p=A+64|0;z=A+60|0;u=A;v=A+56|0;w=A+52|0;x=A+48|0;t=d+12|0;y=d+8|0;q=d+24|0;while(1){if(pqb(c[t>>2]|0)|0)break;k=cWa(y)|0;if(!(dub(c[k>>2]|0,c[q>>2]|0)|0))break;pYa(y)}g=0;while(1){if(g>>>0>=(WCb(c[t>>2]|0)|0)>>>0)break;k=uXa(y,g)|0;if(!(dub(c[k>>2]|0,c[q>>2]|0)|0))break;g=g+1|0}if(g|0){e=g;while(1){f=WCb(c[t>>2]|0)|0;if(e>>>0>=f>>>0)break;i=uXa(y,e)|0;k=uXa(y,e-g|0)|0;c[k>>2]=c[i>>2];e=e+1|0}Kka(y,f-g|0);Gsb(j,WCb(c[b+36>>2]|0)|0);e=d+28|0;f=c[e>>2]|0;Bqb(h,g);k=s;i=k+24|0;do{a[k>>0]=a[h>>0]|0;k=k+1|0;h=h+1|0}while((k|0)<(i|0));k=D7(j,s)|0;k=hIa(c[j>>2]|0,1,f,k)|0;c[e>>2]=k}if(c[d+32>>2]|0){yb=A;return}e=c[t>>2]|0;f=WCb(e)|0;switch(f|0){case 0:{Gsb(l,WCb(c[b+36>>2]|0)|0);z=c[l>>2]|0;y=Q6a(z,c[d+28>>2]|0)|0;c[m>>2]=c[d+24>>2];c[s>>2]=c[m>>2];z=zMa(z,y,nHa(z,s,0,0)|0)|0;Pwb(c[b+16>>2]|0,z);yb=A;return}case 1:{Gsb(n,WCb(c[b+36>>2]|0)|0);w=c[d+28>>2]|0;c[o>>2]=c[d+24>>2];z=c[n>>2]|0;c[s>>2]=c[o>>2];x=nHa(z,s,0,0)|0;y=G5a(y)|0;c[p>>2]=c[y>>2];c[s>>2]=c[p>>2];z=zOa(z,w,x,nHa(z,s,0,0)|0)|0;Pwb(c[b+16>>2]|0,z);yb=A;return}default:{p=c[b+40>>2]|0;WCb(p)|0;p=(c[p+28>>2]|0)>0;if((f>>>0<13|p^1)&(f>>>0<128|p)){yb=A;return}f=1;while(1){if(f>>>0>=(e+-1|0)>>>0)break;p=uXa(y,f)|0;if(cub(c[p>>2]|0,c[q>>2]|0)|0){r=24;break}f=f+1|0;e=c[t>>2]|0}if((r|0)==24){yb=A;return}Gsb(z,WCb(c[b+36>>2]|0)|0);g=cCa(WCb(c[b+32>>2]|0)|0,1)|0;e=c[z>>2]|0;f=qVa(e,g,c[d+28>>2]|0)|0;g=T3a(e,g,1)|0;Bqb(u,(WCb(c[t>>2]|0)|0)+-1|0);k=s;h=u;i=k+24|0;do{a[k>>0]=a[h>>0]|0;k=k+1|0;h=h+1|0}while((k|0)<(i|0));u=hIa(e,15,g,D7(z,s)|0)|0;z=cWa(y)|0;c[v>>2]=c[z>>2];c[s>>2]=c[v>>2];z=nHa(e,s,0,0)|0;c[w>>2]=c[d+24>>2];c[s>>2]=c[w>>2];z=zOa(e,u,z,nHa(e,s,0,0)|0)|0;y=G5a(y)|0;c[x>>2]=c[y>>2];c[s>>2]=c[x>>2];z=zOa(e,f,z,nHa(e,s,0,0)|0)|0;Pwb(c[b+16>>2]|0,z);yb=A;return}}}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,l=0,m=0;m=yb;yb=yb+32|0;l=m+8|0;k=m;a:do if((b|0)!=(d|0)){b:do switch(a[b>>0]|0){case 84:{j=e+4|0;i=((c[j>>2]|0)-(c[e>>2]|0)|0)/24|0;h=tk(b,d,e)|0;d=c[j>>2]|0;g=(d-(c[e>>2]|0)|0)/24|0;if((h|0)!=(b|0)&(g|0)==(i+1|0)){c[k>>2]=c[e+12>>2];FW(l,d+-24|0,k);b=e+20|0;f=c[b>>2]|0;if(f>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,l|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;V5(l);break b}}else{c[f+12>>2]=c[l+12>>2];c[f>>2]=c[l>>2];e=l+4|0;c[f+4>>2]=c[e>>2];k=l+8|0;c[f+8>>2]=c[k>>2];c[k>>2]=0;c[e>>2]=0;c[l>>2]=0;c[b>>2]=(c[b>>2]|0)+16}V5(l);b=h;break a}while(1){if((g|0)==(i|0))break a;f=0;while(1){if((f|0)==-1)break;l=f+-1|0;J2a(d+(l*24|0)|0);f=l}l=d+-24|0;c[j>>2]=l;g=g+-1|0;d=l}}case 68:{d=Fp(b,d,e)|0;if((d|0)==(b|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;c[k>>2]=c[e+12>>2];FW(l,f+-24|0,k);b=e+20|0;f=c[b>>2]|0;if(f>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,l|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;V5(l);break b}}else{c[f+12>>2]=c[l+12>>2];c[f>>2]=c[l>>2];e=l+4|0;c[f+4>>2]=c[e>>2];k=l+8|0;c[f+8>>2]=c[k>>2];c[k>>2]=0;c[e>>2]=0;c[l>>2]=0;c[b>>2]=(c[b>>2]|0)+16}V5(l);b=d;break a}case 83:{f=hh(b,d,e)|0;if((f|0)!=(b|0)){b=f;break a}if((d-b|0)<=2)break a;if((a[b+1>>0]|0)!=116)break a;j=b+2|0;g=XQ(j,d,e)|0;if((g|0)==(j|0))break a;f=e+4|0;d=c[f>>2]|0;if((c[e>>2]|0)==(d|0))break a;IGa(d+-24|0,0,140223)|0;b=(c[f>>2]|0)+-24|0;c[k>>2]=c[e+12>>2];FW(l,b,k);b=e+20|0;f=c[b>>2]|0;if(f>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,l|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;V5(l);break b}}else{c[f+12>>2]=c[l+12>>2];c[f>>2]=c[l>>2];e=l+4|0;c[f+4>>2]=c[e>>2];k=l+8|0;c[f+8>>2]=c[k>>2];c[k>>2]=0;c[e>>2]=0;c[l>>2]=0;c[b>>2]=(c[b>>2]|0)+16}V5(l);b=g;break a}default:break a}while(0);Ea(b|0)}while(0);yb=m;return b|0}function ui(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=yb;yb=yb+16|0;t=v+4|0;r=v;c[t>>2]=d;s=d+16|0;n=c[s>>2]|0;u=d;if(!n)ma(104460,104084,484,104487);o=d+4|0;if(c[o>>2]|0){yb=v;return}p=b+44|0;q=d+12|0;k=c[q>>2]|0;l=(c[k+4>>2]|0)==6;j=c[n+4>>2]|0;g=(j|0)==6;do if(l){if(g)ma(104508,104084,508,104487);if(!(c[b+52>>2]|0)){yb=v;return}else{i=c[(c[p>>2]|0)+16>>2]|0;h=Rqb(k)|0;g=Rqb(n)|0;m=34;break}}else{do if(g)if(!(c[f+8>>2]|0)){yb=v;return}else{g=c[(c[f>>2]|0)+16>>2]|0;h=Rqb(k)|0;m=25;break}else{i=f+4|0;h=c[f>>2]|0;while(1){if((i|0)==(h|0)){m=50;break}g=c[h+16>>2]|0;if(Jga(p,g)|0){m=24;break}g=c[h+4>>2]|0;a:do if(!g)while(1){g=c[h+8>>2]|0;if((h|0)==(c[g>>2]|0))break a;h=g}else while(1){h=c[g>>2]|0;if(!h)break;g=h}while(0);h=g}if((m|0)==24){h=Rqb(k)|0;if(l){i=g;g=n;break}else{m=25;break}}else if((m|0)==50){yb=v;return}}while(0);do if((m|0)==25){if(((h|0?!(eCb(c[h+8>>2]|0)|0):0)?WCb(c[h+16>>2]|0)|0:0)?(n=cWa(h+12|0)|0,Gzb(c[c[n>>2]>>2]|0)|0):0){j=c[s>>2]|0;i=g;g=j;j=c[j+4>>2]|0;break}g=b+160|0;h=c[g>>2]|0;if((h|0)==(c[b+164>>2]|0)){_M(b+156|0,t);yb=v;return}else{c[h>>2]=u;c[g>>2]=(c[g>>2]|0)+4;yb=v;return}}while(0);g=Rqb(g)|0;if((j|0)!=6)m=34}while(0);do if((m|0)==34){if(((g|0?!(eCb(c[g+8>>2]|0)|0):0)?WCb(c[g+16>>2]|0)|0:0)?(n=cWa(g+12|0)|0,Gzb(c[c[n>>2]>>2]|0)|0):0)break;g=b+160|0;h=c[g>>2]|0;if((h|0)==(c[b+164>>2]|0)){_M(b+156|0,t);yb=v;return}else{c[h>>2]=u;c[g>>2]=(c[g>>2]|0)+4;yb=v;return}}while(0);if((c[(c[q>>2]|0)+4>>2]|0)!=6?(u=WZ(f,i)|0,u=c[u>>2]|0,f=(Keb(c[u>>2]|0)|0)+12|0,f=c[f>>2]|0,t=uXa(h+12|0,(WCb(c[h+16>>2]|0)|0)+-1|0)|0,c[t>>2]=f,Gjb(c[u>>2]|0),_u(h),(c[h+4>>2]|0)==0):0)ma(104399,104084,554,104487);if((c[(c[s>>2]|0)+4>>2]|0)!=6?(u=WZ(p,i)|0,u=c[u>>2]|0,s=(Keb(c[u>>2]|0)|0)+12|0,s=c[s>>2]|0,t=uXa(g+12|0,(WCb(c[g+16>>2]|0)|0)+-1|0)|0,c[t>>2]=s,Gjb(c[u>>2]|0),_u(g),(c[g+4>>2]|0)==0):0)ma(104542,104084,561,104487);gQ(d);if(!(c[o>>2]|0))ma(104442,104084,564,104487);Gsb(r,WCb(c[b+36>>2]|0)|0);u=tVa(c[r>>2]|0,i,d)|0;c[e>>2]=u;a[b+92>>0]=1;yb=v;return}function vi(){var a=0;c[36995]=0;c[36994]=50024;n=0;ba(10);a=n;n=0;if(a&1){a=sa()|0;P()|0}else{c[37030]=0;c[37031]=0;c[37032]=0;a=Zzb(136425)|0;n=0;ea(95,148120,136425,a|0);a=n;n=0;if(a&1){a=sa()|0;P()|0}else{c[36997]=c[36996];$rb();n=0;ba(11);a=n;n=0;do if((((((((((((((!(a&1)?(_rb(),n=0,ba(12),a=n,n=0,!(a&1)):0)?(mtb(),n=0,ba(13),a=n,n=0,!(a&1)):0)?(wsb(),n=0,ba(14),a=n,n=0,!(a&1)):0)?(ppb(),n=0,ba(15),a=n,n=0,!(a&1)):0)?(opb(),n=0,ba(16),a=n,n=0,!(a&1)):0)?(Wob(),n=0,ba(17),a=n,n=0,!(a&1)):0)?(Xob(),n=0,ba(18),a=n,n=0,!(a&1)):0)?(oub(),n=0,ba(19),a=n,n=0,!(a&1)):0)?(nub(),n=0,ba(20),a=n,n=0,!(a&1)):0)?(Ajb(),n=0,ba(21),a=n,n=0,!(a&1)):0)?(zjb(),n=0,ba(22),a=n,n=0,!(a&1)):0)?(yjb(),n=0,ba(23),a=n,n=0,!(a&1)):0)?(xjb(),n=0,ba(24),a=n,n=0,!(a&1)):0)?(nqb(),n=0,ba(25),a=n,n=0,!(a&1)):0){mqb();n=0;ba(26);a=n;n=0;if(a&1)break;lqb();n=0;ba(27);a=n;n=0;if(a&1)break;kqb();n=0;ba(28);a=n;n=0;if(a&1)break;ijb();n=0;ba(29);a=n;n=0;if(a&1)break;hjb();n=0;ba(30);a=n;n=0;if(a&1)break;gjb();n=0;ba(31);a=n;n=0;if(a&1)break;fjb();n=0;ba(32);a=n;n=0;if(a&1)break;K_a();n=0;ba(33);a=n;n=0;if(a&1)break;J_a();n=0;ba(34);a=n;n=0;if(a&1)break;a$a();n=0;ba(35);a=n;n=0;if(a&1)break;$_a();n=0;ba(36);a=n;n=0;if(a&1)break;Jrb();n=0;ba(37);a=n;n=0;if(a&1)break;Irb();n=0;ba(38);a=n;n=0;if(a&1)break;return}while(0);a=sa()|0;P()|0;Chb(148120)}sGa(147984)}Ea(a|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,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=yb;yb=yb+128|0;y=z+108|0;t=z+104|0;u=z+100|0;v=z+96|0;w=z+92|0;n=z+88|0;x=z+84|0;o=z+80|0;p=z+76|0;q=z+72|0;r=z+68|0;s=z+64|0;g=z+60|0;h=z+24|0;i=z+56|0;j=z;k=z+52|0;l=z+112|0;m=z+48|0;switch(c[e+4>>2]|0){case 1:{switch(a[e+8>>0]|0){case 1:{g=c[d>>2]|0;if(!(a[e+9>>0]&1)){e=c[g+36>>2]|0;c[u>>2]=c[f>>2];c[y>>2]=c[u>>2];Bqb(b,(Gb[e&255](d,y)|0)&255);yb=z;return}else{e=c[g+32>>2]|0;c[t>>2]=c[f>>2];c[y>>2]=c[t>>2];Bqb(b,(Gb[e&255](d,y)|0)<<24>>24);yb=z;return}}case 2:{g=c[d>>2]|0;if(!(a[e+9>>0]&1)){e=c[g+44>>2]|0;c[w>>2]=c[f>>2];c[y>>2]=c[w>>2];Bqb(b,(Gb[e&255](d,y)|0)&65535);yb=z;return}else{e=c[g+40>>2]|0;c[v>>2]=c[f>>2];c[y>>2]=c[v>>2];Bqb(b,(Gb[e&255](d,y)|0)<<16>>16);yb=z;return}}case 4:{e=c[(c[d>>2]|0)+48>>2]|0;c[n>>2]=c[f>>2];c[y>>2]=c[n>>2];Bqb(b,Gb[e&255](d,y)|0);yb=z;return}default:ma(141129,96854,771,134498)}break}case 2:{switch(a[e+8>>0]|0){case 1:{g=c[d>>2]|0;if(!(a[e+9>>0]&1)){e=c[g+36>>2]|0;c[o>>2]=c[f>>2];c[y>>2]=c[o>>2];Heb(b,(Gb[e&255](d,y)|0)&255,0);yb=z;return}else{e=c[g+32>>2]|0;c[x>>2]=c[f>>2];c[y>>2]=c[x>>2];f=(Gb[e&255](d,y)|0)<<24>>24;Heb(b,f,((f|0)<0)<<31>>31);yb=z;return}}case 2:{g=c[d>>2]|0;if(!(a[e+9>>0]&1)){e=c[g+44>>2]|0;c[q>>2]=c[f>>2];c[y>>2]=c[q>>2];Heb(b,(Gb[e&255](d,y)|0)&65535,0);yb=z;return}else{e=c[g+40>>2]|0;c[p>>2]=c[f>>2];c[y>>2]=c[p>>2];f=(Gb[e&255](d,y)|0)<<16>>16;Heb(b,f,((f|0)<0)<<31>>31);yb=z;return}}case 4:{g=c[d>>2]|0;if(!(a[e+9>>0]&1)){e=c[g+52>>2]|0;c[s>>2]=c[f>>2];c[y>>2]=c[s>>2];Heb(b,Gb[e&255](d,y)|0,0);yb=z;return}else{e=c[g+48>>2]|0;c[r>>2]=c[f>>2];c[y>>2]=c[r>>2];f=Gb[e&255](d,y)|0;Heb(b,f,((f|0)<0)<<31>>31);yb=z;return}}case 8:{e=c[(c[d>>2]|0)+56>>2]|0;c[g>>2]=c[f>>2];c[y>>2]=c[g>>2];Heb(b,Gb[e&255](d,y)|0,P()|0);yb=z;return}default:ma(141129,96854,781,134498)}break}case 3:{e=c[(c[d>>2]|0)+52>>2]|0;c[i>>2]=c[f>>2];c[y>>2]=c[i>>2];Bqb(h,Gb[e&255](d,y)|0);r_a(b,h);yb=z;return}case 4:{e=c[(c[d>>2]|0)+60>>2]|0;c[k>>2]=c[f>>2];c[y>>2]=c[k>>2];Heb(j,Gb[e&255](d,y)|0,P()|0);qUa(b,j);yb=z;return}case 5:{e=c[(c[d>>2]|0)+64>>2]|0;c[m>>2]=c[f>>2];c[y>>2]=c[m>>2];Tb[e&255](l,d,y);M0a(b,l);yb=z;return}case 6:case 0:{ma(141129,96854,789,134498);break}default:ma(141129,96854,791,134498)}}function xi(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,o=0,p=0,q=0,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;z=yb;yb=yb+80|0;D=z+64|0;E=z+48|0;B=z+32|0;A=z+16|0;y=z;l=b+8|0;v=qqa(a,c[l>>2]|0)|0;o=b+12|0;d=qqa(a,c[o>>2]|0)|0;if(!v)if(d)ma(81580,81381,1524,81608);else{yb=z;return}if(!d)ma(81620,81381,1527,81608);iG(D,a,1);n=0;ea(145,E|0,a|0,1);v=n;n=0;if(v&1){E=sa()|0;P()|0;lNa(D);Ea(E|0)}n=0;ea(145,B|0,a|0,1);v=n;n=0;if(v&1){d=sa()|0;P()|0}else{s=a+44|0;v=c[s>>2]|0;n=0;d=S(280,B|0)|0;F=n;n=0;a:do if((((((((((!(F&1)?(n=0,w=V(70,c[v>>2]|0,d|0,c[b+16>>2]|0)|0,F=n,n=0,!(F&1)):0)?(e=c[s>>2]|0,n=0,f=S(280,E|0)|0,F=n,n=0,!(F&1)):0)?(g=c[s>>2]|0,n=0,h=S(280,B|0)|0,F=n,n=0,!(F&1)):0)?(n=0,i=V(71,c[g>>2]|0,h|0,1)|0,F=n,n=0,!(F&1)):0)?(n=0,j=W(22,c[g>>2]|0,i|0,c[l>>2]|0,c[o>>2]|0)|0,F=n,n=0,!(F&1)):0)?(n=0,x=V(70,c[e>>2]|0,f|0,j|0)|0,F=n,n=0,!(F&1)):0)?(t=c[s>>2]|0,n=0,u=S(280,D|0)|0,F=n,n=0,!(F&1)):0)?(p=c[s>>2]|0,n=0,k=S(280,B|0)|0,F=n,n=0,!(F&1)):0)?(n=0,q=V(71,c[p>>2]|0,k|0,1)|0,F=n,n=0,!(F&1)):0)?(m=c[s>>2]|0,n=0,ea(146,A|0,a|0,c[l>>2]|0),F=n,n=0,!(F&1)):0){n=0;d=S(280,A|0)|0;F=n;n=0;do if(!(F&1)?(n=0,r=V(71,c[m>>2]|0,d|0,1)|0,F=n,n=0,!(F&1)):0){b=c[s>>2]|0;n=0;ea(146,y|0,a|0,c[o>>2]|0);F=n;n=0;if(F&1){C=35;break}n=0;d=S(280,y|0)|0;F=n;n=0;do if(!(F&1)){n=0;d=V(71,c[b>>2]|0,d|0,1)|0;F=n;n=0;if(F&1)break;n=0;d=W(22,c[p>>2]|0,q|0,r|0,d|0)|0;F=n;n=0;if(F&1)break;n=0;e=V(70,c[t>>2]|0,u|0,d|0)|0;F=n;n=0;if(F&1)break;d=c[s>>2]|0;n=0;b=S(280,E|0)|0;F=n;n=0;if(F&1)break;n=0;d=V(71,c[d>>2]|0,b|0,1)|0;F=n;n=0;if(F&1)break;n=0;d=Y(25,v|0,w|0,x|0,e|0,d|0)|0;F=n;n=0;if(F&1)break;lNa(y);lNa(A);n=0;ea(147,a|0,d|0,D|0);F=n;n=0;if(F&1){C=34;break a}Pwb(c[a+16>>2]|0,d);lNa(B);lNa(E);lNa(D);yb=z;return}while(0);d=sa()|0;P()|0;lNa(y)}else C=35;while(0);if((C|0)==35){d=sa()|0;P()|0}lNa(A)}else C=34;while(0);if((C|0)==34){d=sa()|0;P()|0}lNa(B)}lNa(E);F=d;lNa(D);Ea(F|0)}function yi(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,o=0,p=0,q=0,r=0,s=0;r=yb;yb=yb+16|0;q=r;if(!(a[d+8>>0]&1)){yb=r;return}o=Yrb(d)|0;p=b+4|0;gQa(c[b>>2]|0,c[p>>2]|0)|0;if(o){SEa(c[b>>2]|0,40)|0;p9(b,d);iw(b,(c[b+24>>2]|0)+84|0);o=SEa(c[b>>2]|0,41)|0;k=b+16|0;IWa(o,c[k>>2]|0)|0}else{iw(b,d);SEa(c[b>>2]|0,10)|0;k=b+16|0}l=c[d+28>>2]|0;m=q+8|0;o=q+4|0;j=c[d+24>>2]|0;a:while(1){if((j|0)==(l|0)){d=33;break}reb(q,j);n=0;U(165,c[b>>2]|0,c[p>>2]|0)|0;i=n;n=0;if(i&1){d=35;break}n=0;U(62,c[b>>2]|0,40)|0;i=n;n=0;if(i&1){d=35;break}n=0;da(2321,c[b>>2]|0,98580);i=n;n=0;if(i&1){d=35;break}n=0;da(2322,b|0,c[q>>2]|0);i=n;n=0;if(i&1){d=35;break}n=0;U(59,c[b>>2]|0,98586)|0;i=n;n=0;if(i&1){d=35;break}g=c[o>>2]|0;f=(c[m>>2]|0)-g|0;e=0;while(1){if(e>>>0>=f>>>0)break;h=a[g+e>>0]|0;b:do switch(h<<24>>24){case 10:{n=0;U(59,c[b>>2]|0,98589)|0;i=n;n=0;if(i&1){d=34;break a}break}case 13:{n=0;U(59,c[b>>2]|0,98592)|0;i=n;n=0;if(i&1){d=34;break a}break}case 9:{n=0;U(59,c[b>>2]|0,98596)|0;i=n;n=0;if(i&1){d=34;break a}break}case 12:{n=0;U(59,c[b>>2]|0,98599)|0;i=n;n=0;if(i&1){d=34;break a}break}case 8:{n=0;U(59,c[b>>2]|0,98603)|0;i=n;n=0;if(i&1){d=34;break a}break}case 92:{n=0;U(59,c[b>>2]|0,98607)|0;i=n;n=0;if(i&1){d=34;break a}break}case 34:{n=0;U(59,c[b>>2]|0,98610)|0;i=n;n=0;if(i&1){d=34;break a}break}case 39:{n=0;U(59,c[b>>2]|0,98613)|0;i=n;n=0;if(i&1){d=34;break a}break}default:{i=c[b>>2]|0;if((h+-32&255)<95){n=0;U(166,i|0,h|0)|0;i=n;n=0;if(i&1){d=34;break a}else break b}Mpb(i+(c[(c[i>>2]|0)+-12>>2]|0)|0);n=0;d=U(62,i|0,92)|0;s=n;n=0;if(s&1){d=34;break a}n=0;d=U(63,d|0,(h&255)>>>4&255|0)|0;s=n;n=0;if(s&1){d=34;break a}n=0;U(63,d|0,h&15|0)|0;s=n;n=0;if(s&1){d=34;break a}Npb(i+(c[(c[i>>2]|0)+-12>>2]|0)|0)}}while(0);e=e+1|0}n=0;d=U(59,c[b>>2]|0,98616)|0;s=n;n=0;if(s&1){d=35;break}n=0;U(59,d|0,c[k>>2]|0)|0;s=n;n=0;if(s&1){d=35;break}Nrb(q);j=j+16|0}if((d|0)==33){yb=r;return}else if((d|0)==34){s=sa()|0;P()|0;Nrb(q);Ea(s|0)}else if((d|0)==35){s=sa()|0;P()|0;Nrb(q);Ea(s|0)}}function zi(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,o=0,p=0,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=yb;yb=yb+32|0;z=A+20|0;t=A+16|0;u=A+12|0;v=A+8|0;w=A+4|0;x=A;y=a+20|0;v2(z,c[(c[y>>2]|0)+44>>2]|0);m=c[z+4>>2]|0;o=a+16|0;p=b+12|0;q=b+12|0;r=a+28|0;s=a+32|0;k=a+24|0;a=c[z>>2]|0;a:while(1){l=a;if((m|0)==(l|0)){a=39;break}c[t>>2]=c[a>>2];n=0;a=U(99,b|0,t|0)|0;j=n;n=0;if(j&1){a=41;break}b:do switch(c[a+8>>2]|0){case 0:break;case 1:{a=c[(c[a>>2]|0)+16>>2]|0;if(a|0){c[(c[t>>2]|0)+8>>2]=c[a+8>>2];break b}a=c[t>>2]|0;if(!(Rjb(c[y>>2]|0,c[a+8>>2]|0)|0)){n=0;a=U(149,c[a+4>>2]|0,c[o>>2]|0)|0;j=n;n=0;if(j&1){a=41;break a}c[u>>2]=c[t>>2];n=0;d=U(187,q|0,u|0)|0;j=n;n=0;if(j&1){a=41;break a}c[c[d>>2]>>2]=a}break}default:{n=0;h=U(186,c[y>>2]|0,c[(c[t>>2]|0)+4>>2]|0)|0;j=n;n=0;if(j&1){a=41;break a}j=(c[t>>2]|0)+8|0;i=c[j>>2]|0;c[j>>2]=h;Gsb(v,c[o>>2]|0);j=a+4|0;g=c[v>>2]|0;a=c[a>>2]|0;while(1){if((j|0)==(a|0))break b;d=c[a+16>>2]|0;do if(!d){d=c[y>>2]|0;if(Rjb(d,i)|0){n=0;d=U(84,d|0,i|0)|0;f=n;n=0;if(f&1){a=40;break a}n=0;d=V(71,g|0,i|0,d|0)|0;f=n;n=0;if(f&1){a=40;break a}n=0;e=V(70,g|0,h|0,d|0)|0;f=n;n=0;if(f&1){a=40;break a}c[x>>2]=e;d=c[r>>2]|0;if(d>>>0>=(c[s>>2]|0)>>>0){n=0;da(372,k|0,x|0);f=n;n=0;if(f&1){a=40;break a}else break}else{c[d>>2]=e;c[r>>2]=(c[r>>2]|0)+4;break}}}else{d=d+12|0;f=c[d>>2]|0;c[w>>2]=f;n=0;f=V(94,g|0,h|0,f|0)|0;e=n;n=0;if(e&1){a=40;break a}c[d>>2]=f;if(Jga(p,c[w>>2]|0)|0){n=0;e=U(188,q|0,w|0)|0;B=n;n=0;if(B&1){a=40;break a}if((c[e>>2]|0)!=(d|0)){a=19;break a}n=0;d=U(188,q|0,w|0)|0;B=n;n=0;if(B&1){a=40;break a}c[d>>2]=f+12}}while(0);d=a;a=c[d+4>>2]|0;c:do if(!a)while(1){a=c[d+8>>2]|0;if((d|0)==(c[a>>2]|0))break c;d=a}else while(1){d=c[a>>2]|0;if(!d)break;a=d}while(0)}}}while(0);a=l+4|0}if((a|0)==19){n=0;fa(75,108963,109001,118,109032);n=0;B=sa()|0;P()|0;Htb(z);Ea(B|0)}else if((a|0)==39){Htb(z);yb=A;return}else if((a|0)==40){B=sa()|0;P()|0;Htb(z);Ea(B|0)}else if((a|0)==41){B=sa()|0;P()|0;Htb(z);Ea(B|0)}}function Ai(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=c[e>>2]|0;if((g|0)!=0?(i=c[g>>2]|0,(i|0)!=0):0)if(!b){j=h;g=f;l=25}else{c[g>>2]=0;g=f;k=h;l=46}else l=5;a:do if((l|0)==5){g=(b|0)!=0;if(c[c[11771]>>2]|0)if(g){i=b;g=f;l=32;break}else{g=f;l=15;break}if(!g){f=y2(h)|0;l=62;break}b:do if(f){j=b;g=f;while(1){i=a[h>>0]|0;if(!(i<<24>>24))break;h=h+1|0;c[j>>2]=i<<24>>24&57343;g=g+-1|0;if(!g)break b;else j=j+4|0}c[j>>2]=0;c[e>>2]=0;f=f-g|0;l=62;break a}while(0);c[e>>2]=h;l=62}while(0);c:while(1){d:do if((l|0)==15){while(1){i=a[h>>0]|0;if(((i&255)+-1|0)>>>0<127?(h&3|0)==0:0){l=c[h>>2]|0;i=l&255;if(!((l+-16843009|l)&-2139062144)){do{h=h+4|0;g=g+-4|0;i=c[h>>2]|0}while(((i+-16843009|i)&-2139062144|0)==0);i=i&255}}j=i&255;if((j+-1|0)>>>0>=127)break;g=g+-1|0;h=h+1|0}j=j+-194|0;if(j>>>0>50)l=56;else{i=c[23968+(j<<2)>>2]|0;j=h+1|0;l=25;continue c}}else if((l|0)==25){l=(d[j>>0]|0)>>>3;if((l+-16|l+(i>>26))>>>0>7){h=j;l=54}else{h=j+1|0;if(i&33554432){if((a[h>>0]&-64)<<24>>24!=-128){h=j;l=54;break}h=j+2|0;if(i&524288){if((a[h>>0]&-64)<<24>>24!=-128){h=j;l=54;break}h=j+3|0}}g=g+-1|0;l=15;continue c}}else if((l|0)==32){l=0;e:do if(g){j=i;while(1){k=a[h>>0]|0;i=k&255;b=i+-1|0;if(b>>>0<127){if((h&3|0)==0&g>>>0>4){i=j;while(1){j=c[h>>2]|0;if((j+-16843009|j)&-2139062144|0){b=h;k=j&255;break}c[i>>2]=j&255;c[i+4>>2]=d[h+1>>0];c[i+8>>2]=d[h+2>>0];b=h;h=h+4|0;k=i;i=i+16|0;c[k+12>>2]=d[b+3>>0];g=g+-4|0;if(g>>>0<=4){l=40;break}}if((l|0)==40){b=h;k=a[h>>0]|0}l=k&255;j=i;h=b;b=l+-1|0;i=l;l=42}}else l=42;if((l|0)==42){l=0;if(b>>>0>=127)break}h=h+1|0;c[j>>2]=i;g=g+-1|0;if(!g)break e;else j=j+4|0}i=i+-194|0;if(i>>>0>50){b=j;i=k;l=56;break d}i=c[23968+(i<<2)>>2]|0;b=j;k=h+1|0;l=46;continue c}while(0);c[e>>2]=h;l=62;continue c}else if((l|0)==46){l=0;j=d[k>>0]|0;h=j>>>3;if((h+-16|h+(i>>26))>>>0>7){h=k;l=54}else{h=k+1|0;i=j+-128|i<<6;do if((i|0)<0){j=(d[h>>0]|0)+-128|0;if(j>>>0<=63){h=k+2|0;i=j|i<<6;if((i|0)>=0)break;j=(d[h>>0]|0)+-128|0;if(j>>>0<=63){h=k+3|0;i=j|i<<6;break}}c[37419]=84;h=k+-1|0;break d}while(0);c[b>>2]=i;i=b+4|0;g=g+-1|0;l=32;continue c}}else if((l|0)==62)return f|0;while(0);if((l|0)==54){j=h+-1|0;if(!i){h=j;i=a[j>>0]|0;l=56}else{h=j;f=b;l=60}}if((l|0)==56)if(!(i<<24>>24)){if(b|0){c[b>>2]=0;c[e>>2]=0}f=f-g|0;l=62;continue}else{f=b;l=60}if((l|0)==60){c[37419]=84;if(!f){f=-1;l=62;continue}}c[e>>2]=h;f=-1;l=62}return 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,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;G=yb;yb=yb+112|0;r=G+100|0;H=G+88|0;m=G+80|0;j=G+72|0;o=G+64|0;q=G+48|0;p=G+40|0;F=G+24|0;s=G+8|0;t=G;c[H>>2]=0;k=H+4|0;c[k>>2]=0;l=H+8|0;c[l>>2]=0;h=b+8|0;nrb(m,h);Hib(j,h);h=m+4|0;i=c[j>>2]|0;j=c[j+4>>2]|0;u=a+44|0;while(1){if(!(dhb(c[m>>2]|0,c[h>>2]|0,i,j)|0)){f=20;break}n=0;e=S(228,m|0)|0;g=n;n=0;if(g&1){f=15;break}e=c[e>>2]|0;c[o>>2]=e;f=c[k>>2]|0;g=e;if((f|0)==(c[l>>2]|0)){n=0;da(332,H|0,o|0);f=n;n=0;if(f&1){f=15;break}}else{c[f>>2]=e;c[k>>2]=(c[k>>2]|0)+4}if(qqa(a,g)|0){n=0;ea(146,q|0,a|0,g|0);g=n;n=0;if(g&1){f=15;break}e=c[u>>2]|0;n=0;f=S(280,q|0)|0;g=n;n=0;if(g&1){f=18;break}n=0;e=V(71,c[e>>2]|0,f|0,1)|0;g=n;n=0;if(g&1){f=18;break}c[p>>2]=e;f=c[k>>2]|0;if(f>>>0>=(c[l>>2]|0)>>>0){n=0;da(372,H|0,p|0);g=n;n=0;if(g&1){f=18;break}}else{c[f>>2]=e;c[k>>2]=(c[k>>2]|0)+4}lNa(q)}hob(m)}if((f|0)==15){e=sa()|0;P()|0}else if((f|0)==18){G=sa()|0;P()|0;lNa(q);Vob(H);Ea(G|0)}else if((f|0)==20){e=c[b+4>>2]|0;if((e|0)==2){n=0;ea(145,F|0,a|0,1);q=n;n=0;if(!(q&1)){n=0;ea(145,s|0,a|0,1);q=n;n=0;if(q&1){e=sa()|0;P()|0}else{e=c[u>>2]|0;n=0;f=S(280,F|0)|0;q=n;n=0;if(((((((((!(q&1)?(n=0,v=V(79,c[d+16>>2]|0,H|0,1)|0,d=n,n=0,!(d&1)):0)?(n=0,w=V(70,c[e>>2]|0,f|0,v|0)|0,v=n,n=0,!(v&1)):0)?(x=c[u>>2]|0,n=0,y=S(280,s|0)|0,v=n,n=0,!(v&1)):0)?(z=c[u>>2]|0,Ftb(t,c[37179]|0),z=c[z>>2]|0,n=0,c[r>>2]=c[t>>2],z=V(40,z|0,r|0,1)|0,v=n,n=0,!(v&1)):0)?(n=0,A=V(70,c[x>>2]|0,y|0,z|0)|0,z=n,n=0,!(z&1)):0)?(B=c[u>>2]|0,n=0,C=S(280,F|0)|0,z=n,n=0,!(z&1)):0)?(n=0,D=V(71,c[B>>2]|0,C|0,1)|0,C=n,n=0,!(C&1)):0)?(n=0,E=W(20,c[u>>2]|0,w|0,A|0,D|0)|0,D=n,n=0,!(D&1)):0)?(n=0,ea(147,a|0,E|0,s|0),D=n,n=0,!(D&1)):0){Pwb(c[a+16>>2]|0,E);lNa(s);lNa(F);Vob(H);yb=G;return}e=sa()|0;P()|0;lNa(s)}lNa(F);G=e;Vob(H);Ea(G|0)}}else{n=0;e=V(79,c[d+16>>2]|0,H|0,e|0)|0;F=n;n=0;if(!(F&1)){Pwb(c[a+16>>2]|0,e);Vob(H);yb=G;return}}e=sa()|0;P()|0}G=e;Vob(H);Ea(G|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,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;G=yb;yb=yb+112|0;r=G+100|0;H=G+88|0;m=G+80|0;j=G+72|0;o=G+64|0;q=G+48|0;p=G+40|0;F=G+24|0;s=G+8|0;t=G;c[H>>2]=0;k=H+4|0;c[k>>2]=0;l=H+8|0;c[l>>2]=0;h=b+8|0;nrb(m,h);Hib(j,h);h=m+4|0;i=c[j>>2]|0;j=c[j+4>>2]|0;u=a+44|0;while(1){if(!(dhb(c[m>>2]|0,c[h>>2]|0,i,j)|0)){f=20;break}n=0;e=S(228,m|0)|0;g=n;n=0;if(g&1){f=15;break}e=c[e>>2]|0;c[o>>2]=e;f=c[k>>2]|0;g=e;if((f|0)==(c[l>>2]|0)){n=0;da(332,H|0,o|0);f=n;n=0;if(f&1){f=15;break}}else{c[f>>2]=e;c[k>>2]=(c[k>>2]|0)+4}if(qqa(a,g)|0){n=0;ea(146,q|0,a|0,g|0);g=n;n=0;if(g&1){f=15;break}e=c[u>>2]|0;n=0;f=S(280,q|0)|0;g=n;n=0;if(g&1){f=18;break}n=0;e=V(71,c[e>>2]|0,f|0,1)|0;g=n;n=0;if(g&1){f=18;break}c[p>>2]=e;f=c[k>>2]|0;if(f>>>0>=(c[l>>2]|0)>>>0){n=0;da(372,H|0,p|0);g=n;n=0;if(g&1){f=18;break}}else{c[f>>2]=e;c[k>>2]=(c[k>>2]|0)+4}lNa(q)}hob(m)}if((f|0)==15){e=sa()|0;P()|0}else if((f|0)==18){G=sa()|0;P()|0;lNa(q);Vob(H);Ea(G|0)}else if((f|0)==20){e=c[b+4>>2]|0;if((e|0)==2){n=0;ea(145,F|0,a|0,1);q=n;n=0;if(!(q&1)){n=0;ea(145,s|0,a|0,1);q=n;n=0;if(q&1){e=sa()|0;P()|0}else{e=c[u>>2]|0;n=0;f=S(280,F|0)|0;q=n;n=0;if(((((((((!(q&1)?(n=0,v=V(80,c[d+16>>2]|0,H|0,1)|0,d=n,n=0,!(d&1)):0)?(n=0,w=V(70,c[e>>2]|0,f|0,v|0)|0,v=n,n=0,!(v&1)):0)?(x=c[u>>2]|0,n=0,y=S(280,s|0)|0,v=n,n=0,!(v&1)):0)?(z=c[u>>2]|0,Ftb(t,c[37179]|0),z=c[z>>2]|0,n=0,c[r>>2]=c[t>>2],z=V(40,z|0,r|0,1)|0,v=n,n=0,!(v&1)):0)?(n=0,A=V(70,c[x>>2]|0,y|0,z|0)|0,z=n,n=0,!(z&1)):0)?(B=c[u>>2]|0,n=0,C=S(280,F|0)|0,z=n,n=0,!(z&1)):0)?(n=0,D=V(71,c[B>>2]|0,C|0,1)|0,C=n,n=0,!(C&1)):0)?(n=0,E=W(20,c[u>>2]|0,w|0,A|0,D|0)|0,D=n,n=0,!(D&1)):0)?(n=0,ea(147,a|0,E|0,s|0),D=n,n=0,!(D&1)):0){Pwb(c[a+16>>2]|0,E);lNa(s);lNa(F);Vob(H);yb=G;return}e=sa()|0;P()|0;lNa(s)}lNa(F);G=e;Vob(H);Ea(G|0)}}else{n=0;e=V(80,c[d+16>>2]|0,H|0,e|0)|0;F=n;n=0;if(!(F&1)){Pwb(c[a+16>>2]|0,e);Vob(H);yb=G;return}}e=sa()|0;P()|0}G=e;Vob(H);Ea(G|0)}function Di(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=d+11|0;f=a[i>>0]|0;j=d+4|0;e=c[j>>2]|0;g=f&255;h=f<<24>>24<0?e:g;a:do if(!h)rba(b,d);else{do if((Zzb(140749)|0)==(h|0)){n=0;e=V(129,d|0,140749,h|0)|0;h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}if(!e){FMa(d,140761);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;T3(b,140832,Zzb(140832)|0);break a}else{f=a[i>>0]|0;h=f&255;e=c[j>>2]|0;break}}else h=g;while(0);g=Zzb(140845)|0;do if((g|0)==((f<<24>>24<0?e:h)|0)){n=0;e=V(129,d|0,140845,g|0)|0;h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}if(!e){FMa(d,140858);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;T3(b,140908,Zzb(140908)|0);break a}else{f=a[i>>0]|0;h=f&255;e=c[j>>2]|0;break}}while(0);g=Zzb(140922)|0;do if((g|0)==((f<<24>>24<0?e:h)|0)){n=0;e=V(129,d|0,140922,g|0)|0;h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}if(!e){FMa(d,140935);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;T3(b,140985,Zzb(140985)|0);break a}else{f=a[i>>0]|0;h=f&255;e=c[j>>2]|0;break}}while(0);g=Zzb(140999)|0;do if((g|0)==((f<<24>>24<0?e:h)|0)){n=0;e=V(129,d|0,140999,g|0)|0;h=n;n=0;if(h&1){h=ta(0)|0;P()|0;yub(h)}if(!e){FMa(d,141013);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;T3(b,141064,Zzb(141064)|0);break a}else{f=a[i>>0]|0;g=f&255;e=c[j>>2]|0;break}}else g=h;while(0);i=f<<24>>24<0;j=i?c[d>>2]|0:d;e=j+(i?e:g)|0;b:do if((a[e+-1>>0]|0)==62){h=1;c:while(1){d:while(1){i=e+-1|0;if((i|0)==(j|0))break c;g=e+-2|0;switch(a[g>>0]|0){case 60:{f=35;break d}case 62:{f=36;break d}default:e=i}}if((f|0)==35){e=h+-1|0;if(!e)break b}else if((f|0)==36)e=h+1|0;h=e;e=i}c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;e=0;while(1){if((e|0)==3)break a;c[b+(e<<2)>>2]=0;e=e+1|0}}else g=e;while(0);e=g;while(1){f=e+-1|0;if((f|0)==(j|0)){e=j;break}if((a[f>>0]|0)==58)break;else e=f}c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;NR(b,e,g)}while(0);return}function Ei(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,o=0,p=0,q=0,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=yb;yb=yb+80|0;D=N+56|0;L=N+40|0;M=N+24|0;i=N;iG(L,b,1);n=0;ea(145,M|0,b|0,1);I=n;n=0;if(I&1){N=sa()|0;P()|0;lNa(L);Ea(N|0)}I=b+44|0;j=c[I>>2]|0;n=0;k=S(280,L|0)|0;O=n;n=0;do if((((((((((((((((!(O&1)?(l=c[I>>2]|0,n=0,m=S(280,e|0)|0,O=n,n=0,!(O&1)):0)?(n=0,o=V(71,c[l>>2]|0,m|0,1)|0,O=n,n=0,!(O&1)):0)?(p=c[I>>2]|0,n=0,q=S(280,g|0)|0,O=n,n=0,!(O&1)):0)?(n=0,r=V(71,c[p>>2]|0,q|0,1)|0,O=n,n=0,!(O&1)):0)?(n=0,s=W(8,c[l>>2]|0,0,o|0,r|0)|0,O=n,n=0,!(O&1)):0)?(n=0,J=V(70,c[j>>2]|0,k|0,s|0)|0,O=n,n=0,!(O&1)):0)?(t=c[I>>2]|0,n=0,u=S(280,M|0)|0,O=n,n=0,!(O&1)):0)?(v=c[I>>2]|0,n=0,w=S(280,f|0)|0,O=n,n=0,!(O&1)):0)?(n=0,x=V(71,c[v>>2]|0,w|0,1)|0,O=n,n=0,!(O&1)):0)?(y=c[I>>2]|0,n=0,z=S(280,h|0)|0,O=n,n=0,!(O&1)):0)?(n=0,A=V(71,c[y>>2]|0,z|0,1)|0,O=n,n=0,!(O&1)):0)?(n=0,B=W(8,c[v>>2]|0,0,x|0,A|0)|0,O=n,n=0,!(O&1)):0)?(n=0,K=V(70,c[t>>2]|0,u|0,B|0)|0,O=n,n=0,!(O&1)):0)?(G=c[I>>2]|0,n=0,H=S(280,M|0)|0,O=n,n=0,!(O&1)):0)?(E=c[I>>2]|0,n=0,C=S(280,M|0)|0,O=n,n=0,!(O&1)):0)?(n=0,F=V(71,c[E>>2]|0,C|0,1)|0,O=n,n=0,!(O&1)):0){k=c[I>>2]|0;Bqb(i,1);n=0;l=D;j=l+24|0;do{a[l>>0]=a[i>>0]|0;l=l+1|0;i=i+1|0}while((l|0)<(j|0));i=U(120,k|0,D|0)|0;O=n;n=0;if(!(O&1)){n=0;i=W(8,c[E>>2]|0,0,F|0,i|0)|0;O=n;n=0;if(O&1)break;n=0;l=V(70,c[G>>2]|0,H|0,i|0)|0;O=n;n=0;if(O&1)break;m=c[I>>2]|0;n=0;i=S(280,L|0)|0;O=n;n=0;if(O&1)break;n=0;k=V(71,c[m>>2]|0,i|0,1)|0;O=n;n=0;if(O&1)break;j=c[I>>2]|0;n=0;i=S(280,g|0)|0;O=n;n=0;if(O&1)break;n=0;i=V(71,c[j>>2]|0,i|0,1)|0;O=n;n=0;if(O&1)break;n=0;i=W(8,c[m>>2]|0,18,k|0,i|0)|0;O=n;n=0;if(O&1)break;n=0;k=W(7,c[m>>2]|0,i|0,l|0,0)|0;O=n;n=0;if(O&1)break;i=c[I>>2]|0;n=0;j=S(280,L|0)|0;O=n;n=0;if(O&1)break;n=0;i=V(71,c[i>>2]|0,j|0,1)|0;O=n;n=0;if(O&1)break;n=0;i=Z(46,c[I>>2]|0,d|0,J|0,K|0,k|0,i|0)|0;O=n;n=0;if(O&1)break;n=0;ea(147,b|0,i|0,M|0);O=n;n=0;if(O&1)break;lNa(M);lNa(L);yb=N;return i|0}}while(0);O=sa()|0;P()|0;lNa(M);lNa(L);Ea(O|0);return 0}function Fi(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,o=0,p=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=b;l=b+20|0;o=b+16|0;m=d+4|0;do if(((c[l>>2]|0)-(c[o>>2]|0)>>2|0)==(((c[m>>2]|0)-(c[d>>2]|0)|0)/24|0|0)){l=Icb(b)|0;n=0;da(221,a|0,l|0);l=n;n=0;if(!(l&1)){g=0;while(1){if(g>>>0>=(Icb(b)|0)>>>0){e=37;break}l=c[d>>2]|0;e=l;if(g>>>0<(((c[m>>2]|0)-l|0)/24|0)>>>0){if(!(Rjb(b,g)|0)){e=16;break}if((c[(c[o>>2]|0)+(g<<2)>>2]|0)!=(c[e+(g*24|0)+16>>2]|0)){e=18;break}k=e+(g*24|0)|0;l=(c[a>>2]|0)+(g*24|0)|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];c[l+12>>2]=c[k+12>>2];c[l+16>>2]=c[k+16>>2]}else{if(!(Wjb(b,g)|0)){e=33;break}n=0;e=U(84,b|0,g|0)|0;l=n;n=0;if(l&1){e=38;break}c[(c[a>>2]|0)+(g*24|0)+16>>2]=e}g=g+1|0}if((e|0)==16){n=0;fa(75,68799,96854,933,68785);n=0;break}else if((e|0)==18){n=0;e=U(59,150620,68733)|0;m=n;n=0;if(m&1)break;n=0;e=U(82,e|0,c[b+8>>2]|0)|0;b=n;n=0;if(b&1)break;n=0;f=U(59,e|0,68820)|0;b=n;n=0;if(b&1)break;n=0;e=S(223,c[(c[o>>2]|0)+(g<<2)>>2]|0)|0;o=n;n=0;if(o&1)break;n=0;e=U(59,f|0,e|0)|0;o=n;n=0;if(o&1)break;n=0;e=U(59,e|0,68836)|0;o=n;n=0;if(o&1)break;n=0;e=U(78,e|0,g|0)|0;o=n;n=0;if(o&1)break;n=0;f=U(59,e|0,68852)|0;o=n;n=0;if(o&1)break;n=0;e=S(223,c[(c[d>>2]|0)+(g*24|0)+16>>2]|0)|0;d=n;n=0;if(d&1)break;n=0;e=U(59,f|0,e|0)|0;d=n;n=0;if(d&1)break;n=0;e=U(59,e|0,140218)|0;d=n;n=0;if(d&1)break;n=0;ca(497,e|0);d=n;n=0;if(d&1)break;n=0;fa(75,141129,96854,939,68785);n=0;break}else if((e|0)==33){n=0;fa(75,68859,96854,943,68785);n=0;break}else if((e|0)==37)return;else if((e|0)==38){d=sa()|0;P()|0;Vob(a);Ea(d|0)}}}else{n=0;e=U(59,150620,68733)|0;p=n;n=0;if(((((((!(p&1)?(n=0,f=U(82,e|0,c[b+8>>2]|0)|0,p=n,n=0,!(p&1)):0)?(n=0,g=U(59,f|0,68744)|0,p=n,n=0,!(p&1)):0)?(n=0,h=U(78,g|0,(c[l>>2]|0)-(c[o>>2]|0)>>2|0)|0,p=n,n=0,!(p&1)):0)?(n=0,i=U(59,h|0,68755)|0,p=n,n=0,!(p&1)):0)?(n=0,j=U(78,i|0,((c[m>>2]|0)-(c[d>>2]|0)|0)/24|0|0)|0,p=n,n=0,!(p&1)):0)?(n=0,k=U(59,j|0,68773)|0,p=n,n=0,!(p&1)):0)?(n=0,ca(497,k|0),p=n,n=0,!(p&1)):0){n=0;fa(75,141129,96854,928,68785);n=0}}while(0);p=sa()|0;P()|0;Vob(a);Ea(p|0)}function Gi(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+144|0;b=t+128|0;u=t+124|0;k=t+112|0;l=t+108|0;m=t+96|0;o=t+92|0;p=t+80|0;q=t+76|0;r=t+64|0;s=t+60|0;d=t+48|0;e=t+44|0;f=t+32|0;g=t+28|0;h=t+16|0;i=t+12|0;j=t;c[u>>2]=c[37303];c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;D8(k,84799,Zzb(84799)|0);n=0;c[b>>2]=c[u>>2];ea(151,a|0,b|0,k|0);u=n;n=0;if(u&1){u=sa()|0;P()|0;Chb(k);Ea(u|0)}Chb(k);c[l>>2]=c[37304];c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;D8(m,84804,Zzb(84804)|0);n=0;c[b>>2]=c[l>>2];ea(151,a|0,b|0,m|0);u=n;n=0;if(u&1){u=sa()|0;P()|0;Chb(m);Ea(u|0)}Chb(m);c[o>>2]=c[37305];c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;D8(p,84809,Zzb(84809)|0);n=0;c[b>>2]=c[o>>2];ea(151,a|0,b|0,p|0);u=n;n=0;if(u&1){u=sa()|0;P()|0;Chb(p);Ea(u|0)}Chb(p);c[q>>2]=c[37306];c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;D8(r,84814,Zzb(84814)|0);n=0;c[b>>2]=c[q>>2];ea(151,a|0,b|0,r|0);u=n;n=0;if(u&1){u=sa()|0;P()|0;Chb(r);Ea(u|0)}Chb(r);c[s>>2]=c[37307];c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;D8(d,84799,Zzb(84799)|0);n=0;c[b>>2]=c[s>>2];ea(151,a|0,b|0,d|0);u=n;n=0;if(u&1){u=sa()|0;P()|0;Chb(d);Ea(u|0)}Chb(d);c[e>>2]=c[37308];c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,84804,Zzb(84804)|0);n=0;c[b>>2]=c[e>>2];ea(151,a|0,b|0,f|0);u=n;n=0;if(u&1){u=sa()|0;P()|0;Chb(f);Ea(u|0)}Chb(f);c[g>>2]=c[37309];c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,84809,Zzb(84809)|0);n=0;c[b>>2]=c[g>>2];ea(151,a|0,b|0,h|0);u=n;n=0;if(u&1){u=sa()|0;P()|0;Chb(h);Ea(u|0)}Chb(h);c[i>>2]=c[37310];c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;D8(j,84814,Zzb(84814)|0);n=0;c[b>>2]=c[i>>2];ea(151,a|0,b|0,j|0);u=n;n=0;if(!(u&1)){Chb(j);yb=t;return}u=sa()|0;P()|0;Chb(j);Ea(u|0)}function Hi(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;o=yb;yb=yb+16|0;j=o+4|0;l=o;n=a[b+26>>0]|0;if(n&1?QGa(d)|0:0){n=1;yb=o;return n|0}m=a[d+26>>0]|0;if(m&1?QGa(b)|0:0){n=1;yb=o;return n|0}if(!((a[b+77>>0]&1)==0?!(a[b+27>>0]&1):0))h=7;if((h|0)==7?p1a(d)|0:0){n=1;yb=o;return n|0}if(p1a(b)|0){if(a[d+77>>0]&1){n=1;yb=o;return n|0}if(a[d+27>>0]&1){n=1;yb=o;return n|0}}if(a[b+79>>0]&1?p1a(d)|0:0){n=1;yb=o;return n|0}if(a[d+79>>0]&1?p1a(b)|0:0){n=1;yb=o;return n|0}g=b+44|0;i=d+40|0;h=d+28|0;e=c[b+40>>2]|0;while(1){if((g|0)==(e|0)){h=28;break}f=c[e+16>>2]|0;if(Jga(i,f)|0){k=1;h=76;break}if(Jga(h,f)|0){k=1;h=76;break}f=e;e=c[f+4>>2]|0;a:do if(!e)while(1){e=c[f+8>>2]|0;if((f|0)==(c[e>>2]|0))break a;f=e}else while(1){f=c[e>>2]|0;if(!f)break;e=f}while(0)}if((h|0)==28){g=b+32|0;e=c[b+28>>2]|0;while(1){if((g|0)==(e|0))break;if(Jga(i,c[e+16>>2]|0)|0){k=1;h=76;break}f=e;e=c[f+4>>2]|0;b:do if(!e)while(1){e=c[f+8>>2]|0;if((f|0)==(c[e>>2]|0))break b;f=e}else while(1){f=c[e>>2]|0;if(!f)break;e=f}while(0)}if((h|0)==76){yb=o;return k|0}if(Gqb(c[b+60>>2]|0,c[b+72>>2]|0)|0?a[d+27>>0]&1:0){n=1;yb=o;return n|0}if(Gqb(c[d+60>>2]|0,c[d+72>>2]|0)|0?a[b+27>>0]&1:0){n=1;yb=o;return n|0}g=b+68|0;i=d+64|0;h=d+52|0;e=c[b+64>>2]|0;while(1){if((g|0)==(e|0)){h=57;break}c[j>>2]=c[e+16>>2];if(f9(i,j)|0){k=1;h=76;break}if(f9(h,j)|0){k=1;h=76;break}f=e;e=c[f+4>>2]|0;c:do if(!e)while(1){e=c[f+8>>2]|0;if((f|0)==(c[e>>2]|0))break c;f=e}else while(1){f=c[e>>2]|0;if(!f)break;e=f}while(0)}if((h|0)==57){g=b+56|0;e=c[b+52>>2]|0;while(1){if((g|0)==(e|0))break;c[l>>2]=c[e+16>>2];if(f9(i,l)|0){k=1;h=76;break}f=e;e=c[f+4>>2]|0;d:do if(!e)while(1){e=c[f+8>>2]|0;if((f|0)==(c[e>>2]|0))break d;f=e}else while(1){f=c[e>>2]|0;if(!f)break;e=f}while(0)}if((h|0)==76){yb=o;return k|0}f=a[b+78>>0]|0;if(f&m&1){n=1;yb=o;return n|0}m=a[d+78>>0]|0;e=(m&1)==0;if(m&n&1){n=1;yb=o;return n|0}if(f&1?ENa(d)|0:0){n=1;yb=o;return n|0}if(!e?ENa(b)|0:0){n=1;yb=o;return n|0}n=0;yb=o;return n|0}else if((h|0)==76){yb=o;return k|0}}else if((h|0)==76){yb=o;return k|0}return 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,l=0,m=0,o=0,p=0,q=0,r=0;m=yb;yb=yb+128|0;h=m+124|0;o=m+112|0;p=m+100|0;q=m+64|0;i=m+60|0;k=m+48|0;l=m+36|0;j=m;c[h>>2]=d;yib(o);yib(p);g=a+80|0;AJa(q,c[g>>2]|0,o,p);n=0;da(2419,q|0,h|0);h=n;n=0;do if(!(h&1)){h=a+56|0;f=a+68|0;while(1){if(!b){d=0;a=30;break}n=0;d=S(286,c[b+8>>2]|0)|0;e=n;n=0;if(e&1){a=8;break}c[i>>2]=d;n=0;d=U(147,h|0,i|0)|0;e=n;n=0;if(e&1){a=8;break}if(!(c[d>>2]|0)){a=7;break}n=0;d=U(147,h|0,i|0)|0;e=n;n=0;if(e&1){a=8;break}if((c[d>>2]|0)>>>0>1){d=1;a=30;break}n=0;d=U(147,o|0,i|0)|0;e=n;n=0;if(e&1){a=8;break}if(c[d>>2]|0){a=15;break}n=0;d=U(147,p|0,i|0)|0;e=n;n=0;if(e&1){a=8;break}d=c[d>>2]|0;n=0;a=U(147,f|0,i|0)|0;e=n;n=0;if(e&1){a=8;break}if((d|0)!=(c[a>>2]|0)){n=0;d=U(147,p|0,i|0)|0;e=n;n=0;if(e&1){a=8;break}d=c[d>>2]|0;n=0;a=U(147,f|0,i|0)|0;e=n;n=0;if(e&1){a=8;break}if(d>>>0>=(c[a>>2]|0)>>>0){a=22;break}yib(k);yib(l);AJa(j,c[g>>2]|0,k,l);n=0;da(2419,j|0,b+12|0);e=n;n=0;if(e&1){a=28;break}n=0;d=U(147,p|0,i|0)|0;e=n;n=0;if(e&1){a=28;break}e=c[d>>2]|0;n=0;d=U(147,l|0,i|0)|0;a=n;n=0;if(a&1){a=28;break}d=c[d>>2]|0;n=0;a=U(147,f|0,i|0)|0;r=n;n=0;if(r&1){a=28;break}r=(e+d|0)>>>0<(c[a>>2]|0)>>>0;Arb(j);B7a(l);B7a(k);if(r){d=1;a=30;break}}b=p7(c[b+16>>2]|0,c[g>>2]|0)|0}if((a|0)==7){n=0;fa(75,100234,100172,171,100255);n=0;a=9;break}else if((a|0)==8){d=sa()|0;P()|0;break}else if((a|0)==15){n=0;fa(75,100281,100172,173,100255);n=0;a=9;break}else if((a|0)==22){n=0;fa(75,100311,100172,175,100255);n=0;a=9;break}else if((a|0)==28){r=sa()|0;P()|0;Arb(j);B7a(l);B7a(k);Arb(q);B7a(p);B7a(o);Ea(r|0)}else if((a|0)==30){Arb(q);B7a(p);B7a(o);yb=m;return d|0}}else a=9;while(0);if((a|0)==9){d=sa()|0;P()|0}r=d;Arb(q);B7a(p);B7a(o);Ea(r|0);return 0}function Ji(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=yb;yb=yb+48|0;v=u+24|0;q=u+16|0;o=u+8|0;r=u;c[v>>2]=0;t=v+4|0;c[t>>2]=0;s=v+8|0;c[s>>2]=0;nrb(q,b);Hib(o,b);l=q+4|0;m=c[o>>2]|0;o=c[o+4>>2]|0;p=a+8|0;while(1){if(!(dhb(c[q>>2]|0,c[l>>2]|0,m,o)|0)){a=18;break}n=0;j=S(228,q|0)|0;k=n;n=0;if(k&1){a=14;break}n=0;k=S(217,16)|0;i=n;n=0;if(i&1){a=14;break}n=0;ga(4,k|0,c[(c[j>>2]|0)+4>>2]|0,c[a>>2]|0,c[p>>2]|0,c[37043]|0);i=n;n=0;if(i&1){a=17;break}c[r>>2]=k;i=c[t>>2]|0;if(i>>>0<(c[s>>2]|0)>>>0){c[i>>2]=k;i=(c[t>>2]|0)+4|0;c[t>>2]=i}else{n=0;da(93,v|0,r|0);k=n;n=0;if(k&1){a=14;break}i=c[t>>2]|0}n=0;i=V(47,a|0,c[j>>2]|0,c[(c[i+-4>>2]|0)+8>>2]|0)|0;k=n;n=0;if(k&1){a=14;break}n=0;da(76,d|0,i|0);k=n;n=0;if(k&1){a=14;break}hob(q)}a:do if((a|0)==14){h=sa()|0;P()|0}else if((a|0)==17){u=sa()|0;P()|0;RCb(k);Vob(v);Ea(u|0)}else if((a|0)==18){n=0;o=S(229,c[e+16>>2]|0)|0;e=n;n=0;do if(!(e&1)){m=0;while(1){i=c[v>>2]|0;if(m>>>0>=(c[t>>2]|0)-i>>2>>>0)break;j=c[(c[i+(m<<2)>>2]|0)+8>>2]|0;n=0;k=U(74,b|0,m|0)|0;e=n;n=0;if(e&1){a=13;break}n=0;i=U(56,o|0,2)|0;e=n;n=0;if(e&1){a=13;break}l=WCb(c[i>>2]|0)|0;n=0;j=S(219,j|0)|0;e=n;n=0;if(e&1){a=13;break}n=0;i=S(226,c[(c[k>>2]|0)+4>>2]|0)|0;e=n;n=0;if(e&1){a=13;break}n=0;i=U(72,j|0,i|0)|0;e=n;n=0;if(e&1){a=13;break}n=0;U(57,l|0,i|0)|0;e=n;n=0;if(e&1){a=13;break}m=m+1|0}if((a|0)==13){h=sa()|0;P()|0;break a}n=0;i=S(226,g|0)|0;g=n;n=0;if(!(g&1)?(n=0,h=U(72,o|0,i|0)|0,g=n,n=0,!(g&1)):0){if(cub(f,c[37043]|0)|0){n=0;i=S(219,f|0)|0;f=n;n=0;if(f&1)break;n=0;h=V(48,i|0,c[37277]|0,h|0)|0;f=n;n=0;if(f&1)break;WCb(h)|0}n=0;da(76,d|0,h|0);f=n;n=0;if(!(f&1)){i=c[t>>2]|0;h=c[v>>2]|0;while(1){if((h|0)==(i|0))break;j=c[h>>2]|0;if(j|0){dha(j);RCb(j)}h=h+4|0}Vob(v);yb=u;return d|0}}}while(0);h=sa()|0;P()|0}while(0);u=h;Vob(v);Ea(u|0);return 0}function Ki(b,d,e,f,g,h,i,j,k,l,m,n,o,p,q){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;c[e>>2]=b;z=p+8+3|0;G=p+4|0;A=o+8+3|0;B=o+4|0;C=(f&512|0)==0;D=(q|0)>0;E=n+11|0;F=n+4|0;y=0;while(1){if((y|0)==4)break;a:do switch(a[k+y>>0]|0){case 0:{c[d>>2]=c[e>>2];break}case 1:{c[d>>2]=c[e>>2];w=Gb[c[(c[i>>2]|0)+44>>2]&255](i,32)|0;x=c[e>>2]|0;c[e>>2]=x+4;c[x>>2]=w;break}case 3:{x=a[z>>0]|0;r=x<<24>>24<0;if((r?c[G>>2]|0:x&255)|0){w=c[(r?c[p>>2]|0:p)>>2]|0;x=c[e>>2]|0;c[e>>2]=x+4;c[x>>2]=w}break}case 2:{v=a[A>>0]|0;r=v<<24>>24<0;v=r?c[B>>2]|0:v&255;if(!(C|(v|0)==0)){u=r?c[o>>2]|0:o;s=u+(v<<2)|0;t=c[e>>2]|0;r=t;while(1){if((u|0)==(s|0))break;c[r>>2]=c[u>>2];r=r+4|0;u=u+4|0}c[e>>2]=t+(v<<2)}break}case 4:{s=c[e>>2]|0;g=j?g+4|0:g;r=g;while(1){if(r>>>0>=h>>>0)break;if(!(Hb[c[(c[i>>2]|0)+12>>2]&255](i,2048,c[r>>2]|0)|0))break;r=r+4|0}if(D){u=q;while(1){t=(u|0)>0;if(!(r>>>0>g>>>0&t))break;x=r+-4|0;v=c[x>>2]|0;w=c[e>>2]|0;c[e>>2]=w+4;c[w>>2]=v;u=u+-1|0;r=x}if(t)w=Gb[c[(c[i>>2]|0)+44>>2]&255](i,48)|0;else w=0;v=c[e>>2]|0;while(1){t=v+4|0;if((u|0)<=0)break;c[v>>2]=w;u=u+-1|0;v=t}c[e>>2]=t;c[v>>2]=l;t=r}else t=r;if((t|0)==(g|0)){w=Gb[c[(c[i>>2]|0)+44>>2]&255](i,48)|0;x=c[e>>2]|0;r=x+4|0;c[e>>2]=r;c[x>>2]=w}else{x=a[E>>0]|0;r=x<<24>>24<0;if(!((r?c[F>>2]|0:x&255)|0))r=-1;else r=a[(r?c[n>>2]|0:n)>>0]|0;u=0;v=0;x=t;while(1){if((x|0)==(g|0))break;t=c[e>>2]|0;if((v|0)==(r|0)){w=t+4|0;c[e>>2]=w;c[t>>2]=m;t=u+1|0;u=a[E>>0]|0;r=u<<24>>24<0;if(t>>>0<(r?c[F>>2]|0:u&255)>>>0){r=a[(r?c[n>>2]|0:n)+t>>0]|0;r=r<<24>>24==127?-1:r<<24>>24;u=t;v=0;t=w}else{r=v;u=t;v=0;t=w}}w=x+-4|0;H=c[w>>2]|0;c[e>>2]=t+4;c[t>>2]=H;v=v+1|0;x=w}r=c[e>>2]|0}if((s|0)!=(r|0))while(1){r=r+-4|0;if(s>>>0>=r>>>0)break a;H=c[s>>2]|0;c[s>>2]=c[r>>2];c[r>>2]=H;s=s+4|0}break}default:{}}while(0);y=y+1|0}r=a[z>>0]|0;g=r<<24>>24<0;r=g?c[G>>2]|0:r&255;if(r>>>0>1){s=c[p>>2]|0;v=g?s+4|0:G;r=(g?s:p)+(r<<2)|0;s=c[e>>2]|0;t=r;g=s;u=v;while(1){if((u|0)==(r|0))break;c[g>>2]=c[u>>2];g=g+4|0;u=u+4|0}c[e>>2]=s+((t-v|0)>>>2<<2)}switch((f&176)<<24>>24){case 32:{c[d>>2]=c[e>>2];break}case 16:break;default:c[d>>2]=b}return}function Li(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=yb;yb=yb+96|0;g=w+84|0;i=w+80|0;t=w+72|0;j=w+24|0;k=w;u=w+56|0;h=a+64|0;d=c[h>>2]|0;b=c[d+112>>2]|0;d=c[d+108>>2]|0;if((b|0)==(d|0)){yb=w;return}e=0;f=0;while(1){if((d|0)==(b|0))break;do if(!(Kob(d)|0))if(Yob(c[c[d>>2]>>2]|0)|0){f=f+1|0;break}else{e=e+1|0;break}while(0);d=d+16|0}b=f+e|0;if((e+1|0)>>>0>99999)BM(IWa(150620,112564)|0);s=E3(a,11)|0;r=c[a+68>>2]|0;Pwb(g,b>>>0<99999?b:99999);YA(r,c[g>>2]|0)|0;c[i>>2]=0;c[t>>2]=a;c[t+4>>2]=i;r=c[h>>2]|0;q=r+108|0;r=r+112|0;d=c[r>>2]|0;b=c[q>>2]|0;while(1){if((b|0)==(d|0))break;if(!(Kob(b)|0)?!(Yob(c[c[b>>2]>>2]|0)|0):0)ZW(t,b);b=b+16|0}g=0;while(1){b=c[q>>2]|0;if(g>>>0>=(c[r>>2]|0)-b>>4>>>0)break;b=b+(g<<4)|0;if(cRa(b)|0){if(((c[i>>2]|0)+2|0)>>>0>=1e5){v=21;break}ZW(t,b)}g=g+1|0}do if((v|0)==21){e=Wsa((ffb(c[b>>2]|0)|0)+8|0)|0;d=g;b=P()|0;while(1){f=d+1|0;d=c[q>>2]|0;if(f>>>0>=(c[r>>2]|0)-d>>4>>>0)break;d=d+(f<<4)|0;if(cRa(d)|0){m=Wsa((ffb(c[d>>2]|0)|0)+8|0)|0;p=P()|0;o=(p|0)<(b|0)|(p|0)==(b|0)&m>>>0>>0;e=o?m:e;b=o?p:b}d=f}Wkb(j);Bqb(k,e);l=j+8|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];c[l+12>>2]=c[k+12>>2];c[l+16>>2]=c[k+16>>2];c[j+4>>2]=1;mdb(u,j);l=u+8|0;m=u+4|0;o=u+4|0;p=0-e|0;k=g;while(1){j=c[q>>2]|0;g=j;if(k>>>0>=(c[r>>2]|0)-j>>4>>>0)break;d=g+(k<<4)|0;if(cRa(d)|0){n=0;d=S(259,c[d>>2]|0)|0;j=n;n=0;if(j&1){v=43;break}n=0;j=S(298,d+8|0)|0;f=P()|0;i=n;n=0;if(i&1){v=43;break}i=g+(k<<4)+8|0;d=c[i>>2]|0;h=g+(k<<4)+4|0;g=c[h>>2]|0;f=Yeb(j|0,f|0,d-g|0,0)|0;f=Ndb(f|0,P()|0,e|0,b|0)|0;x=P()|0;if((x|0)>0|((x|0)==0?f>>>0>((c[l>>2]|0)-(c[m>>2]|0)|0)>>>0:0)){n=0;da(219,o|0,f|0);x=n;n=0;if(x&1){v=43;break}g=c[h>>2]|0;d=c[i>>2]|0}d=d-g|0;if(d|0)Pxa((c[m>>2]|0)+j+p|0,g|0,d|0)|0}k=k+1|0}if((v|0)==43){x=sa()|0;P()|0;Nrb(u);Ea(x|0)}n=0;da(4013,t|0,u|0);x=n;n=0;if(!(x&1)){Nrb(u);break}x=sa()|0;P()|0;Nrb(u);Ea(x|0)}while(0);gF(a,s);yb=w;return}function Mi(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;switch(e|0){case 0:{n=-149;o=24;k=4;break}case 1:{n=-1074;o=53;k=4;break}case 2:{n=-1074;o=53;k=4;break}default:g=0.0}a:do if((k|0)==4){q=b+4|0;p=b+100|0;do{e=c[q>>2]|0;if(e>>>0<(c[p>>2]|0)>>>0){c[q>>2]=e+1;e=d[e>>0]|0}else e=nI(b)|0}while((Cxb(e)|0)!=0);b:do switch(e|0){case 43:case 45:{i=1-(((e|0)==45&1)<<1)|0;e=c[q>>2]|0;if(e>>>0<(c[p>>2]|0)>>>0){c[q>>2]=e+1;h=d[e>>0]|0;break b}else{h=nI(b)|0;break b}}default:{h=e;i=1}}while(0);e=0;while(1){if((h|32|0)!=(a[135434+e>>0]|0))break;do if(e>>>0<7){h=c[q>>2]|0;if(h>>>0<(c[p>>2]|0)>>>0){c[q>>2]=h+1;h=d[h>>0]|0;break}else{h=nI(b)|0;break}}while(0);e=e+1|0;if(e>>>0>=8){e=8;break}}c:do switch(e&2147483647|0){case 8:break;case 3:{k=23;break}default:{j=(f|0)!=0;if(j&e>>>0>3)if((e|0)==8)break c;else{k=23;break c}d:do if(!e){e=0;do{if((h|32|0)!=(a[135443+e>>0]|0)){k=39;break d}do if(e>>>0<2){h=c[q>>2]|0;if(h>>>0<(c[p>>2]|0)>>>0){c[q>>2]=h+1;h=d[h>>0]|0;break}else{h=nI(b)|0;break}}while(0);e=e+1|0}while(e>>>0<3)}else k=39;while(0);e:do if((k|0)==39){switch(e|0){case 3:break e;case 0:break;default:{if(c[p>>2]|0)c[q>>2]=(c[q>>2]|0)+-1;c[37419]=22;HFa(b,0);g=0.0;break a}}if((h|0)==48){e=c[q>>2]|0;if(e>>>0<(c[p>>2]|0)>>>0){c[q>>2]=e+1;e=d[e>>0]|0}else e=nI(b)|0;if((e|32|0)==120){g=+ii(b,o,n,i,f);break a}if(!(c[p>>2]|0))e=48;else{c[q>>2]=(c[q>>2]|0)+-1;e=48}}else e=h;g=+hf(b,e,o,n,i,f);break a}while(0);e=c[q>>2]|0;if(e>>>0<(c[p>>2]|0)>>>0){c[q>>2]=e+1;e=d[e>>0]|0}else e=nI(b)|0;if((e|0)!=40){if(!(c[p>>2]|0)){g=l;break a}c[q>>2]=(c[q>>2]|0)+-1;g=l;break a}e=1;while(1){h=c[q>>2]|0;if(h>>>0<(c[p>>2]|0)>>>0){c[q>>2]=h+1;h=d[h>>0]|0}else h=nI(b)|0;if(!((h+-48|0)>>>0<10|(h+-65|0)>>>0<26)?!((h|0)==95|(h+-97|0)>>>0<26):0)break;e=e+1|0}if((h|0)==41){g=l;break a}h=(c[p>>2]|0)==0;if(!h)c[q>>2]=(c[q>>2]|0)+-1;if(!j){c[37419]=22;HFa(b,0);g=0.0;break a}if(!e){g=l;break a}while(1){e=e+-1|0;if(!h)c[q>>2]=(c[q>>2]|0)+-1;if(!e){g=l;break a}}}}while(0);if((k|0)==23){h=(c[p>>2]|0)==0;if(!h)c[q>>2]=(c[q>>2]|0)+-1;if((f|0)!=0&e>>>0>3)do{if(!h)c[q>>2]=(c[q>>2]|0)+-1;e=e+-1|0}while(e>>>0>3)}g=+(i|0)*m}while(0);return +g}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,l=0,m=0,o=0;o=yb;yb=yb+80|0;g=o+64|0;l=o+40|0;k=o+12|0;m=o+24|0;j=o;a:do if((d-b|0)>2?(a[b>>0]|0)==102:0){b:do switch(a[b+1>>0]|0){case 112:{f=w8(b+2|0,d,g)|0;g=M5(f,d)|0;c:do if((g|0)!=(d|0)?(a[g>>0]|0)==95:0){c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;NR(m,f,g);n=0;V(128,m|0,0,141118)|0;j=n;n=0;do if(j&1){b=sa()|0;P()|0}else{c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}X6(l,k);b=e+4|0;f=c[b>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,l|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(l);Chb(k);break}}else{I6(f,l);c[b>>2]=(c[b>>2]|0)+24}J2a(l);Chb(k);Chb(m);b=g+1|0;break c}while(0);Chb(m);break b}while(0);break a}case 76:{f=M5(b+2|0,d)|0;d:do if((((f|0)!=(d|0)?(a[f>>0]|0)==112:0)?(h=w8(f+1|0,d,g)|0,i=M5(h,d)|0,(i|0)!=(d|0)):0)?(a[i>>0]|0)==95:0){c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;NR(m,h,i);n=0;V(128,m|0,0,141118)|0;k=n;n=0;do if(k&1){b=sa()|0;P()|0}else{c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}X6(l,j);b=e+4|0;f=c[b>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,l|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(l);Chb(j);break}}else{I6(f,l);c[b>>2]=(c[b>>2]|0)+24}J2a(l);Chb(j);Chb(m);b=i+1|0;break d}while(0);Chb(m);break b}while(0);break a}default:break a}while(0);Ea(b|0)}while(0);yb=o;return b|0}function Oi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+32|0;g=h;if(!(OBb(c[d>>2]|0)|0))ma(107225,106895,517,107240);f=c[d+4>>2]|0;e=Mqb(f)|0;if(e|0){d=g;e=e+8|0;b=d+24|0;do{a[d>>0]=a[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(b|0));wna(g);yb=h;return}e=Kqb(f)|0;if(e|0){switch(c[e+8>>2]|0){case 1:case 0:{IWa(150452,107256)|0;break}case 3:case 2:{IWa(150452,107261)|0;break}case 5:case 4:{IWa(150452,107266)|0;break}default:ma(141129,106895,530,107240)}SEa(150452,32)|0;qH(b,Jcb(d,0)|0);yb=h;return}e=Aqb(f)|0;if(!e){if(!(Txb(c[f>>2]|0)|0))ma(141129,106895,595,107240);IWa(150452,107328)|0;qH(b,Jcb(d,0)|0);IWa(150452,140151)|0;qH(b,Jcb(d,1)|0);IWa(150452,140151)|0;qH(b,Jcb(d,2)|0);yb=h;return}do switch(c[e+8>>2]|0){case 25:case 0:{IWa(150452,125111)|0;break}case 26:case 1:{IWa(150452,125122)|0;break}case 27:case 2:{IWa(150452,112040)|0;break}case 28:case 3:{IWa(150452,107272)|0;break}case 29:case 4:{IWa(150452,107277)|0;break}case 30:case 5:{IWa(150452,107282)|0;break}case 31:case 6:{IWa(150452,107287)|0;break}case 32:case 7:{IWa(150452,125115)|0;break}case 33:case 8:{IWa(150452,125119)|0;break}case 34:case 9:{IWa(150452,125126)|0;break}case 35:case 10:{IWa(150452,112082)|0;break}case 36:case 11:{IWa(150452,107292)|0;break}case 37:case 12:{IWa(150452,107297)|0;break}case 38:case 13:{IWa(150452,107302)|0;break}case 39:case 14:{IWa(150452,107307)|0;break}case 40:case 15:{IWa(150452,111997)|0;break}case 41:case 16:{IWa(150452,112106)|0;break}case 42:case 17:{IWa(150452,107312)|0;break}case 43:case 18:{IWa(150452,107316)|0;break}case 44:case 19:{IWa(150452,107320)|0;break}case 45:case 20:{IWa(150452,107324)|0;break}default:ma(141129,106895,579,107240)}while(0);SEa(150452,32)|0;qH(b,Jcb(d,0)|0);IWa(150452,140151)|0;qH(b,Jcb(d,1)|0);yb=h;return}function Pi(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;v=yb;yb=yb+256|0;s=v+232|0;g=v+200|0;n=v+168|0;t=v+144|0;u=v+120|0;o=v+96|0;p=v+72|0;q=v+48|0;l=v+24|0;m=v;tw(g,e,c[f+20>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=v;return}tw(n,e,c[f+24>>2]|0);if(lsb(n)|0){c[b>>2]=c[n>>2];c[b+4>>2]=c[n+4>>2];c[b+8>>2]=c[n+8>>2];c[b+12>>2]=c[n+12>>2];c[b+16>>2]=c[n+16>>2];c[b+20>>2]=c[n+20>>2];c[b+24>>2]=c[n+24>>2];c[b+28>>2]=c[n+28>>2];yb=v;return}h=e+4|0;e=c[h>>2]|0;r=s;j=g;k=r+24|0;do{a[r>>0]=a[j>>0]|0;r=r+1|0;j=j+1|0}while((r|0)<(k|0));i=Ev(e,f,s)|0;e=f+12|0;FB(t,c[h>>2]|0,i,d[e>>0]|0,c[f+4>>2]|0);c[u>>2]=c[n>>2];c[u+4>>2]=c[n+4>>2];c[u+8>>2]=c[n+8>>2];c[u+12>>2]=c[n+12>>2];c[u+16>>2]=c[n+16>>2];c[u+20>>2]=c[n+20>>2];switch(c[f+8>>2]|0){case 0:{TU(o,u,n);c[u>>2]=c[o>>2];c[u+4>>2]=c[o+4>>2];c[u+8>>2]=c[o+8>>2];c[u+12>>2]=c[o+12>>2];c[u+16>>2]=c[o+16>>2];break}case 1:{EU(p,u,n);c[u>>2]=c[p>>2];c[u+4>>2]=c[p+4>>2];c[u+8>>2]=c[p+8>>2];c[u+12>>2]=c[p+12>>2];c[u+16>>2]=c[p+16>>2];break}case 2:{yqa(q,u,n);c[u>>2]=c[q>>2];c[u+4>>2]=c[q+4>>2];c[u+8>>2]=c[q+8>>2];c[u+12>>2]=c[q+12>>2];c[u+16>>2]=c[q+16>>2];break}case 3:{Gqa(l,u,n);c[u>>2]=c[l>>2];c[u+4>>2]=c[l+4>>2];c[u+8>>2]=c[l+8>>2];c[u+12>>2]=c[l+12>>2];c[u+16>>2]=c[l+16>>2];break}case 4:{xqa(m,u,n);c[u>>2]=c[m>>2];c[u+4>>2]=c[m+4>>2];c[u+8>>2]=c[m+8>>2];c[u+12>>2]=c[m+12>>2];c[u+16>>2]=c[m+16>>2];break}case 5:{c[u>>2]=c[n>>2];c[u+4>>2]=c[n+4>>2];c[u+8>>2]=c[n+8>>2];c[u+12>>2]=c[n+12>>2];c[u+16>>2]=c[n+16>>2];break}default:{}}g=c[h>>2]|0;e=d[e>>0]|0;r=s;j=u;k=r+24|0;do{a[r>>0]=a[j>>0]|0;r=r+1|0;j=j+1|0}while((r|0)<(k|0));Kw(g,i,e,s);r=s;j=t;k=r+24|0;do{a[r>>0]=a[j>>0]|0;r=r+1|0;j=j+1|0}while((r|0)<(k|0));Wza(b,s);yb=v;return}function Qi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;x=yb;yb=yb+48|0;d=x+36|0;f=x+32|0;y=x+20|0;q=x+16|0;e=x+12|0;z=x;v=c[b>>2]|0;b=v;if(!(eCb(v)|0)){z=b;yb=x;return z|0}u=c[c[a>>2]>>2]|0;c[e>>2]=b;c[d>>2]=c[e>>2];b=sQ(u,d)|0;c[q>>2]=b;YD(z,b);u=a+4|0;l=c[u>>2]|0;d=Xs(l,z)|0;v=b;do if(!d){t=c[a+8>>2]|0;c[f>>2]=v;r=pH(f,4)|0;o=t+4|0;f=c[o>>2]|0;m=(f|0)==0;a:do if(!m){a=f+-1|0;j=(f&a|0)==0;if(!j)if(r>>>0>>0)k=r;else k=(r>>>0)%(f>>>0)|0;else k=r&a;d=c[(c[t>>2]|0)+(k<<2)>>2]|0;if(!d){s=k;a=19}else while(1){d=c[d>>2]|0;if(!d){s=k;a=19;break a}e=c[d+4>>2]|0;if((e|0)!=(r|0)){if(!j){if(e>>>0>=f>>>0)e=(e>>>0)%(f>>>0)|0}else e=e&a;if((e|0)!=(k|0)){s=k;a=19;break a}}if((c[d+8>>2]|0)==(b|0)){p=l;a=40;break a}}}else{s=0;a=19}while(0);if((a|0)==19?(n=0,fa(122,y|0,t|0,r|0,q|0),q=n,n=0,!(q&1)):0){j=t+12|0;h=+(((c[j>>2]|0)+1|0)>>>0);i=+g[t+16>>2];if(i*+(f>>>0)>>0>2){e=(f&f+-1|0)!=0&1;a=24}else{e=1;a=24}}else if(m){d=0;e=1;a=24}else e=s;do if((a|0)==24){s=d|e;q=~~+I(+(h/i))>>>0;n=0;da(2800,t|0,(s>>>0>>0?q:s)|0);s=n;n=0;if(s&1){b=sa()|0;P()|0;d=c[y>>2]|0;c[y>>2]=0;if(!d){y=b;Chb(z);Ea(y|0)}RCb(d);y=b;Chb(z);Ea(y|0)}else{d=c[o>>2]|0;e=d+-1|0;if(!(d&e)){f=d;e=r&e;break}if(r>>>0>>0){f=d;e=r;break}f=d;e=(r>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[t>>2]|0)+(e<<2)>>2]|0;if(!d){s=t+8|0;d=c[y>>2]|0;c[d>>2]=c[s>>2];a=d;c[s>>2]=a;c[(c[t>>2]|0)+(e<<2)>>2]=s;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=f+-1|0;if(f&e){if(d>>>0>=f>>>0)d=(d>>>0)%(f>>>0)|0}else d=d&e;c[(c[t>>2]|0)+(d<<2)>>2]=a}}else{t=c[y>>2]|0;c[t>>2]=c[d>>2];c[d>>2]=t}c[j>>2]=(c[j>>2]|0)+1;c[y>>2]=0;p=c[u>>2]|0;a=40}if((a|0)==40?(n=0,w=U(172,p|0,z|0)|0,y=n,n=0,!(y&1)):0){c[w>>2]=v;break}y=sa()|0;P()|0;Chb(z);Ea(y|0)}else b=c[d+20>>2]|0;while(0);y=c[b>>2]|0;Chb(z);z=y;yb=x;return z|0}function Ri(d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;c[f>>2]=d;y=q+11|0;G=q+4|0;z=p+11|0;A=p+4|0;B=(g&512|0)==0;C=j+8|0;D=(r|0)>0;E=o+11|0;F=o+4|0;x=0;while(1){if((x|0)==4)break;a:do switch(a[l+x>>0]|0){case 0:{c[e>>2]=c[f>>2];break}case 1:{c[e>>2]=c[f>>2];v=Gb[c[(c[j>>2]|0)+28>>2]&255](j,32)|0;w=c[f>>2]|0;c[f>>2]=w+1;a[w>>0]=v;break}case 3:{w=a[y>>0]|0;s=w<<24>>24<0;if((s?c[G>>2]|0:w&255)|0){v=a[(s?c[q>>2]|0:q)>>0]|0;w=c[f>>2]|0;c[f>>2]=w+1;a[w>>0]=v}break}case 2:{w=a[z>>0]|0;s=w<<24>>24<0;w=s?c[A>>2]|0:w&255;if(!(B|(w|0)==0)){t=s?c[p>>2]|0:p;u=t+w|0;v=c[f>>2]|0;s=v;while(1){if((t|0)==(u|0))break;a[s>>0]=a[t>>0]|0;s=s+1|0;t=t+1|0}c[f>>2]=v+w}break}case 4:{t=c[f>>2]|0;h=k?h+1|0:h;u=h;while(1){if(u>>>0>=i>>>0)break;s=a[u>>0]|0;if(s<<24>>24<=-1)break;if(!(b[(c[C>>2]|0)+(s<<24>>24<<1)>>1]&2048))break;u=u+1|0}if(D){v=r;while(1){s=(v|0)>0;if(!(u>>>0>h>>>0&s))break;w=u+-1|0;H=a[w>>0]|0;s=c[f>>2]|0;c[f>>2]=s+1;a[s>>0]=H;v=v+-1|0;u=w}if(s)w=Gb[c[(c[j>>2]|0)+28>>2]&255](j,48)|0;else w=0;s=v;while(1){v=c[f>>2]|0;c[f>>2]=v+1;if((s|0)<=0)break;a[v>>0]=w;s=s+-1|0}a[v>>0]=m}b:do if((u|0)==(h|0)){w=Gb[c[(c[j>>2]|0)+28>>2]&255](j,48)|0;H=c[f>>2]|0;c[f>>2]=H+1;a[H>>0]=w}else{H=a[E>>0]|0;s=H<<24>>24<0;if(!((s?c[F>>2]|0:H&255)|0))s=-1;else s=a[(s?c[o>>2]|0:o)>>0]|0;v=0;w=0;while(1){if((u|0)==(h|0))break b;if((w|0)==(s|0)){H=c[f>>2]|0;c[f>>2]=H+1;a[H>>0]=n;v=v+1|0;H=a[E>>0]|0;s=H<<24>>24<0;if(v>>>0<(s?c[F>>2]|0:H&255)>>>0){s=a[(s?c[o>>2]|0:o)+v>>0]|0;s=s<<24>>24==127?-1:s<<24>>24;w=0}else{s=w;w=0}}H=u+-1|0;J=a[H>>0]|0;I=c[f>>2]|0;c[f>>2]=I+1;a[I>>0]=J;w=w+1|0;u=H}}while(0);s=c[f>>2]|0;if((t|0)!=(s|0))while(1){s=s+-1|0;if(t>>>0>=s>>>0)break a;J=a[t>>0]|0;a[t>>0]=a[s>>0]|0;a[s>>0]=J;t=t+1|0}break}default:{}}while(0);x=x+1|0}s=a[y>>0]|0;h=s<<24>>24<0;s=h?c[G>>2]|0:s&255;if(s>>>0>1){h=h?c[q>>2]|0:q;u=h+s|0;v=c[f>>2]|0;t=s+-1|0;s=v;while(1){h=h+1|0;if((h|0)==(u|0))break;a[s>>0]=a[h>>0]|0;s=s+1|0}c[f>>2]=v+t}switch((g&176)<<24>>24){case 32:{c[e>>2]=c[f>>2];break}case 16:break;default:c[e>>2]=d}return}function Si(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;i=yb;yb=yb+48|0;f=i+24|0;g=i;h=Mqb(b)|0;if(h|0)switch(c[b+4>>2]|0){case 1:{Xha(f,h+8|0);e=32-(Peb(f)|0)|0;yb=i;return e|0}case 2:{Xha(g,h+8|0);e=$Xa(g)|0;P()|0;e=64-e|0;yb=i;return e|0}default:ma(141129,89176,58,89765)}h=Aqb(b)|0;a:do if(!h){f=Kqb(b)|0;if(f|0)switch(c[f+8>>2]|0){case 5:case 3:case 1:{e=7;yb=i;return e|0}case 21:case 20:{e=1;yb=i;return e|0}case 24:{e=Si(c[f+12>>2]|0,e)|0;e=e>>>0<32?e:32;yb=i;return e|0}case 4:case 2:case 0:{e=6;yb=i;return e|0}default:break a}f=iqb(b)|0;if(f|0){e=Si(c[f+12>>2]|0,e)|0;yb=i;return e|0}f=jqb(b)|0;if(f|0){e=tlb(c[e+44>>2]|0,c[f+8>>2]|0)|0;yb=i;return e|0}f=Sqb(b)|0;if((f|0?CEa(f)|0:0)?(a[f+9>>0]&1)==0:0){e=(d[f+8>>0]|0)<<3;yb=i;return e|0}}else switch(c[h+8>>2]|0){case 7:{b=Si(c[h+12>>2]|0,e)|0;e=Si(c[h+16>>2]|0,e)|0;e=e>>>0>>0?e:b;yb=i;return e|0}case 9:case 8:{b=Si(c[h+12>>2]|0,e)|0;e=Si(c[h+16>>2]|0,e)|0;e=b>>>0>>0?e:b;yb=i;return e|0}case 10:{f=Mqb(c[h+16>>2]|0)|0;if(!f){e=32;yb=i;return e|0}e=(Si(c[h+12>>2]|0,e)|0)+(Zaa(f)|0)|0;e=e>>>0<32?e:32;yb=i;return e|0}case 11:{f=Mqb(c[h+16>>2]|0)|0;if(!f){e=32;yb=i;return e|0}b=Si(c[h+12>>2]|0,e)|0;e=Zaa(f)|0;e=b-(b>>>0>>0?b:e)|0;yb=i;return e|0}case 12:{g=Mqb(c[h+16>>2]|0)|0;if(!g){e=32;yb=i;return e|0}f=Si(c[h+12>>2]|0,e)|0;if((f|0)==32){e=32;yb=i;return e|0}e=Zaa(g)|0;e=f-(f>>>0>>0?f:e)|0;yb=i;return e|0}case 75:case 74:case 73:case 72:case 71:case 70:case 62:case 61:case 60:case 59:case 58:case 57:case 49:case 48:case 47:case 46:case 45:case 44:case 43:case 42:case 41:case 40:case 24:case 23:case 22:case 21:case 20:case 19:case 18:case 17:case 16:case 15:{e=1;yb=i;return e|0}case 14:case 13:case 6:case 5:case 4:case 3:case 2:case 1:case 0:{e=32;yb=i;return e|0}default:break a}while(0);switch(c[b+4>>2]|0){case 2:{e=64;yb=i;return e|0}case 6:{e=64;yb=i;return e|0}case 1:{e=32;yb=i;return e|0}default:ma(141129,89176,131,89765)}return 0}function Ti(d,e,f,g,h){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;i=c[d>>2]|0;do if(i){j=c[i+12>>2]|0;if((j|0)==(c[i+16>>2]|0))i=Eb[c[(c[i>>2]|0)+36>>2]&511](i)|0;else i=Qzb(a[j>>0]|0)|0;if(dub(i,-1)|0){c[d>>2]=0;j=1;break}else{j=(c[d>>2]|0)==0;break}}else j=1;while(0);if(e){i=c[e+12>>2]|0;if((i|0)==(c[e+16>>2]|0))i=Eb[c[(c[e>>2]|0)+36>>2]&511](e)|0;else i=Qzb(a[i>>0]|0)|0;if(!(dub(i,-1)|0))if(j){l=e;p=16}else p=15;else p=13}else p=13;if((p|0)==13)if(j)p=15;else{l=0;p=16}a:do if((p|0)==15){c[f>>2]=c[f>>2]|6;i=0}else if((p|0)==16){i=c[d>>2]|0;j=c[i+12>>2]|0;if((j|0)==(c[i+16>>2]|0))i=Eb[c[(c[i>>2]|0)+36>>2]&511](i)|0;else i=Qzb(a[j>>0]|0)|0;j=i&255;if(j<<24>>24>-1?(o=g+8|0,b[(c[o>>2]|0)+(i<<24>>24<<1)>>1]&2048):0){i=(Hb[c[(c[g>>2]|0)+36>>2]&255](g,j,0)|0)<<24>>24;j=c[d>>2]|0;e=j+12|0;k=c[e>>2]|0;if((k|0)==(c[j+16>>2]|0))Eb[c[(c[j>>2]|0)+40>>2]&511](j)|0;else c[e>>2]=k+1;m=l;while(1){i=i+-48|0;n=h+-1|0;j=c[d>>2]|0;do if(j){e=c[j+12>>2]|0;if((e|0)==(c[j+16>>2]|0))j=Eb[c[(c[j>>2]|0)+36>>2]&511](j)|0;else j=Qzb(a[e>>0]|0)|0;if(dub(j,-1)|0){c[d>>2]=0;k=1;break}else{k=(c[d>>2]|0)==0;break}}else k=1;while(0);if(!m){j=1;m=0}else{j=c[m+12>>2]|0;if((j|0)==(c[m+16>>2]|0))j=Eb[c[(c[m>>2]|0)+36>>2]&511](m)|0;else j=Qzb(a[j>>0]|0)|0;e=dub(j,-1)|0;j=e;l=e?0:l;m=e?0:m}e=c[d>>2]|0;if(!((h|0)>1&(k^j)))break;j=c[e+12>>2]|0;if((j|0)==(c[e+16>>2]|0))j=Eb[c[(c[e>>2]|0)+36>>2]&511](e)|0;else j=Qzb(a[j>>0]|0)|0;e=j&255;if(e<<24>>24<=-1)break a;if(!(b[(c[o>>2]|0)+(j<<24>>24<<1)>>1]&2048))break a;i=(i*10|0)+((Hb[c[(c[g>>2]|0)+36>>2]&255](g,e,0)|0)<<24>>24)|0;j=c[d>>2]|0;e=j+12|0;k=c[e>>2]|0;if((k|0)==(c[j+16>>2]|0))Eb[c[(c[j>>2]|0)+40>>2]&511](j)|0;else c[e>>2]=k+1;h=n}do if(e){j=c[e+12>>2]|0;if((j|0)==(c[e+16>>2]|0))j=Eb[c[(c[e>>2]|0)+36>>2]&511](e)|0;else j=Qzb(a[j>>0]|0)|0;if(dub(j,-1)|0){c[d>>2]=0;e=1;break}else{e=(c[d>>2]|0)==0;break}}else e=1;while(0);if(l){j=c[l+12>>2]|0;if((j|0)==(c[l+16>>2]|0))j=Eb[c[(c[l>>2]|0)+36>>2]&511](l)|0;else j=Qzb(a[j>>0]|0)|0;if(!(dub(j,-1)|0)){if(e)break}else p=60}else p=60;if((p|0)==60?!e:0)break;c[f>>2]=c[f>>2]|2;break}c[f>>2]=c[f>>2]|4;i=0}while(0);return i|0}function Ui(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,o=0,p=0,q=0;p=yb;yb=yb+80|0;b=p+76|0;h=p+72|0;i=p+68|0;j=p+56|0;k=p+40|0;f=p+24|0;l=p+12|0;q=p;m=a+16|0;if(!(c[m>>2]|0)){yb=p;return}c[b>>2]=a;c[h>>2]=a;c[i>>2]=a;c[j>>2]=a;c[j+4>>2]=b;c[j+8>>2]=i;c[k>>2]=b;c[k+4>>2]=i;c[k+8>>2]=h;c[k+12>>2]=a;if(!(RG(j,118362)|0)){e=oa(12)|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;q=Zzb(118370)|0;n=0;ea(95,f|0,118370,q|0);q=n;n=0;if(!(q&1)){n=0;da(4023,e|0,f|0);q=n;n=0;if(q&1)d=1;else{n=0;ea(122,e|0,37736,556);n=0;d=0}b=sa()|0;P()|0;Chb(f);if(!d){q=b;Ea(q|0)}}else{b=sa()|0;P()|0}va(e|0);q=b;Ea(q|0)}Jqa(c[b>>2]|0);Mm(c[(c[i>>2]|0)+16>>2]|0,91);do if(!(rza(c[h>>2]|0,93)|0)){g=a+228|0;while(1){c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}n=0;da(4024,k|0,l|0);f=n;n=0;if(f&1)break;b=c[a>>2]|0;d=b+144|0;e=c[d>>2]|0;f=(e-(c[b+140>>2]|0)|0)/12|0;if((c[b+148>>2]|0)==(e|0)){n=0;da(2039,b+140|0,l|0);e=n;n=0;if(e&1)break}else{n=0;da(73,e|0,l|0);e=n;n=0;if(e&1)break;c[d>>2]=(c[d>>2]|0)+12}n=0;b=U(193,g|0,l|0)|0;e=n;n=0;if(e&1)break;c[b>>2]=f;Chb(l);if(!(rza(c[h>>2]|0,44)|0)){o=21;break}}if((o|0)==21){Mm(c[(c[i>>2]|0)+16>>2]|0,93);break}q=sa()|0;P()|0;Chb(l);Ea(q|0)}while(0);if(RG(j,118409)|0){Mm(c[(c[i>>2]|0)+16>>2]|0,34);if(rza(c[h>>2]|0,34)|0){c[a+20>>2]=0;yb=p;return}else{k=Qn(c[m>>2]|0)|0;l=Qn(c[m>>2]|0)|0;o=(Qn(c[m>>2]|0)|0)+1|0;q=Qn(c[m>>2]|0)|0;c[a+20>>2]=k;c[a+24>>2]=l;c[a+28>>2]=o;c[a+32>>2]=q;yb=p;return}}e=oa(12)|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;p=Zzb(118418)|0;n=0;ea(95,q|0,118418,p|0);p=n;n=0;if(!(p&1)){n=0;da(4023,e|0,q|0);p=n;n=0;if(p&1)d=1;else{n=0;ea(122,e|0,37736,556);n=0;d=0}b=sa()|0;P()|0;Chb(q);if(!d){q=b;Ea(q|0)}}else{b=sa()|0;P()|0}va(e|0);q=b;Ea(q|0)}function Vi(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=yb;yb=yb+256|0;r=s+216|0;j=s+112|0;v=s+232|0;q=s+224|0;u=s+220|0;l=s+250|0;o=s+240|0;p=s;c[v>>2]=j;c[v+4>>2]=574;anb(u,g);b=c[u>>2]|0;n=0;k=U(66,b|0,151324)|0;m=n;n=0;if(m&1){b=sa()|0;P()|0;k=v}else{a[l>>0]=0;n=0;b=aa(1,d|0,c[e>>2]|0,f|0,b|0,c[g+4>>2]|0,h|0,l|0,k|0,v|0,q|0,j+100|0)|0;m=n;n=0;a:do if(m&1)t=9;else{b:do if(b){n=0;W(c[(c[k>>2]|0)+32>>2]|0,k|0,88762,88772,o|0)|0;m=n;n=0;if(m&1){b=sa()|0;P()|0}else{k=c[q>>2]|0;g=c[v>>2]|0;b=k-g|0;if((b|0)>98){b=qc(b+2|0)|0;j=b;if(!b){n=0;ba(9);n=0}else t=14}else{b=p;j=0;t=14}do if((t|0)==14){if(a[l>>0]|0){a[b>>0]=45;b=b+1|0}l=o+10|0;m=o;while(1){if(g>>>0>=k>>>0)break;f=a[g>>0]|0;k=o;while(1){if((k|0)==(l|0)){k=l;break}if((a[k>>0]|0)==f<<24>>24)break;k=k+1|0}a[b>>0]=a[88762+(k-m)>>0]|0;g=g+1|0;b=b+1|0;k=c[q>>2]|0}a[b>>0]=0;c[r>>2]=i;if((X3a(p,137709,r)|0)!=1){n=0;ca(575,137713);n=0;break}if(j|0)wg(j);break b}while(0);b=sa()|0;P()|0;if(j|0)wg(j)}break a}while(0);b=c[d>>2]|0;do if(b){j=c[b+12>>2]|0;if((j|0)==(c[b+16>>2]|0)){n=0;b=S(c[(c[b>>2]|0)+36>>2]|0,b|0)|0;i=n;n=0;if(i&1){t=9;break a}}else b=Qzb(a[j>>0]|0)|0;if(dub(b,-1)|0){c[d>>2]=0;k=1;break}else{k=(c[d>>2]|0)==0;break}}else k=1;while(0);b=c[e>>2]|0;do if(b){j=c[b+12>>2]|0;if((j|0)==(c[b+16>>2]|0)){n=0;b=S(c[(c[b>>2]|0)+36>>2]|0,b|0)|0;i=n;n=0;if(i&1){t=9;break a}}else b=Qzb(a[j>>0]|0)|0;if(!(dub(b,-1)|0))if(k)break;else{t=44;break}else{c[e>>2]=0;t=42;break}}else t=42;while(0);if((t|0)==42?k:0)t=44;if((t|0)==44)c[h>>2]=c[h>>2]|2;j=c[d>>2]|0;XWa(u);b=c[v>>2]|0;c[v>>2]=0;if(b|0?(n=0,ca(c[v+4>>2]|0,b|0),v=n,n=0,v&1):0){v=ta(0)|0;P()|0;yub(v)}yb=s;return j|0}while(0);if((t|0)==9){b=sa()|0;P()|0}k=v;j=c[v>>2]|0}XWa(u);c[k>>2]=0;if(j|0?(n=0,ca(c[v+4>>2]|0,j|0),v=n,n=0,v&1):0){v=ta(0)|0;P()|0;yub(v)}Ea(b|0);return 0}function Wi(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=yb;yb=yb+592|0;r=s+560|0;j=s+160|0;v=s+576|0;q=s+568|0;u=s+564|0;l=s+584|0;o=s+112|0;p=s;c[v>>2]=j;c[v+4>>2]=574;anb(u,g);b=c[u>>2]|0;n=0;k=U(66,b|0,151356)|0;m=n;n=0;if(m&1){b=sa()|0;P()|0;k=v}else{a[l>>0]=0;n=0;b=aa(2,d|0,c[e>>2]|0,f|0,b|0,c[g+4>>2]|0,h|0,l|0,k|0,v|0,q|0,j+400|0)|0;m=n;n=0;a:do if(m&1)t=9;else{b:do if(b){n=0;W(c[(c[k>>2]|0)+48>>2]|0,k|0,137824,137834,o|0)|0;m=n;n=0;if(m&1){b=sa()|0;P()|0}else{k=c[q>>2]|0;g=c[v>>2]|0;b=k-g|0;if((b|0)>392){b=qc((b>>>2)+2|0)|0;j=b;if(!b){n=0;ba(9);n=0}else t=14}else{b=p;j=0;t=14}do if((t|0)==14){if(a[l>>0]|0){a[b>>0]=45;b=b+1|0}l=o+40|0;m=o;while(1){if(g>>>0>=k>>>0)break;f=c[g>>2]|0;k=o;while(1){if((k|0)==(l|0)){k=l;break}if((c[k>>2]|0)==(f|0))break;k=k+4|0}a[b>>0]=a[137824+(k-m>>2)>>0]|0;g=g+4|0;b=b+1|0;k=c[q>>2]|0}a[b>>0]=0;c[r>>2]=i;if((X3a(p,137709,r)|0)!=1){n=0;ca(575,137713);n=0;break}if(j|0)wg(j);break b}while(0);b=sa()|0;P()|0;if(j|0)wg(j)}break a}while(0);b=c[d>>2]|0;do if(b){j=c[b+12>>2]|0;if((j|0)==(c[b+16>>2]|0)){n=0;b=S(c[(c[b>>2]|0)+36>>2]|0,b|0)|0;i=n;n=0;if(i&1){t=9;break a}}else b=WCb(c[j>>2]|0)|0;if(Nwb(b)|0){c[d>>2]=0;k=1;break}else{k=(c[d>>2]|0)==0;break}}else k=1;while(0);b=c[e>>2]|0;do if(b){j=c[b+12>>2]|0;if((j|0)==(c[b+16>>2]|0)){n=0;b=S(c[(c[b>>2]|0)+36>>2]|0,b|0)|0;i=n;n=0;if(i&1){t=9;break a}}else b=WCb(c[j>>2]|0)|0;if(!(Nwb(b)|0))if(k)break;else{t=44;break}else{c[e>>2]=0;t=42;break}}else t=42;while(0);if((t|0)==42?k:0)t=44;if((t|0)==44)c[h>>2]=c[h>>2]|2;j=c[d>>2]|0;XWa(u);b=c[v>>2]|0;c[v>>2]=0;if(b|0?(n=0,ca(c[v+4>>2]|0,b|0),v=n,n=0,v&1):0){v=ta(0)|0;P()|0;yub(v)}yb=s;return j|0}while(0);if((t|0)==9){b=sa()|0;P()|0}k=v;j=c[v>>2]|0}XWa(u);c[k>>2]=0;if(j|0?(n=0,ca(c[v+4>>2]|0,j|0),v=n,n=0,v&1):0){v=ta(0)|0;P()|0;yub(v)}Ea(b|0);return 0}function Xi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;iR(b,100);WCb(d)|0;e=c[d>>2]|0;if(bCb(e)|0){Yfb(b,d);yb=g;return}if(OBb(e)|0){oVa(b,d);yb=g;return}if(zAb(e)|0){Nda(b,d);yb=g;return}if(PBb(e)|0){Mda(b,d);yb=g;return}e=rrb(d,0)|0;e=Dbb(WCb(c[e>>2]|0)|0)|0;e=c[e>>2]|0;do switch(a[e>>0]|0){case 97:{if(!(dub(e,c[37274]|0)|0))Ta();J1(b,d);yb=g;return}case 98:{if(dub(e,c[37201]|0)|0){kba(b,d);yb=g;return}if(dub(e,c[37197]|0)|0){r1(b,d);yb=g;return}if(!(dub(e,c[37212]|0)|0))Ta();foa(b,d);yb=g;return}case 99:{if(dub(e,c[37210]|0)|0){ST(b,d);yb=g;return}if(dub(e,c[37200]|0)|0){c3(b,d);yb=g;return}if(!(dub(e,c[37213]|0)|0))Ta();Vna(b,d);yb=g;return}case 100:{if(dub(e,c[37196]|0)|0){ay(b,d);yb=g;return}if(dub(e,c[37206]|0)|0){t9(b,d);yb=g;return}if(!(dub(e,c[37271]|0)|0))Ta();uwa(b,d);yb=g;return}case 105:{if(!(dub(e,c[37203]|0)|0))Ta();Wt(b,d);yb=g;return}case 108:{if(!(dub(e,c[37211]|0)|0))Ta();pla(b,d);yb=g;return}case 110:{if(!(dub(e,c[37273]|0)|0))Ta();e3a(b,d);yb=g;return}case 111:{if(!(dub(e,c[37275]|0)|0)){yb=g;return}jw(b,d);yb=g;return}case 114:{if(!(dub(e,c[37202]|0)|0))Ta();hva(b,d);yb=g;return}case 115:{if(dub(e,c[37209]|0)|0){_ta(b,d);yb=g;return}if(dub(e,c[37208]|0)|0){Bra(b,d);yb=g;return}if(dub(e,c[37214]|0)|0){Lv(b,d);yb=g;return}if(!(dub(e,c[37215]|0)|0))Ta();GLa(b,d);yb=g;return}case 116:{if(dub(e,c[37195]|0)|0){_Fa(b,d);yb=g;return}if(!(dub(e,c[37216]|0)|0))Ta();Iba(b,d);yb=g;return}case 117:{if(!(dub(e,c[37221]|0)|0))Ta();so(b,d);yb=g;return}case 118:{if(!(dub(e,c[37198]|0)|0))Ta();IG(b,d);yb=g;return}case 119:{if(!(dub(e,c[37205]|0)|0))Ta();Dga(b,d);yb=g;return}default:{c[f>>2]=e;G3a(46772,66713,f)|0;Ta()}}while(0)}function Yi(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,s=0,t=0,u=0;s=yb;yb=yb+32|0;o=s+24|0;k=s+20|0;l=s+16|0;m=s+12|0;n=s+8|0;p=s+4|0;q=s;r=b+92|0;a[r>>0]=0;sYa(b+16|0,d);g=b+148|0;d=c[g>>2]|0;h=b+144|0;e=c[h>>2]|0;if((d|0)!=(e|0)){f=b+36|0;while(1){if((e|0)==(d|0))break;i=(c[e>>2]|0)+12|0;j=c[f>>2]|0;WCb(j)|0;Wla(i,Ekb(j+152|0)|0);e=e+4|0}c[g>>2]=c[h>>2];a[r>>0]=1}i=b+160|0;d=c[i>>2]|0;j=b+156|0;e=c[j>>2]|0;if((d|0)!=(e|0)){h=b+36|0;while(1){if((e|0)==(d|0))break;g=c[e>>2]|0;Gsb(k,WCb(c[h>>2]|0)|0);f=g+12|0;t=c[f>>2]|0;Cub(l);u=c[k>>2]|0;c[o>>2]=c[l>>2];t=l7(u,t,o,0)|0;c[f>>2]=t;f=t+12|0;if(!((WCb(c[t+16>>2]|0)|0)!=0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)){u=c[h>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}f=g+16|0;do if(c[f>>2]|0){Gsb(m,WCb(c[h>>2]|0)|0);u=c[f>>2]|0;Cub(n);t=c[m>>2]|0;c[o>>2]=c[n>>2];u=l7(t,u,o,0)|0;c[f>>2]=u;f=u+12|0;if(WCb(c[u+16>>2]|0)|0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)break;u=c[h>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}while(0);e=e+4|0}c[i>>2]=c[j>>2];a[r>>0]=1}h=b+172|0;d=c[h>>2]|0;i=b+168|0;e=c[i>>2]|0;if((d|0)==(e|0)){u=b+44|0;zea(u);u=b+56|0;h9(u);u=b+68|0;rHa(u);u=a[r>>0]|0;u=u&1;u=u<<24>>24!=0;yb=s;return u|0}g=b+36|0;while(1){if((e|0)==(d|0))break;f=c[e>>2]|0;Gsb(p,WCb(c[g>>2]|0)|0);f=f+12|0;u=c[f>>2]|0;Cub(q);t=c[p>>2]|0;c[o>>2]=c[q>>2];u=l7(t,u,o,0)|0;c[f>>2]=u;f=u+12|0;if(!((WCb(c[u+16>>2]|0)|0)!=0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)){u=c[g>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}e=e+4|0}c[h>>2]=c[i>>2];a[r>>0]=1;u=b+44|0;zea(u);u=b+56|0;h9(u);u=b+68|0;rHa(u);u=a[r>>0]|0;u=u&1;u=u<<24>>24!=0;yb=s;return u|0}function Zi(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,s=0,t=0,u=0;s=yb;yb=yb+32|0;o=s+24|0;k=s+20|0;l=s+16|0;m=s+12|0;n=s+8|0;p=s+4|0;q=s;r=b+92|0;a[r>>0]=0;tYa(b+16|0,d);g=b+148|0;d=c[g>>2]|0;h=b+144|0;e=c[h>>2]|0;if((d|0)!=(e|0)){f=b+36|0;while(1){if((e|0)==(d|0))break;i=(c[e>>2]|0)+12|0;j=c[f>>2]|0;WCb(j)|0;Wla(i,Ekb(j+152|0)|0);e=e+4|0}c[g>>2]=c[h>>2];a[r>>0]=1}i=b+160|0;d=c[i>>2]|0;j=b+156|0;e=c[j>>2]|0;if((d|0)!=(e|0)){h=b+36|0;while(1){if((e|0)==(d|0))break;g=c[e>>2]|0;Gsb(k,WCb(c[h>>2]|0)|0);f=g+12|0;t=c[f>>2]|0;Cub(l);u=c[k>>2]|0;c[o>>2]=c[l>>2];t=l7(u,t,o,0)|0;c[f>>2]=t;f=t+12|0;if(!((WCb(c[t+16>>2]|0)|0)!=0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)){u=c[h>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}f=g+16|0;do if(c[f>>2]|0){Gsb(m,WCb(c[h>>2]|0)|0);u=c[f>>2]|0;Cub(n);t=c[m>>2]|0;c[o>>2]=c[n>>2];u=l7(t,u,o,0)|0;c[f>>2]=u;f=u+12|0;if(WCb(c[u+16>>2]|0)|0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)break;u=c[h>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}while(0);e=e+4|0}c[i>>2]=c[j>>2];a[r>>0]=1}h=b+172|0;d=c[h>>2]|0;i=b+168|0;e=c[i>>2]|0;if((d|0)==(e|0)){u=b+44|0;Aea(u);u=b+56|0;i9(u);u=b+68|0;rHa(u);u=a[r>>0]|0;u=u&1;u=u<<24>>24!=0;yb=s;return u|0}g=b+36|0;while(1){if((e|0)==(d|0))break;f=c[e>>2]|0;Gsb(p,WCb(c[g>>2]|0)|0);f=f+12|0;u=c[f>>2]|0;Cub(q);t=c[p>>2]|0;c[o>>2]=c[q>>2];u=l7(t,u,o,0)|0;c[f>>2]=u;f=u+12|0;if(!((WCb(c[u+16>>2]|0)|0)!=0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)){u=c[g>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}e=e+4|0}c[h>>2]=c[i>>2];a[r>>0]=1;u=b+44|0;Aea(u);u=b+56|0;i9(u);u=b+68|0;rHa(u);u=a[r>>0]|0;u=u&1;u=u<<24>>24!=0;yb=s;return u|0}function _i(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,s=0,t=0,u=0;s=yb;yb=yb+32|0;o=s+24|0;k=s+20|0;l=s+16|0;m=s+12|0;n=s+8|0;p=s+4|0;q=s;r=b+92|0;a[r>>0]=0;uYa(b+16|0,d);g=b+148|0;d=c[g>>2]|0;h=b+144|0;e=c[h>>2]|0;if((d|0)!=(e|0)){f=b+36|0;while(1){if((e|0)==(d|0))break;i=(c[e>>2]|0)+12|0;j=c[f>>2]|0;WCb(j)|0;Wla(i,Ekb(j+152|0)|0);e=e+4|0}c[g>>2]=c[h>>2];a[r>>0]=1}i=b+160|0;d=c[i>>2]|0;j=b+156|0;e=c[j>>2]|0;if((d|0)!=(e|0)){h=b+36|0;while(1){if((e|0)==(d|0))break;g=c[e>>2]|0;Gsb(k,WCb(c[h>>2]|0)|0);f=g+12|0;t=c[f>>2]|0;Cub(l);u=c[k>>2]|0;c[o>>2]=c[l>>2];t=l7(u,t,o,0)|0;c[f>>2]=t;f=t+12|0;if(!((WCb(c[t+16>>2]|0)|0)!=0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)){u=c[h>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}f=g+16|0;do if(c[f>>2]|0){Gsb(m,WCb(c[h>>2]|0)|0);u=c[f>>2]|0;Cub(n);t=c[m>>2]|0;c[o>>2]=c[n>>2];u=l7(t,u,o,0)|0;c[f>>2]=u;f=u+12|0;if(WCb(c[u+16>>2]|0)|0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)break;u=c[h>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}while(0);e=e+4|0}c[i>>2]=c[j>>2];a[r>>0]=1}h=b+172|0;d=c[h>>2]|0;i=b+168|0;e=c[i>>2]|0;if((d|0)==(e|0)){u=b+44|0;Bea(u);u=b+56|0;j9(u);u=b+68|0;rHa(u);u=a[r>>0]|0;u=u&1;u=u<<24>>24!=0;yb=s;return u|0}g=b+36|0;while(1){if((e|0)==(d|0))break;f=c[e>>2]|0;Gsb(p,WCb(c[g>>2]|0)|0);f=f+12|0;u=c[f>>2]|0;Cub(q);t=c[p>>2]|0;c[o>>2]=c[q>>2];u=l7(t,u,o,0)|0;c[f>>2]=u;f=u+12|0;if(!((WCb(c[u+16>>2]|0)|0)!=0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)){u=c[g>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}e=e+4|0}c[h>>2]=c[i>>2];a[r>>0]=1;u=b+44|0;Bea(u);u=b+56|0;j9(u);u=b+68|0;rHa(u);u=a[r>>0]|0;u=u&1;u=u<<24>>24!=0;yb=s;return u|0}function $i(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,s=0,t=0,u=0;s=yb;yb=yb+32|0;o=s+24|0;k=s+20|0;l=s+16|0;m=s+12|0;n=s+8|0;p=s+4|0;q=s;r=b+92|0;a[r>>0]=0;vYa(b+16|0,d);g=b+148|0;d=c[g>>2]|0;h=b+144|0;e=c[h>>2]|0;if((d|0)!=(e|0)){f=b+36|0;while(1){if((e|0)==(d|0))break;i=(c[e>>2]|0)+12|0;j=c[f>>2]|0;WCb(j)|0;Wla(i,Ekb(j+152|0)|0);e=e+4|0}c[g>>2]=c[h>>2];a[r>>0]=1}i=b+160|0;d=c[i>>2]|0;j=b+156|0;e=c[j>>2]|0;if((d|0)!=(e|0)){h=b+36|0;while(1){if((e|0)==(d|0))break;g=c[e>>2]|0;Gsb(k,WCb(c[h>>2]|0)|0);f=g+12|0;t=c[f>>2]|0;Cub(l);u=c[k>>2]|0;c[o>>2]=c[l>>2];t=l7(u,t,o,0)|0;c[f>>2]=t;f=t+12|0;if(!((WCb(c[t+16>>2]|0)|0)!=0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)){u=c[h>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}f=g+16|0;do if(c[f>>2]|0){Gsb(m,WCb(c[h>>2]|0)|0);u=c[f>>2]|0;Cub(n);t=c[m>>2]|0;c[o>>2]=c[n>>2];u=l7(t,u,o,0)|0;c[f>>2]=u;f=u+12|0;if(WCb(c[u+16>>2]|0)|0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)break;u=c[h>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}while(0);e=e+4|0}c[i>>2]=c[j>>2];a[r>>0]=1}h=b+172|0;d=c[h>>2]|0;i=b+168|0;e=c[i>>2]|0;if((d|0)==(e|0)){u=b+44|0;Cea(u);u=b+56|0;k9(u);u=b+68|0;rHa(u);u=a[r>>0]|0;u=u&1;u=u<<24>>24!=0;yb=s;return u|0}g=b+36|0;while(1){if((e|0)==(d|0))break;f=c[e>>2]|0;Gsb(p,WCb(c[g>>2]|0)|0);f=f+12|0;u=c[f>>2]|0;Cub(q);t=c[p>>2]|0;c[o>>2]=c[q>>2];u=l7(t,u,o,0)|0;c[f>>2]=u;f=u+12|0;if(!((WCb(c[u+16>>2]|0)|0)!=0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)){u=c[g>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}e=e+4|0}c[h>>2]=c[i>>2];a[r>>0]=1;u=b+44|0;Cea(u);u=b+56|0;k9(u);u=b+68|0;rHa(u);u=a[r>>0]|0;u=u&1;u=u<<24>>24!=0;yb=s;return u|0}function aj(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,s=0,t=0,u=0;s=yb;yb=yb+32|0;o=s+24|0;k=s+20|0;l=s+16|0;m=s+12|0;n=s+8|0;p=s+4|0;q=s;r=b+92|0;a[r>>0]=0;wYa(b+16|0,d);g=b+148|0;d=c[g>>2]|0;h=b+144|0;e=c[h>>2]|0;if((d|0)!=(e|0)){f=b+36|0;while(1){if((e|0)==(d|0))break;i=(c[e>>2]|0)+12|0;j=c[f>>2]|0;WCb(j)|0;Wla(i,Ekb(j+152|0)|0);e=e+4|0}c[g>>2]=c[h>>2];a[r>>0]=1}i=b+160|0;d=c[i>>2]|0;j=b+156|0;e=c[j>>2]|0;if((d|0)!=(e|0)){h=b+36|0;while(1){if((e|0)==(d|0))break;g=c[e>>2]|0;Gsb(k,WCb(c[h>>2]|0)|0);f=g+12|0;t=c[f>>2]|0;Cub(l);u=c[k>>2]|0;c[o>>2]=c[l>>2];t=l7(u,t,o,0)|0;c[f>>2]=t;f=t+12|0;if(!((WCb(c[t+16>>2]|0)|0)!=0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)){u=c[h>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}f=g+16|0;do if(c[f>>2]|0){Gsb(m,WCb(c[h>>2]|0)|0);u=c[f>>2]|0;Cub(n);t=c[m>>2]|0;c[o>>2]=c[n>>2];u=l7(t,u,o,0)|0;c[f>>2]=u;f=u+12|0;if(WCb(c[u+16>>2]|0)|0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)break;u=c[h>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}while(0);e=e+4|0}c[i>>2]=c[j>>2];a[r>>0]=1}h=b+172|0;d=c[h>>2]|0;i=b+168|0;e=c[i>>2]|0;if((d|0)==(e|0)){u=b+44|0;Dea(u);u=b+56|0;l9(u);u=b+68|0;rHa(u);u=a[r>>0]|0;u=u&1;u=u<<24>>24!=0;yb=s;return u|0}g=b+36|0;while(1){if((e|0)==(d|0))break;f=c[e>>2]|0;Gsb(p,WCb(c[g>>2]|0)|0);f=f+12|0;u=c[f>>2]|0;Cub(q);t=c[p>>2]|0;c[o>>2]=c[q>>2];u=l7(t,u,o,0)|0;c[f>>2]=u;f=u+12|0;if(!((WCb(c[u+16>>2]|0)|0)!=0?(u=cWa(f)|0,Gzb(c[c[u>>2]>>2]|0)|0):0)){u=c[g>>2]|0;WCb(u)|0;Wla(f,Ekb(u+152|0)|0)}e=e+4|0}c[h>>2]=c[i>>2];a[r>>0]=1;u=b+44|0;Dea(u);u=b+56|0;l9(u);u=b+68|0;rHa(u);u=a[r>>0]|0;u=u&1;u=u<<24>>24!=0;yb=s;return u|0}function bj(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=yb;yb=yb+80|0;r=u+72|0;i=u+68|0;v=u+56|0;k=u+52|0;q=u+48|0;s=u+44|0;t=u;g=c[e+16>>2]|0;d=b+16|0;f=c[e+12>>2]|0;while(1){if((f|0)==(g|0))break;h=c[f>>2]|0;if(((c[h+8>>2]|0)==0?(c[i>>2]=c[h+4>>2],c[r>>2]=c[i>>2],j=wQ(e,r)|0,Dma(j)|0):0)?O0a(a[d>>0]|0,c[f>>2]|0)|0:0){p=gg(j,e)|0;c[(c[f>>2]|0)+4>>2]=p}f=f+4|0}if(!(a[d>>0]&1)){yb=u;return}c[v>>2]=0;j=v+4|0;c[j>>2]=0;g=v+8|0;c[g>>2]=0;h=c[e+28>>2]|0;d=c[e+24>>2]|0;while(1){i=d;if((h|0)==(i|0)){o=19;break}d=c[d>>2]|0;c[k>>2]=d;f=c[j>>2]|0;if(f>>>0>=(c[g>>2]|0)>>>0){n=0;da(133,v|0,k|0);p=n;n=0;if(p&1){o=16;break}}else{c[f>>2]=d;c[j>>2]=(c[j>>2]|0)+4}d=i+4|0}a:do if((o|0)==16){d=sa()|0;P()|0}else if((o|0)==19){l=c[j>>2]|0;p=b+20|0;m=e+76|0;k=c[v>>2]|0;b:while(1){if((k|0)==(l|0))break;g=c[k>>2]|0;c:do if(Yrb(g)|0){c[q>>2]=c[g+40>>2];n=0;c[r>>2]=c[q>>2];d=U(70,e|0,r|0)|0;j=n;n=0;if(j&1){o=15;break b}if(mma(d)|0){n=0;d=U(151,g|0,e|0)|0;j=n;n=0;if(j&1){o=15;break b}n=0;f=U(131,p|0,g+8|0)|0;j=n;n=0;if(j&1){o=15;break b}c[f>>2]=d;j=c[m>>2]|0;f=g+8|0;h=c[e+72>>2]|0;while(1){if((h|0)==(j|0))break c;i=c[h+8>>2]|0;g=c[h+4>>2]|0;while(1){if((g|0)==(i|0))break;if(dub(c[g>>2]|0,c[f>>2]|0)|0)c[g>>2]=d;g=g+4|0}h=h+16|0}}}while(0);k=k+4|0}if((o|0)==15){d=sa()|0;P()|0;break}do if(c[b+28>>2]|0){g=b+24|0;d=c[p>>2]|0;while(1){if((g|0)==(d|0))break;c[s>>2]=c[d+16>>2];c[r>>2]=c[s>>2];WC(e,r);f=d;d=c[f+4>>2]|0;d:do if(!d)while(1){d=c[f+8>>2]|0;if((f|0)==(c[d>>2]|0))break d;f=d}else while(1){f=c[d>>2]|0;if(!f)break;d=f}while(0)}n=0;da(998,t|0,e|0);e=n;n=0;if(e&1){d=sa()|0;P()|0;break a}Lvb(t);n=0;da(1637,t|0,p|0);e=n;n=0;if(!(e&1)?(n=0,ca(489,t|0),e=n,n=0,!(e&1)):0){osa(t);break}e=sa()|0;P()|0;osa(t);Vob(v);Ea(e|0)}while(0);Vob(v);yb=u;return}while(0);e=d;Vob(v);Ea(e|0)}function cj(a,b){a=a|0;b=b|0;if(!b)ma(112644,134747,85,112649);do switch(c[b>>2]|0){case 1:{b=Zab(a,b)|0;return b|0}case 2:{b=Zab(a,b)|0;return b|0}case 3:{b=Zab(a,b)|0;return b|0}case 4:{b=Zab(a,b)|0;return b|0}case 5:{b=Zab(a,b)|0;return b|0}case 6:{b=Zab(a,b)|0;return b|0}case 7:{b=Zab(a,b)|0;return b|0}case 8:{b=Zab(a,b)|0;return b|0}case 9:{b=Zab(a,b)|0;return b|0}case 10:{b=Zab(a,b)|0;return b|0}case 11:{b=Zab(a,b)|0;return b|0}case 12:{b=Zab(a,b)|0;return b|0}case 13:{b=Zab(a,b)|0;return b|0}case 23:{b=Zab(a,b)|0;return b|0}case 24:{b=Zab(a,b)|0;return b|0}case 25:{b=Zab(a,b)|0;return b|0}case 26:{b=Zab(a,b)|0;return b|0}case 27:{b=Zab(a,b)|0;return b|0}case 28:{b=Zab(a,b)|0;return b|0}case 29:{b=Zab(a,b)|0;return b|0}case 30:{b=Zab(a,b)|0;return b|0}case 31:{b=Zab(a,b)|0;return b|0}case 32:{b=Zab(a,b)|0;return b|0}case 33:{b=Zab(a,b)|0;return b|0}case 34:{b=Zab(a,b)|0;return b|0}case 35:{b=Zab(a,b)|0;return b|0}case 14:{b=Zab(a,b)|0;return b|0}case 15:{b=Zab(a,b)|0;return b|0}case 16:{b=Zab(a,b)|0;return b|0}case 17:{b=Zab(a,b)|0;return b|0}case 18:{b=Zab(a,b)|0;return b|0}case 19:{b=Zab(a,b)|0;return b|0}case 20:{b=Zab(a,b)|0;return b|0}case 21:{b=Zab(a,b)|0;return b|0}case 22:{b=Zab(a,b)|0;return b|0}default:ma(141129,134747,128,112649)}while(0);return 0}function dj(a,b){a=a|0;b=b|0;if(!b)ma(112644,134747,85,112649);do switch(c[b>>2]|0){case 1:{Zs(a,b);return}case 2:{uw(a,b);return}case 3:{SG(a,b);return}case 4:{Kz(a,b);return}case 5:{Cq(a,b);return}case 6:{Qw(a,b);return}case 7:{ou(a,b);return}case 8:{wN(a,b);return}case 9:{fG(a,b);return}case 10:{bJ(a,b);return}case 11:{EM(a,b);return}case 12:{Kk(a,b);return}case 13:{Tk(a,b);return}case 23:{Bf(a,b);return}case 24:{kp(a,b);return}case 25:{ry(a,b);return}case 26:{BL(a,b);return}case 27:{xt(a,b);return}case 28:{yu(a,b);return}case 29:{BQ(a,b);return}case 30:{uU(a,b);return}case 31:{Jn(a,b);return}case 32:{uI(a,b);return}case 33:{C4(a,b);return}case 34:{ZM(a,b);return}case 35:{cQ(a,b);return}case 14:{dq(a,b);return}case 15:{Kc(a,b);return}case 16:{oc(a,b);return}case 17:{QM(a,b);return}case 18:{Oca(a,b);return}case 19:{aaa(a,b);return}case 20:{yG(a,b);return}case 21:{wwa(a);return}case 22:{Tsa(a);return}default:ma(141129,134747,128,112649)}while(0)}function ej(b){b=b|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+48|0;e=h+24|0;f=h;g=Mqb(b)|0;if(g|0)switch(c[b+4>>2]|0){case 1:{Xha(e,g+8|0);b=32-(Peb(e)|0)|0;yb=h;return b|0}case 2:{Xha(f,g+8|0);b=$Xa(f)|0;P()|0;b=64-b|0;yb=h;return b|0}default:ma(141129,89176,58,89765)}g=Aqb(b)|0;a:do if(!g){e=Kqb(b)|0;if(e|0)switch(c[e+8>>2]|0){case 5:case 3:case 1:{b=7;yb=h;return b|0}case 21:case 20:{b=1;yb=h;return b|0}case 24:{b=ej(c[e+12>>2]|0)|0;b=b>>>0<32?b:32;yb=h;return b|0}case 4:case 2:case 0:{b=6;yb=h;return b|0}default:break a}e=iqb(b)|0;if(e|0){b=ej(c[e+12>>2]|0)|0;yb=h;return b|0}e=jqb(b)|0;if(e|0){b=vlb(c[e+4>>2]|0)|0;yb=h;return b|0}e=Sqb(b)|0;if((e|0?CEa(e)|0:0)?(a[e+9>>0]&1)==0:0){b=(d[e+8>>0]|0)<<3;yb=h;return b|0}}else switch(c[g+8>>2]|0){case 7:{b=ej(c[g+12>>2]|0)|0;g=ej(c[g+16>>2]|0)|0;b=g>>>0>>0?g:b;yb=h;return b|0}case 9:case 8:{b=ej(c[g+12>>2]|0)|0;g=ej(c[g+16>>2]|0)|0;b=b>>>0>>0?g:b;yb=h;return b|0}case 10:{e=Mqb(c[g+16>>2]|0)|0;if(!e){b=32;yb=h;return b|0}b=(ej(c[g+12>>2]|0)|0)+(Zaa(e)|0)|0;b=b>>>0<32?b:32;yb=h;return b|0}case 11:{e=Mqb(c[g+16>>2]|0)|0;if(!e){b=32;yb=h;return b|0}g=ej(c[g+12>>2]|0)|0;b=Zaa(e)|0;b=g-(g>>>0>>0?g:b)|0;yb=h;return b|0}case 12:{f=Mqb(c[g+16>>2]|0)|0;if(!f){b=32;yb=h;return b|0}e=ej(c[g+12>>2]|0)|0;if((e|0)==32){b=32;yb=h;return b|0}b=Zaa(f)|0;b=e-(e>>>0>>0?e:b)|0;yb=h;return b|0}case 75:case 74:case 73:case 72:case 71:case 70:case 62:case 61:case 60:case 59:case 58:case 57:case 49:case 48:case 47:case 46:case 45:case 44:case 43:case 42:case 41:case 40:case 24:case 23:case 22:case 21:case 20:case 19:case 18:case 17:case 16:case 15:{b=1;yb=h;return b|0}case 14:case 13:case 6:case 5:case 4:case 3:case 2:case 1:case 0:{b=32;yb=h;return b|0}default:break a}while(0);switch(c[b+4>>2]|0){case 2:{b=64;yb=h;return b|0}case 6:{b=64;yb=h;return b|0}case 1:{b=32;yb=h;return b|0}default:ma(141129,89176,131,89765)}return 0}function fj(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=yb;yb=yb+48|0;z=y+32|0;x=y+16|0;w=y;if(!(WCb(c[d+16>>2]|0)|0)){yb=y;return}e=d+4|0;if((c[e>>2]|0)==2)c[e>>2]=1;g=b+108|0;h=NF(g,d+8|0)|0;j=d+12|0;i=cWa(j)|0;if(!(qqa(b,c[i>>2]|0)|0)){if(!h){yb=y;return}xm(b,d,h+12|0);yb=y;return}i=cWa(j)|0;pT(z,b,c[i>>2]|0);i=(h|0)==0;a:do if(!i){e=h+12|0;n=0;f=V(81,e|0,c[z>>2]|0,a[z+8>>0]|0)|0;A=n;n=0;if(!(A&1))if(!f){n=0;da(1448,x|0,e|0);A=n;n=0;if(A&1)e=13;else{n=0;ea(145,w|0,b|0,1);A=n;n=0;if(A&1){e=sa()|0;P()|0}else{nS(g,h)|0;e=b+44|0;f=c[e>>2]|0;n=0;g=S(280,w|0)|0;A=n;n=0;do if((((((((!(A&1)?(n=0,k=S(275,j|0)|0,A=n,n=0,!(A&1)):0)?(n=0,l=V(70,c[f>>2]|0,g|0,c[k>>2]|0)|0,A=n,n=0,!(A&1)):0)?(m=c[e>>2]|0,n=0,o=S(280,x|0)|0,A=n,n=0,!(A&1)):0)?(p=c[e>>2]|0,n=0,q=S(280,z|0)|0,A=n,n=0,!(A&1)):0)?(n=0,r=V(71,c[p>>2]|0,q|0,1)|0,A=n,n=0,!(A&1)):0)?(n=0,s=V(70,c[m>>2]|0,o|0,r|0)|0,A=n,n=0,!(A&1)):0)?(t=c[e>>2]|0,n=0,u=S(280,w|0)|0,A=n,n=0,!(A&1)):0)?(n=0,v=V(71,c[t>>2]|0,u|0,1)|0,A=n,n=0,!(A&1)):0){n=0;f=W(20,c[e>>2]|0,l|0,s|0,v|0)|0;A=n;n=0;if(A&1)break;n=0;e=S(275,j|0)|0;A=n;n=0;if(A&1)break;c[e>>2]=f;n=0;ea(147,b|0,d|0,x|0);A=n;n=0;if(A&1)break;lNa(w);lNa(x);e=29;break a}while(0);e=sa()|0;P()|0;lNa(w)}lNa(x);A=e;lNa(z);Ea(A|0)}}else e=10;else e=13}else e=10;while(0);if((e|0)==10){n=0;ea(147,b|0,d|0,z|0);A=n;n=0;if(!(A&1))if(i)e=29;else{nS(g,h)|0;e=29}else e=13}if((e|0)==13){A=sa()|0;P()|0;lNa(z);Ea(A|0)}else if((e|0)==29){lNa(z);yb=y;return}}function gj(a,b){a=a|0;b=b|0;if(!b)ma(112644,134747,85,112649);do switch(c[b>>2]|0){case 1:{Bu(a,b);return}case 2:{GE(a,b);return}case 3:{SE(a,b);return}case 4:{sR(a,b);return}case 5:{Nt(a,b);return}case 6:{gC(a,b);return}case 7:{Gz(a,b);return}case 8:{wN(a,b);return}case 9:{mU(a,b);return}case 10:{bJ(a,b);return}case 11:{$S(a,b);return}case 12:{dl(a,b);return}case 13:{Hl(a,b);return}case 23:{Hf(a,b);return}case 24:{rs(a,b);return}case 25:{AG(a,b);return}case 26:{Q0(a,b);return}case 27:{mu(a,b);return}case 28:{Lw(a,b);return}case 29:{F4(a,b);return}case 30:{bqa(a);return}case 31:{ro(a,b);return}case 32:{D1(a,b);return}case 33:{C4(a,b);return}case 34:{Q9(a);return}case 35:{zda(a);return}case 14:{dq(a,b);return}case 15:{Lc(a,b);return}case 16:{pc(a,b);return}case 17:{gla(a,b);return}case 18:{Sva(a);return}case 19:{Gra(a,b);return}case 20:{xK(a,b);return}case 21:{wwa(a);return}case 22:{Tsa(a);return}default:ma(141129,134747,128,112649)}while(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,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=yb;yb=yb+352|0;t=y+328|0;j=y+320|0;z=y+96|0;k=y+88|0;l=y+84|0;o=y+72|0;p=y+60|0;A=y+16|0;q=y+4|0;u=y;if(!(OBb(c[d>>2]|0)|0))ma(107225,77561,109,77622);if(z5a(d)|0)ma(77598,77561,110,77622);v=d+4|0;i=c[v>>2]|0;w=d+16|0;x=d+12|0;r=b+36|0;h=0;while(1){e=c[x>>2]|0;if(h>>>0>=(c[w>>2]|0)-e>>2>>>0)break;if(z5a(c[e+(h<<2)>>2]|0)|0){e=YM(i,h)|0;f=Mqb(c[(c[(c[x>>2]|0)+(h<<2)>>2]|0)+4>>2]|0)|0;Gsb(j,WCb(c[r>>2]|0)|0);m=t;f=f+8|0;g=m+24|0;do{a[m>>0]=a[f>>0]|0;m=m+1|0;f=f+1|0}while((m|0)<(g|0));m=D7(j,t)|0;c[e>>2]=m}h=h+1|0}xw(z);Gsb(k,z);n=0;da(211,l|0,77645);m=n;n=0;if(!(m&1)){c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;n=0;c[t>>2]=c[l>>2];e=Y(21,t|0,o|0,0,p|0,i|0)|0;m=n;n=0;if(m&1){A=sa()|0;P()|0;Vob(p);Vob(o);uF(z);Ea(A|0)}Vob(p);Vob(o);n=0;da(998,A|0,z|0);p=n;n=0;if(!(p&1)){Lvb(A);c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;p=Zzb(92543)|0;n=0;ea(95,q|0,92543,p|0);p=n;n=0;do if(!(p&1)){n=0;da(68,A|0,q|0);p=n;n=0;if(p&1){e=sa()|0;P()|0;Chb(q);break}Chb(q);n=0;da(225,A|0,e|0);s=n;n=0;if(!(s&1)){e=c[e+44>>2]|0;if(!(_xb(c[e>>2]|0)|0)){osa(A);uF(z);yb=y;return}Gsb(u,WCb(c[r>>2]|0)|0);n=0;e=S(259,e|0)|0;s=n;n=0;if(!(s&1)){n=0;m=t;f=e+8|0;g=m+24|0;do{a[m>>0]=a[f>>0]|0;m=m+1|0;f=f+1|0}while((m|0)<(g|0));e=U(120,u|0,t|0)|0;u=n;n=0;if(!(u&1)){c[v>>2]=e;if(!(z5a(d)|0)){n=0;fa(75,77650,77561,144,77622);n=0;s=19;break}iaa(b+44|0,d);c[w>>2]=c[x>>2];n=0;ea(132,b|0,d|0,d|0);x=n;n=0;if(!(x&1)){osa(A);uF(z);yb=y;return}else s=19}else s=19}else s=19}else s=19}else s=19;while(0);if((s|0)==19){e=sa()|0;P()|0}osa(A);A=e;uF(z);Ea(A|0)}}A=sa()|0;P()|0;uF(z);Ea(A|0)}function ij(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,s=0;s=yb;yb=yb+112|0;k=s+104|0;q=s+100|0;m=s+96|0;n=s+92|0;g=s;i=d+8|0;if(!(eCb(c[i>>2]|0)|0)){r=0;yb=s;return r|0}r=Rqb(c[d+12>>2]|0)|0;if(!r){r=0;yb=s;return r|0}p=r+16|0;if((WCb(c[p>>2]|0)|0)>>>0<2){r=0;yb=s;return r|0}l=r+12|0;j=cWa(l)|0;j=Qqb(c[j>>2]|0)|0;if(!j){r=0;yb=s;return r|0}if(!(aeb(j)|0)){r=0;yb=s;return r|0}if(cub(c[j+8>>2]|0,c[i>>2]|0)|0){r=0;yb=s;return r|0}o=(WCb(c[p>>2]|0)|0)+-2|0;Gsb(q,WCb(c[b+36>>2]|0)|0);b=b+40|0;e=g+26|0;while(1){f=uXa(l,o)|0;f=c[f>>2]|0;h=wrb(f)|0;if(h|0){e=9;break}h=Qqb(f)|0;if(h|0){e=19;break}VA(g,pob(c[b>>2]|0)|0,f);h=(a[e>>0]&1)!=0;Fha(g);if(h|(o|0)==0){b=0;e=29;break}o=o+-1|0}if((e|0)==9){b=h+16|0;e=c[b>>2]|0;if(!e){if((c[(c[h+12>>2]|0)+4>>2]|0)!=6){r=0;yb=s;return r|0}q=HE(q,r,o+1|0,WCb(c[p>>2]|0)|0)|0;c[b>>2]=q;gQ(h);_u(r);r=1;yb=s;return r|0}if(vub(c[h+4>>2]|0)|0)ma(101559,101296,372,101586);f=h+12|0;g=c[f>>2]|0;if((c[g+4>>2]|0)==6){q=tz(q,e,HE(q,r,o+1|0,WCb(c[p>>2]|0)|0)|0)|0;c[b>>2]=q;gQ(h);_u(r);r=1;yb=s;return r|0}if((c[e+4>>2]|0)!=6){r=0;yb=s;return r|0}q=tz(q,g,HE(q,r,o+1|0,WCb(c[p>>2]|0)|0)|0)|0;c[f>>2]=q;gQ(h);_u(r);r=1;yb=s;return r|0}else if((e|0)==19){f=h+16|0;b=c[f>>2]|0;if(!b){r=0;yb=s;return r|0}if(c[h+12>>2]|0){r=0;yb=s;return r|0}e=c[h+8>>2]|0;if(!(cub(e,c[i>>2]|0)|0)){r=0;yb=s;return r|0}if((o|0)==((WCb(c[p>>2]|0)|0)+-2|0)){r=pVa(c[q>>2]|0,20,b)|0;c[f>>2]=r;r=h+8|0;c[j+8>>2]=c[r>>2];c[r>>2]=c[d+8>>2];r=1;yb=s;return r|0}b=c[r+8>>2]|0;if(!(dub(e,b)|0)){r=0;yb=s;return r|0}c[m>>2]=b;c[k>>2]=c[m>>2];if((bU(r,k)|0)!=1){r=0;yb=s;return r|0}m=c[f>>2]|0;c[n>>2]=c[h+8>>2];j=c[q>>2]|0;c[k>>2]=c[n>>2];n=nHa(j,k,0,0)|0;q=zOa(j,m,n,HE(q,r,o+1|0,WCb(c[p>>2]|0)|0)|0)|0;r=uXa(l,o)|0;c[r>>2]=q;r=1;yb=s;return r|0}else if((e|0)==29){yb=s;return b|0}return 0}function jj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0;q=yb;yb=yb+4192|0;o=q+4176|0;r=q;s=q+4112|0;a:do if((b|0)!=0?(g=(d|0)!=0,p=(e|0)==0,!(g&p)):0){if(g)m=c[e>>2]|0;else m=0;Nsb(r);M1(s,r);i=s+48|0;h=s+61|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;a[i+12>>0]=0;a[h>>0]=1;i=s+32|0;j=s+36|0;g=c[j>>2]|0;if(g>>>0>=(c[s+40>>2]|0)>>>0){n=0;da(4194,i|0,r|0);l=n;n=0;if(l&1){d=sa()|0;P()|0}else t=10}else{Pwb(o,r);c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=c[o>>2];c[j>>2]=(c[j>>2]|0)+16;t=10}if((t|0)==10){k=s+62|0;a[k>>0]=0;a[s+63>>0]=1;c[o>>2]=0;l=b+(y2(b)|0)|0;n=0;fa(182,b|0,l|0,s|0,o|0);g=n;n=0;b:do if(g&1)t=25;else{g=c[o>>2]|0;do if(!((g|0)!=0|(a[k>>0]|0)==0)){i=c[i>>2]|0;if((i|0)!=(c[j>>2]|0)?(c[i>>2]|0)!=(c[i+4>>2]|0):0){a[k>>0]=0;a[h>>0]=0;h=c[s>>2]|0;i=s+4|0;g=c[i>>2]|0;while(1){if((g|0)==(h|0))break;j=g+-24|0;J2a(j);g=j}c[i>>2]=h;h=c[s+16>>2]|0;i=s+20|0;g=c[i>>2]|0;while(1){if((g|0)==(h|0))break;j=g+-16|0;V5(j);g=j}c[i>>2]=h;n=0;fa(182,b|0,l|0,s|0,o|0);b=n;n=0;if(b&1){t=25;break b}if(!(a[k>>0]|0)){g=c[o>>2]|0;t=26;break}else{c[o>>2]=-2;d=0;g=-2;break}}else t=27}else t=26;while(0);if((t|0)==26)if(!g)t=27;else d=0;do if((t|0)==27){h=s+4|0;i=NDa((c[h>>2]|0)+-24|0)|0;g=i+1|0;if(g>>>0>m>>>0){d=F7(d,g)|0;if(!d){c[o>>2]=-1;d=0;g=-1;break}if(!p)c[e>>2]=g}else if(!d){d=0;g=0;break}o=c[h>>2]|0;m=o+-12|0;p=a[m+11>>0]|0;e=p<<24>>24<0;n=0;V(124,o+-24|0,(e?c[m>>2]|0:m)|0,(e?c[o+-8>>2]|0:p&255)|0)|0;p=n;n=0;if(p&1){d=sa()|0;P()|0;break b}g=(c[h>>2]|0)+-24|0;if((a[g+11>>0]|0)<0)g=c[g>>2]|0;Uv(d|0,g|0,i|0)|0;a[d+i>>0]=0;g=0}while(0);if(f|0)c[f>>2]=g;Gha(s);htb(r);break a}while(0);if((t|0)==25){d=sa()|0;P()|0}}Gha(s);htb(r);Ea(d|0)}else t=3;while(0);if((t|0)==3)if(!f)d=0;else{c[f>>2]=-3;d=0}yb=q;return d|0}function kj(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=yb;yb=yb+112|0;f=t+96|0;g=t+92|0;h=t+88|0;i=t+80|0;q=t+72|0;m=t+64|0;r=t+56|0;s=t;c[f>>2]=d;w_a(g,d);p=a+20|0;o=c[g>>2]|0;c[g>>2]=0;b=c[p>>2]|0;c[p>>2]=o;if(b|0)RCb(b);c[g>>2]=0;uUa(h,f);p=a+16|0;o=c[h>>2]|0;c[h>>2]=0;b=c[p>>2]|0;c[p>>2]=o;if(b|0){gM(b);RCb(b)}c[h>>2]=0;o=kib(a)|0;k=mla(12)|0;p=e+44|0;f7a(k,a,c[p>>2]|0);G6(i,k);k=a+44|0;b=c[k>>2]|0;do if(b>>>0<(c[a+48>>2]|0)>>>0){c[b>>2]=c[i>>2];j=i+4|0;c[b+4>>2]=c[j>>2];c[i>>2]=0;c[j>>2]=0;c[k>>2]=(c[k>>2]|0)+8;b=0}else{n=0;da(3024,a+40|0,i|0);j=n;n=0;if(!(j&1)){b=c[i+4>>2]|0;break}t=sa()|0;P()|0;OCa(c[i+4>>2]|0);Ea(t|0)}while(0);OCa(b);h=a+40|0;while(1){j=c[k>>2]|0;f=j;if((j|0)==(c[h>>2]|0))break;b=f+-8|0;i=c[b>>2]|0;j=c[f+-4>>2]|0;if(!j)g=f;else{g=j+4|0;c[g>>2]=(c[g>>2]|0)+1;g=c[k>>2]|0;b=g+-8|0}f=0;while(1){if((f|0)==-1)break;u=f+-1|0;OCa(c[g+(u<<3)+4>>2]|0);f=u}c[k>>2]=b;n=0;ca(c[c[i>>2]>>2]|0,i|0);u=n;n=0;if(u&1){l=19;break}OCa(j)}if((l|0)==19){u=sa()|0;P()|0;OCa(j);Ea(u|0)}Ymb(c[(c[a+24>>2]|0)+104>>2]|0);j=a+16|0;k=(c[j>>2]|0)+4|0;Kra(q,k);Vda(m,k);k=q+4|0;i=c[m+4>>2]|0;l=e+12|0;h=a+20|0;b=c[k>>2]|0;while(1){if((b|0)==(i|0))break;u=c[b>>2]|0;g=ufb(c[u+104>>2]|0)|0;if(bCb(c[u+8>>2]|0)|0?(c[g+4>>2]|0)!=6:0){f=c[c[h>>2]>>2]|0;if(!(c[l>>2]|0))f=qeb(f,0)|0;else f=Dpb(f)|0;Wla(g+12|0,f);_u(g)}b=b+4|0;c[k>>2]=b;f=c[q>>2]|0;if((b-(c[f>>2]|0)|0)==4096){b=f+4|0;c[q>>2]=b;b=c[b>>2]|0;c[k>>2]=b}}hn(c[j>>2]|0,o);agb(r,d,cCa(e,1)|0);b=VFa(c[(c[j>>2]|0)+52>>2]|0,r)|0;c[p>>2]=b;if(c[l>>2]|0?(c[b+4>>2]|0)==0:0){u=Dpb(c[r>>2]|0)|0;u=zMa(c[r>>2]|0,b,u)|0;c[p>>2]=u}Y3(s);n=0;da(475,s+16|0,p|0);u=n;n=0;if(!(u&1)){JXa(s);yb=t;return}u=sa()|0;P()|0;JXa(s);Ea(u|0)}function lj(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=yb;yb=yb+112|0;l=z+108|0;n=z+104|0;o=z+100|0;t=z+8|0;u=z+4|0;w=z;s=d+16|0;x=d+12|0;y=b+28|0;r=b+20|0;i=0;while(1){e=c[s>>2]|0;f=WCb(e)|0;if(i>>>0>=f>>>0)break;g=uXa(x,i)|0;g=wrb(c[g>>2]|0)|0;a:do if(g|0?(j=g+16|0,k=c[j>>2]|0,k|0):0){h=g+12|0;e=Qqb(c[h>>2]|0)|0;do if((e|0)!=0?(m=e+16|0,(c[m>>2]|0)==0):0){f=g+8|0;if(LK(c[f>>2]|0,c[e+12>>2]|0,c[y>>2]|0)|0){c[m>>2]=c[f>>2];Cva(e);Gsb(l,WCb(c[r>>2]|0)|0);g=PVa(c[l>>2]|0,e)|0;h=uXa(x,i)|0;c[h>>2]=g;QI(d,i+1|0,c[j>>2]|0);break a}else{e=c[j>>2]|0;break}}else e=k;while(0);e=Qqb(e)|0;if((e|0?(p=e+16|0,(c[p>>2]|0)==0):0)?(q=g+8|0,LK(c[q>>2]|0,c[e+12>>2]|0,c[y>>2]|0)|0):0){Gsb(n,WCb(c[r>>2]|0)|0);f=pVa(c[n>>2]|0,20,c[q>>2]|0)|0;c[p>>2]=f;Cva(e);Gsb(o,WCb(c[r>>2]|0)|0);f=PVa(c[o>>2]|0,e)|0;g=uXa(x,i)|0;c[g>>2]=f;QI(d,i+1|0,c[h>>2]|0)}}while(0);i=i+1|0}if(f>>>0<=1){yb=z;return}i=b+24|0;h=0;b:while(1){if(h>>>0>=(e+-1|0)>>>0){e=34;break}e=uXa(x,h)|0;e=Qqb(c[e>>2]|0)|0;do if((e|0?(v=e+16|0,c[v>>2]|0):0)?(c[e+4>>2]|0)!=6:0){if(c[e+12>>2]|0){e=22;break b}g=uXa(x,h+1|0)|0;g=Qqb(c[g>>2]|0)|0;if(g|0?!(cub(c[e+8>>2]|0,c[g+8>>2]|0)|0):0){if(c[g+12>>2]|0){e=26;break b}e=g+16|0;f=c[e>>2]|0;if(!f){Gsb(w,WCb(c[r>>2]|0)|0);p=Q6a(c[w>>2]|0,c[v>>2]|0)|0;q=uXa(x,h)|0;c[q>>2]=p;break}if((a[i>>0]&1?(c[g+4>>2]|0)!=6:0)?(VA(t,c[y>>2]|0,f),q=QGa(t)|0,Fha(t),!q):0){Gsb(u,WCb(c[r>>2]|0)|0);q=hIa(c[u>>2]|0,8,c[v>>2]|0,c[e>>2]|0)|0;c[v>>2]=q;Gjb(g)}}}while(0);h=h+1|0;e=c[s>>2]|0}if((e|0)==22)ma(101406,101296,675,126937);else if((e|0)==26)ma(101418,101296,678,126937);else if((e|0)==34){Bc(b,d);Nn(b,d);yb=z;return}}function mj(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=+i;var j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;y=yb;yb=yb+992|0;j=y+912|0;D=y+904|0;l=y+800|0;o=y+976|0;b=y+400|0;x=y+980|0;t=y+972|0;u=y+968|0;A=y+956|0;B=y+944|0;C=y+932|0;p=y+928|0;m=y;v=y+924|0;w=y+920|0;c[o>>2]=l;h[D>>3]=i;k=p_a(l,100,137930,D)|0;do if(k>>>0>99){l=t8a()|0;h[j>>3]=i;l=OAa(o,l,137930,j)|0;o=c[o>>2]|0;if(!o){n=0;ba(9);n=0;k=0;j=0}else{j=o;b=qc(l<<2)|0;k=b;if(b|0){s=l;l=o;E=7;break}n=0;ba(9);n=0}b=sa()|0;P()|0}else{s=k;k=0;j=0;E=7}while(0);if((E|0)==7){anb(D,f);o=c[D>>2]|0;n=0;r=U(66,o|0,151356)|0;q=n;n=0;if(!(q&1)?(n=0,W(c[(c[r>>2]|0)+48>>2]|0,r|0,l|0,l+s|0,b|0)|0,q=n,n=0,!(q&1)):0){if(!s)q=0;else q=(a[l>>0]|0)==45;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;l=0;while(1){if((l|0)==3)break;c[A+(l<<2)>>2]=0;l=l+1|0}c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;l=0;while(1){if((l|0)==3)break;c[B+(l<<2)>>2]=0;l=l+1|0}c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;l=0;while(1){if((l|0)==3)break;c[C+(l<<2)>>2]=0;l=l+1|0}n=0;ja(4,e|0,q|0,o|0,x|0,t|0,u|0,A|0,B|0,C|0,p|0);e=n;n=0;if(e&1){b=sa()|0;P()|0}else{e=c[p>>2]|0;if((s|0)>(e|0)){p=a[C+8+3>>0]|0;l=a[B+8+3>>0]|0;l=l<<24>>24<0?c[B+4>>2]|0:l&255;o=e+1+(s-e<<1)|0;p=p<<24>>24<0?c[C+4>>2]|0:p&255}else{p=a[C+8+3>>0]|0;l=a[B+8+3>>0]|0;l=l<<24>>24<0?c[B+4>>2]|0:l&255;o=e+2|0;p=p<<24>>24<0?c[C+4>>2]|0:p&255}l=o+p+l|0;if(l>>>0>100){m=qc(l<<2)|0;l=m;if(!m){n=0;ba(9);n=0;b=sa()|0;P()|0}else E=29}else{l=0;E=29}if((E|0)==29){n=0;ka(2,m|0,v|0,w|0,c[f+4>>2]|0,b|0,b+(s<<2)|0,r|0,q|0,x|0,c[t>>2]|0,c[u>>2]|0,A|0,B|0,C|0,e|0);E=n;n=0;if(!(E&1)?(n=0,z=Z(47,c[d>>2]|0,m|0,c[v>>2]|0,c[w>>2]|0,f|0,g|0)|0,E=n,n=0,!(E&1)):0){if(l|0)wg(l);bhb(C);bhb(B);Chb(A);XWa(D);if(k|0)wg(k);if(j|0)wg(j);yb=y;return z|0}b=sa()|0;P()|0}if(l|0)wg(l)}bhb(C);bhb(B);Chb(A)}else{b=sa()|0;P()|0}XWa(D)}if(k|0)wg(k);if(j|0)wg(j);Ea(b|0);return 0}function nj(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;G=yb;yb=yb+64|0;v=G+56|0;u=G+48|0;E=G+28|0;F=G+16|0;A=G+12|0;B=G+8|0;C=G+4|0;D=G;w=(c[a>>2]|0)+4|0;Kra(v,w);Vda(u,w);w=v+4|0;x=E+16|0;y=F+4|0;z=F+8|0;u=c[u+4>>2]|0;d=0;b=c[w>>2]|0;a:while(1){if((b|0)==(u|0)){b=30;break}t=c[b>>2]|0;if((WCb(c[t+8>>2]|0)|0)>>>0>1){c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[E+12>>2]=0;g[x>>2]=1.0;c[F>>2]=0;c[y>>2]=0;c[z>>2]=0;e=WCb(c[t+16>>2]|0)|0;s=Ryb(t)|0;while(1){r=e;if((s|0)==(r|0))break;q=e;p=c[q+8>>2]|0;c[A>>2]=p;q=c[q+12>>2]|0;c[B>>2]=q;k=q;l=p;do if(!(c[k+16>>2]|0)){n=0;e=S(237,l|0)|0;o=n;n=0;if(o&1){b=32;break a}c[C>>2]=e;n=0;m=U(91,E|0,C|0)|0;o=n;n=0;if(o&1){b=32;break a}o=m+4|0;j=c[o>>2]|0;e=0;i=c[m>>2]|0;while(1){if((i|0)==(j|0))break;f=c[i>>2]|0;n=0;h=U(92,l|0,c[i+4>>2]|0)|0;H=n;n=0;if(H&1){b=31;break a}do if(h){n=0;ea(120,a|0,k|0,f|0);H=n;n=0;if(H&1){b=31;break a}d=c[y>>2]|0;if((d|0)==(c[z>>2]|0)){n=0;da(251,F|0,A|0);H=n;n=0;if(H&1){b=31;break a}else{e=1;d=1;break}}else{c[d>>2]=p;c[y>>2]=(c[y>>2]|0)+4;e=1;d=1;break}}while(0);i=i+8|0}if(!e){e=c[o>>2]|0;if(e>>>0>=(c[m+8>>2]|0)>>>0){n=0;ea(121,m|0,B|0,A|0);H=n;n=0;if(H&1){b=32;break a}else break}else{c[e>>2]=q;c[e+4>>2]=p;c[o>>2]=(c[o>>2]|0)+8;break}}}while(0);e=c[r+4>>2]|0}f=c[y>>2]|0;e=c[F>>2]|0;while(1){h=e;if((f|0)==(h|0))break;c[D>>2]=c[e>>2];bda(t,D);e=h+4|0}Vob(F);Owa(E);e=d}else e=d;b=b+4|0;c[w>>2]=b;d=c[v>>2]|0;if((b-(c[d>>2]|0)|0)==4096){b=d+4|0;c[v>>2]=b;b=c[b>>2]|0;c[w>>2]=b}d=e}if((b|0)==30){yb=G;return d|0}else if((b|0)==31){H=sa()|0;P()|0;Vob(F);Owa(E);Ea(H|0)}else if((b|0)==32){H=sa()|0;P()|0;Vob(F);Owa(E);Ea(H|0)}return 0}function oj(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;e=c[d>>2]|0;if(e)if(c[d+4>>2]|0){f=Rpa(d)|0;e=c[f>>2]|0;if(!e)i=4;else i=6}else{f=d;i=6}else{f=d;i=4}if((i|0)==4){e=c[f+4>>2]|0;if(!e){k=f+8|0;e=0}else i=6}if((i|0)==6){k=f+8|0;c[e+8>>2]=c[k>>2]}g=c[k>>2]|0;if((f|0)==(c[g>>2]|0)){c[g>>2]=e;if((f|0)==(b|0)){i=0;b=e}else i=c[(c[k>>2]|0)+4>>2]|0}else{c[g+4>>2]=e;i=c[c[k>>2]>>2]|0}h=f+12|0;j=(a[h>>0]&1)==0;if((f|0)!=(d|0)){l=d+8|0;g=c[l>>2]|0;c[k>>2]=g;if((c[c[l>>2]>>2]|0)==(d|0))c[g>>2]=f;else c[g+4>>2]=f;g=c[d>>2]|0;c[f>>2]=g;c[g+8>>2]=f;g=c[d+4>>2]|0;c[f+4>>2]=g;if(g|0)c[g+8>>2]=f;a[h>>0]=a[d+12>>0]&1;b=(b|0)==(d|0)?f:b}if(j|(b|0)==0)return;if(e|0){a[e+12>>0]=1;return}while(1){e=i+8|0;f=c[e>>2]|0;g=i+12|0;h=(a[g>>0]&1)==0;if((i|0)==(c[f>>2]|0)){if(h){a[g>>0]=1;a[f+12>>0]=0;Aaa(c[e>>2]|0);g=c[i+4>>2]|0;f=c[g>>2]|0;g=(b|0)==(g|0)?i:b}else{f=i;g=b}b=c[f>>2]|0;e=(b|0)==0;if(!e?(a[b+12>>0]&1)==0:0){i=50;break}l=c[f+4>>2]|0;if(l|0?(a[l+12>>0]&1)==0:0){i=49;break}a[f+12>>0]=0;e=c[f+8>>2]|0;b=e+12|0;if(!(a[b>>0]&1)){i=47;break}if((e|0)==(g|0)){i=46;break}b=c[e+8>>2]|0;e=(e|0)==(c[b>>2]|0)?b+4|0:b;b=g}else{if(h){a[g>>0]=1;a[f+12>>0]=0;jba(c[e>>2]|0);g=c[i>>2]|0;e=c[g+4>>2]|0;g=(b|0)==(g|0)?i:b}else{e=i;g=b}h=c[e>>2]|0;if(h|0?(a[h+12>>0]&1)==0:0){i=34;break}b=e+4|0;f=c[b>>2]|0;if(f|0?(a[f+12>>0]&1)==0:0){i=35;break}a[e+12>>0]=0;e=c[e+8>>2]|0;if((e|0)==(g|0)){i=30;break}b=e+12|0;if(!(a[b>>0]&1)){i=32;break}b=c[e+8>>2]|0;e=(e|0)==(c[b>>2]|0)?b+4|0:b;b=g}i=c[e>>2]|0}if((i|0)==30){b=g+12|0;i=32}else if((i|0)==34){b=e+4|0;f=c[b>>2]|0;if(!f)i=36;else i=35}else if((i|0)==46){b=g+12|0;i=47}else if((i|0)==49)if(e)i=51;else i=50;if((i|0)==32){a[b>>0]=1;return}else if((i|0)==35)if(!(a[f+12>>0]&1))i=37;else i=36;else if((i|0)==47){a[b>>0]=1;return}else if((i|0)==50)if(!(a[b+12>>0]&1)){e=f;b=f;i=52}else i=51;if((i|0)==36){a[h+12>>0]=1;a[e+12>>0]=0;Aaa(e);b=c[e+8>>2]|0;e=b;b=b+4|0;i=37}else if((i|0)==51){a[(c[f+4>>2]|0)+12>>0]=1;a[f+12>>0]=0;jba(f);b=c[f+8>>2]|0;e=b;i=52}if((i|0)==37){l=e+8|0;d=(c[l>>2]|0)+12|0;a[e+12>>0]=a[d>>0]&1;a[d>>0]=1;a[(c[b>>2]|0)+12>>0]=1;jba(c[l>>2]|0);return}else if((i|0)==52){l=e+8|0;d=(c[l>>2]|0)+12|0;a[e+12>>0]=a[d>>0]&1;a[d>>0]=1;a[(c[b>>2]|0)+12>>0]=1;Aaa(c[l>>2]|0);return}}function pj(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=yb;yb=yb+32|0;v=t+12|0;u=t;if(Ejb(a)|0){yb=t;return a|0}if(!(eCb(c[b+8>>2]|0)|0)){cj(a,c[b+12>>2]|0)|0;yb=t;return a|0}r=a+140|0;Y_(v,r);s=a+116|0;p=Icb(c[s>>2]|0)|0;f=a+140|0;e=0;while(1){if(e>>>0>=p>>>0){e=12;break}n=0;d=U(84,c[s>>2]|0,e|0)|0;o=n;n=0;if(o&1){e=9;break}n=0;d=U(122,a|0,d|0)|0;o=n;n=0;if(o&1){e=9;break}c[(c[f>>2]|0)+(e<<2)>>2]=d;e=e+1|0}do if((e|0)==9){d=sa()|0;P()|0}else if((e|0)==12){n=0;da(1e3,u|0,r|0);o=n;n=0;if(o&1){d=sa()|0;P()|0;break}l=a+128|0;m=a+124|0;o=(c[l>>2]|0)-(c[m>>2]|0)>>2;n=0;U(121,a|0,c[b+12>>2]|0)|0;k=n;n=0;do if(!(k&1)?(n=0,q=U(123,a+152|0,b+8|0)|0,k=n,n=0,!(k&1)):0){j=q+4|0;k=a+144|0;i=0;a:while(1){if(i>>>0>=p>>>0){e=46;break}n=0;d=U(84,c[s>>2]|0,i|0)|0;h=n;n=0;if(h&1){e=20;break}b:do if(Ppb(d)|0){g=c[(c[u>>2]|0)+(i<<2)>>2]|0;h=c[(c[v>>2]|0)+(i<<2)>>2]|0;b=c[j>>2]|0;f=c[q>>2]|0;while(1){if((f|0)==(b|0))break;d=c[f>>2]|0;if(dub(d,c[f+4>>2]|0)|0){e=26;break a}d=c[d+(i<<2)>>2]|0;n=0;e=U(124,d|0,g|0)|0;w=n;n=0;if(w&1){e=19;break a}if(e){n=0;d=U(124,d|0,h|0)|0;w=n;n=0;if(w&1){e=19;break a}if(d)break b}f=f+12|0}f=o;while(1){d=c[m>>2]|0;if(f>>>0>=(c[l>>2]|0)-d>>2>>>0)break;d=c[d+(f<<2)>>2]|0;e=c[d+16>>2]|0;d=c[d+12>>2]|0;while(1){if((d|0)==(e|0))break;if((c[d>>2]|0)==(g|0))c[d>>2]=h;d=d+4|0}f=f+1|0}e=c[k>>2]|0;d=c[r>>2]|0;while(1){if((d|0)==(e|0))break b;if((c[d>>2]|0)==(g|0))c[d>>2]=h;d=d+4|0}}while(0);i=i+1|0}if((e|0)==19){d=sa()|0;P()|0;break}else if((e|0)==20){d=sa()|0;P()|0;break}else if((e|0)==26){n=0;fa(75,77994,77745,331,78018);n=0;e=21;break}else if((e|0)==46){Vob(u);Vob(v);yb=t;return a|0}}else e=21;while(0);if((e|0)==21){d=sa()|0;P()|0}Vob(u);w=d;Vob(v);Ea(w|0)}while(0);w=d;Vob(v);Ea(w|0);return 0}function qj(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;l=yb;yb=yb+32|0;k=l+8|0;h=l;a:do if((d-b|0)>1){g=(a[b>>0]|0)==76?b+1|0:b;switch(a[g>>0]|0){case 78:{k=yc(g,d,e)|0;b=(k|0)==(g|0)?b:k;break a}case 90:{k=yk(g,d,e)|0;b=(k|0)==(g|0)?b:k;break a}default:{i=CR(g,d,e)|0;do if((i|0)==(g|0)){f=hh(g,d,e)|0;if((f|0)==(g|0)|(f|0)==(d|0))break a;if((a[f>>0]|0)!=73)break a;h=$f(f,d,e)|0;if((h|0)==(f|0))break a;g=e+4|0;f=c[g>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(k,f+-24|0);f=c[g>>2]|0;b=0;while(1){if((b|0)==-1)break;e=b+-1|0;J2a(f+(e*24|0)|0);b=e}c[g>>2]=f+-24;e=a[k+11>>0]|0;j=e<<24>>24<0;n=0;V(124,f+-48|0,(j?c[k>>2]|0:k)|0,(j?c[k+4>>2]|0:e&255)|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(k);break}else{Chb(k);b=h;break a}}else{if((i|0)==(d|0)){b=d;break a}if((a[i>>0]|0)!=73){b=i;break a}j=e+4|0;f=c[j>>2]|0;if((c[e>>2]|0)==(f|0))break a;c[h>>2]=c[e+12>>2];FW(k,f+-24|0,h);f=e+20|0;g=c[f>>2]|0;if(g>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,k|0);h=n;n=0;if(h&1){b=sa()|0;P()|0;V5(k);break}}else{c[g+12>>2]=c[k+12>>2];c[g>>2]=c[k>>2];h=k+4|0;c[g+4>>2]=c[h>>2];m=k+8|0;c[g+8>>2]=c[m>>2];c[m>>2]=0;c[h>>2]=0;c[k>>2]=0;c[f>>2]=(c[f>>2]|0)+16}V5(k);g=$f(i,d,e)|0;if((g|0)==(i|0))break a;f=c[j>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(k,f+-24|0);f=c[j>>2]|0;b=0;while(1){if((b|0)==-1)break;m=b+-1|0;J2a(f+(m*24|0)|0);b=m}c[j>>2]=f+-24;m=a[k+11>>0]|0;e=m<<24>>24<0;n=0;V(124,f+-48|0,(e?c[k>>2]|0:k)|0,(e?c[k+4>>2]|0:m&255)|0)|0;m=n;n=0;if(m&1){b=sa()|0;P()|0;Chb(k);break}else{Chb(k);b=g;break a}}while(0);Ea(b|0)}}}while(0);yb=l;return b|0}function rj(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;z=yb;yb=yb+112|0;v=z+64|0;n=z+36|0;w=z;Ieb(n);p=n+4|0;q=n+8|0;r=n+9|0;s=n+16|0;t=n+20|0;x=d+120|0;j=44784;while(1){if((j|0)==44804)break;k=c[j>>2]|0;l=(k|0)==5;if(!(l?!(Szb(e)|0):0))y=5;a:do if((y|0)==5){y=0;c[p>>2]=k;i=44804;while(1){if((i|0)==44824)break a;m=c[i>>2]|0;a[q>>0]=m;b:do if(m>>>0<=(Era(k)|0)>>>0){switch(k|0){case 3:{if((m|0)!=4)break b;break}case 4:{if((m|0)!=8)break b;break}default:if(!((m|0)==16|l^1))break b}h=103649;while(1){if((h|0)==103651)break b;u=a[h>>0]&1;a[r>>0]=u;c:do if(u<<24>>24==0|(yxb(k)|0)^1){g=44824;while(1){if((g|0)==44844)break c;o=c[g>>2]|0;G1a(s,o,0)|0;d:do if(o>>>0<=m>>>0){f=103651;while(1){if((f|0)==103653)break d;u=a[f>>0]&1;a[t>>0]=u;if(!(u<<24>>24!=0?!(wXa(o,m,(a[x>>0]&1)!=0,k)|0):0)){c[v>>2]=c[n>>2];c[v+4>>2]=c[n+4>>2];c[v+8>>2]=c[n+8>>2];c[v+12>>2]=c[n+12>>2];c[v+16>>2]=c[n+16>>2];c[v+20>>2]=c[n+20>>2];c[v+24>>2]=c[n+24>>2];Em(b,v,d)}f=f+1|0}}while(0);g=g+4|0}}while(0);h=h+1|0}}while(0);i=i+4|0}}while(0);j=j+4|0}seb(w);j=w+32|0;k=w+4|0;l=w+8|0;m=w+16|0;n=w+20|0;i=44844;while(1){if((i|0)==44864)break;o=c[i>>2]|0;p=(o|0)==5;if(!(p?!(Szb(e)|0):0))y=32;e:do if((y|0)==32){y=0;c[j>>2]=o;c[k>>2]=0;h=44864;while(1){if((h|0)==44884)break e;q=c[h>>2]|0;a[l>>0]=q;f:do if(q>>>0<=(Era(o)|0)>>>0){switch(o|0){case 3:{if((q|0)!=4)break f;break}case 4:{if((q|0)!=8)break f;break}default:if(!((q|0)==16|p^1))break f}g=44884;while(1){if((g|0)==44904)break f;r=c[g>>2]|0;G1a(m,r,0)|0;g:do if(r>>>0<=q>>>0){f=103653;while(1){if((f|0)==103655)break g;u=a[f>>0]&1;a[n>>0]=u;if(!(u<<24>>24!=0?!(wXa(r,q,(a[x>>0]&1)!=0,o)|0):0)){s=v;t=w;u=s+36|0;do{c[s>>2]=c[t>>2];s=s+4|0;t=t+4|0}while((s|0)<(u|0));fo(b,v,d)}f=f+1|0}}while(0);g=g+4|0}}while(0);h=h+4|0}}while(0);i=i+4|0}yb=z;return}function sj(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=+i;var j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;y=yb;yb=yb+416|0;j=y+336|0;D=y+328|0;l=y+224|0;o=y+392|0;b=y+112|0;x=y+400|0;t=y+397|0;u=y+396|0;A=y+380|0;B=y+368|0;C=y+356|0;p=y+352|0;m=y;v=y+348|0;w=y+344|0;c[o>>2]=l;h[D>>3]=i;k=p_a(l,100,137930,D)|0;do if(k>>>0>99){l=t8a()|0;h[j>>3]=i;l=OAa(o,l,137930,j)|0;o=c[o>>2]|0;if(!o){n=0;ba(9);n=0;k=0;j=0}else{j=o;b=qc(l)|0;k=b;if(b|0){s=l;l=o;E=7;break}n=0;ba(9);n=0}b=sa()|0;P()|0}else{s=k;k=0;j=0;E=7}while(0);if((E|0)==7){anb(D,f);o=c[D>>2]|0;n=0;r=U(66,o|0,151324)|0;q=n;n=0;if(!(q&1)?(n=0,W(c[(c[r>>2]|0)+32>>2]|0,r|0,l|0,l+s|0,b|0)|0,q=n,n=0,!(q&1)):0){if(!s)q=0;else q=(a[l>>0]|0)==45;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;l=0;while(1){if((l|0)==3)break;c[A+(l<<2)>>2]=0;l=l+1|0}c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;l=0;while(1){if((l|0)==3)break;c[B+(l<<2)>>2]=0;l=l+1|0}c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;l=0;while(1){if((l|0)==3)break;c[C+(l<<2)>>2]=0;l=l+1|0}n=0;ja(3,e|0,q|0,o|0,x|0,t|0,u|0,A|0,B|0,C|0,p|0);e=n;n=0;if(e&1){b=sa()|0;P()|0}else{e=c[p>>2]|0;if((s|0)>(e|0)){p=a[C+11>>0]|0;l=a[B+11>>0]|0;l=l<<24>>24<0?c[B+4>>2]|0:l&255;o=e+1+(s-e<<1)|0;p=p<<24>>24<0?c[C+4>>2]|0:p&255}else{p=a[C+11>>0]|0;l=a[B+11>>0]|0;l=l<<24>>24<0?c[B+4>>2]|0:l&255;o=e+2|0;p=p<<24>>24<0?c[C+4>>2]|0:p&255}l=o+p+l|0;if(l>>>0>100){m=qc(l)|0;l=m;if(!m){n=0;ba(9);n=0;b=sa()|0;P()|0}else E=29}else{l=0;E=29}if((E|0)==29){n=0;ka(1,m|0,v|0,w|0,c[f+4>>2]|0,b|0,b+s|0,r|0,q|0,x|0,a[t>>0]|0,a[u>>0]|0,A|0,B|0,C|0,e|0);E=n;n=0;if(!(E&1)?(n=0,z=Z(39,c[d>>2]|0,m|0,c[v>>2]|0,c[w>>2]|0,f|0,g|0)|0,E=n,n=0,!(E&1)):0){if(l|0)wg(l);Chb(C);Chb(B);Chb(A);XWa(D);if(k|0)wg(k);if(j|0)wg(j);yb=y;return z|0}b=sa()|0;P()|0}if(l|0)wg(l)}Chb(C);Chb(B);Chb(A)}else{b=sa()|0;P()|0}XWa(D)}if(k|0)wg(k);if(j|0)wg(j);Ea(b|0);return 0}function tj(b,d){b=+b;d=d|0;var e=0,f=0.0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;E=yb;yb=yb+96|0;y=E+88|0;x=E+80|0;v=E+72|0;u=E+64|0;A=E+56|0;z=E+48|0;t=E+40|0;s=E+32|0;C=E+24|0;o=E+16|0;p=E+8|0;q=E;D=leb(b)|0;e=P()|0;n=e&2147483647;if(n>>>0>2146435072|(n|0)==2146435072&D>>>0>0){yb=E;return ((e|0)<0?134142:135443)|0}if(0==0&(e&2146435072|0)==2146435072){D=(e|0)<0?134147:135434;yb=E;return D|0}D=b<0.0;b=D?-b:b;m=b%1.0==0.0;h[C>>3]=l;h[o>>3]=l;n=!(b>=0.0);k=0;a:while(1){if(k>>>0>=2){B=52;break}i=(k|0)==0;j=i?141809:142817;b:do if(m){if(n){B=16;break a}if(!(Z6a(b)|0)){h[x>>3]=b;p_a(j,999,i?66918:66915,x)|0;c[y>>2]=p;X3a(j,66875,y)|0;break}e=$la(b)|0;g=P()|0;if(i|d){F=u;c[F>>2]=e;c[F+4>>2]=g;p_a(j,999,66905,u)|0;c[v>>2]=p;X3a(j,66875,v)|0;break}else{F=z;c[F>>2]=e;c[F+4>>2]=g;p_a(j,999,66898,z)|0;c[A>>2]=q;X3a(j,66910,A)|0;F=q;h[p>>3]=+((c[F>>2]|0)>>>0)+4294967296.0*+((c[F+4>>2]|0)>>>0);break}}else{g=i?102:101;e=0;while(1){if(e>>>0>=19)break b;a[151764]=37;a[151765]=46;if(e>>>0<10){a[151766]=e+48;a[151767]=g;a[151768]=0}else{a[151766]=49;a[151767]=e+38;a[151768]=g;a[151769]=0}h[s>>3]=b;p_a(j,999,151764,s)|0;c[t>>2]=p;X3a(j,66875,t)|0;if(+h[p>>3]==b)break b;e=e+1|0}}while(0);f=+w(+(+h[p>>3]-b));h[(i?C:o)>>3]=f;g=alb(j,46)|0;c:do if(!g){if(i|m^1){g=(alb(j,0)|0)+-1|0;e=j;i=g;while(1){if((a[i>>0]|0)!=48?(r=i,(r-e|0)<=24):0){e=r;break}if(i>>>0<=j>>>0){B=41;break}i=i+-1|0}if((B|0)==41){B=0;e=i}e=g-e|0;if((e|0)>2){a[i+1>>0]=101;if((e|0)<10){a[i+2>>0]=e+48;a[i+3>>0]=0;break}if((e|0)<100){a[i+2>>0]=((e|0)/10|0)+48;a[i+3>>0]=((e|0)%10|0)+48;a[i+4>>0]=0;break}if((e|0)>=1e3){B=49;break a}a[i+2>>0]=((e|0)/100|0)+48;a[i+3>>0]=(((e|0)%100|0|0)/10|0)+48;a[i+4>>0]=((e|0)%10|0)+48;a[i+5>>0]=0}}}else{while(1){e=g+1|0;if(((a[e>>0]|0)+-48&255)>=10)break;g=e}while(1){if((a[g>>0]|0)!=48)break;e=g;do{i=e;e=e+1|0;F=a[e>>0]|0;a[i>>0]=F}while(F<<24>>24!=0);g=g+-1|0}while(1){if((a[j>>0]|0)!=48)break c;e=j;do{i=e;e=e+1|0;F=a[e>>0]|0;a[i>>0]=F}while(F<<24>>24!=0)}}while(0);k=k+1|0}if((B|0)==16)ma(66879,74885,896,66886);else if((B|0)==49)ma(66923,74885,959,66886);else if((B|0)==52){f=+h[o>>3];b=+h[C>>3];if(!(f==b))if(f>>0<(y2(141809)|0)>>>0;e=e?142817:141809}if(!D){F=e;yb=E;return F|0}F=e+-1|0;a[F>>0]=45;yb=E;return F|0}return 0}function uj(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=yb;yb=yb+16|0;z=y+4|0;u=y;v=b+4|0;w=b+12|0;x=b+16|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[x>>2]=1.0;A=b+20|0;c[A>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;e=(y2(d)|0)+1|0;n=0;da(219,A|0,e|0);s=n;n=0;if(s&1){z=sa()|0;P()|0;Vob(A);Pdb(b);Ea(z|0)}s=c[b+20>>2]|0;vtb(s,d,e)|0;q=b+8|0;e=s;d=0;a:while(1){r=alb(e,32)|0;s=(r|0)==0;if(!s)a[r>>0]=0;n=0;ea(101,u|0,e|0,1);p=n;n=0;if(p&1){t=5;break}p=LAb(u)|0;k=c[v>>2]|0;o=(k|0)==0;b:do if(!o){l=k+-1|0;m=(k&l|0)==0;if(!m)if(p>>>0>>0)d=p;else d=(p>>>0)%(k>>>0)|0;else d=p&l;e=c[(c[b>>2]|0)+(d<<2)>>2]|0;if(!e)t=24;else{h=c[u>>2]|0;while(1){e=c[e>>2]|0;if(!e){t=24;break b}f=c[e+4>>2]|0;if((f|0)!=(p|0)){if(!m){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(d|0)){t=24;break b}}if(rmb(c[e+8>>2]|0,h)|0)break b}}}else t=24;while(0);if((t|0)==24){t=0;n=0;fa(94,z|0,b|0,p|0,u|0);m=n;n=0;if(m&1){t=5;break}i=+(((c[w>>2]|0)+1|0)>>>0);j=+g[x>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)==0;t=29}else{e=0;t=29}}else if(o){e=0;d=0;t=29}do if((t|0)==29){t=0;o=d|(e^1)&1;m=~~+I(+(i/j))>>>0;n=0;da(80,b|0,(o>>>0>>0?m:o)|0);o=n;n=0;if(o&1){t=34;break a}d=c[v>>2]|0;e=d+-1|0;if(!(d&e)){k=d;d=p&e;break}if(p>>>0>>0){k=d;d=p}else{k=d;d=(p>>>0)%(d>>>0)|0}}while(0);e=c[(c[b>>2]|0)+(d<<2)>>2]|0;if(!e){e=c[z>>2]|0;c[e>>2]=c[q>>2];h=e;c[q>>2]=h;c[(c[b>>2]|0)+(d<<2)>>2]=q;if(c[e>>2]|0){e=c[(c[e>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[b>>2]|0)+(e<<2)>>2]=h}}else{p=c[z>>2]|0;c[p>>2]=c[e>>2];c[e>>2]=p}c[w>>2]=(c[w>>2]|0)+1;c[z>>2]=0}if(s){t=47;break}e=r+1|0}if((t|0)==5){z=sa()|0;P()|0;Vob(A);Pdb(b);Ea(z|0)}else if((t|0)==34){d=sa()|0;P()|0;e=c[z>>2]|0;c[z>>2]=0;if(!e){z=d;Vob(A);Pdb(b);Ea(z|0)}RCb(e);z=d;Vob(A);Pdb(b);Ea(z|0)}else if((t|0)==47){yb=y;return}}function vj(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,o=0;j=yb;yb=yb+64|0;e=j+52|0;f=j+48|0;i=j+36|0;m=j+24|0;k=j+12|0;l=j;if(Gcb(d)|0){Ftb(f,kH(d)|0);c[e>>2]=c[f>>2];o=Iq(b+112|0,e)|0;yb=j;return o|0}n=0;e=S(332,d|0)|0;h=n;n=0;do if(!(h&1)?(c[i>>2]=0,c[i+4>>2]=0,c[i+8>>2]=0,h=Zzb(e)|0,n=0,ea(95,i|0,e|0,h|0),h=n,n=0,!(h&1)):0){n=0;g=S(336,i|0)|0;h=P()|0;f=n;n=0;if(f&1){l=ua(39576,39608)|0;h=P()|0;Chb(i);i=l;break}Chb(i);f=c[b+112>>2]|0;e=(c[b+116>>2]|0)-f>>2;if(!(h>>>0>0|(h|0)==0&g>>>0>e>>>0))if((g|0)==(e|0)&(h|0)==0){a[b+108>>0]=1;o=c[37408]|0;yb=j;return o|0}else{o=c[f+(e+-1-g<<2)>>2]|0;yb=j;return o|0}g=oa(20)|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;o=Zzb(126068)|0;n=0;ea(95,l|0,126068,o|0);o=n;n=0;if(!(o&1)){n=0;fa(134,g|0,l|0,c[d+28>>2]|0,c[d+32>>2]|0);o=n;n=0;if(o&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(l);if(!f){o=e;Ea(o|0)}}else{e=sa()|0;P()|0}va(g|0);o=e;Ea(o|0)}else o=6;while(0);if((o|0)==6){i=ua(39576,39608)|0;h=P()|0}if((h|0)==(db(39576)|0)){pa(i|0)|0;g=oa(20)|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;l=Zzb(126021)|0;n=0;ea(95,k|0,126021,l|0);l=n;n=0;if(!(l&1)){n=0;da(330,g|0,k|0);l=n;n=0;if(l&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(k);if(f)o=22}else{e=sa()|0;P()|0;o=22}if((o|0)==22)va(g|0);n=0;ba(5);l=n;n=0;if(l&1){l=ta(0)|0;P()|0;yub(l)}else{o=e;Ea(o|0)}}if((h|0)!=(db(39608)|0)){o=i;Ea(o|0)}pa(i|0)|0;g=oa(20)|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;l=Zzb(126042)|0;n=0;ea(95,m|0,126042,l|0);l=n;n=0;if(!(l&1)){n=0;da(330,g|0,m|0);l=n;n=0;if(l&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(m);if(f)o=18}else{e=sa()|0;P()|0;o=18}if((o|0)==18)va(g|0);n=0;ba(5);o=n;n=0;if(o&1){o=ta(0)|0;P()|0;yub(o)}else{o=e;Ea(o|0)}return 0}function wj(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=yb;yb=yb+32|0;s=w+20|0;k=w;l=w+16|0;m=w+12|0;t=w+8|0;c[s>>2]=0;q=s+4|0;c[q>>2]=0;r=s+8|0;c[r>>2]=0;u=b+48|0;j=b+52|0;i=0;b=c[u>>2]|0;while(1){if((j|0)==(b|0))break;f=b+16|0;e=c[f>>2]|0;f=c[f+4>>2]|0;g=k;c[g>>2]=e;c[g+4>>2]=f;g=c[q>>2]|0;h=e;if((g|0)==(c[r>>2]|0)){n=0;da(2030,s|0,k|0);g=n;n=0;if(g&1){v=38;break}}else{c[g>>2]=e;c[q>>2]=(c[q>>2]|0)+4}i=i+((a[h>>0]|0)==91?0:f)|0;e=c[b+4>>2]|0;a:do if(!e)while(1){e=c[b+8>>2]|0;if((b|0)==(c[e>>2]|0)){b=e;break a}b=e}else{b=e;while(1){e=c[b>>2]|0;if(!e)break;b=e}}while(0)}if((v|0)==38){w=sa()|0;P()|0;Vob(s);Ea(w|0)}c[l>>2]=88211;b=c[q>>2]|0;if(b>>>0>=(c[r>>2]|0)>>>0){n=0;da(2031,s|0,l|0);r=n;n=0;if(!(r&1))v=18}else{c[b>>2]=88211;c[q>>2]=(c[q>>2]|0)+4;v=18}if((((v|0)==18?(c[m>>2]=88211,n=0,o=U(158,u|0,m|0)|0,r=n,n=0,!(r&1)):0)?(c[o>>2]=i,qh(c[s>>2]|0,c[q>>2]|0),n=0,p=U(61,150452,d|0)|0,r=n,n=0,!(r&1)):0)?(n=0,U(59,p|0,127446)|0,r=n,n=0,!(r&1)):0){f=c[q>>2]|0;b=c[s>>2]|0;while(1){g=b;if((f|0)==(g|0)){v=36;break}c[t>>2]=c[b>>2];n=0;b=U(159,u|0,t|0)|0;r=n;n=0;if(r&1)break;e=c[b>>2]|0;if(e|0){n=0;b=U(59,150452,139961)|0;r=n;n=0;if(r&1)break;npb(150452+(c[(c[37613]|0)+-12>>2]|0)|0);c[150452+(c[(c[37613]|0)+-12>>2]|0)+12>>2]=15;n=0;b=U(59,b|0,c[t>>2]|0)|0;r=n;n=0;if(r&1)break;n=0;b=U(59,b|0,138977)|0;r=n;n=0;if(r&1)break;c[150452+(c[(c[37613]|0)+-12>>2]|0)+12>>2]=8;n=0;U(63,b|0,e|0)|0;r=n;n=0;if(r&1)break;if(Jga(149260,c[t>>2]|0)|0){n=0;b=U(159,149260,t|0)|0;r=n;n=0;if(r&1)break;b=c[b>>2]|0;if((e|0)!=(b|0)){Iob(150452+(c[(c[37613]|0)+-12>>2]|0)|0);c[150452+(c[(c[37613]|0)+-12>>2]|0)+12>>2]=8;Cpb(150452+(c[(c[37613]|0)+-12>>2]|0)|0);n=0;U(63,150452,e-b|0)|0;r=n;n=0;if(r&1)break;Uob(150452+(c[(c[37613]|0)+-12>>2]|0)|0)}}n=0;U(59,150452,127446)|0;r=n;n=0;if(r&1)break}b=g+4|0}if((v|0)==36){Vob(s);yb=w;return}w=sa()|0;P()|0;Vob(s);Ea(w|0)}w=sa()|0;P()|0;Vob(s);Ea(w|0)}function xj(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,o=0,p=0,q=0,r=0,s=0,t=0;s=yb;yb=yb+96|0;k=s+92|0;j=s+88|0;r=s+60|0;t=s+56|0;d=s+52|0;e=s+48|0;f=s+44|0;g=s+40|0;i=s+36|0;o=s+24|0;l=s+20|0;m=s+16|0;p=s+12|0;q=s;cs(r,b);Ftb(t,c[37153]|0);c[d>>2]=c[37333];c[j>>2]=c[t>>2];c[k>>2]=c[d>>2];d=v8(r,j,k)|0;if(!d){n=0;d=S(217,24)|0;t=n;n=0;if(!(t&1)?(Zmb(d),t=c[37333]|0,c[a+16>>2]=t,c[d+8>>2]=t,Ftb(e,c[37153]|0),c[d>>2]=c[e>>2],c[d+4>>2]=c[37333],c[d+12>>2]=1,n=0,da(3025,b|0,d|0),t=n,n=0,!(t&1)):0)h=6}else{c[a+16>>2]=c[d+8>>2];h=6}a:do if((h|0)==6){Ftb(f,c[37153]|0);c[g>>2]=c[37332];c[j>>2]=c[f>>2];c[k>>2]=c[g>>2];d=g8(r,j,k)|0;do if(!d){n=0;e=S(217,120)|0;t=n;n=0;if(t&1)break a;mT(e);t=c[37332]|0;c[a+20>>2]=t;c[e+8>>2]=t;Ftb(i,c[37153]|0);c[e>>2]=c[i>>2];c[e+4>>2]=c[37332];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;t=Zzb(104047)|0;n=0;ea(95,o|0,104047,t|0);t=n;n=0;if(t&1)break a;n=0;d=U(136,o|0,b|0)|0;t=n;n=0;if(!(t&1)){Chb(o);c[e+40>>2]=c[d>>2];n=0;da(1638,e|0,d|0);t=n;n=0;if(t&1)break a;n=0;da(216,b|0,e|0);t=n;n=0;if(t&1)break a;else break}else{t=sa()|0;P()|0;Chb(o);hib(r);Ea(t|0)}}else c[a+20>>2]=c[d+8>>2];while(0);Ftb(l,c[37153]|0);c[m>>2]=c[37331];c[j>>2]=c[l>>2];c[k>>2]=c[m>>2];d=g8(r,j,k)|0;if(d|0){c[a+24>>2]=c[d+8>>2];hib(r);yb=s;return}n=0;e=S(217,120)|0;t=n;n=0;if(!(t&1)?(mT(e),t=c[37331]|0,c[a+24>>2]=t,c[e+8>>2]=t,Ftb(p,c[37153]|0),c[e>>2]=c[p>>2],c[e+4>>2]=c[37331],c[q>>2]=0,c[q+4>>2]=0,c[q+8>>2]=0,t=Zzb(104047)|0,n=0,ea(95,q|0,104047,t|0),t=n,n=0,!(t&1)):0){n=0;d=U(136,q|0,b|0)|0;t=n;n=0;if(t&1){t=sa()|0;P()|0;Chb(q);hib(r);Ea(t|0)}Chb(q);c[e+40>>2]=c[d>>2];n=0;da(1638,e|0,d|0);t=n;n=0;if(!(t&1)?(n=0,da(216,b|0,e|0),t=n,n=0,!(t&1)):0){hib(r);yb=s;return}}}while(0);t=sa()|0;P()|0;hib(r);Ea(t|0)}function yj(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=yb;yb=yb+16|0;u=t;r=Thb(c[i>>2]|0,151356)|0;l=Thb(c[i>>2]|0,151364)|0;Sb[c[(c[l>>2]|0)+20>>2]&8191](u,l);p=u+11|0;o=a[p>>0]|0;q=u+4|0;a:do if(!((o<<24>>24<0?c[q>>2]|0:o&255)|0)){n=0;W(c[(c[r>>2]|0)+48>>2]|0,r|0,b|0,e|0,f|0)|0;s=n;n=0;if(s&1){i=sa()|0;P()|0;s=34;break}else{i=f+(e-b<<2)|0;c[h>>2]=i;s=33;break}}else{c[h>>2]=f;i=a[b>>0]|0;switch(i<<24>>24){case 43:case 45:{n=0;i=U(c[(c[r>>2]|0)+44>>2]|0,r|0,i|0)|0;o=n;n=0;if(!(o&1)){k=c[h>>2]|0;c[h>>2]=k+4;c[k>>2]=i;k=b+1|0;s=9}break}default:{k=b;s=9}}b:do if((s|0)==9){c:do if((e-k|0)>1?(a[k>>0]|0)==48:0){i=k+1|0;switch(a[i>>0]|0){case 88:case 120:break;default:break c}n=0;j=U(c[(c[r>>2]|0)+44>>2]|0,r|0,48)|0;o=n;n=0;if(o&1)break b;o=c[h>>2]|0;c[h>>2]=o+4;c[o>>2]=j;n=0;i=U(c[(c[r>>2]|0)+44>>2]|0,r|0,a[i>>0]|0)|0;o=n;n=0;if(o&1)break b;o=c[h>>2]|0;c[h>>2]=o+4;c[o>>2]=i;k=k+2|0}while(0);d:do if((k|0)!=(e|0)){i=e;j=k;while(1){i=i+-1|0;if(j>>>0>=i>>>0)break d;o=a[j>>0]|0;a[j>>0]=a[i>>0]|0;a[i>>0]=o;j=j+1|0}}while(0);n=0;o=S(c[(c[l>>2]|0)+16>>2]|0,l|0)|0;m=n;n=0;if(m&1){i=sa()|0;P()|0;s=34;break a}m=k;i=0;j=0;while(1){if(m>>>0>=e>>>0)break;l=a[((a[p>>0]|0)<0?c[u>>2]|0:u)+i>>0]|0;if(l<<24>>24!=0&(j|0)==(l<<24>>24|0)){j=c[h>>2]|0;c[h>>2]=j+4;c[j>>2]=o;j=a[p>>0]|0;i=i+(i>>>0<((j<<24>>24<0?c[q>>2]|0:j&255)+-1|0)>>>0&1)|0;j=0}n=0;l=U(c[(c[r>>2]|0)+44>>2]|0,r|0,a[m>>0]|0)|0;v=n;n=0;if(v&1){s=31;break}v=c[h>>2]|0;c[h>>2]=v+4;c[v>>2]=l;m=m+1|0;j=j+1|0}if((s|0)==31){i=sa()|0;P()|0;s=34;break a}j=b;i=f+(k-j<<2)|0;b=c[h>>2]|0;if((i|0)==(b|0)){b=j;s=33;break a}while(1){b=b+-4|0;if(i>>>0>=b>>>0)break;v=c[i>>2]|0;c[i>>2]=c[b>>2];c[b>>2]=v;i=i+4|0}b=j;i=c[h>>2]|0;s=33;break a}while(0);i=sa()|0;P()|0;s=34}while(0);if((s|0)==33){c[g>>2]=(d|0)==(e|0)?i:f+(d-b<<2)|0;Chb(u);yb=t;return}else if((s|0)==34){Chb(u);Ea(i|0)}}function zj(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=yb;yb=yb+16|0;u=t;r=Thb(c[i>>2]|0,151324)|0;l=Thb(c[i>>2]|0,151340)|0;Sb[c[(c[l>>2]|0)+20>>2]&8191](u,l);p=u+11|0;o=a[p>>0]|0;q=u+4|0;a:do if(!((o<<24>>24<0?c[q>>2]|0:o&255)|0)){n=0;W(c[(c[r>>2]|0)+32>>2]|0,r|0,b|0,e|0,f|0)|0;s=n;n=0;if(s&1){i=sa()|0;P()|0;s=34;break}else{i=f+(e-b)|0;c[h>>2]=i;s=33;break}}else{c[h>>2]=f;i=a[b>>0]|0;switch(i<<24>>24){case 43:case 45:{n=0;i=U(c[(c[r>>2]|0)+28>>2]|0,r|0,i|0)|0;o=n;n=0;if(!(o&1)){k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=i;k=b+1|0;s=9}break}default:{k=b;s=9}}b:do if((s|0)==9){c:do if((e-k|0)>1?(a[k>>0]|0)==48:0){i=k+1|0;switch(a[i>>0]|0){case 88:case 120:break;default:break c}n=0;j=U(c[(c[r>>2]|0)+28>>2]|0,r|0,48)|0;o=n;n=0;if(o&1)break b;o=c[h>>2]|0;c[h>>2]=o+1;a[o>>0]=j;n=0;i=U(c[(c[r>>2]|0)+28>>2]|0,r|0,a[i>>0]|0)|0;o=n;n=0;if(o&1)break b;o=c[h>>2]|0;c[h>>2]=o+1;a[o>>0]=i;k=k+2|0}while(0);d:do if((k|0)!=(e|0)){i=e;j=k;while(1){i=i+-1|0;if(j>>>0>=i>>>0)break d;o=a[j>>0]|0;a[j>>0]=a[i>>0]|0;a[i>>0]=o;j=j+1|0}}while(0);n=0;o=S(c[(c[l>>2]|0)+16>>2]|0,l|0)|0;m=n;n=0;if(m&1){i=sa()|0;P()|0;s=34;break a}m=k;i=0;j=0;while(1){if(m>>>0>=e>>>0)break;l=a[((a[p>>0]|0)<0?c[u>>2]|0:u)+i>>0]|0;if(l<<24>>24!=0&(j|0)==(l<<24>>24|0)){j=c[h>>2]|0;c[h>>2]=j+1;a[j>>0]=o;j=a[p>>0]|0;i=i+(i>>>0<((j<<24>>24<0?c[q>>2]|0:j&255)+-1|0)>>>0&1)|0;j=0}n=0;l=U(c[(c[r>>2]|0)+28>>2]|0,r|0,a[m>>0]|0)|0;v=n;n=0;if(v&1){s=31;break}v=c[h>>2]|0;c[h>>2]=v+1;a[v>>0]=l;m=m+1|0;j=j+1|0}if((s|0)==31){i=sa()|0;P()|0;s=34;break a}j=b;i=f+(k-j)|0;b=c[h>>2]|0;if((i|0)==(b|0)){b=j;s=33;break a}while(1){b=b+-1|0;if(i>>>0>=b>>>0)break;v=a[i>>0]|0;a[i>>0]=a[b>>0]|0;a[b>>0]=v;i=i+1|0}b=j;i=c[h>>2]|0;s=33;break a}while(0);i=sa()|0;P()|0;s=34}while(0);if((s|0)==33){c[g>>2]=(d|0)==(e|0)?i:f+(d-b)|0;Chb(u);yb=t;return}else if((s|0)==34){Chb(u);Ea(i|0)}}function Aj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=c[a>>2]|0;do if(g){h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Eb[c[(c[g>>2]|0)+36>>2]&511](g)|0;else g=WCb(c[h>>2]|0)|0;if(Nwb(g)|0){c[a>>2]=0;h=1;break}else{h=(c[a>>2]|0)==0;break}}else h=1;while(0);if(b){g=c[b+12>>2]|0;if((g|0)==(c[b+16>>2]|0))g=Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0;else g=WCb(c[g>>2]|0)|0;if(!(Nwb(g)|0))if(h){j=b;n=16}else n=15;else n=13}else n=13;if((n|0)==13)if(h)n=15;else{j=0;n=16}a:do if((n|0)==15){c[d>>2]=c[d>>2]|6;g=0}else if((n|0)==16){g=c[a>>2]|0;h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Eb[c[(c[g>>2]|0)+36>>2]&511](g)|0;else g=WCb(c[h>>2]|0)|0;if(!(Hb[c[(c[e>>2]|0)+12>>2]&255](e,2048,g)|0)){c[d>>2]=c[d>>2]|4;g=0;break}g=(Hb[c[(c[e>>2]|0)+52>>2]&255](e,g,0)|0)<<24>>24;h=c[a>>2]|0;b=h+12|0;i=c[b>>2]|0;if((i|0)==(c[h+16>>2]|0))Eb[c[(c[h>>2]|0)+40>>2]&511](h)|0;else c[b>>2]=i+4;k=j;i=j;while(1){g=g+-48|0;m=f+-1|0;h=c[a>>2]|0;do if(h){b=c[h+12>>2]|0;if((b|0)==(c[h+16>>2]|0))h=Eb[c[(c[h>>2]|0)+36>>2]&511](h)|0;else h=WCb(c[b>>2]|0)|0;if(Nwb(h)|0){c[a>>2]=0;j=1;break}else{j=(c[a>>2]|0)==0;break}}else j=1;while(0);if(!k){l=i;k=0;h=1}else{h=c[k+12>>2]|0;if((h|0)==(c[k+16>>2]|0))h=Eb[c[(c[k>>2]|0)+36>>2]&511](k)|0;else h=WCb(c[h>>2]|0)|0;h=Nwb(h)|0;l=h?0:i;k=h?0:k}b=c[a>>2]|0;if(!((f|0)>1&(j^h)))break;h=c[b+12>>2]|0;if((h|0)==(c[b+16>>2]|0))h=Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0;else h=WCb(c[h>>2]|0)|0;if(!(Hb[c[(c[e>>2]|0)+12>>2]&255](e,2048,h)|0))break a;g=(g*10|0)+((Hb[c[(c[e>>2]|0)+52>>2]&255](e,h,0)|0)<<24>>24)|0;h=c[a>>2]|0;b=h+12|0;i=c[b>>2]|0;if((i|0)==(c[h+16>>2]|0))Eb[c[(c[h>>2]|0)+40>>2]&511](h)|0;else c[b>>2]=i+4;f=m;i=l}do if(b){h=c[b+12>>2]|0;if((h|0)==(c[b+16>>2]|0))h=Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0;else h=WCb(c[h>>2]|0)|0;if(Nwb(h)|0){c[a>>2]=0;b=1;break}else{b=(c[a>>2]|0)==0;break}}else b=1;while(0);if(l){h=c[l+12>>2]|0;if((h|0)==(c[l+16>>2]|0))h=Eb[c[(c[l>>2]|0)+36>>2]&511](l)|0;else h=WCb(c[h>>2]|0)|0;if(!(Nwb(h)|0)){if(b)break}else n=58}else n=58;if((n|0)==58?!b:0)break;c[d>>2]=c[d>>2]|2}while(0);return g|0}function Bj(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,o=0,p=0,q=0,r=0,s=0,t=0;r=yb;yb=yb+80|0;l=r+64|0;h=r+56|0;s=r+40|0;i=r+36|0;j=r+32|0;k=r+28|0;m=r+16|0;o=r+4|0;p=r;d=c[a+24>>2]|0;q=WCb(d)|0;d=d+108|0;if(c[d>>2]|0)ma(103193,103218,231,103251);c[d>>2]=c[b+28>>2];yib(s);e=WCb(c[b+12>>2]|0)|0;f=b+8|0;g=0;while(1){c[i>>2]=g;if(g>>>0>=e>>>0){h=13;break}n=0;d=U(94,f|0,g|0)|0;t=n;n=0;if(t&1){h=10;break}n=0;d=U(176,s|0,d|0)|0;t=n;n=0;if(t&1){h=10;break}n=0;fa(104,h|0,d|0,g|0,i|0);t=n;n=0;if(t&1){h=10;break}g=g+1|0}do if((h|0)==10){d=sa()|0;P()|0}else if((h|0)==13){g=s+4|0;d=c[s>>2]|0;while(1){if((g|0)==(d|0))break;e=d;c[j>>2]=c[e+16>>2];n=0;c[l>>2]=c[j>>2];f=U(177,a|0,l|0)|0;t=n;n=0;if(t&1){h=9;break}n=0;ea(174,q|0,f|0,e+20|0);t=n;n=0;if(t&1){h=9;break}e=d;d=c[e+4>>2]|0;a:do if(!d)while(1){d=c[e+8>>2]|0;if((e|0)==(c[d>>2]|0))break a;e=d}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0)}if((h|0)==9){d=sa()|0;P()|0;break}d=b+24|0;do if(!(f9(s,d)|0)){c[k>>2]=c[d>>2];n=0;c[l>>2]=c[k>>2];d=U(177,a|0,l|0)|0;t=n;n=0;if(!(t&1)){yib(m);n=0;ea(174,q|0,d|0,m|0);t=n;n=0;if(!(t&1)){lmb(m);h=36;break}t=sa()|0;P()|0;lmb(m);kRa(s);Ea(t|0)}}else{n=0;e=S(291,a|0)|0;t=n;n=0;if(!(t&1)){yib(o);n=0;ea(174,q|0,e|0,o|0);t=n;n=0;if(!(t&1)){lmb(o);c[p>>2]=c[d>>2];n=0;c[l>>2]=c[p>>2];d=U(177,a|0,l|0)|0;t=n;n=0;if(t&1)break;n=0;ea(172,e|0,d|0,0);t=n;n=0;if(t&1)break;else{h=36;break}}else{t=sa()|0;P()|0;lmb(o);kRa(s);Ea(t|0)}}}while(0);if((h|0)==36?(n=0,ca(540,a|0),t=n,n=0,!(t&1)):0){kRa(s);yb=r;return}d=sa()|0;P()|0}while(0);t=d;kRa(s);Ea(t|0)}function Cj(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;q=yb;yb=yb+288|0;p=q+256|0;g=q+224|0;h=q+200|0;i=q+168|0;j=q+144|0;m=q+120|0;n=q+96|0;o=q+72|0;f=q+48|0;k=q+24|0;l=q;tw(g,d,c[e+12>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=q;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];tw(i,d,c[e+20>>2]|0);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=q;return}c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];c[j+20>>2]=c[g+20>>2];switch(c[e+8>>2]|0){case 0:{Q5a(m,h,j,a[e+16>>0]|0);e=p;f=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 1:{T5a(n,h,j,a[e+16>>0]|0);e=p;f=n;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 2:{c6a(o,h,j,a[e+16>>0]|0);e=p;f=o;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 3:{b6a(f,h,j,a[e+16>>0]|0);e=p;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 4:{e6a(k,h,j,a[e+16>>0]|0);e=p;f=k;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 5:{d6a(l,h,j,a[e+16>>0]|0);e=p;f=l;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}default:ma(141129,96854,579,112874)}}function Dj(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,o=0,p=0,q=0;o=yb;yb=yb+64|0;p=o+40|0;q=o+16|0;k=o+8|0;l=o+4|0;m=o;w0a(p);n=0;da(242,q|0,d|0);j=n;n=0;if(j&1){q=sa()|0;P()|0;SZa(p);Ea(q|0)}i=q+8|0;j=q+16|0;a:while(1){if(!(WCb(c[i>>2]|0)|0)){b=12;break}f=c[j>>2]|0;h=WCb(f)|0;f=c[f+8>>2]|0;c[k>>2]=f;MHa(q,h);b:do if(!(pdb(p,f)|0)){n=0;da(239,p|0,k|0);h=n;n=0;if(h&1){b=39;break a}bda(b,k);h=WCb(c[f+40>>2]|0)|0;g=Ryb(f+24|0)|0;f=h;while(1){h=f;if((g|0)==(h|0))break b;c[l>>2]=c[f+8>>2];n=0;da(239,q|0,l|0);f=n;n=0;if(f&1){b=38;break a}f=c[h+4>>2]|0}}while(0)}do if((b|0)==12){if(WCb(c[p+8>>2]|0)|0){f=WCb(c[p+16>>2]|0)|0;i=Ryb(p)|0;c:while(1){j=f;if((i|0)==(j|0))break;g=c[f+8>>2]|0;f=WCb(c[g+16>>2]|0)|0;g=Ryb(g)|0;while(1){h=f;if((g|0)==(h|0))break;l=c[f+8>>2]|0;c[m>>2]=l;if(!(pdb(p,l)|0)?(n=0,da(239,e|0,m|0),l=n,n=0,l&1):0){b=37;break c}f=c[h+4>>2]|0}f=c[j+4>>2]|0}if((b|0)==37){f=sa()|0;P()|0;break}n=0;i=S(217,48)|0;m=n;n=0;if(!(m&1)?(Bab(i),n=0,da(243,a|0,i|0),m=n,n=0,!(m&1)):0){f=WCb(c[d+16>>2]|0)|0;g=Ryb(d)|0;while(1){h=f;if((g|0)==(h|0))break;n=0;fa(91,c[f+8>>2]|0,2,i|0,p|0);m=n;n=0;if(m&1){b=36;break}f=c[h+4>>2]|0}if((b|0)==36){f=sa()|0;P()|0;break}f=WCb(c[e+16>>2]|0)|0;g=Ryb(e)|0;while(1){h=f;if((g|0)==(h|0))break;n=0;fa(91,c[f+8>>2]|0,1,i|0,p|0);e=n;n=0;if(e&1){b=35;break}f=c[h+4>>2]|0}if((b|0)==35){f=sa()|0;P()|0;break}n=0;f=V(58,a|0,p|0,d|0)|0;a=n;n=0;if(!(a&1)?(c[i+20>>2]=f,n=0,da(244,i+24|0,d|0),d=n,n=0,!(d&1)):0){SZa(q);SZa(p);yb=o;return i|0}}}else{n=0;fa(75,73167,72707,1058,73190);n=0}f=sa()|0;P()|0}else if((b|0)==38){f=sa()|0;P()|0}else if((b|0)==39){f=sa()|0;P()|0}while(0);SZa(q);q=f;SZa(p);Ea(q|0);return 0}function Ej(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,o=0,p=0,q=0,r=0,s=0;s=yb;yb=yb+256|0;k=s+252|0;e=s+248|0;r=s+24|0;l=s+16|0;m=s+12|0;o=s+8|0;p=s+4|0;q=s;if(!(c[a+44>>2]|0)){w_a(e,WCb(c[a+36>>2]|0)|0);j=a+44|0;i=c[e>>2]|0;c[e>>2]=0;d=c[j>>2]|0;c[j>>2]=i;if(d|0)RCb(d);c[e>>2]=0}$6(a+48|0);ZQ(a+88|0);ZQ(a+108|0);oT(a+68|0);xw(r);n=0;i=U(139,b|0,r|0)|0;j=n;n=0;do if(!(j&1)?(c[b+20>>2]=c[b+16>>2],c[b+32>>2]=c[b+28>>2],Bna(b+52|0),Ama(b+64|0),n=0,ca(525,i|0),j=n,n=0,!(j&1)):0){j=a+48|0;d=0;e=0;while(1){c[l>>2]=e;if(e>>>0>=(Icb(i)|0)>>>0){d=23;break}if(!(bCa(i,e)|0)){d=10;break}n=0;e=U(140,i|0,e|0)|0;h=n;n=0;if(h&1){d=25;break}c[m>>2]=e;n=0;c[k>>2]=c[m>>2];f=S(279,k|0)|0;h=n;n=0;if(h&1){d=25;break}n=0;g=U(84,i|0,c[l>>2]|0)|0;h=n;n=0;if(h&1){d=25;break}h=uob(i)|0;h=(c[l>>2]|0)>>>0>>0?76:77;if((g|0)==2){c[o>>2]=e;n=0;c[k>>2]=c[o>>2];V(h|0,b|0,k|0,1)|0;g=n;n=0;if(g&1){d=25;break}c[p>>2]=f;n=0;c[k>>2]=c[p>>2];V(h|0,b|0,k|0,1)|0;h=n;n=0;if(h&1){d=25;break}n=0;e=U(141,j|0,l|0)|0;h=n;n=0;if(h&1){d=25;break}c[e>>2]=d;d=d+2|0}else{c[q>>2]=e;n=0;c[k>>2]=c[q>>2];V(h|0,b|0,k|0,g|0)|0;h=n;n=0;if(h&1){d=25;break}n=0;e=U(141,j|0,l|0)|0;h=n;n=0;if(h&1){d=25;break}c[e>>2]=d;d=d+1|0}e=(c[l>>2]|0)+1|0}if((d|0)==10){n=0;fa(75,81555,81381,156,108386);n=0;break}else if((d|0)==23){q=Icb(b)|0;c[a+148>>2]=q;n=0;da(1407,a+16|0,b|0);b=n;n=0;if(b&1)break;uF(r);yb=s;return}else if((d|0)==25){s=sa()|0;P()|0;uF(r);Ea(s|0)}}while(0);s=sa()|0;P()|0;uF(r);Ea(s|0)}function Fj(a,b,d){a=a|0;b=b|0;d=d|0;do switch(d|0){case 4:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=60;break}case 8:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=61;break}case 12:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=62;break}case 15:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=63;break}case 18:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=64;break}case 21:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=65;break}case 76:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=66;break}case 81:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=67;break}case 82:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=68;break}case 83:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=69;break}case 98:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=70;break}case 99:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=71;break}case 100:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=72;break}case 115:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=73;break}case 116:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=74;break}case 117:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=75;break}case 132:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=76;break}case 133:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=77;break}case 134:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=78;break}case 149:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=79;break}case 150:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=80;break}case 151:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=81;break}case 160:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=82;break}case 161:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=83;break}case 162:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=84;break}case 171:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=85;break}case 172:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=86;break}case 173:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=87;break}case 174:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=88;break}case 175:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=89;break}case 176:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=90;break}case 177:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=91;break}case 178:{d=Hhb(c[a+4>>2]|0)|0;c[d+8>>2]=92;break}default:{b=0;return b|0}}while(0);a=rl(a)|0;c[d+12>>2]=a;tu(d);c[b>>2]=d;b=1;return b|0}function Gj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,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;K=yb;yb=yb+128|0;B=K+104|0;I=K+88|0;J=K+72|0;g=K+48|0;t=K+24|0;C=K;iG(I,b,1);n=0;ea(145,J|0,b|0,1);F=n;n=0;if(F&1){K=sa()|0;P()|0;lNa(I);Ea(K|0)}F=b+44|0;h=c[F>>2]|0;n=0;i=S(280,J|0)|0;L=n;n=0;do if((((((!(L&1)?(j=c[F>>2]|0,n=0,k=S(280,e|0)|0,L=n,n=0,!(L&1)):0)?(n=0,l=V(71,c[j>>2]|0,k|0,1)|0,L=n,n=0,!(L&1)):0)?(n=0,m=V(56,c[j>>2]|0,0,l|0)|0,L=n,n=0,!(L&1)):0)?(n=0,G=V(70,c[h>>2]|0,i|0,m|0)|0,L=n,n=0,!(L&1)):0)?(p=c[F>>2]|0,n=0,o=S(280,J|0)|0,L=n,n=0,!(L&1)):0)?(n=0,q=V(71,c[p>>2]|0,o|0,1)|0,L=n,n=0,!(L&1)):0){e=c[F>>2]|0;Bqb(g,32);n=0;i=B;h=i+24|0;do{a[i>>0]=a[g>>0]|0;i=i+1|0;g=g+1|0}while((i|0)<(h|0));e=U(120,e|0,B|0)|0;L=n;n=0;if((((!(L&1)?(n=0,u=W(8,c[p>>2]|0,15,q|0,e|0)|0,L=n,n=0,!(L&1)):0)?(v=c[F>>2]|0,n=0,r=S(280,f|0)|0,L=n,n=0,!(L&1)):0)?(n=0,s=V(71,c[v>>2]|0,r|0,1)|0,L=n,n=0,!(L&1)):0)?(n=0,w=V(56,c[v>>2]|0,0,s|0)|0,L=n,n=0,!(L&1)):0){e=c[F>>2]|0;Bqb(t,32);n=0;i=B;g=t;h=i+24|0;do{a[i>>0]=a[g>>0]|0;i=i+1|0;g=g+1|0}while((i|0)<(h|0));e=U(120,e|0,B|0)|0;L=n;n=0;if(((((!(L&1)?(n=0,x=W(8,c[v>>2]|0,0,w|0,e|0)|0,L=n,n=0,!(L&1)):0)?(y=c[F>>2]|0,n=0,z=S(280,J|0)|0,L=n,n=0,!(L&1)):0)?(n=0,A=V(71,c[y>>2]|0,z|0,1)|0,L=n,n=0,!(L&1)):0)?(n=0,H=W(7,c[v>>2]|0,u|0,x|0,A|0)|0,L=n,n=0,!(L&1)):0)?(D=c[F>>2]|0,n=0,E=S(280,I|0)|0,L=n,n=0,!(L&1)):0){e=c[F>>2]|0;Bqb(C,0);n=0;i=B;g=C;h=i+24|0;do{a[i>>0]=a[g>>0]|0;i=i+1|0;g=g+1|0}while((i|0)<(h|0));e=U(120,e|0,B|0)|0;L=n;n=0;if(L&1)break;n=0;e=V(70,c[D>>2]|0,E|0,e|0)|0;L=n;n=0;if(L&1)break;n=0;ea(147,b|0,d|0,I|0);L=n;n=0;if(L&1)break;n=0;e=Y(26,c[F>>2]|0,d|0,G|0,e|0,H|0)|0;L=n;n=0;if(L&1)break;Pwb(c[b+16>>2]|0,e);lNa(J);lNa(I);yb=K;return}}}while(0);L=sa()|0;P()|0;lNa(J);lNa(I);Ea(L|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,l=0,m=0,n=0;n=yb;yb=yb+16|0;e=n+4|0;g=n;f=c[d+8>>2]|0;if(eCb(f)|0){c[g>>2]=f;c[e>>2]=c[g>>2];Xl(b,e);h=b+48|0;i=NF(h,d+8|0)|0;if(!i)ma(126875,126900,316,126937);j=i+12|0;g=i+16|0;e=c[g>>2]|0;if(fub(e)|0){f=d+4|0;if(vub(c[f>>2]|0)|0)RIa(b,(e|0)!=0,d,126948)|0;else RIa(b,(e|0)==0,d,126995)|0;e=c[j>>2]|0;if(vub(e)|0?(k=c[f>>2]|0,vub(k)|0):0)Vya(b,k,e,d,127041);e=c[f>>2]|0;if((vub(e)|0?c[g>>2]|0:0)?(l=c[j>>2]|0,(l|0)!=6):0)Vya(b,e,l,d,127100);RIa(b,(c[g>>2]|0)!=-2,d,127155)|0;if(WCb(c[d+16>>2]|0)|0){e=cWa(d+12|0)|0;e=c[(c[e>>2]|0)+4>>2]|0;if(vub(e)|0?(m=c[j>>2]|0,(m|0)!=6):0)Vya(b,e,m,d,127180);if(!e)RIa(b,(c[g>>2]|0)==0,d,127251)|0}}_6(h,i)|0}i=d+16|0;e=c[i>>2]|0;f=WCb(e)|0;a:do if(f>>>0>1){g=d+12|0;h=b+44|0;f=0;while(1){if(f>>>0>=(e+-1|0)>>>0)break a;m=uXa(g,f)|0;if(!(RIa(b,(vub(c[(c[m>>2]|0)+4>>2]|0)|0)^1,d,127317)|0)?(a[(c[h>>2]|0)+8>>0]&1)==0:0){m=IWa(Ym(IWa(i7a(b)|0,127421)|0,f)|0,127432)|0;l=uXa(g,f)|0;l=IWa(Wm(m,c[l>>2]|0)|0,127435)|0;m=uXa(g,f)|0;IWa(Zm(l,c[(c[m>>2]|0)+4>>2]|0)|0,127446)|0}f=f+1|0;e=c[i>>2]|0}}else e=f;while(0);do if(e){f=cWa(d+12|0)|0;f=c[(c[f>>2]|0)+4>>2]|0;e=d+4|0;g=c[e>>2]|0;m=vub(g)|0;h=vub(f)|0;if(!m){TMa(b,h,d);break}if(h){Vya(b,g,f,d,127525);break}else{CFa(b,f,d);break}}else e=d+4|0;while(0);if(!(vub(c[e>>2]|0)|0)){yb=n;return}RIa(b,(WCb(c[i>>2]|0)|0)!=0,d,127644)|0;yb=n;return}function Ij(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,o=0,p=0,q=0,r=0,s=0;s=yb;yb=yb+96|0;g=s+80|0;f=s+68|0;q=s+56|0;r=s+44|0;h=s+32|0;o=s+28|0;k=s+16|0;p=s+4|0;m=s;j=a+132|0;e=c[j>>2]|0;switch(e|0){case 1:{c[g>>2]=0;d=b+4|0;e=c[d>>2]|0;if(e>>>0<(c[b+8>>2]|0)>>>0){c[e>>2]=0;c[d>>2]=(c[d>>2]|0)+4;yb=s;return}else{_M(b,g);yb=s;return}}case 0:{yb=s;return}default:{d=a+32|0;if((_ob(WCb(c[d>>2]|0)|0)|0)>>>0<2){fca(f,e);Qoa(b,f);Vob(f);yb=s;return}H0(q,a+168|0);i=uob(WCb(c[d>>2]|0)|0)|0;d=0;while(1){if((d|0)==(i|0))break;c[(c[q>>2]|0)+(d<<2)>>2]=-1;d=d+1|0}n=0;da(550,r|0,c[j>>2]|0);g=n;n=0;if(g&1){s=sa()|0;P()|0;Vob(q);Ea(s|0)}n=0;ea(126,h|0,r|0,q|0);g=n;n=0;do if(!(g&1)?(Qoa(r,h),Vob(h),n=0,fa(100,a|0,r|0,b|0,o|0),h=n,n=0,!(h&1)):0){e=c[b>>2]|0;g=c[b+4>>2]|0;d=e;a:do if((g|0)!=(d|0))while(1){d=d+4|0;f=e;if((d|0)==(g|0)){d=f;break a}e=(c[f>>2]|0)>>>0<(c[d>>2]|0)>>>0?d:e}while(0);h=c[d>>2]|0;n=0;ca(514,r|0);g=n;n=0;if(!(g&1)){d=i;while(1){e=c[j>>2]|0;if(d>>>0>=e>>>0)break;c[(c[r>>2]|0)+(d<<2)>>2]=i+e+-1-d;d=d+1|0}n=0;ea(126,k|0,r|0,q|0);j=n;n=0;if(!(j&1)){Qoa(r,k);Vob(k);c[p>>2]=0;d=p+4|0;c[d>>2]=0;c[p+8>>2]=0;n=0;fa(100,a|0,r|0,p|0,m|0);a=n;n=0;if(a&1){d=sa()|0;P()|0;Vob(p);break}e=c[p>>2]|0;g=c[d>>2]|0;d=e;b:do if((g|0)!=(d|0)){f=e;while(1){d=d+4|0;e=f;if((d|0)==(g|0)){d=e;break b}f=(c[e>>2]|0)>>>0<(c[d>>2]|0)>>>0?d:f}}while(0);m=c[m>>2]|0;o=c[o>>2]|0;if(!(m>>>0<=o>>>0?!((m|0)==(o|0)?(c[d>>2]|0)>>>0>>0:0):0))bma(b,p);Vob(p);Vob(r);Vob(q);yb=s;return}else l=22}else l=22}else l=22;while(0);if((l|0)==22){d=sa()|0;P()|0}Vob(r);s=d;Vob(q);Ea(s|0)}}}function Jj(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,o=0,p=0,q=0,r=0,s=0;o=yb;yb=yb+112|0;r=o+88|0;j=o+64|0;k=o+36|0;l=o+48|0;m=o+24|0;p=o+12|0;q=o;a:do if((((((d-b|0)>2?(a[b>>0]|0)==114:0)?(a[b+1>>0]|0)==99:0)?(s=b+2|0,f=cc(s,d,e)|0,(f|0)!=(s|0)):0)?(h=ac(f,d,e)|0,(h|0)!=(f|0)):0)?(i=e+4|0,g=c[i>>2]|0,((g-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){d6(r,g+-24|0);d=c[i>>2]|0;b=0;while(1){if((b|0)==-1)break;s=b+-1|0;J2a(d+(s*24|0)|0);b=s}c[i>>2]=d+-24;n=0;da(4196,q|0,d+-48|0);s=n;n=0;if(s&1){b=sa()|0;P()|0}else{n=0;V(128,q|0,0,140179)|0;s=n;n=0;if(s&1){b=sa()|0;P()|0}else{c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,p|0,140176)|0;s=n;n=0;if(s&1){b=sa()|0;P()|0}else{c[m>>2]=c[p>>2];c[m+4>>2]=c[p+4>>2];c[m+8>>2]=c[p+8>>2];b=0;while(1){if((b|0)==3)break;c[p+(b<<2)>>2]=0;b=b+1|0}s=a[r+11>>0]|0;g=s<<24>>24<0;n=0;V(124,m|0,(g?c[r>>2]|0:r)|0,(g?c[r+4>>2]|0:s&255)|0)|0;s=n;n=0;do if(s&1){b=sa()|0;P()|0}else{c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,l|0,139927)|0;s=n;n=0;if(s&1){b=sa()|0;P()|0;Chb(l);break}c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}X6(j,k);RC((c[i>>2]|0)+-24|0,j);J2a(j);Chb(k);Chb(l);Chb(m);Chb(p);Chb(q);Chb(r);b=h;break a}while(0);Chb(m)}Chb(p)}Chb(q)}Chb(r);Ea(b|0)}while(0);yb=o;return b|0}function Kj(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,o=0,p=0,q=0,r=0,s=0;o=yb;yb=yb+112|0;r=o+88|0;j=o+64|0;k=o+36|0;l=o+48|0;m=o+24|0;p=o+12|0;q=o;a:do if((((((d-b|0)>2?(a[b>>0]|0)==100:0)?(a[b+1>>0]|0)==99:0)?(s=b+2|0,f=cc(s,d,e)|0,(f|0)!=(s|0)):0)?(h=ac(f,d,e)|0,(h|0)!=(f|0)):0)?(i=e+4|0,g=c[i>>2]|0,((g-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){d6(r,g+-24|0);d=c[i>>2]|0;b=0;while(1){if((b|0)==-1)break;s=b+-1|0;J2a(d+(s*24|0)|0);b=s}c[i>>2]=d+-24;n=0;da(4196,q|0,d+-48|0);s=n;n=0;if(s&1){b=sa()|0;P()|0}else{n=0;V(128,q|0,0,141079)|0;s=n;n=0;if(s&1){b=sa()|0;P()|0}else{c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,p|0,140176)|0;s=n;n=0;if(s&1){b=sa()|0;P()|0}else{c[m>>2]=c[p>>2];c[m+4>>2]=c[p+4>>2];c[m+8>>2]=c[p+8>>2];b=0;while(1){if((b|0)==3)break;c[p+(b<<2)>>2]=0;b=b+1|0}s=a[r+11>>0]|0;g=s<<24>>24<0;n=0;V(124,m|0,(g?c[r>>2]|0:r)|0,(g?c[r+4>>2]|0:s&255)|0)|0;s=n;n=0;do if(s&1){b=sa()|0;P()|0}else{c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,l|0,139927)|0;s=n;n=0;if(s&1){b=sa()|0;P()|0;Chb(l);break}c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}X6(j,k);RC((c[i>>2]|0)+-24|0,j);J2a(j);Chb(k);Chb(l);Chb(m);Chb(p);Chb(q);Chb(r);b=h;break a}while(0);Chb(m)}Chb(p)}Chb(q)}Chb(r);Ea(b|0)}while(0);yb=o;return b|0}function Lj(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,o=0,p=0,q=0,r=0,s=0;o=yb;yb=yb+112|0;r=o+88|0;j=o+64|0;k=o+36|0;l=o+48|0;m=o+24|0;p=o+12|0;q=o;a:do if((((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==99:0)?(s=b+2|0,f=cc(s,d,e)|0,(f|0)!=(s|0)):0)?(h=ac(f,d,e)|0,(h|0)!=(f|0)):0)?(i=e+4|0,g=c[i>>2]|0,((g-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){d6(r,g+-24|0);d=c[i>>2]|0;b=0;while(1){if((b|0)==-1)break;s=b+-1|0;J2a(d+(s*24|0)|0);b=s}c[i>>2]=d+-24;n=0;da(4196,q|0,d+-48|0);s=n;n=0;if(s&1){b=sa()|0;P()|0}else{n=0;V(128,q|0,0,140163)|0;s=n;n=0;if(s&1){b=sa()|0;P()|0}else{c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,p|0,140176)|0;s=n;n=0;if(s&1){b=sa()|0;P()|0}else{c[m>>2]=c[p>>2];c[m+4>>2]=c[p+4>>2];c[m+8>>2]=c[p+8>>2];b=0;while(1){if((b|0)==3)break;c[p+(b<<2)>>2]=0;b=b+1|0}s=a[r+11>>0]|0;g=s<<24>>24<0;n=0;V(124,m|0,(g?c[r>>2]|0:r)|0,(g?c[r+4>>2]|0:s&255)|0)|0;s=n;n=0;do if(s&1){b=sa()|0;P()|0}else{c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,l|0,139927)|0;s=n;n=0;if(s&1){b=sa()|0;P()|0;Chb(l);break}c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}X6(j,k);RC((c[i>>2]|0)+-24|0,j);J2a(j);Chb(k);Chb(l);Chb(m);Chb(p);Chb(q);Chb(r);b=h;break a}while(0);Chb(m)}Chb(p)}Chb(q)}Chb(r);Ea(b|0)}while(0);yb=o;return b|0}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,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0;o=yb;yb=yb+112|0;r=o+88|0;j=o+64|0;k=o+36|0;l=o+48|0;m=o+24|0;p=o+12|0;q=o;a:do if((((((d-b|0)>2?(a[b>>0]|0)==99:0)?(a[b+1>>0]|0)==99:0)?(s=b+2|0,f=cc(s,d,e)|0,(f|0)!=(s|0)):0)?(h=ac(f,d,e)|0,(h|0)!=(f|0)):0)?(i=e+4|0,g=c[i>>2]|0,((g-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){d6(r,g+-24|0);d=c[i>>2]|0;b=0;while(1){if((b|0)==-1)break;s=b+-1|0;J2a(d+(s*24|0)|0);b=s}c[i>>2]=d+-24;n=0;da(4196,q|0,d+-48|0);s=n;n=0;if(s&1){b=sa()|0;P()|0}else{n=0;V(128,q|0,0,141096)|0;s=n;n=0;if(s&1){b=sa()|0;P()|0}else{c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,p|0,140176)|0;s=n;n=0;if(s&1){b=sa()|0;P()|0}else{c[m>>2]=c[p>>2];c[m+4>>2]=c[p+4>>2];c[m+8>>2]=c[p+8>>2];b=0;while(1){if((b|0)==3)break;c[p+(b<<2)>>2]=0;b=b+1|0}s=a[r+11>>0]|0;g=s<<24>>24<0;n=0;V(124,m|0,(g?c[r>>2]|0:r)|0,(g?c[r+4>>2]|0:s&255)|0)|0;s=n;n=0;do if(s&1){b=sa()|0;P()|0}else{c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,l|0,139927)|0;s=n;n=0;if(s&1){b=sa()|0;P()|0;Chb(l);break}c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}X6(j,k);RC((c[i>>2]|0)+-24|0,j);J2a(j);Chb(k);Chb(l);Chb(m);Chb(p);Chb(q);Chb(r);b=h;break a}while(0);Chb(m)}Chb(p)}Chb(q)}Chb(r);Ea(b|0)}while(0);yb=o;return b|0}function Nj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;if(f){switch(e<<24>>24){case 18:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=1;c[e+4>>2]=1;break}case 19:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=2;c[e+4>>2]=1;break}case 16:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=4;c[e+4>>2]=1;break}case 20:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=1;c[e+4>>2]=2;break}case 21:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=2;c[e+4>>2]=2;break}case 22:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=4;c[e+4>>2]=2;break}case 17:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=8;c[e+4>>2]=2;break}default:{f=0;return f|0}}a[e+9>>0]=0;if(a[b+12>>0]&1)BM(IWa(150620,116648)|0)}else{do switch(e<<24>>24){case 44:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=1;c[e+4>>2]=1;a[e+9>>0]=1;break}case 45:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=1;c[e+4>>2]=1;a[e+9>>0]=0;break}case 46:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=2;c[e+4>>2]=1;a[e+9>>0]=1;break}case 47:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=2;c[e+4>>2]=1;a[e+9>>0]=0;break}case 40:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=4;c[e+4>>2]=1;break}case 48:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=1;c[e+4>>2]=2;a[e+9>>0]=1;break}case 49:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=1;c[e+4>>2]=2;a[e+9>>0]=0;break}case 50:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=2;c[e+4>>2]=2;a[e+9>>0]=1;break}case 51:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=2;c[e+4>>2]=2;a[e+9>>0]=0;break}case 52:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=4;c[e+4>>2]=2;a[e+9>>0]=1;break}case 53:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=4;c[e+4>>2]=2;a[e+9>>0]=0;break}case 41:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=8;c[e+4>>2]=2;break}case 42:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=4;c[e+4>>2]=3;break}case 43:{e=akb(c[b+4>>2]|0)|0;a[e+8>>0]=8;c[e+4>>2]=4;break}default:{f=0;return f|0}}while(0);if(a[b+12>>0]&1)BM(IWa(150620,113049)|0)}a[e+20>>0]=f&1;EI(b,e+16|0,e+12|0);f=rl(b)|0;c[e+24>>2]=f;Zjb(e);c[d>>2]=e;f=1;return f|0}function Oj(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,o=0,p=0,q=0,r=0,s=0,t=0;r=yb;yb=yb+128|0;j=r;t=r+112|0;m=r+104|0;s=r+100|0;k=r+120|0;c[t>>2]=j;c[t+4>>2]=574;anb(s,g);b=c[s>>2]|0;n=0;l=U(66,b|0,151324)|0;p=n;n=0;if(p&1){b=sa()|0;P()|0;f=t}else{a[k>>0]=0;o=c[e>>2]|0;p=o;n=0;b=aa(1,d|0,p|0,f|0,b|0,c[g+4>>2]|0,h|0,k|0,l|0,t|0,m|0,j+100|0)|0;g=n;n=0;a:do if(g&1)q=11;else{if(b){b=i+11|0;if((a[b>>0]|0)<0){Fsb(c[i>>2]|0,0);c[i+4>>2]=0}else{Fsb(i,0);a[b>>0]=0}if(a[k>>0]|0){n=0;b=U(c[(c[l>>2]|0)+28>>2]|0,l|0,45)|0;k=n;n=0;if(k&1){q=11;break}n=0;da(91,i|0,b|0);k=n;n=0;if(k&1){q=11;break}}n=0;g=U(c[(c[l>>2]|0)+28>>2]|0,l|0,48)|0;l=n;n=0;if(l&1){b=sa()|0;P()|0;break}j=c[m>>2]|0;f=j+-1|0;b=c[t>>2]|0;while(1){if(b>>>0>=f>>>0)break;if((a[b>>0]|0)!=g<<24>>24)break;b=b+1|0}n=0;V(121,i|0,b|0,j|0)|0;i=n;n=0;if(i&1){b=sa()|0;P()|0;break}}b=c[d>>2]|0;do if(b){j=c[b+12>>2]|0;if((j|0)==(c[b+16>>2]|0)){n=0;b=S(c[(c[b>>2]|0)+36>>2]|0,b|0)|0;i=n;n=0;if(i&1){q=11;break a}}else b=Qzb(a[j>>0]|0)|0;if(dub(b,-1)|0){c[d>>2]=0;j=1;break}else{j=(c[d>>2]|0)==0;break}}else j=1;while(0);do if(o){b=c[p+12>>2]|0;if((b|0)==(c[p+16>>2]|0)){n=0;b=S(c[(c[o>>2]|0)+36>>2]|0,p|0)|0;p=n;n=0;if(p&1){q=11;break a}}else b=Qzb(a[b>>0]|0)|0;if(!(dub(b,-1)|0))if(j)break;else{q=35;break}else{c[e>>2]=0;q=33;break}}else q=33;while(0);if((q|0)==33?j:0)q=35;if((q|0)==35)c[h>>2]=c[h>>2]|2;j=c[d>>2]|0;XWa(s);b=c[t>>2]|0;c[t>>2]=0;if(b|0?(n=0,ca(c[t+4>>2]|0,b|0),t=n,n=0,t&1):0){t=ta(0)|0;P()|0;yub(t)}yb=r;return j|0}while(0);if((q|0)==11){b=sa()|0;P()|0}f=t;j=c[t>>2]|0}XWa(s);c[f>>2]=0;if(j|0?(n=0,ca(c[t+4>>2]|0,j|0),t=n,n=0,t&1):0){t=ta(0)|0;P()|0;yub(t)}Ea(b|0);return 0}function Pj(b,e){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;w=yb;yb=yb+1056|0;u=w+1024|0;v=w;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[u+24>>2]=0;c[u+28>>2]=0;f=a[e>>0]|0;a:do if(f<<24>>24){p=0;do{if(!(a[b+p>>0]|0)){f=0;break a}t=f&255;s=u+(t>>>5<<2)|0;c[s>>2]=c[s>>2]|1<<(t&31);p=p+1|0;c[v+(t<<2)>>2]=p;f=a[e+p>>0]|0}while(f<<24>>24!=0);if(p>>>0>1){k=1;j=1;l=0;i=-1;m=1;while(1){f=a[e+(j+i)>>0]|0;g=a[e+m>>0]|0;do if(f<<24>>24==g<<24>>24)if((j|0)==(k|0)){h=k;f=1;g=k+l|0;break}else{h=k;f=j+1|0;g=l;break}else if((f&255)>(g&255)){h=m-i|0;f=1;g=m;break}else{h=1;f=1;g=l+1|0;i=l;break}while(0);m=f+g|0;if(m>>>0>=p>>>0)break;else{k=h;j=f;l=g}}m=1;l=1;n=0;g=-1;o=1;while(1){f=a[e+(l+g)>>0]|0;j=a[e+o>>0]|0;do if(f<<24>>24==j<<24>>24)if((l|0)==(m|0)){f=m;j=1;k=m+n|0;break}else{f=m;j=l+1|0;k=n;break}else if((f&255)<(j&255)){f=o-g|0;j=1;k=o;break}else{f=1;j=1;k=n+1|0;g=n;break}while(0);o=j+k|0;if(o>>>0>=p>>>0){t=p;j=24;break}else{m=f;l=j;n=k}}}else{h=1;i=-1;t=p;f=1;g=-1;j=24}}else{h=1;i=-1;t=0;f=1;g=-1;j=24}while(0);b:do if((j|0)==24){r=(g+1|0)>>>0>(i+1|0)>>>0;f=r?f:h;r=r?g:i;s=r+1|0;if(!(cia(e,e+f|0,s)|0)){m=t-f|0;q=m;l=f}else{m=t-r+-1|0;m=(r>>>0>m>>>0?r:m)+1|0;q=0;l=m;m=t-m|0}n=t|63;o=t+-1|0;p=(q|0)!=0;f=b;k=0;g=b;while(1){h=f;do if((g-h|0)>>>0>>0){i=OA(g,0,n)|0;if(i)if((i-h|0)>>>0>>0){f=0;break b}else break;else{i=g+n|0;break}}else i=g;while(0);g=d[f+o>>0]|0;c:do if(!(1<<(g&31)&c[u+(g>>>5<<2)>>2])){h=0;g=t}else{g=t-(c[v+(g<<2)>>2]|0)|0;if(g|0){h=0;g=p&(k|0)!=0&g>>>0>>0?m:g;break}j=s>>>0>k>>>0;g=j?s:k;h=a[e+g>>0]|0;d:do if(h<<24>>24){while(1){if(h<<24>>24!=(a[f+g>>0]|0))break;g=g+1|0;h=a[e+g>>0]|0;if(!(h<<24>>24))break d}h=0;g=g-r|0;break c}while(0);if(!j)break b;g=s;while(1){g=g+-1|0;if((a[e+g>>0]|0)!=(a[f+g>>0]|0)){h=q;g=l;break c}if(g>>>0<=k>>>0)break b}}while(0);f=f+g|0;k=h;g=i}}while(0);yb=w;return f|0}function Qj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=yb;yb=yb+144|0;o=s+120|0;u=s+108|0;f=s+96|0;h=s+80|0;i=s+72|0;t=s+52|0;q=s+48|0;r=s+4|0;p=s;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;D8(u,80733,Zzb(80733)|0);e=0;while(1){if(e>>>0>=16){j=8;break}n=0;da(91,u|0,106);m=n;n=0;if(m&1){j=5;break}e=e+1|0}if((j|0)==5){e=sa()|0;P()|0}else if((j|0)==8){n=0;da(73,f|0,u|0);m=n;n=0;if(!(m&1)){n=0;e=U(136,f|0,d|0)|0;m=n;n=0;if(m&1){t=sa()|0;P()|0;Chb(f);Chb(u);Ea(t|0)}m=a+16|0;c[m>>2]=c[e>>2];Chb(f);n=0;ea(113,i|0,0,0);l=n;n=0;if(!(l&1)?(xSa(h,d,c[i>>2]|0),n=0,ca(523,h|0),l=n,n=0,!(l&1)):0){j=t+4|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;g[t+16>>2]=1.0;k=c[d+76>>2]|0;h=c[d+72>>2]|0;a:while(1){if((h|0)==(k|0)){j=25;break}l=c[h+8>>2]|0;i=c[h+4>>2]|0;while(1){if((i|0)==(l|0))break;e=wE(c[t>>2]|0,c[j>>2]|0,i)|0;if(!e){c[q>>2]=c[i>>2];n=0;c[o>>2]=c[q>>2];e=V(74,a|0,o|0,d|0)|0;f=n;n=0;if(f&1){j=21;break a}n=0;f=U(137,t|0,i|0)|0;v=n;n=0;if(v&1){j=21;break a}c[f>>2]=e;c[i>>2]=e}else c[i>>2]=c[e+12>>2];i=i+4|0}h=h+16|0}if((j|0)==21){e=sa()|0;P()|0}else if((j|0)==25){v=b+20|0;c[o>>2]=c[v>>2];c[o+4>>2]=c[v+4>>2];c[o+8>>2]=c[v+8>>2];c[o+12>>2]=c[v+12>>2];c[o+16>>2]=c[v+16>>2];ofa(r,d,o);Lvb(r);c[p>>2]=c[m>>2];n=0;c[o>>2]=c[p>>2];da(1370,r|0,o|0);v=n;n=0;if(!(v&1)?(n=0,ca(489,r|0),v=n,n=0,!(v&1)):0){osa(r);Pdb(t);Chb(u);yb=s;return}e=sa()|0;P()|0;osa(r)}Pdb(t);v=e;Chb(u);Ea(v|0)}}e=sa()|0;P()|0}v=e;Chb(u);Ea(v|0)}function Rj(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,o=0,p=0,q=0,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;G=yb;yb=yb+128|0;o=G+96|0;H=G+80|0;I=G+64|0;F=G+48|0;i=G+24|0;q=G;f=d+12|0;pT(H,b,c[f>>2]|0);n=0;ea(145,I|0,b|0,1);p=n;n=0;if(p&1){I=sa()|0;P()|0;lNa(H);Ea(I|0)}n=0;ea(145,F|0,b|0,1);p=n;n=0;if(p&1){d=sa()|0;P()|0}else{p=d+8|0;switch(c[p>>2]|0){case 40:case 39:{r=36;g=9;break}case 42:case 41:{r=38;g=9;break}default:{n=0;ba(6);n=0}}if((((g|0)==9?(s=b+44|0,t=c[s>>2]|0,n=0,e=S(280,I|0)|0,h=n,n=0,!(h&1)):0)?(n=0,u=V(70,c[t>>2]|0,e|0,c[f>>2]|0)|0,h=n,n=0,!(h&1)):0)?(j=c[s>>2]|0,n=0,k=S(280,F|0)|0,h=n,n=0,!(h&1)):0){d=c[s>>2]|0;Bqb(i,0);n=0;h=o;f=i;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));d=U(120,d|0,o|0)|0;i=n;n=0;if((((!(i&1)?(n=0,v=V(70,c[j>>2]|0,k|0,d|0)|0,k=n,n=0,!(k&1)):0)?(w=c[s>>2]|0,n=0,l=S(280,I|0)|0,k=n,n=0,!(k&1)):0)?(n=0,m=V(71,c[w>>2]|0,l|0,1)|0,l=n,n=0,!(l&1)):0)?(n=0,x=V(56,c[w>>2]|0,38,m|0)|0,m=n,n=0,!(m&1)):0){e=c[s>>2]|0;kEa(q,4294967296.0);n=0;h=o;f=q;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));d=U(120,e|0,o|0)|0;q=n;n=0;if((((((!(q&1)?(y=c[s>>2]|0,n=0,z=S(280,H|0)|0,q=n,n=0,!(q&1)):0)?(n=0,A=V(71,c[y>>2]|0,z|0,1)|0,z=n,n=0,!(z&1)):0)?(n=0,B=V(56,c[y>>2]|0,r|0,A|0)|0,A=n,n=0,!(A&1)):0)?(n=0,C=W(8,c[e>>2]|0,65,d|0,B|0)|0,B=n,n=0,!(B&1)):0)?(n=0,D=W(8,c[w>>2]|0,63,x|0,C|0)|0,C=n,n=0,!(C&1)):0)?(n=0,E=W(29,t|0,u|0,v|0,D|0)|0,D=n,n=0,!(D&1)):0){switch(c[p>>2]|0){case 41:case 39:break;default:{b=b+16|0;b=c[b>>2]|0;Pwb(b,E);lNa(F);lNa(I);lNa(H);yb=G;return}}n=0;d=V(56,c[c[s>>2]>>2]|0,44,E|0)|0;E=n;n=0;if(!(E&1)){E=d;b=b+16|0;b=c[b>>2]|0;Pwb(b,E);lNa(F);lNa(I);lNa(H);yb=G;return}}}}d=sa()|0;P()|0;lNa(F)}lNa(I);I=d;lNa(H);Ea(I|0)}function Sj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=yb;yb=yb+32|0;t=y+24|0;z=y+12|0;o=y+8|0;u=y+4|0;v=y;w=c[b+8>>2]|0;c[o>>2]=w;x=a+52|0;s=LAb(o)|0;q=a+56|0;j=c[q>>2]|0;p=(j|0)==0;k=w;a:do if(!p){l=j+-1|0;m=(j&l|0)==0;if(!m)if(s>>>0>>0)e=s;else e=(s>>>0)%(j>>>0)|0;else e=s&l;d=c[(c[x>>2]|0)+(e<<2)>>2]|0;if(!d)r=17;else while(1){d=c[d>>2]|0;if(!d){r=17;break a}f=c[d+4>>2]|0;if((f|0)!=(s|0)){if(!m){if(f>>>0>=j>>>0)f=(f>>>0)%(j>>>0)|0}else f=f&l;if((f|0)!=(e|0)){r=17;break a}}if(dub(c[d+8>>2]|0,k)|0)break a}}else{e=0;r=17}while(0);if((r|0)==17){Uja(z,x,s,o);k=a+64|0;h=+(((c[k>>2]|0)+1|0)>>>0);i=+g[a+68>>2];if(i*+(j>>>0)>>0>2){e=(j&j+-1|0)!=0&1;r=21}else{e=1;r=21}}else if(p){d=0;e=1;r=21}do if((r|0)==21){r=d|e;p=~~+I(+(h/i))>>>0;n=0;da(86,x|0,(r>>>0

>>0?p:r)|0);r=n;n=0;if(r&1){d=sa()|0;P()|0;e=c[z>>2]|0;c[z>>2]=0;if(!e)Ea(d|0);RCb(e);Ea(d|0)}else{d=c[q>>2]|0;e=d+-1|0;if(!(d&e)){j=d;e=s&e;break}if(s>>>0>>0){j=d;e=s;break}j=d;e=(s>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[x>>2]|0)+(e<<2)>>2]|0;if(!d){s=a+60|0;d=c[z>>2]|0;c[d>>2]=c[s>>2];f=d;c[s>>2]=f;c[(c[x>>2]|0)+(e<<2)>>2]=s;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=j+-1|0;if(j&e){if(d>>>0>=j>>>0)d=(d>>>0)%(j>>>0)|0}else d=d&e;c[(c[x>>2]|0)+(d<<2)>>2]=f}}else{x=c[z>>2]|0;c[x>>2]=c[d>>2];c[d>>2]=x}c[k>>2]=(c[k>>2]|0)+1;c[z>>2]=0}z=Oaa(uga(a,c[b+12>>2]|0,c[a+4>>2]|0)|0)|0;c[u>>2]=w;x=c[a>>2]|0;c[t>>2]=c[u>>2];eD(z,G2(Kha(x,t,2)|0)|0);z=_ea(z,_pb(1)|0)|0;c[v>>2]=w;x=c[a>>2]|0;c[t>>2]=c[v>>2];z=E5(Kha(x,t,2)|0,z)|0;yb=y;return z|0}function Tj(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,o=0,p=0,q=0,r=0,s=0,t=0;q=yb;yb=yb+80|0;l=q+76|0;h=q+72|0;i=q+68|0;j=q+56|0;p=q+44|0;r=q+32|0;s=q+20|0;k=q+8|0;m=q+4|0;o=q;hCb(h);t=c[b+40>>2]|0;f=t+(d*12|0)+4|0;g=c[f>>2]|0;a:do if((g|0)==(c[t+(d*12|0)>>2]|0)){b=(c[b+28>>2]|0)+(d<<2)|0;f=c[b>>2]|0;c[b>>2]=f+1;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;D8(s,51735,Zzb(51735)|0);n=0;b=S(223,d|0)|0;t=n;n=0;if(!(t&1)?(n=0,U(69,s|0,b|0)|0,t=n,n=0,!(t&1)):0){c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];b=0;while(1){if((b|0)==3)break;c[s+(b<<2)>>2]=0;b=b+1|0}n=0;U(69,r|0,71680)|0;t=n;n=0;if(t&1){b=sa()|0;P()|0}else{c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];c[p+8>>2]=c[r+8>>2];b=0;while(1){if((b|0)==3)break;c[r+(b<<2)>>2]=0;b=b+1|0}n=0;da(88,k|0,f|0);t=n;n=0;if(t&1){b=sa()|0;P()|0}else{t=a[k+11>>0]|0;g=t<<24>>24<0;n=0;V(43,p|0,(g?c[k>>2]|0:k)|0,(g?c[k+4>>2]|0:t&255)|0)|0;t=n;n=0;do if(!(t&1)){c[j>>2]=c[p>>2];c[j+4>>2]=c[p+4>>2];c[j+8>>2]=c[p+8>>2];b=0;while(1){if((b|0)==3)break;c[p+(b<<2)>>2]=0;b=b+1|0}n=0;ea(101,i|0,((a[j+11>>0]|0)<0?c[j>>2]|0:j)|0,0);t=n;n=0;if(t&1){b=sa()|0;P()|0;Chb(j);break}else{b=c[i>>2]|0;c[h>>2]=b;Chb(j);Chb(k);Chb(p);Chb(r);Chb(s);break a}}else{b=sa()|0;P()|0}while(0);Chb(k)}Chb(p)}Chb(r);t=b;Chb(s);Ea(t|0)}t=sa()|0;P()|0;Chb(s);Ea(t|0)}else{t=g+-4|0;b=c[t>>2]|0;c[h>>2]=b;c[f>>2]=t}while(0);Ftb(m,b);if((C8(e+64|0,m)|0)!=(e+68|0)){yb=q;return b|0}Ftb(o,b);c[l>>2]=c[o>>2];MG(e,l,d)|0;yb=q;return b|0}function Uj(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;p=yb;yb=yb+80|0;o=p+56|0;n=p;l=p+52|0;i=p+48|0;m=p+44|0;j=p+40|0;k=p+36|0;f=p+32|0;e=c[d>>2]|0;if(_xb(e)|0){yb=p;return}if(Gzb(e)|0){yb=p;return}if((c[d+4>>2]|0)==5){yb=p;return}HM(n,b,d,1);if(!(lsb(n)|0))if(vub(c[n+16>>2]|0)|0){Gsb(f,WCb(c[b+36>>2]|0)|0);h=o;e=n;d=h+24|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(d|0));o=D7(f,o)|0;Pwb(c[b+16>>2]|0,o);a[b+68>>0]=1;yb=p;return}else{Gjb(d);yb=p;return}e=c[n+24>>2]|0;f=e;if(dub(e,c[37329]|0)|0){yb=p;return}if(!(dub(e,c[37374]|0)|0)){g=Qqb(d)|0;if(!g){Gsb(j,WCb(c[b+36>>2]|0)|0);c[k>>2]=c[n+24>>2];if(!(c[n+16>>2]|0))e=0;else{h=o;e=n;d=h+24|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(d|0));e=D7(j,o)|0}n=c[j>>2]|0;c[o>>2]=c[k>>2];o=nHa(n,o,e,0)|0;Pwb(c[b+16>>2]|0,o);yb=p;return}c[g+8>>2]=f;c[g+16>>2]=0;f=g+12|0;if(!(c[n+16>>2]|0))e=0;else{e=c[f>>2]|0;if(e|0?(h=Mqb(e)|0,h|0):0){b=h+8|0;c[b>>2]=c[n>>2];c[b+4>>2]=c[n+4>>2];c[b+8>>2]=c[n+8>>2];c[b+12>>2]=c[n+12>>2];c[b+16>>2]=c[n+16>>2];eub(h);Cva(g);yb=p;return}Gsb(m,WCb(c[b+36>>2]|0)|0);h=o;e=n;d=h+24|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(d|0));e=D7(m,o)|0}c[f>>2]=e;Cva(g);yb=p;return}e=zqb(d)|0;if(!e){Gsb(i,WCb(c[b+36>>2]|0)|0);if(!(c[n+16>>2]|0))e=0;else{h=o;e=n;d=h+24|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(d|0));e=D7(i,o)|0}o=qeb(c[i>>2]|0,e)|0;Pwb(c[b+16>>2]|0,o);yb=p;return}f=e+8|0;if(!(c[n+16>>2]|0)){c[f>>2]=0;yb=p;return}e=c[f>>2]|0;if(e|0?(g=Mqb(e)|0,g|0):0){b=g+8|0;c[b>>2]=c[n>>2];c[b+4>>2]=c[n+4>>2];c[b+8>>2]=c[n+8>>2];c[b+12>>2]=c[n+12>>2];c[b+16>>2]=c[n+16>>2];eub(g);yb=p;return}Gsb(l,WCb(c[b+36>>2]|0)|0);h=o;e=n;d=h+24|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(d|0));b=D7(l,o)|0;c[f>>2]=b;yb=p;return}function Vj(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=yb;yb=yb+288|0;r=v+256|0;t=v+160|0;u=v+68|0;i=v+64|0;j=v+60|0;k=v+56|0;l=v+52|0;s=v+48|0;q=v+24|0;e=v;f=b+40|0;h=c[f>>2]|0;WCb(h)|0;if((c[h+24>>2]|0)<2){u=0;yb=v;return u|0}if((c[h+28>>2]|0)>0){u=0;yb=v;return u|0}p=d+8|0;if(((c[p>>2]|0)+-7|0)>>>0>=2)ma(89328,89176,951,89376);g=c[d+16>>2]|0;if(_xb(c[g>>2]|0)|0){u=0;yb=v;return u|0}m=c[d+12>>2]|0;if(!(nma(m)|0)){u=0;yb=v;return u|0}if(!(nma(g)|0)){u=0;yb=v;return u|0}VA(t,pob(h)|0,m);h=pob(c[f>>2]|0)|0;n=0;ea(130,u|0,h|0,g|0);h=n;n=0;if(h&1){v=sa()|0;P()|0;Fha(t);Ea(v|0)}h=QGa(t)|0;d=QGa(u)|0;do if(h)if(!d){n=0;da(2114,j|0,g|0);o=n;n=0;if(!(o&1))if((c[j>>2]|0)>>>0<7){e=0;d=30}else{h=g;g=m;d=23}else d=12}else{e=0;d=30}else{if(d){n=0;da(2114,i|0,m|0);o=n;n=0;if(o&1){d=12;break}if((c[i>>2]|0)>>>0<7){e=0;d=30;break}if(Hi(t,u)|0){e=0;d=30;break}else{h=m;d=23;break}}n=0;da(2114,k|0,m|0);j=n;n=0;if(!(j&1)?(o=c[k>>2]|0,n=0,da(2114,l|0,g|0),k=n,n=0,!(k&1)):0){d=c[l>>2]|0;if((o>>>0>>0?d:o)>>>0<7){e=0;d=30}else{d=o>>>0>d>>>0;h=d?m:g;g=d?g:m;d=23}}else d=12}while(0);do if((d|0)==23){Gsb(s,WCb(c[b+36>>2]|0)|0);if((c[p>>2]|0)==8){Bqb(q,1);n=0;f=r;e=q;d=f+24|0;do{a[f>>0]=a[e>>0]|0;f=f+1|0;e=e+1|0}while((f|0)<(d|0));e=U(120,s|0,r|0)|0;r=n;n=0;if(r&1){d=12;break}n=0;e=W(7,c[s>>2]|0,g|0,e|0,h|0)|0;s=n;n=0;if(s&1){d=12;break}d=30;break}else{Bqb(e,0);n=0;f=r;d=f+24|0;do{a[f>>0]=a[e>>0]|0;f=f+1|0;e=e+1|0}while((f|0)<(d|0));e=U(120,s|0,r|0)|0;r=n;n=0;if(r&1){d=12;break}n=0;e=W(7,c[s>>2]|0,g|0,h|0,e|0)|0;s=n;n=0;if(s&1){d=12;break}d=30;break}}while(0);if((d|0)==12){v=sa()|0;P()|0;Fha(u);Fha(t);Ea(v|0)}else if((d|0)==30){Fha(u);Fha(t);u=e;yb=v;return u|0}return 0}function Wj(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,o=0,p=0,q=0,r=0,s=0,t=0;r=yb;yb=yb+432|0;j=r;t=r+408|0;m=r+404|0;s=r+400|0;k=r+416|0;c[t>>2]=j;c[t+4>>2]=574;anb(s,g);b=c[s>>2]|0;n=0;l=U(66,b|0,151356)|0;p=n;n=0;if(p&1){b=sa()|0;P()|0;f=t}else{a[k>>0]=0;o=c[e>>2]|0;p=o;n=0;b=aa(2,d|0,p|0,f|0,b|0,c[g+4>>2]|0,h|0,k|0,l|0,t|0,m|0,j+400|0)|0;g=n;n=0;a:do if(g&1)q=11;else{if(b){b=i+8+3|0;if((a[b>>0]|0)<0){Ftb(c[i>>2]|0,0);c[i+4>>2]=0}else{Ftb(i,0);a[b>>0]=0}if(a[k>>0]|0){n=0;b=U(c[(c[l>>2]|0)+44>>2]|0,l|0,45)|0;k=n;n=0;if(k&1){q=11;break}n=0;da(4190,i|0,b|0);k=n;n=0;if(k&1){q=11;break}}n=0;g=U(c[(c[l>>2]|0)+44>>2]|0,l|0,48)|0;l=n;n=0;if(l&1){b=sa()|0;P()|0;break}j=c[m>>2]|0;f=j+-4|0;b=c[t>>2]|0;while(1){if(b>>>0>=f>>>0)break;if((c[b>>2]|0)!=(g|0))break;b=b+4|0}n=0;V(122,i|0,b|0,j|0)|0;i=n;n=0;if(i&1){b=sa()|0;P()|0;break}}b=c[d>>2]|0;do if(b){j=c[b+12>>2]|0;if((j|0)==(c[b+16>>2]|0)){n=0;b=S(c[(c[b>>2]|0)+36>>2]|0,b|0)|0;i=n;n=0;if(i&1){q=11;break a}}else b=WCb(c[j>>2]|0)|0;if(Nwb(b)|0){c[d>>2]=0;j=1;break}else{j=(c[d>>2]|0)==0;break}}else j=1;while(0);do if(o){b=c[p+12>>2]|0;if((b|0)==(c[p+16>>2]|0)){n=0;b=S(c[(c[o>>2]|0)+36>>2]|0,p|0)|0;p=n;n=0;if(p&1){q=11;break a}}else b=WCb(c[b>>2]|0)|0;if(!(Nwb(b)|0))if(j)break;else{q=35;break}else{c[e>>2]=0;q=33;break}}else q=33;while(0);if((q|0)==33?j:0)q=35;if((q|0)==35)c[h>>2]=c[h>>2]|2;j=c[d>>2]|0;XWa(s);b=c[t>>2]|0;c[t>>2]=0;if(b|0?(n=0,ca(c[t+4>>2]|0,b|0),t=n,n=0,t&1):0){t=ta(0)|0;P()|0;yub(t)}yb=r;return j|0}while(0);if((q|0)==11){b=sa()|0;P()|0}f=t;j=c[t>>2]|0}XWa(s);c[f>>2]=0;if(j|0?(n=0,ca(c[t+4>>2]|0,j|0),t=n,n=0,t&1):0){t=ta(0)|0;P()|0;yub(t)}Ea(b|0);return 0}function Xj(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;k=yb;yb=yb+16|0;d=k+4|0;f=k;i=a+24|0;c[i>>2]=b;SEa(c[a>>2]|0,40)|0;_cb(c[a>>2]|0,134291);_Va(a);g=c[b+4>>2]|0;j=a+4|0;h=a+16|0;e=c[b>>2]|0;while(1){if((e|0)==(g|0))break;gQa(c[a>>2]|0,c[j>>2]|0)|0;SEa(c[a>>2]|0,40)|0;SEa(Obb(c[a>>2]|0,134211)|0,32)|0;c[f>>2]=c[c[e>>2]>>2];l=c[a>>2]|0;c[d>>2]=c[f>>2];SEa(Ica(d,l)|0,32)|0;Bt(a,c[e>>2]|0,0);l=IWa(c[a>>2]|0,139927)|0;IWa(l,c[h>>2]|0)|0;e=e+4|0}Fva(b,a);xwa(b,a);Hga(b,a);Kfa(b,a);pwa(b,a);Vwa(b,a);jga(b,a);e=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(e|0))break;gQa(c[a>>2]|0,c[j>>2]|0)|0;jy(a,c[d>>2]|0);IWa(c[a>>2]|0,c[h>>2]|0)|0;d=d+4|0}d=b+124|0;if(eCb(c[d>>2]|0)|0){gQa(c[a>>2]|0,c[j>>2]|0)|0;SEa(c[a>>2]|0,40)|0;l=SEa(Obb(c[a>>2]|0,134285)|0,32)|0;SEa(mpa(l,c[d>>2]|0)|0,41)|0;IWa(c[a>>2]|0,c[h>>2]|0)|0}yfa(b,a);e=c[b+132>>2]|0;d=c[b+128>>2]|0;while(1){if((d|0)==(e|0))break;gQa(c[a>>2]|0,c[j>>2]|0)|0;l=IWa(Wqa(IWa(c[a>>2]|0,97950)|0,d)|0,97970)|0;Ym(l,(c[d+16>>2]|0)-(c[d+12>>2]|0)|0)|0;IWa(c[a>>2]|0,c[h>>2]|0)|0;d=d+24|0}y9(a);IWa(c[a>>2]|0,c[h>>2]|0)|0;c[i>>2]=0;yb=k;return}function Yj(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=yb;yb=yb+16|0;w=y;c[w>>2]=e;c[b>>2]=d;c[b+4>>2]=e;c[b+8>>2]=f;j=b+12|0;c[j>>2]=10;k=b+16|0;c[k>>2]=30;l=b+20|0;a[l>>0]=0;q=b+24|0;m=b+28|0;r=b+36|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;c[q+24>>2]=0;g[b+52>>2]=1.0;s=b+56|0;t=b+68|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;c[s+20>>2]=0;c[s+24>>2]=0;g[b+84>>2]=1.0;u=b+88|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;g[b+104>>2]=1.0;v=b+108|0;o=b+112|0;p=b+120|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;a[v+12>>0]=0;c[b+124>>2]=h;if((jxa()|0)>1){n=0;f=U(59,150452,107336)|0;h=n;n=0;if((!(h&1)?(n=0,i=U(82,f|0,c[(c[d+116>>2]|0)+8>>2]|0)|0,h=n,n=0,!(h&1)):0)?(n=0,U(59,i|0,128472)|0,i=n,n=0,!(i&1)):0)x=5}else x=5;if((x|0)==5){f=ab(107356)|0;if(f|0){i=sY(f)|0;c[j>>2]=i}f=ab(107387)|0;if(f|0){j=sY(f)|0;c[k>>2]=j}n=0;V(91,b|0,e|0,0)|0;e=n;n=0;if(!(e&1)){if(a[l>>0]&1){yb=y;return}f=c[b+24>>2]|0;switch((c[m>>2]|0)-f|0){case 0:{a[l>>0]=1;yb=y;return}case 4:{x=13;break}default:{}}if((x|0)==13?bCb(c[c[f>>2]>>2]|0)|0:0){a[l>>0]=1;yb=y;return}n=0;ca(543,b|0);e=n;n=0;if(!(e&1)){a[p>>0]=1;h=c[o>>2]|0;f=c[v>>2]|0;while(1){if((f|0)==(h|0))break;n=0;V(91,b|0,c[f>>2]|0,0)|0;p=n;n=0;if(p&1){x=23;break}f=f+4|0}if((x|0)==23){y=sa()|0;P()|0;Vob(v);Pdb(u);Zla(t);Vob(s);Pdb(r);Vob(q);Ea(y|0)}f=oC(d+84|0,w)|0;if(!f){yb=y;return}n=0;da(3693,b|0,c[f+12>>2]|0);b=n;n=0;if(!(b&1)){yb=y;return}}}}y=sa()|0;P()|0;Vob(v);Pdb(u);Zla(t);Vob(s);Pdb(r);Vob(q);Ea(y|0)}function Zj(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=yb;yb=yb+96|0;d=m+72|0;e=m+60|0;f=m+48|0;g=m+36|0;h=m+24|0;i=m+12|0;j=m;k=b+24|0;if((c[k>>2]|0)<=1?(c[b+28>>2]|0)<=0:0)l=6;else l=3;do if((l|0)==3){c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;D8(d,90351,Zzb(90351)|0);n=0;da(68,b|0,d|0);l=n;n=0;if(!(l&1)){Chb(d);if((c[k>>2]|0)>1){l=7;break}else{l=6;break}}m=sa()|0;P()|0;Chb(d);Ea(m|0)}while(0);if((l|0)==6?(c[b+28>>2]|0)>1:0)l=7;do if((l|0)==7?(a[b+33>>0]&1)==0:0){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;D8(e,91209,Zzb(91209)|0);n=0;da(68,b|0,e|0);l=n;n=0;if(!(l&1)){Chb(e);break}m=sa()|0;P()|0;Chb(e);Ea(m|0)}while(0);c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,90803,Zzb(90803)|0);n=0;da(68,b|0,f|0);l=n;n=0;if(l&1){m=sa()|0;P()|0;Chb(f);Ea(m|0)}Chb(f);c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;D8(g,93221,Zzb(93221)|0);n=0;da(68,b|0,g|0);l=n;n=0;if(l&1){m=sa()|0;P()|0;Chb(g);Ea(m|0)}Chb(g);c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,91816,Zzb(91816)|0);n=0;da(68,b|0,h|0);l=n;n=0;if(l&1){m=sa()|0;P()|0;Chb(h);Ea(m|0)}Chb(h);if((c[k>>2]|0)<=1?(c[b+28>>2]|0)<=0:0){yb=m;return}c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;D8(i,91107,Zzb(91107)|0);n=0;da(68,b|0,i|0);l=n;n=0;if(l&1){m=sa()|0;P()|0;Chb(i);Ea(m|0)}Chb(i);c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;D8(j,92381,Zzb(92381)|0);n=0;da(68,b|0,j|0);l=n;n=0;if(l&1){m=sa()|0;P()|0;Chb(j);Ea(m|0)}else{Chb(j);yb=m;return}}function _j(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;x=yb;yb=yb+16|0;v=x+12|0;y=x;aCa(a,b);n=0;da(3772,a|0,c[b+4>>2]|0);w=n;n=0;if(w&1){y=sa()|0;P()|0;Pwa(a);Ea(y|0)}w=a+4|0;s=a+12|0;t=a+16|0;u=a+8|0;d=0;b=b+8|0;a:while(1){b=c[b>>2]|0;if(!b){r=42;break}o=b+8|0;m=c[o>>2]|0;c[v>>2]=m;q=pH(v,4)|0;k=c[w>>2]|0;p=(k|0)==0;b:do if(!p){h=k+-1|0;l=(k&h|0)==0;if(!l)if(q>>>0>>0)d=q;else d=(q>>>0)%(k>>>0)|0;else d=q&h;e=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!e)r=20;else while(1){e=c[e>>2]|0;if(!e){r=20;break b}f=c[e+4>>2]|0;if((f|0)!=(q|0)){if(!l){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&h;if((f|0)!=(d|0)){r=20;break b}}if((c[e+8>>2]|0)==(m|0))break b}}else r=20;while(0);if((r|0)==20){r=0;n=0;fa(132,y|0,a|0,q|0,o|0);o=n;n=0;if(o&1){r=43;break}i=+(((c[s>>2]|0)+1|0)>>>0);j=+g[t>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)==0;r=25}else{e=0;r=25}}else if(p){e=0;d=0;r=25}do if((r|0)==25){r=0;p=d|(e^1)&1;o=~~+I(+(i/j))>>>0;n=0;da(3772,a|0,(p>>>0>>0?o:p)|0);p=n;n=0;if(p&1){r=30;break a}d=c[w>>2]|0;e=d+-1|0;if(!(d&e)){k=d;d=q&e;break}if(q>>>0>>0){k=d;d=q}else{k=d;d=(q>>>0)%(d>>>0)|0}}while(0);e=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!e){e=c[y>>2]|0;c[e>>2]=c[u>>2];h=e;c[u>>2]=h;c[(c[a>>2]|0)+(d<<2)>>2]=u;if(c[e>>2]|0){e=c[(c[e>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[a>>2]|0)+(e<<2)>>2]=h}}else{q=c[y>>2]|0;c[q>>2]=c[e>>2];c[e>>2]=q}c[s>>2]=(c[s>>2]|0)+1;c[y>>2]=0}}if((r|0)==30){d=sa()|0;P()|0;b=c[y>>2]|0;c[y>>2]=0;if(!b){y=d;Pwa(a);Ea(y|0)}RCb(b);y=d;Pwa(a);Ea(y|0)}else if((r|0)==42){yb=x;return}else if((r|0)==43){y=sa()|0;P()|0;Pwa(a);Ea(y|0)}}function $j(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;x=yb;yb=yb+16|0;v=x+12|0;y=x;aCa(a,b);n=0;da(562,a|0,c[b+4>>2]|0);w=n;n=0;if(w&1){y=sa()|0;P()|0;Pwa(a);Ea(y|0)}w=a+4|0;s=a+12|0;t=a+16|0;u=a+8|0;d=0;b=b+8|0;a:while(1){b=c[b>>2]|0;if(!b){r=42;break}o=b+8|0;m=c[o>>2]|0;c[v>>2]=m;q=pH(v,4)|0;k=c[w>>2]|0;p=(k|0)==0;b:do if(!p){h=k+-1|0;l=(k&h|0)==0;if(!l)if(q>>>0>>0)d=q;else d=(q>>>0)%(k>>>0)|0;else d=q&h;e=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!e)r=20;else while(1){e=c[e>>2]|0;if(!e){r=20;break b}f=c[e+4>>2]|0;if((f|0)!=(q|0)){if(!l){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&h;if((f|0)!=(d|0)){r=20;break b}}if((c[e+8>>2]|0)==(m|0))break b}}else r=20;while(0);if((r|0)==20){r=0;n=0;fa(101,y|0,a|0,q|0,o|0);o=n;n=0;if(o&1){r=43;break}i=+(((c[s>>2]|0)+1|0)>>>0);j=+g[t>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)==0;r=25}else{e=0;r=25}}else if(p){e=0;d=0;r=25}do if((r|0)==25){r=0;p=d|(e^1)&1;o=~~+I(+(i/j))>>>0;n=0;da(562,a|0,(p>>>0>>0?o:p)|0);p=n;n=0;if(p&1){r=30;break a}d=c[w>>2]|0;e=d+-1|0;if(!(d&e)){k=d;d=q&e;break}if(q>>>0>>0){k=d;d=q}else{k=d;d=(q>>>0)%(d>>>0)|0}}while(0);e=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!e){e=c[y>>2]|0;c[e>>2]=c[u>>2];h=e;c[u>>2]=h;c[(c[a>>2]|0)+(d<<2)>>2]=u;if(c[e>>2]|0){e=c[(c[e>>2]|0)+4>>2]|0;f=k+-1|0;if(k&f){if(e>>>0>=k>>>0)e=(e>>>0)%(k>>>0)|0}else e=e&f;c[(c[a>>2]|0)+(e<<2)>>2]=h}}else{q=c[y>>2]|0;c[q>>2]=c[e>>2];c[e>>2]=q}c[s>>2]=(c[s>>2]|0)+1;c[y>>2]=0}}if((r|0)==30){d=sa()|0;P()|0;b=c[y>>2]|0;c[y>>2]=0;if(!b){y=d;Pwa(a);Ea(y|0)}RCb(b);y=d;Pwa(a);Ea(y|0)}else if((r|0)==42){yb=x;return}else if((r|0)==43){y=sa()|0;P()|0;Pwa(a);Ea(y|0)}}function ak(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;q=yb;yb=yb+288|0;p=q+256|0;g=q+224|0;h=q+200|0;i=q+168|0;j=q+144|0;m=q+120|0;n=q+96|0;o=q+72|0;f=q+48|0;k=q+24|0;l=q;nz(g,d,c[e+12>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=q;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];nz(i,d,c[e+20>>2]|0);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=q;return}c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];c[j+20>>2]=c[g+20>>2];switch(c[e+8>>2]|0){case 0:{Q5a(m,h,j,a[e+16>>0]|0);e=p;f=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 1:{T5a(n,h,j,a[e+16>>0]|0);e=p;f=n;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 2:{c6a(o,h,j,a[e+16>>0]|0);e=p;f=o;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 3:{b6a(f,h,j,a[e+16>>0]|0);e=p;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 4:{e6a(k,h,j,a[e+16>>0]|0);e=p;f=k;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 5:{d6a(l,h,j,a[e+16>>0]|0);e=p;f=l;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}default:ma(141129,96854,579,112874)}}function bk(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;q=yb;yb=yb+464|0;l=q+460|0;f=q+456|0;u=q+232|0;v=q+220|0;t=q+176|0;r=q+24|0;s=q+12|0;o=q+8|0;p=q+4|0;m=q;if(!(c[b+44>>2]|0)){w_a(f,d);k=b+44|0;j=c[f>>2]|0;c[f>>2]=0;e=c[k>>2]|0;c[k>>2]=j;if(e|0)RCb(e);c[f>>2]=0}cD(b+16|0,d);k=b+60|0;if(!(c[k>>2]|0)){yb=q;return}xw(u);c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;j=Zzb(80)|0;n=0;ea(95,v|0,80,j|0);j=n;n=0;if(j&1){v=sa()|0;P()|0;uF(u);Ea(v|0)}n=0;da(220,t|0,((a[v+11>>0]|0)<0?c[v>>2]|0:v)|0);j=n;n=0;if(j&1){e=sa()|0;P()|0}else{n=0;e=U(81,c[t+40>>2]|0,0)|0;j=n;n=0;if(!(j&1)?(n=0,fa(84,r|0,u|0,e|0,0),j=n,n=0,!(j&1)):0){yib(s);h=b+56|0;i=b+48|0;j=s+4|0;a:while(1){if(!(c[k>>2]|0)){f=38;break}e=h;while(1){e=c[e>>2]|0;if(!e)break;c[o>>2]=c[e+8>>2];n=0;c[l>>2]=c[o>>2];ea(165,u|0,l|0,s|0);g=n;n=0;if(g&1){f=20;break a}}$6(i);e=c[s>>2]|0;while(1){if((j|0)==(e|0))break;g=c[e+16>>2]|0;c[p>>2]=g;c[l>>2]=c[p>>2];f=lEa(d,l)|0;if(!f){c[m>>2]=g;n=0;c[l>>2]=c[m>>2];f=U(64,u|0,l|0)|0;g=n;n=0;if(g&1){f=19;break a}n=0;f=U(139,f|0,d|0)|0;g=n;n=0;if(g&1){f=19;break a}}n=0;da(2605,b|0,f|0);g=n;n=0;if(g&1){f=19;break a}f=e;e=c[f+4>>2]|0;b:do if(!e)while(1){e=c[f+8>>2]|0;if((f|0)==(c[e>>2]|0))break b;f=e}else while(1){f=c[e>>2]|0;if(!f)break;e=f}while(0)}rHa(s)}if((f|0)==19){e=sa()|0;P()|0}else if((f|0)==20){e=sa()|0;P()|0}else if((f|0)==38){Khb(s);T$(r);Dub(t);Chb(v);uF(u);yb=q;return}Khb(s);T$(r)}else{e=sa()|0;P()|0}Dub(t)}Chb(v);v=e;uF(u);Ea(v|0)}function ck(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,o=0,p=0,q=0,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;x=yb;yb=yb+464|0;D=x+456|0;u=x+460|0;v=x+452|0;w=x+448|0;z=x+436|0;A=x+424|0;B=x+412|0;m=x+408|0;p=x;r=x+404|0;s=x+400|0;anb(D,f);j=c[D>>2]|0;n=0;t=U(66,j|0,151356)|0;q=n;n=0;a:do if(q&1){b=sa()|0;P()|0}else{k=h+8+3|0;q=a[k>>0]|0;b=q<<24>>24<0;l=h+4|0;do if((b?c[l>>2]|0:q&255)|0){b=c[(b?c[h>>2]|0:h)>>2]|0;n=0;i=U(c[(c[t>>2]|0)+44>>2]|0,t|0,45)|0;q=n;n=0;if(q&1){b=sa()|0;P()|0;break a}else{q=(b|0)==(i|0);break}}else q=0;while(0);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[A+(b<<2)>>2]=0;b=b+1|0}c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}n=0;ja(4,e|0,q|0,j|0,u|0,v|0,w|0,z|0,A|0,B|0,m|0);o=n;n=0;if(o&1){b=sa()|0;P()|0}else{e=a[k>>0]|0;o=e<<24>>24<0;e=o?c[l>>2]|0:e&255;k=c[m>>2]|0;if((e|0)>(k|0)){j=a[B+8+3>>0]|0;b=a[A+8+3>>0]|0;b=b<<24>>24<0?c[A+4>>2]|0:b&255;i=k+1+(e-k<<1)|0;j=j<<24>>24<0?c[B+4>>2]|0:j&255}else{j=a[B+8+3>>0]|0;b=a[A+8+3>>0]|0;b=b<<24>>24<0?c[A+4>>2]|0:b&255;i=k+2|0;j=j<<24>>24<0?c[B+4>>2]|0:j&255}b=i+j+b|0;if(b>>>0>100){b=qc(b<<2)|0;i=b;if(!b){n=0;ba(9);n=0;b=sa()|0;P()|0}else C=24}else{b=p;i=0;C=24}if((C|0)==24){C=o?c[h>>2]|0:h;n=0;ka(2,b|0,r|0,s|0,c[f+4>>2]|0,C|0,C+(e<<2)|0,t|0,q|0,u|0,c[v>>2]|0,c[w>>2]|0,z|0,A|0,B|0,k|0);C=n;n=0;if(!(C&1)?(n=0,y=Z(47,c[d>>2]|0,b|0,c[r>>2]|0,c[s>>2]|0,f|0,g|0)|0,C=n,n=0,!(C&1)):0){if(i|0)wg(i);bhb(B);bhb(A);Chb(z);XWa(D);yb=x;return y|0}b=sa()|0;P()|0}if(i|0)wg(i)}bhb(B);bhb(A);Chb(z)}while(0);XWa(D);Ea(b|0);return 0}function dk(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=yb;yb=yb+16|0;A=z+4|0;u=z;c[u>>2]=d;y=Gxa(d)|0;w=b+4|0;l=c[w>>2]|0;v=(l|0)==0;a:do if(!v){t=l+-1|0;o=(l&t|0)==0;if(!o)if(y>>>0>>0)f=y;else f=(y>>>0)%(l>>>0)|0;else f=y&t;e=c[(c[b>>2]|0)+(f<<2)>>2]|0;if(e){r=a[d+11>>0]|0;p=r<<24>>24<0;q=c[d+4>>2]|0;r=r&255;s=c[d>>2]|0;b:while(1){e=c[e>>2]|0;if(!e)break a;h=c[e+4>>2]|0;if((h|0)!=(y|0)){if(!o){if(h>>>0>=l>>>0)h=(h>>>0)%(l>>>0)|0}else h=h&t;if((h|0)!=(f|0))break a}i=e+8|0;h=a[i+11>>0]|0;m=h<<24>>24<0;if(m)h=c[e+12>>2]|0;else h=h&255;c:do if((h|0)==((p?q:r)|0)){if(m)if(!(qdb(c[i>>2]|0,p?s:d,h)|0)){x=49;break b}else break;m=p?s:d;while(1){if(!h){x=49;break b}if((a[i>>0]|0)!=(a[m>>0]|0))break c;m=m+1|0;i=i+1|0;h=h+-1|0}}while(0)}if((x|0)==49){A=e+20|0;yb=z;return A|0}}}else f=0;while(0);GL(A,b,y,u);m=b+12|0;j=+(((c[m>>2]|0)+1|0)>>>0);k=+g[b+16>>2];if(k*+(l>>>0)>>0>2){f=(l&l+-1|0)!=0&1;x=30}else{f=1;x=30}}else if(v){e=0;f=1;x=30}do if((x|0)==30){x=e|f;v=~~+I(+(j/k))>>>0;n=0;da(2801,b|0,(x>>>0>>0?v:x)|0);x=n;n=0;if(!(x&1)){e=c[w>>2]|0;f=e+-1|0;if(!(e&f)){l=e;f=y&f;break}if(y>>>0>>0){l=e;f=y;break}l=e;f=(y>>>0)%(e>>>0)|0;break}e=sa()|0;P()|0;f=c[A>>2]|0;c[A>>2]=0;if(!f)Ea(e|0);if(a[A+8>>0]&1)mnb(f+8|0);RCb(f);Ea(e|0)}while(0);e=c[(c[b>>2]|0)+(f<<2)>>2]|0;if(!e){y=b+8|0;e=c[A>>2]|0;c[e>>2]=c[y>>2];i=e;c[y>>2]=i;c[(c[b>>2]|0)+(f<<2)>>2]=y;if(c[e>>2]|0){f=c[(c[e>>2]|0)+4>>2]|0;h=l+-1|0;if(l&h){if(f>>>0>=l>>>0)f=(f>>>0)%(l>>>0)|0}else f=f&h;c[(c[b>>2]|0)+(f<<2)>>2]=i}}else{b=c[A>>2]|0;c[b>>2]=c[e>>2];c[e>>2]=b;e=b}c[m>>2]=(c[m>>2]|0)+1;c[A>>2]=0;A=e;A=A+20|0;yb=z;return A|0}function ek(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,s=0,t=0,u=0,v=0;v=yb;yb=yb+160|0;r=v+152|0;s=v+148|0;g=v+80|0;h=v+12|0;t=v+8|0;k=v+4|0;u=v;o=b+132|0;p=b+128|0;e=(c[o>>2]|0)-(c[p>>2]|0)>>3;i=b+72|0;if(!(a[i>>0]&1)){l=b+68|0;n=l}else{q=IWa(150620,113479)|0;l=b+68|0;n=c[l>>2]|0;BM(Ym(q,(c[n+4>>2]|0)-(c[n>>2]|0)|0)|0);n=l}q=IHa(b)|0;m=c[n>>2]|0;m=(c[m+4>>2]|0)-(c[m>>2]|0)|0;if(a[i>>0]&1){j=IWa(150620,113492)|0;BM(mpa(j,c[d+8>>2]|0)|0)}if((c[d+48>>2]|0)!=0?(c[b+76>>2]|0)==0:0){f=a[i>>0]&1;if(f<<24>>24){BM(IWa(150620,113500)|0);f=a[i>>0]&1}Tm(g,d,b,c[l>>2]|0,f<<24>>24!=0);Whb(g)}else{f=a[i>>0]&1;if(f<<24>>24){BM(IWa(150620,113515)|0);f=a[i>>0]&1}KO(h,d,b,c[l>>2]|0,(c[b+76>>2]|0)!=0,f<<24>>24!=0);Whb(h)}f=c[n>>2]|0;j=(c[f+4>>2]|0)-(c[f>>2]|0)|0;g=j-m|0;c[t>>2]=g;if(a[i>>0]&1){i=IWa(Ym(IWa(Ym(IWa(150620,113533)|0,g)|0,113545)|0,q)|0,113559)|0;f=c[n>>2]|0;BM(Ym(i,(c[f+4>>2]|0)-(c[f>>2]|0)|0)|0);f=c[l>>2]|0}Pwb(k,g);k=YV(f,q,c[k>>2]|0)|0;a:do if((k|0)!=5){if(k>>>0>=5)ma(112338,112368,262,140271);f=c[l>>2]|0;i=c[f>>2]|0;h=i+m|0;g=i+j-h|0;if(g){Pxa(i+q+k|0,h|0,g|0)|0;f=c[n>>2]|0}g=5-k|0;Hwa(f,(c[f+4>>2]|0)-(c[f>>2]|0)-g|0);if(c[b+76>>2]|0)while(1){f=c[p>>2]|0;if(e>>>0>=(c[o>>2]|0)-f>>3>>>0)break a;n=f+(e<<3)|0;c[n>>2]=(c[n>>2]|0)-g;e=e+1|0}}while(0);h=d+8|0;e=q+k|0;c[u>>2]=e;f=b+4|0;g=c[f>>2]|0;if(g>>>0<(c[b+8>>2]|0)>>>0){c[s>>2]=c[h>>2];u=c[t>>2]|0;c[r>>2]=c[s>>2];e2a(g,r,e,u);c[f>>2]=(c[f>>2]|0)+12;yb=v;return}else{mB(b,h,u,t);yb=v;return}}function fk(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,o=0,p=0,q=0,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;x=yb;yb=yb+160|0;D=x+148|0;u=x+156|0;v=x+153|0;w=x+152|0;z=x+136|0;A=x+124|0;B=x+112|0;m=x+108|0;p=x;r=x+104|0;s=x+100|0;anb(D,f);j=c[D>>2]|0;n=0;t=U(66,j|0,151324)|0;q=n;n=0;a:do if(q&1){b=sa()|0;P()|0}else{k=h+11|0;q=a[k>>0]|0;b=q<<24>>24<0;l=h+4|0;do if((b?c[l>>2]|0:q&255)|0){b=a[(b?c[h>>2]|0:h)>>0]|0;n=0;i=U(c[(c[t>>2]|0)+28>>2]|0,t|0,45)|0;q=n;n=0;if(q&1){b=sa()|0;P()|0;break a}else{q=b<<24>>24==i<<24>>24;break}}else q=0;while(0);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[A+(b<<2)>>2]=0;b=b+1|0}c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}n=0;ja(3,e|0,q|0,j|0,u|0,v|0,w|0,z|0,A|0,B|0,m|0);o=n;n=0;if(o&1){b=sa()|0;P()|0}else{e=a[k>>0]|0;o=e<<24>>24<0;e=o?c[l>>2]|0:e&255;k=c[m>>2]|0;if((e|0)>(k|0)){j=a[B+11>>0]|0;b=a[A+11>>0]|0;b=b<<24>>24<0?c[A+4>>2]|0:b&255;i=k+1+(e-k<<1)|0;j=j<<24>>24<0?c[B+4>>2]|0:j&255}else{j=a[B+11>>0]|0;b=a[A+11>>0]|0;b=b<<24>>24<0?c[A+4>>2]|0:b&255;i=k+2|0;j=j<<24>>24<0?c[B+4>>2]|0:j&255}b=i+j+b|0;if(b>>>0>100){b=qc(b)|0;i=b;if(!b){n=0;ba(9);n=0;b=sa()|0;P()|0}else C=24}else{b=p;i=0;C=24}if((C|0)==24){C=o?c[h>>2]|0:h;n=0;ka(1,b|0,r|0,s|0,c[f+4>>2]|0,C|0,C+e|0,t|0,q|0,u|0,a[v>>0]|0,a[w>>0]|0,z|0,A|0,B|0,k|0);C=n;n=0;if(!(C&1)?(n=0,y=Z(39,c[d>>2]|0,b|0,c[r>>2]|0,c[s>>2]|0,f|0,g|0)|0,C=n,n=0,!(C&1)):0){if(i|0)wg(i);Chb(B);Chb(A);Chb(z);XWa(D);yb=x;return y|0}b=sa()|0;P()|0}if(i|0)wg(i)}Chb(B);Chb(A);Chb(z)}while(0);XWa(D);Ea(b|0);return 0}function gk(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=yb;yb=yb+16|0;A=z+4|0;u=z;c[u>>2]=d;y=Gxa(d)|0;w=b+4|0;l=c[w>>2]|0;v=(l|0)==0;a:do if(!v){t=l+-1|0;o=(l&t|0)==0;if(!o)if(y>>>0>>0)f=y;else f=(y>>>0)%(l>>>0)|0;else f=y&t;e=c[(c[b>>2]|0)+(f<<2)>>2]|0;if(e){r=a[d+11>>0]|0;p=r<<24>>24<0;q=c[d+4>>2]|0;r=r&255;s=c[d>>2]|0;b:while(1){e=c[e>>2]|0;if(!e)break a;h=c[e+4>>2]|0;if((h|0)!=(y|0)){if(!o){if(h>>>0>=l>>>0)h=(h>>>0)%(l>>>0)|0}else h=h&t;if((h|0)!=(f|0))break a}i=e+8|0;h=a[i+11>>0]|0;m=h<<24>>24<0;if(m)h=c[e+12>>2]|0;else h=h&255;c:do if((h|0)==((p?q:r)|0)){if(m)if(!(qdb(c[i>>2]|0,p?s:d,h)|0)){x=49;break b}else break;m=p?s:d;while(1){if(!h){x=49;break b}if((a[i>>0]|0)!=(a[m>>0]|0))break c;m=m+1|0;i=i+1|0;h=h+-1|0}}while(0)}if((x|0)==49){A=e+20|0;yb=z;return A|0}}}else f=0;while(0);GL(A,b,y,u);m=b+12|0;j=+(((c[m>>2]|0)+1|0)>>>0);k=+g[b+16>>2];if(k*+(l>>>0)>>0>2){f=(l&l+-1|0)!=0&1;x=30}else{f=1;x=30}}else if(v){e=0;f=1;x=30}do if((x|0)==30){x=e|f;v=~~+I(+(j/k))>>>0;n=0;da(4046,b|0,(x>>>0>>0?v:x)|0);x=n;n=0;if(!(x&1)){e=c[w>>2]|0;f=e+-1|0;if(!(e&f)){l=e;f=y&f;break}if(y>>>0>>0){l=e;f=y;break}l=e;f=(y>>>0)%(e>>>0)|0;break}e=sa()|0;P()|0;f=c[A>>2]|0;c[A>>2]=0;if(!f)Ea(e|0);if(a[A+8>>0]&1)mnb(f+8|0);RCb(f);Ea(e|0)}while(0);e=c[(c[b>>2]|0)+(f<<2)>>2]|0;if(!e){y=b+8|0;e=c[A>>2]|0;c[e>>2]=c[y>>2];i=e;c[y>>2]=i;c[(c[b>>2]|0)+(f<<2)>>2]=y;if(c[e>>2]|0){f=c[(c[e>>2]|0)+4>>2]|0;h=l+-1|0;if(l&h){if(f>>>0>=l>>>0)f=(f>>>0)%(l>>>0)|0}else f=f&h;c[(c[b>>2]|0)+(f<<2)>>2]=i}}else{b=c[A>>2]|0;c[b>>2]=c[e>>2];c[e>>2]=b;e=b}c[m>>2]=(c[m>>2]|0)+1;c[A>>2]=0;A=e;A=A+20|0;yb=z;return A|0}function hk(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,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=yb;yb=yb+16|0;y=z+4|0;r=z;s=b+48|0;t=b+44|0;u=b+56|0;v=b+20|0;w=v+11|0;x=b+24|0;i=b+60|0;j=b+32|0;k=j+11|0;l=b+36|0;m=b+52|0;o=b+64|0;p=b+56|0;q=b+44|0;a:while(1){if((((c[s>>2]|0)-(c[t>>2]|0)|0)/12|0)>>>0>=d>>>0){e=41;break}c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[y+(e<<2)>>2]=0;e=e+1|0}g=c[c[u>>2]>>2]|0;e=a[w>>0]|0;f=e<<24>>24<0;if(f)e=c[x>>2]|0;else e=e&255;if(g>>>0>=e>>>0){e=10;break}if(f)e=c[v>>2]|0;else e=v;n=0;da(91,y|0,a[e+g>>0]|0);h=n;n=0;if(h&1){e=44;break}h=1;while(1){e=c[u>>2]|0;if(h>>>0>=(c[i>>2]|0)-e>>2>>>0)break;g=c[e+(h<<2)>>2]|0;e=a[k>>0]|0;f=e<<24>>24<0;if(f)e=c[l>>2]|0;else e=e&255;if(g>>>0>=e>>>0){e=20;break a}if(f)e=c[j>>2]|0;else e=j;n=0;da(91,y|0,a[e+g>>0]|0);g=n;n=0;if(g&1){e=43;break a}h=h+1|0}do if(!(It(b,y)|0)){e=c[s>>2]|0;if((e|0)==(c[m>>2]|0)){n=0;da(2039,q|0,y|0);h=n;n=0;if(h&1){e=44;break a}else break}n=0;da(73,e|0,y|0);h=n;n=0;if(h&1){e=44;break a}c[s>>2]=(c[s>>2]|0)+12}while(0);e=0;while(1){h=(c[u>>2]|0)+(e<<2)|0;c[h>>2]=(c[h>>2]|0)+1;h=(c[u>>2]|0)+(e<<2)|0;f=(e|0)==0;g=a[(f?w:k)>>0]|0;if(g<<24>>24<0)f=c[(f?v:j)+4>>2]|0;else f=g&255;if((c[h>>2]|0)>>>0>>0)break;c[h>>2]=0;e=e+1|0;h=c[i>>2]|0;f=h;do if((e|0)==(h-(c[u>>2]|0)>>2|0)){c[r>>2]=-1;if((c[o>>2]|0)>>>0<=f>>>0){n=0;da(2038,p|0,r|0);h=n;n=0;if(h&1){e=42;break a}else break}else{c[f>>2]=-1;c[i>>2]=(c[i>>2]|0)+4;break}}while(0)}Chb(y)}if((e|0)==10){n=0;fa(75,88543,88576,109,88624);n=0}else if((e|0)==20){n=0;fa(75,88631,88576,113,88624);n=0}else if((e|0)==41){yb=z;return}else if((e|0)==42){z=sa()|0;P()|0;Chb(y);Ea(z|0)}else if((e|0)==43){z=sa()|0;P()|0;Chb(y);Ea(z|0)}else if((e|0)==44){z=sa()|0;P()|0;Chb(y);Ea(z|0)}z=sa()|0;P()|0;Chb(y);Ea(z|0)}function ik(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,o=0,p=0,q=0,r=0,s=0;r=yb;yb=yb+64|0;m=r+48|0;i=r+40|0;g=r+32|0;j=r+24|0;o=r+16|0;k=r+8|0;p=r+4|0;q=r;yib(m);h=(c[a>>2]|0)+4|0;Kra(i,h);Vda(g,h);h=i+4|0;g=c[g+4>>2]|0;b=c[h>>2]|0;a:while(1){if((b|0)==(g|0))break;e=c[b>>2]|0;d=WCb(c[e+16>>2]|0)|0;e=Ryb(e)|0;while(1){f=d;if((e|0)==(f|0))break;c[j>>2]=c[d+8>>2];n=0;d=U(93,m|0,j|0)|0;s=n;n=0;if(s&1){l=30;break a}c[d>>2]=(c[d>>2]|0)+1;d=c[f+4>>2]|0}b=b+4|0;c[h>>2]=b;d=c[i>>2]|0;if((b-(c[d>>2]|0)|0)==4096){b=d+4|0;c[i>>2]=b;b=c[b>>2]|0;c[h>>2]=b}}if((l|0)==30){s=sa()|0;P()|0;T0a(m);Ea(s|0)}j=(c[a>>2]|0)+4|0;Kra(o,j);Vda(k,j);j=o+4|0;i=c[k+4>>2]|0;e=0;h=c[j>>2]|0;while(1){if((h|0)==(i|0)){l=28;break}g=c[h>>2]|0;if((WCb(c[g+8>>2]|0)|0)==1){d=c[g+16>>2]|0;WCb(d)|0;c[p>>2]=c[d+8>>2];d=c[d+12>>2]|0;n=0;b=U(93,m|0,p|0)|0;s=n;n=0;if(s&1){l=29;break}if(!(c[b>>2]|0)){l=15;break}if((c[p>>2]|0)!=(g|0)){n=0;b=U(93,m|0,p|0)|0;s=n;n=0;if(s&1){l=29;break}if((c[b>>2]|0)==1){Gsb(q,c[c[a>>2]>>2]|0);d=c[d+16>>2]|0;f=g+104|0;b=c[f>>2]|0;e=c[q>>2]|0;if(d){n=0;b=V(57,e|0,b|0,d|0)|0;s=n;n=0;if(s&1){l=29;break}c[f>>2]=b}n=0;b=V(57,e|0,b|0,c[(c[p>>2]|0)+104>>2]|0)|0;s=n;n=0;if(s&1){l=29;break}c[f>>2]=b;$Ha(g,c[p>>2]|0);oEa(c[p>>2]|0);c[g+108>>2]=c[(c[p>>2]|0)+108>>2];n=0;b=U(93,m|0,p|0)|0;s=n;n=0;if(s&1){l=29;break}c[b>>2]=0;e=1}}}b=h+4|0;c[j>>2]=b;d=c[o>>2]|0;if((b-(c[d>>2]|0)|0)==4096){b=d+4|0;c[o>>2]=b;b=c[b>>2]|0;c[j>>2]=b}h=b}if((l|0)==15){n=0;fa(75,73199,72707,669,73230);n=0;s=sa()|0;P()|0;T0a(m);Ea(s|0)}else if((l|0)==28){T0a(m);yb=r;return e|0}else if((l|0)==29){s=sa()|0;P()|0;T0a(m);Ea(s|0)}return 0}function jk(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3101,b);e=(ufb(d)|0)+8|0;if(eCb(c[e>>2]|0)|0)IW(a,3102,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3100,uXa(e,b)|0);d=b}return}case 2:{IW(a,3103,b);IW(a,3102,b);NT(a,(Tfb(d)|0)+16|0);IW(a,3102,b);IW(a,3100,(Tfb(d)|0)+12|0);IW(a,3102,b);IW(a,3100,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3104,b);IW(a,3100,(Efb(d)|0)+12|0);IW(a,3102,b);return}case 4:{IW(a,3105,b);IW(a,3102,b);NT(a,(tfb(d)|0)+16|0);NT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3106,b);IW(a,3102,b);NT(a,(cfb(d)|0)+32|0);IW(a,3100,(cfb(d)|0)+28|0);return}case 19:{IW(a,3107,b);IW(a,3102,b);NT(a,(Ueb(d)|0)+8|0);return}case 22:{IW(a,3108,b);IW(a,3102,b);return}default:{Zd(a,b);return}}}function kk(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3375,b);e=(ufb(d)|0)+8|0;if(eCb(c[e>>2]|0)|0)IW(a,3376,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3374,uXa(e,b)|0);d=b}return}case 2:{IW(a,3377,b);IW(a,3376,b);OT(a,(Tfb(d)|0)+16|0);IW(a,3376,b);IW(a,3374,(Tfb(d)|0)+12|0);IW(a,3376,b);IW(a,3374,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3378,b);IW(a,3374,(Efb(d)|0)+12|0);IW(a,3376,b);return}case 4:{IW(a,3379,b);IW(a,3376,b);OT(a,(tfb(d)|0)+16|0);OT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3380,b);IW(a,3376,b);OT(a,(cfb(d)|0)+32|0);IW(a,3374,(cfb(d)|0)+28|0);return}case 19:{IW(a,3381,b);IW(a,3376,b);OT(a,(Ueb(d)|0)+8|0);return}case 22:{IW(a,3382,b);IW(a,3376,b);return}default:{_d(a,b);return}}}function lk(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3256,b);e=(ufb(d)|0)+8|0;if(eCb(c[e>>2]|0)|0)IW(a,3257,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3255,uXa(e,b)|0);d=b}return}case 2:{IW(a,3258,b);IW(a,3257,b);PT(a,(Tfb(d)|0)+16|0);IW(a,3257,b);IW(a,3255,(Tfb(d)|0)+12|0);IW(a,3257,b);IW(a,3255,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3259,b);IW(a,3255,(Efb(d)|0)+12|0);IW(a,3257,b);return}case 4:{IW(a,3260,b);IW(a,3257,b);PT(a,(tfb(d)|0)+16|0);PT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3261,b);IW(a,3257,b);PT(a,(cfb(d)|0)+32|0);IW(a,3255,(cfb(d)|0)+28|0);return}case 19:{IW(a,3262,b);IW(a,3257,b);PT(a,(Ueb(d)|0)+8|0);return}case 22:{IW(a,3263,b);IW(a,3257,b);return}default:{$d(a,b);return}}}function mk(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3494,b);e=(ufb(d)|0)+8|0;if(eCb(c[e>>2]|0)|0)IW(a,3495,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3493,uXa(e,b)|0);d=b}return}case 2:{IW(a,3496,b);IW(a,3495,b);QT(a,(Tfb(d)|0)+16|0);IW(a,3495,b);IW(a,3493,(Tfb(d)|0)+12|0);IW(a,3495,b);IW(a,3493,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3497,b);IW(a,3493,(Efb(d)|0)+12|0);IW(a,3495,b);return}case 4:{IW(a,3498,b);IW(a,3495,b);QT(a,(tfb(d)|0)+16|0);QT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3499,b);IW(a,3495,b);QT(a,(cfb(d)|0)+32|0);IW(a,3493,(cfb(d)|0)+28|0);return}case 19:{IW(a,3500,b);IW(a,3495,b);QT(a,(Ueb(d)|0)+8|0);return}case 22:{IW(a,3501,b);IW(a,3495,b);return}default:{ae(a,b);return}}}function nk(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3613,b);e=(ufb(d)|0)+8|0;if(eCb(c[e>>2]|0)|0)IW(a,3614,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3612,uXa(e,b)|0);d=b}return}case 2:{IW(a,3615,b);IW(a,3614,b);RT(a,(Tfb(d)|0)+16|0);IW(a,3614,b);IW(a,3612,(Tfb(d)|0)+12|0);IW(a,3614,b);IW(a,3612,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3616,b);IW(a,3612,(Efb(d)|0)+12|0);IW(a,3614,b);return}case 4:{IW(a,3617,b);IW(a,3614,b);RT(a,(tfb(d)|0)+16|0);RT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3618,b);IW(a,3614,b);RT(a,(cfb(d)|0)+32|0);IW(a,3612,(cfb(d)|0)+28|0);return}case 19:{IW(a,3619,b);IW(a,3614,b);RT(a,(Ueb(d)|0)+8|0);return}case 22:{IW(a,3620,b);IW(a,3614,b);return}default:{be(a,b);return}}}function ok(a,b,d){a=a|0;b=b|0;d=d|0;if(!d)ma(112644,134747,85,112649);do switch(c[d>>2]|0){case 1:{hm(a,b,d);return}case 2:{zv(a,b,d);return}case 3:{CLa(a);return}case 4:{Rp(a,b,d);return}case 5:{ps(a,b,d);return}case 6:{CLa(a);return}case 7:{CLa(a);return}case 8:{HB(a,c[b+8>>2]|0,d);return}case 9:{_$(a,b,d);return}case 10:{lW(a,b,d);return}case 11:{CLa(a);return}case 12:{CLa(a);return}case 13:{CLa(a);return}case 23:{CLa(a);return}case 24:{CLa(a);return}case 25:{CLa(a);return}case 26:{CLa(a);return}case 27:{ml(a,b,d);return}case 28:{vk(a,b,d);return}case 29:{fq(a,b,d);return}case 30:{lm(a,b,d);return}case 31:{Th(a,b,d);return}case 32:{LFa(a);return}case 33:{LFa(a);return}case 34:{LFa(a);return}case 35:{LFa(a);return}case 14:{Yma(a,d);return}case 15:{wc(a,b,d);return}case 16:{fc(a,b,d);return}case 17:{Tr(a,b,d);return}case 18:{fL(a,b,c[d+8>>2]|0);return}case 19:{GU(a,b,d);return}case 20:{CLa(a);return}case 21:{LFa(a);return}case 22:{S2a(b);break}default:ma(141129,134747,128,112649)}while(0)}function pk(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0;j=yb;yb=yb+64|0;f=j+60|0;l=j+48|0;g=j+36|0;k=j+24|0;m=j+12|0;h=j;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;D8(l,103752,Zzb(103752)|0);i=b+4|0;n=0;e=S(223,c[i>>2]|0)|0;o=n;n=0;a:do if((!(o&1)?(n=0,U(69,l|0,e|0)|0,o=n,n=0,!(o&1)):0)?(n=0,da(229,m|0,d[b+8>>0]|0|0),o=n,n=0,!(o&1)):0){n=0;U(77,m|0,103672)|0;o=n;n=0;if(o&1){e=sa()|0;P()|0}else{c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];e=0;while(1){if((e|0)==3)break;c[m+(e<<2)>>2]=0;e=e+1|0}n=0;U(69,k|0,103672)|0;o=n;n=0;do if(o&1){e=sa()|0;P()|0}else{c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];e=0;while(1){if((e|0)==3)break;c[k+(e<<2)>>2]=0;e=e+1|0}o=a[g+11>>0]|0;e=o<<24>>24<0;n=0;V(43,l|0,(e?c[g>>2]|0:g)|0,(e?c[g+4>>2]|0:o&255)|0)|0;o=n;n=0;if(o&1){e=sa()|0;P()|0;Chb(g);break}Chb(g);Chb(k);Chb(m);if((!(yxb(c[i>>2]|0)|0)?(a[b+9>>0]&1)==0:0)?(n=0,U(69,l|0,103768)|0,o=n,n=0,o&1):0)break a;do if(a[b+20>>0]&1){n=0;U(69,l|0,103674)|0;o=n;n=0;if(o&1)break a}else{o=WCb(c[b+16>>2]|0)|0;n=0;da(2683,h|0,o|0);o=n;n=0;if(o&1)break a;o=a[h+11>>0]|0;m=o<<24>>24<0;n=0;V(43,l|0,(m?c[h>>2]|0:h)|0,(m?c[h+4>>2]|0:o&255)|0)|0;o=n;n=0;if(!(o&1)){Chb(h);break}o=sa()|0;P()|0;Chb(h);Chb(l);Ea(o|0)}while(0);n=0;da(230,f|0,l|0);o=n;n=0;if(o&1)break a;Chb(l);yb=j;return c[f>>2]|0}while(0);Chb(k)}Chb(m);o=e;Chb(l);Ea(o|0)}while(0);o=sa()|0;P()|0;Chb(l);Ea(o|0);return 0}function qk(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,o=0,p=0,q=0,r=0,s=0;r=yb;yb=yb+176|0;m=r+152|0;l=r+144|0;p=r+132|0;q=r+72|0;h=r+48|0;j=r+128|0;i=r+100|0;k=r+24|0;o=r+96|0;e=r;c[l>>2]=0;c[p>>2]=0;f=p+4|0;c[f>>2]=0;c[p+8>>2]=0;EFa(q,l,p,q);n=0;ea(155,c[q+16>>2]|0,d|0,1);g=n;n=0;do if(!(g&1)){g=c[f>>2]|0;f=c[p>>2]|0;if(g-f>>2>>>0<2){e=Mqb(c[d+16>>2]|0)|0;if(!e){o=0;TIa(q);Vob(p);yb=r;return o|0}n=0;e=S(232,e+8|0)|0;o=n;n=0;if(o&1)break;if(e|0){o=0;TIa(q);Vob(p);yb=r;return o|0}o=c[d+12>>2]|0;TIa(q);Vob(p);yb=r;return o|0}while(1){if((f|0)==(g|0))break;s=c[f>>2]|0;Bqb(h,0);s=s+8|0;c[s>>2]=c[h>>2];c[s+4>>2]=c[h+4>>2];c[s+8>>2]=c[h+8>>2];c[s+12>>2]=c[h+12>>2];c[s+16>>2]=c[h+16>>2];f=f+4|0}c[j>>2]=d;H6a(i,pob(c[b+40>>2]|0)|0);n=0;da(2113,i|0,j|0);s=n;n=0;if(s&1){s=sa()|0;P()|0;Arb(i);TIa(q);Vob(p);Ea(s|0)}Arb(i);f=c[j>>2]|0;if(!(c[l>>2]|0)){s=f;TIa(q);Vob(p);yb=r;return s|0}g=Mqb(f)|0;if(!g){Gsb(o,WCb(c[b+36>>2]|0)|0);h=c[j>>2]|0;Bqb(e,c[l>>2]|0);n=0;g=m;f=g+24|0;do{a[g>>0]=a[e>>0]|0;g=g+1|0;e=e+1|0}while((g|0)<(f|0));e=U(120,o|0,m|0)|0;s=n;n=0;if(s&1)break;n=0;e=W(8,c[o>>2]|0,0,h|0,e|0)|0;s=n;n=0;if(s&1)break;s=e;TIa(q);Vob(p);yb=r;return s|0}e=g+8|0;n=0;f=S(232,e|0)|0;s=n;n=0;if(!(s&1)){if(f|0){n=0;fa(75,89428,89176,932,89451);n=0;break}Bqb(k,c[l>>2]|0);c[e>>2]=c[k>>2];c[e+4>>2]=c[k+4>>2];c[e+8>>2]=c[k+8>>2];c[e+12>>2]=c[k+12>>2];c[e+16>>2]=c[k+16>>2];s=g;TIa(q);Vob(p);yb=r;return s|0}}while(0);s=sa()|0;P()|0;TIa(q);Vob(p);Ea(s|0);return 0}function rk(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,o=0,p=0,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=yb;yb=yb+80|0;m=A+56|0;s=A+52|0;z=A+40|0;t=A+36|0;u=A+32|0;v=A;w=A+28|0;x=A+24|0;if(!(a[e+92>>0]&1)){yb=A;return}c[z>>2]=0;p=z+4|0;c[p>>2]=0;q=z+8|0;c[q>>2]=0;y=e+108|0;r=c[e+112>>2]|0;o=c[y>>2]|0;a:while(1){if((o|0)==(r|0)){b=35;break}l=o+8|0;f=c[l>>2]|0;b=c[o+4>>2]|0;d=f;while(1){if((d|0)==(b|0))break;if(a[f+-1>>0]|0)break;k=f+-1|0;c[l>>2]=k;d=k;f=k}b=Mqb(c[o>>2]|0)|0;b:do if(!b){b=c[p>>2]|0;if((b|0)==(c[q>>2]|0)){n=0;da(1834,z|0,o|0);l=n;n=0;if(l&1){b=38;break a}else break}n=0;da(1833,b|0,o|0);l=n;n=0;if(l&1){b=38;break a}c[p>>2]=(c[p>>2]|0)+16}else{k=o+4|0;n=0;j=S(232,b+8|0)|0;i=n;n=0;if(i&1){b=38;break a}b=0;while(1){h=c[k>>2]|0;g=(c[l>>2]|0)-h|0;if(b>>>0>=g>>>0)break b;i=b;while(1){if(i>>>0>=g>>>0)break;if(a[h+i>>0]|0)break;i=i+1|0}b=i;d=i;while(1){if(!(b>>>0>>0&(b-d|0)>>>0<8))break;if(!(a[h+d>>0]|0)){B=(a[h+b>>0]|0)==0;f=b+(B&1)|0;d=B?d:b}else{d=d+1|0;f=d}b=f}do if((d|0)!=(i|0)){Gsb(u,e);Bqb(v,j+i|0);n=0;f=m;g=v;h=f+24|0;do{a[f>>0]=a[g>>0]|0;f=f+1|0;g=g+1|0}while((f|0)<(h|0));g=U(120,u|0,m|0)|0;B=n;n=0;if(B&1){b=37;break a}c[t>>2]=g;h=(c[k>>2]|0)+i|0;c[w>>2]=h;d=d-i|0;c[x>>2]=d;f=c[p>>2]|0;if(f>>>0>=(c[q>>2]|0)>>>0){n=0;fa(115,z|0,t|0,w|0,x|0);B=n;n=0;if(B&1){b=37;break a}else break}n=0;ea(113,s|0,d|0,0);B=n;n=0;if(B&1){b=37;break a}n=0;fa(83,f|0,g|0,h|0,c[s>>2]|0);B=n;n=0;if(B&1){b=37;break a}c[p>>2]=(c[p>>2]|0)+16}while(0)}}while(0);o=o+16|0}if((b|0)==35){bma(y,z);Bhb(z);yb=A;return}else if((b|0)==37){B=sa()|0;P()|0;Bhb(z);Ea(B|0)}else if((b|0)==38){B=sa()|0;P()|0;Bhb(z);Ea(B|0)}}function sk(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,o=0;l=yb;yb=yb+48|0;j=l+24|0;k=l+12|0;m=l;h=a;c[h>>2]=0;c[h+4>>2]=0;h=b+16|0;b=0;f=0;while(1){i=nKa(c[h>>2]|0)|0;g=(i&255)>>>7^1;e=i&127;if((b|0)==0&(f|0)==0)d=-1;else{d=Ndb(64,0,b|0,f|0)|0;P()|0;d=X2a(1,0,d|0)|0;d=Yeb(d|0,P()|0,-1,-1)|0;P()|0}d=d&e;if(!((d|0)==(e|0)&0==0)){f=5;break}e=X2a(e|0,0,b|0)|0;d=P()|0;o=a;e=c[o>>2]|e;d=c[o+4>>2]|d;o=a;c[o>>2]=e;c[o+4>>2]=d;if(g<<24>>24){f=22;break}b=Yeb(b|0,f|0,7,0)|0;d=P()|0;if(b>>>0>63){f=15;break}f=d}do if((f|0)==5){if(g<<24>>24){e=X2a(d|0,0,b|0)|0;d=P()|0;o=a;e=c[o>>2]|e;d=c[o+4>>2]|d;o=a;c[o>>2]=e;c[o+4>>2]=d;break}e=oa(20)|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;o=Zzb(114823)|0;n=0;ea(95,j|0,114823,o|0);o=n;n=0;if(!(o&1)){n=0;da(330,e|0,j|0);o=n;n=0;if(o&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(j);if(!d){o=b;Ea(o|0)}}else{b=sa()|0;P()|0}va(e|0);o=b;Ea(o|0)}else if((f|0)==15){e=oa(20)|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;o=Zzb(114866)|0;n=0;ea(95,k|0,114866,o|0);o=n;n=0;if(!(o&1)){n=0;da(330,e|0,k|0);o=n;n=0;if(o&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(k);if(!d){o=b;Ea(o|0)}}else{b=sa()|0;P()|0}va(e|0);o=b;Ea(o|0)}while(0);if(!((i&64)!=0&(b+7|0)>>>0<64)){yb=l;return}o=57-b|0;k=X2a(e|0,d|0,o|0)|0;o=t$a(k|0,P()|0,o|0)|0;k=P()|0;j=a;c[j>>2]=o;c[j+4>>2]=k;if(!((k|0)>-1|(k|0)==-1&o>>>0>4294967295)){yb=l;return}e=oa(20)|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;o=Zzb(114879)|0;n=0;ea(95,m|0,114879,o|0);o=n;n=0;if(!(o&1)){n=0;da(330,e|0,m|0);o=n;n=0;if(o&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(m);if(!d){o=b;Ea(o|0)}}else{b=sa()|0;P()|0}va(e|0);o=b;Ea(o|0)}function tk(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;m=yb;yb=yb+48|0;l=m+16|0;k=m;a:do if((d-b|0)>1?(a[b>>0]|0)==84:0){f=a[b+1>>0]|0;do if(f<<24>>24==95){f=c[e+36>>2]|0;if((c[e+32>>2]|0)==(f|0))break a;g=c[f+-16>>2]|0;if((g|0)==(c[f+-12>>2]|0)){nga(l);f=e+4|0;g=c[f>>2]|0;if(g>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,l|0);k=n;n=0;if(k&1){b=sa()|0;P()|0;J2a(l);break}}else{I6(g,l);c[f>>2]=(c[f>>2]|0)+24}J2a(l);a[e+62>>0]=1;b=b+2|0;break a}h=c[g+4>>2]|0;d=e+4|0;i=e+8|0;f=c[g>>2]|0;while(1){if((f|0)==(h|0))break;g=c[d>>2]|0;if((g|0)==(c[i>>2]|0))vB(e,f);else{Oga(g,f);c[d>>2]=(c[d>>2]|0)+24}f=f+24|0}b=b+2|0;break a}else{f=(f<<24>>24)+-48|0;if(f>>>0>=10)break a;j=b+2|0;while(1){if((j|0)==(d|0))break a;g=a[j>>0]|0;h=(g<<24>>24)+-48|0;if(h>>>0>=10)break;f=h+(f*10|0)|0;j=j+1|0}if(g<<24>>24!=95)break a;g=c[e+36>>2]|0;if((c[e+32>>2]|0)==(g|0))break a;f=f+1|0;d=c[g+-16>>2]|0;i=d;if(f>>>0>=(c[g+-12>>2]|0)-d>>4>>>0){g=j+1|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;NR(k,b,g);X6(l,k);b=e+4|0;f=c[b>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,l|0);j=n;n=0;if(j&1){b=sa()|0;P()|0;J2a(l);Chb(k);break}}else{I6(f,l);c[b>>2]=(c[b>>2]|0)+24}J2a(l);Chb(k);a[e+62>>0]=1;b=g;break a}g=c[i+(f<<4)+4>>2]|0;h=e+4|0;d=e+8|0;b=c[i+(f<<4)>>2]|0;while(1){if((b|0)==(g|0))break;f=c[h>>2]|0;if((f|0)==(c[d>>2]|0))vB(e,b);else{Oga(f,b);c[h>>2]=(c[h>>2]|0)+24}b=b+24|0}b=j+1|0;break a}while(0);Ea(b|0)}while(0);yb=m;return b|0}function uk(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;j=yb;yb=yb+128|0;k=j+68|0;l=j+24|0;h=j+12|0;i=j;VNa(k);a[k>>0]=e&1;f=k+1|0;a[f>>0]=e>>>1&1;c[k+4>>2]=d;d=k+8|0;a[d>>0]=e>>>2&1;n=0;da(998,l|0,b|0);g=n;n=0;if(g&1){l=sa()|0;P()|0;zJa(k);Ea(l|0)}n=0;da(4063,l|0,k|0);g=n;n=0;do if(!(g&1)?(Lvb(l),n=0,ca(489,l|0),g=n,n=0,!(g&1)):0){if(a[f>>0]&1){n=0;da(4064,b|0,k|0);g=n;n=0;if(g&1){e=13;break}n=0;da(4065,b|0,k|0);g=n;n=0;if(g&1){e=13;break}n=0;da(4066,b|0,k|0);g=n;n=0;if(g&1){e=13;break}n=0;da(4067,b|0,k|0);g=n;n=0;if(g&1){e=13;break}n=0;da(4068,b|0,k|0);g=n;n=0;if(g&1){e=13;break}n=0;da(4069,b|0,k|0);g=n;n=0;if(g&1){e=13;break}}if(RUa()|0?(n=0,da(4070,b|0,k|0),g=n,n=0,g&1):0){e=13;break}g=k+9|0;if(a[g>>0]&1){i=a[g>>0]|0;i=i&1;i=i<<24>>24!=0;osa(l);zJa(k);yb=j;return i|0}if(a[d>>0]&1){i=a[g>>0]|0;i=i&1;i=i<<24>>24!=0;osa(l);zJa(k);yb=j;return i|0}f=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(f|0)){e=26;break}n=0;e=U(211,k|0,c[d>>2]|0)|0;b=n;n=0;if(b&1){e=12;break}n=0;da(75,h|0,e+4|0);b=n;n=0;if(b&1){e=12;break}n=0;U(61,150620,h|0)|0;b=n;n=0;if(b&1){e=25;break}Chb(h);d=d+4|0}if((e|0)==12){d=sa()|0;P()|0;e=14;break}else if((e|0)==25){d=sa()|0;P()|0;Chb(h);break}else if((e|0)==26){n=0;d=U(211,k|0,0)|0;h=n;n=0;if(h&1){e=13;break}n=0;da(75,i|0,d+4|0);h=n;n=0;if(h&1){e=13;break}n=0;U(61,150620,i|0)|0;h=n;n=0;if(h&1){d=sa()|0;P()|0;Chb(i);break}Chb(i);i=a[g>>0]|0;i=i&1;i=i<<24>>24!=0;osa(l);zJa(k);yb=j;return i|0}}else e=13;while(0);if((e|0)==13){d=sa()|0;P()|0;e=14}osa(l);l=d;zJa(k);Ea(l|0);return 0}function vk(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;q=yb;yb=yb+288|0;p=q+256|0;g=q+224|0;h=q+200|0;i=q+168|0;j=q+144|0;m=q+120|0;n=q+96|0;o=q+72|0;f=q+48|0;k=q+24|0;l=q;AB(g,d,c[e+12>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=q;return}c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];AB(i,d,c[e+20>>2]|0);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=q;return}c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];c[j+20>>2]=c[g+20>>2];switch(c[e+8>>2]|0){case 0:{Q5a(m,h,j,a[e+16>>0]|0);e=p;f=m;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 1:{T5a(n,h,j,a[e+16>>0]|0);e=p;f=n;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 2:{c6a(o,h,j,a[e+16>>0]|0);e=p;f=o;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 3:{b6a(f,h,j,a[e+16>>0]|0);e=p;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 4:{e6a(k,h,j,a[e+16>>0]|0);e=p;f=k;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}case 5:{d6a(l,h,j,a[e+16>>0]|0);e=p;f=l;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,p);yb=q;return}default:ma(141129,96854,579,112874)}} -function Fw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;g=j+4|0;h=j;i=a+60|0;d=c[i>>2]|0;if((c[a+56>>2]|0)==(d|0))ma(113289,112765,436,113397);c[i>>2]=d+-4;d=CU(c[a+36>>2]|0,4,b)|0;c[g>>2]=d;e=a+4|0;f=c[e>>2]|0;if(f>>>0<(c[a+8>>2]|0)>>>0){c[f>>2]=d;c[e>>2]=(c[e>>2]|0)+4}else _M(a,g);Ftb(h,c[37121]|0);d=c[i>>2]|0;if(d>>>0<(c[a+64>>2]|0)>>>0){c[d>>2]=c[h>>2];c[i>>2]=(c[i>>2]|0)+4;i=b+16|0;i=c[i>>2]|0;Fv(a,i);yb=j;return}else{_M(a+56|0,h);i=b+16|0;i=c[i>>2]|0;Fv(a,i);yb=j;return}}function Gw(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,o=0,p=0;o=yb;yb=yb+16|0;m=b;l=o;if(!b){yb=o;return m|0}p=d;j=f-p|0;k=g+12|0;i=c[k>>2]|0;j=(i|0)>(j|0)?i-j|0:0;i=e;g=i-p|0;if((g|0)>0?(Hb[c[(c[b>>2]|0)+48>>2]&255](b,d,g)|0)!=(g|0):0){p=0;yb=o;return p|0}if((j|0)>0){c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;J8(l,j,h);n=0;g=V(c[(c[b>>2]|0)+48>>2]|0,b|0,((a[l+11>>0]|0)<0?c[l>>2]|0:l)|0,j|0)|0;p=n;n=0;if(p&1){p=sa()|0;P()|0;Chb(l);Ea(p|0)}Chb(l);if((g|0)!=(j|0)){p=0;yb=o;return p|0}}f=f-i|0;if((f|0)>0?(Hb[c[(c[b>>2]|0)+48>>2]&255](b,e,f)|0)!=(f|0):0){p=0;yb=o;return p|0}c[k>>2]=0;p=m;yb=o;return p|0}function Hw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=b+32|0;aua(i,d)|0;h=b+44|0;c[h>>2]=0;j=b+48|0;g=c[j>>2]|0;if(g&8|0){d=a[i+11>>0]|0;if(d<<24>>24<0){f=(c[i>>2]|0)+(c[b+36>>2]|0)|0;c[h>>2]=f;d=c[i>>2]|0;e=c[i>>2]|0}else{f=i+(d&255)|0;c[h>>2]=f;d=i;e=i}c[b+8>>2]=d;c[b+12>>2]=e;c[b+16>>2]=f}if(!(g&16))return;f=i+11|0;d=a[f>>0]|0;if(d<<24>>24<0){e=c[b+36>>2]|0;c[h>>2]=(c[i>>2]|0)+e;d=(c[b+40>>2]&2147483647)+-1|0}else{e=d&255;c[h>>2]=i+e;d=10}N1(i,d);d=a[f>>0]|0;if(d<<24>>24<0){g=c[i>>2]|0;f=c[b+36>>2]|0;d=c[i>>2]|0}else{g=i;f=d&255;d=i}h=b+24|0;c[h>>2]=d;c[b+20>>2]=d;c[b+28>>2]=g+f;if(!(c[j>>2]&3))return;while(1){if((e|0)>=0)break;b=d+2147483647|0;c[h>>2]=b;e=e+-2147483647|0;d=b}if(!e)return;c[h>>2]=d+e;return}function Iw(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;j=yb;yb=yb+112|0;e=j+100|0;g=j+96|0;h=j+4|0;i=j;f=a+16|0;d=c[f>>2]|0;do if((WCb(d)|0)==1){d=a+12|0;k=uXa(d,0)|0;k=c[k>>2]|0;c[g>>2]=c[a+8>>2];c[e>>2]=c[g>>2];if(BT(k,e)|0){d=c[f>>2]|0;break}d=uXa(d,0)|0;d=c[d>>2]|0;VA(h,pob(c[b+40>>2]|0)|0,d);k=QGa(h)|0;Fha(h);if(k){k=d;yb=j;return k|0}if(vub(c[d+4>>2]|0)|0){k=d;yb=j;return k|0}Gsb(i,WCb(c[b+36>>2]|0)|0);k=Bq(i,a)|0;yb=j;return k|0}while(0);if(!(WCb(d)|0))Bib(a)|0;k=a;yb=j;return k|0}function Jw(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;o=yb;yb=yb+32|0;l=o+16|0;f=o+8|0;m=o+4|0;n=o;do if(!(Nwb(d)|0)){k=WCb(d)|0;c[f>>2]=k;if(a[b+44>>0]|0)if((tTa(f,4,1,c[b+32>>2]|0)|0)==1){e=14;break}else{b=-1;break}c[m>>2]=l;e=f+4|0;g=b+36|0;h=b+40|0;i=l+8|0;j=l;k=b+32|0;while(1){b=c[g>>2]|0;b=Ob[c[(c[b>>2]|0)+12>>2]&15](b,c[h>>2]|0,f,e,n,l,i,m)|0;if((c[n>>2]|0)==(f|0)){e=13;break}if((b|0)==3){e=7;break}if(b>>>0>=2){e=13;break}f=(c[m>>2]|0)-j|0;if((tTa(l,1,f,c[k>>2]|0)|0)!=(f|0)){e=13;break}if((b|0)==1)f=c[n>>2]|0;else{e=12;break}}if((e|0)==7)if((tTa(f,1,1,c[k>>2]|0)|0)==1)e=12;else e=13;if((e|0)==12){e=14;break}else if((e|0)==13){b=-1;break}}else e=14;while(0);if((e|0)==14)b=mkb(d)|0;yb=o;return b|0}function Kw(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=yb;yb=yb+160|0;j=l+136|0;i=l+88|0;n=l+56|0;o=l+32|0;h=l;k=l+96|0;m=l+92|0;Wkb(n);Bqb(o,WCb(d)|0);g=n+8|0;c[g>>2]=c[o>>2];c[g+4>>2]=c[o+4>>2];c[g+8>>2]=c[o+8>>2];c[g+12>>2]=c[o+12>>2];c[g+16>>2]=c[o+16>>2];c[n+4>>2]=1;Wkb(h);g=h+8|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];c[g+12>>2]=c[f+12>>2];c[g+16>>2]=c[f+16>>2];g=c[f+16>>2]|0;c[h+4>>2]=g;seb(k);a[k+8>>0]=e;G1a(k+16|0,e,0)|0;a[k+20>>0]=1;c[k+24>>2]=n;c[k+28>>2]=h;c[k+32>>2]=g;g=c[b+36>>2]|0;h=c[(c[g>>2]|0)+28>>2]|0;c[m>>2]=d;c[i>>2]=c[m>>2];d=j;b=f;e=d+24|0;do{a[d>>0]=a[b>>0]|0;d=d+1|0;b=b+1|0}while((d|0)<(e|0));Ub[h&255](g,k,i,j);yb=l;return}function Lw(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;l=yb;yb=yb+32|0;e=l+20|0;f=l+16|0;g=l+12|0;h=l+8|0;i=l+4|0;j=l;k=b+28|0;tI(c[k>>2]|0,-3)|0;switch(c[d+8>>2]|0){case 0:{j=c[k>>2]|0;Pwb(e,7);YA(j,c[e>>2]|0)|0;break}case 1:{j=c[k>>2]|0;Pwb(f,11);YA(j,c[f>>2]|0)|0;break}case 2:{j=c[k>>2]|0;Pwb(g,14);YA(j,c[g>>2]|0)|0;break}case 3:{j=c[k>>2]|0;Pwb(h,17);YA(j,c[h>>2]|0)|0;break}case 4:{j=c[k>>2]|0;Pwb(i,20);YA(j,c[i>>2]|0)|0;break}case 5:{i=c[k>>2]|0;Pwb(j,23);YA(i,c[j>>2]|0)|0;break}default:{}}b=a[d+16>>0]|0;if((b&255)<16){Hmb(c[k>>2]|0,b);yb=l;return}else ma(112857,112765,915,112874)}function Mw(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;g=b;h=d-g>>3;f=a+8|0;e=c[a>>2]|0;k=e;if(h>>>0>(c[f>>2]|0)-e>>3>>>0){CSa(a);e=wxb()|0;if(h>>>0>e>>>0)Apa();f=(c[f>>2]|0)-(c[a>>2]|0)|0;if(f>>3>>>0>>1>>>0){e=f>>2;e=e>>>0>>0?h:e}gX(a,e);hsa(a,b,d);return}j=a+4|0;i=(c[j>>2]|0)-e>>3;h=h>>>0>i>>>0;i=h?b+(i<<3)|0:d;g=(i-g|0)>>>3;f=k;e=b;while(1){if((e|0)==(i|0))break;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];f=f+8|0;e=e+8|0}if(h){hsa(a,i,d);return}else{c[j>>2]=k+(g<<3);return}}function Nw(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;m=yb;yb=yb+16|0;g=m+4|0;h=m;c[g>>2]=0;i=g+4|0;c[i>>2]=0;j=g+8|0;c[j>>2]=0;k=d+4|0;d=c[d>>2]|0;while(1){if((k|0)==(d|0))break;e=c[d+16>>2]|0;c[h>>2]=e;f=c[i>>2]|0;if((f|0)==(c[j>>2]|0)){n=0;da(997,g|0,h|0);f=n;n=0;if(f&1){l=17;break}}else{c[f>>2]=e;c[i>>2]=(c[i>>2]|0)+4}e=d;d=c[e+4>>2]|0;a:do if(!d)while(1){d=c[e+8>>2]|0;if((e|0)==(c[d>>2]|0))break a;e=d}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0)}if((l|0)==17){m=sa()|0;P()|0;Vob(g);Ea(m|0)}n=0;ea(175,a|0,b|0,g|0);l=n;n=0;if(!(l&1)){Vob(g);yb=m;return}m=sa()|0;P()|0;Vob(g);Ea(m|0)}function Ow(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;h=b;e=(e-h<<3)+f-d|0;if((e|0)<=0){i=c[g>>2]|0;c[a>>2]=i;a=a+4|0;g=g+4|0;g=c[g>>2]|0;c[a>>2]=g;return}if(!d){i=g;d=h;f=c[g>>2]|0}else{f=32-d|0;i=(e|0)<(f|0)?e:f;f=-1<>>(f-i|0);h=c[b>>2]&f;d=c[g>>2]|0;c[d>>2]=c[d>>2]&~f;d=c[g>>2]|0;c[d>>2]=c[d>>2]|h;d=g+4|0;h=i+(c[d>>2]|0)|0;f=(c[g>>2]|0)+(h>>>5<<2)|0;c[g>>2]=f;c[d>>2]=h&31;e=e-i|0;i=g;d=b+4|0}b=(e|0)/32|0;Pxa(f|0,d|0,b<<2|0)|0;e=e-(b<<5)|0;f=(c[i>>2]|0)+(b<<2)|0;c[i>>2]=f;if((e|0)<=0){i=c[g>>2]|0;c[a>>2]=i;a=a+4|0;g=g+4|0;g=c[g>>2]|0;c[a>>2]=g;return}j=-1>>>(32-e|0);h=c[d+(b<<2)>>2]&j;c[f>>2]=c[f>>2]&~j;i=c[i>>2]|0;c[i>>2]=c[i>>2]|h;c[g+4>>2]=e;i=c[g>>2]|0;c[a>>2]=i;a=a+4|0;g=g+4|0;g=c[g>>2]|0;c[a>>2]=g;return}function Pw(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=yb;yb=yb+32|0;f=i+24|0;g=i;c[f>>2]=d;h=mla(24)|0;$kb(h);fka(a,h);c[h+20>>2]=d;c[d+96>>2]=h;if((WCb(c[b+8>>2]|0)|0)>>>0<=1){yb=i;return h|0}bda(b,f);e5(d,e,b);w0a(g);n=0;da(239,g|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;SZa(g);Ea(i|0)}a=WCb(c[e+16>>2]|0)|0;b=Ryb(e)|0;while(1){d=a;if((b|0)==(d|0)){a=7;break}n=0;fa(91,c[a+8>>2]|0,1,h|0,g|0);f=n;n=0;if(f&1){a=9;break}a=c[d+4>>2]|0}if((a|0)==7){SZa(g);yb=i;return h|0}else if((a|0)==9){i=sa()|0;P()|0;SZa(g);Ea(i|0)}return 0}function Qw(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;l=yb;yb=yb+32|0;i=l+24|0;h=l+16|0;e=l+8|0;j=l+4|0;k=l;if(a[b+33>>0]&1)BM(IWa(150620,113216)|0);f=d+8|0;nrb(h,f);Hib(e,f);f=h+4|0;g=c[e>>2]|0;e=c[e+4>>2]|0;while(1){if(!(dhb(c[h>>2]|0,c[f>>2]|0,g,e)|0))break;m=Qab(h)|0;T_a(b,c[m>>2]|0);hob(h)}e=b+28|0;m=tI(c[e>>2]|0,16)|0;b=c[b+24>>2]|0;c[k>>2]=c[d+24>>2];c[i>>2]=c[k>>2];Pwb(j,rda(b,i)|0);YA(m,c[j>>2]|0)|0;if((c[d+4>>2]|0)!=6){yb=l;return}Ygb(c[e>>2]|0);yb=l;return}function Rw(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=yb;yb=yb+16|0;d=j+12|0;e=j+8|0;g=j+4|0;h=j;i=b+64|0;k=c[i>>2]|0;f=c[k+24>>2]|0;if((c[k+28>>2]|0)==(f|0)){yb=j;return}c[e>>2]=c[(c[f>>2]|0)+8>>2];c[d>>2]=c[e>>2];rda(b,d)|0;if(a[b+72>>0]&1)BM(IWa(150620,112503)|0);d=E3(b,0)|0;Jaa(b,134035);e=bbb(b)|0;f=c[b+68>>2]|0;k=b+24|0;Pwb(g,c[k>>2]|0);YA(f,c[g>>2]|0)|0;c[h>>2]=0;Q6(c[i>>2]|0,b,h);N6(c[i>>2]|0,b,h);if((c[h>>2]|0)!=(c[k>>2]|0))ma(112517,112368,464,112551);_kb(b,e);gF(b,d);yb=j;return}function Sw(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=yb;yb=yb+16|0;h=j+8|0;g=j+4|0;i=j;c[h>>2]=a;c[g>>2]=b;if(c[37104]|0){b=IWa(150452,70692)|0;a=O8(148204,h)|0;a=IWa(Ym(b,c[a>>2]|0)|0,70738)|0;b=O8(148192,g)|0;IWa(Ym(IWa(Ym(IWa(Ym(IWa(Ym(a,c[b>>2]|0)|0,57662)|0,d)|0,140151)|0,e)|0,140151)|0,f)|0,56341)|0;b=c[g>>2]|0;a=c[h>>2]|0}c[i>>2]=b;i=_l(a+76|0,i)|0;c[i>>2]=d;c[i+4>>2]=e;c[i+8>>2]=f;yb=j;return}function Tw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;d=j+4|0;i=j;g=ufb(c[b>>2]|0)|0;if(!(eCb(c[g+8>>2]|0)|0)){yb=j;return}c[d>>2]=g;h=a+84|0;b=Mba(h,d)|0;if((b|0)==(a+88|0)){yb=j;return}e=b+20|0;b=b+24|0;if((c[b>>2]|0)==(c[e>>2]|0)){yb=j;return}f=a+80|0;d=c[f>>2]|0;NC(a+16|0);oP(d,c[f>>2]|0);d=c[b>>2]|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;oP(c[b>>2]|0,c[f>>2]|0);b=b+4|0}c[i>>2]=g;vW(h,i);yb=j;return}function Uw(b,e){b=b|0;e=e|0;var f=0,g=0;g=b+4|0;b=e+4|0;f=e+12|0;hG(c[g>>2]|0,c[b>>2]|0,a[f>>0]|0);switch(c[e+8>>2]|0){case 0:{IWa(c[g>>2]|0,125111)|0;break}case 1:{IWa(c[g>>2]|0,125122)|0;break}case 2:{IWa(c[g>>2]|0,125115)|0;break}case 3:{IWa(c[g>>2]|0,125119)|0;break}case 4:{IWa(c[g>>2]|0,125126)|0;break}case 5:{IWa(c[g>>2]|0,125130)|0;break}default:{}}b=c[b>>2]|0;if((b|0)!=6?(f=d[f>>0]|0,(Era(b)|0)!=(f|0)):0)IWa(c[g>>2]|0,98150)|0;b=e+16|0;if(!(WCb(c[b>>2]|0)|0))return;g=IWa(c[g>>2]|0,98135)|0;Ym(g,WCb(c[b>>2]|0)|0)|0;return}function Vw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=yb;yb=yb+16|0;e=j+4|0;f=j;i=b+44|0;if(!(a[(c[i>>2]|0)+1>>0]&1)){yb=j;return}h=WCb(c[b+36>>2]|0)|0;c[f>>2]=c[d+24>>2];c[e>>2]=c[f>>2];e=lEa(h,e)|0;if(!(rJa(b,(e|0)!=0,d,128378)|0)){yb=j;return}g=d+12|0;f=WCb(c[g>>2]|0)|0;h=e+16|0;if(!(rJa(b,(f|0)==((c[e+20>>2]|0)-(c[h>>2]|0)>>2|0),d,128401)|0)){yb=j;return}f=d+8|0;e=0;while(1){if(e>>>0>=(WCb(c[g>>2]|0)|0)>>>0)break;k=uXa(f,e)|0;if(!(uta(b,c[(c[k>>2]|0)+4>>2]|0,c[(c[h>>2]|0)+(e<<2)>>2]|0,d)|0)?(a[(c[i>>2]|0)+8>>0]&1)==0:0)IWa(Ym(IWa(i7a(b)|0,128458)|0,e)|0,128472)|0;e=e+1|0}yb=j;return}function Ww(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;d=i+20|0;e=i+16|0;g=i+8|0;f=i;h=Rqb(b)|0;if(h|0?(c[e>>2]=c[h+8>>2],c[d>>2]=c[e>>2],!(BT(h,d)|0)):0){b=h+12|0;nrb(g,b);Hib(f,b);b=g+4|0;e=c[f>>2]|0;d=c[f+4>>2]|0;while(1){if(!(dhb(c[g>>2]|0,c[b>>2]|0,e,d)|0))break;f=Qab(g)|0;T_a(a,c[f>>2]|0);hob(g)}if((c[h+4>>2]|0)!=6){yb=i;return}h=cWa(h+12|0)|0;if((c[(c[h>>2]|0)+4>>2]|0)==6){yb=i;return}Ygb(c[a+28>>2]|0);yb=i;return}T_a(a,b);yb=i;return}function Xw(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;j=yb;yb=yb+288|0;l=j+184|0;g=j+92|0;i=j;h=a+40|0;k=pob(c[h>>2]|0)|0;VA(l,k,c[d>>2]|0);k=QGa(l)|0;Fha(l);if(k){yb=j;return}d=vo(a,b,d,0,0)|0;l=pob(c[h>>2]|0)|0;VA(g,l,c[e>>2]|0);l=QGa(g)|0;Fha(g);if(l){yb=j;return}d=vo(a,b,e,d,0)|0;l=pob(c[h>>2]|0)|0;VA(i,l,c[f>>2]|0);l=QGa(i)|0;Fha(i);if(l){yb=j;return}vo(a,b,f,d,0)|0;yb=j;return}function Yw(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=b+11|0;e=a[i>>0]|0;f=e<<24>>24<0;if(f){k=c[b+4>>2]|0;g=(c[b+8>>2]&2147483647)+-1|0}else{k=e&255;g=10}d=k>>>0<11;j=d?10:(k+16&-16)+-1|0;a:do if((j|0)!=(g|0)){do if(d){d=c[b>>2]|0;if(f){g=0;e=d;f=b;h=12}else{dib(b,d,(e&255)+1|0)|0;RCb(d);h=15}}else{e=j+1|0;f=Stb(e)|0;if(j>>>0<=g>>>0&(f|0)==0)break a;d=a[i>>0]|0;if(d<<24>>24<0){g=1;e=c[b>>2]|0;h=12;break}else{dib(f,b,(d&255)+1|0)|0;d=b+4|0;h=14;break}}while(0);if((h|0)==12){d=b+4|0;dib(f,e,(c[d>>2]|0)+1|0)|0;RCb(e);if(g){e=j+1|0;h=14}else h=15}if((h|0)==14){c[b+8>>2]=e|-2147483648;c[d>>2]=k;c[b>>2]=f;break}else if((h|0)==15){a[i>>0]=k;break}}while(0);return}function Zw(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;switch(b|0){case 32:{i=7;break}case 33:{i=8;break}case 34:{i=9;break}default:Ta()}l=a+44|0;k=c[l>>2]|0;b=Mcb(h)|0;m=c[l>>2]|0;f=Mcb(f)|0;f=T3a(c[m>>2]|0,f,1)|0;n=c[l>>2]|0;j=Mcb(h)|0;j=T3a(c[n>>2]|0,j,1)|0;j=hIa(c[m>>2]|0,i,f,j)|0;j=tVa(c[k>>2]|0,b,j)|0;b=c[l>>2]|0;f=Mcb(e)|0;f=T3a(c[b>>2]|0,f,1)|0;e=c[l>>2]|0;g=Mcb(g)|0;g=T3a(c[e>>2]|0,g,1)|0;g=ITa(k,d,j,hIa(c[b>>2]|0,i,f,g)|0)|0;xm(a,g,h);return g|0}function _w(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=yb;yb=yb+96|0;d=g+80|0;h=g+72|0;e=g+4|0;f=g;Sdb(d,0);Pwb(h,WCb(c[a+36>>2]|0)|0);l2(e,h,d);ihb(e,b);n=0;da(3824,e|0,c[b+44>>2]|0);a=n;n=0;if(a&1){h=sa()|0;P()|0;fxa(e);Htb(d);Ea(h|0)}n=0;ca(546,f|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;fxa(e);Htb(d);Ea(h|0)}h=b+48|0;i=c[f>>2]|0;c[f>>2]=0;a=c[h>>2]|0;c[h>>2]=i;if(a|0){Vob(a);RCb(a)}c[f>>2]=0;bma(c[b+48>>2]|0,e);fxa(e);Htb(d);yb=g;return}function $w(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;l=yb;yb=yb+48|0;i=l+24|0;j=l;k=l+12|0;if(((((d-b|0)>2?(a[b>>0]|0)==116:0)?(a[b+1>>0]|0)==119:0)?(m=b+2|0,g=ac(m,d,e)|0,(g|0)!=(m|0)):0)?(h=e+4|0,f=c[h>>2]|0,(c[e>>2]|0)!=(f|0)):0){d6(k,f+-24|0);n=0;V(128,k|0,0,140125)|0;m=n;n=0;if(m&1){m=sa()|0;P()|0;Chb(k);Ea(m|0)}c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];b=0;while(1){if((b|0)==3)break;c[k+(b<<2)>>2]=0;b=b+1|0}X6(i,j);RC((c[h>>2]|0)+-24|0,i);J2a(i);Chb(j);Chb(k);b=g}yb=l;return b|0}function ax(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=e+4|0;f=(c[g>>2]|0)-(c[e>>2]|0)|0;Hwa(e,f+d|0);f=(c[e>>2]|0)+f|0;a:while(1){d=a[b>>0]|0;b:do switch(d<<24>>24){case 0:break a;case 92:{d=a[b+1>>0]|0;switch(d<<24>>24){case 34:{a[f>>0]=34;b=b+2|0;break b}case 39:{a[f>>0]=39;b=b+2|0;break b}case 92:{a[f>>0]=92;b=b+2|0;break b}case 110:{a[f>>0]=10;b=b+2|0;break b}case 116:{a[f>>0]=9;b=b+2|0;break b}default:{d=((fB(d)|0)<<4)+(fB(a[b+2>>0]|0)|0)&255;a[f>>0]=d;b=b+3|0;break b}}}default:{a[f>>0]=d;b=b+1|0}}while(0);f=f+1|0}b=c[e>>2]|0;d=b;if(f>>>0>>0)ma(126550,118915,1407,126571);b=f-d|0;if(b>>>0>((c[g>>2]|0)-d|0)>>>0)ma(126586,118915,1409,126571);else{Hwa(e,b);return}}function bx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=yb;yb=yb+16|0;d=e;g=WCb(a)|0;f=c[b+16>>2]|0;IWa(IWa(g,ala(f)|0)|0,111733)|0;switch(f|0){case 0:{IWa(a,111741)|0;yb=e;return a|0}case 1:{Zm(a,c[b>>2]|0)|0;yb=e;return a|0}case 2:{g=b;Sm(a,c[g>>2]|0,c[g+4>>2]|0)|0;yb=e;return a|0}case 3:{fQ(a,+L8a(b));yb=e;return a|0}case 4:{ww(a,+K8a(b));yb=e;return a|0}case 5:{IWa(a,111743)|0;qIa(d,b);$0(a,d);yb=e;return a|0}case 6:{ma(141129,111484,231,140448);break}default:{yb=e;return a|0}}return 0}function cx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;d=j+4|0;i=j;g=ufb(c[b>>2]|0)|0;if(!(eCb(c[g+8>>2]|0)|0)){yb=j;return}c[d>>2]=g;h=a+68|0;b=Mba(h,d)|0;if((b|0)==(a+72|0)){yb=j;return}e=b+20|0;b=b+24|0;if((c[b>>2]|0)==(c[e>>2]|0)){yb=j;return}f=a+64|0;d=c[f>>2]|0;OE(a);yO(d,c[f>>2]|0);d=c[b>>2]|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;yO(c[b>>2]|0,c[f>>2]|0);b=b+4|0}c[i>>2]=g;vW(h,i);yb=j;return}function dx(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=yb;yb=yb+16|0;h=i+8|0;e=i;if(a[b+33>>0]&1)BM(IWa(150620,113194)|0);f=d+8|0;nrb(h,f);Hib(e,f);f=h+4|0;g=c[e>>2]|0;e=c[e+4>>2]|0;while(1){if(!(dhb(c[h>>2]|0,c[f>>2]|0,g,e)|0))break;j=Qab(h)|0;yIa(b,c[j>>2]|0);hob(h)}yIa(b,c[d+28>>2]|0);TW(b,d);if((c[d+4>>2]|0)!=6){yb=i;return}AQ(b);yb=i;return}function ex(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=tC(a,b,d,e,g)|0;if(!(nE(g,f,e)|0))return h|0;i=c[e>>2]|0;c[e>>2]=c[f>>2];c[f>>2]=i;if(!(nE(g,e,d)|0)){i=h+1|0;return i|0}i=c[d>>2]|0;c[d>>2]=c[e>>2];c[e>>2]=i;if(!(nE(g,d,b)|0)){i=h+2|0;return i|0}i=c[b>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=i;if(!(nE(g,b,a)|0)){i=h+3|0;return i|0}i=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=i;i=h+4|0;return i|0}function fx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;d=i+4|0;h=i;g=a+80|0;e=c[g>>2]|0;NC(a+16|0);oP(e,c[g>>2]|0);g=Efb(c[b>>2]|0)|0;e=a+112|0;if(!(eCb(c[g+8>>2]|0)|0)){h=c[e>>2]|0;h=h+-4|0;c[e>>2]=h;yb=i;return}f=c[(c[e>>2]|0)+-4>>2]|0;c[d>>2]=g;b=e6(a+84|0,d)|0;d=c[b+4>>2]|0;b=c[b>>2]|0;while(1){if((b|0)==(d|0))break;oP(c[b>>2]|0,f);b=b+4|0}c[h>>2]=g;vW(a+84|0,h);h=c[e>>2]|0;h=h+-4|0;c[e>>2]=h;yb=i;return}function gx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=yb;yb=yb+16|0;g=f;e=d+1|0;h=iD(Vr(b,d)|0,119623)|0;c[(c[a>>2]|0)+100>>2]=h;if((e|0)==(xmb(b)|0)){G1a((c[a>>2]|0)+104|0,-1,0)|0;h=e;yb=f;return h|0}b=nK(kH(Vr(b,e)|0)|0)|0;e=P()|0;if(!(e>>>0>0|(e|0)==0&b>>>0>65536)){G1a((c[a>>2]|0)+104|0,b,e)|0;h=d+2|0;yb=f;return h|0}a=oa(20)|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;h=Zzb(119645)|0;n=0;ea(95,g|0,119645,h|0);h=n;n=0;if(!(h&1)){n=0;da(330,a|0,g|0);h=n;n=0;if(h&1)e=1;else{n=0;ea(122,a|0,31856,511);n=0;e=0}b=sa()|0;P()|0;Chb(g);if(!e){h=b;Ea(h|0)}}else{b=sa()|0;P()|0}va(a|0);h=b;Ea(h|0);return 0}function hx(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,o=0,p=0;p=yb;yb=yb+16|0;l=p;Fbb(b);m=d+11|0;if((a[m>>0]|0)<0)e=c[d>>2]|0;else e=d;n=0;e=S(234,a[e>>0]|0)|0;k=n;n=0;if(k&1){p=sa()|0;P()|0;Xrb(b);Ea(p|0)}c[b+4>>2]=e;h=d+4|0;i=b+8|0;j=b+12|0;k=b+16|0;g=1;while(1){e=a[m>>0]|0;f=e<<24>>24<0;if(f)e=c[h>>2]|0;else e=e&255;if(g>>>0>=e>>>0){o=17;break}if(f)e=c[d>>2]|0;else e=d;n=0;e=S(234,a[e+g>>0]|0)|0;f=n;n=0;if(f&1)break;c[l>>2]=e;f=c[j>>2]|0;if(f>>>0>=(c[k>>2]|0)>>>0){n=0;da(212,i|0,l|0);f=n;n=0;if(f&1)break}else{c[f>>2]=e;c[j>>2]=(c[j>>2]|0)+4}g=g+1|0}if((o|0)==17){yb=p;return}p=sa()|0;P()|0;Xrb(b);Ea(p|0)}function ix(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=et(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}fO(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function jx(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){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;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0;v=yb;yb=yb+80|0;s=v+64|0;t=v;u=INa(16)|0;c[t>>2]=b;c[t+4>>2]=d;c[t+8>>2]=e;c[t+12>>2]=f;c[t+16>>2]=g;c[t+20>>2]=h;c[t+24>>2]=i;c[t+28>>2]=j;c[t+32>>2]=k;c[t+36>>2]=l;c[t+40>>2]=m;c[t+44>>2]=n;c[t+48>>2]=o;c[t+52>>2]=p;c[t+56>>2]=q;c[t+60>>2]=r;d=0;while(1){if((d|0)==16)break;b=WCb(u)|0;KJa(b,c[t+(d<<2)>>2]|0)|0;d=d+1|0}t=WCb(INa(3)|0)|0;t=KJa(t,WGa(148840)|0)|0;Pwb(s,KJa(KJa(t,dWa(a)|0)|0,u)|0);yb=v;return c[s>>2]|0}function kx(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=yb;yb=yb+16|0;e=k+4|0;f=k;g=d+12|0;h=c[g>>2]|0;if(Pfb(h)|0){Iya(b,h)|0;yb=k;return}i=d+16|0;j=c[i>>2]|0;if(!(Pfb(j)|0)){c[f>>2]=c[d+8>>2];c[e>>2]=c[f>>2];Ema(b,e);if(c[i>>2]|0){yb=k;return}a[b+104>>0]=0;yb=k;return}if(!h){Iya(b,j)|0;yb=k;return}else{j=c[b+36>>2]|0;WCb(j)|0;j=Eeb(j+152|0)|0;f=j+12|0;Cka(f,2);g=Jma(b,c[g>>2]|0)|0;h=uXa(f,0)|0;c[h>>2]=g;h=c[i>>2]|0;i=uXa(f,1)|0;c[i>>2]=h;uZa(j,c[d+4>>2]|0);Iya(b,j)|0;yb=k;return}}function lx(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;k=yb;yb=yb+32|0;h=k+16|0;i=k+4|0;f=k+8|0;g=k;l=dub(d,-1)|0;j=b+52|0;e=(a[j>>0]|0)!=0;a:do if(l){if(!e){d=c[b+48>>2]|0;l=((dub(d,-1)|0)^1)&1;a[j>>0]=l}}else{do if(e){e=b+48|0;l=Qzb(c[e>>2]|0)|0;a[f>>0]=l;l=c[b+36>>2]|0;switch(Ob[c[(c[l>>2]|0)+12>>2]&15](l,c[b+40>>2]|0,f,f+1|0,g,h,h+8|0,i)|0){case 1:case 2:{d=-1;break a}case 3:{a[h>>0]=c[e>>2];c[i>>2]=h+1;break}default:{}}b=b+32|0;while(1){f=c[i>>2]|0;if(f>>>0<=h>>>0){b=11;break}l=f+-1|0;c[i>>2]=l;if((Fba(a[l>>0]|0,c[b>>2]|0)|0)==-1){b=14;break}}if((b|0)==11)break;else if((b|0)==14){d=-1;break a}}else e=b+48|0;while(0);c[e>>2]=d;a[j>>0]=1}while(0);yb=k;return d|0}function mx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;d=j+4|0;i=j;g=ufb(c[b>>2]|0)|0;if(!(eCb(c[g+8>>2]|0)|0)){yb=j;return}c[d>>2]=g;h=a+84|0;b=Mba(h,d)|0;if((b|0)==(a+88|0)){yb=j;return}e=b+20|0;b=b+24|0;if((c[b>>2]|0)==(c[e>>2]|0)){yb=j;return}f=a+80|0;d=c[f>>2]|0;xE(a+16|0);jP(d,c[f>>2]|0);d=c[b>>2]|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;jP(c[b>>2]|0,c[f>>2]|0);b=b+4|0}c[i>>2]=g;vW(h,i);yb=j;return}function nx(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;j=yb;yb=yb+16|0;h=j+4|0;i=j;c[h>>2]=d;c[i>>2]=e;f=Rjb(b,d)|0;g=Rjb(b,e)|0;if(f){if(!g){i=1;yb=j;return i|0}if((Rjb(b,e)|0)&f){i=d>>>0>>0;yb=j;return i|0}}else if(!(f|g^1)){i=0;yb=j;return i|0}d=a+44|0;b=O8(d,h)|0;b=c[b>>2]|0;g=O8(d,i)|0;g=(b|0)==(c[g>>2]|0);b=O8(d,h)|0;b=c[b>>2]|0;if(!g){i=O8(d,i)|0;i=b>>>0>(c[i>>2]|0)>>>0;yb=j;return i|0}if(!b){i=(c[h>>2]|0)>>>0<(c[i>>2]|0)>>>0;yb=j;return i|0}else{a=a+56|0;h=O8(a,h)|0;h=c[h>>2]|0;i=O8(a,i)|0;i=h>>>0<(c[i>>2]|0)>>>0;yb=j;return i|0}return 0}function ox(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+32|0;g=h+28|0;i=h+24|0;b=h+20|0;d=h+16|0;e=h+12|0;f=h;Ftb(i,c[37130]|0);c[g>>2]=c[i>>2];if(tUa(a,g)|0){yb=h;return}i=WCb(c[a+28>>2]|0)|0;g=mla(120)|0;mT(g);Ftb(b,c[37130]|0);c[g+8>>2]=c[b>>2];Ftb(d,c[37126]|0);c[g>>2]=c[d>>2];Ftb(e,c[37130]|0);c[g+4>>2]=c[e>>2];c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,141348,Zzb(141348)|0);n=0;b=U(136,f|0,i|0)|0;i=n;n=0;if(i&1){i=sa()|0;P()|0;Chb(f);Ea(i|0)}Chb(f);c[g+40>>2]=c[b>>2];zha(g,b);sva(a,g);yb=h;return}function px(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;xIa(b,Xxb(c[(c[b+44>>2]|0)+4>>2]|0)|0,d);h=c[b+36>>2]|0;WCb(h)|0;dIa(b,(a[h+120>>0]&1)==0,d);h=d+4|0;UF(b,a[d+8>>0]|0,c[h>>2]|0,d);Aoa(b,c[(c[d+16>>2]|0)+4>>2]|0,1,d,129856);i=d+20|0;e=c[(c[i>>2]|0)+4>>2]|0;g=d+24|0;if((e|0)!=6){f=c[(c[g>>2]|0)+4>>2]|0;if((f|0)!=6){Oxa(b,e,f,d);e=c[(c[i>>2]|0)+4>>2]|0}}else e=6;Aoa(b,c[h>>2]|0,e,d,129922);Aoa(b,c[h>>2]|0,c[(c[g>>2]|0)+4>>2]|0,d,129962);SBa(b,c[(c[i>>2]|0)+4>>2]|0,d,129810);return}function qx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;d=i+4|0;h=i;g=a+64|0;e=c[g>>2]|0;OE(a);yO(e,c[g>>2]|0);g=Efb(c[b>>2]|0)|0;e=a+96|0;if(!(eCb(c[g+8>>2]|0)|0)){h=c[e>>2]|0;h=h+-4|0;c[e>>2]=h;yb=i;return}f=c[(c[e>>2]|0)+-4>>2]|0;c[d>>2]=g;b=e6(a+68|0,d)|0;d=c[b+4>>2]|0;b=c[b>>2]|0;while(1){if((b|0)==(d|0))break;yO(c[b>>2]|0,f);b=b+4|0}c[h>>2]=g;vW(a+68|0,h);h=c[e>>2]|0;h=h+-4|0;c[e>>2]=h;yb=i;return}function rx(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;j=yb;yb=yb+32|0;f=j+28|0;g=j+16|0;h=j+4|0;i=j;if(!b){yb=j;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,127686)|0;e=n;n=0;if(e&1){j=sa()|0;P()|0;Chb(h);Ea(j|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}c[i>>2]=c[d>>2];n=0;c[f>>2]=c[i>>2];fa(142,a|0,g|0,f|0,0);i=n;n=0;if(i&1){j=sa()|0;P()|0;Chb(g);Chb(h);Ea(j|0)}else{Chb(g);Chb(h);yb=j;return}}function sx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;d=j+4|0;i=j;g=ufb(c[b>>2]|0)|0;if(!(eCb(c[g+8>>2]|0)|0)){yb=j;return}c[d>>2]=g;h=a+84|0;b=Mba(h,d)|0;if((b|0)==(a+88|0)){yb=j;return}e=b+20|0;b=b+24|0;if((c[b>>2]|0)==(c[e>>2]|0)){yb=j;return}f=a+80|0;d=c[f>>2]|0;CE(a+16|0);oP(d,c[f>>2]|0);d=c[b>>2]|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;oP(c[b>>2]|0,c[f>>2]|0);b=b+4|0}c[i>>2]=g;vW(h,i);yb=j;return}function tx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;d=j+4|0;i=j;g=ufb(c[b>>2]|0)|0;if(!(eCb(c[g+8>>2]|0)|0)){yb=j;return}c[d>>2]=g;h=a+84|0;b=Mba(h,d)|0;if((b|0)==(a+88|0)){yb=j;return}e=b+20|0;b=b+24|0;if((c[b>>2]|0)==(c[e>>2]|0)){yb=j;return}f=a+80|0;d=c[f>>2]|0;DE(a+16|0);oP(d,c[f>>2]|0);d=c[b>>2]|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;oP(c[b>>2]|0,c[f>>2]|0);b=b+4|0}c[i>>2]=g;vW(h,i);yb=j;return}function ux(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;k=yb;yb=yb+32|0;h=k+16|0;i=k+8|0;f=k+4|0;g=k;l=Nwb(d)|0;j=b+52|0;e=(a[j>>0]|0)!=0;a:do if(l){if(!e){d=c[b+48>>2]|0;l=((Nwb(d)|0)^1)&1;a[j>>0]=l}}else{do if(e){e=b+48|0;l=WCb(c[e>>2]|0)|0;c[f>>2]=l;l=c[b+36>>2]|0;switch(Ob[c[(c[l>>2]|0)+12>>2]&15](l,c[b+40>>2]|0,f,f+4|0,g,h,h+8|0,i)|0){case 1:case 2:{d=-1;break a}case 3:{a[h>>0]=c[e>>2];c[i>>2]=h+1;break}default:{}}b=b+32|0;while(1){f=c[i>>2]|0;if(f>>>0<=h>>>0){b=11;break}l=f+-1|0;c[i>>2]=l;if((Fba(a[l>>0]|0,c[b>>2]|0)|0)==-1){b=14;break}}if((b|0)==11)break;else if((b|0)==14){d=-1;break a}}else e=b+48|0;while(0);c[e>>2]=d;a[j>>0]=1}while(0);yb=k;return d|0}function vx(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;m=yb;yb=yb+64|0;i=m+48|0;l=m+16|0;j=m+8|0;k=m;Cub(i);c[a+40>>2]=c[i>>2];yBa(a);i=jka(a,b)|0;e=(c[a+16>>2]|0)+(b<<2)|0;f=e+4|0;g=a+20|0;h=(c[g>>2]|0)-f|0;if(h|0)Pxa(e|0,f|0,h|0)|0;c[g>>2]=e+(h>>2<<2);A8(l,a,b,cCa(a,i)|0);f=c[d+4>>2]|0;e=j+4|0;a=c[d>>2]|0;while(1){if((a|0)==(f|0)){a=7;break}d=(c[a>>2]|0)+8|0;nrb(k,d);lca(j,k,b);n=0;ea(140,d|0,c[j>>2]|0,c[e>>2]|0);d=n;n=0;if(d&1){a=8;break}a=a+4|0}if((a|0)==7){Arb(l);yb=m;return}else if((a|0)==8){m=sa()|0;P()|0;Arb(l);Ea(m|0)}}function wx(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=yb;yb=yb+64|0;j=k+40|0;h=k+24|0;g=k+16|0;f=k;i=k+56|0;if(alb(135430,a[d>>0]|0)|0){e=qc(1156)|0;if(!e)e=0;else{LL(e|0,0,124)|0;if(!(alb(d,43)|0))c[e>>2]=(a[d>>0]|0)==114?8:4;if(alb(d,101)|0){c[f>>2]=b;c[f+4>>2]=2;c[f+8>>2]=1;Ja(221,f|0)|0}if((a[d>>0]|0)==97){c[g>>2]=b;c[g+4>>2]=3;d=Ja(221,g|0)|0;if(!(d&1024)){c[h>>2]=b;c[h+4>>2]=4;c[h+8>>2]=d|1024;Ja(221,h|0)|0}f=c[e>>2]|128;c[e>>2]=f}else f=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+132;c[e+48>>2]=1024;d=e+75|0;a[d>>0]=-1;if((f&8|0)==0?(c[j>>2]=b,c[j+4>>2]=21523,c[j+8>>2]=i,(La(54,j|0)|0)==0):0)a[d>>0]=10;c[e+32>>2]=11;c[e+36>>2]=14;c[e+40>>2]=12;c[e+12>>2]=151;if(!(c[37421]|0))c[e+76>>2]=-1;K6a(e)|0}}else{c[37419]=22;e=0}yb=k;return e|0}function xx(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=et(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}vK(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function yx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;c[b>>2]=d;c[b+4>>2]=d+152;c[b+8>>2]=e;a[b+12>>0]=0;d=b+16|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;c[b+40>>2]=-1;yib(b+44|0);yib(b+56|0);c[b+68>>2]=0;c[b+72>>2]=0;c[b+76>>2]=0;d=b+84|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;yib(b+108|0);c[b+120>>2]=0;c[b+124>>2]=-1;yib(b+128|0);d=b+180|0;e=b+140|0;f=e+40|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));g[d>>2]=1.0;c[b+184>>2]=0;c[b+188>>2]=0;c[b+192>>2]=0;c[b+200>>2]=11;yib(b+204|0);yib(b+216|0);f=b+228|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[b+244>>2]=1.0;c[b+248>>2]=0;return}function zx(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=et(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}gL(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function Ax(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=b+12|0;if(a[f>>0]&1)BM(IWa(150620,114483)|0);g=Eu(b)|0;do if((g&255)>>>0>=d>>>0){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;D8(e,116276,Zzb(116276)|0);n=0;da(4022,b|0,e|0);b=n;n=0;if(b&1){h=sa()|0;P()|0;Chb(e);Ea(h|0)}else{Chb(e);break}}while(0);if(!(a[f>>0]&1)){yb=h;return g|0}BM(IWa(SEa(IWa(Ym(IWa(150620,116295)|0,d)|0,116309)|0,g)|0,114633)|0);yb=h;return g|0}function Bx(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;o=yb;yb=yb+32|0;d=o+16|0;h=o+12|0;k=o+8|0;l=o+4|0;m=o;n=c[a+76>>2]|0;e=a+64|0;g=c[a+72>>2]|0;while(1){if((g|0)==(n|0))break;f=c[g>>2]|0;Pq(b,c[f+4>>2]|0,1,f,132895,0)|0;f=c[g>>2]|0;i=g+8|0;j6a(h,(c[i>>2]|0)-(c[g+4>>2]|0)>>2,0);j6a(k,WCb(c[e>>2]|0)|0,0);f=uL(f,c[h>>2]|0,c[k>>2]|0)|0;by(b,f,c[g>>2]|0,132924,0)|0;i=c[i>>2]|0;f=c[g+4>>2]|0;while(1){j=f;if((i|0)==(j|0))break;q=c[f>>2]|0;c[l>>2]=q;c[d>>2]=c[l>>2];p=(lEa(a,d)|0)!=0;c[m>>2]=q;c[d>>2]=c[m>>2];Ew(b,p,d,132960,0)|0;f=j+4|0}g=g+16|0}yb=o;return}function Cx(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;j=d-b|0;l=j>>3;f=a+8|0;m=c[a>>2]|0;k=m;if(l>>>0>(c[f>>2]|0)-m>>3>>>0){CSa(a);e=wxb()|0;if(l>>>0>e>>>0)Apa();f=(c[f>>2]|0)-(c[a>>2]|0)|0;if(f>>3>>>0>>1>>>0){e=f>>2;e=e>>>0>>0?l:e}gX(a,e);hsa(a,b,d);return}i=a+4|0;e=(c[i>>2]|0)-m|0;f=e>>3;if(l>>>0>f>>>0){h=1;g=b+(f<<3)|0;f=e>>3}else{h=0;g=d;f=l;e=j}if(e|0)Pxa(m|0,b|0,e|0)|0;if(h){hsa(a,g,d);return}else{c[i>>2]=k+(f<<3);return}}function Dx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;d=i+4|0;h=i;g=a+80|0;e=c[g>>2]|0;xE(a+16|0);jP(e,c[g>>2]|0);g=Efb(c[b>>2]|0)|0;e=a+112|0;if(!(eCb(c[g+8>>2]|0)|0)){h=c[e>>2]|0;h=h+-4|0;c[e>>2]=h;yb=i;return}f=c[(c[e>>2]|0)+-4>>2]|0;c[d>>2]=g;b=e6(a+84|0,d)|0;d=c[b+4>>2]|0;b=c[b>>2]|0;while(1){if((b|0)==(d|0))break;jP(c[b>>2]|0,f);b=b+4|0}c[h>>2]=g;vW(a+84|0,h);h=c[e>>2]|0;h=h+-4|0;c[e>>2]=h;yb=i;return}function Ex(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=c[b+40>>2]|0;d=c[b+36>>2]|0;while(1){if((d|0)==(e|0))break;f=c[d>>2]|0;if(!(Yrb(f)|0))Cwa(a,f);d=d+4|0}e=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(e|0))break;f=c[d>>2]|0;if(!(Yrb(f)|0))tba(a,f);d=d+4|0}nda(a,b+48|0);nda(a,b+84|0);return}function Fx(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;i=j;if(a[b+12>>0]&1){h=IWa(150620,113175)|0;BM(Ym(h,c[b+36>>2]|0)|0)}$z(b,134456);e=IF(b)|0;f=d+8|0;c[f>>2]=e;g=b+120|0;h=c[g>>2]|0;if(e>>>0<(Icb(h)|0)>>>0){i=h;h=e;h=jka(i,h)|0;i=d+4|0;c[i>>2]=h;yb=j;return}c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;D8(i,116718,Zzb(116718)|0);n=0;da(4022,b|0,i|0);h=n;n=0;if(h&1){j=sa()|0;P()|0;Chb(i);Ea(j|0)}Chb(i);i=c[g>>2]|0;h=c[f>>2]|0;h=jka(i,h)|0;i=d+4|0;c[i>>2]=h;yb=j;return}function Gx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+80|0;d=h+36|0;f=h;i=WCb(c[b+4>>2]|0)|0;e=WCb(c[b>>2]|0)|0;i=i-e|0;g=i+1|0;if(!i){i=e;yb=h;return i|0}if(!g){H1(d,a,32);i=ioa(d)|0;yb=h;return i|0}i=32-(M(g|0)|0)|0;H1(f,a,i+(((g&-1>>>(33-i|0)|0)==0)<<31>>31)|0);do a=ioa(f)|0;while(a>>>0>=g>>>0);i=a+(WCb(c[b>>2]|0)|0)|0;yb=h;return i|0}function Hx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;d=i+4|0;h=i;g=a+80|0;e=c[g>>2]|0;CE(a+16|0);oP(e,c[g>>2]|0);g=Efb(c[b>>2]|0)|0;e=a+112|0;if(!(eCb(c[g+8>>2]|0)|0)){h=c[e>>2]|0;h=h+-4|0;c[e>>2]=h;yb=i;return}f=c[(c[e>>2]|0)+-4>>2]|0;c[d>>2]=g;b=e6(a+84|0,d)|0;d=c[b+4>>2]|0;b=c[b>>2]|0;while(1){if((b|0)==(d|0))break;oP(c[b>>2]|0,f);b=b+4|0}c[h>>2]=g;vW(a+84|0,h);h=c[e>>2]|0;h=h+-4|0;c[e>>2]=h;yb=i;return}function Ix(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;i=j;g=c[a+8>>2]|0;d=c[a+4>>2]|0;if(((g-d|0)/20|0)>>>0>=b>>>0){Nca(a,b);yb=j;return}e=c[a>>2]|0;h=(d-e|0)/20|0;f=h+b|0;d=aub()|0;if(f>>>0>d>>>0)Apa();e=(g-e|0)/20|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}LQ(i,d,h,a+8|0);Xba(i,b);kM(a,i);bca(i);yb=j;return}function Jx(a,b){a=a|0;b=b|0;var d=0,e=0;WCb(a)|0;d=c[a>>2]|0;if(!(PBb(d)|0)?!(zAb(d)|0):0){if(!(VBb(d)|0)){b=-1;return b|0}d=rrb(a,0)|0;d=c[d>>2]|0;e=c[37201]|0;if(!(hXa(d,e)|0)?!(hXa(d,c[37221]|0)|0):0){if(hXa(d,c[37208]|0)|0){b=rqa(0,c[37266]|0)|0;return b|0}if(hXa(d,c[37210]|0)|0){if(!b){b=-1;return b|0}b=rqa(0,c[37266]|0)|0;return b|0}else{if(!(hXa(d,c[37200]|0)|0)){b=-1;return b|0}b=rqa(3,c[37267]|0)|0;return b|0}}e=((hXa(d,e)|0)^1)&1;b=rrb(a,1)|0;b=Dbb(WCb(c[b>>2]|0)|0)|0;b=rqa(e,c[b>>2]|0)|0;return b|0}b=rqa(0,c[37277]|0)|0;return b|0}function Kx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;d=i+4|0;h=i;g=a+80|0;e=c[g>>2]|0;DE(a+16|0);oP(e,c[g>>2]|0);g=Efb(c[b>>2]|0)|0;e=a+112|0;if(!(eCb(c[g+8>>2]|0)|0)){h=c[e>>2]|0;h=h+-4|0;c[e>>2]=h;yb=i;return}f=c[(c[e>>2]|0)+-4>>2]|0;c[d>>2]=g;b=e6(a+84|0,d)|0;d=c[b+4>>2]|0;b=c[b>>2]|0;while(1){if((b|0)==(d|0))break;oP(c[b>>2]|0,f);b=b+4|0}c[h>>2]=g;vW(a+84|0,h);h=c[e>>2]|0;h=h+-4|0;c[e>>2]=h;yb=i;return}function Lx(a){a=a|0;var b=0,d=0,e=0;switch(c[a>>2]|0){case 1:{b=c[c[a+4>>2]>>2]|0;if(Yxb(b)|0){a=z5a(Jcb(a,0)|0)|0;return a|0}if(Vxb(b)|0){if(!(z5a(Jcb(a,0)|0)|0)){a=0;return a|0}a=z5a(Jcb(a,1)|0)|0;return a|0}if(!(Txb(b)|0)){a=0;return a|0}if(!(z5a(Jcb(a,0)|0)|0)){a=0;return a|0}if(!(z5a(Jcb(a,1)|0)|0)){a=0;return a|0}a=z5a(Jcb(a,2)|0)|0;return a|0}case 2:{d=a+16|0;e=a+12|0;b=1;while(1){if(b>>>0>=(c[d>>2]|0)-(c[e>>2]|0)>>2>>>0){b=1;d=15;break}if(!(z5a(Jcb(a,b)|0)|0)){b=0;d=15;break}b=b+1|0}if((d|0)==15)return b|0;break}default:{a=0;return a|0}}return 0}function Mx(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;g=c[b+68>>2]|0;if(!g){d=oa(4)|0;TBb(d);za(d|0,39640,481)}h=Eb[c[(c[g>>2]|0)+24>>2]&511](g)|0;i=b+64|0;if((c[i>>2]|0?(h|0)>0|(d|0)==0&(e|0)==0:0)?(Eb[c[(c[b>>2]|0)+24>>2]&511](b)|0)==0:0){switch(f|0){case 0:{g=0;break}case 1:{g=1;break}case 2:{g=2;break}default:{d=a;c[d>>2]=0;c[d+4>>2]=0;d=a+8|0;c[d>>2]=-1;c[d+4>>2]=-1;return}}d=J(h,d)|0;if(!(usb(c[i>>2]|0,(h|0)>0?d:0,g)|0)){f=xCb(c[i>>2]|0)|0;e=b+72|0;b=c[e+4>>2]|0;d=a;c[d>>2]=c[e>>2];c[d+4>>2]=b;d=a+8|0;c[d>>2]=f;c[d+4>>2]=((f|0)<0)<<31>>31;return}else{d=a;c[d>>2]=0;c[d+4>>2]=0;d=a+8|0;c[d>>2]=-1;c[d+4>>2]=-1;return}}d=a;c[d>>2]=0;c[d+4>>2]=0;d=a+8|0;c[d>>2]=-1;c[d+4>>2]=-1;return}function Nx(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0;if((1073741806-d|0)>>>0>>0)ipa();l=b+8|0;if((a[l+3>>0]|0)<0)m=c[b>>2]|0;else m=b;if(d>>>0<536870887){e=e+d|0;k=d<<1;e=e>>>0>>0?k:e;e=e>>>0<2?2:e+4&-4;if(e>>>0>1073741823){e=oa(8)|0;n=0;da(67,e|0,138616);i=n;n=0;if(i&1){i=sa()|0;P()|0;va(e|0);Ea(i|0)}else{c[e>>2]=50788;za(e|0,39592,473)}}}else e=1073741807;k=mla(e<<2)|0;if(g|0)Rkb(k,m,g);if(i|0)Rkb(k+(g<<2)|0,j,i);f=f-h|0;j=f-g|0;if(j|0)Rkb(k+(g<<2)+(i<<2)|0,m+(g<<2)+(h<<2)|0,j);if((d|0)!=1)RCb(m);c[b>>2]=k;c[l>>2]=e|-2147483648;i=f+i|0;c[b+4>>2]=i;Ftb(k+(i<<2)|0,0);return}function Ox(a,b){a=a|0;b=b|0;var d=0;MCb(151676)|0;while(1){if((c[a>>2]|0)!=1)break;lb(151704,151676)|0}do if(!(c[a>>2]|0)){c[a>>2]=1;n=0;S(340,151676)|0;d=n;n=0;if((((!(d&1)?(n=0,ca(579,b|0),d=n,n=0,!(d&1)):0)?(n=0,S(341,151676)|0,d=n,n=0,!(d&1)):0)?(c[a>>2]=-1,n=0,S(340,151676)|0,d=n,n=0,!(d&1)):0)?(n=0,S(342,151704)|0,d=n,n=0,!(d&1)):0)break;d=ta(0)|0;P()|0;pa(d|0)|0;n=0;S(341,151676)|0;d=n;n=0;if((!(d&1)?(c[a>>2]=0,n=0,S(340,151676)|0,d=n,n=0,!(d&1)):0)?(n=0,S(342,151704)|0,d=n,n=0,!(d&1)):0){n=0;ba(8);n=0}a=sa()|0;P()|0;n=0;ba(5);d=n;n=0;if(d&1){d=ta(0)|0;P()|0;yub(d)}else Ea(a|0)}else MCb(151676)|0;while(0);return}function Px(b,d,e){b=b|0;d=d|0;e=e|0;switch(e|0){case 0:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=52;break}case 1:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=53;break}case 2:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=54;break}case 3:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=55;break}case 4:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=56;break}case 5:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=57;break}case 6:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=58;break}case 7:{e=Hhb(c[b+4>>2]|0)|0;c[e+8>>2]=59;break}default:{d=0;return d|0}}if(a[b+12>>0]&1)BM(IWa(150620,116396)|0);b=rl(b)|0;c[e+12>>2]=b;tu(e);c[d>>2]=e;d=1;return d|0}function Qx(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=d+12|0;i=b+104|0;a:do if((a[i>>0]&1)==0?(g=d+16|0,f=c[g>>2]|0,(WCb(f)|0)>>>0>1):0){e=0;while(1){if(e>>>0>=(f+-1|0)>>>0)break a;f=uXa(h,e)|0;e=e+1|0;if((c[(c[f>>2]|0)+4>>2]|0)==6)break;f=c[g>>2]|0}Cka(h,e)}while(0);if(eCb(c[d+8>>2]|0)|0){e=d+8|0;f=b+108|0;if(!(a[i>>0]&1))g=(f9(f,e)|0)!=0&1;else g=1;a[i>>0]=g;vla(f,e)}if((WCb(c[d+16>>2]|0)|0)==1?(i=uXa(h,0)|0,PBb(c[(c[i>>2]|0)+4>>2]|0)|0):0){Iya(b,DTa(d,b)|0)|0;return}hba(b+44|0,d);return}function Rx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=a>>>0>16?a:16;if(!(d+-1&d))a=d;else{a=16;while(1)if(a>>>0>>0)a=a<<1;else break}if((-64-a|0)>>>0<=b>>>0){c[37419]=12;h=0;return h|0}g=b>>>0<11?16:b+11&-8;d=qc(g+12+a|0)|0;if(!d){h=0;return h|0}f=d+-8|0;do if(a+-1&d){e=(d+a+-1&0-a)+-8|0;b=f;e=(e-b|0)>>>0>15?e:e+a|0;b=e-b|0;a=d+-4|0;i=c[a>>2]|0;d=(i&-8)-b|0;if(!(i&3)){c[e>>2]=(c[f>>2]|0)+b;c[e+4>>2]=d;a=e;b=e;break}else{i=e+4|0;c[i>>2]=d|c[i>>2]&1|2;d=e+d+4|0;c[d>>2]=c[d>>2]|1;c[a>>2]=b|c[a>>2]&1|2;c[i>>2]=c[i>>2]|1;rh(f,b);a=e;b=e;break}}else{a=f;b=f}while(0);a=a+4|0;d=c[a>>2]|0;if(d&3|0?(h=d&-8,h>>>0>(g+16|0)>>>0):0){i=h-g|0;f=b+g|0;c[a>>2]=g|d&1|2;c[f+4>>2]=i|3;h=b+h+4|0;c[h>>2]=c[h>>2]|1;rh(f,i)}i=b+8|0;return i|0}function Sx(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+32|0;d=h+28|0;e=h+24|0;f=h+12|0;g=h;b=WCb(c[b>>2]|0)|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;D8(g,b,Zzb(b)|0);n=0;U(69,g|0,83385)|0;b=n;n=0;if(b&1){h=sa()|0;P()|0;Chb(g);Ea(h|0)}c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}n=0;ea(101,e|0,((a[f+11>>0]|0)<0?c[f>>2]|0:f)|0,0);b=n;n=0;if(!(b&1)){Ftb(d,c[e>>2]|0);Chb(f);Chb(g);yb=h;return c[d>>2]|0}h=sa()|0;P()|0;Chb(f);Chb(g);Ea(h|0);return 0}function Tx(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(dub(b,c[d+8>>2]|0)|0)GN(d,e,f,g);else{p=d+52|0;i=a[p>>0]|0;j=d+53|0;k=a[j>>0]|0;o=c[b+12>>2]|0;l=b+16+(o<<3)|0;a[p>>0]=0;a[j>>0]=0;Fea(b+16|0,d,e,f,g,h);a:do if((o|0)>1){m=d+24|0;n=b+8|0;o=d+54|0;b=b+24|0;do{if(a[o>>0]|0)break a;if(!(a[p>>0]|0)){if(a[j>>0]|0?(c[n>>2]&1|0)==0:0)break a}else{if((c[m>>2]|0)==1)break a;if(!(c[n>>2]&2))break a}a[p>>0]=0;a[j>>0]=0;Fea(b,d,e,f,g,h);b=b+8|0}while(b>>>0>>0)}while(0);a[p>>0]=i;a[j>>0]=k}return}function Ux(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+32|0;d=g+16|0;e=g+12|0;f=g;c[e>>2]=b;if(!(c[a+212>>2]|0)){cja(c[a>>2]|0,a);Tia(c[a>>2]|0,a);b=c[e>>2]|0}if((b|0)==-1){Zsb(d,117214);f=c[d>>2]|0;yb=g;return f|0}do if(!(Jga(a+204|0,b)|0)){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,117219,Zzb(117219)|0);n=0;da(4022,a|0,f|0);b=n;n=0;if(b&1){g=sa()|0;P()|0;Chb(f);Ea(g|0)}else{Chb(f);break}}while(0);f=u7(a+204|0,e)|0;f=c[f>>2]|0;c[d>>2]=f;yb=g;return f|0}function Vx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;i=j;d=c[a>>2]|0;while(1){d=Aqb(d)|0;if(!d)break;if(c[d+8>>2]|0)break;g=d+12|0;f=Mqb(c[g>>2]|0)|0;d=d+16|0;e=Mqb(c[d>>2]|0)|0;if((f|0)!=0?(h=Peb(f+8|0)|0,h>>>0<1024):0)G1a(b,(WCb(c[b>>2]|0)|0)+h|0,0)|0;else{if(!e)break;d=Peb(e+8|0)|0;if(d>>>0>=1024)break;G1a(b,(WCb(c[b>>2]|0)|0)+d|0,0)|0;d=g}d=c[d>>2]|0;c[a>>2]=d}d=Mqb(c[a>>2]|0)|0;if(!d){yb=j;return}h=d+8|0;a=Peb(h)|0;Bqb(i,a+(WCb(c[b>>2]|0)|0)|0);c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];c[h+16>>2]=c[i+16>>2];G1a(b,0,0)|0;yb=j;return}function Wx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;h=i;do if((b|0)!=(d|0)?(f=Nk(b,d,e)|0,(f|0)!=(b|0)):0){g=$f(f,d,e)|0;if((g|0)!=(f|0)){f=e+4|0;d=c[f>>2]|0;if(((d-(c[e>>2]|0)|0)/24|0)>>>0>=2){d6(h,d+-24|0);d=c[f>>2]|0;b=0;while(1){if((b|0)==-1)break;e=b+-1|0;J2a(d+(e*24|0)|0);b=e}c[f>>2]=d+-24;e=a[h+11>>0]|0;f=e<<24>>24<0;n=0;V(124,d+-48|0,(f?c[h>>2]|0:h)|0,(f?c[h+4>>2]|0:e&255)|0)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}else{Chb(h);b=g;break}}}else b=f}while(0);yb=i;return b|0}function Xx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;f=h;if(c[37104]|0)IWa(IWa(IWa(150452,69820)|0,b)|0,65627)|0;d=a+140|0;g=a+144|0;e=((c[g>>2]|0)-(c[d>>2]|0)|0)/12|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,b,Zzb(b)|0);b=c[g>>2]|0;if(b>>>0>=(c[a+148>>2]|0)>>>0){n=0;da(224,d|0,f|0);g=n;n=0;if(g&1){h=sa()|0;P()|0;Chb(f);Ea(h|0)}else{Chb(f);yb=h;return e|0}}c[b>>2]=c[f>>2];c[b+4>>2]=c[f+4>>2];c[b+8>>2]=c[f+8>>2];b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}c[g>>2]=(c[g>>2]|0)+12;Chb(f);yb=h;return e|0}function Yx(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;k=yb;yb=yb+16|0;f=k+8|0;l=k+4|0;h=k;e=c[b>>2]|0;i=d+16|0;g=(c[i>>2]|0)!=0;j=d+8|0;c[l>>2]=c[j>>2];c[f>>2]=c[l>>2];Ew(e,g,f,133211,0)|0;g=c[b>>2]|0;e=c[c[i>>2]>>2]|0;if(_xb(e)|0)e=1;else e=Ovb(e)|0;c[h>>2]=c[j>>2];c[f>>2]=c[h>>2];Ew(g,e,f,133240,0)|0;l=c[i>>2]|0;if(Pq(c[b>>2]|0,c[d+12>>2]|0,c[l+4>>2]|0,l,133266,0)|0){yb=k;return}e=c[b>>2]|0;if(a[e+8>>0]&1){yb=k;return}l=IWa(fy(e,0)|0,133301)|0;IWa(mpa(l,c[d+8>>2]|0)|0,128472)|0;yb=k;return}function Zx(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,o=0;m=yb;yb=yb+16|0;l=m;k=c[a+60>>2]|0;e=c[a+56>>2]|0;a:while(1){if((e|0)==(k|0)){b=12;break}H0(l,c[e>>2]|0);d=c[e>>2]|0;f=c[d+28>>2]|0;d=c[d+24>>2]|0;while(1){if((d|0)==(f|0))break;g=c[d>>2]|0;n=0;b=S(244,c[g>>2]|0)|0;j=n;n=0;if(j&1){b=13;break a}h=c[l>>2]|0;i=b+8|0;j=c[h+(c[i>>2]<<2)>>2]|0;n=0;b=V(88,a|0,c[b+12>>2]|0,h|0)|0;o=n;n=0;if(o&1){b=13;break a}if((b|0)==(j|0)){n=0;ca(537,g|0);o=n;n=0;if(o&1){b=13;break a}}else c[h+(c[i>>2]<<2)>>2]=b;d=d+4|0}Vob(l);e=e+4|0}if((b|0)==12){yb=m;return}else if((b|0)==13){o=sa()|0;P()|0;Vob(l);Ea(o|0)}}function _x(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;g=j+16|0;h=j+12|0;i=j;c[g>>2]=b;f=L0((c[a>>2]|0)+64|0,g)|0;f=c[f>>2]|0;c[h>>2]=f;while(1){if(!f){b=7;break}d=c[a>>2]|0;e=oC(d+44|0,h)|0;if(!e)b=d;else{Y_(i,e+12|0);n=0;fa(130,a|0,f|0,b|0,c[i>>2]|0);e=n;n=0;if(e&1){b=8;break}Vob(i);b=c[a>>2]|0}c[g>>2]=f;e=L0(b+64|0,h)|0;e=c[e>>2]|0;c[h>>2]=e;b=f;f=e}if((b|0)==7){yb=j;return}else if((b|0)==8){j=sa()|0;P()|0;Vob(i);Ea(j|0)}}function $x(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){h=1;yb=i;return h|0}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(150,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);h=0;yb=i;return h|0}return 0}function ay(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;Qua(b,66865);f=rrb(d,1)|0;Qua(b,e7a(WCb(c[f>>2]|0)|0)|0);hfa(b,40);f=rrb(d,2)|0;f=c[f>>2]|0;e=0;while(1){if(e>>>0>=(K0a(WCb(f)|0)|0)>>>0)break;do if(e|0)if(!(a[b>>0]&1)){hfa(b,44);break}else{Qua(b,140151);break}while(0);g=rrb(f,e)|0;Qua(b,e7a(WCb(c[g>>2]|0)|0)|0);e=e+1|0}hfa(b,41);Alb(b);if((K0a(WCb(d)|0)|0)!=3?(g=rrb(d,3)|0,K0a(WCb(c[g>>2]|0)|0)|0):0){hfa(b,123);g=b+16|0;c[g>>2]=(c[g>>2]|0)+1;BIa(b);f=rrb(d,3)|0;U_(b,c[f>>2]|0);c[g>>2]=(c[g>>2]|0)+-1;BIa(b);hfa(b,125);BIa(b);return}Qua(b,66735);return}function by(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){h=1;yb=i;return h|0}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(146,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);h=0;yb=i;return h|0}return 0}function cy(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;i=yb;yb=yb+16|0;g=i;h=g;c[h>>2]=e;c[h+4>>2]=f;h=b+12|0;if(!(a[h>>0]&1))e=-1;else{j=(c[b+4>>2]|0)-(c[b>>2]|0)|0;BM(IWa(Ym(IWa(Sm(IWa(150620,77257)|0,e,f)|0,112332)|0,j)|0,139927)|0);e=j}wR(g,b);if(!(a[h>>0]&1)){yb=i;return}f=b+4|0;while(1){if(e>>>0>=((c[f>>2]|0)-(c[b>>2]|0)|0)>>>0)break;h=IWa(150620,113424)|0;j=NQa(b,e)|0;Ym(IWa(Zm(h,d[j>>0]|0)|0,112332)|0,e)|0;IWa(150620,128472)|0;e=e+1|0}yb=i;return}function dy(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){h=1;yb=i;return h|0}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(154,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);h=0;yb=i;return h|0}return 0}function ey(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;l=yb;yb=yb+16|0;i=l;d=b+8|0;e=fn(a+48|0,d)|0;e=c[e>>2]|0;c[d>>2]=e;d=c[b+12>>2]|0;if(!(qqa(a,d)|0)){yb=l;return}if(eCb(c[b+4>>2]|0)|0){Vs(a,b);yb=l;return}pT(i,a,d);f=a+44|0;g=c[f>>2]|0;d=e+1|0;n=0;e=S(280,i|0)|0;m=n;n=0;if(((!(m&1)?(n=0,h=V(71,c[g>>2]|0,e|0,1)|0,m=n,n=0,!(m&1)):0)?(n=0,j=V(70,c[g>>2]|0,d|0,h|0)|0,m=n,n=0,!(m&1)):0)?(n=0,k=V(55,c[f>>2]|0,b|0,j|0)|0,m=n,n=0,!(m&1)):0){Pwb(c[a+16>>2]|0,k);lNa(i);yb=l;return}m=sa()|0;P()|0;lNa(i);Ea(m|0)}function fy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=yb;yb=yb+16|0;d=e+4|0;g=e;c[d>>2]=b;f=a+12|0;Rfb(f);b=oC(a+40|0,d)|0;if(b|0){g=b+12|0;g=c[g>>2]|0;KZa(f);yb=e;return g|0}n=0;ca(571,g|0);b=n;n=0;if(b&1){g=sa()|0;P()|0;KZa(f);Ea(g|0)}n=0;b=U(210,a+40|0,d|0)|0;d=n;n=0;if(d&1){b=sa()|0;P()|0;a=c[g>>2]|0;c[g>>2]=0;if(!a){g=b;KZa(f);Ea(g|0)}Rb[c[(c[a>>2]|0)+4>>2]&1023](a);g=b;KZa(f);Ea(g|0)}else{d=c[g>>2]|0;c[g>>2]=0;a=c[b>>2]|0;c[b>>2]=d;if(a|0)Rb[c[(c[a>>2]|0)+4>>2]&1023](a);c[g>>2]=0;g=b;g=c[g>>2]|0;KZa(f);yb=e;return g|0}return 0}function gy(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,o=0;m=yb;yb=yb+48|0;g=m+32|0;h=m+24|0;i=m+16|0;f=m+8|0;j=m;yib(a);d=b+8|0;nrb(i,d);Hib(f,d);d=i+4|0;e=c[f>>2]|0;f=c[f+4>>2]|0;while(1){if(!(dhb(c[i>>2]|0,c[d>>2]|0,e,f)|0))break;n=0;k=S(271,i|0)|0;o=n;n=0;if(o&1){l=8;break}c[j>>2]=c[k>>2];n=0;fa(98,h|0,a|0,j|0,j|0);o=n;n=0;if(o&1){l=8;break}hob(i)}if((l|0)==8){o=sa()|0;P()|0;Khb(a);Ea(o|0)}o=b+24|0;n=0;fa(98,g|0,a|0,o|0,o|0);o=n;n=0;if(!(o&1)){yb=m;return}o=sa()|0;P()|0;Khb(a);Ea(o|0)}function hy(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){h=1;yb=i;return h|0}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(143,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);h=0;yb=i;return h|0}return 0}function iy(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){h=1;yb=i;return h|0}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(149,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);h=0;yb=i;return h|0}return 0}function jy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;d=f+4|0;e=f;SEa(c[a>>2]|0,40)|0;Obb(c[a>>2]|0,98511)|0;IWa(DFa(c[a>>2]|0,c[b>>2]|0)|0,139924)|0;switch(c[b+8>>2]|0){case 0:{IWa(c[a>>2]|0,134280)|0;break}case 1:{IWa(c[a>>2]|0,134227)|0;break}case 2:{IWa(c[a>>2]|0,134260)|0;break}case 3:{IWa(c[a>>2]|0,98519)|0;break}case -1:{ma(141129,97990,1089,98526);break}default:{}}SEa(c[a>>2]|0,32)|0;c[e>>2]=c[b+4>>2];b=c[a>>2]|0;c[d>>2]=c[e>>2];IWa(Ica(d,b)|0,98538)|0;yb=f;return}function ky(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=yb;yb=yb+32|0;g=e+16|0;h=e+12|0;f=e;d=mgb(c[a+4>>2]|0)|0;i=rA(a,Vr(b,1)|0)|0;c[d+8>>2]=i;a=c[a>>2]|0;c[h>>2]=i;c[g>>2]=c[h>>2];a=EEa(a,g)|0;if(a|0){c[d+4>>2]=c[a+12>>2];yb=e;return d|0}e=oa(20)|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;i=Zzb(125539)|0;n=0;ea(95,f|0,125539,i|0);i=n;n=0;if(!(i&1)){n=0;fa(134,e|0,f|0,c[b+28>>2]|0,c[b+32>>2]|0);i=n;n=0;if(i&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}a=sa()|0;P()|0;Chb(f);if(!d){i=a;Ea(i|0)}}else{a=sa()|0;P()|0}va(e|0);i=a;Ea(i|0);return 0}function ly(a,b){a=a|0;b=b|0;do switch(b|0){case 0:{IWa(a,124701)|0;return}case 1:{IWa(a,124711)|0;return}case 2:{IWa(a,124723)|0;return}case 3:{IWa(a,121276)|0;return}case 4:{IWa(a,121286)|0;return}case 5:{IWa(a,121298)|0;return}case 6:{IWa(a,122718)|0;return}case 7:{IWa(a,122728)|0;return}case 8:{IWa(a,122740)|0;return}case 9:{IWa(a,124328)|0;return}case 10:{IWa(a,124338)|0;return}case 11:{IWa(a,124350)|0;return}default:return}while(0)}function my(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if((b|0)!=(c|0))switch(a[b>>0]|0){case 88:{f=b+1|0;e=ac(f,c,d)|0;if((e|0)==(f|0)|(e|0)==(c|0))break a;b=(a[e>>0]|0)==69?e+1|0:b;break a}case 74:{e=b+1|0;if((e|0)==(c|0))break a;while(1){if((a[e>>0]|0)==69)break;f=my(e,c,d)|0;if((f|0)==(e|0))break a;else e=f}b=e+1|0;break a}case 76:{f=b+1|0;if((f|0)!=(c|0)?(a[f>>0]|0)==90:0){f=b+2|0;e=Nc(f,c,d)|0;if((e|0)==(f|0)|(e|0)==(c|0))break a;b=(a[e>>0]|0)==69?e+1|0:b;break a}b=Mc(b,c,d)|0;break a}default:{b=cc(b,c,d)|0;break a}}while(0);return b|0}function ny(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+32|0;f=h+12|0;g=h;e=c[a+44>>2]|0;if(((c[a+40>>2]|0)!=(e|0)?(d=Rqb(c[e+-4>>2]|0)|0,d|0):0)?(e=cWa(d+12|0)|0,(b|0)==(c[e>>2]|0)):0){E0a(f,b,d);b=a+88|0;d=c[b>>2]|0;if(d>>>0<(c[a+92>>2]|0)>>>0){c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[b>>2]=(c[b>>2]|0)+12;yb=h;return}else{$F(a+84|0,f);yb=h;return}}odb(g,b,WCb(c[a+16>>2]|0)|0);b=a+88|0;d=c[b>>2]|0;if(d>>>0<(c[a+92>>2]|0)>>>0){c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[b>>2]=(c[b>>2]|0)+12;yb=h;return}else{$F(a+84|0,g);yb=h;return}}function oy(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;p=yb;yb=yb+64|0;i=p+48|0;j=p+40|0;k=p+32|0;l=p+24|0;m=p+16|0;n=p+8|0;o=p;g=a+4|0;q=c[g>>2]|0;h=b+4|0;e=d+4|0;c[g>>2]=q+(((c[d>>2]|0)-(c[b>>2]|0)<<3)+(c[e>>2]|0)-(c[h>>2]|0));g=c[b>>2]|0;h=c[h>>2]|0;d=c[d>>2]|0;e=c[e>>2]|0;f=q&31;b=(c[a>>2]|0)+(q>>>5<<2)|0;if((h|0)==(f|0)){c[i>>2]=g;c[i+4>>2]=h;c[j>>2]=d;c[j+4>>2]=e;c[k>>2]=b;c[k+4>>2]=h;nv(o,i,j,k);yb=p;return}else{c[l>>2]=g;c[l+4>>2]=h;c[m>>2]=d;c[m+4>>2]=e;c[n>>2]=b;c[n+4>>2]=f;en(o,l,m,n);yb=p;return}}function py(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,h=0;g=+SQa(e);f=leb(g)|0;h=(P()|0)&2147483647;if(h>>>0>2146435072|(h|0)==2146435072&f>>>0>0)Sb[c[c[b>>2]>>2]&8191](b,97208);f=(c[e+16>>2]|0)==3;if((c[d+4>>2]|0)==1){if(f){if(!(Zhb(Vcb(e)|0)|0))Sb[c[c[b>>2]>>2]&8191](b,97227)}else{h=rVa(e)|0;if(!(DUa(h,P()|0)|0))Sb[c[c[b>>2]>>2]&8191](b,97227)}Bqb(a,~~g>>>0);return}else{if(f){if(!(Xhb(Vcb(e)|0)|0))Sb[c[c[b>>2]>>2]&8191](b,97252)}else{h=rVa(e)|0;if(!(SWa(h,P()|0)|0))Sb[c[c[b>>2]>>2]&8191](b,97252)}Heb(a,~~g>>>0,+w(g)>=1.0?(g>0.0?~~+K(+v(g/4294967296.0),4294967295.0)>>>0:~~+I((g-+(~~g>>>0))/4294967296.0)>>>0):0);return}}function qy(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=yb;yb=yb+64|0;h=k;if(!a){IWa(b,98740)|0;yb=k;return b|0}$T(h,b);Q8a(h,d);if(!e){n=0;d=Q(78)|0;e=n;n=0;if(!(e&1))if(d)j=6;else j=10}else j=6;if(((((j|0)==6?(uvb(h),n=0,i=U(59,b|0,98321)|0,e=n,n=0,!(e&1)):0)?(n=0,f=S(223,c[a+4>>2]|0)|0,e=n,n=0,!(e&1)):0)?(n=0,g=U(59,i|0,f|0)|0,i=n,n=0,!(i&1)):0)?(n=0,U(59,g|0,126838)|0,i=n,n=0,!(i&1)):0)j=10;if((j|0)==10?(n=0,da(2322,h|0,a|0),j=n,n=0,!(j&1)):0){Bkb(h);yb=k;return b|0}k=sa()|0;P()|0;Bkb(h);Ea(k|0);return 0}function ry(b,d){b=b|0;d=d|0;var e=0;if(a[b+33>>0]&1)BM(IWa(150620,112911)|0);e=d+12|0;T_a(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;e=d+16|0;T_a(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;e=d+20|0;T_a(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;e=b+28|0;tI(c[e>>2]|0,-2)|0;switch(c[d+24>>2]|0){case 1:{tI(c[e>>2]|0,1)|0;G5(b,4,4,0);return}case 2:{tI(c[e>>2]|0,2)|0;G5(b,8,8,0);return}default:ma(141129,112765,865,112931)}}function sy(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=wF(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}qR(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function ty(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,o=0;m=yb;yb=yb+192|0;l=m+32|0;i=m+184|0;j=m;k=m+180|0;a[i>>0]=a[136632]|0;a[i+1>>0]=a[136633]|0;a[i+2>>0]=a[136634]|0;a[i+3>>0]=a[136635]|0;a[i+4>>0]=a[136636]|0;a[i+5>>0]=a[136637]|0;b=t8a()|0;c[l>>2]=g;i=Hva(j,20,b,i,l)|0;b=j+i|0;g=XZ(j,b,c[e+4>>2]|0)|0;anb(k,e);n=0;h=U(66,c[k>>2]|0,151356)|0;o=n;n=0;if(o&1){o=sa()|0;P()|0;XWa(k);Ea(o|0)}else{XWa(k);Ib[c[(c[h>>2]|0)+48>>2]&63](h,j,b,l)|0;o=l+(i<<2)|0;o=tv(c[d>>2]|0,l,(g|0)==(b|0)?o:l+(g-j<<2)|0,o,e,f)|0;yb=m;return o|0}return 0}function uy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+48|0;f=i+36|0;g=i;c[f>>2]=b;Z1a(g);n=0;da(699,g|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;J7a(g);Ea(i|0)}yib(a);e=g+28|0;f=a+4|0;b=c[g+24>>2]|0;while(1){if((e|0)==(b|0)){h=15;break}d=b+16|0;n=0;W(18,a|0,f|0,d|0,d|0)|0;d=n;n=0;if(d&1)break;d=b;b=c[d+4>>2]|0;a:do if(!b)while(1){b=c[d+8>>2]|0;if((d|0)==(c[b>>2]|0))break a;d=b}else while(1){d=c[b>>2]|0;if(!d)break;b=d}while(0)}if((h|0)==15){J7a(g);yb=i;return}i=sa()|0;P()|0;f4a(a);J7a(g);Ea(i|0)}function vy(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;l=yb;yb=yb+32|0;g=l+24|0;i=l+20|0;d=l+16|0;e=l+12|0;f=l+8|0;j=l+4|0;k=l;h=cib(c[a+4>>2]|0)|0;c[i>>2]=1;Cub(d);if((xmb(b)|0)>>>0>1?Gcb(Vr(b,1)|0)|0:0){c[i>>2]=2;Ftb(e,kH(Vr(b,1)|0)|0);f=c[e>>2]|0;c[d>>2]=f;d=f}else{Zsb(f,124996);f=c[f>>2]|0;c[d>>2]=f;d=f}f=a+112|0;c[j>>2]=d;c[g>>2]=c[j>>2];e=h+8|0;d=Pz(f,g)|0;c[e>>2]=d;d=nM(b,i)|0;j=h+4|0;c[j>>2]=d;i=XM(a,b,c[i>>2]|0,d)|0;c[h+12>>2]=i;c[k>>2]=c[e>>2];c[g>>2]=c[k>>2];T5(f,g);iZa(h,c[j>>2]|0);yb=l;return h|0}function wy(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,h=0;g=+SQa(e);f=leb(g)|0;h=(P()|0)&2147483647;if(h>>>0>2146435072|(h|0)==2146435072&f>>>0>0)Sb[c[c[b>>2]>>2]&8191](b,97277);f=(c[e+16>>2]|0)==3;if((c[d+4>>2]|0)==1){if(f){if(!(_hb(Vcb(e)|0)|0))Sb[c[c[b>>2]>>2]&8191](b,97296)}else{h=rVa(e)|0;if(!(EUa(h,P()|0)|0))Sb[c[c[b>>2]>>2]&8191](b,97296)}Bqb(a,~~g);return}else{if(f){if(!(Yhb(Vcb(e)|0)|0))Sb[c[c[b>>2]>>2]&8191](b,97321)}else{h=rVa(e)|0;if(!(TWa(h,P()|0)|0))Sb[c[c[b>>2]>>2]&8191](b,97321)}Heb(a,~~g>>>0,+w(g)>=1.0?(g>0.0?~~+K(+v(g/4294967296.0),4294967295.0)>>>0:~~+I((g-+(~~g>>>0))/4294967296.0)>>>0):0);return}}function xy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+48|0;f=i+36|0;g=i;c[f>>2]=b;Z1a(g);n=0;da(698,g|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;J7a(g);Ea(i|0)}yib(a);e=g+28|0;f=a+4|0;b=c[g+24>>2]|0;while(1){if((e|0)==(b|0)){h=15;break}d=b+16|0;n=0;W(18,a|0,f|0,d|0,d|0)|0;d=n;n=0;if(d&1)break;d=b;b=c[d+4>>2]|0;a:do if(!b)while(1){b=c[d+8>>2]|0;if((d|0)==(c[b>>2]|0))break a;d=b}else while(1){d=c[b>>2]|0;if(!d)break;b=d}while(0)}if((h|0)==15){J7a(g);yb=i;return}i=sa()|0;P()|0;f4a(a);J7a(g);Ea(i|0)}function yy(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;k=yb;yb=yb+16|0;j=k;i=c[a+4>>2]|0;gG(j,c[a>>2]|0,b,d);f=c[j+4>>2]|0;b=d+4|0;h=0;a=c[j>>2]|0;while(1){if((a|0)==(f|0))break;n=0;e=S(274,c[a>>2]|0)|0;l=n;n=0;if(l&1){g=7;break}h=h+(J(e,(((c[b>>2]|0)-(c[d>>2]|0)|0)/12|0)+-1|0)|0)|0;a=a+4|0}if((g|0)==7){l=sa()|0;P()|0;Vob(j);Ea(l|0)}e=c[b>>2]|0;b=c[d>>2]|0;a=c[i+32>>2]|0;WCb(a)|0;n=0;a=U(111,j|0,c[a+44>>2]|0)|0;l=n;n=0;if(!(l&1)){Vob(j);yb=k;return a&h>>>0>(((e-b|0)/12|0)+3|0)>>>0|0}l=sa()|0;P()|0;Vob(j);Ea(l|0);return 0}function zy(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;if(a[b+33>>0]&1)BM(IWa(150620,113275)|0);g=CU(c[b+36>>2]|0,6,d)|0;c[f>>2]=g;h=b+4|0;e=c[h>>2]|0;if(e>>>0<(c[b+8>>2]|0)>>>0){c[e>>2]=g;c[h>>2]=(c[h>>2]|0)+4}else _M(b,f);e=d+8|0;f=b+60|0;g=c[f>>2]|0;if((g|0)==(c[b+64>>2]|0))_M(b+56|0,e);else{c[g>>2]=c[e>>2];c[f>>2]=(c[f>>2]|0)+4}Fv(b,c[d+12>>2]|0);ZC(b,d);yb=i;return}function Ay(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;m=yb;yb=yb+48|0;g=m+40|0;h=m+32|0;i=m+24|0;f=m+16|0;j=m+8|0;k=m+4|0;l=m;d=b+8|0;nrb(i,d);Hib(f,d);d=i+4|0;e=c[f>>2]|0;f=c[f+4>>2]|0;a=a+44|0;while(1){if(!(dhb(c[i>>2]|0,c[d>>2]|0,e,f)|0))break;n=Qab(i)|0;c[j>>2]=c[n>>2];n=n4(a,j)|0;c[k>>2]=b;FH(h,n,b,k);hob(i)}n=n4(a,b+24|0)|0;c[l>>2]=b;FH(g,n,b,l);yb=m;return}function By(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;k=yb;yb=yb+16|0;i=k+8|0;d=k;if((uz(a,b)|0)!=(b|0)){yb=k;return}j=b+28|0;if(!(PBb(c[(c[j>>2]|0)+4>>2]|0)|0)){yb=k;return}h=c[a+36>>2]|0;WCb(h)|0;h=Eeb(h+152|0)|0;f=b+8|0;nrb(i,f);Hib(d,f);f=i+4|0;g=c[d>>2]|0;d=c[d+4>>2]|0;e=h+12|0;while(1){if(!(dhb(c[i>>2]|0,c[f>>2]|0,g,d)|0))break;l=Qab(i)|0;Wla(e,Jma(a,c[l>>2]|0)|0);hob(i)}Wla(e,c[j>>2]|0);uZa(h,c[b+4>>2]|0);Iya(a,h)|0;yb=k;return}function Cy(a,b){a=a|0;b=b|0;switch(c[b+8>>2]|0){case 0:{a=a+4|0;IWa(c[a>>2]|0,124523)|0;break}case 1:{a=a+4|0;IWa(c[a>>2]|0,124544)|0;break}case 2:{a=a+4|0;IWa(c[a>>2]|0,121098)|0;break}case 3:{a=a+4|0;IWa(c[a>>2]|0,121119)|0;break}case 4:{a=a+4|0;IWa(c[a>>2]|0,122563)|0;break}case 5:{a=a+4|0;IWa(c[a>>2]|0,124280)|0;break}case 6:{a=a+4|0;IWa(c[a>>2]|0,120294)|0;break}case 7:{a=a+4|0;IWa(c[a>>2]|0,120839)|0;break}default:a=a+4|0}a=IWa(c[a>>2]|0,139961)|0;Zm(a,d[b+16>>0]|0)|0;return}function Dy(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(!b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,127686)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(158,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Ey(d,e){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;q=yb;yb=yb+64|0;n=q;p=c[d>>2]|0;o=d+(c[p+-8>>2]|0)|0;p=c[p+-4>>2]|0;c[n>>2]=e;c[n+4>>2]=d;c[n+8>>2]=39488;g=n+12|0;h=n+16|0;i=n+20|0;j=n+24|0;k=n+28|0;l=n+32|0;m=n+40|0;d=dub(p,e)|0;e=g;f=e+40|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));b[g+40>>1]=0;a[g+42>>0]=0;a:do if(d){c[n+48>>2]=1;Wb[c[(c[p>>2]|0)+20>>2]&15](p,n,o,o,1,0);d=(c[j>>2]|0)==1?o:0}else{Vb[c[(c[p>>2]|0)+24>>2]&15](p,n,o,1,0);switch(c[n+36>>2]|0){case 0:{d=(c[m>>2]|0)==1&(c[k>>2]|0)==1&(c[l>>2]|0)==1?c[i>>2]|0:0;break a}case 1:break;default:{d=0;break a}}if((c[j>>2]|0)!=1?!((c[m>>2]|0)==0&(c[k>>2]|0)==1&(c[l>>2]|0)==1):0){d=0;break}d=c[h>>2]|0}while(0);yb=q;return d|0}function Fy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=yb;yb=yb+32|0;d=h;e=c[a>>2]|0;f=(c[a+4>>2]|0)-e>>4;g=f+1|0;if(g>>>0>268435455)Apa();else{j=(c[a+8>>2]|0)-e|0;i=j>>3;O5(d,j>>4>>>0<134217727?(i>>>0>>0?g:i):268435455,f,a+12|0);g=d+8|0;f=c[g>>2]|0;c[f>>2]=0;i=f+4|0;c[i>>2]=0;j=f+8|0;c[j>>2]=0;c[f+12>>2]=c[b+12>>2];c[f>>2]=c[b>>2];e=b+4|0;c[i>>2]=c[e>>2];i=b+8|0;c[j>>2]=c[i>>2];c[i>>2]=0;c[e>>2]=0;c[b>>2]=0;c[g>>2]=f+16;RD(a,d);k0(d);yb=h;return}}function Gy(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;l=yb;yb=yb+64|0;i=l+40|0;g=l;j=l+36|0;k=l+24|0;h=T3a(c[e>>2]|0,f,1)|0;Bqb(g,(WCb(d)|0)+-1|0);f=i;d=g;g=f+24|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(g|0));d=D7(e,i)|0;d=hIa(c[e>>2]|0,7,h,d)|0;c[j>>2]=c[b+24>>2];c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;f=c[e>>2]|0;n=0;c[i>>2]=c[j>>2];f=W(14,f|0,i|0,k|0,0)|0;j=n;n=0;if(j&1){l=sa()|0;P()|0;Vob(k);Ea(l|0)}n=0;f=W(7,c[e>>2]|0,d|0,f|0,0)|0;e=n;n=0;if(e&1){l=sa()|0;P()|0;Vob(k);Ea(l|0)}else{Vob(k);yb=l;return f|0}return 0}function Hy(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(164,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Iy(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(158,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Jy(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,o=0;m=yb;yb=yb+96|0;l=m+32|0;i=m+76|0;j=m;k=m+72|0;a[i>>0]=a[136632]|0;a[i+1>>0]=a[136633]|0;a[i+2>>0]=a[136634]|0;a[i+3>>0]=a[136635]|0;a[i+4>>0]=a[136636]|0;a[i+5>>0]=a[136637]|0;b=t8a()|0;c[l>>2]=g;i=Hva(j,20,b,i,l)|0;b=j+i|0;g=XZ(j,b,c[e+4>>2]|0)|0;anb(k,e);n=0;h=U(66,c[k>>2]|0,151324)|0;o=n;n=0;if(o&1){o=sa()|0;P()|0;XWa(k);Ea(o|0)}else{XWa(k);Ib[c[(c[h>>2]|0)+32>>2]&63](h,j,b,l)|0;o=l+i|0;o=Gw(c[d>>2]|0,l,(g|0)==(b|0)?o:l+(g-j)|0,o,e,f)|0;yb=m;return o|0}return 0}function Ky(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(!b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,127686)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(160,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Ly(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(!b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,127686)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(159,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function My(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(163,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Ny(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(162,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Oy(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(161,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Py(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=yb;yb=yb+32|0;i=l+24|0;j=l+20|0;k=l;f=c[a>>2]|0;h=(c[a+4>>2]|0)-f>>3;g=h+1|0;e=wxb()|0;if(g>>>0>e>>>0)Apa();f=(c[a+8>>2]|0)-f|0;if(f>>3>>>0>>1>>>0){e=f>>2;e=e>>>0>>0?g:e}FR(k,e,h,a+8|0);e=k+8|0;f=c[e>>2]|0;n=0;da(230,j|0,b|0);b=n;n=0;if(b&1){l=sa()|0;P()|0;vta(k);Ea(l|0)}else{d=c[d>>2]|0;c[i>>2]=c[j>>2];fib(f,i,d);c[e>>2]=f+8;lU(a,k);vta(k);yb=l;return}}function Qy(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(!b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,127686)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(157,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Ry(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(166,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Sy(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(169,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Ty(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(168,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Uy(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(160,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Vy(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(159,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Wy(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;f=h;if(a[b+12>>0]&1)BM(IWa(150620,113360)|0);e=Nv(b)|0;g=d+4|0;c[g>>2]=e;e=rl(b)|0;c[d+8>>2]=e;e=Lp(b,c[g>>2]|0)|0;c[d+12>>2]=e;e=b+200|0;if((c[e>>2]|0)==5){i=Lp(b,c[g>>2]|0)|0;c[d+16>>2]=i}kma(d,c[g>>2]|0);if((c[e>>2]|0)==11){yb=h;return}c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,117191,Zzb(117191)|0);n=0;da(4022,b|0,f|0);i=n;n=0;if(i&1){i=sa()|0;P()|0;Chb(f);Ea(i|0)}Chb(f);yb=h;return}function Xy(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(165,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Yy(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(153,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function Zy(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(157,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function _y(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(152,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function $y(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(151,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function az(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(167,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function bz(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(!b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,127686)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(156,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function cz(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(!b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,127686)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(143,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function dz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+16|0;e=g;if((d|0)!=10){f=0;yb=g;return f|0}d=Jfb(c[a+4>>2]|0)|0;h=rl(a)|0;c[d+16>>2]=h;h=rl(a)|0;c[d+12>>2]=h;h=rl(a)|0;c[d+8>>2]=h;if(!((Eu(a)|0)<<24>>24==0?!((Eu(a)|0)<<24>>24):0))f=4;do if((f|0)==4){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;D8(e,116364,Zzb(116364)|0);n=0;da(4022,a|0,e|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;Chb(e);Ea(h|0)}else{Chb(e);break}}while(0);aka(d);c[b>>2]=d;h=1;yb=g;return h|0}function ez(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(!b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,127686)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(144,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function fz(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i+12|0;h=i;if(!b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,127686)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(155,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function gz(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(148,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function hz(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(172,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function iz(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(170,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function jz(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(171,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function kz(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(156,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function lz(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(147,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function mz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=Jx(a,1)|0;f=Jx(b,0)|0;if((f|0)>(e|0)){g=1;return g|0}if((f|0)<(e|0)){g=0;return g|0}WCb(a)|0;do if(VBb(c[a>>2]|0)|0?(h=rrb(a,0)|0,hXa(c[h>>2]|0,c[37221]|0)|0):0){h=rrb(b,0)|0;if(!(hXa(c[h>>2]|0,c[37221]|0)|0))ma(66752,74885,1033,66777);h=rrb(a,1)|0;if(!(hXa(c[h>>2]|0,c[37232]|0)|0)?(h=rrb(a,1)|0,!(hXa(c[h>>2]|0,c[37233]|0)|0)):0){g=10;break}b=rrb(b,1)|0;h=rrb(a,1)|0;if(Blb(c[b>>2]|0,c[h>>2]|0)|0|(d|0)==0){h=1;return h|0}}else g=10;while(0);if((g|0)==10?(d|0)==0:0){h=1;return h|0}if((f|0)<0){h=0;return h|0}if(qnb(e)|0){h=(d|0)<0;return h|0}else{h=(d|0)>0;return h|0}return 0}function nz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;jh(a,b,d);if(lsb(a)|0)return;e=d+4|0;f=c[e>>2]|0;g=vub(f)|0;b=a+16|0;a=c[b>>2]|0;if(g){if((a|0)==(f|0))return}else if((vub(a)|0)^1|(a|0)==(f|0))return;g=IWa(150620,96798)|0;g=IWa(IWa(g,ala(c[e>>2]|0)|0)|0,96808)|0;SEa(Wm(IWa(IWa(g,ala(c[b>>2]|0)|0)|0,96818)|0,d)|0,10)|0;if((c[b>>2]|0)==(c[e>>2]|0))return;else ma(96825,96854,129,112649)}function oz(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(!b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,127686)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(145,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function pz(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(155,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function qz(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(173,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function rz(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(145,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function sz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;f=h;if((c[b+4>>2]|0)!=6){yb=h;return}g=a+36|0;e=a+48|0;a:while(1){c[f>>2]=b;b=O8(e,f)|0;b=c[b>>2]|0;if(!b){b=14;break}d=b+4|0;if((c[d>>2]|0)==6){b=14;break}a=Rqb(b)|0;do if(!a){a=wrb(b)|0;if(a){gQ(a);if((c[d>>2]|0)==6)break;else{b=14;break a}}else{c[d>>2]=6;break}}else{i=cWa(a+12|0)|0;if(vub(c[(c[i>>2]|0)+4>>2]|0)|0){b=14;break a}if(eCb(c[a+8>>2]|0)|0?(i=(i4(g,a+8|0)|0)+4|0,c[i>>2]|0):0){b=14;break a}c[d>>2]=6}while(0)}if((b|0)==14){yb=h;return}}function tz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;g=i+8|0;h=i;if(((b|0)!=0?(e=Rqb(b)|0,(e|0)!=0):0)?!(eCb(c[e+8>>2]|0)|0):0)if(vub(c[e+4>>2]|0)|0)ma(101599,101296,387,140271);else f=e;else f=vJa(c[a>>2]|0,b)|0;a=Rqb(d)|0;if(!a){Wla(f+12|0,d);_u(f);yb=i;return f|0}a=a+12|0;nrb(g,a);Hib(h,a);a=g+4|0;b=h+4|0;e=f+12|0;while(1){if(!(dhb(c[g>>2]|0,c[a>>2]|0,c[h>>2]|0,c[b>>2]|0)|0))break;d=Qab(g)|0;Wla(e,c[d>>2]|0);hob(g)}_u(f);yb=i;return f|0}function uz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=b+12|0;h=b+8|0;f=0;while(1){if(f>>>0>=(WCb(c[d>>2]|0)|0)>>>0){e=11;break}g=uXa(h,f)|0;if(PBb(c[(c[g>>2]|0)+4>>2]|0)|0)break;f=f+1|0}if((e|0)==11){h=b;return h|0}if(!f){h=uXa(h,0)|0;h=c[h>>2]|0;Iya(a,h)|0;return h|0}g=c[a+36>>2]|0;WCb(g)|0;g=Eeb(g+152|0)|0;e=f+1|0;f=g+12|0;Cka(f,e);d=0;while(1){if((d|0)==(e|0))break;j=uXa(h,d)|0;j=Jma(a,c[j>>2]|0)|0;i=uXa(f,d)|0;c[i>>2]=j;d=d+1|0}uZa(g,c[b+4>>2]|0);Iya(a,g)|0;j=g;return j|0}function vz(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;i=mF(a,b,d,e,g)|0;h=g+4|0;if(!(nx(c[g>>2]|0,c[h>>2]|0,c[f>>2]|0,c[e>>2]|0)|0))return i|0;j=c[e>>2]|0;c[e>>2]=c[f>>2];c[f>>2]=j;if(!(nx(c[g>>2]|0,c[h>>2]|0,c[e>>2]|0,c[d>>2]|0)|0)){j=i+1|0;return j|0}j=c[d>>2]|0;c[d>>2]=c[e>>2];c[e>>2]=j;if(!(nx(c[g>>2]|0,c[h>>2]|0,c[d>>2]|0,c[b>>2]|0)|0)){j=i+2|0;return j|0}j=c[b>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=j;if(!(nx(c[g>>2]|0,c[h>>2]|0,c[b>>2]|0,c[a>>2]|0)|0)){j=i+3|0;return j|0}j=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=j;j=i+4|0;return j|0}function wz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))GHa(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Vea(g,e);d=d+4|0}Nja(g,b+48|0);Nja(g,b+84|0);return}function xz(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;j=d-b|0;l=j>>2;f=a+8|0;m=c[a>>2]|0;k=m;if(l>>>0>(c[f>>2]|0)-m>>2>>>0){CSa(a);e=YBb()|0;if(l>>>0>e>>>0)Apa();f=(c[f>>2]|0)-(c[a>>2]|0)|0;if(f>>2>>>0>>1>>>0){e=f>>1;e=e>>>0>>0?l:e}I_(a,e);Wva(a,b,d);return}i=a+4|0;e=(c[i>>2]|0)-m|0;f=e>>2;if(l>>>0>f>>>0){h=1;g=b+(f<<2)|0;f=e>>2}else{h=0;g=d;f=l;e=j}if(e|0)Pxa(m|0,b|0,e|0)|0;if(h){Wva(a,g,d);return}else{c[i>>2]=k+(f<<2);return}}function yz(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=yb;yb=yb+32|0;g=i+12|0;h=i;if(b){yb=i;return}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,e,Zzb(e)|0);n=0;U(77,h|0,126777)|0;e=n;n=0;if(e&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}n=0;fa(177,a|0,g|0,d|0,f|0);f=n;n=0;if(f&1){i=sa()|0;P()|0;Chb(g);Chb(h);Ea(i|0)}else{Chb(g);Chb(h);yb=i;return}}function zz(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;f=h;c[f>>2]=e;g=b+12|0;if(!(a[g>>0]&1))e=-1;else{i=(c[b+4>>2]|0)-(c[b>>2]|0)|0;BM(IWa(Ym(IWa(Zm(IWa(150620,77271)|0,e)|0,112332)|0,i)|0,139927)|0);e=i}MZ(f,b);if(!(a[g>>0]&1)){yb=h;return}f=b+4|0;while(1){if(e>>>0>=((c[f>>2]|0)-(c[b>>2]|0)|0)>>>0)break;g=IWa(150620,113424)|0;i=NQa(b,e)|0;Ym(IWa(Zm(g,d[i>>0]|0)|0,112332)|0,e)|0;IWa(150620,128472)|0;e=e+1|0}yb=h;return}function Az(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=yb;yb=yb+16|0;k=l+8|0;f=l;e=Qqb(a)|0;if(e|0){if(!(dub(c[e+8>>2]|0,c[b>>2]|0)|0)){k=0;yb=l;return k|0}c[e+8>>2]=c[d>>2];k=1;yb=l;return k|0}j=Jqb(a)|0;if(!j)ma(141129,101506,83,101537);h=j+8|0;nrb(k,h);Hib(f,h);h=k+4|0;i=c[f>>2]|0;g=c[f+4>>2]|0;b=c[b>>2]|0;f=c[d>>2]|0;a=0;while(1){if(!(dhb(c[k>>2]|0,c[h>>2]|0,i,g)|0))break;e=Qab(k)|0;if(dub(c[e>>2]|0,b)|0){c[e>>2]=f;a=1}hob(k)}if(!(dub(c[j+24>>2]|0,b)|0)){k=a;yb=l;return k|0}c[j+24>>2]=f;k=1;yb=l;return k|0}function Bz(a){a=a|0;if(c[37104]|0){IWa(150452,56044)|0;IWa(150452,56082)|0;IWa(150452,56108)|0;IWa(150452,56132)|0;IWa(150452,56154)|0;IWa(150452,56174)|0;IWa(150452,56194)|0;Voa(148180);Voa(148192);Voa(148204);Voa(148216);Voa(148228);Voa(148240)}if(!a)return;uF(a);RCb(a);return}function Cz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=yb;yb=yb+32|0;e=h+16|0;j=h+12|0;d=h;c[j>>2]=c[b+24>>2];f=Cda(a,c[b+28>>2]|0)|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;g=c[b+4>>2]|0;i=c[a+32>>2]|0;n=0;c[e>>2]=c[j>>2];g=Y(22,i|0,e|0,f|0,d|0,g|0)|0;f=n;n=0;if(f&1){j=sa()|0;P()|0;Vob(d);Ea(j|0)}Vob(d);e=b+12|0;f=g+8|0;b=b+8|0;d=0;while(1){if(d>>>0>=(WCb(c[e>>2]|0)|0)>>>0)break;j=uXa(b,d)|0;Wla(f,Cda(a,c[j>>2]|0)|0);d=d+1|0}yb=h;return g|0}function Dz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=nE(e,b,a)|0;g=nE(e,d,b)|0;if(!f){if(!g){g=0;return g|0}g=c[b>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=g;if(!(nE(e,b,a)|0)){g=1;return g|0}g=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=g;g=2;return g|0}f=c[a>>2]|0;if(g){c[a>>2]=c[d>>2];c[d>>2]=f;g=1;return g|0}c[a>>2]=c[b>>2];c[b>>2]=f;if(!(nE(e,d,b)|0)){g=1;return g|0}g=c[b>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=g;g=2;return g|0}function Ez(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=iF(a,b,d,e)|0;g=c[f>>2]|0;h=c[e>>2]|0;if(!(zcb(g,h)|0))return i|0;c[e>>2]=g;c[f>>2]=h;f=c[e>>2]|0;g=c[d>>2]|0;if(!(zcb(f,g)|0)){i=i+1|0;return i|0}c[d>>2]=f;c[e>>2]=g;f=c[d>>2]|0;g=c[b>>2]|0;if(!(zcb(f,g)|0)){i=i+2|0;return i|0}c[b>>2]=f;c[d>>2]=g;f=c[b>>2]|0;g=c[a>>2]|0;if(!(zcb(f,g)|0)){i=i+3|0;return i|0}c[a>>2]=f;c[b>>2]=g;i=i+4|0;return i|0}function Fz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;g=yb;yb=yb+48|0;b=g+32|0;h=g+28|0;d=g+16|0;e=g+12|0;f=g;c[h>>2]=c[37311];c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;D8(d,85085,Zzb(85085)|0);n=0;c[b>>2]=c[h>>2];ea(152,a|0,b|0,d|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;Chb(d);Ea(h|0)}Chb(d);c[e>>2]=c[37312];c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,85085,Zzb(85085)|0);n=0;c[b>>2]=c[e>>2];ea(152,a|0,b|0,f|0);h=n;n=0;if(!(h&1)){Chb(f);yb=g;return}h=sa()|0;P()|0;Chb(f);Ea(h|0)}function Gz(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;m=yb;yb=yb+48|0;f=m+32|0;i=m+24|0;e=m+16|0;j=m+8|0;k=m+4|0;l=m;if(a[b+33>>0]&1)BM(IWa(150620,113194)|0);g=d+8|0;nrb(i,g);Hib(e,g);g=i+4|0;h=c[e>>2]|0;e=c[e+4>>2]|0;while(1){if(!(dhb(c[i>>2]|0,c[g>>2]|0,h,e)|0))break;Qab(i)|0;hob(i)}i=tI(c[b+28>>2]|0,17)|0;b=c[b+24>>2]|0;c[k>>2]=c[d+24>>2];c[f>>2]=c[k>>2];Pwb(j,Gaa(b,f)|0);k=YA(i,c[j>>2]|0)|0;Pwb(l,0);YA(k,c[l>>2]|0)|0;yb=m;return}function Hz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;Eb[c[(c[b>>2]|0)+24>>2]&511](b)|0;d=Thb(c[d>>2]|0,151628)|0;c[b+68>>2]=d;e=b+98|0;f=a[e>>0]&1;d=Eb[c[(c[d>>2]|0)+28>>2]&511](d)|0;a[e>>0]=d&1;if((f&255|0)==(d&1|0))return;e=b+8|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;e=b+96|0;f=(a[e>>0]&1)==0;if(d){d=b+32|0;if(!f?(i=c[d>>2]|0,i|0):0)PCb(i);i=b+97|0;a[e>>0]=a[i>>0]&1;h=b+60|0;c[b+52>>2]=c[h>>2];b=b+56|0;c[d>>2]=c[b>>2];c[h>>2]=0;c[b>>2]=0;a[i>>0]=0;return}if(f?(g=b+32|0,h=c[g>>2]|0,(h|0)!=(b+44|0)):0){i=c[b+52>>2]|0;c[b+60>>2]=i;c[b+56>>2]=h;a[b+97>>0]=0;i=OCb(i)|0;c[g>>2]=i;a[e>>0]=1;return}i=c[b+52>>2]|0;c[b+60>>2]=i;i=OCb(i)|0;c[b+56>>2]=i;a[b+97>>0]=1;return}function Iz(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=yb;yb=yb+64|0;i=j;c[d>>2]=c[c[d>>2]>>2];if(!(L_a(a,b)|0))if(((b|0)!=0?(e=Ey(b,39672)|0,(e|0)!=0):0)?(c[e+8>>2]&~c[a+8>>2]|0)==0:0){b=c[a+12>>2]|0;a=e+12|0;if(!(dub(b,c[a>>2]|0)|0)?!(dub(b,39704)|0):0)if((((b|0)!=0?(g=Ey(b,39472)|0,(g|0)!=0):0)?(f=c[a>>2]|0,(f|0)!=0):0)?(h=Ey(f,39472)|0,(h|0)!=0):0){a=i+4|0;b=a+52|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));c[i>>2]=h;c[i+8>>2]=g;c[i+12>>2]=-1;c[i+48>>2]=1;Ub[c[(c[h>>2]|0)+28>>2]&255](h,i,c[d>>2]|0,1);if((c[i+24>>2]|0)==1){c[d>>2]=c[i+16>>2];a=1}else a=0}else a=0;else a=1}else a=0;else a=1;yb=j;return a|0}function Jz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=yb;yb=yb+32|0;f=h+12|0;g=h;if(b){yb=h;return}c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;D8(g,e,Zzb(e)|0);n=0;U(77,g|0,126777)|0;e=n;n=0;if(e&1){h=sa()|0;P()|0;Chb(g);Ea(h|0)}c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}n=0;fa(180,a|0,f|0,d|0,0);d=n;n=0;if(d&1){h=sa()|0;P()|0;Chb(f);Chb(g);Ea(h|0)}else{Chb(f);Chb(g);yb=h;return}}function Kz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=yb;yb=yb+16|0;h=k+8|0;i=k+4|0;j=k;if(a[b+33>>0]&1)BM(IWa(150620,113260)|0);e=c[d+12>>2]|0;if(e|0)T_a(b,e);g=d+16|0;e=c[g>>2]|0;if(!e)f=12;else{T_a(b,e);f=(c[g>>2]|0)==0?12:13}e=b+28|0;f=tI(c[e>>2]|0,f)|0;c[j>>2]=c[d+8>>2];c[h>>2]=c[j>>2];Pwb(i,x7(b,h)|0);YA(f,c[i>>2]|0)|0;if(!(c[g>>2]|0)){yb=k;return}if((c[d+4>>2]|0)!=6){yb=k;return}Ygb(c[e>>2]|0);yb=k;return}function Lz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f;if((d|0)!=8){e=0;yb=f;return e|0}d=Hfb(c[a+4>>2]|0)|0;g=rl(a)|0;c[d+20>>2]=g;g=rl(a)|0;c[d+16>>2]=g;g=rl(a)|0;c[d+12>>2]=g;g=IF(a)|0;c[d+8>>2]=g;do if((Eu(a)|0)<<24>>24){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;D8(e,116364,Zzb(116364)|0);n=0;da(4022,a|0,e|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;Chb(e);Ea(g|0)}else{Chb(e);break}}while(0);Wja(d);c[b>>2]=d;g=1;yb=f;return g|0}function Mz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=(c[b>>2]|0)+1794895138|0;h=ynb(c[b+8>>2]|0,o)|0;f=ynb(c[b+12>>2]|0,o)|0;g=ynb(c[b+16>>2]|0,o)|0;a:do if((h>>>0>>2>>>0?(n=d-(h<<2)|0,f>>>0>>0&g>>>0>>0):0)?((g|f)&3|0)==0:0){n=f>>>2;m=g>>>2;l=0;while(1){j=h>>>1;k=l+j|0;i=k<<1;g=i+n|0;f=ynb(c[b+(g<<2)>>2]|0,o)|0;g=ynb(c[b+(g+1<<2)>>2]|0,o)|0;if(!(g>>>0>>0&f>>>0<(d-g|0)>>>0)){f=0;break a}if(a[b+(g+f)>>0]|0){f=0;break a}f=Cla(e,b+g|0)|0;if(!f)break;f=(f|0)<0;if((h|0)==1){f=0;break a}l=f?l:k;h=f?j:h-j|0}f=i+m|0;g=ynb(c[b+(f<<2)>>2]|0,o)|0;f=ynb(c[b+(f+1<<2)>>2]|0,o)|0;if(f>>>0>>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 Nz(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=yb;yb=yb+32|0;i=l+24|0;j=l+20|0;k=l;f=c[a>>2]|0;h=(c[a+4>>2]|0)-f>>3;g=h+1|0;e=wxb()|0;if(g>>>0>e>>>0)Apa();f=(c[a+8>>2]|0)-f|0;if(f>>3>>>0>>1>>>0){e=f>>2;e=e>>>0>>0?g:e}FR(k,e,h,a+8|0);e=k+8|0;f=c[e>>2]|0;n=0;da(211,j|0,b|0);b=n;n=0;if(b&1){l=sa()|0;P()|0;vta(k);Ea(l|0)}else{d=c[d>>2]|0;c[i>>2]=c[j>>2];fib(f,i,d);c[e>>2]=f+8;lU(a,k);vta(k);yb=l;return}}function Oz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0;f=yb;yb=yb+64|0;e=f+48|0;c[e>>2]=a;a=f+28|0;d=f;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[a+16>>2]=1.0;n=0;da(74,d|0,b|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;Pdb(a);Ea(h|0)}if(!(wmb(d)|0)){n=0;ea(100,b|0,a|0,e|0);h=n;n=0;if(!(h&1)){hib(d);Pdb(a);yb=f;return}}else{n=0;ba(3);h=n;n=0;if(!(h&1)){n=0;ca(491,54497);h=n;n=0;if(h&1){sa()|0;P()|0;iSa()}else iSa()}}h=sa()|0;P()|0;hib(d);Pdb(a);Ea(h|0)}function Pz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+8|0;g=h+4|0;e=h;c[e>>2]=c[b>>2];c[d>>2]=c[e>>2];d=Vt(a,d)|0;c[g>>2]=d;e=a+4|0;f=c[e>>2]|0;if((f|0)==(c[a+8>>2]|0))_M(a,g);else{c[f>>2]=d;c[e>>2]=(c[e>>2]|0)+4}d=O4(a+12|0,b)|0;e=d+4|0;f=c[e>>2]|0;if((f|0)==(c[d+8>>2]|0)){_M(d,g);a=a+24|0;a=t7(a,g)|0;b=c[b>>2]|0;c[a>>2]=b;g=c[g>>2]|0;yb=h;return g|0}else{c[f>>2]=c[g>>2];c[e>>2]=(c[e>>2]|0)+4;a=a+24|0;a=t7(a,g)|0;b=c[b>>2]|0;c[a>>2]=b;g=c[g>>2]|0;yb=h;return g|0}return 0}function Qz(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=yb;yb=yb+16|0;g=i;h=c[a>>2]|0;if((c[b+4>>2]|0)!=6){h=0;yb=i;return h|0}if((c[d+4>>2]|0)==6){h=0;yb=i;return h|0}b=Qqb(b)|0;if(!b){h=0;yb=i;return h|0}if(!(aeb(b)|0)){h=0;yb=i;return h|0}Gsb(g,WCb(c[h+20>>2]|0)|0);f=a+4|0;if(e)vwa(g,c[c[f>>2]>>2]|0);c[b+16>>2]=c[(c[c[f>>2]>>2]|0)+8>>2];Cva(b);e=a+8|0;c[(c[c[e>>2]>>2]|0)+12>>2]=d;g=zMa(c[g>>2]|0,b,c[c[e>>2]>>2]|0)|0;c[c[c[a+12>>2]>>2]>>2]=g;Sma(h,uXa(g+12|0,1)|0);h=1;yb=i;return h|0}function Rz(a,b){a=a|0;b=b|0;var d=0,e=0;if((b|0)!=1){if(b+-1&b)b=Gc(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0>e>>>0){Go(a,b);return}if(b>>>0>=e>>>0)return;if(e>>>0>2?(e&e+-1|0)==0:0){d=~~+I(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(d>>>0>=2)d=1<<32-(M(d+-1|0)|0)}else d=Gc(~~+I(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0)|0;b=b>>>0>>0?d:b;if(b>>>0>=e>>>0)return;Go(a,b);return}function Sz(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;j=yb;yb=yb+16|0;h=j+4|0;i=j;c[h>>2]=g;if(c[37104]|0){k=IWa(Zm(IWa(Ym(IWa(IWa(IWa(150452,65671)|0,d)|0,65705)|0,e)|0,140151)|0,f<<24>>24)|0,65576)|0;g=O8(148192,h)|0;IWa(Ym(k,c[g>>2]|0)|0,57388)|0}k=mla(24)|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;Zmb(k);Zsb(i,d);c[k+8>>2]=c[i>>2];c[k+12>>2]=e;a[k+20>>0]=f<<24>>24!=0&1;c[k+16>>2]=c[h>>2];pq(b,k);yb=j;return k|0}function Tz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;h=j+4|0;i=j;d=c[b>>2]|0;if(!(eCb(d)|0)){yb=j;return}e=c[a>>2]|0;f=e+4|0;g=c[f>>2]|0;if((g|0)==(c[e+8>>2]|0))_M(e,b);else{c[g>>2]=d;c[f>>2]=(c[f>>2]|0)+4}d=O4(c[a+4>>2]|0,b)|0;e=c[a+8>>2]|0;b=c[e>>2]|0;c[e>>2]=b+1;c[h>>2]=b;e=d+4|0;f=c[e>>2]|0;if(f>>>0<(c[d+8>>2]|0)>>>0){c[f>>2]=b;c[e>>2]=(c[e>>2]|0)+4}else _M(d,h);f=c[a+12>>2]|0;d=c[a+16>>2]|0;c[i>>2]=d;b=f+4|0;e=c[b>>2]|0;if(e>>>0<(c[f+8>>2]|0)>>>0){c[e>>2]=d;c[b>>2]=(c[b>>2]|0)+4;yb=j;return}else{_M(f,i);yb=j;return}}function Uz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=yb;yb=yb+16|0;f=g;if(a[b+12>>0]&1)BM(IWa(150620,113153)|0);$z(b,116668);h=IF(b)|0;c[d+8>>2]=h;do if(h>>>0>=(Icb(c[b+120>>2]|0)|0)>>>0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,116698,Zzb(116698)|0);n=0;da(4022,b|0,f|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;Chb(f);Ea(h|0)}else{Chb(f);break}}while(0);h=rl(b)|0;c[d+12>>2]=h;c[d+4>>2]=c[h+4>>2];m4a(d,e<<24>>24==34);FHa(d);yb=g;return}function Vz(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=yb;yb=yb+16|0;e=j+8|0;f=j+4|0;h=j;i=Mqb(c[d+16>>2]|0)|0;if(!i)ma(53518,51625,811,53508);Pwb(f,0);switch(c[i+4>>2]|0){case 1:{g=_pb(Peb(i+8|0)|0)|0;c[f>>2]=g;break}case 3:{g=c1(c[37223]|0,mG(TOa(+L8a(i+8|0))|0,1)|0)|0;c[f>>2]=g;break}case 4:{g=mG(TOa(+K8a(i+8|0))|0,1)|0;c[f>>2]=g;break}default:ma(53468,51625,801,53508)}i=Ria()|0;KJa(WCb(b)|0,i)|0;c[h>>2]=c[d+8>>2];c[e>>2]=c[h>>2];KQ(i,Vf(a,e,0)|0,g);yb=j;return}function Wz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+32|0;e=g+12|0;f=g;if(b){yb=g;return}c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,d,Zzb(d)|0);n=0;U(77,f|0,126777)|0;d=n;n=0;if(d&1){g=sa()|0;P()|0;Chb(f);Ea(g|0)}c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}n=0;fa(179,a|0,e|0,134260,0);a=n;n=0;if(a&1){g=sa()|0;P()|0;Chb(e);Chb(f);Ea(g|0)}else{Chb(e);Chb(f);yb=g;return}}function Xz(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=yb;yb=yb+16|0;j=k+8|0;d=k;if(eCb(c[b+8>>2]|0)|0)ma(73864,72707,765,140271);h=b+12|0;nrb(j,h);Hib(d,h);h=j+4|0;i=c[d>>2]|0;d=c[d+4>>2]|0;f=a+4|0;while(1){if(!(dhb(c[j>>2]|0,c[h>>2]|0,i,d)|0))break;g=Qab(j)|0;g=c[g>>2]|0;e=Rqb(g)|0;do if(e)if(eCb(c[e+8>>2]|0)|0){sca(c[a>>2]|0,e);break}else{fla(c[(c[f>>2]|0)+16>>2]|0,e);break}else sca(c[a>>2]|0,g);while(0);hob(j)}Mzb(b+12|0);yb=k;return}function Yz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0;i=yb;yb=yb+128|0;d=i;yib(a);e=a+12|0;yib(e);f=a+24|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[a+40>>2]=1.0;h=a+44|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;g[a+60>>2]=1.0;n=0;fa(95,d|0,a|0,e|0,b|0);b=n;n=0;if(b&1){i=sa()|0;P()|0;Oia(h);Pia(f);LXa(e);qGa(a);Ea(i|0)}else{ujb(d);yb=i;return}}function Zz(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;l=yb;yb=yb+16|0;h=l;d=b+8|0;k=fn(a+48|0,d)|0;k=c[k>>2]|0;c[d>>2]=k;d=b+4|0;if((c[d>>2]|0)!=2){yb=l;return}c[d>>2]=1;iG(h,a,1);d=a+44|0;e=c[d>>2]|0;n=0;f=S(280,h|0)|0;m=n;n=0;if((((!(m&1)?(n=0,g=V(71,c[c[d>>2]>>2]|0,k+1|0,1)|0,m=n,n=0,!(m&1)):0)?(n=0,i=V(70,c[e>>2]|0,f|0,g|0)|0,m=n,n=0,!(m&1)):0)?(n=0,j=V(55,c[d>>2]|0,i|0,b|0)|0,m=n,n=0,!(m&1)):0)?(Pwb(c[a+16>>2]|0,j),n=0,ea(147,a|0,j|0,h|0),m=n,n=0,!(m&1)):0){lNa(h);yb=l;return}m=sa()|0;P()|0;lNa(h);Ea(m|0)}function _z(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+32|0;d=f+12|0;e=f;if(!b){yb=f;return}c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;D8(e,132989,Zzb(132989)|0);n=0;U(77,e|0,127686)|0;b=n;n=0;if(b&1){f=sa()|0;P()|0;Chb(e);Ea(f|0)}c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];b=0;while(1){if((b|0)==3)break;c[e+(b<<2)>>2]=0;b=b+1|0}n=0;fa(179,a|0,d|0,134260,0);a=n;n=0;if(a&1){f=sa()|0;P()|0;Chb(d);Chb(e);Ea(f|0)}else{Chb(d);Chb(e);yb=f;return}}function $z(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+32|0;d=f+12|0;e=f;if(c[a+120>>2]|0){yb=f;return}c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;D8(e,116009,Zzb(116009)|0);n=0;U(69,e|0,b|0)|0;b=n;n=0;if(b&1){f=sa()|0;P()|0;Chb(e);Ea(f|0)}c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];b=0;while(1){if((b|0)==3)break;c[e+(b<<2)>>2]=0;b=b+1|0}n=0;da(4022,a|0,d|0);a=n;n=0;if(a&1){f=sa()|0;P()|0;Chb(d);Chb(e);Ea(f|0)}else{Chb(d);Chb(e);yb=f;return}}function aA(b,d){b=b|0;d=d|0;var e=0;if(a[b+33>>0]&1)BM(IWa(150620,112947)|0);e=d+16|0;yIa(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;e=d+20|0;yIa(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;e=d+24|0;yIa(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;if((c[d+4>>2]|0)==6){AQ(b);return}else{TW(b,d);return}}function bA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+32|0;d=h+24|0;e=h+20|0;f=h+16|0;g=h;c[d>>2]=b;b=Keb(c[b>>2]|0)|0;c[e>>2]=b;b=wrb(c[b+12>>2]|0)|0;c[f>>2]=b;if(!b){g=0;yb=h;return g|0}if(!(vub(c[b+4>>2]|0)|0)){g=0;yb=h;return g|0}if(!(vub(c[(c[b+8>>2]|0)+4>>2]|0)|0)){g=0;yb=h;return g|0}c[g>>2]=a;c[g+4>>2]=f;c[g+8>>2]=e;c[g+12>>2]=d;if(Qz(g,c[b+12>>2]|0,c[b+16>>2]|0,0)|0){g=1;yb=h;return g|0}f=c[f>>2]|0;g=Qz(g,c[f+16>>2]|0,c[f+12>>2]|0,1)|0;yb=h;return g|0}function cA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;do if(!(RUa()|0)){e=a;f=0}else{n=0;d=S(217,20)|0;f=n;n=0;if(f&1){b=sa()|0;P()|0;Ea(b|0)}n=0;da(2193,d|0,c[a>>2]|0);f=n;n=0;if(!(f&1)){e=a;f=d;break}b=sa()|0;P()|0;RCb(d);Ea(b|0)}while(0);n=0;ea(c[(c[b>>2]|0)+12>>2]|0,b|0,a|0,c[e>>2]|0);e=n;n=0;do if(!(e&1)?(n=0,ea(159,a|0,b|0,0),b=n,n=0,!(b&1)):0){d=f;if(RUa()|0?(n=0,ca(533,d|0),b=n,n=0,b&1):0){d=f;break}if(!f)return;Nrb(d);RCb(f);return}else d=f;while(0);e=sa()|0;P()|0;if(!d){b=e;Ea(b|0)}Nrb(d);RCb(d);b=e;Ea(b|0)}function dA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=b+20|0;h=b+16|0;f=0;while(1){if(f>>>0>=(WCb(c[d>>2]|0)|0)>>>0){e=11;break}g=uXa(h,f)|0;if(PBb(c[(c[g>>2]|0)+4>>2]|0)|0)break;f=f+1|0}if((e|0)==11)return;if(!f){h=uXa(h,0)|0;Iya(a,c[h>>2]|0)|0;return}g=c[a+36>>2]|0;WCb(g)|0;g=Eeb(g+152|0)|0;e=f+1|0;f=g+12|0;Cka(f,e);d=0;while(1){if((d|0)==(e|0))break;j=uXa(h,d)|0;j=Jma(a,c[j>>2]|0)|0;i=uXa(f,d)|0;c[i>>2]=j;d=d+1|0}uZa(g,c[b+4>>2]|0);Iya(a,g)|0;return}function eA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d;a:do if(!((g^b)&3)){f=(e|0)!=0;if(f&(g&3|0)!=0)do{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}while(f&(d&3|0)!=0);if(f){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=13}}else e=0}else h=13;while(0);c:do if((h|0)==13)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);LL(b|0,0,e|0)|0;return}function fA(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;n=yb;yb=yb+32|0;i=n+24|0;j=n+16|0;h=n+8|0;k=n;l=a+4|0;e=c[l>>2]|0;if((e|0)==6){yb=n;return}if(!(WCb(c[a+16>>2]|0)|0)){yb=n;return}if(vub(e)|0){yb=n;return}f=a+12|0;nrb(j,f);Hib(h,f);f=j+4|0;g=c[h>>2]|0;e=c[h+4>>2]|0;while(1){if(!(dhb(c[j>>2]|0,c[f>>2]|0,g,e)|0)){m=12;break}h=Qab(j)|0;if((c[(c[h>>2]|0)+4>>2]|0)==6)break;hob(j)}if((m|0)==12){yb=n;return}if(b){if(d){yb=n;return}}else{c[k>>2]=c[a+8>>2];c[i>>2]=c[k>>2];if(BT(a,i)|0){yb=n;return}}c[l>>2]=6;yb=n;return}function gA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=b+12|0;h=b+8|0;f=0;while(1){if(f>>>0>=(WCb(c[d>>2]|0)|0)>>>0){e=11;break}g=uXa(h,f)|0;if(PBb(c[(c[g>>2]|0)+4>>2]|0)|0)break;f=f+1|0}if((e|0)==11)return;if(!f){h=uXa(h,0)|0;Iya(a,c[h>>2]|0)|0;return}g=c[a+36>>2]|0;WCb(g)|0;g=Eeb(g+152|0)|0;e=f+1|0;f=g+12|0;Cka(f,e);d=0;while(1){if((d|0)==(e|0))break;j=uXa(h,d)|0;j=Jma(a,c[j>>2]|0)|0;i=uXa(f,d)|0;c[i>>2]=j;d=d+1|0}uZa(g,c[b+4>>2]|0);Iya(a,g)|0;return}function hA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=yb;yb=yb+16|0;h=i+8|0;e=i;if(a[b+33>>0]&1)BM(IWa(150620,113216)|0);f=d+8|0;nrb(h,f);Hib(e,f);f=h+4|0;g=c[e>>2]|0;e=c[e+4>>2]|0;while(1){if(!(dhb(c[h>>2]|0,c[f>>2]|0,g,e)|0))break;j=Qab(h)|0;yIa(b,c[j>>2]|0);hob(h)}TW(b,d);if((c[d+4>>2]|0)!=6){yb=i;return}AQ(b);yb=i;return}function iA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=yb;yb=yb+32|0;c=f+12|0;d=f;Rga(c,b);n=0;e=S(218,c|0)|0;g=n;n=0;if(g&1){g=sa()|0;P()|0;Chb(c);Ea(g|0)}Chb(c);if(e|0){C9(a,e);yb=f;return}cqb();n=0;ca(491,54631);g=n;n=0;if(!(g&1)?(n=0,da(73,d|0,b|0),g=n,n=0,!(g&1)):0){n=0;ca(494,d|0);g=n;n=0;if(!(g&1)?(n=0,ca(491,127446),g=n,n=0,!(g&1)):0){Chb(d);iSa()}sa()|0;P()|0;Chb(d);iSa()}sa()|0;P()|0;iSa()}function jA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;i=j;g=c[a+8>>2]|0;d=c[a+4>>2]|0;if(((g-d|0)/40|0)>>>0>=b>>>0){D9(a,b);yb=j;return}e=c[a>>2]|0;h=(d-e|0)/40|0;f=h+b|0;d=Aub()|0;if(f>>>0>d>>>0)Apa();e=(g-e|0)/40|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}YQ(i,d,h,a+8|0);Z8(i,b);wP(a,i);mfa(i);yb=j;return}function kA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=c[a+4>>2]|0;if(!f){j=a+4|0;c[b>>2]=j;return j|0}e=Dtb(a)|0;i=c[d>>2]|0;h=c[d+4>>2]|0;g=d+4|0;a=f;a:while(1){d=c[a+16>>2]|0;do if((i|0)>=(d|0)){if((d|0)>=(i|0)){if(Bfb(h,a+20|0)|0){j=6;break}if(!(Bfb(c[a+20>>2]|0,g)|0)){j=11;break a}}d=a+4|0;f=c[d>>2]|0;if(!f){j=10;break a}else{e=d;a=f}}else j=6;while(0);if((j|0)==6){j=0;d=c[a>>2]|0;if(!d){j=7;break}else{e=a;a=d}}}if((j|0)==7){c[b>>2]=a;j=a;return j|0}else if((j|0)==10){c[b>>2]=a;j=d;return j|0}else if((j|0)==11){c[b>>2]=a;j=e;return j|0}return 0}function lA(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;m=yb;yb=yb+192|0;g=m+92|0;k=m;e=b+12|0;f=a+40|0;h=b+8|0;j=0;d=0;while(1){n=d>>>0<(WCb(c[e>>2]|0)|0)>>>0;l=pob(c[f>>2]|0)|0;if(!n)break;n=uXa(h,d)|0;VA(g,l,c[n>>2]|0);n=QGa(g)|0;Fha(g);if(n){i=7;break}j=vo(a,b,uXa(h,d)|0,j,0)|0;d=d+1|0}if((i|0)==7){yb=m;return}d=b+28|0;VA(k,l,c[d>>2]|0);n=QGa(k)|0;Fha(k);if(n){yb=m;return}vo(a,b,d,j,0)|0;yb=m;return}function mA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f+12|0;g=f;d=Gcb(b)|0;b=kH(b)|0;if(d){Ftb(e,b);g=c[e>>2]|0;yb=f;return g|0}d=sY(WCb(b)|0)|0;b=c[a+20>>2]|0;if(d>>>0<(c[a+24>>2]|0)-b>>2>>>0){g=c[b+(d<<2)>>2]|0;c[e>>2]=g;yb=f;return g|0}a=oa(20)|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;f=Zzb(126122)|0;n=0;ea(95,g|0,126122,f|0);f=n;n=0;if(!(f&1)){n=0;da(330,a|0,g|0);f=n;n=0;if(f&1)d=1;else{n=0;ea(122,a|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(g);if(!d){g=b;Ea(g|0)}}else{b=sa()|0;P()|0}va(a|0);g=b;Ea(g|0);return 0}function nA(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;j=yb;yb=yb+48|0;f=j+32|0;e=j+16|0;g=j+4|0;h=j;if(f9(d,b)|0){yb=j;return}GG(j+24|0,d,b,b);c[e>>2]=c[b>>2];c[f>>2]=c[e>>2];e=(wQ(a,f)|0)+44|0;I2(g,c[e>>2]|0);e=c[g+4>>2]|0;b=c[g>>2]|0;while(1){if((b|0)==(e|0))break;c[h>>2]=c[(c[b>>2]|0)+24>>2];n=0;c[f>>2]=c[h>>2];ea(165,a|0,f|0,d|0);k=n;n=0;if(k&1){i=8;break}b=b+4|0}if((i|0)==8){k=sa()|0;P()|0;Htb(g);Ea(k|0)}Htb(g);yb=j;return}function oA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+-16|0;d=c[b+4>>2]|0;a=c[b>>2]|0;while(1){if((a|0)==(d|0))break;Cs(c[a>>2]|0);a=a+4|0}d=c[b+16>>2]|0;a=c[b+12>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+40>>2]|0;f=g+16|0;a=c[b+36>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(!(Yrb(e)|0))h3a(f,e);a=a+4|0}d=c[b+28>>2]|0;a=c[b+24>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(Yrb(e)|0)Qk(g,e);else wka(f,e);a=a+4|0}hya(f,b+48|0);hya(f,b+84|0);return}function pA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f+12|0;g=f;d=Gcb(b)|0;b=kH(b)|0;if(d){Ftb(e,b);g=c[e>>2]|0;yb=f;return g|0}d=sY(WCb(b)|0)|0;b=c[a+8>>2]|0;if(d>>>0<(c[a+12>>2]|0)-b>>2>>>0){g=c[b+(d<<2)>>2]|0;c[e>>2]=g;yb=f;return g|0}a=oa(20)|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;f=Zzb(119172)|0;n=0;ea(95,g|0,119172,f|0);f=n;n=0;if(!(f&1)){n=0;da(330,a|0,g|0);f=n;n=0;if(f&1)d=1;else{n=0;ea(122,a|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(g);if(!d){g=b;Ea(g|0)}}else{b=sa()|0;P()|0}va(a|0);g=b;Ea(g|0);return 0}function qA(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;g=h;b=a+20|0;d=a+4|0;e=a+16|0;f=a+24|0;while(1){if(pqb(c[b>>2]|0)|0){b=3;break}i=c[e>>2]|0;c[g>>2]=c[(c[(c[d>>2]|0)+(i>>>10<<2)>>2]|0)+((i&1023)<<2)>>2];i=Zl(f,g)|0;c[i>>2]=(c[i>>2]|0)+-1;jca(a);i=Zl(f,g)|0;if(!(c[i>>2]|0)){b=5;break}}if((b|0)==3)ma(99522,99531,51,99577);else if((b|0)==5){yb=h;return c[g>>2]|0}return 0}function rA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f+12|0;g=f;d=Gcb(b)|0;b=kH(b)|0;if(d){Ftb(e,b);g=c[e>>2]|0;yb=f;return g|0}d=sY(WCb(b)|0)|0;b=c[a+32>>2]|0;if(d>>>0<(c[a+36>>2]|0)-b>>2>>>0){g=c[b+(d<<2)>>2]|0;c[e>>2]=g;yb=f;return g|0}a=oa(20)|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;f=Zzb(125507)|0;n=0;ea(95,g|0,125507,f|0);f=n;n=0;if(!(f&1)){n=0;da(330,a|0,g|0);f=n;n=0;if(f&1)d=1;else{n=0;ea(122,a|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(g);if(!d){g=b;Ea(g|0)}}else{b=sa()|0;P()|0}va(a|0);g=b;Ea(g|0);return 0}function sA(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;l=yb;yb=yb+32|0;k=l;h=c[b>>2]|0;j=((c[b+4>>2]|0)-h|0)/40|0;i=j+1|0;g=Aub()|0;if(i>>>0>g>>>0)Apa();h=((c[b+8>>2]|0)-h|0)/40|0;if(h>>>0>>1>>>0){g=h<<1;g=g>>>0>>0?i:g}YQ(k,g,j,b+8|0);g=k+8|0;h=c[g>>2]|0;n=0;fa(93,h|0,d|0,(a[e>>0]&1)!=0|0,c[f>>2]|0);f=n;n=0;if(f&1){l=sa()|0;P()|0;Woa(k);Ea(l|0)}else{c[g>>2]=h+40;BS(b,k);Woa(k);yb=l;return}}function tA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h+8|0;d=h+4|0;f=h;g=tfb(c[b>>2]|0)|0;c[f>>2]=c[g+8>>2];c[e>>2]=c[f>>2];b=GF(a+16|0,e)|0;c[d>>2]=b;b=e6(a+84|0,d)|0;d=a+80|0;e=b+4|0;f=c[e>>2]|0;if((f|0)==(c[b+8>>2]|0))_M(b,d);else{c[f>>2]=c[d>>2];c[e>>2]=(c[e>>2]|0)+4}if(!(c[g+16>>2]|0)){Hkb(a+16|0);yb=h;return}else{g=c[d>>2]|0;NC(a+16|0);oP(g,c[d>>2]|0);yb=h;return}}function uA(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=yb;yb=yb+16|0;g=k+8|0;h=k+4|0;i=k;j=mla(24)|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;Zmb(j);if(c[37104]|0)IWa(Ym(IWa(IWa(IWa(IWa(IWa(IWa(IWa(150452,65872)|0,b)|0,65788)|0,d)|0,65788)|0,e)|0,65705)|0,f)|0,56341)|0;Zsb(g,b);c[j+8>>2]=c[g>>2];Zsb(h,d);c[j>>2]=c[h>>2];Zsb(i,e);c[j+4>>2]=c[i>>2];c[j+12>>2]=f;pq(a,j);yb=k;return}function vA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=e+4|0;g=nx(c[e>>2]|0,c[f>>2]|0,c[b>>2]|0,c[a>>2]|0)|0;h=nx(c[e>>2]|0,c[f>>2]|0,c[d>>2]|0,c[b>>2]|0)|0;if(!g){if(!h){h=0;return h|0}h=c[b>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=h;if(!(nx(c[e>>2]|0,c[f>>2]|0,c[b>>2]|0,c[a>>2]|0)|0)){h=1;return h|0}h=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=h;h=2;return h|0}g=c[a>>2]|0;if(h){c[a>>2]=c[d>>2];c[d>>2]=g;h=1;return h|0}c[a>>2]=c[b>>2];c[b>>2]=g;if(!(nx(c[e>>2]|0,c[f>>2]|0,c[d>>2]|0,g)|0)){h=1;return h|0}h=c[b>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=h;h=2;return h|0}function wA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;e=c[a>>2]|0;if(!(HYa(e,b)|0)){f=uga(a,b,c[37044]|0)|0;yb=g;return f|0}DW(f,1,e,c[a+8>>2]|0,c[37043]|0);c[d>>2]=c[f+8>>2];n=0;e=V(45,a|0,b|0,f|0)|0;d=n;n=0;if(d&1){g=sa()|0;P()|0;dha(f);Ea(g|0)}dha(f);f=e;yb=g;return f|0}function xA(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=yb;yb=yb+32|0;j=k;g=c[a>>2]|0;i=(c[a+4>>2]|0)-g>>4;h=i+1|0;f=Wub()|0;if(h>>>0>f>>>0)Apa();g=(c[a+8>>2]|0)-g|0;if(g>>4>>>0>>1>>>0){f=g>>3;f=f>>>0>>0?h:f}AR(j,f,i,a+8|0);f=j+8|0;g=c[f>>2]|0;n=0;fa(103,g|0,c[b>>2]|0,c[d>>2]|0,c[e>>2]|0);e=n;n=0;if(e&1){k=sa()|0;P()|0;csa(j);Ea(k|0)}else{c[f>>2]=g+16;LT(a,j);csa(j);yb=k;return}}function yA(b){b=b|0;var d=0,e=0,f=0;e=c[b>>2]|0;f=b+4|0;d=a[f+11>>0]|0;if(d<<24>>24<0)d=c[b+8>>2]|0;else d=d&255;if(!d){f=c[150452+(c[(c[37613]|0)+-12>>2]|0)+24>>2]|0;return f|0}if(!(c[b+20>>2]|0))BM(IWa(Wqa(IWa(150620,111281)|0,f)|0,118533)|0);Zea(e,f,(c[b+16>>2]|0)==0?52:48);if(!(c[e+68>>2]|0)){BM(IWa(Wqa(IWa(150620,111181)|0,f)|0,118533)|0);$a(1)}f=e+4|0;return f|0}function zA(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=yb;yb=yb+16|0;h=j;i=a+4|0;e=c[a>>2]|0;if((c[i>>2]|0)==(e|0)){d=0;yb=j;return d|0}yEa(d,c[e>>2]|0);f=c[i>>2]|0;e=c[a>>2]|0;a:do if(f-e>>2>>>0>1){g=1;while(1){if(g>>>0>=f-e>>2>>>0)break a;vu(h,d,c[e+(g<<2)>>2]|0);Lgb(d,h);Htb(h);g=g+1|0;e=c[a>>2]|0;f=c[i>>2]|0}}while(0);g=c[b+4>>2]|0;e=c[b>>2]|0;f=c[d>>2]|0;if((g-e|0)!=((c[d+4>>2]|0)-f|0)){d=1;yb=j;return d|0}while(1){if((e|0)==(g|0)){e=0;f=11;break}if((c[e>>2]|0)!=(c[f>>2]|0)){e=1;f=11;break}f=f+4|0;e=e+4|0}if((f|0)==11){yb=j;return e|0}return 0}function AA(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,o=0,p=0;p=yb;yb=yb+64|0;i=p+40|0;l=p+24|0;f=p;iG(l,b,1);e=b+44|0;m=c[e>>2]|0;n=0;o=S(280,l|0)|0;h=n;n=0;if(!(h&1)){g=c[e>>2]|0;Bqb(f,0);n=0;h=i;e=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(e|0));e=U(120,g|0,i|0)|0;i=n;n=0;if(((!(i&1)?(n=0,j=V(70,c[m>>2]|0,o|0,e|0)|0,o=n,n=0,!(o&1)):0)?(n=0,k=V(55,m|0,j|0,c[d+12>>2]|0)|0,o=n,n=0,!(o&1)):0)?(n=0,ea(147,b|0,k|0,l|0),o=n,n=0,!(o&1)):0){Pwb(c[b+16>>2]|0,k);lNa(l);yb=p;return}}p=sa()|0;P()|0;lNa(l);Ea(p|0)}function BA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;if(!(jxa()|0))ma(107075,106895,607,107083);f=c[b+16>>2]|0;d=a+4|0;e=c[b+12>>2]|0;while(1){if((e|0)==(f|0))break;h=c[e>>2]|0;if((h|0)!=(nfa(c[d>>2]|0,h)|0)){g=12;break}e=e+4|0}if((g|0)==12)return;if(yF(b)|0){h=IWa(150452,107106)|0;IWa(mpa(h,c[(c[(c[a>>2]|0)+116>>2]|0)+8>>2]|0)|0,107163)|0;return}if(VBb(c[b>>2]|0)|0)return;if(!(Lx(b)|0))return;h=IWa(150452,107169)|0;IWa(mpa(h,c[(c[(c[a>>2]|0)+116>>2]|0)+8>>2]|0)|0,107163)|0;return}function CA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;h=i;f=c[d>>2]|0;do if(f|0){g=a[e+11>>0]|0;if(g<<24>>24<0)g=c[e+4>>2]|0;else g=g&255;if(g){AZa(e,138977)|0;f=c[d>>2]|0}Xfb(h,f,c[d+4>>2]|0);d=a[h+11>>0]|0;g=d<<24>>24<0;n=0;V(43,e|0,(g?c[h>>2]|0:h)|0,(g?c[h+4>>2]|0:d&255)|0)|0;d=n;n=0;if(d&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}else{Chb(h);break}}while(0);c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];f=0;while(1){if((f|0)==3)break;c[e+(f<<2)>>2]=0;f=f+1|0}yb=i;return}function DA(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=lK(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}Y6(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function EA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;h=i;e=c[a>>2]|0;g=((c[a+4>>2]|0)-e|0)/12|0;f=g+1|0;d=vxb()|0;if(f>>>0>d>>>0)Apa();e=((c[a+8>>2]|0)-e|0)/12|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}aR(h,d,g,a+8|0);d=h+8|0;e=c[d>>2]|0;n=0;da(73,e|0,b|0);b=n;n=0;if(b&1){i=sa()|0;P()|0;Nha(h);Ea(i|0)}else{c[d>>2]=e+12;LI(a,h);Nha(h);yb=i;return}}function FA(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=PH(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}$3(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function GA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}g=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}a=c[b+40>>2]|0;h=g+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))J1a(h,e);d=d+4|0}f=c[b+28>>2]|0;d=g+116|0;a=c[b+24>>2]|0;while(1){if((a|0)==(f|0))break;e=c[a>>2]|0;if(Yrb(e)|0)Fhb(c[d>>2]|0);else Uga(h,e);a=a+4|0}Twa(h,b+48|0);Twa(h,b+84|0);return}function HA(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=PH(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}Y6(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function IA(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;q=yb;yb=yb+224|0;m=q+208|0;n=q+160|0;o=q+80|0;p=q;f=n;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[m>>2]=c[e>>2];if((Ze(0,d,m,o,n)|0)<0)e=-1;else{e=c[b>>2]|0;l=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]=p;i=b+28|0;c[i>>2]=p;j=b+20|0;c[j>>2]=p;c[f>>2]=80;k=b+16|0;c[k>>2]=p+80;e=Ze(b,d,m,o,n)|0;if(h){Hb[c[b+36>>2]&255](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=Ze(b,d,m,o,n)|0;p=c[b>>2]|0;c[b>>2]=p|l;e=(p&32|0)==0?e:-1}yb=q;return e|0}function JA(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+8|0;if(eCb(c[d>>2]|0)|0){e=O4(a+56|0,b+8|0)|0;e=(c[e+4>>2]|0)!=(c[e>>2]|0)}else e=0;xf(a,b);if(!(eCb(c[d>>2]|0)|0))return;d=b+8|0;b=a+68|0;if(f9(b,d)|0){zea(a+44|0);vla(b,d)}if(!e)return;zea(a+44|0);z0(a+56|0,d);return}function KA(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+8|0;if(eCb(c[d>>2]|0)|0){e=O4(a+56|0,b+8|0)|0;e=(c[e+4>>2]|0)!=(c[e>>2]|0)}else e=0;wf(a,b);if(!(eCb(c[d>>2]|0)|0))return;d=b+8|0;b=a+68|0;if(f9(b,d)|0){Bea(a+44|0);vla(b,d)}if(!e)return;Bea(a+44|0);B0(a+56|0,d);return}function LA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+-16|0;d=c[b+4>>2]|0;a=c[b>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+16>>2]|0;a=c[b+12>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+40>>2]|0;f=g+16|0;a=c[b+36>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(!(Yrb(e)|0))f_a(f,e);a=a+4|0}d=c[b+28>>2]|0;a=c[b+24>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(Yrb(e)|0)vba(g,e);else xka(f,e);a=a+4|0}tta(f,b+48|0);tta(f,b+84|0);return}function MA(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;k=yb;yb=yb+16|0;j=k+8|0;f=k;if(!(a[b+28>>0]&1)){if((c[(c[d+28>>2]|0)+4>>2]|0)==6){yb=k;return}e=d+32|0;i=c[e>>2]|0;if((i|0)!=0?(c[i+4>>2]|0)==6:0){yb=k;return}}else e=d+32|0;h=d+8|0;nrb(j,h);Hib(f,h);h=j+4|0;i=c[f>>2]|0;g=c[f+4>>2]|0;f=b+24|0;while(1){if(!(dhb(c[j>>2]|0,c[h>>2]|0,i,g)|0))break;l=Qab(j)|0;if(dub(c[l>>2]|0,c[f>>2]|0)|0)mra(b,c[e>>2]|0);hob(j)}if(!(dub(c[d+24>>2]|0,c[f>>2]|0)|0)){yb=k;return}mra(b,c[e>>2]|0);yb=k;return}function NA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h+8|0;d=h+4|0;f=h;g=tfb(c[b>>2]|0)|0;c[f>>2]=c[g+8>>2];c[e>>2]=c[f>>2];b=GF(a+16|0,e)|0;c[d>>2]=b;b=e6(a+84|0,d)|0;d=a+80|0;e=b+4|0;f=c[e>>2]|0;if((f|0)==(c[b+8>>2]|0))_M(b,d);else{c[f>>2]=c[d>>2];c[e>>2]=(c[e>>2]|0)+4}if(!(c[g+16>>2]|0)){Hkb(a+16|0);yb=h;return}else{g=c[d>>2]|0;xE(a+16|0);jP(g,c[d>>2]|0);yb=h;return}}function OA(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)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);b:do if((i|0)==5){do if(f){g=d&255;if((a[b>>0]|0)==g<<24>>24)if(!e)break;else break b;f=J(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break c;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break}}else i=11;while(0);if((i|0)==11)if(!e)break;while(1){if((a[b>>0]|0)==g<<24>>24)break b;e=e+-1|0;if(!e)break;else b=b+1|0}}while(0);b=0}while(0);return b|0}function PA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=yb;yb=yb+32|0;d=i+20|0;e=i;f=c[a>>2]|0;g=(c[a+4>>2]|0)-f>>4;h=g+1|0;if(h>>>0>268435455)Apa();else{j=(c[a+8>>2]|0)-f|0;f=j>>3;O5(e,j>>4>>>0<134217727?(f>>>0>>0?h:f):268435455,g,a+12|0);h=e+8|0;g=c[h>>2]|0;Pwb(d,b);c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=c[d>>2];c[h>>2]=g+16;RD(a,e);hX(e);yb=i;return}}function QA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f;if((d|0)!=11){e=0;yb=f;return e|0}d=Ifb(c[a+4>>2]|0)|0;g=rl(a)|0;c[d+16>>2]=g;g=rl(a)|0;c[d+12>>2]=g;g=rl(a)|0;c[d+8>>2]=g;do if((Eu(a)|0)<<24>>24){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;D8(e,116364,Zzb(116364)|0);n=0;da(4022,a|0,e|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;Chb(e);Ea(g|0)}else{Chb(e);break}}while(0);$ja(d);c[b>>2]=d;g=1;yb=f;return g|0}function RA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h+8|0;d=h+4|0;f=h;g=tfb(c[b>>2]|0)|0;c[f>>2]=c[g+8>>2];c[e>>2]=c[f>>2];b=GF(a+16|0,e)|0;c[d>>2]=b;b=e6(a+84|0,d)|0;d=a+80|0;e=b+4|0;f=c[e>>2]|0;if((f|0)==(c[b+8>>2]|0))_M(b,d);else{c[f>>2]=c[d>>2];c[e>>2]=(c[e>>2]|0)+4}if(!(c[g+16>>2]|0)){Hkb(a+16|0);yb=h;return}else{g=c[d>>2]|0;CE(a+16|0);oP(g,c[d>>2]|0);yb=h;return}}function SA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+128|0;d=i;f=i+24|0;g=b+12|0;e=c[g>>2]|0;h=c[e+4>>2]|0;e=ffb(e)|0;if(!(Kvb(h)|0)){h=0;yb=i;return h|0}aO(d,0,h);if(!(yda(e+8|0,d)|0)){h=0;yb=i;return h|0}d=b+8|0;e=c[d>>2]|0;if(((e|0)!=(xn(h,9)|0)?(e=c[d>>2]|0,(e|0)!=(xn(h,10)|0)):0)?(e=c[d>>2]|0,(e|0)!=(xn(h,11)|0)):0){h=0;yb=i;return h|0}h=pob(c[a+40>>2]|0)|0;VA(f,h,c[b+16>>2]|0);h=QGa(f)|0;Fha(f);if(h){h=0;yb=i;return h|0}h=c[g>>2]|0;yb=i;return h|0}function TA(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=a+44|0;a=c[i>>2]|0;j=T3a(c[a>>2]|0,d,1)|0;h=hIa(c[a>>2]|0,11,j,h)|0;g=hIa(c[a>>2]|0,7,g,h)|0;h=c[i>>2]|0;a=T3a(c[h>>2]|0,e,1)|0;e=T3a(c[c[i>>2]>>2]|0,f,1)|0;e=hIa(c[h>>2]|0,10,a,e)|0;a=c[i>>2]|0;e=hIa(c[a>>2]|0,8,g,e)|0;b=tVa(c[a>>2]|0,b,e)|0;e=c[i>>2]|0;g=T3a(c[e>>2]|0,d,1)|0;h=T3a(c[c[i>>2]>>2]|0,f,1)|0;return Uha(a,b,hIa(c[e>>2]|0,10,g,h)|0)|0}function UA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}g=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}a=c[b+40>>2]|0;h=g+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))O2a(h,e);d=d+4|0}f=c[b+28>>2]|0;d=g+52|0;a=c[b+24>>2]|0;while(1){if((a|0)==(f|0))break;e=c[a>>2]|0;if(Yrb(e)|0)Phb(c[d>>2]|0);else eda(h,e);a=a+4|0}Jxa(h,b+48|0);Jxa(h,b+84|0);return}function VA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;$lb(b);a[b+26>>0]=0;a[b+27>>0]=0;g=b+28|0;yib(g);h=b+40|0;yib(h);i=b+52|0;yib(i);j=b+64|0;yib(j);f=b+80|0;c[b+76>>2]=0;yib(f);a[b+24>>0]=a[d+12>>0]&1;a[b+25>>0]=a[d+13>>0]&1;if(!e)return;n=0;da(808,b|0,e|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Khb(f);Khb(j);Khb(i);lmb(h);lmb(g);Hqb(b);Ea(e|0)}else return}function WA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h+8|0;d=h+4|0;f=h;g=tfb(c[b>>2]|0)|0;c[f>>2]=c[g+8>>2];c[e>>2]=c[f>>2];b=GF(a,e)|0;c[d>>2]=b;b=e6(a+68|0,d)|0;d=a+64|0;e=b+4|0;f=c[e>>2]|0;if((f|0)==(c[b+8>>2]|0))_M(b,d);else{c[f>>2]=c[d>>2];c[e>>2]=(c[e>>2]|0)+4}if(!(c[g+16>>2]|0)){Hkb(a);yb=h;return}else{g=c[d>>2]|0;OE(a);yO(g,c[d>>2]|0);yb=h;return}}function XA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h+8|0;d=h+4|0;f=h;g=tfb(c[b>>2]|0)|0;c[f>>2]=c[g+8>>2];c[e>>2]=c[f>>2];b=GF(a+16|0,e)|0;c[d>>2]=b;b=e6(a+84|0,d)|0;d=a+80|0;e=b+4|0;f=c[e>>2]|0;if((f|0)==(c[b+8>>2]|0))_M(b,d);else{c[f>>2]=c[d>>2];c[e>>2]=(c[e>>2]|0)+4}if(!(c[g+16>>2]|0)){Hkb(a+16|0);yb=h;return}else{g=c[d>>2]|0;DE(a+16|0);oP(g,c[d>>2]|0);yb=h;return}}function YA(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;g=b+12|0;if(!(a[g>>0]&1))f=-1;else{f=(c[b+4>>2]|0)-(c[b>>2]|0)|0;BM(IWa(Ym(IWa(Ym(IWa(150620,109078)|0,e)|0,112332)|0,f)|0,139927)|0)}F1(e,b);if(!(a[g>>0]&1))return b|0;e=b+4|0;while(1){if(f>>>0>=((c[e>>2]|0)-(c[b>>2]|0)|0)>>>0)break;h=IWa(150620,113424)|0;g=NQa(b,f)|0;Ym(IWa(Zm(h,d[g>>0]|0)|0,112332)|0,f)|0;IWa(150620,128472)|0;f=f+1|0}return b|0}function ZA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=yb;yb=yb+32|0;d=i+20|0;e=i;f=c[a>>2]|0;g=(c[a+4>>2]|0)-f>>4;h=g+1|0;if(h>>>0>268435455)Apa();else{j=(c[a+8>>2]|0)-f|0;f=j>>3;O5(e,j>>4>>>0<134217727?(f>>>0>>0?h:f):268435455,g,a+12|0);h=e+8|0;g=c[h>>2]|0;Krb(d,b);c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=c[d>>2];c[h>>2]=g+16;RD(a,e);hX(e);yb=i;return}}function _A(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=yb;yb=yb+32|0;f=g;c[f>>2]=b;c[f+4>>2]=d;b=g+20|0;d=g+8|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;D8(d,e,Zzb(e)|0);n=0;ea(214,b|0,f|0,d|0);e=n;n=0;do if(!(e&1)){n=0;da(4192,a|0,b|0);e=n;n=0;if(e&1){g=sa()|0;P()|0;Chb(b);b=g;break}else{Chb(b);Chb(d);c[a>>2]=50604;d=f;e=c[d+4>>2]|0;f=a+8|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;yb=g;return}}else{b=sa()|0;P()|0}while(0);Chb(d);Ea(b|0)}function $A(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=PH(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}N7(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function aB(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;j=yb;yb=yb+16|0;k=j;anb(k,b);b=c[k>>2]|0;n=0;g=U(66,b|0,151356)|0;l=n;n=0;if(!(l&1)?(n=0,W(c[(c[g>>2]|0)+48>>2]|0,g|0,31216,31248,d|0)|0,l=n,n=0,!(l&1)):0){n=0;b=U(66,b|0,151364)|0;l=n;n=0;if(((!(l&1)?(n=0,h=S(c[(c[b>>2]|0)+12>>2]|0,b|0)|0,l=n,n=0,!(l&1)):0)?(c[e>>2]=h,n=0,i=S(c[(c[b>>2]|0)+16>>2]|0,b|0)|0,l=n,n=0,!(l&1)):0)?(c[f>>2]=i,n=0,da(c[(c[b>>2]|0)+20>>2]|0,a|0,b|0),l=n,n=0,!(l&1)):0){XWa(k);yb=j;return}b=sa()|0;P()|0}else{b=sa()|0;P()|0}XWa(k);Ea(b|0)}function bB(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;k=yb;yb=yb+16|0;l=k;anb(l,d);d=c[l>>2]|0;n=0;h=U(66,d|0,151324)|0;m=n;n=0;if(!(m&1)?(n=0,W(c[(c[h>>2]|0)+32>>2]|0,h|0,31216,31248,e|0)|0,m=n,n=0,!(m&1)):0){n=0;d=U(66,d|0,151340)|0;m=n;n=0;if(((!(m&1)?(n=0,i=S(c[(c[d>>2]|0)+12>>2]|0,d|0)|0,m=n,n=0,!(m&1)):0)?(a[f>>0]=i,n=0,j=S(c[(c[d>>2]|0)+16>>2]|0,d|0)|0,m=n,n=0,!(m&1)):0)?(a[g>>0]=j,n=0,da(c[(c[d>>2]|0)+20>>2]|0,b|0,d|0),m=n,n=0,!(m&1)):0){XWa(l);yb=k;return}d=sa()|0;P()|0}else{d=sa()|0;P()|0}XWa(l);Ea(d|0)}function cB(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;a=a+44|0;i=c[a>>2]|0;j=T3a(c[i>>2]|0,e,1)|0;g=hIa(c[i>>2]|0,7,g,j)|0;g=hIa(c[i>>2]|0,10,g,h)|0;i=c[a>>2]|0;d=T3a(c[i>>2]|0,d,1)|0;h=T3a(c[c[a>>2]>>2]|0,f,1)|0;h=hIa(c[i>>2]|0,11,d,h)|0;d=c[a>>2]|0;e=T3a(c[d>>2]|0,e,1)|0;f=T3a(c[c[a>>2]>>2]|0,f,1)|0;f=hIa(c[d>>2]|0,11,e,f)|0;f=tVa(c[d>>2]|0,b,f)|0;return Uha(d,f,hIa(c[c[a>>2]>>2]|0,8,g,h)|0)|0}function dB(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;a=a+44|0;i=c[a>>2]|0;j=T3a(c[i>>2]|0,e,1)|0;g=hIa(c[i>>2]|0,7,g,j)|0;g=hIa(c[i>>2]|0,10,g,h)|0;i=c[a>>2]|0;d=T3a(c[i>>2]|0,d,1)|0;h=T3a(c[c[a>>2]>>2]|0,f,1)|0;h=hIa(c[i>>2]|0,11,d,h)|0;d=c[a>>2]|0;e=T3a(c[d>>2]|0,e,1)|0;f=T3a(c[c[a>>2]>>2]|0,f,1)|0;f=hIa(c[d>>2]|0,12,e,f)|0;f=tVa(c[d>>2]|0,b,f)|0;return Uha(d,f,hIa(c[c[a>>2]>>2]|0,8,g,h)|0)|0}function eB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=yb;yb=yb+64|0;i=j+32|0;k=j+28|0;e=j+24|0;h=j;f=b+36|0;g=WCb(c[f>>2]|0)|0;c[k>>2]=c[d+24>>2];c[i>>2]=c[k>>2];d=wQ(g,i)|0;if(!(Yrb(d)|0)){yb=j;return}k=WCb(c[f>>2]|0)|0;c[e>>2]=c[d+40>>2];c[i>>2]=c[e>>2];d=(sQ(k,i)|0)+4|0;d=c[d>>2]|0;if(!d){k=c[f>>2]|0;WCb(k)|0;k=Ekb(k+152|0)|0;Pwb(c[b+16>>2]|0,k);yb=j;return}else{egb(h);c[h+16>>2]=d;f=c[f>>2]|0;WCb(f)|0;f=Ojb(f+152|0)|0;g=i;d=h;e=g+24|0;do{a[g>>0]=a[d>>0]|0;g=g+1|0;d=d+1|0}while((g|0)<(e|0));mya(f,i)|0;Pwb(c[b+16>>2]|0,f);yb=j;return}}function fB(a){a=a|0;var b=0,d=0,e=0;b=yb;yb=yb+16|0;e=b;do if(a<<24>>24>47){if(a<<24>>24<58){e=(a<<24>>24)+-48|0;yb=b;return e|0}if(a<<24>>24>96){if(a<<24>>24>=103)break;e=(a<<24>>24)+-87|0;yb=b;return e|0}else{if((a+-65&255)>=6)break;e=(a<<24>>24)+-55|0;yb=b;return e|0}}while(0);d=oa(20)|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;b=Zzb(126608)|0;n=0;ea(95,e|0,126608,b|0);b=n;n=0;if(!(b&1)){n=0;da(330,d|0,e|0);b=n;n=0;if(b&1)b=1;else{n=0;ea(122,d|0,31856,511);n=0;b=0}a=sa()|0;P()|0;Chb(e);if(!b){e=a;Ea(e|0)}}else{a=sa()|0;P()|0}va(d|0);e=a;Ea(e|0);return 0}function gB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))XUa(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))ksa(g,e);d=d+4|0}oqa(g,b+48|0);oqa(g,b+84|0);return}function hB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=yb;yb=yb+32|0;b=f+24|0;d=f+12|0;e=f;$z(a,117140);g=a+80|0;a=c[g>>2]|0;c[g>>2]=a+1;f5(e,a);n=0;U(77,e|0,117156)|0;a=n;n=0;if(a&1){g=sa()|0;P()|0;Chb(e);Ea(g|0)}c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];a=0;while(1){if((a|0)==3)break;c[e+(a<<2)>>2]=0;a=a+1|0}n=0;da(230,b|0,d|0);g=n;n=0;if(!(g&1)){Chb(d);Chb(e);yb=f;return c[b>>2]|0}g=sa()|0;P()|0;Chb(d);Chb(e);Ea(g|0);return 0}function iB(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=PH(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}R7(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function jB(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=PH(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}vaa(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function kB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+-16|0;d=c[b+4>>2]|0;a=c[b>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+16>>2]|0;a=c[b+12>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+40>>2]|0;f=g+16|0;a=c[b+36>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(!(Yrb(e)|0))O$a(f,e);a=a+4|0}d=c[b+28>>2]|0;a=c[b+24>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(Yrb(e)|0)l4(g,e);else Lea(f,e);a=a+4|0}Sua(f,b+48|0);Sua(f,b+84|0);return}function lB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))CVa(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Zpa(g,e);d=d+4|0}zqa(g,b+48|0);zqa(g,b+84|0);return}function mB(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;m=yb;yb=yb+32|0;i=m+24|0;k=m+20|0;l=m;g=c[a>>2]|0;j=((c[a+4>>2]|0)-g|0)/12|0;h=j+1|0;f=vxb()|0;if(h>>>0>f>>>0)Apa();g=((c[a+8>>2]|0)-g|0)/12|0;if(g>>>0>>1>>>0){f=g<<1;f=f>>>0>>0?h:f}aR(l,f,j,a+8|0);j=l+8|0;h=c[j>>2]|0;c[k>>2]=c[b>>2];d=c[d>>2]|0;e=c[e>>2]|0;c[i>>2]=c[k>>2];e2a(h,i,d,e);c[j>>2]=h+12;HS(a,l);Rra(l);yb=m;return}function nB(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;g=c[b>>2]|0;h=c[a>>2]|0;j=zcb(g,h)|0;e=g;i=h;f=c[d>>2]|0;g=zcb(f,g)|0;if(!j){if(!g){j=0;return j|0}c[b>>2]=f;c[d>>2]=e;e=c[b>>2]|0;f=c[a>>2]|0;if(!(zcb(e,f)|0)){j=1;return j|0}c[a>>2]=e;c[b>>2]=f;j=2;return j|0}if(g){c[a>>2]=f;c[d>>2]=i;j=1;return j|0}c[a>>2]=e;c[b>>2]=i;e=c[d>>2]|0;if(!(zcb(e,h)|0)){j=1;return j|0}c[b>>2]=e;c[d>>2]=i;j=2;return j|0}function oB(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;if(b|0){e=(ffb(b)|0)+8|0;c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];yb=d;return}d=oa(20)|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;b=Zzb(125646)|0;n=0;ea(95,e|0,125646,b|0);b=n;n=0;if(!(b&1)){n=0;da(330,d|0,e|0);b=n;n=0;if(b&1)b=1;else{n=0;ea(122,d|0,31856,511);n=0;b=0}a=sa()|0;P()|0;Chb(e);if(!b){e=a;Ea(e|0)}}else{a=sa()|0;P()|0}va(d|0);e=a;Ea(e|0)}function pB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=a+64|0;a:do if(!(c[f>>2]|0)){do switch(d&-3|0){case 48:case 16:{e=111245;break}case 1:case 17:{e=111247;break}case 8:{e=111249;break}case 24:{e=111251;break}case 56:{e=111254;break}case 9:case 25:{e=111257;break}case 52:case 20:{e=111260;break}case 5:case 21:{e=111263;break}case 12:{e=111266;break}case 28:{e=111269;break}case 60:{e=111273;break}case 13:case 29:{e=111277;break}default:{a=0;break a}}while(0);e=iV(b,e)|0;c[f>>2]=e;if(e){c[a+88>>2]=d;if((d&2|0)!=0?(xub(e,0,2)|0)!=0:0){o6(c[f>>2]|0)|0;c[f>>2]=0;a=0}}else a=0}else a=0;while(0);return a|0}function qB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+-16|0;d=c[b+4>>2]|0;a=c[b>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+16>>2]|0;a=c[b+12>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+40>>2]|0;f=g+16|0;a=c[b+36>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(!(Yrb(e)|0))d1a(f,e);a=a+4|0}d=c[b+28>>2]|0;a=c[b+24>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(Yrb(e)|0)vba(g,e);else Vja(f,e);a=a+4|0}lwa(f,b+48|0);lwa(f,b+84|0);return}function rB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i+12|0;h=i;if(a[b+1>>0]&1){f=a[e+11>>0]|0;if(f<<24>>24<0)f=c[e+4>>2]|0;else f=f&255;if(f|0){Rga(g,e);n=0;ea(198,b|0,d|0,g|0);h=n;n=0;if(h&1){i=sa()|0;P()|0;Chb(g);Ea(i|0)}else{Chb(g);yb=i;return}}}Rga(h,e);n=0;ea(199,b|0,d|0,h|0);g=n;n=0;if(g&1){i=sa()|0;P()|0;Chb(h);Ea(i|0)}else{Chb(h);yb=i;return}}function sB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+-16|0;d=c[b+4>>2]|0;a=c[b>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+16>>2]|0;a=c[b+12>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+40>>2]|0;f=g+16|0;a=c[b+36>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(!(Yrb(e)|0))I1a(f,e);a=a+4|0}d=c[b+28>>2]|0;a=c[b+24>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(Yrb(e)|0)cra(g,e);else mea(f,e);a=a+4|0}Swa(f,b+48|0);Swa(f,b+84|0);return}function tB(b,d){b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+16|0;f=e;if(a[(c[b>>2]|0)+92>>0]&1){f=Vr(d,1)|0;f=UBb(a[f>>0]|0)|0;f=f?1:2;ap(b,d,f+1|0,$db(b,Vr(d,f)|0)|0);yb=e;return}e=oa(20)|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;d=Zzb(119537)|0;n=0;ea(95,f|0,119537,d|0);d=n;n=0;if(!(d&1)){n=0;da(330,e|0,f|0);d=n;n=0;if(d&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}b=sa()|0;P()|0;Chb(f);if(!d){f=b;Ea(f|0)}}else{b=sa()|0;P()|0}va(e|0);f=b;Ea(f|0)}function uB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;j=uH(a,b,d,e,g)|0;h=c[f>>2]|0;i=c[e>>2]|0;if(!(_ba(g,h,i)|0))return j|0;c[e>>2]=h;c[f>>2]=i;f=c[e>>2]|0;h=c[d>>2]|0;if(!(_ba(g,f,h)|0)){j=j+1|0;return j|0}c[d>>2]=f;c[e>>2]=h;f=c[d>>2]|0;h=c[b>>2]|0;if(!(_ba(g,f,h)|0)){j=j+2|0;return j|0}c[b>>2]=f;c[d>>2]=h;f=c[b>>2]|0;h=c[a>>2]|0;if(!(_ba(g,f,h)|0)){j=j+3|0;return j|0}c[a>>2]=f;c[b>>2]=h;j=j+4|0;return j|0}function vB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+32|0;g=h;d=c[a>>2]|0;e=((c[a+4>>2]|0)-d|0)/24|0;f=e+1|0;if(f>>>0>178956970)Apa();i=((c[a+8>>2]|0)-d|0)/24|0;d=i<<1;s9(g,i>>>0<89478485?(d>>>0>>0?f:d):178956970,e,a+12|0);d=g+8|0;e=c[d>>2]|0;n=0;da(4200,e|0,b|0);b=n;n=0;if(b&1){i=sa()|0;P()|0;F6(g);Ea(i|0)}else{c[d>>2]=e+24;SQ(a,g);F6(g);yb=h;return}}function wB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[a+(e<<2)>>2]=0;e=e+1|0}n=0;e=S(233,b|0)|0;f=n;n=0;if(!(f&1)?(n=0,da(91,a|0,e|0),f=n,n=0,!(f&1)):0){f=c[d+4>>2]|0;e=c[d>>2]|0;while(1){b=e;if((f|0)==(b|0)){g=11;break}n=0;e=S(233,c[e+4>>2]|0)|0;d=n;n=0;if(d&1)break;n=0;da(91,a|0,e|0);d=n;n=0;if(d&1)break;e=b+8|0}if((g|0)==11)return;g=sa()|0;P()|0;Chb(a);Ea(g|0)}g=sa()|0;P()|0;Chb(a);Ea(g|0)}function xB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+-16|0;d=c[b+4>>2]|0;a=c[b>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+16>>2]|0;a=c[b+12>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+40>>2]|0;f=g+16|0;a=c[b+36>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(!(Yrb(e)|0))P2a(f,e);a=a+4|0}d=c[b+28>>2]|0;a=c[b+24>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(Yrb(e)|0)xk(g,e);else jfa(f,e);a=a+4|0}Kxa(f,b+48|0);Kxa(f,b+84|0);return}function yB(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=d-b|0;f=a+8|0;e=c[a>>2]|0;i=e;if(j>>>0>((c[f>>2]|0)-e|0)>>>0){CSa(a);e=ZBb()|0;if(j>>>0>e>>>0)Apa();f=(c[f>>2]|0)-(c[a>>2]|0)|0;if(f>>>0>>1>>>0){e=f<<1;e=e>>>0>>0?j:e}hxa(a,e);sya(a,b,d);return}h=a+4|0;f=(c[h>>2]|0)-e|0;g=j>>>0>f>>>0;e=g?f:j;if(e|0)Pxa(i|0,b|0,e|0)|0;if(g){sya(a,g?b+f|0:d,d);return}else{c[h>>2]=i+e;return}}function zB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+128|0;d=h+64|0;f=h+56|0;g=h;Y3(d);e=a+36|0;i=WCb(c[e>>2]|0)|0;n=0;ea(104,d+16|0,b|0,i|0);i=n;n=0;if(i&1){i=sa()|0;P()|0;JXa(d);Ea(i|0)}JXa(d);d=b+44|0;RO(a+16|0,d);if((c[b+12>>2]|0)==0?vub(c[(c[d>>2]|0)+4>>2]|0)|0:0){Gsb(f,WCb(c[e>>2]|0)|0);i=Q6a(c[f>>2]|0,c[d>>2]|0)|0;c[d>>2]=i}Y3(g);i=WCb(c[e>>2]|0)|0;n=0;ea(104,g+16|0,b|0,i|0);i=n;n=0;if(!(i&1)){JXa(g);yb=h;return}i=sa()|0;P()|0;JXa(g);Ea(i|0)}function AB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;ok(a,b,d);if(lsb(a)|0)return;e=d+4|0;f=c[e>>2]|0;g=vub(f)|0;b=a+16|0;a=c[b>>2]|0;if(g){if((a|0)==(f|0))return}else if((vub(a)|0)^1|(a|0)==(f|0))return;g=IWa(150620,96798)|0;g=IWa(IWa(g,ala(c[e>>2]|0)|0)|0,96808)|0;SEa(Wm(IWa(IWa(g,ala(c[b>>2]|0)|0)|0,96818)|0,d)|0,10)|0;if((c[b>>2]|0)==(c[e>>2]|0))return;else ma(96825,96854,129,112649)}function BB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=b+8|0;d=c[e>>2]|0;if(eCb(d)|0){f=O4(a+56|0,b+8|0)|0;d=c[e>>2]|0;f=(c[f+4>>2]|0)!=(c[f>>2]|0)}else f=0;if(!(eCb(d)|0))return;d=b+8|0;e=a+68|0;if(f9(e,d)|0){Aea(a+44|0);vla(e,d)}if(!f)return;Aea(a+44|0);A0(a+56|0,d);return}function CB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=b+8|0;d=c[e>>2]|0;if(eCb(d)|0){f=O4(a+56|0,b+8|0)|0;d=c[e>>2]|0;f=(c[f+4>>2]|0)!=(c[f>>2]|0)}else f=0;if(!(eCb(d)|0))return;d=b+8|0;e=a+68|0;if(f9(e,d)|0){Cea(a+44|0);vla(e,d)}if(!f)return;Cea(a+44|0);C0(a+56|0,d);return}function DB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=b+8|0;d=c[e>>2]|0;if(eCb(d)|0){f=O4(a+56|0,b+8|0)|0;d=c[e>>2]|0;f=(c[f+4>>2]|0)!=(c[f>>2]|0)}else f=0;if(!(eCb(d)|0))return;d=b+8|0;e=a+68|0;if(f9(e,d)|0){Dea(a+44|0);vla(e,d)}if(!f)return;Dea(a+44|0);D0(a+56|0,d);return}function EB(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=PH(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}aca(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function FB(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;h=yb;yb=yb+96|0;i=h+88|0;l=h+24|0;n=h;j=h+60|0;k=h+56|0;S4(d,e,f);Wkb(l);Bqb(n,WCb(e)|0);m=l+8|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];c[m+16>>2]=c[n+16>>2];c[l+4>>2]=1;Ieb(j);a[j+8>>0]=f;a[j+9>>0]=1;G1a(j+16|0,f,0)|0;a[j+20>>0]=1;c[j+24>>2]=l;c[j+4>>2]=g;g=c[d+36>>2]|0;f=c[(c[g>>2]|0)+24>>2]|0;c[k>>2]=e;c[i>>2]=c[k>>2];Ub[f&255](b,g,j,i);yb=h;return}function GB(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=GI(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}qda(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function HB(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;k=yb;yb=yb+80|0;j=k+48|0;l=k+44|0;g=k+24|0;f=k;i=k+40|0;c[l>>2]=e;d=oC(d,l)|0;if(d|0?(h=d+16|0,c[g>>2]=c[h>>2],c[g+4>>2]=c[h+4>>2],c[g+8>>2]=c[h+8>>2],c[g+12>>2]=c[h+12>>2],h=c[d+32>>2]|0,eCb(h)|0):0){e=c[d+36>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=h;c[f+20>>2]=e;e=j;d=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(d|0));Wza(b,j);yb=k;return}c[i>>2]=c[37329];c[j>>2]=c[i>>2];Ulb(b,j);yb=k;return}function IB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=c[a+56>>2]|0;f=g+(b*20|0)+16|0;c[f>>2]=(c[f>>2]|0)+1;f=a+44|0;e=a+40|0;d=c[e>>2]|0;a=(c[f>>2]|0)-d>>2;if(a>>>0<=1)return;a=c[d+(a+-2<<2)>>2]|0;if(H8(a)|0){d=qPa(a)|0;e=g+(b*20|0)+8|0;f=c[e>>2]|0;a=g+(b*20|0)+12|0;if(f){if((c[a>>2]|0)!=(d|0))c[a>>2]=0}else c[a>>2]=d;c[e>>2]=f+1;return}d=c[e>>2]|0;a=(c[f>>2]|0)-d>>2;if(a>>>0<=2)return;a=c[d+(a+-3<<2)>>2]|0;if(!(zM(a)|0))return;d=Q0a(a)|0;e=g+(b*20|0)|0;f=c[e>>2]|0;a=g+(b*20|0)+4|0;if(f){if((c[a>>2]|0)!=(d|0))c[a>>2]=0}else c[a>>2]=d;c[e>>2]=f+1;return}function JB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=yb;yb=yb+16|0;i=k+8|0;h=k;j=(c[a>>2]|0)+4|0;Kra(i,j);Vda(h,j);j=i+4|0;h=c[h+4>>2]|0;b=c[j>>2]|0;while(1){if((b|0)==(h|0))break;f=c[b>>2]|0;d=f+104|0;g=OC(a,c[d>>2]|0)|0;c[d>>2]=g;d=WCb(c[f+16>>2]|0)|0;f=Ryb(f)|0;while(1){g=d;if((f|0)==(g|0))break;d=(c[d+12>>2]|0)+16|0;e=c[d>>2]|0;if(e|0){e=OC(a,e)|0;c[d>>2]=e}d=c[g+4>>2]|0}b=b+4|0;c[j>>2]=b;d=c[i>>2]|0;if((b-(c[d>>2]|0)|0)==4096){b=d+4|0;c[i>>2]=b;b=c[b>>2]|0;c[j>>2]=b}}yb=k;return}function KB(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=lK(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}R7(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function LB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;i=j;e=d;do{f=c[e+12>>2]|0;e=iqb(f)|0}while((e|0)!=0);e=jqb(f)|0;f=b+40|0;g=d+8|0;h=c[g>>2]|0;if(!e){PM(f,h);yb=j;return}e=e+8|0;if(!(B9(f,h,c[e>>2]|0)|0)){PM(f,h);Mp(f,c[g>>2]|0,c[e>>2]|0);yb=j;return}if(!(a[b+28>>0]&1)){yb=j;return}if(eCb(c[d+4>>2]|0)|0)Pwb(c[b>>2]|0,c[d+12>>2]|0);else{Gsb(i,c[b+32>>2]|0);i=Q6a(c[i>>2]|0,c[d+12>>2]|0)|0;Pwb(c[b>>2]|0,i)}a[b+36>>0]=1;yb=j;return}function MB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;h=i;e=c[a>>2]|0;g=(c[a+4>>2]|0)-e>>4;f=g+1|0;d=Wub()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>4>>>0>>1>>>0){d=e>>3;d=d>>>0>>0?f:d}AR(h,d,g,a+8|0);d=h+8|0;e=c[d>>2]|0;n=0;da(2197,e|0,c[b>>2]|0);b=n;n=0;if(b&1){i=sa()|0;P()|0;csa(h);Ea(i|0)}else{c[d>>2]=e+16;LT(a,h);csa(h);yb=i;return}}function NB(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=PH(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}qda(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function OB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;f=d+4|0;g=d;SEa(c[a>>2]|0,40)|0;SEa(Obb(c[a>>2]|0,134227)|0,32)|0;c[g>>2]=c[b+12>>2];e=c[a>>2]|0;c[f>>2]=c[g>>2];SEa(Ica(f,e)|0,32)|0;e=c[a>>2]|0;Ym(e,WCb(c[b+16>>2]|0)|0)|0;if(!(Etb(b)|0)){g=c[a>>2]|0;IWa(g,98570)|0;yb=d;return}g=SEa(c[a>>2]|0,32)|0;Ym(g,WCb(c[b+20>>2]|0)|0)|0;g=c[a>>2]|0;IWa(g,98570)|0;yb=d;return}function PB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))DZa(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Ova(g,e);d=d+4|0}Ysa(g,b+48|0);Ysa(g,b+84|0);return}function QB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=b+4|0;b=jF(d,c[b+4>>2]|0,h)|0;do if((b|0)!=(h|0)){f=b+16|0;e=a[f+11>>0]|0;if(e<<24>>24<0){g=c[b+20>>2]|0;e=c[f>>2]|0}else{g=e&255;e=f}f=a[d+11>>0]|0;i=f<<24>>24<0;f=i?c[d+4>>2]|0:f&255;e=qdb(i?c[d>>2]|0:d,e,g>>>0>>0?g:f)|0;if(!e){if(f>>>0>>0)break;return b|0}else{if((e|0)<=-1)break;return b|0}}while(0);i=h;return i|0}function RB(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;h=(a[e+20>>0]&1)==0;f=d[e+8>>0]|0;g=WCb(c[e+12>>2]|0)|0;if(h){j=WCb(c[e+16>>2]|0)|0;i=Cda(b,c[e+24>>2]|0)|0;h=Cda(b,c[e+28>>2]|0)|0;h=S$(c[b+32>>2]|0,f,g,j,i,h,c[e+32>>2]|0)|0;return h|0}else{i=Cda(b,c[e+24>>2]|0)|0;j=Cda(b,c[e+28>>2]|0)|0;j=TKa(c[b+32>>2]|0,f,g,i,j,c[e+32>>2]|0)|0;return j|0}return 0}function SB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;h=i;e=c[a>>2]|0;g=((c[a+4>>2]|0)-e|0)/12|0;f=g+1|0;d=vxb()|0;if(f>>>0>d>>>0)Apa();e=((c[a+8>>2]|0)-e|0)/12|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}aR(h,d,g,a+8|0);e=h+8|0;f=c[e>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}c[e>>2]=f+12;LI(a,h);Nha(h);yb=i;return}function TB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;i=j;g=c[a+8>>2]|0;d=c[a+4>>2]|0;if(g-d>>2>>>0>=b>>>0){EHa(a,b);yb=j;return}e=c[a>>2]|0;h=d-e>>2;f=h+b|0;d=YBb()|0;if(f>>>0>d>>>0)Apa();e=g-e|0;if(e>>2>>>0>>1>>>0){d=e>>1;d=d>>>0>>0?f:d}aS(i,d,h,a+8|0);dGa(i,b);rP(a,i);d7(i);yb=j;return}function UB(b,e){b=b|0;e=e|0;var f=0,g=0;f=e;g=f+16|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(g|0));switch(c[b+16>>2]|0){case 3:case 1:{g=d[b>>0]|d[b+1>>0]<<8|d[b+2>>0]<<16|d[b+3>>0]<<24;a[e>>0]=g;a[e+1>>0]=g>>8;a[e+2>>0]=g>>16;a[e+3>>0]=g>>24;return}case 4:case 2:{f=b;b=f;b=d[b>>0]|d[b+1>>0]<<8|d[b+2>>0]<<16|d[b+3>>0]<<24;f=f+4|0;f=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;g=e;e=g;a[e>>0]=b;a[e+1>>0]=b>>8;a[e+2>>0]=b>>16;a[e+3>>0]=b>>24;g=g+4|0;a[g>>0]=f;a[g+1>>0]=f>>8;a[g+2>>0]=f>>16;a[g+3>>0]=f>>24;return}case 5:{f=e;g=f+16|0;do{a[f>>0]=a[b>>0]|0;f=f+1|0;b=b+1|0}while((f|0)<(g|0));return}case 6:case 0:{ma(141129,111484,130,111514);break}default:return}}function VB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))a_a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Isa(g,e);d=d+4|0}ota(g,b+48|0);ota(g,b+84|0);return}function WB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))b_a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Jsa(g,e);d=d+4|0}pta(g,b+48|0);pta(g,b+84|0);return}function XB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))c_a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Ksa(g,e);d=d+4|0}qta(g,b+48|0);qta(g,b+84|0);return}function YB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))d_a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Lsa(g,e);d=d+4|0}rta(g,b+48|0);rta(g,b+84|0);return}function ZB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))e_a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Msa(g,e);d=d+4|0}sta(g,b+48|0);sta(g,b+84|0);return}function _B(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+-16|0;d=c[b+4>>2]|0;a=c[b>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+16>>2]|0;a=c[b+12>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+40>>2]|0;f=g+16|0;a=c[b+36>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(!(Yrb(e)|0))H4a(f,e);a=a+4|0}d=c[b+28>>2]|0;a=c[b+24>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(Yrb(e)|0)vf(g,e);else wga(f,e);a=a+4|0}Pza(f,b+48|0);Pza(f,b+84|0);return}function $B(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+-16|0;d=c[b+4>>2]|0;a=c[b>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+16>>2]|0;a=c[b+12>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+40>>2]|0;f=g+16|0;a=c[b+36>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(!(Yrb(e)|0))L4a(f,e);a=a+4|0}d=c[b+28>>2]|0;a=c[b+24>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(Yrb(e)|0)$o(g,e);else xga(f,e);a=a+4|0}Tza(f,b+48|0);Tza(f,b+84|0);return}function aC(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=b+11|0;h=a[j>>0]|0;k=b+4|0;g=c[k>>2]|0;i=h&255;do if((h<<24>>24<0?g:i)|0){if((d|0)!=(e|0)){g=e;h=d;while(1){g=g+-4|0;if(h>>>0>=g>>>0)break;i=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=i;h=h+4|0}h=a[j>>0]|0;i=h&255;g=c[k>>2]|0}j=h<<24>>24<0;b=j?c[b>>2]|0:b;k=e+-4|0;j=b+(j?g:i)|0;g=b;while(1){h=a[g>>0]|0;i=h<<24>>24>0&h<<24>>24!=127;if(d>>>0>=k>>>0)break;if(i?(c[d>>2]|0)!=(h<<24>>24|0):0){l=11;break}d=d+4|0;g=(j-g|0)>1?g+1|0:g}if((l|0)==11){c[f>>2]=4;break}if(i?((c[k>>2]|0)+-1|0)>>>0>=h<<24>>24>>>0:0)c[f>>2]=4}while(0);return}function bC(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;m=yb;yb=yb+32|0;h=m+24|0;i=m+16|0;g=m+8|0;j=m+4|0;k=m;_zb(b);d=c[b+32>>2]|0;l=ljb(d)|0;if((l|0)==6){HQ(a,d,c[b+28>>2]|0);yb=m;return}e=b+8|0;nrb(i,e);Hib(g,e);e=i+4|0;f=c[g>>2]|0;d=c[g+4>>2]|0;while(1){if(!(dhb(c[i>>2]|0,c[e>>2]|0,f,d)|0))break;g=Qab(i)|0;c[j>>2]=c[g>>2];c[h>>2]=c[j>>2];era(a,h,l);hob(i)}c[k>>2]=c[b+24>>2];c[h>>2]=c[k>>2];era(a,h,l);yb=m;return}function cC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=b+8|0;h=b+96|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;if(a[h>>0]&1?(f=c[b+32>>2]|0,f|0):0)PCb(f);i=b+97|0;if(a[i>>0]&1?(g=c[b+56>>2]|0,g|0):0)PCb(g);f=b+52|0;c[f>>2]=e;do if(e>>>0>8){f=b+98|0;if((a[f>>0]&1)==0|(d|0)==0){g=OCb(e)|0;c[b+32>>2]=g;a[h>>0]=1;break}else{c[b+32>>2]=d;a[h>>0]=0;break}}else{c[b+32>>2]=b+44;c[f>>2]=8;a[h>>0]=0;f=b+98|0}while(0);if(a[f>>0]&1){c[b+60>>2]=0;c[b+56>>2]=0;a[i>>0]=0;return b|0}f=(e|0)>8?e:8;c[b+60>>2]=f;if((d|0)!=0&f>>>0>7){c[b+56>>2]=d;a[i>>0]=0;return b|0}else{d=OCb(f)|0;c[b+56>>2]=d;a[i>>0]=1;return b|0}return 0}function dC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=c[b+40>>2]|0;d=c[b+36>>2]|0;while(1){if((d|0)==(e|0))break;f=c[d>>2]|0;if(!(Yrb(f)|0))t1a(a,f);d=d+4|0}e=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(e|0))break;f=c[d>>2]|0;if(Yrb(f)|0)EK(a,f);else Zia(a,f);d=d+4|0}Ewa(a,b+48|0);Ewa(a,b+84|0);return}function eC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+-16|0;d=c[b+4>>2]|0;a=c[b>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+16>>2]|0;a=c[b+12>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+40>>2]|0;f=g+16|0;a=c[b+36>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(!(Yrb(e)|0))l5a(f,e);a=a+4|0}d=c[b+28>>2]|0;a=c[b+24>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(Yrb(e)|0)uRa(g,e);else Vga(f,e);a=a+4|0}zAa(f,b+48|0);zAa(f,b+84|0);return}function fC(a,b){a=a|0;b=b|0;var d=0,e=0;if((b|0)!=1){if(b+-1&b)b=Gc(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0>e>>>0){sq(a,b);return}if(b>>>0>=e>>>0)return;if(e>>>0>2?(e&e+-1|0)==0:0){d=~~+I(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(d>>>0>=2)d=1<<32-(M(d+-1|0)|0)}else d=Gc(~~+I(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0)|0;b=b>>>0>>0?d:b;if(b>>>0>=e>>>0)return;sq(a,b);return}function gC(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;l=yb;yb=yb+32|0;f=l+24|0;i=l+16|0;e=l+8|0;j=l+4|0;k=l;if(a[b+33>>0]&1)BM(IWa(150620,113216)|0);g=d+8|0;nrb(i,g);Hib(e,g);g=i+4|0;h=c[e>>2]|0;e=c[e+4>>2]|0;while(1){if(!(dhb(c[i>>2]|0,c[g>>2]|0,h,e)|0))break;Qab(i)|0;hob(i)}i=tI(c[b+28>>2]|0,16)|0;b=c[b+24>>2]|0;c[k>>2]=c[d+24>>2];c[f>>2]=c[k>>2];Pwb(j,rda(b,f)|0);YA(i,c[j>>2]|0)|0;yb=l;return}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,l=0,m=0;l=yb;yb=yb+32|0;d=l+24|0;h=l+16|0;g=l+8|0;i=l+4|0;j=l;e=b+8|0;nrb(h,e);Hib(g,e);e=h+4|0;f=c[g>>2]|0;g=c[g+4>>2]|0;k=b+32|0;while(1){if(!(dhb(c[h>>2]|0,c[e>>2]|0,f,g)|0))break;m=Qab(h)|0;c[i>>2]=c[m>>2];m=c[k>>2]|0;c[d>>2]=c[i>>2];YC(a,d,m,b);hob(h)}c[j>>2]=c[b+24>>2];m=c[k>>2]|0;c[d>>2]=c[j>>2];YC(a,d,m,b);m=c[(c[b+28>>2]|0)+4>>2]|0;UMa(a,(m|0)==6|(m|0)==1,b);yb=l;return}function iC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+32|0;e=f;tw(e,b,d);if(lsb(e)|0){c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];c[a+28>>2]=c[e+28>>2];yb=f;return}else{c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;zsb(a);yb=f;return}}function jC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=((c[a+4>>2]|0)-e|0)/12|0;f=h+1|0;d=vxb()|0;if(f>>>0>d>>>0)Apa();e=((c[a+8>>2]|0)-e|0)/12|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}aR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;c[f>>2]=0;d=f+4|0;c[d>>2]=0;c[f+8>>2]=0;c[f>>2]=c[b>>2];e=b+4|0;c[d>>2]=c[e>>2];d=b+8|0;c[f+8>>2]=c[d>>2];c[d>>2]=0;c[e>>2]=0;c[b>>2]=0;c[h>>2]=f+12;CG(a,g);Una(g);yb=i;return}function kC(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=lK(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}aca(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}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;j=yb;yb=yb+16|0;f=j;h=c[b>>2]|0;c[f>>2]=h;f=pH(f,4)|0;g=c[a+4>>2]|0;a:do if(g){i=g+-1|0;d=(g&i|0)==0;if(!d)if(f>>>0>>0)e=f;else e=(f>>>0)%(g>>>0)|0;else e=f&i;b=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(b)while(1){b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if((f|0)==(a|0)){if((c[b+8>>2]|0)==(h|0))break a}else{if(!d){if(a>>>0>=g>>>0)a=(a>>>0)%(g>>>0)|0}else a=a&i;if((a|0)!=(e|0)){b=0;break a}}}else b=0}else b=0;while(0);yb=j;return b|0}function mC(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+192|0;d=j+184|0;e=j+188|0;h=j+32|0;f=j+28|0;i=j;if(c[37104]|0)IWa(150452,66617)|0;_mb(e);BI(h,a[e>>0]|0,a[e+1>>0]|0,a[e+2>>0]|0);Ftb(f,c[37040]|0);n=0;c[d>>2]=c[f>>2];d=V(53,h|0,b|0,d|0)|0;f=n;n=0;if(f&1){j=sa()|0;P()|0;z3(h);Ea(j|0)}yMa(i,d);n=0;ca(505,i|0);f=n;n=0;if(!(f&1)?(g=i+4|0,n=0,U(59,150452,c[g>>2]|0)|0,f=n,n=0,!(f&1)):0){RCb(c[g>>2]|0);z3(h);yb=j;return}j=sa()|0;P()|0;RCb(c[i+4>>2]|0);z3(h);Ea(j|0)}function nC(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=lK(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}I8(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}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;j=yb;yb=yb+16|0;f=j;h=c[b>>2]|0;c[f>>2]=h;f=pH(f,4)|0;g=c[a+4>>2]|0;a:do if(g){i=g+-1|0;d=(g&i|0)==0;if(!d)if(f>>>0>>0)e=f;else e=(f>>>0)%(g>>>0)|0;else e=f&i;b=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(b)while(1){b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if((a|0)==(f|0)){if((c[b+8>>2]|0)==(h|0))break a}else{if(!d){if(a>>>0>=g>>>0)a=(a>>>0)%(g>>>0)|0}else a=a&i;if((a|0)!=(e|0)){b=0;break a}}}else b=0}else b=0;while(0);yb=j;return b|0}function pC(a,b){a=a|0;b=b|0;var d=0;switch(c[b+8>>2]|0){case 59:case 58:case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:case 47:case 42:case 40:case 38:case 36:case 46:case 41:case 39:case 37:case 35:case 45:case 34:case 32:case 30:case 28:case 26:case 33:case 31:case 29:case 27:case 25:case 44:case 43:case 24:case 23:case 22:case 21:case 20:case 17:case 15:case 13:case 11:case 9:case 7:case 5:case 3:case 1:case 16:case 14:case 12:case 10:case 8:case 6:case 4:case 2:case 0:{d=1;break}case 19:case 18:{d=2;break}case 93:{ma(141129,85950,190,132100);break}case 92:case 91:case 90:case 89:case 88:case 87:case 86:case 85:case 84:case 83:case 82:case 81:case 80:case 79:case 78:case 77:case 76:case 75:case 74:case 73:case 72:case 71:case 70:case 69:case 68:case 67:case 66:case 65:case 64:case 63:case 62:case 61:case 60:{b=1;return b|0}default:d=0}b=d+(Bs(a,c[b+12>>2]|0)|0)|0;return b|0}function qC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))n$a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))loa(g,e);d=d+4|0}yua(g,b+48|0);yua(g,b+84|0);return}function rC(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;i=yb;yb=yb+32|0;f=i+8|0;g=i+4|0;h=i;d=c[b>>2]|0;if(dub(d,c[37376]|0)|0){yb=i;return}if(dub(d,c[37377]|0)|0){yb=i;return}j=c[a>>2]|0;k=c[a+4>>2]|0;d=c[k>>2]|0;c[k>>2]=d+1;uIa(f,j,d);d=c[a+8>>2]|0;n=0;da(230,g|0,f|0);a=n;n=0;if((!(a&1)?(n=0,e=U(160,d|0,g|0)|0,k=n,n=0,!(k&1)):0)?(c[e>>2]=c[b>>2],n=0,da(230,h|0,f|0),k=n,n=0,!(k&1)):0){c[b>>2]=c[h>>2];Chb(f);yb=i;return}k=sa()|0;P()|0;Chb(f);Ea(k|0)}function sC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;h=i;e=c[a>>2]|0;g=((c[a+4>>2]|0)-e|0)/12|0;f=g+1|0;d=vxb()|0;if(f>>>0>d>>>0)Apa();e=((c[a+8>>2]|0)-e|0)/12|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}aR(h,d,g,a+8|0);d=h+8|0;e=c[d>>2]|0;n=0;da(1e3,e|0,b|0);b=n;n=0;if(b&1){i=sa()|0;P()|0;Una(h);Ea(i|0)}else{c[d>>2]=e+12;CG(a,h);Una(h);yb=i;return}}function tC(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=Dz(a,b,d,f)|0;if(!(nE(f,e,d)|0))return g|0;h=c[d>>2]|0;c[d>>2]=c[e>>2];c[e>>2]=h;if(!(nE(f,d,b)|0)){h=g+1|0;return h|0}h=c[b>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=h;if(!(nE(f,b,a)|0)){h=g+2|0;return h|0}h=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=h;h=g+3|0;return h|0}function uC(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=lK(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}Bca(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function vC(a,b){a=a|0;b=b|0;var d=0;d=Rqb(b)|0;if(d|0){Kl(a,d);return}d=hrb(b)|0;if(d|0){Iv(a,d);return}d=wrb(b)|0;if(d|0){bi(a,d);return}d=Qqb(b)|0;if(d|0){YZ(a,d);return}d=Jqb(b)|0;if(d|0){Bj(a,d);return}d=zqb(b)|0;if(d|0){WIa(a,d);return}d=tpb(b)|0;if(!d){Wla((orb(c[(c[a+24>>2]|0)+104>>2]|0)|0)+12|0,b);return}else{WIa(a,d);return}}function wC(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+16|0;IW(d,3138,b);e=wrb(c[b>>2]|0)|0;if(!e){Ck(a,b);IW(d,3142,b);return}a=e+16|0;if(c[a>>2]|0){IW(d,3139,b);IW(d,3137,a)}IW(d,3140,b);IW(d,3137,e+12|0);IW(d,3141,b);IW(d,3137,e+8|0);IW(d,3142,b);return}function xC(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+16|0;IW(d,3412,b);e=wrb(c[b>>2]|0)|0;if(!e){Dk(a,b);IW(d,3416,b);return}a=e+16|0;if(c[a>>2]|0){IW(d,3413,b);IW(d,3411,a)}IW(d,3414,b);IW(d,3411,e+12|0);IW(d,3415,b);IW(d,3411,e+8|0);IW(d,3416,b);return}function yC(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+16|0;IW(d,3293,b);e=wrb(c[b>>2]|0)|0;if(!e){Ek(a,b);IW(d,3297,b);return}a=e+16|0;if(c[a>>2]|0){IW(d,3294,b);IW(d,3292,a)}IW(d,3295,b);IW(d,3292,e+12|0);IW(d,3296,b);IW(d,3292,e+8|0);IW(d,3297,b);return}function zC(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+16|0;IW(d,3531,b);e=wrb(c[b>>2]|0)|0;if(!e){Fk(a,b);IW(d,3535,b);return}a=e+16|0;if(c[a>>2]|0){IW(d,3532,b);IW(d,3530,a)}IW(d,3533,b);IW(d,3530,e+12|0);IW(d,3534,b);IW(d,3530,e+8|0);IW(d,3535,b);return}function AC(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+16|0;IW(d,3650,b);e=wrb(c[b>>2]|0)|0;if(!e){Gk(a,b);IW(d,3654,b);return}a=e+16|0;if(c[a>>2]|0){IW(d,3651,b);IW(d,3649,a)}IW(d,3652,b);IW(d,3649,e+12|0);IW(d,3653,b);IW(d,3649,e+8|0);IW(d,3654,b);return}function BC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>2;f=h+1|0;d=YBb()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>2>>>0>>1>>>0){d=e>>1;d=d>>>0>>0?f:d}aS(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;e=c[b>>2]|0;c[b>>2]=0;c[f>>2]=e;c[h>>2]=f+4;rP(a,g);X0(g);yb=i;return}function CC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))r0a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))zua(g,e);d=d+4|0}qva(g,b+48|0);qva(g,b+84|0);return}function DC(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+16>>2]|0;e=c[b+16>>2]|0;if((d|0)<(e|0)){e=1;return e|0}if((d|0)>(e|0)){e=0;return e|0}switch(d|0){case 1:{e=(Peb(a)|0)<(Peb(b)|0);return e|0}case 3:{e=(Vcb(a)|0)<(Vcb(b)|0);return e|0}case 2:{d=$Xa(a)|0;a=P()|0;e=$Xa(b)|0;b=P()|0;e=(a|0)<(b|0)|(a|0)==(b|0)&d>>>0>>0;return e|0}case 4:{d=rVa(a)|0;a=P()|0;e=rVa(b)|0;b=P()|0;e=(a|0)<(b|0)|(a|0)==(b|0)&d>>>0>>0;return e|0}case 5:{e=(cia(rgb(a)|0,rgb(b)|0,16)|0)<0;return e|0}case 6:case 0:{e=0;return e|0}default:ma(141129,78105,385,140271)}return 0}function EC(b){b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+32|0;d=g+24|0;e=g;f=b+12|0;if(a[f>>0]&1)BM(IWa(150620,114483)|0);pab(e,b);n=0;da(4043,d|0,e|0);b=n;n=0;if(b&1){g=sa()|0;P()|0;TIa(e);Ea(g|0)}TIa(e);if(!(a[f>>0]&1)){f=d;e=c[f+4>>2]|0;f=c[f>>2]|0;O(e|0);yb=g;return f|0}else{b=IWa(150620,116122)|0;e=d;f=c[e>>2]|0;e=c[e+4>>2]|0;BM(IWa(Sm(b,f,e)|0,114633)|0);O(e|0);yb=g;return f|0}return 0}function FC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+32|0;f=h+16|0;i=h+12|0;d=h;c[i>>2]=c[b+24>>2];c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;g=c[b+4>>2]|0;e=c[a+32>>2]|0;n=0;c[f>>2]=c[i>>2];g=W(14,e|0,f|0,d|0,g|0)|0;f=n;n=0;if(f&1){i=sa()|0;P()|0;Vob(d);Ea(i|0)}Vob(d);e=b+12|0;f=g+8|0;b=b+8|0;d=0;while(1){if(d>>>0>=(WCb(c[e>>2]|0)|0)>>>0)break;i=uXa(b,d)|0;Wla(f,Cda(a,c[i>>2]|0)|0);d=d+1|0}yb=h;return g|0}function GC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=((c[a+4>>2]|0)-e|0)/12|0;f=h+1|0;d=vxb()|0;if(f>>>0>d>>>0)Apa();e=((c[a+8>>2]|0)-e|0)/12|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}aR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;aja(f,b);c[h>>2]=f+12;EO(a,g);_8(g);yb=i;return}function HC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=((c[a+4>>2]|0)-e|0)/12|0;f=h+1|0;d=vxb()|0;if(f>>>0>d>>>0)Apa();e=((c[a+8>>2]|0)-e|0)/12|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}aR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;aja(f,b);c[h>>2]=f+12;EO(a,g);$8(g);yb=i;return}function IC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=((c[a+4>>2]|0)-e|0)/12|0;f=h+1|0;d=vxb()|0;if(f>>>0>d>>>0)Apa();e=((c[a+8>>2]|0)-e|0)/12|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}aR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;aja(f,b);c[h>>2]=f+12;EO(a,g);a9(g);yb=i;return}function JC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=((c[a+4>>2]|0)-e|0)/12|0;f=h+1|0;d=vxb()|0;if(f>>>0>d>>>0)Apa();e=((c[a+8>>2]|0)-e|0)/12|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}aR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;aja(f,b);c[h>>2]=f+12;EO(a,g);b9(g);yb=i;return}function KC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=((c[a+4>>2]|0)-e|0)/12|0;f=h+1|0;d=vxb()|0;if(f>>>0>d>>>0)Apa();e=((c[a+8>>2]|0)-e|0)/12|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}aR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;aja(f,b);c[h>>2]=f+12;EO(a,g);c9(g);yb=i;return}function LC(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=d+8|0;g=b+44|0;h=Mba(g,f)|0;if((h|0)==(b+48|0))return;i=h+20|0;e=Keb(c[c[i>>2]>>2]|0)|0;do if((a[b+93>>0]&1)==0?(c[(c[b+120>>2]|0)+(c[f>>2]<<2)>>2]|0)!=1:0){Pwb(c[b+16>>2]|0,e);if(eCb(c[e+4>>2]|0)|0)ma(104180,104084,238,104123);else{m4a(e,1);break}}else j=4;while(0);if((j|0)==4)Pwb(c[b+16>>2]|0,c[e+12>>2]|0);c[c[i>>2]>>2]=d;Bib(d)|0;JN(g,h)|0;a[b+92>>0]=1;return}function MC(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=lK(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}qda(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function NC(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;g=f;b=Psa()|0;c[a+64>>2]=b;c[g>>2]=b;d=a+44|0;e=c[d>>2]|0;if(e>>>0<(c[a+48>>2]|0)>>>0){c[g>>2]=0;c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4;c[g>>2]=0;yb=f;return}n=0;da(2370,a+40|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;a=c[g>>2]|0;c[g>>2]=0;if(!a)Ea(b|0);kSa(a);RCb(a);Ea(b|0)}else{b=c[g>>2]|0;c[g>>2]=0;if(!b){yb=f;return}kSa(b);RCb(b);yb=f;return}}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;j=yb;yb=yb+16|0;e=j+12|0;g=j+8|0;h=j+4|0;i=j;Gsb(g,c[c[a>>2]>>2]|0);d=Rqb(b)|0;do if(d){f=c[d+8>>2]|0;if(eCb(f)|0){c[h>>2]=f;c[e>>2]=c[h>>2];if(BT(d,e)|0){d=vJa(c[g>>2]|0,b)|0;break}else{Cub(i);c[d+8>>2]=c[i>>2];break}}}else d=vJa(c[g>>2]|0,b)|0;while(0);VF(c[c[a>>2]>>2]|0,d);if((WCb(c[d+16>>2]|0)|0)==1){a=uXa(d+12|0,0)|0;a=c[a>>2]|0;yb=j;return a|0}else{a=d;yb=j;return a|0}return 0}function PC(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=b+11|0;g=a[k>>0]|0;h=g<<24>>24<0;if(h)j=c[b+4>>2]|0;else j=g&255;if(j>>>0>>0)hpa();if(h)g=(c[b+8>>2]&2147483647)+-1|0;else g=10;if((g-j|0)>>>0>=f>>>0){if(f|0){if(h)i=c[b>>2]|0;else i=b;g=j-d|0;h=i+d|0;if(g){Shb(h+f|0,h,g)|0;e=h>>>0<=e>>>0&(i+j|0)>>>0>e>>>0?e+f|0:e}Shb(h,e,f)|0;e=j+f|0;if((a[k>>0]|0)<0)c[b+4>>2]=e;else a[k>>0]=e;Fsb(i+e|0,0)}}else BE(b,g,j+f-g|0,j,d,0,f,e);return b|0}function QC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;h=i;e=c[a>>2]|0;g=((c[a+4>>2]|0)-e|0)/12|0;f=g+1|0;d=vxb()|0;if(f>>>0>d>>>0)Apa();e=((c[a+8>>2]|0)-e|0)/12|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}aR(h,d,g,a+8|0);d=h+8|0;e=c[d>>2]|0;n=0;da(234,e|0,b|0);b=n;n=0;if(b&1){i=sa()|0;P()|0;Una(h);Ea(i|0)}else{c[d>>2]=e+12;CG(a,h);Una(h);yb=i;return}}function RC(b,d){b=b|0;d=d|0;var e=0,f=0;e=b+11|0;if((a[e>>0]|0)<0){Fsb(c[b>>2]|0,0);c[b+4>>2]=0;e=b}else{Fsb(b,0);a[e>>0]=0;e=b}Yw(b);c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];e=0;while(1){if((e|0)==3)break;c[d+(e<<2)>>2]=0;e=e+1|0}f=b+12|0;d=d+12|0;e=f+11|0;if((a[e>>0]|0)<0){Fsb(c[f>>2]|0,0);c[b+16>>2]=0;e=f}else{Fsb(f,0);a[e>>0]=0;e=f}Yw(f);c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];e=0;while(1){if((e|0)==3)break;c[d+(e<<2)>>2]=0;e=e+1|0}return}function SC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+48|0;d=f+44|0;e=f;c[d>>2]=a;if(c[37104]|0){g=IWa(150452,70573)|0;a=O8(148204,d)|0;IWa(Ym(g,c[a>>2]|0)|0,70611)|0}VSa(e,b);g=e+20|0;c[g>>2]=c[37063];c[g+4>>2]=c[37064];c[g+8>>2]=c[37065];c[g+12>>2]=c[37066];c[g+16>>2]=c[37067];n=0;ca(506,e|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;osa(e);Ea(g|0)}n=0;da(225,e|0,c[d>>2]|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;osa(e);Ea(g|0)}else{osa(e);yb=f;return}}function TC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=LAb(b)|0;g=c[a+4>>2]|0;if(!g){i=0;return i|0}h=g+-1|0;i=(g&h|0)==0;if(!i)if(f>>>0>>0)e=f;else e=(f>>>0)%(g>>>0)|0;else e=f&h;a=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!a){i=0;return i|0}d=c[b>>2]|0;while(1){a=c[a>>2]|0;if(!a){a=0;b=17;break}b=c[a+4>>2]|0;if((b|0)==(f|0)){if(rmb(c[a+8>>2]|0,d)|0){b=17;break}}else{if(!i){if(b>>>0>=g>>>0)b=(b>>>0)%(g>>>0)|0}else b=b&h;if((b|0)!=(e|0)){a=0;b=17;break}}}if((b|0)==17)return a|0;return 0}function UC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;h=i;e=c[a>>2]|0;g=(c[a+4>>2]|0)-e>>4;f=g+1|0;d=Wub()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>4>>>0>>1>>>0){d=e>>3;d=d>>>0>>0?f:d}AR(h,d,g,a+8|0);d=h+8|0;e=c[d>>2]|0;n=0;da(1833,e|0,b|0);b=n;n=0;if(b&1){i=sa()|0;P()|0;Qpa(h);Ea(i|0)}else{c[d>>2]=e+16;US(a,h);Qpa(h);yb=i;return}}function VC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;f=h;g=b+4|0;if((c[g>>2]|0)==6)AQ(a);b=CU(c[a+36>>2]|0,2,b)|0;c[f>>2]=b;d=a+4|0;e=c[d>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4}else _M(a,f);b=a+60|0;d=c[b>>2]|0;if((c[a+56>>2]|0)==(d|0))ma(113289,112765,396,113447);c[b>>2]=d+-4;if((c[g>>2]|0)!=6){yb=h;return}AQ(a);yb=h;return}function WC(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=a+28|0;j=c[k>>2]|0;f=c[a+24>>2]|0;g=j-f>>2;e=c[b>>2]|0;h=f;d=0;while(1){if(d>>>0>=g>>>0){i=16;break}if(dub(c[(c[h+(d<<2)>>2]|0)+8>>2]|0,e)|0)break;d=d+1|0}if((i|0)==16){k=a+200|0;vla(k,b);return}f=h+(h+(d<<2)-f>>2<<2)|0;while(1){d=f+4|0;if((d|0)==(j|0))break;i=c[d>>2]|0;c[d>>2]=0;e=c[f>>2]|0;c[f>>2]=i;if(e|0){IM(e);RCb(e)}f=d}d=c[k>>2]|0;while(1){if((f|0)==(d|0))break;d=d+-4|0;e=c[d>>2]|0;c[d>>2]=0;if(e|0){IM(e);RCb(e)}}c[k>>2]=f;k=a+200|0;vla(k,b);return}function XC(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+48|0;h=i+24|0;e=i;f=d+12|0;if(a[f>>0]&1)BM(IWa(150620,114483)|0);g=XG(d)|0;Heb(b,g,P()|0);qUa(e,b);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];if(!(a[f>>0]&1)){yb=i;return}f=IWa(150620,116059)|0;g=h;d=b;e=g+24|0;do{a[g>>0]=a[d>>0]|0;g=g+1|0;d=d+1|0}while((g|0)<(e|0));BM(IWa(bx(f,h)|0,114633)|0);yb=i;return}function YC(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=yb;yb=yb+16|0;h=i;if(!d){f=0;g=0}else{g=c[d+4>>2]|0;SDa(a,g,e);f=1}d=NF(a+48|0,b)|0;if(!(PGa(a,(d|0)!=0,e,128287)|0)){yb=i;return}e=d+12|0;b=d+16|0;a=c[b>>2]|0;if(!(fub(a)|0)){Fmb(h,g,f);f=h;g=c[f+4>>2]|0;h=e;c[h>>2]=c[f>>2];c[h+4>>2]=g;yb=i;return}d=c[e>>2]|0;if((d|0)!=6){if(!((g|0)==6|(g|0)==(d|0)))c[e>>2]=0}else c[e>>2]=g;if((f|0)==(a|0)){yb=i;return}c[b>>2]=-2;yb=i;return}function ZC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h;d=a+60|0;e=c[d>>2]|0;if((c[a+56>>2]|0)==(e|0))ma(113289,112765,485,113309);c[d>>2]=e+-4;f=b+4|0;if((c[f>>2]|0)==6)AQ(a);d=CU(c[a+36>>2]|0,7,b)|0;c[g>>2]=d;e=a+4|0;b=c[e>>2]|0;if(b>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=d;c[e>>2]=(c[e>>2]|0)+4}else _M(a,g);if((c[f>>2]|0)!=6){yb=h;return}AQ(a);yb=h;return}function _C(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;h=i;e=c[a>>2]|0;g=(c[a+4>>2]|0)-e>>4;f=g+1|0;d=Wub()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>4>>>0>>1>>>0){d=e>>3;d=d>>>0>>0?f:d}AR(h,d,g,a+8|0);d=h+8|0;e=c[d>>2]|0;n=0;da(71,e|0,b|0);b=n;n=0;if(b&1){i=sa()|0;P()|0;Qpa(h);Ea(i|0)}else{c[d>>2]=e+16;US(a,h);Qpa(h);yb=i;return}}function $C(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>2;f=h+1|0;d=YBb()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>2>>>0>>1>>>0){d=e>>1;d=d>>>0>>0?f:d}aS(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;e=c[b>>2]|0;c[b>>2]=0;c[f>>2]=e;c[h>>2]=f+4;rP(a,g);b2(g);yb=i;return}function aD(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;l=yb;yb=yb+32|0;k=l+8|0;i=l;j=k;h=j+16|0;do{a[j>>0]=a[g>>0]|0;j=j+1|0;g=g+1|0}while((j|0)<(h|0));Gsb(i,b);h=qga(c[i>>2]|0,e,f,k)|0;if(!(c[37104]|0)){k=h;yb=l;return k|0}IWa(150452,56221)|0;IWa(150452,57181)|0;g=0;while(1){if((g|0)==16)break;Zm(150452,d[k+g>>0]|0)|0;if((g|0)!=15)IWa(150452,140151)|0;g=g+1|0}IWa(150452,57204)|0;Kg(h,e,f);IWa(150452,56345)|0;k=h;yb=l;return k|0}function bD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+-16|0;d=c[b+4>>2]|0;a=c[b>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+16>>2]|0;a=c[b+12>>2]|0;while(1){if((a|0)==(d|0))break;a=a+4|0}d=c[b+40>>2]|0;f=g+16|0;a=c[b+36>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(!(Yrb(e)|0))T7a(f,e);a=a+4|0}d=c[b+28>>2]|0;a=c[b+24>>2]|0;while(1){if((a|0)==(d|0))break;e=c[a>>2]|0;if(Yrb(e)|0)MM(g,e);else Ona(f,e);a=a+4|0}xEa(f,b+48|0);xEa(f,b+84|0);return}function cD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))n2a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Fwa(g,e);d=d+4|0}mxa(g,b+48|0);mxa(g,b+84|0);return}function dD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))o2a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))pqa(g,e);d=d+4|0}nxa(g,b+48|0);nxa(g,b+84|0);return}function eD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=rrb(a,0)|0;if(!(hXa(c[e>>2]|0,c[37397]|0)|0)?(e=rrb(a,0)|0,!(hXa(c[e>>2]|0,c[37195]|0)|0)):0){e=rrb(a,0)|0;if(hXa(c[e>>2]|0,c[37196]|0)|0)d=3;else Ta()}else d=1;WCb(b)|0;if(VBb(c[b>>2]|0)|0?(e=rrb(b,0)|0,hXa(c[e>>2]|0,c[37397]|0)|0):0){e=0;while(1){f=rrb(b,1)|0;if(e>>>0>=(K0a(WCb(c[f>>2]|0)|0)|0)>>>0)break;g=rrb(a,d)|0;g=WCb(c[g>>2]|0)|0;f=rrb(b,1)|0;f=rrb(c[f>>2]|0,e)|0;KJa(g,c[f>>2]|0)|0;e=e+1|0}return}g=rrb(a,d)|0;KJa(WCb(c[g>>2]|0)|0,b)|0;return}function fD(b){b=b|0;var d=0,e=0,f=0;e=mla(24)|0;iob(e);eva(e,c[(c[b>>2]|0)+132>>2]|0);d=0;while(1){f=c[b>>2]|0;if(d>>>0>=(c[f+132>>2]|0)>>>0)break;c[(c[e>>2]|0)+(d<<2)>>2]=d;d=d+1|0}d=b+2504|0;if(!(a[d>>0]&1)){d=c[e>>2]|0;f=d+((uob(WCb(c[f+32>>2]|0)|0)|0)<<2)|0;ZK(f,c[e+4>>2]|0,b+4|0);qv(b,e);return e|0}else{a[d>>0]=0;qv(b,e);return e|0}return 0}function gD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+32|0;d=h;e=c[a>>2]|0;f=(c[a+4>>2]|0)-e>>4;g=f+1|0;if(g>>>0>268435455)Apa();else{i=(c[a+8>>2]|0)-e|0;e=i>>3;O5(d,i>>4>>>0<134217727?(e>>>0>>0?g:e):268435455,f,a+12|0);g=d+8|0;f=c[g>>2]|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=c[b>>2];c[g>>2]=f+16;RD(a,d);k0(d);yb=h;return}}function hD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>2;f=h+1|0;d=YBb()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>2>>>0>>1>>>0){d=e>>1;d=d>>>0>>0?f:d}aS(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;e=c[b>>2]|0;c[b>>2]=0;c[f>>2]=e;c[h>>2]=f+4;rP(a,g);$2(g);yb=i;return}function iD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=yb;yb=yb+16|0;d=g+12|0;h=g;e=nK(kH(a)|0)|0;f=P()|0;if(!(f>>>0>0|(f|0)==0&e>>>0>4294967295)){j6a(d,e,f);yb=g;return c[d>>2]|0}f=oa(20)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;g=Zzb(b)|0;n=0;ea(95,h|0,b|0,g|0);b=n;n=0;if(!(b&1)){n=0;fa(134,f|0,h|0,c[a+28>>2]|0,c[a+32>>2]|0);b=n;n=0;if(b&1)e=1;else{n=0;ea(122,f|0,31856,511);n=0;e=0}d=sa()|0;P()|0;Chb(h);if(!e){h=d;Ea(h|0)}}else{d=sa()|0;P()|0}va(f|0);h=d;Ea(h|0);return 0}function jD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))f3a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Nqa(g,e);d=d+4|0}fya(g,b+48|0);fya(g,b+84|0);return}function kD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))g3a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Oqa(g,e);d=d+4|0}gya(g,b+48|0);gya(g,b+84|0);return}function lD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))i3a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Pqa(g,e);d=d+4|0}iya(g,b+48|0);iya(g,b+84|0);return}function mD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))j3a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Qqa(g,e);d=d+4|0}jya(g,b+48|0);jya(g,b+84|0);return}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,l=0;l=yb;yb=yb+16|0;g=l;c[b>>2]=d;k=b+4|0;c[k>>2]=0;h=b+8|0;c[h>>2]=0;i=b+12|0;c[i>>2]=0;j=c[d+28>>2]|0;d=c[d+24>>2]|0;while(1){f=d;if((j|0)==(f|0)){d=8;break}d=c[d>>2]|0;c[g>>2]=d;e=c[h>>2]|0;if(e>>>0>=(c[i>>2]|0)>>>0){n=0;da(2198,k|0,g|0);e=n;n=0;if(e&1){d=9;break}}else{n=0;da(2197,e|0,d|0);e=n;n=0;if(e&1){d=9;break}c[h>>2]=(c[h>>2]|0)+16}d=f+4|0}if((d|0)==8){k=(tva(c[b>>2]|0)|0)&1;a[b+16>>0]=k;yb=l;return}else if((d|0)==9){l=sa()|0;P()|0;Vob(k);Ea(l|0)}}function oD(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;j=yb;yb=yb+16|0;h=j;i=IF(b)|0;G1a(d,IF(b)|0,0)|0;d=i&1;do if((i&3|0)==2){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,133051,Zzb(133051)|0);n=0;da(4022,b|0,h|0);b=n;n=0;if(b&1){j=sa()|0;P()|0;Chb(h);Ea(j|0)}else{Chb(h);a[f>>0]=i>>>1&1;break}}else{a[f>>0]=i>>>1&1;if(d|0){G1a(e,IF(b)|0,0)|0;yb=j;return}}while(0);c[e>>2]=g;yb=j;return}function pD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=yb;yb=yb+16|0;g=i+8|0;d=i;if((c[b+4>>2]|0)==6){yb=i;return}if(!(pqb(c[b+16>>2]|0)|0)?(f=cWa(b+12|0)|0,vub(c[(c[f>>2]|0)+4>>2]|0)|0):0){yb=i;return}e=b+12|0;nrb(g,e);Hib(d,e);e=g+4|0;f=c[d>>2]|0;d=c[d+4>>2]|0;while(1){if(!(dhb(c[g>>2]|0,c[e>>2]|0,f,d)|0)){h=9;break}j=Qab(g)|0;if((c[(c[j>>2]|0)+4>>2]|0)==6)break;hob(g)}if((h|0)==9){yb=i;return}ROa(a,b,6);yb=i;return}function qD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>2;f=h+1|0;d=YBb()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>2>>>0>>1>>>0){d=e>>1;d=d>>>0>>0?f:d}aS(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;e=c[b>>2]|0;c[b>>2]=0;c[f>>2]=e;c[h>>2]=f+4;rP(a,g);l3(g);yb=i;return}function rD(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((1073741807-d|0)>>>0>>0)ipa();j=b+8|0;if((a[j+3>>0]|0)<0)i=c[b>>2]|0;else i=b;if(d>>>0<536870887){e=e+d|0;h=d<<1;e=e>>>0>>0?h:e;e=e>>>0<2?2:e+4&-4;if(e>>>0>1073741823){e=oa(8)|0;n=0;da(67,e|0,138616);j=n;n=0;if(j&1){j=sa()|0;P()|0;va(e|0);Ea(j|0)}else{c[e>>2]=50788;za(e|0,39592,473)}}}else e=1073741807;h=mla(e<<2)|0;if(g|0)Rkb(h,i,g);f=f-g|0;if(f|0)Rkb(h+(g<<2)|0,i+(g<<2)|0,f);if((d|0)!=1)RCb(i);c[b>>2]=h;c[j>>2]=e|-2147483648;return}function sD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+96|0;f=h+92|0;g=h;e=c[b>>2]|0;c[f>>2]=e;VA(g,pob(c[a+40>>2]|0)|0,0);if(p6a(g,c[e>>2]|0)|0?(n=0,da(3655,a|0,g|0),d=n,n=0,d&1):0){h=sa()|0;P()|0;Fha(g);Ea(h|0)}b=a+136|0;d=c[b>>2]|0;if((d|0)!=(c[a+140>>2]|0)){c[d>>2]=e;c[b>>2]=(c[b>>2]|0)+4;Fha(g);yb=h;return}n=0;da(332,a+132|0,f|0);f=n;n=0;if(f&1){h=sa()|0;P()|0;Fha(g);Ea(h|0)}else{Fha(g);yb=h;return}}function tD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;i=j;g=c[a+8>>2]|0;d=c[a+4>>2]|0;if(((g-d|0)/20|0)>>>0>=b>>>0){pfa(a,b);yb=j;return}e=c[a>>2]|0;h=(d-e|0)/20|0;f=h+b|0;d=aub()|0;if(f>>>0>d>>>0)Apa();e=(g-e|0)/20|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}LQ(i,d,h,a+8|0);_da(i,b);xS(a,i);ora(i);yb=j;return}function uD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))H3a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Lxa(g,e);d=d+4|0}Oya(g,b+48|0);Oya(g,b+84|0);return}function vD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))I3a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Mxa(g,e);d=d+4|0}Pya(g,b+48|0);Pya(g,b+84|0);return}function wD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))J3a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Nxa(g,e);d=d+4|0}Qya(g,b+48|0);Qya(g,b+84|0);return}function xD(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=yb;yb=yb+32|0;h=l+24|0;j=l+20|0;k=l;f=c[a>>2]|0;i=(c[a+4>>2]|0)-f>>3;g=i+1|0;e=wxb()|0;if(g>>>0>e>>>0)Apa();f=(c[a+8>>2]|0)-f|0;if(f>>3>>>0>>1>>>0){e=f>>2;e=e>>>0>>0?g:e}FR(k,e,i,a+8|0);i=k+8|0;g=c[i>>2]|0;Ftb(j,c[b>>2]|0);d=c[d>>2]|0;c[h>>2]=c[j>>2];fib(g,h,d);c[i>>2]=g+8;lU(a,k);vta(k);yb=l;return}function yD(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=c[a+72>>2]|0;k=a+16|0;e=c[a+68>>2]|0;while(1){if((e|0)==(j|0))break;g=c[e>>2]|0;f=g+48|0;g=g+52|0;d=1;while(1){a=c[f>>2]|0;if(d>>>0>=(c[g>>2]|0)-a>>2>>>0)break;a=c[a+(d<<2)>>2]|0;a:do if((c[a+40>>2]|0)-(c[a+36>>2]|0)>>2>>>0<=1){b=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(b|0))break a;if(OBb(c[a>>2]|0)|0?(h=Keb(c[c[a+8>>2]>>2]|0)|0,i=B6(c[h+12>>2]|0)|0,i|0):0)q7(k,c[h+8>>2]|0,c[i+8>>2]|0);a=a+16|0}}while(0);d=d+1|0}e=e+4|0}return}function zD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))_3a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))rra(g,e);d=d+4|0}kza(g,b+48|0);kza(g,b+84|0);return}function AD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))$3a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))kya(g,e);d=d+4|0}lza(g,b+48|0);lza(g,b+84|0);return}function BD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))a4a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))lya(g,e);d=d+4|0}mza(g,b+48|0);mza(g,b+84|0);return}function CD(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;i=yb;yb=yb+16|0;e=i+8|0;f=i+4|0;g=i;h=mla(12)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;Ysb(h);if(c[37104]|0){j=c[37059]|0;c[e>>2]=h;e=O8(148228,e)|0;c[e>>2]=j;IWa(IWa(IWa(IWa(IWa(Ym(IWa(150452,65912)|0,j)|0,65923)|0,b)|0,65788)|0,d)|0,65627)|0}Zsb(f,b);c[h+4>>2]=c[f>>2];Zsb(g,d);c[h>>2]=c[g>>2];c[h+8>>2]=0;uq(a,h);yb=i;return h|0}function DD(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;g=yb;yb=yb+32|0;b=g;d=c[a>>2]|0;e=((c[a+4>>2]|0)-d|0)/24|0;f=e+1|0;if(f>>>0>178956970)Apa();else{h=((c[a+8>>2]|0)-d|0)/24|0;d=h<<1;s9(b,h>>>0<89478485?(d>>>0>>0?f:d):178956970,e,a+12|0);f=b+8|0;e=c[f>>2]|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;sia(e);c[f>>2]=e+24;SQ(a,b);F6(b);yb=g;return}}function ED(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;i=yb;yb=yb+16|0;e=i+8|0;f=i+4|0;g=i;h=mla(12)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;Ysb(h);if(c[37104]|0){j=c[37059]|0;c[e>>2]=h;e=O8(148228,e)|0;c[e>>2]=j;IWa(IWa(IWa(IWa(IWa(Ym(IWa(150452,65912)|0,j)|0,66008)|0,b)|0,65788)|0,d)|0,65627)|0}Zsb(f,b);c[h+4>>2]=c[f>>2];Zsb(g,d);c[h>>2]=c[g>>2];c[h+8>>2]=2;uq(a,h);yb=i;return h|0}function FD(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;i=yb;yb=yb+16|0;e=i+8|0;f=i+4|0;g=i;h=mla(12)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;Ysb(h);if(c[37104]|0){j=c[37059]|0;c[e>>2]=h;e=O8(148228,e)|0;c[e>>2]=j;IWa(IWa(IWa(IWa(IWa(Ym(IWa(150452,65912)|0,j)|0,66050)|0,b)|0,65788)|0,d)|0,65627)|0}Zsb(f,b);c[h+4>>2]=c[f>>2];Zsb(g,d);c[h>>2]=c[g>>2];c[h+8>>2]=3;uq(a,h);yb=i;return h|0}function GD(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;i=yb;yb=yb+16|0;e=i+8|0;f=i+4|0;g=i;h=mla(12)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;Ysb(h);if(c[37104]|0){j=c[37059]|0;c[e>>2]=h;e=O8(148228,e)|0;c[e>>2]=j;IWa(IWa(IWa(IWa(IWa(Ym(IWa(150452,65912)|0,j)|0,65967)|0,b)|0,65788)|0,d)|0,65627)|0}Zsb(f,b);c[h+4>>2]=c[f>>2];Zsb(g,d);c[h>>2]=c[g>>2];c[h+8>>2]=1;uq(a,h);yb=i;return h|0}function HD(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+48|0;h=i+24|0;e=i;f=d+12|0;if(a[f>>0]&1)BM(IWa(150620,114483)|0);Bqb(b,xH(d)|0);r_a(e,b);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];if(!(a[f>>0]&1)){yb=i;return}f=IWa(150620,116109)|0;g=h;d=b;e=g+24|0;do{a[g>>0]=a[d>>0]|0;g=g+1|0;d=d+1|0}while((g|0)<(e|0));BM(IWa(bx(f,h)|0,114633)|0);yb=i;return}function ID(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;f=WCb(c[b+16>>2]|0)|0;h=e+8|0;g=c[h>>2]|0;if(Rjb(f,g)|0)return;if(((jka(f,g)|0)+-1|0)>>>0>=2)return;e=xv(c[e+12>>2]|0)|0;h=c[h>>2]|0;f=c[c[b+24>>2]>>2]|0;b=f+(h<<3)|0;i=ej(e)|0;g=c[b>>2]|0;c[b>>2]=g>>>0>>0?i:g;if(!(zM(e)|0)){e=Sqb(e)|0;if(((e|0)!=0?CEa(e)|0:0)?(a[e+9>>0]&1)!=0:0)g=(d[e+8>>0]|0)<<3;else g=-1}else g=Q0a(e)|0;e=f+(h<<3)+4|0;f=c[e>>2]|0;if(!f){c[e>>2]=g;return}if((f|0)==(g|0))return;c[e>>2]=-1;return}function JD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))G4a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Rya(g,e);d=d+4|0}Oza(g,b+48|0);Oza(g,b+84|0);return}function KD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))I4a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Lra(g,e);d=d+4|0}Qza(g,b+48|0);Qza(g,b+84|0);return}function LD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))J4a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Sya(g,e);d=d+4|0}Rza(g,b+48|0);Rza(g,b+84|0);return}function MD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))K4a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Mra(g,e);d=d+4|0}Sza(g,b+48|0);Sza(g,b+84|0);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;j=yb;yb=yb+32|0;i=j;g=c[a+8>>2]|0;d=c[a+4>>2]|0;if(((g-d|0)/12|0)>>>0>=b>>>0){jqa(a,b);yb=j;return}e=c[a>>2]|0;h=(d-e|0)/12|0;f=h+b|0;d=vxb()|0;if(f>>>0>d>>>0)Apa();e=(g-e|0)/12|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}aR(i,d,h,a+8|0);Zna(i,b);CG(a,i);Una(i);yb=j;return}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;h=yb;yb=yb+16|0;g=h;i=mla(104)|0;c[b>>2]=i;c[b+4>>2]=d+8;d=b+8|0;a[d>>0]=0;j=c[f>>2]|0;f=c[f+4>>2]|0;c[i+8>>2]=c[c[e>>2]>>2];n=0;ea(130,i+12|0,j|0,c[f>>2]|0);f=n;n=0;if(!(f&1)){a[d>>0]=1;c[g>>2]=c[i+8>>2];j=pH(g,4)|0;c[i+4>>2]=j;c[i>>2]=0;yb=h;return}d=sa()|0;P()|0;c[b>>2]=0;if(!i)Ea(d|0);RCb(i);Ea(d|0)}function PD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=yb;yb=yb+32|0;f=h+16|0;g=h;b=Xr(a,b,f,h+12|0,d)|0;d=c[b>>2]|0;if(d|0){g=d;yb=h;return g|0}Zda(g,a,e);e=c[g>>2]|0;i8(a,c[f>>2]|0,b,e);c[g>>2]=0;g=e;yb=h;return g|0}function QD(a,b){a=a|0;b=b|0;var e=0,f=0;NGa(a,Szb(c[(c[a+44>>2]|0)+4>>2]|0)|0,b,129054);apa(a,c[b+4>>2]|0,5,b,130395);apa(a,c[(c[b+12>>2]|0)+4>>2]|0,5,b,130428);switch(c[b+8>>2]|0){case 0:{e=16;f=1;break}case 1:{e=8;f=1;break}case 2:{e=4;f=1;break}case 3:{e=2;f=2;break}case 4:{e=4;f=3;break}case 5:{e=2;f=4;break}default:{e=0;f=0}}apa(a,c[(c[b+20>>2]|0)+4>>2]|0,f,b,130464);NGa(a,e>>>0>(d[b+16>>0]|0)>>>0,b,130376);return}function RD(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;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;l=c[g>>2]|0;i=l+-16|0;h=d+-16|0;c[i>>2]=0;j=l+-12|0;c[j>>2]=0;k=l+-8|0;c[k>>2]=0;c[l+-4>>2]=c[d+-4>>2];c[i>>2]=c[h>>2];i=d+-12|0;c[j>>2]=c[i>>2];j=d+-8|0;c[k>>2]=c[j>>2];c[j>>2]=0;c[i>>2]=0;c[h>>2]=0;c[g>>2]=(c[g>>2]|0)+-16;d=h}j=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=j;j=b+8|0;l=c[f>>2]|0;c[f>>2]=c[j>>2];c[j>>2]=l;j=a+8|0;l=b+12|0;k=c[j>>2]|0;c[j>>2]=c[l>>2];c[l>>2]=k;c[b>>2]=c[g>>2];return}function SD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))k5a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Zra(g,e);d=d+4|0}yAa(g,b+48|0);yAa(g,b+84|0);return}function TD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))m5a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))nza(g,e);d=d+4|0}AAa(g,b+48|0);AAa(g,b+84|0);return}function UD(b,d){b=b|0;d=d|0;var e=0;if(a[b+33>>0]&1)BM(IWa(150620,112911)|0);e=d+12|0;yIa(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;e=d+16|0;yIa(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;e=d+20|0;yIa(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;TW(b,d);return}function VD(b,d){b=b|0;d=d|0;var e=0;_Ja(b,Xxb(c[(c[b+44>>2]|0)+4>>2]|0)|0,d);e=c[b+36>>2]|0;WCb(e)|0;oJa(b,(a[e+120>>0]&1)==0,d);rpa(b,c[d+4>>2]|0,1,d,130005);rpa(b,c[(c[d+12>>2]|0)+4>>2]|0,1,d,130035);e=d+16|0;SBa(b,c[(c[e>>2]|0)+4>>2]|0,d,130071);rpa(b,c[(c[e>>2]|0)+4>>2]|0,c[d+24>>2]|0,d,130108);rpa(b,c[(c[d+20>>2]|0)+4>>2]|0,2,d,130152);return}function WD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;e=f;if((b|0)!=(c[a+24>>2]|0)){if(!(dub(c[b+8>>2]|0,c[a+28>>2]|0)|0)){yb=f;return}c[a+36>>2]=c[a+32>>2];yb=f;return}if(!(WCb(c[b+16>>2]|0)|0)){c[e>>2]=0;b=a+36|0;d=c[b>>2]|0;if(d>>>0<(c[a+40>>2]|0)>>>0){c[d>>2]=0;c[b>>2]=(c[b>>2]|0)+4;yb=f;return}else{_M(a+32|0,e);yb=f;return}}else{b=cWa(b+12|0)|0;b=(c[b>>2]|0)+4|0;d=a+36|0;e=c[d>>2]|0;if((e|0)==(c[a+40>>2]|0)){_M(a+32|0,b);yb=f;return}else{c[e>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+4;yb=f;return}}}function XD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+96|0;d=f+4|0;e=f;if(Axb(c[b>>2]|0)|0){e=0;yb=f;return e|0}if(!(vub(c[b+4>>2]|0)|0)){e=0;yb=f;return e|0}a=a+40|0;VA(d,pob(c[a>>2]|0)|0,b);g=QGa(d)|0;Fha(d);if(g){g=0;yb=f;return g|0}d=c[a>>2]|0;WCb(d)|0;d=d+28|0;a=c[d>>2]|0;do if((a|0)>0)if((Raa(b)|0)>>>0>2){g=1;yb=f;return g|0}else{a=c[d>>2]|0;break}while(0);if((a|0)==0?(Ncb(e,b),c[e>>2]|0):0){g=1;yb=f;return g|0}g=0;yb=f;return g|0}function YD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[a+(d<<2)>>2]=0;d=d+1|0}n=0;d=S(233,c[b+4>>2]|0)|0;e=n;n=0;if(!(e&1)?(n=0,da(91,a|0,d|0),e=n,n=0,!(e&1)):0){e=c[b+12>>2]|0;d=c[b+8>>2]|0;while(1){if((d|0)==(e|0)){f=11;break}n=0;b=S(233,c[d>>2]|0)|0;g=n;n=0;if(g&1)break;n=0;da(91,a|0,b|0);g=n;n=0;if(g&1)break;d=d+4|0}if((f|0)==11)return;g=sa()|0;P()|0;Chb(a);Ea(g|0)}g=sa()|0;P()|0;Chb(a);Ea(g|0)}function ZD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+96|0;f=h+92|0;g=h;e=c[b>>2]|0;c[f>>2]=e;VA(g,pob(c[a+40>>2]|0)|0,0);if(p6a(g,c[e>>2]|0)|0?(n=0,ea(153,a|0,g|0,0),d=n,n=0,d&1):0){h=sa()|0;P()|0;Fha(g);Ea(h|0)}b=a+92|0;d=c[b>>2]|0;if((d|0)!=(c[a+96>>2]|0)){c[d>>2]=e;c[b>>2]=(c[b>>2]|0)+4;Fha(g);yb=h;return}n=0;da(332,a+88|0,f|0);f=n;n=0;if(f&1){h=sa()|0;P()|0;Fha(g);Ea(h|0)}else{Fha(g);yb=h;return}}function _D(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+32|0;d=f+16|0;g=f;e=c[a+24>>2]|0;c[g>>2]=c[b+24>>2];c[d>>2]=c[g>>2];d=wQ(e,d)|0;e=d+8|0;b=a+32|0;if(f9(b,e)|0){yb=f;return}GG(f+8|0,b,e,e);g=IWa(150452,99221)|0;g=IWa(mpa(g,c[(c[a+28>>2]|0)+8>>2]|0)|0,99297)|0;IWa(mpa(g,c[d+8>>2]|0)|0,99304)|0;yb=f;return}function $D(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;h=yb;yb=yb+16|0;f=h;if(PBb(c[b>>2]|0)|0)ma(77824,77745,166,77839);Gsb(f,c[a+120>>2]|0);g=F5(b)|0;if(vub(g)|0){i=Sia(a,g)|0;j=xn(g,d?15:16)|0;d=vs(a,b)|0;g=vs(a,i)|0;g=b1a(hIa(c[f>>2]|0,j,d,g)|0,e)|0;f=iL(a,g)|0;ufa(f,sma(a,b,e)|0);ufa(f,i);yb=h;return g|0}else{j=a;yb=h;return j|0}return 0}function aE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))K5a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))lsa(g,e);d=d+4|0}dBa(g,b+48|0);dBa(g,b+84|0);return}function bE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))L5a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Uza(g,e);d=d+4|0}eBa(g,b+48|0);eBa(g,b+84|0);return}function cE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))M5a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Vza(g,e);d=d+4|0}fBa(g,b+48|0);fBa(g,b+84|0);return}function dE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=((c[a+4>>2]|0)-e|0)/24|0;f=h+1|0;d=Oxb()|0;if(f>>>0>d>>>0)Apa();e=((c[a+8>>2]|0)-e|0)/24|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}rR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[f+20>>2]=c[b+20>>2];c[h>>2]=f+24;jT(a,g);wta(g);yb=i;return}function eE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[a+(d<<2)>>2]=0;d=d+1|0}n=0;d=S(233,c[b+12>>2]|0)|0;e=n;n=0;if(!(e&1)?(n=0,da(91,a|0,d|0),e=n,n=0,!(e&1)):0){e=c[b+20>>2]|0;d=c[b+16>>2]|0;while(1){if((d|0)==(e|0)){f=11;break}n=0;b=S(233,c[d>>2]|0)|0;g=n;n=0;if(g&1)break;n=0;da(91,a|0,b|0);g=n;n=0;if(g&1)break;d=d+4|0}if((f|0)==11)return;g=sa()|0;P()|0;Chb(a);Ea(g|0)}g=sa()|0;P()|0;Chb(a);Ea(g|0)}function fE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))V5a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))BAa(g,e);d=d+4|0}QBa(g,b+48|0);QBa(g,b+84|0);return}function gE(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=b+11|0;g=a[k>>0]|0;h=g<<24>>24<0;if(h)j=c[b+4>>2]|0;else j=g&255;if(j>>>0>>0)hpa();if(h)g=(c[b+8>>2]&2147483647)+-1|0;else g=10;if((g-j|0)>>>0>=f>>>0){if(f|0){if(h)i=c[b>>2]|0;else i=b;g=j-d|0;h=i+d|0;if(g){Shb(h+f|0,h,g)|0;e=h>>>0<=e>>>0&(i+j|0)>>>0>e>>>0?e+f|0:e}Shb(h,e,f)|0;e=j+f|0;if((a[k>>0]|0)<0)c[b+4>>2]=e;else a[k>>0]=e;Fsb(i+e|0,0)}}else dG(b,g,j+f-g|0,j,d,0,f,e);return b|0}function hE(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=c[a+132>>2]|0;h=a+76|0;f=0;a=c[a+128>>2]|0;b=0;d=1;e=0;while(1){if((a|0)==(g|0))break;if(f|0)IWa(c[h>>2]|0,139997)|0;l=c[a>>2]|0;k=c[a+4>>2]|0;a3(c[h>>2]|0,l-f|0);a3(c[h>>2]|0,(c[k>>2]|0)-b|0);j=k+4|0;a3(c[h>>2]|0,(c[j>>2]|0)-d|0);i=k+8|0;a3(c[h>>2]|0,(c[i>>2]|0)-e|0);f=l;a=a+8|0;b=c[k>>2]|0;d=c[j>>2]|0;e=c[i>>2]|0}IWa(c[h>>2]|0,112432)|0;return}function iE(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=kA(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}Zda(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function jE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=oU(b)|0;g=c[a+4>>2]|0;if(!g){i=0;return i|0}h=g+-1|0;i=(g&h|0)==0;if(!i)if(f>>>0>>0)e=f;else e=(f>>>0)%(g>>>0)|0;else e=f&h;a=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!a){i=0;return i|0}while(1){a=c[a>>2]|0;if(!a){a=0;d=17;break}d=c[a+4>>2]|0;if((d|0)==(f|0)){if(yda(a+8|0,b)|0){d=17;break}}else{if(!i){if(d>>>0>=g>>>0)d=(d>>>0)%(g>>>0)|0}else d=d&h;if((d|0)!=(e|0)){a=0;d=17;break}}}if((d|0)==17)return a|0;return 0}function kE(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=c[b>>2]|0;i=c[a>>2]|0;j=_ba(e,f,i)|0;g=c[d>>2]|0;h=_ba(e,g,f)|0;if(!j){if(!h){j=0;return j|0}c[b>>2]=g;c[d>>2]=f;g=c[b>>2]|0;f=c[a>>2]|0;if(!(_ba(e,g,f)|0)){j=1;return j|0}c[a>>2]=g;c[b>>2]=f;j=2;return j|0}if(h){c[a>>2]=g;c[d>>2]=i;j=1;return j|0}c[a>>2]=f;c[b>>2]=i;f=c[d>>2]|0;if(!(_ba(e,f,i)|0)){j=1;return j|0}c[b>>2]=f;c[d>>2]=i;j=2;return j|0}function lE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+-16|0;if((c[b>>2]|0)!=(c[b+4>>2]|0))Msb();if((c[b+12>>2]|0)!=(c[b+16>>2]|0))Uub();a=c[b+36>>2]|0;if((a|0)!=(c[b+40>>2]|0)){a=c[a>>2]|0;if(Yrb(a)|0)Tub();else gTa(g+16|0,a)}d=c[b+28>>2]|0;e=g+16|0;a=c[b+24>>2]|0;while(1){if((a|0)==(d|0))break;f=c[a>>2]|0;if(Yrb(f)|0)b7(g,f);else $ea(e,f);a=a+4|0}jpa(e,b+48|0)}function mE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))t6a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))PBa(g,e);d=d+4|0}dDa(g,b+48|0);dDa(g,b+84|0);return}function nE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=Jm(c[a>>2]|0,(c[b>>2]|0)+8|0)|0;f=c[f>>2]|0;e=Jm(c[a>>2]|0,(c[d>>2]|0)+8|0)|0;if((f|0)==(c[e>>2]|0)){f=(Cla(c[(c[b>>2]|0)+8>>2]|0,c[(c[d>>2]|0)+8>>2]|0)|0)>0;return f|0}else{e=Jm(c[a>>2]|0,(c[b>>2]|0)+8|0)|0;e=c[e>>2]|0;f=Jm(c[a>>2]|0,(c[d>>2]|0)+8|0)|0;f=e>>>0>(c[f>>2]|0)>>>0;return f|0}return 0}function oE(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;k=yb;yb=yb+16|0;i=k+4|0;j=k;c[i>>2]=a;f=WCb(c[a+40>>2]|0)|0;while(1){h=a+24|0;g=f;if((Ryb(h)|0)==(g|0))break;f=c[f+8>>2]|0;c[j>>2]=f;if(pdb(e,f)|0){l=ZH(f,i)|0;l=c[l>>2]|0;c[l>>2]=d;c[l+4>>2]=b;g=c[g+4>>2]|0;bda(h,j);fS(a+72|0,j);bda(f,i);f=ZH(f+48|0,i)|0;c[f>>2]=l;f=g}else f=c[g+4>>2]|0}yb=k;return}function pE(a,b){a=a|0;b=b|0;switch(c[b+8>>2]|0){case 0:{a=a+4|0;IWa(c[a>>2]|0,124682)|0;break}case 1:{a=a+4|0;IWa(c[a>>2]|0,121257)|0;break}case 2:{a=a+4|0;IWa(c[a>>2]|0,122699)|0;break}case 3:{a=a+4|0;IWa(c[a>>2]|0,124309)|0;break}case 4:{a=a+4|0;IWa(c[a>>2]|0,120398)|0;break}case 5:{a=a+4|0;IWa(c[a>>2]|0,120943)|0;break}default:a=a+4|0}a=IWa(c[a>>2]|0,139961)|0;Zm(a,d[b+16>>0]|0)|0;return}function qE(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;f=b+64|0;g=c[f>>2]|0;if(!(a[g+56>>0]&1)){yb=h;return}if(Yrb(g+48|0)|0){yb=h;return}if(a[b+72>>0]&1)BM(IWa(150620,113733)|0);g=E3(b,4)|0;i=b+68|0;j=c[i>>2]|0;Pwb(d,1);YA(j,c[d>>2]|0)|0;d=c[i>>2]|0;Pwb(e,-16);zz(d,c[e>>2]|0);f=c[f>>2]|0;d=c[f+64>>2]|0;e=c[f+68>>2]|0;_T(b,d,e,Etb(f+48|0)|0,0);gF(b,g);yb=h;return}function rE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;e=f;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);e=b+16|0;do if(!(c[e>>2]|0)){b=b+12|0;d=c[b>>2]|0;if(d|0?!(Gzb(c[d>>2]|0)|0):0){_Va(a);break}SEa(c[a>>2]|0,41)|0;yb=f;return}else{_Va(a);b=b+12|0}while(0);b=c[b>>2]|0;if(b|0?!(Gzb(c[b>>2]|0)|0):0)sV(a,b);b=c[e>>2]|0;if(b|0)sV(a,b);y9(a);yb=f;return}function sE(){var a=0,b=0,d=0,e=0;d=yb;yb=yb+16|0;e=d;Rfb(149376);a=c[37365]|0;if(a|0){e=a;KZa(149376);yb=d;return e|0}n=0;ca(549,e|0);b=n;n=0;if(b&1){e=sa()|0;P()|0;KZa(149376);Ea(e|0)}b=c[e>>2]|0;n=0;ca(550,b|0);a=n;n=0;if(a&1){a=sa()|0;P()|0;c[e>>2]=0;if(!b){e=a;KZa(149376);Ea(e|0)}Y7a(b);RCb(b);e=a;KZa(149376);Ea(e|0)}else{a=c[37365]|0;c[37365]=b;c[e>>2]=0;if(!a){e=b;KZa(149376);yb=d;return e|0}Y7a(a);RCb(a);e=c[37365]|0;KZa(149376);yb=d;return e|0}return 0}function tE(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;j=yb;yb=yb+16|0;h=j;f=b+16|0;d=c[f>>2]|0;if(!(WCb(d)|0)){yb=j;return}i=b+12|0;g=a+36|0;e=0;while(1){if(e>>>0>=(d+-1|0)>>>0)break;d=uXa(i,e)|0;d=c[d>>2]|0;if(vub(c[d+4>>2]|0)|0){Gsb(h,WCb(c[g>>2]|0)|0);k=Q6a(c[h>>2]|0,d)|0;d=uXa(i,e)|0;c[d>>2]=k}e=e+1|0;d=c[f>>2]|0}if(!(it(a,cWa(i)|0)|0)){yb=j;return}yhb(a);switch(c[b+4>>2]|0){case 6:case 0:{yb=j;return}default:ma(54752,54728,262,126937)}}function uE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))R6a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))vCa(g,e);d=d+4|0}IDa(g,b+48|0);IDa(g,b+84|0);return}function vE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))S6a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))wCa(g,e);d=d+4|0}JDa(g,b+48|0);JDa(g,b+84|0);return}function wE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=LAb(d)|0;if(!b){i=0;return i|0}h=b+-1|0;i=(h&b|0)==0;if(!i)if(f>>>0>>0)g=f;else g=(f>>>0)%(b>>>0)|0;else g=f&h;a=c[a+(g<<2)>>2]|0;if(!a){i=0;return i|0}e=c[d>>2]|0;while(1){a=c[a>>2]|0;if(!a){a=0;d=17;break}d=c[a+4>>2]|0;if((d|0)==(f|0)){if(dub(c[a+8>>2]|0,e)|0){d=17;break}}else{if(!i){if(d>>>0>=b>>>0)d=(d>>>0)%(b>>>0)|0}else d=d&h;if((d|0)!=(g|0)){a=0;d=17;break}}}if((d|0)==17)return a|0;return 0}function xE(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;g=f;b=oBa()|0;c[a+64>>2]=b;c[g>>2]=b;d=a+44|0;e=c[d>>2]|0;if(e>>>0<(c[a+48>>2]|0)>>>0){c[g>>2]=0;c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4;c[g>>2]=0;yb=f;return}n=0;da(1092,a+40|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;a=c[g>>2]|0;c[g>>2]=0;if(!a)Ea(b|0);vXa(a);RCb(a);Ea(b|0)}else{b=c[g>>2]|0;c[g>>2]=0;if(!b){yb=f;return}vXa(b);RCb(b);yb=f;return}}function yE(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=a+40|0;j=c[k>>2]|0;f=c[a+36>>2]|0;g=j-f>>2;e=c[b>>2]|0;h=f;d=0;while(1){if(d>>>0>=g>>>0){i=16;break}if(dub(c[(c[h+(d<<2)>>2]|0)+8>>2]|0,e)|0)break;d=d+1|0}if((i|0)==16){k=a+212|0;vla(k,b);return}f=h+(h+(d<<2)-f>>2<<2)|0;while(1){d=f+4|0;if((d|0)==(j|0))break;i=c[d>>2]|0;c[d>>2]=0;e=c[f>>2]|0;c[f>>2]=i;if(e|0)RCb(e);f=d}d=c[k>>2]|0;while(1){if((f|0)==(d|0))break;d=d+-4|0;e=c[d>>2]|0;c[d>>2]=0;if(e|0)RCb(e)}c[k>>2]=f;k=a+212|0;vla(k,b);return}function zE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))t7a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))eDa(g,e);d=d+4|0}eEa(g,b+48|0);eEa(g,b+84|0);return}function AE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g+4|0;f=g;e=c[b+8>>2]|0;if(eCb(e)|0){c[f>>2]=e;c[d>>2]=c[f>>2];Xl(a,d);e=a+48|0;f=NF(e,b+8|0)|0;if(!f)ma(126875,126900,372,127709);d=c[f+16>>2]|0;if(fub(d)|0)cJa(a,d,b);_6(e,f)|0}if(c[b+4>>2]|0){yb=g;return}CNa(a,vub(c[(c[b+12>>2]|0)+4>>2]|0)|0,b);yb=g;return}function BE(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0;if((-18-d|0)>>>0>>0)ipa();if((a[b+11>>0]|0)<0)m=c[b>>2]|0;else m=b;if(d>>>0<2147483623){k=e+d|0;l=d<<1;k=k>>>0>>0?l:k;k=k>>>0<11?11:k+16&-16}else k=-17;l=Stb(k)|0;if(g|0)dib(l,m,g)|0;if(i|0)dib(l+g|0,j,i)|0;e=f-h|0;f=e-g|0;if(f|0)dib(l+g+i|0,m+g+h|0,f)|0;if((d|0)!=10)RCb(m);c[b>>2]=l;c[b+8>>2]=k|-2147483648;i=e+i|0;c[b+4>>2]=i;Fsb(l+i|0,0);return}function CE(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;g=f;b=ICa()|0;c[a+64>>2]=b;c[g>>2]=b;d=a+44|0;e=c[d>>2]|0;if(e>>>0<(c[a+48>>2]|0)>>>0){c[g>>2]=0;c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4;c[g>>2]=0;yb=f;return}n=0;da(565,a+40|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;a=c[g>>2]|0;c[g>>2]=0;if(!a)Ea(b|0);oZa(a);RCb(a);Ea(b|0)}else{b=c[g>>2]|0;c[g>>2]=0;if(!b){yb=f;return}oZa(b);RCb(b);yb=f;return}}function DE(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;g=f;b=ICa()|0;c[a+64>>2]=b;c[g>>2]=b;d=a+44|0;e=c[d>>2]|0;if(e>>>0<(c[a+48>>2]|0)>>>0){c[g>>2]=0;c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4;c[g>>2]=0;yb=f;return}n=0;da(3774,a+40|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;a=c[g>>2]|0;c[g>>2]=0;if(!a)Ea(b|0);oZa(a);RCb(a);Ea(b|0)}else{b=c[g>>2]|0;c[g>>2]=0;if(!b){yb=f;return}oZa(b);RCb(b);yb=f;return}}function EE(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;k=yb;yb=yb+48|0;g=k+32|0;h=k+24|0;i=k+16|0;f=k+8|0;j=k;d=b+8|0;nrb(i,d);Hib(f,d);d=i+4|0;e=c[f>>2]|0;f=c[f+4>>2]|0;a=a+80|0;while(1){if(!(dhb(c[i>>2]|0,c[d>>2]|0,e,f)|0))break;l=Qab(i)|0;c[j>>2]=c[l>>2];GG(h,a,j,j);hob(i)}l=b+24|0;GG(g,a,l,l);yb=k;return}function FE(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=a+16|0;j=c[k>>2]|0;f=c[a+12>>2]|0;g=j-f>>2;e=c[b>>2]|0;h=f;d=0;while(1){if(d>>>0>=g>>>0){i=16;break}if(dub(c[c[h+(d<<2)>>2]>>2]|0,e)|0)break;d=d+1|0}if((i|0)==16){k=a+188|0;vla(k,b);return}f=h+(h+(d<<2)-f>>2<<2)|0;while(1){d=f+4|0;if((d|0)==(j|0))break;i=c[d>>2]|0;c[d>>2]=0;e=c[f>>2]|0;c[f>>2]=i;if(e|0)RCb(e);f=d}d=c[k>>2]|0;while(1){if((f|0)==(d|0))break;d=d+-4|0;e=c[d>>2]|0;c[d>>2]=0;if(e|0)RCb(e)}c[k>>2]=f;k=a+188|0;vla(k,b);return}function GE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;if(a[b+33>>0]&1)BM(IWa(150620,113360)|0);if((c[(c[d+8>>2]|0)+4>>2]|0)==6){yb=h;return}g=b+28|0;tI(c[g>>2]|0,4)|0;g=c[g>>2]|0;f=c[d+4>>2]|0;zz(g,baa((f|0)==6?0:f)|0);Ftb(e,c[37121]|0);f=b+60|0;g=c[f>>2]|0;if(g>>>0<(c[b+64>>2]|0)>>>0){c[g>>2]=c[e>>2];c[f>>2]=(c[f>>2]|0)+4}else _M(b+56|0,e);hF(c[d+12>>2]|0);yb=h;return}function HE(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;if((d+1|0)==(e|0)){f=uXa(b+12|0,d)|0;f=c[f>>2]|0}else{f=Eeb(c[a>>2]|0)|0;h=f+12|0;i=b+12|0;g=d;while(1){if(g>>>0>=e>>>0)break;j=uXa(i,g)|0;Wla(h,c[j>>2]|0);g=g+1|0}_u(f)}if((WCb(c[b+16>>2]|0)|0)==(e|0)){Cka(b+12|0,d);_u(b);return f|0}g=b+12|0;while(1){if(d>>>0>=e>>>0)break;i=Ekb(c[a>>2]|0)|0;j=uXa(g,d)|0;c[j>>2]=i;d=d+1|0}_u(b);return f|0}function IE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+32|0;d=h+16|0;g=h+8|0;f=h;SEa(c[a>>2]|0,40)|0;Fmb(d,c[a+28>>2]|0,c[a>>2]|0);Ik(d,b);_Va(a);d=b+8|0;nrb(g,d);Hib(f,d);d=g+4|0;e=c[f>>2]|0;f=c[f+4>>2]|0;while(1){if(!(dhb(c[g>>2]|0,c[d>>2]|0,e,f)|0))break;i=Qab(g)|0;sV(a,c[i>>2]|0);hob(g)}sV(a,c[b+28>>2]|0);y9(a);yb=h;return}function JE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;d=c[b>>2]|0;while(1){if((d|0)==(e|0))break;d=d+4|0}e=a+-16|0;a=c[b+16>>2]|0;d=c[b+12>>2]|0;while(1){if((d|0)==(a|0))break;d=d+4|0}f=c[b+40>>2]|0;g=e+16|0;d=c[b+36>>2]|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(!(Yrb(a)|0))N8a(g,a);d=d+4|0}a=c[b+28>>2]|0;d=c[b+24>>2]|0;while(1){if((d|0)==(a|0))break;e=c[d>>2]|0;if(!(Yrb(e)|0))Tua(g,e);d=d+4|0}PEa(g,b+48|0);PEa(g,b+84|0);return}function KE(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=yb;yb=yb+48|0;m=n+24|0;k=n;b=b+44|0;g=c[b>>2]|0;h=T3a(c[g>>2]|0,e,1)|0;i=c[b>>2]|0;Bqb(k,31);j=m;l=j+24|0;do{a[j>>0]=a[k>>0]|0;j=j+1|0;k=k+1|0}while((j|0)<(l|0));m=D7(i,m)|0;m=hIa(c[g>>2]|0,12,h,m)|0;m=tVa(c[g>>2]|0,d,m)|0;d=c[b>>2]|0;e=T3a(c[d>>2]|0,e,1)|0;f=T3a(c[c[b>>2]>>2]|0,f,1)|0;f=Uha(g,m,hIa(c[d>>2]|0,12,e,f)|0)|0;yb=n;return f|0}function LE(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;k=yb;yb=yb+48|0;g=k+32|0;h=k+24|0;i=k+16|0;f=k+8|0;j=k;d=b+8|0;nrb(i,d);Hib(f,d);d=i+4|0;e=c[f>>2]|0;f=c[f+4>>2]|0;a=a+96|0;while(1){if(!(dhb(c[i>>2]|0,c[d>>2]|0,e,f)|0))break;l=Qab(i)|0;c[j>>2]=c[l>>2];GG(h,a,j,j);hob(i)}l=b+24|0;GG(g,a,l,l);yb=k;return}function ME(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;f=d+4|0;g=d;gQa(c[a>>2]|0,c[a+4>>2]|0)|0;SEa(c[a>>2]|0,40)|0;Obb(c[a>>2]|0,98541)|0;c[g>>2]=c[b+8>>2];e=c[a>>2]|0;c[f>>2]=c[g>>2];SEa(Ica(f,e)|0,32)|0;a6(a,b);SEa(c[a>>2]|0,32)|0;i$a(a,c[b+16>>2]|0);SEa(c[a>>2]|0,41)|0;IWa(c[a>>2]|0,c[a+16>>2]|0)|0;yb=d;return}function NE(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=yb;yb=yb+32|0;f=h+16|0;g=h;b=Rq(a,b,f,h+12|0,d)|0;d=c[b>>2]|0;if(d|0){g=d;yb=h;return g|0}Zda(g,a,e);e=c[g>>2]|0;i8(a,c[f>>2]|0,b,e);c[g>>2]=0;g=e;yb=h;return g|0}function OE(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;g=f;b=aHa()|0;c[a+64>>2]=b;c[g>>2]=b;d=a+44|0;e=c[d>>2]|0;if(e>>>0<(c[a+48>>2]|0)>>>0){c[g>>2]=0;c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4;c[g>>2]=0;yb=f;return}n=0;da(384,a+40|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;a=c[g>>2]|0;c[g>>2]=0;if(!a)Ea(b|0);lTa(a);RCb(a);Ea(b|0)}else{b=c[g>>2]|0;c[g>>2]=0;if(!b){yb=f;return}lTa(b);RCb(b);yb=f;return}}function PE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+96|0;e=f;b=c[b>>2]|0;Zg(a,b);VA(e,pob(c[a+40>>2]|0)|0,0);n=0;d=U(154,e|0,b|0)|0;g=n;n=0;if(g&1){g=sa()|0;P()|0;Fha(e);Ea(g|0)}if(!d){g=a+92|0;a=c[g>>2]|0;a=a+-4|0;c[g>>2]=a;Fha(e);yb=f;return}n=0;ea(153,a|0,e|0,b|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;Fha(e);Ea(g|0)}else{g=a+92|0;a=c[g>>2]|0;a=a+-4|0;c[g>>2]=a;Fha(e);yb=f;return}}function QE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=sma(a,cj(a,c[b+8>>2]|0)|0,b)|0;if(PBb(c[f>>2]|0)|0)return f|0;d=sma(a,cj(a,c[b+12>>2]|0)|0,b)|0;if(PBb(c[d>>2]|0)|0){f=d;return f|0}e=Qsa(a,cj(a,c[b+16>>2]|0)|0,b)|0;if(PBb(c[e>>2]|0)|0){f=e;return f|0}b=b1a(b,b)|0;a=iL(a,b)|0;ufa(a,e);ufa(a,f);ufa(a,d);f=b;return f|0}function RE(a){a=a|0;var b=0,d=0,e=0;b=iGa(0,uob(a)|0)|0;e=c[a+20>>2]|0;d=c[a+16>>2]|0;while(1){if((d|0)==(e|0))break;b=iGa(b,c[d>>2]|0)|0;d=d+4|0}b=iGa(b,_ob(a)|0)|0;e=c[a+32>>2]|0;d=c[a+28>>2]|0;while(1){if((d|0)==(e|0))break;b=iGa(b,c[d>>2]|0)|0;d=d+4|0}b=iGa(b,c[a+12>>2]|0)|0;if(!(eCb(c[a+40>>2]|0)|0)){e=0;e=iGa(b,e)|0;a=a+44|0;a=c[a>>2]|0;a=bc(a)|0;a=iGa(e,a)|0;return a|0}e=LAb(a+40|0)|0;e=iGa(b,e)|0;a=a+44|0;a=c[a>>2]|0;a=bc(a)|0;a=iGa(e,a)|0;return a|0}function SE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;if(a[b+33>>0]&1)BM(IWa(150620,113275)|0);f=b+28|0;tI(c[f>>2]|0,3)|0;f=c[f>>2]|0;e=c[d+4>>2]|0;zz(f,baa((e|0)==6?0:e)|0);e=d+8|0;f=b+60|0;g=c[f>>2]|0;if((g|0)==(c[b+64>>2]|0)){_M(b+56|0,e);g=d+12|0;g=c[g>>2]|0;hF(g);return}else{c[g>>2]=c[e>>2];c[f>>2]=(c[f>>2]|0)+4;g=d+12|0;g=c[g>>2]|0;hF(g);return}}function TE(a){a=a|0;Yqa(a+228|0);h_a(a+216|0);D2a(a+204|0);Vob(a+184|0);Pdb(a+164|0);Vob(a+152|0);Vob(a+140|0);_$a(a+128|0);wTa(a+108|0);Vob(a+96|0);Vob(a+84|0);Vob(a+68|0);Tab(a+56|0);$8a(a+44|0);return}function UE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>2;f=h+1|0;d=YBb()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>2>>>0>>1>>>0){d=e>>1;d=d>>>0>>0?f:d}aS(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;e=c[b>>2]|0;c[b>>2]=0;c[f>>2]=e;c[h>>2]=f+4;rP(a,g);q6(g);yb=i;return}function VE(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(!(hla(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>>0){f=Hb[c[e+36>>2]&255](e,b,d)|0;break}b:do if((a[e+75>>0]|0)<0|(d|0)==0){h=0;g=b}else{i=d;while(1){g=i+-1|0;if((a[b+g>>0]|0)==10)break;if(!g){h=0;g=b;break b}else i=g}f=Hb[c[e+36>>2]&255](e,b,i)|0;if(f>>>0>>0)break a;h=i;g=b+i|0;d=d-i|0;f=c[j>>2]|0}while(0);Uv(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 WE(a,b){a=a|0;b=b|0;var d=0;switch(c[b+8>>2]|0){case 5:case 4:case 3:case 2:case 1:case 0:{d=sma(a,cj(a,c[b+12>>2]|0)|0,b)|0;if(PBb(c[d>>2]|0)|0){b=d;return b|0}b=b1a(b,b)|0;ufa(iL(a,b)|0,d);return b|0}case 21:case 20:{d=sma(a,cj(a,c[b+12>>2]|0)|0,b)|0;if(PBb(c[d>>2]|0)|0){b=d;return b|0}b=$D(a,d,1,b)|0;return b|0}default:{b=mHa(a,c[b+4>>2]|0)|0;return b|0}}return 0}function XE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;i=j;g=c[a+8>>2]|0;d=c[a+4>>2]|0;if(((g-d|0)/24|0)>>>0>=b>>>0){Sda(a,b);yb=j;return}e=c[a>>2]|0;h=(d-e|0)/24|0;f=h+b|0;d=Oxb()|0;if(f>>>0>d>>>0)Apa();e=(g-e|0)/24|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}rR(i,d,h,a+8|0);Zca(i,b);aT(a,i);mqa(i);yb=j;return}function YE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;h=j+8|0;i=j;e=jE(b+172|0,d)|0;if(!e){Gsb(i,c[b+120>>2]|0);e=h;f=d;g=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));i=D7(i,h)|0;i=b1a(i,i)|0;h=iL(b,i)|0;d=Lm(b+172|0,d)|0;c[d>>2]=h;yb=j;return i|0}else{i=c[e+32>>2]|0;yb=j;return i|0}return 0}function ZE(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;e=c[c[a>>2]>>2]|0;d=a+12|0;eD(e,wma(b,c[(c[c[a+8>>2]>>2]|0)+28>>2]|0,c[(c[d>>2]|0)+8>>2]|0)|0);e=dWa(c[c[a+16>>2]>>2]|0)|0;d=k0a(c[d>>2]|0)|0;a=c[37235]|0;return Jba(Tea(e,mv(d,a,_pb((WCb(c[(c[b>>2]|0)+144>>2]|0)|0)+-1|0)|0)|0)|0)|0}function _E(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h+8|0;g=h;Kra(e,a);Vda(g,a);f=e+4|0;g=c[g+4>>2]|0;b=c[f>>2]|0;while(1){if((b|0)==(g|0))break;b=b+4|0;c[f>>2]=b;d=c[e>>2]|0;if((b-(c[d>>2]|0)|0)==4096){b=d+4|0;c[e>>2]=b;b=c[b>>2]|0;c[f>>2]=b}}c[a+20>>2]=0;b=a+8|0;d=a+4|0;g=c[d>>2]|0;f=g;while(1){e=c[b>>2]|0;if(e-f>>2>>>0<=2)break;RCb(c[g>>2]|0);e=(c[d>>2]|0)+4|0;c[d>>2]=e;f=e;g=e}switch(e-f>>2|0){case 1:{c[a+16>>2]=512;yb=h;return}case 2:{c[a+16>>2]=1024;yb=h;return}default:{yb=h;return}}}function $E(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=c[b>>2]|0;f=(c[b+4>>2]|0)-g>>2;i=0;while(1){if(i>>>0>=f>>>0){h=11;break}e=c[g+(i<<2)>>2]|0;if(PBb(c[e+4>>2]|0)|0)break;i=i+1|0}if((h|0)==11)return;if(i){e=c[a+36>>2]|0;WCb(e)|0;e=Eeb(e+152|0)|0;g=e+12|0;f=0;while(1){h=c[b>>2]|0;if((f|0)==(i|0))break;Wla(g,Jma(a,c[h+(f<<2)>>2]|0)|0);f=f+1|0}Wla(g,c[h+(i<<2)>>2]|0);uZa(e,d)}Iya(a,e)|0;return}function aF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=a+44|0;a=c[h>>2]|0;d=Mcb(d)|0;d=T3a(c[a>>2]|0,d,1)|0;i=c[h>>2]|0;f=Mcb(f)|0;f=T3a(c[i>>2]|0,f,1)|0;f=hIa(c[a>>2]|0,16,d,f)|0;d=c[h>>2]|0;e=Mcb(e)|0;e=T3a(c[d>>2]|0,e,1)|0;h=c[h>>2]|0;g=Mcb(g)|0;g=T3a(c[h>>2]|0,g,1)|0;g=hIa(c[d>>2]|0,16,e,g)|0;return Uha(a,b,hIa(c[a>>2]|0,8,f,g)|0)|0}function bF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=a+44|0;a=c[h>>2]|0;d=Mcb(d)|0;d=T3a(c[a>>2]|0,d,1)|0;i=c[h>>2]|0;f=Mcb(f)|0;f=T3a(c[i>>2]|0,f,1)|0;f=hIa(c[a>>2]|0,15,d,f)|0;d=c[h>>2]|0;e=Mcb(e)|0;e=T3a(c[d>>2]|0,e,1)|0;h=c[h>>2]|0;g=Mcb(g)|0;g=T3a(c[h>>2]|0,g,1)|0;g=hIa(c[d>>2]|0,15,e,g)|0;return Uha(a,b,hIa(c[a>>2]|0,7,f,g)|0)|0}function cF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;e=j+16|0;f=j+8|0;g=j;h=a+28|0;i=a+24|0;a=c[a+24>>2]|0;while(1){if((h|0)==(a|0))break;c[g>>2]=c[a+16>>2];GG(e,i,g,g);d=a;a=c[d+4>>2]|0;a:do if(!a)while(1){a=c[d+8>>2]|0;if((d|0)==(c[a>>2]|0))break a;d=a}else while(1){d=c[a>>2]|0;if(!d)break;a=d}while(0)}h=b+24|0;GG(f,i,h,h);yb=j;return}function dF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=yb;yb=yb+16|0;g=h+8|0;e=h;f=a+4|0;Obb(c[f>>2]|0,119872)|0;a=b+8|0;nrb(g,a);Hib(e,a);a=g+4|0;d=c[e>>2]|0;e=c[e+4>>2]|0;while(1){if(!(dhb(c[g>>2]|0,c[a>>2]|0,d,e)|0))break;i=Qab(g)|0;j=SEa(c[f>>2]|0,32)|0;mpa(j,c[i>>2]|0)|0;hob(g)}j=SEa(c[f>>2]|0,32)|0;mpa(j,c[b+24>>2]|0)|0;yb=h;return}function eF(b,d){b=b|0;d=d|0;var e=0;if(a[b+33>>0]&1)BM(IWa(150620,112989)|0);e=d+20|0;yIa(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;e=d+24|0;yIa(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;if((c[d+4>>2]|0)==6){AQ(b);return}else{TW(b,d);return}}function fF(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,l=0,m=0,n=0;n=yb;yb=yb+48|0;l=n+32|0;m=n;k=INa(8)|0;c[m>>2]=b;c[m+4>>2]=d;c[m+8>>2]=e;c[m+12>>2]=f;c[m+16>>2]=g;c[m+20>>2]=h;c[m+24>>2]=i;c[m+28>>2]=j;d=0;while(1){if((d|0)==8)break;b=WCb(k)|0;KJa(b,c[m+(d<<2)>>2]|0)|0;d=d+1|0}m=WCb(INa(3)|0)|0;m=KJa(m,WGa(148840)|0)|0;Pwb(l,KJa(KJa(m,dWa(a)|0)|0,k)|0);yb=n;return c[l>>2]|0}function gF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;h=i;g=a+68|0;e=c[g>>2]|0;f=(c[e+4>>2]|0)-(c[e>>2]|0)-b|0;Pwb(h,f+-5|0);h=YV(e,b,c[h>>2]|0)|0;if((h|0)==5){yb=i;return}if(h>>>0>=5)ma(112338,112368,113,112402);d=c[g>>2]|0;e=(c[d>>2]|0)+b|0;b=f+-5|0;if(b){Pxa(e+h|0,e+5|0,b|0)|0;d=c[g>>2]|0}g=5-h|0;Hwa(d,(c[d+4>>2]|0)-(c[d>>2]|0)-g|0);if(!(c[a+76>>2]|0)){yb=i;return}e=a+132|0;f=a+128|0;d=c[a+140>>2]|0;while(1){b=c[f>>2]|0;if(d>>>0>=(c[e>>2]|0)-b>>3>>>0)break;a=b+(d<<3)|0;c[a>>2]=(c[a>>2]|0)-g;d=d+1|0}yb=i;return}function hF(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+32|0;b=h+20|0;d=h+16|0;g=h+8|0;e=h;f=Rqb(a)|0;if(!f){yb=h;return}c[d>>2]=c[f+8>>2];c[b>>2]=c[d>>2];if(BT(f,b)|0){yb=h;return}b=f+12|0;nrb(g,b);Hib(e,b);b=g+4|0;d=c[e>>2]|0;a=c[e+4>>2]|0;while(1){if(!(dhb(c[g>>2]|0,c[b>>2]|0,d,a)|0))break;Qab(g)|0;hob(g)}if((c[f+4>>2]|0)!=6){yb=h;return}cWa(f+12|0)|0;yb=h;return}function iF(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=nB(a,b,d)|0;f=c[e>>2]|0;g=c[d>>2]|0;if(!(zcb(f,g)|0))return h|0;c[d>>2]=f;c[e>>2]=g;e=c[d>>2]|0;f=c[b>>2]|0;if(!(zcb(e,f)|0)){h=h+1|0;return h|0}c[b>>2]=e;c[d>>2]=f;e=c[b>>2]|0;f=c[a>>2]|0;if(!(zcb(e,f)|0)){h=h+2|0;return h|0}c[a>>2]=e;c[b>>2]=f;h=h+3|0;return h|0}function jF(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;m=a[b+11>>0]|0;j=m<<24>>24<0;k=c[b>>2]|0;l=c[b+4>>2]|0;m=m&255;while(1){if(!d)break;g=d+16|0;i=j?l:m;f=a[g+11>>0]|0;if(f<<24>>24<0){h=c[d+20>>2]|0;f=c[g>>2]|0}else{h=f&255;f=g}f=qdb(f,j?k:b,i>>>0>>0?i:h)|0;if(!f)if(h>>>0>>0)f=10;else f=9;else if((f|0)<0)f=10;else f=9;if((f|0)==9)e=d;else if((f|0)==10)d=d+4|0;d=c[d>>2]|0}return e|0}function kF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=LAb(b)|0;g=c[a+4>>2]|0;if(!g){i=0;return i|0}h=g+-1|0;i=(g&h|0)==0;if(!i)if(f>>>0>>0)e=f;else e=(f>>>0)%(g>>>0)|0;else e=f&h;a=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!a){i=0;return i|0}d=c[b>>2]|0;while(1){a=c[a>>2]|0;if(!a){a=0;b=17;break}b=c[a+4>>2]|0;if((f|0)==(b|0)){if(rmb(c[a+8>>2]|0,d)|0){b=17;break}}else{if(!i){if(b>>>0>=g>>>0)b=(b>>>0)%(g>>>0)|0}else b=b&h;if((b|0)!=(e|0)){a=0;b=17;break}}}if((b|0)==17)return a|0;return 0}function lF(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=yb;yb=yb+16|0;g=h;c[g>>2]=d;c[g+4>>2]=e;while(1){d=a;if((a|0)==(b|0)){f=13;break}if(AK(g,c[a>>2]|0)|0)break;a=a+4|0}if((f|0)==13){yb=h;return a|0}while(1){a=a+4|0;if((a|0)==(b|0))break;if(!(AK(g,c[a>>2]|0)|0)){e=d;i=c[a>>2]|0;c[a>>2]=0;f=c[e>>2]|0;c[d>>2]=i;if(f|0){IM(f);RCb(f)}d=e+4|0}}i=d;yb=h;return i|0}function mF(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=vA(a,b,d,f)|0;g=f+4|0;if(!(nx(c[f>>2]|0,c[g>>2]|0,c[e>>2]|0,c[d>>2]|0)|0))return h|0;i=c[d>>2]|0;c[d>>2]=c[e>>2];c[e>>2]=i;if(!(nx(c[f>>2]|0,c[g>>2]|0,c[d>>2]|0,c[b>>2]|0)|0)){i=h+1|0;return i|0}i=c[b>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=i;if(!(nx(c[f>>2]|0,c[g>>2]|0,c[b>>2]|0,c[a>>2]|0)|0)){i=h+2|0;return i|0}i=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=i;i=h+3|0;return i|0}function nF(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=vJa(c[b>>2]|0,0)|0;f=c[a+16>>2]|0;if(f|0)Wla(g+12|0,f);if(e)Wla(g+12|0,X8(b,c[d+100>>2]|0)|0);switch(c[a+4>>2]|0){case 1:{Wla(g+12|0,Kma(b,c[d+100>>2]|0)|0);_u(g);return g|0}case 2:{a=c[a>>2]|0;if(!a)ma(72993,72707,118,72885);Wla(g+12|0,ama(b,c[a+4>>2]|0)|0);_u(g);return g|0}default:{_u(g);return g|0}}return 0}function oF(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;a:do if((c-b|0)>12){g=0;f=b;while(1){if(g>>>0>=13)break;if((a[f>>0]|0)!=(a[141560+g>>0]|0)){f=b;break a}g=g+1|0;f=f+1|0}b:do if((f|0)==(c|0))f=c;else{if((a[f>>0]|0)==95){g=f+1|0;if((g|0)==(c|0)){f=b;break a}if(((a[g>>0]|0)+-48|0)>>>0>=10){f=b;break a}f=f+2|0}while(1){if((f|0)==(c|0)){f=c;break b}if(((a[f>>0]|0)+-48|0)>>>0>=10)break b;f=f+1|0}}while(0);if((d|0)!=(e|0))IGa(e+-24|0,0,141574)|0;else f=b}else f=b;while(0);return f|0}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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=cH(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}Sea(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function qF(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=yb;yb=yb+32|0;e=k+16|0;d=k+12|0;f=k+8|0;g=k+4|0;h=k;j=c[a+124>>2]|0;i=j;if(!(eCb(j)|0)){yb=k;return}j=a+124|0;c[d>>2]=i;c[e>>2]=c[d>>2];a=lEa(a,e)|0;c[f>>2]=i;c[e>>2]=c[f>>2];if(!(Ew(b,(a|0)!=0,e,132820,0)|0)){yb=k;return}i=(c[a+20>>2]|0)==(c[a+16>>2]|0);c[g>>2]=c[j>>2];c[e>>2]=c[g>>2];Ew(b,i,e,132840,0)|0;i=(c[a+12>>2]|0)==0;c[h>>2]=c[j>>2];c[e>>2]=c[h>>2];Ew(b,i,e,132865,0)|0;yb=k;return}function rF(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;l=yb;yb=yb+16|0;k=l;c[k>>2]=b;h=c[a>>2]|0;j=a+4|0;e=c[j>>2]|0;f=Dna(h,e,b)|0;d=f;i=e;if((f|0)==(e|0))if((e|0)==(c[a+8>>2]|0)){_M(a,k);yb=l;return}else{c[e>>2]=b;c[j>>2]=(c[j>>2]|0)+4;yb=l;return}if((c[f>>2]|0)>>>0<=b>>>0){yb=l;return}g=d-h>>2;eva(a,(i-h>>2)+1|0);f=c[a>>2]|0;d=f+(g<<2)|0;e=c[j>>2]|0;f=f+(e-f>>2<<2)+-4-d|0;if(f){Pxa(e+(0-(f>>2)<<2)|0,d|0,f|0)|0;d=(c[a>>2]|0)+(g<<2)|0;b=c[k>>2]|0}c[d>>2]=b;yb=l;return}function sF(a){a=a|0;var b=0,d=0;a=a+4|0;b=c[a>>2]|0;b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;do if(((c[b+24>>2]|0?(c[b+16>>2]|0)==0:0)?c[b+4>>2]&8192|0:0)?!(Pzb()|0):0){b=c[a>>2]|0;b=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0;n=0;b=S(c[(c[b>>2]|0)+24>>2]|0,b|0)|0;d=n;n=0;if(!(d&1)){if((b|0)!=-1)break;d=c[a>>2]|0;d=d+(c[(c[d>>2]|0)+-12>>2]|0)|0;n=0;da(85,d|0,c[d+16>>2]|1|0);d=n;n=0;if(!(d&1))break}d=ta(0)|0;P()|0;pa(d|0)|0;n=0;ba(5);d=n;n=0;if(d&1){d=ta(0)|0;P()|0;yub(d)}}while(0);return}function tF(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=yb;yb=yb+32|0;j=k+16|0;i=k+8|0;h=k;r$(j,b);nrb(i,j);jib(h,j);e=i+4|0;g=c[h>>2]|0;h=c[h+4>>2]|0;while(1){d=c[i>>2]|0;f=c[e>>2]|0;if(!(dhb(d,f,g,h)|0)){d=5;break}f=erb(c[d>>2]|0,f)|0;n=0;U(121,a|0,f|0)|0;f=n;n=0;if(f&1){d=6;break}hob(i)}if((d|0)==5){Htb(j);j=mHa(a,c[b+4>>2]|0)|0;yb=k;return j|0}else if((d|0)==6){k=sa()|0;P()|0;Htb(j);Ea(k|0)}return 0}function uF(a){a=a|0;cXa(a+212|0);$Va(a+200|0);dXa(a+188|0);VTa(a+176|0);ETa(a+152|0);u4a(a+140|0);Qhb(a+128|0);vob(a+84|0);Nob(a+48|0);$0a(a+36|0);l0a(a+24|0);$0a(a+12|0);WZa(a);return}function vF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a>>2]|0;if((d|0)!=(c[b>>2]|0)){g=0;return g|0}switch(d|0){case 4:case 0:{g=(a|0)==(b|0);return g|0}case 1:{if(!(L6(c[a+4>>2]|0,c[b+4>>2]|0)|0)){g=0;return g|0}break}case 3:{if((c[a+4>>2]|0)!=(c[b+4>>2]|0)){g=0;return g|0}break}default:{}}g=a+16|0;d=c[g>>2]|0;e=a+12|0;a=c[e>>2]|0;f=b+12|0;if((d-a|0)!=((c[b+16>>2]|0)-(c[f>>2]|0)|0)){g=0;return g|0}b=0;while(1){if(b>>>0>=d-a>>2>>>0){d=1;a=11;break}if(snb(c[a+(b<<2)>>2]|0,c[(c[f>>2]|0)+(b<<2)>>2]|0)|0){d=0;a=11;break}b=b+1|0;a=c[e>>2]|0;d=c[g>>2]|0}if((a|0)==11)return d|0;return 0}function wF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a+4>>2]|0;if(!e){d=a+4|0;c[b>>2]=d;b=d;return b|0}f=Dtb(a)|0;a=e;while(1){e=a+16|0;if(DC(d,e)|0){e=c[a>>2]|0;if(!e){e=5;break}else{f=a;a=e}}else{if(!(DC(e,d)|0)){e=9;break}f=a+4|0;e=c[f>>2]|0;if(!e){e=8;break}else a=e}}if((e|0)==5){c[b>>2]=a;b=a;return b|0}else if((e|0)==8){c[b>>2]=a;b=f;return b|0}else if((e|0)==9){c[b>>2]=a;b=f;return b|0}return 0}function xF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h;d=a+60|0;e=c[d>>2]|0;if((c[a+56>>2]|0)==(e|0))ma(113289,112765,449,113372);c[d>>2]=e+-4;f=CU(c[a+36>>2]|0,5,b)|0;c[g>>2]=f;d=a+4|0;e=c[d>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[e>>2]=f;c[d>>2]=(c[d>>2]|0)+4}else _M(a,g);if((c[b+4>>2]|0)!=6){yb=h;return}if(!(c[b+16>>2]|0))ma(113383,112765,461,113372);AQ(a);yb=h;return}function yF(a){a=a|0;var b=0,d=0,e=0,f=0;switch(c[a>>2]|0){case 1:{b=c[c[a+4>>2]>>2]|0;if(Vxb(b)|0){f=Jcb(a,0)|0;a=vF(f,Jcb(a,1)|0)|0;return a|0}if(!(Txb(b)|0)){a=0;return a|0}a=vF(Jcb(a,1)|0,Jcb(a,2)|0)|0;return a|0}case 2:{d=Jcb(a,1)|0;e=a+16|0;f=a+12|0;b=2;while(1){if(b>>>0>=(c[e>>2]|0)-(c[f>>2]|0)>>2>>>0){b=1;d=10;break}if(snb(d,Jcb(a,b)|0)|0){b=0;d=10;break}b=b+1|0}if((d|0)==10)return b|0;break}default:{a=0;return a|0}}return 0}function zF(b,d){b=b|0;d=d|0;if(a[b+33>>0]&1)BM(IWa(150620,112733)|0);yIa(b,c[d+8>>2]|0);yIa(b,c[d+12>>2]|0);yIa(b,c[d+16>>2]|0);if((c[d+4>>2]|0)==6){AQ(b);return}else{TW(b,d);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;j=yb;yb=yb+32|0;i=j;g=c[a+8>>2]|0;d=c[a+4>>2]|0;if(((g-d|0)/24|0)>>>0>=b>>>0){AEa(a,b);yb=j;return}e=c[a>>2]|0;h=(d-e|0)/24|0;f=h+b|0;d=Oxb()|0;if(f>>>0>d>>>0)Apa();e=(g-e|0)/24|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}rR(i,d,h,a+8|0);UBa(i,b);jT(a,i);wta(i);yb=j;return}function BF(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;k=yb;yb=yb+32|0;d=k+24|0;h=k+16|0;g=k+8|0;i=k+4|0;j=k;e=b+8|0;nrb(h,e);Hib(g,e);e=h+4|0;f=c[g>>2]|0;g=c[g+4>>2]|0;a=a+36|0;while(1){if(!(dhb(c[h>>2]|0,c[e>>2]|0,f,g)|0))break;l=Qab(h)|0;c[i>>2]=c[l>>2];c[d>>2]=c[i>>2];m=Iq(a,d)|0;c[l>>2]=m;hob(h)}m=b+24|0;c[j>>2]=c[m>>2];c[d>>2]=c[j>>2];l=Iq(a,d)|0;c[m>>2]=l;yb=k;return}function CF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>3;f=h+1|0;d=wxb()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>3>>>0>>1>>>0){d=e>>2;d=d>>>0>>0?f:d}FR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;c[f>>2]=c[b>>2];e=b+4|0;c[f+4>>2]=c[e>>2];c[b>>2]=0;c[e>>2]=0;c[h>>2]=f+8;uM(a,g);Mka(g);yb=i;return}function DF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=uob(a)|0;if((d|0)!=(uob(b)|0)){b=0;return b|0}d=_ob(a)|0;if((d|0)!=(_ob(b)|0)){b=0;return b|0}d=0;while(1){if(d>>>0>=(Icb(a)|0)>>>0)break;f=jka(a,d)|0;if((f|0)!=(jka(b,d)|0)){d=0;e=11;break}d=d+1|0}if((e|0)==11)return d|0;if((c[a+12>>2]|0)!=(c[b+12>>2]|0)){f=0;return f|0}if(cub(c[a+40>>2]|0,c[b+40>>2]|0)|0){f=0;return f|0}d=Yrb(a)|0;e=Yrb(b)|0;if(d|e){f=d?e:0;return f|0}f=L6(c[a+44>>2]|0,c[b+44>>2]|0)|0;return f|0}function EF(){FAb();iAb();JBb();DBb();CBb();BBb();ABb();zBb();yBb();xBb();wBb();vBb();uBb();tBb();sBb();rBb();qBb();pBb();oBb();nBb();mBb();lBb();kBb();jBb();iBb();hBb();gBb();fBb();eBb();dBb();cBb();bBb();aBb();$Ab();_Ab();ZAb();YAb();XAb();WAb();VAb();return}function FF(a,b){a=a|0;b=b|0;var d=0,e=0;dHa(a,Jvb(c[(c[a+44>>2]|0)+4>>2]|0)|0,b,130683);opa(a,c[b+4>>2]|0,0,b,130731);opa(a,c[(c[b+12>>2]|0)+4>>2]|0,1,b,130763);opa(a,c[(c[b+16>>2]|0)+4>>2]|0,1,b,130795);opa(a,c[(c[b+20>>2]|0)+4>>2]|0,1,b,130829);e=c[b+8>>2]|0;d=c[a+36>>2]|0;WCb(d)|0;dHa(a,e>>>0<(c[d+112>>2]|0)-(c[d+108>>2]|0)>>4>>>0,b,130861);return}function GF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[a+24>>2]|0;a=c[a+28>>2]|0;if((f|0)==(a|0))ma(108443,134747,729,108469);e=c[b>>2]|0;a=a-f>>2;a:while(1){d=a+-1|0;a=c[f+(d<<2)>>2]|0;b=Rqb(a)|0;do if(!b){b=hrb(a)|0;if(!b)if(VBb(c[a>>2]|0)|0)break;else{b=9;break a}else if(dub(e,c[b+8>>2]|0)|0){b=12;break a}else break}else if(dub(e,c[b+8>>2]|0)|0){b=12;break a}while(0);if(!d){a=0;b=12;break}a=d}if((b|0)==9)ma(108485,134747,739,108469);else if((b|0)==12)return a|0;return 0}function HF(a){a=a|0;var b=0,d=0,e=0,f=0;e=yb;yb=yb+16|0;b=e;d=a+248|0;if(c[d>>2]|0)ma(115151,112368,1333,115162);wn(a);do if(((c[a+188>>2]|0)-(c[a+184>>2]|0)|0)!=4){c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;D8(b,115177,Zzb(115177)|0);n=0;da(4022,a|0,b|0);f=n;n=0;if(f&1){f=sa()|0;P()|0;Chb(b);Ea(f|0)}else{Chb(b);break}}while(0);a=Ct(a)|0;if(!(c[d>>2]|0)){yb=e;return a|0}else ma(115151,112368,1339,115162);return 0}function IF(b){b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+32|0;d=g+24|0;e=g;f=b+12|0;if(a[f>>0]&1)BM(IWa(150620,114483)|0);nab(e,b);n=0;da(4025,d|0,e|0);b=n;n=0;if(b&1){g=sa()|0;P()|0;TIa(e);Ea(g|0)}TIa(e);if(!(a[f>>0]&1)){f=c[d>>2]|0;yb=g;return f|0}else{e=IWa(150620,118174)|0;f=c[d>>2]|0;BM(IWa(Ym(e,f)|0,114633)|0);yb=g;return f|0}return 0}function JF(b){b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+32|0;d=g+24|0;e=g;f=b+12|0;if(a[f>>0]&1)BM(IWa(150620,114483)|0);qab(e,b);n=0;da(4028,d|0,e|0);b=n;n=0;if(b&1){g=sa()|0;P()|0;TIa(e);Ea(g|0)}TIa(e);if(!(a[f>>0]&1)){f=c[d>>2]|0;yb=g;return f|0}else{e=IWa(150620,114811)|0;f=c[d>>2]|0;BM(IWa(Zm(e,f)|0,114633)|0);yb=g;return f|0}return 0}function KF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=e-d>>2;if(g>>>0>1073741807)ipa();do if(g>>>0>=2){f=g+4&-4;if(f>>>0<=1073741823){h=mla(f<<2)|0;c[b>>2]=h;c[b+8>>2]=f|-2147483648;c[b+4>>2]=g;b=h;break}b=oa(8)|0;n=0;da(67,b|0,138616);h=n;n=0;if(h&1){h=sa()|0;P()|0;va(b|0);Ea(h|0)}else{c[b>>2]=50788;za(b|0,39592,473)}}else a[b+8+3>>0]=g;while(0);while(1){if((d|0)==(e|0))break;Ftb(b,c[d>>2]|0);d=d+4|0;b=b+4|0}Ftb(b,0);return}function LF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=LAb(b)|0;g=c[a+4>>2]|0;if(!g){i=0;return i|0}h=g+-1|0;i=(g&h|0)==0;if(!i)if(f>>>0>>0)e=f;else e=(f>>>0)%(g>>>0)|0;else e=f&h;a=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!a){i=0;return i|0}d=c[b>>2]|0;while(1){a=c[a>>2]|0;if(!a){a=0;b=17;break}b=c[a+4>>2]|0;if((f|0)==(b|0)){if(dub(c[a+8>>2]|0,d)|0){b=17;break}}else{if(!i){if(b>>>0>=g>>>0)b=(b>>>0)%(g>>>0)|0}else b=b&h;if((b|0)!=(e|0)){a=0;b=17;break}}}if((b|0)==17)return a|0;return 0}function MF(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;j=yb;yb=yb+16|0;h=j+12|0;e=j+8|0;g=j+4|0;i=j;if(!(a[c[b>>2]>>0]&1)){yb=j;return}k=c[b+4>>2]|0;c[e>>2]=c[d+40>>2];c[h>>2]=c[e>>2];k=sQ(k,h)|0;l=c[b>>2]|0;e=c[k+4>>2]|0;f=d+8|0;c[g>>2]=c[f>>2];c[h>>2]=c[g>>2];Oq(l,e,h,133669);e=c[k+12>>2]|0;d=c[k+8>>2]|0;while(1){if((d|0)==(e|0))break;l=c[d>>2]|0;k=c[b>>2]|0;c[i>>2]=c[f>>2];c[h>>2]=c[i>>2];Oq(k,l,h,133717);d=d+4|0}yb=j;return}function NF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=LAb(b)|0;g=c[a+4>>2]|0;if(!g){i=0;return i|0}h=g+-1|0;i=(g&h|0)==0;if(!i)if(f>>>0>>0)e=f;else e=(f>>>0)%(g>>>0)|0;else e=f&h;a=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!a){i=0;return i|0}d=c[b>>2]|0;while(1){a=c[a>>2]|0;if(!a){a=0;b=17;break}b=c[a+4>>2]|0;if((b|0)==(f|0)){if(dub(c[a+8>>2]|0,d)|0){b=17;break}}else{if(!i){if(b>>>0>=g>>>0)b=(b>>>0)%(g>>>0)|0}else b=b&h;if((b|0)!=(e|0)){a=0;b=17;break}}}if((b|0)==17)return a|0;return 0}function OF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+16|0;IW(e,2759,b);f=wrb(c[b>>2]|0)|0;if(!f){wd(a,b);return}d=f+8|0;if((c[(c[d>>2]|0)+4>>2]|0)==6)return;IW(e,2760,b);a=f+16|0;if(c[a>>2]|0){IW(e,2758,a);IW(e,2761,b)}IW(e,2758,f+12|0);IW(e,2762,b);IW(e,2758,d);return}function PF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;i=j;g=c[a+8>>2]|0;d=c[a+4>>2]|0;if(g-d>>3>>>0>=b>>>0){sua(a,b);yb=j;return}e=c[a>>2]|0;h=d-e>>3;f=h+b|0;d=wxb()|0;if(f>>>0>d>>>0)Apa();e=g-e|0;if(e>>3>>>0>>1>>>0){d=e>>2;d=d>>>0>>0?f:d}FR(i,d,h,a+8|0);Esa(i,b);lU(a,i);vta(i);yb=j;return}function QF(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0;f=yb;yb=yb+48|0;h=f+32|0;d=f+24|0;i=f+16|0;g=f;f=f+36|0;a=bUa()|0;if(a|0?(e=c[a>>2]|0,e|0):0){a=e+48|0;b=c[a>>2]|0;a=c[a+4>>2]|0;if(!((b&-256|0)==1126902528&(a|0)==1129074247)){c[d>>2]=139143;Xdb(139093,d)}if((b|0)==1126902529&(a|0)==1129074247)a=c[e+44>>2]|0;else a=e+80|0;c[f>>2]=a;e=c[e>>2]|0;a=c[e+4>>2]|0;if(UQ(39464,e,f)|0){i=c[f>>2]|0;i=Eb[c[(c[i>>2]|0)+8>>2]&511](i)|0;c[g>>2]=139143;c[g+4>>2]=a;c[g+8>>2]=i;Xdb(139007,g)}else{c[i>>2]=139143;c[i+4>>2]=a;Xdb(139052,i)}}Xdb(139131,h)}function RF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a>>2]=c[b>>2];e=a+4|0;d=b+4|0;c[e>>2]=0;f=a+8|0;c[f>>2]=0;c[a+12>>2]=0;c[e>>2]=c[d>>2];e=b+8|0;c[f>>2]=c[e>>2];f=b+12|0;c[a+12>>2]=c[f>>2];c[f>>2]=0;c[e>>2]=0;c[d>>2]=0;d=a+16|0;e=b+16|0;c[d>>2]=0;f=a+20|0;c[f>>2]=0;c[a+24>>2]=0;c[d>>2]=c[e>>2];d=b+20|0;c[f>>2]=c[d>>2];f=b+24|0;c[a+24>>2]=c[f>>2];c[f>>2]=0;c[d>>2]=0;c[e>>2]=0;e=a+28|0;d=b+28|0;c[e>>2]=0;f=a+32|0;c[f>>2]=0;c[a+36>>2]=0;c[e>>2]=c[d>>2];e=b+32|0;c[f>>2]=c[e>>2];b=b+36|0;c[a+36>>2]=c[b>>2];c[b>>2]=0;c[e>>2]=0;c[d>>2]=0;return}function SF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>2;f=h+1|0;d=YBb()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>2>>>0>>1>>>0){d=e>>1;d=d>>>0>>0?f:d}aS(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;e=c[b>>2]|0;c[b>>2]=0;c[f>>2]=e;c[h>>2]=f+4;rP(a,g);cba(g);yb=i;return}function TF(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=GI(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}Fxa(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function UF(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;switch(c|0){case 1:{switch(b<<24>>24){case 4:case 2:case 1:{b=1;break}default:b=0}PGa(a,b,d,129333)|0;return}case 2:{switch(b<<24>>24){case 8:case 4:case 2:case 1:{b=1;break}default:b=0}PGa(a,b,d,129382)|0;return}case 3:{Yza(a,b,4,d,129434);return}case 4:{Yza(a,b,8,d,129474);return}case 5:{Yza(a,b,16,d,129514);return}case 0:{ma(141129,126900,681,129556);break}default:return}}function VF(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=yb;yb=yb+64|0;e=g+32|0;i=g+48|0;h=g+24|0;f=g;$jb(e,b+152|0);a[i>>0]=0;c[h>>2]=i;c[h+4>>2]=e;JWa(f,h,f);n=0;da(254,c[f+16>>2]|0,d|0);b=n;n=0;if(b&1){i=sa()|0;P()|0;TIa(f);Ea(i|0)}if(pqb(c[d+16>>2]|0)|0){qEa(d+12|0,e);TIa(f);yb=g;return}n=0;fa(75,73774,72707,783,73794);n=0;i=sa()|0;P()|0;TIa(f);Ea(i|0)}function WF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>4;f=h+1|0;d=Wub()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>4>>>0>>1>>>0){d=e>>3;d=d>>>0>>0?f:d}AR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;o5a(f,b);c[h>>2]=f+16;FQ(a,g);wja(g);yb=i;return}function XF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>4;f=h+1|0;d=Wub()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>4>>>0>>1>>>0){d=e>>3;d=d>>>0>>0?f:d}AR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;o5a(f,b);c[h>>2]=f+16;FQ(a,g);xja(g);yb=i;return}function YF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>4;f=h+1|0;d=Wub()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>4>>>0>>1>>>0){d=e>>3;d=d>>>0>>0?f:d}AR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;o5a(f,b);c[h>>2]=f+16;FQ(a,g);yja(g);yb=i;return}function ZF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>4;f=h+1|0;d=Wub()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>4>>>0>>1>>>0){d=e>>3;d=d>>>0>>0?f:d}AR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;o5a(f,b);c[h>>2]=f+16;FQ(a,g);zja(g);yb=i;return}function _F(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>4;f=h+1|0;d=Wub()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>4>>>0>>1>>>0){d=e>>3;d=d>>>0>>0?f:d}AR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;o5a(f,b);c[h>>2]=f+16;FQ(a,g);Aja(g);yb=i;return}function $F(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=((c[a+4>>2]|0)-e|0)/12|0;f=h+1|0;d=vxb()|0;if(f>>>0>d>>>0)Apa();e=((c[a+8>>2]|0)-e|0)/12|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}aR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[h>>2]=f+12;HS(a,g);Rra(g);yb=i;return}function aG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>2;f=h+1|0;d=YBb()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>2>>>0>>1>>>0){d=e>>1;d=d>>>0>>0?f:d}aS(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;e=c[b>>2]|0;c[b>>2]=0;c[f>>2]=e;c[h>>2]=f+4;rP(a,g);bba(g);yb=i;return}function bG(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+96|0;e=g+56|0;f=g;_eb(e);n=0;da(2646,e|0,d|0);h=n;n=0;if(!(h&1)){if(!(a[e+24>>0]&1)){h=0;Arb(e);yb=g;return h|0}n=0;ca(499,f|0);h=n;n=0;if(!(h&1)){h=WCb(c[b+36>>2]|0)|0;n=0;ea(104,f+16|0,d|0,h|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;JXa(f);Arb(e);Ea(h|0)}else{JXa(f);h=1;Arb(e);yb=g;return h|0}}}h=sa()|0;P()|0;Arb(e);Ea(h|0);return 0}function cG(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;b=f+12|0;d=f;e=mla(120)|0;mT(e);c[e+8>>2]=c[37313];Ftb(b,c[37153]|0);c[e>>2]=c[b>>2];c[e+4>>2]=c[37313];c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;D8(d,86420,Zzb(86420)|0);n=0;b=U(136,d|0,a|0)|0;g=n;n=0;if(g&1){g=sa()|0;P()|0;Chb(d);Ea(g|0)}else{Chb(d);c[e+40>>2]=c[b>>2];zha(e,b);aq(a,e);yb=f;return}}function dG(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0;if((-18-d|0)>>>0>>0)ipa();if((a[b+11>>0]|0)<0)m=c[b>>2]|0;else m=b;if(d>>>0<2147483623){k=e+d|0;l=d<<1;k=k>>>0>>0?l:k;k=k>>>0<11?11:k+16&-16}else k=-17;l=mla(k)|0;if(g|0)dib(l,m,g)|0;if(i|0)dib(l+g|0,j,i)|0;e=f-h|0;f=e-g|0;if(f|0)dib(l+g+i|0,m+g+h|0,f)|0;if((d|0)!=10)RCb(m);c[b>>2]=l;c[b+8>>2]=k|-2147483648;i=e+i|0;c[b+4>>2]=i;Fsb(l+i|0,0);return}function eG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+48|0;d=g+40|0;e=g+36|0;f=g;if(!(f9(b+64|0,149320)|0)){yb=g;return}c[e>>2]=c[37330];c[d>>2]=c[e>>2];e=uQ(b,d)|0;c[a+80>>2]=e;AJa(f,e,a+56|0,a+68|0);n=0;da(2419,f|0,b+44|0);e=n;n=0;if(e&1){g=sa()|0;P()|0;Arb(f);Ea(g|0)}n=0;da(2420,a+16|0,b|0);e=n;n=0;if(e&1){g=sa()|0;P()|0;Arb(f);Ea(g|0)}Arb(f);yb=g;return}function fG(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;g=yb;yb=yb+16|0;f=g;if(a[b+33>>0]&1)BM(IWa(150620,113153)|0);T_a(b,c[d+12>>2]|0);e=b+28|0;j=c[e>>2]|0;h=d+4|0;i=eCb(c[h>>2]|0)|0;i=tI(j,i?34:33)|0;d=O8(b+44|0,d+8|0)|0;Pwb(f,c[d>>2]|0);YA(i,c[f>>2]|0)|0;if((c[h>>2]|0)!=6){yb=g;return}Ygb(c[e>>2]|0);yb=g;return}function gG(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=yb;yb=yb+16|0;g=k;c[a>>2]=0;h=a+4|0;c[h>>2]=0;i=a+8|0;c[i>>2]=0;b=0;while(1){if(b>>>0>=d>>>0){b=8;break}n=0;j=U(106,c[e>>2]|0,b|0)|0;f=n;n=0;if(f&1){b=9;break}c[g>>2]=j;f=c[h>>2]|0;if((f|0)==(c[i>>2]|0)){n=0;da(332,a|0,g|0);j=n;n=0;if(j&1){b=9;break}}else{c[f>>2]=j;c[h>>2]=(c[h>>2]|0)+4}b=b+1|0}if((b|0)==8){yb=k;return}else if((b|0)==9){k=sa()|0;P()|0;Vob(a);Ea(k|0)}}function hG(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=WCb(a)|0;IWa(IWa(d,ala(b)|0)|0,98153)|0;a:do if((b|0)!=6){if((Era(b)|0)!=(c&255|0))switch(c<<24>>24){case 1:{SEa(a,56)|0;break a}case 2:{IWa(a,98165)|0;break a}case 4:{IWa(a,98168)|0;break a}default:ma(141129,97990,193,98171)}}else SEa(a,63)|0;while(0);SEa(a,46)|0;return}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;h=yb;yb=yb+16|0;g=h+4|0;i=h;c[i>>2]=d;i=Nm(b+68|0,i)|0;e=i+4|0;f=c[e>>2]|0;if((f|0)==(c[i>>2]|0)){i=b+148|0;e=c[i>>2]|0;c[i>>2]=e+1;c[g>>2]=e;e=b+128|0;i=dn(e,g)|0;c[i>>2]=d}else{i=f+-4|0;c[g>>2]=c[i>>2];c[e>>2]=i;e=b+128|0}i=dn(e,g)|0;if((c[i>>2]|0)==(d|0)){R1a(a,c[g>>2]|0,d,b);yb=h;return}else ma(81459,81381,1594,81480)}function jG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+32|0;d=f+12|0;e=f;c[e>>2]=c[b+16>>2];c[e+4>>2]=c[b+20>>2];c[e+8>>2]=c[b+24>>2];c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;n=0;da(174,d|0,3);g=n;n=0;if(g&1){g=sa()|0;P()|0;Qcb(d);Ea(g|0)}ssa(d,e,e+12|0);n=0;ea(143,a|0,d|0,c[b+4>>2]|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;Vob(d);Ea(g|0)}else{Vob(d);yb=f;return}}function kG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+32|0;e=f;nz(e,b,d);if(lsb(e)|0){c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];c[a+28>>2]=c[e+28>>2];yb=f;return}else{c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;zsb(a);yb=f;return}}function lG(b,d){b=b|0;d=d|0;var e=0,f=0;if(a[b+33>>0]&1)BM(IWa(150620,113260)|0);e=c[d+12>>2]|0;if(e|0)yIa(b,e);e=d+16|0;f=c[e>>2]|0;if(f|0)yIa(b,f);TW(b,d);if(!(c[e>>2]|0))return;if((c[d+4>>2]|0)!=6)return;AQ(b);return}function mG(a,b){a=a|0;b=b|0;switch(b|0){case 0:{a=mv(a,c[37234]|0,ysb(0.0)|0)|0;break}case 1:{a=D5(c[37232]|0,a)|0;break}case 2:{a=c1(c[37223]|0,a)|0;break}case 3:{a=c1(c[37192]|0,a)|0;break}case 4:{a=c1(c[37193]|0,a)|0;break}case 5:{a=c1(c[37189]|0,a)|0;break}case 6:{a=c1(c[37190]|0,a)|0;break}case 7:{a=c1(c[37191]|0,a)|0;break}default:{}}return a|0}function nG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>2;f=h+1|0;d=YBb()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>2>>>0>>1>>>0){d=e>>1;d=d>>>0>>0?f:d}aS(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;e=c[b>>2]|0;c[b>>2]=0;c[f>>2]=e;c[h>>2]=f+4;rP(a,g);Qba(g);yb=i;return}function oG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=c[a+40>>2]|0;g=a+44|0;d=c[g>>2]|0;while(1){if((d|0)==(f|0))break;d=d+-4|0;e=c[d>>2]|0;c[d>>2]=0;if(e|0){kSa(e);RCb(e)}}c[g>>2]=f;NC(a);c[a+36>>2]=c[a+64>>2];hUa(a,b);if(c[a+76>>2]|0)ma(108332,108353,246,108386);if((c[a+84>>2]|0)!=(c[a+80>>2]|0))ma(108401,108353,247,108386);if((c[a+96>>2]|0)==(c[a+92>>2]|0))return;else ma(108421,108353,248,108386)}function pG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=a+4|0;i=c[j>>2]|0;g=c[a>>2]|0;f=i-g>>2;e=c[b>>2]|0;d=0;while(1){if(d>>>0>=f>>>0)break;if(dub(c[c[g+(d<<2)>>2]>>2]|0,e)|0){h=4;break}d=d+1|0}if((h|0)==4){f=g+(d<<2>>2<<2)|0;while(1){d=f+4|0;if((d|0)==(i|0))break;h=c[d>>2]|0;c[d>>2]=0;e=c[f>>2]|0;c[f>>2]=h;if(e|0){Xrb(e);RCb(e)}f=d}d=c[j>>2]|0;while(1){if((f|0)==(d|0))break;d=d+-4|0;e=c[d>>2]|0;c[d>>2]=0;if(e|0){Xrb(e);RCb(e)}}c[j>>2]=f}vla(a+176|0,b);return}function qG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;d=f;g=c[a>>2]|0;e=c[g+24>>2]|0;if((c[g+28>>2]|0)-e>>2>>>0>b>>>0){g=e;g=g+(b<<2)|0;g=c[g>>2]|0;g=g+8|0;g=c[g>>2]|0;yb=f;return g|0}c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;D8(d,114156,Zzb(114156)|0);n=0;da(4022,a|0,d|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;Chb(d);Ea(g|0)}Chb(d);g=c[(c[a>>2]|0)+24>>2]|0;g=g+(b<<2)|0;g=c[g>>2]|0;g=g+8|0;g=c[g>>2]|0;yb=f;return g|0}function rG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=((c[a+4>>2]|0)-e|0)/24|0;f=h+1|0;d=Oxb()|0;if(f>>>0>d>>>0)Apa();e=((c[a+8>>2]|0)-e|0)/24|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}rR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;R4(f,b);c[h>>2]=f+24;dR(a,g);Nma(g);yb=i;return}function sG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>2;f=h+1|0;d=YBb()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>2>>>0>>1>>>0){d=e>>1;d=d>>>0>>0?f:d}aS(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;e=c[b>>2]|0;c[b>>2]=0;c[f>>2]=e;c[h>>2]=f+4;rP(a,g);Eea(g);yb=i;return}function tG(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;i=j;h=d+11|0;g=a[h>>0]|0;if(g<<24>>24<0)f=c[d+4>>2]|0;else f=g&255;while(1){if(g<<24>>24<0)g=c[d>>2]|0;else g=d;c[i>>2]=e;g=p_a(g,f+1|0,138732,i)|0;if((g|0)>-1)if(g>>>0>f>>>0)f=g;else break;else f=f<<1|1;N1(d,f);g=a[h>>0]|0}N1(d,g);c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];f=0;while(1){if((f|0)==3)break;c[d+(f<<2)>>2]=0;f=f+1|0}yb=j;return}function uG(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;i=j;h=d+11|0;g=a[h>>0]|0;if(g<<24>>24<0)f=c[d+4>>2]|0;else f=g&255;while(1){if(g<<24>>24<0)g=c[d>>2]|0;else g=d;c[i>>2]=e;g=p_a(g,f+1|0,138729,i)|0;if((g|0)>-1)if(g>>>0>f>>>0)f=g;else break;else f=f<<1|1;N1(d,f);g=a[h>>0]|0}N1(d,g);c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];f=0;while(1){if((f|0)==3)break;c[d+(f<<2)>>2]=0;f=f+1|0}yb=j;return}function vG(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;i=j;h=d+11|0;g=a[h>>0]|0;if(g<<24>>24<0)f=c[d+4>>2]|0;else f=g&255;while(1){if(g<<24>>24<0)g=c[d>>2]|0;else g=d;c[i>>2]=e;g=p_a(g,f+1|0,138726,i)|0;if((g|0)>-1)if(g>>>0>f>>>0)f=g;else break;else f=f<<1|1;N1(d,f);g=a[h>>0]|0}N1(d,g);c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];f=0;while(1){if((f|0)==3)break;c[d+(f<<2)>>2]=0;f=f+1|0}yb=j;return}function wG(a,b){a=a|0;b=b|0;var c=0,d=0,e=0.0;e=+K8a(b);c=leb(e)|0;d=(P()|0)&2147483647;if(d>>>0>2146435072|(d|0)==2146435072&c>>>0>0){pUa(a,e);return}if((c|0)==0&(d|0)==2146435072){pUa(a,e);return}c=rVa(b)|0;d=P()|0;if(d>>>0>1206910975|(d|0)==1206910975&c>>>0>3758096384){if(d>>>0<1206910975|(d|0)==1206910975&c>>>0<4026531840){pUa(a,3402823466385288598117041.0e14);return}d=Yeb(c|0,d|0,536870911,940572672)|0;c=P()|0;if(c>>>0<0|(c|0)==0&d>>>0<268435455){pUa(a,-3402823466385288598117041.0e14);return}}if(e<-3402823466385288598117041.0e14){pUa(a,-m);return}if(e>3402823466385288598117041.0e14){pUa(a,m);return}else{pUa(a,+K8a(b));return}}function xG(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;if(!(a[b+16>>0]&1))return;e=c[b>>2]|0;if(!(tva(e)|0))return;d=c[b+8>>2]|0;b=c[b+4>>2]|0;g=d-b>>4;f=c[e+24>>2]|0;h=f;if((g|0)!=((c[e+28>>2]|0)-f>>2|0))LRa();e=0;while(1){if(e>>>0>=g>>>0){e=12;break}f=c[h+(e<<2)>>2]|0;if((f|0)!=(c[b+(e<<4)>>2]|0)){e=8;break}if(cub(c[f+8>>2]|0,c[b+(e<<4)+4>>2]|0)|0){e=10;break}e=e+1|0}if((e|0)==8)LRa();else if((e|0)==10)LRa();else if((e|0)==12){while(1){if((b|0)==(d|0))break;t1(b);b=b+16|0}return}}function yG(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h;if(a[b+33>>0]&1)BM(IWa(150620,112689)|0);f=d+8|0;e=c[f>>2]|0;if((e|0)==1){e=uXa(d+16|0,0)|0;T_a(b,c[e>>2]|0);e=c[f>>2]|0}switch(e|0){case 0:{e=b+28|0;tI(c[e>>2]|0,63)|0;break}case 1:{e=b+28|0;tI(c[e>>2]|0,64)|0;break}default:e=b+28|0}b=c[e>>2]|0;Pwb(g,0);YA(b,c[g>>2]|0)|0;yb=h;return}function zG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+32|0;e=f;zsb(a);d=c[d+8>>2]|0;if(d|0?(tw(e,b,d),c[a>>2]=c[e>>2],c[a+4>>2]=c[e+4>>2],c[a+8>>2]=c[e+8>>2],c[a+12>>2]=c[e+12>>2],c[a+16>>2]=c[e+16>>2],c[a+20>>2]=c[e+20>>2],c[a+24>>2]=c[e+24>>2],lsb(a)|0):0){yb=f;return}c[a+24>>2]=c[37374];yb=f;return}function AG(b,d){b=b|0;d=d|0;var e=0;if(a[b+33>>0]&1)BM(IWa(150620,112911)|0);if((c[(c[d+12>>2]|0)+4>>2]|0)==6)return;if((c[(c[d+16>>2]|0)+4>>2]|0)==6)return;if((c[(c[d+20>>2]|0)+4>>2]|0)==6)return;e=b+28|0;tI(c[e>>2]|0,-2)|0;switch(c[d+24>>2]|0){case 1:{tI(c[e>>2]|0,1)|0;G5(b,4,4,0);return}case 2:{tI(c[e>>2]|0,2)|0;G5(b,8,8,0);return}default:ma(141129,112765,865,112931)}}function BG(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+48|0;g=h+16|0;e=h;f=c+12|0;if(a[f>>0]&1)BM(IWa(150620,114483)|0);d=0;while(1){if((d|0)==16)break;i=Eu(c)|0;a[e+d>>0]=i;d=d+1|0}M0a(b,e);if(!(a[f>>0]&1)){yb=h;return}c=IWa(150620,116352)|0;e=g;d=e+24|0;do{a[e>>0]=a[b>>0]|0;e=e+1|0;b=b+1|0}while((e|0)<(d|0));BM(IWa(bx(c,g)|0,114633)|0);yb=h;return}function CG(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;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;k=c[g>>2]|0;i=k+-12|0;h=d+-12|0;c[i>>2]=0;j=k+-8|0;c[j>>2]=0;c[k+-4>>2]=0;c[i>>2]=c[h>>2];i=d+-8|0;c[j>>2]=c[i>>2];j=d+-4|0;c[k+-4>>2]=c[j>>2];c[j>>2]=0;c[i>>2]=0;c[h>>2]=0;c[g>>2]=(c[g>>2]|0)+-12;d=h}i=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=i;i=b+8|0;k=c[f>>2]|0;c[f>>2]=c[i>>2];c[i>>2]=k;i=a+8|0;k=b+12|0;j=c[i>>2]|0;c[i>>2]=c[k>>2];c[k>>2]=j;c[b>>2]=c[g>>2];return}function DG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+32|0;d=h;e=c[a>>2]|0;f=((c[a+4>>2]|0)-e|0)/24|0;g=f+1|0;if(g>>>0>178956970)Apa();else{i=((c[a+8>>2]|0)-e|0)/24|0;e=i<<1;s9(d,i>>>0<89478485?(e>>>0>>0?g:e):178956970,f,a+12|0);g=d+8|0;f=c[g>>2]|0;I6(f,b);c[g>>2]=f+24;SQ(a,d);F6(d);yb=h;return}}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;i=yb;yb=yb+16|0;g=i;if((a|0)==(b|0)){c[d>>2]=4;a=0}else{h=c[37419]|0;c[37419]=0;t8a()|0;a=dlb(a,g,e)|0;e=P()|0;f=c[37419]|0;if(!f)c[37419]=h;a:do if((c[g>>2]|0)==(b|0)){do if((f|0)==34){c[d>>2]=4;if((e|0)>0|(e|0)==0&a>>>0>0){a=2147483647;break a}}else{if((e|0)<-1|(e|0)==-1&a>>>0<2147483648){c[d>>2]=4;break}if((e|0)>0|(e|0)==0&a>>>0>2147483647){c[d>>2]=4;a=2147483647;break a}else break a}while(0);a=-2147483648}else{c[d>>2]=4;a=0}while(0)}yb=i;return a|0}function FG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+32|0;d=f+12|0;e=f;c[e>>2]=c[b+8>>2];c[e+4>>2]=c[b+12>>2];c[e+8>>2]=c[b+16>>2];c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;n=0;da(174,d|0,3);g=n;n=0;if(g&1){g=sa()|0;P()|0;Qcb(d);Ea(g|0)}ssa(d,e,e+12|0);n=0;ea(143,a|0,d|0,c[b+4>>2]|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;Vob(d);Ea(g|0)}else{Vob(d);yb=f;return}}function GG(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=PH(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}Fxa(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function HG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;$6(a);h=c[b>>2]|0;c[b>>2]=0;d=c[a>>2]|0;c[a>>2]=h;if(d|0)RCb(d);h=b+4|0;e=a+4|0;c[e>>2]=c[h>>2];c[h>>2]=0;h=b+12|0;g=c[h>>2]|0;c[a+12>>2]=g;c[a+16>>2]=c[b+16>>2];f=b+8|0;d=c[f>>2]|0;c[a+8>>2]=d;if(!g)return;g=a+8|0;d=c[d+4>>2]|0;b=c[e>>2]|0;e=b+-1|0;if(b&e){if(d>>>0>=b>>>0)d=(d>>>0)%(b>>>0)|0}else d=d&e;c[(c[a>>2]|0)+(d<<2)>>2]=g;c[f>>2]=0;c[h>>2]=0;return}function IG(b,d){b=b|0;d=d|0;var e=0,f=0;Qua(b,107599);e=rrb(d,1)|0;e=c[e>>2]|0;d=0;while(1){if(d>>>0>=(K0a(WCb(e)|0)|0)>>>0)break;do if(d|0)if(!(a[b>>0]&1)){hfa(b,44);break}else{Qua(b,140151);break}while(0);f=rrb(e,d)|0;f=rrb(c[f>>2]|0,0)|0;Qua(b,e7a(WCb(c[f>>2]|0)|0)|0);f=rrb(e,d)|0;if((K0a(WCb(c[f>>2]|0)|0)|0)>>>0>1){Alb(b);hfa(b,61);Alb(b);f=rrb(e,d)|0;f=rrb(c[f>>2]|0,1)|0;Xi(b,c[f>>2]|0)}d=d+1|0}return}function JG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+16|0;h=g+12|0;e=g;f=mla(120)|0;mT(f);b=c[b>>2]|0;c[f+8>>2]=b;Ftb(h,c[37156]|0);c[f>>2]=c[h>>2];c[f+4>>2]=b;Rga(e,d);n=0;b=U(136,e|0,a|0)|0;d=n;n=0;if(d&1){h=sa()|0;P()|0;Chb(e);Ea(h|0)}else{Chb(e);c[f+40>>2]=c[b>>2];zha(f,b);aq(a,f);yb=g;return}}function KG(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+32|0;e=h;f=c[36998]|0;b=c[36997]|0;do if(f-b>>2>>>0>>0){g=c[36996]|0;d=b-g>>2;b=d+a|0;if(b>>>0>1073741823)Apa();else{f=f-g|0;g=f>>1;H7(e,f>>2>>>0<536870911?(g>>>0>>0?b:g):1073741823,d);dGa(e,a);XX(e);qba(e);break}}else XMa(a);while(0);yb=h;return}function LG(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;j=yb;yb=yb+32|0;e=j+24|0;g=j+8|0;h=j;$jb(g,(c[a>>2]|0)+152|0);f=b+16|0;i=b+12|0;d=0;while(1){if(d>>>0>=(WCb(c[f>>2]|0)|0)>>>0)break;k=uXa(i,d)|0;Wla(g,Cda(a,c[k>>2]|0)|0);d=d+1|0}c[h>>2]=c[b+8>>2];k=c[b+4>>2]|0;i=c[a+32>>2]|0;c[e>>2]=c[h>>2];k=Eta(i,e,g,k)|0;yb=j;return k|0}function MG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;f=h+4|0;g=h;c[f>>2]=d;if(!(vub(d)|0))ma(107508,83338,435,51744);e=Icb(a)|0;c[g>>2]=e;if(eCb(c[b>>2]|0)|0){i=G7(a+64|0,b)|0;c[i>>2]=e;e=u7(a+52|0,g)|0;c[e>>2]=c[b>>2]}b=a+32|0;e=c[b>>2]|0;if(e>>>0<(c[a+36>>2]|0)>>>0){c[e>>2]=d;c[b>>2]=(c[b>>2]|0)+4;i=c[g>>2]|0;yb=h;return i|0}else{_M(a+28|0,f);i=c[g>>2]|0;yb=h;return i|0}return 0}function NG(a,b){a=a|0;b=b|0;var d=0,e=0;if((b|0)!=1){if(b+-1&b)b=Gc(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0>e>>>0){Xn(a,b);return}if(b>>>0>=e>>>0)return;if(e>>>0>2?(e&e+-1|0)==0:0){d=~~+I(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(d>>>0>=2)d=1<<32-(M(d+-1|0)|0)}else d=Gc(~~+I(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0)|0;b=b>>>0>>0?d:b;if(b>>>0>=e>>>0)return;Xn(a,b);return}function OG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=Wsb(d)|0;if(!b){i=0;return i|0}g=b+-1|0;h=(g&b|0)==0;if(!h)if(f>>>0>>0)i=f;else i=(f>>>0)%(b>>>0)|0;else i=f&g;a=c[a+(i<<2)>>2]|0;if(!a){i=0;return i|0}while(1){a=c[a>>2]|0;if(!a){a=0;e=17;break}e=c[a+4>>2]|0;if((e|0)==(f|0)){if(xsb(c[a+8>>2]|0,d)|0){e=17;break}}else{if(!h){if(e>>>0>=b>>>0)e=(e>>>0)%(b>>>0)|0}else e=e&g;if((e|0)!=(i|0)){a=0;e=17;break}}}if((e|0)==17)return a|0;return 0}function PG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i+8|0;d=i+4|0;g=i;c[f>>2]=b;e=Leb(c[b>>2]|0)|0;h=c[a+80>>2]|0;if(!h){Gsb(d,WCb(c[a+36>>2]|0)|0);h=Bq(d,e)|0;c[b>>2]=h;yb=i;return}c[g>>2]=0;a=e+8|0;d=h+28|0;e=c[d>>2]|0;if(e>>>0<(c[h+32>>2]|0)>>>0){N$(e,0,c[a>>2]|0,b);c[d>>2]=(c[d>>2]|0)+16;yb=i;return}else{xA(h+24|0,g,a,f);yb=i;return}}function QG(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+64|0;h=i+24|0;g=i+48|0;e=i;Gsb(g,b);c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];c[h+16>>2]=c[d+16>>2];c[h+20>>2]=c[d+20>>2];IL(e,h);b=h;f=b+24|0;do{a[b>>0]=a[e>>0]|0;b=b+1|0;e=e+1|0}while((b|0)<(f|0));b=D7(g,h)|0;if(!(c[37104]|0)){yb=i;return b|0}c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];c[h+16>>2]=c[d+16>>2];c[h+20>>2]=c[d+20>>2];kg(b,h);yb=i;return b|0}function RG(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=c[b>>2]|0;h=y2(d)|0;i=i+16|0;e=0;f=0;a:while(1){g=St(c[i>>2]|0)|0;switch(g|0){case -1:{e=0;j=9;break a}case 34:{if(f)if((e|0)==(h|0))break a;else f=0;else{e=0;f=1}break}default:if(f){f=(g|0)==(a[d+e>>0]|0);e=e+(f&1)|0}else f=0}}if((j|0)==9)return e|0;j=b+4|0;Jqa(c[c[j>>2]>>2]|0);Mm(c[(c[c[b+8>>2]>>2]|0)+16>>2]|0,58);Jqa(c[c[j>>2]>>2]|0);j=1;return j|0}function SG(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;if(a[b+33>>0]&1)BM(IWa(150620,113275)|0);f=b+28|0;tI(c[f>>2]|0,3)|0;f=c[f>>2]|0;e=c[d+4>>2]|0;zz(f,baa((e|0)==6?0:e)|0);e=d+8|0;f=b+60|0;g=c[f>>2]|0;if((g|0)==(c[b+64>>2]|0))_M(b+56|0,e);else{c[g>>2]=c[e>>2];c[f>>2]=(c[f>>2]|0)+4}Ww(b,c[d+12>>2]|0);g_(b,d);return}function TG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;d=j+8|0;f=j+4|0;i=j;g=a+36|0;h=WCb(c[g>>2]|0)|0;c[f>>2]=c[b+24>>2];c[d>>2]=c[f>>2];d=lEa(h,d)|0;if(!d){yb=j;return}if(!(Yrb(d)|0)){yb=j;return}if(cub(c[d>>2]|0,c[37153]|0)|0){yb=j;return}h=a+60|0;e=d+4|0;f=a+16|0;d=a+44|0;while(1){if((d|0)==(h|0))break;if(dub(c[d>>2]|0,c[e>>2]|0)|0){Gsb(i,WCb(c[g>>2]|0)|0);a=Bq(i,b)|0;Pwb(c[f>>2]|0,a)}d=d+4|0}yb=j;return}function UG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if(!b){h=0;return h|0}f=b+-1|0;g=(f&b|0)==0;if(!g)if(d>>>0>>0)h=d;else h=(d>>>0)%(b>>>0)|0;else h=f&d;a=c[a+(h<<2)>>2]|0;if(!a){h=0;return h|0}while(1){a=c[a>>2]|0;if(!a){a=0;e=17;break}e=c[a+4>>2]|0;if((e|0)==(d|0)){if((c[a+8>>2]|0)==(d|0)){e=17;break}}else{if(!g){if(e>>>0>=b>>>0)e=(e>>>0)%(b>>>0)|0}else e=e&f;if((e|0)!=(h|0)){a=0;e=17;break}}}if((e|0)==17)return a|0;return 0}function VG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>3;f=h+1|0;d=wxb()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>3>>>0>>1>>>0){d=e>>2;d=d>>>0>>0?f:d}FR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;d=b;e=c[d+4>>2]|0;b=f;c[b>>2]=c[d>>2];c[b+4>>2]=e;c[h>>2]=f+8;lU(a,g);vta(g);yb=i;return}function WG(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=yb;yb=yb+32|0;h=j;f=c[a>>2]|0;i=(c[a+4>>2]|0)-f>>3;g=i+1|0;e=wxb()|0;if(g>>>0>e>>>0)Apa();f=(c[a+8>>2]|0)-f|0;if(f>>3>>>0>>1>>>0){e=f>>2;e=e>>>0>>0?g:e}FR(h,e,i,a+8|0);i=h+8|0;g=c[i>>2]|0;Fmb(g,c[b>>2]|0,c[d>>2]|0);c[i>>2]=g+8;lU(a,h);vta(h);yb=j;return}function XG(b){b=b|0;var d=0,e=0;d=b+12|0;if(a[d>>0]&1)BM(IWa(150620,114483)|0);e=xH(b)|0;b=xH(b)|0;if(!(a[d>>0]&1)){O(b|0);return e|0}d=IWa(Rm(IWa(150620,116072)|0,e,b)|0,116083)|0;Mpb(150620+(c[(c[37655]|0)+-12>>2]|0)|0);d=Rm(d,e,b)|0;Npb(150620+(c[(c[37655]|0)+-12>>2]|0)|0);BM(IWa(d,114633)|0);O(b|0);return e|0}function YG(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;j=yb;yb=yb+16|0;h=j+4|0;i=j;if(c[37104]|0)IWa(Zm(IWa(IWa(IWa(IWa(IWa(IWa(IWa(150452,65832)|0,d)|0,65788)|0,e)|0,65788)|0,f)|0,65705)|0,g&255)|0,56341)|0;Zsb(h,e);c[b+84>>2]=c[h>>2];Zsb(i,f);c[b+88>>2]=c[i>>2];a[b+120>>0]=g<<24>>24!=0&1;yb=j;return}function ZG(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=yb;yb=yb+48|0;i=k+24|0;j=k;if((c[b+16>>2]|0)!=5)ma(112170,111484,923,112193);qIa(i,b);Wmb(a);e=0;while(1){if((e|0)==2)break;h=e<<3;b=0;f=0;g=0;while(1){if((b|0)==8)break;l=$ka(i,h+b|0)|0;l=X2a(d[l>>0]|0|0,0,b<<3|0)|0;b=b+1|0;f=f|l;g=g|(P()|0)}Heb(j,f,g);l=gia(a,e)|0;c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];c[l+8>>2]=c[j+8>>2];c[l+12>>2]=c[j+12>>2];c[l+16>>2]=c[j+16>>2];e=e+1|0}yb=k;return}function _G(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>4;f=h+1|0;d=Wub()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>4>>>0>>1>>>0){d=e>>3;d=d>>>0>>0?f:d}AR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;Xlb(f,c[b>>2]|0);c[h>>2]=f+16;LT(a,g);csa(g);yb=i;return}function $G(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;f=d+4|0;g=d;gQa(c[a>>2]|0,c[a+4>>2]|0)|0;SEa(c[a>>2]|0,40)|0;p9(a,b);IWa(c[a>>2]|0,98555)|0;c[g>>2]=c[b+8>>2];e=c[a>>2]|0;c[f>>2]=c[g>>2];SEa(Ica(f,e)|0,32)|0;a6(a,b);b=IWa(c[a>>2]|0,98538)|0;IWa(b,c[a+16>>2]|0)|0;yb=d;return}function aH(a,b){a=a|0;b=b|0;var e=0,f=0;OGa(a,Szb(c[(c[a+44>>2]|0)+4>>2]|0)|0,b,129054);bpa(a,c[(c[b+12>>2]|0)+4>>2]|0,5,b,130292);switch(c[b+8>>2]|0){case 1:case 0:{e=16;f=1;break}case 3:case 2:{e=8;f=1;break}case 4:{e=4;f=1;break}case 5:{e=2;f=2;break}case 6:{e=4;f=3;break}case 7:{e=2;f=4;break}default:{e=0;f=0}}bpa(a,c[b+4>>2]|0,f,b,130328);OGa(a,e>>>0>(d[b+16>>0]|0)>>>0,b,130376);return}function bH(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=yb;yb=yb+32|0;h=j;f=c[a>>2]|0;i=(c[a+4>>2]|0)-f>>3;g=i+1|0;e=wxb()|0;if(g>>>0>e>>>0)Apa();f=(c[a+8>>2]|0)-f|0;if(f>>3>>>0>>1>>>0){e=f>>2;e=e>>>0>>0?g:e}FR(h,e,i,a+8|0);i=h+8|0;g=c[i>>2]|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[d>>2];c[i>>2]=g+8;lU(a,h);vta(h);yb=j;return}function cH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a+4>>2]|0;if(!e){d=a+4|0;c[b>>2]=d;b=d;return b|0}f=Dtb(a)|0;a=e;while(1){e=a+16|0;if(Xia(d,e)|0){e=c[a>>2]|0;if(!e){e=5;break}else{f=a;a=e}}else{if(!(Xia(e,d)|0)){e=9;break}f=a+4|0;e=c[f>>2]|0;if(!e){e=8;break}else a=e}}if((e|0)==5){c[b>>2]=a;b=a;return b|0}else if((e|0)==8){c[b>>2]=a;b=f;return b|0}else if((e|0)==9){c[b>>2]=a;b=f;return b|0}return 0}function dH(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;e=wrb(d)|0;if(!(c[e+16>>2]|0)){jq(a,e,b);zea(a+44|0);return}e=(Tfb(d)|0)+16|0;if(!(c[e>>2]|0))ma(104356,104084,151,104386);b=a+44|0;d=a+84|0;e=c[d>>2]|0;if(e>>>0<(c[a+88>>2]|0)>>>0){aja(e,b);c[d>>2]=(c[d>>2]|0)+12;return}else{GC(a+80|0,b);return}}function eH(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;e=wrb(d)|0;if(!(c[e+16>>2]|0)){jq(a,e,b);Bea(a+44|0);return}e=(Tfb(d)|0)+16|0;if(!(c[e>>2]|0))ma(104356,104084,151,104386);b=a+44|0;d=a+84|0;e=c[d>>2]|0;if(e>>>0<(c[a+88>>2]|0)>>>0){aja(e,b);c[d>>2]=(c[d>>2]|0)+12;return}else{IC(a+80|0,b);return}}function fH(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;Gsb(d,b);switch(c[a+4>>2]|0){case 1:{d=pVa(c[d>>2]|0,23,a)|0;yb=e;return d|0}case 0:{b=jgb(2,b)|0;d=zMa(c[d>>2]|0,a,b)|0;yb=e;return d|0}case 3:{d=c[d>>2]|0;d=pVa(d,23,pVa(d,33,a)|0)|0;yb=e;return d|0}case 4:{d=pVa(c[d>>2]|0,34,a)|0;yb=e;return d|0}case 5:{ma(84722,80787,68,80837);break}default:{d=a;yb=e;return d|0}}return 0}function gH(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;h=yb;yb=yb+16|0;j=h+4|0;i=h;g=Fs(Vr(d,0)|0,6,f)|0;c[j>>2]=g;g=Ihb(c[b+4>>2]|0)|0;a[g+20>>0]=f&1;c[g+32>>2]=e;f=Hq(j,(Era(e)|0)&255)|0;a[g+8>>0]=f;j6a(i,f&255,0);f=kh(d,g+12|0,g+16|0,c[i>>2]|0)|0;e=$db(b,Vr(d,f)|0)|0;c[g+24>>2]=e;f=$db(b,Vr(d,f+1|0)|0)|0;c[g+28>>2]=f;iHa(g);yb=h;return g|0}function hH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[b+48>>2]|0;if(d&16|0){e=b+44|0;d=c[e>>2]|0;f=c[b+24>>2]|0;if(d>>>0>>0){c[e>>2]=f;d=f}b=c[b+20>>2]|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;qU(a,b,d);return}if(d&8|0){f=c[b+8>>2]|0;b=c[b+16>>2]|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;qU(a,f,b);return}c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[a+(d<<2)>>2]=0;d=d+1|0}return}function iH(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;i=yb;yb=yb+16|0;f=i+4|0;g=i;c[f>>2]=d;h=a+20|0;j=c[h>>2]|0;e=j;if((c[a+72>>2]|0)!=(j-(c[a+16>>2]|0)>>2|0))ma(83289,83338,424,83366);if(!(eCb(c[b>>2]|0)|0))ma(83375,83338,425,83366);if((c[a+24>>2]|0)==(e|0))_M(a+16|0,f);else{c[e>>2]=d;c[h>>2]=(c[h>>2]|0)+4}h=c[a+60>>2]|0;c[g>>2]=h;j=G7(a+64|0,b)|0;c[j>>2]=h;j=u7(a+52|0,g)|0;c[j>>2]=c[b>>2];yb=i;return c[g>>2]|0}function jH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>4;f=h+1|0;d=Wub()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>4>>>0>>1>>>0){d=e>>3;d=d>>>0>>0?f:d}AR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;mdb(f,c[b>>2]|0);c[h>>2]=f+16;US(a,g);Qpa(g);yb=i;return}function kH(b){b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d;if($Bb(a[b>>0]|0)|0){yb=d;return c[b+20>>2]|0}f=oa(20)|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;d=Zzb(118866)|0;n=0;ea(95,e|0,118866,d|0);d=n;n=0;if(!(d&1)){n=0;fa(134,f|0,e|0,c[b+28>>2]|0,c[b+32>>2]|0);b=n;n=0;if(b&1)b=1;else{n=0;ea(122,f|0,31856,511);n=0;b=0}d=sa()|0;P()|0;Chb(e);if(!b){f=d;Ea(f|0)}}else{d=sa()|0;P()|0}va(f|0);f=d;Ea(f|0);return 0}function lH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;i=j;g=c[a+8>>2]|0;d=c[a+4>>2]|0;if(g-d>>2>>>0>=b>>>0){Qxa(a,b);yb=j;return}e=c[a>>2]|0;h=d-e>>2;f=h+b|0;d=YBb()|0;if(f>>>0>d>>>0)Apa();e=g-e|0;if(e>>2>>>0>>1>>>0){d=e>>1;d=d>>>0>>0?f:d}aS(i,d,h,a+8|0);Yva(i,b);ZU(a,i);Mwa(i);yb=j;return}function mH(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g+8|0;e=g;if(Gzb(c[a>>2]|0)|0){f=1;yb=g;return f|0}a=Rqb(a)|0;if(!a){f=0;yb=g;return f|0}b=a+12|0;nrb(f,b);Hib(e,b);b=f+4|0;d=c[e>>2]|0;a=c[e+4>>2]|0;while(1){if(!(dhb(c[f>>2]|0,c[b>>2]|0,d,a)|0)){a=1;b=7;break}e=Qab(f)|0;if(!(mH(c[e>>2]|0)|0)){a=0;b=7;break}hob(f)}if((b|0)==7){yb=g;return a|0}return 0}function nH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=c[a+40>>2]|0;g=a+44|0;d=c[g>>2]|0;while(1){if((d|0)==(f|0))break;d=d+-4|0;e=c[d>>2]|0;c[d>>2]=0;if(e|0){lTa(e);RCb(e)}}c[g>>2]=f;OE(a);c[a+36>>2]=c[a+64>>2];_Za(a,b);if(c[a+76>>2]|0)ma(108332,108353,246,108386);if((c[a+84>>2]|0)!=(c[a+80>>2]|0))ma(108401,108353,247,108386);if((c[a+96>>2]|0)==(c[a+92>>2]|0))return;else ma(108421,108353,248,108386)}function oH(a){a=a|0;var b=0,d=0,e=0;b=yb;yb=yb+16|0;e=b;a=Nv(a)|0;if(vub(a)|0){yb=b;return a|0}d=oa(20)|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;b=Zzb(117307)|0;n=0;ea(95,e|0,117307,b|0);b=n;n=0;if(!(b&1)){n=0;da(330,d|0,e|0);b=n;n=0;if(b&1)b=1;else{n=0;ea(122,d|0,31856,511);n=0;b=0}a=sa()|0;P()|0;Chb(e);if(!b){e=a;Ea(e|0)}}else{a=sa()|0;P()|0}va(d|0);e=a;Ea(e|0);return 0}function pH(a,b){a=a|0;b=b|0;var c=0,e=0,f=0,g=0,h=0,i=0;f=~b;f=(f>>>0>4294967292?f:-4)+b+4&-4;g=b-f|0;e=a;c=b;while(1){if(b>>>0<=3)break;i=J(d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24,1540483477)|0;e=e+4|0;c=(J(c,1540483477)|0)^(J(i^i>>>24,1540483477)|0);b=b+-4|0}b=a+f|0;switch(g|0){case 3:{c=c^(d[b+2>>0]|0)<<16;h=6;break}case 2:{h=6;break}case 1:break;default:{i=c;h=i>>>13;h=i^h;h=J(h,1540483477)|0;i=h>>>15;i=h^i;return i|0}}if((h|0)==6)c=c^(d[b+1>>0]|0)<<8;i=J(c^(d[b>>0]|0),1540483477)|0;h=i>>>13;h=i^h;h=J(h,1540483477)|0;i=h>>>15;i=h^i;return i|0}function qH(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+32|0;f=g+8|0;e=g;c[e>>2]=d;d=nfa(c[b+4>>2]|0,d)|0;c[e>>2]=d;if(!d)ma(106969,106895,506,106974);if(z5a(d)|0){e=f;d=(ffb(c[d+4>>2]|0)|0)+8|0;b=e+24|0;do{a[e>>0]=a[d>>0]|0;e=e+1|0;d=d+1|0}while((e|0)<(b|0));wna(f);yb=g;return}else{d=IWa(150452,140107)|0;f=tm(b+8|0,e)|0;Ym(d,c[f>>2]|0)|0;yb=g;return}}function rH(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=yb;yb=yb+32|0;f=h+16|0;g=h;b=Rq(a,b,f,h+12|0,d)|0;d=c[b>>2]|0;if(d|0){g=d;yb=h;return g|0}Fxa(g,a,e);e=c[g>>2]|0;i8(a,c[f>>2]|0,b,e);c[g>>2]=0;g=e;yb=h;return g|0}function sH(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;j=yb;yb=yb+112|0;e=j;f=j+100|0;c[f>>2]=e+100;b4(b+8|0,e,f,g,h,i);i=c[f>>2]|0;h=e;e=c[d>>2]|0;while(1){if((h|0)==(i|0))break;f=a[h>>0]|0;if(!e)e=0;else{b=e+24|0;g=c[b>>2]|0;if((g|0)==(c[e+28>>2]|0)){d=c[(c[e>>2]|0)+52>>2]|0;f=Qzb(f)|0;f=Gb[d&255](e,f)|0}else{c[b>>2]=g+1;a[g>>0]=f;f=Qzb(f)|0}d=dub(f,-1)|0;e=d?0:e}h=h+1|0}yb=j;return e|0}function tH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g+4|0;f=g;c[e>>2]=b;c[f>>2]=d;e=nl(a+184|0,e)|0;b=zI(e,d)|0;if(!b){a=Tdb(a)|0;f=fn(e,f)|0;c[f>>2]=a;f=a;yb=g;return f|0}else{f=c[b+12>>2]|0;yb=g;return f|0}return 0}function uH(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=kE(a,b,d,f)|0;g=c[e>>2]|0;h=c[d>>2]|0;if(!(_ba(f,g,h)|0))return i|0;c[d>>2]=g;c[e>>2]=h;e=c[d>>2]|0;g=c[b>>2]|0;if(!(_ba(f,e,g)|0)){i=i+1|0;return i|0}c[b>>2]=e;c[d>>2]=g;e=c[b>>2]|0;g=c[a>>2]|0;if(!(_ba(f,e,g)|0)){i=i+2|0;return i|0}c[a>>2]=e;c[b>>2]=g;i=i+3|0;return i|0}function vH(b){b=b|0;var d=0,e=0;d=b+12|0;if(a[d>>0]&1)BM(IWa(150620,114483)|0);e=Eu(b)|0;b=(((Eu(b)|0)&255)<<8|e&255)&65535;if(!(a[d>>0]&1))return b|0;e=IWa(Um(IWa(150620,116098)|0,b)|0,116083)|0;Mpb(150620+(c[(c[37655]|0)+-12>>2]|0)|0);e=Um(e,b)|0;Npb(150620+(c[(c[37655]|0)+-12>>2]|0)|0);BM(IWa(e,114633)|0);return b|0}function wH(b,d){b=b|0;d=d|0;var e=0;if(a[b+33>>0]&1)BM(IWa(150620,113230)|0);e=c[d+32>>2]|0;if(e|0)yIa(b,e);yIa(b,c[d+28>>2]|0);if(vUa(d)|0){TW(b,d);return}else{AQ(b);return}}function xH(b){b=b|0;var d=0,e=0;d=b+12|0;if(a[d>>0]&1)BM(IWa(150620,114483)|0);e=(vH(b)|0)&65535;b=((vH(b)|0)&65535)<<16|e;if(!(a[d>>0]&1))return b|0;e=IWa(Ym(IWa(150620,116087)|0,b)|0,116083)|0;Mpb(150620+(c[(c[37655]|0)+-12>>2]|0)|0);e=Ym(e,b)|0;Npb(150620+(c[(c[37655]|0)+-12>>2]|0)|0);BM(IWa(e,114633)|0);return b|0}function yH(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=yb;yb=yb+16|0;h=i;c[h>>2]=d;c[h+4>>2]=e;c[h+8>>2]=f;while(1){d=a;if((a|0)==(b|0)){g=11;break}if(zma(h,a)|0)break;a=a+12|0}if((g|0)==11){yb=i;return a|0}while(1){a=a+12|0;if((a|0)==(b|0))break;if(!(zma(h,a)|0)){c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];d=d+12|0}}h=d;yb=i;return h|0}function zH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g+4|0;e=g;f=a+4|0;Obb(c[f>>2]|0,134186)|0;if(eCb(c[b+8>>2]|0)|0){SEa(c[f>>2]|0,32)|0;c[e>>2]=c[b+8>>2];a=c[f>>2]|0;c[d>>2]=c[e>>2];Ica(d,a)|0}a=b+4|0;if(!(vub(c[a>>2]|0)|0)){yb=g;return}f=IWa(c[f>>2]|0,98311)|0;SEa(IWa(f,ala(c[a>>2]|0)|0)|0,41)|0;yb=g;return}function AH(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;j=yb;yb=yb+16|0;i=j;d=b+12|0;pT(i,a,c[d>>2]|0);b=c[a+44>>2]|0;d=c[d>>2]|0;n=0;e=S(280,i|0)|0;k=n;n=0;if(((!(k&1)?(n=0,f=V(71,c[b>>2]|0,e|0,1)|0,k=n,n=0,!(k&1)):0)?(n=0,g=W(8,c[b>>2]|0,8,d|0,f|0)|0,k=n,n=0,!(k&1)):0)?(n=0,h=V(56,c[b>>2]|0,20,g|0)|0,k=n,n=0,!(k&1)):0){Pwb(c[a+16>>2]|0,h);lNa(i);yb=j;return}k=sa()|0;P()|0;lNa(i);Ea(k|0)}function BH(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=yb;yb=yb+16|0;j=i+4|0;h=i;g=Fs(Vr(d,0)|0,5,f)|0;c[j>>2]=g;g=akb(c[b+4>>2]|0)|0;a[g+20>>0]=f&1;c[g+4>>2]=e;f=Hq(j,(Era(e)|0)&255)|0;a[g+8>>0]=f;e=c[j>>2]|0;if(!(a[e>>0]|0))e=0;else e=(a[e+1>>0]|0)==115&1;a[g+9>>0]=e;j6a(h,f&255,0);j=$db(b,Vr(d,kh(d,g+12|0,g+16|0,c[h>>2]|0)|0)|0)|0;c[g+24>>2]=j;Zjb(g);yb=i;return g|0}function CH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+32|0;d=f+8|0;e=f;c[e>>2]=c[b+20>>2];c[e+4>>2]=c[b+24>>2];c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;n=0;da(174,d|0,2);g=n;n=0;if(g&1){g=sa()|0;P()|0;Qcb(d);Ea(g|0)}ssa(d,e,e+8|0);n=0;ea(143,a|0,d|0,c[b+4>>2]|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;Vob(d);Ea(g|0)}else{Vob(d);yb=f;return}}function DH(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=yb;yb=yb+16|0;d=g;e=b+64|0;f=c[e>>2]|0;if(!(a[f+92>>0]&1)){yb=g;return}if(Yrb(f+84|0)|0){yb=g;return}if(a[b+72>>0]&1)BM(IWa(150620,113718)|0);f=E3(b,5)|0;i=c[b+68>>2]|0;Pwb(d,1);YA(i,c[d>>2]|0)|0;e=c[e>>2]|0;i=c[e+100>>2]|0;h=c[e+104>>2]|0;d=Etb(e+84|0)|0;_T(b,i,h,d,(a[e+120>>0]&1)!=0);gF(b,f);yb=g;return}function EH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;while(1){e=a;if((a|0)==(b|0)){f=13;break}if(fda(d,c[a>>2]|0)|0)break;a=a+4|0}if((f|0)==13)return a|0;while(1){a=a+4|0;if((a|0)==(b|0))break;f=c[a>>2]|0;if(!(fda(d,f)|0)){g=e;c[a>>2]=0;h=c[g>>2]|0;c[e>>2]=f;if(h|0){IM(h);RCb(h)}e=g+4|0}}d=e;return d|0}function FH(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;j=yb;yb=yb+16|0;h=j+12|0;i=j;e=lK(d,h,e)|0;g=c[e>>2]|0;if(g|0){i=g;h=0;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}Fxa(i,d,f);f=c[i>>2]|0;i8(d,c[h>>2]|0,e,f);c[i>>2]=0;i=f;h=1;c[b>>2]=i;i=b+4|0;a[i>>0]=h;yb=j;return}function GH(b){b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d;if(UBb(a[b>>0]|0)|0){yb=d;return b+4|0}f=oa(20)|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;d=Zzb(118773)|0;n=0;ea(95,e|0,118773,d|0);d=n;n=0;if(!(d&1)){n=0;fa(134,f|0,e|0,c[b+28>>2]|0,c[b+32>>2]|0);b=n;n=0;if(b&1)b=1;else{n=0;ea(122,f|0,31856,511);n=0;b=0}d=sa()|0;P()|0;Chb(e);if(!b){f=d;Ea(f|0)}}else{d=sa()|0;P()|0}va(f|0);f=d;Ea(f|0);return 0}function HH(a){a=a|0;var b=0;a:do if(a<<24>>24>47)if(a<<24>>24>=58){if(a<<24>>24<=64)switch(a<<24>>24){case 64:case 63:case 62:case 61:case 60:case 58:{a=1;break a}default:{b=10;break a}}if(a<<24>>24>=91)if(a<<24>>24>96)if(a<<24>>24<123|a<<24>>24==124){a=1;break}else{b=10;break}else if((a+-94&255)<3){a=1;break}else{b=10;break}else a=1}else a=1;else switch(a<<24>>24){case 47:case 46:case 45:case 43:case 42:case 39:case 38:case 37:case 36:case 35:case 33:{a=1;break}default:b=10}while(0);if((b|0)==10)a=a<<24>>24==126;return a|0}function IH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+32|0;d=f+8|0;e=f;c[e>>2]=c[b+12>>2];c[e+4>>2]=c[b+16>>2];c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;n=0;da(174,d|0,2);g=n;n=0;if(g&1){g=sa()|0;P()|0;Qcb(d);Ea(g|0)}ssa(d,e,e+8|0);n=0;ea(143,a|0,d|0,c[b+4>>2]|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;Vob(d);Ea(g|0)}else{Vob(d);yb=f;return}}function JH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=a;if(c[37104]|0){f=IWa(150452,58367)|0;a=O8(148192,d)|0;IWa(Ym(IWa(Ym(f,c[a>>2]|0)|0,57662)|0,b)|0,56341)|0;a=c[d>>2]|0}if(!(MAb(c[a>>2]|0)|0))ma(58316,55544,1260,58404);if((WCb(c[a+12>>2]|0)|0)>>>0>b>>>0){f=uXa(a+8|0,b)|0;f=WCb(c[f>>2]|0)|0;yb=e;return f|0}else ma(58426,55544,1261,58404);return 0}function KH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;i=j;g=c[a+8>>2]|0;d=c[a+4>>2]|0;if(g-d>>2>>>0>=b>>>0){sFa(a,b);yb=j;return}e=c[a>>2]|0;h=d-e>>2;f=h+b|0;d=YBb()|0;if(f>>>0>d>>>0)Apa();e=g-e|0;if(e>>2>>>0>>1>>>0){d=e>>1;d=d>>>0>>0?f:d}aS(i,d,h,a+8|0);UDa(i,b);ZU(a,i);Mwa(i);yb=j;return}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,j=0,k=0;j=a+4|0;e=(c[j>>2]|0)!=574;h=c[a>>2]|0;g=h;k=(c[d>>2]|0)-g|0;f=k<<1;f=k>>>0<2147483647?((f|0)==0?4:f):-1;g=(c[b>>2]|0)-g>>2;h=F7(e?h:0,f)|0;if(!h)wlb();do if(!e){e=c[a>>2]|0;c[a>>2]=h;if(e){n=0;ca(c[j>>2]|0,e|0);k=n;n=0;if(k&1){k=ta(0)|0;P()|0;yub(k)}else{i=c[a>>2]|0;break}}else i=h}else{c[a>>2]=h;i=h}while(0);c[j>>2]=576;c[b>>2]=i+(g<<2);c[d>>2]=(c[a>>2]|0)+(f>>>2<<2);return}function MH(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;_ka(b+56|0,Icb(e)|0);n3a(b+16|0,e);i=b+56|0;e=b+76|0;while(1){e=c[e>>2]|0;if(!e)break;f=e;b=c[f+8>>2]|0;f=c[f+12>>2]|0;g=c[i>>2]|0;h=c[g+(f*20|0)+16>>2]|0;do if(h|0?(j=c[g+(f*20|0)>>2]|0,k=c[g+(f*20|0)+8>>2]|0,(j+k|0)==(h|0)):0){if(j|0?(c[g+(f*20|0)+4>>2]|0)!=((d[b+8>>0]|0)<<3|0):0)break;if(k|0?(c[g+(f*20|0)+12>>2]|0)!=((d[b+8>>0]|0)<<3|0):0)break;a[b+9>>0]=j<<1>>>0>=k>>>0&1}while(0)}return}function NH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;while(1){e=a;if((a|0)==(b|0)){f=11;break}if(aba(d,c[a>>2]|0)|0)break;a=a+4|0}if((f|0)==11)return a|0;while(1){a=a+4|0;if((a|0)==(b|0))break;if(!(aba(d,c[a>>2]|0)|0)){c[e>>2]=c[a>>2];e=e+4|0}}d=e;return d|0}function OH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+32|0;d=f+8|0;e=f;c[e>>2]=c[b+24>>2];c[e+4>>2]=c[b+28>>2];c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;n=0;da(174,d|0,2);g=n;n=0;if(g&1){g=sa()|0;P()|0;Qcb(d);Ea(g|0)}ssa(d,e,e+8|0);n=0;ea(143,a|0,d|0,c[b+4>>2]|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;Vob(d);Ea(g|0)}else{Vob(d);yb=f;return}}function PH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a+4>>2]|0;if(!e){d=a+4|0;c[b>>2]=d;b=d;return b|0}f=Dtb(a)|0;g=c[d>>2]|0;while(1){if(Bfb(g,e+16|0)|0){a=c[e>>2]|0;if(!a){a=5;break}}else{if(!(Bfb(c[e+16>>2]|0,d)|0)){a=9;break}f=e+4|0;a=c[f>>2]|0;if(!a){a=8;break}else e=f}f=e;e=a}if((a|0)==5){c[b>>2]=e;b=e;return b|0}else if((a|0)==8){c[b>>2]=e;b=f;return b|0}else if((a|0)==9){c[b>>2]=e;b=f;return b|0}return 0}function QH(a,b){a=a|0;b=b|0;var d=0;if(z5a(b)|0)return;if(!(n$(a+44|0,b)|0))return;d=c[b>>2]|0;do if(VBb(d)|0){if(!(yF(b)|0)){d=c[b>>2]|0;break}d=Jcb(b,1)|0;if(!(z5a(d)|0))return;uh(a,b,d);return}while(0);if(!(OBb(d)|0))return;if(!(Lx(b)|0))return;if(z5a(b)|0)ma(77598,77561,97,77615);if(!(vub(c[(c[b+4>>2]|0)+4>>2]|0)|0))return;hj(a,b);return}function RH(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=d[e+8>>0]|0;if(!(a[e+20>>0]&1)){j=(a[e+9>>0]&1)!=0;i=WCb(c[e+12>>2]|0)|0;h=WCb(c[e+16>>2]|0)|0;g=Cda(b,c[e+24>>2]|0)|0;f=_ha(c[b+32>>2]|0,f,j,i,h,g,c[e+4>>2]|0)|0;return f|0}else{i=WCb(c[e+12>>2]|0)|0;j=Cda(b,c[e+24>>2]|0)|0;j=$Ra(c[b+32>>2]|0,f,i,j,c[e+4>>2]|0)|0;return j|0}return 0}function SH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;d=h+8|0;e=h+4|0;f=h;i=c[a+44>>2]|0;g=C8(i,b+24|0)|0;if((g|0)==(i+4|0)){yb=h;return}i=c[a+32>>2]|0;WCb(i)|0;if(dub(c[g+20>>2]|0,c[i+8>>2]|0)|0){yb=h;return}Gsb(e,WCb(c[a+36>>2]|0)|0);c[f>>2]=c[g+20>>2];i=c[b+4>>2]|0;g=c[e>>2]|0;c[d>>2]=c[f>>2];i=Mua(g,d,b+8|0,i)|0;Pwb(c[a+16>>2]|0,i);yb=h;return}function TH(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;h=yb;yb=yb+16|0;f=h;if(c[d+16>>2]|0){yb=h;return}g=Qqb(c[d+12>>2]|0)|0;if(!g){yb=h;return}e=g+16|0;if(c[e>>2]|0){yb=h;return}d=d+8|0;j=c[d>>2]|0;i=c[g+12>>2]|0;if(!(LK(j,i,pob(c[b+40>>2]|0)|0)|0)){yb=h;return}c[e>>2]=c[d>>2];Cva(g);Gsb(f,WCb(c[b+36>>2]|0)|0);j=PVa(c[f>>2]|0,g)|0;Pwb(c[b+16>>2]|0,j);a[b+44>>0]=1;yb=h;return}function UH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=a+8|0;nB(a,a+4|0,d)|0;f=a+12|0;while(1){if((f|0)==(b|0))break;g=c[f>>2]|0;if(zcb(g,c[d>>2]|0)|0){e=f;while(1){c[e>>2]=c[d>>2];if((d|0)==(a|0)){d=a;break}e=d+-4|0;if(zcb(g,c[e>>2]|0)|0){h=d;d=e;e=h}else break}c[d>>2]=g}d=f;f=f+4|0}return}function VH(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;l=yb;yb=yb+16|0;f=l+4|0;g=l;h=Keb(c[b>>2]|0)|0;c[f>>2]=h;i=a+64|0;j=c[i>>2]|0;k=h;if(!j){yb=l;return}d=j+4|0;e=c[d>>2]|0;if(e>>>0<(c[j+8>>2]|0)>>>0){c[e>>2]=k;c[d>>2]=(c[d>>2]|0)+4}else _M(j,f);j=cn((c[i>>2]|0)+12|0,h+8|0)|0;c[j>>2]=k;j=c[a+120>>2]|0;c[g>>2]=k;k=O8(j,g)|0;c[k>>2]=b;yb=l;return}function WH(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(y2(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=J(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 XH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;while(1){e=a;if((a|0)==(b|0)){f=13;break}if(bKa(d,c[a>>2]|0)|0)break;a=a+4|0}if((f|0)==13)return a|0;while(1){a=a+4|0;if((a|0)==(b|0))break;f=c[a>>2]|0;if(!(bKa(d,f)|0)){g=e;c[a>>2]=0;h=c[g>>2]|0;c[e>>2]=f;if(h|0){IM(h);RCb(h)}e=g+4|0}}d=e;return d|0}function YH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;while(1){e=a;if((a|0)==(b|0)){f=13;break}if(Uda(d,a)|0)break;a=a+4|0}if((f|0)==13)return a|0;while(1){a=a+4|0;if((a|0)==(b|0))break;if(!(Uda(d,a)|0)){f=e;h=c[a>>2]|0;c[a>>2]=0;g=c[f>>2]|0;c[e>>2]=h;if(g|0){Xrb(g);RCb(g)}e=f+4|0}}h=e;return h|0}function ZH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+32|0;d=g+8|0;e=g;f=Mba(a,b)|0;if((f|0)==(a+4|0)){c[d>>2]=c[b>>2];c[d+4>>2]=0;fha(a+12|0,d);f=c[a+12>>2]|0;d=c[b>>2]|0;c[e>>2]=d;c[e+4>>2]=f;uC(g+16|0,a,d,e);f=f+12|0;yb=g;return f|0}else{f=c[f+20>>2]|0;f=f+12|0;yb=g;return f|0}return 0}function _H(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;if(c[b+12>>2]|0){yb=h;return}c[f>>2]=c[b+8>>2];c[d>>2]=c[f>>2];f=Rqb(GF(a,d)|0)|0;c[e>>2]=f;if(!f){yb=h;return}d=e6(a+36|0,e)|0;c[g>>2]=b;a=d+4|0;e=c[a>>2]|0;if(e>>>0<(c[d+8>>2]|0)>>>0){c[e>>2]=b;c[a>>2]=(c[a>>2]|0)+4;yb=h;return}else{_M(d,g);yb=h;return}}function $H(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+80|0;d=g+48|0;e=g+24|0;f=g;switch(c[b+16>>2]|0){case 3:{c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];q_a(d,e);yR(a,Peb(d)|0);yb=g;return}case 4:{e=b;pZa(f,c[e>>2]|0,c[e+4>>2]|0,4);PK(a,$Xa(f)|0,P()|0);yb=g;return}default:ma(141129,111484,391,111978)}}function aI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+80|0;d=g+48|0;e=g+24|0;f=g;switch(c[b+16>>2]|0){case 3:{c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];q_a(d,e);f1(a,Peb(d)|0);yb=g;return}case 4:{e=b;pZa(f,c[e>>2]|0,c[e+4>>2]|0,4);AS(a,$Xa(f)|0,P()|0);yb=g;return}default:ma(141129,111484,377,111963)}}function bI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+80|0;d=g+48|0;e=g+24|0;f=g;switch(c[b+16>>2]|0){case 3:{c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];q_a(d,e);JQ(a,Peb(d)|0);yb=g;return}case 4:{e=b;pZa(f,c[e>>2]|0,c[e+4>>2]|0,4);sK(a,$Xa(f)|0,P()|0);yb=g;return}default:ma(141129,111484,363,111948)}}function cI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+80|0;d=g+48|0;e=g+24|0;f=g;switch(c[b+16>>2]|0){case 3:{c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];q_a(d,e);E0(a,Peb(d)|0);yb=g;return}case 4:{e=b;pZa(f,c[e>>2]|0,c[e+4>>2]|0,4);VR(a,$Xa(f)|0,P()|0);yb=g;return}default:ma(141129,111484,349,111933)}}function dI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f;d=c[a+44>>2]|0;if((c[a+40>>2]|0)==(d|0)){yb=f;return}d=Rqb(c[d+-4>>2]|0)|0;if(!d){yb=f;return}g=cWa(d+12|0)|0;if((b|0)!=(c[g>>2]|0)){yb=f;return}E0a(e,b,d);d=a+76|0;b=c[d>>2]|0;if(b>>>0<(c[a+80>>2]|0)>>>0){c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[d>>2]=(c[d>>2]|0)+12;yb=f;return}else{$F(a+72|0,e);yb=f;return}}function eI(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=b+44|0;f=c[e>>2]|0;j=c[b+24>>2]|0;g=j;if(f>>>0>>0){c[e>>2]=g;f=g}j=b+8|0;g=c[j>>2]|0;h=b+12|0;e=c[h>>2]|0;i=g;if(g>>>0>=e>>>0){d=-1;return d|0}if(dub(d,-1)|0){c[j>>2]=i;c[h>>2]=e+-1;c[b+16>>2]=f;d=ylb(d)|0;return d|0}if(!(c[b+48>>2]&16)){g=Qzb(d)|0;e=e+-1|0;if(!(Zqb(g,a[e>>0]|0)|0)){d=-1;return d|0}}else{g=Qzb(d)|0;e=e+-1|0}c[j>>2]=i;c[h>>2]=e;c[b+16>>2]=f;a[e>>0]=g;return d|0}function fI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=a;if(c[37104]|0){f=IWa(150452,59145)|0;a=O8(148192,d)|0;IWa(Ym(IWa(Ym(f,c[a>>2]|0)|0,57662)|0,b)|0,56341)|0;a=c[d>>2]|0}if(!(zAb(c[a>>2]|0)|0))ma(58999,55544,1345,59191);if((WCb(c[a+12>>2]|0)|0)>>>0>b>>>0){f=uXa(a+8|0,b)|0;yb=e;return c[f>>2]|0}else ma(59222,55544,1346,59191);return 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;j=a+4|0;e=(c[j>>2]|0)!=574;h=c[a>>2]|0;g=h;k=(c[d>>2]|0)-g|0;f=k<<1;f=k>>>0<2147483647?((f|0)==0?1:f):-1;g=(c[b>>2]|0)-g|0;h=F7(e?h:0,f)|0;if(!h)wlb();do if(!e){e=c[a>>2]|0;c[a>>2]=h;if(e){n=0;ca(c[j>>2]|0,e|0);k=n;n=0;if(k&1){k=ta(0)|0;P()|0;yub(k)}else{i=c[a>>2]|0;break}}else i=h}else{c[a>>2]=h;i=h}while(0);c[j>>2]=576;c[b>>2]=i+g;c[d>>2]=(c[a>>2]|0)+f;return}function hI(a,b){a=a|0;b=b|0;var d=0,e=0;e=Jhb(c[a+4>>2]|0)|0;d=vj(a,Vr(b,1)|0)|0;c[e+8>>2]=d;if((xmb(b)|0)==2)return e|0;d=kH(Vr(b,0)|0)|0;if(dub(d,c[37398]|0)|0){if((xmb(b)|0)>>>0>3){d=$db(a,Vr(b,2)|0)|0;c[e+12>>2]=d;d=3}else d=2;b=$db(a,Vr(b,d)|0)|0;c[e+16>>2]=b}else{b=$db(a,Vr(b,2)|0)|0;c[e+12>>2]=b}Cva(e);return e|0}function iI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=a+24|0;d=c[h>>2]|0;epa(d,Icb(b)|0);d=0;while(1){if(d>>>0>=(Icb(b)|0)>>>0)break;g=c[c[h>>2]>>2]|0;if(Rjb(b,d)|0){e=-1;f=oob(jka(b,d)|0)|0}else{e=0;f=0}c[g+(d<<3)>>2]=f;c[g+(d<<3)+4>>2]=e;d=d+1|0}M3a(a,b);d=0;while(1){if(d>>>0>=(Icb(b)|0)>>>0)break;e=(c[c[h>>2]>>2]|0)+(d<<3)+4|0;if((c[e>>2]|0)==-1)c[e>>2]=0;d=d+1|0}return}function jI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=c[a+40>>2]|0;g=a+44|0;d=c[g>>2]|0;while(1){if((d|0)==(f|0))break;d=d+-4|0;e=c[d>>2]|0;c[d>>2]=0;if(e|0){oZa(e);RCb(e)}}c[g>>2]=f;CE(a);c[a+36>>2]=c[a+64>>2];R2a(a,b);if(c[a+76>>2]|0)ma(108332,108353,246,108386);if((c[a+84>>2]|0)!=(c[a+80>>2]|0))ma(108401,108353,247,108386);if((c[a+96>>2]|0)==(c[a+92>>2]|0))return;else ma(108421,108353,248,108386)}function kI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=c[a+40>>2]|0;g=a+44|0;d=c[g>>2]|0;while(1){if((d|0)==(f|0))break;d=d+-4|0;e=c[d>>2]|0;c[d>>2]=0;if(e|0){vXa(e);RCb(e)}}c[g>>2]=f;xE(a);c[a+36>>2]=c[a+64>>2];M4a(a,b);if(c[a+76>>2]|0)ma(108332,108353,246,108386);if((c[a+84>>2]|0)!=(c[a+80>>2]|0))ma(108401,108353,247,108386);if((c[a+96>>2]|0)==(c[a+92>>2]|0))return;else ma(108421,108353,248,108386)}function lI(a){a=a|0;var b=0,d=0;IWa(150620,98321)|0;IWa(150620,66539)|0;Wqa(150620,a)|0;b=a+12|0;if((c[b>>2]|0)==-1){IWa(150620,139976)|0;return}d=IWa(150620,112332)|0;b=IWa(Ym(d,c[b>>2]|0)|0,112435)|0;IWa(Ym(b,c[a+16>>2]|0)|0,139927)|0;IWa(150620,139976)|0;return}function mI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=a;if(c[37104]|0){f=IWa(150452,57625)|0;a=O8(148192,d)|0;IWa(Ym(IWa(Ym(f,c[a>>2]|0)|0,57662)|0,b)|0,56341)|0;a=c[d>>2]|0}if(!(OBb(c[a>>2]|0)|0))ma(57509,55544,1165,57666);a=a+12|0;if((WCb(c[a+4>>2]|0)|0)>>>0>b>>>0){f=uXa(a,b)|0;yb=e;return c[f>>2]|0}else ma(57688,55544,1166,57666);return 0}function nI(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=b+104|0;j=c[f>>2]|0;if((j|0)!=0?(c[b+108>>2]|0)>=(j|0):0)k=4;else{e=oQa(b)|0;if((e|0)>=0){f=c[f>>2]|0;j=c[b+8>>2]|0;if(f){g=b+4|0;i=c[g>>2]|0;h=f-(c[b+108>>2]|0)|0;f=j;if((j-i|0)<(h|0))k=9;else c[b+100>>2]=i+(h+-1)}else{g=b+4|0;f=j;k=9}if((k|0)==9)c[b+100>>2]=j;if(!f)f=c[g>>2]|0;else{j=c[g>>2]|0;b=b+108|0;c[b>>2]=f+1-j+(c[b>>2]|0);f=j}f=f+-1|0;if((e|0)!=(d[f>>0]|0|0))a[f>>0]=e}else k=4}if((k|0)==4){c[b+100>>2]=0;e=-1}return e|0}function oI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=c[a+40>>2]|0;g=a+44|0;d=c[g>>2]|0;while(1){if((d|0)==(f|0))break;d=d+-4|0;e=c[d>>2]|0;c[d>>2]=0;if(e|0){oZa(e);RCb(e)}}c[g>>2]=f;DE(a);c[a+36>>2]=c[a+64>>2];k3a(a,b);if(c[a+76>>2]|0)ma(108332,108353,246,108386);if((c[a+84>>2]|0)!=(c[a+80>>2]|0))ma(108401,108353,247,108386);if((c[a+96>>2]|0)==(c[a+92>>2]|0))return;else ma(108421,108353,248,108386)}function pI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h+4|0;f=h;c[g>>2]=b;c[f>>2]=d;b=a+48|0;e=O8(b,g)|0;e=c[e>>2]|0;Eva(a,c[g>>2]|0);if((Mba(a+48|0,f)|0)==(a+52|0)){e1(a,d,e,c[g>>2]|0);yb=h;return}b=O8(b,f)|0;c[b>>2]=e;b=c[f>>2]|0;if((c[(c[g>>2]|0)+4>>2]|0)==(c[b+4>>2]|0)){yb=h;return}sz(a,b);yb=h;return}function qI(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;j=b+8|0;j=Eb[c[(c[j>>2]|0)+8>>2]&511](j)|0;b=a[j+8+3>>0]|0;if(b<<24>>24<0)i=c[j+4>>2]|0;else i=b&255;b=a[j+20+3>>0]|0;if(b<<24>>24<0)b=c[j+16>>2]|0;else b=b&255;do if((i|0)!=(0-b|0)){b=(Mg(e,f,j,j+24|0,h,g,0)|0)-j|0;i=c[d>>2]|0;if((i|0)==12&(b|0)==0){c[d>>2]=0;break}if((i|0)<12&(b|0)==12)c[d>>2]=i+12}else c[g>>2]=c[g>>2]|4;while(0);return}function rI(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=yb;yb=yb+48|0;h=j+24|0;i=j;if((c[b+16>>2]|0)!=5)ma(112170,111484,923,112193);qIa(h,b);sDa(a);f=0;while(1){if((f|0)==8)break;g=f<<1;b=0;e=0;while(1){if((b|0)==2)break;k=$ka(h,g+b|0)|0;k=((d[k>>0]|0)<<(b<<19>>16)|e&65535)&65535;b=b+1|0;e=k}Bqb(i,e<<16>>16);k=eia(a,f)|0;c[k>>2]=c[i>>2];c[k+4>>2]=c[i+4>>2];c[k+8>>2]=c[i+8>>2];c[k+12>>2]=c[i+12>>2];c[k+16>>2]=c[i+16>>2];f=f+1|0}yb=j;return}function sI(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;j=b+8|0;j=Eb[c[(c[j>>2]|0)+8>>2]&511](j)|0;b=a[j+11>>0]|0;if(b<<24>>24<0)i=c[j+4>>2]|0;else i=b&255;b=a[j+12+11>>0]|0;if(b<<24>>24<0)b=c[j+16>>2]|0;else b=b&255;do if((i|0)!=(0-b|0)){b=(xg(e,f,j,j+24|0,h,g,0)|0)-j|0;i=c[d>>2]|0;if((i|0)==12&(b|0)==0){c[d>>2]=0;break}if((i|0)<12&(b|0)==12)c[d>>2]=i+12}else c[g>>2]=c[g>>2]|4;while(0);return}function tI(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h;if(!(a[b+12>>0]&1))e=b+4|0;else{f=IWa(Zm(IWa(150620,109066)|0,d&255)|0,112332)|0;e=b+4|0;BM(IWa(Ym(f,(c[e>>2]|0)-(c[b>>2]|0)|0)|0,139927)|0)}a[g>>0]=d;f=c[e>>2]|0;if(f>>>0<(c[b+8>>2]|0)>>>0){a[f>>0]=d;c[e>>2]=(c[e>>2]|0)+1;yb=h;return b|0}else{qN(b,g);yb=h;return b|0}return 0}function uI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;f=d+4|0;e=d;T_a(a,c[b+12>>2]|0);T_a(a,c[b+16>>2]|0);T_a(a,c[b+20>>2]|0);a=a+28|0;tI(c[a>>2]|0,-4)|0;g=c[a>>2]|0;Pwb(f,8);YA(g,c[f>>2]|0)|0;a=c[a>>2]|0;Pwb(e,c[b+8>>2]|0);tI(YA(a,c[e>>2]|0)|0,0)|0;yb=d;return}function vI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=a;if(c[37104]|0){f=IWa(150452,60059)|0;a=O8(148192,d)|0;IWa(Ym(IWa(Ym(f,c[a>>2]|0)|0,57662)|0,b)|0,56341)|0;a=c[d>>2]|0}if(!(PBb(c[a>>2]|0)|0))ma(58723,55544,1450,60097);if((WCb(c[a+20>>2]|0)|0)>>>0>b>>>0){f=uXa(a+16|0,b)|0;yb=e;return c[f>>2]|0}else ma(60120,55544,1451,60097);return 0}function wI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=yb;yb=yb+32|0;d=g+16|0;e=g+8|0;f=g;if(c[a+8>>2]<<5>>>0>=b>>>0){yb=g;return}c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;n=0;da(557,d|0,b|0);b=n;n=0;if(b&1){g=sa()|0;P()|0;ilb(d);Ea(g|0)}h=c[a>>2]|0;c[e>>2]=h;c[e+4>>2]=0;b=c[a+4>>2]|0;c[f>>2]=h+(b>>>5<<2);c[f+4>>2]=b&31;oy(d,e,f);bma(a,d);ilb(d);yb=g;return}function xI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=a;if(c[37104]|0){f=IWa(150452,58837)|0;a=O8(148192,d)|0;IWa(Ym(IWa(Ym(f,c[a>>2]|0)|0,57662)|0,b)|0,56341)|0;a=c[d>>2]|0}if(!(PBb(c[a>>2]|0)|0))ma(58723,55544,1316,58875);if((WCb(c[a+12>>2]|0)|0)>>>0>b>>>0){f=uXa(a+8|0,b)|0;yb=e;return c[f>>2]|0}else ma(58898,55544,1317,58875);return 0}function yI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;while(1){e=a;if((a|0)==(b|0)){f=13;break}if(pda(d,c[a>>2]|0)|0)break;a=a+4|0}if((f|0)==13)return a|0;while(1){a=a+4|0;if((a|0)==(b|0))break;f=c[a>>2]|0;if(!(pda(d,f)|0)){g=e;c[a>>2]=0;h=c[g>>2]|0;c[e>>2]=f;if(h|0)RCb(h);e=g+4|0}}d=e;return d|0}function zI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=c[a+4>>2]|0;if(!f){h=0;return h|0}g=f+-1|0;h=(f&g|0)==0;if(!h)if(f>>>0>b>>>0)e=b;else e=(b>>>0)%(f>>>0)|0;else e=g&b;a=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(!a){h=0;return h|0}while(1){a=c[a>>2]|0;if(!a){a=0;d=17;break}d=c[a+4>>2]|0;if((d|0)==(b|0)){if((c[a+8>>2]|0)==(b|0)){d=17;break}}else{if(!h){if(d>>>0>=f>>>0)d=(d>>>0)%(f>>>0)|0}else d=d&g;if((d|0)!=(e|0)){a=0;d=17;break}}}if((d|0)==17)return a|0;return 0}function AI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+32|0;e=h;f=d+128|0;i=c[f>>2]|0;g=d+132|0;b=c[g>>2]|0;tca(e,a+16|0);n=0;b=V(95,i|0,b|0,e|0)|0;a=n;n=0;if(a&1){i=sa()|0;P()|0;TIa(e);Ea(i|0)}S6(f,b,c[g>>2]|0)|0;TIa(e);JCa(d);a=c[d+28>>2]|0;b=c[d+24>>2]|0;while(1){if((b|0)==(a|0))break;Uab(c[b>>2]|0);Tca(c[b>>2]|0);b=b+4|0}yb=h;return}function BI(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;G0a(b);a[b+24>>0]=d;a[b+25>>0]=e;a[b+26>>0]=f;f=b+28|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;yib(b+52|0);f=b+64|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[b+80>>2]=1.0;f=b+84|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[b+100>>2]=1.0;f=b+104|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[b+120>>2]=1.0;f=b+124|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[b+140>>2]=1.0;a[b+148>>0]=0;return}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,j=0;j=yb;yb=yb+32|0;i=j;a:do if(!(zrb(d)|0)){h=(d|0)!=0;f=0;g=0;do{e=(1<>2]|0;else e=Cm(g,e?151778:b)|0;f=f+((e|0)!=0&1)|0;c[i+(g<<2)>>2]=e;g=g+1|0}while((g|0)!=6);switch(f&2147483647|0){case 0:{d=149652;break a}case 1:{if((c[i>>2]|0)==46468){d=46496;break a}break}default:{}}}else{e=0;do{if(1<>2]=i}e=e+1|0}while((e|0)!=6)}while(0);yb=j;return d|0}function DI(b){b=b|0;var d=0,e=0,f=0;e=b+8|0;n=0;ca(503,e|0);f=n;n=0;if(!(f&1)?(a[b+84>>0]=1,d=b+36|0,TUa(d),KZa(e),n=0,ca(548,c[b+4>>2]|0),f=n,n=0,!(f&1)):0){TIa(b+88|0);sXa(d);I_a(e);f=b+4|0;d=c[f>>2]|0;c[f>>2]=0;if(!d)return;Dsb(c[d>>2]|0);RCb(d);return}f=ta(0)|0;P()|0;TIa(b+88|0);sXa(b+36|0);I_a(e);e=b+4|0;d=c[e>>2]|0;c[e>>2]=0;if(!d)yub(f);Dsb(c[d>>2]|0);RCb(d);yub(f)}function EI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+16|0;e=g;f=IF(a)|0;do if(f>>>0>4){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;D8(e,116313,Zzb(116313)|0);n=0;da(4022,a|0,e|0);h=n;n=0;if(h&1){h=sa()|0;P()|0;Chb(e);Ea(h|0)}else{Chb(e);break}}while(0);G1a(b,AGa(f)|0,0)|0;G1a(d,IF(a)|0,0)|0;yb=g;return}function FI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>3;f=h+1|0;d=wxb()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>3>>>0>>1>>>0){d=e>>2;d=d>>>0>>0?f:d}FR(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;cjb(f,b);c[h>>2]=f+8;CS(a,g);vta(g);yb=i;return}function GI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a+4>>2]|0;if(!e){d=a+4|0;c[b>>2]=d;b=d;return b|0}f=Dtb(a)|0;a=e;while(1){e=c[a+16>>2]|0;if((e|0)>(d|0)){e=c[a>>2]|0;if(!e){e=5;break}else{f=a;a=e}}else{if((e|0)>=(d|0)){e=9;break}f=a+4|0;e=c[f>>2]|0;if(!e){e=8;break}else a=e}}if((e|0)==5){c[b>>2]=a;b=a;return b|0}else if((e|0)==8){c[b>>2]=a;b=f;return b|0}else if((e|0)==9){c[b>>2]=a;b=f;return b|0}return 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;e=a+8|0;vA(a,a+4|0,e,d)|0;h=d+4|0;g=a+12|0;while(1){if((g|0)==(b|0))break;if(nx(c[d>>2]|0,c[h>>2]|0,c[g>>2]|0,c[e>>2]|0)|0){i=c[g>>2]|0;f=g;while(1){c[f>>2]=c[e>>2];if((e|0)==(a|0)){e=a;break}f=e+-4|0;if(nx(c[d>>2]|0,c[h>>2]|0,i,c[f>>2]|0)|0){j=e;e=f;f=j}else break}c[e>>2]=i}e=g;g=g+4|0}return}function II(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=yb;yb=yb+48|0;h=j+24|0;i=j;if((c[b+16>>2]|0)!=5)ma(112170,111484,923,112193);qIa(h,b);sDa(a);f=0;while(1){if((f|0)==8)break;g=f<<1;b=0;e=0;while(1){if((b|0)==2)break;k=$ka(h,g+b|0)|0;k=((d[k>>0]|0)<<(b<<3)|e&65535)&65535;b=b+1|0;e=k}Bqb(i,e&65535);k=eia(a,f)|0;c[k>>2]=c[i>>2];c[k+4>>2]=c[i+4>>2];c[k+8>>2]=c[i+8>>2];c[k+12>>2]=c[i+12>>2];c[k+16>>2]=c[i+16>>2];f=f+1|0}yb=j;return}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;j=yb;yb=yb+32|0;i=j;g=c[a+8>>2]|0;d=c[a+4>>2]|0;if(g-d>>2>>>0>=b>>>0){EHa(a,b);yb=j;return}e=c[a>>2]|0;h=d-e>>2;f=h+b|0;d=YBb()|0;if(f>>>0>d>>>0)Apa();e=g-e|0;if(e>>2>>>0>>1>>>0){d=e>>1;d=d>>>0>>0?f:d}aS(i,d,h,a+8|0);dGa(i,b);ZU(a,i);Mwa(i);yb=j;return}function KI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h+8|0;e=h+4|0;f=h;b=c[b>>2]|0;d=Rqb(b)|0;if(d|0){b=c[d+8>>2]|0;if(!(eCb(b)|0)){yb=h;return}c[e>>2]=b;c[g>>2]=c[e>>2];a=Pz(a+36|0,g)|0;c[d+8>>2]=a;yb=h;return}d=hrb(b)|0;if(!d){yb=h;return}b=c[d+8>>2]|0;if(!(eCb(b)|0)){yb=h;return}c[f>>2]=b;c[g>>2]=c[f>>2];a=Pz(a+36|0,g)|0;c[d+8>>2]=a;yb=h;return}function LI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=c[a>>2]|0;g=a+4|0;h=b+4|0;d=c[g>>2]|0;while(1){if((d|0)==(f|0))break;d=d+-12|0;e=(c[h>>2]|0)+-12|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];e=0;while(1){if((e|0)==3)break;c[d+(e<<2)>>2]=0;e=e+1|0}c[h>>2]=(c[h>>2]|0)+-12}f=c[a>>2]|0;c[a>>2]=c[h>>2];c[h>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;a=a+8|0;g=b+12|0;f=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=f;c[b>>2]=c[h>>2];return}function MI(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;i=yb;yb=yb+416|0;d=i;e=i+400|0;c[e>>2]=d+400;IS(a+8|0,d,e,f,g,h);h=c[e>>2]|0;g=d;d=c[b>>2]|0;while(1){if((g|0)==(h|0))break;e=c[g>>2]|0;if(!d)d=0;else{a=d+24|0;f=c[a>>2]|0;if((f|0)==(c[d+28>>2]|0)){b=c[(c[d>>2]|0)+52>>2]|0;e=WCb(e)|0;e=Gb[b&255](d,e)|0}else{c[a>>2]=f+4;c[f>>2]=e;e=WCb(e)|0}b=Nwb(e)|0;d=b?0:d}g=g+4|0}yb=i;return d|0}function NI(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;lu(a+16|0,b);yD(a);Vm(a);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;n=0;da(c[(c[a>>2]|0)+32>>2]|0,a|0,d|0);b=n;n=0;if(b&1){e=sa()|0;P()|0;Vob(d);Ea(e|0)}n=0;da(558,a|0,d|0);b=n;n=0;if(b&1){e=sa()|0;P()|0;Vob(d);Ea(e|0)}else{Vob(d);yb=e;return}}function OI(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[d+16>>2]|0;c[b>>2]=e;switch(e|0){case 1:{e=Peb(d)|0;c[b+8>>2]=e;return}case 2:{f=$Xa(d)|0;d=P()|0;e=b+8|0;c[e>>2]=f;c[e+4>>2]=d;return}case 3:{f=Vcb(d)|0;c[b+8>>2]=f;return}case 4:{d=rVa(d)|0;e=P()|0;f=b+8|0;c[f>>2]=d;c[f+4>>2]=e;return}case 5:{e=b+8|0;b=Agb(d)|0;d=e+16|0;do{a[e>>0]=a[b>>0]|0;e=e+1|0;b=b+1|0}while((e|0)<(d|0));return}case 6:case 0:{ma(141129,55544,61,55572);break}default:return}}function PI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;i=j;g=c[a+8>>2]|0;d=c[a+4>>2]|0;if((g-d|0)>>>0>=b>>>0){NHa(a,b);yb=j;return}e=c[a>>2]|0;h=d-e|0;f=h+b|0;d=ZBb()|0;if(f>>>0>d>>>0)Apa();e=g-e|0;if(e>>>0>>1>>>0){d=e<<1;d=d>>>0>>0?f:d}Ira(i,d,h,a+8|0);rGa(i,b);GV(a,i);Nwa(i);yb=j;return}function QI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+16|0;g=a+12|0;if((WCb(c[e>>2]|0)|0)==(b|0)){Wla(g,d);g=a+4|0;g=c[g>>2]|0;uZa(a,g);return}Wla(g,0);f=WCb(c[e>>2]|0)|0;while(1){e=f+-1|0;if(e>>>0<=b>>>0)break;i=uXa(g,f+-2|0)|0;i=c[i>>2]|0;h=uXa(g,e)|0;c[h>>2]=i;f=e}i=uXa(g,b)|0;c[i>>2]=d;i=a+4|0;i=c[i>>2]|0;uZa(a,i);return}function RI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;do if(!(Ejb(a)|0)){d=Il(a+152|0,b+8|0)|0;e=a+140|0;f=d+4|0;g=c[f>>2]|0;if((g|0)==(c[d+8>>2]|0)){sC(d,e);break}else{Y_(g,e);c[f>>2]=(c[f>>2]|0)+12;break}}while(0);b=c[b+16>>2]|0;if(!b){$pb(a);return a|0}else{cj(a,b)|0;return a|0}return 0}function SI(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;f=yb;yb=yb+64|0;e=f+24|0;d=f;tca(d,c);n=0;ea(123,e|0,b|0,d|0);c=n;n=0;if(c&1){f=sa()|0;P()|0;TIa(d);Ea(f|0)}TIa(d);n=0;a=U(96,e|0,a|0)|0;d=n;n=0;if(!(d&1)){Cdb(e);yb=f;return a|0}f=sa()|0;P()|0;Cdb(e);Ea(f|0);return 0}function TI(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;j=yb;yb=yb+96|0;h=j;f=b+12|0;g=a+40|0;i=b+8|0;d=0;e=0;while(1){if(d>>>0>=(WCb(c[f>>2]|0)|0)>>>0){d=5;break}l=pob(c[g>>2]|0)|0;k=uXa(i,d)|0;VA(h,l,c[k>>2]|0);k=QGa(h)|0;Fha(h);if(k){d=5;break}l=vo(a,b,uXa(i,d)|0,e,0)|0;d=d+1|0;e=l}if((d|0)==5){yb=j;return}}function UI(a,b){a=a|0;b=b|0;var d=0,e=0;if((b|0)!=1){if(b+-1&b)b=Gc(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0>e>>>0){os(a,b);return}if(b>>>0>=e>>>0)return;if(e>>>0>2?(e&e+-1|0)==0:0){d=~~+I(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(d>>>0>=2)d=1<<32-(M(d+-1|0)|0)}else d=Gc(~~+I(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0)|0;b=b>>>0>>0?d:b;if(b>>>0>=e>>>0)return;os(a,b);return}function VI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;d=f+4|0;e=f;c[e>>2]=c[b+12>>2];c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;n=0;da(174,d|0,1);g=n;n=0;if(g&1){g=sa()|0;P()|0;Qcb(d);Ea(g|0)}ssa(d,e,e+4|0);n=0;ea(143,a|0,d|0,c[b+4>>2]|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;Vob(d);Ea(g|0)}else{Vob(d);yb=f;return}}function WI(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;g=h;e=b+4|0;IWa(c[e>>2]|0,124927)|0;f=d+32|0;b=d+16|0;while(1){if((b|0)==(f|0)){b=5;break}i=a[b>>0]|0;d=IWa(c[e>>2]|0,139961)|0;h5(g,i&255);n=0;U(61,d|0,g|0)|0;d=n;n=0;if(d&1){b=6;break}Chb(g);b=b+1|0}if((b|0)==5){yb=h;return}else if((b|0)==6){i=sa()|0;P()|0;Chb(g);Ea(i|0)}}function XI(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+272|0;f=g;e=a[b>>0]&1;if(e<<24>>24){IWa(Wqa(IWa(150620,118754)|0,d)|0,127446)|0;e=a[b>>0]&1}Bv(f,d,0,(e^1)&255);n=0;ea(197,b|0,c|0,f|0);d=n;n=0;if(d&1){g=sa()|0;P()|0;fgb(f);Ea(g|0)}else{fgb(f);yb=g;return}}function YI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;d=f+4|0;e=f;c[e>>2]=c[b+24>>2];c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;n=0;da(174,d|0,1);g=n;n=0;if(g&1){g=sa()|0;P()|0;Qcb(d);Ea(g|0)}ssa(d,e,e+4|0);n=0;ea(143,a|0,d|0,c[b+4>>2]|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;Vob(d);Ea(g|0)}else{Vob(d);yb=f;return}}function ZI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;d=f+4|0;e=f;c[e>>2]=c[b+8>>2];c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;n=0;da(174,d|0,1);g=n;n=0;if(g&1){g=sa()|0;P()|0;Qcb(d);Ea(g|0)}ssa(d,e,e+4|0);n=0;ea(143,a|0,d|0,c[b+4>>2]|0);g=n;n=0;if(g&1){g=sa()|0;P()|0;Vob(d);Ea(g|0)}else{Vob(d);yb=f;return}}function _I(b,d){b=b|0;d=d|0;var e=0;ZKa(b,Xxb(c[(c[b+44>>2]|0)+4>>2]|0)|0,d);e=c[b+36>>2]|0;WCb(e)|0;vKa(b,(a[e+120>>0]&1)==0,d);e=d+4|0;UF(b,a[d+12>>0]|0,c[e>>2]|0,d);aqa(b,c[(c[d+20>>2]|0)+4>>2]|0,1,d,129734);aqa(b,c[e>>2]|0,c[(c[d+24>>2]|0)+4>>2]|0,d,129769);SBa(b,c[e>>2]|0,d,129810);return}function $I(a){a=a|0;var b=0,d=0;a=Aqb(a)|0;if(!a){d=0;return d|0}if((c[a+8>>2]|0)!=12){d=0;return d|0}d=Mqb(c[a+16>>2]|0)|0;if(!d){d=0;return d|0}if(!(Peb(d+8|0)|0)){d=0;return d|0}a=Aqb(c[a+12>>2]|0)|0;if(!a){d=0;return d|0}if((c[a+8>>2]|0)!=10){d=0;return d|0}b=Mqb(c[a+16>>2]|0)|0;if(!b){d=0;return d|0}d=Zaa(d)|0;if(d>>>0>(Zaa(b)|0)>>>0){d=0;return d|0}d=c[a+12>>2]|0;return d|0}function aJ(a,b){a=a|0;b=b|0;var d=0,e=0;if((b|0)!=1){if(b+-1&b)b=Gc(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0>e>>>0){is(a,b);return}if(b>>>0>=e>>>0)return;if(e>>>0>2?(e&e+-1|0)==0:0){d=~~+I(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(d>>>0>=2)d=1<<32-(M(d+-1|0)|0)}else d=Gc(~~+I(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0)|0;b=b>>>0>>0?d:b;if(b>>>0>=e>>>0)return;is(a,b);return}function bJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=yb;yb=yb+16|0;e=i+8|0;g=i+4|0;h=i;if(!(a[b+33>>0]&1))f=b+28|0;else{k=IWa(150620,113133)|0;f=b+28|0;j=c[f>>2]|0;BM(Ym(k,(c[j+4>>2]|0)-(c[j>>2]|0)+1|0)|0)}k=tI(c[f>>2]|0,35)|0;j=c[b+24>>2]|0;c[h>>2]=c[d+8>>2];c[e>>2]=c[h>>2];Pwb(g,Gda(j,e)|0);YA(k,c[g>>2]|0)|0;yb=i;return}function cJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=yb;yb=yb+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;i=c[b>>2]|0;if(a[i+72>>0]&1)BM(IWa(150620,113859)|0);wUa(c[c[b+4>>2]>>2]|0,d);b=i+68|0;k=c[b>>2]|0;Pwb(f,0);YA(k,c[f>>2]|0)|0;f=c[b>>2]|0;c[h>>2]=c[d+40>>2];c[e>>2]=c[h>>2];Pwb(g,Gaa(i,e)|0);YA(f,c[g>>2]|0)|0;yb=j;return}function dJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+16|0;e=f;Gsb(e,d);switch(b|0){case 1:{e=pVa(c[e>>2]|0,24,a)|0;yb=f;return e|0}case 0:{e=Q6a(c[e>>2]|0,a)|0;yb=f;return e|0}case 3:{e=c[e>>2]|0;e=pVa(e,45,pVa(e,24,a)|0)|0;yb=f;return e|0}case 4:{e=pVa(c[e>>2]|0,46,a)|0;yb=f;return e|0}case 5:{ma(84722,80787,111,80829);break}default:{e=a;yb=f;return e|0}}return 0}function eJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h+8|0;f=h;if(!(WCb(c[b+12>>2]|0)|0)){SEa(c[a>>2]|0,41)|0;yb=h;return}_Va(a);d=b+8|0;nrb(g,d);Hib(f,d);d=g+4|0;e=c[f>>2]|0;b=c[f+4>>2]|0;while(1){if(!(dhb(c[g>>2]|0,c[d>>2]|0,e,b)|0))break;f=Qab(g)|0;sV(a,c[f>>2]|0);hob(g)}y9(a);yb=h;return}function fJ(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+272|0;f=g;e=a[b>>0]&1;if(e<<24>>24){IWa(Wqa(IWa(150620,118737)|0,d)|0,127446)|0;e=a[b>>0]&1}Bv(f,d,1,(e^1)&255);n=0;da(4048,c|0,f|0);d=n;n=0;if(d&1){g=sa()|0;P()|0;fgb(f);Ea(g|0)}else{fgb(f);yb=g;return}}function gJ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h;c[g>>2]=d;c[g+4>>2]=e;while(1){d=a;if((a|0)==(b|0)){f=11;break}if(_Q(g,c[a>>2]|0)|0)break;a=a+4|0}if((f|0)==11){yb=h;return a|0}while(1){a=a+4|0;if((a|0)==(b|0))break;if(!(_Q(g,c[a>>2]|0)|0)){c[d>>2]=c[a>>2];d=d+4|0}}g=d;yb=h;return g|0}function hJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+48|0;e=d;f=d+32|0;a=a+4|0;nwa(f,a);nz(e,f,c[b+16>>2]|0);b=_5(a,b+8|0)|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];yb=d;return}function iJ(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;j=yb;yb=yb+16|0;h=j+8|0;g=j;e=b+16|0;nrb(h,e);Hib(g,e);e=h+4|0;f=c[g>>2]|0;g=c[g+4>>2]|0;a=a+24|0;while(1){if(!(dhb(c[h>>2]|0,c[e>>2]|0,f,g)|0)){i=6;break}k=Qab(h)|0;d=c[a>>2]|0;if(_la(d,c[k>>2]|0)|0)break;hob(h)}if((i|0)==6){yb=j;return}Nra(d,b);yb=j;return}function jJ(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;j=yb;yb=yb+16|0;h=j+8|0;g=j;e=b+8|0;nrb(h,e);Hib(g,e);e=h+4|0;f=c[g>>2]|0;g=c[g+4>>2]|0;a=a+24|0;while(1){if(!(dhb(c[h>>2]|0,c[e>>2]|0,f,g)|0)){i=6;break}k=Qab(h)|0;d=c[a>>2]|0;if(_la(d,c[k>>2]|0)|0)break;hob(h)}if((i|0)==6){yb=j;return}Nra(d,b);yb=j;return}function kJ(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=yb;yb=yb+848|0;e=j+456|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;rjb(e,b);rjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;maa(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}cab(a,e);yb=j;return}function lJ(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=yb;yb=yb+848|0;e=j+456|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;rjb(e,b);rjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;_9(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}cab(a,e);yb=j;return}function mJ(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=yb;yb=yb+848|0;e=j+456|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;rjb(e,b);rjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;naa(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}cab(a,e);yb=j;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;j=yb;yb=yb+848|0;e=j+456|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;rjb(e,b);rjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;$9(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}cab(a,e);yb=j;return}function oJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+848|0;e=j+456|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;sjb(e,b);sjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;lba(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}cab(a,e);yb=j;return}function pJ(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=yb;yb=yb+848|0;e=j+456|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;sjb(e,b);sjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;eba(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}cab(a,e);yb=j;return}function qJ(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=yb;yb=yb+848|0;e=j+456|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;sjb(e,b);sjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;mba(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}cab(a,e);yb=j;return}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;j=yb;yb=yb+848|0;e=j+456|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;sjb(e,b);sjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;fba(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}cab(a,e);yb=j;return}function sJ(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=yb;yb=yb+176|0;e=j+120|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;X7(e,b);X7(f,d);b=0;while(1){if((b|0)==2)break;d=e+(b*24|0)|0;OU(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Heb(g,-1,-1);else Heb(g,0,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];b=b+1|0}Jab(a,e);yb=j;return}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;j=yb;yb=yb+176|0;e=j+120|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;X7(e,b);X7(f,d);b=0;while(1){if((b|0)==2)break;d=e+(b*24|0)|0;pma(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Heb(g,-1,-1);else Heb(g,0,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];b=b+1|0}Jab(a,e);yb=j;return}function uJ(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=yb;yb=yb+176|0;e=j+120|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;X7(e,b);X7(f,d);b=0;while(1){if((b|0)==2)break;d=e+(b*24|0)|0;dma(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Heb(g,-1,-1);else Heb(g,0,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];b=b+1|0}Jab(a,e);yb=j;return}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;j=yb;yb=yb+176|0;e=j+120|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;X7(e,b);X7(f,d);b=0;while(1){if((b|0)==2)break;d=e+(b*24|0)|0;qma(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Heb(g,-1,-1);else Heb(g,0,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];b=b+1|0}Jab(a,e);yb=j;return}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;j=yb;yb=yb+176|0;e=j+120|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;X7(e,b);X7(f,d);b=0;while(1){if((b|0)==2)break;d=e+(b*24|0)|0;ema(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Heb(g,-1,-1);else Heb(g,0,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];b=b+1|0}Jab(a,e);yb=j;return}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;j=yb;yb=yb+176|0;e=j+120|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;X7(e,b);X7(f,d);b=0;while(1){if((b|0)==2)break;d=e+(b*24|0)|0;PU(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Heb(g,-1,-1);else Heb(g,0,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];b=b+1|0}Jab(a,e);yb=j;return}function yJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=yb;yb=yb+16|0;i=k+8|0;g=k;h=b+36|0;if(dub(c[d+24>>2]|0,c[h>>2]|0)|0){a[b+40>>0]=1;yb=k;return}e=d+8|0;nrb(i,e);Hib(g,e);e=i+4|0;f=c[g>>2]|0;d=c[g+4>>2]|0;while(1){if(!(dhb(c[i>>2]|0,c[e>>2]|0,f,d)|0)){j=8;break}g=Qab(i)|0;if(dub(c[g>>2]|0,c[h>>2]|0)|0)break;hob(i)}if((j|0)==8){yb=k;return}a[b+40>>0]=1;yb=k;return}function zJ(b,d){b=b|0;d=d|0;if(a[b+33>>0]&1)BM(IWa(150620,112749)|0);yIa(b,c[d+12>>2]|0);yIa(b,c[d+16>>2]|0);if((c[d+4>>2]|0)==6){AQ(b);return}else{TW(b,d);return}}function AJ(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=yb;yb=yb+48|0;h=j+24|0;i=j;if((c[b+16>>2]|0)!=5)ma(112170,111484,923,112193);qIa(h,b);_7a(a);f=0;while(1){if((f|0)==4)break;g=f<<2;b=0;e=0;while(1){if((b|0)==4)break;k=$ka(h,g+b|0)|0;k=e|(d[k>>0]|0)<<(b<<3);b=b+1|0;e=k}Bqb(i,e);k=fia(a,f)|0;c[k>>2]=c[i>>2];c[k+4>>2]=c[i+4>>2];c[k+8>>2]=c[i+8>>2];c[k+12>>2]=c[i+12>>2];c[k+16>>2]=c[i+16>>2];f=f+1|0}yb=j;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;j=yb;yb=yb+848|0;e=j+456|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;rjb(e,b);rjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;OU(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}cab(a,e);yb=j;return}function CJ(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=yb;yb=yb+848|0;e=j+456|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;rjb(e,b);rjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;PU(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}cab(a,e);yb=j;return}function DJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+80|0;b=c[f>>2]|0;NC(a+16|0);d=a+72|0;e=c[d>>2]|0;if((e|0)==(c[a+76>>2]|0))_M(a+68|0,f);else{c[e>>2]=c[f>>2];c[d>>2]=(c[d>>2]|0)+4}oP(b,c[f>>2]|0);b=a+112|0;d=c[b>>2]|0;if((d|0)==(c[a+116>>2]|0)){_M(a+108|0,f);return}else{c[d>>2]=c[f>>2];c[b>>2]=(c[b>>2]|0)+4;return}}function EJ(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=yb;yb=yb+464|0;e=j+264|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Cjb(e,b);Cjb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;maa(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Hab(a,e);yb=j;return}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;j=yb;yb=yb+464|0;e=j+264|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Cjb(e,b);Cjb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;_9(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Hab(a,e);yb=j;return}function GJ(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=yb;yb=yb+464|0;e=j+264|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Cjb(e,b);Cjb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;naa(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Hab(a,e);yb=j;return}function HJ(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=yb;yb=yb+464|0;e=j+264|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Cjb(e,b);Cjb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;$9(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Hab(a,e);yb=j;return}function IJ(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=yb;yb=yb+464|0;e=j+264|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Djb(e,b);Djb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;lba(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Hab(a,e);yb=j;return}function JJ(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=yb;yb=yb+464|0;e=j+264|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Djb(e,b);Djb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;eba(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Hab(a,e);yb=j;return}function KJ(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=yb;yb=yb+464|0;e=j+264|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Djb(e,b);Djb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;mba(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Hab(a,e);yb=j;return}function LJ(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=yb;yb=yb+464|0;e=j+264|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Djb(e,b);Djb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;fba(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Hab(a,e);yb=j;return}function MJ(b,d){b=b|0;d=d|0;if(a[b+33>>0]&1)BM(IWa(150620,113023)|0);yIa(b,c[d+24>>2]|0);yIa(b,c[d+28>>2]|0);if((c[d+4>>2]|0)==6){AQ(b);return}else{TW(b,d);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;j=yb;yb=yb+464|0;e=j+264|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Cjb(e,b);Cjb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;OU(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Hab(a,e);yb=j;return}function OJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+464|0;e=j+264|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Cjb(e,b);Cjb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;PU(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Hab(a,e);yb=j;return}function PJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=a+116|0;c[g>>2]=b;c[a+120>>2]=d;e=Icb(b)|0;if(!e)return;qbb(a);f=a+140|0;d=0;while(1){if((d|0)==(e|0))break;if(Ppb(jka(c[g>>2]|0,d)|0)|0){b=jka(c[g>>2]|0,d)|0;if(Rjb(c[g>>2]|0,d)|0)b=mHa(a,b)|0;else b=Sia(a,b)|0;c[(c[f>>2]|0)+(d<<2)>>2]=b}d=d+1|0}cj(a,c[(c[g>>2]|0)+44>>2]|0)|0;return}function QJ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;h=i+8|0;f=i;c[f>>2]=c[e+8>>2];d=c[d+4>>2]|0;if((C8(d+4|0,f)|0)==(d+8|0))ma(67928,96854,1022,82270);else{g=h;d=_5(d+4|0,f)|0;e=g+24|0;do{a[g>>0]=a[d>>0]|0;g=g+1|0;d=d+1|0}while((g|0)<(e|0));Wza(b,h);yb=i;return}}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;j=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;maa(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;return}function SJ(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=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;lba(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;return}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;j=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;_9(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;return}function UJ(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=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;eba(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;return}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;j=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;naa(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;return}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;j=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;mba(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;return}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;j=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;$9(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;return}function YJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;fba(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;return}function ZJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;h=yb;yb=yb+32|0;f=h;e=a[d>>0]|0;a:do if(e<<24>>24!=0?(a[d+1>>0]|0)!=0:0){LL(f|0,0,32)|0;e=a[d>>0]|0;if(e<<24>>24)do{j=e&255;i=f+(j>>>5<<2)|0;c[i>>2]=c[i>>2]|1<<(j&31);d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0);d=a[b>>0]|0;if(!(d<<24>>24))e=b;else{e=b;do{j=d&255;if(c[f+(j>>>5<<2)>>2]&1<<(j&31)|0)break a;e=e+1|0;d=a[e>>0]|0}while(d<<24>>24!=0)}}else g=3;while(0);if((g|0)==3)e=WH(b,e<<24>>24)|0;yb=h;return e-b|0}function _J(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+20|0;switch(c[b>>2]|0){case 0:{e=c[a+4>>2]|0;f=WCb(c[e+24>>2]|0)|0;d=a+16|0;c[d>>2]=f;e=kib(e)|0;mcb(c[a+12>>2]|0,e,0);if(!(c[(c[a+8>>2]|0)+16>>2]|0))mcb(c[d>>2]|0,e,0);c[b>>2]=(c[b>>2]|0)+1;return}case 1:{f=c[a+4>>2]|0;e=WCb(c[f+24>>2]|0)|0;f=kib(f)|0;mcb(c[a+16>>2]|0,f,0);mcb(e,f,0);return}default:ma(141129,103218,208,103338)}}function $J(a,b){a=a|0;b=b|0;var d=0,e=0;if((b|0)!=1){if(b+-1&b)b=Gc(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0>e>>>0){ss(a,b);return}if(b>>>0>=e>>>0)return;if(e>>>0>2?(e&e+-1|0)==0:0){d=~~+I(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(d>>>0>=2)d=1<<32-(M(d+-1|0)|0)}else d=Gc(~~+I(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0)|0;b=b>>>0>>0?d:b;if(b>>>0>=e>>>0)return;ss(a,b);return}function aK(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=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;OU(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;return}function bK(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=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;PU(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;return}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,j=0;j=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Y7(e,b);Y7(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;OU(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;return}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,j=0;j=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Y7(e,b);Y7(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;pma(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;return}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;j=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Y7(e,b);Y7(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;dma(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;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;j=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Y7(e,b);Y7(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;qma(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;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;j=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Y7(e,b);Y7(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;ema(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;return}function hK(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=yb;yb=yb+272|0;e=j+168|0;f=j+72|0;g=j+48|0;h=j+24|0;i=j;Y7(e,b);Y7(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;PU(h,d,f+(b*24|0)|0);Bqb(i,1);if(yda(h,i)|0)Bqb(g,-1);else Bqb(g,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];b=b+1|0}Iab(a,e);yb=j;return}function iK(a,b){a=a|0;b=b|0;var d=0,e=0;b=c[b>>2]|0;e=(wrb(b)|0)+16|0;if(!(c[e>>2]|0)){Aea(a+44|0);return}e=(Tfb(b)|0)+16|0;if(!(c[e>>2]|0))ma(104356,104084,151,104386);b=a+44|0;d=a+84|0;e=c[d>>2]|0;if(e>>>0<(c[a+88>>2]|0)>>>0){aja(e,b);c[d>>2]=(c[d>>2]|0)+12;return}else{HC(a+80|0,b);return}}function jK(a,b){a=a|0;b=b|0;var d=0,e=0;b=c[b>>2]|0;e=(wrb(b)|0)+16|0;if(!(c[e>>2]|0)){Cea(a+44|0);return}e=(Tfb(b)|0)+16|0;if(!(c[e>>2]|0))ma(104356,104084,151,104386);b=a+44|0;d=a+84|0;e=c[d>>2]|0;if(e>>>0<(c[a+88>>2]|0)>>>0){aja(e,b);c[d>>2]=(c[d>>2]|0)+12;return}else{JC(a+80|0,b);return}}function kK(a,b){a=a|0;b=b|0;var d=0,e=0;b=c[b>>2]|0;e=(wrb(b)|0)+16|0;if(!(c[e>>2]|0)){Dea(a+44|0);return}e=(Tfb(b)|0)+16|0;if(!(c[e>>2]|0))ma(104356,104084,151,104386);b=a+44|0;d=a+84|0;e=c[d>>2]|0;if(e>>>0<(c[a+88>>2]|0)>>>0){aja(e,b);c[d>>2]=(c[d>>2]|0)+12;return}else{KC(a+80|0,b);return}}function lK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a+4>>2]|0;if(!e){d=a+4|0;c[b>>2]=d;b=d;return b|0}f=Dtb(a)|0;a=e;while(1){e=c[a+16>>2]|0;if(e>>>0>d>>>0){e=c[a>>2]|0;if(!e){e=5;break}else{f=a;a=e}}else{if(e>>>0>=d>>>0){e=9;break}f=a+4|0;e=c[f>>2]|0;if(!e){e=8;break}else a=e}}if((e|0)==5){c[b>>2]=a;b=a;return b|0}else if((e|0)==8){c[b>>2]=a;b=f;return b|0}else if((e|0)==9){c[b>>2]=a;b=f;return b|0}return 0}function mK(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=a+8|0;kE(a,a+4|0,e,d)|0;h=a+12|0;while(1){if((h|0)==(b|0))break;i=c[h>>2]|0;g=c[e>>2]|0;if(_ba(d,i,g)|0){f=h;while(1){c[f>>2]=g;if((e|0)==(a|0)){e=a;break}f=e+-4|0;g=c[f>>2]|0;if(!(_ba(d,i,g)|0))break;else{j=e;e=f;f=j}}c[e>>2]=i}e=h;h=h+4|0}return}function nK(b){b=b|0;var c=0,d=0,e=0,f=0,g=0;while(1){d=a[b>>0]|0;c=d<<24>>24;e=b+1|0;if(!(Cxb(c)|0))break;else b=e}switch(c|0){case 45:{b=1;f=5;break}case 43:{b=0;f=5;break}default:g=0}if((f|0)==5){d=a[e>>0]|0;g=b;b=e;c=d<<24>>24}if(!(rCb(c)|0)){c=0;b=0}else{e=d;c=0;d=0;do{d=BSa(c|0,d|0,10,0)|0;b=b+1|0;c=(e<<24>>24)+-48|0;c=Ndb(d|0,P()|0,c|0,((c|0)<0)<<31>>31|0)|0;d=P()|0;e=a[b>>0]|0}while((rCb(e<<24>>24)|0)!=0);b=d}f=(g|0)==0;g=Ndb(0,0,c|0,b|0)|0;e=P()|0;O((f?e:b)|0);return (f?g:c)|0}function oK(a,b){a=a|0;b=b|0;if(!b)return;oK(a,c[b>>2]|0);oK(a,c[b+4>>2]|0);Nrb(b+16|0);RCb(b);return}function pK(a){a=a|0;Pdb(a+172|0);ola(a+152|0);Vob(a+140|0);VZa(a+124|0);Vob(a+104|0);Pdb(a+84|0);Pdb(a+64|0);tua(a+44|0);Pdb(a+24|0);Brb(a);return}function qK(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;g=h;e=a+20|0;s2(g,c[(c[e>>2]|0)+44>>2]|0);f=c[g+4>>2]|0;b=c[g>>2]|0;while(1){if((b|0)==(f|0)){a=6;break}d=(c[b>>2]|0)+8|0;n=0;a=U(84,c[e>>2]|0,c[d>>2]|0)|0;i=n;n=0;if(i&1){a=7;break}n=0;a=U(186,c[e>>2]|0,a|0)|0;i=n;n=0;if(i&1){a=7;break}c[d>>2]=a;b=b+4|0}if((a|0)==6){Htb(g);yb=h;return}else if((a|0)==7){i=sa()|0;P()|0;Htb(g);Ea(i|0)}}function rK(b,d){b=b|0;d=d|0;var e=0;if(a[b+33>>0]&1)BM(IWa(150620,112891)|0);e=d+12|0;yIa(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;e=d+16|0;yIa(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;TW(b,d);return}function sK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,h=0,i=0;g=yb;yb=yb+16|0;h=g;e=h;c[e>>2]=b;c[e+4>>2]=d;f=+BAb(h);h=leb(f)|0;e=P()|0;i=e&2147483647;if(i>>>0>2146435072|(i|0)==2146435072&h>>>0>0){Heb(a,0,0);yb=g;return}if(TWa(b,d)|0){f=+ib(+f);Heb(a,~~f>>>0,+w(f)>=1.0?(f>0.0?~~+K(+v(f/4294967296.0),4294967295.0)>>>0:~~+I((f-+(~~f>>>0))/4294967296.0)>>>0):0);yb=g;return}if((e|0)<0){Heb(a,0,-2147483648);yb=g;return}else{Heb(a,-1,2147483647);yb=g;return}}function tK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=yb;yb=yb+80|0;h=e+48|0;g=e+24|0;f=e;Heb(h,0,-2147483648);c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];c[a+16>>2]=c[h+16>>2];pUa(g,-9223372036854775808.0);c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];pUa(f,9223372036854775808.0);c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];yb=e;return}function uK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=yb;yb=yb+80|0;h=e+48|0;g=e+24|0;f=e;Heb(h,0,-2147483648);c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];c[a+16>>2]=c[h+16>>2];kEa(g,-9223372036854775808.0);c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];kEa(f,9223372036854775808.0);c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];yb=e;return}function vK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=mla(72)|0;c[b>>2]=f;c[b+4>>2]=d+4;g=b+8|0;a[g>>0]=0;n=0;da(73,f+16|0,c[e>>2]|0);e=n;n=0;if(!(e&1)){d=f+32|0;e=d;b=e+40|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(b|0));tRa(d);a[g>>0]=1;return}d=sa()|0;P()|0;c[b>>2]=0;if(!f)Ea(d|0);RCb(f);Ea(d|0)}function wK(b,d){b=b|0;d=d|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(!(c[c[11771]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;b=1;break}else{c[37419]=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[37419]=84;b=-1;break}}else b=1;while(0);return b|0}function xK(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h;if(a[b+33>>0]&1)BM(IWa(150620,112689)|0);f=d+8|0;e=c[f>>2]|0;if((e|0)==1){uXa(d+16|0,0)|0;e=c[f>>2]|0}switch(e|0){case 0:{e=b+28|0;tI(c[e>>2]|0,63)|0;break}case 1:{e=b+28|0;tI(c[e>>2]|0,64)|0;break}default:e=b+28|0}b=c[e>>2]|0;Pwb(g,0);YA(b,c[g>>2]|0)|0;yb=h;return}function yK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h+8|0;f=h;if(b>>>0<2){g=0;yb=h;return g|0}g=c[a+16>>2]|0;switch(g|0){case 1:{Pwb(e,Peb(a)|0);d=f8(e)|0;break}case 2:{Fmb(f,$Xa(a)|0,P()|0);d=O6(f)|0;break}case 4:case 3:{d=Era(g)|0;break}case 6:case 0:{ma(141129,77205,101,77243);break}case 5:{g=0;yb=h;return g|0}default:d=0}g=(d+2+(b<<1)|0)>>>0<(J(d,b)|0)>>>0;yb=h;return g|0}function zK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-16|0;qWa((c[g>>2]|0)+-16|0,h);c[g>>2]=(c[g>>2]|0)+-16;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function AK(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;e=c[b>>2]|0;c[f>>2]=c[d+8>>2];e=pm(e+20|0,f)|0;d=c[b+4>>2]|0;if(!(LF(d,f)|0)){f=0;yb=g;return f|0}f=Om(d,f)|0;if((c[f>>2]|0)!=(c[e>>2]|0)){f=0;yb=g;return f|0}f=(a[e+9>>0]&1)==0;yb=g;return f|0}function BK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=yb;yb=yb+48|0;d=i+32|0;e=i+24|0;f=i+16|0;g=i+8|0;h=i;if(VBb(c[a>>2]|0)|0){j=a+8|0;a=c[j>>2]|0;pkb(e,a);lca(d,e,b);pkb(g,c[j>>2]|0);lca(h,g,b);lca(f,h,1);$_(a,c[d>>2]|0,c[d+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0);yb=i;return}else ma(74875,74885,432,51728)}function CK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(e>>>0>1073741807)ipa();do if(e>>>0>=2){f=e+4&-4;if(f>>>0<=1073741823){g=mla(f<<2)|0;c[b>>2]=g;c[b+8>>2]=f|-2147483648;c[b+4>>2]=e;b=g;break}b=oa(8)|0;n=0;da(67,b|0,138616);g=n;n=0;if(g&1){g=sa()|0;P()|0;va(b|0);Ea(g|0)}else{c[b>>2]=50788;za(b|0,39592,473)}}else a[b+8+3>>0]=e;while(0);Rkb(b,d,e);Ftb(b+(e<<2)|0,0);return}function DK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+64|0;b=c[f>>2]|0;OE(a);d=a+56|0;e=c[d>>2]|0;if((e|0)==(c[a+60>>2]|0))_M(a+52|0,f);else{c[e>>2]=c[f>>2];c[d>>2]=(c[d>>2]|0)+4}yO(b,c[f>>2]|0);b=a+96|0;d=c[b>>2]|0;if((d|0)==(c[a+100>>2]|0)){_M(a+92|0,f);return}else{c[d>>2]=c[f>>2];c[b>>2]=(c[b>>2]|0)+4;return}}function EK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g;c[e>>2]=b;f=b;if(!(eCb(c[b+40>>2]|0)|0)){yb=g;return}if(Yrb(b)|0){b=a+28|0;d=c[b>>2]|0;if((d|0)==(c[a+32>>2]|0)){_M(a+24|0,e);yb=g;return}else{c[d>>2]=f;c[b>>2]=(c[b>>2]|0)+4;yb=g;return}}else{b=a+40|0;d=c[b>>2]|0;if((d|0)==(c[a+44>>2]|0)){_M(a+36|0,e);yb=g;return}else{c[d>>2]=f;c[b>>2]=(c[b>>2]|0)+4;yb=g;return}}}function FK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(d>>>0>1073741807)ipa();do if(d>>>0>=2){f=d+4&-4;if(f>>>0<=1073741823){g=mla(f<<2)|0;c[b>>2]=g;c[b+8>>2]=f|-2147483648;c[b+4>>2]=d;b=g;break}b=oa(8)|0;n=0;da(67,b|0,138616);g=n;n=0;if(g&1){g=sa()|0;P()|0;va(b|0);Ea(g|0)}else{c[b>>2]=50788;za(b|0,39592,473)}}else a[b+8+3>>0]=d;while(0);Qkb(b,d,e);Ftb(b+(d<<2)|0,0);return}function GK(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b+4>>2]|0;a:do if(!d){e=b;while(1){d=c[e+8>>2]|0;if((c[d>>2]|0)==(e|0))break a;e=d}}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0);if((c[a>>2]|0)==(b|0))c[a>>2]=d;e=a+8|0;c[e>>2]=(c[e>>2]|0)+-1;oj(c[a+4>>2]|0,b);H$a(b+16|0);RCb(b);return d|0}function HK(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b+4>>2]|0;a:do if(!d){e=b;while(1){d=c[e+8>>2]|0;if((c[d>>2]|0)==(e|0))break a;e=d}}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0);if((c[a>>2]|0)==(b|0))c[a>>2]=d;e=a+8|0;c[e>>2]=(c[e>>2]|0)+-1;oj(c[a+4>>2]|0,b);I$a(b+16|0);RCb(b);return d|0}function IK(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b+4>>2]|0;a:do if(!d){e=b;while(1){d=c[e+8>>2]|0;if((c[d>>2]|0)==(e|0))break a;e=d}}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0);if((c[a>>2]|0)==(b|0))c[a>>2]=d;e=a+8|0;c[e>>2]=(c[e>>2]|0)+-1;oj(c[a+4>>2]|0,b);J$a(b+16|0);RCb(b);return d|0}function JK(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b+4>>2]|0;a:do if(!d){e=b;while(1){d=c[e+8>>2]|0;if((c[d>>2]|0)==(e|0))break a;e=d}}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0);if((c[a>>2]|0)==(b|0))c[a>>2]=d;e=a+8|0;c[e>>2]=(c[e>>2]|0)+-1;oj(c[a+4>>2]|0,b);K$a(b+16|0);RCb(b);return d|0}function KK(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b+4>>2]|0;a:do if(!d){e=b;while(1){d=c[e+8>>2]|0;if((c[d>>2]|0)==(e|0))break a;e=d}}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0);if((c[a>>2]|0)==(b|0))c[a>>2]=d;e=a+8|0;c[e>>2]=(c[e>>2]|0)+-1;oj(c[a+4>>2]|0,b);L$a(b+16|0);RCb(b);return d|0}function LK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+192|0;f=g+92|0;e=g;if((c[a+4>>2]|0)==6){f=0;yb=g;return f|0}if(!b){f=1;yb=g;return f|0}VA(f,d,b);do if(!(QGa(f)|0)){n=0;ea(130,e|0,d|0,a|0);d=n;n=0;if(d&1){g=sa()|0;P()|0;Fha(f);Ea(g|0)}else{a=(Hi(e,f)|0)^1;Fha(e);break}}else a=0;while(0);Fha(f);f=a;yb=g;return f|0}function MK(a){a=a|0;var b=0,d=0,e=0;d=a+76|0;IWa(c[d>>2]|0,113892)|0;b=a+64|0;a=0;while(1){e=c[b>>2]|0;if(a>>>0>=(((c[e+144>>2]|0)-(c[e+140>>2]|0)|0)/12|0)>>>0)break;if(a|0)IWa(c[d>>2]|0,139997)|0;e=IWa(c[d>>2]|0,113917)|0;IWa(Wqa(e,(c[(c[b>>2]|0)+140>>2]|0)+(a*12|0)|0)|0,113917)|0;a=a+1|0}IWa(c[d>>2]|0,113919)|0;return}function NK(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=yb;yb=yb+128|0;g=m+124|0;l=m;h=l;i=47140;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[37419]=75;d=-1}else k=4;if((k|0)==4){k=-2-b|0;k=d>>>0>k>>>0?k:d;c[l+48>>2]=k;g=l+20|0;c[g>>2]=b;c[l+44>>2]=b;d=b+k|0;b=l+16|0;c[b>>2]=d;c[l+28>>2]=d;d=IA(l,e,f)|0;if(k){l=c[g>>2]|0;a[l+(((l|0)==(c[b>>2]|0))<<31>>31)>>0]=0}}yb=m;return d|0}function OK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=yb;yb=yb+32|0;d=g+20|0;i=g+8|0;e=g+4|0;f=g;gy(i,b);h=(c[i+8>>2]|0)==1;Khb(i);if(!h){yb=g;return}Gsb(e,WCb(c[a+20>>2]|0)|0);h=c[e>>2]|0;e=Q6a(h,c[b+28>>2]|0)|0;c[f>>2]=c[b+24>>2];i=c[b+32>>2]|0;c[d>>2]=c[f>>2];i=zMa(h,e,nHa(h,d,i,0)|0)|0;Pwb(c[a>>2]|0,i);yb=g;return}function PK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,h=0,i=0;g=yb;yb=yb+16|0;h=g;e=h;c[e>>2]=b;c[e+4>>2]=d;f=+BAb(h);h=leb(f)|0;e=P()|0;i=e&2147483647;if(i>>>0>2146435072|(i|0)==2146435072&h>>>0>0){Heb(a,0,0);yb=g;return}if(SWa(b,d)|0){f=+ib(+f);Heb(a,~~f>>>0,+w(f)>=1.0?(f>0.0?~~+K(+v(f/4294967296.0),4294967295.0)>>>0:~~+I((f-+(~~f>>>0))/4294967296.0)>>>0):0);yb=g;return}if((e|0)<0){Heb(a,0,0);yb=g;return}else{Heb(a,-1,-1);yb=g;return}}function QK(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;f=yb;yb=yb+16|0;d=f;e=b+156|0;if(!(V1a(c[e>>2]|0)|0)){yb=f;return}if(a[b+72>>0]&1)BM(IWa(150620,113766)|0);g=E3(b,3)|0;h=c[b+68>>2]|0;Pwb(d,V1a(c[e>>2]|0)|0);YA(h,c[d>>2]|0)|0;zga(c[b+64>>2]|0,b);gF(b,g);yb=f;return}function RK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=yb;yb=yb+80|0;h=e+48|0;g=e+24|0;f=e;Bqb(h,-2147483648);c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];c[a+16>>2]=c[h+16>>2];pUa(g,-2147483648.0);c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];pUa(f,2147483648.0);c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];yb=e;return}function SK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=yb;yb=yb+80|0;h=e+48|0;g=e+24|0;f=e;Bqb(h,-2147483648);c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];c[a+16>>2]=c[h+16>>2];kEa(g,-2147483649.0);c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];kEa(f,2147483648.0);c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];yb=e;return}function TK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;Zda(e,a,b);b=c[e>>2]|0;e=DQ(a,f,b+16|0)|0;i8(a,c[f>>2]|0,e,b);yb=d;return b|0}function UK(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h+4|0;f=h;g=c[b>>2]|0;if(a[g+72>>0]&1)BM(IWa(150620,113842)|0);wUa(c[c[b+4>>2]>>2]|0,d);g=g+68|0;b=c[g>>2]|0;Pwb(e,3);YA(b,c[e>>2]|0)|0;e=c[g>>2]|0;zz(e,baa(c[d+12>>2]|0)|0);g=c[g>>2]|0;Pwb(f,a[d+20>>0]&1);YA(g,c[f>>2]|0)|0;yb=h;return}function VK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+96|0;d=f;g=Y_a(c[b+4>>2]|0)|0;e=c[c[a+4>>2]>>2]|0;if(g>>>0<(e+1|0)>>>0){yb=f;return 1}else{a=c[a+12>>2]|0;g=X9(b,e)|0;VA(d,pob(c[a+52>>2]|0)|0,g);g=eCb(c[d+88>>2]|0)|0;Fha(d);yb=f;return g|0}return 0}function WK(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=yb;yb=yb+32|0;g=j+16|0;h=j;i=INa(4)|0;c[h>>2]=b;c[h+4>>2]=d;c[h+8>>2]=e;c[h+12>>2]=f;d=0;while(1){if((d|0)==4)break;b=WCb(i)|0;KJa(b,c[h+(d<<2)>>2]|0)|0;d=d+1|0}h=WCb(INa(3)|0)|0;h=KJa(h,WGa(148840)|0)|0;Pwb(g,KJa(KJa(h,dWa(a)|0)|0,i)|0);yb=j;return c[g>>2]|0}function XK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f;c[a>>2]=0;c[a+8>>2]=0;g=a+12|0;c[g>>2]=0;c[a+16>>2]=d;if((c[b+4>>2]|0)==(c[b>>2]|0)){yb=f;return}n=0;da(233,e|0,b|0);d=n;n=0;if(d&1){a=sa()|0;P()|0;b=c[g>>2]|0;c[g>>2]=0;if(!b)Ea(a|0);Vob(b);RCb(b);Ea(a|0)}else{d=c[e>>2]|0;c[e>>2]=0;a=c[g>>2]|0;c[g>>2]=d;if(a|0){Vob(a);RCb(a)}c[e>>2]=0;yb=f;return}}function YK(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;k=yb;yb=yb+32|0;f=k+16|0;i=k;c[i>>2]=d;g=i+4|0;j=b+48|0;l=c[j>>2]|0;c[g>>2]=e-((l|0)!=0&1);h=b+44|0;c[i+8>>2]=c[h>>2];c[i+12>>2]=l;c[f>>2]=c[b+60>>2];c[f+4>>2]=i;c[f+8>>2]=2;f=bqb(Ha(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;yb=k;return f|0}function ZK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;g=h;e=b-a|0;if((e|0)<=4){yb=h;return}Xqb(h+8|0);f=b+-4|0;b=e>>2;while(1){b=b+-1|0;if(a>>>0>=f>>>0)break;Fmb(g,0,b);e=Gx(d,g)|0;if(e|0){e=a+(e<<2)|0;i=c[a>>2]|0;c[a>>2]=c[e>>2];c[e>>2]=i}a=a+4|0}yb=h;return}function _K(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+80|0;b=c[f>>2]|0;xE(a+16|0);d=a+72|0;e=c[d>>2]|0;if((e|0)==(c[a+76>>2]|0))_M(a+68|0,f);else{c[e>>2]=c[f>>2];c[d>>2]=(c[d>>2]|0)+4}jP(b,c[f>>2]|0);b=a+112|0;d=c[b>>2]|0;if((d|0)==(c[a+116>>2]|0)){_M(a+108|0,f);return}else{c[d>>2]=c[f>>2];c[b>>2]=(c[b>>2]|0)+4;return}}function $K(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[a+128>>2]|0;b=c[a+124>>2]|0;while(1){if((b|0)==(e|0))break;d=IWa(150452,107781)|0;IWa(Wm(d,c[b>>2]|0)|0,138977)|0;no(c[b>>2]|0,150452,0);d=yba(a,c[b>>2]|0)|0;if(d|0){f=IWa(150452,107787)|0;SEa(Ym(f,c[d+8>>2]|0)|0,10)|0}b=b+4|0}return}function aL(a,b){a=a|0;b=b|0;var e=0,f=0;MGa(a,Szb(c[(c[a+44>>2]|0)+4>>2]|0)|0,b,129054);Ura(a,c[b+4>>2]|0,b,130486);Ura(a,c[(c[b+8>>2]|0)+4>>2]|0,b,130519);Ura(a,c[(c[b+12>>2]|0)+4>>2]|0,b,130519);f=b+32|0;e=b+16|0;while(1){if((e|0)==(f|0))break;MGa(a,(d[e>>0]|0)<32,b,130549);e=e+1|0}return}function bL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=yb;yb=yb+80|0;h=e+48|0;g=e+24|0;f=e;Heb(h,0,0);c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];c[a+16>>2]=c[h+16>>2];pUa(g,-1.0);c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];pUa(f,18446744073709551616.0);c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];yb=e;return}function cL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=yb;yb=yb+80|0;h=e+48|0;g=e+24|0;f=e;Heb(h,0,0);c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];c[a+16>>2]=c[h+16>>2];kEa(g,-1.0);c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];kEa(f,18446744073709551616.0);c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];yb=e;return}function dL(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=yb;yb=yb+16|0;d=h+8|0;e=h+4|0;f=h;g=b+64|0;if(!(eCb(c[(c[g>>2]|0)+124>>2]|0)|0)){yb=h;return}if(a[b+72>>0]&1)BM(IWa(150620,113649)|0);i=E3(b,8)|0;j=c[b+68>>2]|0;Zsb(f,c[(c[g>>2]|0)+124>>2]|0);c[d>>2]=c[f>>2];Pwb(e,rda(b,d)|0);YA(j,c[e>>2]|0)|0;gF(b,i);yb=h;return}function eL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+80|0;b=c[f>>2]|0;CE(a+16|0);d=a+72|0;e=c[d>>2]|0;if((e|0)==(c[a+76>>2]|0))_M(a+68|0,f);else{c[e>>2]=c[f>>2];c[d>>2]=(c[d>>2]|0)+4}oP(b,c[f>>2]|0);b=a+112|0;d=c[b>>2]|0;if((d|0)==(c[a+116>>2]|0)){_M(a+108|0,f);return}else{c[d>>2]=c[f>>2];c[b>>2]=(c[b>>2]|0)+4;return}}function fL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+32|0;e=f;AB(e,b,d);if(lsb(e)|0){c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];c[a+28>>2]=c[e+28>>2];yb=f;return}else{c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;zsb(a);yb=f;return}}function gL(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=mla(72)|0;c[b>>2]=f;c[b+4>>2]=d+4;g=b+8|0;a[g>>0]=0;b=f+16|0;d=c[e>>2]|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}b=f+32|0;d=b;e=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));tRa(b);a[g>>0]=1;return}function hL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+80|0;b=c[f>>2]|0;DE(a+16|0);d=a+72|0;e=c[d>>2]|0;if((e|0)==(c[a+76>>2]|0))_M(a+68|0,f);else{c[e>>2]=c[f>>2];c[d>>2]=(c[d>>2]|0)+4}oP(b,c[f>>2]|0);b=a+112|0;d=c[b>>2]|0;if((d|0)==(c[a+116>>2]|0)){_M(a+108|0,f);return}else{c[d>>2]=c[f>>2];c[b>>2]=(c[b>>2]|0)+4;return}}function iL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;g=f;c[g>>2]=b;d=a+128|0;e=c[d>>2]|0;if(e>>>0<(c[a+132>>2]|0)>>>0){c[g>>2]=0;c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4;c[g>>2]=0;yb=f;return b|0}n=0;da(1003,a+124|0,g|0);e=n;n=0;if(e&1){a=sa()|0;P()|0;d=c[g>>2]|0;c[g>>2]=0;if(!d)Ea(a|0);Brb(d);RCb(d);Ea(a|0)}else{a=c[g>>2]|0;c[g>>2]=0;if(!a){yb=f;return b|0}Brb(a);RCb(a);yb=f;return b|0}return 0}function jL(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;l=yb;yb=yb+48|0;k=l+24|0;i=l;b=b+44|0;g=c[b>>2]|0;Bqb(i,0);h=k;j=h+24|0;do{a[h>>0]=a[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));k=D7(g,k)|0;k=tVa(c[g>>2]|0,d,k)|0;d=c[b>>2]|0;e=T3a(c[d>>2]|0,e,1)|0;f=T3a(c[c[b>>2]>>2]|0,f,1)|0;f=Uha(g,k,hIa(c[d>>2]|0,11,e,f)|0)|0;yb=l;return f|0}function kL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;h=i+4|0;d=i;c[h>>2]=b;e=b+12|0;f=jqb(c[e>>2]|0)|0;if(!f){yb=i;return}g=f+8|0;if((c[g>>2]|0)==(c[b+8>>2]|0)){yb=i;return}Gsb(d,WCb(c[a+36>>2]|0)|0);d=qVa(c[d>>2]|0,c[g>>2]|0,f)|0;c[e>>2]=d;d=a+48|0;e=c[d>>2]|0;if((e|0)==(c[a+52>>2]|0)){_M(a+44|0,h);yb=i;return}else{c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4;yb=i;return}}function lL(a,b){a=a|0;b=b|0;if(!b)return;lL(a,c[b>>2]|0);lL(a,c[b+4>>2]|0);Nrb(b+16|0);RCb(b);return}function mL(b,c){b=b|0;c=c|0;var d=0,e=0;a:do if((b|0)!=(c|0)){d=a[b>>0]|0;if(d<<24>>24!=95){if(((d<<24>>24)+-48|0)>>>0>=10)break;while(1){b=b+1|0;if((b|0)==(c|0)){b=c;break a}if(((a[b>>0]|0)+-48|0)>>>0>=10)break a}}d=b+1|0;if((d|0)!=(c|0)){d=a[d>>0]|0;if(((d<<24>>24)+-48|0)>>>0<10){b=b+2|0;break}if(d<<24>>24==95){d=b+2|0;while(1){if((d|0)==(c|0))break a;e=a[d>>0]|0;if(((e<<24>>24)+-48|0)>>>0>=10)break;d=d+1|0}return (e<<24>>24==95?d+1|0:b)|0}}}while(0);return b|0}function nL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Tfb(c[b>>2]|0)|0;if(!(c[d+16>>2]|0))ma(104460,104084,166,104473);e=a+84|0;ui(a,d,b,(c[e>>2]|0)+-12|0);d=c[e>>2]|0;b=0;while(1){if((b|0)==-1)break;f=b+-1|0;qMa(d+(f*12|0)|0);b=f}c[e>>2]=d+-12;zea(a+44|0);return}function oL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Tfb(c[b>>2]|0)|0;if(!(c[d+16>>2]|0))ma(104460,104084,166,104473);e=a+84|0;ui(a,d,b,(c[e>>2]|0)+-12|0);d=c[e>>2]|0;b=0;while(1){if((b|0)==-1)break;f=b+-1|0;sMa(d+(f*12|0)|0);b=f}c[e>>2]=d+-12;Bea(a+44|0);return}function pL(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h;b=wrb(b)|0;if(!b)ma(141129,106895,338,107418);if((c[b+12>>2]|0)!=(d|0))if((c[b+16>>2]|0)==(d|0))f=1;else ma(141129,106895,329,107418);else f=0;b=c[e+(f<<2)>>2]|0;c[g>>2]=b;ag(a,b,0)|0;f=a+60|0;e=c[f>>2]|0;if((e|0)==(c[a+64>>2]|0)){_M(a+56|0,g);yb=h;return}else{c[e>>2]=b;c[f>>2]=(c[f>>2]|0)+4;yb=h;return}}function qL(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;f=yb;yb=yb+16|0;d=f;e=b+156|0;if(!(V1a(c[e>>2]|0)|0)){yb=f;return}if(a[b+72>>0]&1)BM(IWa(150620,113461)|0);g=E3(b,10)|0;h=c[b+68>>2]|0;Pwb(d,V1a(c[e>>2]|0)|0);YA(h,c[d>>2]|0)|0;Fia(c[b+64>>2]|0,b);gF(b,g);yb=f;return}function rL(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;j=yb;yb=yb+48|0;i=j+24|0;g=j;k=b+44|0;h=c[k>>2]|0;e=T3a(c[h>>2]|0,e,1)|0;b=T3a(c[c[k>>2]>>2]|0,f,1)|0;b=hIa(c[h>>2]|0,10,e,b)|0;b=tVa(c[h>>2]|0,d,b)|0;d=c[k>>2]|0;Bqb(g,0);e=i;f=g;g=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));k=Uha(h,b,D7(d,i)|0)|0;yb=j;return k|0}function sL(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;f=yb;yb=yb+16|0;d=f;e=b+156|0;if(!(U$a(c[e>>2]|0)|0)){yb=f;return}if(a[b+72>>0]&1)BM(IWa(150620,113702)|0);g=E3(b,6)|0;h=U$a(c[e>>2]|0)|0;e=c[b+68>>2]|0;Pwb(d,h);YA(e,c[d>>2]|0)|0;Pja(c[b+64>>2]|0,b);gF(b,g);yb=f;return}function tL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h+8|0;e=h+4|0;f=h;b=c[b>>2]|0;d=Rqb(b)|0;if(d|0){b=c[d+8>>2]|0;if(!(eCb(b)|0)){yb=h;return}c[e>>2]=b;c[g>>2]=c[e>>2];T5(a+36|0,g);yb=h;return}b=hrb(b)|0;if(!b){yb=h;return}b=c[b+8>>2]|0;if(!(eCb(b)|0)){yb=h;return}c[f>>2]=b;c[g>>2]=c[f>>2];T5(a+36|0,g);yb=h;return}function uL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;g=h;if(Ovb(c[a>>2]|0)|0){g=1;yb=h;return g|0}a=Mqb(a)|0;if(!a){g=0;yb=h;return g|0}e=Wsa(a+8|0)|0;f=P()|0;if(f>>>0>0|(f|0)==0&e>>>0>4294967295){g=0;yb=h;return g|0}a=WCb(b)|0;b=Yeb(e|0,f|0,a|0,0)|0;i=P()|0;if(i>>>0>0|(i|0)==0&b>>>0>4294967295){i=0;yb=h;return i|0}j6a(g,e,f);i=(WCb(c[g>>2]|0)|0)+a|0;i=i>>>0<=(WCb(d)|0)>>>0;yb=h;return i|0}function vL(a,b){a=a|0;b=b|0;switch(c[b+8>>2]|0){case 34:case 26:case 9:case 1:{b=jgb(c[(c[b+12>>2]|0)+4>>2]|0,WCb(c[a+36>>2]|0)|0)|0;return b|0}case 22:case 21:case 18:case 17:case 16:case 47:case 46:case 43:case 42:case 41:{b=jgb(1,WCb(c[a+36>>2]|0)|0)|0;return b|0}case 33:case 32:case 8:case 7:{b=c[b+12>>2]|0;return b|0}case 49:case 48:case 45:case 44:case 40:case 24:case 23:case 20:case 19:case 15:{b=w7(1,1,WCb(c[a+36>>2]|0)|0)|0;return b|0}default:{b=0;return b|0}}return 0}function wL(a){a=a|0;c[a>>2]=44992;Vob(a+168|0);Vob(a+156|0);Vob(a+144|0);Vob(a+132|0);igb(a+96|0);FJa(a+80|0);Khb(a+68|0);uxa(a+56|0);qMa(a+44|0);Hbb(a);return}function xL(a){a=a|0;c[a>>2]=45152;Vob(a+168|0);Vob(a+156|0);Vob(a+144|0);Vob(a+132|0);igb(a+96|0);GJa(a+80|0);Khb(a+68|0);vxa(a+56|0);rMa(a+44|0);Ibb(a);return}function yL(a){a=a|0;c[a>>2]=45072;Vob(a+168|0);Vob(a+156|0);Vob(a+144|0);Vob(a+132|0);igb(a+96|0);HJa(a+80|0);Khb(a+68|0);wxa(a+56|0);sMa(a+44|0);Jbb(a);return}function zL(a){a=a|0;c[a>>2]=45232;Vob(a+168|0);Vob(a+156|0);Vob(a+144|0);Vob(a+132|0);igb(a+96|0);IJa(a+80|0);Khb(a+68|0);xxa(a+56|0);tMa(a+44|0);Kbb(a);return}function AL(a){a=a|0;c[a>>2]=45312;Vob(a+168|0);Vob(a+156|0);Vob(a+144|0);Vob(a+132|0);igb(a+96|0);JJa(a+80|0);Khb(a+68|0);yxa(a+56|0);uMa(a+44|0);Lbb(a);return}function BL(b,d){b=b|0;d=d|0;var e=0;if(a[b+33>>0]&1)BM(IWa(150620,112891)|0);e=d+12|0;T_a(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;e=d+16|0;T_a(b,c[e>>2]|0);if((c[(c[e>>2]|0)+4>>2]|0)==6)return;tI(tI(c[b+28>>2]|0,-2)|0,0)|0;G5(b,4,4,0);return}function CL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;Zda(e,a,b);b=c[e>>2]|0;e=hR(a,f,b+16|0)|0;i8(a,c[f>>2]|0,e,b);yb=d;return b|0}function DL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,1053,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function EL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=yb;yb=yb+80|0;h=e+48|0;g=e+24|0;f=e;Bqb(h,0);c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];c[a+16>>2]=c[h+16>>2];pUa(g,-1.0);c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];pUa(f,4294967296.0);c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];yb=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;e=yb;yb=yb+80|0;h=e+48|0;g=e+24|0;f=e;Bqb(h,0);c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];c[a+16>>2]=c[h+16>>2];kEa(g,-1.0);c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];kEa(f,4294967296.0);c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];yb=e;return}function GL(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(24)|0;c[b>>2]=g;c[b+4>>2]=d+8;d=b+8|0;a[d>>0]=0;n=0;da(73,g+8|0,c[f>>2]|0);f=n;n=0;if(!(f&1)){c[g+20>>2]=0;a[d>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}d=sa()|0;P()|0;c[b>>2]=0;if(!g)Ea(d|0);RCb(g);Ea(d|0)}function HL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=yb;yb=yb+16|0;e=g+8|0;f=g+4|0;i=g;c[f>>2]=b;h=WCb(c[a+36>>2]|0)|0;d=b+24|0;c[i>>2]=c[d>>2];c[e>>2]=c[i>>2];if(Yrb(wQ(h,e)|0)|0){yb=g;return}a=bm((c[a+140>>2]|0)+12|0,d)|0;d=a+4|0;e=c[d>>2]|0;if((e|0)==(c[a+8>>2]|0)){_M(a,f);yb=g;return}else{c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4;yb=g;return}}function IL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+48|0;d=f+24|0;e=f;switch(c[b>>2]|0){case 1:{Bqb(a,c[b+8>>2]|0);yb=f;return}case 2:{e=b+8|0;Heb(a,c[e>>2]|0,c[e+4>>2]|0);yb=f;return}case 3:{Bqb(d,c[b+8>>2]|0);r_a(a,d);yb=f;return}case 4:{d=b+8|0;Heb(e,c[d>>2]|0,c[d+4>>2]|0);qUa(a,e);yb=f;return}case 5:{M0a(a,b+8|0);yb=f;return}case 6:case 0:{ma(141129,55544,74,55620);break}default:ma(141129,55544,76,55620)}}function JL(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;f=a[c>>0]|0;do if(f<<24>>24){b=alb(b,f<<24>>24)|0;if(b){e=a[c+1>>0]|0;if(e<<24>>24)if(a[b+1>>0]|0){d=a[c+2>>0]|0;if(!(d<<24>>24)){b=S9(b,f,e)|0;break}if(a[b+2>>0]|0){if(!(a[c+3>>0]|0)){b=M9(b,f,e,d)|0;break}if(a[b+3>>0]|0)if(!(a[c+4>>0]|0)){b=H5(b,c)|0;break}else{b=Pj(b,c)|0;break}else b=0}else b=0}else b=0}else b=0}while(0);return b|0}function KL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1639,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function LL(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;i=d|d<<8|d<<16|d<<24;g=f-64|0;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 ML(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,4072,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function NL(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}h=Zzb(d)|0;g=e+11|0;f=a[g>>0]|0;f=f<<24>>24<0?c[e+4>>2]|0:f&255;n=0;fa(183,b|0,d|0,h|0,f+h|0);d=n;n=0;if(!(d&1)?(n=0,V(124,b|0,((a[g>>0]|0)<0?c[e>>2]|0:e)|0,f|0)|0,h=n,n=0,!(h&1)):0)return;h=sa()|0;P()|0;Chb(b);Ea(h|0)}function OL(a,b){a=a|0;b=b|0;var d=0,e=0;if((b|0)!=1){if(b+-1&b)b=Gc(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0>e>>>0){Us(a,b);return}if(b>>>0>=e>>>0)return;if(e>>>0>2?(e&e+-1|0)==0:0){d=~~+I(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(d>>>0>=2)d=1<<32-(M(d+-1|0)|0)}else d=Gc(~~+I(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0)|0;b=b>>>0>>0?d:b;if(b>>>0>=e>>>0)return;Us(a,b);return}function PL(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;f=c[b+64>>2]|0;g=c[f+132>>2]|0;f=c[f+128>>2]|0;while(1){if((f|0)==(g|0)){h=12;break}e=Zzb(134057)|0;d=a[f+11>>0]|0;if(d<<24>>24<0)d=c[f+4>>2]|0;else d=d&255;if((e|0)==(d|0)){n=0;d=V(54,f|0,134057,e|0)|0;e=n;n=0;if(e&1){h=8;break}if(d|0)h=10}else h=10;if((h|0)==10){h=0;u3(b,f)}f=f+24|0}if((h|0)==8){h=ta(0)|0;P()|0;yub(h)}else if((h|0)==12)return}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;f=yb;yb=yb+16|0;g=f+4|0;i=f;e=Np(c[a+4>>2]|0)|0;c[i>>2]=e;e=c[a+20>>2]|0;e=Hb[c[(c[e>>2]|0)+8>>2]&255](e,b,1)|0;h=c[b>>2]|0;c[g>>2]=c[i>>2];e=On(HTa(h,g,e)|0,a,b,d)|0;a=c[a+8>>2]|0;if(!a){i=e;yb=f;return i|0}i=Hb[c[(c[a>>2]|0)+8>>2]&255](a,b,d)|0;i=zMa(c[b>>2]|0,e,i)|0;yb=f;return i|0}function RL(a){a=a|0;var b=0,d=0;c[a>>2]=41716;Pdb(a+128|0);Vsa(a+108|0);Vsa(a+88|0);dFa(a+68|0);Pdb(a+48|0);d=a+44|0;b=c[d>>2]|0;c[d>>2]=0;if(!b){gcb(a);return}RCb(b);gcb(a);return}function SL(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h;a[g>>0]=48;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[b+(e<<2)>>2]=0;e=e+1|0}f=d+11|0;e=a[f>>0]|0;e=e<<24>>24<0?c[d+4>>2]|0:e&255;n=0;fa(90,b|0,g|0,1,e+1|0);g=n;n=0;if(!(g&1)?(n=0,V(43,b|0,((a[f>>0]|0)<0?c[d>>2]|0:d)|0,e|0)|0,g=n,n=0,!(g&1)):0){yb=h;return}h=sa()|0;P()|0;Chb(b);Ea(h|0)}function TL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,3100,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function UL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,3374,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function VL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,3255,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function WL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,3493,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function XL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,3612,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function YL(a,b){a=a|0;b=b|0;if(!b)return;YL(a,c[b>>2]|0);YL(a,c[b+4>>2]|0);Nrb(b+16|0);RCb(b);return}function ZL(a,b){a=a|0;b=b|0;b=Jv(a,b)|0;if(!b)return;oR(a,b)|0;return}function _L(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,3064,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function $L(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,3338,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function aM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,3219,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function bM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,3457,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function cM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,3576,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function dM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;g=j+4|0;h=j;i=a+144|0;if(cHa(b,i)|0){yb=j;return}d=c[a+68>>2]|0;d=(c[d+4>>2]|0)-(c[d>>2]|0)|0;c[g>>2]=d;c[h>>2]=b;e=a+132|0;f=c[e>>2]|0;if(f>>>0<(c[a+136>>2]|0)>>>0){c[f>>2]=d;c[f+4>>2]=b;c[e>>2]=(c[e>>2]|0)+8}else bH(a+128|0,g,h);c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];yb=j;return}function eM(a,b){a=a|0;b=b|0;if(!b)return;eM(a,c[b>>2]|0);eM(a,c[b+4>>2]|0);Nrb(b+16|0);RCb(b);return}function fM(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=yb;yb=yb+48|0;g=i+24|0;h=i;if((c[d+16>>2]|0)!=5)ma(112170,111484,923,112193);qIa(g,d);k4(b);f=0;while(1){if((f|0)==16)break;d=1;e=0;while(1){if(!d)break;j=$ka(g,f)|0;d=0;e=a[j>>0]|e}Bqb(h,e<<24>>24);j=Wha(b,f)|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];c[j+16>>2]=c[h+16>>2];f=f+1|0}yb=i;return}function gM(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=a+24|0;f=a+20|0;g=a+8|0;b=0;while(1){if(b>>>0>=(c[d>>2]|0)>>>0)break;e=(c[f>>2]|0)+b|0;e=c[(c[(c[g>>2]|0)+(e>>>10<<2)>>2]|0)+((e&1023)<<2)>>2]|0;if(e|0){fP(e);RCb(e)}b=b+1|0}d=a+48|0;e=a+44|0;f=a+32|0;b=0;while(1){if(b>>>0>=(c[d>>2]|0)>>>0)break;g=(c[e>>2]|0)+b|0;g=c[(c[(c[f>>2]|0)+(g>>>10<<2)>>2]|0)+((g&1023)<<2)>>2]|0;if(g|0)Rb[c[(c[g>>2]|0)+4>>2]&1023](g);b=b+1|0}Gkb(a+28|0);Gkb(a+4|0);return}function hM(a,b){a=a|0;b=b|0;if(!b)return;hM(a,c[b>>2]|0);hM(a,c[b+4>>2]|0);Nrb(b+16|0);RCb(b);return}function iM(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b+4>>2]|0;a:do if(!d){e=b;while(1){d=c[e+8>>2]|0;if((c[d>>2]|0)==(e|0))break a;e=d}}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0);if((c[a>>2]|0)==(b|0))c[a>>2]=d;e=a+8|0;c[e>>2]=(c[e>>2]|0)+-1;oj(c[a+4>>2]|0,b);s7a(b+16|0);RCb(b);return d|0}function jM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=rrb(a,0)|0;if(!(hXa(c[d>>2]|0,c[37214]|0)|0))ma(53302,74885,1595,53345);d=rrb(b,0)|0;if(!(hXa(c[d>>2]|0,c[37197]|0)|0))ma(53364,74885,1596,53345);d=0;while(1){e=rrb(b,1)|0;if(d>>>0>=(K0a(WCb(c[e>>2]|0)|0)|0)>>>0)break;f=rrb(a,2)|0;f=WCb(I7(WCb(I7(WCb(c[f>>2]|0)|0)|0)|0)|0)|0;e=rrb(b,1)|0;e=rrb(c[e>>2]|0,d)|0;KJa(f,c[e>>2]|0)|0;d=d+1|0}return}function kM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-20|0;vR((c[g>>2]|0)+-20|0,h);c[g>>2]=(c[g>>2]|0)+-20;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function lM(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=b+64|0;if(c[e>>2]|0?(Eb[c[(c[b>>2]|0)+24>>2]&511](b)|0)==0:0)if(!(usb(c[e>>2]|0,c[d+8>>2]|0,0)|0)){f=d;e=c[f+4>>2]|0;b=b+72|0;c[b>>2]=c[f>>2];c[b+4>>2]=e;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];return}else{f=a;c[f>>2]=0;c[f+4>>2]=0;f=a+8|0;c[f>>2]=-1;c[f+4>>2]=-1;return}f=a;c[f>>2]=0;c[f+4>>2]=0;f=a+8|0;c[f>>2]=-1;c[f+4>>2]=-1;return}function mM(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;if((-17-d|0)>>>0>>0)ipa();if((a[b+11>>0]|0)<0)k=c[b>>2]|0;else k=b;if(d>>>0<2147483623){i=e+d|0;j=d<<1;i=i>>>0>>0?j:i;i=i>>>0<11?11:i+16&-16}else i=-17;j=Stb(i)|0;if(g|0)dib(j,k,g)|0;e=f-g|0;if(e|0)dib(j+g+h|0,k+g|0,e)|0;if((d|0)!=10)RCb(k);c[b>>2]=j;c[b+8>>2]=i|-2147483648;return}function nM(b,d){b=b|0;d=d|0;var e=0,f=0;f=xmb(b)|0;e=c[d>>2]|0;if((f|0)==(e|0)){f=0;return f|0}f=Vr(b,e)|0;f=$Bb(a[f>>0]|0)|0;e=c[d>>2]|0;if(f){c[d>>2]=e+1;f=ofb(kH(Vr(b,e)|0)|0,0)|0;return f|0}e=Vr(b,e)|0;f=kH(Vr(e,0)|0)|0;if(cub(f,c[37385]|0)|0){f=0;return f|0}c[d>>2]=(c[d>>2]|0)+1;f=ofb(kH(Vr(e,1)|0)|0,0)|0;return f|0}function oM(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b+4>>2]|0;a:do if(!d){e=b;while(1){d=c[e+8>>2]|0;if((c[d>>2]|0)==(e|0))break a;e=d}}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0);if((c[a>>2]|0)==(b|0))c[a>>2]=d;e=a+8|0;c[e>>2]=(c[e>>2]|0)+-1;oj(c[a+4>>2]|0,b);Nrb(b+16|0);RCb(b);return d|0}function pM(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=b+11|0;f=a[i>>0]|0;g=f<<24>>24<0;if(g)h=(c[b+8>>2]&2147483647)+-1|0;else h=10;do if(h>>>0>=e>>>0){if(g)f=c[b>>2]|0;else f=b;Shb(f,d,e)|0;Fsb(f+e|0,0);if((a[i>>0]|0)<0){c[b+4>>2]=e;break}else{a[i>>0]=e;break}}else{if(g)f=c[b+4>>2]|0;else f=f&255;BE(b,h,e-h|0,f,0,f,e,d)}while(0);return}function qM(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=yb;yb=yb+48|0;g=i+24|0;h=i;if((c[d+16>>2]|0)!=5)ma(112170,111484,923,112193);qIa(g,d);k4(b);f=0;while(1){if((f|0)==16)break;d=1;e=0;while(1){if(!d)break;j=$ka(g,f)|0;d=0;e=a[j>>0]|e}Bqb(h,e&255);j=Wha(b,f)|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];c[j+16>>2]=c[h+16>>2];f=f+1|0}yb=i;return}function rM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,2461,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function sM(a){a=a|0;var b=0,d=0;d=yb;yb=yb+48|0;b=d;if(c[37104]|0)IWa(150452,66994)|0;VSa(b,a);a=b+20|0;c[a>>2]=c[37063];c[a+4>>2]=c[37064];c[a+8>>2]=c[37065];c[a+12>>2]=c[37066];c[a+16>>2]=c[37067];n=0;ca(506,b|0);a=n;n=0;if(a&1){d=sa()|0;P()|0;osa(b);Ea(d|0)}n=0;ca(489,b|0);a=n;n=0;if(a&1){d=sa()|0;P()|0;osa(b);Ea(d|0)}else{osa(b);yb=d;return}}function tM(a){a=a|0;var b=0,d=0;d=yb;yb=yb+48|0;b=d;if(c[37104]|0)IWa(150452,67277)|0;VSa(b,a);a=b+20|0;c[a>>2]=c[37063];c[a+4>>2]=c[37064];c[a+8>>2]=c[37065];c[a+12>>2]=c[37066];c[a+16>>2]=c[37067];n=0;ca(488,b|0);a=n;n=0;if(a&1){d=sa()|0;P()|0;osa(b);Ea(d|0)}n=0;ca(489,b|0);a=n;n=0;if(a&1){d=sa()|0;P()|0;osa(b);Ea(d|0)}else{osa(b);yb=d;return}}function uM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;j=c[g>>2]|0;h=d+-8|0;c[j+-8>>2]=c[h>>2];i=d+-4|0;c[j+-4>>2]=c[i>>2];c[h>>2]=0;c[i>>2]=0;c[g>>2]=(c[g>>2]|0)+-8;d=h}h=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=h;h=b+8|0;j=c[f>>2]|0;c[f>>2]=c[h>>2];c[h>>2]=j;h=a+8|0;j=b+12|0;i=c[h>>2]|0;c[h>>2]=c[j>>2];c[j>>2]=i;c[b>>2]=c[g>>2];return}function vM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+32|0;e=f;zsb(a);d=c[d+8>>2]|0;if(d|0?(nz(e,b,d),c[a>>2]=c[e>>2],c[a+4>>2]=c[e+4>>2],c[a+8>>2]=c[e+8>>2],c[a+12>>2]=c[e+12>>2],c[a+16>>2]=c[e+16>>2],c[a+20>>2]=c[e+20>>2],c[a+24>>2]=c[e+24>>2],lsb(a)|0):0){yb=f;return}c[a+24>>2]=c[37374];yb=f;return}function wM(b,e){b=b|0;e=e|0;var f=0,g=0;g=b+4|0;f=e+4|0;b=e+8|0;hG(c[g>>2]|0,c[f>>2]|0,a[b>>0]|0);IWa(c[g>>2]|0,125103)|0;f=c[f>>2]|0;if((f|0)!=6?(b=d[b>>0]|0,(Era(f)|0)!=(b|0)):0)IWa(c[g>>2]|0,98150)|0;b=e+12|0;if(!(WCb(c[b>>2]|0)|0))return;g=IWa(c[g>>2]|0,98135)|0;Ym(g,WCb(c[b>>2]|0)|0)|0;return}function xM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,2115,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function yM(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=b+11|0;f=a[i>>0]|0;h=f<<24>>24<0;if(h){g=(c[b+8>>2]&2147483647)+-1|0;f=c[b+4>>2]|0}else{g=10;f=f&255}if((g-f|0)>>>0>=e>>>0){if(e|0){if(h)g=c[b>>2]|0;else g=b;dib(g+f|0,d,e)|0;f=f+e|0;if((a[i>>0]|0)<0)c[b+4>>2]=f;else a[i>>0]=f;Fsb(g+f|0,0)}}else BE(b,g,f+e-g|0,f,f,0,e,d);return b|0}function zM(a){a=a|0;var b=0,d=0;b=Aqb(a)|0;if(!b){d=0;return d|0}if((c[b+8>>2]|0)!=12){d=0;return d|0}a=Mqb(c[b+16>>2]|0)|0;if(!a){d=0;return d|0}d=a+8|0;if(!(Peb(d)|0)){d=0;return d|0}a=Aqb(c[b+12>>2]|0)|0;if(!a){d=0;return d|0}if((c[a+8>>2]|0)!=10){d=0;return d|0}b=Mqb(c[a+16>>2]|0)|0;if(!b){d=0;return d|0}if(!(yda(d,b+8|0)|0)){d=0;return d|0}d=c[a+12>>2]|0;return d|0}function AM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,1457,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function BM(a){a=a|0;var b=0,d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;anb(d,a+(c[(c[a>>2]|0)+-12>>2]|0)|0);n=0;b=U(66,c[d>>2]|0,151324)|0;f=n;n=0;if(f&1){f=sa()|0;P()|0;XWa(d);Ea(f|0)}n=0;b=U(c[(c[b>>2]|0)+28>>2]|0,b|0,10)|0;f=n;n=0;if(f&1){f=sa()|0;P()|0;XWa(d);Ea(f|0)}else{XWa(d);Mq(a,b)|0;Ju(a)|0;yb=e;return}}function CM(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}g=a[d+11>>0]|0;h=g<<24>>24<0;g=h?c[d+4>>2]|0:g&255;f=Zzb(e)|0;n=0;fa(183,b|0,(h?c[d>>2]|0:d)|0,g|0,g+f|0);d=n;n=0;if(!(d&1)?(n=0,V(124,b|0,e|0,f|0)|0,h=n,n=0,!(h&1)):0)return;h=sa()|0;P()|0;Chb(b);Ea(h|0)}function DM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,2077,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function EM(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;e=h+8|0;f=h+4|0;g=h;if(a[b+33>>0]&1)BM(IWa(150620,113073)|0);T_a(b,c[d+12>>2]|0);i=tI(c[b+28>>2]|0,36)|0;b=c[b+24>>2]|0;c[g>>2]=c[d+8>>2];c[e>>2]=c[g>>2];Pwb(f,Gda(b,e)|0);YA(i,c[f>>2]|0)|0;yb=h;return}function FM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,1182,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function GM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,2371,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function HM(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=yb;yb=yb+32|0;f=h+24|0;i=h+8|0;g=h;cna(i,WCb(c[b+36>>2]|0)|0,b+48|0,e);n=0;ea(161,a|0,i|0,d|0);e=n;n=0;if(!(e&1)){yb=h;return}b=ta(35104)|0;i=P()|0;if((i|0)!=(db(35104)|0))Ea(b|0);pa(b|0)|0;c[g>>2]=c[37329];c[f>>2]=c[g>>2];Ulb(a,f);qa();yb=h;return}function IM(a){a=a|0;var b=0,d=0;$8a(a+108|0);$8a(a+96|0);Pdb(a+76|0);l1a(a+64|0);D2a(a+52|0);d=a+48|0;b=c[d>>2]|0;c[d>>2]=0;if(!b){d=a+28|0;Vob(d);d=a+16|0;Vob(d);return}Vob(b);RCb(b);d=a+28|0;Vob(d);d=a+16|0;Vob(d);return}function JM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,2647,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function KM(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}h=Zzb(d)|0;g=e+11|0;f=a[g>>0]|0;f=f<<24>>24<0?c[e+4>>2]|0:f&255;n=0;fa(90,b|0,d|0,h|0,f+h|0);d=n;n=0;if(!(d&1)?(n=0,V(43,b|0,((a[g>>0]|0)<0?c[e>>2]|0:e)|0,f|0)|0,h=n,n=0,!(h&1)):0)return;h=sa()|0;P()|0;Chb(b);Ea(h|0)}function LM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,2325,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function MM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+96|0;e=g;f=b+44|0;b=b+12|0;d=_g(a,c[f>>2]|0,(c[b>>2]|0)!=0)|0;if(!d)Gjb(c[f>>2]|0);else c[f>>2]=d;if(c[b>>2]|0){yb=g;return}a=pob(c[a+40>>2]|0)|0;VA(e,a,c[f>>2]|0);a=QGa(e)|0;Fha(e);if(a){yb=g;return}Gjb(c[f>>2]|0);yb=g;return}function NM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,2684,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function OM(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;b=g;d=a+28|0;if((c[d>>2]|0)==(c[a+24>>2]|0)){yb=g;return}Gsb(b,c[a+16>>2]|0);f=vJa(c[b>>2]|0,0)|0;d=c[d>>2]|0;e=f+12|0;b=c[a+24>>2]|0;while(1){if((b|0)==(d|0))break;Wla(e,c[b>>2]|0);b=b+4|0}a=a+20|0;Wla(e,c[(c[a>>2]|0)+44>>2]|0);uZa(f,c[(c[(c[a>>2]|0)+44>>2]|0)+4>>2]|0);c[(c[a>>2]|0)+44>>2]=f;yb=g;return}function PM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=b;b=zI(a,b)|0;if(!b){yb=f;return}d=c[b+12>>2]|0;switch(c[d+8>>2]|0){case 0:{ma(86056,86070,43,86104);break}case 1:break;default:lqa(d,e)}LR(a,b)|0;yb=f;return}function QM(b,d){b=b|0;d=d|0;if(a[b+33>>0]&1)BM(IWa(150620,112733)|0);T_a(b,c[d+8>>2]|0);T_a(b,c[d+12>>2]|0);T_a(b,c[d+16>>2]|0);b=c[b+28>>2]|0;if((c[d+4>>2]|0)==6){Ygb(b);return}else{tI(b,27)|0;return}}function RM(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;i=b+4|0;j=c[i>>2]|0;f=c[a>>2]|0;h=d;g=h-f|0;e=j+(0-(g>>2)<<2)|0;c[i>>2]=e;if((g|0)>0)Uv(e|0,f|0,g|0)|0;f=a+4|0;g=b+8|0;e=(c[f>>2]|0)-h|0;if((e|0)>0){Uv(c[g>>2]|0,d|0,e|0)|0;c[g>>2]=(c[g>>2]|0)+(e>>2<<2)}h=c[a>>2]|0;c[a>>2]=c[i>>2];c[i>>2]=h;h=c[f>>2]|0;c[f>>2]=c[g>>2];c[g>>2]=h;h=a+8|0;d=b+12|0;a=c[h>>2]|0;c[h>>2]=c[d>>2];c[d>>2]=a;c[b>>2]=c[i>>2];return j|0}function SM(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=mla(28)|0;c[b>>2]=h;c[b+4>>2]=d+8;d=b+8|0;a[d>>0]=0;c[h+8>>2]=c[f>>2];n=0;da(1448,h+12|0,g|0);g=n;n=0;if(!(g&1)){a[d>>0]=1;c[h+4>>2]=e;c[h>>2]=0;return}d=sa()|0;P()|0;c[b>>2]=0;if(!h)Ea(d|0);RCb(h);Ea(d|0)}function TM(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+80|0;d=c[e>>2]|0;NC(a+16|0);oP(d,c[e>>2]|0);d=(Tfb(c[b>>2]|0)|0)+16|0;d=(c[d>>2]|0)==0;b=a+100|0;oP(c[(c[b>>2]|0)+-4>>2]|0,c[e>>2]|0);a=c[b>>2]|0;if(d){e=a;e=e+-4|0;c[b>>2]=e;return}e=a+-4|0;c[b>>2]=e;e=e+-4|0;c[b>>2]=e;return}function UM(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=yb;yb=yb+16|0;f=g;if(a[b+12>>0]&1)BM(Zm(IWa(150620,116937)|0,e&255)|0);ci(f,b,IF(b)|0);c[d+8>>2]=c[f>>2];if(e<<24>>24==13){e=rl(b)|0;c[d+16>>2]=e}if(!(c[f+4>>2]|0)){Cva(d);yb=g;return}f=rl(b)|0;c[d+12>>2]=f;Cva(d);yb=g;return}function VM(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;j=J(e,d)|0;e=(d|0)==0?0:e;g=f+74|0;h=a[g>>0]|0;a[g>>0]=h+255|h;g=f+4|0;h=c[g>>2]|0;i=(c[f+8>>2]|0)-h|0;if((i|0)>0){i=i>>>0>>0?i:j;Uv(b|0,h|0,i|0)|0;c[g>>2]=(c[g>>2]|0)+i;g=j-i|0;b=b+i|0}else g=j;a:do if(g){i=f+32|0;while(1){if(I5(f)|0)break;h=Hb[c[i>>2]&255](f,b,g)|0;if((h+1|0)>>>0<2)break;g=g-h|0;if(!g)break a;else b=b+h|0}e=((j-g|0)>>>0)/(d>>>0)|0}while(0);return e|0}function WM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1952,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function XM(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;if((xmb(b)|0)==(d|0)){e=Ekb(c[a+4>>2]|0)|0;return e|0}if((xmb(b)|0)==(d+1|0)){e=$db(a,Vr(b,d)|0)|0;return e|0}f=Eeb(c[a+4>>2]|0)|0;g=f+12|0;while(1){if(d>>>0>=(xmb(b)|0)>>>0)break;Wla(g,$db(a,Vr(b,d)|0)|0);d=d+1|0}uZa(f,e);e=f;return e|0}function YM(a,b){a=a|0;b=b|0;var c=0;c=Kqb(a)|0;if(c|0){if(b|0)ma(77666,77561,219,77677);b=c+12|0;return b|0}c=Aqb(a)|0;if(c|0)switch(b|0){case 0:{b=c+12|0;return b|0}case 1:{b=c+16|0;return b|0}default:ma(141129,77561,227,77677)}c=yqb(a)|0;if(!c)ma(141129,77561,240,77677);switch(b|0){case 0:{b=c+16|0;return b|0}case 1:{b=c+8|0;return b|0}case 2:{b=c+12|0;return b|0}default:ma(141129,77561,237,77677)}return 0}function ZM(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;T_a(a,c[b+8>>2]|0);T_a(a,c[b+12>>2]|0);T_a(a,c[b+16>>2]|0);b=a+28|0;tI(c[b>>2]|0,-4)|0;a=c[b>>2]|0;Pwb(e,10);YA(a,c[e>>2]|0)|0;tI(tI(c[b>>2]|0,0)|0,0)|0;yb=d;return}function _M(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;g=i;e=c[a>>2]|0;h=(c[a+4>>2]|0)-e>>2;f=h+1|0;d=YBb()|0;if(f>>>0>d>>>0)Apa();e=(c[a+8>>2]|0)-e|0;if(e>>2>>>0>>1>>>0){d=e>>1;d=d>>>0>>0?f:d}aS(g,d,h,a+8|0);h=g+8|0;f=c[h>>2]|0;c[f>>2]=c[b>>2];c[h>>2]=f+4;ZU(a,g);Mwa(g);yb=i;return}function $M(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;j=yb;yb=yb+16|0;h=j;do if((b|0)==(d|0)){c[e>>2]=4;b=0}else{if((a[b>>0]|0)==45){c[e>>2]=4;b=0;break}i=c[37419]|0;c[37419]=0;t8a()|0;g=Okb(b,h,f)|0;b=P()|0;f=c[37419]|0;if(!f)c[37419]=i;do if((c[h>>2]|0)==(d|0))if(b>>>0>0|(b|0)==0&g>>>0>65535|(f|0)==34){c[e>>2]=4;b=-1;break}else{b=g&65535;break}else{c[e>>2]=4;b=0}while(0)}while(0);yb=j;return b|0}function aN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+48|0;d=f+24|0;e=f;switch(c[b+16>>2]|0){case 1:{Bqb(a,0-(c[b>>2]|0)|0);yb=f;return}case 2:{e=b;Heb(a,Ndb(0,0,c[e>>2]|0,c[e+4>>2]|0)|0,P()|0);yb=f;return}case 3:{Bqb(d,c[b>>2]^-2147483648);r_a(a,d);yb=f;return}case 4:{d=b;Heb(e,c[d>>2]|0,c[d+4>>2]^-2147483648);qUa(a,e);yb=f;return}case 6:case 0:case 5:{ma(141129,111484,415,112e3);break}default:ma(141129,111484,417,112e3)}}function bN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,3137,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function cN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,3411,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function dN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,3292,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function eN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,3530,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function fN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,3649,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function gN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,2276,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function hN(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=yb;yb=yb+16|0;g=i+4|0;h=i;a[b+9>>0]=0;fy(b,f)|0;if(a[b+8>>0]&1){yb=i;return}f=L3(b,f)|0;IWa(Wqa(f,d)|0,126796)|0;c[h>>2]=c[e>>2];c[g>>2]=c[h>>2];HIa(g,f)|0;yb=i;return}function iN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;g=h+8|0;f=h;i=(Bs(a,c[b+28>>2]|0)|0)+6|0;d=b+8|0;nrb(g,d);Hib(f,d);d=g+4|0;e=c[f>>2]|0;f=c[f+4>>2]|0;b=i;while(1){if(!(dhb(c[g>>2]|0,c[d>>2]|0,e,f)|0))break;i=Qab(g)|0;i=b+(Bs(a,c[i>>2]|0)|0)|0;hob(g);b=i}yb=h;return b|0}function jN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,94,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function kN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,2952,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function lN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=yb;yb=yb+32|0;f=g;a=Mqb(a)|0;if(!a){yb=g;return}a=a+8|0;d=Peb(a)|0;e=WCb(c[b>>2]|0)|0;h=Yeb(d|0,((d|0)<0)<<31>>31|0,e|0,0)|0;i=P()|0;if(!((d|e|0)>-1&(i>>>0<0|(i|0)==0&h>>>0<2147483648))){yb=g;return}Bqb(f,d+e|0);c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];c[a+16>>2]=c[f+16>>2];G1a(b,0,0)|0;yb=g;return}function mN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,1797,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function nN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1371,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function oN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h+12|0;f=h;g=_b(a,b)|0;c[e>>2]=g;b=c[b+36>>2]|0;if(!b){yb=h;return g|0}d=a+84|0;if(!(c[d>>2]|0)){yb=h;return g|0}Jp(f,a,b);g=_l((c[d>>2]|0)+76|0,e)|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];g=c[e>>2]|0;yb=h;return g|0}function pN(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=yb;yb=yb+32|0;g=h;f=Mqb(d)|0;if(f|0){d=g;f=f+8|0;e=d+24|0;do{a[d>>0]=a[f>>0]|0;d=d+1|0;f=f+1|0}while((d|0)<(e|0));b=IX(b,g)|0;yb=h;return b|0}f=jqb(d)|0;if(!f){b=WU(b,d)|0;yb=h;return b|0}else{b=c[e+(c[f+8>>2]<<2)>>2]|0;yb=h;return b|0}return 0}function qN(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+32|0;h=j;f=c[b>>2]|0;i=(c[b+4>>2]|0)-f|0;g=i+1|0;e=ZBb()|0;if(g>>>0>e>>>0)Apa();f=(c[b+8>>2]|0)-f|0;if(f>>>0>>1>>>0){e=f<<1;e=e>>>0>>0?g:e}Ira(h,e,i,b+8|0);i=h+8|0;g=c[i>>2]|0;a[g>>0]=a[d>>0]|0;c[i>>2]=g+1;GV(b,h);Nwa(h);yb=j;return}function rN(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;if(d&2048){a[b>>0]=43;b=b+1|0}if(d&1024){a[b>>0]=35;b=b+1|0}g=d&260;e=d&16384;f=(g|0)==260;if(f)h=0;else{a[b>>0]=46;a[b+1>>0]=42;h=1;b=b+2|0}while(1){d=a[c>>0]|0;if(!(d<<24>>24))break;a[b>>0]=d;c=c+1|0;b=b+1|0}a:do switch(g&511){case 4:{d=e>>>9&255^102;break}case 256:{d=e>>>9&255^101;break}default:{d=e>>>9&255;if(f){d=d^97;break a}else{d=d^103;break a}}}while(0);a[b>>0]=d;return h|0}function sN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,439,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function tN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1988,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function uN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1329,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function vN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1755,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function wN(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=yb;yb=yb+16|0;f=g;if(!(a[b+33>>0]&1))e=b+28|0;else{i=IWa(150620,113175)|0;e=b+28|0;h=c[e>>2]|0;BM(Ym(i,(c[h+4>>2]|0)-(c[h>>2]|0)+1|0)|0)}i=tI(c[e>>2]|0,32)|0;h=O8(b+44|0,d+8|0)|0;Pwb(f,c[h>>2]|0);YA(i,c[f>>2]|0)|0;yb=g;return}function xN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,478,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function yN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,2722,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function zN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,514,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function AN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,2607,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function BN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,2422,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function CN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,175,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function DN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1529,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function EN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1143,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function FN(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;b=C8(a+36|0,b)|0;if((b|0)==(a+40|0))return;g=b+24|0;f=(c[g>>2]|0)+d|0;c[g>>2]=f;if((f|0)<=-1)ma(79092,79112,171,79144);g=c[b+20>>2]|0;if(!g)return;if(!f){pD(a,g);return}if(!((d|0)==1&(f|0)==1))return;if((c[g+4>>2]|0)!=6)return;if(!e)b=0;else b=c[e+4>>2]|0;ROa(a,g,b);return}function GN(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;a[b+53>>0]=1;do if((c[b+4>>2]|0)==(e|0)){a[b+52>>0]=1;g=b+16|0;e=c[g>>2]|0;if(!e){c[g>>2]=d;c[b+24>>2]=f;c[b+36>>2]=1;if(!((f|0)==1?(c[b+48>>2]|0)==1:0))break;a[b+54>>0]=1;break}if((e|0)!=(d|0)){f=b+36|0;c[f>>2]=(c[f>>2]|0)+1;a[b+54>>0]=1;break}g=b+24|0;e=c[g>>2]|0;if((e|0)==2){c[g>>2]=f;e=f}if((e|0)==1?(c[b+48>>2]|0)==1:0)a[b+54>>0]=1}while(0);return}function HN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,2569,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function IN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,3026,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function JN(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b+4>>2]|0;a:do if(!d){e=b;while(1){d=c[e+8>>2]|0;if((c[d>>2]|0)==(e|0))break a;e=d}}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0);if((c[a>>2]|0)==(b|0))c[a>>2]=d;e=a+8|0;c[e>>2]=(c[e>>2]|0)+-1;oj(c[a+4>>2]|0,b);Ogb(b+16|0);RCb(b);return d|0}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;f=b+8|0;j=f+3|0;h=a[j>>0]|0;i=h<<24>>24<0;if(i)g=(c[f>>2]&2147483647)+-1|0;else g=1;do if(g>>>0>=e>>>0){if(i)f=c[b>>2]|0;else f=b;Lkb(f,d,e);Ftb(f+(e<<2)|0,0);if((a[j>>0]|0)<0){c[b+4>>2]=e;break}else{a[j>>0]=e;break}}else{if(i)f=c[b+4>>2]|0;else f=h&255;Nx(b,g,e-g|0,f,0,f,e,d)}while(0);return b|0}function LN(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=yb;yb=yb+16|0;h=f;g=mla(24)|0;c[b>>2]=g;c[b+4>>2]=d+8;d=g+8|0;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];a[b+8>>0]=1;c[h>>2]=c[g+8>>2];e=pH(h,4)|0;c[g+4>>2]=e;c[g>>2]=0;yb=f;return}function MN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,2875,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function NN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,4108,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function ON(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1601,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function PN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1565,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function QN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1411,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function RN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1257,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function SN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,2913,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function TN(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=b+11|0;e=a[h>>0]|0;f=e<<24>>24<0;if(f){g=c[b+4>>2]|0;e=(c[b+8>>2]&2147483647)+-1|0}else{g=e&255;e=10}if((g|0)==(e|0)){mM(b,e,1,e,e,0);if((a[h>>0]|0)<0)e=8;else e=7}else if(f)e=8;else e=7;if((e|0)==7)a[h>>0]=g+1;else if((e|0)==8){h=c[b>>2]|0;c[b+4>>2]=g+1;b=h}h=b+g|0;Fsb(h,d);Fsb(h+1|0,0);return}function UN(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;do if(!(dub(b,c[d+8>>2]|0)|0)){if(dub(b,c[d>>2]|0)|0){if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;c[h>>2]=e;g=d+40|0;c[g>>2]=(c[g>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break}if((f|0)==1)c[d+32>>2]=1}}else IPa(d,e,f);while(0);return}function VN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,700,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function WN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,2758,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function XN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,3862,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function YN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,3825,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function ZN(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=(c[a+4>>2]|0)+68|0;c[e>>2]=c[a+12>>2];e=Nm(f,e)|0;f=e+4|0;d=c[f>>2]|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;if((c[b>>2]|0)==(c[a>>2]|0)){g=5;break}b=b+4|0}if((g|0)==5)ma(81314,81381,83,81422);if((d|0)==(c[e+8>>2]|0)){_M(e,a);yb=h;return}else{c[d>>2]=c[a>>2];c[f>>2]=(c[f>>2]|0)+4;yb=h;return}}function _N(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do if(!(dub(b,c[d+8>>2]|0)|0)){h=c[b+12>>2]|0;g=b+16+(h<<3)|0;Bja(b+16|0,d,e,f);if((h|0)>1){h=d+54|0;b=b+24|0;do{Bja(b,d,e,f);if(a[h>>0]|0)break a;b=b+8|0}while(b>>>0>>0)}}else l6(d,e,f);while(0);return}function $N(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+64|0;d=c[e>>2]|0;OE(a);yO(d,c[e>>2]|0);d=(Tfb(c[b>>2]|0)|0)+16|0;d=(c[d>>2]|0)==0;b=a+84|0;yO(c[(c[b>>2]|0)+-4>>2]|0,c[e>>2]|0);a=c[b>>2]|0;if(d){e=a;e=e+-4|0;c[b>>2]=e;return}e=a+-4|0;c[b>>2]=e;e=e+-4|0;c[b>>2]=e;return}function aO(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=yb;yb=yb+96|0;d=e;switch(c|0){case 1:{Bqb(a,b);yb=e;return}case 2:{Heb(a,b,((b|0)<0)<<31>>31);yb=e;return}case 3:{pUa(a,+(b|0));yb=e;return}case 4:{kEa(a,+(b|0));yb=e;return}case 5:{Bqb(d,b);Bqb(d+24|0,0);Bqb(d+48|0,0);Bqb(d+72|0,0);Iab(a,d);yb=e;return}case 6:case 0:{ma(141129,78105,74,78128);break}default:ma(141129,78105,76,78128)}}function bO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,2238,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function cO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1293,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function dO(a){a=a|0;var b=0,d=0;d=yb;yb=yb+16|0;b=d;switch(a|0){case 25:{Ftb(b,c[37134]|0);break}case 27:{Ftb(b,c[37135]|0);break}case 26:{Ftb(b,c[37136]|0);break}case 28:{Ftb(b,c[37137]|0);break}case 29:{Ftb(b,c[37130]|0);break}case 31:{Ftb(b,c[37131]|0);break}case 30:{Ftb(b,c[37132]|0);break}case 32:{Ftb(b,c[37133]|0);break}default:Cub(b)}yb=d;return c[b>>2]|0}function eO(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);switch(c[b+8>>2]|0){case 1:{_Va(a);e=uXa(b+16|0,0)|0;sV(a,c[e>>2]|0);y9(a);yb=d;return}case 0:{SEa(c[a>>2]|0,41)|0;yb=d;return}default:{yb=d;return}}}function fO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=mla(40)|0;c[b>>2]=f;c[b+4>>2]=d+4;d=b+8|0;a[d>>0]=0;n=0;da(73,f+16|0,c[e>>2]|0);e=n;n=0;if(!(e&1)){c[f+28>>2]=0;c[f+32>>2]=0;c[f+36>>2]=0;a[d>>0]=1;return}d=sa()|0;P()|0;c[b>>2]=0;if(!f)Ea(d|0);RCb(f);Ea(d|0)}function gO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,736,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function hO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,566,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function iO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,3775,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function jO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,2988,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function kO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,2532,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function lO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,2199,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function mO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,2040,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function nO(a){a=a|0;var b=0;x2a(a);c[a>>2]=41716;b=a+44|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;g[a+64>>2]=1.0;b=a+68|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+84>>2]=1.0;b=a+88|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+104>>2]=1.0;b=a+108|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+124>>2]=1.0;b=a+128|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+144>>2]=1.0;return}function oO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,958,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function pO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,3901,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function qO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1718,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function rO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1009,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function sO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g;f=a+60|0;d=c[f>>2]|0;if((c[a+56>>2]|0)==(d|0))ma(113289,112765,436,113397);c[f>>2]=d+-4;tI(c[a+28>>2]|0,5)|0;Ftb(e,c[37121]|0);d=c[f>>2]|0;if(d>>>0<(c[a+64>>2]|0)>>>0){c[d>>2]=c[e>>2];c[f>>2]=(c[f>>2]|0)+4}else _M(a+56|0,e);Ww(a,c[b+16>>2]|0);yb=g;return}function tO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;d=f+4|0;e=f;if(c[37104]|0){IWa(150452,56350)|0;$ha(b,150452);IWa(150452,56341)|0}if(!b)ma(56392,55544,355,56405);Rfb(148272);n=0;da(211,e|0,b|0);b=n;n=0;if(b&1){f=sa()|0;P()|0;KZa(148272);Ea(f|0)}else{c[d>>2]=c[e>>2];pG(a,d);KZa(148272);yb=f;return}}function uO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1914,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function vO(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+16|0;e=g+4|0;f=g;if(!(a[(c[b+44>>2]|0)+1>>0]&1)){yb=g;return}h=WCb(c[b+36>>2]|0)|0;c[f>>2]=c[d+8>>2];c[e>>2]=c[f>>2];e=EEa(h,e)|0;if(!(pHa(b,(e|0)!=0,d,128832)|0)){yb=g;return}pHa(b,(a[e+20>>0]&1)!=0,d,128909)|0;_ra(b,c[(c[d+12>>2]|0)+4>>2]|0,c[e+12>>2]|0,d);yb=g;return}function wO(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;h=j;do if((b|0)==(d|0)){c[e>>2]=4;b=0}else{if((a[b>>0]|0)==45){c[e>>2]=4;b=0;break}i=c[37419]|0;c[37419]=0;t8a()|0;b=Okb(b,h,f)|0;f=P()|0;g=c[37419]|0;if(!g)c[37419]=i;do if((c[h>>2]|0)==(d|0))if(f>>>0>0|(f|0)==0&b>>>0>4294967295|(g|0)==34){c[e>>2]=4;b=-1;break}else break;else{c[e>>2]=4;b=0}while(0)}while(0);yb=j;return b|0}function xO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=b+8|0;j=f+3|0;g=a[j>>0]|0;i=g<<24>>24<0;if(i){f=(c[f>>2]&2147483647)+-1|0;h=c[b+4>>2]|0}else{f=1;h=g&255}if((f-h|0)>>>0>=e>>>0){if(e|0){if(i)g=c[b>>2]|0;else g=b;Rkb(g+(h<<2)|0,d,e);f=h+e|0;if((a[j>>0]|0)<0)c[b+4>>2]=f;else a[j>>0]=f;Ftb(g+(f<<2)|0,0)}}else Nx(b,f,h+e-f|0,h,h,0,e,d);return b|0}function yO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h+4|0;d=h;c[g>>2]=a;c[d>>2]=b;if((a|0)==0|(b|0)==0){yb=h;return}e=a+36|0;f=c[e>>2]|0;if((f|0)==(c[a+40>>2]|0))_M(a+32|0,d);else{c[f>>2]=b;c[e>>2]=(c[e>>2]|0)+4}d=b+48|0;e=c[d>>2]|0;if((e|0)==(c[b+52>>2]|0)){_M(b+44|0,g);yb=h;return}else{c[e>>2]=a;c[d>>2]=(c[d>>2]|0)+4;yb=h;return}}function zO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,883,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function AO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,845,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function BO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1093,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function CO(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;a:do if((b|0)!=(c|0)){switch(a[b>>0]|0){case 104:{e=b+1|0;d=M5(e,c)|0;if((d|0)==(e|0)|(d|0)==(c|0))break a;return ((a[d>>0]|0)==95?d+1|0:b)|0}case 118:break;default:break a}f=b+1|0;d=M5(f,c)|0;if((!((d|0)==(f|0)|(d|0)==(c|0))?(a[d>>0]|0)==95:0)?(f=d+1|0,e=M5(f,c)|0,!((e|0)==(f|0)|(e|0)==(c|0))):0)b=(a[e>>0]|0)==95?e+1|0:b}while(0);return b|0}function DO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}g=a[d+11>>0]|0;h=g<<24>>24<0;g=h?c[d+4>>2]|0:g&255;f=Zzb(e)|0;n=0;fa(90,b|0,(h?c[d>>2]|0:d)|0,g|0,g+f|0);d=n;n=0;if(!(d&1)?(n=0,V(43,b|0,e|0,f|0)|0,h=n,n=0,!(h&1)):0)return;h=sa()|0;P()|0;Chb(b);Ea(h|0)}function EO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-12|0;aja((c[g>>2]|0)+-12|0,h);c[g>>2]=(c[g>>2]|0)+-12;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function FO(b){b=b|0;var d=0,e=0;c[b>>2]=46120;n=0;S(296,b|0)|0;e=n;n=0;if(e&1?(e=ta(0)|0,P()|0,pa(e|0)|0,n=0,ba(5),e=n,n=0,e&1):0){e=ta(0)|0;P()|0;olb(b);yub(e)}if(a[b+96>>0]&1?(d=c[b+32>>2]|0,d|0):0)PCb(d);if(!(a[b+97>>0]&1)){olb(b);return}d=c[b+56>>2]|0;if(!d){olb(b);return}PCb(d);olb(b);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;h=yb;yb=yb+432|0;e=h+48|0;f=h+24|0;g=h;if((c[d+16>>2]|0)!=1)ma(112236,111484,1150,112260);rjb(e,b);b=0;while(1){if((b|0)==16)break;i=e+(b*24|0)|0;Bqb(g,(Peb(d)|0)&7);waa(f,i,g);c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];b=b+1|0}cab(a,e);yb=h;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;h=yb;yb=yb+432|0;e=h+48|0;f=h+24|0;g=h;if((c[d+16>>2]|0)!=1)ma(112236,111484,1150,112260);sjb(e,b);b=0;while(1){if((b|0)==16)break;i=e+(b*24|0)|0;Bqb(g,(Peb(d)|0)&7);Qaa(f,i,g);c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];b=b+1|0}cab(a,e);yb=h;return}function IO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,292,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function JO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,3698,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function KO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;v1(a,d,e,f,g);ihb(a,b);n=0;ca(554,a|0);g=n;n=0;if((!(g&1)?(n=0,da(4021,a|0,c[(c[a+40>>2]|0)+44>>2]|0),g=n,n=0,!(g&1)):0)?(n=0,ca(555,a|0),g=n,n=0,!(g&1)):0)return;g=sa()|0;P()|0;fxa(a);Ea(g|0)}function LO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g;f=a+60|0;d=c[f>>2]|0;if((c[a+56>>2]|0)==(d|0))ma(113289,112765,436,113397);c[f>>2]=d+-4;tI(c[a+28>>2]|0,5)|0;Ftb(e,c[37121]|0);d=c[f>>2]|0;if(d>>>0<(c[a+64>>2]|0)>>>0){c[d>>2]=c[e>>2];c[f>>2]=(c[f>>2]|0)+4}else _M(a+56|0,e);hF(c[b+16>>2]|0);yb=g;return}function MO(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0;i=d[b+8>>0]|0;h=WCb(c[b+12>>2]|0)|0;g=Cda(a,c[b+16>>2]|0)|0;f=Cda(a,c[b+20>>2]|0)|0;e=Cda(a,c[b+24>>2]|0)|0;return Hfa(c[a+32>>2]|0,i,h,g,f,e,c[b+4>>2]|0)|0}function NO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1675,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function OO(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+240|0;e=h+48|0;f=h+24|0;g=h;if((c[d+16>>2]|0)!=1)ma(112236,111484,1150,112260);Cjb(e,b);b=0;while(1){if((b|0)==8)break;i=e+(b*24|0)|0;Bqb(g,(Peb(d)|0)&15);waa(f,i,g);c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];b=b+1|0}Hab(a,e);yb=h;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;h=yb;yb=yb+240|0;e=h+48|0;f=h+24|0;g=h;if((c[d+16>>2]|0)!=1)ma(112236,111484,1150,112260);Djb(e,b);b=0;while(1){if((b|0)==8)break;i=e+(b*24|0)|0;Bqb(g,(Peb(d)|0)&15);Qaa(f,i,g);c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];b=b+1|0}Hab(a,e);yb=h;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;h=yb;yb=yb+432|0;e=h+48|0;f=h+24|0;g=h;if((c[d+16>>2]|0)!=1)ma(112236,111484,1150,112260);rjb(e,b);b=0;while(1){if((b|0)==16)break;i=e+(b*24|0)|0;Bqb(g,(Peb(d)|0)&7);dba(f,i,g);c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];b=b+1|0}cab(a,e);yb=h;return}function RO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,135,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function SO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,1493,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function TO(a,b){a=a|0;b=b|0;wIa(a,Szb(c[(c[a+44>>2]|0)+4>>2]|0)|0,b);kra(a,c[b+4>>2]|0,b,130576);kra(a,c[(c[b+8>>2]|0)+4>>2]|0,b,130519);kra(a,c[(c[b+12>>2]|0)+4>>2]|0,b,130519);kra(a,c[(c[b+16>>2]|0)+4>>2]|0,b,130519);return}function UO(a,b){a=a|0;b=b|0;if(!b)return;UO(a,c[b>>2]|0);UO(a,c[b+4>>2]|0);H$a(b+16|0);RCb(b);return}function VO(a,b){a=a|0;b=b|0;if(!b)return;VO(a,c[b>>2]|0);VO(a,c[b+4>>2]|0);I$a(b+16|0);RCb(b);return}function WO(a,b){a=a|0;b=b|0;if(!b)return;WO(a,c[b>>2]|0);WO(a,c[b+4>>2]|0);J$a(b+16|0);RCb(b);return}function XO(a,b){a=a|0;b=b|0;if(!b)return;XO(a,c[b>>2]|0);XO(a,c[b+4>>2]|0);K$a(b+16|0);RCb(b);return}function YO(a,b){a=a|0;b=b|0;if(!b)return;YO(a,c[b>>2]|0);YO(a,c[b+4>>2]|0);L$a(b+16|0);RCb(b);return}function ZO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,3973,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function _O(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,624,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function $O(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+240|0;e=h+48|0;f=h+24|0;g=h;if((c[d+16>>2]|0)!=1)ma(112236,111484,1150,112260);Cjb(e,b);b=0;while(1){if((b|0)==8)break;i=e+(b*24|0)|0;Bqb(g,(Peb(d)|0)&15);dba(f,i,g);c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];b=b+1|0}Hab(a,e);yb=h;return}function aP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+144|0;e=h+48|0;f=h+24|0;g=h;if((c[d+16>>2]|0)!=1)ma(112236,111484,1150,112260);Ljb(e,b);b=0;while(1){if((b|0)==4)break;i=e+(b*24|0)|0;Bqb(g,(Peb(d)|0)&31);waa(f,i,g);c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];b=b+1|0}Iab(a,e);yb=h;return}function bP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+144|0;e=h+48|0;f=h+24|0;g=h;if((c[d+16>>2]|0)!=1)ma(112236,111484,1150,112260);Ljb(e,b);b=0;while(1){if((b|0)==4)break;i=e+(b*24|0)|0;Bqb(g,(Peb(d)|0)&31);Qaa(f,i,g);c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];b=b+1|0}Iab(a,e);yb=h;return}function cP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;g=a+8|0;h=a+4|0;if((c[g>>2]|0)!=(c[h>>2]|0))ma(134729,134747,430,134777);IW(a,3937,b);d=f+4|0;e=a+-16|0;while(1){if((c[g>>2]|0)==(c[h>>2]|0)){b=8;break}HLa(f,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[f>>2]&8191](e,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=i;return}}function dP(a,b){a=a|0;b=b|0;XJa(a,Jvb(c[(c[a+44>>2]|0)+4>>2]|0)|0,b);ppa(a,c[b+4>>2]|0,0,b,131099);ppa(a,c[(c[b+8>>2]|0)+4>>2]|0,1,b,131131);ppa(a,c[(c[b+12>>2]|0)+4>>2]|0,1,b,131163);ppa(a,c[(c[b+16>>2]|0)+4>>2]|0,1,b,131196);return}function eP(a,b){a=a|0;b=b|0;YJa(a,Jvb(c[(c[a+44>>2]|0)+4>>2]|0)|0,b);qpa(a,c[b+4>>2]|0,0,b,130969);qpa(a,c[(c[b+8>>2]|0)+4>>2]|0,1,b,131001);qpa(a,c[(c[b+12>>2]|0)+4>>2]|0,1,b,131033);qpa(a,c[(c[b+16>>2]|0)+4>>2]|0,1,b,131067);return}function fP(a){a=a|0;var b=0,d=0,e=0,f=0;f=a+48|0;b=WCb(c[a+64>>2]|0)|0;d=Ryb(f)|0;while(1){e=b;if((d|0)==(e|0))break;b=c[b+12>>2]|0;if(b|0){S4a(b);RCb(b)}b=c[e+4>>2]|0}b=WCb(c[a+16>>2]|0)|0;d=Ryb(a)|0;while(1){e=b;if((d|0)==(e|0))break;b=c[b+12>>2]|0;if(b|0){S4a(b);RCb(b)}b=c[e+4>>2]|0}SZa(a+72|0);ASa(f);SZa(a+24|0);ASa(a);return}function gP(a){a=a|0;var b=0,d=0,e=0;d=a+12|0;if(!(c[d>>2]|0))return;e=a+8|0;Bba(c[e>>2]|0);c[e>>2]=0;e=c[a+4>>2]|0;b=0;while(1){if((b|0)==(e|0))break;c[(c[a>>2]|0)+(b<<2)>>2]=0;b=b+1|0}c[d>>2]=0;return}function hP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+96|0;e=h+48|0;f=h+24|0;g=h;if((c[d+16>>2]|0)!=1)ma(112236,111484,1150,112260);Kjb(e,b);b=0;while(1){if((b|0)==2)break;i=e+(b*24|0)|0;Bqb(g,(Peb(d)|0)&63);waa(f,i,g);c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];b=b+1|0}Jab(a,e);yb=h;return}function iP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+96|0;e=h+48|0;f=h+24|0;g=h;if((c[d+16>>2]|0)!=1)ma(112236,111484,1150,112260);Kjb(e,b);b=0;while(1){if((b|0)==2)break;i=e+(b*24|0)|0;Bqb(g,(Peb(d)|0)&63);Qaa(f,i,g);c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];b=b+1|0}Jab(a,e);yb=h;return}function jP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h+4|0;d=h;c[g>>2]=a;c[d>>2]=b;if((a|0)==0|(b|0)==0){yb=h;return}e=a+24|0;f=c[e>>2]|0;if((f|0)==(c[a+28>>2]|0))_M(a+20|0,d);else{c[f>>2]=b;c[e>>2]=(c[e>>2]|0)+4}d=b+36|0;e=c[d>>2]|0;if((e|0)==(c[b+40>>2]|0)){_M(b+32|0,g);yb=h;return}else{c[e>>2]=a;c[d>>2]=(c[d>>2]|0)+4;yb=h;return}}function kP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,3736,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function lP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+144|0;e=h+48|0;f=h+24|0;g=h;if((c[d+16>>2]|0)!=1)ma(112236,111484,1150,112260);Ljb(e,b);b=0;while(1){if((b|0)==4)break;i=e+(b*24|0)|0;Bqb(g,(Peb(d)|0)&31);dba(f,i,g);c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];b=b+1|0}Iab(a,e);yb=h;return}function mP(a){a=a|0;ypa(a+104|0);Vob(a+92|0);Vob(a+80|0);Gfa(a+68|0);Vob(a+52|0);iqa(a+40|0);igb(a);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;h=yb;yb=yb+96|0;e=h+48|0;f=h+24|0;g=h;if((c[d+16>>2]|0)!=1)ma(112236,111484,1150,112260);Kjb(e,b);b=0;while(1){if((b|0)==2)break;i=e+(b*24|0)|0;Bqb(g,(Peb(d)|0)&63);dba(f,i,g);c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];b=b+1|0}Jab(a,e);yb=h;return}function oP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;g=h+4|0;d=h;c[g>>2]=a;c[d>>2]=b;if((a|0)==0|(b|0)==0){yb=h;return}e=a+40|0;f=c[e>>2]|0;if((f|0)==(c[a+44>>2]|0))_M(a+36|0,d);else{c[f>>2]=b;c[e>>2]=(c[e>>2]|0)+4}d=b+52|0;e=c[d>>2]|0;if((e|0)==(c[b+56>>2]|0)){_M(b+48|0,g);yb=h;return}else{c[e>>2]=a;c[d>>2]=(c[d>>2]|0)+4;yb=h;return}}function pP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,335,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function qP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,1142,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function rP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-4|0;i=(c[g>>2]|0)+-4|0;j=c[h>>2]|0;c[h>>2]=0;c[i>>2]=j;c[g>>2]=(c[g>>2]|0)+-4;d=h}h=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=h;h=b+8|0;j=c[f>>2]|0;c[f>>2]=c[h>>2];c[h>>2]=j;h=a+8|0;j=b+12|0;i=c[h>>2]|0;c[h>>2]=c[j>>2];c[j>>2]=i;c[b>>2]=c[g>>2];return}function sP(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=b+11|0;f=a[i>>0]|0;g=f<<24>>24<0;if(g)h=(c[b+8>>2]&2147483647)+-1|0;else h=10;do if(h>>>0>=e>>>0){if(g)f=c[b>>2]|0;else f=b;Shb(f,d,e)|0;Fsb(f+e|0,0);if((a[i>>0]|0)<0){c[b+4>>2]=e;break}else{a[i>>0]=e;break}}else{if(g)f=c[b+4>>2]|0;else f=f&255;dG(b,h,e-h|0,f,0,f,e,d)}while(0);return b|0}function tP(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(40)|0;c[b>>2]=g;c[b+4>>2]=d+8;d=g+8|0;f=c[f>>2]|0;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];c[d+20>>2]=c[f+20>>2];c[g+32>>2]=0;a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function uP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=a;if(c[37104]|0){f=IWa(150452,70019)|0;a=O8(148204,d)|0;IWa(Ym(IWa(Ym(f,c[a>>2]|0)|0,57662)|0,b)|0,56341)|0;a=c[d>>2]|0}d=c[a+8>>2]|0;if((c[a+12>>2]|0)-d>>2>>>0>b>>>0){yb=e;return c[d+(b<<2)>>2]|0}else ma(70066,55544,2708,70092);return 0}function vP(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=yb;yb=yb+16|0;f=h+4|0;g=h;if(c[37104]|0)IWa(IWa(IWa(IWa(IWa(IWa(IWa(150452,65793)|0,b)|0,65788)|0,d)|0,65788)|0,e)|0,65627)|0;Zsb(f,d);c[a+48>>2]=c[f>>2];Zsb(g,e);c[a+52>>2]=c[g>>2];yb=h;return}function wP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-40|0;RF((c[g>>2]|0)+-40|0,h);c[g>>2]=(c[g>>2]|0)+-40;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function xP(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+80|0;d=c[e>>2]|0;xE(a+16|0);jP(d,c[e>>2]|0);d=(Tfb(c[b>>2]|0)|0)+16|0;d=(c[d>>2]|0)==0;b=a+100|0;jP(c[(c[b>>2]|0)+-4>>2]|0,c[e>>2]|0);a=c[b>>2]|0;if(d){e=a;e=e+-4|0;c[b>>2]=e;return}e=a+-4|0;c[b>>2]=e;e=e+-4|0;c[b>>2]=e;return}function yP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,772,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function zP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,385,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function AP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,255,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function BP(b,d){b=b|0;d=d|0;var e=0;ZJa(b,Xxb(c[(c[b+44>>2]|0)+4>>2]|0)|0,d);e=c[b+36>>2]|0;WCb(e)|0;nJa(b,(a[e+120>>0]&1)==0,d);fsa(b,c[d+4>>2]|0,d,130188);fsa(b,c[(c[d+12>>2]|0)+4>>2]|0,d,130218);fsa(b,c[(c[d+16>>2]|0)+4>>2]|0,d,130254);return}function CP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,660,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function DP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=a;if(c[37104]|0){f=IWa(150452,70285)|0;a=O8(148204,d)|0;IWa(Ym(IWa(Ym(f,c[a>>2]|0)|0,57662)|0,b)|0,56341)|0;a=c[d>>2]|0}d=c[a+16>>2]|0;if((c[a+20>>2]|0)-d>>2>>>0>b>>>0){yb=e;return c[d+(b<<2)>>2]|0}else ma(70323,55544,2750,70349);return 0}function EP(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+8|0;d=b+8|0;g=c[e>>2]|0;c[e>>2]=c[d>>2];c[d>>2]=g;g=a;h=c[g>>2]|0;g=c[g+4>>2]|0;j=b;i=c[j+4>>2]|0;f=a;c[f>>2]=c[j>>2];c[f+4>>2]=i;f=b;c[f>>2]=h;c[f+4>>2]=g;if(!(c[e>>2]|0)){c[a>>2]=a;c[a+4>>2]=a}else{c[c[a+4>>2]>>2]=a;c[(c[a>>2]|0)+4>>2]=a}if(!(c[d>>2]|0)){c[b>>2]=b;c[b+4>>2]=b;return}else{c[c[b+4>>2]>>2]=b;c[(c[b>>2]|0)+4>>2]=b;return}}function FP(a,b){a=a|0;b=b|0;if(!b)return;FP(a,c[b>>2]|0);FP(a,c[b+4>>2]|0);rXa(b+16|0);RCb(b);return}function GP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[a+4>>2]|0;g=c[b>>2]|0;f=c[b+4>>2]|0;e=b+4|0;a=d;b=d;a:while(1){if(!a){a=0;h=10;break}d=c[a+16>>2]|0;do if((g|0)<(d|0))h=6;else{if((d|0)>=(g|0)){if(Bfb(f,a+20|0)|0){h=6;break}if(!(Bfb(c[a+20>>2]|0,e)|0)){a=1;h=10;break a}}a=b+4|0}while(0);if((h|0)==6)h=0;b=c[a>>2]|0;a=b}if((h|0)==10)return a|0;return 0}function HP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+48|0;d=f+24|0;e=f;switch(c[b+16>>2]|0){case 1:{Bqb(a,c[b>>2]&2147483647);yb=f;return}case 2:{e=b;Heb(a,c[e>>2]|0,c[e+4>>2]&2147483647);yb=f;return}case 3:{Bqb(d,c[b>>2]&2147483647);r_a(a,d);yb=f;return}case 4:{d=b;Heb(e,c[d>>2]|0,c[d+4>>2]&2147483647);qUa(a,e);yb=f;return}case 6:case 0:case 5:{ma(141129,111484,428,112004);break}default:ma(141129,111484,430,112004)}}function IP(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=oa(20)|0;n=0;da(73,d|0,b|0);b=n;n=0;if(!(b&1)){n=0;fa(134,e|0,d|0,0,c[a+36>>2]|0);b=n;n=0;if(b&1)b=1;else{n=0;ea(122,e|0,31856,511);n=0;b=0}a=sa()|0;P()|0;Chb(d);if(!b){e=a;Ea(e|0)}}else{a=sa()|0;P()|0}va(e|0);e=a;Ea(e|0)}function JP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=a;if(c[37104]|0){f=IWa(150452,70453)|0;a=O8(148204,d)|0;IWa(Ym(IWa(Ym(f,c[a>>2]|0)|0,57662)|0,b)|0,56341)|0;a=c[d>>2]|0}d=c[a+28>>2]|0;if((c[a+32>>2]|0)-d>>2>>>0>b>>>0){yb=e;return c[d+(b<<2)>>2]|0}else ma(70489,55544,2773,70513);return 0}function KP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,2839,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function LP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,2802,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function MP(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+80|0;d=c[e>>2]|0;CE(a+16|0);oP(d,c[e>>2]|0);d=(Tfb(c[b>>2]|0)|0)+16|0;d=(c[d>>2]|0)==0;b=a+100|0;oP(c[(c[b>>2]|0)+-4>>2]|0,c[e>>2]|0);a=c[b>>2]|0;if(d){e=a;e=e+-4|0;c[b>>2]=e;return}e=a+-4|0;c[b>>2]=e;e=e+-4|0;c[b>>2]=e;return}function NP(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=d;f=c[g+4>>2]|0;e=b;c[e>>2]=c[g>>2];c[e+4>>2]=f;e=b+8|0;f=d+8|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];if((b|0)==(d|0)){f=d+36|0;f=a[f>>0]|0;f=f&1;g=b+36|0;a[g>>0]=f;return}kw(b+24|0,c[d+24>>2]|0,c[d+28>>2]|0);f=d+36|0;f=a[f>>0]|0;f=f&1;g=b+36|0;a[g>>0]=f;return}function OP(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=yb;yb=yb+16|0;h=k;do if((b|0)==(d|0)){c[e>>2]=4;f=0;b=0}else{if((a[b>>0]|0)==45){c[e>>2]=4;f=0;b=0;break}i=c[37419]|0;c[37419]=0;t8a()|0;b=Okb(b,h,f)|0;f=P()|0;g=c[37419]|0;if(!g)c[37419]=i;if((c[h>>2]|0)==(d|0)){if((g|0)==34){b=-1;f=-1;j=8}}else{b=0;f=0;j=8}if((j|0)==8)c[e>>2]=4}while(0);O(f|0);yb=k;return b|0}function PP(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g;f=c[d>>2]|0;pv(e,b,d);d=c[e>>2]|0;c[e>>2]=0;if(!d){yb=g;return f|0}if(a[e+8>>0]&1)s1a(d+8|0);RCb(d);yb=g;return f|0}function QP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,1839,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function RP(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+80|0;d=c[e>>2]|0;DE(a+16|0);oP(d,c[e>>2]|0);d=(Tfb(c[b>>2]|0)|0)+16|0;d=(c[d>>2]|0)==0;b=a+100|0;oP(c[(c[b>>2]|0)+-4>>2]|0,c[e>>2]|0);a=c[b>>2]|0;if(d){e=a;e=e+-4|0;c[b>>2]=e;return}e=a+-4|0;c[b>>2]=e;e=e+-4|0;c[b>>2]=e;return}function SP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h+8|0;f=h;g=INa(2)|0;c[f>>2]=b;c[f+4>>2]=d;d=0;while(1){if((d|0)==2)break;b=WCb(g)|0;KJa(b,c[f+(d<<2)>>2]|0)|0;d=d+1|0}f=WCb(INa(3)|0)|0;f=KJa(f,WGa(148840)|0)|0;Pwb(e,KJa(KJa(f,dWa(a)|0)|0,g)|0);yb=h;return c[e>>2]|0}function TP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,3181,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function UP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=yb;yb=yb+96|0;f=g;b=iqb(b)|0;if(!b){f=0;yb=g;return f|0}d=c[b+8>>2]|0;e=c[a+4>>2]|0;if((ulb(c[e+24>>2]|0,d)|0?(h=c[(c[c[a+8>>2]>>2]|0)+(d<<2)>>2]|0,(h|0)==(erb(c[e+48>>2]|0,d)|0)):0)?(VA(f,c[a+12>>2]|0,c[b+12>>2]|0),h=QGa(f)|0,Fha(f),!h):0){h=b;yb=g;return h|0}h=0;yb=g;return h|0}function VP(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+4|0;Obb(c[d>>2]|0,134438)|0;a=b+8|0;if(eCb(c[a>>2]|0)|0){e=SEa(c[d>>2]|0,32)|0;mpa(e,c[a>>2]|0)|0}a=b+4|0;if(!(vub(c[a>>2]|0)|0))return;e=IWa(c[d>>2]|0,98311)|0;SEa(IWa(e,ala(c[a>>2]|0)|0)|0,41)|0;return}function WP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,2421,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function XP(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=b+11|0;f=a[i>>0]|0;h=f<<24>>24<0;if(h){g=(c[b+8>>2]&2147483647)+-1|0;f=c[b+4>>2]|0}else{g=10;f=f&255}if((g-f|0)>>>0>=e>>>0){if(e|0){if(h)g=c[b>>2]|0;else g=b;dib(g+f|0,d,e)|0;f=f+e|0;if((a[i>>0]|0)<0)c[b+4>>2]=f;else a[i>>0]=f;Fsb(g+f|0,0)}}else dG(b,g,f+e-g|0,f,f,0,e,d);return b|0}function YP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,809,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function ZP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,1838,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function _P(b){b=b|0;var d=0,e=0,f=0,g=0;f=c[b+64>>2]|0;g=c[f+132>>2]|0;f=c[f+128>>2]|0;while(1){if((f|0)==(g|0)){d=12;break}e=Zzb(134057)|0;d=a[f+11>>0]|0;if(d<<24>>24<0)d=c[f+4>>2]|0;else d=d&255;if((e|0)==(d|0)){n=0;d=V(54,f|0,134057,e|0)|0;e=n;n=0;if(e&1){d=8;break}if(!d)u3(b,f)}f=f+24|0}if((d|0)==8){g=ta(0)|0;P()|0;yub(g)}else if((d|0)==12)return}function $P(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;e=c[a+8>>2]|0;g=c[a>>2]|0;f=c[g>>2]|0;c[g>>2]=f+1;g=a+4|0;b=c[c[g>>2]>>2]|0;if(f>>>0>=b>>>0)return 1;d=c[(c[(c[e>>2]|0)+24>>2]|0)+(f<<2)>>2]|0;if(Yrb(d)|0){g=b;f=f+1|0;g=(f|0)==(g|0);g=g&1;return g|0}a=c[a+12>>2]|0;b=c[a+4>>2]|0;a=c[a>>2]|0;while(1){if((a|0)==(b|0))break;cu(e,c[a>>2]|0,d);a=a+4|0}g=c[c[g>>2]>>2]|0;f=f+1|0;g=(f|0)==(g|0);g=g&1;return g|0}function aQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,921,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function bQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,2151,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function cQ(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;T_a(a,c[b+8>>2]|0);T_a(a,c[b+12>>2]|0);T_a(a,c[b+16>>2]|0);b=a+28|0;tI(c[b>>2]|0,-4)|0;a=c[b>>2]|0;Pwb(e,11);YA(a,c[e>>2]|0)|0;tI(c[b>>2]|0,0)|0;yb=d;return}function dQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;while(1){e=a;if((a|0)==(b|0)){f=11;break}if(VK(d,a)|0)break;a=a+12|0}if((f|0)==11)return a|0;while(1){a=a+12|0;if((a|0)==(b|0))break;if(!(VK(d,a)|0)){c[e>>2]=c[a>>2];c[e+4>>2]=c[a+4>>2];c[e+8>>2]=c[a+8>>2];e=e+12|0}}d=e;return d|0}function eQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;f=a+8|0;g=a+4|0;if((c[f>>2]|0)!=(c[g>>2]|0))ma(134729,134747,430,134777);IW(a,4148,b);d=e+4|0;while(1){if((c[f>>2]|0)==(c[g>>2]|0)){b=8;break}HLa(e,a);b=c[d>>2]|0;c[a>>2]=b;if(!(c[b>>2]|0)){b=6;break}Sb[c[e>>2]&8191](a,b)}if((b|0)==6)ma(134782,134747,435,134777);else if((b|0)==8){yb=h;return}}function fQ(a,b){a=a|0;b=+b;var d=0,e=0;d=irb(b)|0;if((d&2147483647)>>>0<=2139095040){ww(a,b);return}IWa(IWa(a,(d|0)<0?140051:151778)|0,135443)|0;d=Bwa(b)|0;if(!d)return;e=IWa(a,111718)|0;Mpb(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);Ym(e,d)|0;Npb(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function gQ(a){a=a|0;var b=0,d=0,e=0;b=c[a+16>>2]|0;a:do if(b){d=c[(c[a+12>>2]|0)+4>>2]|0;e=c[b+4>>2]|0;do if((d|0)!=(e|0)){if((vub(d)|0)&(e|0)==6){b=a+4|0;c[b>>2]=d;break}b=a+4|0;if((vub(e)|0)&(d|0)==6){c[b>>2]=e;d=e;break}else{c[b>>2]=0;break a}}else{b=a+4|0;c[b>>2]=d}while(0);if(d)return}else{b=a+4|0;c[b>>2]=0}while(0);if((c[(c[a+8>>2]|0)+4>>2]|0)!=6)return;c[b>>2]=6;return}function hQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;d=f;if(NF(a+108|0,b+8|0)|0)ma(83147,81381,257,127709);e=b+4|0;if((c[e>>2]|0)!=2){yb=f;return}c[e>>2]=1;pT(d,a,c[b+12>>2]|0);n=0;ea(147,a|0,b|0,d|0);e=n;n=0;if(e&1){f=sa()|0;P()|0;lNa(d);Ea(f|0)}lNa(d);yb=f;return}function iQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g+8|0;e=g+4|0;f=g;if((c[b+8>>2]|0)!=(c[a+24>>2]|0)){yb=g;return}b=Peb((ffb(c[b+12>>2]|0)|0)+8|0)|0;if((b|0)!=(c[a+28>>2]|0)){yb=g;return}Gsb(e,WCb(c[a+20>>2]|0)|0);c[f>>2]=c[a+32>>2];e=c[e>>2]|0;c[d>>2]=c[f>>2];f=nHa(e,d,0,0)|0;Pwb(c[a>>2]|0,f);yb=g;return}function jQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;while(1){e=a;if((a|0)==(b|0)){f=11;break}if(tY(d,a)|0)break;a=a+12|0}if((f|0)==11)return a|0;while(1){a=a+12|0;if((a|0)==(b|0))break;if(!(tY(d,a)|0)){c[e>>2]=c[a>>2];c[e+4>>2]=c[a+4>>2];c[e+8>>2]=c[a+8>>2];e=e+12|0}}d=e;return d|0}function kQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=yb;yb=yb+16|0;d=i;h=c[(c[c[c[b>>2]>>2]>>2]|0)+4>>2]|0;Gsb(d,WCb(c[a+36>>2]|0)|0);e=cCa(WCb(c[a+32>>2]|0)|0,h)|0;d=c[d>>2]|0;f=tVa(d,e,c[c[c[b>>2]>>2]>>2]|0)|0;g=c[b+4>>2]|0;a=c[b>>2]|0;while(1){if((a|0)==(g|0))break;b=c[a>>2]|0;j=T3a(d,e,h)|0;c[b>>2]=j;a=a+4|0}yb=i;return f|0}function lQ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b5(a);c[a+116>>2]=b;c[a+120>>2]=d;Vkb(a,e);n=0;da(373,a|0,e|0);d=n;n=0;if(!(d&1)?(n=0,da(374,a|0,e|0),e=n,n=0,!(e&1)):0)return;e=sa()|0;P()|0;$Q(a);Ea(e|0)}function mQ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+48|0;i=j+24|0;f=j;h=pVa(c[b>>2]|0,23,d)|0;d=pVa(c[b>>2]|0,23,e)|0;Heb(f,32,0);e=i;g=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));i=D7(b,i)|0;i=hIa(c[b>>2]|0,35,d,i)|0;b=hIa(c[b>>2]|0,33,h,i)|0;yb=j;return b|0}function nQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=d+12|0;e=a+24|0;d=d+8|0;while(1){tw(a,b,c[f>>2]|0);if(!(lsb(a)|0)){d=5;break}if(!(dub(c[e>>2]|0,c[d>>2]|0)|0)){d=5;break}}if((d|0)==5)return}function oQ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=b+8|0;i=f+3|0;e=a[i>>0]|0;g=e<<24>>24<0;if(g){h=c[b+4>>2]|0;e=(c[f>>2]&2147483647)+-1|0}else{h=e&255;e=1}if((h|0)==(e|0)){rD(b,e,1,e,e);if((a[i>>0]|0)<0)e=8;else e=7}else if(g)e=8;else e=7;if((e|0)==7)a[i>>0]=h+1;else if((e|0)==8){i=c[b>>2]|0;c[b+4>>2]=h+1;b=i}i=b+(h<<2)|0;Ftb(i,d);Ftb(i+4|0,0);return}function pQ(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;l=yb;yb=yb+32|0;e=l+16|0;j=l;g=0;while(1){if((g|0)==2)break;UB(d+(g*24|0)|0,j);h=j;k=c[h>>2]|0;h=c[h+4>>2]|0;i=g<<3;f=0;while(1){if((f|0)==8)break;n=U4a(k|0,h|0,f<<3|0)|0;P()|0;m=$ka(e,i+f|0)|0;a[m>>0]=n;f=f+1|0}g=g+1|0}f=b+16|0;do{a[b>>0]=a[e>>0]|0;b=b+1|0;e=e+1|0}while((b|0)<(f|0));yb=l;return}function qQ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;g=i;h=a+4|0;c[h>>2]=b;f=jqb(b)|0;if(f|0){c[a>>2]=c[f+8>>2];yb=i;return}f=iqb(b)|0;if(!f){d=cCa(d,c[b+4>>2]|0)|0;c[a>>2]=d;Gsb(g,e);g=qVa(c[g>>2]|0,c[a>>2]|0,c[h>>2]|0)|0;c[h>>2]=g;yb=i;return}else{c[a>>2]=c[f+8>>2];yb=i;return}}function rQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=yb;yb=yb+16|0;g=f+4|0;e=f;c[g>>2]=b;b=oC(a+56|0,g)|0;if(!b){g=d;yb=f;return g|0}h=b+12|0;Gsb(e,WCb(c[a+36>>2]|0)|0);g=JEa(c[e>>2]|0,h)|0;c[b+16>>2]=c[h>>2];Wla(g+12|0,d);_u(g);yb=f;return g|0}function sQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g+4|0;e=g;f=C8(a+176|0,b)|0;if((f|0)!=(a+180|0)){yb=g;return c[f+20>>2]|0}cqb();n=0;ca(491,135073);g=n;n=0;if((!(g&1)?(c[e>>2]=c[b>>2],n=0,c[d>>2]=c[e>>2],ca(498,d|0),g=n,n=0,!(g&1)):0)?(n=0,ca(491,135044),g=n,n=0,!(g&1)):0)iSa();sa()|0;P()|0;iSa();return 0}function tQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=yb;yb=yb+16|0;f=e+8|0;g=e+4|0;i=e;h=Ria()|0;KJa(WCb(b)|0,h)|0;b=dWa(c[37153]|0)|0;c[g>>2]=c[d+8>>2];c[f>>2]=c[g>>2];g=Vf(a,f,0)|0;c[i>>2]=c[d+4>>2];c[f>>2]=c[i>>2];KQ(h,g,Q5(b,Vf(a,f,0)|0)|0);yb=e;return}function uQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g+4|0;e=g;f=C8(a+64|0,b)|0;if((f|0)!=(a+68|0)){yb=g;return c[f+20>>2]|0}cqb();n=0;ca(491,135018);g=n;n=0;if((!(g&1)?(c[e>>2]=c[b>>2],n=0,c[d>>2]=c[e>>2],ca(498,d|0),g=n,n=0,!(g&1)):0)?(n=0,ca(491,135044),g=n,n=0,!(g&1)):0)iSa();sa()|0;P()|0;iSa();return 0}function vQ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=yb;yb=yb+80|0;f=g;J7(f,a,b,d);n=0;e=V(44,f|0,c[d+44>>2]|0,e|0)|0;d=n;n=0;if(d&1){g=sa()|0;P()|0;Vva(f);Ea(g|0)}else{Vva(f);yb=g;return e|0}return 0}function wQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g+4|0;e=g;f=C8(a+200|0,b)|0;if((f|0)!=(a+204|0)){yb=g;return c[f+20>>2]|0}cqb();n=0;ca(491,135099);g=n;n=0;if((!(g&1)?(c[e>>2]=c[b>>2],n=0,c[d>>2]=c[e>>2],ca(498,d|0),g=n,n=0,!(g&1)):0)?(n=0,ca(491,135044),g=n,n=0,!(g&1)):0)iSa();sa()|0;P()|0;iSa();return 0}function xQ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;b=h;d=c[a+80>>2]|0;if(!d){yb=h;return}e=WCb(c[a+16>>2]|0)|0;c[b>>2]=e;f=d+28|0;g=c[f>>2]|0;if(g>>>0<(c[d+32>>2]|0)>>>0){Xlb(g,e);c[f>>2]=(c[f>>2]|0)+16}else _G(d+24|0,b);f=c[b>>2]|0;g=rm(a+184|0,b)|0;c[g>>2]=f;yb=h;return}function yQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g+8|0;f=g;e=b+8|0;c[d>>2]=1;c[d+4>>2]=c[e>>2];if(GP(a+40|0,d)|0){yb=g;return}c[f>>2]=1;b=a+32|0;d=c[b>>2]|0;if(d>>>0<(c[a+36>>2]|0)>>>0){c[d>>2]=1;c[d+4>>2]=c[e>>2];c[b>>2]=(c[b>>2]|0)+8;yb=g;return}else{bH(a+28|0,f,e);yb=g;return}}function zQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;f=h+4|0;g=h;j6a(g,(WCb(c[a+32>>2]|0)|0)<<16,0);if((c[b+16>>2]|0)==1){e=Peb(b)|0;b=e;e=((e|0)<0)<<31>>31}else{b=$Xa(b)|0;e=P()|0}up(a,b,e,(WCb(c[g>>2]|0)|0)-d|0,0,67861);j6a(f,b,e);yb=h;return c[f>>2]|0}function AQ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;b=g+4|0;d=g;e=a+36|0;Pwb(d,c[e>>2]|0);d=Dpb(c[d>>2]|0)|0;d=hDa(c[e>>2]|0,d)|0;c[b>>2]=d;e=a+4|0;f=c[e>>2]|0;if(f>>>0<(c[a+8>>2]|0)>>>0){c[f>>2]=d;c[e>>2]=(c[e>>2]|0)+4;yb=g;return}else{_M(a,b);yb=g;return}}function BQ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g;T_a(b,c[d+8>>2]|0);T_a(b,c[d+12>>2]|0);f=b+28|0;b=tI(c[f>>2]|0,-3)|0;Pwb(e,3);YA(b,c[e>>2]|0)|0;e=d+32|0;b=d+16|0;while(1){if((b|0)==(e|0))break;Hmb(c[f>>2]|0,a[b>>0]|0);b=b+1|0}yb=g;return}function CQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g+4|0;e=g;f=C8(a+212|0,b)|0;if((f|0)!=(a+216|0)){yb=g;return c[f+20>>2]|0}cqb();n=0;ca(491,135121);g=n;n=0;if((!(g&1)?(c[e>>2]=c[b>>2],n=0,c[d>>2]=c[e>>2],ca(498,d|0),g=n,n=0,!(g&1)):0)?(n=0,ca(491,135044),g=n,n=0,!(g&1)):0)iSa();sa()|0;P()|0;iSa();return 0}function DQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a+4>>2]|0;if(!e){f=a+4|0;c[b>>2]=f;b=f;return b|0}f=c[d>>2]|0;while(1)if(Bfb(f,e+16|0)|0){a=c[e>>2]|0;if(!a){a=5;break}else e=a}else{d=e+4|0;a=c[d>>2]|0;if(!a){a=7;break}else e=a}if((a|0)==5){c[b>>2]=e;b=e;return b|0}else if((a|0)==7){c[b>>2]=e;b=d;return b|0}return 0}function EQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g;e=b+12|0;if(!(c[e>>2]|0)){yb=g;return}if(!(dub(c[b+8>>2]|0,c[a+36>>2]|0)|0)){yb=g;return}Gsb(d,WCb(c[a+20>>2]|0)|0);f=c[e>>2]|0;if((c[f+4>>2]|0)==6){Pwb(c[a>>2]|0,f);yb=g;return}else{c[e>>2]=0;Cva(b);e=c[d>>2]|0;f=zMa(e,Q6a(e,f)|0,b)|0;Pwb(c[a>>2]|0,f);yb=g;return}}function FQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-16|0;o5a((c[g>>2]|0)+-16|0,h);c[g>>2]=(c[g>>2]|0)+-16;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function GQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+96|0;d=h+72|0;e=h+48|0;f=h+24|0;g=h;switch(c[b+16>>2]|0){case 1:{Bqb(d,0);PU(a,b,d);yb=h;return}case 2:{Heb(e,0,0);PU(a,b,e);yb=h;return}case 3:{pUa(f,0.0);PU(a,b,f);yb=h;return}case 4:{kEa(g,0.0);PU(a,b,g);yb=h;return}case 6:case 0:case 5:{ma(141129,111484,402,111993);break}default:ma(141129,111484,404,111993)}}function HQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+16|0;e=g;if((c[b+4>>2]|0)!=6)ma(75355,75265,184,75382);do if(d){Gsb(e,WCb(c[a+36>>2]|0)|0);h=vub(c[d+4>>2]|0)|0;e=c[e>>2]|0;if(h)d=Q6a(e,d)|0;d=zMa(e,b,d)|0;if(!(c[d+4>>2]|0))ma(75397,75265,201,75382);else{f=d;break}}else f=b;while(0);Pwb(c[a+16>>2]|0,f);yb=g;return}function IQ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=b+4|0;f=c[h>>2]|0;g=c[b+8>>2]|0;if((f|0)==(g<<5|0)){e=ZBb()|0;if((f+1|0)>>>0>e>>>0)Apa();if(f>>>0>>1>>>0){e=g<<6;g=f+32&-32;e=e>>>0>>0?g:e}wI(b,e);e=c[h>>2]|0}else e=f;c[h>>2]=e+1;f=(c[b>>2]|0)+(e>>>5<<2)|0;e=1<<(e&31);if(!(a[d>>0]&1)){d=c[f>>2]&~e;c[f>>2]=d;return}else{d=c[f>>2]|e;c[f>>2]=d;return}}function JQ(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=b;d=+AAb(e);e=irb(d)|0;if((e&2147483647)>>>0>2139095040){Heb(a,0,0);yb=f;return}if(Yhb(b)|0){d=+hb(+d);Heb(a,~~d>>>0,+w(d)>=1.0?(d>0.0?~~+K(+v(d/4294967296.0),4294967295.0)>>>0:~~+I((d-+(~~d>>>0))/4294967296.0)>>>0):0);yb=f;return}if((e|0)<0){Heb(a,0,-2147483648);yb=f;return}else{Heb(a,-1,2147483647);yb=f;return}}function KQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f+4|0;c[e>>2]=b;b=f;g=rrb(a,0)|0;if(!(hXa(c[g>>2]|0,c[37198]|0)|0))ma(51333,74885,1503,51347);g=WCb(INa(1)|0)|0;Pwb(b,KJa(g,WGa(e)|0)|0);g=zgb(d)|0;b=c[b>>2]|0;if(!g)KJa(WCb(b)|0,d)|0;g=rrb(a,1)|0;KJa(WCb(c[g>>2]|0)|0,b)|0;yb=f;return}function LQ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b){if(b>>>0<=214748364){e=mla(b*20|0)|0;break}e=oa(8)|0;n=0;da(67,e|0,138616);f=n;n=0;if(f&1){f=sa()|0;P()|0;va(e|0);Ea(f|0)}else{c[e>>2]=50788;za(e|0,39592,473)}}else e=0;while(0);c[a>>2]=e;d=e+(d*20|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*20|0);return}function MQ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=b;if(c[37104]|0){g=IWa(150452,64048)|0;b=O8(148192,e)|0;IWa(Ym(g,c[b>>2]|0)|0,57388)|0;b=c[e>>2]|0}if(dvb(c[b>>2]|0)|0){b=b+16|0;e=d+16|0;do{a[d>>0]=a[b>>0]|0;d=d+1|0;b=b+1|0}while((d|0)<(e|0));yb=f;return}else ma(63920,55544,1952,64090)}function NQ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=yb;yb=yb+16|0;f=g;QKa(b);c[b>>2]=47624;c[b+32>>2]=d;wjb(f,c[b+4>>2]|0);n=0;d=U(66,c[f>>2]|0,151636)|0;h=n;n=0;if(h&1){h=sa()|0;P()|0;XWa(f);nlb(b);Ea(h|0)}else{XWa(f);c[b+36>>2]=d;c[b+40>>2]=e;h=(Eb[c[(c[d>>2]|0)+28>>2]&511](d)|0)&1;a[b+44>>0]=h;yb=g;return}}function OQ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=yb;yb=yb+16|0;f=g;RKa(b);c[b>>2]=47688;c[b+32>>2]=d;wjb(f,c[b+4>>2]|0);n=0;d=U(66,c[f>>2]|0,151628)|0;h=n;n=0;if(h&1){h=sa()|0;P()|0;XWa(f);olb(b);Ea(h|0)}else{XWa(f);c[b+36>>2]=d;c[b+40>>2]=e;h=(Eb[c[(c[d>>2]|0)+28>>2]&511](d)|0)&1;a[b+44>>0]=h;yb=g;return}}function PQ(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;if((jxa()|0)>1)SEa(Wm(IWa(150452,107695)|0,d)|0,10)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=_Ra(e,d)|0;if(!d)return;n=0;ga(14,b|0,d|0,e|0,f|0,a|0);f=n;n=0;if(f&1){f=sa()|0;P()|0;Vob(a);Ea(f|0)}else return}function QQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g+8|0;f=g;e=b+24|0;c[d>>2]=0;c[d+4>>2]=c[e>>2];if(GP(a+40|0,d)|0){yb=g;return}c[f>>2]=0;b=a+32|0;d=c[b>>2]|0;if(d>>>0<(c[a+36>>2]|0)>>>0){c[d>>2]=0;c[d+4>>2]=c[e>>2];c[b>>2]=(c[b>>2]|0)+8;yb=g;return}else{bH(a+28|0,f,e);yb=g;return}}function RQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+16|0;d=c[f>>2]|0;if((d|0)!=(a|0)){if(d|0)Rb[c[(c[d>>2]|0)+20>>2]&1023](d)}else Rb[c[(c[d>>2]|0)+16>>2]&1023](d);c[f>>2]=0;d=b+16|0;e=c[d>>2]|0;if(!e){c[f>>2]=0;return}if((b|0)!=(e|0)){c[f>>2]=e;c[d>>2]=0;return}b=WCb(a)|0;c[f>>2]=b;f=c[d>>2]|0;n=0;da(c[(c[f>>2]|0)+12>>2]|0,f|0,b|0);f=n;n=0;if(f&1){f=ta(0)|0;P()|0;yub(f)}else return}function SQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-24|0;I6((c[g>>2]|0)+-24|0,h);c[g>>2]=(c[g>>2]|0)+-24;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function TQ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if(d|0){h=b+11|0;e=a[h>>0]|0;if(e<<24>>24<0){f=(c[b+8>>2]&2147483647)+-1|0;g=c[b+4>>2]|0}else{f=10;g=e&255}if((f-g|0)>>>0>>0){nR(b,f,g+d-f|0,g,g);e=a[h>>0]|0}if(e<<24>>24<0)f=c[b>>2]|0;else f=b;F5a(f+g|0,d,0)|0;e=g+d|0;if((a[h>>0]|0)<0)c[b+4>>2]=e;else a[h>>0]=e;Fsb(f+e|0,0)}return b|0}function UQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+64|0;f=h;if(!(dub(a,b)|0))if((b|0)!=0?(g=Ey(b,39472)|0,(g|0)!=0):0){b=f+4|0;e=b+52|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(e|0));c[f>>2]=g;c[f+8>>2]=a;c[f+12>>2]=-1;c[f+48>>2]=1;Ub[c[(c[g>>2]|0)+28>>2]&255](g,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];b=1}else b=0}else b=0;else b=1;yb=h;return b|0}function VQ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=b+11|0;e=a[h>>0]|0;f=e<<24>>24<0;if(f){g=c[b+4>>2]|0;e=(c[b+8>>2]&2147483647)+-1|0}else{g=e&255;e=10}if((g|0)==(e|0)){nR(b,e,1,e,e);if((a[h>>0]|0)<0)e=8;else e=7}else if(f)e=8;else e=7;if((e|0)==7)a[h>>0]=g+1;else if((e|0)==8){h=c[b>>2]|0;c[b+4>>2]=g+1;b=h}h=b+g|0;Fsb(h,d);Fsb(h+1|0,0);return}function WQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=b+8|0;h=c[g>>2]|0;d=a+32|0;DLa(a,h>>>0<(Icb(WCb(c[d>>2]|0)|0)|0)>>>0,b);h=b+12|0;e=c[(c[h>>2]|0)+4>>2]|0;if((e|0)==6)return;f=c[b+4>>2]|0;if(f|0)msa(a,e,f,b);f=WCb(c[d>>2]|0)|0;g=jka(f,c[g>>2]|0)|0;hBa(a,g,c[(c[h>>2]|0)+4>>2]|0,b);return}function XQ(b,c,d){b=b|0;c=c|0;d=d|0;a:do if((b|0)!=(c|0))switch(a[b>>0]|0){case 68:case 67:{b=Bl(b,c,d)|0;break a}case 85:{b=ff(b,c,d)|0;break a}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{b=Nk(b,c,d)|0;break a}default:return hc(b,c,d)|0}while(0);return b|0}function YQ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b){if(b>>>0<=107374182){e=mla(b*40|0)|0;break}e=oa(8)|0;n=0;da(67,e|0,138616);f=n;n=0;if(f&1){f=sa()|0;P()|0;va(e|0);Ea(f|0)}else{c[e>>2]=50788;za(e|0,39592,473)}}else e=0;while(0);c[a>>2]=e;d=e+(d*40|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*40|0);return}function ZQ(a){a=a|0;var b=0,d=0,e=0;d=a+12|0;if(!(c[d>>2]|0))return;e=a+8|0;$da(c[e>>2]|0);c[e>>2]=0;e=c[a+4>>2]|0;b=0;while(1){if((b|0)==(e|0))break;c[(c[a>>2]|0)+(b<<2)>>2]=0;b=b+1|0}c[d>>2]=0;return}function _Q(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;d=c[c[a>>2]>>2]|0;if((d|0)==(b|0)){f=0;yb=g;return f|0}if(L6(b,d)|0){f=0;yb=g;return f|0}e=c[a+4>>2]|0;a=e+4|0;d=c[a>>2]|0;if((d|0)==(c[e+8>>2]|0)){_M(e,f);f=1;yb=g;return f|0}else{c[d>>2]=b;c[a>>2]=(c[a>>2]|0)+4;f=1;yb=g;return f|0}return 0}function $Q(a){a=a|0;bta(a+104|0);Vob(a+92|0);Vob(a+80|0);Jia(a+68|0);Vob(a+52|0);$ta(a+40|0);igb(a);return}function aR(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b){if(b>>>0<=357913941){e=mla(b*12|0)|0;break}e=oa(8)|0;n=0;da(67,e|0,138616);f=n;n=0;if(f&1){f=sa()|0;P()|0;va(e|0);Ea(f|0)}else{c[e>>2]=50788;za(e|0,39592,473)}}else e=0;while(0);c[a>>2]=e;d=e+(d*12|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*12|0);return}function bR(a){a=a|0;var b=0,d=0,e=0;d=a+12|0;if(!(c[d>>2]|0))return;e=a+8|0;Sca(c[e>>2]|0);c[e>>2]=0;e=c[a+4>>2]|0;b=0;while(1){if((b|0)==(e|0))break;c[(c[a>>2]|0)+(b<<2)>>2]=0;b=b+1|0}c[d>>2]=0;return}function cR(b,d){b=b|0;d=d|0;var e=0;e=mla(24)|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;Zmb(e);c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];a[e+20>>0]=a[b+20>>0]&1;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];if(Yrb(b)|0){c[e+16>>2]=0;pq(d,e);return e|0}else{b=q5(c[b+16>>2]|0,d)|0;c[e+16>>2]=b;pq(d,e);return e|0}return 0}function dR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-24|0;R4((c[g>>2]|0)+-24|0,h);c[g>>2]=(c[g>>2]|0)+-24;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function eR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;d=c[a+8>>2]|0;e=c[a+4>>2]|0;if((d|0)==(e|0))e=0;else e=(d-e<<8)+-1|0;d=a+20|0;if((e|0)==((c[a+16>>2]|0)+(c[d>>2]|0)|0))hi(a);Vda(f,a);c[c[f+4>>2]>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+1;yb=g;return}function fR(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=yb;yb=yb+16|0;e=f;if(a[b+72>>0]&1)BM(IWa(150620,113679)|0);g=b+68|0;h=c[g>>2]|0;zz(h,baa(c[d+12>>2]|0)|0);h=c[g>>2]|0;Pwb(e,a[d+20>>0]&1);YA(h,c[e>>2]|0)|0;uma(b,c[d+16>>2]|0);tI(c[g>>2]|0,11)|0;yb=f;return}function gR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;b=g;e=a+80|0;d=c[e>>2]|0;c[b>>2]=d;NC(a+16|0);oP(d,c[e>>2]|0);e=a+100|0;f=c[e>>2]|0;if((f|0)==(c[a+104>>2]|0)){_M(a+96|0,b);yb=g;return}else{c[f>>2]=d;c[e>>2]=(c[e>>2]|0)+4;yb=g;return}}function hR(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a+4>>2]|0;if(!e){f=a+4|0;c[b>>2]=f;b=f;return b|0}f=c[d>>2]|0;while(1)if(f>>>0<(c[e+16>>2]|0)>>>0){a=c[e>>2]|0;if(!a){a=5;break}else e=a}else{d=e+4|0;a=c[d>>2]|0;if(!a){a=7;break}else e=a}if((a|0)==5){c[b>>2]=e;b=e;return b|0}else if((a|0)==7){c[b>>2]=e;b=d;return b|0}return 0}function iR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;g=h+8|0;e=h;f=a+8|0;d=c[f>>2]|0;if(d>>>0>=((c[a+12>>2]|0)+b|0)>>>0){yb=h;return}d=d<<1;d=(d>>>0>1024?d:1024)+b|0;c[f>>2]=d;a=a+4|0;b=c[a>>2]|0;if(!b){i=qc(d)|0;c[a>>2]=i;if(!i){c[e>>2]=c[f>>2];G3a(46772,66658,e)|0;Ta()}else{yb=h;return}}b=F7(b,d)|0;if(!b){wg(c[a>>2]|0);c[g>>2]=c[f>>2];G3a(46772,66658,g)|0;Ta()}c[a>>2]=b;yb=h;return}function jR(a,b){a=a|0;b=b|0;if(!b)return;jR(a,c[b>>2]|0);jR(a,c[b+4>>2]|0);RCb(b);return}function kR(a){a=a|0;var b=0;if(c[a+4>>2]|0){a=0;return a|0}b=c[a>>2]|0;if(Gzb(b)|0){a=0;return a|0}if(OBb(b)|0){a=0;return a|0}if(aCb(b)|0){a=0;return a|0}b=iqb(a)|0;if(b|0){do{a=c[b+12>>2]|0;b=iqb(a)|0}while((b|0)!=0);b=c[a>>2]|0;if(Axb(b)|0){a=0;return a|0}if(_xb(b)|0){a=0;return a|0}}a=1;return a|0}function lR(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+32|0;f=i+16|0;g=i+4|0;h=i;c[g>>2]=0;b=g+4|0;c[b>>2]=0;c[g+8>>2]=0;n=0;da(2568,a|0,g|0);e=n;n=0;if(e&1){i=sa()|0;P()|0;Vob(g);Ea(i|0)}d=c[b>>2]|0;b=c[g>>2]|0;while(1){e=b;if((d|0)==(e|0))break;c[h>>2]=c[b>>2];c[f>>2]=c[h>>2];WC(a,f);b=e+4|0}Vob(g);yb=i;return}function mR(b,d){b=b|0;d=d|0;if(a[b+33>>0]&1)BM(IWa(150620,112791)|0);yIa(b,c[d+12>>2]|0);if((c[d+4>>2]|0)==6){AQ(b);return}else{TW(b,d);return}}function nR(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((-17-d|0)>>>0>>0)ipa();if((a[b+11>>0]|0)<0)j=c[b>>2]|0;else j=b;if(d>>>0<2147483623){h=e+d|0;i=d<<1;h=h>>>0>>0?i:h;h=h>>>0<11?11:h+16&-16}else h=-17;i=mla(h)|0;if(g|0)dib(i,j,g)|0;e=f-g|0;if(e|0)dib(i+g|0,j+g|0,e)|0;if((d|0)!=10)RCb(j);c[b>>2]=i;c[b+8>>2]=h|-2147483648;return}function oR(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g;f=c[d>>2]|0;pv(e,b,d);d=c[e>>2]|0;c[e>>2]=0;if(!d){yb=g;return f|0}if(a[e+8>>0]&1)Kkb(d+8|0);RCb(d);yb=g;return f|0}function pR(b,d){b=b|0;d=d|0;var e=0,f=0;e=b+44|0;f=c[e>>2]|0;d=d+24|0;if(!(LF(f,d)|0))ma(84329,83997,115,116827);else{f=pm(f,d)|0;c[f>>2]=(c[f>>2]|0)+1;e=c[e>>2]|0;f=c[b+32>>2]|0;WCb(f)|0;f=(pm(e,f+8|0)|0)+8|0;a[f>>0]=0;return}}function qR(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=mla(56)|0;c[b>>2]=f;c[b+4>>2]=d+4;d=f+16|0;e=c[e>>2]|0;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];c[d+16>>2]=c[e+16>>2];c[d+20>>2]=c[e+20>>2];c[f+40>>2]=0;c[f+44>>2]=0;c[f+48>>2]=0;a[b+8>>0]=1;return}function rR(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b){if(b>>>0<=178956970){e=mla(b*24|0)|0;break}e=oa(8)|0;n=0;da(67,e|0,138616);f=n;n=0;if(f&1){f=sa()|0;P()|0;va(e|0);Ea(f|0)}else{c[e>>2]=50788;za(e|0,39592,473)}}else e=0;while(0);c[a>>2]=e;d=e+(d*24|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*24|0);return}function sR(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;e=h+8|0;f=h+4|0;g=h;if(a[b+33>>0]&1)BM(IWa(150620,113260)|0);i=tI(c[b+28>>2]|0,(c[d+16>>2]|0)==0?12:13)|0;c[g>>2]=c[d+8>>2];c[e>>2]=c[g>>2];Pwb(f,x7(b,e)|0);YA(i,c[f>>2]|0)|0;yb=h;return}function tR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=yb;yb=yb+16|0;g=d+4|0;h=d;c[h>>2]=c[b+24>>2];f=Cda(a,c[b+28>>2]|0)|0;e=Cda(a,c[b+32>>2]|0)|0;a=c[a+32>>2]|0;c[g>>2]=c[h>>2];b=Zma(a,b+8|0,g,f,e)|0;yb=d;return b|0}function uR(b,d){b=b|0;d=d|0;if(a[b+33>>0]&1)BM(IWa(150620,113049)|0);yIa(b,c[d+24>>2]|0);if((c[d+4>>2]|0)==6){AQ(b);return}else{TW(b,d);return}}function vR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;c[b>>2]=0;c[a>>2]=d;d=b+4|0;e=a+4|0;c[e>>2]=c[d>>2];c[d>>2]=0;d=c[b+8>>2]|0;c[a+8>>2]=d;h=b+12|0;g=c[h>>2]|0;c[a+12>>2]=g;c[a+16>>2]=c[b+16>>2];if(!g)return;g=a+8|0;d=c[d+4>>2]|0;e=c[e>>2]|0;f=e+-1|0;if(e&f){if(d>>>0>=e>>>0)d=(d>>>0)%(e>>>0)|0}else d=d&f;c[(c[a>>2]|0)+(d<<2)>>2]=g;c[b+8>>2]=0;c[h>>2]=0;return}function wR(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;m=yb;yb=yb+16|0;k=m;i=b;l=d+4|0;g=d+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;do{e=h&255;f=e&127;a[k>>0]=f;h=t$a(h|0,i|0,7)|0;i=P()|0;j=Faa(b,h,i,f)|0;if(j){f=e|-128;a[k>>0]=f}e=c[l>>2]|0;if((e|0)==(c[g>>2]|0))qN(d,k);else{a[e>>0]=f;c[l>>2]=(c[l>>2]|0)+1}}while(j);yb=m;return}function xR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;c[d>>2]=(c[d>>2]|0)+1;d=c[36996]|0;do if((c[36997]|0)-d>>2>>>0<=b>>>0){n=0;ca(578,b+1|0);d=n;n=0;if(!(d&1)){d=c[36996]|0;break}d=sa()|0;P()|0;if(a|0)GVa(a);Ea(d|0)}while(0);d=c[d+(b<<2)>>2]|0;if(d|0?(f=d+4|0,e=c[f>>2]|0,c[f>>2]=e+-1,(e|0)==0):0)Rb[c[(c[d>>2]|0)+8>>2]&1023](d);c[(c[36996]|0)+(b<<2)>>2]=a;return}function yR(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=b;d=+AAb(e);e=irb(d)|0;if((e&2147483647)>>>0>2139095040){Heb(a,0,0);yb=f;return}if(Xhb(b)|0){d=+hb(+d);Heb(a,~~d>>>0,+w(d)>=1.0?(d>0.0?~~+K(+v(d/4294967296.0),4294967295.0)>>>0:~~+I((d-+(~~d>>>0))/4294967296.0)>>>0):0);yb=f;return}if((e|0)<0){Heb(a,0,0);yb=f;return}else{Heb(a,-1,-1);yb=f;return}}function zR(b,d){b=b|0;d=d|0;if(a[b+33>>0]&1)BM(IWa(150620,113153)|0);yIa(b,c[d+12>>2]|0);TW(b,d);if((c[d+4>>2]|0)!=6)return;AQ(b);return}function AR(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b){if(b>>>0<=268435455){e=mla(b<<4)|0;break}e=oa(8)|0;n=0;da(67,e|0,138616);f=n;n=0;if(f&1){f=sa()|0;P()|0;va(e|0);Ea(f|0)}else{c[e>>2]=50788;za(e|0,39592,473)}}else e=0;while(0);c[a>>2]=e;d=e+(d<<4)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<4);return}function BR(a,b){a=a|0;b=b|0;if(!b)return;BR(a,c[b>>2]|0);BR(a,c[b+4>>2]|0);Aeb(b+16|0);RCb(b);return}function CR(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if((d-b|0)>1){if((a[b>>0]|0)==83?(a[b+1>>0]|0)==116:0){f=b+2|0;if((f|0)==(d|0)){g=0;f=d}else{g=0;f=(a[f>>0]|0)==76?b+3|0:f}}else{g=1;f=b}d=XQ(f,d,e)|0;f=(d|0)==(f|0);if(!(g|f)){f=c[e+4>>2]|0;if((c[e>>2]|0)!=(f|0)){IGa(f+-24|0,0,140223)|0;b=d}}else b=f?b:d}return b|0}function DR(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f;a=c[a>>2]|0;if(pqb(c[b+16>>2]|0)|0){e=0;yb=f;return e|0}g=c[d>>2]|0;b=cWa(b+12|0)|0;if(!(L6(g,c[b>>2]|0)|0)){g=0;yb=f;return g|0}Gsb(e,WCb(c[a+36>>2]|0)|0);g=vJa(c[e>>2]|0,c[d>>2]|0)|0;c[d>>2]=g;yb=f;return g|0}function ER(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(24)|0;c[b>>2]=g;c[b+4>>2]=d+8;c[g+8>>2]=c[c[f>>2]>>2];f=g+12|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;iob(f);a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function FR(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b){if(b>>>0<=536870911){e=mla(b<<3)|0;break}e=oa(8)|0;n=0;da(67,e|0,138616);f=n;n=0;if(f&1){f=sa()|0;P()|0;va(e|0);Ea(f|0)}else{c[e>>2]=50788;za(e|0,39592,473)}}else e=0;while(0);c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<3);return}function GR(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=yb;yb=yb+16|0;f=e;h=c[c[a>>2]>>2]|0;g=dWa(b)|0;b=c[37277]|0;a=Q5(dWa(c[37105]|0)|0,d)|0;m2a(f,51267,1);_qa(h,mv(g,b,rma(E1(a,dWa(c[f>>2]|0)|0)|0)|0)|0);yb=e;return}function HR(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;h=yb;yb=yb+16|0;g=h;c[g>>2]=0;e=(a[d+11>>0]|0)<0?c[d>>2]|0:d;j=c[37419]|0;c[37419]=0;f=pjb(e,g,0)|0;d=P()|0;i=c[37419]|0;c[37419]=j;if((i|0)==34)j2(b);if((c[g>>2]|0)==(e|0))n2(b);O(d|0);yb=h;return f|0}function IR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=Cda(a,c[b+12>>2]|0)|0;e=Cda(a,c[b+16>>2]|0)|0;d=Cda(a,c[b+20>>2]|0)|0;return Vma(c[a+32>>2]|0,f,e,d,c[b+24>>2]|0,c[b+8>>2]|0)|0}function JR(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=uga(a,b,d)|0;f=e;if(HYa(c[a>>2]|0,b)|0)return f|0;if(!(cub(d,c[37043]|0)|0))return f|0;f=dWa(d)|0;f=WCb(mv(f,c[37277]|0,e)|0)|0;return f|0}function KR(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}f=a[d+11>>0]|0;g=f<<24>>24<0;f=g?c[d+4>>2]|0:f&255;n=0;fa(90,b|0,(g?c[d>>2]|0:d)|0,f|0,f+1|0);d=n;n=0;if(!(d&1)?(n=0,da(91,b|0,e|0),g=n,n=0,!(g&1)):0)return;g=sa()|0;P()|0;Chb(b);Ea(g|0)}function LR(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g;f=c[d>>2]|0;pv(e,b,d);d=c[e>>2]|0;c[e>>2]=0;if(!d){yb=g;return f|0}if(a[e+8>>0]&1)neb(d+8|0);RCb(d);yb=g;return f|0}function MR(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if((d|0)==(b|0))return b|0;g=a+4|0;e=c[g>>2]|0;f=b;a=d;while(1){if((a|0)==(e|0))break;h=c[a>>2]|0;c[a>>2]=0;d=c[f>>2]|0;c[f>>2]=h;if(d|0){Xrb(d);RCb(d)}f=f+4|0;a=a+4|0}a=c[g>>2]|0;while(1){if((f|0)==(a|0))break;a=a+-4|0;d=c[a>>2]|0;c[a>>2]=0;if(d|0){Xrb(d);RCb(d)}}c[g>>2]=f;return b|0}function NR(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=e-d|0;if(g>>>0>4294967279)ipa();if(g>>>0<11)a[b+11>>0]=g;else{h=g+16&-16;f=Stb(h)|0;c[b>>2]=f;c[b+8>>2]=h|-2147483648;c[b+4>>2]=g;b=f}f=b;while(1){if((d|0)==(e|0))break;Fsb(f,a[d>>0]|0);d=d+1|0;f=f+1|0}Fsb(b+g|0,0);return}function OR(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=yb;yb=yb+32|0;e=g;f=Veb(c[a+12>>2]|0)|0;b=ffb(c[a+16>>2]|0)|0;d=ffb(c[f+16>>2]|0)|0;a=c[f+12>>2]|0;b=b+8|0;d=d+8|0;if(yda(b,d)|0){f=a;yb=g;return f|0}EU(e,d,b);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];c[d+16>>2]=c[e+16>>2];yb=g;return f|0}function PR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=yb;yb=yb+16|0;f=j+4|0;g=j;i=Leb(c[b>>2]|0)|0;c[f>>2]=i;h=c[a+64>>2]|0;if(!h){yb=j;return}d=h+4|0;e=c[d>>2]|0;if(e>>>0<(c[h+8>>2]|0)>>>0){c[e>>2]=i;c[d>>2]=(c[d>>2]|0)+4}else _M(h,f);h=c[a+120>>2]|0;c[g>>2]=i;i=O8(h,g)|0;c[i>>2]=b;yb=j;return}function QR(a,b){a=a|0;b=b|0;if(!b)return;QR(a,c[b>>2]|0);QR(a,c[b+4>>2]|0);z7a(b+16|0);RCb(b);return}function RR(a){a=a|0;xva(a+104|0);Vob(a+92|0);Vob(a+80|0);vka(a+68|0);Vob(a+52|0);ywa(a+40|0);igb(a);return}function SR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=b+8|0;KCa(a,c[(c[e>>2]|0)+4>>2]|0,b,132111);d=b+12|0;KCa(a,c[(c[d>>2]|0)+4>>2]|0,b,132137);f=c[(c[b+16>>2]|0)+4>>2]|0;VMa(a,(f|0)==6|(f|0)==1,b);e=c[(c[e>>2]|0)+4>>2]|0;if((e|0)==6)return;d=c[(c[d>>2]|0)+4>>2]|0;if((d|0)==6)return;zCa(a,e,d,b);return}function TR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-16|0;Lla((c[g>>2]|0)+-16|0,h);c[g>>2]=(c[g>>2]|0)+-16;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function UR(a,b){a=a|0;b=b|0;var d=0,e=0;while(1){d=a;if((a|0)==(b|0)){e=11;break}if(Sna(c[c[a>>2]>>2]|0)|0)break;a=a+4|0}if((e|0)==11)return a|0;while(1){a=a+4|0;if((a|0)==(b|0))break;if(!(Sna(c[c[a>>2]>>2]|0)|0)){c[d>>2]=c[a>>2];d=d+4|0}}b=d;return b|0}function VR(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,h=0,i=0;g=yb;yb=yb+16|0;h=g;e=h;c[e>>2]=b;c[e+4>>2]=d;f=+BAb(h);h=leb(f)|0;e=P()|0;i=e&2147483647;if(i>>>0>2146435072|(i|0)==2146435072&h>>>0>0){Bqb(a,0);yb=g;return}if(EUa(b,d)|0){Bqb(a,~~+ib(+f));yb=g;return}if((e|0)<0){Bqb(a,-2147483648);yb=g;return}else{Bqb(a,2147483647);yb=g;return}}function WR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;b=g;e=a+64|0;d=c[e>>2]|0;c[b>>2]=d;OE(a);yO(d,c[e>>2]|0);e=a+84|0;f=c[e>>2]|0;if((f|0)==(c[a+88>>2]|0)){_M(a+80|0,b);yb=g;return}else{c[f>>2]=d;c[e>>2]=(c[e>>2]|0)+4;yb=g;return}}function XR(a){a=a|0;Xva(a+104|0);Vob(a+92|0);Vob(a+80|0);Fka(a+68|0);Vob(a+52|0);ixa(a+40|0);igb(a);return}function YR(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=mla(48)|0;c[b>>2]=h;c[b+4>>2]=d+8;g=b+8|0;c[h+8>>2]=c[c[f>>2]>>2];b=h+12|0;d=b;f=d+36|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(f|0));aUa(b);a[g>>0]=1;c[h+4>>2]=e;c[h>>2]=0;return}function ZR(a,b){a=a|0;b=b|0;if(!b)return;ZR(a,c[b>>2]|0);ZR(a,c[b+4>>2]|0);s7a(b+16|0);RCb(b);return}function _R(a){a=a|0;swa(a+104|0);Vob(a+92|0);Vob(a+80|0);Qka(a+68|0);Vob(a+52|0);ixa(a+40|0);igb(a);return}function $R(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+16|0;g=f;c[g>>2]=b;a=oC(a+184|0,g)|0;if(!a){g=0;yb=f;return g|0}a=zI(a+12|0,d)|0;if(!a){g=0;yb=f;return g|0}g=(c[a+12>>2]|0)==(e|0);yb=f;return g|0}function aS(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b){if(b>>>0<=1073741823){e=mla(b<<2)|0;break}e=oa(8)|0;n=0;da(67,e|0,138616);f=n;n=0;if(f&1){f=sa()|0;P()|0;va(e|0);Ea(f|0)}else{c[e>>2]=50788;za(e|0,39592,473)}}else e=0;while(0);c[a>>2]=e;d=e+(d<<2)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<2);return}function bS(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+96|0;d=e;b=c[b>>2]|0;VA(d,pob(c[a+40>>2]|0)|0,0);if(!(p6a(d,c[b>>2]|0)|0)){Fha(d);yb=e;return}n=0;da(3143,a|0,d|0);b=n;n=0;if(b&1){e=sa()|0;P()|0;Fha(d);Ea(e|0)}else{Fha(d);yb=e;return}}function cS(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+96|0;d=e;b=c[b>>2]|0;VA(d,pob(c[a+40>>2]|0)|0,0);if(!(p6a(d,c[b>>2]|0)|0)){Fha(d);yb=e;return}n=0;da(3417,a|0,d|0);b=n;n=0;if(b&1){e=sa()|0;P()|0;Fha(d);Ea(e|0)}else{Fha(d);yb=e;return}}function dS(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+96|0;d=e;b=c[b>>2]|0;VA(d,pob(c[a+40>>2]|0)|0,0);if(!(p6a(d,c[b>>2]|0)|0)){Fha(d);yb=e;return}n=0;da(3298,a|0,d|0);b=n;n=0;if(b&1){e=sa()|0;P()|0;Fha(d);Ea(e|0)}else{Fha(d);yb=e;return}}function eS(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+96|0;d=e;b=c[b>>2]|0;VA(d,pob(c[a+40>>2]|0)|0,0);if(!(p6a(d,c[b>>2]|0)|0)){Fha(d);yb=e;return}n=0;da(3536,a|0,d|0);b=n;n=0;if(b&1){e=sa()|0;P()|0;Fha(d);Ea(e|0)}else{Fha(d);yb=e;return}}function fS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;if((Mba(a,b)|0)!=(a+4|0)){yb=e;return}cya(a+12|0,b);f=c[a+12>>2]|0;b=c[b>>2]|0;c[d>>2]=b;c[d+4>>2]=f;uC(e+8|0,a,b,d);yb=e;return}function gS(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;k=yb;yb=yb+16|0;d=k+8|0;e=k;f=a+36|0;g=a+40|0;h=d+8|0;i=d;b=a+32|0;a:while(1){a=c[f>>2]|0;a=Kb[c[(c[a>>2]|0)+20>>2]&31](a,c[g>>2]|0,d,h,e)|0;l=(c[e>>2]|0)-i|0;if((tTa(d,1,l,c[b>>2]|0)|0)!=(l|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{j=4;break a}}}if((j|0)==4)a=((rca(c[b>>2]|0)|0)!=0)<<31>>31;yb=k;return a|0}function hS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g;if(!(eCb(c[b+4>>2]|0)|0)){yb=g;return}e=b+12|0;f=c[e>>2]|0;if((c[f+4>>2]|0)==6){Pwb(c[a+16>>2]|0,f);yb=g;return}else{Gsb(d,WCb(c[a+36>>2]|0)|0);f=c[d>>2]|0;f=zMa(f,b,T3a(f,c[b+8>>2]|0,c[(c[e>>2]|0)+4>>2]|0)|0)|0;Pwb(c[a+16>>2]|0,f);m4a(b,0);yb=g;return}}function iS(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=b+12|0;j=b+16|0;h=0;while(1){if((h|0)>=(e|0))break;f=c[i>>2]|0;g=c[j>>2]|0;if(f>>>0>>0){g=g-f|0;k=e-h|0;g=(k|0)<(g|0)?k:g;dib(d,f,g)|0;c[i>>2]=(c[i>>2]|0)+g;d=d+g|0;f=g}else{f=Eb[c[(c[b>>2]|0)+40>>2]&511](b)|0;if((f|0)==-1)break;f=Qzb(f)|0;a[d>>0]=f;d=d+1|0;f=1}h=f+h|0}return h|0}function jS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+416|0;e=h+216|0;f=h+24|0;g=h;Cjb(e,b);Cjb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;eTa(g,d,f+(b*24|0)|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];b=b+1|0}Hab(a,e);yb=h;return}function kS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+416|0;e=h+216|0;f=h+24|0;g=h;Cjb(e,b);Cjb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;fTa(g,d,f+(b*24|0)|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];b=b+1|0}Hab(a,e);yb=h;return}function lS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+416|0;e=h+216|0;f=h+24|0;g=h;Djb(e,b);Djb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;WTa(g,d,f+(b*24|0)|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];b=b+1|0}Hab(a,e);yb=h;return}function mS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+416|0;e=h+216|0;f=h+24|0;g=h;Djb(e,b);Djb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;XTa(g,d,f+(b*24|0)|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];b=b+1|0}Hab(a,e);yb=h;return}function nS(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g;f=c[d>>2]|0;pv(e,b,d);d=c[e>>2]|0;c[e>>2]=0;if(!d){yb=g;return f|0}if(a[e+8>>0]&1)blb(d+8|0);RCb(d);yb=g;return f|0}function oS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+800|0;e=h+408|0;f=h+24|0;g=h;rjb(e,b);rjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;nUa(g,d,f+(b*24|0)|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];b=b+1|0}cab(a,e);yb=h;return}function pS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+800|0;e=h+408|0;f=h+24|0;g=h;rjb(e,b);rjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;oUa(g,d,f+(b*24|0)|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];b=b+1|0}cab(a,e);yb=h;return}function qS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+800|0;e=h+408|0;f=h+24|0;g=h;sjb(e,b);sjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;IVa(g,d,f+(b*24|0)|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];b=b+1|0}cab(a,e);yb=h;return}function rS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+800|0;e=h+408|0;f=h+24|0;g=h;sjb(e,b);sjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;JVa(g,d,f+(b*24|0)|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];b=b+1|0}cab(a,e);yb=h;return}function sS(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;f=h+8|0;e=h;b=a+8|0;nrb(f,b);Hib(e,b);b=f+4|0;d=c[e>>2]|0;e=c[e+4>>2]|0;while(1){if(!(dhb(c[f>>2]|0,c[b>>2]|0,d,e)|0)){g=6;break}i=Qab(f)|0;if((c[(c[i>>2]|0)+4>>2]|0)==6)break;hob(f)}if((g|0)==6){yb=h;return}c[a+4>>2]=6;yb=h;return}function tS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if((d|0)==(b|0))return b|0;g=a+4|0;e=c[g>>2]|0;f=b;a=d;while(1){if((a|0)==(e|0))break;h=c[a>>2]|0;c[a>>2]=0;d=c[f>>2]|0;c[f>>2]=h;if(d|0){IM(d);RCb(d)}f=f+4|0;a=a+4|0}a=c[g>>2]|0;while(1){if((f|0)==(a|0))break;a=a+-4|0;d=c[a>>2]|0;c[a>>2]=0;if(d|0){IM(d);RCb(d)}}c[g>>2]=f;return b|0}function uS(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;if(!(c[b+64>>2]|0)){g=-1;return g|0}g=b+12|0;f=c[g>>2]|0;if((c[b+8>>2]|0)>>>0>=f>>>0){g=-1;return g|0}if(dub(d,-1)|0){c[g>>2]=f+-1;g=ylb(d)|0;return g|0}if(!(c[b+88>>2]&16)){e=Qzb(d)|0;b=f+-1|0;if(!(Zqb(e,a[b>>0]|0)|0)){g=-1;return g|0}}else{e=Qzb(d)|0;b=f+-1|0}c[g>>2]=b;a[b>>0]=e;g=d;return g|0}function vS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;b=g;e=a+80|0;d=c[e>>2]|0;c[b>>2]=d;xE(a+16|0);jP(d,c[e>>2]|0);e=a+100|0;f=c[e>>2]|0;if((f|0)==(c[a+104>>2]|0)){_M(a+96|0,b);yb=g;return}else{c[f>>2]=d;c[e>>2]=(c[e>>2]|0)+4;yb=g;return}}function wS(a){a=a|0;var b=0,d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;D8(d,138720,Zzb(138720)|0);n=0;a=U(215,d|0,a|0)|0;b=P()|0;f=n;n=0;if(f&1){f=sa()|0;P()|0;Chb(d);Ea(f|0)}else{Chb(d);O(b|0);yb=e;return a|0}return 0}function xS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(((f|0)/-20|0)*20|0)|0;c[g>>2]=d;if((f|0)>0){Uv(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function yS(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=b+24|0;j=b+28|0;f=0;while(1){if((f|0)>=(e|0))break;g=c[i>>2]|0;h=c[j>>2]|0;if(g>>>0>>0){h=h-g|0;k=e-f|0;h=(k|0)<(h|0)?k:h;dib(g,d,h)|0;c[i>>2]=(c[i>>2]|0)+h;d=d+h|0;f=h+f|0}else{h=c[(c[b>>2]|0)+52>>2]|0;k=Qzb(a[d>>0]|0)|0;if((Gb[h&255](b,k)|0)==-1)break;d=d+1|0;f=f+1|0}}return f|0}function zS(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0;h=mla(32)|0;c[b>>2]=h;c[b+4>>2]=d+8;c[h+8>>2]=c[c[f>>2]>>2];f=h+12|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[h+28>>2]=1.0;a[b+8>>0]=1;c[h+4>>2]=e;c[h>>2]=0;return}function AS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,h=0,i=0;g=yb;yb=yb+16|0;h=g;e=h;c[e>>2]=b;c[e+4>>2]=d;f=+BAb(h);h=leb(f)|0;e=P()|0;i=e&2147483647;if(i>>>0>2146435072|(i|0)==2146435072&h>>>0>0){Bqb(a,0);yb=g;return}if(DUa(b,d)|0){Bqb(a,~~+ib(+f)>>>0);yb=g;return}if((e|0)<0){Bqb(a,0);yb=g;return}else{Bqb(a,-1);yb=g;return}}function BS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-40|0;sVa((c[g>>2]|0)+-40|0,h);c[g>>2]=(c[g>>2]|0)+-40;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function CS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-8|0;cjb((c[g>>2]|0)+-8|0,h);c[g>>2]=(c[g>>2]|0)+-8;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function DS(a,b){a=a|0;b=b|0;if(!b)return;DS(a,c[b>>2]|0);DS(a,c[b+4>>2]|0);RCb(b);return}function ES(b){b=b|0;var d=0,e=0,f=0;d=b+92|0;if(c[d>>2]&16|0)return;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;e=c[b+52>>2]|0;do if(e>>>0>8)if(!(a[b+98>>0]&1)){f=c[b+56>>2]|0;e=f+((c[b+60>>2]|0)+-1)|0;c[b+24>>2]=f;c[b+20>>2]=f;c[b+28>>2]=e;break}else{f=c[b+32>>2]|0;c[b+24>>2]=f;c[b+20>>2]=f;c[b+28>>2]=f+(e+-1);break}else{c[b+24>>2]=0;c[b+20>>2]=0;c[b+28>>2]=0}while(0);c[d>>2]=16;return}function FS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+8|0;d=(c[c[e>>2]>>2]|0)+(b<<2)|0;a=c[d>>2]|0;c[d>>2]=0;if(!(c[a>>2]|0))return;d=c[a+4>>2]|0;a=b;while(1){a=a+1|0;f=c[e>>2]|0;b=c[f>>2]|0;if(a>>>0>=(c[f+4>>2]|0)-b>>2>>>0){a=4;break}f=b+(a<<2)|0;b=c[f>>2]|0;c[f>>2]=0;if((b|0?(c[b+4>>2]|0)==(d|0):0)?Lab(c[b>>2]|0)|0:0){a=9;break}}if((a|0)==4)ma(109492,109118,325,109509);else if((a|0)==9)return}function GS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;b=g;e=a+80|0;d=c[e>>2]|0;c[b>>2]=d;CE(a+16|0);oP(d,c[e>>2]|0);e=a+100|0;f=c[e>>2]|0;if((f|0)==(c[a+104>>2]|0)){_M(a+96|0,b);yb=g;return}else{c[f>>2]=d;c[e>>2]=(c[e>>2]|0)+4;yb=g;return}}function HS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(((f|0)/-12|0)*12|0)|0;c[g>>2]=d;if((f|0)>0){Uv(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function IS(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;h=yb;yb=yb+128|0;k=h;l=h+116|0;i=h+104|0;j=h+112|0;c[l>>2]=k+100;b4(a,k,l,e,f,g);e=i;c[e>>2]=0;c[e+4>>2]=0;c[j>>2]=k;e=Esb(b,c[d>>2]|0)|0;a=Feb(c[a>>2]|0)|0;e=Ai(b,j,e,i)|0;if(a|0)Feb(a)|0;if((e|0)==-1)Jwa(137486);else{c[d>>2]=b+(e<<2);yb=h;return}}function JS(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=yb;yb=yb+16|0;e=g+4|0;f=g;if(a[b+12>>0]&1){h=IWa(150620,113133)|0;BM(Ym(h,c[b+36>>2]|0)|0)}i=Ux(b,IF(b)|0)|0;c[d+8>>2]=i;h=c[b>>2]|0;c[f>>2]=i;c[e>>2]=c[f>>2];h=(CQ(h,e)|0)+12|0;c[d+4>>2]=c[h>>2];yb=g;return}function KS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;b=g;e=a+80|0;d=c[e>>2]|0;c[b>>2]=d;DE(a+16|0);oP(d,c[e>>2]|0);e=a+100|0;f=c[e>>2]|0;if((f|0)==(c[a+104>>2]|0)){_M(a+96|0,b);yb=g;return}else{c[f>>2]=d;c[e>>2]=(c[e>>2]|0)+4;yb=g;return}}function LS(b,d){b=b|0;d=d|0;var e=0;e=b+11|0;if((a[e>>0]|0)<0){Fsb(c[b>>2]|0,0);c[b+4>>2]=0}else{Fsb(b,0);a[e>>0]=0}n=0;ca(510,b|0);e=n;n=0;if(e&1){e=ta(0)|0;P()|0;yub(e)}c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];e=0;while(1){if((e|0)==3)break;c[d+(e<<2)>>2]=0;e=e+1|0}Qoa(b+12|0,d+12|0);return}function MS(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;i=yb;yb=yb+16|0;h=i;anb(h,e);n=0;e=U(66,c[h>>2]|0,151356)|0;j=n;n=0;if(j&1){j=sa()|0;P()|0;XWa(h);Ea(j|0)}else{XWa(h);y6(a,g+16|0,b,c[d>>2]|0,f,e);yb=i;return c[b>>2]|0}return 0}function NS(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;i=yb;yb=yb+16|0;h=i;anb(h,e);n=0;e=U(66,c[h>>2]|0,151356)|0;j=n;n=0;if(j&1){j=sa()|0;P()|0;XWa(h);Ea(j|0)}else{XWa(h);e7(a,g+24|0,b,c[d>>2]|0,f,e);yb=i;return c[b>>2]|0}return 0}function OS(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;i=yb;yb=yb+16|0;h=i;anb(h,e);n=0;e=U(66,c[h>>2]|0,151324)|0;j=n;n=0;if(j&1){j=sa()|0;P()|0;XWa(h);Ea(j|0)}else{XWa(h);z6(a,g+16|0,b,c[d>>2]|0,f,e);yb=i;return c[b>>2]|0}return 0}function PS(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;i=yb;yb=yb+16|0;h=i;anb(h,e);n=0;e=U(66,c[h>>2]|0,151324)|0;j=n;n=0;if(j&1){j=sa()|0;P()|0;XWa(h);Ea(j|0)}else{XWa(h);f7(a,g+24|0,b,c[d>>2]|0,f,e);yb=i;return c[b>>2]|0}return 0}function QS(a){a=a|0;var b=0,d=0;d=yb;yb=yb+16|0;b=d;switch(a|0){case 5:{Ftb(b,c[37140]|0);break}case 6:{Ftb(b,c[37141]|0);break}case 3:{Ftb(b,c[37138]|0);break}case 4:{Ftb(b,c[37139]|0);break}case 30:{c[b>>2]=c[37340];break}case 31:{c[b>>2]=c[37341];break}case 28:{c[b>>2]=c[37342];break}case 29:{c[b>>2]=c[37343];break}default:Cub(b)}yb=d;return c[b>>2]|0}function RS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f+4|0;c[e>>2]=b;b=f;g=rrb(a,0)|0;if(hXa(c[g>>2]|0,c[37275]|0)|0){g=rrb(a,1)|0;g=WCb(c[g>>2]|0)|0;a=WCb(INa(2)|0)|0;Pwb(b,KJa(KJa(a,WGa(e)|0)|0,d)|0);KJa(g,c[b>>2]|0)|0;yb=f;return}else ma(51451,74885,1652,51470)}function SS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+32|0;e=g;f=g+8|0;H0(a,b);n=0;da(552,f|0,b|0);b=n;n=0;if(b&1){g=sa()|0;P()|0;Vob(a);Ea(g|0)}else{h=c[a>>2]|0;b=c[a+4>>2]|0;c[e>>2]=d;c[e+4>>2]=f;ei(h,b,e);Vob(f);yb=g;return}}function TS(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=yb;yb=yb+16|0;h=b+8|0;i=b;d=c[a>>2]|0;Gsb(b+4|0,c[d>>2]|0);c[i>>2]=c[c[a+4>>2]>>2];g=c[a+8>>2]|0;f=c[c[a+12>>2]>>2]|0;e=c[a+16>>2]|0;c[h>>2]=c[i>>2];d=d+84|0;e=st(h,g,f,e)|0;a=c[d>>2]|0;c[d>>2]=e;if(!a){yb=b;return}IM(a);RCb(a);yb=b;return}function US(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-16|0;_ia((c[g>>2]|0)+-16|0,h);c[g>>2]=(c[g>>2]|0)+-16;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function VS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+16|0;e=NF(a+76|0,b)|0;if(!e){Gsb(f,WCb(c[a+36>>2]|0)|0);e=cCa(WCb(c[a+32>>2]|0)|0,d)|0;d=Om(a+76|0,b)|0;c[d>>2]=e;yb=f;return e|0}else{e=c[e+12>>2]|0;yb=f;return e|0}return 0}function WS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1053;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1053,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function XS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;if(eCb(c[b+8>>2]|0)|0)vla(a+108|0,b+8|0);f=b+12|0;g=c[f>>2]|0;if(!(PBb(c[g+4>>2]|0)|0)){yb=h;return}c[e>>2]=c[b+8>>2];c[d>>2]=c[e>>2];if(BT(g,d)|0){yb=h;return}Iya(a,c[f>>2]|0)|0;yb=h;return}function YS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+4|0;d=c[g>>2]|0;e=c[a>>2]|0;f=d-e>>2;if(f>>>0>>0){TB(a,b-f|0);return}if(f>>>0<=b>>>0)return;b=e+(b<<2)|0;while(1){if((b|0)==(d|0))break;d=d+-4|0;a=c[d>>2]|0;c[d>>2]=0;if(a|0){Htb(a);RCb(a)}}c[g>>2]=b;return}function ZS(a,b){a=a|0;b=b|0;if(!b)return;ZS(a,c[b>>2]|0);ZS(a,c[b+4>>2]|0);Pgb(b+16|0);RCb(b);return}function _S(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=d;f=e-g|0;if(f>>>0>4294967279)ipa();if(f>>>0<11)a[b+11>>0]=f;else{i=f+16&-16;h=mla(i)|0;c[b>>2]=h;c[b+8>>2]=i|-2147483648;c[b+4>>2]=f;b=h}g=e-g|0;f=b;while(1){if((d|0)==(e|0))break;Fsb(f,a[d>>0]|0);f=f+1|0;d=d+1|0}Fsb(b+g|0,0);return}function $S(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;e=h+8|0;f=h+4|0;g=h;if(a[b+33>>0]&1)BM(IWa(150620,113073)|0);i=tI(c[b+28>>2]|0,36)|0;b=c[b+24>>2]|0;c[g>>2]=c[d+8>>2];c[e>>2]=c[g>>2];Pwb(f,Gda(b,e)|0);YA(i,c[f>>2]|0)|0;yb=h;return}function aT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-24|0;V2((c[g>>2]|0)+-24|0,h);c[g>>2]=(c[g>>2]|0)+-24;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function bT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+800|0;e=h+408|0;f=h+24|0;g=h;rjb(e,b);rjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;EU(g,d,f+(b*24|0)|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];b=b+1|0}cab(a,e);yb=h;return}function cT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+800|0;e=h+408|0;f=h+24|0;g=h;rjb(e,b);rjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;zU(g,d,f+(b*24|0)|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];b=b+1|0}cab(a,e);yb=h;return}function dT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+800|0;e=h+408|0;f=h+24|0;g=h;rjb(e,b);rjb(f,d);b=0;while(1){if((b|0)==16)break;d=e+(b*24|0)|0;TU(g,d,f+(b*24|0)|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];b=b+1|0}cab(a,e);yb=h;return}function eT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=4072;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,4072,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function fT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+416|0;e=h+216|0;f=h+24|0;g=h;Cjb(e,b);Cjb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;EU(g,d,f+(b*24|0)|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];b=b+1|0}Hab(a,e);yb=h;return}function gT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+416|0;e=h+216|0;f=h+24|0;g=h;Cjb(e,b);Cjb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;zU(g,d,f+(b*24|0)|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];b=b+1|0}Hab(a,e);yb=h;return}function hT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+416|0;e=h+216|0;f=h+24|0;g=h;Cjb(e,b);Cjb(f,d);b=0;while(1){if((b|0)==8)break;d=e+(b*24|0)|0;TU(g,d,f+(b*24|0)|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];b=b+1|0}Hab(a,e);yb=h;return}function iT(a,b){a=a|0;b=b|0;yIa(a,c[b+12>>2]|0);yIa(a,c[b+16>>2]|0);yIa(a,c[b+20>>2]|0);TW(a,b);return}function jT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(((f|0)/-24|0)*24|0)|0;c[g>>2]=d;if((f|0)>0){Uv(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function kT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+224|0;e=h+120|0;f=h+24|0;g=h;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;xqa(g,d,f+(b*24|0)|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];b=b+1|0}Iab(a,e);yb=h;return}function lT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+224|0;e=h+120|0;f=h+24|0;g=h;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;yqa(g,d,f+(b*24|0)|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];b=b+1|0}Iab(a,e);yb=h;return}function mT(a){a=a|0;var b=0;Ysb(a);Cub(a+8|0);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;Cub(a+40|0);c[a+44>>2]=0;c[a+48>>2]=0;yib(a+52|0);yib(a+64|0);b=a+76|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+92>>2]=1.0;yib(a+96|0);yib(a+108|0);return}function nT(a,b){a=a|0;b=b|0;yIa(a,c[b+8>>2]|0);yIa(a,c[b+12>>2]|0);yIa(a,c[b+16>>2]|0);TW(a,b);return}function oT(a){a=a|0;var b=0,d=0,e=0;d=a+12|0;if(!(c[d>>2]|0))return;e=a+8|0;Dla(c[e>>2]|0);c[e>>2]=0;e=c[a+4>>2]|0;b=0;while(1){if((b|0)==(e|0))break;c[(c[a>>2]|0)+(b<<2)>>2]=0;b=b+1|0}c[d>>2]=0;return}function pT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=d;b=b+88|0;d=oC(b,e)|0;if(!d)ma(81488,81381,1608,81520);else{Cpa(a,d+12|0);pV(b,e);yb=f;return}}function qT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+224|0;e=h+120|0;f=h+24|0;g=h;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;EU(g,d,f+(b*24|0)|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];b=b+1|0}Iab(a,e);yb=h;return}function rT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+224|0;e=h+120|0;f=h+24|0;g=h;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;Gqa(g,d,f+(b*24|0)|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];b=b+1|0}Iab(a,e);yb=h;return}function sT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+224|0;e=h+120|0;f=h+24|0;g=h;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;zU(g,d,f+(b*24|0)|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];b=b+1|0}Iab(a,e);yb=h;return}function tT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+224|0;e=h+120|0;f=h+24|0;g=h;Ljb(e,b);Ljb(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;TU(g,d,f+(b*24|0)|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];b=b+1|0}Iab(a,e);yb=h;return}function uT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+224|0;e=h+120|0;f=h+24|0;g=h;Y7(e,b);Y7(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;EU(g,d,f+(b*24|0)|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];b=b+1|0}Iab(a,e);yb=h;return}function vT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+224|0;e=h+120|0;f=h+24|0;g=h;Y7(e,b);Y7(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;zU(g,d,f+(b*24|0)|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];b=b+1|0}Iab(a,e);yb=h;return}function wT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+224|0;e=h+120|0;f=h+24|0;g=h;Y7(e,b);Y7(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;Po(g,d,f+(b*24|0)|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];b=b+1|0}Iab(a,e);yb=h;return}function xT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+224|0;e=h+120|0;f=h+24|0;g=h;Y7(e,b);Y7(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;Qo(g,d,f+(b*24|0)|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];b=b+1|0}Iab(a,e);yb=h;return}function yT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+224|0;e=h+120|0;f=h+24|0;g=h;Y7(e,b);Y7(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;ts(g,d,f+(b*24|0)|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];b=b+1|0}Iab(a,e);yb=h;return}function zT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+224|0;e=h+120|0;f=h+24|0;g=h;Y7(e,b);Y7(f,d);b=0;while(1){if((b|0)==4)break;d=e+(b*24|0)|0;TU(g,d,f+(b*24|0)|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];b=b+1|0}Iab(a,e);yb=h;return}function AT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;g=h+8|0;f=h;d=b+12|0;nrb(g,d);Hib(f,d);d=g+4|0;e=c[f>>2]|0;f=c[f+4>>2]|0;b=0;while(1){if(!(dhb(c[g>>2]|0,c[d>>2]|0,e,f)|0))break;i=Qab(g)|0;i=b+(Bs(a,c[i>>2]|0)|0)|0;hob(g);b=i}yb=h;return b|0}function BT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+64|0;d=h+52|0;e=h+48|0;f=h+8|0;g=h;c[e>>2]=a;a=c[b>>2]|0;if(!(eCb(a)|0)){g=0;yb=h;return g|0}c[g>>2]=a;c[d>>2]=c[g>>2];k$a(f,d);n=0;da(253,f|0,e|0);g=n;n=0;if(g&1){h=sa()|0;P()|0;Arb(f);Ea(h|0)}g=(c[f+32>>2]|0)!=0;Arb(f);yb=h;return g|0}function CT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[b+8>>2]|0;e=Cda(a,c[b+12>>2]|0)|0;d=Cda(a,c[b+16>>2]|0)|0;b=Cda(a,c[b+20>>2]|0)|0;return Hxa(c[a+32>>2]|0,f,e,d,b)|0}function DT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+128|0;e=h+72|0;f=h+24|0;g=h;Kjb(e,b);Kjb(f,d);b=0;while(1){if((b|0)==2)break;d=e+(b*24|0)|0;EU(g,d,f+(b*24|0)|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];b=b+1|0}Jab(a,e);yb=h;return}function ET(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+128|0;e=h+72|0;f=h+24|0;g=h;Kjb(e,b);Kjb(f,d);b=0;while(1){if((b|0)==2)break;d=e+(b*24|0)|0;TU(g,d,f+(b*24|0)|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];b=b+1|0}Jab(a,e);yb=h;return}function FT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+128|0;e=h+72|0;f=h+24|0;g=h;X7(e,b);X7(f,d);b=0;while(1){if((b|0)==2)break;d=e+(b*24|0)|0;EU(g,d,f+(b*24|0)|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];b=b+1|0}Jab(a,e);yb=h;return}function GT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+128|0;e=h+72|0;f=h+24|0;g=h;X7(e,b);X7(f,d);b=0;while(1){if((b|0)==2)break;d=e+(b*24|0)|0;zU(g,d,f+(b*24|0)|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];b=b+1|0}Jab(a,e);yb=h;return}function HT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+128|0;e=h+72|0;f=h+24|0;g=h;X7(e,b);X7(f,d);b=0;while(1){if((b|0)==2)break;d=e+(b*24|0)|0;Po(g,d,f+(b*24|0)|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];b=b+1|0}Jab(a,e);yb=h;return}function IT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+128|0;e=h+72|0;f=h+24|0;g=h;X7(e,b);X7(f,d);b=0;while(1){if((b|0)==2)break;d=e+(b*24|0)|0;Qo(g,d,f+(b*24|0)|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];b=b+1|0}Jab(a,e);yb=h;return}function JT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+128|0;e=h+72|0;f=h+24|0;g=h;X7(e,b);X7(f,d);b=0;while(1){if((b|0)==2)break;d=e+(b*24|0)|0;ts(g,d,f+(b*24|0)|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];b=b+1|0}Jab(a,e);yb=h;return}function KT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+128|0;e=h+72|0;f=h+24|0;g=h;X7(e,b);X7(f,d);b=0;while(1){if((b|0)==2)break;d=e+(b*24|0)|0;TU(g,d,f+(b*24|0)|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];b=b+1|0}Jab(a,e);yb=h;return}function LT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>4)<<4)|0;c[g>>2]=d;if((f|0)>0){Uv(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function MT(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;h=a+12|0;i=a+16|0;g=0;while(1){if((g|0)>=(d|0))break;e=c[h>>2]|0;f=c[i>>2]|0;if(e>>>0>>0){f=f-e>>2;j=d-g|0;f=(j|0)<(f|0)?j:f;Rkb(b,e,f);c[h>>2]=(c[h>>2]|0)+(f<<2);b=b+(f<<2)|0;e=f}else{e=Eb[c[(c[a>>2]|0)+40>>2]&511](a)|0;if((e|0)==-1)break;e=WCb(e)|0;c[b>>2]=e;b=b+4|0;e=1}g=e+g|0}return g|0}function NT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3100;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3100,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function OT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3374;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3374,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function PT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3255;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3255,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function QT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3493;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3493,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function RT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3612;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3612,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function ST(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=rrb(d,1)|0;Ota(b,c[f>>2]|0,d,0);hfa(b,40);f=rrb(d,2)|0;f=c[f>>2]|0;e=0;while(1){if(e>>>0>=(K0a(WCb(f)|0)|0)>>>0)break;do if(e|0)if(!(a[b>>0]&1)){hfa(b,44);break}else{Qua(b,140151);break}while(0);g=rrb(f,e)|0;Ota(b,c[g>>2]|0,d,0);e=e+1|0}hfa(b,41);return}function TT(a,b){a=a|0;b=b|0;if(!b)return;TT(a,c[b>>2]|0);TT(a,c[b+4>>2]|0);RCb(b);return}function UT(a,b){a=a|0;b=b|0;var d=0,e=0;b=a+80|0;d=a+100|0;e=c[d>>2]|0;if((e|0)==(c[a+104>>2]|0))_M(a+96|0,b);else{c[e>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+4}NC(a+16|0);a=c[a+96>>2]|0;oP(c[a+(((c[d>>2]|0)-a>>2)+-2<<2)>>2]|0,c[b>>2]|0);return}function VT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3064;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3064,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function WT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3338;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3338,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function XT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3219;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3219,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function YT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3457;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3457,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function ZT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3576;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3576,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function _T(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=yb;yb=yb+16|0;j=h+8|0;i=h+4|0;g=h;a=a+68|0;k=c[a>>2]|0;Pwb(j,(f?2:0)|e&1);YA(k,c[j>>2]|0)|0;f=c[a>>2]|0;Pwb(i,WCb(b)|0);YA(f,c[i>>2]|0)|0;if(!e){yb=h;return}k=c[a>>2]|0;Pwb(g,WCb(d)|0);YA(k,c[g>>2]|0)|0;yb=h;return}function $T(b,d){b=b|0;d=d|0;var e=0,f=0;c[b>>2]=d;c[b+4>>2]=0;e=b+20|0;a[e>>0]=0;a[b+21>>0]=0;c[b+24>>2]=0;c[b+28>>2]=0;f=b+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[b+60>>2]=1.0;Q8a(b,0);if(a[e>>0]&1)return;n=0;d=Q(78)|0;b=n;n=0;if(b&1){e=sa()|0;P()|0;Pdb(f);Ea(e|0)}a[e>>0]=d&1;return}function aU(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;g=h+8|0;f=h;d=b+8|0;nrb(g,d);Hib(f,d);d=g+4|0;e=c[f>>2]|0;f=c[f+4>>2]|0;b=4;while(1){if(!(dhb(c[g>>2]|0,c[d>>2]|0,e,f)|0))break;i=Qab(g)|0;i=b+(Bs(a,c[i>>2]|0)|0)|0;hob(g);b=i}yb=h;return b|0}function bU(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+64|0;d=h+52|0;e=h+48|0;f=h+8|0;g=h;c[e>>2]=a;a=c[b>>2]|0;if(!(eCb(a)|0)){g=0;yb=h;return g|0}c[g>>2]=a;c[d>>2]=c[g>>2];k$a(f,d);n=0;da(253,f|0,e|0);g=n;n=0;if(g&1){h=sa()|0;P()|0;Arb(f);Ea(h|0)}g=c[f+32>>2]|0;Arb(f);yb=h;return g|0}function cU(a,b){a=a|0;b=b|0;b=oC(a,b)|0;if(!b)return;PP(a,b)|0;return}function dU(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+16|0;f=g;anb(f,b);n=0;b=U(66,c[f>>2]|0,151364)|0;h=n;n=0;if((!(h&1)?(n=0,e=S(c[(c[b>>2]|0)+16>>2]|0,b|0)|0,h=n,n=0,!(h&1)):0)?(c[d>>2]=e,n=0,da(c[(c[b>>2]|0)+20>>2]|0,a|0,b|0),h=n,n=0,!(h&1)):0){XWa(f);yb=g;return}h=sa()|0;P()|0;XWa(f);Ea(h|0)}function eU(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=yb;yb=yb+16|0;g=i;if((a|0)==(b|0)){c[d>>2]=4;e=0;a=0}else{h=c[37419]|0;c[37419]=0;t8a()|0;a=dlb(a,g,e)|0;e=P()|0;f=c[37419]|0;if(!f)c[37419]=h;if((c[g>>2]|0)==(b|0)){if((f|0)==34){c[d>>2]=4;e=(e|0)>0|(e|0)==0&a>>>0>0;a=e?-1:0;e=e?2147483647:-2147483648}}else{c[d>>2]=4;a=0;e=0}}O(e|0);yb=i;return a|0}function fU(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;h=a+24|0;i=a+28|0;e=0;while(1){if((e|0)>=(d|0))break;f=c[h>>2]|0;g=c[i>>2]|0;if(f>>>0>>0){g=g-f>>2;j=d-e|0;g=(j|0)<(g|0)?j:g;Rkb(f,b,g);c[h>>2]=(c[h>>2]|0)+(g<<2);b=b+(g<<2)|0;e=g+e|0}else{g=c[(c[a>>2]|0)+52>>2]|0;j=WCb(c[b>>2]|0)|0;if((Gb[g&255](a,j)|0)==-1)break;b=b+4|0;e=e+1|0}}return e|0}function gU(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=yb;yb=yb+16|0;h=i;c[g>>2]=e;d=Feb(c[b+8>>2]|0)|0;b=wK(h,0)|0;if(d|0)Feb(d)|0;a:do if((b+1|0)>>>0>=2){d=b+-1|0;if(d>>>0>(f-(c[g>>2]|0)|0)>>>0)d=1;else while(1){if(!d){d=0;break a}e=a[h>>0]|0;f=c[g>>2]|0;c[g>>2]=f+1;a[f>>0]=e;h=h+1|0;d=d+-1|0}}else d=2;while(0);yb=i;return d|0}function hU(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f+8|0;d=f;a=a+12|0;nrb(e,a);Hib(d,a);a=e+4|0;b=c[d>>2]|0;d=c[d+4>>2]|0;while(1){if(!(dhb(c[e>>2]|0,c[a>>2]|0,b,d)|0)){a=0;b=5;break}g=Qab(e)|0;if((c[(c[g>>2]|0)+4>>2]|0)==6){a=1;b=5;break}hob(e)}if((b|0)==5){yb=f;return a|0}return 0}function iU(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;if((xH(a)|0)==(b|0)){yb=e;return}c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;D8(d,118549,Zzb(118549)|0);n=0;da(4022,a|0,d|0);b=n;n=0;if(b&1){e=sa()|0;P()|0;Chb(d);Ea(e|0)}Chb(d);yb=e;return}function jU(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;g=h;anb(g,d);n=0;d=U(66,c[g>>2]|0,151340)|0;i=n;n=0;if((!(i&1)?(n=0,f=S(c[(c[d>>2]|0)+16>>2]|0,d|0)|0,i=n,n=0,!(i&1)):0)?(a[e>>0]=f,n=0,da(c[(c[d>>2]|0)+20>>2]|0,b|0,d|0),i=n,n=0,!(i&1)):0){XWa(g);yb=h;return}i=sa()|0;P()|0;XWa(g);Ea(i|0)}function kU(a,b){a=a|0;b=b|0;if(!b)return;kU(a,c[b>>2]|0);kU(a,c[b+4>>2]|0);RCb(b);return}function lU(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>3)<<3)|0;c[g>>2]=d;if((f|0)>0){Uv(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function mU(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=yb;yb=yb+16|0;e=f;if(a[b+33>>0]&1)BM(IWa(150620,113153)|0);h=c[b+28>>2]|0;g=eCb(c[d+4>>2]|0)|0;g=tI(h,g?34:33)|0;d=O8(b+44|0,d+8|0)|0;Pwb(e,c[d>>2]|0);YA(g,c[e>>2]|0)|0;yb=f;return}function nU(a,b){a=a|0;b=b|0;if(!b)return;nU(a,c[b>>2]|0);nU(a,c[b+4>>2]|0);RCb(b);return}function oU(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=yb;yb=yb+32|0;f=b+24|0;d=b+16|0;g=b;UB(a,g);j=g;i=c[j+4>>2]|0;g=g+8|0;h=c[g>>2]|0;g=c[g+4>>2]|0;e=c[a+16>>2]|0;a=d;c[a>>2]=c[j>>2];c[a+4>>2]=i;d=pH(d,8)|0;a=f;c[a>>2]=h;c[a+4>>2]=g;a=pH(f,8)|0;d=B5a(e,0,d,0)|0;a=B5a(d,P()|0,a,0)|0;P()|0;yb=b;return a|0}function pU(a){a=a|0;var b=0,d=0,e=0;d=mla(136)|0;b=d+56|0;e=d+4|0;c[d>>2]=31812;c[b>>2]=31832;Hoa(b,e);c[d+128>>2]=0;c[d+132>>2]=-1;c[d>>2]=39764;c[b>>2]=39784;RKa(e);c[e>>2]=39800;e=d+36|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[e+(b<<2)>>2]=0;b=b+1|0}c[d+48>>2]=0;c[d+52>>2]=16;c[a>>2]=d;return}function qU(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=d;f=e-g|0;if(f>>>0>4294967279)ipa();if(f>>>0<11){a[b+11>>0]=f;h=b}else{i=f+16&-16;h=mla(i)|0;c[b>>2]=h;c[b+8>>2]=i|-2147483648;c[b+4>>2]=f}f=e-g|0;b=h;while(1){if((d|0)==(e|0))break;Fsb(b,a[d>>0]|0);d=d+1|0;b=b+1|0}Fsb(h+f|0,0);return}function rU(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=yb;yb=yb+16|0;h=i;anb(h,e);n=0;a=U(66,c[h>>2]|0,151356)|0;e=n;n=0;if(e&1){g=sa()|0;P()|0;XWa(h);Ea(g|0)}else{XWa(h);lda(g+20|0,b,c[d>>2]|0,f,a);yb=i;return c[b>>2]|0}return 0}function sU(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=yb;yb=yb+16|0;h=i;anb(h,e);n=0;a=U(66,c[h>>2]|0,151324)|0;e=n;n=0;if(e&1){g=sa()|0;P()|0;XWa(h);Ea(g|0)}else{XWa(h);mda(g+20|0,b,c[d>>2]|0,f,a);yb=i;return c[b>>2]|0}return 0}function tU(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;f=d+4|0;g=d;c[g>>2]=c[b+8>>2];e=Cda(a,c[b+12>>2]|0)|0;b=Cda(a,c[b+16>>2]|0)|0;a=c[a+32>>2]|0;c[f>>2]=c[g>>2];b=nHa(a,f,e,b)|0;yb=d;return b|0}function uU(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;T_a(a,c[b+8>>2]|0);T_a(a,c[b+12>>2]|0);T_a(a,c[b+16>>2]|0);b=tI(c[a+28>>2]|0,-3)|0;Pwb(e,80);YA(b,c[e>>2]|0)|0;yb=d;return}function vU(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=b+4|0;e=(c[d>>2]|0)-(c[b>>2]|0)|0;if(!e)return;n=0;da(2365,a|0,e>>2|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Qcb(a);Ea(e|0)}Wva(a,c[b>>2]|0,c[d>>2]|0);return}function wU(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2461;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2461,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function xU(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=iGa(bc(c[a+104>>2]|0)|0,1)|0;d=c[a+108>>2]|0;if(d)b=bc(d)|0;b=iGa(b,2)|0;d=WCb(c[a+16>>2]|0)|0;a=Ryb(a)|0;while(1){e=d;if((a|0)==(e|0))break;f=d;g=c[f+8>>2]|0;f=JX(c[f+12>>2]|0)|0;f=iGa(iGa(b,g)|0,f)|0;b=f;d=c[e+4>>2]|0}return b|0}function yU(a){a=a|0;var b=0;x3(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function zU(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,J(c[b>>2]|0,c[d>>2]|0)|0);return}case 2:{Heb(a,BSa(c[b>>2]|0,c[b+4>>2]|0,c[d>>2]|0,c[d+4>>2]|0)|0,P()|0);return}case 3:{pUa(a,+L8a(b)*+L8a(d));return}case 4:{kEa(a,+K8a(b)*+K8a(d));return}case 6:case 0:case 5:{ma(141129,111484,595,112040);break}default:ma(141129,111484,597,112040)}}function AU(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2115;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2115,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function BU(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);_Va(a);sV(a,c[b+16>>2]|0);sV(a,c[b+20>>2]|0);sV(a,c[b+24>>2]|0);y9(a);yb=d;return}function CU(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=Ypb(a)|0;c[e>>2]=b;c[e+4>>2]=d;a=c[d+4>>2]|0;d=c[d>>2]|0;if(!((!(OBb(d)|0)?!(aCb(d)|0):0)?!(VBb(d)|0):0))f=4;a:do if((f|0)==4)if((a|0)==6)a=0;else{switch(b|0){case 7:case 5:case 2:break a;default:{}}a=0}while(0);c[e+8>>2]=a;return e|0}function DU(b,d){b=b|0;d=d|0;var e=0;if(a[b+33>>0]&1)BM(IWa(150620,112689)|0);if((c[d+8>>2]|0)==1){e=uXa(d+16|0,0)|0;yIa(b,c[e>>2]|0)}TW(b,d);return}function EU(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)-(c[d>>2]|0)|0);return}case 2:{Heb(a,Ndb(c[b>>2]|0,c[b+4>>2]|0,c[d>>2]|0,c[d+4>>2]|0)|0,P()|0);return}case 3:{pUa(a,+L8a(b)-+L8a(d));return}case 4:{kEa(a,+K8a(b)-+K8a(d));return}case 6:case 0:case 5:{ma(141129,111484,509,125122);break}default:ma(141129,111484,511,125122)}}function FU(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1457;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1457,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function GU(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+32|0;e=f;zsb(a);d=c[d+8>>2]|0;if(d|0?(AB(e,b,d),c[a>>2]=c[e>>2],c[a+4>>2]=c[e+4>>2],c[a+8>>2]=c[e+8>>2],c[a+12>>2]=c[e+12>>2],c[a+16>>2]=c[e+16>>2],c[a+20>>2]=c[e+20>>2],c[a+24>>2]=c[e+24>>2],lsb(a)|0):0){yb=f;return}c[a+24>>2]=c[37374];yb=f;return}function HU(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0;i=c[b+8>>2]|0;h=d[b+12>>0]|0;g=WCb(c[b+16>>2]|0)|0;f=Cda(a,c[b+20>>2]|0)|0;e=Cda(a,c[b+24>>2]|0)|0;return Ifa(c[a+32>>2]|0,i,h,g,f,e,c[b+4>>2]|0)|0}function IU(a){a=a|0;var b=0;m8(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function JU(b,d){b=b|0;d=d|0;var e=0;e=b+11|0;if((a[e>>0]|0)<0){Fsb(c[b>>2]|0,0);c[b+4>>2]=0}else{Fsb(b,0);a[e>>0]=0}n=0;ca(510,b|0);e=n;n=0;if(e&1){e=ta(0)|0;P()|0;yub(e)}c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];e=0;while(1){if((e|0)==3)break;c[d+(e<<2)>>2]=0;e=e+1|0}RQ(b+16|0,d+16|0);return}function KU(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61004)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(_xb(c[a>>2]|0)|0){e=$Xa(a+8|0)|0;O(P()|0);yb=d;return e|0}else ma(60955,55544,1580,61044);return 0}function LU(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=0;d=(a[d+11>>0]|0)<0?c[d>>2]|0:d;i=c[37419]|0;c[37419]=0;e=qob(d,f)|0;h=c[37419]|0;c[37419]=i;if((h|0)==34)j2(b);if((c[f>>2]|0)==(d|0))n2(b);yb=g;return e|0}function MU(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+48|0;e=f;xj(a,d);VSa(e,d);Lvb(e);n=0;ca(541,e|0);g=n;n=0;if((!(g&1)?(n=0,ca(489,e|0),g=n,n=0,!(g&1)):0)?(n=0,ea(176,a|0,d|0,c[b+36>>2]|0),g=n,n=0,!(g&1)):0){osa(e);yb=f;return}g=sa()|0;P()|0;osa(e);Ea(g|0)}function NU(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1639;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1639,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function OU(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)!=(c[d>>2]|0)&1);return}case 2:{Bqb(a,((c[b>>2]|0)!=(c[d>>2]|0)?1:(c[b+4>>2]|0)!=(c[d+4>>2]|0))&1);return}case 3:{Bqb(a,+L8a(b)!=+L8a(d)&1);return}case 4:{Bqb(a,+K8a(b)!=+K8a(d)&1);return}case 6:case 0:case 5:{ma(141129,111484,763,112106);break}default:ma(141129,111484,765,112106)}}function PU(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)==(c[d>>2]|0)&1);return}case 2:{Bqb(a,((c[b>>2]|0)==(c[d>>2]|0)?(c[b+4>>2]|0)==(c[d+4>>2]|0):0)&1);return}case 3:{Bqb(a,+L8a(b)==+L8a(d)&1);return}case 4:{Bqb(a,+K8a(b)==+K8a(d)&1);return}case 6:case 0:case 5:{ma(141129,111484,750,111997);break}default:ma(141129,111484,752,111997)}}function QU(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1182;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1182,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function RU(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);_Va(a);sV(a,c[b+12>>2]|0);sV(a,c[b+16>>2]|0);sV(a,c[b+20>>2]|0);y9(a);yb=d;return}function SU(a,b){a=a|0;b=b|0;if(!b)return;SU(a,c[b>>2]|0);SU(a,c[b+4>>2]|0);RCb(b);return}function TU(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)+(c[d>>2]|0)|0);return}case 2:{Heb(a,Yeb(c[b>>2]|0,c[b+4>>2]|0,c[d>>2]|0,c[d+4>>2]|0)|0,P()|0);return}case 3:{pUa(a,+L8a(b)+ +L8a(d));return}case 4:{kEa(a,+K8a(b)+ +K8a(d));return}case 6:case 0:case 5:{ma(141129,111484,496,125111);break}default:ma(141129,111484,498,125111)}}function UU(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;SEa(c[a>>2]|0,40)|0;Fmb(d,c[a+28>>2]|0,c[a>>2]|0);Ik(d,b);_Va(a);d=c[b+32>>2]|0;if(d|0?!(Gzb(c[d>>2]|0)|0):0)sV(a,d);sV(a,c[b+28>>2]|0);y9(a);yb=e;return}function VU(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2647;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2647,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function WU(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=b;b=oC(a+164|0,d)|0;if(!b){b=Tdb(a)|0;d=wm(a+164|0,d)|0;c[d>>2]=b;d=b;yb=e;return d|0}else{d=c[b+12>>2]|0;yb=e;return d|0}return 0}function XU(){var a=0,b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;a=ab(98636)|0;if(!a){b=0;yb=d;return b|0}c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;D8(b,a,Zzb(a)|0);n=0;a=S(284,b|0)|0;e=n;n=0;if(e&1){e=sa()|0;P()|0;Chb(b);Ea(e|0)}Chb(b);e=(a|0)!=0;yb=d;return e|0}function YU(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2325;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2325,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function ZU(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>2)<<2)|0;c[g>>2]=d;if((f|0)>0){Uv(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function _U(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(20)|0;c[b>>2]=g;c[b+4>>2]=d+8;d=b+8|0;a[d>>0]=0;n=0;da(73,g+8|0,f|0);f=n;n=0;if(!(f&1)){a[d>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}d=sa()|0;P()|0;c[b>>2]=0;if(!g)Ea(d|0);RCb(g);Ea(d|0)}function $U(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2684;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2684,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function aV(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;h=i;c[h>>2]=b;c[h+4>>2]=d;g=a+4|0;f=0;b=0;while(1){d=c[a>>2]|0;e=(c[g>>2]|0)-d>>2;if(f>>>0>=e>>>0)break;if(Cga(h,c[d+(f<<2)>>2]|0)|0){e=c[a>>2]|0;c[e+(f-b<<2)>>2]=c[e+(f<<2)>>2]}else b=b+1|0;f=f+1|0}eva(a,e-b|0);yb=i;return}function bV(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);b=b+8|0;if(!(c[b>>2]|0)){SEa(c[a>>2]|0,41)|0;yb=d;return}else{_Va(a);sV(a,c[b>>2]|0);y9(a);yb=d;return}}function cV(a){a=a|0;var b=0;if((QB(149292,a)|0)==149296){a=0;return a|0}b=(J$(149292,a)|0)+32|0;b=nKa(c[b>>2]|0)|0;aua(b+4|0,a)|0;a=b;return a|0}function dV(a,b){a=a|0;b=b|0;var d=0,e=0;b=a+64|0;d=a+84|0;e=c[d>>2]|0;if((e|0)==(c[a+88>>2]|0))_M(a+80|0,b);else{c[e>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+4}OE(a);a=c[a+80>>2]|0;yO(c[a+(((c[d>>2]|0)-a>>2)+-2<<2)>>2]|0,c[b>>2]|0);return}function eV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=Cda(a,c[b+8>>2]|0)|0;e=Cda(a,c[b+12>>2]|0)|0;d=Cda(a,c[b+16>>2]|0)|0;return KFa(c[a+32>>2]|0,f,e,d,c[b+4>>2]|0)|0}function fV(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61140)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(_xb(c[a>>2]|0)|0){$Xa(a+8|0)|0;e=P()|0;yb=d;return e|0}else ma(60955,55544,1598,61184);return 0}function gV(a){a=a|0;var b=0;b=Qqb(a)|0;if(!b)return 0;a=c[b+16>>2]|0;if(!a)return 0;if(c[b+12>>2]|0)return 0;if(c[b+4>>2]|0)return 0;a=Aqb(a)|0;if(!a)return 0;if((c[a+8>>2]|0)!=15)return 0;a=Mqb(c[a+16>>2]|0)|0;if(!a)return 0;else{a=(Peb(a+8|0)|0)>>>0>2147483646;return (a?0:b)|0}return 0}function hV(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61069)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(_xb(c[a>>2]|0)|0){e=$Xa(a+8|0)|0;P()|0;yb=d;return e|0}else ma(60955,55544,1589,61112);return 0}function iV(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+48|0;h=i+32|0;g=i+16|0;e=i;if(alb(135430,a[d>>0]|0)|0){f=Poa(d)|0;c[e>>2]=b;c[e+4>>2]=f|32768;c[e+8>>2]=438;e=bqb(Ka(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;Ja(221,g|0)|0}b=wx(e,d)|0;if(!b){c[h>>2]=e;Ma(6,h|0)|0;b=0}}else b=0}else{c[37419]=22;b=0}yb=i;return b|0}function jV(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);_Va(a);sV(a,c[b+8>>2]|0);sV(a,c[b+12>>2]|0);sV(a,c[b+16>>2]|0);y9(a);yb=d;return}function kV(a,b){a=a|0;b=b|0;if(!b)return;kV(a,c[b>>2]|0);kV(a,c[b+4>>2]|0);Ogb(b+16|0);RCb(b);return}function lV(a,b){a=a|0;b=b|0;if(!b)return;lV(a,c[b>>2]|0);lV(a,c[b+4>>2]|0);Ogb(b+16|0);RCb(b);return}function mV(a,b){a=a|0;b=b|0;if(!b)return;mV(a,c[b>>2]|0);mV(a,c[b+4>>2]|0);Ogb(b+16|0);RCb(b);return}function nV(a,b){a=a|0;b=b|0;if(!b)return;nV(a,c[b>>2]|0);nV(a,c[b+4>>2]|0);Ogb(b+16|0);RCb(b);return}function oV(a,b){a=a|0;b=b|0;if(!b)return;oV(a,c[b>>2]|0);oV(a,c[b+4>>2]|0);Ogb(b+16|0);RCb(b);return}function pV(a,b){a=a|0;b=b|0;b=oC(a,b)|0;if(!b)return;nS(a,b)|0;return}function qV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2952;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2952,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function rV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1797;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1797,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function sV(b,d){b=b|0;d=d|0;var e=0;if(!(a[b+8>>0]&1))gQa(c[b>>2]|0,c[b+4>>2]|0)|0;if(a[b+20>>0]&1){e=IWa(c[b>>2]|0,98321)|0;IWa(IWa(e,ala(c[d+4>>2]|0)|0)|0,126838)|0}i$a(b,d);IWa(c[b>>2]|0,c[b+16>>2]|0)|0;return}function tV(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){do{e=b;b=znb(b|0,c|0,10,0)|0;f=c;c=P()|0;g=BSa(b|0,c|0,-10,-1)|0;g=Yeb(e|0,f|0,g|0,P()|0)|0;P()|0;d=d+-1|0;a[d>>0]=g&255|48}while(f>>>0>9|(f|0)==9&e>>>0>4294967295);c=b}else c=b;if(c)do{g=c;c=(c>>>0)/10|0;f=(g+(J(c,-10)|0)|48)&255;d=d+-1|0;a[d>>0]=f}while(g>>>0>=10);return d|0}function uV(a,b){a=a|0;b=b|0;var d=0,e=0;e=Cda(a,c[b+8>>2]|0)|0;d=Cda(a,c[b+12>>2]|0)|0;b=Cda(a,c[b+16>>2]|0)|0;return fGa(c[a+32>>2]|0,e,d,b)|0}function vV(a){a=a|0;var b=0,d=0;b=a+8|0;d=c[b>>2]|0;if(!d){d=0;return d|0}if((c[d>>2]|0)==(a|0)){c[d>>2]=0;a=c[b>>2]|0;b=c[a+4>>2]|0;if(!b){d=a;return d|0}d=rQa(b)|0;return d|0}else{c[d+4>>2]=0;a=c[b>>2]|0;b=c[a>>2]|0;if(!b){d=a;return d|0}d=rQa(b)|0;return d|0}return 0}function wV(a){a=a|0;var b=0;$4(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function xV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=94;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,94,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function yV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=(Tfb(c[b>>2]|0)|0)+16|0;if(!(c[e>>2]|0))ma(104460,104084,166,104473);d=a+84|0;e=c[d>>2]|0;b=0;while(1){if((b|0)==-1)break;f=b+-1|0;rMa(e+(f*12|0)|0);b=f}c[d>>2]=e+-12;Aea(a+44|0);return}function zV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=(Tfb(c[b>>2]|0)|0)+16|0;if(!(c[e>>2]|0))ma(104460,104084,166,104473);d=a+84|0;e=c[d>>2]|0;b=0;while(1){if((b|0)==-1)break;f=b+-1|0;tMa(e+(f*12|0)|0);b=f}c[d>>2]=e+-12;Cea(a+44|0);return}function AV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=(Tfb(c[b>>2]|0)|0)+16|0;if(!(c[e>>2]|0))ma(104460,104084,166,104473);d=a+84|0;e=c[d>>2]|0;b=0;while(1){if((b|0)==-1)break;f=b+-1|0;uMa(e+(f*12|0)|0);b=f}c[d>>2]=e+-12;Dea(a+44|0);return}function BV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=439;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,439,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function CV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2722;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2722,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function DV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+48|0;d=e+4|0;f=e;VSa(d,a);Pwb(f,31);hpb(d,c[f>>2]|0);Lvb(d);n=0;da(2323,d|0,b|0);b=n;n=0;if(!(b&1)?(n=0,ca(489,d|0),f=n,n=0,!(f&1)):0){osa(d);yb=e;return}f=sa()|0;P()|0;osa(d);Ea(f|0)}function EV(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;e=c[37103]|0;c[37103]=e+1;f5(b,e);n=0;U(77,b|0,55710)|0;e=n;n=0;if(e&1){e=sa()|0;P()|0;Chb(b);Ea(e|0)}c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}Chb(b);yb=d;return}function FV(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,59378)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(zxb(c[a>>2]|0)|0){e=(eCb(c[a+4>>2]|0)|0)&1;yb=d;return e|0}else ma(59415,55544,1366,59442);return 0}function GV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-f)|0;c[g>>2]=d;if((f|0)>0){Uv(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function HV(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;e=rrb(a,0)|0;if(hXa(c[e>>2]|0,c[37214]|0)|0){e=rrb(a,2)|0;e=WCb(c[e>>2]|0)|0;a=WCb(INa(2)|0)|0;a=KJa(a,yTa()|0)|0;Pwb(b,KJa(a,INa(0)|0)|0);KJa(e,c[b>>2]|0)|0;yb=d;return}else ma(53302,74885,1589,53323)}function IV(a,b){a=a|0;b=b|0;var d=0,e=0;b=a+80|0;d=a+100|0;e=c[d>>2]|0;if((e|0)==(c[a+104>>2]|0))_M(a+96|0,b);else{c[e>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+4}xE(a+16|0);a=c[a+96>>2]|0;jP(c[a+(((c[d>>2]|0)-a>>2)+-2<<2)>>2]|0,c[b>>2]|0);return}function JV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=478;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,478,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function KV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2607;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2607,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function LV(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;D8(b,138684,Zzb(138684)|0);n=0;a=U(214,b|0,a|0)|0;e=n;n=0;if(e&1){e=sa()|0;P()|0;Chb(b);Ea(e|0)}else{Chb(b);yb=d;return a|0}return 0}function MV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=514;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,514,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function NV(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;Ybb(b+96|0,c);d=b+93|0;a[d>>0]=1;e=b+92|0;do{f=(Yi(b,c)|0)&1;a[e>>0]=f;if(!(a[d>>0]&1)){if((f<<24>>24==0?yw(b,c)|0:0)?Yi(b,c)|0:0)a[e>>0]=1}else{a[d>>0]=0;a[e>>0]=1}}while((a[e>>0]&1)!=0);return}function OV(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;Ybb(b+96|0,c);d=b+93|0;a[d>>0]=1;e=b+92|0;do{f=(Zi(b,c)|0)&1;a[e>>0]=f;if(!(a[d>>0]&1)){if((f<<24>>24==0?zw(b,c)|0:0)?Zi(b,c)|0:0)a[e>>0]=1}else{a[d>>0]=0;a[e>>0]=1}}while((a[e>>0]&1)!=0);return}function PV(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;Ybb(b+96|0,c);d=b+93|0;a[d>>0]=1;e=b+92|0;do{f=(_i(b,c)|0)&1;a[e>>0]=f;if(!(a[d>>0]&1)){if((f<<24>>24==0?Aw(b,c)|0:0)?_i(b,c)|0:0)a[e>>0]=1}else{a[d>>0]=0;a[e>>0]=1}}while((a[e>>0]&1)!=0);return}function QV(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;Ybb(b+96|0,c);d=b+93|0;a[d>>0]=1;e=b+92|0;do{f=($i(b,c)|0)&1;a[e>>0]=f;if(!(a[d>>0]&1)){if((f<<24>>24==0?Bw(b,c)|0:0)?$i(b,c)|0:0)a[e>>0]=1}else{a[d>>0]=0;a[e>>0]=1}}while((a[e>>0]&1)!=0);return}function RV(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;Ybb(b+96|0,c);d=b+93|0;a[d>>0]=1;e=b+92|0;do{f=(aj(b,c)|0)&1;a[e>>0]=f;if(!(a[d>>0]&1)){if((f<<24>>24==0?Cw(b,c)|0:0)?aj(b,c)|0:0)a[e>>0]=1}else{a[d>>0]=0;a[e>>0]=1}}while((a[e>>0]&1)!=0);return}function SV(b,d,e){b=b|0;d=d|0;e=e|0;if(a[b+12>>0]&1)BM(IWa(Ym(IWa(Ym(IWa(150620,112315)|0,e)|0,112332)|0,d)|0,139927)|0);a[(c[b>>2]|0)+d>>0]=e;a[(c[b>>2]|0)+(d+1)>>0]=e>>>8;a[(c[b>>2]|0)+(d+2)>>0]=e>>>16;a[(c[b>>2]|0)+(d+3)>>0]=e>>>24;return}function TV(a,b,d){a=a|0;b=b|0;d=d|0;MW(d,b);if(!(Yrb(d+84|0)|0))return;if(!(dub(c[d+84>>2]|0,c[37410]|0)|0))return;if(!(dub(c[d+88>>2]|0,c[37386]|0)|0))return;G1a(d+100|0,1,0)|0;G1a(d+104|0,2,0)|0;return}function UV(a,b){a=a|0;b=b|0;var d=0,e=0;d=Hfb(c[a+4>>2]|0)|0;e=sY(WCb(kH(Vr(b,1)|0)|0)|0)|0;c[d+8>>2]=e;e=$db(a,Vr(b,2)|0)|0;c[d+12>>2]=e;e=$db(a,Vr(b,3)|0)|0;c[d+16>>2]=e;b=$db(a,Vr(b,4)|0)|0;c[d+20>>2]=b;Wja(d);return d|0}function VV(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=yb;yb=yb+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=Ndb(h^a|0,g^b|0,h|0,g|0)|0;b=P()|0;Pk(a,b,Ndb(k^d|0,j^e|0,k|0,j|0)|0,P()|0,i)|0;e=Ndb(c[i>>2]^h|0,c[i+4>>2]^g|0,h|0,g|0)|0;d=P()|0;yb=f;return (O(d|0),e)|0}function WV(a,b){a=a|0;b=b|0;var d=0,e=0;$lb(a);c[a+24>>2]=b;d=a+32|0;yib(d);e=a+44|0;c[e>>2]=0;c[a+48>>2]=0;c[a+52>>2]=0;n=0;da(2324,b|0,a|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;Vob(e);Khb(d);Hqb(a);Ea(b|0)}else return}function XV(a,b){a=a|0;b=b|0;var d=0,e=0;b=a+80|0;d=a+100|0;e=c[d>>2]|0;if((e|0)==(c[a+104>>2]|0))_M(a+96|0,b);else{c[e>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+4}CE(a+16|0);a=c[a+96>>2]|0;oP(c[a+(((c[d>>2]|0)-a>>2)+-2<<2)>>2]|0,c[b>>2]|0);return}function YV(b,c,d){b=b|0;c=c|0;d=d|0;if(!(a[b+12>>0]&1)){c=dxa(d,b,c)|0;return c|0}BM(IWa(Ym(IWa(Ym(IWa(150620,112416)|0,d)|0,112332)|0,c)|0,139927)|0);c=dxa(d,b,c)|0;return c|0}function ZV(a,b){a=a|0;b=b|0;var d=0;if((vxb()|0)>>>0>>0)Apa();if(b>>>0<=357913941){d=mla(b*12|0)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b*12|0);return}a=oa(8)|0;n=0;da(67,a|0,138616);d=n;n=0;if(d&1){d=sa()|0;P()|0;va(a|0);Ea(d|0)}else{c[a>>2]=50788;za(a|0,39592,473)}}function _V(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,57434)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}qy(a,150452,0,0)|0;SEa(150452,10)|0;yb=d;return}function $V(a,b){a=a|0;b=b|0;var d=0,e=0;e=Cda(a,c[b+8>>2]|0)|0;d=Cda(a,c[b+12>>2]|0)|0;b=Cda(a,c[b+16>>2]|0)|0;return uHa(c[a+32>>2]|0,e,d,b)|0}function aW(a,b){a=a|0;b=b|0;var d=0,e=0;e=Cda(a,c[b+8>>2]|0)|0;d=Cda(a,c[b+12>>2]|0)|0;b=Cda(a,c[b+16>>2]|0)|0;return vHa(c[a+32>>2]|0,e,d,b)|0}function bW(){var a=0,b=0,d=0,e=0;d=yb;yb=yb+16|0;a=d;n=0;b=U(212,1,a|0)|0;e=n;n=0;do if(!(e&1))if(!b){b=c[a>>2]|0;e=c[a+4>>2]|0;b=BSa(b|0,((b|0)<0)<<31>>31|0,1e9,0)|0;e=Yeb(b|0,P()|0,e|0,((e|0)<0)<<31>>31|0)|0;O(P()|0);yb=d;return e|0}else{n=0;da(4187,c[37419]|0,135486);n=0;break}while(0);e=ta(0)|0;P()|0;yub(e);return 0}function cW(a,b){a=a|0;b=b|0;var d=0,e=0;b=a+80|0;d=a+100|0;e=c[d>>2]|0;if((e|0)==(c[a+104>>2]|0))_M(a+96|0,b);else{c[e>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+4}DE(a+16|0);a=c[a+96>>2]|0;oP(c[a+(((c[d>>2]|0)-a>>2)+-2<<2)>>2]|0,c[b>>2]|0);return}function dW(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,62529)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Nub(c[a>>2]|0)|0){e=WCb(c[a+12>>2]|0)|0;yb=d;return e|0}else ma(62467,55544,1776,62575);return 0}function eW(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;b=(c[a+24>>2]|0)==0|b;c[a+16>>2]=b;if(!(c[a+20>>2]&b)){yb=d;return}a=oa(16)|0;Yqb();c[e>>2]=1;c[e+4>>2]=47612;n=0;da(4189,a|0,e|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;va(a|0);a=e}else{n=0;ea(122,a|0,38160,397);n=0;a=sa()|0;P()|0}Ea(a|0)}function fW(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if((d|0)==(b|0))return b|0;g=a+4|0;e=c[g>>2]|0;f=b;a=d;while(1){if((a|0)==(e|0))break;h=c[a>>2]|0;c[a>>2]=0;d=c[f>>2]|0;c[f>>2]=h;if(d|0)RCb(d);f=f+4|0;a=a+4|0}a=c[g>>2]|0;while(1){if((f|0)==(a|0))break;a=a+-4|0;d=c[a>>2]|0;c[a>>2]=0;if(d|0)RCb(d)}c[g>>2]=f;return b|0}function gW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=700;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,700,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function hW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=yb;yb=yb+16|0;e=g;dpb(a);f=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){d=b;if((f|0)==(d|0)){b=5;break}c[e>>2]=c[b>>2];n=0;b=U(132,a|0,e|0)|0;h=n;n=0;if(h&1){b=6;break}c[b>>2]=0;b=d+4|0}if((b|0)==5){yb=g;return}else if((b|0)==6){h=sa()|0;P()|0;Ckb(a);Ea(h|0)}}function iW(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=e-d|0;if(g>>>0>4294967279)ipa();if(g>>>0<11)a[b+11>>0]=g;else{h=g+16&-16;f=mla(h)|0;c[b>>2]=f;c[b+8>>2]=h|-2147483648;c[b+4>>2]=g;b=f}f=b;while(1){if((d|0)==(e|0))break;Fsb(f,a[d>>0]|0);d=d+1|0;f=f+1|0}Fsb(b+g|0,0);return}function jW(a){a=a|0;var b=0,d=0,e=0;y3a(a);c[a>>2]=40996;b=a+44|0;Jeb(b);d=a+64|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;g[a+80>>2]=1.0;n=0;ca(519,a+84|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Pdb(d);y5a(b);gcb(a);Ea(e|0)}else return}function kW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=736;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,736,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function lW(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;h=yb;yb=yb+16|0;f=h+8|0;j=h+4|0;g=h;i=c[d+4>>2]|0;c[j>>2]=c[e+8>>2];c[f>>2]=c[j>>2];e=CQ(i,f)|0;if(!(Yrb(e)|0)?(a[e+20>>0]&1)==0:0){AB(b,d,c[e+16>>2]|0);yb=h;return}c[g>>2]=c[37329];c[f>>2]=c[g>>2];Ulb(b,f);yb=h;return}function mW(a){a=a|0;var b=0,d=0,e=0,f=0.0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61278)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(_xb(c[a>>2]|0)|0){f=+K8a(a+8|0);yb=d;return +f}else ma(60955,55544,1616,61318);return +(0.0)}function nW(a){a=a|0;var b=0,d=0,e=0,f=0.0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61213)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(_xb(c[a>>2]|0)|0){f=+L8a(a+8|0);yb=d;return +f}else ma(60955,55544,1607,61253);return +(0.0)}function oW(a,b){a=a|0;b=b|0;var d=0;if((Oxb()|0)>>>0>>0)Apa();if(b>>>0<=178956970){d=mla(b*24|0)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b*24|0);return}a=oa(8)|0;n=0;da(67,a|0,138616);d=n;n=0;if(d&1){d=sa()|0;P()|0;va(a|0);Ea(d|0)}else{c[a>>2]=50788;za(a|0,39592,473)}}function pW(a,b){a=a|0;b=b|0;if(!b)return;pW(a,c[b>>2]|0);pW(a,c[b+4>>2]|0);Nrb(b+16|0);RCb(b);return}function qW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2077;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2077,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function rW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;d=f;if(!(eCb(c[b>>2]|0)|0)){yb=f;return}e=a+44|0;if((C8(e,b)|0)==(a+48|0)){Cub(d);c[b>>2]=c[d>>2];yb=f;return}else{_2(e,b);yb=f;return}}function sW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=b;b=c[a>>2]|0;a=e6(b,O8(c[a+4>>2]|0,e)|0)|0;b=a+4|0;d=c[b>>2]|0;if((d|0)==(c[a+8>>2]|0)){_M(a,e);yb=f;return}else{c[d>>2]=c[e>>2];c[b>>2]=(c[b>>2]|0)+4;yb=f;return}}function tW(a,b){a=a|0;b=b|0;var d=0;if((Wub()|0)>>>0>>0)Apa();if(b>>>0<=268435455){d=mla(b<<4)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<4);return}a=oa(8)|0;n=0;da(67,a|0,138616);d=n;n=0;if(d&1){d=sa()|0;P()|0;va(a|0);Ea(d|0)}else{c[a>>2]=50788;za(a|0,39592,473)}}function uW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2371;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2371,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function vW(a,b){a=a|0;b=b|0;b=Mba(a,b)|0;if((b|0)==(a+4|0))return;oM(a,b)|0;return}function wW(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-16|0;F$(f);b=f}c[e>>2]=d;f=c[a>>2]|0;$Wa(c[a+12>>2]|0,f,(c[a+8>>2]|0)-f>>4)}return}function xW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=292;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,292,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function yW(a,b){a=a|0;b=b|0;var e=0;e=WCb(c[b+16>>2]|0)|0;if(!e)return;if(e>>>0>=(d[b+8>>0]|0)>>>0)return;e=b+32|0;switch(c[e>>2]|0){case 3:{c[e>>2]=1;b=b+28|0;a=pVa(c[c[a+44>>2]>>2]|0,33,c[b>>2]|0)|0;c[b>>2]=a;return}case 4:{c[e>>2]=2;b=b+28|0;a=pVa(c[c[a+44>>2]>>2]|0,34,c[b>>2]|0)|0;c[b>>2]=a;return}default:return}}function zW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=yb;yb=yb+64|0;f=e+48|0;d=e+16|0;g=e;c[f>>2]=b;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;rqb(d);mib(g);c[d+24>>2]=c[g>>2];c[d+28>>2]=a;n=0;da(3735,d|0,f|0);b=n;n=0;if(b&1){g=sa()|0;P()|0;Arb(d);Vob(a);Ea(g|0)}else{Arb(d);yb=e;return}}function AW(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(24)|0;c[b>>2]=g;c[b+4>>2]=d+8;c[g+8>>2]=c[c[f>>2]>>2];f=g+12|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function BW(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+16|0;g=f+4|0;e=f;gy(g,a);b=(f9(g,b)|0)==0;Khb(g);if(b){yb=f;return}a=a+32|0;if(c[a>>2]|0)ma(75316,75265,34,75329);Gsb(e,d);g=Dpb(c[e>>2]|0)|0;c[a>>2]=g;yb=f;return}function CW(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,62223)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Pvb(c[a>>2]|0)|0){e=WCb(c[a+16>>2]|0)|0;yb=d;return e|0}else ma(62105,55544,1739,62265);return 0}function DW(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;c[b>>2]=e;c[b+4>>2]=d;h=b+8|0;hCb(h);if(!(cub(g,c[37044]|0)|0))ma(51784,51625,1011,51814);if(dub(g,c[37043]|0)|0){f=Tj(e,d,f)|0;c[h>>2]=f;f=1;h=b+12|0;a[h>>0]=f;return}else{c[h>>2]=g;f=0;h=b+12|0;a[h>>0]=f;return}}function EW(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=b+4|0;e=(c[d>>2]|0)-(c[b>>2]|0)|0;if(!e)return;n=0;da(621,a|0,(e|0)/12|0|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Qcb(a);Ea(e|0)}toa(a,c[b>>2]|0,c[d>>2]|0);return}function FW(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;c[a>>2]=0;e=a+4|0;c[e>>2]=0;c[a+8>>2]=0;c[a+12>>2]=c[d>>2];vFa(a);n=0;da(4200,c[e>>2]|0,b|0);d=n;n=0;if(d&1){e=sa()|0;P()|0;V5(a);Ea(e|0)}else{c[e>>2]=(c[e>>2]|0)+24;return}}function GW(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,60915)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(_xb(c[a>>2]|0)|0){e=Peb(a+8|0)|0;yb=d;return e|0}else ma(60955,55544,1571,60979);return 0}function HW(b,c){b=b|0;c=c|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=yb;yb=yb+32|0;d=k+16|0;h=k;g=0;while(1){if((g|0)==8)break;UB(c+(g*24|0)|0,h);i=e[h>>1]|0;j=g<<1;f=0;while(1){if((f|0)==2)break;l=$ka(d,j+f|0)|0;a[l>>0]=i>>>(f<<3);f=f+1|0}g=g+1|0}f=b+16|0;do{a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}while((b|0)<(f|0));yb=k;return}function IW(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;e=i+4|0;f=i;c[e>>2]=b;c[f>>2]=d;if(!(c[d>>2]|0))ma(134794,134747,415,134801);g=a+8|0;h=c[g>>2]|0;if(h>>>0<(c[a+12>>2]|0)>>>0){Fmb(h,b,d);c[g>>2]=(c[g>>2]|0)+8;yb=i;return}else{WG(a+4|0,e,f);yb=i;return}}function JW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=624;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,624,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function KW(b){b=b|0;var d=0,e=0;if(a[b+72>>0]&1)BM(IWa(150620,112482)|0);d=E3(b,0)|0;Jaa(b,134040);e=b+80|0;if((a[e+11>>0]|0)<0){e=c[e>>2]|0;Jaa(b,e);gF(b,d);return}else{Jaa(b,e);gF(b,d);return}}function LW(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+16|0;g=f+4|0;e=f;Lba(g,a);b=(f9(g,b)|0)==0;Khb(g);if(b){yb=f;return}a=a+12|0;if(c[a>>2]|0)ma(75316,75265,34,75329);Gsb(e,d);g=Dpb(c[e>>2]|0)|0;c[a>>2]=g;yb=f;return}function MW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=b;d=c[a+40>>2]|0;b=c[a+36>>2]|0;while(1){if((b|0)==(d|0))break;a=c[b>>2]|0;if(Yrb(a)|0)bq(e,a);b=b+4|0}yb=f;return}function NW(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,59060)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(zAb(c[a>>2]|0)|0){e=WCb(c[a+12>>2]|0)|0;yb=d;return e|0}else ma(58999,55544,1336,59110);return 0}function OW(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;k=yb;yb=yb+32|0;e=k+16|0;h=k;g=0;while(1){if((g|0)==4)break;UB(d+(g*24|0)|0,h);i=c[h>>2]|0;j=g<<2;f=0;while(1){if((f|0)==4)break;l=$ka(e,j+f|0)|0;a[l>>0]=i>>>(f<<3);f=f+1|0}g=g+1|0}f=b+16|0;do{a[b>>0]=a[e>>0]|0;b=b+1|0;e=e+1|0}while((b|0)<(f|0));yb=k;return}function PW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3736;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3736,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function QW(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,59687)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Mvb(c[a>>2]|0)|0){e=WCb(c[a+8>>2]|0)|0;yb=d;return e|0}else ma(59727,55544,1404,59755);return 0}function RW(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,59594)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Ovb(c[a>>2]|0)|0){e=WCb(c[a+8>>2]|0)|0;yb=d;return e|0}else ma(59634,55544,1394,59662);return 0}function SW(a,b){a=a|0;b=b|0;var d=0,e=0;e=Cda(a,c[b+16>>2]|0)|0;d=Cda(a,c[b+8>>2]|0)|0;b=Cda(a,c[b+12>>2]|0)|0;return zKa(c[a+32>>2]|0,e,d,b)|0}function TW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;b=hDa(c[a+36>>2]|0,b)|0;c[f>>2]=b;d=a+4|0;e=c[d>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4;yb=g;return}else{_M(a,f);yb=g;return}}function UW(a,b){a=a|0;b=b|0;if(!b)return;UW(a,c[b>>2]|0);UW(a,c[b+4>>2]|0);Nrb(b+16|0);RCb(b);return}function VW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1142;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1142,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function WW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1952;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1952,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function XW(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,59990)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Pyb(c[a>>2]|0)|0){e=WCb(c[a+20>>2]|0)|0;yb=d;return e|0}else ma(59880,55544,1441,60032);return 0}function YW(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,59921)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Pyb(c[a>>2]|0)|0){e=WCb(c[a+12>>2]|0)|0;yb=d;return e|0}else ma(59880,55544,1432,59963);return 0}function ZW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=yb;yb=yb+16|0;g=d;f=c[a>>2]|0;e=f+68|0;h=c[e>>2]|0;Pwb(g,0);YA(h,c[g>>2]|0)|0;uma(f,c[b>>2]|0);tI(c[e>>2]|0,11)|0;e=c[b+4>>2]|0;Kba(f,e,(c[b+8>>2]|0)-e|0);b=c[a+4>>2]|0;c[b>>2]=(c[b>>2]|0)+1;yb=d;return}function _W(a,b){a=a|0;b=b|0;if(!b)return;_W(a,c[b>>2]|0);_W(a,c[b+4>>2]|0);Rhb(b+16|0);RCb(b);return}function $W(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=335;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,335,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function aX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3137;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3137,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function bX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3411;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3411,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function cX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3292;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3292,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function dX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3530;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3530,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function eX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3649;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3649,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function fX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2276;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2276,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function gX(a,b){a=a|0;b=b|0;var d=0;if((wxb()|0)>>>0>>0)Apa();if(b>>>0<=536870911){d=mla(b<<3)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<3);return}a=oa(8)|0;n=0;da(67,a|0,138616);d=n;n=0;if(d&1){d=sa()|0;P()|0;va(a|0);Ea(d|0)}else{c[a>>2]=50788;za(a|0,39592,473)}}function hX(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-16|0;c[d>>2]=e;F$(e)}b=c[a>>2]|0;if(b|0)$Wa(c[c[a+16>>2]>>2]|0,b,(c[a+12>>2]|0)-b>>4);return}function iX(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=yb;yb=yb+64|0;b=f;c[a+16>>2]=d;c[a+20>>2]=e;Yz(b,e);n=0;ca(544,a|0);e=n;n=0;if((!(e&1)?(n=0,da(3823,a|0,b|0),e=n,n=0,!(e&1)):0)?(n=0,ca(545,a|0),e=n,n=0,!(e&1)):0){P2(b);yb=f;return}e=sa()|0;P()|0;P2(b);Ea(e|0)}function jX(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,60681)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Zxb(c[a>>2]|0)|0){e=WCb(c[a+12>>2]|0)|0;yb=d;return e|0}else ma(60576,55544,1534,60719);return 0}function kX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1371;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1371,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function lX(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,58483)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(MAb(c[a>>2]|0)|0){e=WCb(c[a+24>>2]|0)|0;yb=d;return e|0}else ma(58316,55544,1270,58527);return 0}function mX(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,60742)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Zxb(c[a>>2]|0)|0){e=WCb(c[a+16>>2]|0)|0;yb=d;return e|0}else ma(60576,55544,1543,60779);return 0}function nX(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(20)|0;c[b>>2]=g;c[b+4>>2]=d+8;d=b+8|0;a[d>>0]=0;b=g+8|0;c[b>>2]=c[f>>2];c[b+4>>2]=c[f+4>>2];c[b+8>>2]=c[f+8>>2];b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}a[d>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function oX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1988;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1988,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function pX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1329;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1329,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function qX(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(!(Eb[c[(c[b>>2]|0)+28>>2]&511](b)|0))return;if(d|0){d=d+48|0;a=c[d>>2]|0;c[d>>2]=0;if(!a)return;Vob(a);RCb(a);return}a=c[a>>2]|0;b=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(b|0))break;e=(c[a>>2]|0)+48|0;d=c[e>>2]|0;c[e>>2]=0;if(d|0){Vob(d);RCb(d)}a=a+4|0}return}function rX(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,60370)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Oyb(c[a>>2]|0)|0){e=WCb(c[a+12>>2]|0)|0;yb=d;return e|0}else ma(60212,55544,1488,60407);return 0}function sX(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,57554)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(OBb(c[a>>2]|0)|0){e=WCb(c[a+12+4>>2]|0)|0;yb=d;return e|0}else ma(57509,55544,1156,57597);return 0}function tX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=772;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,772,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function uX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1755;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1755,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function vX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=385;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,385,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function wX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=255;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,255,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function xX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=b;if(!(c[37104]|0)){d=b;d=d+8|0;apb(a,d);yb=e;return}else{f=IWa(150452,66445)|0;b=O8(148204,d)|0;IWa(Ym(f,c[b>>2]|0)|0,57388)|0;d=c[d>>2]|0;d=d+8|0;apb(a,d);yb=e;return}}function yX(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,60429)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Oyb(c[a>>2]|0)|0){e=WCb(c[a+16>>2]|0)|0;yb=d;return e|0}else ma(60212,55544,1497,60465);return 0}function zX(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,58068)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Nyb(c[a>>2]|0)|0){e=WCb(c[a+8>>2]|0)|0;yb=d;return e|0}else ma(58104,55544,1223,58128);return 0}function AX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=660;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,660,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function BX(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=hfb(c[b+4>>2]|0)|0;e=0;while(1){if((e|0)==16)break;g=e+1|0;h=vp(Vr(d,g)|0,32)|0;a[f+16+e>>0]=h;e=g}h=$db(b,Vr(d,17)|0)|0;c[f+8>>2]=h;h=$db(b,Vr(d,18)|0)|0;c[f+12>>2]=h;Ena(f);return f|0}function CX(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=b+104|0;g=b+124|0;h=(c[g>>2]|0)+-1|0;if(!(a[f>>0]&1))e=(c[(c[b+120>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0)!=0&1;else e=1;a[f>>0]=e;c[g>>2]=h;e=c[d+8>>2]|0;if(!(PBb(c[e+4>>2]|0)|0)){b=b+44|0;lAa(b,d);return}Iya(b,e)|0;b=b+44|0;lAa(b,d);return}function DX(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+32|0;f=e;_cb(b,56518);IWa(b,140151)|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[f+16>>2]=c[d+16>>2];c[f+20>>2]=c[d+20>>2];P7(a,b,f);yb=e;return}function EX(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,58275)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(MAb(c[a>>2]|0)|0){e=WCb(c[a+12>>2]|0)|0;yb=d;return e|0}else ma(58316,55544,1251,58341);return 0}function FX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2422;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2422,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function GX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2839;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2839,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function HX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2802;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2802,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function IX(a,b){a=a|0;b=b|0;var d=0;d=jE(a+144|0,b)|0;if(!d){d=Tdb(a)|0;b=Qm(a+144|0,b)|0;c[b>>2]=d;return d|0}else{d=c[d+32>>2]|0;return d|0}return 0}function JX(a){a=a|0;var b=0,d=0,e=0;d=c[a+12>>2]|0;a:do if(!d){b=c[a+8>>2]|0;if(!b)b=0;else b=bc(b)|0}else{e=c[d+4>>2]|0;b=0;d=c[d>>2]|0;while(1){if((d|0)==(e|0))break a;b=iGa(b,c[d>>2]|0)|0;d=d+4|0}}while(0);d=iGa(b,1)|0;b=c[a+16>>2]|0;if(!b){a=d;return a|0}a=bc(b)|0;return a|0}function KX(a,b){a=a|0;b=b|0;if(!b)return;KX(a,c[b>>2]|0);KX(a,c[b+4>>2]|0);RCb(b);return}function LX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1529;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1529,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function MX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1143;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1143,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function NX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=175;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,175,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function OX(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,58768)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(PBb(c[a>>2]|0)|0){e=WCb(c[a+12>>2]|0)|0;yb=d;return e|0}else ma(58723,55544,1307,58810);return 0}function PX(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,62758)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Nub(c[a>>2]|0)|0){yb=d;return c[a+24>>2]|0}else ma(62467,55544,1803,62809);return 0}function QX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2569;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2569,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function RX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3026;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3026,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function SX(b){b=b|0;var d=0,e=0;gCb(b);a[b+1>>0]=1;a[b+2>>0]=0;e=b+4|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[e+(d<<2)>>2]=0;d=d+1|0}e=b+16|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[e+(d<<2)>>2]=0;d=d+1|0}e=b+28|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[e+(d<<2)>>2]=0;d=d+1|0}return}function TX(a,b){a=a|0;b=b|0;var d=0,e=0;if((a|0)==(b|0)){e=1;return e|0}if((a|0)==0|(b|0)==0){e=0;return e|0}e=c[a+4>>2]|0;a=c[a>>2]|0;d=c[b>>2]|0;if((e-a|0)!=((c[b+4>>2]|0)-d|0)){e=0;return e|0}while(1){if((a|0)==(e|0)){a=1;d=8;break}if((c[a>>2]|0)!=(c[d>>2]|0)){a=0;d=8;break}d=d+4|0;a=a+4|0}if((d|0)==8)return a|0;return 0}function UX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2875;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2875,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function VX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=4108;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,4108,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function WX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1839;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1839,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function XX(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[36996]|0;f=a+4|0;e=(c[36997]|0)-d|0;b=(c[f>>2]|0)+(0-(e>>2)<<2)|0;c[f>>2]=b;if((e|0)>0){Uv(b|0,d|0,e|0)|0;d=f;b=c[f>>2]|0}else d=f;f=c[36996]|0;c[36996]=b;c[d>>2]=f;f=a+8|0;e=c[36997]|0;c[36997]=c[f>>2];c[f>>2]=e;f=a+12|0;e=c[36998]|0;c[36998]=c[f>>2];c[f>>2]=e;c[a>>2]=c[d>>2];return}function YX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;f=rrb(a,0)|0;if(hXa(c[f>>2]|0,c[37214]|0)|0){f=rrb(a,2)|0;f=WCb(c[f>>2]|0)|0;b=KJa(WCb(INa(2)|0)|0,b)|0;Pwb(d,KJa(b,INa(0)|0)|0);KJa(f,c[d>>2]|0)|0;yb=e;return}else ma(53302,74885,1583,53381)}function ZX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1601;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1601,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function _X(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1565;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1565,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function $X(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1411;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1411,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function aY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1257;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1257,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function bY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2913;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2913,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function cY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;b=a+48|0;d=a+64|0;e=c[d>>2]|0;if(e>>>0<(c[a+68>>2]|0)>>>0){c[e>>2]=0;g=e+4|0;c[g>>2]=0;c[e+8>>2]=0;c[e>>2]=c[b>>2];f=a+52|0;c[g>>2]=c[f>>2];a=a+56|0;c[e+8>>2]=c[a>>2];c[a>>2]=0;c[f>>2]=0;c[b>>2]=0;c[d>>2]=(c[d>>2]|0)+12;return}else{jC(a+60|0,b);return}}function dY(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,62677)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Nub(c[a>>2]|0)|0){yb=d;return c[a+20>>2]|0}else ma(62467,55544,1794,62725);return 0}function eY(a){a=a|0;var b=0,e=0,f=0;e=yb;yb=yb+16|0;b=e;c[b>>2]=a;if(c[37104]|0){f=IWa(150452,62422)|0;a=O8(148192,b)|0;IWa(Ym(f,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Nub(c[a>>2]|0)|0){yb=e;return d[a+8>>0]|0|0}else ma(62467,55544,1767,62499);return 0}function fY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2758;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2758,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function gY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3862;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3862,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function hY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3181;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3181,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function iY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3825;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3825,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function jY(a,b){a=a|0;b=b|0;var e=0;e=WCb(c[b+16>>2]|0)|0;if(!e)return;if(e>>>0>=(d[b+8>>0]|0)>>>0)return;e=b+4|0;switch(c[e>>2]|0){case 3:{c[e>>2]=1;b=pVa(c[c[a+44>>2]>>2]|0,45,b)|0;Pwb(c[a+16>>2]|0,b);return}case 4:{c[e>>2]=2;b=pVa(c[c[a+44>>2]>>2]|0,46,b)|0;Pwb(c[a+16>>2]|0,b);return}default:return}}function kY(b,d){b=b|0;d=d|0;var e=0;if(a[b+33>>0]&1){e=IWa(Wm(IWa(150620,112806)|0,d)|0,112821)|0;BM(Zm(e,c[d+4>>2]|0)|0)}TW(b,d);return}function lY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2238;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2238,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function mY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2421;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2421,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function nY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1293;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1293,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function oY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+16|0;d=f+8|0;g=f+4|0;e=f;b=c[b>>2]|0;c[g>>2]=b;c[d>>2]=c[g>>2];if(!(lEa(a,d)|0))ma(118671,118684,166,118722);c[e>>2]=b;c[d>>2]=c[e>>2];if(FEa(a,d)|0){yb=f;return}g=mla(12)|0;Ysb(g);c[g+4>>2]=b;c[g>>2]=b;c[g+8>>2]=0;uq(a,g);yb=f;return}function pY(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+16|0;f=e;$lb(a);c[a+24>>2]=b;c[a+28>>2]=c[d>>2];d=a+32|0;c[d>>2]=0;c[a+36>>2]=0;c[a+40>>2]=0;c[f>>2]=b;n=0;da(4147,a|0,f|0);b=n;n=0;if(b&1){f=sa()|0;P()|0;Vob(d);Hqb(a);Ea(f|0)}else{yb=e;return}}function qY(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,58686)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(PBb(c[a>>2]|0)|0){e=WCb(c[a+24>>2]|0)|0;yb=d;return e|0}else ma(58723,55544,1298,58746);return 0}function rY(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,63087)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(ovb(c[a>>2]|0)|0){yb=d;return c[a+24>>2]|0}else ma(62885,55544,1840,63136);return 0}function sY(b){b=b|0;var c=0,d=0,e=0,f=0,g=0;while(1){c=a[b>>0]|0;e=c<<24>>24;d=b+1|0;if(!(Cxb(e)|0))break;else b=d}switch(e|0){case 45:{b=1;f=5;break}case 43:{b=0;f=5;break}default:{g=0;d=b;b=e}}if((f|0)==5){c=a[d>>0]|0;g=b;b=c<<24>>24}if(!(rCb(b)|0))b=0;else{b=0;do{d=d+1|0;b=(b*10|0)+48-(c<<24>>24)|0;c=a[d>>0]|0}while((rCb(c<<24>>24)|0)!=0)}return ((g|0)==0?0-b|0:b)|0}function tY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;d=f;if(c[b>>2]|0?Paa(a+108|0,b)|0:0){e=1;yb=f;return e|0}e=c[b+4>>2]|0;if(e|0?(c[d>>2]=e,Paa(a+108|0,d)|0):0){e=1;yb=f;return e|0}Pua(b);e=0;yb=f;return e|0}function uY(a){a=a|0;var b=0,d=0,e=0;b=yb;yb=yb+16|0;d=b+4|0;c[d>>2]=a;a=b;e=WCb(INa(4)|0)|0;e=KJa(e,WGa(148784)|0)|0;d=KJa(e,WGa(d)|0)|0;d=KJa(d,INa(0)|0)|0;Pwb(a,KJa(d,INa(0)|0)|0);yb=b;return c[a>>2]|0}function vY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3775;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3775,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function wY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2988;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2988,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function xY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2532;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2532,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function yY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1838;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1838,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function zY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2199;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2199,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function AY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2040;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2040,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function BY(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,64222)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Mub(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(64161,55544,1971,64267);return 0}function CY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=809;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,809,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function DY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=566;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,566,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function EY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3901;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3901,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function FY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1718;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1718,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function GY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=2151;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,2151,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function HY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1009;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1009,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function IY(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,64297)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Mub(c[a>>2]|0)|0){yb=d;return c[a+16>>2]|0}else ma(64161,55544,1980,64341);return 0}function JY(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,57473)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(OBb(c[a>>2]|0)|0){e=WCb(c[a+8>>2]|0)|0;yb=d;return e|0}else ma(57509,55544,1147,57533);return 0}function KY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=921;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,921,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function LY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=958;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,958,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function MY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1914;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1914,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function NY(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,64117)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Mub(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(64161,55544,1962,64193);return 0}function OY(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(!(c[37104]|0)){b=a;b=c[b>>2]|0;b=WCb(b)|0;yb=d;return b|0}else{e=IWa(150452,69922)|0;a=O8(148204,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;b=c[b>>2]|0;b=c[b>>2]|0;b=WCb(b)|0;yb=d;return b|0}return 0}function PY(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,63264)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(nvb(c[a>>2]|0)|0){yb=d;return c[a+16>>2]|0}else ma(63210,55544,1859,63310);return 0}function QY(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,62606)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Nub(c[a>>2]|0)|0){yb=d;return c[a+16>>2]|0}else ma(62467,55544,1785,62649);return 0}function RY(a){a=a|0;var b=0,d=0;d=yb;yb=yb+16|0;b=d;hCb(b);switch(a|0){case 59:case 58:case 57:case 56:case 55:case 54:case 53:case 52:{Iqb(b);break}case 92:case 91:case 90:case 89:case 88:case 87:case 86:case 85:case 84:case 83:case 82:case 81:case 80:case 79:case 78:case 77:case 76:case 75:case 74:case 73:case 72:case 71:case 70:case 69:case 68:case 67:case 66:case 65:case 64:case 63:case 62:case 61:case 60:{Grb(b);break}default:{}}yb=d;return c[b>>2]|0}function SY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=4148;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,4148,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function TY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1093;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1093,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function UY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=b+8|0;f=c[d>>2]|0;e=a+32|0;eIa(a,f>>>0<(Icb(WCb(c[e>>2]|0)|0)|0)>>>0,b,128541);f=b+4|0;eIa(a,vub(c[f>>2]|0)|0,b,128578);f=c[f>>2]|0;e=WCb(c[e>>2]|0)|0;eIa(a,(f|0)==(jka(e,c[d>>2]|0)|0),b,128667);return}function VY(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,62939)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(ovb(c[a>>2]|0)|0){yb=d;return c[a+16>>2]|0}else ma(62885,55544,1822,62984);return 0}function WY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=883;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,883,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function XY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=845;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,845,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function YY(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;a[b+9>>0]=0;fy(b,e)|0;if(a[b+8>>0]&1)return;e=L3(b,e)|0;IWa(Wqa(e,c)|0,126796)|0;mQa(d,e)|0;return}function ZY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=b+4|0;b=a+28|0;if((c[d>>2]|0)==6)Ygb(c[b>>2]|0);tI(c[b>>2]|0,11)|0;e=a+60|0;f=c[e>>2]|0;if((c[a+56>>2]|0)==(f|0))ma(113289,112765,396,113447);c[e>>2]=f+-4;if((c[d>>2]|0)!=6)return;Ygb(c[b>>2]|0);return}function _Y(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,63977)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(dvb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(63920,55544,1943,64020);return 0}function $Y(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,63807)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(evb(c[a>>2]|0)|0){yb=d;return c[a+20>>2]|0}else ma(63614,55544,1924,63850);return 0}function aZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,57935)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(aCb(c[a>>2]|0)|0){e=WCb(c[a+8>>2]|0)|0;yb=d;return e|0}else ma(57970,55544,1204,57993);return 0}function bZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,63014)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(ovb(c[a>>2]|0)|0){yb=d;return c[a+20>>2]|0}else ma(62885,55544,1831,63058);return 0}function cZ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=d;d=a+4|0;e=b+4|0;g=c[d>>2]|0;c[d>>2]=c[e>>2];c[e>>2]=g;g=a+8|0;f=b+8|0;h=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=h;if(!(c[g>>2]|0))c[a>>2]=d;else c[(c[a+4>>2]|0)+8>>2]=d;if(!(c[f>>2]|0)){c[b>>2]=e;return}else{c[(c[b+4>>2]|0)+8>>2]=e;return}}function dZ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3698;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3698,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function eZ(a){a=a|0;var b=0;a3a(a);c[a>>2]=43036;n=0;da(211,a+44|0,88828);b=n;n=0;if(((!(b&1)?(n=0,da(211,a+48|0,88842),b=n,n=0,!(b&1)):0)?(n=0,da(211,a+52|0,88855),b=n,n=0,!(b&1)):0)?(n=0,da(211,a+56|0,88863),b=n,n=0,!(b&1)):0)return;b=sa()|0;P()|0;gcb(a);Ea(b|0)}function fZ(b){b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=b;if(c[37104]|0){f=IWa(150452,63736)|0;b=O8(148192,d)|0;IWa(Ym(f,c[b>>2]|0)|0,57388)|0;b=c[d>>2]|0}if(evb(c[b>>2]|0)|0){yb=e;return a[b+16>>0]|0}else ma(63614,55544,1915,63779);return 0}function gZ(b){b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=b;if(c[37104]|0){f=IWa(150452,63503)|0;b=O8(148192,d)|0;IWa(Ym(f,c[b>>2]|0)|0,57388)|0;b=c[d>>2]|0}if(fvb(c[b>>2]|0)|0){yb=e;return a[b+16>>0]|0}else ma(63381,55544,1887,63546);return 0}function hZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,64589)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(kvb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(64633,55544,2018,64662);return 0}function iZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,64758)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(kvb(c[a>>2]|0)|0){yb=d;return c[a+16>>2]|0}else ma(64633,55544,2036,64801);return 0}function jZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,65088)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(mvb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(65033,55544,2074,65131);return 0}function kZ(a){a=a|0;var b=0,e=0,f=0;e=yb;yb=yb+16|0;b=e;c[b>>2]=a;if(c[37104]|0){f=IWa(150452,62156)|0;a=O8(148192,b)|0;IWa(Ym(f,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Pvb(c[a>>2]|0)|0){yb=e;return d[a+12>>0]|0|0}else ma(62105,55544,1730,62197);return 0}function lZ(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b+4>>2]|0;a:do if(!d){e=b;while(1){d=c[e+8>>2]|0;if((c[d>>2]|0)==(e|0))break a;e=d}}else while(1){e=c[d>>2]|0;if(!e)break;d=e}while(0);if((c[a>>2]|0)==(b|0))c[a>>2]=d;e=a+8|0;c[e>>2]=(c[e>>2]|0)+-1;oj(c[a+4>>2]|0,b);RCb(b);return d|0}function mZ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1675;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1675,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function nZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,63878)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(dvb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(63920,55544,1934,63950);return 0}function oZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,63669)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(evb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(63614,55544,1906,63710);return 0}function pZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,63436)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(fvb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(63381,55544,1878,63477);return 0}function qZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,65322)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(lvb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(65267,55544,2102,65364);return 0}function rZ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=1493;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,1493,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function sZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,64829)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(kvb(c[a>>2]|0)|0){yb=d;return c[a+20>>2]|0}else ma(64633,55544,2045,64870);return 0}function tZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,64691)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(kvb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(64633,55544,2027,64732);return 0}function uZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,65391)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(lvb(c[a>>2]|0)|0){yb=d;return c[a+16>>2]|0}else ma(65267,55544,2111,65432);return 0}function vZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,65159)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(mvb(c[a>>2]|0)|0){yb=d;return c[a+16>>2]|0}else ma(65033,55544,2083,65200);return 0}function wZ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;e=d+4|0;g=d;f=c[a+4>>2]|0;a=c[a>>2]|0;c[g>>2]=c[b+8>>2];c[e>>2]=c[g>>2];a=IWa(Ym(a,rda(f,e)|0)|0,112435)|0;BM(IWa(a,c[b+8>>2]|0)|0);yb=d;return}function xZ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=135;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,135,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function yZ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3973;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3973,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function zZ(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;a[b+9>>0]=0;fy(b,e)|0;if(a[b+8>>0]&1)return;e=L3(b,e)|0;IWa(Wqa(e,c)|0,126796)|0;hFa(d,e)|0;return}function AZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,63574)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(evb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(63614,55544,1897,63644);return 0}function BZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,63341)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(fvb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(63381,55544,1869,63411);return 0}function CZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,65226)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(lvb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(65267,55544,2093,65296);return 0}function DZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,64992)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(mvb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(65033,55544,2065,65062);return 0}function EZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(!(c[37104]|0)){b=a;b=c[b>>2]|0;b=WCb(b)|0;yb=d;return b|0}else{e=IWa(150452,70914)|0;a=O8(148228,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;b=c[b>>2]|0;b=c[b>>2]|0;b=WCb(b)|0;yb=d;return b|0}return 0}function FZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,63170)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(nvb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(63210,55544,1850,63239);return 0}function GZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,62845)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(ovb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(62885,55544,1813,62914);return 0}function HZ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;c[d>>2]=3937;c[e>>2]=b;if(!(c[b>>2]|0)){yb=h;return}f=a+8|0;g=c[f>>2]|0;if(g>>>0<(c[a+12>>2]|0)>>>0){Fmb(g,3937,b);c[f>>2]=(c[f>>2]|0)+8;yb=h;return}else{WG(a+4|0,d,e);yb=h;return}}function IZ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+48|0;h=i+24|0;f=i;d=T3a(c[b>>2]|0,d,2)|0;Heb(f,32,0);e=h;g=e+24|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));h=D7(b,h)|0;h=hIa(c[b>>2]|0,36,d,h)|0;b=pVa(c[b>>2]|0,24,h)|0;yb=i;return b|0}function JZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,59780)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Mvb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(59727,55544,1413,59821);return 0}function KZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,64522)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Nvb(c[a>>2]|0)|0){yb=d;return c[a+16>>2]|0}else ma(64408,55544,2008,64563);return 0}function LZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,62355)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Pvb(c[a>>2]|0)|0){yb=d;return c[a+24>>2]|0}else ma(62105,55544,1757,62396);return 0}function MZ(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;l=yb;yb=yb+16|0;h=l;i=d+4|0;j=d+8|0;g=c[b>>2]|0;do{e=g&127;a[h>>0]=e;g=g>>7;k=gBa(b,g,e)|0;if(k){e=e|-128;a[h>>0]=e}f=c[i>>2]|0;if((f|0)==(c[j>>2]|0))qN(d,h);else{a[f>>0]=e;c[i>>2]=(c[i>>2]|0)+1}}while(k);yb=l;return}function NZ(a,b){a=a|0;b=b|0;XKa(a,Szb(c[(c[a+44>>2]|0)+4>>2]|0)|0,b);$pa(a,c[b+4>>2]|0,5,b,130611);$pa(a,c[(c[b+12>>2]|0)+4>>2]|0,5,b,130519);$pa(a,c[(c[b+16>>2]|0)+4>>2]|0,1,b,130644);return}function OZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,64896)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Swb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(64938,55544,2055,64965);return 0}function PZ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g+4|0;f=g;Cub(e);p0(a,b,d,e);if(bCb(c[e>>2]|0)|0){f=0;yb=g;return f|0}c[f>>2]=0;a2(a,e,f);f=c[f>>2]|0;yb=g;return f|0}function QZ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=b;if(pdb(a,b)|0)ma(73091,72707,144,73134);b=mla(20)|0;n=0;ea(119,b|0,d|0,0);d=n;n=0;if(d&1){f=sa()|0;P()|0;RCb(b);Ea(f|0)}else{e=ZH(a,e)|0;c[e>>2]=b;yb=f;return}}function RZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,59529)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(zxb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(59415,55544,1384,59569);return 0}function SZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61832)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Txb(c[a>>2]|0)|0){yb=d;return c[a+16>>2]|0}else ma(61718,55544,1691,61874);return 0}function TZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,64459)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Nvb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(64408,55544,1999,64498);return 0}function UZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,62292)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Pvb(c[a>>2]|0)|0){yb=d;return c[a+20>>2]|0}else ma(62105,55544,1748,62331);return 0}function VZ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=yb;yb=yb+16|0;e=h+8|0;f=h+4|0;g=h;if(a[b+72>>0]&1)BM(IWa(150620,113679)|0);i=c[b+68>>2]|0;c[g>>2]=c[d+40>>2];c[e>>2]=c[g>>2];Pwb(f,Gaa(b,e)|0);YA(i,c[f>>2]|0)|0;yb=h;return}function WZ(a,b){a=a|0;b=b|0;var d=0;d=yb;yb=yb+16|0;b=lK(a,d,b)|0;b=c[b>>2]|0;if(b|0){yb=d;return b+20|0}b=oa(8)|0;n=0;da(67,b|0,134994);d=n;n=0;if(d&1){d=sa()|0;P()|0;va(b|0);Ea(d|0)}else{c[b>>2]=50808;za(b|0,39608,473)}return 0}function XZ(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;a:do switch((d&176)<<24>>24){case 16:{d=a[b>>0]|0;switch(d<<24>>24){case 43:case 45:{b=b+1|0;break a}default:{}}if((c-b|0)>1&d<<24>>24==48){switch(a[b+1>>0]|0){case 88:case 120:break;default:{e=7;break a}}b=b+2|0}else e=7;break}case 32:{b=c;break}default:e=7}while(0);return b|0}function YZ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=yb;yb=yb+16|0;f=e+4|0;g=e;d=WCb(c[a+24>>2]|0)|0;c[g>>2]=c[b+8>>2];c[f>>2]=c[g>>2];f=J5a(a,f)|0;b=b+16|0;mcb(d,f,c[b>>2]|0);if(!(c[b>>2]|0)){Lrb(a);yb=e;return}else{mcb(d,kib(a)|0,0);yb=e;return}}function ZZ(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,59464)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(zxb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(59415,55544,1375,59504);return 0}function _Z(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,59286)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Axb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(59326,55544,1356,59353);return 0}function $Z(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(!(c[37104]|0)){b=a;b=b+4|0;b=c[b>>2]|0;yb=d;return b|0}else{e=IWa(150452,70121)|0;a=O8(148204,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;b=c[b>>2]|0;b=b+4|0;b=c[b>>2]|0;yb=d;return b|0}return 0}function a_(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;ix(d,a,b,f);yb=e;return (c[d>>2]|0)+28|0}function b_(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a+4>>2]|0;if(!d)d=c[a>>2]|0;else{g=32-d|0;e=g>>>0>b>>>0?b:g;f=c[a>>2]|0;c[f>>2]=c[f>>2]&~(-1<>>(g-e|0));d=(c[a>>2]|0)+4|0;c[a>>2]=d;b=b-e|0}e=b>>>5;LL(d|0,0,e<<2|0)|0;b=b&31;if(!b)return;g=(c[a>>2]|0)+(e<<2)|0;c[a>>2]=g;c[g>>2]=c[g>>2]&~(-1>>>(32-b|0));return}function c_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61767)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Txb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(61718,55544,1682,61807);return 0}function d_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,64370)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Nvb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(64408,55544,1990,64436);return 0}function e_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,58149)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Nyb(c[a>>2]|0)|0){yb=d;return c[a+16>>2]|0}else ma(58104,55544,1232,58190);return 0}function f_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,62067)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Pvb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(62105,55544,1721,62133);return 0}function g_(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+60|0;e=c[d>>2]|0;if((c[a+56>>2]|0)==(e|0))ma(113289,112765,485,113309);c[d>>2]=e+-4;d=b+4|0;b=a+28|0;if((c[d>>2]|0)==6)Ygb(c[b>>2]|0);tI(c[b>>2]|0,11)|0;if((c[d>>2]|0)!=6)return;Ygb(c[b>>2]|0);return}function h_(b){b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=b;if(c[37104]|0){f=IWa(150452,60539)|0;b=O8(148192,d)|0;IWa(Ym(f,c[b>>2]|0)|0,57388)|0;b=c[d>>2]|0}if(Zxb(c[b>>2]|0)|0){yb=e;return a[b+20>>0]&1|0}else ma(60576,55544,1516,60600);return 0}function i_(a){a=a|0;var b=0,e=0,f=0;e=yb;yb=yb+16|0;b=e;c[b>>2]=a;if(c[37104]|0){f=IWa(150452,60622)|0;a=O8(148192,b)|0;IWa(Ym(f,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Zxb(c[a>>2]|0)|0){yb=e;return d[a+8>>0]|0|0}else ma(60576,55544,1525,60659);return 0}function j_(){var a=0,b=0,d=0;b=yb;yb=yb+16|0;a=b;if(c[37104]|0){IWa(150452,55944)|0;IWa(150452,55984)|0;c[a>>2]=0;a=O8(148192,a)|0;c[a>>2]=0}a=mla(224)|0;LL(a|0,0,224)|0;n=0;ca(502,a|0);d=n;n=0;if(d&1){d=sa()|0;P()|0;RCb(a);Ea(d|0)}else{yb=b;return a|0}return 0}function k_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(!(c[37104]|0)){b=a;b=b+12|0;b=c[b>>2]|0;yb=d;return b|0}else{e=IWa(150452,70374)|0;a=O8(148204,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;b=c[b>>2]|0;b=b+12|0;b=c[b>>2]|0;yb=d;return b|0}return 0}function l_(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;a[b+9>>0]=0;fy(b,e)|0;if(a[b+8>>0]&1)return;e=L3(b,e)|0;IWa(Wqa(e,c)|0,126796)|0;cQa(d,e)|0;return}function m_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61679)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Txb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(61718,55544,1673,61743);return 0}function n_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,58954)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(zAb(c[a>>2]|0)|0){yb=d;return c[a+28>>2]|0}else ma(58999,55544,1327,59030);return 0}function o_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61618)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Vxb(c[a>>2]|0)|0){yb=d;return c[a+16>>2]|0}else ma(61514,55544,1663,61656);return 0}function p_(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(20)|0;c[b>>2]=g;c[b+4>>2]=d+8;c[g+8>>2]=c[c[f>>2]>>2];tub(g+12|0);a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function q_(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Lfb(c[a+4>>2]|0)|0;c[e+4>>2]=1;c[e+24>>2]=d;d=$db(a,Vr(b,1)|0)|0;c[e+12>>2]=d;d=$db(a,Vr(b,2)|0)|0;c[e+16>>2]=d;d=$db(a,Vr(b,3)|0)|0;c[e+20>>2]=d;fHa(e);return e|0}function r_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61981)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Uxb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(62019,55544,1711,62044);return 0}function s_(b){b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=b;if(c[37104]|0){f=IWa(150452,60176)|0;b=O8(148192,d)|0;IWa(Ym(f,c[b>>2]|0)|0,57388)|0;b=c[d>>2]|0}if(Oyb(c[b>>2]|0)|0){yb=e;return a[b+20>>0]&1|0}else ma(60212,55544,1461,60235);return 0}function t_(a){a=a|0;var b=0,e=0,f=0;e=yb;yb=yb+16|0;b=e;c[b>>2]=a;if(c[37104]|0){f=IWa(150452,60313)|0;a=O8(148192,b)|0;IWa(Ym(f,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Oyb(c[a>>2]|0)|0){yb=e;return d[a+8>>0]|0|0}else ma(60212,55544,1479,60349);return 0}function u_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(!(c[37104]|0)){b=a;b=b+44|0;b=c[b>>2]|0;yb=d;return b|0}else{e=IWa(150452,70536)|0;a=O8(148204,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;b=c[b>>2]|0;b=b+44|0;b=c[b>>2]|0;yb=d;return b|0}return 0}function v_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(!(c[37104]|0)){b=a;b=b+4|0;b=c[b>>2]|0;yb=d;return b|0}else{e=IWa(150452,57393)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;b=c[b>>2]|0;b=b+4|0;b=c[b>>2]|0;yb=d;return b|0}return 0}function w_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61559)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Vxb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(61514,55544,1654,61596);return 0}function x_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61420)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Yxb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(61377,55544,1635,61457);return 0}function y_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,60856)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Zxb(c[a>>2]|0)|0){yb=d;return c[a+28>>2]|0}else ma(60576,55544,1561,60893);return 0}function z_(b){b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=b;if(c[37104]|0){f=IWa(150452,60256)|0;b=O8(148192,d)|0;IWa(Ym(f,c[b>>2]|0)|0,57388)|0;b=c[d>>2]|0}if(Oyb(c[b>>2]|0)|0){yb=e;return a[b+9>>0]&1|0}else ma(60212,55544,1470,60292);return 0}function A_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,70799)|0;a=O8(148204,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(!(Yrb(a)|0)){e=151778;yb=d;return e|0}e=c[a+4>>2]|0;WCb(e)|0;yb=d;return e|0}function B_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,58216)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Nyb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(58104,55544,1241,58253);return 0}function C_(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+128|0;d=f+24|0;e=f;Ljb(d,b);b=0;while(1){if((b|0)==4)break;g=d+(b*24|0)|0;Tra(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Iab(a,d);yb=f;return}function D_(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+128|0;d=f+24|0;e=f;Ljb(d,b);b=0;while(1){if((b|0)==4)break;g=d+(b*24|0)|0;Lua(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Iab(a,d);yb=f;return}function E_(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+128|0;d=f+24|0;e=f;Y7(d,b);b=0;while(1){if((b|0)==4)break;g=d+(b*24|0)|0;aI(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Iab(a,d);yb=f;return}function F_(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+128|0;d=f+24|0;e=f;Y7(d,b);b=0;while(1){if((b|0)==4)break;g=d+(b*24|0)|0;cI(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Iab(a,d);yb=f;return}function G_(b,d){b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+16|0;f=e;c[f>>2]=d;b=oC(b,f)|0;if(b|0){f=b+12|0;yb=e;return f|0}if(a[147440]|0){f=149192;yb=e;return f|0}if(!(mlb(147440)|0)){f=149192;yb=e;return f|0}c[37298]=0;c[37299]=0;c[37300]=0;c[37301]=0;g[37302]=1.0;f=149192;yb=e;return f|0}function H_(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;if(!(dub(c[b+8>>2]|0,c[a+28>>2]|0)|0)){yb=g;return}b=c[b+12>>2]|0;if(!b)b=0;else b=c[b+4>>2]|0;c[f>>2]=b;d=a+36|0;e=c[d>>2]|0;if(e>>>0<(c[a+40>>2]|0)>>>0){c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4;yb=g;return}else{_M(a+32|0,f);yb=g;return}}function I_(a,b){a=a|0;b=b|0;var d=0;if((YBb()|0)>>>0>>0)Apa();if(b>>>0<=1073741823){d=mla(b<<2)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<2);return}a=oa(8)|0;n=0;da(67,a|0,138616);d=n;n=0;if(d&1){d=sa()|0;P()|0;va(a|0);Ea(d|0)}else{c[a>>2]=50788;za(a|0,39592,473)}}function J_(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a+4>>2]|0;if(!d)d=c[a>>2]|0;else{g=32-d|0;e=g>>>0>b>>>0?b:g;f=c[a>>2]|0;c[f>>2]=c[f>>2]|-1<>>(g-e|0);d=(c[a>>2]|0)+4|0;c[a>>2]=d;b=b-e|0}e=b>>>5;LL(d|0,-1,e<<2|0)|0;b=b&31;if(!b)return;g=(c[a>>2]|0)+(e<<2)|0;c[a>>2]=g;c[g>>2]=c[g>>2]|-1>>>(32-b|0);return}function K_(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+80|0;d=f+24|0;e=f;Kjb(d,b);b=0;while(1){if((b|0)==2)break;g=d+(b*24|0)|0;Sra(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Jab(a,d);yb=f;return}function L_(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+80|0;d=f+24|0;e=f;Kjb(d,b);b=0;while(1){if((b|0)==2)break;g=d+(b*24|0)|0;Kua(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Jab(a,d);yb=f;return}function M_(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+80|0;d=f+24|0;e=f;X7(d,b);b=0;while(1){if((b|0)==2)break;g=d+(b*24|0)|0;$H(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Jab(a,d);yb=f;return}function N_(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+80|0;d=f+24|0;e=f;X7(d,b);b=0;while(1){if((b|0)==2)break;g=d+(b*24|0)|0;bI(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Jab(a,d);yb=f;return}function O_(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;a[b+9>>0]=0;fy(b,e)|0;if(a[b+8>>0]&1)return;e=L3(b,e)|0;IWa(Wqa(e,c)|0,126796)|0;hTa(d,e)|0;return}function P_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,58556)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(MAb(c[a>>2]|0)|0){yb=d;return c[a+28>>2]|0}else ma(58316,55544,1279,58598);return 0}function Q_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,60801)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Zxb(c[a>>2]|0)|0){yb=d;return c[a+24>>2]|0}else ma(60576,55544,1552,60836);return 0}function R_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,70842)|0;a=O8(148216,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(!(Yrb(a)|0)){e=151778;yb=d;return e|0}e=c[a+4>>2]|0;WCb(e)|0;yb=d;return e|0}function S_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,70754)|0;a=O8(148204,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(!(Yrb(a)|0)){e=151778;yb=d;return e|0}e=c[a>>2]|0;WCb(e)|0;yb=d;return e|0}function T_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61479)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Vxb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(61514,55544,1645,61539);return 0}function U_(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=0;d=1;while(1){if(f>>>0>=(K0a(WCb(b)|0)|0)>>>0)break;e=rrb(b,f)|0;e=c[e>>2]|0;if(!(ika(e)|0)){if(!d)BIa(a);Xi(a,e);if((!(GNa(e)|0)?!(HNa(e)|0):0)?!(yOa(e)|0):0){hfa(a,59);d=0}else d=0}f=f+1|0}return}function V_(a){a=a|0;var b=0,d=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;D8(b,90803,Zzb(90803)|0);n=0;da(68,a|0,b|0);a=n;n=0;if(a&1){d=sa()|0;P()|0;Chb(b);Ea(d|0)}else{Chb(b);yb=d;return}}function W_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(!(c[37104]|0)){b=a;b=b+8|0;b=c[b>>2]|0;yb=d;return b|0}else{e=IWa(150452,70881)|0;a=O8(148228,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;b=c[b>>2]|0;b=b+8|0;b=c[b>>2]|0;yb=d;return b|0}return 0}function X_(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61901)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Qyb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(61937,55544,1701,61960);return 0}function Y_(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=b+4|0;e=(c[d>>2]|0)-(c[b>>2]|0)|0;if(!e)return;n=0;da(1006,a|0,e>>2|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Qcb(a);Ea(e|0)}Wva(a,c[b>>2]|0,c[d>>2]|0);return}function Z_(a){a=a|0;var b=0,d=0;d=a+156|0;b=c[d>>2]|0;c[d>>2]=0;if(b|0){hib(b);RCb(b)}Vob(a+128|0);ETa(a+104|0);Chb(a+92|0);Chb(a+80|0);Vob(a+52|0);Pdb(a+32|0);Pdb(a+12|0);Htb(a);return}function __(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;f=yb;yb=yb+192|0;d=f+92|0;e=f;VA(d,a,b);n=0;ea(130,e|0,a|0,c|0);c=n;n=0;if(c&1){f=sa()|0;P()|0;Fha(d);Ea(f|0)}else{c=(Hi(d,e)|0)^1;Fha(e);Fha(d);yb=f;return c|0}return 0}function $_(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;if(!((e|0)==(b|0)&(e|0)==(a|0)))ma(78492,118839,229,78552);if(f>>>0>>0)ma(78558,118839,230,78552);g=a+4|0;b=c[g>>2]|0;if(b>>>0>>0)ma(78558,118839,230,78552);f=f-d|0;while(1){e=d+f|0;if(e>>>0>=b>>>0)break;b=c[a>>2]|0;c[b+(d<<2)>>2]=c[b+(e<<2)>>2];d=d+1|0;b=c[g>>2]|0}c[g>>2]=b-f;return}function a$(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,61343)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Yxb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(61377,55544,1626,61401);return 0}function b$(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,60486)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Oyb(c[a>>2]|0)|0){yb=d;return c[a+24>>2]|0}else ma(60212,55544,1506,60520);return 0}function c$(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;if(!(zxb(c[b>>2]|0)|0)){yb=g;return}e=c[a+24>>2]|0;a=Keb(b)|0;c[f>>2]=a;b=e+4|0;d=c[b>>2]|0;if(d>>>0<(c[e+8>>2]|0)>>>0){c[d>>2]=a;c[b>>2]=(c[b>>2]|0)+4;yb=g;return}else{_M(e,f);yb=g;return}}function d$(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;if(!(Axb(c[b>>2]|0)|0)){yb=g;return}e=c[a+24>>2]|0;a=Leb(b)|0;c[f>>2]=a;b=e+4|0;d=c[b>>2]|0;if(d>>>0<(c[e+8>>2]|0)>>>0){c[d>>2]=a;c[b>>2]=(c[b>>2]|0)+4;yb=g;return}else{_M(e,f);yb=g;return}}function e$(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=e-d|0;if(!g){d=b;return d|0}h=c;if((h-b|0)<(g|0)){d=c;return d|0}f=a[d>>0]|0;e=b;while(1){b=h-e|0;if((b|0)<(g|0)){e=8;break}e=a1a(e,b-g+1|0,f)|0;if(!e){e=8;break}if(!(qdb(e,d,g)|0)){c=e;e=8;break}e=e+1|0}if((e|0)==8)return c|0;return 0}function f$(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,58625)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(MAb(c[a>>2]|0)|0){yb=d;return c[a+32>>2]|0}else ma(58316,55544,1288,58663);return 0}function g$(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,59847)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(Pyb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(59880,55544,1423,59903);return 0}function h$(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=b+4|0;e=(c[d>>2]|0)-(c[b>>2]|0)|0;if(!e)return;n=0;da(174,a|0,e>>2|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Qcb(a);Ea(e|0)}Wva(a,c[b>>2]|0,c[d>>2]|0);return}function i$(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;eR(a,e);b=Zl(a+24|0,e)|0;c[b>>2]=(c[b>>2]|0)+1;yb=d;return}function j$(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+40>>2]|0;a=c[a+36>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(!(Yrb(d)|0))hJ(b,d);a=a+4|0}return}function k$(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(20)|0;c[b>>2]=g;c[b+4>>2]=d+8;c[g+8>>2]=c[c[f>>2]>>2];c[g+12>>2]=0;c[g+16>>2]=0;a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function l$(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(116)|0;c[b>>2]=g;c[b+4>>2]=d+8;cjb(g+8|0,f);XSa(g+16|0,f+8|0);a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function m$(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(24)|0;c[b>>2]=g;c[b+4>>2]=d+8;c[g+8>>2]=c[c[f>>2]>>2];c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function n$(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=0;a=(G_(a,b)|0)+8|0;while(1){a=c[a>>2]|0;if(!a){a=9;break}e=c[a+8>>2]|0;g=c[e+16>>2]|0;f=0;e=c[e+12>>2]|0;while(1){if((e|0)==(g|0))break;h=(c[e>>2]|0)==(b|0);f=h|f;d=d+(h&1)|0;e=e+4|0}if(!f){a=7;break}}if((a|0)==7)ma(87222,77783,77,77813);else if((a|0)==9)return d|0;return 0}function o$(a){a=a|0;var b=0;m8(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function p$(a){a=a|0;var b=0;m8(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function q$(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=yb;yb=yb+64|0;g=i+32|0;h=i+24|0;f=i;Gsb(h,WCb(c[b+36>>2]|0)|0);Bqb(f,ztb(e)|0);b=g;e=f;f=b+24|0;do{a[b>>0]=a[e>>0]|0;b=b+1|0;e=e+1|0}while((b|0)<(f|0));g=D7(h,g)|0;h=hIa(c[h>>2]|0,7,d,g)|0;yb=i;return h|0}function r$(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+48|0;f=e+36|0;d=e;c[f>>2]=b;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;bgb(d);c[d+24>>2]=b;c[d+28>>2]=a;n=0;da(334,d|0,f|0);b=n;n=0;if(b&1){f=sa()|0;P()|0;Arb(d);Vob(a);Ea(f|0)}else{Arb(d);yb=e;return}}function s$(a,b){a=a|0;b=b|0;if(!b)return;s$(a,c[b>>2]|0);s$(a,c[b+4>>2]|0);Nrb(b+16|0);RCb(b);return}function t$(a){a=a|0;var b=0;K8(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function u$(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,57741)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(VBb(c[a>>2]|0)|0){yb=d;return c[a+8>>2]|0}else ma(57779,55544,1176,57800);return 0}function v$(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=b+4|0;e=(c[d>>2]|0)-(c[b>>2]|0)|0;if(!e)return;n=0;da(1051,a|0,e>>2|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Qcb(a);Ea(e|0)}Wva(a,c[b>>2]|0,c[d>>2]|0);return}function w$(b){b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+32|0;d=g+16|0;e=g+12|0;f=g;f5(f,b);n=0;ea(101,e|0,((a[f+11>>0]|0)<0?c[f>>2]|0:f)|0,0);b=n;n=0;if(b&1){g=sa()|0;P()|0;Chb(f);Ea(g|0)}else{Ftb(d,c[e>>2]|0);Chb(f);yb=g;return c[d>>2]|0}return 0}function x$(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=yb;yb=yb+32|0;i=k+16|0;j=k;g=WCb(c[d>>2]|0)|0;h=j;f=h+16|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(f|0));d=c[b+4>>2]|0;h=i;e=j;f=h+16|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(f|0));jMa(d,g,i);yb=k;return}function y$(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,57878)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(VBb(c[a>>2]|0)|0){yb=d;return c[a+16>>2]|0}else ma(57779,55544,1194,57914);return 0}function z$(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;if(!(Nyb(c[b>>2]|0)|0)){yb=g;return}e=c[a+24>>2]|0;a=tfb(b)|0;c[f>>2]=a;b=e+4|0;d=c[b>>2]|0;if(d>>>0<(c[e+8>>2]|0)>>>0){c[d>>2]=a;c[b>>2]=(c[b>>2]|0)+4;yb=g;return}else{_M(e,f);yb=g;return}}function A$(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=uob(d)|0;f=b+144|0;c[f>>2]=g;g=Vl(c[b+136>>2]|0,d+8|0)|0;e=b+140|0;c[e>>2]=g;kI(b+16|0,d);if(!(c[f>>2]|0))return;if(a[(c[e>>2]|0)+32>>0]&1)return;jf(b);return}function B$(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,57823)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(VBb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(57779,55544,1185,57858);return 0}function C$(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+4|0;d=c[g>>2]|0;e=c[a>>2]|0;f=(d-e|0)/40|0;if(f>>>0>>0){jA(a,b-f|0);return}if(f>>>0<=b>>>0)return;a=e+(b*40|0)|0;while(1){if((a|0)==(d|0))break;f=d+-40|0;NVa(f);d=f}c[g>>2]=a;return}function D$(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=b+4|0;e=(c[d>>2]|0)-(c[b>>2]|0)|0;if(!e)return;n=0;da(561,a|0,e>>2|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Qcb(a);Ea(e|0)}Wva(a,c[b>>2]|0,c[d>>2]|0);return}function E$(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=b+4|0;e=(c[d>>2]|0)-(c[b>>2]|0)|0;if(!e)return;n=0;da(131,a|0,e>>2|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Qcb(a);Ea(e|0)}Wva(a,c[b>>2]|0,c[d>>2]|0);return}function F$(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-16|0;V5(f);b=f}c[e>>2]=d;f=c[a>>2]|0;$Wa(c[a+12>>2]|0,f,(c[a+8>>2]|0)-f>>4)}return}function G$(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(16)|0;c[b>>2]=g;c[b+4>>2]=d+8;c[g+8>>2]=c[c[f>>2]>>2];f=g+12|0;c[f>>2]=0;hCb(f);a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function H$(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if((e|0)!=3){d=0;return d|0}f=hfb(c[b+4>>2]|0)|0;e=0;while(1){if((e|0)==16)break;g=Ax(b,32)|0;a[f+16+e>>0]=g;e=e+1|0}g=rl(b)|0;c[f+12>>2]=g;g=rl(b)|0;c[f+8>>2]=g;Ena(f);c[d>>2]=f;g=1;return g|0}function I$(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,58013)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}if(aCb(c[a>>2]|0)|0){yb=d;return c[a+12>>2]|0}else ma(57970,55544,1213,58048);return 0}function J$(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;xx(d,a,b,f);yb=e;return (c[d>>2]|0)+32|0}function K$(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;zx(d,a,b,f);yb=e;return (c[d>>2]|0)+32|0}function L$(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=ifb(c[b+4>>2]|0)|0;c[g+8>>2]=e;f=vp(Vr(d,1)|0,f)|0;a[g+16>>0]=f;f=$db(b,Vr(d,2)|0)|0;c[g+12>>2]=f;f=$db(b,Vr(d,3)|0)|0;c[g+20>>2]=f;zna(g);return g|0}function M$(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=yb;yb=yb+16|0;g=f+4|0;h=f;c[b+16>>2]=0;c[b+24>>2]=c[b+20>>2];c[h>>2]=c[d>>2];c[g>>2]=c[h>>2];fl(a,b,g,e);yb=f;return}function N$(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;c[b>>2]=d;c[b+4>>2]=e;c[b+8>>2]=f;a[b+12>>0]=0;switch(d|0){case 2:{ma(76093,108239,55,76107);break}case 0:{if(Axb(c[c[f>>2]>>2]|0)|0)return;else ma(76122,108239,56,76107);break}case 1:{if(zxb(c[c[f>>2]>>2]|0)|0)return;else ma(76148,108239,57,76107);break}default:return}}function O$(a,b){a=a|0;b=b|0;if(!b)return;O$(a,c[b>>2]|0);O$(a,c[b+4>>2]|0);Nrb(b+16|0);RCb(b);return}function P$(b,d){b=b|0;d=d|0;var e=0;if(a[b+33>>0]&1)BM(IWa(150620,112703)|0);e=c[d+8>>2]|0;if(e|0)yIa(b,e);TW(b,d);return}function Q$(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;if(!(MAb(c[b>>2]|0)|0)){yb=g;return}e=c[a+24>>2]|0;a=cfb(b)|0;c[f>>2]=a;b=e+4|0;d=c[b>>2]|0;if(d>>>0<(c[e+8>>2]|0)>>>0){c[d>>2]=a;c[b>>2]=(c[b>>2]|0)+4;yb=g;return}else{_M(e,f);yb=g;return}}function R$(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+384|0;f=g;if((c[b+16>>2]|0)!=1)ma(112215,111484,981,112230);k4(f);d=f;e=16;while(1){if(!e)break;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[d+16>>2]=c[b+16>>2];d=d+24|0;e=e+-1|0}cab(a,f);yb=g;return}function S$(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;b=Ihb(b)|0;a[b+20>>0]=0;a[b+8>>0]=d;G1a(b+12|0,e,0)|0;G1a(b+16|0,f,0)|0;c[b+24>>2]=g;g=b+28|0;c[g>>2]=h;c[b+32>>2]=i;iHa(b);h=c[(c[g>>2]|0)+4>>2]|0;if((h|0)==(i|0)|(vub(h)|0)^1)return b|0;else ma(56986,83338,263,57053);return 0}function T$(a){a=a|0;var b=0,d=0;oIa(a+112|0);KYa(a+88|0);d=a+84|0;b=c[d>>2]|0;c[d>>2]=0;if(b|0){IM(b);RCb(b)}Pdb(a+64|0);KYa(a+52|0);Vob(a+32|0);Vob(a+20|0);Vob(a+8|0);return}function U$(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+32|0;e=f;if((d|0)!=2){e=0;yb=f;return e|0}d=Ojb(c[a+4>>2]|0)|0;BG(e,a);a=d+8|0;c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];eub(d);c[b>>2]=d;e=1;yb=f;return e|0} -function _b(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=yb;yb=yb+48|0;g=f;h=f+28|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;b[g+24>>1]=0;a[g+26>>0]=0;vtb(g,kH(Vr(e,0)|0)|0,26)|0;a:do switch(a[g>>0]|0){case 98:{switch(a[g+1>>0]|0){case 108:{if(Cla(g,134186)|0)break a;h=Af(d,e)|0;yb=f;return h|0}case 114:break;default:break a}switch(a[g+2>>0]|0){case 0:{if(Cla(g,134134)|0)break a;h=hI(d,e)|0;yb=f;return h|0}case 95:break;default:break a}switch(a[g+3>>0]|0){case 105:{if(Cla(g,134180)|0)break a;h=hI(d,e)|0;yb=f;return h|0}case 116:{if(Cla(g,119872)|0)break a;h=_r(d,e)|0;yb=f;return h|0}default:break a}}case 99:{switch(a[g+1>>0]|0){case 97:break;case 117:{if(Cla(g,119881)|0)break a;h=yq(d,e,0)|0;yb=f;return h|0}default:break a}switch(a[g+4>>0]|0){case 0:{if(Cla(g,134206)|0)break a;h=d3(d,e)|0;yb=f;return h|0}case 95:{if(Cla(g,134192)|0)break a;h=jg(d,e)|0;yb=f;return h|0}default:break a}}case 100:switch(a[g+1>>0]|0){case 97:{if(Cla(g,119896)|0)break a;h=oHa(c[d+4>>2]|0,e)|0;yb=f;return h|0}case 114:{if(Cla(g,134535)|0)break a;h=oza(d,e)|0;yb=f;return h|0}default:break a}case 101:{if(!(Cla(g,134170)|0)){h=J2(d,e)|0;yb=f;return h|0}break}case 102:{switch(a[g+1>>0]|0){case 51:break;case 54:{switch(a[g+3>>0]|0){case 46:break;case 120:do switch(a[g+6>>0]|0){case 97:switch(a[g+7>>0]|0){case 98:{if(Cla(g,120756)|0)break a;h=poa(d,e,82)|0;yb=f;return h|0}case 100:{if(Cla(g,120766)|0)break a;h=x9(d,e,146)|0;yb=f;return h|0}default:break a}case 99:switch(a[g+20>>0]|0){case 115:{if(Cla(g,120776)|0)break a;h=poa(d,e,91)|0;yb=f;return h|0}case 117:{if(Cla(g,120798)|0)break a;h=poa(d,e,92)|0;yb=f;return h|0}default:break a}case 100:{if(Cla(g,120820)|0)break a;h=x9(d,e,149)|0;yb=f;return h|0}case 101:switch(a[g+7>>0]|0){case 113:{if(Cla(g,120830)|0)break a;h=x9(d,e,112)|0;yb=f;return h|0}case 120:{if(Cla(g,120839)|0)break a;h=b8(d,e,7,2)|0;yb=f;return h|0}default:break a}case 103:switch(a[g+7>>0]|0){case 101:{if(Cla(g,120858)|0)break a;h=x9(d,e,117)|0;yb=f;return h|0}case 116:{if(Cla(g,120867)|0)break a;h=x9(d,e,115)|0;yb=f;return h|0}default:break a}case 108:switch(a[g+7>>0]|0){case 101:{if(Cla(g,120876)|0)break a;h=x9(d,e,116)|0;yb=f;return h|0}case 116:{if(Cla(g,120885)|0)break a;h=x9(d,e,114)|0;yb=f;return h|0}default:break a}case 109:switch(a[g+7>>0]|0){case 97:{if(Cla(g,120894)|0)break a;h=x9(d,e,151)|0;yb=f;return h|0}case 105:{if(Cla(g,120904)|0)break a;h=x9(d,e,150)|0;yb=f;return h|0}case 117:{if(Cla(g,120914)|0)break a;h=x9(d,e,148)|0;yb=f;return h|0}default:break a}case 110:switch(a[g+8>>0]|0){case 0:{if(Cla(g,120924)|0)break a;h=x9(d,e,113)|0;yb=f;return h|0}case 103:{if(Cla(g,120933)|0)break a;h=poa(d,e,83)|0;yb=f;return h|0}default:break a}case 114:{if(Cla(g,120943)|0)break a;h=L$(d,e,5,2)|0;yb=f;return h|0}case 115:switch(a[g+7>>0]|0){case 112:{if(Cla(g,120962)|0)break a;h=poa(d,e,65)|0;yb=f;return h|0}case 113:{if(Cla(g,120974)|0)break a;h=poa(d,e,84)|0;yb=f;return h|0}case 117:{if(Cla(g,120985)|0)break a;h=x9(d,e,147)|0;yb=f;return h|0}default:break a}default:break a}while(0);default:break a}do switch(a[g+4>>0]|0){case 97:switch(a[g+5>>0]|0){case 98:{if(Cla(g,120450)|0)break a;h=poa(d,e,9)|0;yb=f;return h|0}case 100:{if(Cla(g,120458)|0)break a;h=x9(d,e,63)|0;yb=f;return h|0}default:break a}case 99:{switch(a[g+5>>0]|0){case 101:{if(Cla(g,120466)|0)break a;h=poa(d,e,11)|0;yb=f;return h|0}case 111:break;default:break a}switch(a[g+6>>0]|0){case 110:break;case 112:{if(Cla(g,120557)|0)break a;h=x9(d,e,67)|0;yb=f;return h|0}default:break a}switch(a[g+7>>0]|0){case 115:{if(Cla(g,120475)|0)break a;h=gf(d,e,4)|0;yb=f;return h|0}case 118:break;default:break a}switch(a[g+13>>0]|0){case 51:switch(a[g+16>>0]|0){case 115:{if(Cla(g,120485)|0)break a;h=poa(d,e,36)|0;yb=f;return h|0}case 117:{if(Cla(g,120503)|0)break a;h=poa(d,e,38)|0;yb=f;return h|0}default:break a}case 54:switch(a[g+16>>0]|0){case 115:{if(Cla(g,120521)|0)break a;h=poa(d,e,40)|0;yb=f;return h|0}case 117:{if(Cla(g,120539)|0)break a;h=poa(d,e,42)|0;yb=f;return h|0}default:break a}default:break a}}case 100:{if(Cla(g,120570)|0)break a;h=x9(d,e,66)|0;yb=f;return h|0}case 101:{if(Cla(g,120578)|0)break a;h=x9(d,e,70)|0;yb=f;return h|0}case 102:{if(Cla(g,120585)|0)break a;h=poa(d,e,13)|0;yb=f;return h|0}case 103:switch(a[g+5>>0]|0){case 101:{if(Cla(g,120595)|0)break a;h=x9(d,e,75)|0;yb=f;return h|0}case 116:{if(Cla(g,120602)|0)break a;h=x9(d,e,74)|0;yb=f;return h|0}default:break a}case 108:switch(a[g+5>>0]|0){case 101:{if(Cla(g,120609)|0)break a;h=x9(d,e,73)|0;yb=f;return h|0}case 111:{if(Cla(g,120616)|0)break a;h=BH(d,e,4,0)|0;yb=f;return h|0}case 116:{if(Cla(g,120625)|0)break a;h=x9(d,e,72)|0;yb=f;return h|0}default:break a}case 109:switch(a[g+5>>0]|0){case 97:{if(Cla(g,120632)|0)break a;h=x9(d,e,69)|0;yb=f;return h|0}case 105:{if(Cla(g,120640)|0)break a;h=x9(d,e,68)|0;yb=f;return h|0}case 117:{if(Cla(g,120648)|0)break a;h=x9(d,e,65)|0;yb=f;return h|0}default:break a}case 110:switch(a[g+6>>0]|0){case 0:{if(Cla(g,120656)|0)break a;h=x9(d,e,71)|0;yb=f;return h|0}case 97:{if(Cla(g,120663)|0)break a;h=poa(d,e,17)|0;yb=f;return h|0}case 103:{if(Cla(g,120675)|0)break a;h=poa(d,e,7)|0;yb=f;return h|0}default:break a}case 112:{if(Cla(g,120683)|0)break a;h=poa(d,e,43)|0;yb=f;return h|0}case 114:{if(Cla(g,120699)|0)break a;h=poa(d,e,46)|0;yb=f;return h|0}case 115:switch(a[g+5>>0]|0){case 113:{if(Cla(g,120719)|0)break a;h=poa(d,e,19)|0;yb=f;return h|0}case 116:{if(Cla(g,120728)|0)break a;h=gH(d,e,4,0)|0;yb=f;return h|0}case 117:{if(Cla(g,120738)|0)break a;h=x9(d,e,64)|0;yb=f;return h|0}default:break a}case 116:{if(Cla(g,120746)|0)break a;h=poa(d,e,15)|0;yb=f;return h|0}default:break a}while(0)}default:break a}switch(a[g+3>>0]|0){case 46:break;case 120:do switch(a[g+6>>0]|0){case 97:switch(a[g+7>>0]|0){case 98:{if(Cla(g,120211)|0)break a;h=poa(d,e,79)|0;yb=f;return h|0}case 100:{if(Cla(g,120221)|0)break a;h=x9(d,e,140)|0;yb=f;return h|0}default:break a}case 99:switch(a[g+20>>0]|0){case 115:{if(Cla(g,120231)|0)break a;h=poa(d,e,89)|0;yb=f;return h|0}case 117:{if(Cla(g,120253)|0)break a;h=poa(d,e,90)|0;yb=f;return h|0}default:break a}case 100:{if(Cla(g,120275)|0)break a;h=x9(d,e,143)|0;yb=f;return h|0}case 101:switch(a[g+7>>0]|0){case 113:{if(Cla(g,120285)|0)break a;h=x9(d,e,106)|0;yb=f;return h|0}case 120:{if(Cla(g,120294)|0)break a;h=b8(d,e,6,4)|0;yb=f;return h|0}default:break a}case 103:switch(a[g+7>>0]|0){case 101:{if(Cla(g,120313)|0)break a;h=x9(d,e,111)|0;yb=f;return h|0}case 116:{if(Cla(g,120322)|0)break a;h=x9(d,e,109)|0;yb=f;return h|0}default:break a}case 108:switch(a[g+7>>0]|0){case 101:{if(Cla(g,120331)|0)break a;h=x9(d,e,110)|0;yb=f;return h|0}case 116:{if(Cla(g,120340)|0)break a;h=x9(d,e,108)|0;yb=f;return h|0}default:break a}case 109:switch(a[g+7>>0]|0){case 97:{if(Cla(g,120349)|0)break a;h=x9(d,e,145)|0;yb=f;return h|0}case 105:{if(Cla(g,120359)|0)break a;h=x9(d,e,144)|0;yb=f;return h|0}case 117:{if(Cla(g,120369)|0)break a;h=x9(d,e,142)|0;yb=f;return h|0}default:break a}case 110:switch(a[g+8>>0]|0){case 0:{if(Cla(g,120379)|0)break a;h=x9(d,e,107)|0;yb=f;return h|0}case 103:{if(Cla(g,120388)|0)break a;h=poa(d,e,80)|0;yb=f;return h|0}default:break a}case 114:{if(Cla(g,120398)|0)break a;h=L$(d,e,4,4)|0;yb=f;return h|0}case 115:switch(a[g+7>>0]|0){case 112:{if(Cla(g,120417)|0)break a;h=poa(d,e,64)|0;yb=f;return h|0}case 113:{if(Cla(g,120429)|0)break a;h=poa(d,e,81)|0;yb=f;return h|0}case 117:{if(Cla(g,120440)|0)break a;h=x9(d,e,141)|0;yb=f;return h|0}default:break a}default:break a}while(0);default:break a}do switch(a[g+4>>0]|0){case 97:switch(a[g+5>>0]|0){case 98:{if(Cla(g,119906)|0)break a;h=poa(d,e,8)|0;yb=f;return h|0}case 100:{if(Cla(g,119914)|0)break a;h=x9(d,e,50)|0;yb=f;return h|0}default:break a}case 99:{switch(a[g+5>>0]|0){case 101:{if(Cla(g,119922)|0)break a;h=poa(d,e,10)|0;yb=f;return h|0}case 111:break;default:break a}switch(a[g+6>>0]|0){case 110:break;case 112:{if(Cla(g,120013)|0)break a;h=x9(d,e,54)|0;yb=f;return h|0}default:break a}switch(a[g+7>>0]|0){case 115:{if(Cla(g,119931)|0)break a;h=gf(d,e,3)|0;yb=f;return h|0}case 118:break;default:break a}switch(a[g+13>>0]|0){case 51:switch(a[g+16>>0]|0){case 115:{if(Cla(g,119941)|0)break a;h=poa(d,e,35)|0;yb=f;return h|0}case 117:{if(Cla(g,119959)|0)break a;h=poa(d,e,37)|0;yb=f;return h|0}default:break a}case 54:switch(a[g+16>>0]|0){case 115:{if(Cla(g,119977)|0)break a;h=poa(d,e,39)|0;yb=f;return h|0}case 117:{if(Cla(g,119995)|0)break a;h=poa(d,e,41)|0;yb=f;return h|0}default:break a}default:break a}}case 100:switch(a[g+5>>0]|0){case 101:{if(Cla(g,120026)|0)break a;h=poa(d,e,44)|0;yb=f;return h|0}case 105:{if(Cla(g,120041)|0)break a;h=x9(d,e,53)|0;yb=f;return h|0}default:break a}case 101:{if(Cla(g,120049)|0)break a;h=x9(d,e,57)|0;yb=f;return h|0}case 102:{if(Cla(g,120056)|0)break a;h=poa(d,e,12)|0;yb=f;return h|0}case 103:switch(a[g+5>>0]|0){case 101:{if(Cla(g,120066)|0)break a;h=x9(d,e,62)|0;yb=f;return h|0}case 116:{if(Cla(g,120073)|0)break a;h=x9(d,e,61)|0;yb=f;return h|0}default:break a}case 108:switch(a[g+5>>0]|0){case 101:{if(Cla(g,120080)|0)break a;h=x9(d,e,60)|0;yb=f;return h|0}case 111:{if(Cla(g,120087)|0)break a;h=BH(d,e,3,0)|0;yb=f;return h|0}case 116:{if(Cla(g,120096)|0)break a;h=x9(d,e,59)|0;yb=f;return h|0}default:break a}case 109:switch(a[g+5>>0]|0){case 97:{if(Cla(g,120103)|0)break a;h=x9(d,e,56)|0;yb=f;return h|0}case 105:{if(Cla(g,120111)|0)break a;h=x9(d,e,55)|0;yb=f;return h|0}case 117:{if(Cla(g,120119)|0)break a;h=x9(d,e,52)|0;yb=f;return h|0}default:break a}case 110:switch(a[g+6>>0]|0){case 0:{if(Cla(g,120127)|0)break a;h=x9(d,e,58)|0;yb=f;return h|0}case 97:{if(Cla(g,120134)|0)break a;h=poa(d,e,16)|0;yb=f;return h|0}case 103:{if(Cla(g,120146)|0)break a;h=poa(d,e,6)|0;yb=f;return h|0}default:break a}case 114:{if(Cla(g,120154)|0)break a;h=poa(d,e,45)|0;yb=f;return h|0}case 115:switch(a[g+5>>0]|0){case 113:{if(Cla(g,120174)|0)break a;h=poa(d,e,18)|0;yb=f;return h|0}case 116:{if(Cla(g,120183)|0)break a;h=gH(d,e,3,0)|0;yb=f;return h|0}case 117:{if(Cla(g,120193)|0)break a;h=x9(d,e,51)|0;yb=f;return h|0}default:break a}case 116:{if(Cla(g,120201)|0)break a;h=poa(d,e,14)|0;yb=f;return h|0}default:break a}while(0)}case 103:{switch(a[g+1>>0]|0){case 108:break;case 114:{if(Cla(g,120995)|0)break a;h=yq(d,e,1)|0;yb=f;return h|0}default:break a}switch(a[g+7>>0]|0){case 103:{if(Cla(g,134476)|0)break a;h=ky(d,e)|0;yb=f;return h|0}case 115:{if(Cla(g,134487)|0)break a;h=ft(d,e)|0;yb=f;return h|0}default:break a}}case 105:switch(a[g+1>>0]|0){case 49:switch(a[g+6>>0]|0){case 97:switch(a[g+7>>0]|0){case 100:{switch(a[g+9>>0]|0){case 0:{if(Cla(g,121007)|0)break a;h=x9(d,e,128)|0;yb=f;return h|0}case 95:break;default:break a}switch(a[g+19>>0]|0){case 115:{if(Cla(g,121017)|0)break a;h=x9(d,e,129)|0;yb=f;return h|0}case 117:{if(Cla(g,121038)|0)break a;h=x9(d,e,130)|0;yb=f;return h|0}default:break a}}case 108:{if(Cla(g,121059)|0)break a;h=poa(d,e,72)|0;yb=f;return h|0}case 110:{if(Cla(g,121074)|0)break a;h=poa(d,e,71)|0;yb=f;return h|0}default:break a}case 101:{switch(a[g+7>>0]|0){case 113:{if(Cla(g,121089)|0)break a;h=x9(d,e,86)|0;yb=f;return h|0}case 120:break;default:break a}switch(a[g+19>>0]|0){case 115:{if(Cla(g,121098)|0)break a;h=b8(d,e,2,8)|0;yb=f;return h|0}case 117:{if(Cla(g,121119)|0)break a;h=b8(d,e,3,8)|0;yb=f;return h|0}default:break a}}case 103:switch(a[g+7>>0]|0){case 101:switch(a[g+9>>0]|0){case 115:{if(Cla(g,121140)|0)break a;h=x9(d,e,94)|0;yb=f;return h|0}case 117:{if(Cla(g,121151)|0)break a;h=x9(d,e,95)|0;yb=f;return h|0}default:break a}case 116:switch(a[g+9>>0]|0){case 115:{if(Cla(g,121162)|0)break a;h=x9(d,e,90)|0;yb=f;return h|0}case 117:{if(Cla(g,121173)|0)break a;h=x9(d,e,91)|0;yb=f;return h|0}default:break a}default:break a}case 108:switch(a[g+7>>0]|0){case 101:switch(a[g+9>>0]|0){case 115:{if(Cla(g,121184)|0)break a;h=x9(d,e,92)|0;yb=f;return h|0}case 117:{if(Cla(g,121195)|0)break a;h=x9(d,e,93)|0;yb=f;return h|0}default:break a}case 116:switch(a[g+9>>0]|0){case 115:{if(Cla(g,121206)|0)break a;h=x9(d,e,88)|0;yb=f;return h|0}case 117:{if(Cla(g,121217)|0)break a;h=x9(d,e,89)|0;yb=f;return h|0}default:break a}default:break a}case 109:{if(Cla(g,121228)|0)break a;h=x9(d,e,134)|0;yb=f;return h|0}case 110:switch(a[g+8>>0]|0){case 0:{if(Cla(g,121238)|0)break a;h=x9(d,e,87)|0;yb=f;return h|0}case 103:{if(Cla(g,121247)|0)break a;h=poa(d,e,70)|0;yb=f;return h|0}default:break a}case 114:{if(Cla(g,121257)|0)break a;h=L$(d,e,1,8)|0;yb=f;return h|0}case 115:switch(a[g+7>>0]|0){case 104:{switch(a[g+8>>0]|0){case 108:{if(Cla(g,121276)|0)break a;h=y8(d,e,3)|0;yb=f;return h|0}case 114:break;default:break a}switch(a[g+10>>0]|0){case 115:{if(Cla(g,121286)|0)break a;h=y8(d,e,4)|0;yb=f;return h|0}case 117:{if(Cla(g,121298)|0)break a;h=y8(d,e,5)|0;yb=f;return h|0}default:break a}}case 112:{if(Cla(g,121310)|0)break a;h=poa(d,e,61)|0;yb=f;return h|0}case 117:{switch(a[g+9>>0]|0){case 0:{if(Cla(g,121322)|0)break a;h=x9(d,e,131)|0;yb=f;return h|0}case 95:break;default:break a}switch(a[g+19>>0]|0){case 115:{if(Cla(g,121332)|0)break a;h=x9(d,e,132)|0;yb=f;return h|0}case 117:{if(Cla(g,121353)|0)break a;h=x9(d,e,133)|0;yb=f;return h|0}default:break a}}default:break a}default:break a}case 51:{switch(a[g+3>>0]|0){case 46:break;case 120:switch(a[g+6>>0]|0){case 97:switch(a[g+7>>0]|0){case 100:{if(Cla(g,122514)|0)break a;h=x9(d,e,135)|0;yb=f;return h|0}case 108:{if(Cla(g,122524)|0)break a;h=poa(d,e,75)|0;yb=f;return h|0}case 110:{if(Cla(g,122539)|0)break a;h=poa(d,e,74)|0;yb=f;return h|0}default:break a}case 101:switch(a[g+7>>0]|0){case 113:{if(Cla(g,122554)|0)break a;h=x9(d,e,96)|0;yb=f;return h|0}case 120:{if(Cla(g,122563)|0)break a;h=b8(d,e,4,4)|0;yb=f;return h|0}default:break a}case 103:switch(a[g+7>>0]|0){case 101:switch(a[g+9>>0]|0){case 115:{if(Cla(g,122582)|0)break a;h=x9(d,e,104)|0;yb=f;return h|0}case 117:{if(Cla(g,122593)|0)break a;h=x9(d,e,105)|0;yb=f;return h|0}default:break a}case 116:switch(a[g+9>>0]|0){case 115:{if(Cla(g,122604)|0)break a;h=x9(d,e,100)|0;yb=f;return h|0}case 117:{if(Cla(g,122615)|0)break a;h=x9(d,e,101)|0;yb=f;return h|0}default:break a}default:break a}case 108:switch(a[g+7>>0]|0){case 101:switch(a[g+9>>0]|0){case 115:{if(Cla(g,122626)|0)break a;h=x9(d,e,102)|0;yb=f;return h|0}case 117:{if(Cla(g,122637)|0)break a;h=x9(d,e,103)|0;yb=f;return h|0}default:break a}case 116:switch(a[g+9>>0]|0){case 115:{if(Cla(g,122648)|0)break a;h=x9(d,e,98)|0;yb=f;return h|0}case 117:{if(Cla(g,122659)|0)break a;h=x9(d,e,99)|0;yb=f;return h|0}default:break a}default:break a}case 109:{if(Cla(g,122670)|0)break a;h=x9(d,e,137)|0;yb=f;return h|0}case 110:switch(a[g+8>>0]|0){case 0:{if(Cla(g,122680)|0)break a;h=x9(d,e,97)|0;yb=f;return h|0}case 103:{if(Cla(g,122689)|0)break a;h=poa(d,e,73)|0;yb=f;return h|0}default:break a}case 114:{if(Cla(g,122699)|0)break a;h=L$(d,e,2,4)|0;yb=f;return h|0}case 115:switch(a[g+7>>0]|0){case 104:{switch(a[g+8>>0]|0){case 108:{if(Cla(g,122718)|0)break a;h=y8(d,e,6)|0;yb=f;return h|0}case 114:break;default:break a}switch(a[g+10>>0]|0){case 115:{if(Cla(g,122728)|0)break a;h=y8(d,e,7)|0;yb=f;return h|0}case 117:{if(Cla(g,122740)|0)break a;h=y8(d,e,8)|0;yb=f;return h|0}default:break a}}case 112:{if(Cla(g,122752)|0)break a;h=poa(d,e,62)|0;yb=f;return h|0}case 117:{if(Cla(g,122764)|0)break a;h=x9(d,e,136)|0;yb=f;return h|0}default:break a}case 116:switch(a[g+22>>0]|0){case 115:{if(Cla(g,122774)|0)break a;h=poa(d,e,85)|0;yb=f;return h|0}case 117:{if(Cla(g,122798)|0)break a;h=poa(d,e,86)|0;yb=f;return h|0}default:break a}default:break a}default:break a}do switch(a[g+4>>0]|0){case 97:switch(a[g+5>>0]|0){case 100:{if(Cla(g,121374)|0)break a;h=x9(d,e,0)|0;yb=f;return h|0}case 110:{if(Cla(g,121382)|0)break a;h=x9(d,e,7)|0;yb=f;return h|0}case 116:switch(a[g+11>>0]|0){case 108:switch(a[g+15>>0]|0){case 0:{if(Cla(g,121390)|0)break a;h=BH(d,e,1,1)|0;yb=f;return h|0}case 49:{if(Cla(g,121406)|0)break a;h=BH(d,e,1,1)|0;yb=f;return h|0}case 56:{if(Cla(g,121426)|0)break a;h=BH(d,e,1,1)|0;yb=f;return h|0}default:break a}case 114:switch(a[g+14>>0]|0){case 46:switch(a[g+15>>0]|0){case 97:switch(a[g+16>>0]|0){case 100:{if(Cla(g,121445)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 110:{if(Cla(g,121464)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}default:break a}case 99:{if(Cla(g,121483)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 111:{if(Cla(g,121506)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 115:{if(Cla(g,121524)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 120:switch(a[g+16>>0]|0){case 99:{if(Cla(g,121543)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 111:{if(Cla(g,121563)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}default:break a}default:break a}case 49:switch(a[g+17>>0]|0){case 97:switch(a[g+18>>0]|0){case 100:{if(Cla(g,121582)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 110:{if(Cla(g,121605)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}default:break a}case 99:{if(Cla(g,121628)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 111:{if(Cla(g,121655)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 115:{if(Cla(g,121677)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 120:switch(a[g+18>>0]|0){case 99:{if(Cla(g,121700)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 111:{if(Cla(g,121724)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}default:break a}default:break a}case 56:switch(a[g+16>>0]|0){case 97:switch(a[g+17>>0]|0){case 100:{if(Cla(g,121747)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 110:{if(Cla(g,121769)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}default:break a}case 99:{if(Cla(g,121791)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 111:{if(Cla(g,121817)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 115:{if(Cla(g,121838)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 120:switch(a[g+17>>0]|0){case 99:{if(Cla(g,121860)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}case 111:{if(Cla(g,121883)|0)break a;h=bw(d,e,1)|0;yb=f;return h|0}default:break a}default:break a}default:break a}case 115:switch(a[g+16>>0]|0){case 0:{if(Cla(g,121905)|0)break a;h=gH(d,e,1,1)|0;yb=f;return h|0}case 49:{if(Cla(g,121922)|0)break a;h=gH(d,e,1,1)|0;yb=f;return h|0}case 56:{if(Cla(g,121941)|0)break a;h=gH(d,e,1,1)|0;yb=f;return h|0}default:break a}default:break a}default:break a}case 99:switch(a[g+5>>0]|0){case 108:{if(Cla(g,121959)|0)break a;h=poa(d,e,0)|0;yb=f;return h|0}case 111:{if(Cla(g,121967)|0)break a;h=gf(d,e,1)|0;yb=f;return h|0}case 116:{if(Cla(g,121977)|0)break a;h=poa(d,e,2)|0;yb=f;return h|0}default:break a}case 100:switch(a[g+8>>0]|0){case 115:{if(Cla(g,121985)|0)break a;h=x9(d,e,3)|0;yb=f;return h|0}case 117:{if(Cla(g,121995)|0)break a;h=x9(d,e,4)|0;yb=f;return h|0}default:break a}case 101:switch(a[g+5>>0]|0){case 113:switch(a[g+6>>0]|0){case 0:{if(Cla(g,122005)|0)break a;h=x9(d,e,15)|0;yb=f;return h|0}case 122:{if(Cla(g,122012)|0)break a;h=poa(d,e,20)|0;yb=f;return h|0}default:break a}case 120:switch(a[g+10>>0]|0){case 49:{if(Cla(g,122020)|0)break a;h=poa(d,e,48)|0;yb=f;return h|0}case 56:{if(Cla(g,122035)|0)break a;h=poa(d,e,47)|0;yb=f;return h|0}default:break a}default:break a}case 103:switch(a[g+5>>0]|0){case 101:switch(a[g+7>>0]|0){case 115:{if(Cla(g,122049)|0)break a;h=x9(d,e,23)|0;yb=f;return h|0}case 117:{if(Cla(g,122058)|0)break a;h=x9(d,e,24)|0;yb=f;return h|0}default:break a}case 116:switch(a[g+7>>0]|0){case 115:{if(Cla(g,122067)|0)break a;h=x9(d,e,21)|0;yb=f;return h|0}case 117:{if(Cla(g,122076)|0)break a;h=x9(d,e,22)|0;yb=f;return h|0}default:break a}default:break a}case 108:switch(a[g+5>>0]|0){case 101:switch(a[g+7>>0]|0){case 115:{if(Cla(g,122085)|0)break a;h=x9(d,e,19)|0;yb=f;return h|0}case 117:{if(Cla(g,122094)|0)break a;h=x9(d,e,20)|0;yb=f;return h|0}default:break a}case 111:switch(a[g+8>>0]|0){case 0:{if(Cla(g,122103)|0)break a;h=BH(d,e,1,0)|0;yb=f;return h|0}case 49:switch(a[g+11>>0]|0){case 115:{if(Cla(g,122112)|0)break a;h=BH(d,e,1,0)|0;yb=f;return h|0}case 117:{if(Cla(g,122125)|0)break a;h=BH(d,e,1,0)|0;yb=f;return h|0}default:break a}case 56:switch(a[g+10>>0]|0){case 115:{if(Cla(g,122138)|0)break a;h=BH(d,e,1,0)|0;yb=f;return h|0}case 117:{if(Cla(g,122150)|0)break a;h=BH(d,e,1,0)|0;yb=f;return h|0}default:break a}default:break a}case 116:switch(a[g+7>>0]|0){case 115:{if(Cla(g,122162)|0)break a;h=x9(d,e,17)|0;yb=f;return h|0}case 117:{if(Cla(g,122171)|0)break a;h=x9(d,e,18)|0;yb=f;return h|0}default:break a}default:break a}case 109:{if(Cla(g,122180)|0)break a;h=x9(d,e,2)|0;yb=f;return h|0}case 110:{if(Cla(g,122188)|0)break a;h=x9(d,e,16)|0;yb=f;return h|0}case 111:{if(Cla(g,122195)|0)break a;h=x9(d,e,8)|0;yb=f;return h|0}case 112:{if(Cla(g,122202)|0)break a;h=poa(d,e,4)|0;yb=f;return h|0}case 114:{switch(a[g+5>>0]|0){case 101:break;case 111:switch(a[g+7>>0]|0){case 108:{if(Cla(g,122253)|0)break a;h=x9(d,e,13)|0;yb=f;return h|0}case 114:{if(Cla(g,122262)|0)break a;h=x9(d,e,14)|0;yb=f;return h|0}default:break a}default:break a}switch(a[g+6>>0]|0){case 105:{if(Cla(g,122213)|0)break a;h=poa(d,e,33)|0;yb=f;return h|0}case 109:break;default:break a}switch(a[g+8>>0]|0){case 115:{if(Cla(g,122233)|0)break a;h=x9(d,e,5)|0;yb=f;return h|0}case 117:{if(Cla(g,122243)|0)break a;h=x9(d,e,6)|0;yb=f;return h|0}default:break a}}case 115:switch(a[g+5>>0]|0){case 104:{switch(a[g+6>>0]|0){case 108:{if(Cla(g,122271)|0)break a;h=x9(d,e,10)|0;yb=f;return h|0}case 114:break;default:break a}switch(a[g+8>>0]|0){case 115:{if(Cla(g,122279)|0)break a;h=x9(d,e,12)|0;yb=f;return h|0}case 117:{if(Cla(g,122289)|0)break a;h=x9(d,e,11)|0;yb=f;return h|0}default:break a}}case 116:switch(a[g+9>>0]|0){case 0:{if(Cla(g,122299)|0)break a;h=gH(d,e,1,0)|0;yb=f;return h|0}case 49:{if(Cla(g,122309)|0)break a;h=gH(d,e,1,0)|0;yb=f;return h|0}case 56:{if(Cla(g,122321)|0)break a;h=gH(d,e,1,0)|0;yb=f;return h|0}default:break a}case 117:{if(Cla(g,122332)|0)break a;h=x9(d,e,1)|0;yb=f;return h|0}default:break a}case 116:switch(a[g+10>>0]|0){case 102:switch(a[g+11>>0]|0){case 51:switch(a[g+14>>0]|0){case 115:{if(Cla(g,122340)|0)break a;h=poa(d,e,25)|0;yb=f;return h|0}case 117:{if(Cla(g,122356)|0)break a;h=poa(d,e,27)|0;yb=f;return h|0}default:break a}case 54:switch(a[g+14>>0]|0){case 115:{if(Cla(g,122372)|0)break a;h=poa(d,e,29)|0;yb=f;return h|0}case 117:{if(Cla(g,122388)|0)break a;h=poa(d,e,31)|0;yb=f;return h|0}default:break a}default:break a}case 115:switch(a[g+15>>0]|0){case 51:switch(a[g+18>>0]|0){case 115:{if(Cla(g,122404)|0)break a;h=poa(d,e,52)|0;yb=f;return h|0}case 117:{if(Cla(g,122424)|0)break a;h=poa(d,e,53)|0;yb=f;return h|0}default:break a}case 54:switch(a[g+18>>0]|0){case 115:{if(Cla(g,122444)|0)break a;h=poa(d,e,54)|0;yb=f;return h|0}case 117:{if(Cla(g,122464)|0)break a;h=poa(d,e,55)|0;yb=f;return h|0}default:break a}default:break a}default:break a}case 119:switch(a[g+5>>0]|0){case 97:{if(Cla(g,122484)|0)break a;h=q_(d,e,1)|0;yb=f;return h|0}case 114:{if(Cla(g,122493)|0)break a;h=poa(d,e,24)|0;yb=f;return h|0}default:break a}case 120:{if(Cla(g,122506)|0)break a;h=x9(d,e,9)|0;yb=f;return h|0}default:break a}while(0)}case 54:{switch(a[g+3>>0]|0){case 46:break;case 120:switch(a[g+6>>0]|0){case 97:switch(a[g+7>>0]|0){case 100:{if(Cla(g,124240)|0)break a;h=x9(d,e,138)|0;yb=f;return h|0}case 108:{if(Cla(g,124250)|0)break a;h=poa(d,e,78)|0;yb=f;return h|0}case 110:{if(Cla(g,124265)|0)break a;h=poa(d,e,77)|0;yb=f;return h|0}default:break a}case 101:{if(Cla(g,124280)|0)break a;h=b8(d,e,5,2)|0;yb=f;return h|0}case 110:{if(Cla(g,124299)|0)break a;h=poa(d,e,76)|0;yb=f;return h|0}case 114:{if(Cla(g,124309)|0)break a;h=L$(d,e,3,2)|0;yb=f;return h|0}case 115:switch(a[g+7>>0]|0){case 104:{switch(a[g+8>>0]|0){case 108:{if(Cla(g,124328)|0)break a;h=y8(d,e,9)|0;yb=f;return h|0}case 114:break;default:break a}switch(a[g+10>>0]|0){case 115:{if(Cla(g,124338)|0)break a;h=y8(d,e,10)|0;yb=f;return h|0}case 117:{if(Cla(g,124350)|0)break a;h=y8(d,e,11)|0;yb=f;return h|0}default:break a}}case 112:{if(Cla(g,124362)|0)break a;h=poa(d,e,63)|0;yb=f;return h|0}case 117:{if(Cla(g,124374)|0)break a;h=x9(d,e,139)|0;yb=f;return h|0}default:break a}case 116:switch(a[g+22>>0]|0){case 115:{if(Cla(g,124384)|0)break a;h=poa(d,e,87)|0;yb=f;return h|0}case 117:{if(Cla(g,124408)|0)break a;h=poa(d,e,88)|0;yb=f;return h|0}default:break a}default:break a}default:break a}do switch(a[g+4>>0]|0){case 97:switch(a[g+5>>0]|0){case 100:{if(Cla(g,122822)|0)break a;h=x9(d,e,25)|0;yb=f;return h|0}case 110:{if(Cla(g,122830)|0)break a;h=x9(d,e,32)|0;yb=f;return h|0}case 116:switch(a[g+11>>0]|0){case 108:switch(a[g+15>>0]|0){case 0:{if(Cla(g,122838)|0)break a;h=BH(d,e,2,1)|0;yb=f;return h|0}case 49:{if(Cla(g,122854)|0)break a;h=BH(d,e,2,1)|0;yb=f;return h|0}case 51:{if(Cla(g,122874)|0)break a;h=BH(d,e,2,1)|0;yb=f;return h|0}case 56:{if(Cla(g,122894)|0)break a;h=BH(d,e,2,1)|0;yb=f;return h|0}default:break a}case 114:switch(a[g+14>>0]|0){case 46:switch(a[g+15>>0]|0){case 97:switch(a[g+16>>0]|0){case 100:{if(Cla(g,122913)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 110:{if(Cla(g,122932)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}default:break a}case 99:{if(Cla(g,122951)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 111:{if(Cla(g,122974)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 115:{if(Cla(g,122992)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 120:switch(a[g+16>>0]|0){case 99:{if(Cla(g,123011)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 111:{if(Cla(g,123031)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}default:break a}default:break a}case 49:switch(a[g+17>>0]|0){case 97:switch(a[g+18>>0]|0){case 100:{if(Cla(g,123050)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 110:{if(Cla(g,123073)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}default:break a}case 99:{if(Cla(g,123096)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 111:{if(Cla(g,123123)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 115:{if(Cla(g,123145)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 120:switch(a[g+18>>0]|0){case 99:{if(Cla(g,123168)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 111:{if(Cla(g,123192)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}default:break a}default:break a}case 51:switch(a[g+17>>0]|0){case 97:switch(a[g+18>>0]|0){case 100:{if(Cla(g,123215)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 110:{if(Cla(g,123238)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}default:break a}case 99:{if(Cla(g,123261)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 111:{if(Cla(g,123288)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 115:{if(Cla(g,123310)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 120:switch(a[g+18>>0]|0){case 99:{if(Cla(g,123333)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 111:{if(Cla(g,123357)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}default:break a}default:break a}case 56:switch(a[g+16>>0]|0){case 97:switch(a[g+17>>0]|0){case 100:{if(Cla(g,123380)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 110:{if(Cla(g,123402)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}default:break a}case 99:{if(Cla(g,123424)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 111:{if(Cla(g,123450)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 115:{if(Cla(g,123471)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 120:switch(a[g+17>>0]|0){case 99:{if(Cla(g,123493)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}case 111:{if(Cla(g,123516)|0)break a;h=bw(d,e,2)|0;yb=f;return h|0}default:break a}default:break a}default:break a}case 115:switch(a[g+16>>0]|0){case 0:{if(Cla(g,123538)|0)break a;h=gH(d,e,2,1)|0;yb=f;return h|0}case 49:{if(Cla(g,123555)|0)break a;h=gH(d,e,2,1)|0;yb=f;return h|0}case 51:{if(Cla(g,123574)|0)break a;h=gH(d,e,2,1)|0;yb=f;return h|0}case 56:{if(Cla(g,123593)|0)break a;h=gH(d,e,2,1)|0;yb=f;return h|0}default:break a}default:break a}default:break a}case 99:switch(a[g+5>>0]|0){case 108:{if(Cla(g,123611)|0)break a;h=poa(d,e,1)|0;yb=f;return h|0}case 111:{if(Cla(g,123619)|0)break a;h=gf(d,e,2)|0;yb=f;return h|0}case 116:{if(Cla(g,123629)|0)break a;h=poa(d,e,3)|0;yb=f;return h|0}default:break a}case 100:switch(a[g+8>>0]|0){case 115:{if(Cla(g,123637)|0)break a;h=x9(d,e,28)|0;yb=f;return h|0}case 117:{if(Cla(g,123647)|0)break a;h=x9(d,e,29)|0;yb=f;return h|0}default:break a}case 101:{switch(a[g+5>>0]|0){case 113:switch(a[g+6>>0]|0){case 0:{if(Cla(g,123657)|0)break a;h=x9(d,e,40)|0;yb=f;return h|0}case 122:{if(Cla(g,123664)|0)break a;h=poa(d,e,21)|0;yb=f;return h|0}default:break a}case 120:break;default:break a}switch(a[g+10>>0]|0){case 49:{if(Cla(g,123672)|0)break a;h=poa(d,e,50)|0;yb=f;return h|0}case 51:{if(Cla(g,123687)|0)break a;h=poa(d,e,51)|0;yb=f;return h|0}case 56:{if(Cla(g,123702)|0)break a;h=poa(d,e,49)|0;yb=f;return h|0}case 95:switch(a[g+15>>0]|0){case 115:{if(Cla(g,123716)|0)break a;h=poa(d,e,22)|0;yb=f;return h|0}case 117:{if(Cla(g,123733)|0)break a;h=poa(d,e,23)|0;yb=f;return h|0}default:break a}default:break a}}case 103:switch(a[g+5>>0]|0){case 101:switch(a[g+7>>0]|0){case 115:{if(Cla(g,123750)|0)break a;h=x9(d,e,48)|0;yb=f;return h|0}case 117:{if(Cla(g,123759)|0)break a;h=x9(d,e,49)|0;yb=f;return h|0}default:break a}case 116:switch(a[g+7>>0]|0){case 115:{if(Cla(g,123768)|0)break a;h=x9(d,e,46)|0;yb=f;return h|0}case 117:{if(Cla(g,123777)|0)break a;h=x9(d,e,47)|0;yb=f;return h|0}default:break a}default:break a}case 108:switch(a[g+5>>0]|0){case 101:switch(a[g+7>>0]|0){case 115:{if(Cla(g,123786)|0)break a;h=x9(d,e,44)|0;yb=f;return h|0}case 117:{if(Cla(g,123795)|0)break a;h=x9(d,e,45)|0;yb=f;return h|0}default:break a}case 111:switch(a[g+8>>0]|0){case 0:{if(Cla(g,123804)|0)break a;h=BH(d,e,2,0)|0;yb=f;return h|0}case 49:switch(a[g+11>>0]|0){case 115:{if(Cla(g,123813)|0)break a;h=BH(d,e,2,0)|0;yb=f;return h|0}case 117:{if(Cla(g,123826)|0)break a;h=BH(d,e,2,0)|0;yb=f;return h|0}default:break a}case 51:switch(a[g+11>>0]|0){case 115:{if(Cla(g,123839)|0)break a;h=BH(d,e,2,0)|0;yb=f;return h|0}case 117:{if(Cla(g,123852)|0)break a;h=BH(d,e,2,0)|0;yb=f;return h|0}default:break a}case 56:switch(a[g+10>>0]|0){case 115:{if(Cla(g,123865)|0)break a;h=BH(d,e,2,0)|0;yb=f;return h|0}case 117:{if(Cla(g,123877)|0)break a;h=BH(d,e,2,0)|0;yb=f;return h|0}default:break a}default:break a}case 116:switch(a[g+7>>0]|0){case 115:{if(Cla(g,123889)|0)break a;h=x9(d,e,42)|0;yb=f;return h|0}case 117:{if(Cla(g,123898)|0)break a;h=x9(d,e,43)|0;yb=f;return h|0}default:break a}default:break a}case 109:{if(Cla(g,123907)|0)break a;h=x9(d,e,27)|0;yb=f;return h|0}case 110:{if(Cla(g,123915)|0)break a;h=x9(d,e,41)|0;yb=f;return h|0}case 111:{if(Cla(g,123922)|0)break a;h=x9(d,e,33)|0;yb=f;return h|0}case 112:{if(Cla(g,123929)|0)break a;h=poa(d,e,5)|0;yb=f;return h|0}case 114:{switch(a[g+5>>0]|0){case 101:break;case 111:switch(a[g+7>>0]|0){case 108:{if(Cla(g,123980)|0)break a;h=x9(d,e,38)|0;yb=f;return h|0}case 114:{if(Cla(g,123989)|0)break a;h=x9(d,e,39)|0;yb=f;return h|0}default:break a}default:break a}switch(a[g+6>>0]|0){case 105:{if(Cla(g,123940)|0)break a;h=poa(d,e,34)|0;yb=f;return h|0}case 109:break;default:break a}switch(a[g+8>>0]|0){case 115:{if(Cla(g,123960)|0)break a;h=x9(d,e,30)|0;yb=f;return h|0}case 117:{if(Cla(g,123970)|0)break a;h=x9(d,e,31)|0;yb=f;return h|0}default:break a}}case 115:switch(a[g+5>>0]|0){case 104:{switch(a[g+6>>0]|0){case 108:{if(Cla(g,123998)|0)break a;h=x9(d,e,35)|0;yb=f;return h|0}case 114:break;default:break a}switch(a[g+8>>0]|0){case 115:{if(Cla(g,124006)|0)break a;h=x9(d,e,37)|0;yb=f;return h|0}case 117:{if(Cla(g,124016)|0)break a;h=x9(d,e,36)|0;yb=f;return h|0}default:break a}}case 116:switch(a[g+9>>0]|0){case 0:{if(Cla(g,124026)|0)break a;h=gH(d,e,2,0)|0;yb=f;return h|0}case 49:{if(Cla(g,124036)|0)break a;h=gH(d,e,2,0)|0;yb=f;return h|0}case 51:{if(Cla(g,124048)|0)break a;h=gH(d,e,2,0)|0;yb=f;return h|0}case 56:{if(Cla(g,124060)|0)break a;h=gH(d,e,2,0)|0;yb=f;return h|0}default:break a}case 117:{if(Cla(g,124071)|0)break a;h=x9(d,e,26)|0;yb=f;return h|0}default:break a}case 116:switch(a[g+10>>0]|0){case 102:switch(a[g+11>>0]|0){case 51:switch(a[g+14>>0]|0){case 115:{if(Cla(g,124079)|0)break a;h=poa(d,e,26)|0;yb=f;return h|0}case 117:{if(Cla(g,124095)|0)break a;h=poa(d,e,28)|0;yb=f;return h|0}default:break a}case 54:switch(a[g+14>>0]|0){case 115:{if(Cla(g,124111)|0)break a;h=poa(d,e,30)|0;yb=f;return h|0}case 117:{if(Cla(g,124127)|0)break a;h=poa(d,e,32)|0;yb=f;return h|0}default:break a}default:break a}case 115:switch(a[g+15>>0]|0){case 51:switch(a[g+18>>0]|0){case 115:{if(Cla(g,124143)|0)break a;h=poa(d,e,56)|0;yb=f;return h|0}case 117:{if(Cla(g,124163)|0)break a;h=poa(d,e,57)|0;yb=f;return h|0}default:break a}case 54:switch(a[g+18>>0]|0){case 115:{if(Cla(g,124183)|0)break a;h=poa(d,e,58)|0;yb=f;return h|0}case 117:{if(Cla(g,124203)|0)break a;h=poa(d,e,59)|0;yb=f;return h|0}default:break a}default:break a}default:break a}case 119:{if(Cla(g,124223)|0)break a;h=q_(d,e,2)|0;yb=f;return h|0}case 120:{if(Cla(g,124232)|0)break a;h=x9(d,e,34)|0;yb=f;return h|0}default:break a}while(0)}case 56:switch(a[g+6>>0]|0){case 97:switch(a[g+7>>0]|0){case 100:{switch(a[g+9>>0]|0){case 0:{if(Cla(g,124432)|0)break a;h=x9(d,e,121)|0;yb=f;return h|0}case 95:break;default:break a}switch(a[g+19>>0]|0){case 115:{if(Cla(g,124442)|0)break a;h=x9(d,e,122)|0;yb=f;return h|0}case 117:{if(Cla(g,124463)|0)break a;h=x9(d,e,123)|0;yb=f;return h|0}default:break a}}case 108:{if(Cla(g,124484)|0)break a;h=poa(d,e,69)|0;yb=f;return h|0}case 110:{if(Cla(g,124499)|0)break a;h=poa(d,e,68)|0;yb=f;return h|0}default:break a}case 101:{switch(a[g+7>>0]|0){case 113:{if(Cla(g,124514)|0)break a;h=x9(d,e,76)|0;yb=f;return h|0}case 120:break;default:break a}switch(a[g+19>>0]|0){case 115:{if(Cla(g,124523)|0)break a;h=b8(d,e,0,16)|0;yb=f;return h|0}case 117:{if(Cla(g,124544)|0)break a;h=b8(d,e,1,16)|0;yb=f;return h|0}default:break a}}case 103:switch(a[g+7>>0]|0){case 101:switch(a[g+9>>0]|0){case 115:{if(Cla(g,124565)|0)break a;h=x9(d,e,84)|0;yb=f;return h|0}case 117:{if(Cla(g,124576)|0)break a;h=x9(d,e,85)|0;yb=f;return h|0}default:break a}case 116:switch(a[g+9>>0]|0){case 115:{if(Cla(g,124587)|0)break a;h=x9(d,e,80)|0;yb=f;return h|0}case 117:{if(Cla(g,124598)|0)break a;h=x9(d,e,81)|0;yb=f;return h|0}default:break a}default:break a}case 108:switch(a[g+7>>0]|0){case 101:switch(a[g+9>>0]|0){case 115:{if(Cla(g,124609)|0)break a;h=x9(d,e,82)|0;yb=f;return h|0}case 117:{if(Cla(g,124620)|0)break a;h=x9(d,e,83)|0;yb=f;return h|0}default:break a}case 116:switch(a[g+9>>0]|0){case 115:{if(Cla(g,124631)|0)break a;h=x9(d,e,78)|0;yb=f;return h|0}case 117:{if(Cla(g,124642)|0)break a;h=x9(d,e,79)|0;yb=f;return h|0}default:break a}default:break a}case 109:{if(Cla(g,124653)|0)break a;h=x9(d,e,127)|0;yb=f;return h|0}case 110:switch(a[g+8>>0]|0){case 0:{if(Cla(g,124663)|0)break a;h=x9(d,e,77)|0;yb=f;return h|0}case 103:{if(Cla(g,124672)|0)break a;h=poa(d,e,67)|0;yb=f;return h|0}default:break a}case 114:{if(Cla(g,124682)|0)break a;h=L$(d,e,0,16)|0;yb=f;return h|0}case 115:switch(a[g+7>>0]|0){case 104:{switch(a[g+8>>0]|0){case 108:{if(Cla(g,124701)|0)break a;h=y8(d,e,0)|0;yb=f;return h|0}case 114:break;default:break a}switch(a[g+10>>0]|0){case 115:{if(Cla(g,124711)|0)break a;h=y8(d,e,1)|0;yb=f;return h|0}case 117:{if(Cla(g,124723)|0)break a;h=y8(d,e,2)|0;yb=f;return h|0}default:break a}}case 112:{if(Cla(g,124735)|0)break a;h=poa(d,e,60)|0;yb=f;return h|0}case 117:{switch(a[g+9>>0]|0){case 0:{if(Cla(g,124747)|0)break a;h=x9(d,e,124)|0;yb=f;return h|0}case 95:break;default:break a}switch(a[g+19>>0]|0){case 115:{if(Cla(g,124757)|0)break a;h=x9(d,e,125)|0;yb=f;return h|0}case 117:{if(Cla(g,124778)|0)break a;h=x9(d,e,126)|0;yb=f;return h|0}default:break a}}default:break a}default:break a}case 102:{if(Cla(g,134435)|0)break a;h=Hr(d,e)|0;yb=f;return h|0}default:break a}case 108:{switch(a[g+2>>0]|0){case 99:break;case 111:{if(Cla(g,134438)|0)break a;h=vy(d,e)|0;yb=f;return h|0}default:break a}switch(a[g+6>>0]|0){case 103:{if(Cla(g,134456)|0)break a;h=lma(d,e)|0;yb=f;return h|0}case 115:{if(Cla(g,134466)|0)break a;h=qaa(d,e)|0;yb=f;return h|0}case 116:{if(Cla(g,124799)|0)break a;h=paa(d,e)|0;yb=f;return h|0}default:break a}}case 109:switch(a[g+7>>0]|0){case 99:{if(Cla(g,124809)|0)break a;h=f3(d,e)|0;yb=f;return h|0}case 102:{if(Cla(g,124821)|0)break a;h=e3(d,e)|0;yb=f;return h|0}case 105:{if(Cla(g,124833)|0)break a;h=UV(d,e)|0;yb=f;return h|0}default:break a}case 110:{if(!(Cla(g,134552)|0)){h=ytb(c[d+4>>2]|0)|0;yb=f;return h|0}break}case 114:{if(!(Cla(g,134540)|0)){h=tqa(d,e)|0;yb=f;return h|0}break}case 115:{if(!(Cla(g,134528)|0)){h=U3(d,e)|0;yb=f;return h|0}break}case 116:{if(!(Cla(g,134175)|0)){h=J2(d,e)|0;yb=f;return h|0}break}case 117:{if(!(Cla(g,134556)|0)){h=Dpb(c[d+4>>2]|0)|0;yb=f;return h|0}break}case 118:{switch(a[g+1>>0]|0){case 49:break;case 56:{if(Cla(g,124927)|0)break a;h=BX(d,e)|0;yb=f;return h|0}default:break a}switch(a[g+5>>0]|0){case 97:{if(Cla(g,124845)|0)break a;h=x9(d,e,118)|0;yb=f;return h|0}case 98:{if(Cla(g,124854)|0)break a;h=w2(d,e)|0;yb=f;return h|0}case 99:{if(Cla(g,124869)|0)break a;h=gf(d,e,5)|0;yb=f;return h|0}case 108:{if(Cla(g,124880)|0)break a;h=BH(d,e,5,0)|0;yb=f;return h|0}case 110:{if(Cla(g,124890)|0)break a;h=poa(d,e,66)|0;yb=f;return h|0}case 111:{if(Cla(g,124899)|0)break a;h=x9(d,e,119)|0;yb=f;return h|0}case 115:{if(Cla(g,124907)|0)break a;h=gH(d,e,5,0)|0;yb=f;return h|0}case 120:{if(Cla(g,124918)|0)break a;h=x9(d,e,120)|0;yb=f;return h|0}default:break a}}case 119:{if(!(Cla(g,124941)|0)){h=oaa(d,e)|0;yb=f;return h|0}break}default:{}}while(0);f=oa(20)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;e=Zzb(g)|0;n=0;ea(95,h|0,g|0,e|0);g=n;n=0;if(!(g&1)){n=0;da(330,f|0,h|0);g=n;n=0;if(g&1)e=1;else{n=0;ea(122,f|0,31856,511);n=0;e=0}d=sa()|0;P()|0;Chb(h);if(!e){h=d;Ea(h|0)}}else{d=sa()|0;P()|0}va(f|0);h=d;Ea(h|0);return 0}function $b(b){b=b|0;var d=0,e=0,f=0,h=0.0,i=0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,S=0,T=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0;ma=yb;yb=yb+384|0;ia=ma+364|0;Y=ma+352|0;W=ma+340|0;T=ma+328|0;R=ma+316|0;O=ma+304|0;M=ma+292|0;K=ma+280|0;H=ma+268|0;F=ma+256|0;D=ma+244|0;B=ma+232|0;z=ma+220|0;x=ma+208|0;v=ma+196|0;w=ma+184|0;y=ma+172|0;A=ma+160|0;C=ma+148|0;E=ma+136|0;G=ma+124|0;J=ma+112|0;L=ma+100|0;N=ma+88|0;Q=ma+76|0;S=ma+64|0;V=ma+52|0;X=ma+40|0;Z=ma+28|0;ka=ma+16|0;ja=ma+4|0;la=ma;$=b+16|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[$>>2]=1.0;qa=b+20|0;c[qa>>2]=0;c[qa+4>>2]=0;c[qa+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[qa+(d<<2)>>2]=0;d=d+1|0}aa=b+4|0;ba=b+12|0;pa=b+32|0;c[pa>>2]=0;c[pa+4>>2]=0;c[pa+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[pa+(d<<2)>>2]=0;d=d+1|0}na=b+44|0;oa=b+56|0;ga=b+60|0;ha=b+64|0;c[na>>2]=0;c[na+4>>2]=0;c[na+8>>2]=0;c[na+12>>2]=0;c[na+16>>2]=0;c[na+20>>2]=0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;u=Zzb(88662)|0;n=0;ea(95,w|0,88662,u|0);u=n;n=0;do if(!(u&1)){u=Gxa(w)|0;i=c[aa>>2]|0;t=(i|0)==0;a:do if(!t){m=i+-1|0;o=(i&m|0)==0;if(!o)if(u>>>0>>0)e=u;else e=(u>>>0)%(i>>>0)|0;else e=u&m;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d)_=33;else{r=a[w+11>>0]|0;p=r<<24>>24<0;q=c[w+4>>2]|0;r=r&255;s=c[w>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=33;break a}f=c[d+4>>2]|0;if((f|0)!=(u|0)){if(!o){if(f>>>0>=i>>>0)f=(f>>>0)%(i>>>0)|0}else f=f&m;if((f|0)!=(e|0)){_=33;break a}}l=d+8|0;f=a[l+11>>0]|0;k=f<<24>>24<0;if(k)f=c[d+12>>2]|0;else f=f&255;b:do if((f|0)==((p?q:r)|0)){if(k)if(!(qdb(c[l>>2]|0,p?s:w,f)|0))break a;else break;k=p?s:w;while(1){if(!f)break a;if((a[l>>0]|0)!=(a[k>>0]|0))break b;l=l+1|0;f=f+-1|0;k=k+1|0}}while(0)}}}else{e=0;_=33}while(0);c:do if((_|0)==33){n=0;fa(117,v|0,b|0,u|0,w|0);s=n;n=0;d:do if(s&1){d=sa()|0;P()|0}else{h=+(((c[ba>>2]|0)+1|0)>>>0);j=+g[$>>2];if(j*+(i>>>0)>>0>2){e=(i&i+-1|0)==0;_=38}else{e=0;_=38}}else if(t){e=0;d=0;_=38}do if((_|0)==38){t=d|(e^1)&1;s=~~+I(+(h/j))>>>0;n=0;da(2037,b|0,(t>>>0>>0?s:t)|0);t=n;n=0;if(t&1){d=sa()|0;P()|0;e=c[v>>2]|0;c[v>>2]=0;if(!e)break d;if(a[v+8>>0]&1)Chb(e+8|0);RCb(e);break d}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){u=b+8|0;d=c[v>>2]|0;c[d>>2]=c[u>>2];f=d;c[u>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=u;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;if(i&e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&e;c[(c[b>>2]|0)+(d<<2)>>2]=f}}else{u=c[v>>2]|0;c[u>>2]=c[d>>2];c[d>>2]=u}c[ba>>2]=(c[ba>>2]|0)+1;c[v>>2]=0;break c}while(0);Chb(w);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(w);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;w=Zzb(134435)|0;n=0;ea(95,y|0,134435,w|0);w=n;n=0;if(!(w&1)){u=Gxa(y)|0;i=c[aa>>2]|0;t=(i|0)==0;e:do if(!t){m=i+-1|0;o=(i&m|0)==0;if(!o)if(u>>>0>>0)e=u;else e=(u>>>0)%(i>>>0)|0;else e=u&m;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d)_=82;else{r=a[y+11>>0]|0;p=r<<24>>24<0;q=c[y+4>>2]|0;r=r&255;s=c[y>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=82;break e}f=c[d+4>>2]|0;if((f|0)!=(u|0)){if(!o){if(f>>>0>=i>>>0)f=(f>>>0)%(i>>>0)|0}else f=f&m;if((f|0)!=(e|0)){_=82;break e}}k=d+8|0;f=a[k+11>>0]|0;l=f<<24>>24<0;if(l)f=c[d+12>>2]|0;else f=f&255;f:do if((f|0)==((p?q:r)|0)){if(l)if(!(qdb(c[k>>2]|0,p?s:y,f)|0))break e;else break;l=p?s:y;while(1){if(!f)break e;if((a[k>>0]|0)!=(a[l>>0]|0))break f;l=l+1|0;k=k+1|0;f=f+-1|0}}while(0)}}}else{e=0;_=82}while(0);g:do if((_|0)==82){n=0;fa(117,x|0,b|0,u|0,y|0);w=n;n=0;h:do if(w&1){d=sa()|0;P()|0}else{h=+(((c[ba>>2]|0)+1|0)>>>0);j=+g[$>>2];if(j*+(i>>>0)>>0>2){e=(i&i+-1|0)==0;_=87}else{e=0;_=87}}else if(t){e=0;d=0;_=87}do if((_|0)==87){w=d|(e^1)&1;v=~~+I(+(h/j))>>>0;n=0;da(2037,b|0,(w>>>0>>0?v:w)|0);w=n;n=0;if(w&1){d=sa()|0;P()|0;e=c[x>>2]|0;c[x>>2]=0;if(!e)break h;if(a[x+8>>0]&1)Chb(e+8|0);RCb(e);break h}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){w=b+8|0;d=c[x>>2]|0;c[d>>2]=c[w>>2];f=d;c[w>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=w;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;if(i&e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&e;c[(c[b>>2]|0)+(d<<2)>>2]=f}}else{w=c[x>>2]|0;c[w>>2]=c[d>>2];c[d>>2]=w}c[ba>>2]=(c[ba>>2]|0)+1;c[x>>2]=0;break g}while(0);Chb(y);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(y);c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;y=Zzb(88665)|0;n=0;ea(95,A|0,88665,y|0);y=n;n=0;if(!(y&1)){u=Gxa(A)|0;i=c[aa>>2]|0;t=(i|0)==0;i:do if(!t){m=i+-1|0;o=(i&m|0)==0;if(!o)if(u>>>0>>0)e=u;else e=(u>>>0)%(i>>>0)|0;else e=u&m;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d)_=131;else{r=a[A+11>>0]|0;p=r<<24>>24<0;q=c[A+4>>2]|0;r=r&255;s=c[A>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=131;break i}f=c[d+4>>2]|0;if((f|0)!=(u|0)){if(!o){if(f>>>0>=i>>>0)f=(f>>>0)%(i>>>0)|0}else f=f&m;if((f|0)!=(e|0)){_=131;break i}}k=d+8|0;f=a[k+11>>0]|0;l=f<<24>>24<0;if(l)f=c[d+12>>2]|0;else f=f&255;j:do if((f|0)==((p?q:r)|0)){if(l)if(!(qdb(c[k>>2]|0,p?s:A,f)|0))break i;else break;l=p?s:A;while(1){if(!f)break i;if((a[k>>0]|0)!=(a[l>>0]|0))break j;l=l+1|0;k=k+1|0;f=f+-1|0}}while(0)}}}else{e=0;_=131}while(0);k:do if((_|0)==131){n=0;fa(117,z|0,b|0,u|0,A|0);y=n;n=0;l:do if(y&1){d=sa()|0;P()|0}else{h=+(((c[ba>>2]|0)+1|0)>>>0);j=+g[$>>2];if(j*+(i>>>0)>>0>2){e=(i&i+-1|0)==0;_=136}else{e=0;_=136}}else if(t){e=0;d=0;_=136}do if((_|0)==136){y=d|(e^1)&1;x=~~+I(+(h/j))>>>0;n=0;da(2037,b|0,(y>>>0>>0?x:y)|0);y=n;n=0;if(y&1){d=sa()|0;P()|0;e=c[z>>2]|0;c[z>>2]=0;if(!e)break l;if(a[z+8>>0]&1)Chb(e+8|0);RCb(e);break l}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){y=b+8|0;d=c[z>>2]|0;c[d>>2]=c[y>>2];f=d;c[y>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=y;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;if(i&e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&e;c[(c[b>>2]|0)+(d<<2)>>2]=f}}else{y=c[z>>2]|0;c[y>>2]=c[d>>2];c[d>>2]=y}c[ba>>2]=(c[ba>>2]|0)+1;c[z>>2]=0;break k}while(0);Chb(A);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(A);c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;A=Zzb(88668)|0;n=0;ea(95,C|0,88668,A|0);A=n;n=0;if(!(A&1)){u=Gxa(C)|0;i=c[aa>>2]|0;t=(i|0)==0;m:do if(!t){m=i+-1|0;o=(i&m|0)==0;if(!o)if(u>>>0>>0)e=u;else e=(u>>>0)%(i>>>0)|0;else e=u&m;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d)_=180;else{r=a[C+11>>0]|0;p=r<<24>>24<0;q=c[C+4>>2]|0;r=r&255;s=c[C>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=180;break m}f=c[d+4>>2]|0;if((f|0)!=(u|0)){if(!o){if(f>>>0>=i>>>0)f=(f>>>0)%(i>>>0)|0}else f=f&m;if((f|0)!=(e|0)){_=180;break m}}k=d+8|0;f=a[k+11>>0]|0;l=f<<24>>24<0;if(l)f=c[d+12>>2]|0;else f=f&255;n:do if((f|0)==((p?q:r)|0)){if(l)if(!(qdb(c[k>>2]|0,p?s:C,f)|0))break m;else break;l=p?s:C;while(1){if(!f)break m;if((a[k>>0]|0)!=(a[l>>0]|0))break n;l=l+1|0;k=k+1|0;f=f+-1|0}}while(0)}}}else{e=0;_=180}while(0);o:do if((_|0)==180){n=0;fa(117,B|0,b|0,u|0,C|0);A=n;n=0;p:do if(A&1){d=sa()|0;P()|0}else{h=+(((c[ba>>2]|0)+1|0)>>>0);j=+g[$>>2];if(j*+(i>>>0)>>0>2){e=(i&i+-1|0)==0;_=185}else{e=0;_=185}}else if(t){e=0;d=0;_=185}do if((_|0)==185){A=d|(e^1)&1;z=~~+I(+(h/j))>>>0;n=0;da(2037,b|0,(A>>>0>>0?z:A)|0);A=n;n=0;if(A&1){d=sa()|0;P()|0;e=c[B>>2]|0;c[B>>2]=0;if(!e)break p;if(a[B+8>>0]&1)Chb(e+8|0);RCb(e);break p}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){A=b+8|0;d=c[B>>2]|0;c[d>>2]=c[A>>2];f=d;c[A>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=A;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;if(i&e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&e;c[(c[b>>2]|0)+(d<<2)>>2]=f}}else{A=c[B>>2]|0;c[A>>2]=c[d>>2];c[d>>2]=A}c[ba>>2]=(c[ba>>2]|0)+1;c[B>>2]=0;break o}while(0);Chb(C);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(C);c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;C=Zzb(88672)|0;n=0;ea(95,E|0,88672,C|0);C=n;n=0;if(!(C&1)){u=Gxa(E)|0;i=c[aa>>2]|0;t=(i|0)==0;q:do if(!t){m=i+-1|0;o=(i&m|0)==0;if(!o)if(u>>>0>>0)e=u;else e=(u>>>0)%(i>>>0)|0;else e=u&m;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d)_=229;else{r=a[E+11>>0]|0;p=r<<24>>24<0;q=c[E+4>>2]|0;r=r&255;s=c[E>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=229;break q}f=c[d+4>>2]|0;if((f|0)!=(u|0)){do if(o)f=f&m;else{if(f>>>0>>0)break;f=(f>>>0)%(i>>>0)|0}while(0);if((f|0)!=(e|0)){_=229;break q}}k=d+8|0;f=a[k+11>>0]|0;l=f<<24>>24<0;if(l)f=c[d+12>>2]|0;else f=f&255;r:do if((f|0)==((p?q:r)|0)){if(l)if(!(qdb(c[k>>2]|0,p?s:E,f)|0))break q;else break;l=p?s:E;while(1){if(!f)break q;if((a[k>>0]|0)!=(a[l>>0]|0))break r;l=l+1|0;k=k+1|0;f=f+-1|0}}while(0)}}}else{e=0;_=229}while(0);s:do if((_|0)==229){n=0;fa(117,D|0,b|0,u|0,E|0);C=n;n=0;t:do if(C&1){d=sa()|0;P()|0}else{h=+(((c[ba>>2]|0)+1|0)>>>0);j=+g[$>>2];if(j*+(i>>>0)>>0>2){e=(i&i+-1|0)==0;_=234}else{e=0;_=234}}else if(t){e=0;d=0;_=234}do if((_|0)==234){C=d|(e^1)&1;B=~~+I(+(h/j))>>>0;n=0;da(2037,b|0,(C>>>0>>0?B:C)|0);C=n;n=0;if(C&1){d=sa()|0;P()|0;e=c[D>>2]|0;c[D>>2]=0;if(!e)break t;if(a[D+8>>0]&1)Chb(e+8|0);RCb(e);break t}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){C=b+8|0;d=c[D>>2]|0;c[d>>2]=c[C>>2];f=d;c[C>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=C;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;do if(!(i&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(i>>>0)|0}while(0);c[(c[b>>2]|0)+(d<<2)>>2]=f}}else{C=c[D>>2]|0;c[C>>2]=c[d>>2];c[d>>2]=C}c[ba>>2]=(c[ba>>2]|0)+1;c[D>>2]=0;break s}while(0);Chb(E);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(E);c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;E=Zzb(88676)|0;n=0;ea(95,G|0,88676,E|0);E=n;n=0;if(!(E&1)){u=Gxa(G)|0;i=c[aa>>2]|0;t=(i|0)==0;u:do if(!t){m=i+-1|0;o=(i&m|0)==0;if(!o)if(u>>>0>>0)e=u;else e=(u>>>0)%(i>>>0)|0;else e=u&m;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d)_=278;else{r=a[G+11>>0]|0;p=r<<24>>24<0;q=c[G+4>>2]|0;r=r&255;s=c[G>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=278;break u}f=c[d+4>>2]|0;if((f|0)!=(u|0)){do if(o)f=f&m;else{if(f>>>0>>0)break;f=(f>>>0)%(i>>>0)|0}while(0);if((f|0)!=(e|0)){_=278;break u}}k=d+8|0;f=a[k+11>>0]|0;l=f<<24>>24<0;if(l)f=c[d+12>>2]|0;else f=f&255;v:do if((f|0)==((p?q:r)|0)){if(l)if(!(qdb(c[k>>2]|0,p?s:G,f)|0))break u;else break;l=p?s:G;while(1){if(!f)break u;if((a[k>>0]|0)!=(a[l>>0]|0))break v;l=l+1|0;k=k+1|0;f=f+-1|0}}while(0)}}}else{e=0;_=278}while(0);w:do if((_|0)==278){n=0;fa(117,F|0,b|0,u|0,G|0);E=n;n=0;x:do if(E&1){d=sa()|0;P()|0}else{h=+(((c[ba>>2]|0)+1|0)>>>0);j=+g[$>>2];if(j*+(i>>>0)>>0>2){e=(i&i+-1|0)==0;_=283}else{e=0;_=283}}else if(t){e=0;d=0;_=283}do if((_|0)==283){E=d|(e^1)&1;D=~~+I(+(h/j))>>>0;n=0;da(2037,b|0,(E>>>0>>0?D:E)|0);E=n;n=0;if(E&1){d=sa()|0;P()|0;e=c[F>>2]|0;c[F>>2]=0;if(!e)break x;if(a[F+8>>0]&1)Chb(e+8|0);RCb(e);break x}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){E=b+8|0;d=c[F>>2]|0;c[d>>2]=c[E>>2];f=d;c[E>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=E;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;do if(!(i&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(i>>>0)|0}while(0);c[(c[b>>2]|0)+(d<<2)>>2]=f}}else{E=c[F>>2]|0;c[E>>2]=c[d>>2];c[d>>2]=E}c[ba>>2]=(c[ba>>2]|0)+1;c[F>>2]=0;break w}while(0);Chb(G);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(G);c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;G=Zzb(88680)|0;n=0;ea(95,J|0,88680,G|0);G=n;n=0;if(!(G&1)){u=Gxa(J)|0;i=c[aa>>2]|0;t=(i|0)==0;y:do if(!t){m=i+-1|0;o=(i&m|0)==0;if(!o)if(u>>>0>>0)e=u;else e=(u>>>0)%(i>>>0)|0;else e=u&m;d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d)_=327;else{r=a[J+11>>0]|0;p=r<<24>>24<0;q=c[J+4>>2]|0;r=r&255;s=c[J>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=327;break y}f=c[d+4>>2]|0;if((f|0)!=(u|0)){do if(o)f=f&m;else{if(f>>>0>>0)break;f=(f>>>0)%(i>>>0)|0}while(0);if((f|0)!=(e|0)){_=327;break y}}k=d+8|0;f=a[k+11>>0]|0;l=f<<24>>24<0;if(l)f=c[d+12>>2]|0;else f=f&255;z:do if((f|0)==((p?q:r)|0)){if(l)if(!(qdb(c[k>>2]|0,p?s:J,f)|0))break y;else break;l=p?s:J;while(1){if(!f)break y;if((a[k>>0]|0)!=(a[l>>0]|0))break z;l=l+1|0;k=k+1|0;f=f+-1|0}}while(0)}}}else{e=0;_=327}while(0);A:do if((_|0)==327){n=0;fa(117,H|0,b|0,u|0,J|0);G=n;n=0;B:do if(G&1){d=sa()|0;P()|0}else{h=+(((c[ba>>2]|0)+1|0)>>>0);j=+g[$>>2];do if(!(j*+(i>>>0)>>0<=2){e=0;_=332;break}e=(i&i+-1|0)==0;_=332}while(0);do if((_|0)==332){G=d|(e^1)&1;F=~~+I(+(h/j))>>>0;n=0;da(2037,b|0,(G>>>0>>0?F:G)|0);G=n;n=0;if(G&1){d=sa()|0;P()|0;e=c[H>>2]|0;c[H>>2]=0;if(!e)break B;if(a[H+8>>0]&1)Chb(e+8|0);RCb(e);break B}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;do if(!d){G=b+8|0;d=c[H>>2]|0;c[d>>2]=c[G>>2];f=d;c[G>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=G;if(!(c[d>>2]|0))break;d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;do if(!(i&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(i>>>0)|0}while(0);c[(c[b>>2]|0)+(d<<2)>>2]=f}else{G=c[H>>2]|0;c[G>>2]=c[d>>2];c[d>>2]=G}while(0);c[ba>>2]=(c[ba>>2]|0)+1;c[H>>2]=0;break A}while(0);Chb(J);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(J);c[L>>2]=0;c[L+4>>2]=0;c[L+8>>2]=0;J=Zzb(88684)|0;n=0;ea(95,L|0,88684,J|0);J=n;n=0;if(!(J&1)){u=Gxa(L)|0;i=c[aa>>2]|0;t=(i|0)==0;C:do if(!t){m=i+-1|0;o=(i&m|0)==0;do if(o)e=u&m;else{if(u>>>0>>0){e=u;break}e=(u>>>0)%(i>>>0)|0}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d)_=376;else{r=a[L+11>>0]|0;p=r<<24>>24<0;q=c[L+4>>2]|0;r=r&255;s=c[L>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=376;break C}f=c[d+4>>2]|0;if((f|0)!=(u|0)){do if(o)f=f&m;else{if(f>>>0>>0)break;f=(f>>>0)%(i>>>0)|0}while(0);if((f|0)!=(e|0)){_=376;break C}}k=d+8|0;f=a[k+11>>0]|0;l=f<<24>>24<0;if(l)f=c[d+12>>2]|0;else f=f&255;D:do if((f|0)==((p?q:r)|0)){if(l)if(!(qdb(c[k>>2]|0,p?s:L,f)|0))break C;else break;l=p?s:L;while(1){if(!f)break C;if((a[k>>0]|0)!=(a[l>>0]|0))break D;l=l+1|0;k=k+1|0;f=f+-1|0}}while(0)}}}else{e=0;_=376}while(0);E:do if((_|0)==376){n=0;fa(117,K|0,b|0,u|0,L|0);J=n;n=0;F:do if(J&1){d=sa()|0;P()|0}else{h=+(((c[ba>>2]|0)+1|0)>>>0);j=+g[$>>2];do if(!(j*+(i>>>0)>>0<=2){e=0;_=381;break}e=(i&i+-1|0)==0;_=381}while(0);do if((_|0)==381){J=d|(e^1)&1;H=~~+I(+(h/j))>>>0;n=0;da(2037,b|0,(J>>>0>>0?H:J)|0);J=n;n=0;if(J&1){d=sa()|0;P()|0;e=c[K>>2]|0;c[K>>2]=0;if(!e)break F;if(a[K+8>>0]&1)Chb(e+8|0);RCb(e);break F}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;do if(!d){J=b+8|0;d=c[K>>2]|0;c[d>>2]=c[J>>2];f=d;c[J>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=J;if(!(c[d>>2]|0))break;d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;do if(!(i&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(i>>>0)|0}while(0);c[(c[b>>2]|0)+(d<<2)>>2]=f}else{J=c[K>>2]|0;c[J>>2]=c[d>>2];c[d>>2]=J}while(0);c[ba>>2]=(c[ba>>2]|0)+1;c[K>>2]=0;break E}while(0);Chb(L);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(L);c[N>>2]=0;c[N+4>>2]=0;c[N+8>>2]=0;L=Zzb(88688)|0;n=0;ea(95,N|0,88688,L|0);L=n;n=0;if(!(L&1)){u=Gxa(N)|0;i=c[aa>>2]|0;t=(i|0)==0;G:do if(t){e=0;_=425}else{m=i+-1|0;o=(i&m|0)==0;do if(o)e=u&m;else{if(u>>>0>>0){e=u;break}e=(u>>>0)%(i>>>0)|0}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){_=425;break}r=a[N+11>>0]|0;p=r<<24>>24<0;q=c[N+4>>2]|0;r=r&255;s=c[N>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=425;break G}f=c[d+4>>2]|0;if((f|0)!=(u|0)){do if(o)f=f&m;else{if(f>>>0>>0)break;f=(f>>>0)%(i>>>0)|0}while(0);if((f|0)!=(e|0)){_=425;break G}}k=d+8|0;f=a[k+11>>0]|0;l=f<<24>>24<0;if(l)f=c[d+12>>2]|0;else f=f&255;H:do if((f|0)==((p?q:r)|0)){if(l)if(!(qdb(c[k>>2]|0,p?s:N,f)|0))break G;else break;l=p?s:N;while(1){if(!f)break G;if((a[k>>0]|0)!=(a[l>>0]|0))break H;l=l+1|0;k=k+1|0;f=f+-1|0}}while(0)}}while(0);I:do if((_|0)==425){n=0;fa(117,M|0,b|0,u|0,N|0);L=n;n=0;J:do if(L&1){d=sa()|0;P()|0}else{h=+(((c[ba>>2]|0)+1|0)>>>0);j=+g[$>>2];do if(!(j*+(i>>>0)>>0<=2){e=0;_=430;break}e=(i&i+-1|0)==0;_=430}while(0);do if((_|0)==430){L=d|(e^1)&1;K=~~+I(+(h/j))>>>0;n=0;da(2037,b|0,(L>>>0>>0?K:L)|0);L=n;n=0;if(L&1){d=sa()|0;P()|0;e=c[M>>2]|0;c[M>>2]=0;if(!e)break J;if(a[M+8>>0]&1)Chb(e+8|0);RCb(e);break J}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;do if(!d){L=b+8|0;d=c[M>>2]|0;c[d>>2]=c[L>>2];f=d;c[L>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=L;if(!(c[d>>2]|0))break;d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;do if(!(i&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(i>>>0)|0}while(0);c[(c[b>>2]|0)+(d<<2)>>2]=f}else{L=c[M>>2]|0;c[L>>2]=c[d>>2];c[d>>2]=L}while(0);c[ba>>2]=(c[ba>>2]|0)+1;c[M>>2]=0;break I}while(0);Chb(N);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(N);c[Q>>2]=0;c[Q+4>>2]=0;c[Q+8>>2]=0;N=Zzb(134137)|0;n=0;ea(95,Q|0,134137,N|0);N=n;n=0;if(!(N&1)){u=Gxa(Q)|0;i=c[aa>>2]|0;t=(i|0)==0;K:do if(t){e=0;_=474}else{m=i+-1|0;o=(i&m|0)==0;do if(o)e=u&m;else{if(u>>>0>>0){e=u;break}e=(u>>>0)%(i>>>0)|0}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){_=474;break}r=a[Q+11>>0]|0;p=r<<24>>24<0;q=c[Q+4>>2]|0;r=r&255;s=c[Q>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=474;break K}f=c[d+4>>2]|0;if((f|0)!=(u|0)){do if(o)f=f&m;else{if(f>>>0>>0)break;f=(f>>>0)%(i>>>0)|0}while(0);if((f|0)!=(e|0)){_=474;break K}}k=d+8|0;f=a[k+11>>0]|0;l=f<<24>>24<0;if(l)f=c[d+12>>2]|0;else f=f&255;L:do if((f|0)==((p?q:r)|0)){if(l)if(!(qdb(c[k>>2]|0,p?s:Q,f)|0))break K;else break;l=p?s:Q;while(1){if(!f)break K;if((a[k>>0]|0)!=(a[l>>0]|0))break L;l=l+1|0;k=k+1|0;f=f+-1|0}}while(0)}}while(0);M:do if((_|0)==474){n=0;fa(117,O|0,b|0,u|0,Q|0);N=n;n=0;N:do if(N&1){d=sa()|0;P()|0}else{h=+(((c[ba>>2]|0)+1|0)>>>0);j=+g[$>>2];do if(!(j*+(i>>>0)>>0<=2){e=0;_=479;break}e=(i&i+-1|0)==0;_=479}while(0);do if((_|0)==479){N=d|(e^1)&1;M=~~+I(+(h/j))>>>0;n=0;da(2037,b|0,(N>>>0>>0?M:N)|0);N=n;n=0;if(N&1){d=sa()|0;P()|0;e=c[O>>2]|0;c[O>>2]=0;if(!e)break N;if(a[O+8>>0]&1)Chb(e+8|0);RCb(e);break N}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;do if(!d){N=b+8|0;d=c[O>>2]|0;c[d>>2]=c[N>>2];f=d;c[N>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=N;if(!(c[d>>2]|0))break;d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;do if(!(i&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(i>>>0)|0}while(0);c[(c[b>>2]|0)+(d<<2)>>2]=f}else{N=c[O>>2]|0;c[N>>2]=c[d>>2];c[d>>2]=N}while(0);c[ba>>2]=(c[ba>>2]|0)+1;c[O>>2]=0;break M}while(0);Chb(Q);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(Q);c[S>>2]=0;c[S+4>>2]=0;c[S+8>>2]=0;Q=Zzb(134170)|0;n=0;ea(95,S|0,134170,Q|0);Q=n;n=0;if(Q&1)break;u=Gxa(S)|0;i=c[aa>>2]|0;t=(i|0)==0;O:do if(t){e=0;_=523}else{m=i+-1|0;o=(i&m|0)==0;do if(o)e=u&m;else{if(u>>>0>>0){e=u;break}e=(u>>>0)%(i>>>0)|0}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){_=523;break}r=a[S+11>>0]|0;p=r<<24>>24<0;q=c[S+4>>2]|0;r=r&255;s=c[S>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=523;break O}f=c[d+4>>2]|0;if((f|0)!=(u|0)){do if(o)f=f&m;else{if(f>>>0>>0)break;f=(f>>>0)%(i>>>0)|0}while(0);if((f|0)!=(e|0)){_=523;break O}}k=d+8|0;f=a[k+11>>0]|0;l=f<<24>>24<0;if(l)f=c[d+12>>2]|0;else f=f&255;P:do if((f|0)==((p?q:r)|0)){if(l)if(!(qdb(c[k>>2]|0,p?s:S,f)|0))break O;else break;l=p?s:S;while(1){if(!f)break O;if((a[k>>0]|0)!=(a[l>>0]|0))break P;l=l+1|0;k=k+1|0;f=f+-1|0}}while(0)}}while(0);Q:do if((_|0)==523){n=0;fa(117,R|0,b|0,u|0,S|0);Q=n;n=0;R:do if(Q&1){d=sa()|0;P()|0}else{h=+(((c[ba>>2]|0)+1|0)>>>0);j=+g[$>>2];do if(!(j*+(i>>>0)>>0<=2){e=0;_=528;break}e=(i&i+-1|0)==0;_=528}while(0);do if((_|0)==528){Q=d|(e^1)&1;O=~~+I(+(h/j))>>>0;n=0;da(2037,b|0,(Q>>>0>>0?O:Q)|0);Q=n;n=0;if(Q&1){d=sa()|0;P()|0;e=c[R>>2]|0;c[R>>2]=0;if(!e)break R;if(a[R+8>>0]&1)Chb(e+8|0);RCb(e);break R}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;do if(!d){Q=b+8|0;d=c[R>>2]|0;c[d>>2]=c[Q>>2];f=d;c[Q>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=Q;if(!(c[d>>2]|0))break;d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;do if(!(i&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(i>>>0)|0}while(0);c[(c[b>>2]|0)+(d<<2)>>2]=f}else{Q=c[R>>2]|0;c[Q>>2]=c[d>>2];c[d>>2]=Q}while(0);c[ba>>2]=(c[ba>>2]|0)+1;c[R>>2]=0;break Q}while(0);Chb(S);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(S);c[V>>2]=0;c[V+4>>2]=0;c[V+8>>2]=0;S=Zzb(88692)|0;n=0;ea(95,V|0,88692,S|0);S=n;n=0;if(S&1)break;u=Gxa(V)|0;i=c[aa>>2]|0;t=(i|0)==0;S:do if(t){e=0;_=572}else{m=i+-1|0;o=(i&m|0)==0;do if(o)e=u&m;else{if(u>>>0>>0){e=u;break}e=(u>>>0)%(i>>>0)|0}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){_=572;break}r=a[V+11>>0]|0;p=r<<24>>24<0;q=c[V+4>>2]|0;r=r&255;s=c[V>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=572;break S}f=c[d+4>>2]|0;if((f|0)!=(u|0)){do if(o)f=f&m;else{if(f>>>0>>0)break;f=(f>>>0)%(i>>>0)|0}while(0);if((f|0)!=(e|0)){_=572;break S}}k=d+8|0;f=a[k+11>>0]|0;l=f<<24>>24<0;if(l)f=c[d+12>>2]|0;else f=f&255;T:do if((f|0)==((p?q:r)|0)){if(l)if(!(qdb(c[k>>2]|0,p?s:V,f)|0))break S;else break;l=p?s:V;while(1){if(!f)break S;if((a[k>>0]|0)!=(a[l>>0]|0))break T;l=l+1|0;k=k+1|0;f=f+-1|0}}while(0)}}while(0);U:do if((_|0)==572){n=0;fa(117,T|0,b|0,u|0,V|0);S=n;n=0;V:do if(S&1){d=sa()|0;P()|0}else{h=+(((c[ba>>2]|0)+1|0)>>>0);j=+g[$>>2];do if(!(j*+(i>>>0)>>0<=2){e=0;_=577;break}e=(i&i+-1|0)==0;_=577}while(0);do if((_|0)==577){S=d|(e^1)&1;R=~~+I(+(h/j))>>>0;n=0;da(2037,b|0,(S>>>0>>0?R:S)|0);S=n;n=0;if(S&1){d=sa()|0;P()|0;e=c[T>>2]|0;c[T>>2]=0;if(!e)break V;if(a[T+8>>0]&1)Chb(e+8|0);RCb(e);break V}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;do if(!d){S=b+8|0;d=c[T>>2]|0;c[d>>2]=c[S>>2];f=d;c[S>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=S;if(!(c[d>>2]|0))break;d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;do if(!(i&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(i>>>0)|0}while(0);c[(c[b>>2]|0)+(d<<2)>>2]=f}else{S=c[T>>2]|0;c[S>>2]=c[d>>2];c[d>>2]=S}while(0);c[ba>>2]=(c[ba>>2]|0)+1;c[T>>2]=0;break U}while(0);Chb(V);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(V);c[X>>2]=0;c[X+4>>2]=0;c[X+8>>2]=0;V=Zzb(141366)|0;n=0;ea(95,X|0,141366,V|0);V=n;n=0;if(V&1)break;u=Gxa(X)|0;i=c[aa>>2]|0;t=(i|0)==0;W:do if(t){e=0;_=621}else{m=i+-1|0;o=(i&m|0)==0;do if(o)e=u&m;else{if(u>>>0>>0){e=u;break}e=(u>>>0)%(i>>>0)|0}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){_=621;break}r=a[X+11>>0]|0;p=r<<24>>24<0;q=c[X+4>>2]|0;r=r&255;s=c[X>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=621;break W}f=c[d+4>>2]|0;if((f|0)!=(u|0)){do if(o)f=f&m;else{if(f>>>0>>0)break;f=(f>>>0)%(i>>>0)|0}while(0);if((f|0)!=(e|0)){_=621;break W}}k=d+8|0;f=a[k+11>>0]|0;l=f<<24>>24<0;if(l)f=c[d+12>>2]|0;else f=f&255;X:do if((f|0)==((p?q:r)|0)){if(l)if(!(qdb(c[k>>2]|0,p?s:X,f)|0))break W;else break;l=p?s:X;while(1){if(!f)break W;if((a[k>>0]|0)!=(a[l>>0]|0))break X;l=l+1|0;k=k+1|0;f=f+-1|0}}while(0)}}while(0);Y:do if((_|0)==621){n=0;fa(117,W|0,b|0,u|0,X|0);V=n;n=0;Z:do if(V&1){d=sa()|0;P()|0}else{h=+(((c[ba>>2]|0)+1|0)>>>0);j=+g[$>>2];do if(!(j*+(i>>>0)>>0<=2){e=0;_=626;break}e=(i&i+-1|0)==0;_=626}while(0);do if((_|0)==626){V=d|(e^1)&1;T=~~+I(+(h/j))>>>0;n=0;da(2037,b|0,(V>>>0>>0?T:V)|0);V=n;n=0;if(V&1){d=sa()|0;P()|0;e=c[W>>2]|0;c[W>>2]=0;if(!e)break Z;if(a[W+8>>0]&1)Chb(e+8|0);RCb(e);break Z}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;do if(!d){V=b+8|0;d=c[W>>2]|0;c[d>>2]=c[V>>2];f=d;c[V>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=V;if(!(c[d>>2]|0))break;d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;do if(!(i&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(i>>>0)|0}while(0);c[(c[b>>2]|0)+(d<<2)>>2]=f}else{V=c[W>>2]|0;c[V>>2]=c[d>>2];c[d>>2]=V}while(0);c[ba>>2]=(c[ba>>2]|0)+1;c[W>>2]=0;break Y}while(0);Chb(X);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(X);c[Z>>2]=0;c[Z+4>>2]=0;c[Z+8>>2]=0;X=Zzb(88697)|0;n=0;ea(95,Z|0,88697,X|0);X=n;n=0;if(X&1)break;u=Gxa(Z)|0;i=c[aa>>2]|0;t=(i|0)==0;_:do if(t){e=0;_=670}else{m=i+-1|0;o=(i&m|0)==0;do if(o)e=u&m;else{if(u>>>0>>0){e=u;break}e=(u>>>0)%(i>>>0)|0}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){_=670;break}r=a[Z+11>>0]|0;p=r<<24>>24<0;q=c[Z+4>>2]|0;r=r&255;s=c[Z>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=670;break _}f=c[d+4>>2]|0;if((f|0)!=(u|0)){do if(o)f=f&m;else{if(f>>>0>>0)break;f=(f>>>0)%(i>>>0)|0}while(0);if((f|0)!=(e|0)){_=670;break _}}k=d+8|0;f=a[k+11>>0]|0;l=f<<24>>24<0;if(l)f=c[d+12>>2]|0;else f=f&255;$:do if((f|0)==((p?q:r)|0)){if(l)if(!(qdb(c[k>>2]|0,p?s:Z,f)|0))break _;else break;l=p?s:Z;while(1){if(!f)break _;if((a[k>>0]|0)!=(a[l>>0]|0))break $;l=l+1|0;k=k+1|0;f=f+-1|0}}while(0)}}while(0);aa:do if((_|0)==670){n=0;fa(117,Y|0,b|0,u|0,Z|0);X=n;n=0;ba:do if(X&1){d=sa()|0;P()|0}else{h=+(((c[ba>>2]|0)+1|0)>>>0);j=+g[$>>2];do if(!(j*+(i>>>0)>>0<=2){e=0;_=675;break}e=(i&i+-1|0)==0;_=675}while(0);do if((_|0)==675){X=d|(e^1)&1;W=~~+I(+(h/j))>>>0;n=0;da(2037,b|0,(X>>>0>>0?W:X)|0);X=n;n=0;if(X&1){d=sa()|0;P()|0;e=c[Y>>2]|0;c[Y>>2]=0;if(!e)break ba;if(a[Y+8>>0]&1)Chb(e+8|0);RCb(e);break ba}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;do if(!d){X=b+8|0;d=c[Y>>2]|0;c[d>>2]=c[X>>2];f=d;c[X>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=X;if(!(c[d>>2]|0))break;d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;do if(!(i&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(i>>>0)|0}while(0);c[(c[b>>2]|0)+(d<<2)>>2]=f}else{X=c[Y>>2]|0;c[X>>2]=c[d>>2];c[d>>2]=X}while(0);c[ba>>2]=(c[ba>>2]|0)+1;c[Y>>2]=0;break aa}while(0);Chb(Z);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(Z);c[ka>>2]=0;c[ka+4>>2]=0;c[ka+8>>2]=0;Z=Zzb(88702)|0;n=0;ea(95,ka|0,88702,Z|0);Z=n;n=0;if(Z&1)break;u=Gxa(ka)|0;i=c[aa>>2]|0;t=(i|0)==0;ca:do if(t){e=0;_=719}else{m=i+-1|0;o=(i&m|0)==0;do if(o)e=u&m;else{if(u>>>0>>0){e=u;break}e=(u>>>0)%(i>>>0)|0}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;if(!d){_=719;break}r=a[ka+11>>0]|0;p=r<<24>>24<0;q=c[ka+4>>2]|0;r=r&255;s=c[ka>>2]|0;while(1){d=c[d>>2]|0;if(!d){_=719;break ca}f=c[d+4>>2]|0;if((f|0)!=(u|0)){do if(o)f=f&m;else{if(f>>>0>>0)break;f=(f>>>0)%(i>>>0)|0}while(0);if((f|0)!=(e|0)){_=719;break ca}}f=d+8|0;k=a[f+11>>0]|0;l=k<<24>>24<0;if(l)k=c[d+12>>2]|0;else k=k&255;da:do if((k|0)==((p?q:r)|0)){if(l)if(!(qdb(c[f>>2]|0,p?s:ka,k)|0))break ca;else break;l=k;k=p?s:ka;while(1){if(!l)break ca;if((a[f>>0]|0)!=(a[k>>0]|0))break da;l=l+-1|0;f=f+1|0;k=k+1|0}}while(0)}}while(0);ea:do if((_|0)==719){n=0;fa(117,ia|0,b|0,u|0,ka|0);Z=n;n=0;fa:do if(Z&1){d=sa()|0;P()|0}else{j=+(((c[ba>>2]|0)+1|0)>>>0);h=+g[$>>2];do if(!(h*+(i>>>0)>>0<=2){e=0;_=724;break}e=(i&i+-1|0)==0;_=724}while(0);do if((_|0)==724){$=d|(e^1)&1;_=~~+I(+(j/h))>>>0;n=0;da(2037,b|0,($>>>0<_>>>0?_:$)|0);$=n;n=0;if($&1){d=sa()|0;P()|0;e=c[ia>>2]|0;c[ia>>2]=0;if(!e)break fa;if(a[ia+8>>0]&1)Chb(e+8|0);RCb(e);break fa}else{d=c[aa>>2]|0;e=d+-1|0;if(!(d&e)){i=d;e=u&e;break}if(u>>>0>>0){i=d;e=u;break}i=d;e=(u>>>0)%(d>>>0)|0;break}}while(0);d=c[(c[b>>2]|0)+(e<<2)>>2]|0;do if(!d){aa=b+8|0;d=c[ia>>2]|0;c[d>>2]=c[aa>>2];f=d;c[aa>>2]=f;c[(c[b>>2]|0)+(e<<2)>>2]=aa;if(!(c[d>>2]|0))break;d=c[(c[d>>2]|0)+4>>2]|0;e=i+-1|0;do if(!(i&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(i>>>0)|0}while(0);c[(c[b>>2]|0)+(d<<2)>>2]=f}else{aa=c[ia>>2]|0;c[aa>>2]=c[d>>2];c[d>>2]=aa}while(0);c[ba>>2]=(c[ba>>2]|0)+1;c[ia>>2]=0;break ea}while(0);Chb(ka);ma=d;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}while(0);Chb(ka);n=0;U(75,qa|0,88707)|0;ka=n;n=0;if(ka&1)break;n=0;ea(118,ja|0,qa|0,88762);ka=n;n=0;if(ka&1)break;d=pa+11|0;if((a[d>>0]|0)<0){Fsb(c[pa>>2]|0,0);c[b+36>>2]=0}else{Fsb(pa,0);a[d>>0]=0}n=0;ca(510,pa|0);ka=n;n=0;if(ka&1){ka=ta(0)|0;P()|0;yub(ka)}c[pa>>2]=c[ja>>2];c[pa+4>>2]=c[ja+4>>2];c[pa+8>>2]=c[ja+8>>2];d=0;while(1){if((d|0)==3)break;c[ja+(d<<2)>>2]=0;d=d+1|0}Chb(ja);c[la>>2]=0;d=c[ga>>2]|0;if(d>>>0<(c[ha>>2]|0)>>>0){c[d>>2]=0;c[ga>>2]=(c[ga>>2]|0)+4;yb=ma;return}else{n=0;da(2038,oa|0,la|0);la=n;n=0;if(la&1)break;yb=ma;return}}}}}}}}}}}while(0);ma=sa()|0;P()|0;Vob(oa);u4a(na);Chb(pa);Chb(qa);RQa(b);Ea(ma|0)}function ac(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=yb;yb=yb+208|0;w=v+176|0;t=v+124|0;u=v+88|0;s=v+64|0;k=v+160|0;q=v+48|0;r=v+36|0;i=v+148|0;j=v+136|0;l=v+112|0;m=v+24|0;o=v+12|0;p=v;g=d;f=g-b|0;a:do if((f|0)>1){if((f|0)>3?(a[b>>0]|0)==103:0){h=(a[b+1>>0]|0)==115;f=h?b+2|0:b}else{f=b;h=0}b:do switch(a[f>>0]|0){case 76:{b=Mc(b,d,e)|0;break a}case 84:{b=tk(b,d,e)|0;break a}case 102:{b=Ni(b,d,e)|0;break a}case 97:switch(a[f+1>>0]|0){case 97:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,139931,Zzb(139931)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 100:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,139949,Zzb(139949)|0);n=0;f=W(44,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 110:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,139949,Zzb(139949)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 78:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,139992,Zzb(139992)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 83:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,139995,Zzb(139995)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 116:{b=Vo(b,d,e)|0;break a}case 122:{b=To(b,d,e)|0;break a}default:break a}case 99:switch(a[f+1>>0]|0){case 99:{b=Mj(b,d,e)|0;break a}case 108:{b=ul(b,d,e)|0;break a}case 109:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,139997,Zzb(139997)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 111:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,139999,Zzb(139999)|0);n=0;f=W(44,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 118:{b=_h(b,d,e)|0;break a}default:break a}case 100:switch(a[f+1>>0]|0){case 97:{r=f+2|0;d=ac(r,d,e)|0;if((d|0)==(r|0))break a;f=e+4|0;if((c[e>>2]|0)==(c[f>>2]|0))break a;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c:do if(h)T3(u,140001,Zzb(140001)|0);else{b=0;while(1){if((b|0)==3)break c;c[u+(b<<2)>>2]=0;b=b+1|0}}while(0);n=0;U(216,u|0,140004)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0}else{c[t>>2]=c[u>>2];c[t+4>>2]=c[u+4>>2];c[t+8>>2]=c[u+8>>2];b=0;while(1){if((b|0)==3)break;c[u+(b<<2)>>2]=0;b=b+1|0}n=0;da(4196,s|0,(c[f>>2]|0)+-24|0);e=n;n=0;do if(e&1){b=sa()|0;P()|0}else{e=a[s+11>>0]|0;r=e<<24>>24<0;n=0;V(124,t|0,(r?c[s>>2]|0:s)|0,(r?c[s+4>>2]|0:e&255)|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(s);break}c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];c[w+8>>2]=c[t+8>>2];b=0;while(1){if((b|0)==3)break;c[t+(b<<2)>>2]=0;b=b+1|0}b=c[f>>2]|0;g=b+-24|0;f=g+11|0;if((a[f>>0]|0)<0){Fsb(c[g>>2]|0,0);c[b+-20>>2]=0;b=g}else{Fsb(g,0);a[f>>0]=0;b=g}Yw(g);c[b>>2]=c[w>>2];c[b+4>>2]=c[w+4>>2];c[b+8>>2]=c[w+8>>2];b=0;while(1){if((b|0)==3)break;c[w+(b<<2)>>2]=0;b=b+1|0}Chb(w);Chb(s);Chb(t);Chb(u);b=d;break a}while(0);Chb(t)}Chb(u);break b}case 99:{b=Kj(b,d,e)|0;break a}case 101:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,139947,Zzb(139947)|0);n=0;f=W(44,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 108:{r=f+2|0;d=ac(r,d,e)|0;if((d|0)==(r|0))break a;f=e+4|0;if((c[e>>2]|0)==(c[f>>2]|0))break a;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;d:do if(h)T3(u,140001,Zzb(140001)|0);else{b=0;while(1){if((b|0)==3)break d;c[u+(b<<2)>>2]=0;b=b+1|0}}while(0);n=0;U(216,u|0,140014)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0}else{c[t>>2]=c[u>>2];c[t+4>>2]=c[u+4>>2];c[t+8>>2]=c[u+8>>2];b=0;while(1){if((b|0)==3)break;c[u+(b<<2)>>2]=0;b=b+1|0}n=0;da(4196,s|0,(c[f>>2]|0)+-24|0);e=n;n=0;do if(e&1){b=sa()|0;P()|0}else{e=a[s+11>>0]|0;r=e<<24>>24<0;n=0;V(124,t|0,(r?c[s>>2]|0:s)|0,(r?c[s+4>>2]|0:e&255)|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(s);break}c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];c[w+8>>2]=c[t+8>>2];b=0;while(1){if((b|0)==3)break;c[t+(b<<2)>>2]=0;b=b+1|0}b=c[f>>2]|0;g=b+-24|0;f=g+11|0;if((a[f>>0]|0)<0){Fsb(c[g>>2]|0,0);c[b+-20>>2]=0;b=g}else{Fsb(g,0);a[f>>0]=0;b=g}Yw(g);c[b>>2]=c[w>>2];c[b+4>>2]=c[w+4>>2];c[b+8>>2]=c[w+8>>2];b=0;while(1){if((b|0)==3)break;c[w+(b<<2)>>2]=0;b=b+1|0}Chb(w);Chb(s);Chb(t);Chb(u);b=d;break a}while(0);Chb(t)}Chb(u);break b}case 110:{b=Rc(b,d,e)|0;break a}case 115:{b=Ft(b,d,e)|0;break a}case 116:{b=Gt(b,d,e)|0;break a}case 118:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140022,Zzb(140022)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 86:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140024,Zzb(140024)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}default:break a}case 101:switch(a[f+1>>0]|0){case 111:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140027,Zzb(140027)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 79:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140029,Zzb(140029)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 113:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140032,Zzb(140032)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}default:break a}case 103:switch(a[f+1>>0]|0){case 101:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140035,Zzb(140035)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 116:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,139965,Zzb(139965)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}default:break a}case 105:{if((a[f+1>>0]|0)!=120)break a;p=b+2|0;f=ac(p,d,e)|0;if((f|0)==(p|0))break a;g=ac(f,d,e)|0;d=e+4|0;if((g|0)==(f|0)){g=c[d>>2]|0;f=0;while(1){if((f|0)==-1)break;w=f+-1|0;J2a(g+(w*24|0)|0);f=w}c[d>>2]=g+-24;break a}f=c[d>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(w,f+-24|0);f=c[d>>2]|0;b=0;while(1){if((b|0)==-1)break;e=b+-1|0;J2a(f+(e*24|0)|0);b=e}c[d>>2]=f+-24;n=0;da(4196,t|0,f+-48|0);e=n;n=0;if(e&1){b=sa()|0;P()|0}else{n=0;ea(218,r|0,139929,t|0);e=n;n=0;if(e&1){b=sa()|0;P()|0}else{n=0;U(216,r|0,140038)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0}else{c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];b=0;while(1){if((b|0)==3)break;c[r+(b<<2)>>2]=0;b=b+1|0}e=a[w+11>>0]|0;p=e<<24>>24<0;n=0;V(124,q|0,(p?c[w>>2]|0:w)|0,(p?c[w+4>>2]|0:e&255)|0)|0;e=n;n=0;do if(e&1){b=sa()|0;P()|0}else{c[s>>2]=c[q>>2];c[s+4>>2]=c[q+4>>2];c[s+8>>2]=c[q+8>>2];b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,s|0,139976)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(s);break}c[k>>2]=c[s>>2];c[k+4>>2]=c[s+4>>2];c[k+8>>2]=c[s+8>>2];b=0;while(1){if((b|0)==3)break;c[s+(b<<2)>>2]=0;b=b+1|0}X6(u,k);RC((c[d>>2]|0)+-24|0,u);J2a(u);Chb(k);Chb(s);Chb(q);Chb(r);Chb(t);Chb(w);b=g;break a}while(0);Chb(q)}Chb(r)}Chb(t)}Chb(w);break}case 108:switch(a[f+1>>0]|0){case 101:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140041,Zzb(140041)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 115:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140044,Zzb(140044)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 83:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140047,Zzb(140047)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 116:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,139963,Zzb(139963)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}default:break a}case 109:switch(a[f+1>>0]|0){case 105:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140051,Zzb(140051)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 73:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140053,Zzb(140053)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 108:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,139947,Zzb(139947)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 76:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140056,Zzb(140056)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 109:{f=b+2|0;if((f|0)!=(d|0)?(a[f>>0]|0)==95:0){g=b+3|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140059,Zzb(140059)|0);n=0;f=W(44,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}d=ac(f,d,e)|0;if((d|0)==(f|0))break a;g=e+4|0;f=c[g>>2]|0;if((c[e>>2]|0)==(f|0))break a;d6(u,f+-24|0);n=0;V(128,u|0,0,139929)|0;e=n;n=0;do if(e&1){b=sa()|0;P()|0}else{c[t>>2]=c[u>>2];c[t+4>>2]=c[u+4>>2];c[t+8>>2]=c[u+8>>2];b=0;while(1){if((b|0)==3)break;c[u+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,t|0,140062)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(t);break}c[i>>2]=c[t>>2];c[i+4>>2]=c[t+4>>2];c[i+8>>2]=c[t+8>>2];b=0;while(1){if((b|0)==3)break;c[t+(b<<2)>>2]=0;b=b+1|0}X6(w,i);RC((c[g>>2]|0)+-24|0,w);J2a(w);Chb(i);Chb(t);Chb(u);b=d;break a}while(0);Chb(u);break b}default:break a}case 110:switch(a[f+1>>0]|0){case 119:case 97:{b=Uc(b,d,e)|0;break a}case 101:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140066,Zzb(140066)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 103:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140051,Zzb(140051)|0);n=0;f=W(44,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 116:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140069,Zzb(140069)|0);n=0;f=W(44,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 120:{u=b+2|0;w=op(u,d,e)|0;b=(w|0)==(u|0)?b:w;break a}default:break a}case 111:switch(a[f+1>>0]|0){case 110:{b=Rc(b,d,e)|0;break a}case 111:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140071,Zzb(140071)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 114:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140074,Zzb(140074)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 82:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140076,Zzb(140076)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}default:break a}case 112:switch(a[f+1>>0]|0){case 109:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140079,Zzb(140079)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 108:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140083,Zzb(140083)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 76:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140085,Zzb(140085)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 112:{f=b+2|0;if((f|0)!=(d|0)?(a[f>>0]|0)==95:0){g=b+3|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140088,Zzb(140088)|0);n=0;f=W(44,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}d=ac(f,d,e)|0;if((d|0)==(f|0))break a;g=e+4|0;f=c[g>>2]|0;if((c[e>>2]|0)==(f|0))break a;d6(u,f+-24|0);n=0;V(128,u|0,0,139929)|0;e=n;n=0;do if(e&1){b=sa()|0;P()|0}else{c[t>>2]=c[u>>2];c[t+4>>2]=c[u+4>>2];c[t+8>>2]=c[u+8>>2];b=0;while(1){if((b|0)==3)break;c[u+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,t|0,140091)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(t);break}c[j>>2]=c[t>>2];c[j+4>>2]=c[t+4>>2];c[j+8>>2]=c[t+8>>2];b=0;while(1){if((b|0)==3)break;c[t+(b<<2)>>2]=0;b=b+1|0}X6(w,j);RC((c[g>>2]|0)+-24|0,w);J2a(w);Chb(j);Chb(t);Chb(u);b=d;break a}while(0);Chb(u);break b}case 115:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140083,Zzb(140083)|0);n=0;f=W(44,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 116:{b=rw(b,d,e)|0;break a}default:break a}case 113:{if((a[f+1>>0]|0)!=117)break a;k=b+2|0;f=ac(k,d,e)|0;if((f|0)==(k|0))break a;g=ac(f,d,e)|0;if((g|0)==(f|0)){g=e+4|0;d=c[g>>2]|0;f=0;while(1){if((f|0)==-1)break;w=f+-1|0;J2a(d+(w*24|0)|0);f=w}c[g>>2]=d+-24;break a}d=ac(g,d,e)|0;h=e+4|0;if((d|0)==(g|0)){d=c[h>>2]|0;f=0;while(1){if((f|0)==-1)break;w=f+-1|0;J2a(d+(w*24|0)|0);f=w}g=d+-24|0;c[h>>2]=g;f=0;while(1){if((f|0)==-1)break;w=f+-1|0;J2a(g+(w*24|0)|0);f=w}c[h>>2]=d+-48;break a}f=c[h>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<3)break a;d6(w,f+-24|0);f=c[h>>2]|0;b=0;while(1){if((b|0)==-1)break;e=b+-1|0;J2a(f+(e*24|0)|0);b=e}c[h>>2]=f+-24;n=0;da(4196,t|0,f+-48|0);e=n;n=0;if(e&1){b=sa()|0;P()|0}else{f=c[h>>2]|0;b=0;while(1){if((b|0)==-1)break;e=b+-1|0;J2a(f+(e*24|0)|0);b=e}c[h>>2]=f+-24;n=0;da(4196,u|0,f+-48|0);e=n;n=0;if(e&1){b=sa()|0;P()|0}else{n=0;ea(218,p|0,139929,u|0);e=n;n=0;if(e&1){b=sa()|0;P()|0}else{n=0;U(216,p|0,140095)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0}else{c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];b=0;while(1){if((b|0)==3)break;c[p+(b<<2)>>2]=0;b=b+1|0}e=a[t+11>>0]|0;k=e<<24>>24<0;n=0;V(124,o|0,(k?c[t>>2]|0:t)|0,(k?c[t+4>>2]|0:e&255)|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0}else{c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,m|0,140101)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0}else{c[r>>2]=c[m>>2];c[r+4>>2]=c[m+4>>2];c[r+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}e=a[w+11>>0]|0;k=e<<24>>24<0;n=0;V(124,r|0,(k?c[w>>2]|0:w)|0,(k?c[w+4>>2]|0:e&255)|0)|0;e=n;n=0;do if(e&1){b=sa()|0;P()|0}else{c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];b=0;while(1){if((b|0)==3)break;c[r+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,q|0,139927)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(q);break}c[l>>2]=c[q>>2];c[l+4>>2]=c[q+4>>2];c[l+8>>2]=c[q+8>>2];b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}X6(s,l);RC((c[h>>2]|0)+-24|0,s);J2a(s);Chb(l);Chb(q);Chb(r);Chb(m);Chb(o);Chb(p);Chb(u);Chb(t);Chb(w);b=d;break a}while(0);Chb(r)}Chb(m)}Chb(o)}Chb(p)}Chb(u)}Chb(t)}Chb(w);break}case 114:switch(a[f+1>>0]|0){case 99:{b=Jj(b,d,e)|0;break a}case 109:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140107,Zzb(140107)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 77:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140109,Zzb(140109)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 115:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140112,Zzb(140112)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}case 83:{g=b+2|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;T3(w,140115,Zzb(140115)|0);n=0;f=W(43,g|0,d|0,w|0,e|0)|0;u=n;n=0;if(u&1){b=sa()|0;P()|0;Chb(w);break b}else{Chb(w);b=(f|0)==(g|0)?b:f;break a}}default:break a}case 115:switch(a[f+1>>0]|0){case 99:{b=Lj(b,d,e)|0;break a}case 112:{b=Vqa(b,d,e)|0;break a}case 114:{b=Rc(b,d,e)|0;break a}case 116:{b=Dq(b,d,e)|0;break a}case 122:{b=zq(b,d,e)|0;break a}case 90:{if((g-f|0)<=2)break a;switch(a[f+2>>0]|0){case 84:{b=ri(b,d,e)|0;break a}case 102:{b=mq(b,d,e)|0;break a}default:break a}}default:break a}case 116:switch(a[f+1>>0]|0){case 105:case 101:{b=cp(b,d,e)|0;break a}case 114:{ega(w,140119);f=e+4|0;g=c[f>>2]|0;if(g>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,w|0);u=n;n=0;if(u&1){b=sa()|0;P()|0;J2a(w);break b}}else{I6(g,w);c[f>>2]=(c[f>>2]|0)+24}J2a(w);b=b+2|0;break a}case 119:{b=$w(b,d,e)|0;break a}default:break a}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{b=Rc(b,d,e)|0;break a}default:break a}while(0);Ea(b|0)}while(0);yb=v;return b|0}function bc(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=yb;yb=yb+144|0;i=A+132|0;j=A+128|0;w=A+124|0;t=A+120|0;u=A+116|0;x=A+104|0;f=A+100|0;y=A+88|0;v=A+80|0;z=A+64|0;k=A+44|0;l=A+32|0;m=A+24|0;o=A+16|0;p=A+12|0;q=A+8|0;r=A+4|0;s=A;c[j>>2]=b;c[w>>2]=0;c[t>>2]=w;c[u>>2]=w;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[f>>2]=0;yib(y);esb(v);c[z>>2]=0;g=z+4|0;c[g>>2]=0;h=z+8|0;c[h>>2]=0;c[k>>2]=x;c[k+4>>2]=y;c[k+8>>2]=f;c[k+12>>2]=z;c[k+16>>2]=v;c[l>>2]=y;c[l+4>>2]=u;c[l+8>>2]=t;c[m>>2]=x;c[m+4>>2]=y;n=0;da(332,z|0,j|0);f=n;n=0;do if(!(f&1)){a:while(1){b=c[g>>2]|0;if((b|0)==(c[z>>2]|0)){b=316;break}e=b+-4|0;f=c[e>>2]|0;c[j>>2]=f;b=f;c[g>>2]=e;b:do if(f|0){if((v|0)==(b|0)){n=0;ca(513,m|0);f=n;n=0;if(f&1){b=323;break a}else break}Ddb(c[t>>2]|0,c[b>>2]|0);Ddb(c[t>>2]|0,c[(c[j>>2]|0)+4>>2]|0);b=c[j>>2]|0;do switch(c[b>>2]|0){case 0:case 36:{b=315;break a}case 1:{n=0;b=S(231,b|0)|0;f=n;n=0;if(f&1){b=323;break a}c[o>>2]=c[b+8>>2];n=0;c[i>>2]=c[o>>2];da(371,k|0,i|0);f=n;n=0;if(f&1){b=323;break a}n=0;b=S(231,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}f=WCb(c[b+16>>2]|0)|0;Ddb(c[t>>2]|0,f);f=0;while(1){n=0;b=S(231,c[j>>2]|0)|0;e=n;n=0;if(e&1){b=317;break a}if(f>>>0>=(WCb(c[b+16>>2]|0)|0)>>>0)break b;n=0;b=S(231,c[j>>2]|0)|0;e=n;n=0;if(e&1){b=317;break a}n=0;b=U(74,b+12|0,f|0)|0;e=n;n=0;if(e&1){b=317;break a}e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);e=n;n=0;if(e&1){b=317;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}f=f+1|0}}case 2:{n=0;b=S(235,b|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+8|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(235,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}e=b+12|0;b=c[g>>2]|0;if((b|0)==(c[h>>2]|0)){n=0;da(332,z|0,e|0);f=n;n=0;if(f&1){b=323;break a}}else{c[b>>2]=c[e>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(235,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+16|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 3:{n=0;b=S(238,b|0)|0;f=n;n=0;if(f&1){b=323;break a}c[p>>2]=c[b+8>>2];n=0;c[i>>2]=c[p>>2];da(371,k|0,i|0);f=n;n=0;if(f&1){b=323;break a}n=0;b=S(238,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 4:{n=0;b=S(239,b|0)|0;f=n;n=0;if(f&1){b=323;break a}c[q>>2]=c[b+8>>2];c[i>>2]=c[q>>2];r4(l,i);n=0;b=S(239,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+16|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(239,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 5:{n=0;b=S(240,b|0)|0;f=n;n=0;if(f&1){b=323;break a}e=WCb(c[b+12>>2]|0)|0;Ddb(c[t>>2]|0,e);e=0;while(1){n=0;b=S(240,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=318;break a}f=e>>>0<(WCb(c[b+12>>2]|0)|0)>>>0;b=c[j>>2]|0;if(!f)break;n=0;b=S(240,b|0)|0;f=n;n=0;if(f&1){b=318;break a}n=0;b=U(94,b+8|0,e|0)|0;f=n;n=0;if(f&1){b=318;break a}c[r>>2]=c[b>>2];c[i>>2]=c[r>>2];r4(l,i);e=e+1|0}n=0;b=S(240,b|0)|0;f=n;n=0;if(f&1){b=323;break a}c[s>>2]=c[b+24>>2];c[i>>2]=c[s>>2];r4(l,i);n=0;b=S(240,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+28|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(240,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+32|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 6:{n=0;b=S(241,b|0)|0;f=n;n=0;if(f&1){b=323;break a}X1a(c[u>>2]|0,c[b+24>>2]|0,0);n=0;b=S(241,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}f=WCb(c[b+12>>2]|0)|0;Ddb(c[t>>2]|0,f);f=0;while(1){n=0;b=S(241,c[j>>2]|0)|0;e=n;n=0;if(e&1){b=319;break a}if(f>>>0>=(WCb(c[b+12>>2]|0)|0)>>>0)break b;n=0;b=S(241,c[j>>2]|0)|0;e=n;n=0;if(e&1){b=319;break a}n=0;b=U(74,b+8|0,f|0)|0;e=n;n=0;if(e&1){b=319;break a}e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);e=n;n=0;if(e&1){b=319;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}f=f+1|0}}case 7:{n=0;b=S(242,b|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+28|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(242,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}X1a(c[u>>2]|0,c[b+24>>2]|0,0);n=0;b=S(242,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}f=WCb(c[b+12>>2]|0)|0;Ddb(c[t>>2]|0,f);f=0;while(1){n=0;b=S(242,c[j>>2]|0)|0;e=n;n=0;if(e&1){b=320;break a}if(f>>>0>=(WCb(c[b+12>>2]|0)|0)>>>0)break b;n=0;b=S(242,c[j>>2]|0)|0;e=n;n=0;if(e&1){b=320;break a}n=0;b=U(74,b+8|0,f|0)|0;e=n;n=0;if(e&1){b=320;break a}e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);e=n;n=0;if(e&1){b=320;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}f=f+1|0}}case 8:{n=0;b=S(243,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,c[b+8>>2]|0);break b}case 9:{n=0;b=S(244,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,c[b+8>>2]|0);n=0;b=S(244,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 10:{n=0;b=S(245,b|0)|0;f=n;n=0;if(f&1){b=323;break a}X1a(c[u>>2]|0,c[b+8>>2]|0,0);break b}case 11:{n=0;b=S(246,b|0)|0;f=n;n=0;if(f&1){b=323;break a}X1a(c[u>>2]|0,c[b+8>>2]|0,0);n=0;b=S(246,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 12:{n=0;b=S(247,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,d[b+8>>0]|0);n=0;b=S(247,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}n=0;b=S(248,b|0)|0;f=n;n=0;if(f&1){b=323;break a}if(b){n=0;b=S(247,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,a[b+9>>0]&1)}n=0;b=S(247,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=WCb(c[b+12>>2]|0)|0;Ddb(c[t>>2]|0,b);n=0;b=S(247,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=WCb(c[b+16>>2]|0)|0;Ddb(c[t>>2]|0,b);n=0;b=S(247,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,a[b+20>>0]&1);n=0;b=S(247,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+24|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 13:{n=0;b=S(249,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,d[b+8>>0]|0);n=0;b=S(249,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=WCb(c[b+12>>2]|0)|0;Ddb(c[t>>2]|0,b);n=0;b=S(249,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=WCb(c[b+16>>2]|0)|0;Ddb(c[t>>2]|0,b);n=0;b=S(249,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,c[b+32>>2]|0);n=0;b=S(249,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,a[b+20>>0]&1);n=0;b=S(249,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+24|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(249,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+28|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 24:{n=0;b=S(250,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,d[b+8>>0]|0);n=0;b=S(250,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=WCb(c[b+12>>2]|0)|0;Ddb(c[t>>2]|0,b);n=0;b=S(250,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+16|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(250,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+20|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(250,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+24|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 23:{n=0;b=S(251,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,c[b+8>>2]|0);n=0;b=S(251,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,d[b+12>>0]|0);n=0;b=S(251,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=WCb(c[b+16>>2]|0)|0;Ddb(c[t>>2]|0,b);n=0;b=S(251,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+20|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(251,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+24|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 25:{n=0;b=S(252,b|0)|0;f=n;n=0;if(f&1){b=323;break a}b=WCb(c[b+8>>2]|0)|0;Ddb(c[t>>2]|0,b);n=0;b=S(252,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,c[b+24>>2]|0);n=0;b=S(252,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(252,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+16|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(252,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+20|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 26:{n=0;b=S(263,b|0)|0;f=n;n=0;if(f&1){b=323;break a}b=WCb(c[b+8>>2]|0)|0;Ddb(c[t>>2]|0,b);n=0;b=S(263,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(263,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+16|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 27:{n=0;b=S(253,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,c[b+8>>2]|0);n=0;b=S(253,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,d[b+16>>0]|0);n=0;b=S(253,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 28:{n=0;b=S(254,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,c[b+8>>2]|0);n=0;b=S(254,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,d[b+16>>0]|0);n=0;b=S(254,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(254,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+20|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 29:{e=0;while(1){b=c[j>>2]|0;if(e>>>0>=16)break;n=0;b=S(255,b|0)|0;f=n;n=0;if(f&1){b=321;break a}Ddb(c[t>>2]|0,d[b+16+e>>0]|0);e=e+1|0}n=0;b=S(255,b|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+8|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(255,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 30:{n=0;b=S(264,b|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+8|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(264,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(264,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+16|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 31:{n=0;b=S(256,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,c[b+8>>2]|0);n=0;b=S(256,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(256,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+16|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 32:{n=0;b=S(257,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,c[b+8>>2]|0);n=0;b=S(257,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(257,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+16|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(257,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+20|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 33:{n=0;b=S(258,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,c[b+8>>2]|0);break b}case 34:{n=0;b=S(265,b|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+8|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(265,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(265,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+16|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 35:{n=0;b=S(266,b|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+8|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(266,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(266,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+16|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 14:{n=0;b=S(259,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,c[b+4>>2]|0);n=0;b=S(267,b+8|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,b);break b}case 15:{n=0;b=S(260,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,c[b+8>>2]|0);n=0;b=S(260,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 16:{n=0;b=S(261,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,c[b+8>>2]|0);n=0;b=S(261,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(261,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+16|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 17:{n=0;b=S(268,b|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+8|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(268,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+12|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}n=0;b=S(268,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+16|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 18:{n=0;b=S(269,b|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+8|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 19:{n=0;b=S(270,b|0)|0;f=n;n=0;if(f&1){b=323;break a}b=b+8|0;e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);f=n;n=0;if(f&1){b=323;break a}else break b}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;break b}}case 20:{n=0;b=S(262,b|0)|0;f=n;n=0;if(f&1){b=323;break a}Ddb(c[t>>2]|0,c[b+8>>2]|0);n=0;b=S(262,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}X1a(c[u>>2]|0,c[b+12>>2]|0,0);n=0;b=S(262,c[j>>2]|0)|0;f=n;n=0;if(f&1){b=323;break a}f=WCb(c[b+20>>2]|0)|0;Ddb(c[t>>2]|0,f);f=0;while(1){n=0;b=S(262,c[j>>2]|0)|0;e=n;n=0;if(e&1){b=322;break a}if(f>>>0>=(WCb(c[b+20>>2]|0)|0)>>>0)break b;n=0;b=S(262,c[j>>2]|0)|0;e=n;n=0;if(e&1){b=322;break a}n=0;b=U(74,b+16|0,f|0)|0;e=n;n=0;if(e&1){b=322;break a}e=c[g>>2]|0;if((e|0)==(c[h>>2]|0)){n=0;da(332,z|0,b|0);e=n;n=0;if(e&1){b=322;break a}}else{c[e>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4}f=f+1|0}}default:break b}while(0)}while(0)}if((b|0)==315){n=0;fa(75,141129,75057,594,75185);n=0;break}else if((b|0)==316){w=c[w>>2]|0;Vob(z);dTa(y);Vob(x);yb=A;return w|0}else if((b|0)==317){A=sa()|0;P()|0;Vob(z);dTa(y);Vob(x);Ea(A|0)}else if((b|0)==318){A=sa()|0;P()|0;Vob(z);dTa(y);Vob(x);Ea(A|0)}else if((b|0)==319){A=sa()|0;P()|0;Vob(z);dTa(y);Vob(x);Ea(A|0)}else if((b|0)==320){A=sa()|0;P()|0;Vob(z);dTa(y);Vob(x);Ea(A|0)}else if((b|0)==321){A=sa()|0;P()|0;Vob(z);dTa(y);Vob(x);Ea(A|0)}else if((b|0)==322){A=sa()|0;P()|0;Vob(z);dTa(y);Vob(x);Ea(A|0)}else if((b|0)==323){A=sa()|0;P()|0;Vob(z);dTa(y);Vob(x);Ea(A|0)}}while(0);A=sa()|0;P()|0;Vob(z);dTa(y);Vob(x);Ea(A|0);return 0}function cc(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,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=yb;yb=yb+144|0;y=z+128|0;w=z+104|0;u=z+40|0;i=z+88|0;q=z+24|0;m=z+76|0;p=z+12|0;o=z;k=z+64|0;a:do if((b|0)!=(d|0)){switch(a[b>>0]|0){case 75:case 86:case 114:{c[y>>2]=0;f=w8(b,d,y)|0;b:do if((f|0)!=(b|0)?(r=(a[f>>0]|0)==70,t=e+4|0,l=((c[t>>2]|0)-(c[e>>2]|0)|0)/24|0,s=cc(f,d,e)|0,t=((c[t>>2]|0)-(c[e>>2]|0)|0)/24|0,(s|0)!=(f|0)):0){q=e+20|0;f=c[q>>2]|0;if(r){b=0;while(1){if((b|0)==-1)break;x=b+-1|0;V5(f+(x<<4)|0);b=x}f=f+-16|0;c[q>>2]=f}b=c[e+12>>2]|0;c[w>>2]=b;if(f>>>0<(c[e+24>>2]|0)>>>0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=b;c[q>>2]=(c[q>>2]|0)+16}else gD(e+16|0,w);p=c[y>>2]|0;m=(p&1|0)==0;o=(p&2|0)==0;p=(p&4|0)==0;while(1){if(l>>>0>=t>>>0){b=s;break b}if(r){g=c[e>>2]|0;k=g+(l*24|0)+12|0;h=a[k+11>>0]|0;b=h<<24>>24<0;if(b){i=c[g+(l*24|0)+16>>2]|0;f=c[k>>2]|0}else{i=h&255;f=k}j=i+-2|0;if((a[f+j>>0]|0)==38)b=i+-3|0;else{if(b){f=c[k>>2]|0;b=c[g+(l*24|0)+16>>2]|0}else{f=k;b=h&255}b=(a[f+b+-1>>0]|0)==38?j:i}if(!m){IGa(k,b,139874)|0;b=b+6|0}if(!o){IGa((c[e>>2]|0)+(l*24|0)+12|0,b,139881)|0;b=b+9|0}if(!p)IGa((c[e>>2]|0)+(l*24|0)+12|0,b,139891)|0}else{if(!m)NLa((c[e>>2]|0)+(l*24|0)|0,139874)|0;if(!o)NLa((c[e>>2]|0)+(l*24|0)|0,139881)|0;if(!p)NLa((c[e>>2]|0)+(l*24|0)|0,139891)|0}b=c[q>>2]|0;f=(c[e>>2]|0)+(l*24|0)|0;g=b+-12|0;h=c[g>>2]|0;if((h|0)==(c[b+-8>>2]|0))vB(b+-16|0,f);else{Oga(h,f);c[g>>2]=(c[g>>2]|0)+24}l=l+1|0}}while(0);break a}default:{}}f=Cc(b,d,e)|0;if((f|0)==(b|0)){c:do switch(a[b>>0]|0){case 65:{g=af(b,d,e)|0;if((g|0)==(b|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;c[w>>2]=c[e+12>>2];FW(y,f+-24|0,w);b=e+20|0;f=c[b>>2]|0;if(f>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,y|0);e=n;n=0;if(e&1){v=sa()|0;P()|0;V5(y);break c}}else{c[f+12>>2]=c[y+12>>2];c[f>>2]=c[y>>2];e=y+4|0;c[f+4>>2]=c[e>>2];x=y+8|0;c[f+8>>2]=c[x>>2];c[x>>2]=0;c[e>>2]=0;c[y>>2]=0;c[b>>2]=(c[b>>2]|0)+16}V5(y);b=g;break a}case 67:{v=b+1|0;h=cc(v,d,e)|0;if((h|0)==(v|0))break a;f=e+4|0;g=c[f>>2]|0;if((c[e>>2]|0)==(g|0))break a;NLa(g+-24|0,139901)|0;b=(c[f>>2]|0)+-24|0;c[w>>2]=c[e+12>>2];FW(y,b,w);b=e+20|0;f=c[b>>2]|0;if(f>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,y|0);e=n;n=0;if(e&1){v=sa()|0;P()|0;V5(y);break c}}else{c[f+12>>2]=c[y+12>>2];c[f>>2]=c[y>>2];e=y+4|0;c[f+4>>2]=c[e>>2];x=y+8|0;c[f+8>>2]=c[x>>2];c[x>>2]=0;c[e>>2]=0;c[y>>2]=0;c[b>>2]=(c[b>>2]|0)+16}V5(y);b=h;break a}case 70:{g=Qh(b,d,e)|0;if((g|0)==(b|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;c[w>>2]=c[e+12>>2];FW(y,f+-24|0,w);b=e+20|0;f=c[b>>2]|0;if(f>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,y|0);e=n;n=0;if(e&1){v=sa()|0;P()|0;V5(y);break c}}else{c[f+12>>2]=c[y+12>>2];c[f>>2]=c[y>>2];e=y+4|0;c[f+4>>2]=c[e>>2];x=y+8|0;c[f+8>>2]=c[x>>2];c[x>>2]=0;c[e>>2]=0;c[y>>2]=0;c[b>>2]=(c[b>>2]|0)+16}V5(y);b=g;break a}case 71:{v=b+1|0;h=cc(v,d,e)|0;if((h|0)==(v|0))break a;f=e+4|0;g=c[f>>2]|0;if((c[e>>2]|0)==(g|0))break a;NLa(g+-24|0,139910)|0;b=(c[f>>2]|0)+-24|0;c[w>>2]=c[e+12>>2];FW(y,b,w);b=e+20|0;f=c[b>>2]|0;if(f>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,y|0);e=n;n=0;if(e&1){v=sa()|0;P()|0;V5(y);break c}}else{c[f+12>>2]=c[y+12>>2];c[f>>2]=c[y>>2];e=y+4|0;c[f+4>>2]=c[e>>2];x=y+8|0;c[f+8>>2]=c[x>>2];c[x>>2]=0;c[e>>2]=0;c[y>>2]=0;c[b>>2]=(c[b>>2]|0)+16}V5(y);b=h;break a}case 77:{g=qf(b,d,e)|0;if((g|0)==(b|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;c[w>>2]=c[e+12>>2];FW(y,f+-24|0,w);b=e+20|0;f=c[b>>2]|0;if(f>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,y|0);e=n;n=0;if(e&1){v=sa()|0;P()|0;V5(y);break c}}else{c[f+12>>2]=c[y+12>>2];c[f>>2]=c[y>>2];e=y+4|0;c[f+4>>2]=c[e>>2];x=y+8|0;c[f+8>>2]=c[x>>2];c[x>>2]=0;c[e>>2]=0;c[y>>2]=0;c[b>>2]=(c[b>>2]|0)+16}V5(y);b=g;break a}case 79:{o=e+4|0;g=((c[o>>2]|0)-(c[e>>2]|0)|0)/24|0;w=b+1|0;m=cc(w,d,e)|0;o=((c[o>>2]|0)-(c[e>>2]|0)|0)/24|0;if((m|0)==(w|0))break a;b=c[e+12>>2]|0;c[y>>2]=b;l=e+20|0;f=c[l>>2]|0;if(f>>>0<(c[e+24>>2]|0)>>>0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=b;c[l>>2]=(c[l>>2]|0)+16}else gD(e+16|0,y);j=y+11|0;k=y+4|0;while(1){if(g>>>0>=o>>>0){b=m;break a}wca(y,(c[e>>2]|0)+(g*24|0)+12|0,2);b=Zzb(139921)|0;w=a[j>>0]|0;if((b|0)==((w<<24>>24<0?c[k>>2]|0:w&255)|0)){n=0;b=V(129,y|0,139921,b|0)|0;w=n;n=0;if(w&1)break;b=(b|0)==0}else b=0;Chb(y);f=c[e>>2]|0;h=f+(g*24|0)|0;if(!b){b=f+(g*24|0)+12|0;if((a[b+11>>0]|0)<0)b=c[b>>2]|0;if((a[b>>0]|0)==40){NLa(h,139929)|0;IGa((c[e>>2]|0)+(g*24|0)+12|0,0,139927)|0}}else{NLa(h,139924)|0;IGa((c[e>>2]|0)+(g*24|0)+12|0,0,139927)|0}NLa((c[e>>2]|0)+(g*24|0)|0,139931)|0;b=c[l>>2]|0;f=(c[e>>2]|0)+(g*24|0)|0;h=b+-12|0;i=c[h>>2]|0;if((i|0)==(c[b+-8>>2]|0))vB(b+-16|0,f);else{Oga(i,f);c[h>>2]=(c[h>>2]|0)+24}g=g+1|0}z=ta(0)|0;P()|0;yub(z);break}case 80:{q=e+4|0;g=((c[q>>2]|0)-(c[e>>2]|0)|0)/24|0;r=b+1|0;p=cc(r,d,e)|0;q=((c[q>>2]|0)-(c[e>>2]|0)|0)/24|0;if((p|0)==(r|0))break a;b=c[e+12>>2]|0;c[y>>2]=b;o=e+20|0;f=c[o>>2]|0;if(f>>>0<(c[e+24>>2]|0)>>>0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=b;c[o>>2]=(c[o>>2]|0)+16}else gD(e+16|0,y);j=y+11|0;k=y+4|0;l=y+11|0;m=y+4|0;while(1){if(g>>>0>=q>>>0){b=p;break a}wca(y,(c[e>>2]|0)+(g*24|0)+12|0,2);b=Zzb(139921)|0;w=a[j>>0]|0;if((b|0)==((w<<24>>24<0?c[k>>2]|0:w&255)|0)){n=0;b=V(129,y|0,139921,b|0)|0;w=n;n=0;if(w&1){x=109;break}b=(b|0)==0}else b=0;Chb(y);f=c[e>>2]|0;h=f+(g*24|0)|0;if(!b){b=f+(g*24|0)+12|0;if((a[b+11>>0]|0)<0)b=c[b>>2]|0;if((a[b>>0]|0)==40){NLa(h,139929)|0;IGa((c[e>>2]|0)+(g*24|0)+12|0,0,139927)|0}}else{NLa(h,139924)|0;IGa((c[e>>2]|0)+(g*24|0)+12|0,0,139927)|0}if((a[r>>0]|0)==85){wca(y,(c[e>>2]|0)+(g*24|0)|0,12);b=Zzb(139934)|0;w=a[l>>0]|0;if((b|0)==((w<<24>>24<0?c[m>>2]|0:w&255)|0)){n=0;b=V(129,y|0,139934,b|0)|0;w=n;n=0;if(w&1){x=122;break}f=(b|0)!=0}else f=1;Chb(y);b=(c[e>>2]|0)+(g*24|0)|0;if(f)x=124;else hQa(b)}else{b=(c[e>>2]|0)+(g*24|0)|0;x=124}if((x|0)==124){x=0;NLa(b,139947)|0}b=c[o>>2]|0;f=(c[e>>2]|0)+(g*24|0)|0;h=b+-12|0;i=c[h>>2]|0;if((i|0)==(c[b+-8>>2]|0))vB(b+-16|0,f);else{Oga(i,f);c[h>>2]=(c[h>>2]|0)+24}g=g+1|0}if((x|0)==109){z=ta(0)|0;P()|0;yub(z)}else if((x|0)==122){z=ta(0)|0;P()|0;yub(z)}break}case 82:{o=e+4|0;g=((c[o>>2]|0)-(c[e>>2]|0)|0)/24|0;w=b+1|0;m=cc(w,d,e)|0;o=((c[o>>2]|0)-(c[e>>2]|0)|0)/24|0;if((m|0)==(w|0))break a;b=c[e+12>>2]|0;c[y>>2]=b;l=e+20|0;f=c[l>>2]|0;if(f>>>0<(c[e+24>>2]|0)>>>0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=b;c[l>>2]=(c[l>>2]|0)+16}else gD(e+16|0,y);j=y+11|0;k=y+4|0;while(1){if(g>>>0>=o>>>0){b=m;break a}wca(y,(c[e>>2]|0)+(g*24|0)+12|0,2);b=Zzb(139921)|0;w=a[j>>0]|0;if((b|0)==((w<<24>>24<0?c[k>>2]|0:w&255)|0)){n=0;b=V(129,y|0,139921,b|0)|0;w=n;n=0;if(w&1)break;b=(b|0)==0}else b=0;Chb(y);f=c[e>>2]|0;h=f+(g*24|0)|0;if(!b){b=f+(g*24|0)+12|0;if((a[b+11>>0]|0)<0)b=c[b>>2]|0;if((a[b>>0]|0)==40){NLa(h,139929)|0;IGa((c[e>>2]|0)+(g*24|0)+12|0,0,139927)|0}}else{NLa(h,139924)|0;IGa((c[e>>2]|0)+(g*24|0)+12|0,0,139927)|0}NLa((c[e>>2]|0)+(g*24|0)|0,139949)|0;b=c[l>>2]|0;f=(c[e>>2]|0)+(g*24|0)|0;h=b+-12|0;i=c[h>>2]|0;if((i|0)==(c[b+-8>>2]|0))vB(b+-16|0,f);else{Oga(i,f);c[h>>2]=(c[h>>2]|0)+24}g=g+1|0}z=ta(0)|0;P()|0;yub(z);break}case 84:{o=e+4|0;j=((c[o>>2]|0)-(c[e>>2]|0)|0)/24|0;l=tk(b,d,e)|0;k=((c[o>>2]|0)-(c[e>>2]|0)|0)/24|0;if((l|0)==(b|0))break a;p=e+16|0;m=e+12|0;b=c[m>>2]|0;c[y>>2]=b;q=e+20|0;f=c[q>>2]|0;r=e+24|0;if(f>>>0<(c[r>>2]|0)>>>0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=b;c[q>>2]=(c[q>>2]|0)+16}else gD(p,y);b=j;while(1){if(b>>>0>=k>>>0)break;f=c[q>>2]|0;g=(c[e>>2]|0)+(b*24|0)|0;h=f+-12|0;i=c[h>>2]|0;if((i|0)==(c[f+-8>>2]|0))vB(f+-16|0,g);else{Oga(i,g);c[h>>2]=(c[h>>2]|0)+24}b=b+1|0}if(!((k|0)==(j+1|0)&(a[e+63>>0]|0)!=0)){b=l;break a}b=$f(l,d,e)|0;if((b|0)==(l|0)){b=l;break a}d6(y,(c[o>>2]|0)+-24|0);g=c[o>>2]|0;f=0;while(1){if((f|0)==-1)break;e=f+-1|0;J2a(g+(e*24|0)|0);f=e}c[o>>2]=g+-24;e=a[y+11>>0]|0;v=e<<24>>24<0;n=0;V(124,g+-48|0,(v?c[y>>2]|0:y)|0,(v?c[y+4>>2]|0:e&255)|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0}else{e=(c[o>>2]|0)+-24|0;c[u>>2]=c[m>>2];n=0;ea(215,w|0,e|0,u|0);e=n;n=0;do if(e&1){b=sa()|0;P()|0}else{f=c[q>>2]|0;if(f>>>0>=(c[r>>2]|0)>>>0){n=0;da(4197,p|0,w|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;V5(w);break}}else{c[f+12>>2]=c[w+12>>2];c[f>>2]=c[w>>2];e=w+4|0;c[f+4>>2]=c[e>>2];x=w+8|0;c[f+8>>2]=c[x>>2];c[x>>2]=0;c[e>>2]=0;c[w>>2]=0;c[q>>2]=(c[q>>2]|0)+16}V5(w);Chb(y);break a}while(0)}Chb(y);v=b;break}case 85:{f=b+1|0;if((f|0)==(d|0))break a;g=Nk(f,d,e)|0;if((g|0)==(f|0))break a;j=cc(g,d,e)|0;if((j|0)==(g|0))break a;h=e+4|0;f=c[h>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(y,f+-24|0);f=c[h>>2]|0;b=0;while(1){if((b|0)==-1)break;v=b+-1|0;J2a(f+(v*24|0)|0);b=v}c[h>>2]=f+-24;n=0;ea(216,w|0,f+-48|0,9);v=n;n=0;d:do if(v&1){b=sa()|0;P()|0}else{b=Zzb(139951)|0;v=a[w+11>>0]|0;e:do if((b|0)==((v<<24>>24<0?c[w+4>>2]|0:v&255)|0)){n=0;b=V(129,w|0,139951,b|0)|0;v=n;n=0;if(v&1){v=ta(0)|0;P()|0;yub(v)}Chb(w);if(!b){n=0;da(4196,w|0,(c[h>>2]|0)+-24|0);v=n;n=0;if(v&1){b=sa()|0;P()|0}else{f=c[h>>2]|0;b=0;while(1){if((b|0)==-1)break;v=b+-1|0;J2a(f+(v*24|0)|0);b=v}c[h>>2]=f+-24;b=w+11|0;g=a[b>>0]|0;v=g<<24>>24<0;f=w+4|0;d=v?c[w>>2]|0:w;n=0;g=V(130,d+9|0,d+(v?c[f>>2]|0:g&255)|0,e|0)|0;v=n;n=0;f:do if(v&1){b=sa()|0;P()|0}else{g:do if((g|0)==(((a[b>>0]|0)<0?c[w>>2]|0:w)+9|0)){n=0;ea(217,q|0,y|0,139961);v=n;n=0;if(v&1){b=sa()|0;P()|0}else{v=a[b>>0]|0;d=v<<24>>24<0;n=0;V(124,q|0,(d?c[w>>2]|0:w)|0,(d?c[f>>2]|0:v&255)|0)|0;v=n;n=0;h:do if(v&1){b=sa()|0;P()|0}else{c[k>>2]=c[q>>2];c[k+4>>2]=c[q+4>>2];c[k+8>>2]=c[q+8>>2];b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}X6(u,k);b=c[h>>2]|0;do if(b>>>0<(c[e+8>>2]|0)>>>0){I6(b,u);c[h>>2]=(c[h>>2]|0)+24}else{n=0;da(4198,e|0,u|0);v=n;n=0;if(!(v&1))break;b=sa()|0;P()|0;J2a(u);Chb(k);break h}while(0);J2a(u);Chb(k);Chb(q);break g}while(0);Chb(q)}break f}else{n=0;ea(217,p|0,y|0,139963);v=n;n=0;if(v&1){b=sa()|0;P()|0}else{n=0;da(4196,o|0,(c[h>>2]|0)+-24|0);v=n;n=0;if(v&1){b=sa()|0;P()|0}else{v=a[o+11>>0]|0;d=v<<24>>24<0;n=0;V(124,p|0,(d?c[o>>2]|0:o)|0,(d?c[o+4>>2]|0:v&255)|0)|0;v=n;n=0;do if(v&1){b=sa()|0;P()|0}else{c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];b=0;while(1){if((b|0)==3)break;c[p+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,q|0,139965)|0;v=n;n=0;if(v&1){b=sa()|0;P()|0;Chb(q);break}c[m>>2]=c[q>>2];c[m+4>>2]=c[q+4>>2];c[m+8>>2]=c[q+8>>2];b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}X6(u,m);RC((c[h>>2]|0)+-24|0,u);J2a(u);Chb(m);Chb(q);Chb(o);Chb(p);break g}while(0);Chb(o)}Chb(p)}break f}while(0);Chb(w);break e}while(0);Chb(w)}break d}else x=190}else{Chb(w);x=190}while(0);i:do if((x|0)==190){n=0;ea(217,u|0,y|0,139961);v=n;n=0;if(v&1){b=sa()|0;P()|0}else{n=0;da(4196,q|0,(c[h>>2]|0)+-24|0);v=n;n=0;do if(v&1){b=sa()|0;P()|0}else{v=a[q+11>>0]|0;d=v<<24>>24<0;n=0;V(124,u|0,(d?c[q>>2]|0:q)|0,(d?c[q+4>>2]|0:v&255)|0)|0;v=n;n=0;if(v&1){b=sa()|0;P()|0;Chb(q);break}c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];b=0;while(1){if((b|0)==3)break;c[u+(b<<2)>>2]=0;b=b+1|0}X6(w,i);RC((c[h>>2]|0)+-24|0,w);J2a(w);Chb(i);Chb(q);Chb(u);break i}while(0);Chb(u)}break d}while(0);v=(c[h>>2]|0)+-24|0;c[u>>2]=c[e+12>>2];n=0;ea(215,w|0,v|0,u|0);v=n;n=0;do if(v&1){b=sa()|0;P()|0}else{b=e+20|0;f=c[b>>2]|0;if(f>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,w|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;V5(w);break}}else{c[f+12>>2]=c[w+12>>2];c[f>>2]=c[w>>2];e=w+4|0;c[f+4>>2]=c[e>>2];x=w+8|0;c[f+8>>2]=c[x>>2];c[x>>2]=0;c[e>>2]=0;c[w>>2]=0;c[b>>2]=(c[b>>2]|0)+16}V5(w);Chb(y);b=j;break a}while(0)}while(0);Chb(y);v=b;break}case 83:{v=b+1|0;if((v|0)!=(d|0)?(a[v>>0]|0)==116:0){g=qj(b,d,e)|0;if((g|0)==(b|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;c[w>>2]=c[e+12>>2];FW(y,f+-24|0,w);b=e+20|0;f=c[b>>2]|0;if(f>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,y|0);e=n;n=0;if(e&1){v=sa()|0;P()|0;V5(y);break c}}else{c[f+12>>2]=c[y+12>>2];c[f>>2]=c[y>>2];e=y+4|0;c[f+4>>2]=c[e>>2];x=y+8|0;c[f+8>>2]=c[x>>2];c[x>>2]=0;c[e>>2]=0;c[y>>2]=0;c[b>>2]=(c[b>>2]|0)+16}V5(y);b=g;break a}g=hh(b,d,e)|0;if((g|0)==(b|0))break a;b=$f(g,d,e)|0;if((b|0)==(g|0)){b=g;break a}h=e+4|0;f=c[h>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2){b=g;break a}d6(y,f+-24|0);g=c[h>>2]|0;f=0;while(1){if((f|0)==-1)break;v=f+-1|0;J2a(g+(v*24|0)|0);f=v}c[h>>2]=g+-24;v=a[y+11>>0]|0;d=v<<24>>24<0;n=0;V(124,g+-48|0,(d?c[y>>2]|0:y)|0,(d?c[y+4>>2]|0:v&255)|0)|0;v=n;n=0;if(v&1){b=sa()|0;P()|0}else{v=(c[h>>2]|0)+-24|0;c[u>>2]=c[e+12>>2];n=0;ea(215,w|0,v|0,u|0);v=n;n=0;do if(v&1){b=sa()|0;P()|0}else{f=e+20|0;g=c[f>>2]|0;if(g>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,w|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;V5(w);break}}else{c[g+12>>2]=c[w+12>>2];c[g>>2]=c[w>>2];e=w+4|0;c[g+4>>2]=c[e>>2];x=w+8|0;c[g+8>>2]=c[x>>2];c[x>>2]=0;c[e>>2]=0;c[w>>2]=0;c[f>>2]=(c[f>>2]|0)+16}V5(w);Chb(y);break a}while(0)}Chb(y);v=b;break}case 68:{f=b+1|0;if((f|0)==(d|0))x=307;else switch(a[f>>0]|0){case 112:{l=e+4|0;g=((c[l>>2]|0)-(c[e>>2]|0)|0)/24|0;x=b+2|0;k=cc(x,d,e)|0;l=((c[l>>2]|0)-(c[e>>2]|0)|0)/24|0;if((k|0)==(x|0)){x=307;break c}b=c[e+12>>2]|0;c[y>>2]=b;j=e+20|0;f=c[j>>2]|0;if(f>>>0<(c[e+24>>2]|0)>>>0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=b;c[j>>2]=(c[j>>2]|0)+16}else gD(e+16|0,y);b=g;while(1){if(b>>>0>=l>>>0){b=k;break a}f=c[j>>2]|0;g=(c[e>>2]|0)+(b*24|0)|0;h=f+-12|0;i=c[h>>2]|0;if((i|0)==(c[f+-8>>2]|0))vB(f+-16|0,g);else{Oga(i,g);c[h>>2]=(c[h>>2]|0)+24}b=b+1|0}}case 84:case 116:{g=Fp(b,d,e)|0;if((g|0)==(b|0)){x=307;break c}f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;c[w>>2]=c[e+12>>2];FW(y,f+-24|0,w);b=e+20|0;f=c[b>>2]|0;if(f>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,y|0);e=n;n=0;if(e&1){v=sa()|0;P()|0;V5(y);break c}}else{c[f+12>>2]=c[y+12>>2];c[f>>2]=c[y>>2];e=y+4|0;c[f+4>>2]=c[e>>2];x=y+8|0;c[f+8>>2]=c[x>>2];c[x>>2]=0;c[e>>2]=0;c[y>>2]=0;c[b>>2]=(c[b>>2]|0)+16}V5(y);b=g;break a}case 118:{g=of(b,d,e)|0;if((g|0)==(b|0)){x=307;break c}f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;c[w>>2]=c[e+12>>2];FW(y,f+-24|0,w);b=e+20|0;f=c[b>>2]|0;if(f>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,y|0);e=n;n=0;if(e&1){v=sa()|0;P()|0;V5(y);break c}}else{c[f+12>>2]=c[y+12>>2];c[f>>2]=c[y>>2];e=y+4|0;c[f+4>>2]=c[e>>2];x=y+8|0;c[f+8>>2]=c[x>>2];c[x>>2]=0;c[e>>2]=0;c[y>>2]=0;c[b>>2]=(c[b>>2]|0)+16}V5(y);b=g;break a}default:{x=307;break c}}break}default:x=307}while(0);do if((x|0)==307){f=Cc(b,d,e)|0;if((f|0)!=(b|0)){b=f;break a}g=qj(b,d,e)|0;if((g|0)==(b|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;c[w>>2]=c[e+12>>2];FW(y,f+-24|0,w);b=e+20|0;f=c[b>>2]|0;if(f>>>0>=(c[e+24>>2]|0)>>>0){n=0;da(4197,e+16|0,y|0);e=n;n=0;if(e&1){v=sa()|0;P()|0;V5(y);break}}else{c[f+12>>2]=c[y+12>>2];c[f>>2]=c[y>>2];e=y+4|0;c[f+4>>2]=c[e>>2];x=y+8|0;c[f+8>>2]=c[x>>2];c[x>>2]=0;c[e>>2]=0;c[y>>2]=0;c[b>>2]=(c[b>>2]|0)+16}V5(y);b=g;break a}while(0);Ea(v|0)}else b=f}while(0);yb=z;return b|0}function dc(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,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,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,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;vb=yb;yb=yb+2896|0;ub=vb+2872|0;h=vb+2840|0;k=vb+2816|0;i=vb+2784|0;l=vb+2760|0;Pa=vb+2736|0;_a=vb+2712|0;jb=vb+2688|0;f=vb+2664|0;w=vb+2640|0;H=vb+2616|0;K=vb+2592|0;L=vb+2568|0;M=vb+2544|0;N=vb+2520|0;O=vb+2496|0;Q=vb+2472|0;R=vb+2448|0;S=vb+2424|0;T=vb+2400|0;U=vb+2376|0;V=vb+2352|0;W=vb+2328|0;X=vb+2304|0;Y=vb+2280|0;Z=vb+2256|0;_=vb+2232|0;$=vb+2208|0;aa=vb+2184|0;ba=vb+2160|0;ca=vb+2136|0;da=vb+2112|0;ea=vb+2088|0;fa=vb+2064|0;ga=vb+2040|0;ha=vb+2016|0;ia=vb+1992|0;ja=vb+1968|0;ka=vb+1944|0;la=vb+1920|0;na=vb+1896|0;oa=vb+1872|0;pa=vb+1848|0;qa=vb+1824|0;ra=vb+1800|0;sa=vb+1776|0;ta=vb+1752|0;ua=vb+1728|0;va=vb+1704|0;wa=vb+1680|0;xa=vb+1656|0;ya=vb+1632|0;za=vb+1608|0;Aa=vb+1584|0;Ba=vb+1560|0;Ca=vb+1536|0;Da=vb+1512|0;Ea=vb+1488|0;Fa=vb+1464|0;Ga=vb+1440|0;Ha=vb+1416|0;Ia=vb+1392|0;Ja=vb+1368|0;Ka=vb+1344|0;La=vb+1320|0;Ma=vb+1296|0;Na=vb+1272|0;Oa=vb+1248|0;Qa=vb+1224|0;Ra=vb+1200|0;Sa=vb+1176|0;Ta=vb+1152|0;Ua=vb+1128|0;Va=vb+1104|0;Wa=vb+1080|0;Xa=vb+1056|0;Ya=vb+1032|0;Za=vb+1008|0;$a=vb+984|0;ab=vb+960|0;bb=vb+936|0;cb=vb+912|0;db=vb+888|0;eb=vb+864|0;fb=vb+840|0;gb=vb+816|0;hb=vb+792|0;ib=vb+768|0;kb=vb+744|0;lb=vb+720|0;mb=vb+696|0;nb=vb+672|0;ob=vb+648|0;pb=vb+624|0;qb=vb+600|0;rb=vb+576|0;sb=vb+552|0;tb=vb+528|0;m=vb+504|0;n=vb+480|0;o=vb+456|0;p=vb+432|0;q=vb+408|0;r=vb+384|0;s=vb+360|0;t=vb+336|0;u=vb+312|0;v=vb+288|0;x=vb+264|0;y=vb+240|0;z=vb+216|0;A=vb+192|0;B=vb+168|0;C=vb+144|0;D=vb+120|0;E=vb+96|0;F=vb+72|0;G=vb+48|0;I=vb+24|0;J=vb;g=e+12|0;tw(h,d,c[g>>2]|0);if(lsb(h)|0){c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];c[b+28>>2]=c[h+28>>2];yb=vb;return}c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];c[k+12>>2]=c[h+12>>2];c[k+16>>2]=c[h+16>>2];c[k+20>>2]=c[h+20>>2];j=e+16|0;tw(i,d,c[j>>2]|0);c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];c[h+16>>2]=c[i+16>>2];c[h+20>>2]=c[i+20>>2];c[h+24>>2]=c[i+24>>2];if(lsb(h)|0){c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];c[b+28>>2]=c[h+28>>2];yb=vb;return}c[l>>2]=c[h>>2];c[l+4>>2]=c[h+4>>2];c[l+8>>2]=c[h+8>>2];c[l+12>>2]=c[h+12>>2];c[l+16>>2]=c[h+16>>2];c[l+20>>2]=c[h+20>>2];g=c[(c[g>>2]|0)+4>>2]|0;if(vub(g)|0?(c[k+16>>2]|0)!=(g|0):0)ma(96903,96854,352,131297);g=c[(c[j>>2]|0)+4>>2]|0;if(vub(g)|0?(c[l+16>>2]|0)!=(g|0):0)ma(96975,96854,353,131297);do switch(c[e+8>>2]|0){case 63:case 50:case 25:case 0:{TU(Pa,k,l);h=ub;f=Pa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 64:case 51:case 26:case 1:{EU(_a,k,l);h=ub;f=_a;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 65:case 52:case 27:case 2:{zU(jb,k,l);h=ub;f=jb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 3:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97050);if((Wsa(k)|0)==-2147483648&(P()|0)==-1?(tb=Wsa(l)|0,(tb|0)==-1&(P()|0)==-1):0)Sb[c[c[d>>2]>>2]&8191](d,97065);Lia(f,k,l);h=ub;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 4:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97084);Lga(w,k,l);h=ub;f=w;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 5:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97099);if((Wsa(k)|0)==-2147483648&(P()|0)==-1?(tb=Wsa(l)|0,(tb|0)==-1&(P()|0)==-1):0){Bqb(H,0);h=ub;f=H;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}Kia(K,k,l);h=ub;f=K;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 6:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97114);Kga(L,k,l);h=ub;f=L;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 28:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97129);if((Wsa(k)|0)==0&(P()|0)==-2147483648?(tb=Wsa(l)|0,(tb|0)==-1&(P()|0)==-1):0)Sb[c[c[d>>2]>>2]&8191](d,97144);Lia(M,k,l);h=ub;f=M;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 29:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97163);Lga(N,k,l);h=ub;f=N;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 30:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97178);if((Wsa(k)|0)==0&(P()|0)==-2147483648?(tb=Wsa(l)|0,(tb|0)==-1&(P()|0)==-1):0){Heb(O,0,0);h=ub;f=O;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}Kia(Q,k,l);h=ub;f=Q;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 31:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97193);Kga(R,k,l);h=ub;f=R;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 66:case 53:{ts(S,k,l);h=ub;f=S;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 32:case 7:{yqa(T,k,l);h=ub;f=T;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 33:case 8:{Gqa(U,k,l);h=ub;f=U;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 34:case 9:{xqa(V,k,l);h=ub;f=V;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 35:case 10:{dba(W,k,l);h=ub;f=W;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 36:case 11:{waa(X,k,l);h=ub;f=X;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 37:case 12:{Qaa(Y,k,l);h=ub;f=Y;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 38:case 13:{Gca(Z,k,l);h=ub;f=Z;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 39:case 14:{yca(_,k,l);h=ub;f=_;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 70:case 57:case 40:case 15:{PU($,k,l);h=ub;f=$;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 71:case 58:case 41:case 16:{OU(aa,k,l);h=ub;f=aa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 42:case 17:{lba(ba,k,l);h=ub;f=ba;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 43:case 18:{maa(ca,k,l);h=ub;f=ca;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 44:case 19:{eba(da,k,l);h=ub;f=da;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 45:case 20:{_9(ea,k,l);h=ub;f=ea;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 46:case 21:{mba(fa,k,l);h=ub;f=fa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 47:case 22:{naa(ga,k,l);h=ub;f=ga;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 48:case 23:{fba(ha,k,l);h=ub;f=ha;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 49:case 24:{$9(ia,k,l);h=ub;f=ia;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 72:case 59:{pma(ja,k,l);h=ub;f=ja;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 73:case 60:{dma(ka,k,l);h=ub;f=ka;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 74:case 61:{qma(la,k,l);h=ub;f=la;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 75:case 62:{ema(na,k,l);h=ub;f=na;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 67:case 54:{d2(oa,k,l);h=ub;f=oa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 68:case 55:{Po(pa,k,l);h=ub;f=pa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 69:case 56:{Qo(qa,k,l);h=ub;f=qa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 76:{J8a(ra,k,l);h=ub;f=ra;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 77:{I8a(sa,k,l);h=ub;f=sa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 78:{M7a(ta,k,l);h=ub;f=ta;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 79:{L7a(ua,k,l);h=ub;f=ua;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 80:{Q7a(va,k,l);h=ub;f=va;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 81:{P7a(wa,k,l);h=ub;f=wa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 82:{O7a(xa,k,l);h=ub;f=xa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 83:{N7a(ya,k,l);h=ub;f=ya;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 84:{S7a(za,k,l);h=ub;f=za;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 85:{R7a(Aa,k,l);h=ub;f=Aa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 86:{k9a(Ba,k,l);h=ub;f=Ba;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 87:{j9a(Ca,k,l);h=ub;f=Ca;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 88:{e8a(Da,k,l);h=ub;f=Da;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 89:{d8a(Ea,k,l);h=ub;f=Ea;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 90:{i8a(Fa,k,l);h=ub;f=Fa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 91:{h8a(Ga,k,l);h=ub;f=Ga;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 92:{g8a(Ha,k,l);h=ub;f=Ha;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 93:{f8a(Ia,k,l);h=ub;f=Ia;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 94:{k8a(Ja,k,l);h=ub;f=Ja;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 95:{j8a(Ka,k,l);h=ub;f=Ka;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 96:{_9a(La,k,l);h=ub;f=La;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 97:{P9a(Ma,k,l);h=ub;f=Ma;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 98:{A8a(Na,k,l);h=ub;f=Na;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 99:{z8a(Oa,k,l);h=ub;f=Oa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 100:{E8a(Qa,k,l);h=ub;f=Qa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 101:{D8a(Ra,k,l);h=ub;f=Ra;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 102:{C8a(Sa,k,l);h=ub;f=Sa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 103:{B8a(Ta,k,l);h=ub;f=Ta;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 104:{G8a(Ua,k,l);h=ub;f=Ua;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 105:{F8a(Va,k,l);h=ub;f=Va;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 106:{aab(Wa,k,l);h=ub;f=Wa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 107:{R9a(Xa,k,l);h=ub;f=Xa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 108:{T9a(Ya,k,l);h=ub;f=Ya;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 109:{X9a(Za,k,l);h=ub;f=Za;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 110:{V9a($a,k,l);h=ub;f=$a;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 111:{Z9a(ab,k,l);h=ub;f=ab;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 112:{$9a(bb,k,l);h=ub;f=bb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 113:{Q9a(cb,k,l);h=ub;f=cb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 114:{S9a(db,k,l);h=ub;f=db;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 115:{W9a(eb,k,l);h=ub;f=eb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 116:{U9a(fb,k,l);h=ub;f=fb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 117:{Y9a(gb,k,l);h=ub;f=gb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 118:{bab(hb,k,l);h=ub;f=hb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 119:{Eab(ib,k,l);h=ub;f=ib;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 120:{O9a(kb,k,l);h=ub;f=kb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 121:{H8a(lb,k,l);h=ub;f=lb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 122:{j5a(mb,k,l);h=ub;f=mb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 123:{i5a(nb,k,l);h=ub;f=nb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 124:{x8a(ob,k,l);h=ub;f=ob;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 125:{h5a(pb,k,l);h=ub;f=pb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 126:{g5a(qb,k,l);h=ub;f=qb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 127:{y8a(rb,k,l);h=ub;f=rb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 128:{i9a(sb,k,l);h=ub;f=sb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 129:{_4a(tb,k,l);h=ub;f=tb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 130:{Z4a(m,k,l);h=ub;f=m;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 131:{f9a(n,k,l);h=ub;f=n;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 132:{Y4a(o,k,l);h=ub;f=o;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 133:{X4a(p,k,l);h=ub;f=p;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 134:{h9a(q,k,l);h=ub;f=q;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 135:{L9a(r,k,l);h=ub;f=r;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 136:{x9a(s,k,l);h=ub;f=s;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 137:{B9a(t,k,l);h=ub;f=t;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 138:{K9a(u,k,l);h=ub;f=u;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 139:{w9a(v,k,l);h=ub;f=v;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 140:{N9a(x,k,l);h=ub;f=x;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 141:{z9a(y,k,l);h=ub;f=y;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 142:{D9a(z,k,l);h=ub;f=z;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 143:{J9a(A,k,l);h=ub;f=A;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 144:{F9a(B,k,l);h=ub;f=B;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 145:{H9a(C,k,l);h=ub;f=C;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 146:{M9a(D,k,l);h=ub;f=D;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 147:{y9a(E,k,l);h=ub;f=E;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 148:{C9a(F,k,l);h=ub;f=F;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 149:{I9a(G,k,l);h=ub;f=G;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 150:{E9a(I,k,l);h=ub;f=I;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 151:{G9a(J,k,l);h=ub;f=J;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 152:{ma(141129,96854,542,131297);break}default:ma(141129,96854,544,131297)}while(0)}function ec(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,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,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,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;vb=yb;yb=yb+2896|0;ub=vb+2872|0;h=vb+2840|0;k=vb+2816|0;i=vb+2784|0;l=vb+2760|0;Pa=vb+2736|0;_a=vb+2712|0;jb=vb+2688|0;f=vb+2664|0;w=vb+2640|0;H=vb+2616|0;K=vb+2592|0;L=vb+2568|0;M=vb+2544|0;N=vb+2520|0;O=vb+2496|0;Q=vb+2472|0;R=vb+2448|0;S=vb+2424|0;T=vb+2400|0;U=vb+2376|0;V=vb+2352|0;W=vb+2328|0;X=vb+2304|0;Y=vb+2280|0;Z=vb+2256|0;_=vb+2232|0;$=vb+2208|0;aa=vb+2184|0;ba=vb+2160|0;ca=vb+2136|0;da=vb+2112|0;ea=vb+2088|0;fa=vb+2064|0;ga=vb+2040|0;ha=vb+2016|0;ia=vb+1992|0;ja=vb+1968|0;ka=vb+1944|0;la=vb+1920|0;na=vb+1896|0;oa=vb+1872|0;pa=vb+1848|0;qa=vb+1824|0;ra=vb+1800|0;sa=vb+1776|0;ta=vb+1752|0;ua=vb+1728|0;va=vb+1704|0;wa=vb+1680|0;xa=vb+1656|0;ya=vb+1632|0;za=vb+1608|0;Aa=vb+1584|0;Ba=vb+1560|0;Ca=vb+1536|0;Da=vb+1512|0;Ea=vb+1488|0;Fa=vb+1464|0;Ga=vb+1440|0;Ha=vb+1416|0;Ia=vb+1392|0;Ja=vb+1368|0;Ka=vb+1344|0;La=vb+1320|0;Ma=vb+1296|0;Na=vb+1272|0;Oa=vb+1248|0;Qa=vb+1224|0;Ra=vb+1200|0;Sa=vb+1176|0;Ta=vb+1152|0;Ua=vb+1128|0;Va=vb+1104|0;Wa=vb+1080|0;Xa=vb+1056|0;Ya=vb+1032|0;Za=vb+1008|0;$a=vb+984|0;ab=vb+960|0;bb=vb+936|0;cb=vb+912|0;db=vb+888|0;eb=vb+864|0;fb=vb+840|0;gb=vb+816|0;hb=vb+792|0;ib=vb+768|0;kb=vb+744|0;lb=vb+720|0;mb=vb+696|0;nb=vb+672|0;ob=vb+648|0;pb=vb+624|0;qb=vb+600|0;rb=vb+576|0;sb=vb+552|0;tb=vb+528|0;m=vb+504|0;n=vb+480|0;o=vb+456|0;p=vb+432|0;q=vb+408|0;r=vb+384|0;s=vb+360|0;t=vb+336|0;u=vb+312|0;v=vb+288|0;x=vb+264|0;y=vb+240|0;z=vb+216|0;A=vb+192|0;B=vb+168|0;C=vb+144|0;D=vb+120|0;E=vb+96|0;F=vb+72|0;G=vb+48|0;I=vb+24|0;J=vb;g=e+12|0;nz(h,d,c[g>>2]|0);if(lsb(h)|0){c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];c[b+28>>2]=c[h+28>>2];yb=vb;return}c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];c[k+12>>2]=c[h+12>>2];c[k+16>>2]=c[h+16>>2];c[k+20>>2]=c[h+20>>2];j=e+16|0;nz(i,d,c[j>>2]|0);c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];c[h+16>>2]=c[i+16>>2];c[h+20>>2]=c[i+20>>2];c[h+24>>2]=c[i+24>>2];if(lsb(h)|0){c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];c[b+28>>2]=c[h+28>>2];yb=vb;return}c[l>>2]=c[h>>2];c[l+4>>2]=c[h+4>>2];c[l+8>>2]=c[h+8>>2];c[l+12>>2]=c[h+12>>2];c[l+16>>2]=c[h+16>>2];c[l+20>>2]=c[h+20>>2];g=c[(c[g>>2]|0)+4>>2]|0;if(vub(g)|0?(c[k+16>>2]|0)!=(g|0):0)ma(96903,96854,352,131297);g=c[(c[j>>2]|0)+4>>2]|0;if(vub(g)|0?(c[l+16>>2]|0)!=(g|0):0)ma(96975,96854,353,131297);do switch(c[e+8>>2]|0){case 63:case 50:case 25:case 0:{TU(Pa,k,l);h=ub;f=Pa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 64:case 51:case 26:case 1:{EU(_a,k,l);h=ub;f=_a;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 65:case 52:case 27:case 2:{zU(jb,k,l);h=ub;f=jb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 3:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97050);if((Wsa(k)|0)==-2147483648&(P()|0)==-1?(tb=Wsa(l)|0,(tb|0)==-1&(P()|0)==-1):0)Sb[c[c[d>>2]>>2]&8191](d,97065);Lia(f,k,l);h=ub;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 4:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97084);Lga(w,k,l);h=ub;f=w;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 5:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97099);if((Wsa(k)|0)==-2147483648&(P()|0)==-1?(tb=Wsa(l)|0,(tb|0)==-1&(P()|0)==-1):0){Bqb(H,0);h=ub;f=H;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}Kia(K,k,l);h=ub;f=K;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 6:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97114);Kga(L,k,l);h=ub;f=L;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 28:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97129);if((Wsa(k)|0)==0&(P()|0)==-2147483648?(tb=Wsa(l)|0,(tb|0)==-1&(P()|0)==-1):0)Sb[c[c[d>>2]>>2]&8191](d,97144);Lia(M,k,l);h=ub;f=M;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 29:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97163);Lga(N,k,l);h=ub;f=N;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 30:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97178);if((Wsa(k)|0)==0&(P()|0)==-2147483648?(tb=Wsa(l)|0,(tb|0)==-1&(P()|0)==-1):0){Heb(O,0,0);h=ub;f=O;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}Kia(Q,k,l);h=ub;f=Q;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 31:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97193);Kga(R,k,l);h=ub;f=R;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 66:case 53:{ts(S,k,l);h=ub;f=S;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 32:case 7:{yqa(T,k,l);h=ub;f=T;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 33:case 8:{Gqa(U,k,l);h=ub;f=U;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 34:case 9:{xqa(V,k,l);h=ub;f=V;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 35:case 10:{dba(W,k,l);h=ub;f=W;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 36:case 11:{waa(X,k,l);h=ub;f=X;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 37:case 12:{Qaa(Y,k,l);h=ub;f=Y;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 38:case 13:{Gca(Z,k,l);h=ub;f=Z;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 39:case 14:{yca(_,k,l);h=ub;f=_;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 70:case 57:case 40:case 15:{PU($,k,l);h=ub;f=$;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 71:case 58:case 41:case 16:{OU(aa,k,l);h=ub;f=aa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 42:case 17:{lba(ba,k,l);h=ub;f=ba;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 43:case 18:{maa(ca,k,l);h=ub;f=ca;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 44:case 19:{eba(da,k,l);h=ub;f=da;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 45:case 20:{_9(ea,k,l);h=ub;f=ea;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 46:case 21:{mba(fa,k,l);h=ub;f=fa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 47:case 22:{naa(ga,k,l);h=ub;f=ga;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 48:case 23:{fba(ha,k,l);h=ub;f=ha;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 49:case 24:{$9(ia,k,l);h=ub;f=ia;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 72:case 59:{pma(ja,k,l);h=ub;f=ja;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 73:case 60:{dma(ka,k,l);h=ub;f=ka;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 74:case 61:{qma(la,k,l);h=ub;f=la;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 75:case 62:{ema(na,k,l);h=ub;f=na;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 67:case 54:{d2(oa,k,l);h=ub;f=oa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 68:case 55:{Po(pa,k,l);h=ub;f=pa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 69:case 56:{Qo(qa,k,l);h=ub;f=qa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 76:{J8a(ra,k,l);h=ub;f=ra;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 77:{I8a(sa,k,l);h=ub;f=sa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 78:{M7a(ta,k,l);h=ub;f=ta;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 79:{L7a(ua,k,l);h=ub;f=ua;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 80:{Q7a(va,k,l);h=ub;f=va;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 81:{P7a(wa,k,l);h=ub;f=wa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 82:{O7a(xa,k,l);h=ub;f=xa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 83:{N7a(ya,k,l);h=ub;f=ya;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 84:{S7a(za,k,l);h=ub;f=za;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 85:{R7a(Aa,k,l);h=ub;f=Aa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 86:{k9a(Ba,k,l);h=ub;f=Ba;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 87:{j9a(Ca,k,l);h=ub;f=Ca;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 88:{e8a(Da,k,l);h=ub;f=Da;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 89:{d8a(Ea,k,l);h=ub;f=Ea;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 90:{i8a(Fa,k,l);h=ub;f=Fa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 91:{h8a(Ga,k,l);h=ub;f=Ga;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 92:{g8a(Ha,k,l);h=ub;f=Ha;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 93:{f8a(Ia,k,l);h=ub;f=Ia;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 94:{k8a(Ja,k,l);h=ub;f=Ja;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 95:{j8a(Ka,k,l);h=ub;f=Ka;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 96:{_9a(La,k,l);h=ub;f=La;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 97:{P9a(Ma,k,l);h=ub;f=Ma;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 98:{A8a(Na,k,l);h=ub;f=Na;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 99:{z8a(Oa,k,l);h=ub;f=Oa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 100:{E8a(Qa,k,l);h=ub;f=Qa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 101:{D8a(Ra,k,l);h=ub;f=Ra;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 102:{C8a(Sa,k,l);h=ub;f=Sa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 103:{B8a(Ta,k,l);h=ub;f=Ta;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 104:{G8a(Ua,k,l);h=ub;f=Ua;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 105:{F8a(Va,k,l);h=ub;f=Va;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 106:{aab(Wa,k,l);h=ub;f=Wa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 107:{R9a(Xa,k,l);h=ub;f=Xa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 108:{T9a(Ya,k,l);h=ub;f=Ya;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 109:{X9a(Za,k,l);h=ub;f=Za;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 110:{V9a($a,k,l);h=ub;f=$a;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 111:{Z9a(ab,k,l);h=ub;f=ab;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 112:{$9a(bb,k,l);h=ub;f=bb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 113:{Q9a(cb,k,l);h=ub;f=cb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 114:{S9a(db,k,l);h=ub;f=db;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 115:{W9a(eb,k,l);h=ub;f=eb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 116:{U9a(fb,k,l);h=ub;f=fb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 117:{Y9a(gb,k,l);h=ub;f=gb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 118:{bab(hb,k,l);h=ub;f=hb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 119:{Eab(ib,k,l);h=ub;f=ib;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 120:{O9a(kb,k,l);h=ub;f=kb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 121:{H8a(lb,k,l);h=ub;f=lb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 122:{j5a(mb,k,l);h=ub;f=mb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 123:{i5a(nb,k,l);h=ub;f=nb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 124:{x8a(ob,k,l);h=ub;f=ob;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 125:{h5a(pb,k,l);h=ub;f=pb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 126:{g5a(qb,k,l);h=ub;f=qb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 127:{y8a(rb,k,l);h=ub;f=rb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 128:{i9a(sb,k,l);h=ub;f=sb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 129:{_4a(tb,k,l);h=ub;f=tb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 130:{Z4a(m,k,l);h=ub;f=m;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 131:{f9a(n,k,l);h=ub;f=n;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 132:{Y4a(o,k,l);h=ub;f=o;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 133:{X4a(p,k,l);h=ub;f=p;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 134:{h9a(q,k,l);h=ub;f=q;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 135:{L9a(r,k,l);h=ub;f=r;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 136:{x9a(s,k,l);h=ub;f=s;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 137:{B9a(t,k,l);h=ub;f=t;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 138:{K9a(u,k,l);h=ub;f=u;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 139:{w9a(v,k,l);h=ub;f=v;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 140:{N9a(x,k,l);h=ub;f=x;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 141:{z9a(y,k,l);h=ub;f=y;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 142:{D9a(z,k,l);h=ub;f=z;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 143:{J9a(A,k,l);h=ub;f=A;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 144:{F9a(B,k,l);h=ub;f=B;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 145:{H9a(C,k,l);h=ub;f=C;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 146:{M9a(D,k,l);h=ub;f=D;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 147:{y9a(E,k,l);h=ub;f=E;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 148:{C9a(F,k,l);h=ub;f=F;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 149:{I9a(G,k,l);h=ub;f=G;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 150:{E9a(I,k,l);h=ub;f=I;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 151:{G9a(J,k,l);h=ub;f=J;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 152:{ma(141129,96854,542,131297);break}default:ma(141129,96854,544,131297)}while(0)}function fc(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,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,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,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;vb=yb;yb=yb+2896|0;ub=vb+2872|0;h=vb+2840|0;k=vb+2816|0;i=vb+2784|0;l=vb+2760|0;Pa=vb+2736|0;_a=vb+2712|0;jb=vb+2688|0;f=vb+2664|0;w=vb+2640|0;H=vb+2616|0;K=vb+2592|0;L=vb+2568|0;M=vb+2544|0;N=vb+2520|0;O=vb+2496|0;Q=vb+2472|0;R=vb+2448|0;S=vb+2424|0;T=vb+2400|0;U=vb+2376|0;V=vb+2352|0;W=vb+2328|0;X=vb+2304|0;Y=vb+2280|0;Z=vb+2256|0;_=vb+2232|0;$=vb+2208|0;aa=vb+2184|0;ba=vb+2160|0;ca=vb+2136|0;da=vb+2112|0;ea=vb+2088|0;fa=vb+2064|0;ga=vb+2040|0;ha=vb+2016|0;ia=vb+1992|0;ja=vb+1968|0;ka=vb+1944|0;la=vb+1920|0;na=vb+1896|0;oa=vb+1872|0;pa=vb+1848|0;qa=vb+1824|0;ra=vb+1800|0;sa=vb+1776|0;ta=vb+1752|0;ua=vb+1728|0;va=vb+1704|0;wa=vb+1680|0;xa=vb+1656|0;ya=vb+1632|0;za=vb+1608|0;Aa=vb+1584|0;Ba=vb+1560|0;Ca=vb+1536|0;Da=vb+1512|0;Ea=vb+1488|0;Fa=vb+1464|0;Ga=vb+1440|0;Ha=vb+1416|0;Ia=vb+1392|0;Ja=vb+1368|0;Ka=vb+1344|0;La=vb+1320|0;Ma=vb+1296|0;Na=vb+1272|0;Oa=vb+1248|0;Qa=vb+1224|0;Ra=vb+1200|0;Sa=vb+1176|0;Ta=vb+1152|0;Ua=vb+1128|0;Va=vb+1104|0;Wa=vb+1080|0;Xa=vb+1056|0;Ya=vb+1032|0;Za=vb+1008|0;$a=vb+984|0;ab=vb+960|0;bb=vb+936|0;cb=vb+912|0;db=vb+888|0;eb=vb+864|0;fb=vb+840|0;gb=vb+816|0;hb=vb+792|0;ib=vb+768|0;kb=vb+744|0;lb=vb+720|0;mb=vb+696|0;nb=vb+672|0;ob=vb+648|0;pb=vb+624|0;qb=vb+600|0;rb=vb+576|0;sb=vb+552|0;tb=vb+528|0;m=vb+504|0;n=vb+480|0;o=vb+456|0;p=vb+432|0;q=vb+408|0;r=vb+384|0;s=vb+360|0;t=vb+336|0;u=vb+312|0;v=vb+288|0;x=vb+264|0;y=vb+240|0;z=vb+216|0;A=vb+192|0;B=vb+168|0;C=vb+144|0;D=vb+120|0;E=vb+96|0;F=vb+72|0;G=vb+48|0;I=vb+24|0;J=vb;g=e+12|0;AB(h,d,c[g>>2]|0);if(lsb(h)|0){c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];c[b+28>>2]=c[h+28>>2];yb=vb;return}c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];c[k+12>>2]=c[h+12>>2];c[k+16>>2]=c[h+16>>2];c[k+20>>2]=c[h+20>>2];j=e+16|0;AB(i,d,c[j>>2]|0);c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];c[h+16>>2]=c[i+16>>2];c[h+20>>2]=c[i+20>>2];c[h+24>>2]=c[i+24>>2];if(lsb(h)|0){c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];c[b+28>>2]=c[h+28>>2];yb=vb;return}c[l>>2]=c[h>>2];c[l+4>>2]=c[h+4>>2];c[l+8>>2]=c[h+8>>2];c[l+12>>2]=c[h+12>>2];c[l+16>>2]=c[h+16>>2];c[l+20>>2]=c[h+20>>2];g=c[(c[g>>2]|0)+4>>2]|0;if(vub(g)|0?(c[k+16>>2]|0)!=(g|0):0)ma(96903,96854,352,131297);g=c[(c[j>>2]|0)+4>>2]|0;if(vub(g)|0?(c[l+16>>2]|0)!=(g|0):0)ma(96975,96854,353,131297);do switch(c[e+8>>2]|0){case 63:case 50:case 25:case 0:{TU(Pa,k,l);h=ub;f=Pa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 64:case 51:case 26:case 1:{EU(_a,k,l);h=ub;f=_a;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 65:case 52:case 27:case 2:{zU(jb,k,l);h=ub;f=jb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 3:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97050);if((Wsa(k)|0)==-2147483648&(P()|0)==-1?(tb=Wsa(l)|0,(tb|0)==-1&(P()|0)==-1):0)Sb[c[c[d>>2]>>2]&8191](d,97065);Lia(f,k,l);h=ub;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 4:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97084);Lga(w,k,l);h=ub;f=w;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 5:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97099);if((Wsa(k)|0)==-2147483648&(P()|0)==-1?(tb=Wsa(l)|0,(tb|0)==-1&(P()|0)==-1):0){Bqb(H,0);h=ub;f=H;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}Kia(K,k,l);h=ub;f=K;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 6:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97114);Kga(L,k,l);h=ub;f=L;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 28:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97129);if((Wsa(k)|0)==0&(P()|0)==-2147483648?(tb=Wsa(l)|0,(tb|0)==-1&(P()|0)==-1):0)Sb[c[c[d>>2]>>2]&8191](d,97144);Lia(M,k,l);h=ub;f=M;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 29:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97163);Lga(N,k,l);h=ub;f=N;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 30:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97178);if((Wsa(k)|0)==0&(P()|0)==-2147483648?(tb=Wsa(l)|0,(tb|0)==-1&(P()|0)==-1):0){Heb(O,0,0);h=ub;f=O;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}Kia(Q,k,l);h=ub;f=Q;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 31:{if((Wsa(l)|0)==0&(P()|0)==0)Sb[c[c[d>>2]>>2]&8191](d,97193);Kga(R,k,l);h=ub;f=R;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 66:case 53:{ts(S,k,l);h=ub;f=S;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 32:case 7:{yqa(T,k,l);h=ub;f=T;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 33:case 8:{Gqa(U,k,l);h=ub;f=U;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 34:case 9:{xqa(V,k,l);h=ub;f=V;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 35:case 10:{dba(W,k,l);h=ub;f=W;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 36:case 11:{waa(X,k,l);h=ub;f=X;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 37:case 12:{Qaa(Y,k,l);h=ub;f=Y;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 38:case 13:{Gca(Z,k,l);h=ub;f=Z;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 39:case 14:{yca(_,k,l);h=ub;f=_;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 70:case 57:case 40:case 15:{PU($,k,l);h=ub;f=$;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 71:case 58:case 41:case 16:{OU(aa,k,l);h=ub;f=aa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 42:case 17:{lba(ba,k,l);h=ub;f=ba;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 43:case 18:{maa(ca,k,l);h=ub;f=ca;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 44:case 19:{eba(da,k,l);h=ub;f=da;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 45:case 20:{_9(ea,k,l);h=ub;f=ea;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 46:case 21:{mba(fa,k,l);h=ub;f=fa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 47:case 22:{naa(ga,k,l);h=ub;f=ga;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 48:case 23:{fba(ha,k,l);h=ub;f=ha;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 49:case 24:{$9(ia,k,l);h=ub;f=ia;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 72:case 59:{pma(ja,k,l);h=ub;f=ja;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 73:case 60:{dma(ka,k,l);h=ub;f=ka;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 74:case 61:{qma(la,k,l);h=ub;f=la;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 75:case 62:{ema(na,k,l);h=ub;f=na;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 67:case 54:{d2(oa,k,l);h=ub;f=oa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 68:case 55:{Po(pa,k,l);h=ub;f=pa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 69:case 56:{Qo(qa,k,l);h=ub;f=qa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 76:{J8a(ra,k,l);h=ub;f=ra;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 77:{I8a(sa,k,l);h=ub;f=sa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 78:{M7a(ta,k,l);h=ub;f=ta;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 79:{L7a(ua,k,l);h=ub;f=ua;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 80:{Q7a(va,k,l);h=ub;f=va;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 81:{P7a(wa,k,l);h=ub;f=wa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 82:{O7a(xa,k,l);h=ub;f=xa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 83:{N7a(ya,k,l);h=ub;f=ya;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 84:{S7a(za,k,l);h=ub;f=za;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 85:{R7a(Aa,k,l);h=ub;f=Aa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 86:{k9a(Ba,k,l);h=ub;f=Ba;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 87:{j9a(Ca,k,l);h=ub;f=Ca;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 88:{e8a(Da,k,l);h=ub;f=Da;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 89:{d8a(Ea,k,l);h=ub;f=Ea;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 90:{i8a(Fa,k,l);h=ub;f=Fa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 91:{h8a(Ga,k,l);h=ub;f=Ga;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 92:{g8a(Ha,k,l);h=ub;f=Ha;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 93:{f8a(Ia,k,l);h=ub;f=Ia;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 94:{k8a(Ja,k,l);h=ub;f=Ja;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 95:{j8a(Ka,k,l);h=ub;f=Ka;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 96:{_9a(La,k,l);h=ub;f=La;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 97:{P9a(Ma,k,l);h=ub;f=Ma;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 98:{A8a(Na,k,l);h=ub;f=Na;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 99:{z8a(Oa,k,l);h=ub;f=Oa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 100:{E8a(Qa,k,l);h=ub;f=Qa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 101:{D8a(Ra,k,l);h=ub;f=Ra;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 102:{C8a(Sa,k,l);h=ub;f=Sa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 103:{B8a(Ta,k,l);h=ub;f=Ta;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 104:{G8a(Ua,k,l);h=ub;f=Ua;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 105:{F8a(Va,k,l);h=ub;f=Va;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 106:{aab(Wa,k,l);h=ub;f=Wa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 107:{R9a(Xa,k,l);h=ub;f=Xa;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 108:{T9a(Ya,k,l);h=ub;f=Ya;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 109:{X9a(Za,k,l);h=ub;f=Za;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 110:{V9a($a,k,l);h=ub;f=$a;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 111:{Z9a(ab,k,l);h=ub;f=ab;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 112:{$9a(bb,k,l);h=ub;f=bb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 113:{Q9a(cb,k,l);h=ub;f=cb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 114:{S9a(db,k,l);h=ub;f=db;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 115:{W9a(eb,k,l);h=ub;f=eb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 116:{U9a(fb,k,l);h=ub;f=fb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 117:{Y9a(gb,k,l);h=ub;f=gb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 118:{bab(hb,k,l);h=ub;f=hb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 119:{Eab(ib,k,l);h=ub;f=ib;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 120:{O9a(kb,k,l);h=ub;f=kb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 121:{H8a(lb,k,l);h=ub;f=lb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 122:{j5a(mb,k,l);h=ub;f=mb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 123:{i5a(nb,k,l);h=ub;f=nb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 124:{x8a(ob,k,l);h=ub;f=ob;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 125:{h5a(pb,k,l);h=ub;f=pb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 126:{g5a(qb,k,l);h=ub;f=qb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 127:{y8a(rb,k,l);h=ub;f=rb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 128:{i9a(sb,k,l);h=ub;f=sb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 129:{_4a(tb,k,l);h=ub;f=tb;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 130:{Z4a(m,k,l);h=ub;f=m;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 131:{f9a(n,k,l);h=ub;f=n;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 132:{Y4a(o,k,l);h=ub;f=o;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 133:{X4a(p,k,l);h=ub;f=p;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 134:{h9a(q,k,l);h=ub;f=q;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 135:{L9a(r,k,l);h=ub;f=r;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 136:{x9a(s,k,l);h=ub;f=s;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 137:{B9a(t,k,l);h=ub;f=t;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 138:{K9a(u,k,l);h=ub;f=u;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 139:{w9a(v,k,l);h=ub;f=v;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 140:{N9a(x,k,l);h=ub;f=x;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 141:{z9a(y,k,l);h=ub;f=y;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 142:{D9a(z,k,l);h=ub;f=z;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 143:{J9a(A,k,l);h=ub;f=A;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 144:{F9a(B,k,l);h=ub;f=B;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 145:{H9a(C,k,l);h=ub;f=C;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 146:{M9a(D,k,l);h=ub;f=D;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 147:{y9a(E,k,l);h=ub;f=E;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 148:{C9a(F,k,l);h=ub;f=F;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 149:{I9a(G,k,l);h=ub;f=G;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 150:{E9a(I,k,l);h=ub;f=I;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 151:{G9a(J,k,l);h=ub;f=J;g=h+24|0;do{a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0}while((h|0)<(g|0));Wza(b,ub);yb=vb;return}case 152:{ma(141129,96854,542,131297);break}default:ma(141129,96854,544,131297)}while(0)}function gc(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,o=0,p=0,q=0,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,Q=0,R=0,T=0,W=0,X=0,Y=0,Z=0,_=0;T=yb;yb=yb+224|0;s=T+212|0;r=T+208|0;L=T+204|0;N=T+200|0;W=T+188|0;X=T+176|0;O=T+168|0;Y=T+156|0;Z=T+144|0;t=T+124|0;u=T+120|0;v=T+112|0;w=T+104|0;x=T+100|0;y=T+96|0;z=T+92|0;A=T+88|0;B=T+84|0;C=T+80|0;D=T+76|0;E=T+72|0;F=T+68|0;Q=T+56|0;G=T+48|0;H=T+40|0;I=T+36|0;R=T+24|0;J=T+16|0;K=T+8|0;M=T;c[L>>2]=b;c[N>>2]=d;c[W>>2]=0;c[W+4>>2]=0;c[W+8>>2]=0;yib(X);esb(O);c[Y>>2]=0;m=Y+4|0;c[m>>2]=0;o=Y+8|0;c[o>>2]=0;c[Z>>2]=0;p=Z+4|0;c[p>>2]=0;q=Z+8|0;c[q>>2]=0;c[t>>2]=W;c[t+4>>2]=X;c[t+8>>2]=Y;c[t+12>>2]=O;c[t+16>>2]=Z;c[u>>2]=X;c[v>>2]=W;c[v+4>>2]=X;n=0;da(332,Y|0,L|0);l=n;n=0;do if(!(l&1)){b=c[p>>2]|0;if((b|0)==(c[q>>2]|0)){n=0;da(332,Z|0,N|0);l=n;n=0;if(l&1){d=11;break}l=N}else{c[b>>2]=c[N>>2];c[p>>2]=(c[p>>2]|0)+4;l=N}g=e+16|0;j=G+4|0;k=H+4|0;h=J+4|0;i=K+4|0;a:while(1){b=c[m>>2]|0;d=(b|0)==(c[Y>>2]|0);e=c[p>>2]|0;f=(e|0)==(c[Z>>2]|0);if(d|f){b=d?f:0;d=195;break}f=b+-4|0;_=c[f>>2]|0;c[L>>2]=_;c[m>>2]=f;e=e+-4|0;f=c[e>>2]|0;c[l>>2]=f;b=_;d=f;c[p>>2]=e;e=(_|0)==0;if(e^(f|0)==0){b=0;d=195;break}do if(!e){if((O|0)==(b|0)){n=0;ca(512,v|0);_=n;n=0;if(_&1){d=10;break a}else break}n=0;b=V(60,c[g>>2]|0,b|0,d|0)|0;_=n;n=0;if(_&1){d=10;break a}if(!b){b=c[L>>2]|0;d=c[b>>2]|0;if((d|0)!=(c[c[N>>2]>>2]|0)){b=0;d=195;break a}b:do switch(d|0){case 0:case 36:{d=177;break a}case 1:{n=0;b=S(231,b|0)|0;_=n;n=0;if(_&1){d=10;break a}c[w>>2]=c[b+8>>2];n=0;b=S(231,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}c[x>>2]=c[b+8>>2];n=0;c[r>>2]=c[w>>2];c[s>>2]=c[x>>2];b=V(61,t|0,r|0,s|0)|0;_=n;n=0;if(_&1){d=10;break a}if(!b){b=0;d=195;break a}n=0;b=S(231,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+16>>2]|0;n=0;d=S(231,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((WCb(b)|0)!=(WCb(c[d+16>>2]|0)|0)){b=0;d=195;break a}break}case 3:{n=0;b=S(238,b|0)|0;_=n;n=0;if(_&1){d=10;break a}c[y>>2]=c[b+8>>2];n=0;b=S(238,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}c[z>>2]=c[b+8>>2];n=0;c[r>>2]=c[y>>2];c[s>>2]=c[z>>2];b=V(61,t|0,r|0,s|0)|0;_=n;n=0;if(_&1){d=10;break a}if(!b){b=0;d=195;break a}break}case 4:{n=0;b=S(239,b|0)|0;_=n;n=0;if(_&1){d=10;break a}c[A>>2]=c[b+8>>2];n=0;b=S(239,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}c[B>>2]=c[b+8>>2];c[r>>2]=c[A>>2];c[s>>2]=c[B>>2];if(!(Z4(u,r,s)|0)){b=0;d=195;break a}break}case 5:{n=0;b=S(240,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+12>>2]|0;n=0;d=S(240,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((WCb(b)|0)!=(WCb(c[d+12>>2]|0)|0)){b=0;d=195;break a}d=0;while(1){n=0;b=S(240,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=9;break a}_=d>>>0<(WCb(c[b+12>>2]|0)|0)>>>0;b=c[L>>2]|0;if(!_)break;n=0;b=S(240,b|0)|0;_=n;n=0;if(_&1){d=9;break a}n=0;b=U(94,b+8|0,d|0)|0;_=n;n=0;if(_&1){d=9;break a}c[C>>2]=c[b>>2];n=0;b=S(240,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=9;break a}n=0;b=U(94,b+8|0,d|0)|0;_=n;n=0;if(_&1){d=9;break a}c[D>>2]=c[b>>2];c[r>>2]=c[C>>2];c[s>>2]=c[D>>2];if(!(Z4(u,r,s)|0)){b=0;d=195;break a}d=d+1|0}n=0;b=S(240,b|0)|0;_=n;n=0;if(_&1){d=10;break a}c[E>>2]=c[b+24>>2];n=0;b=S(240,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}c[F>>2]=c[b+24>>2];c[r>>2]=c[E>>2];c[s>>2]=c[F>>2];if(!(Z4(u,r,s)|0)){b=0;d=195;break a}break}case 6:{n=0;b=S(241,b|0)|0;_=n;n=0;if(_&1){d=10;break a}n=0;d=S(241,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if(cub(c[b+24>>2]|0,c[d+24>>2]|0)|0){b=0;d=195;break a}n=0;b=S(241,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+12>>2]|0;n=0;d=S(241,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}_=WCb(b)|0;if((_|0)!=(WCb(c[d+12>>2]|0)|0)){b=0;d=195;break a}break}case 7:{n=0;b=S(242,b|0)|0;_=n;n=0;if(_&1){d=10;break a}n=0;d=S(242,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if(cub(c[b+24>>2]|0,c[d+24>>2]|0)|0){b=0;d=195;break a}n=0;b=S(242,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+12>>2]|0;n=0;d=S(242,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}_=WCb(b)|0;if((_|0)!=(WCb(c[d+12>>2]|0)|0)){b=0;d=195;break a}break}case 8:{n=0;b=S(243,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+8>>2]|0;n=0;d=S(243,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b|0)!=(c[d+8>>2]|0)){b=0;d=195;break a}break}case 9:{n=0;b=S(244,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+8>>2]|0;n=0;d=S(244,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b|0)!=(c[d+8>>2]|0)){b=0;d=195;break a}n=0;b=S(244,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+4>>2]|0;n=0;d=S(244,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b|0)!=(c[d+4>>2]|0)){b=0;d=195;break a}break}case 10:{n=0;b=S(245,b|0)|0;_=n;n=0;if(_&1){d=10;break a}n=0;d=S(245,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if(cub(c[b+8>>2]|0,c[d+8>>2]|0)|0){b=0;d=195;break a}break}case 11:{n=0;b=S(246,b|0)|0;_=n;n=0;if(_&1){d=10;break a}n=0;d=S(246,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if(cub(c[b+8>>2]|0,c[d+8>>2]|0)|0){b=0;d=195;break a}break}case 12:{n=0;b=S(247,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=a[b+8>>0]|0;n=0;d=S(247,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if(b<<24>>24!=(a[d+8>>0]|0)){b=0;d=195;break a}n=0;b=S(247,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}n=0;b=S(248,b|0)|0;_=n;n=0;if(_&1){d=10;break a}do if(b){n=0;b=S(247,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}n=0;b=S(248,b|0)|0;_=n;n=0;if(_&1){d=10;break a}if(!b)break;n=0;b=S(247,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=a[b+9>>0]|0;n=0;d=S(247,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b^a[d+9>>0])&1){b=0;d=195;break a}}while(0);n=0;b=S(247,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+12>>2]|0;n=0;d=S(247,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}_=WCb(b)|0;if((_|0)!=(WCb(c[d+12>>2]|0)|0)){b=0;d=195;break a}n=0;b=S(247,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+16>>2]|0;n=0;d=S(247,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}_=WCb(b)|0;if((_|0)!=(WCb(c[d+16>>2]|0)|0)){b=0;d=195;break a}n=0;b=S(247,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=a[b+20>>0]|0;n=0;d=S(247,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b^a[d+20>>0])&1){b=0;d=195;break a}break}case 13:{n=0;b=S(249,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=a[b+8>>0]|0;n=0;d=S(249,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if(b<<24>>24!=(a[d+8>>0]|0)){b=0;d=195;break a}n=0;b=S(249,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+12>>2]|0;n=0;d=S(249,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}_=WCb(b)|0;if((_|0)!=(WCb(c[d+12>>2]|0)|0)){b=0;d=195;break a}n=0;b=S(249,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+16>>2]|0;n=0;d=S(249,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}_=WCb(b)|0;if((_|0)!=(WCb(c[d+16>>2]|0)|0)){b=0;d=195;break a}n=0;b=S(249,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+32>>2]|0;n=0;d=S(249,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b|0)!=(c[d+32>>2]|0)){b=0;d=195;break a}n=0;b=S(249,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=a[b+20>>0]|0;n=0;d=S(249,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b^a[d+20>>0])&1){b=0;d=195;break a}break}case 24:{n=0;b=S(250,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=a[b+8>>0]|0;n=0;d=S(250,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if(b<<24>>24!=(a[d+8>>0]|0)){b=0;d=195;break a}n=0;b=S(250,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+12>>2]|0;n=0;d=S(250,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}_=WCb(b)|0;if((_|0)!=(WCb(c[d+12>>2]|0)|0)){b=0;d=195;break a}break}case 23:{n=0;b=S(251,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+8>>2]|0;n=0;d=S(251,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b|0)!=(c[d+8>>2]|0)){b=0;d=195;break a}n=0;b=S(251,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=a[b+12>>0]|0;n=0;d=S(251,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if(b<<24>>24!=(a[d+12>>0]|0)){b=0;d=195;break a}n=0;b=S(251,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+16>>2]|0;n=0;d=S(251,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}_=WCb(b)|0;if((_|0)!=(WCb(c[d+16>>2]|0)|0)){b=0;d=195;break a}break}case 25:{n=0;b=S(252,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+24>>2]|0;n=0;d=S(252,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b|0)!=(c[d+24>>2]|0)){b=0;d=195;break a}break}case 27:{n=0;b=S(253,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+8>>2]|0;n=0;d=S(253,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b|0)!=(c[d+8>>2]|0)){b=0;d=195;break a}n=0;b=S(253,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=a[b+16>>0]|0;n=0;d=S(253,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if(b<<24>>24!=(a[d+16>>0]|0)){b=0;d=195;break a}break}case 28:{n=0;b=S(254,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+8>>2]|0;n=0;d=S(254,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b|0)!=(c[d+8>>2]|0)){b=0;d=195;break a}n=0;b=S(254,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=a[b+16>>0]|0;n=0;d=S(254,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if(b<<24>>24!=(a[d+16>>0]|0)){b=0;d=195;break a}break}case 29:{n=0;e=S(255,b|0)|0;_=n;n=0;if(_&1){d=10;break a}n=0;b=S(255,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}f=e+32|0;d=b+16|0;b=e+16|0;while(1){if((b|0)==(f|0))break b;if((a[b>>0]|0)!=(a[d>>0]|0)){b=0;d=195;break a}d=d+1|0;b=b+1|0}}case 31:{n=0;b=S(256,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+8>>2]|0;n=0;d=S(256,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b|0)!=(c[d+8>>2]|0)){b=0;d=195;break a}break}case 32:{n=0;b=S(257,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+8>>2]|0;n=0;d=S(257,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b|0)!=(c[d+8>>2]|0)){b=0;d=195;break a}break}case 33:{n=0;b=S(258,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+8>>2]|0;n=0;d=S(258,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b|0)!=(c[d+8>>2]|0)){b=0;d=195;break a}break}case 20:{n=0;b=S(262,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+8>>2]|0;n=0;d=S(262,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b|0)!=(c[d+8>>2]|0)){b=0;d=195;break a}n=0;b=S(262,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}n=0;d=S(262,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if(cub(c[b+12>>2]|0,c[d+12>>2]|0)|0){b=0;d=195;break a}n=0;b=S(262,c[L>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+20>>2]|0;n=0;d=S(262,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}_=WCb(b)|0;if((_|0)!=(WCb(c[d+20>>2]|0)|0)){b=0;d=195;break a}break}case 16:{n=0;b=S(261,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+8>>2]|0;n=0;d=S(261,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b|0)!=(c[d+8>>2]|0)){b=0;d=195;break a}break}case 14:{n=0;b=S(259,b|0)|0;_=n;n=0;if(_&1){d=10;break a}n=0;d=S(259,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}n=0;b=U(95,b+8|0,d+8|0)|0;_=n;n=0;if(_&1){d=10;break a}if(b){b=0;d=195;break a}break}case 15:{n=0;b=S(260,b|0)|0;_=n;n=0;if(_&1){d=10;break a}b=c[b+8>>2]|0;n=0;d=S(260,c[N>>2]|0)|0;_=n;n=0;if(_&1){d=10;break a}if((b|0)!=(c[d+8>>2]|0)){b=0;d=195;break a}break}default:{}}while(0);n=0;da(333,Q|0,c[L>>2]|0);_=n;n=0;if(_&1){d=10;break a}nrb(G,Q);jib(H,Q);e=c[H>>2]|0;f=c[k>>2]|0;while(1){b=c[G>>2]|0;d=c[j>>2]|0;if(!(dhb(b,d,e,f)|0))break;b=erb(c[b>>2]|0,d)|0;c[I>>2]=b;d=c[m>>2]|0;if((d|0)==(c[o>>2]|0)){n=0;da(332,Y|0,I|0);_=n;n=0;if(_&1){d=181;break a}}else{c[d>>2]=b;c[m>>2]=(c[m>>2]|0)+4}hob(G)}Htb(Q);n=0;da(333,R|0,c[N>>2]|0);_=n;n=0;if(_&1){d=10;break a}nrb(J,R);jib(K,R);e=c[K>>2]|0;f=c[i>>2]|0;while(1){b=c[J>>2]|0;d=c[h>>2]|0;if(!(dhb(b,d,e,f)|0))break;b=erb(c[b>>2]|0,d)|0;c[M>>2]=b;d=c[p>>2]|0;if((d|0)==(c[q>>2]|0)){n=0;da(332,Z|0,M|0);_=n;n=0;if(_&1){d=189;break a}}else{c[d>>2]=b;c[p>>2]=(c[p>>2]|0)+4}hob(J)}Htb(R)}}while(0)}if((d|0)==9){b=sa()|0;P()|0;break}else if((d|0)==10){b=sa()|0;P()|0;break}else if((d|0)==177){n=0;fa(75,141129,75057,278,75171);n=0;d=11;break}else if((d|0)==181){_=sa()|0;P()|0;Htb(Q);Vob(Z);Vob(Y);QRa(X);Vob(W);Ea(_|0)}else if((d|0)==189){_=sa()|0;P()|0;Htb(R);Vob(Z);Vob(Y);QRa(X);Vob(W);Ea(_|0)}else if((d|0)==195){Vob(Z);Vob(Y);QRa(X);Vob(W);yb=T;return b|0}}else d=11;while(0);if((d|0)==11){b=sa()|0;P()|0}_=b;Vob(Z);Vob(Y);QRa(X);Vob(W);Ea(_|0);return 0}function hc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=yb;yb=yb+32|0;g=h;a:do if((d-b|0)>1){b:do switch(a[b>>0]|0){case 97:switch(a[b+1>>0]|0){case 97:{Rfa(g,140229);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 110:case 100:{Wfa(g,140240);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 78:{Rfa(g,140250);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 83:{Wfa(g,140261);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}default:break a}case 99:switch(a[b+1>>0]|0){case 108:{Rfa(g,140271);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 109:{Wfa(g,140282);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 111:{Wfa(g,140292);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 118:{f=e+63|0;i=a[f>>0]|0;a[f>>0]=0;g=b+2|0;d=cc(g,d,e)|0;a[f>>0]=i;if((d|0)==(g|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;IGa(f+-24|0,0,140302)|0;a[e+60>>0]=1;b=d;break a}default:break a}case 100:switch(a[b+1>>0]|0){case 97:{Mfa(g,140312);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 101:{Wfa(g,140330);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 108:{Vfa(g);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 118:{Wfa(g,140340);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 86:{Rfa(g,140350);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}default:break a}case 101:switch(a[b+1>>0]|0){case 111:{Wfa(g,140361);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 79:{Rfa(g,140371);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 113:{Rfa(g,140382);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}default:break a}case 103:switch(a[b+1>>0]|0){case 101:{Rfa(g,140393);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 116:{Wfa(g,140404);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}default:break a}case 105:{if((a[b+1>>0]|0)!=120)break a;Rfa(g,140414);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 108:switch(a[b+1>>0]|0){case 101:{Rfa(g,140425);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 105:{i=b+2|0;d=Nk(i,d,e)|0;if((d|0)==(i|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;IGa(f+-24|0,0,140436)|0;b=d;break a}case 115:{Rfa(g,140448);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 83:{Qfa(g,140459);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 116:{Wfa(g,140471);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}default:break a}case 109:switch(a[b+1>>0]|0){case 105:{Wfa(g,140481);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 73:{Rfa(g,140491);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 108:{Wfa(g,140330);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 76:{Rfa(g,140502);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 109:{Rfa(g,140513);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}default:break a}case 110:switch(a[b+1>>0]|0){case 97:{Nfa(g,140524);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 101:{Rfa(g,140539);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 103:{Wfa(g,140481);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 116:{Wfa(g,140550);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 119:{Pfa(g,140560);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}default:break a}case 111:switch(a[b+1>>0]|0){case 111:{Rfa(g,140573);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 114:{Wfa(g,140584);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 82:{Rfa(g,140594);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}default:break a}case 112:switch(a[b+1>>0]|0){case 109:{Qfa(g,140605);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 108:{Wfa(g,140617);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 76:{Rfa(g,140627);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 112:{Rfa(g,140638);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 115:{Wfa(g,140617);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 116:{Rfa(g,140649);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}default:break a}case 113:{if((a[b+1>>0]|0)!=117)break a;Wfa(g,140660);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 114:switch(a[b+1>>0]|0){case 109:{Wfa(g,140670);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 77:{Rfa(g,140680);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 115:{Rfa(g,140691);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 83:{Qfa(g,140702);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);i=n;n=0;if(i&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}default:break a}case 118:{if(((a[b+1>>0]|0)+-48|0)>>>0>=10)break a;i=b+2|0;d=Nk(i,d,e)|0;if((d|0)==(i|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;IGa(f+-24|0,0,140302)|0;b=d;break a}default:break a}while(0);Ea(b|0)}while(0);yb=h;return b|0}function ic(b,e,f,g,h,i,j,k,l,m,o){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,T=0,U=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;W=yb;yb=yb+512|0;O=W+496|0;p=W;aa=W+488|0;J=W+480|0;K=W+476|0;L=W+500|0;M=W+472|0;N=W+468|0;X=W+456|0;Y=W+444|0;Z=W+432|0;_=W+420|0;$=W+408|0;Q=W+404|0;U=W+400|0;c[O>>2]=o;c[aa>>2]=p;c[aa+4>>2]=574;c[J>>2]=p;c[K>>2]=p+400;c[X>>2]=0;c[X+4>>2]=0;c[X+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[X+(o<<2)>>2]=0;o=o+1|0}c[Y>>2]=0;c[Y+4>>2]=0;c[Y+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[Y+(o<<2)>>2]=0;o=o+1|0}c[Z>>2]=0;c[Z+4>>2]=0;c[Z+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[Z+(o<<2)>>2]=0;o=o+1|0}c[_>>2]=0;c[_+4>>2]=0;c[_+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[_+(o<<2)>>2]=0;o=o+1|0}c[$>>2]=0;c[$+4>>2]=0;c[$+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[$+(o<<2)>>2]=0;o=o+1|0}n=0;ja(2,f|0,g|0,L|0,M|0,N|0,X|0,Y|0,Z|0,_|0,Q|0);R=n;n=0;a:do if(!(R&1)){c[m>>2]=c[l>>2];D=Z+8+3|0;E=Z+4|0;F=_+8+3|0;G=_+4|0;H=X+11|0;I=X+4|0;x=(h&512|0)!=0;y=Y+8+3|0;z=L+3|0;A=Y+4|0;B=$+8+3|0;C=$+4|0;R=0;w=0;o=c[Q>>2]|0;v=p;b:while(1){if(w>>>0>=4){T=264;break}g=c[b>>2]|0;do if(g){f=c[g+12>>2]|0;if((f|0)==(c[g+16>>2]|0)){n=0;g=S(c[(c[g>>2]|0)+36>>2]|0,g|0)|0;u=n;n=0;if(u&1){T=35;break b}}else g=WCb(c[f>>2]|0)|0;if(Nwb(g)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);if(e){g=c[e+12>>2]|0;if((g|0)==(c[e+16>>2]|0)){n=0;g=S(c[(c[e>>2]|0)+36>>2]|0,e|0)|0;u=n;n=0;if(u&1){T=35;break}}else g=WCb(c[g>>2]|0)|0;if(!(Nwb(g)|0)){if(!f){T=264;break}}else T=31}else T=31;if((T|0)==31){T=0;if(f){e=0;T=264;break}else e=0}c:do switch(a[L+w>>0]|0){case 1:{if((w|0)!=3){f=c[b>>2]|0;g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0)){n=0;g=S(c[(c[f>>2]|0)+36>>2]|0,f|0)|0;T=n;n=0;if(T&1){T=35;break b}}else g=WCb(c[g>>2]|0)|0;n=0;g=V(c[(c[k>>2]|0)+12>>2]|0,k|0,8192,g|0)|0;T=n;n=0;if(T&1){T=35;break b}if(!g){T=49;break b}g=c[b>>2]|0;f=g+12|0;h=c[f>>2]|0;if((h|0)==(c[g+16>>2]|0)){n=0;g=S(c[(c[g>>2]|0)+40>>2]|0,g|0)|0;T=n;n=0;if(T&1){T=35;break b}}else{c[f>>2]=h+4;g=WCb(c[h>>2]|0)|0}n=0;da(4190,$|0,g|0);T=n;n=0;if(T&1){T=35;break b}else T=51}else{f=R;g=v}break}case 0:{if((w|0)==3){f=R;g=v}else T=51;break}case 3:{p=a[D>>0]|0;g=p<<24>>24<0?c[E>>2]|0:p&255;h=a[F>>0]|0;r=h<<24>>24<0?c[G>>2]|0:h&255;if((g|0)==(0-r|0)){f=R;g=v}else{if(!g){g=c[b>>2]|0;f=c[g+12>>2]|0;if((f|0)==(c[g+16>>2]|0)){n=0;g=S(c[(c[g>>2]|0)+36>>2]|0,g|0)|0;u=n;n=0;if(u&1){T=35;break b}p=a[F>>0]|0}else{g=WCb(c[f>>2]|0)|0;p=h}if((g|0)!=(c[(p<<24>>24<0?c[_>>2]|0:_)>>2]|0)){f=R;g=v;break c}g=c[b>>2]|0;f=g+12|0;h=c[f>>2]|0;if((h|0)==(c[g+16>>2]|0)){n=0;S(c[(c[g>>2]|0)+40>>2]|0,g|0)|0;u=n;n=0;if(u&1){T=35;break b}g=a[F>>0]|0}else{c[f>>2]=h+4;g=p}a[j>>0]=1;f=(g<<24>>24<0?c[G>>2]|0:g&255)>>>0>1?_:R;g=v;break c}h=c[b>>2]|0;q=h+12|0;s=c[q>>2]|0;f=c[h+16>>2]|0;g=(s|0)==(f|0);if(!r){if(g){n=0;g=S(c[(c[h>>2]|0)+36>>2]|0,h|0)|0;u=n;n=0;if(u&1){T=35;break b}p=a[D>>0]|0}else g=WCb(c[s>>2]|0)|0;if((g|0)!=(c[(p<<24>>24<0?c[Z>>2]|0:Z)>>2]|0)){a[j>>0]=1;f=R;g=v;break c}g=c[b>>2]|0;f=g+12|0;h=c[f>>2]|0;if((h|0)==(c[g+16>>2]|0)){n=0;S(c[(c[g>>2]|0)+40>>2]|0,g|0)|0;u=n;n=0;if(u&1){T=35;break b}g=a[D>>0]|0}else{c[f>>2]=h+4;g=p}f=(g<<24>>24<0?c[E>>2]|0:g&255)>>>0>1?Z:R;g=v;break c}if(g){n=0;g=S(c[(c[h>>2]|0)+36>>2]|0,h|0)|0;u=n;n=0;if(u&1){T=35;break b}h=c[b>>2]|0;r=h+12|0;q=r;p=a[D>>0]|0;r=c[r>>2]|0;f=c[h+16>>2]|0}else{g=WCb(c[s>>2]|0)|0;r=s}f=(r|0)==(f|0);if((g|0)==(c[(p<<24>>24<0?c[Z>>2]|0:Z)>>2]|0)){if(f){n=0;S(c[(c[h>>2]|0)+40>>2]|0,h|0)|0;u=n;n=0;if(u&1){T=35;break b}g=a[D>>0]|0}else{c[q>>2]=r+4;g=p}f=(g<<24>>24<0?c[E>>2]|0:g&255)>>>0>1?Z:R;g=v;break c}if(f){n=0;g=S(c[(c[h>>2]|0)+36>>2]|0,h|0)|0;u=n;n=0;if(u&1){T=35;break b}}else g=WCb(c[r>>2]|0)|0;p=a[F>>0]|0;if((g|0)!=(c[(p<<24>>24<0?c[_>>2]|0:_)>>2]|0)){T=118;break b}g=c[b>>2]|0;f=g+12|0;h=c[f>>2]|0;if((h|0)==(c[g+16>>2]|0)){n=0;S(c[(c[g>>2]|0)+40>>2]|0,g|0)|0;u=n;n=0;if(u&1){T=35;break b}g=a[F>>0]|0}else{c[f>>2]=h+4;g=p}a[j>>0]=1;f=(g<<24>>24<0?c[G>>2]|0:g&255)>>>0>1?_:R;g=v}break}case 2:{if(w>>>0<2|(R|0)!=0){h=a[y>>0]|0;f=c[Y>>2]|0;g=h<<24>>24<0?f:Y;if(w)T=123}else{if(!(x|(w|0)==2&(a[z>>0]|0)!=0)){f=0;g=v;break c}h=a[y>>0]|0;f=c[Y>>2]|0;g=h<<24>>24<0?f:Y;T=123}d:do if((T|0)==123){T=0;if((d[L+(w+-1)>>0]|0)<2){while(1){u=h<<24>>24<0;p=g;if(((u?f:Y)+((u?c[A>>2]|0:h&255)<<2)|0)==(p|0))break;n=0;f=V(c[(c[k>>2]|0)+12>>2]|0,k|0,8192,c[p>>2]|0)|0;u=n;n=0;if(u&1){T=130;break b}if(!f){T=128;break}g=p+4|0;h=a[y>>0]|0;f=c[Y>>2]|0}if((T|0)==128){T=0;h=a[y>>0]|0;f=c[Y>>2]|0}q=h<<24>>24<0?f:Y;u=q;t=g-u>>2;s=a[B>>0]|0;p=s<<24>>24<0;r=c[C>>2]|0;s=s&255;if(t>>>0>(p?r:s)>>>0)g=u;else{r=p?(c[$>>2]|0)+(r<<2)|0:$+(s<<2)|0;p=r+(0-t<<2)|0;while(1){if((p|0)==(r|0))break d;if((c[p>>2]|0)!=(c[q>>2]|0)){g=u;break d}q=q+4|0;p=p+4|0}}}}while(0);q=e;r=g;p=e;while(1){u=h<<24>>24<0;if((r|0)==((u?f:Y)+((u?c[A>>2]|0:h&255)<<2)|0)){e=q;break}e=c[b>>2]|0;do if(e){g=c[e+12>>2]|0;if((g|0)==(c[e+16>>2]|0)){n=0;e=S(c[(c[e>>2]|0)+36>>2]|0,e|0)|0;u=n;n=0;if(u&1){T=160;break b}}else e=WCb(c[g>>2]|0)|0;if(Nwb(e)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);if(p){e=c[p+12>>2]|0;if((e|0)==(c[p+16>>2]|0)){n=0;e=S(c[(c[p>>2]|0)+36>>2]|0,p|0)|0;u=n;n=0;if(u&1){T=160;break b}}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0))if(g)e=q;else{e=q;break}else{e=0;T=150}}else{e=q;T=150}if((T|0)==150){T=0;if(g)break;else p=0}g=c[b>>2]|0;f=c[g+12>>2]|0;if((f|0)==(c[g+16>>2]|0)){n=0;g=S(c[(c[g>>2]|0)+36>>2]|0,g|0)|0;u=n;n=0;if(u&1){T=160;break b}}else g=WCb(c[f>>2]|0)|0;if((g|0)!=(c[r>>2]|0))break;g=c[b>>2]|0;f=g+12|0;h=c[f>>2]|0;if((h|0)==(c[g+16>>2]|0)){n=0;S(c[(c[g>>2]|0)+40>>2]|0,g|0)|0;u=n;n=0;if(u&1){T=161;break b}}else c[f>>2]=h+4;q=e;r=r+4|0;h=a[y>>0]|0;f=c[Y>>2]|0}if(x?(u=a[y>>0]|0,t=u<<24>>24<0,(r|0)!=((t?c[Y>>2]|0:Y)+((t?c[A>>2]|0:u&255)<<2)|0)):0){T=164;break b}else{f=R;g=v}break}case 4:{q=0;r=e;s=e;g=v;p=e;while(1){e=c[b>>2]|0;do if(e){f=c[e+12>>2]|0;if((f|0)==(c[e+16>>2]|0)){n=0;e=S(c[(c[e>>2]|0)+36>>2]|0,e|0)|0;v=n;n=0;if(v&1){T=188;break b}}else e=WCb(c[f>>2]|0)|0;if(Nwb(e)|0){c[b>>2]=0;h=1;break}else{h=(c[b>>2]|0)==0;break}}else h=1;while(0);if(s){e=c[s+12>>2]|0;if((e|0)==(c[s+16>>2]|0)){n=0;e=S(c[(c[s>>2]|0)+36>>2]|0,s|0)|0;v=n;n=0;if(v&1){T=188;break b}}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0))if(h){e=r;t=p}else{e=r;break}else{e=0;f=0;T=177}}else{e=r;f=p;T=177}if((T|0)==177){T=0;if(h){p=f;break}else{t=f;s=0}}f=c[b>>2]|0;h=c[f+12>>2]|0;if((h|0)==(c[f+16>>2]|0)){n=0;f=S(c[(c[f>>2]|0)+36>>2]|0,f|0)|0;v=n;n=0;if(v&1){T=191;break b}}else f=WCb(c[h>>2]|0)|0;n=0;h=V(c[(c[k>>2]|0)+12>>2]|0,k|0,2048,f|0)|0;v=n;n=0;if(v&1){T=191;break b}if(h){h=c[m>>2]|0;if((h|0)==(c[O>>2]|0)){n=0;ea(210,l|0,m|0,O|0);v=n;n=0;if(v&1){T=191;break b}h=c[m>>2]|0}c[m>>2]=h+4;c[h>>2]=f;q=q+1|0}else{v=a[H>>0]|0;if(!((f|0)==(c[N>>2]|0)&(q|0?((v<<24>>24<0?c[I>>2]|0:v&255)|0)!=0:0))){p=t;break}if((g|0)==(c[K>>2]|0)){n=0;ea(209,aa|0,J|0,K|0);v=n;n=0;if(v&1){T=191;break b}g=c[J>>2]|0}v=g+4|0;c[J>>2]=v;c[g>>2]=q;q=0;g=v}f=c[b>>2]|0;h=f+12|0;p=c[h>>2]|0;if((p|0)==(c[f+16>>2]|0)){n=0;S(c[(c[f>>2]|0)+40>>2]|0,f|0)|0;v=n;n=0;if(v&1){T=188;break b}}else c[h>>2]=p+4;r=e;p=t}if(q|0?(c[aa>>2]|0)!=(g|0):0){if((g|0)==(c[K>>2]|0)){n=0;ea(209,aa|0,J|0,K|0);v=n;n=0;if(v&1){T=189;break b}g=c[J>>2]|0}v=g+4|0;c[J>>2]=v;c[g>>2]=q;q=v}else q=g;e:do if((o|0)>0){g=c[b>>2]|0;do if(g){f=c[g+12>>2]|0;if((f|0)==(c[g+16>>2]|0)){n=0;g=S(c[(c[g>>2]|0)+36>>2]|0,g|0)|0;v=n;n=0;if(v&1){T=189;break b}}else g=WCb(c[f>>2]|0)|0;if(Nwb(g)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);if(p){g=c[p+12>>2]|0;if((g|0)==(c[p+16>>2]|0)){n=0;g=S(c[(c[p>>2]|0)+36>>2]|0,p|0)|0;v=n;n=0;if(v&1){T=189;break b}}else g=WCb(c[g>>2]|0)|0;if(!(Nwb(g)|0)){if(!f){T=226;break b}}else{e=0;T=220}}else T=220;if((T|0)==220){T=0;if(f){T=226;break b}else p=0}g=c[b>>2]|0;f=c[g+12>>2]|0;if((f|0)==(c[g+16>>2]|0)){n=0;g=S(c[(c[g>>2]|0)+36>>2]|0,g|0)|0;v=n;n=0;if(v&1){T=189;break b}}else g=WCb(c[f>>2]|0)|0;if((g|0)!=(c[M>>2]|0)){T=226;break b}g=c[b>>2]|0;f=g+12|0;h=c[f>>2]|0;if((h|0)==(c[g+16>>2]|0)){n=0;S(c[(c[g>>2]|0)+40>>2]|0,g|0)|0;v=n;n=0;if(v&1){T=189;break b}}else c[f>>2]=h+4;h=p;while(1){if((o|0)<=0)break e;g=c[b>>2]|0;do if(g){f=c[g+12>>2]|0;if((f|0)==(c[g+16>>2]|0)){n=0;g=S(c[(c[g>>2]|0)+36>>2]|0,g|0)|0;v=n;n=0;if(v&1){T=187;break b}}else g=WCb(c[f>>2]|0)|0;if(Nwb(g)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(h){g=c[h+12>>2]|0;if((g|0)==(c[h+16>>2]|0)){n=0;g=S(c[(c[h>>2]|0)+36>>2]|0,h|0)|0;v=n;n=0;if(v&1){T=187;break b}}else g=WCb(c[g>>2]|0)|0;if(Nwb(g)|0){e=0;T=244;break}if(f)p=h;else{T=251;break b}}else T=244;while(0);if((T|0)==244){T=0;if(f){T=251;break b}else p=0}g=c[b>>2]|0;f=c[g+12>>2]|0;if((f|0)==(c[g+16>>2]|0)){n=0;g=S(c[(c[g>>2]|0)+36>>2]|0,g|0)|0;v=n;n=0;if(v&1){T=187;break b}}else g=WCb(c[f>>2]|0)|0;n=0;g=V(c[(c[k>>2]|0)+12>>2]|0,k|0,2048,g|0)|0;v=n;n=0;if(v&1){T=187;break b}if(!g){T=251;break b}if((c[m>>2]|0)==(c[O>>2]|0)?(n=0,ea(210,l|0,m|0,O|0),v=n,n=0,v&1):0){T=187;break b}g=c[b>>2]|0;f=c[g+12>>2]|0;if((f|0)==(c[g+16>>2]|0)){n=0;g=S(c[(c[g>>2]|0)+36>>2]|0,g|0)|0;v=n;n=0;if(v&1){T=187;break b}}else g=WCb(c[f>>2]|0)|0;f=c[m>>2]|0;c[m>>2]=f+4;c[f>>2]=g;o=o+-1|0;g=c[b>>2]|0;f=g+12|0;h=c[f>>2]|0;if((h|0)==(c[g+16>>2]|0)){n=0;S(c[(c[g>>2]|0)+40>>2]|0,g|0)|0;v=n;n=0;if(v&1){T=187;break b}}else c[f>>2]=h+4;h=p}}while(0);if((c[m>>2]|0)==(c[l>>2]|0)){T=262;break b}else{f=R;g=q}break}default:{f=R;g=v}}while(0);f:do if((T|0)==51){T=0;h=e;f=e;while(1){e=c[b>>2]|0;do if(e){g=c[e+12>>2]|0;if((g|0)==(c[e+16>>2]|0)){n=0;e=S(c[(c[e>>2]|0)+36>>2]|0,e|0)|0;u=n;n=0;if(u&1){T=34;break b}}else e=WCb(c[g>>2]|0)|0;if(Nwb(e)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);if(f){e=c[f+12>>2]|0;if((e|0)==(c[f+16>>2]|0)){n=0;e=S(c[(c[f>>2]|0)+36>>2]|0,f|0)|0;u=n;n=0;if(u&1){T=34;break b}}else e=WCb(c[e>>2]|0)|0;if(!(Nwb(e)|0))if(g){e=h;p=f}else{f=R;e=h;g=v;break f}else{e=0;T=64}}else{e=h;T=64}if((T|0)==64){T=0;if(g){f=R;g=v;break f}else p=0}g=c[b>>2]|0;f=c[g+12>>2]|0;if((f|0)==(c[g+16>>2]|0)){n=0;g=S(c[(c[g>>2]|0)+36>>2]|0,g|0)|0;u=n;n=0;if(u&1){T=34;break b}}else g=WCb(c[f>>2]|0)|0;n=0;g=V(c[(c[k>>2]|0)+12>>2]|0,k|0,8192,g|0)|0;u=n;n=0;if(u&1){T=34;break b}if(!g){f=R;g=v;break f}g=c[b>>2]|0;f=g+12|0;h=c[f>>2]|0;if((h|0)==(c[g+16>>2]|0)){n=0;g=S(c[(c[g>>2]|0)+40>>2]|0,g|0)|0;u=n;n=0;if(u&1){T=34;break b}}else{c[f>>2]=h+4;g=WCb(c[h>>2]|0)|0}n=0;da(4190,$|0,g|0);u=n;n=0;if(u&1){T=34;break b}else{h=e;f=p}}}while(0);R=f;w=w+1|0;v=g}g:switch(T|0){case 34:{e=sa()|0;P()|0;T=36;break}case 35:{e=sa()|0;P()|0;T=36;break}case 49:{c[Q>>2]=o;c[i>>2]=c[i>>2]|4;e=0;T=300;break}case 118:{c[Q>>2]=o;c[i>>2]=c[i>>2]|4;e=0;T=300;break}case 130:{e=sa()|0;P()|0;c[Q>>2]=o;break a}case 160:{e=sa()|0;P()|0;c[Q>>2]=o;break a}case 161:{e=sa()|0;P()|0;c[Q>>2]=o;break a}case 164:{c[Q>>2]=o;c[i>>2]=c[i>>2]|4;e=0;T=300;break}case 187:{W=sa()|0;P()|0;c[Q>>2]=o;o=W;T=190;break}case 188:{W=sa()|0;P()|0;c[Q>>2]=o;o=W;T=190;break}case 189:{W=sa()|0;P()|0;c[Q>>2]=o;o=W;T=190;break}case 191:{e=sa()|0;P()|0;c[Q>>2]=o;break a}case 226:{c[Q>>2]=o;c[i>>2]=c[i>>2]|4;e=0;T=300;break}case 251:{c[Q>>2]=o;c[i>>2]=c[i>>2]|4;e=0;T=300;break}case 262:{c[Q>>2]=o;c[i>>2]=c[i>>2]|4;e=0;T=300;break}case 264:{c[Q>>2]=o;h:do if(R|0){p=R+8+3|0;q=R+4|0;h=1;i:while(1){o=a[p>>0]|0;if(o<<24>>24<0)o=c[q>>2]|0;else o=o&255;if(h>>>0>=o>>>0)break h;o=c[b>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0)){n=0;o=S(c[(c[o>>2]|0)+36>>2]|0,o|0)|0;Q=n;n=0;if(Q&1){T=291;break i}}else o=WCb(c[g>>2]|0)|0;if(Nwb(o)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);if(e){o=c[e+12>>2]|0;if((o|0)==(c[e+16>>2]|0)){n=0;o=S(c[(c[e>>2]|0)+36>>2]|0,e|0)|0;Q=n;n=0;if(Q&1){T=291;break}}else o=WCb(c[o>>2]|0)|0;if(!(Nwb(o)|0)){if(!g){T=290;break}}else T=282}else T=282;if((T|0)==282){T=0;if(g){T=290;break}else e=0}o=c[b>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0)){n=0;o=S(c[(c[o>>2]|0)+36>>2]|0,o|0)|0;Q=n;n=0;if(Q&1){T=291;break}}else o=WCb(c[g>>2]|0)|0;if((a[p>>0]|0)<0)g=c[R>>2]|0;else g=R;if((o|0)!=(c[g+(h<<2)>>2]|0)){T=290;break}o=c[b>>2]|0;g=o+12|0;f=c[g>>2]|0;if((f|0)==(c[o+16>>2]|0)){n=0;S(c[(c[o>>2]|0)+40>>2]|0,o|0)|0;Q=n;n=0;if(Q&1){T=291;break}}else c[g>>2]=f+4;h=h+1|0}if((T|0)==290){c[i>>2]=c[i>>2]|4;e=0;T=300;break g}else if((T|0)==291){e=sa()|0;P()|0;break a}}while(0);o=c[aa>>2]|0;if((o|0)!=(v|0)){c[U>>2]=0;aC(X,o,v,U);if(!(c[U>>2]|0)){e=1;T=300;break}else{c[i>>2]=c[i>>2]|4;e=0;T=300;break}}else{e=1;T=300}break}}if((T|0)==36){c[Q>>2]=o;break}else if((T|0)==190){e=o;break}else if((T|0)==300){bhb($);bhb(_);bhb(Z);bhb(Y);Chb(X);o=c[aa>>2]|0;c[aa>>2]=0;if(o|0?(n=0,ca(c[aa+4>>2]|0,o|0),aa=n,n=0,aa&1):0){aa=ta(0)|0;P()|0;yub(aa)}yb=W;return e|0}}else{e=sa()|0;P()|0}while(0);bhb($);bhb(_);bhb(Z);bhb(Y);Chb(X);o=c[aa>>2]|0;c[aa>>2]=0;if(o|0?(n=0,ca(c[aa+4>>2]|0,o|0),aa=n,n=0,aa&1):0){aa=ta(0)|0;P()|0;yub(aa)}Ea(e|0);return 0}function jc(e,f,g,h,i,j,k,l,m,o,p){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;V=yb;yb=yb+512|0;O=V+488|0;q=V;$=V+480|0;J=V+472|0;K=V+468|0;L=V+496|0;M=V+493|0;N=V+492|0;W=V+456|0;X=V+444|0;Y=V+432|0;Z=V+420|0;_=V+408|0;Q=V+404|0;U=V+400|0;c[O>>2]=p;c[$>>2]=q;c[$+4>>2]=574;c[J>>2]=q;c[K>>2]=q+400;c[W>>2]=0;c[W+4>>2]=0;c[W+8>>2]=0;p=0;while(1){if((p|0)==3)break;c[W+(p<<2)>>2]=0;p=p+1|0}c[X>>2]=0;c[X+4>>2]=0;c[X+8>>2]=0;p=0;while(1){if((p|0)==3)break;c[X+(p<<2)>>2]=0;p=p+1|0}c[Y>>2]=0;c[Y+4>>2]=0;c[Y+8>>2]=0;p=0;while(1){if((p|0)==3)break;c[Y+(p<<2)>>2]=0;p=p+1|0}c[Z>>2]=0;c[Z+4>>2]=0;c[Z+8>>2]=0;p=0;while(1){if((p|0)==3)break;c[Z+(p<<2)>>2]=0;p=p+1|0}c[_>>2]=0;c[_+4>>2]=0;c[_+8>>2]=0;p=0;while(1){if((p|0)==3)break;c[_+(p<<2)>>2]=0;p=p+1|0}n=0;ja(1,g|0,h|0,L|0,M|0,N|0,W|0,X|0,Y|0,Z|0,Q|0);R=n;n=0;a:do if(!(R&1)){c[o>>2]=c[m>>2];C=l+8|0;D=Y+11|0;E=Y+4|0;F=Z+11|0;G=Z+4|0;H=W+11|0;I=W+4|0;w=(i&512|0)!=0;x=X+11|0;y=L+3|0;z=X+4|0;A=_+11|0;B=_+4|0;R=0;v=0;u=q;b:while(1){if(v>>>0>=4){T=263;break}p=c[e>>2]|0;do if(p){h=c[p+12>>2]|0;if((h|0)==(c[p+16>>2]|0)){n=0;p=S(c[(c[p>>2]|0)+36>>2]|0,p|0)|0;t=n;n=0;if(t&1){T=35;break b}}else p=Qzb(a[h>>0]|0)|0;if(dub(p,-1)|0){c[e>>2]=0;h=1;break}else{h=(c[e>>2]|0)==0;break}}else h=1;while(0);if(f){p=c[f+12>>2]|0;if((p|0)==(c[f+16>>2]|0)){n=0;p=S(c[(c[f>>2]|0)+36>>2]|0,f|0)|0;t=n;n=0;if(t&1){T=35;break}}else p=Qzb(a[p>>0]|0)|0;if(!(dub(p,-1)|0)){if(!h){T=263;break}}else T=31}else T=31;if((T|0)==31){T=0;if(h){f=0;T=263;break}else f=0}c:do switch(a[L+v>>0]|0){case 1:{if((v|0)!=3){p=c[e>>2]|0;h=c[p+12>>2]|0;if((h|0)==(c[p+16>>2]|0)){n=0;p=S(c[(c[p>>2]|0)+36>>2]|0,p|0)|0;T=n;n=0;if(T&1){T=35;break b}}else p=Qzb(a[h>>0]|0)|0;if((p&255)<<24>>24<=-1){T=49;break b}if(!(b[(c[C>>2]|0)+(p<<24>>24<<1)>>1]&8192)){T=49;break b}p=c[e>>2]|0;h=p+12|0;g=c[h>>2]|0;if((g|0)==(c[p+16>>2]|0)){n=0;p=S(c[(c[p>>2]|0)+40>>2]|0,p|0)|0;T=n;n=0;if(T&1){T=35;break b}}else{c[h>>2]=g+1;p=Qzb(a[g>>0]|0)|0}n=0;da(91,_|0,p&255|0);T=n;n=0;if(T&1){T=35;break b}else T=51}else{h=R;p=u}break}case 0:{if((v|0)==3){h=R;p=u}else T=51;break}case 3:{l=a[D>>0]|0;p=l<<24>>24<0?c[E>>2]|0:l&255;g=a[F>>0]|0;q=g<<24>>24<0?c[G>>2]|0:g&255;if((p|0)==(0-q|0)){h=R;p=u}else{if(!p){p=c[e>>2]|0;h=c[p+12>>2]|0;if((h|0)==(c[p+16>>2]|0)){n=0;p=S(c[(c[p>>2]|0)+36>>2]|0,p|0)|0;t=n;n=0;if(t&1){T=35;break b}l=a[F>>0]|0}else{p=Qzb(a[h>>0]|0)|0;l=g}if((a[(l<<24>>24<0?c[Z>>2]|0:Z)>>0]|0)!=(p&255)<<24>>24){h=R;p=u;break c}p=c[e>>2]|0;h=p+12|0;g=c[h>>2]|0;if((g|0)==(c[p+16>>2]|0)){n=0;S(c[(c[p>>2]|0)+40>>2]|0,p|0)|0;t=n;n=0;if(t&1){T=35;break b}p=a[F>>0]|0}else{c[h>>2]=g+1;p=l}a[k>>0]=1;h=(p<<24>>24<0?c[G>>2]|0:p&255)>>>0>1?Z:R;p=u;break c}g=c[e>>2]|0;i=g+12|0;r=c[i>>2]|0;h=c[g+16>>2]|0;p=(r|0)==(h|0);if(!q){if(p){n=0;p=S(c[(c[g>>2]|0)+36>>2]|0,g|0)|0;t=n;n=0;if(t&1){T=35;break b}l=a[D>>0]|0}else p=Qzb(a[r>>0]|0)|0;if((a[(l<<24>>24<0?c[Y>>2]|0:Y)>>0]|0)!=(p&255)<<24>>24){a[k>>0]=1;h=R;p=u;break c}p=c[e>>2]|0;h=p+12|0;g=c[h>>2]|0;if((g|0)==(c[p+16>>2]|0)){n=0;S(c[(c[p>>2]|0)+40>>2]|0,p|0)|0;t=n;n=0;if(t&1){T=35;break b}p=a[D>>0]|0}else{c[h>>2]=g+1;p=l}h=(p<<24>>24<0?c[E>>2]|0:p&255)>>>0>1?Y:R;p=u;break c}if(p){n=0;p=S(c[(c[g>>2]|0)+36>>2]|0,g|0)|0;t=n;n=0;if(t&1){T=35;break b}g=c[e>>2]|0;q=g+12|0;i=q;l=a[D>>0]|0;q=c[q>>2]|0;h=c[g+16>>2]|0}else{p=Qzb(a[r>>0]|0)|0;q=r}h=(q|0)==(h|0);if((a[(l<<24>>24<0?c[Y>>2]|0:Y)>>0]|0)==(p&255)<<24>>24){if(h){n=0;S(c[(c[g>>2]|0)+40>>2]|0,g|0)|0;t=n;n=0;if(t&1){T=35;break b}p=a[D>>0]|0}else{c[i>>2]=q+1;p=l}h=(p<<24>>24<0?c[E>>2]|0:p&255)>>>0>1?Y:R;p=u;break c}if(h){n=0;p=S(c[(c[g>>2]|0)+36>>2]|0,g|0)|0;t=n;n=0;if(t&1){T=35;break b}}else p=Qzb(a[q>>0]|0)|0;l=a[F>>0]|0;if((a[(l<<24>>24<0?c[Z>>2]|0:Z)>>0]|0)!=(p&255)<<24>>24){T=118;break b}p=c[e>>2]|0;h=p+12|0;g=c[h>>2]|0;if((g|0)==(c[p+16>>2]|0)){n=0;S(c[(c[p>>2]|0)+40>>2]|0,p|0)|0;t=n;n=0;if(t&1){T=35;break b}p=a[F>>0]|0}else{c[h>>2]=g+1;p=l}a[k>>0]=1;h=(p<<24>>24<0?c[G>>2]|0:p&255)>>>0>1?Z:R;p=u}break}case 2:{if(v>>>0<2|(R|0)!=0){p=a[x>>0]|0;h=p<<24>>24<0;i=c[X>>2]|0;g=h?i:X;l=g;if(!v){g=l;h=i}else{t=i;T=123}}else{if(!(w|(v|0)==2&(a[y>>0]|0)!=0)){h=0;p=u;break c}p=a[x>>0]|0;h=p<<24>>24<0;t=c[X>>2]|0;l=h?t:X;g=l;T=123}d:do if((T|0)==123){T=0;if((d[L+(v+-1)>>0]|0)<2){h=g+(h?c[z>>2]|0:p&255)|0;s=l;while(1){i=s;if((h|0)==(i|0))break;q=a[i>>0]|0;if(q<<24>>24<=-1)break;if(!(b[(c[C>>2]|0)+(q<<24>>24<<1)>>1]&8192))break;s=i+1|0}h=s-l|0;q=a[A>>0]|0;r=q<<24>>24<0;i=c[B>>2]|0;q=q&255;if(h>>>0<=(r?i:q)>>>0){aa=(c[_>>2]|0)+i|0;h=0-h|0;q=_+q|0;i=r?aa:q;h=r?aa+h|0:q+h|0;while(1){if((h|0)==(i|0)){g=s;h=t;break d}if((a[h>>0]|0)!=(a[g>>0]|0)){g=l;h=t;break d}g=g+1|0;h=h+1|0}}else{g=l;h=t}}else{g=l;h=t}}while(0);i=f;q=g;l=f;while(1){aa=p<<24>>24<0;if((q|0)==((aa?h:X)+(aa?c[z>>2]|0:p&255)|0)){f=i;break}f=c[e>>2]|0;do if(f){p=c[f+12>>2]|0;if((p|0)==(c[f+16>>2]|0)){n=0;f=S(c[(c[f>>2]|0)+36>>2]|0,f|0)|0;aa=n;n=0;if(aa&1){T=158;break b}}else f=Qzb(a[p>>0]|0)|0;if(dub(f,-1)|0){c[e>>2]=0;p=1;break}else{p=(c[e>>2]|0)==0;break}}else p=1;while(0);if(l){f=c[l+12>>2]|0;if((f|0)==(c[l+16>>2]|0)){n=0;f=S(c[(c[l>>2]|0)+36>>2]|0,l|0)|0;aa=n;n=0;if(aa&1){T=158;break b}}else f=Qzb(a[f>>0]|0)|0;if(!(dub(f,-1)|0))if(p)f=i;else{f=i;break}else{f=0;T=148}}else{f=i;T=148}if((T|0)==148){T=0;if(p)break;else l=0}p=c[e>>2]|0;h=c[p+12>>2]|0;if((h|0)==(c[p+16>>2]|0)){n=0;p=S(c[(c[p>>2]|0)+36>>2]|0,p|0)|0;aa=n;n=0;if(aa&1){T=158;break b}}else p=Qzb(a[h>>0]|0)|0;if((a[q>>0]|0)!=(p&255)<<24>>24)break;p=c[e>>2]|0;h=p+12|0;g=c[h>>2]|0;if((g|0)==(c[p+16>>2]|0)){n=0;S(c[(c[p>>2]|0)+40>>2]|0,p|0)|0;aa=n;n=0;if(aa&1){T=159;break b}}else c[h>>2]=g+1;i=f;q=q+1|0;p=a[x>>0]|0;h=c[X>>2]|0}if(w?(aa=a[x>>0]|0,t=aa<<24>>24<0,(q|0)!=((t?c[X>>2]|0:X)+(t?c[z>>2]|0:aa&255)|0)):0){T=162;break b}else{h=R;p=u}break}case 4:{s=a[N>>0]|0;l=0;p=f;g=f;i=u;q=f;while(1){f=c[e>>2]|0;do if(f){h=c[f+12>>2]|0;if((h|0)==(c[f+16>>2]|0)){n=0;f=S(c[(c[f>>2]|0)+36>>2]|0,f|0)|0;aa=n;n=0;if(aa&1){T=186;break b}}else f=Qzb(a[h>>0]|0)|0;if(dub(f,-1)|0){c[e>>2]=0;h=1;break}else{h=(c[e>>2]|0)==0;break}}else h=1;while(0);if(g){f=c[g+12>>2]|0;if((f|0)==(c[g+16>>2]|0)){n=0;f=S(c[(c[g>>2]|0)+36>>2]|0,g|0)|0;aa=n;n=0;if(aa&1){T=186;break b}}else f=Qzb(a[f>>0]|0)|0;if(!(dub(f,-1)|0))if(h)r=g;else break;else{p=0;f=0;T=175}}else{f=q;T=175}if((T|0)==175){T=0;if(h){q=f;break}else{q=f;r=0}}f=c[e>>2]|0;h=c[f+12>>2]|0;if((h|0)==(c[f+16>>2]|0)){n=0;f=S(c[(c[f>>2]|0)+36>>2]|0,f|0)|0;aa=n;n=0;if(aa&1){T=189;break b}}else f=Qzb(a[h>>0]|0)|0;h=f&255;if(h<<24>>24>-1?(b[(c[C>>2]|0)+(f<<24>>24<<1)>>1]&2048)!=0:0){f=c[o>>2]|0;if((f|0)==(c[O>>2]|0)){n=0;ea(208,m|0,o|0,O|0);aa=n;n=0;if(aa&1){T=189;break b}f=c[o>>2]|0}c[o>>2]=f+1;a[f>>0]=h;l=l+1|0}else{aa=a[H>>0]|0;if(!(s<<24>>24==h<<24>>24&(l|0?((aa<<24>>24<0?c[I>>2]|0:aa&255)|0)!=0:0)))break;if((i|0)==(c[K>>2]|0)){n=0;ea(209,$|0,J|0,K|0);aa=n;n=0;if(aa&1){T=189;break b}f=c[J>>2]|0}else f=i;i=f+4|0;c[J>>2]=i;c[f>>2]=l;l=0}f=c[e>>2]|0;h=f+12|0;g=c[h>>2]|0;if((g|0)==(c[f+16>>2]|0)){n=0;S(c[(c[f>>2]|0)+40>>2]|0,f|0)|0;aa=n;n=0;if(aa&1){T=186;break b}}else c[h>>2]=g+1;g=r}if(l|0?(c[$>>2]|0)!=(i|0):0){if((i|0)==(c[K>>2]|0)){n=0;ea(209,$|0,J|0,K|0);aa=n;n=0;if(aa&1){T=187;break b}f=c[J>>2]|0}else f=i;i=f+4|0;c[J>>2]=i;c[f>>2]=l}f=c[Q>>2]|0;if((f|0)>0){h=c[e>>2]|0;do if(h){g=c[h+12>>2]|0;if((g|0)==(c[h+16>>2]|0)){n=0;h=S(c[(c[h>>2]|0)+36>>2]|0,h|0)|0;aa=n;n=0;if(aa&1){T=187;break b}}else h=Qzb(a[g>>0]|0)|0;if(dub(h,-1)|0){c[e>>2]=0;g=1;break}else{g=(c[e>>2]|0)==0;break}}else g=1;while(0);if(q){h=c[q+12>>2]|0;if((h|0)==(c[q+16>>2]|0)){n=0;h=S(c[(c[q>>2]|0)+36>>2]|0,q|0)|0;aa=n;n=0;if(aa&1){T=187;break b}}else h=Qzb(a[h>>0]|0)|0;if(!(dub(h,-1)|0)){if(!g){T=224;break b}}else{p=0;T=218}}else T=218;if((T|0)==218){T=0;if(g){T=224;break b}else q=0}h=c[e>>2]|0;g=c[h+12>>2]|0;if((g|0)==(c[h+16>>2]|0)){n=0;h=S(c[(c[h>>2]|0)+36>>2]|0,h|0)|0;aa=n;n=0;if(aa&1){T=187;break b}}else h=Qzb(a[g>>0]|0)|0;if((a[M>>0]|0)!=(h&255)<<24>>24){T=224;break b}h=c[e>>2]|0;g=h+12|0;l=c[g>>2]|0;if((l|0)==(c[h+16>>2]|0)){n=0;S(c[(c[h>>2]|0)+40>>2]|0,h|0)|0;aa=n;n=0;if(aa&1){T=187;break b}}else c[g>>2]=l+1;l=q;while(1){if((f|0)<=0)break;h=c[e>>2]|0;do if(h){g=c[h+12>>2]|0;if((g|0)==(c[h+16>>2]|0)){n=0;h=S(c[(c[h>>2]|0)+36>>2]|0,h|0)|0;aa=n;n=0;if(aa&1){T=185;break b}}else h=Qzb(a[g>>0]|0)|0;if(dub(h,-1)|0){c[e>>2]=0;g=1;break}else{g=(c[e>>2]|0)==0;break}}else g=1;while(0);do if(l){h=c[l+12>>2]|0;if((h|0)==(c[l+16>>2]|0)){n=0;h=S(c[(c[l>>2]|0)+36>>2]|0,l|0)|0;aa=n;n=0;if(aa&1){T=185;break b}}else h=Qzb(a[h>>0]|0)|0;if(dub(h,-1)|0){p=0;T=242;break}if(g)q=l;else{T=249;break b}}else T=242;while(0);if((T|0)==242){T=0;if(g){T=249;break b}else q=0}h=c[e>>2]|0;g=c[h+12>>2]|0;if((g|0)==(c[h+16>>2]|0)){n=0;h=S(c[(c[h>>2]|0)+36>>2]|0,h|0)|0;aa=n;n=0;if(aa&1){T=185;break b}}else h=Qzb(a[g>>0]|0)|0;if((h&255)<<24>>24<=-1){T=249;break b}if(!(b[(c[C>>2]|0)+(h<<24>>24<<1)>>1]&2048)){T=249;break b}if((c[o>>2]|0)==(c[O>>2]|0)?(n=0,ea(208,m|0,o|0,O|0),aa=n,n=0,aa&1):0){T=185;break b}h=c[e>>2]|0;g=c[h+12>>2]|0;if((g|0)==(c[h+16>>2]|0)){n=0;h=S(c[(c[h>>2]|0)+36>>2]|0,h|0)|0;aa=n;n=0;if(aa&1){T=185;break b}}else h=Qzb(a[g>>0]|0)|0;g=c[o>>2]|0;c[o>>2]=g+1;a[g>>0]=h;f=f+-1|0;h=c[e>>2]|0;g=h+12|0;l=c[g>>2]|0;if((l|0)==(c[h+16>>2]|0)){n=0;S(c[(c[h>>2]|0)+40>>2]|0,h|0)|0;aa=n;n=0;if(aa&1){T=185;break b}}else c[g>>2]=l+1;l=q}c[Q>>2]=f;f=p}else f=p;if((c[o>>2]|0)==(c[m>>2]|0)){T=261;break b}else{h=R;p=i}break}default:{h=R;p=u}}while(0);e:do if((T|0)==51){T=0;g=f;h=f;while(1){f=c[e>>2]|0;do if(f){p=c[f+12>>2]|0;if((p|0)==(c[f+16>>2]|0)){n=0;f=S(c[(c[f>>2]|0)+36>>2]|0,f|0)|0;aa=n;n=0;if(aa&1){T=34;break b}}else f=Qzb(a[p>>0]|0)|0;if(dub(f,-1)|0){c[e>>2]=0;p=1;break}else{p=(c[e>>2]|0)==0;break}}else p=1;while(0);if(h){f=c[h+12>>2]|0;if((f|0)==(c[h+16>>2]|0)){n=0;f=S(c[(c[h>>2]|0)+36>>2]|0,h|0)|0;aa=n;n=0;if(aa&1){T=34;break b}}else f=Qzb(a[f>>0]|0)|0;if(!(dub(f,-1)|0))if(p){f=g;l=h}else{h=R;f=g;p=u;break e}else{f=0;T=64}}else{f=g;T=64}if((T|0)==64){T=0;if(p){h=R;p=u;break e}else l=0}p=c[e>>2]|0;h=c[p+12>>2]|0;if((h|0)==(c[p+16>>2]|0)){n=0;p=S(c[(c[p>>2]|0)+36>>2]|0,p|0)|0;aa=n;n=0;if(aa&1){T=34;break b}}else p=Qzb(a[h>>0]|0)|0;if((p&255)<<24>>24<=-1){h=R;p=u;break e}if(!(b[(c[C>>2]|0)+(p<<24>>24<<1)>>1]&8192)){h=R;p=u;break e}p=c[e>>2]|0;h=p+12|0;g=c[h>>2]|0;if((g|0)==(c[p+16>>2]|0)){n=0;p=S(c[(c[p>>2]|0)+40>>2]|0,p|0)|0;aa=n;n=0;if(aa&1){T=34;break b}}else{c[h>>2]=g+1;p=Qzb(a[g>>0]|0)|0}n=0;da(91,_|0,p&255|0);aa=n;n=0;if(aa&1){T=34;break b}else{g=f;h=l}}}while(0);R=h;v=v+1|0;u=p}f:switch(T|0){case 34:{f=sa()|0;P()|0;T=36;break}case 35:{f=sa()|0;P()|0;T=36;break}case 49:{c[j>>2]=c[j>>2]|4;p=0;T=299;break}case 118:{c[j>>2]=c[j>>2]|4;p=0;T=299;break}case 158:{p=sa()|0;P()|0;break a}case 159:{p=sa()|0;P()|0;break a}case 162:{c[j>>2]=c[j>>2]|4;p=0;T=299;break}case 185:{aa=sa()|0;P()|0;c[Q>>2]=f;f=aa;T=188;break}case 186:{f=sa()|0;P()|0;T=188;break}case 187:{f=sa()|0;P()|0;T=188;break}case 189:{p=sa()|0;P()|0;break a}case 224:{c[j>>2]=c[j>>2]|4;p=0;T=299;break}case 249:{c[Q>>2]=f;c[j>>2]=c[j>>2]|4;p=0;T=299;break}case 261:{c[j>>2]=c[j>>2]|4;p=0;T=299;break}case 263:{g:do if(R|0){i=R+11|0;q=R+4|0;l=1;h:while(1){p=a[i>>0]|0;if(p<<24>>24<0)p=c[q>>2]|0;else p=p&255;if(l>>>0>=p>>>0)break g;p=c[e>>2]|0;do if(p){h=c[p+12>>2]|0;if((h|0)==(c[p+16>>2]|0)){n=0;p=S(c[(c[p>>2]|0)+36>>2]|0,p|0)|0;aa=n;n=0;if(aa&1){T=290;break h}}else p=Qzb(a[h>>0]|0)|0;if(dub(p,-1)|0){c[e>>2]=0;h=1;break}else{h=(c[e>>2]|0)==0;break}}else h=1;while(0);if(f){p=c[f+12>>2]|0;if((p|0)==(c[f+16>>2]|0)){n=0;p=S(c[(c[f>>2]|0)+36>>2]|0,f|0)|0;aa=n;n=0;if(aa&1){T=290;break}}else p=Qzb(a[p>>0]|0)|0;if(!(dub(p,-1)|0)){if(!h){T=289;break}}else T=281}else T=281;if((T|0)==281){T=0;if(h){T=289;break}else f=0}p=c[e>>2]|0;h=c[p+12>>2]|0;if((h|0)==(c[p+16>>2]|0)){n=0;p=S(c[(c[p>>2]|0)+36>>2]|0,p|0)|0;aa=n;n=0;if(aa&1){T=290;break}}else p=Qzb(a[h>>0]|0)|0;if((a[i>>0]|0)<0)h=c[R>>2]|0;else h=R;if((a[h+l>>0]|0)!=(p&255)<<24>>24){T=289;break}p=c[e>>2]|0;h=p+12|0;g=c[h>>2]|0;if((g|0)==(c[p+16>>2]|0)){n=0;S(c[(c[p>>2]|0)+40>>2]|0,p|0)|0;aa=n;n=0;if(aa&1){T=290;break}}else c[h>>2]=g+1;l=l+1|0}if((T|0)==289){c[j>>2]=c[j>>2]|4;p=0;T=299;break f}else if((T|0)==290){p=sa()|0;P()|0;break a}}while(0);f=c[$>>2]|0;if((f|0)!=(u|0)){c[U>>2]=0;aC(W,f,u,U);if(!(c[U>>2]|0)){p=1;T=299;break}else{c[j>>2]=c[j>>2]|4;p=0;T=299;break}}else{p=1;T=299}break}}if((T|0)==36){p=f;break}else if((T|0)==188){p=f;break}else if((T|0)==299){Chb(_);Chb(Z);Chb(Y);Chb(X);Chb(W);f=c[$>>2]|0;c[$>>2]=0;if(f|0?(n=0,ca(c[$+4>>2]|0,f|0),aa=n,n=0,aa&1):0){aa=ta(0)|0;P()|0;yub(aa)}yb=V;return p|0}}else{p=sa()|0;P()|0}while(0);Chb(_);Chb(Z);Chb(Y);Chb(X);Chb(W);f=c[$>>2]|0;c[$>>2]=0;if(f|0?(n=0,ca(c[$+4>>2]|0,f|0),aa=n,n=0,aa&1):0){aa=ta(0)|0;P()|0;yub(aa)}Ea(p|0);return 0}function kc(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=yb;yb=yb+96|0;h=u+84|0;i=u+72|0;j=u+60|0;m=u+48|0;p=u+36|0;q=u+24|0;o=u+12|0;t=u;s=d+11|0;f=a[s>>0]|0;g=f<<24>>24<0;if(g)f=c[d+4>>2]|0;else f=f&255;if(!f)ma(71625,71639,27,71671);if(g)f=c[d>>2]|0;else f=d;f=a[f>>0]|0;a:do switch(f<<24>>24|0){case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:{KM(h,71680,d);if((a[s>>0]|0)<0){Fsb(c[d>>2]|0,0);c[d+4>>2]=0}else{Fsb(d,0);a[s>>0]=0}n=0;ca(510,d|0);r=n;n=0;if(r&1){r=ta(0)|0;P()|0;yub(r)}c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];f=0;while(1){if((f|0)==3)break;c[h+(f<<2)>>2]=0;f=f+1|0}Chb(h);g=2;h=0;break}case 95:case 36:{g=1;h=0;break}default:{if(f<<24>>24>96){if(f<<24>>24<123){g=1;h=1;break a}}else if((f+-65&255)<26){g=1;h=1;break a}Y4(j,d,1,-1);n=0;U(77,j|0,71680)|0;r=n;n=0;if(r&1){u=sa()|0;P()|0;Chb(j);Ea(u|0)}c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];f=0;while(1){if((f|0)==3)break;c[j+(f<<2)>>2]=0;f=f+1|0}if((a[s>>0]|0)<0){Fsb(c[d>>2]|0,0);c[d+4>>2]=0}else{Fsb(d,0);a[s>>0]=0}n=0;ca(510,d|0);r=n;n=0;if(r&1){r=ta(0)|0;P()|0;yub(r)}c[d>>2]=c[i>>2];c[d+4>>2]=c[i+4>>2];c[d+8>>2]=c[i+8>>2];f=0;while(1){if((f|0)==3)break;c[i+(f<<2)>>2]=0;f=f+1|0}Chb(i);Chb(j);g=1;h=0}}while(0);f=a[s>>0]|0;if(f<<24>>24<0){k=d+4|0;r=k;k=c[k>>2]|0}else{r=d+4|0;k=f&255}i=o+11|0;j=o+4|0;b:while(1){if(g>>>0>=k>>>0){f=71;break}if((a[s>>0]|0)<0)f=c[d>>2]|0;else f=d;f=a[f+g>>0]|0;c:do switch(f<<24>>24|0){case 95:case 36:case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:{f=0;break}default:{if(f<<24>>24>96){if(f<<24>>24<123){f=h;break c}}else if((f+-65&255)<26){f=h;break c}Y4(q,d,0,g);n=0;U(69,q|0,103672)|0;h=n;n=0;if(h&1){f=65;break b}c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];f=0;while(1){if((f|0)==3)break;c[q+(f<<2)>>2]=0;f=f+1|0}n=0;fa(89,o|0,d|0,g+1|0,-1);h=n;n=0;if(h&1){f=66;break b}h=a[i>>0]|0;f=h<<24>>24<0;n=0;V(43,p|0,(f?c[o>>2]|0:o)|0,(f?c[j>>2]|0:h&255)|0)|0;h=n;n=0;if(h&1){f=67;break b}c[m>>2]=c[p>>2];c[m+4>>2]=c[p+4>>2];c[m+8>>2]=c[p+8>>2];f=0;while(1){if((f|0)==3)break;c[p+(f<<2)>>2]=0;f=f+1|0}if((a[s>>0]|0)<0){Fsb(c[d>>2]|0,0);c[r>>2]=0}else{Fsb(d,0);a[s>>0]=0}n=0;ca(510,d|0);h=n;n=0;if(h&1){f=60;break b}c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];f=0;while(1){if((f|0)==3)break;c[m+(f<<2)>>2]=0;f=f+1|0}Chb(m);Chb(o);Chb(p);Chb(q);f=0}}while(0);g=g+1|0;h=f}if((f|0)==60){u=ta(0)|0;P()|0;yub(u)}else if((f|0)==65){e=sa()|0;P()|0}else if((f|0)==66){e=sa()|0;P()|0;f=68}else if((f|0)==67){e=sa()|0;P()|0;Chb(o);f=68}else if((f|0)==71){d:do if((k+-2|0)>>>0<9&h){e=a[s>>0]|0;h=e<<24>>24<0;if(h)f=c[d>>2]|0;else f=d;e:do switch(a[f>>0]|0){case 97:{f=Zzb(71682)|0;if(h)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,71682,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 98:{f=Zzb(134443)|0;if(h)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,134443,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 99:{g=Zzb(134137)|0;if(h)f=c[r>>2]|0;else f=e&255;if((g|0)==(f|0)){n=0;e=V(54,d|0,134137,g|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(74829)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,74829,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(71692)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,71692,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(134509)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,134509,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(71698)|0;if(e<<24>>24<0)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,71698,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 100:{g=Zzb(88662)|0;if(h)f=c[r>>2]|0;else f=e&255;if((g|0)==(f|0)){n=0;e=V(54,d|0,88662,g|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(74577)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,74577,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(72340)|0;if(e<<24>>24<0)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,72340,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 101:{g=Zzb(134170)|0;if(h)f=c[r>>2]|0;else f=e&255;if((g|0)==(f|0)){n=0;e=V(54,d|0,134170,g|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(88692)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,88692,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(71704)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,71704,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(134240)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,134240,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(71709)|0;if(e<<24>>24<0)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,71709,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 102:{g=Zzb(88668)|0;if(h)f=c[r>>2]|0;else f=e&255;if((g|0)==(f|0)){n=0;e=V(54,d|0,88668,g|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(141129)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,141129,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(71717)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,71717,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(74589)|0;if(e<<24>>24<0)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,74589,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 105:{g=Zzb(134435)|0;if(h)f=c[r>>2]|0;else f=e&255;if((g|0)==(f|0)){n=0;e=V(54,d|0,134435,g|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(88665)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,88665,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(134233)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,134233,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(71725)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,71725,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(71735)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,71735,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(71746)|0;if(e<<24>>24<0)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,71746,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 108:{f=Zzb(88688)|0;if(h)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,88688,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 110:{g=Zzb(88672)|0;if(h)f=c[r>>2]|0;else f=e&255;if((g|0)==(f|0)){n=0;e=V(54,d|0,88672,g|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(117214)|0;if(e<<24>>24<0)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,117214,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 112:{g=Zzb(71757)|0;if(h)f=c[r>>2]|0;else f=e&255;if((g|0)==(f|0)){n=0;e=V(54,d|0,71757,g|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(71764)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,71764,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(71772)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,71772,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(71780)|0;if(e<<24>>24<0)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,71780,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 114:{f=Zzb(134540)|0;if(h)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,134540,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 115:{g=Zzb(71790)|0;if(h)f=c[r>>2]|0;else f=e&255;if((g|0)==(f|0)){n=0;e=V(54,d|0,71790,g|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(71796)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,71796,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(134449)|0;if(e<<24>>24<0)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,134449,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 116:{g=Zzb(88676)|0;if(h)f=c[r>>2]|0;else f=e&255;if((g|0)==(f|0)){n=0;e=V(54,d|0,88676,g|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(88697)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,88697,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(141135)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,141135,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(140119)|0;if(e<<24>>24<0)g=c[r>>2]|0;else g=e&255;if((f|0)==(g|0)){n=0;e=V(54,d|0,140119,f|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(71803)|0;if(e<<24>>24<0)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,71803,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 118:{g=Zzb(88680)|0;if(h)f=c[r>>2]|0;else f=e&255;if((g|0)==(f|0)){n=0;e=V(54,d|0,88680,g|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(141366)|0;if(e<<24>>24<0)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,141366,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 119:{g=Zzb(88702)|0;if(h)f=c[r>>2]|0;else f=e&255;if((g|0)==(f|0)){n=0;e=V(54,d|0,88702,g|0)|0;q=n;n=0;if(q&1){q=ta(0)|0;P()|0;yub(q)}if(!e)break e;e=a[s>>0]|0}f=Zzb(74842)|0;if(e<<24>>24<0)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,74842,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}case 121:{f=Zzb(71810)|0;if(h)e=c[r>>2]|0;else e=e&255;if((f|0)!=(e|0))break d;n=0;e=V(54,d|0,71810,f|0)|0;q=n;n=0;if(!(q&1))if(!e)break e;else break d;else{q=ta(0)|0;P()|0;yub(q)}break}default:break d}while(0);DO(t,d,103672);if((a[s>>0]|0)<0){Fsb(c[d>>2]|0,0);c[r>>2]=0}else{Fsb(d,0);a[s>>0]=0}n=0;ca(510,d|0);s=n;n=0;if(s&1){s=ta(0)|0;P()|0;yub(s)}c[d>>2]=c[t>>2];c[d+4>>2]=c[t+4>>2];c[d+8>>2]=c[t+8>>2];e=0;while(1){if((e|0)==3)break;c[t+(e<<2)>>2]=0;e=e+1|0}Chb(t)}while(0);c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];e=0;while(1){if((e|0)==3)break;c[d+(e<<2)>>2]=0;e=e+1|0}yb=u;return}if((f|0)==68)Chb(p);Chb(q);u=e;Ea(u|0)}function lc(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,o=0,p=0,q=0,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,Q=0,R=0,T=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,fa=0;aa=yb;yb=yb+336|0;L=aa+328|0;h=aa+316|0;i=aa+304|0;$=aa+300|0;f=aa+296|0;g=aa+292|0;q=aa+288|0;r=aa+276|0;v=aa+264|0;j=aa+260|0;k=aa+248|0;s=aa+236|0;l=aa+232|0;m=aa+220|0;t=aa+208|0;o=aa+204|0;p=aa+192|0;u=aa+180|0;w=aa+168|0;y=aa+156|0;z=aa+144|0;E=aa+132|0;fa=aa+128|0;R=aa+124|0;M=aa+120|0;Q=aa+108|0;N=aa+104|0;O=aa+92|0;T=aa+80|0;_=aa+76|0;V=aa+72|0;W=aa+68|0;X=aa+56|0;J=aa+44|0;G=aa+40|0;H=aa+36|0;I=aa+32|0;A=aa+28|0;B=aa+24|0;C=aa+20|0;D=aa+16|0;F=aa+12|0;K=aa;do if((xmb(d)|0)==4?(x=Vr(d,3)|0,UBb(a[x>>0]|0)|0):0){x=kH(Vr(Vr(d,3)|0,0)|0)|0;if(dub(x,c[37383]|0)|0){i=0;x=1}else{x=kH(Vr(Vr(d,3)|0,0)|0)|0;if(dub(x,c[37386]|0)|0){e=(c[b>>2]|0)+92|0;if(!(a[e>>0]&1)){a[e>>0]=1;i=2;x=1;break}g=oa(20)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;fa=Zzb(126201)|0;n=0;ea(95,h|0,126201,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,h|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(h);if(!f){fa=e;Ea(fa|0)}}else{e=sa()|0;P()|0}va(g|0);fa=e;Ea(fa|0)}x=kH(Vr(Vr(d,3)|0,0)|0)|0;if(!(dub(x,c[37391]|0)|0)){x=kH(Vr(Vr(d,3)|0,0)|0)|0;x=dub(x,c[37105]|0)|0;i=x?3:-1;break}e=(c[b>>2]|0)+56|0;if(!(a[e>>0]&1)){a[e>>0]=1;i=1;x=1;break}g=oa(20)|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;fa=Zzb(119208)|0;n=0;ea(95,i|0,119208,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,i|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(i);if(!f){fa=e;Ea(fa|0)}}else{e=sa()|0;P()|0}va(g|0);fa=e;Ea(fa|0)}}else{i=-1;x=0}while(0);Cub($);if((xmb(d)|0)>>>0>3?(h=Vr(d,3)|0,$Bb(a[h>>0]|0)|0):0){Ftb(f,kH(Vr(d,1)|0)|0);c[$>>2]=c[f>>2];h=2;e=1}else if((x?(xmb(Vr(d,3)|0)|0)>>>0>1:0)?Gcb(Vr(Vr(d,3)|0,1)|0)|0:0){Ftb(g,kH(Vr(Vr(d,3)|0,1)|0)|0);c[$>>2]=c[g>>2];h=1;e=2}else{h=1;e=1}a:do if(!(eCb(c[$>>2]|0)|0))switch(i|0){case 0:{u=b+44|0;w=c[u>>2]|0;c[u>>2]=w+1;h5(v,w);n=0;U(77,v|0,126222)|0;w=n;n=0;do if(!(w&1)){c[r>>2]=c[v>>2];c[r+4>>2]=c[v+4>>2];c[r+8>>2]=c[v+8>>2];f=0;while(1){if((f|0)==3)break;c[v+(f<<2)>>2]=0;f=f+1|0}n=0;da(230,q|0,r|0);w=n;n=0;if(w&1){e=sa()|0;P()|0;Chb(r);break}c[$>>2]=c[q>>2];Chb(r);Chb(v);f=b+12|0;g=c[f>>2]|0;if((g|0)==(c[b+16>>2]|0)){_M(b+8|0,$);break a}else{c[g>>2]=c[$>>2];c[f>>2]=(c[f>>2]|0)+4;break a}}else{e=sa()|0;P()|0}while(0);Chb(v);fa=e;Ea(fa|0)}case 3:{v=b+48|0;w=c[v>>2]|0;c[v>>2]=w+1;h5(s,w);n=0;U(77,s|0,126239)|0;w=n;n=0;do if(!(w&1)){c[k>>2]=c[s>>2];c[k+4>>2]=c[s+4>>2];c[k+8>>2]=c[s+8>>2];f=0;while(1){if((f|0)==3)break;c[s+(f<<2)>>2]=0;f=f+1|0}n=0;da(230,j|0,k|0);w=n;n=0;if(w&1){e=sa()|0;P()|0;Chb(k);break}c[$>>2]=c[j>>2];Chb(k);Chb(s);f=b+36|0;g=c[f>>2]|0;if((g|0)==(c[b+40>>2]|0)){_M(b+32|0,$);break a}else{c[g>>2]=c[$>>2];c[f>>2]=(c[f>>2]|0)+4;break a}}else{e=sa()|0;P()|0}while(0);Chb(s);fa=e;Ea(fa|0)}case 2:{h5(t,0);n=0;U(77,t|0,126253)|0;w=n;n=0;do if(!(w&1)){c[m>>2]=c[t>>2];c[m+4>>2]=c[t+4>>2];c[m+8>>2]=c[t+8>>2];f=0;while(1){if((f|0)==3)break;c[t+(f<<2)>>2]=0;f=f+1|0}n=0;da(230,l|0,m|0);w=n;n=0;if(w&1){e=sa()|0;P()|0;Chb(m);break}else{c[$>>2]=c[l>>2];Chb(m);Chb(t);break a}}else{e=sa()|0;P()|0}while(0);Chb(t);fa=e;Ea(fa|0)}case 1:{h5(u,0);n=0;U(77,u|0,126268)|0;w=n;n=0;do if(!(w&1)){c[p>>2]=c[u>>2];c[p+4>>2]=c[u+4>>2];c[p+8>>2]=c[u+8>>2];f=0;while(1){if((f|0)==3)break;c[u+(f<<2)>>2]=0;f=f+1|0}n=0;da(230,o|0,p|0);w=n;n=0;if(w&1){e=sa()|0;P()|0;Chb(p);break}else{c[$>>2]=c[o>>2];Chb(p);Chb(u);break a}}else{e=sa()|0;P()|0}while(0);Chb(u);fa=e;Ea(fa|0)}default:{g=oa(20)|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;fa=Zzb(126282)|0;n=0;ea(95,w|0,126282,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,w|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(w);if(!f){fa=e;Ea(fa|0)}}else{e=sa()|0;P()|0}va(g|0);fa=e;Ea(fa|0)}}while(0);if($cb(Vr(d,h)|0)|0)f=x?i:0;else{w=kH(Vr(d,h)|0)|0;if(!(dub(w,c[37386]|0)|0)){w=kH(Vr(d,h)|0)|0;if(!(dub(w,c[37391]|0)|0)){w=kH(Vr(d,h)|0)|0;if(dub(w,c[37105]|0)|0)f=3;else{g=oa(20)|0;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;fa=Zzb(126297)|0;n=0;ea(95,y|0,126297,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,y|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(y);if(!f){fa=e;Ea(fa|0)}}else{e=sa()|0;P()|0}va(g|0);fa=e;Ea(fa|0)}}else f=1}else f=2;h=h+1|0}g=h+1|0;q=kH(Vr(d,h)|0)|0;y=Vr(d,g)|0;if(!($Bb(a[y>>0]|0)|0)){g=oa(20)|0;c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;fa=Zzb(126316)|0;n=0;ea(95,z|0,126316,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,z|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(z);if(!f){fa=e;Ea(fa|0)}}else{e=sa()|0;P()|0}va(g|0);fa=e;Ea(fa|0)}h=h+2|0;p=kH(Vr(d,g)|0)|0;if(pnb(q)|0?pnb(p)|0:0){if(x)o=Vr(d,3)|0;else{o=d;e=h}switch(f|0){case 0:{jFa(fa);n=0;f=S(330,o|0)|0;K=n;n=0;b:do if(!(K&1)){do if(f>>>0>e>>>0){n=0;m=U(81,o|0,e|0)|0;K=n;n=0;if(K&1){ba=125;break b}n=0;f=U(81,m|0,0)|0;K=n;n=0;if(K&1){ba=125;break b}n=0;f=S(331,f|0)|0;K=n;n=0;if(K&1){ba=125;break b}c:do if(dub(f,c[37384]|0)|0){g=c[fa>>2]|0;j=g+8|0;k=g+12|0;l=g+16|0;i=1;while(1){n=0;f=S(330,m|0)|0;Q=n;n=0;if(Q&1)break;if(i>>>0>=f>>>0)break c;n=0;f=U(81,m|0,i|0)|0;Q=n;n=0;if(Q&1)break;n=0;f=S(331,f|0)|0;Q=n;n=0;if(Q&1)break;n=0;f=U(199,f|0,0)|0;Q=n;n=0;if(Q&1)break;c[R>>2]=f;h=c[k>>2]|0;if(h>>>0>=(c[l>>2]|0)>>>0){n=0;da(212,j|0,R|0);Q=n;n=0;if(Q&1)break}else{c[h>>2]=f;c[k>>2]=(c[k>>2]|0)+4}i=i+1|0}e=sa()|0;P()|0;ba=126;break b}else{if(dub(f,c[37385]|0)|0){n=0;f=U(81,m|0,1)|0;R=n;n=0;if(R&1){ba=125;break b}n=0;f=S(331,f|0)|0;R=n;n=0;if(R&1){ba=125;break b}n=0;f=U(199,f|0,0)|0;R=n;n=0;if(R&1){ba=125;break b}g=c[fa>>2]|0;c[g+4>>2]=f;break}if(!(dub(f,c[37394]|0)|0)){g=oa(20)|0;c[O>>2]=0;c[O+4>>2]=0;c[O+8>>2]=0;aa=Zzb(126398)|0;n=0;ea(95,O|0,126398,aa|0);aa=n;n=0;if(!(aa&1)){n=0;da(330,g|0,O|0);aa=n;n=0;if(aa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(O);if(!f){f=e;break b}}else{e=sa()|0;P()|0}va(g|0);f=e;break b}n=0;f=U(81,m|0,1)|0;R=n;n=0;if(R&1){ba=125;break b}n=0;f=S(331,f|0)|0;R=n;n=0;if(R&1){ba=125;break b}R=c[b>>2]|0;Ftb(M,f);c[L>>2]=c[M>>2];if(rDa(R,L)|0){R=c[b>>2]|0;Ftb(N,f);n=0;c[L>>2]=c[N>>2];f=U(70,R|0,L|0)|0;R=n;n=0;if(R&1){ba=125;break b}g=c[fa>>2]|0;n=0;da(4061,g|0,f|0);R=n;n=0;if(R&1){ba=125;break b}else break}g=oa(20)|0;c[Q>>2]=0;c[Q+4>>2]=0;c[Q+8>>2]=0;aa=Zzb(126369)|0;n=0;ea(95,Q|0,126369,aa|0);aa=n;n=0;if(!(aa&1)){n=0;da(330,g|0,Q|0);aa=n;n=0;if(aa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(Q);if(!f){f=e;break b}}else{e=sa()|0;P()|0}va(g|0);f=e;break b}while(0);n=0;f=S(330,o|0)|0;R=n;n=0;if(R&1){ba=125;break b}e=e+1|0;if(f>>>0>e>>>0){n=0;f=U(81,o|0,e|0)|0;R=n;n=0;if(R&1){ba=125;break b}n=0;e=U(81,f|0,0)|0;R=n;n=0;if(R&1){ba=125;break b}n=0;e=S(331,e|0)|0;R=n;n=0;if(R&1){ba=125;break b}if(!(cub(e,c[37385]|0)|0)){n=0;e=U(81,f|0,1)|0;T=n;n=0;if(T&1){ba=125;break b}n=0;e=S(331,e|0)|0;T=n;n=0;if(T&1){ba=125;break b}n=0;e=U(199,e|0,0)|0;T=n;n=0;if(T&1){ba=125;break b}c[g+4>>2]=e;break}g=oa(20)|0;c[T>>2]=0;c[T+4>>2]=0;c[T+8>>2]=0;aa=Zzb(126417)|0;n=0;ea(95,T|0,126417,aa|0);aa=n;n=0;if(!(aa&1)){n=0;da(330,g|0,T|0);aa=n;n=0;if(aa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(T);if(!f){f=e;break b}}else{e=sa()|0;P()|0}va(g|0);f=e;break b}}while(0);n=0;ca(568,_|0);T=n;n=0;if(!(T&1)){e=c[_>>2]|0;c[e+8>>2]=c[$>>2];Ftb(V,q);c[e>>2]=c[V>>2];Ftb(W,p);c[e+4>>2]=c[W>>2];f=c[fa>>2]|0;n=0;da(89,X|0,f|0);W=n;n=0;do if(!(W&1)){n=0;g=U(136,X|0,c[b>>2]|0)|0;W=n;n=0;if(W&1){f=sa()|0;P()|0;Chb(X);break}Chb(X);c[e+40>>2]=c[g>>2];n=0;da(1638,e|0,g|0);ba=n;n=0;if(!(ba&1)?(Y=c[e+12>>2]|0,n=0,Z=U(200,b+52|0,$|0)|0,ba=n,n=0,!(ba&1)):0){c[Z>>2]=Y;ba=c[b>>2]|0;c[_>>2]=0;n=0;da(216,ba|0,e|0);ba=n;n=0;if(ba&1){e=0;ba=174}else{c[_>>2]=0;c[fa>>2]=0;if(!f){yb=aa;return}Xrb(f);RCb(f);yb=aa;return}}else ba=174}else ba=174;while(0);if((ba|0)==174){f=sa()|0;P()|0}c[_>>2]=0;if(e){IM(e);RCb(e)}}else ba=125}else ba=125;while(0);if((ba|0)==125){e=sa()|0;P()|0;ba=126}if((ba|0)==126)f=e;e=c[fa>>2]|0;c[fa>>2]=0;if(!e){fa=f;Ea(fa|0)}Xrb(e);RCb(e);fa=f;Ea(fa|0)}case 3:{fa=Vr(o,e)|0;fa=$Bb(a[fa>>0]|0)|0;e=Vr(o,e)|0;do if(fa){f=0;e=ofb(kH(e)|0,0)|0}else{fa=kH(Vr(e,0)|0)|0;if(!(cub(fa,c[37409]|0)|0)){f=1;e=ofb(kH(Vr(e,1)|0)|0,0)|0;break}g=oa(20)|0;c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;fa=Zzb(126433)|0;n=0;ea(95,J|0,126433,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,J|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(J);if(!f){fa=e;Ea(fa|0)}}else{e=sa()|0;P()|0}va(g|0);fa=e;Ea(fa|0)}while(0);LCa(G);fa=c[G>>2]|0;c[fa+8>>2]=c[$>>2];Ftb(H,q);c[fa>>2]=c[H>>2];Ftb(I,p);c[fa+4>>2]=c[I>>2];c[fa+12>>2]=e;a[fa+20>>0]=f;ba=c[b>>2]|0;c[G>>2]=0;n=0;da(3025,ba|0,fa|0);fa=n;n=0;if(fa&1){fa=sa()|0;P()|0;c[G>>2]=0;Ea(fa|0)}else{c[G>>2]=0;yb=aa;return}}case 1:{Ftb(A,q);c[(c[b>>2]|0)+48>>2]=c[A>>2];Ftb(B,p);c[(c[b>>2]|0)+52>>2]=c[B>>2];if(e>>>0<((xmb(o)|0)+-1|0)>>>0){fa=iD(Vr(o,e)|0,126446)|0;c[(c[b>>2]|0)+64>>2]=fa;e=e+1|0}if(e>>>0<((xmb(o)|0)+-1|0)>>>0){fa=iD(Vr(o,e)|0,126472)|0;c[(c[b>>2]|0)+68>>2]=fa;yb=aa;return}else{G1a((c[b>>2]|0)+68|0,-1,0)|0;yb=aa;return}}case 2:{Ftb(C,q);c[(c[b>>2]|0)+84>>2]=c[C>>2];Ftb(D,p);c[(c[b>>2]|0)+88>>2]=c[D>>2];fa=Vr(o,e)|0;if(!(UBb(a[fa>>0]|0)|0)){gx(b,o,e)|0;yb=aa;return}e=Vr(o,e)|0;fa=Vr(e,0)|0;if($Bb(a[fa>>0]|0)|0?(fa=kH(Vr(e,0)|0)|0,m2a(F,119574,1),dub(fa,c[F>>2]|0)|0):0){a[(c[b>>2]|0)+120>>0]=1;gx(b,e,1)|0;yb=aa;return}g=oa(20)|0;c[K>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;fa=Zzb(126497)|0;n=0;ea(95,K|0,126497,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,K|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(K);if(!f){fa=e;Ea(fa|0)}}else{e=sa()|0;P()|0}va(g|0);fa=e;Ea(fa|0)}default:{yb=aa;return}}}g=oa(20)|0;c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;fa=Zzb(126335)|0;n=0;ea(95,E|0,126335,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,E|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(E);if(!f){fa=e;Ea(fa|0)}}else{e=sa()|0;P()|0}va(g|0);fa=e;Ea(fa|0)}function mc(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,o=0,p=0,q=0,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,Q=0,R=0,T=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,pa=0,qa=0,ra=0,ta=0,ua=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Fa=0,Ga=0,Ha=0;Ba=yb;yb=yb+400|0;Aa=Ba+384|0;na=Ba+376|0;ta=Ba+368|0;I=Ba+364|0;J=Ba+360|0;K=Ba+356|0;la=Ba+352|0;h=Ba+348|0;k=Ba+344|0;i=Ba+340|0;j=Ba+328|0;ia=Ba+324|0;Da=Ba+312|0;Fa=Ba+300|0;Ga=Ba+288|0;ja=Ba+284|0;W=Ba+280|0;X=Ba+276|0;N=Ba+272|0;O=Ba+268|0;Z=Ba+248|0;Y=Ba+236|0;y=Ba+232|0;z=Ba+228|0;A=Ba+224|0;Q=Ba+212|0;B=Ba+208|0;R=Ba+196|0;C=Ba+192|0;D=Ba+188|0;E=Ba+184|0;F=Ba+180|0;G=Ba+176|0;H=Ba+172|0;ka=Ba+168|0;T=Ba+148|0;V=Ba+136|0;_=Ba+124|0;aa=Ba+112|0;ba=Ba+100|0;Ca=Ba+96|0;$=Ba+92|0;pa=Ba+88|0;wa=Ba+76|0;xa=Ba+64|0;ga=Ba+52|0;ra=Ba+40|0;qa=Ba+28|0;ua=Ba+16|0;ya=Ba+12|0;za=Ba;Cub(la);Cub(h);l=$v(d,la,h)|0;g=eCb(c[la>>2]|0)|0;if(e){if(!g)c[la>>2]=c[(c[b+8>>2]|0)+((c[b+44>>2]|0)+-1<<2)>>2]}else{f=b+44|0;if(!g){ma=w$(c[f>>2]|0)|0;c[la>>2]=ma}c[f>>2]=(c[f>>2]|0)+1}ma=c[h>>2]|0;g=ma;do if(eCb(ma)|0){TTa(k);f=c[k>>2]|0;c[f>>2]=g;c[f+4>>2]=c[la>>2];c[f+8>>2]=0;h=c[b>>2]|0;c[i>>2]=g;c[Aa>>2]=c[i>>2];if(!(FEa(h,Aa)|0)){c[k>>2]=0;n=0;da(72,h|0,f|0);ma=n;n=0;if(!(ma&1)){c[k>>2]=0;ha=b;break}Ha=sa()|0;P()|0;c[k>>2]=0;Ea(Ha|0)}i=oa(20)|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;Ga=Zzb(119228)|0;n=0;ea(95,j|0,119228,Ga|0);Ga=n;n=0;if(!(Ga&1)){n=0;fa(134,i|0,j|0,c[d+28>>2]|0,c[d+32>>2]|0);Ga=n;n=0;if(Ga&1)h=1;else{n=0;ea(122,i|0,31856,511);n=0;h=0}g=sa()|0;P()|0;Chb(j);if(h)Ha=16}else{g=sa()|0;P()|0;Ha=16}if((Ha|0)==16)va(i|0);c[k>>2]=0;if(!f){Ha=g;Ea(Ha|0)}RCb(f);Ha=g;Ea(Ha|0)}else ha=b;while(0);c[ia>>2]=0;w=b+100|0;c[w>>2]=0;c[b+104>>2]=0;L=b+108|0;a[L>>0]=0;c[Da>>2]=0;x=Da+4|0;c[x>>2]=0;q=Da+8|0;c[q>>2]=0;c[Fa>>2]=0;r=Fa+4|0;c[r>>2]=0;s=Fa+8|0;c[s>>2]=0;c[Ga>>2]=0;t=Ga+4|0;c[t>>2]=0;u=Ga+8|0;c[u>>2]=0;c[ja>>2]=0;Cub(W);c[X>>2]=0;Cub(N);Cub(O);c[Z>>2]=b;c[Z+4>>2]=la;c[Z+8>>2]=Fa;c[Z+12>>2]=ja;c[Z+16>>2]=Ga;c[Y>>2]=X;c[Y+4>>2]=b;c[Y+8>>2]=ia;v=b+88|0;ma=b+84|0;g=c[W>>2]|0;f=c[N>>2]|0;M=c[O>>2]|0;a:while(1){n=0;h=S(330,d|0)|0;p=n;n=0;if(p&1){Ha=39;break}if(l>>>0>=h>>>0){Ha=109;break}n=0;p=U(81,d|0,l|0)|0;o=n;n=0;if(o&1){Ha=39;break}n=0;h=U(81,p|0,0)|0;o=n;n=0;if(o&1){Ha=39;break}n=0;o=S(331,h|0)|0;m=n;n=0;if(m&1){Ha=39;break}b:do if(!(dub(o,c[37384]|0)|0)?!(dub(o,c[37393]|0)|0):0){if(dub(o,c[37385]|0)|0){n=0;h=S(330,p|0)|0;o=n;n=0;if(o&1){Ha=39;break a}if(h>>>0>2){Ha=63;break a}n=0;h=U(81,p|0,1)|0;p=n;n=0;if(p&1){Ha=39;break a}n=0;h=S(331,h|0)|0;p=n;n=0;if(p&1){Ha=39;break a}n=0;h=U(199,h|0,0)|0;p=n;n=0;if(p&1){Ha=39;break a}c[ja>>2]=h;h=M;break}if(dub(o,c[37394]|0)|0){n=0;h=U(81,p|0,1)|0;p=n;n=0;if(p&1){Ha=39;break a}n=0;h=U(201,b|0,h|0)|0;p=n;n=0;if(p&1){Ha=39;break a}g=h;h=c[ha>>2]|0;c[B>>2]=g;c[Aa>>2]=c[B>>2];if(!(rDa(h,Aa)|0)){Ha=77;break a}c[C>>2]=g;n=0;c[Aa>>2]=c[C>>2];h=U(70,h|0,Aa|0)|0;p=n;n=0;if(p&1){Ha=39;break a}c[ja>>2]=c[h+4>>2];o=h+12|0;k=h+8|0;j=0;while(1){if(j>>>0>=(c[o>>2]|0)-(c[k>>2]|0)>>2>>>0){h=M;break b}n=0;h=S(222,j|0)|0;p=n;n=0;if(p&1){Ha=38;break a}c[D>>2]=h;m=c[(c[k>>2]|0)+(j<<2)>>2]|0;c[E>>2]=m;i=c[x>>2]|0;if(i>>>0>=(c[q>>2]|0)>>>0){n=0;ea(202,Da|0,D|0,E|0);p=n;n=0;if(p&1){Ha=38;break a}}else{Ftb(I,h);c[Aa>>2]=c[I>>2];fib(i,Aa,m);c[x>>2]=(c[x>>2]|0)+8}Ftb(F,h);n=0;h=U(202,v|0,F|0)|0;p=n;n=0;if(p&1){Ha=38;break a}c[h>>2]=m;j=j+1|0}}if(dub(o,c[37390]|0)|0){n=0;h=U(81,p|0,1)|0;o=n;n=0;if(o&1){Ha=39;break a}n=0;h=S(331,h|0)|0;o=n;n=0;if(o&1){Ha=39;break a}Ftb(G,h);f=c[G>>2]|0;n=0;h=U(81,p|0,2)|0;p=n;n=0;if(p&1){Ha=39;break a}n=0;h=S(331,h|0)|0;p=n;n=0;if(p&1){Ha=39;break a}Ftb(H,h);h=c[H>>2]|0;break}m=c[x>>2]|0;o=c[Da>>2]|0;h=o;i=m;if(((m|0)!=(o|0)?(c[r>>2]|0)==(c[Fa>>2]|0):0)?(n=0,ea(203,Fa|0,h|0,i|0),o=n,n=0,o&1):0){Ha=39;break a}if((c[ma>>2]|0)==0?(n=0,ca(566,Z|0),o=n,n=0,o&1):0){Ha=39;break a}n=0;h=U(203,b|0,p|0)|0;p=n;n=0;if(p&1){Ha=39;break a}if(!(c[ia>>2]|0)){c[ia>>2]=h;h=M;break}n=0;ca(567,Y|0);p=n;n=0;if(p&1){Ha=39;break a}n=0;da(231,(c[X>>2]|0)+12|0,h|0);p=n;n=0;if(p&1){Ha=39;break a}else h=M}else Ha=29;while(0);c:do if((Ha|0)==29){Ha=0;k=1;while(1){n=0;h=S(330,p|0)|0;m=n;n=0;if(m&1){Ha=37;break a}if(k>>>0>=h>>>0){h=M;break c}hCb(y);c[z>>2]=0;n=0;h=U(81,p|0,k|0)|0;m=n;n=0;if(m&1){Ha=37;break a}if(!(Gcb(h)|0)){n=0;h=U(81,p|0,k|0)|0;m=n;n=0;if(m&1){Ha=37;break a}n=0;h=S(331,h|0)|0;m=n;n=0;if(m&1){Ha=37;break a}n=0;i=U(199,h|0,1)|0;m=n;n=0;if(m&1){Ha=37;break a}c[z>>2]=i;if(i){n=0;h=S(222,c[w>>2]|0)|0;m=n;n=0;if(m&1){Ha=37;break a}c[y>>2]=h;j=i}else Ha=45}else Ha=45;if((Ha|0)==45){Ha=0;n=0;h=U(81,p|0,k|0)|0;m=n;n=0;if(m&1){Ha=37;break a}n=0;m=S(331,h|0)|0;j=n;n=0;if(j&1){Ha=37;break a}c[y>>2]=m;i=k+1|0;n=0;h=U(81,p|0,i|0)|0;k=n;n=0;if(k&1){Ha=37;break a}n=0;h=S(331,h|0)|0;k=n;n=0;if(k&1){Ha=37;break a}n=0;j=U(199,h|0,0)|0;k=n;n=0;if(k&1){Ha=37;break a}c[z>>2]=j;k=i;h=m}k=k+1|0;do if(dub(o,c[37384]|0)|0){i=c[r>>2]|0;if(i>>>0>=(c[s>>2]|0)>>>0){n=0;ea(202,Fa|0,y|0,z|0);m=n;n=0;if(m&1){Ha=37;break a}else break}else{Ftb(K,h);c[Aa>>2]=c[K>>2];fib(i,Aa,j);c[r>>2]=(c[r>>2]|0)+8;break}}else{i=c[t>>2]|0;if(i>>>0>=(c[u>>2]|0)>>>0){n=0;ea(202,Ga|0,y|0,z|0);m=n;n=0;if(m&1){Ha=37;break a}else break}else{Ftb(J,h);c[Aa>>2]=c[J>>2];fib(i,Aa,j);c[t>>2]=(c[t>>2]|0)+8;break}}while(0);c[w>>2]=(c[w>>2]|0)+1;Ftb(A,h);n=0;h=U(202,v|0,A|0)|0;m=n;n=0;if(m&1){Ha=37;break a}c[h>>2]=j}}while(0);l=l+1|0;M=h}d:do if((Ha|0)==37){d=sa()|0;P()|0;c[N>>2]=f;c[O>>2]=M;c[W>>2]=g;f=d;Ha=41}else if((Ha|0)==38){d=sa()|0;P()|0;c[N>>2]=f;c[O>>2]=M;c[W>>2]=g;f=d;Ha=41}else if((Ha|0)==39){d=sa()|0;P()|0;c[N>>2]=f;c[O>>2]=M;c[W>>2]=g;f=d;Ha=41}else if((Ha|0)==63){c[N>>2]=f;c[O>>2]=M;c[W>>2]=g;h=oa(20)|0;c[Q>>2]=0;c[Q+4>>2]=0;c[Q+8>>2]=0;d=Zzb(119673)|0;n=0;ea(95,Q|0,119673,d|0);d=n;n=0;if(!(d&1)){n=0;fa(134,h|0,Q|0,c[p+28>>2]|0,c[p+32>>2]|0);d=n;n=0;if(d&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(Q);if(!g)break}else{f=sa()|0;P()|0}va(h|0)}else if((Ha|0)==77){c[N>>2]=f;c[O>>2]=M;c[W>>2]=g;h=oa(20)|0;c[R>>2]=0;c[R+4>>2]=0;c[R+8>>2]=0;d=Zzb(119694)|0;n=0;ea(95,R|0,119694,d|0);d=n;n=0;if(!(d&1)){n=0;da(330,h|0,R|0);d=n;n=0;if(d&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(R);if(!g)break}else{f=sa()|0;P()|0}va(h|0)}else if((Ha|0)==109){c[N>>2]=f;c[O>>2]=M;c[W>>2]=g;h=g;l=f;m=M;e:do if(bCb(h)|0){n=0;ea(204,V|0,c[ja>>2]|0,Fa|0);R=n;n=0;if(!(R&1)){n=0;da(2315,T|0,V|0);R=n;n=0;do if(R&1){f=sa()|0;P()|0}else{n=0;da(4057,ka|0,T|0);R=n;n=0;if(R&1){f=sa()|0;P()|0;Xrb(T);break}Xrb(T);Chb(V);i=c[ha>>2]|0;j=c[i+4>>2]|0;o=c[ka>>2]|0;i=c[i>>2]|0;while(1){if((i|0)==(j|0))break;k=c[i>>2]|0;if(O1(k,o)|0){Ha=116;break}i=i+4|0}if((Ha|0)==116){g=c[k>>2]|0;c[W>>2]=g;h=g}if(eCb(h)|0){c[ka>>2]=0;if(!o){h=g;Ha=132;break e}Xrb(o);RCb(o);h=g;Ha=132;break e}h=oa(20)|0;c[_>>2]=0;c[_+4>>2]=0;c[_+8>>2]=0;Ca=Zzb(119716)|0;n=0;ea(95,_|0,119716,Ca|0);Ca=n;n=0;if(!(Ca&1)){n=0;fa(134,h|0,_|0,c[d+28>>2]|0,c[d+32>>2]|0);d=n;n=0;if(d&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(_);if(g)Ha=127}else{f=sa()|0;P()|0;Ha=127}if((Ha|0)==127)va(h|0);c[ka>>2]=0;if(!o)break d;Xrb(o);RCb(o);break d}while(0);Chb(V);break d}}else{h=g;Ha=132}while(0);do if((Ha|0)==132){if(!(eCb(l)|0)){if(e){h=oa(20)|0;c[ga>>2]=0;c[ga+4>>2]=0;c[ga+8>>2]=0;d=Zzb(119809)|0;n=0;ea(95,ga|0,119809,d|0);d=n;n=0;if(!(d&1)){n=0;da(330,h|0,ga|0);d=n;n=0;if(d&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(ga);if(!g)break d}else{f=sa()|0;P()|0}va(h|0);break d}if(!(a[L>>0]&1))f=c[X>>2]|0;else{n=0;ca(567,Y|0);Ca=n;n=0;if(Ca&1)break;f=c[X>>2]|0;c[f+8>>2]=c[37408]}if(f|0?(n=0,da(620,f|0,c[ja>>2]|0),Ca=n,n=0,Ca&1):0)break;f=c[ma>>2]|0;if(!f){n=0;ca(566,Z|0);Ca=n;n=0;if(Ca&1)break;n=0;f=S(292,c[b+4>>2]|0)|0;Ca=n;n=0;if(Ca&1)break;c[ia>>2]=f;f=c[ma>>2]|0}if((c[f+12>>2]|0)!=(c[ja>>2]|0)){h=oa(20)|0;c[ra>>2]=0;c[ra+4>>2]=0;c[ra+8>>2]=0;Ca=Zzb(119832)|0;n=0;ea(95,ra|0,119832,Ca|0);Ca=n;n=0;if(!(Ca&1)){n=0;fa(134,h|0,ra|0,c[d+28>>2]|0,c[d+32>>2]|0);d=n;n=0;if(d&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(ra);if(!g)break d}else{f=sa()|0;P()|0}va(h|0);break d}c[f+44>>2]=c[ia>>2];c[(c[ma>>2]|0)+40>>2]=h;f=c[d+36>>2]|0;if(f|0){g=c[ma>>2]|0;n=0;ea(205,qa|0,b|0,f|0);Ca=n;n=0;if(Ca&1)break;n=0;fa(139,na|0,g+96|0,qa|0,qa|0);Ca=n;n=0;if(Ca&1)break}f=c[d+40>>2]|0;if(f|0){g=c[ma>>2]|0;n=0;ea(205,ua|0,b|0,f|0);Ca=n;n=0;if(Ca&1)break;n=0;fa(139,ta|0,g+108|0,ua|0,ua|0);Ca=n;n=0;if(Ca&1)break}g=c[ha>>2]|0;f=c[ma>>2]|0;c[ya>>2]=c[f+8>>2];c[Aa>>2]=c[ya>>2];if(!(lEa(g,Aa)|0)){c[b+84>>2]=0;n=0;da(216,g|0,f|0);Ha=n;n=0;if(Ha&1)break;Wka(b+88|0);fqa(b+112|0);Vob(Ga);Vob(Fa);Vob(Da);yb=Ba;return}h=oa(20)|0;c[za>>2]=0;c[za+4>>2]=0;c[za+8>>2]=0;Ca=Zzb(119853)|0;n=0;ea(95,za|0,119853,Ca|0);Ca=n;n=0;if(!(Ca&1)){n=0;fa(134,h|0,za|0,c[d+28>>2]|0,c[d+32>>2]|0);d=n;n=0;if(d&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(za);if(!g)break d}else{f=sa()|0;P()|0}va(h|0);break d}if(!(pnb(m)|0)){h=oa(20)|0;c[aa>>2]=0;c[aa+4>>2]=0;c[aa+8>>2]=0;d=Zzb(119315)|0;n=0;ea(95,aa|0,119315,d|0);d=n;n=0;if(!(d&1)){n=0;da(330,h|0,aa|0);d=n;n=0;if(d&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(aa);if(!g)break d}else{f=sa()|0;P()|0}va(h|0);break d}if(!e){h=oa(20)|0;c[ba>>2]=0;c[ba+4>>2]=0;c[ba+8>>2]=0;d=Zzb(119751)|0;n=0;ea(95,ba|0,119751,d|0);d=n;n=0;if(!(d&1)){n=0;da(330,h|0,ba|0);d=n;n=0;if(d&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(ba);if(!g)break d}else{f=sa()|0;P()|0}va(h|0);break d}n=0;ca(568,Ca|0);za=n;n=0;if(!(za&1)){g=c[Ca>>2]|0;i=g+8|0;c[i>>2]=c[la>>2];c[g>>2]=f;c[g+4>>2]=M;c[g+40>>2]=h;f=c[ha>>2]|0;c[$>>2]=h;n=0;c[Aa>>2]=c[$>>2];f=U(70,f|0,Aa|0)|0;za=n;n=0;do if(!(za&1)?(n=0,da(1638,g|0,f|0),za=n,n=0,!(za&1)):0){h=c[g+12>>2]|0;n=0;f=U(200,b+52|0,la|0)|0;za=n;n=0;if(za&1){f=sa()|0;P()|0;c[Ca>>2]=0;break}c[f>>2]=h;f=c[ha>>2]|0;c[pa>>2]=c[i>>2];c[Aa>>2]=c[pa>>2];if(lEa(f,Aa)|0){i=oa(20)|0;c[wa>>2]=0;c[wa+4>>2]=0;c[wa+8>>2]=0;Ba=Zzb(119371)|0;n=0;ea(95,wa|0,119371,Ba|0);Ba=n;n=0;if(!(Ba&1)){n=0;fa(134,i|0,wa|0,c[d+28>>2]|0,c[d+32>>2]|0);d=n;n=0;if(d&1)h=1;else{n=0;ea(122,i|0,31856,511);n=0;h=0}f=sa()|0;P()|0;Chb(wa);if(h)Ha=158}else{f=sa()|0;P()|0;Ha=158}if((Ha|0)==158)va(i|0);c[Ca>>2]=0;break}c[Ca>>2]=0;n=0;da(216,f|0,g|0);d=n;n=0;if(d&1){f=sa()|0;P()|0;c[Ca>>2]=0;break d}if(!(c[ma>>2]|0)){Wka(b+88|0);fqa(b+112|0);c[Ca>>2]=0;Vob(Ga);Vob(Fa);Vob(Da);yb=Ba;return}h=oa(20)|0;c[xa>>2]=0;c[xa+4>>2]=0;c[xa+8>>2]=0;d=Zzb(119775)|0;n=0;ea(95,xa|0,119775,d|0);d=n;n=0;if(!(d&1)){n=0;da(330,h|0,xa|0);d=n;n=0;if(d&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}f=sa()|0;P()|0;Chb(xa);if(g)Ha=167}else{f=sa()|0;P()|0;Ha=167}if((Ha|0)==167)va(h|0);c[Ca>>2]=0;break d}else Ha=171;while(0);if((Ha|0)==171){f=sa()|0;P()|0;c[Ca>>2]=0;if(!g)break d}IM(g);RCb(g);break d}}while(0);f=sa()|0;P()|0;Ha=41}while(0);Vob(Ga);Vob(Fa);Vob(Da);Ha=f;Ea(Ha|0)}function nc(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,o=0,p=0,q=0,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,Q=0,R=0,S=0,T=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,fa=0;fa=yb;yb=yb+1488|0;f=fa+432|0;g=fa+408|0;h=fa+384|0;i=fa+360|0;j=fa+336|0;k=fa+312|0;u=fa+1472|0;x=fa+1468|0;S=fa+1328|0;v=fa+1316|0;N=fa+1304|0;y=fa+288|0;z=fa+264|0;A=fa+256|0;T=fa+1164|0;w=fa+1152|0;O=fa+1140|0;Q=fa+232|0;R=fa+208|0;o=fa+184|0;p=fa+160|0;Z=fa+1e3|0;B=fa+988|0;C=fa+984|0;V=fa+972|0;D=fa+136|0;_=fa+832|0;E=fa+820|0;F=fa+816|0;W=fa+804|0;G=fa+112|0;$=fa+664|0;H=fa+652|0;I=fa+104|0;X=fa+640|0;J=fa+80|0;aa=fa+500|0;K=fa+488|0;L=fa+72|0;Y=fa+476|0;M=fa+48|0;q=fa+472|0;r=fa+24|0;s=fa+468|0;t=fa;ba=fa+456|0;ca=Ojb(e)|0;c[ca+4>>2]=d;if(yxb(d)|0){if(dub(b,c[37402]|0)|0){switch(d|0){case 3:{pUa(f,m);ba=ca+8|0;c[ba>>2]=c[f>>2];c[ba+4>>2]=c[f+4>>2];c[ba+8>>2]=c[f+8>>2];c[ba+12>>2]=c[f+12>>2];c[ba+16>>2]=c[f+16>>2];break}case 4:{kEa(g,m);ba=ca+8|0;c[ba>>2]=c[g>>2];c[ba+4>>2]=c[g+4>>2];c[ba+8>>2]=c[g+8>>2];c[ba+12>>2]=c[g+12>>2];c[ba+16>>2]=c[g+16>>2];break}default:{ca=0;yb=fa;return ca|0}}yb=fa;return ca|0}if(dub(b,c[37403]|0)|0){switch(d|0){case 3:{pUa(h,-m);ba=ca+8|0;c[ba>>2]=c[h>>2];c[ba+4>>2]=c[h+4>>2];c[ba+8>>2]=c[h+8>>2];c[ba+12>>2]=c[h+12>>2];c[ba+16>>2]=c[h+16>>2];break}case 4:{kEa(i,-m);ba=ca+8|0;c[ba>>2]=c[i>>2];c[ba+4>>2]=c[i+4>>2];c[ba+8>>2]=c[i+8>>2];c[ba+12>>2]=c[i+12>>2];c[ba+16>>2]=c[i+16>>2];break}default:{ca=0;yb=fa;return ca|0}}yb=fa;return ca|0}if(dub(b,c[37401]|0)|0){switch(d|0){case 3:{pUa(j,l);ba=ca+8|0;c[ba>>2]=c[j>>2];c[ba+4>>2]=c[j+4>>2];c[ba+8>>2]=c[j+8>>2];c[ba+12>>2]=c[j+12>>2];c[ba+16>>2]=c[j+16>>2];break}case 4:{kEa(k,l);ba=ca+8|0;c[ba>>2]=c[k>>2];c[ba+4>>2]=c[k+4>>2];c[ba+8>>2]=c[k+8>>2];c[ba+12>>2]=c[k+12>>2];c[ba+16>>2]=c[k+16>>2];break}default:{ca=0;yb=fa;return ca|0}}yb=fa;return ca|0}e=a[b>>0]|0;h=e<<24>>24==45;switch(e<<24>>24){case 43:case 45:{e=b+1|0;f=e;e=a[e>>0]|0;break}default:f=b}if((e<<24>>24==110?(a[f+1>>0]|0)==97:0)?(a[f+2>>0]|0)==110:0){do if((a[f+3>>0]|0)==58){e=f+4|0;if((a[e>>0]|0)==48?(a[f+5>>0]|0)==120:0)break;g=oa(20)|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;fa=Zzb(125672)|0;n=0;ea(95,u|0,125672,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,u|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(u);if(!f){fa=e;Ea(fa|0)}}else{e=sa()|0;P()|0}va(g|0);fa=e;Ea(fa|0)}else e=0;while(0);switch(d|0){case 3:{a:do if(!e)c[x>>2]=2143289344;else{c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;D8(v,e,Zzb(e)|0);g=S+60|0;c[S>>2]=37812;c[g>>2]=37832;c[S+4>>2]=0;Hoa(S+60|0,S+8|0);c[S+132>>2]=0;c[S+136>>2]=-1;c[S>>2]=46360;c[g>>2]=46380;g=S+8|0;RKa(g);c[g>>2]=39800;f=S+40|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[f+(e<<2)>>2]=0;e=e+1|0}c[S+52>>2]=0;c[S+56>>2]=8;n=0;da(4060,g|0,v|0);ba=n;n=0;if(ba&1){fa=sa()|0;P()|0;Chb(f);olb(g);ktb(S+60|0);Chb(v);Ea(fa|0)}Chb(v);Mpb(S+(c[(c[S>>2]|0)+-12>>2]|0)|0);n=0;U(208,S|0,x|0)|0;ba=n;n=0;do if(ba&1){e=sa()|0;P()|0}else{if(!(c[S+(c[(c[S>>2]|0)+-12>>2]|0)+16>>2]&5)){c[x>>2]=c[x>>2]|2139095040;w$a(S);break a}g=oa(20)|0;c[N>>2]=0;c[N+4>>2]=0;c[N+8>>2]=0;fa=Zzb(125686)|0;n=0;ea(95,N|0,125686,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,N|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(N);if(!f)break}else{e=sa()|0;P()|0}va(g|0)}while(0);w$a(S);fa=e;Ea(fa|0)}while(0);if(h)c[x>>2]=c[x>>2]|-2147483648;ba=((irb(+AAb(x))|0)&2147483647)>>>0>2139095040;e=c[x>>2]|0;if(!ba){e=e|1;c[x>>2]=e}Bqb(z,e);r_a(y,z);ba=ca+8|0;c[ba>>2]=c[y>>2];c[ba+4>>2]=c[y+4>>2];c[ba+8>>2]=c[y+8>>2];c[ba+12>>2]=c[y+12>>2];c[ba+16>>2]=c[y+16>>2];break}case 4:{b:do if(!e){ba=A;c[ba>>2]=0;c[ba+4>>2]=2146959360}else{c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;D8(w,e,Zzb(e)|0);f=T+60|0;c[T>>2]=37812;c[f>>2]=37832;c[T+4>>2]=0;Hoa(T+60|0,T+8|0);c[T+132>>2]=0;c[T+136>>2]=-1;c[T>>2]=46360;c[f>>2]=46380;f=T+8|0;RKa(f);c[f>>2]=39800;g=T+40|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[g+(e<<2)>>2]=0;e=e+1|0}c[T+52>>2]=0;c[T+56>>2]=8;n=0;da(4060,f|0,w|0);ba=n;n=0;if(ba&1){fa=sa()|0;P()|0;Chb(g);olb(f);ktb(T+60|0);Chb(w);Ea(fa|0)}Chb(w);Mpb(T+(c[(c[T>>2]|0)+-12>>2]|0)|0);n=0;U(209,T|0,A|0)|0;ba=n;n=0;do if(ba&1){e=sa()|0;P()|0}else{if(!(c[T+(c[(c[T>>2]|0)+-12>>2]|0)+16>>2]&5)){b=A;d=c[b+4>>2]|2146435072;ba=A;c[ba>>2]=c[b>>2];c[ba+4>>2]=d;w$a(T);break b}g=oa(20)|0;c[O>>2]=0;c[O+4>>2]=0;c[O+8>>2]=0;fa=Zzb(125705)|0;n=0;ea(95,O|0,125705,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,O|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(O);if(!f)break}else{e=sa()|0;P()|0}va(g|0)}while(0);w$a(T);fa=e;Ea(fa|0)}while(0);if(h){b=A;d=c[b+4>>2]|-2147483648;ba=A;c[ba>>2]=c[b>>2];c[ba+4>>2]=d}ba=leb(+BAb(A))|0;d=(P()|0)&2147483647;e=A;f=c[e>>2]|0;e=c[e+4>>2]|0;if(!(d>>>0>2146435072|(d|0)==2146435072&ba>>>0>0)){f=f|1;ba=A;c[ba>>2]=f;c[ba+4>>2]=e}Heb(R,f,e);qUa(Q,R);ba=ca+8|0;c[ba>>2]=c[Q>>2];c[ba+4>>2]=c[Q+4>>2];c[ba+8>>2]=c[Q+8>>2];c[ba+12>>2]=c[Q+12>>2];c[ba+16>>2]=c[Q+16>>2];break}default:{ca=0;yb=fa;return ca|0}}yb=fa;return ca|0}if(dub(b,c[37404]|0)|0){switch(d|0){case 3:{pUa(o,l);ba=ca+8|0;c[ba>>2]=c[o>>2];c[ba+4>>2]=c[o+4>>2];c[ba+8>>2]=c[o+8>>2];c[ba+12>>2]=c[o+12>>2];c[ba+16>>2]=c[o+16>>2];break}case 4:{kEa(p,l);ba=ca+8|0;c[ba>>2]=c[p>>2];c[ba+4>>2]=c[p+4>>2];c[ba+8>>2]=c[p+8>>2];c[ba+12>>2]=c[p+12>>2];c[ba+16>>2]=c[p+16>>2];break}default:{ca=0;yb=fa;return ca|0}}yb=fa;return ca|0}}c:do switch(d|0){case 1:{f=a[b>>0]|0;if(f<<24>>24==48)if((a[b+1>>0]|0)==120)g=91;else{e=f<<24>>24==45;g=107}else{e=f<<24>>24==45;if((e?(a[b+1>>0]|0)==48:0)?(a[b+2>>0]|0)==120:0)g=91;else g=107}if((g|0)==91){h=f<<24>>24==45;f=h?b+1|0:b;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;D8(B,f,Zzb(f)|0);f=Z+60|0;c[Z>>2]=37812;c[f>>2]=37832;c[Z+4>>2]=0;Hoa(Z+60|0,Z+8|0);c[Z+132>>2]=0;c[Z+136>>2]=-1;c[Z>>2]=46360;c[f>>2]=46380;f=Z+8|0;RKa(f);c[f>>2]=39800;g=Z+40|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[g+(e<<2)>>2]=0;e=e+1|0}c[Z+52>>2]=0;c[Z+56>>2]=8;n=0;da(4060,f|0,B|0);b=n;n=0;if(b&1){fa=sa()|0;P()|0;Chb(g);olb(f);ktb(Z+60|0);Chb(B);Ea(fa|0)}Chb(B);Mpb(Z+(c[(c[Z>>2]|0)+-12>>2]|0)|0);n=0;U(208,Z|0,C|0)|0;b=n;n=0;do if(b&1){e=sa()|0;P()|0}else{if(!(c[Z+(c[(c[Z>>2]|0)+-12>>2]|0)+16>>2]&5)){b=c[C>>2]|0;Bqb(D,h?0-b|0:b);b=ca+8|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];w$a(Z);break c}g=oa(20)|0;c[V>>2]=0;c[V+4>>2]=0;c[V+8>>2]=0;fa=Zzb(125724)|0;n=0;ea(95,V|0,125724,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,V|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(V);if(!f)break}else{e=sa()|0;P()|0}va(g|0)}while(0);w$a(Z);fa=e;Ea(fa|0)}else if((g|0)==107){f=e?b+1|0:b;c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;D8(E,f,Zzb(f)|0);f=_+60|0;c[_>>2]=37812;c[f>>2]=37832;c[_+4>>2]=0;Hoa(_+60|0,_+8|0);c[_+132>>2]=0;c[_+136>>2]=-1;c[_>>2]=46360;c[f>>2]=46380;f=_+8|0;RKa(f);c[f>>2]=39800;g=_+40|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[g+(e<<2)>>2]=0;e=e+1|0}c[_+52>>2]=0;c[_+56>>2]=8;n=0;da(4060,f|0,E|0);aa=n;n=0;if(aa&1){fa=sa()|0;P()|0;Chb(g);olb(f);ktb(_+60|0);Chb(E);Ea(fa|0)}Chb(E);n=0;U(208,_|0,F|0)|0;aa=n;n=0;do if(aa&1){e=sa()|0;P()|0}else{if(!(c[_+(c[(c[_>>2]|0)+-12>>2]|0)+16>>2]&5)){aa=c[F>>2]|0;Bqb(G,(a[b>>0]|0)==45?0-aa|0:aa);b=ca+8|0;c[b>>2]=c[G>>2];c[b+4>>2]=c[G+4>>2];c[b+8>>2]=c[G+8>>2];c[b+12>>2]=c[G+12>>2];c[b+16>>2]=c[G+16>>2];w$a(_);break c}g=oa(20)|0;c[W>>2]=0;c[W+4>>2]=0;c[W+8>>2]=0;fa=Zzb(125724)|0;n=0;ea(95,W|0,125724,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,W|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(W);if(!f)break}else{e=sa()|0;P()|0}va(g|0)}while(0);w$a(_);fa=e;Ea(fa|0)}break}case 2:{f=a[b>>0]|0;if(f<<24>>24==48)if((a[b+1>>0]|0)==120)g=129;else{e=f<<24>>24==45;g=145}else{e=f<<24>>24==45;if((e?(a[b+1>>0]|0)==48:0)?(a[b+2>>0]|0)==120:0)g=129;else g=145}if((g|0)==129){h=f<<24>>24==45;f=h?b+1|0:b;c[H>>2]=0;c[H+4>>2]=0;c[H+8>>2]=0;D8(H,f,Zzb(f)|0);f=$+60|0;c[$>>2]=37812;c[f>>2]=37832;c[$+4>>2]=0;Hoa($+60|0,$+8|0);c[$+132>>2]=0;c[$+136>>2]=-1;c[$>>2]=46360;c[f>>2]=46380;f=$+8|0;RKa(f);c[f>>2]=39800;g=$+40|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[g+(e<<2)>>2]=0;e=e+1|0}c[$+52>>2]=0;c[$+56>>2]=8;n=0;da(4060,f|0,H|0);b=n;n=0;if(b&1){fa=sa()|0;P()|0;Chb(g);olb(f);ktb($+60|0);Chb(H);Ea(fa|0)}Chb(H);Mpb($+(c[(c[$>>2]|0)+-12>>2]|0)|0);n=0;U(209,$|0,I|0)|0;b=n;n=0;do if(b&1){e=sa()|0;P()|0}else{if(!(c[$+(c[(c[$>>2]|0)+-12>>2]|0)+16>>2]&5)){b=I;_=c[b>>2]|0;b=c[b+4>>2]|0;Z=Ndb(0,0,_|0,b|0)|0;aa=P()|0;Heb(J,h?Z:_,h?aa:b);b=ca+8|0;c[b>>2]=c[J>>2];c[b+4>>2]=c[J+4>>2];c[b+8>>2]=c[J+8>>2];c[b+12>>2]=c[J+12>>2];c[b+16>>2]=c[J+16>>2];w$a($);break c}g=oa(20)|0;c[X>>2]=0;c[X+4>>2]=0;c[X+8>>2]=0;fa=Zzb(125743)|0;n=0;ea(95,X|0,125743,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,X|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(X);if(!f)break}else{e=sa()|0;P()|0}va(g|0)}while(0);w$a($);fa=e;Ea(fa|0)}else if((g|0)==145){f=e?b+1|0:b;c[K>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;D8(K,f,Zzb(f)|0);f=aa+60|0;c[aa>>2]=37812;c[f>>2]=37832;c[aa+4>>2]=0;Hoa(aa+60|0,aa+8|0);c[aa+132>>2]=0;c[aa+136>>2]=-1;c[aa>>2]=46360;c[f>>2]=46380;f=aa+8|0;RKa(f);c[f>>2]=39800;g=aa+40|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[g+(e<<2)>>2]=0;e=e+1|0}c[aa+52>>2]=0;c[aa+56>>2]=8;n=0;da(4060,f|0,K|0);$=n;n=0;if($&1){fa=sa()|0;P()|0;Chb(g);olb(f);ktb(aa+60|0);Chb(K);Ea(fa|0)}Chb(K);n=0;U(209,aa|0,L|0)|0;$=n;n=0;do if($&1){e=sa()|0;P()|0}else{if(!(c[aa+(c[(c[aa>>2]|0)+-12>>2]|0)+16>>2]&5)){_=(a[b>>0]|0)==45;b=L;Z=c[b>>2]|0;b=c[b+4>>2]|0;Y=Ndb(0,0,Z|0,b|0)|0;$=P()|0;Heb(M,_?Y:Z,_?$:b);b=ca+8|0;c[b>>2]=c[M>>2];c[b+4>>2]=c[M+4>>2];c[b+8>>2]=c[M+8>>2];c[b+12>>2]=c[M+12>>2];c[b+16>>2]=c[M+16>>2];w$a(aa);break c}g=oa(20)|0;c[Y>>2]=0;c[Y+4>>2]=0;c[Y+8>>2]=0;fa=Zzb(125743)|0;n=0;ea(95,Y|0,125743,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,Y|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(Y);if(!f)break}else{e=sa()|0;P()|0}va(g|0)}while(0);w$a(aa);fa=e;Ea(fa|0)}break}case 3:{pUa(r,+$zb(b,q));b=ca+8|0;c[b>>2]=c[r>>2];c[b+4>>2]=c[r+4>>2];c[b+8>>2]=c[r+8>>2];c[b+12>>2]=c[r+12>>2];c[b+16>>2]=c[r+16>>2];break}case 4:{kEa(t,+aAb(b,s));b=ca+8|0;c[b>>2]=c[t>>2];c[b+4>>2]=c[t+4>>2];c[b+8>>2]=c[t+8>>2];c[b+12>>2]=c[t+12>>2];c[b+16>>2]=c[t+16>>2];break}case 5:{ma(141129,125762,216,125785);break}case 6:case 0:{ca=0;yb=fa;return ca|0}default:{}}while(0);if((c[ca+24>>2]|0)==(d|0)){yb=fa;return ca|0}g=oa(20)|0;c[ba>>2]=0;c[ba+4>>2]=0;c[ba+8>>2]=0;fa=Zzb(125796)|0;n=0;ea(95,ba|0,125796,fa|0);fa=n;n=0;if(!(fa&1)){n=0;da(330,g|0,ba|0);fa=n;n=0;if(fa&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}e=sa()|0;P()|0;Chb(ba);if(!f){fa=e;Ea(fa|0)}}else{e=sa()|0;P()|0}va(g|0);fa=e;Ea(fa|0);return 0}function oc(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=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;Ba=yb;yb=yb+304|0;o=Ba+300|0;z=Ba+296|0;K=Ba+292|0;V=Ba+288|0;ea=Ba+284|0;qa=Ba+280|0;za=Ba+276|0;Aa=Ba+272|0;e=Ba+268|0;f=Ba+264|0;g=Ba+260|0;h=Ba+256|0;i=Ba+252|0;j=Ba+248|0;k=Ba+244|0;l=Ba+240|0;m=Ba+236|0;n=Ba+232|0;p=Ba+228|0;q=Ba+224|0;r=Ba+220|0;s=Ba+216|0;t=Ba+212|0;u=Ba+208|0;v=Ba+204|0;w=Ba+200|0;x=Ba+196|0;y=Ba+192|0;A=Ba+188|0;B=Ba+184|0;C=Ba+180|0;D=Ba+176|0;E=Ba+172|0;F=Ba+168|0;G=Ba+164|0;H=Ba+160|0;I=Ba+156|0;J=Ba+152|0;L=Ba+148|0;M=Ba+144|0;N=Ba+140|0;O=Ba+136|0;P=Ba+132|0;Q=Ba+128|0;R=Ba+124|0;S=Ba+120|0;T=Ba+116|0;U=Ba+112|0;W=Ba+108|0;X=Ba+104|0;Y=Ba+100|0;Z=Ba+96|0;_=Ba+92|0;$=Ba+88|0;aa=Ba+84|0;ba=Ba+80|0;ca=Ba+76|0;da=Ba+72|0;fa=Ba+68|0;ga=Ba+64|0;ha=Ba+60|0;ia=Ba+56|0;ja=Ba+52|0;ka=Ba+48|0;la=Ba+44|0;na=Ba+40|0;oa=Ba+36|0;pa=Ba+32|0;ra=Ba+28|0;sa=Ba+24|0;ta=Ba+20|0;ua=Ba+16|0;va=Ba+12|0;wa=Ba+8|0;xa=Ba+4|0;ya=Ba;if(a[b+33>>0]&1)BM(IWa(150620,112749)|0);T_a(b,c[d+12>>2]|0);T_a(b,c[d+16>>2]|0);if((c[d+4>>2]|0)==6){Ygb(c[b+28>>2]|0);yb=Ba;return}do switch(c[d+8>>2]|0){case 0:{tI(c[b+28>>2]|0,106)|0;yb=Ba;return}case 1:{tI(c[b+28>>2]|0,107)|0;yb=Ba;return}case 2:{tI(c[b+28>>2]|0,108)|0;yb=Ba;return}case 3:{tI(c[b+28>>2]|0,109)|0;yb=Ba;return}case 4:{tI(c[b+28>>2]|0,110)|0;yb=Ba;return}case 5:{tI(c[b+28>>2]|0,111)|0;yb=Ba;return}case 6:{tI(c[b+28>>2]|0,112)|0;yb=Ba;return}case 7:{tI(c[b+28>>2]|0,113)|0;yb=Ba;return}case 8:{tI(c[b+28>>2]|0,114)|0;yb=Ba;return}case 9:{tI(c[b+28>>2]|0,115)|0;yb=Ba;return}case 10:{tI(c[b+28>>2]|0,116)|0;yb=Ba;return}case 11:{tI(c[b+28>>2]|0,118)|0;yb=Ba;return}case 12:{tI(c[b+28>>2]|0,117)|0;yb=Ba;return}case 13:{tI(c[b+28>>2]|0,119)|0;yb=Ba;return}case 14:{tI(c[b+28>>2]|0,120)|0;yb=Ba;return}case 15:{tI(c[b+28>>2]|0,70)|0;yb=Ba;return}case 16:{tI(c[b+28>>2]|0,71)|0;yb=Ba;return}case 17:{tI(c[b+28>>2]|0,72)|0;yb=Ba;return}case 18:{tI(c[b+28>>2]|0,73)|0;yb=Ba;return}case 19:{tI(c[b+28>>2]|0,76)|0;yb=Ba;return}case 20:{tI(c[b+28>>2]|0,77)|0;yb=Ba;return}case 21:{tI(c[b+28>>2]|0,74)|0;yb=Ba;return}case 22:{tI(c[b+28>>2]|0,75)|0;yb=Ba;return}case 23:{tI(c[b+28>>2]|0,78)|0;yb=Ba;return}case 24:{tI(c[b+28>>2]|0,79)|0;yb=Ba;return}case 25:{tI(c[b+28>>2]|0,124)|0;yb=Ba;return}case 26:{tI(c[b+28>>2]|0,125)|0;yb=Ba;return}case 27:{tI(c[b+28>>2]|0,126)|0;yb=Ba;return}case 28:{tI(c[b+28>>2]|0,127)|0;yb=Ba;return}case 29:{tI(c[b+28>>2]|0,-128)|0;yb=Ba;return}case 30:{tI(c[b+28>>2]|0,-127)|0;yb=Ba;return}case 31:{tI(c[b+28>>2]|0,-126)|0;yb=Ba;return}case 32:{tI(c[b+28>>2]|0,-125)|0;yb=Ba;return}case 33:{tI(c[b+28>>2]|0,-124)|0;yb=Ba;return}case 34:{tI(c[b+28>>2]|0,-123)|0;yb=Ba;return}case 35:{tI(c[b+28>>2]|0,-122)|0;yb=Ba;return}case 36:{tI(c[b+28>>2]|0,-120)|0;yb=Ba;return}case 37:{tI(c[b+28>>2]|0,-121)|0;yb=Ba;return}case 38:{tI(c[b+28>>2]|0,-119)|0;yb=Ba;return}case 39:{tI(c[b+28>>2]|0,-118)|0;yb=Ba;return}case 40:{tI(c[b+28>>2]|0,81)|0;yb=Ba;return}case 41:{tI(c[b+28>>2]|0,82)|0;yb=Ba;return}case 42:{tI(c[b+28>>2]|0,83)|0;yb=Ba;return}case 43:{tI(c[b+28>>2]|0,84)|0;yb=Ba;return}case 44:{tI(c[b+28>>2]|0,87)|0;yb=Ba;return}case 45:{tI(c[b+28>>2]|0,88)|0;yb=Ba;return}case 46:{tI(c[b+28>>2]|0,85)|0;yb=Ba;return}case 47:{tI(c[b+28>>2]|0,86)|0;yb=Ba;return}case 48:{tI(c[b+28>>2]|0,89)|0;yb=Ba;return}case 49:{tI(c[b+28>>2]|0,90)|0;yb=Ba;return}case 50:{tI(c[b+28>>2]|0,-110)|0;yb=Ba;return}case 51:{tI(c[b+28>>2]|0,-109)|0;yb=Ba;return}case 52:{tI(c[b+28>>2]|0,-108)|0;yb=Ba;return}case 53:{tI(c[b+28>>2]|0,-107)|0;yb=Ba;return}case 54:{tI(c[b+28>>2]|0,-104)|0;yb=Ba;return}case 55:{tI(c[b+28>>2]|0,-106)|0;yb=Ba;return}case 56:{tI(c[b+28>>2]|0,-105)|0;yb=Ba;return}case 57:{tI(c[b+28>>2]|0,91)|0;yb=Ba;return}case 58:{tI(c[b+28>>2]|0,92)|0;yb=Ba;return}case 59:{tI(c[b+28>>2]|0,93)|0;yb=Ba;return}case 60:{tI(c[b+28>>2]|0,95)|0;yb=Ba;return}case 61:{tI(c[b+28>>2]|0,94)|0;yb=Ba;return}case 62:{tI(c[b+28>>2]|0,96)|0;yb=Ba;return}case 63:{tI(c[b+28>>2]|0,-96)|0;yb=Ba;return}case 64:{tI(c[b+28>>2]|0,-95)|0;yb=Ba;return}case 65:{tI(c[b+28>>2]|0,-94)|0;yb=Ba;return}case 66:{tI(c[b+28>>2]|0,-93)|0;yb=Ba;return}case 67:{tI(c[b+28>>2]|0,-90)|0;yb=Ba;return}case 68:{tI(c[b+28>>2]|0,-92)|0;yb=Ba;return}case 69:{tI(c[b+28>>2]|0,-91)|0;yb=Ba;return}case 70:{tI(c[b+28>>2]|0,97)|0;yb=Ba;return}case 71:{tI(c[b+28>>2]|0,98)|0;yb=Ba;return}case 72:{tI(c[b+28>>2]|0,99)|0;yb=Ba;return}case 73:{tI(c[b+28>>2]|0,101)|0;yb=Ba;return}case 74:{tI(c[b+28>>2]|0,100)|0;yb=Ba;return}case 75:{tI(c[b+28>>2]|0,102)|0;yb=Ba;return}case 76:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(o,24);YA(Aa,c[o>>2]|0)|0;yb=Ba;return}case 77:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(z,25);YA(Aa,c[z>>2]|0)|0;yb=Ba;return}case 78:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(K,26);YA(Aa,c[K>>2]|0)|0;yb=Ba;return}case 79:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(V,27);YA(Aa,c[V>>2]|0)|0;yb=Ba;return}case 80:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ea,28);YA(Aa,c[ea>>2]|0)|0;yb=Ba;return}case 81:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(qa,29);YA(Aa,c[qa>>2]|0)|0;yb=Ba;return}case 82:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(za,30);YA(Aa,c[za>>2]|0)|0;yb=Ba;return}case 83:{za=tI(c[b+28>>2]|0,-3)|0;Pwb(Aa,31);YA(za,c[Aa>>2]|0)|0;yb=Ba;return}case 84:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(e,32);YA(Aa,c[e>>2]|0)|0;yb=Ba;return}case 85:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(f,33);YA(Aa,c[f>>2]|0)|0;yb=Ba;return}case 86:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(g,34);YA(Aa,c[g>>2]|0)|0;yb=Ba;return}case 87:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(h,35);YA(Aa,c[h>>2]|0)|0;yb=Ba;return}case 88:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(i,36);YA(Aa,c[i>>2]|0)|0;yb=Ba;return}case 89:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(j,37);YA(Aa,c[j>>2]|0)|0;yb=Ba;return}case 90:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(k,38);YA(Aa,c[k>>2]|0)|0;yb=Ba;return}case 91:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(l,39);YA(Aa,c[l>>2]|0)|0;yb=Ba;return}case 92:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(m,40);YA(Aa,c[m>>2]|0)|0;yb=Ba;return}case 93:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(n,41);YA(Aa,c[n>>2]|0)|0;yb=Ba;return}case 94:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(p,42);YA(Aa,c[p>>2]|0)|0;yb=Ba;return}case 95:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(q,43);YA(Aa,c[q>>2]|0)|0;yb=Ba;return}case 96:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(r,44);YA(Aa,c[r>>2]|0)|0;yb=Ba;return}case 97:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(s,45);YA(Aa,c[s>>2]|0)|0;yb=Ba;return}case 98:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(t,46);YA(Aa,c[t>>2]|0)|0;yb=Ba;return}case 99:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(u,47);YA(Aa,c[u>>2]|0)|0;yb=Ba;return}case 100:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(v,48);YA(Aa,c[v>>2]|0)|0;yb=Ba;return}case 101:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(w,49);YA(Aa,c[w>>2]|0)|0;yb=Ba;return}case 102:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(x,50);YA(Aa,c[x>>2]|0)|0;yb=Ba;return}case 103:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(y,51);YA(Aa,c[y>>2]|0)|0;yb=Ba;return}case 104:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(A,52);YA(Aa,c[A>>2]|0)|0;yb=Ba;return}case 105:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(B,53);YA(Aa,c[B>>2]|0)|0;yb=Ba;return}case 106:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(C,64);YA(Aa,c[C>>2]|0)|0;yb=Ba;return}case 107:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(D,65);YA(Aa,c[D>>2]|0)|0;yb=Ba;return}case 108:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(E,66);YA(Aa,c[E>>2]|0)|0;yb=Ba;return}case 109:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(F,67);YA(Aa,c[F>>2]|0)|0;yb=Ba;return}case 110:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(G,68);YA(Aa,c[G>>2]|0)|0;yb=Ba;return}case 111:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(H,69);YA(Aa,c[H>>2]|0)|0;yb=Ba;return}case 112:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(I,70);YA(Aa,c[I>>2]|0)|0;yb=Ba;return}case 113:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(J,71);YA(Aa,c[J>>2]|0)|0;yb=Ba;return}case 114:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(L,72);YA(Aa,c[L>>2]|0)|0;yb=Ba;return}case 115:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(M,73);YA(Aa,c[M>>2]|0)|0;yb=Ba;return}case 116:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(N,74);YA(Aa,c[N>>2]|0)|0;yb=Ba;return}case 117:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(O,75);YA(Aa,c[O>>2]|0)|0;yb=Ba;return}case 118:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(P,77);YA(Aa,c[P>>2]|0)|0;yb=Ba;return}case 119:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(Q,78);YA(Aa,c[Q>>2]|0)|0;yb=Ba;return}case 120:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(R,79);YA(Aa,c[R>>2]|0)|0;yb=Ba;return}case 121:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(S,87);YA(Aa,c[S>>2]|0)|0;yb=Ba;return}case 122:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(T,88);YA(Aa,c[T>>2]|0)|0;yb=Ba;return}case 123:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(U,89);YA(Aa,c[U>>2]|0)|0;yb=Ba;return}case 124:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(W,90);YA(Aa,c[W>>2]|0)|0;yb=Ba;return}case 125:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(X,91);YA(Aa,c[X>>2]|0)|0;yb=Ba;return}case 126:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(Y,92);YA(Aa,c[Y>>2]|0)|0;yb=Ba;return}case 127:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(Z,93);YA(Aa,c[Z>>2]|0)|0;yb=Ba;return}case 128:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(_,104);YA(Aa,c[_>>2]|0)|0;yb=Ba;return}case 129:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb($,105);YA(Aa,c[$>>2]|0)|0;yb=Ba;return}case 130:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(aa,106);YA(Aa,c[aa>>2]|0)|0;yb=Ba;return}case 131:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ba,107);YA(Aa,c[ba>>2]|0)|0;yb=Ba;return}case 132:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ca,108);YA(Aa,c[ca>>2]|0)|0;yb=Ba;return}case 133:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(da,109);YA(Aa,c[da>>2]|0)|0;yb=Ba;return}case 134:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(fa,110);YA(Aa,c[fa>>2]|0)|0;yb=Ba;return}case 135:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ga,121);YA(Aa,c[ga>>2]|0)|0;yb=Ba;return}case 136:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ha,124);YA(Aa,c[ha>>2]|0)|0;yb=Ba;return}case 137:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ia,127);YA(Aa,c[ia>>2]|0)|0;yb=Ba;return}case 138:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ja,138);YA(Aa,c[ja>>2]|0)|0;yb=Ba;return}case 139:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ka,141);YA(Aa,c[ka>>2]|0)|0;yb=Ba;return}case 140:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(la,154);YA(Aa,c[la>>2]|0)|0;yb=Ba;return}case 141:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(na,155);YA(Aa,c[na>>2]|0)|0;yb=Ba;return}case 142:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(oa,156);YA(Aa,c[oa>>2]|0)|0;yb=Ba;return}case 143:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(pa,157);YA(Aa,c[pa>>2]|0)|0;yb=Ba;return}case 144:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ra,158);YA(Aa,c[ra>>2]|0)|0;yb=Ba;return}case 145:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(sa,159);YA(Aa,c[sa>>2]|0)|0;yb=Ba;return}case 146:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ta,165);YA(Aa,c[ta>>2]|0)|0;yb=Ba;return}case 147:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ua,166);YA(Aa,c[ua>>2]|0)|0;yb=Ba;return}case 148:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(va,167);YA(Aa,c[va>>2]|0)|0;yb=Ba;return}case 149:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(wa,168);YA(Aa,c[wa>>2]|0)|0;yb=Ba;return}case 150:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(xa,169);YA(Aa,c[xa>>2]|0)|0;yb=Ba;return}case 151:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ya,170);YA(Aa,c[ya>>2]|0)|0;yb=Ba;return}case 152:{ma(141129,112765,1314,131297);break}default:{yb=Ba;return}}while(0)}function pc(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=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;Ba=yb;yb=yb+304|0;o=Ba+300|0;z=Ba+296|0;K=Ba+292|0;V=Ba+288|0;ea=Ba+284|0;qa=Ba+280|0;za=Ba+276|0;Aa=Ba+272|0;e=Ba+268|0;f=Ba+264|0;g=Ba+260|0;h=Ba+256|0;i=Ba+252|0;j=Ba+248|0;k=Ba+244|0;l=Ba+240|0;m=Ba+236|0;n=Ba+232|0;p=Ba+228|0;q=Ba+224|0;r=Ba+220|0;s=Ba+216|0;t=Ba+212|0;u=Ba+208|0;v=Ba+204|0;w=Ba+200|0;x=Ba+196|0;y=Ba+192|0;A=Ba+188|0;B=Ba+184|0;C=Ba+180|0;D=Ba+176|0;E=Ba+172|0;F=Ba+168|0;G=Ba+164|0;H=Ba+160|0;I=Ba+156|0;J=Ba+152|0;L=Ba+148|0;M=Ba+144|0;N=Ba+140|0;O=Ba+136|0;P=Ba+132|0;Q=Ba+128|0;R=Ba+124|0;S=Ba+120|0;T=Ba+116|0;U=Ba+112|0;W=Ba+108|0;X=Ba+104|0;Y=Ba+100|0;Z=Ba+96|0;_=Ba+92|0;$=Ba+88|0;aa=Ba+84|0;ba=Ba+80|0;ca=Ba+76|0;da=Ba+72|0;fa=Ba+68|0;ga=Ba+64|0;ha=Ba+60|0;ia=Ba+56|0;ja=Ba+52|0;ka=Ba+48|0;la=Ba+44|0;na=Ba+40|0;oa=Ba+36|0;pa=Ba+32|0;ra=Ba+28|0;sa=Ba+24|0;ta=Ba+20|0;ua=Ba+16|0;va=Ba+12|0;wa=Ba+8|0;xa=Ba+4|0;ya=Ba;if(a[b+33>>0]&1)BM(IWa(150620,112749)|0);if((c[d+4>>2]|0)==6){yb=Ba;return}do switch(c[d+8>>2]|0){case 0:{tI(c[b+28>>2]|0,106)|0;yb=Ba;return}case 1:{tI(c[b+28>>2]|0,107)|0;yb=Ba;return}case 2:{tI(c[b+28>>2]|0,108)|0;yb=Ba;return}case 3:{tI(c[b+28>>2]|0,109)|0;yb=Ba;return}case 4:{tI(c[b+28>>2]|0,110)|0;yb=Ba;return}case 5:{tI(c[b+28>>2]|0,111)|0;yb=Ba;return}case 6:{tI(c[b+28>>2]|0,112)|0;yb=Ba;return}case 7:{tI(c[b+28>>2]|0,113)|0;yb=Ba;return}case 8:{tI(c[b+28>>2]|0,114)|0;yb=Ba;return}case 9:{tI(c[b+28>>2]|0,115)|0;yb=Ba;return}case 10:{tI(c[b+28>>2]|0,116)|0;yb=Ba;return}case 11:{tI(c[b+28>>2]|0,118)|0;yb=Ba;return}case 12:{tI(c[b+28>>2]|0,117)|0;yb=Ba;return}case 13:{tI(c[b+28>>2]|0,119)|0;yb=Ba;return}case 14:{tI(c[b+28>>2]|0,120)|0;yb=Ba;return}case 15:{tI(c[b+28>>2]|0,70)|0;yb=Ba;return}case 16:{tI(c[b+28>>2]|0,71)|0;yb=Ba;return}case 17:{tI(c[b+28>>2]|0,72)|0;yb=Ba;return}case 18:{tI(c[b+28>>2]|0,73)|0;yb=Ba;return}case 19:{tI(c[b+28>>2]|0,76)|0;yb=Ba;return}case 20:{tI(c[b+28>>2]|0,77)|0;yb=Ba;return}case 21:{tI(c[b+28>>2]|0,74)|0;yb=Ba;return}case 22:{tI(c[b+28>>2]|0,75)|0;yb=Ba;return}case 23:{tI(c[b+28>>2]|0,78)|0;yb=Ba;return}case 24:{tI(c[b+28>>2]|0,79)|0;yb=Ba;return}case 25:{tI(c[b+28>>2]|0,124)|0;yb=Ba;return}case 26:{tI(c[b+28>>2]|0,125)|0;yb=Ba;return}case 27:{tI(c[b+28>>2]|0,126)|0;yb=Ba;return}case 28:{tI(c[b+28>>2]|0,127)|0;yb=Ba;return}case 29:{tI(c[b+28>>2]|0,-128)|0;yb=Ba;return}case 30:{tI(c[b+28>>2]|0,-127)|0;yb=Ba;return}case 31:{tI(c[b+28>>2]|0,-126)|0;yb=Ba;return}case 32:{tI(c[b+28>>2]|0,-125)|0;yb=Ba;return}case 33:{tI(c[b+28>>2]|0,-124)|0;yb=Ba;return}case 34:{tI(c[b+28>>2]|0,-123)|0;yb=Ba;return}case 35:{tI(c[b+28>>2]|0,-122)|0;yb=Ba;return}case 36:{tI(c[b+28>>2]|0,-120)|0;yb=Ba;return}case 37:{tI(c[b+28>>2]|0,-121)|0;yb=Ba;return}case 38:{tI(c[b+28>>2]|0,-119)|0;yb=Ba;return}case 39:{tI(c[b+28>>2]|0,-118)|0;yb=Ba;return}case 40:{tI(c[b+28>>2]|0,81)|0;yb=Ba;return}case 41:{tI(c[b+28>>2]|0,82)|0;yb=Ba;return}case 42:{tI(c[b+28>>2]|0,83)|0;yb=Ba;return}case 43:{tI(c[b+28>>2]|0,84)|0;yb=Ba;return}case 44:{tI(c[b+28>>2]|0,87)|0;yb=Ba;return}case 45:{tI(c[b+28>>2]|0,88)|0;yb=Ba;return}case 46:{tI(c[b+28>>2]|0,85)|0;yb=Ba;return}case 47:{tI(c[b+28>>2]|0,86)|0;yb=Ba;return}case 48:{tI(c[b+28>>2]|0,89)|0;yb=Ba;return}case 49:{tI(c[b+28>>2]|0,90)|0;yb=Ba;return}case 50:{tI(c[b+28>>2]|0,-110)|0;yb=Ba;return}case 51:{tI(c[b+28>>2]|0,-109)|0;yb=Ba;return}case 52:{tI(c[b+28>>2]|0,-108)|0;yb=Ba;return}case 53:{tI(c[b+28>>2]|0,-107)|0;yb=Ba;return}case 54:{tI(c[b+28>>2]|0,-104)|0;yb=Ba;return}case 55:{tI(c[b+28>>2]|0,-106)|0;yb=Ba;return}case 56:{tI(c[b+28>>2]|0,-105)|0;yb=Ba;return}case 57:{tI(c[b+28>>2]|0,91)|0;yb=Ba;return}case 58:{tI(c[b+28>>2]|0,92)|0;yb=Ba;return}case 59:{tI(c[b+28>>2]|0,93)|0;yb=Ba;return}case 60:{tI(c[b+28>>2]|0,95)|0;yb=Ba;return}case 61:{tI(c[b+28>>2]|0,94)|0;yb=Ba;return}case 62:{tI(c[b+28>>2]|0,96)|0;yb=Ba;return}case 63:{tI(c[b+28>>2]|0,-96)|0;yb=Ba;return}case 64:{tI(c[b+28>>2]|0,-95)|0;yb=Ba;return}case 65:{tI(c[b+28>>2]|0,-94)|0;yb=Ba;return}case 66:{tI(c[b+28>>2]|0,-93)|0;yb=Ba;return}case 67:{tI(c[b+28>>2]|0,-90)|0;yb=Ba;return}case 68:{tI(c[b+28>>2]|0,-92)|0;yb=Ba;return}case 69:{tI(c[b+28>>2]|0,-91)|0;yb=Ba;return}case 70:{tI(c[b+28>>2]|0,97)|0;yb=Ba;return}case 71:{tI(c[b+28>>2]|0,98)|0;yb=Ba;return}case 72:{tI(c[b+28>>2]|0,99)|0;yb=Ba;return}case 73:{tI(c[b+28>>2]|0,101)|0;yb=Ba;return}case 74:{tI(c[b+28>>2]|0,100)|0;yb=Ba;return}case 75:{tI(c[b+28>>2]|0,102)|0;yb=Ba;return}case 76:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(o,24);YA(Aa,c[o>>2]|0)|0;yb=Ba;return}case 77:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(z,25);YA(Aa,c[z>>2]|0)|0;yb=Ba;return}case 78:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(K,26);YA(Aa,c[K>>2]|0)|0;yb=Ba;return}case 79:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(V,27);YA(Aa,c[V>>2]|0)|0;yb=Ba;return}case 80:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ea,28);YA(Aa,c[ea>>2]|0)|0;yb=Ba;return}case 81:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(qa,29);YA(Aa,c[qa>>2]|0)|0;yb=Ba;return}case 82:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(za,30);YA(Aa,c[za>>2]|0)|0;yb=Ba;return}case 83:{za=tI(c[b+28>>2]|0,-3)|0;Pwb(Aa,31);YA(za,c[Aa>>2]|0)|0;yb=Ba;return}case 84:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(e,32);YA(Aa,c[e>>2]|0)|0;yb=Ba;return}case 85:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(f,33);YA(Aa,c[f>>2]|0)|0;yb=Ba;return}case 86:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(g,34);YA(Aa,c[g>>2]|0)|0;yb=Ba;return}case 87:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(h,35);YA(Aa,c[h>>2]|0)|0;yb=Ba;return}case 88:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(i,36);YA(Aa,c[i>>2]|0)|0;yb=Ba;return}case 89:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(j,37);YA(Aa,c[j>>2]|0)|0;yb=Ba;return}case 90:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(k,38);YA(Aa,c[k>>2]|0)|0;yb=Ba;return}case 91:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(l,39);YA(Aa,c[l>>2]|0)|0;yb=Ba;return}case 92:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(m,40);YA(Aa,c[m>>2]|0)|0;yb=Ba;return}case 93:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(n,41);YA(Aa,c[n>>2]|0)|0;yb=Ba;return}case 94:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(p,42);YA(Aa,c[p>>2]|0)|0;yb=Ba;return}case 95:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(q,43);YA(Aa,c[q>>2]|0)|0;yb=Ba;return}case 96:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(r,44);YA(Aa,c[r>>2]|0)|0;yb=Ba;return}case 97:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(s,45);YA(Aa,c[s>>2]|0)|0;yb=Ba;return}case 98:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(t,46);YA(Aa,c[t>>2]|0)|0;yb=Ba;return}case 99:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(u,47);YA(Aa,c[u>>2]|0)|0;yb=Ba;return}case 100:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(v,48);YA(Aa,c[v>>2]|0)|0;yb=Ba;return}case 101:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(w,49);YA(Aa,c[w>>2]|0)|0;yb=Ba;return}case 102:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(x,50);YA(Aa,c[x>>2]|0)|0;yb=Ba;return}case 103:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(y,51);YA(Aa,c[y>>2]|0)|0;yb=Ba;return}case 104:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(A,52);YA(Aa,c[A>>2]|0)|0;yb=Ba;return}case 105:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(B,53);YA(Aa,c[B>>2]|0)|0;yb=Ba;return}case 106:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(C,64);YA(Aa,c[C>>2]|0)|0;yb=Ba;return}case 107:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(D,65);YA(Aa,c[D>>2]|0)|0;yb=Ba;return}case 108:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(E,66);YA(Aa,c[E>>2]|0)|0;yb=Ba;return}case 109:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(F,67);YA(Aa,c[F>>2]|0)|0;yb=Ba;return}case 110:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(G,68);YA(Aa,c[G>>2]|0)|0;yb=Ba;return}case 111:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(H,69);YA(Aa,c[H>>2]|0)|0;yb=Ba;return}case 112:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(I,70);YA(Aa,c[I>>2]|0)|0;yb=Ba;return}case 113:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(J,71);YA(Aa,c[J>>2]|0)|0;yb=Ba;return}case 114:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(L,72);YA(Aa,c[L>>2]|0)|0;yb=Ba;return}case 115:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(M,73);YA(Aa,c[M>>2]|0)|0;yb=Ba;return}case 116:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(N,74);YA(Aa,c[N>>2]|0)|0;yb=Ba;return}case 117:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(O,75);YA(Aa,c[O>>2]|0)|0;yb=Ba;return}case 118:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(P,77);YA(Aa,c[P>>2]|0)|0;yb=Ba;return}case 119:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(Q,78);YA(Aa,c[Q>>2]|0)|0;yb=Ba;return}case 120:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(R,79);YA(Aa,c[R>>2]|0)|0;yb=Ba;return}case 121:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(S,87);YA(Aa,c[S>>2]|0)|0;yb=Ba;return}case 122:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(T,88);YA(Aa,c[T>>2]|0)|0;yb=Ba;return}case 123:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(U,89);YA(Aa,c[U>>2]|0)|0;yb=Ba;return}case 124:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(W,90);YA(Aa,c[W>>2]|0)|0;yb=Ba;return}case 125:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(X,91);YA(Aa,c[X>>2]|0)|0;yb=Ba;return}case 126:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(Y,92);YA(Aa,c[Y>>2]|0)|0;yb=Ba;return}case 127:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(Z,93);YA(Aa,c[Z>>2]|0)|0;yb=Ba;return}case 128:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(_,104);YA(Aa,c[_>>2]|0)|0;yb=Ba;return}case 129:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb($,105);YA(Aa,c[$>>2]|0)|0;yb=Ba;return}case 130:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(aa,106);YA(Aa,c[aa>>2]|0)|0;yb=Ba;return}case 131:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ba,107);YA(Aa,c[ba>>2]|0)|0;yb=Ba;return}case 132:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ca,108);YA(Aa,c[ca>>2]|0)|0;yb=Ba;return}case 133:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(da,109);YA(Aa,c[da>>2]|0)|0;yb=Ba;return}case 134:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(fa,110);YA(Aa,c[fa>>2]|0)|0;yb=Ba;return}case 135:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ga,121);YA(Aa,c[ga>>2]|0)|0;yb=Ba;return}case 136:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ha,124);YA(Aa,c[ha>>2]|0)|0;yb=Ba;return}case 137:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ia,127);YA(Aa,c[ia>>2]|0)|0;yb=Ba;return}case 138:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ja,138);YA(Aa,c[ja>>2]|0)|0;yb=Ba;return}case 139:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ka,141);YA(Aa,c[ka>>2]|0)|0;yb=Ba;return}case 140:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(la,154);YA(Aa,c[la>>2]|0)|0;yb=Ba;return}case 141:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(na,155);YA(Aa,c[na>>2]|0)|0;yb=Ba;return}case 142:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(oa,156);YA(Aa,c[oa>>2]|0)|0;yb=Ba;return}case 143:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(pa,157);YA(Aa,c[pa>>2]|0)|0;yb=Ba;return}case 144:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ra,158);YA(Aa,c[ra>>2]|0)|0;yb=Ba;return}case 145:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(sa,159);YA(Aa,c[sa>>2]|0)|0;yb=Ba;return}case 146:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ta,165);YA(Aa,c[ta>>2]|0)|0;yb=Ba;return}case 147:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ua,166);YA(Aa,c[ua>>2]|0)|0;yb=Ba;return}case 148:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(va,167);YA(Aa,c[va>>2]|0)|0;yb=Ba;return}case 149:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(wa,168);YA(Aa,c[wa>>2]|0)|0;yb=Ba;return}case 150:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(xa,169);YA(Aa,c[xa>>2]|0)|0;yb=Ba;return}case 151:{Aa=tI(c[b+28>>2]|0,-3)|0;Pwb(ya,170);YA(Aa,c[ya>>2]|0)|0;yb=Ba;return}case 152:{ma(141129,112765,1314,131297);break}default:{yb=Ba;return}}while(0)}function qc(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;w=yb;yb=yb+16|0;n=w;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;m=c[37444]|0;d=m>>>a;if(d&3|0){b=(d&1^1)+a|0;a=149816+(b<<1<<2)|0;d=a+8|0;e=c[d>>2]|0;f=e+8|0;g=c[f>>2]|0;if((g|0)==(a|0))c[37444]=m&~(1<>2]=a;c[d>>2]=g}v=b<<3;c[e+4>>2]=v|3;v=e+v+4|0;c[v>>2]=c[v>>2]|1;v=f;yb=w;return v|0}l=c[37446]|0;if(k>>>0>l>>>0){if(d|0){b=2<>>12&16;b=b>>>i;d=b>>>5&8;b=b>>>d;g=b>>>2&4;b=b>>>g;a=b>>>1&2;b=b>>>a;e=b>>>1&1;e=(d|i|g|a|e)+(b>>>e)|0;b=149816+(e<<1<<2)|0;a=b+8|0;g=c[a>>2]|0;i=g+8|0;d=c[i>>2]|0;if((d|0)==(b|0)){a=m&~(1<>2]=b;c[a>>2]=d;a=m}v=e<<3;h=v-k|0;c[g+4>>2]=k|3;f=g+k|0;c[f+4>>2]=h|1;c[g+v>>2]=h;if(l|0){e=c[37449]|0;b=l>>>3;d=149816+(b<<1<<2)|0;b=1<>2]|0}c[a>>2]=e;c[b+12>>2]=e;c[e+8>>2]=b;c[e+12>>2]=d}c[37446]=h;c[37449]=f;v=i;yb=w;return v|0}g=c[37445]|0;if(g){d=(g&0-g)+-1|0;f=d>>>12&16;d=d>>>f;e=d>>>5&8;d=d>>>e;h=d>>>2&4;d=d>>>h;i=d>>>1&2;d=d>>>i;j=d>>>1&1;j=c[150080+((e|f|h|i|j)+(d>>>j)<<2)>>2]|0;d=j;i=j;j=(c[j+4>>2]&-8)-k|0;while(1){a=c[d+16>>2]|0;if(!a){a=c[d+20>>2]|0;if(!a)break}h=(c[a+4>>2]&-8)-k|0;f=h>>>0>>0;d=a;i=f?a:i;j=f?h:j}h=i+k|0;if(h>>>0>i>>>0){f=c[i+24>>2]|0;b=c[i+12>>2]|0;do if((b|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){d=0;break}}while(1){e=b+20|0;d=c[e>>2]|0;if(!d){e=b+16|0;d=c[e>>2]|0;if(!d)break;else{b=d;a=e}}else{b=d;a=e}}c[a>>2]=0;d=b}else{d=c[i+8>>2]|0;c[d+12>>2]=b;c[b+8>>2]=d;d=b}while(0);do if(f|0){b=c[i+28>>2]|0;a=150080+(b<<2)|0;if((i|0)==(c[a>>2]|0)){c[a>>2]=d;if(!d){c[37445]=g&~(1<>2]|0)==(i|0)?v:f+20|0)>>2]=d;if(!d)break}c[d+24>>2]=f;b=c[i+16>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}b=c[i+20>>2]|0;if(b|0){c[d+20>>2]=b;c[b+24>>2]=d}}while(0);if(j>>>0<16){v=j+k|0;c[i+4>>2]=v|3;v=i+v+4|0;c[v>>2]=c[v>>2]|1}else{c[i+4>>2]=k|3;c[h+4>>2]=j|1;c[h+j>>2]=j;if(l|0){e=c[37449]|0;b=l>>>3;d=149816+(b<<1<<2)|0;b=1<>2]|0}c[a>>2]=e;c[b+12>>2]=e;c[e+8>>2]=b;c[e+12>>2]=d}c[37446]=j;c[37449]=h}v=i+8|0;yb=w;return v|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;e=c[37445]|0;if(e){f=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)j=31;else{m=(a+1048320|0)>>>16&8;r=a<>>16&4;r=r<>>16&2;j=14-(i|m|j)+(r<>>15)|0;j=k>>>(j+7|0)&1|j<<1}else j=0;d=c[150080+(j<<2)>>2]|0;a:do if(!d){d=0;a=0;r=61}else{a=0;i=k<<((j|0)==31?0:25-(j>>>1)|0);g=0;while(1){h=(c[d+4>>2]&-8)-k|0;if(h>>>0>>0)if(!h){a=d;f=0;r=65;break a}else{a=d;f=h}r=c[d+20>>2]|0;d=c[d+16+(i>>>31<<2)>>2]|0;g=(r|0)==0|(r|0)==(d|0)?g:r;if(!d){d=g;r=61;break}else i=i<<1}}while(0);if((r|0)==61){if((d|0)==0&(a|0)==0){a=2<>>12&16;m=m>>>h;g=m>>>5&8;m=m>>>g;i=m>>>2&4;m=m>>>i;j=m>>>1&2;m=m>>>j;d=m>>>1&1;a=0;d=c[150080+((g|h|i|j|d)+(m>>>d)<<2)>>2]|0}if(!d){i=a;h=f}else r=65}if((r|0)==65){g=d;while(1){m=(c[g+4>>2]&-8)-k|0;d=m>>>0>>0;f=d?m:f;a=d?g:a;d=c[g+16>>2]|0;if(!d)d=c[g+20>>2]|0;if(!d){i=a;h=f;break}else g=d}}if(((i|0)!=0?h>>>0<((c[37446]|0)-k|0)>>>0:0)?(l=i+k|0,l>>>0>i>>>0):0){g=c[i+24>>2]|0;b=c[i+12>>2]|0;do if((b|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){b=0;break}}while(1){f=b+20|0;d=c[f>>2]|0;if(!d){f=b+16|0;d=c[f>>2]|0;if(!d)break;else{b=d;a=f}}else{b=d;a=f}}c[a>>2]=0}else{v=c[i+8>>2]|0;c[v+12>>2]=b;c[b+8>>2]=v}while(0);do if(g){a=c[i+28>>2]|0;d=150080+(a<<2)|0;if((i|0)==(c[d>>2]|0)){c[d>>2]=b;if(!b){e=e&~(1<>2]|0)==(i|0)?v:g+20|0)>>2]=b;if(!b)break}c[b+24>>2]=g;a=c[i+16>>2]|0;if(a|0){c[b+16>>2]=a;c[a+24>>2]=b}a=c[i+20>>2]|0;if(a){c[b+20>>2]=a;c[a+24>>2]=b}}while(0);b:do if(h>>>0<16){v=h+k|0;c[i+4>>2]=v|3;v=i+v+4|0;c[v>>2]=c[v>>2]|1}else{c[i+4>>2]=k|3;c[l+4>>2]=h|1;c[l+h>>2]=h;b=h>>>3;if(h>>>0<256){d=149816+(b<<1<<2)|0;a=c[37444]|0;b=1<>2]|0}c[a>>2]=l;c[b+12>>2]=l;c[l+8>>2]=b;c[l+12>>2]=d;break}b=h>>>8;if(b)if(h>>>0>16777215)d=31;else{u=(b+1048320|0)>>>16&8;v=b<>>16&4;v=v<>>16&2;d=14-(t|u|d)+(v<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;b=150080+(d<<2)|0;c[l+28>>2]=d;a=l+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<>2]=l;c[l+24>>2]=b;c[l+12>>2]=l;c[l+8>>2]=l;break}b=c[b>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(h|0)){e=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(h|0)){b=a;break c}else{e=e<<1;b=a}}c[d>>2]=l;c[l+24>>2]=b;c[l+12>>2]=l;c[l+8>>2]=l;break b}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=l;c[u>>2]=l;c[l+8>>2]=v;c[l+12>>2]=b;c[l+24>>2]=0}while(0);v=i+8|0;yb=w;return v|0}else m=k}else m=k}else m=-1;while(0);d=c[37446]|0;if(d>>>0>=m>>>0){b=d-m|0;a=c[37449]|0;if(b>>>0>15){v=a+m|0;c[37449]=v;c[37446]=b;c[v+4>>2]=b|1;c[a+d>>2]=b;c[a+4>>2]=m|3}else{c[37446]=0;c[37449]=0;c[a+4>>2]=d|3;v=a+d+4|0;c[v>>2]=c[v>>2]|1}v=a+8|0;yb=w;return v|0}h=c[37447]|0;if(h>>>0>m>>>0){t=h-m|0;c[37447]=t;v=c[37450]|0;u=v+m|0;c[37450]=u;c[u+4>>2]=t|1;c[v+4>>2]=m|3;v=v+8|0;yb=w;return v|0}if(!(c[37562]|0)){c[37564]=4096;c[37563]=4096;c[37565]=-1;c[37566]=-1;c[37567]=0;c[37555]=0;c[37562]=n&-16^1431655768;a=4096}else a=c[37564]|0;i=m+48|0;j=m+47|0;g=a+j|0;f=0-a|0;k=g&f;if(k>>>0<=m>>>0){v=0;yb=w;return v|0}a=c[37554]|0;if(a|0?(l=c[37552]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){v=0;yb=w;return v|0}d:do if(!(c[37555]&4)){d=c[37450]|0;e:do if(d){e=150224;while(1){a=c[e>>2]|0;if(a>>>0<=d>>>0?(q=e+4|0,(a+(c[q>>2]|0)|0)>>>0>d>>>0):0)break;a=c[e+8>>2]|0;if(!a){r=128;break e}else e=a}b=g-h&f;if(b>>>0<2147483647){a=fna(b|0)|0;if((a|0)==((c[e>>2]|0)+(c[q>>2]|0)|0)){if((a|0)!=(-1|0)){h=b;g=a;r=145;break d}}else{e=a;r=136}}else b=0}else r=128;while(0);do if((r|0)==128){d=fna(0)|0;if((d|0)!=(-1|0)?(b=d,o=c[37563]|0,p=o+-1|0,b=((p&b|0)==0?0:(p+b&0-o)-b|0)+k|0,o=c[37552]|0,p=b+o|0,b>>>0>m>>>0&b>>>0<2147483647):0){q=c[37554]|0;if(q|0?p>>>0<=o>>>0|p>>>0>q>>>0:0){b=0;break}a=fna(b|0)|0;if((a|0)==(d|0)){h=b;g=d;r=145;break d}else{e=a;r=136}}else b=0}while(0);do if((r|0)==136){d=0-b|0;if(!(i>>>0>b>>>0&(b>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){b=0;break}else{h=b;g=e;r=145;break d}a=c[37564]|0;a=j-b+a&0-a;if(a>>>0>=2147483647){h=b;g=e;r=145;break d}if((fna(a|0)|0)==(-1|0)){fna(d|0)|0;b=0;break}else{h=a+b|0;g=e;r=145;break d}}while(0);c[37555]=c[37555]|4;r=143}else{b=0;r=143}while(0);if(((r|0)==143?k>>>0<2147483647:0)?(u=fna(k|0)|0,q=fna(0)|0,s=q-u|0,t=s>>>0>(m+40|0)>>>0,!((u|0)==(-1|0)|t^1|u>>>0>>0&((u|0)!=(-1|0)&(q|0)!=(-1|0))^1)):0){h=t?s:b;g=u;r=145}if((r|0)==145){b=(c[37552]|0)+h|0;c[37552]=b;if(b>>>0>(c[37553]|0)>>>0)c[37553]=b;j=c[37450]|0;f:do if(j){b=150224;while(1){a=c[b>>2]|0;d=b+4|0;e=c[d>>2]|0;if((g|0)==(a+e|0)){r=154;break}f=c[b+8>>2]|0;if(!f)break;else b=f}if(((r|0)==154?(c[b+12>>2]&8|0)==0:0)?g>>>0>j>>>0&a>>>0<=j>>>0:0){c[d>>2]=e+h;v=(c[37447]|0)+h|0;t=j+8|0;t=(t&7|0)==0?0:0-t&7;u=j+t|0;t=v-t|0;c[37450]=u;c[37447]=t;c[u+4>>2]=t|1;c[j+v+4>>2]=40;c[37451]=c[37566];break}if(g>>>0<(c[37448]|0)>>>0)c[37448]=g;d=g+h|0;b=150224;while(1){if((c[b>>2]|0)==(d|0)){r=162;break}a=c[b+8>>2]|0;if(!a)break;else b=a}if((r|0)==162?(c[b+12>>2]&8|0)==0:0){c[b>>2]=g;l=b+4|0;c[l>>2]=(c[l>>2]|0)+h;l=g+8|0;l=g+((l&7|0)==0?0:0-l&7)|0;b=d+8|0;b=d+((b&7|0)==0?0:0-b&7)|0;k=l+m|0;i=b-l-m|0;c[l+4>>2]=m|3;g:do if((j|0)==(b|0)){v=(c[37447]|0)+i|0;c[37447]=v;c[37450]=k;c[k+4>>2]=v|1}else{if((c[37449]|0)==(b|0)){v=(c[37446]|0)+i|0;c[37446]=v;c[37449]=k;c[k+4>>2]=v|1;c[k+v>>2]=v;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;e=a>>>3;h:do if(a>>>0<256){a=c[b+8>>2]|0;d=c[b+12>>2]|0;if((d|0)==(a|0)){c[37444]=c[37444]&~(1<>2]=d;c[d+8>>2]=a;break}}else{g=c[b+24>>2]|0;a=c[b+12>>2]|0;do if((a|0)==(b|0)){d=b+16|0;e=d+4|0;a=c[e>>2]|0;if(!a){a=c[d>>2]|0;if(!a){a=0;break}}else d=e;while(1){f=a+20|0;e=c[f>>2]|0;if(!e){f=a+16|0;e=c[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}c[d>>2]=0}else{v=c[b+8>>2]|0;c[v+12>>2]=a;c[a+8>>2]=v}while(0);if(!g)break;d=c[b+28>>2]|0;e=150080+(d<<2)|0;do if((c[e>>2]|0)!=(b|0)){v=g+16|0;c[((c[v>>2]|0)==(b|0)?v:g+20|0)>>2]=a;if(!a)break h}else{c[e>>2]=a;if(a|0)break;c[37445]=c[37445]&~(1<>2]=g;d=b+16|0;e=c[d>>2]|0;if(e|0){c[a+16>>2]=e;c[e+24>>2]=a}d=c[d+4>>2]|0;if(!d)break;c[a+20>>2]=d;c[d+24>>2]=a}while(0);b=b+h|0;f=h+i|0}else f=i;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[k+4>>2]=f|1;c[k+f>>2]=f;b=f>>>3;if(f>>>0<256){d=149816+(b<<1<<2)|0;a=c[37444]|0;b=1<>2]|0}c[a>>2]=k;c[b+12>>2]=k;c[k+8>>2]=b;c[k+12>>2]=d;break}b=f>>>8;do if(!b)e=0;else{if(f>>>0>16777215){e=31;break}u=(b+1048320|0)>>>16&8;v=b<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);b=150080+(e<<2)|0;c[k+28>>2]=e;a=k+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[37445]|0;d=1<>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;break}b=c[b>>2]|0;i:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(f|0)){b=a;break i}else{e=e<<1;b=a}}c[d>>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;break g}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=k;c[u>>2]=k;c[k+8>>2]=v;c[k+12>>2]=b;c[k+24>>2]=0}while(0);v=l+8|0;yb=w;return v|0}b=150224;while(1){a=c[b>>2]|0;if(a>>>0<=j>>>0?(v=a+(c[b+4>>2]|0)|0,v>>>0>j>>>0):0)break;b=c[b+8>>2]|0}f=v+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0>>0?j:a;b=a+8|0;d=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=d-t|0;c[37450]=u;c[37447]=t;c[u+4>>2]=t|1;c[g+d+4>>2]=40;c[37451]=c[37566];d=a+4|0;c[d>>2]=27;c[b>>2]=c[37556];c[b+4>>2]=c[37557];c[b+8>>2]=c[37558];c[b+12>>2]=c[37559];c[37556]=g;c[37557]=h;c[37559]=0;c[37558]=b;b=a+24|0;do{u=b;b=b+4|0;c[b>>2]=7}while((u+8|0)>>>0>>0);if((a|0)!=(j|0)){g=a-j|0;c[d>>2]=c[d>>2]&-2;c[j+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=149816+(b<<1<<2)|0;a=c[37444]|0;b=1<>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)e=31;else{u=(b+1048320|0)>>>16&8;v=b<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=150080+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[f>>2]=0;b=c[37445]|0;a=1<>2]=j;c[j+24>>2]=d;c[j+12>>2]=j;c[j+8>>2]=j;break}b=c[d>>2]|0;j:do if((c[b+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(g|0)){b=a;break j}else{e=e<<1;b=a}}c[d>>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j;break f}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=j;c[u>>2]=j;c[j+8>>2]=v;c[j+12>>2]=b;c[j+24>>2]=0}}else{v=c[37448]|0;if((v|0)==0|g>>>0>>0)c[37448]=g;c[37556]=g;c[37557]=h;c[37559]=0;c[37453]=c[37562];c[37452]=-1;c[37457]=149816;c[37456]=149816;c[37459]=149824;c[37458]=149824;c[37461]=149832;c[37460]=149832;c[37463]=149840;c[37462]=149840;c[37465]=149848;c[37464]=149848;c[37467]=149856;c[37466]=149856;c[37469]=149864;c[37468]=149864;c[37471]=149872;c[37470]=149872;c[37473]=149880;c[37472]=149880;c[37475]=149888;c[37474]=149888;c[37477]=149896;c[37476]=149896;c[37479]=149904;c[37478]=149904;c[37481]=149912;c[37480]=149912;c[37483]=149920;c[37482]=149920;c[37485]=149928;c[37484]=149928;c[37487]=149936;c[37486]=149936;c[37489]=149944;c[37488]=149944;c[37491]=149952;c[37490]=149952;c[37493]=149960;c[37492]=149960;c[37495]=149968;c[37494]=149968;c[37497]=149976;c[37496]=149976;c[37499]=149984;c[37498]=149984;c[37501]=149992;c[37500]=149992;c[37503]=15e4;c[37502]=15e4;c[37505]=150008;c[37504]=150008;c[37507]=150016;c[37506]=150016;c[37509]=150024;c[37508]=150024;c[37511]=150032;c[37510]=150032;c[37513]=150040;c[37512]=150040;c[37515]=150048;c[37514]=150048;c[37517]=150056;c[37516]=150056;c[37519]=150064;c[37518]=150064;v=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=v-t|0;c[37450]=u;c[37447]=t;c[u+4>>2]=t|1;c[g+v+4>>2]=40;c[37451]=c[37566]}while(0);b=c[37447]|0;if(b>>>0>m>>>0){t=b-m|0;c[37447]=t;v=c[37450]|0;u=v+m|0;c[37450]=u;c[u+4>>2]=t|1;c[v+4>>2]=m|3;v=v+8|0;yb=w;return v|0}}c[37419]=12;v=0;yb=w;return v|0}function rc(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;v=yb;yb=yb+128|0;f=v+120|0;e=v+108|0;w=v+96|0;k=v+84|0;l=v+72|0;h=v+60|0;j=v+48|0;m=v+36|0;o=v+24|0;g=v+12|0;i=v;r=b+36|0;do if((c[r>>2]|0)==(c[b+124>>2]|0)){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;D8(e,115395,Zzb(115395)|0);n=0;da(4022,b|0,e|0);q=n;n=0;if(!(q&1)){Chb(e);break}w=sa()|0;P()|0;Chb(e);Ea(w|0)}while(0);q=b+12|0;if(a[q>>0]&1){e=IWa(150620,115683)|0;x=b+248|0;p=(c[x>>2]|0)+1|0;c[x>>2]=p;p=IWa(Zm(e,p)|0,112290)|0;BM(Ym(p,c[r>>2]|0)|0)}kn(b);yib(w);if((c[b+52>>2]|0)!=0?(x=(c[b+44>>2]|0)+16|0,n=0,fa(136,f|0,w|0,x|0,x|0),x=n,n=0,x&1):0)p=9;else p=10;a:do if((p|0)==10){n=0;f=S(306,b|0)|0;x=n;n=0;if(!(x&1)){if(a[q>>0]&1){n=0;e=U(59,150620,115700)|0;x=n;n=0;if(x&1){p=9;break}n=0;e=U(63,e|0,f&255|0)|0;x=n;n=0;if(x&1){p=9;break}n=0;ca(497,e|0);x=n;n=0;if(x&1){p=9;break}}b:do switch(f<<24>>24){case 2:{n=0;e=S(307,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;e=S(231,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;da(4029,b|0,e|0);x=n;n=0;if(x&1){p=9;break a}else{f=2;p=162}break}case 4:{n=0;e=S(308,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;e=S(235,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;da(4030,b|0,e|0);x=n;n=0;if(x&1){p=9;break a}else{f=4;p=162}break}case 3:{n=0;e=S(309,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;e=S(238,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;da(4031,b|0,e|0);x=n;n=0;if(x&1){p=9;break a}else{f=3;p=162}break}case 13:case 12:{n=0;e=S(310,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;e=S(239,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;ea(188,b|0,e|0,f|0);x=n;n=0;if(x&1){p=9;break a}else p=162;break}case 14:{n=0;e=S(311,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;e=S(240,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;da(4032,b|0,e|0);x=n;n=0;if(x&1){p=9;break a}else{f=14;p=162}break}case 16:{n=0;e=S(282,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;e=S(241,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;da(4033,b|0,e|0);x=n;n=0;if(x&1){p=9;break a}else{f=16;p=162}break}case 17:{n=0;e=S(312,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;e=S(242,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;da(4034,b|0,e|0);x=n;n=0;if(x&1){p=9;break a}else{f=17;p=162}break}case 32:{n=0;e=S(313,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;e=S(243,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;da(4035,b|0,e|0);x=n;n=0;if(x&1){p=9;break a}else{f=32;p=162}break}case 33:case 34:{n=0;e=S(314,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;e=S(244,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;ea(189,b|0,e|0,f|0);x=n;n=0;if(x&1){p=9;break a}else p=162;break}case 35:{n=0;e=S(315,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;e=S(245,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;da(4036,b|0,e|0);x=n;n=0;if(x&1){p=9;break a}else{f=35;p=162}break}case 36:{n=0;e=S(316,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;e=S(246,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;da(4037,b|0,e|0);x=n;n=0;if(x&1){p=9;break a}else{f=36;p=162}break}case 27:{n=0;e=S(317,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;e=S(268,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;da(4038,b|0,e|0);x=n;n=0;if(x&1){p=9;break a}else{f=27;p=162}break}case 15:{n=0;e=S(318,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;e=S(270,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;da(4039,b|0,e|0);x=n;n=0;if(x&1){p=9;break a}else{f=15;p=162}break}case 1:{n=0;e=S(292,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;S(319,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;ca(558,a[q>>0]|0);x=n;n=0;if(x&1){p=9;break a}else{f=1;p=162}break}case 0:{n=0;e=S(320,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;S(321,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;ca(559,a[q>>0]|0);x=n;n=0;if(x&1){p=9;break a}else{f=0;p=162}break}case 26:{n=0;e=S(322,c[b+4>>2]|0)|0;x=n;n=0;if(x&1){p=9;break a}c[d>>2]=e;n=0;e=S(269,e|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;da(4040,b|0,e|0);x=n;n=0;if(x&1){p=9;break a}else{f=26;p=162}break}case 5:case 11:{c[d>>2]=0;break}case -2:{n=0;g=S(301,b|0)|0;x=n;n=0;if(x&1){p=9;break a}f=g&255;n=0;e=W(38,b|0,d|0,f|0,1)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=W(39,b|0,d|0,f|0,1)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(96,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(97,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(98,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(99,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;da(229,l|0,g&255|0);x=n;n=0;if(x&1){p=9;break a}n=0;U(77,l|0,115723)|0;x=n;n=0;do if(!(x&1)){c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];e=0;while(1){if((e|0)==3)break;c[l+(e<<2)>>2]=0;e=e+1|0}n=0;da(4022,b|0,k|0);x=n;n=0;if(x&1){e=sa()|0;P()|0;Chb(k);break}else{Chb(k);Chb(l);p=162;break b}}else{e=sa()|0;P()|0}while(0);Chb(l);break a}else p=162}else p=162}else p=162}else p=162}else p=162}else p=162;break}case -4:{n=0;f=S(301,b|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;e=V(100,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(101,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(102,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(103,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(104,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;da(2683,j|0,f|0);x=n;n=0;if(x&1){p=9;break a}n=0;U(77,j|0,115758)|0;x=n;n=0;do if(!(x&1)){c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];e=0;while(1){if((e|0)==3)break;c[j+(e<<2)>>2]=0;e=e+1|0}n=0;da(4022,b|0,h|0);x=n;n=0;if(x&1){e=sa()|0;P()|0;Chb(h);break}else{Chb(h);Chb(j);f=-4;p=162;break b}}else{e=sa()|0;P()|0}while(0);Chb(j);break a}else{f=-4;p=162}}else{f=-4;p=162}}else{f=-4;p=162}}else{f=-4;p=162}}else{f=-4;p=162}break}case -3:{n=0;f=S(301,b|0)|0;x=n;n=0;if(x&1){p=9;break a}n=0;e=V(105,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(106,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(107,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(108,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(109,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(110,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(111,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(e){f=-3;p=162;break b}n=0;e=V(112,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(e){f=-3;p=162;break b}n=0;e=V(113,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(e){f=-3;p=162;break b}n=0;e=V(114,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(e){f=-3;p=162;break b}n=0;da(2683,o|0,f|0);x=n;n=0;if(x&1){p=9;break a}n=0;U(77,o|0,115811)|0;x=n;n=0;do if(!(x&1)){c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];e=0;while(1){if((e|0)==3)break;c[o+(e<<2)>>2]=0;e=e+1|0}n=0;da(4022,b|0,m|0);x=n;n=0;if(x&1){e=sa()|0;P()|0;Chb(m);break}else{Chb(m);Chb(o);f=-3;p=162;break b}}else{e=sa()|0;P()|0}while(0);Chb(o);break a}else{f=-3;p=162}}else{f=-3;p=162}}else{f=-3;p=162}}else{f=-3;p=162}}else{f=-3;p=162}}else{f=-3;p=162}break}default:{n=0;e=V(115,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(116,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(117,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=W(38,b|0,d|0,f|0,0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=W(39,b|0,d|0,f|0,0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;e=V(118,b|0,d|0,f|0)|0;x=n;n=0;if(x&1){p=9;break a}if(!e){n=0;da(229,i|0,f&255|0);x=n;n=0;if(x&1){p=9;break a}n=0;U(77,i|0,115844)|0;x=n;n=0;do if(!(x&1)){c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];e=0;while(1){if((e|0)==3)break;c[i+(e<<2)>>2]=0;e=e+1|0}n=0;da(4022,b|0,g|0);x=n;n=0;if(x&1){e=sa()|0;P()|0;Chb(g);break}else{Chb(g);Chb(i);p=162;break b}}else{e=sa()|0;P()|0}while(0);Chb(i);break a}else p=162}else p=162}else p=162}else p=162}else p=162}else p=162}}while(0);if((p|0)==162)if((c[d>>2]|0)!=0?(c[w+8>>2]|0)!=0:0){g=c[w>>2]|0;n=0;e=U(195,(c[b+120>>2]|0)+76|0,d|0)|0;x=n;n=0;if(x&1){p=9;break}x=g+16|0;c[e>>2]=c[x>>2];c[e+4>>2]=c[x+4>>2];c[e+8>>2]=c[x+8>>2]}if(!(a[q>>0]&1)){x=f&255;$8a(w);yb=v;return x|0}n=0;e=U(59,150620,115859)|0;x=n;n=0;if((((!(x&1)?(x=b+248|0,s=c[x>>2]|0,c[x>>2]=s+-1,n=0,s=U(63,e|0,s|0)|0,x=n,n=0,!(x&1)):0)?(n=0,t=U(59,s|0,112290)|0,x=n,n=0,!(x&1)):0)?(n=0,u=U(78,t|0,c[r>>2]|0)|0,x=n,n=0,!(x&1)):0)?(n=0,ca(497,u|0),x=n,n=0,!(x&1)):0){x=f&255;$8a(w);yb=v;return x|0}else p=9}else p=9}while(0);if((p|0)==9){e=sa()|0;P()|0}$8a(w);x=e;Ea(x|0);return 0}function sc(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,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,Q=0;Q=yb;yb=yb+912|0;i=Q+896|0;l=Q+892|0;s=Q+120|0;t=Q+96|0;u=Q+72|0;E=Q+48|0;F=Q+24|0;I=Q;M=Q+800|0;v=Q+708|0;z=Q+704|0;q=Q+612|0;r=Q+520|0;w=Q+428|0;x=Q+336|0;y=Q+332|0;C=Q+240|0;B=Q+148|0;A=Q+144|0;if((((c[e+4>>2]|0)==6?(g=c[e>>2]|0,!(Nyb(g)|0)):0)?!(MAb(g)|0):0)?!(VBb(g)|0):0){b=0;yb=Q;return b|0}O=Aqb(e)|0;if(O|0){q=O+8|0;if(MQa(c[q>>2]|0)|0)Sp(b,O);e=$I(O)|0;a:do if(!e){C=c[q>>2]|0;f=(C|0)==15;switch(C|0){case 15:case 16:{j=O+16|0;e=Mqb(c[j>>2]|0)|0;if(e|0){if(f?(Peb(e+8|0)|0)==0:0){Gsb(l,WCb(c[b+36>>2]|0)|0);b=pVa(c[l>>2]|0,20,c[O+12>>2]|0)|0;yb=Q;return b|0}f=O+12|0;g=zM(c[f>>2]|0)|0;if(!g)break a;h=Q0a(c[f>>2]|0)|0;N=q$(b,g,h)|0;c[f>>2]=N;f=e+8|0;N=Peb(f)|0;g=ztb(h)|0;M=Pxb(N&~g)|0;b=(M|0)==0;if(!(M>>>0<(32-h|0)>>>0&(b^1))?(N&1<>2]=c[t>>2];c[f+4>>2]=c[t+4>>2];c[f+8>>2]=c[t+8>>2];c[f+12>>2]=c[t+12>>2];c[f+16>>2]=c[t+16>>2];b=O;yb=Q;return b|0}if(h>>>0>=32)ma(89166,89176,326,89221);Bqb(s,-2147483648);c[f>>2]=c[s>>2];c[f+4>>2]=c[s+4>>2];c[f+8>>2]=c[s+8>>2];c[f+12>>2]=c[s+12>>2];c[f+16>>2]=c[s+16>>2];b=O;yb=Q;return b|0}e=O+12|0;i=zM(c[e>>2]|0)|0;if(!i){f=Sqb(c[e>>2]|0)|0;if(!f)break a;g=zM(c[j>>2]|0)|0;if(!g)break a;h=Q0a(c[j>>2]|0)|0;e=f+9|0;if(!(a[e>>0]&1))break a;if((h|0)!=((d[f+8>>0]|0)<<3|0))break a;a[e>>0]=0;b=q$(b,g,h)|0;c[j>>2]=b;b=O;yb=Q;return b|0}f=zM(c[j>>2]|0)|0;if(f|0){g=Q0a(c[e>>2]|0)|0;if((Q0a(c[j>>2]|0)|0)!=(g|0))break a;N=q$(b,i,g)|0;c[e>>2]=N;b=q$(b,f,g)|0;c[j>>2]=b;b=O;yb=Q;return b|0}f=Sqb(c[j>>2]|0)|0;if(!f)break a;g=Q0a(c[e>>2]|0)|0;h=f+9|0;if(!(a[h>>0]&1))break a;if((g|0)!=((d[f+8>>0]|0)<<3|0))break a;a[h>>0]=0;b=q$(b,i,g)|0;c[e>>2]=b;b=O;yb=Q;return b|0}case 0:{g=O+12|0;f=Aqb(c[g>>2]|0)|0;if((((f|0?(c[f+8>>2]|0)==1:0)?(h=f+12|0,j=Mqb(c[h>>2]|0)|0,j|0):0)?(Peb(j+8|0)|0)==0:0)?(C=pob(c[b+40>>2]|0)|0,k=O+16|0,__(C,c[f+16>>2]|0,c[k>>2]|0)|0):0){c[h>>2]=c[k>>2];b=f;yb=Q;return b|0}f=Aqb(c[O+16>>2]|0)|0;if(((f|0?(c[f+8>>2]|0)==1:0)?(o=f+12|0,p=Mqb(c[o>>2]|0)|0,p|0):0)?(Peb(p+8|0)|0)==0:0){c[o>>2]=c[g>>2];b=f;yb=Q;return b|0}f=qk(b,O)|0;if(!f)break a;yb=Q;return f|0}case 1:{f=qk(b,O)|0;if(!f)break a;yb=Q;return f|0}default:break a}}else{h=D6(O,i)|0;f=c[i>>2]|0;do if(((f|0)==0?(m=Sqb(xv(e)|0)|0,m|0):0)?$Bb(a[m+20>>0]|0)|0:0){C=a[m+8>>0]|0;if(!(C<<24>>24==1&(h|0)==8)?!(C<<24>>24==2&(h|0)==16):0)break;g=m+9|0;if((a[g>>0]&1)!=0|(m|0)==(e|0)){a[g>>0]=1;b=e;yb=Q;return b|0}}while(0);if(((Si(e,b)|0)+f|0)>>>0>=h>>>0?!(Fda(b,e,h)|0):0)break;b=OR(O)|0;yb=Q;return b|0}while(0);j=O+16|0;i=Mqb(c[j>>2]|0)|0;b:do if(i){do if((c[q>>2]|0)==7){f=Peb(i+8|0)|0;h=O+12|0;e=c[h>>2]|0;if((f|0)==-1){b=e;yb=Q;return b|0}g=Sqb(e)|0;if(!g){f=BGa(f)|0;if(!f)break;if((Si(e,b)|0)>>>0>f>>>0)break;b=c[h>>2]|0;yb=Q;return b|0}else{C=a[g+8>>0]|0;if(!(C<<24>>24==1&(f|0)==255)?!(C<<24>>24==2&(f|0)==65535):0)break;a[g+9>>0]=0;b=c[h>>2]|0;yb=Q;return b|0}}while(0);f=Zh(b,O)|0;if(f|0){b=f;yb=Q;return b|0}g=O+12|0;e=Aqb(c[g>>2]|0)|0;c:do if((e|0?(D=c[e+8>>2]|0,(D|0)==(c[q>>2]|0)):0)?(G=Mqb(c[e+16>>2]|0)|0,G|0):0)switch(D|0){case 7:{b=G+8|0;yqa(E,b,i+8|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];b=e;yb=Q;return b|0}case 8:{b=G+8|0;Gqa(F,b,i+8|0);c[b>>2]=c[F>>2];c[b+4>>2]=c[F+4>>2];c[b+8>>2]=c[F+8>>2];c[b+12>>2]=c[F+12>>2];c[b+16>>2]=c[F+16>>2];b=e;yb=Q;return b|0}case 37:case 36:case 35:case 12:case 11:case 10:{f=(Zaa(G)|0)+(Zaa(i)|0)|0;h=i+4|0;if((f|0)!=(rTa(f,c[h>>2]|0)|0))break c;aO(I,f,c[h>>2]|0);b=G+8|0;c[b>>2]=c[I>>2];c[b+4>>2]=c[I+4>>2];c[b+8>>2]=c[I+8>>2];c[b+12>>2]=c[I+12>>2];c[b+16>>2]=c[I+16>>2];b=e;yb=Q;return b|0}default:break c}while(0);if((c[i+4>>2]|0)==1?(H=Peb(i+8|0)|0,Kib(H)|0):0)switch(c[q>>2]|0){case 2:{b=i6(O,H)|0;yb=Q;return b|0}case 6:{b=d9(O,H)|0;yb=Q;return b|0}default:break b}}else g=O+12|0;while(0);if(_xb(c[c[g>>2]>>2]|0)|0?(J=SA(b,O)|0,J|0):0){b=J;yb=Q;return b|0}f=c[q>>2]|0;switch(f|0){case 7:{f=Kqb(c[g>>2]|0)|0;if(((f|0?(c[f+8>>2]|0)==20:0)?(K=Kqb(c[j>>2]|0)|0,K|0):0)?(c[K+8>>2]|0)==20:0){N=f+12|0;b=c[N>>2]|0;c[N>>2]=O;c[g>>2]=b;c[j>>2]=c[K+12>>2];c[q>>2]=8;b=f;yb=Q;return b|0}L=91;break}case 8:{L=91;break}default:{}}do if((L|0)==91){f=Vj(b,O)|0;if(f|0){b=f;yb=Q;return b|0}f=c[q>>2]|0;if((f|0)==8){f=zs(b,O)|0;if(!f){f=c[q>>2]|0;break}else{b=f;yb=Q;return b|0}}}while(0);if(Tka(f)|0?(N=qu(O)|0,N|0):0){b=N;yb=Q;return b|0}N=pob(c[b+40>>2]|0)|0;VA(M,N,c[g>>2]|0);N=QGa(M)|0;Fha(M);if(N){b=0;yb=Q;return b|0}if(!(L6(c[g>>2]|0,c[j>>2]|0)|0)){b=0;yb=Q;return b|0}b=vL(b,O)|0;yb=Q;return b|0}i=Kqb(e)|0;if(i|0){if((c[i+8>>2]|0)!=20){b=0;yb=Q;return b|0}e=i+12|0;f=c[e>>2]|0;g=Aqb(f)|0;d:do if(g|0){h=g+8|0;do switch(c[h>>2]|0){case 15:{c[h>>2]=16;b=g;yb=Q;return b|0}case 16:{c[h>>2]=15;b=g;yb=Q;return b|0}case 17:{c[h>>2]=23;b=g;yb=Q;return b|0}case 18:{c[h>>2]=24;b=g;yb=Q;return b|0}case 19:{c[h>>2]=21;b=g;yb=Q;return b|0}case 20:{c[h>>2]=22;b=g;yb=Q;return b|0}case 21:{c[h>>2]=19;b=g;yb=Q;return b|0}case 22:{c[h>>2]=20;b=g;yb=Q;return b|0}case 23:{c[h>>2]=17;b=g;yb=Q;return b|0}case 24:{c[h>>2]=18;b=g;yb=Q;return b|0}case 40:{c[h>>2]=41;b=g;yb=Q;return b|0}case 41:{c[h>>2]=40;b=g;yb=Q;return b|0}case 42:{c[h>>2]=48;b=g;yb=Q;return b|0}case 43:{c[h>>2]=49;b=g;yb=Q;return b|0}case 44:{c[h>>2]=46;b=g;yb=Q;return b|0}case 45:{c[h>>2]=47;b=g;yb=Q;return b|0}case 46:{c[h>>2]=44;b=g;yb=Q;return b|0}case 47:{c[h>>2]=45;b=g;yb=Q;return b|0}case 48:{c[h>>2]=42;b=g;yb=Q;return b|0}case 49:{c[h>>2]=43;b=g;yb=Q;return b|0}case 57:{c[h>>2]=58;b=g;yb=Q;return b|0}case 58:{c[h>>2]=57;b=g;yb=Q;return b|0}case 70:{c[h>>2]=71;b=g;yb=Q;return b|0}case 71:{c[h>>2]=70;b=g;yb=Q;return b|0}default:break d}while(0)}while(0);f=zM(f)|0;if(!f){b=0;yb=Q;return b|0}b=q$(b,f,Q0a(c[e>>2]|0)|0)|0;c[e>>2]=b;b=i;yb=Q;return b|0}g=Vpb(e)|0;if(g|0){f=Wpb(c[g+12>>2]|0)|0;if(!f){b=0;yb=Q;return b|0}if(!(dub(c[f+8>>2]|0,c[g+8>>2]|0)|0)){b=0;yb=Q;return b|0}Gjb(e);b=0;yb=Q;return b|0}l=wrb(e)|0;if(l|0){k=l+8|0;f=cq(b,c[k>>2]|0)|0;c[k>>2]=f;h=l+16|0;g=c[h>>2]|0;e=g;if(!g){b=0;yb=Q;return b|0}i=Kqb(f)|0;if((i|0)!=0?(c[i+8>>2]|0)==20:0){f=c[i+12>>2]|0;c[k>>2]=f;O=l+12|0;g=c[O>>2]|0;c[O>>2]=e;c[h>>2]=g}if((c[f+4>>2]|0)==6){b=0;yb=Q;return b|0}j=l+12|0;if(!(L6(c[j>>2]|0,g)|0)){b=0;yb=Q;return b|0}i=pob(c[b+40>>2]|0)|0;VA(v,i,c[k>>2]|0);i=QGa(v)|0;Fha(v);g=c[j>>2]|0;e=l+4|0;f=(c[g+4>>2]|0)==(c[e>>2]|0);if(!(i|f^1)){b=g;yb=Q;return b|0}Gsb(z,WCb(c[b+36>>2]|0)|0);if(f){O=c[z>>2]|0;b=Q6a(O,c[k>>2]|0)|0;b=zMa(O,b,c[j>>2]|0)|0;yb=Q;return b|0}if(!(vub(c[e>>2]|0)|0))ma(89234,89176,615,89221);if((c[(c[j>>2]|0)+4>>2]|0)!=6)ma(89234,89176,615,89221);f=c[z>>2]|0;g=vJa(f,0)|0;h=g+12|0;if(i)Wla(h,Q6a(f,c[k>>2]|0)|0);Wla(h,c[j>>2]|0);uZa(g,c[e>>2]|0);b=g;yb=Q;return b|0}i=yqb(e)|0;if(!i){f=Qqb(e)|0;if(f|0){f=f+16|0;g=c[f>>2]|0;if(!g){b=0;yb=Q;return b|0}b=cq(b,g)|0;c[f>>2]=b;b=0;yb=Q;return b|0}f=Sqb(e)|0;if(f|0){lN(c[f+24>>2]|0,f+12|0);b=0;yb=Q;return b|0}h=Lqb(e)|0;if(!h){b=0;yb=Q;return b|0}lN(c[h+24>>2]|0,h+12|0);e=h+28|0;f=c[e>>2]|0;g=Aqb(f)|0;if(!g){f=Kqb(f)|0;if(!f){b=0;yb=Q;return b|0}if((c[f+8>>2]|0)!=24){b=0;yb=Q;return b|0}c[h+32>>2]=2;c[e>>2]=c[f+12>>2];b=0;yb=Q;return b|0}if((c[g+8>>2]|0)!=7){f=zM(g)|0;if(!f){b=0;yb=Q;return b|0}b=Q0a(g)|0;if(b>>>0<(d[h+8>>0]|0)<<3>>>0){b=0;yb=Q;return b|0}c[e>>2]=f;b=0;yb=Q;return b|0}f=Mqb(c[g+16>>2]|0)|0;if(!f){b=0;yb=Q;return b|0}if((c[f+4>>2]|0)!=1){b=0;yb=Q;return b|0}b=Peb(f+8|0)|0;O=a[h+8>>0]|0;if(!(O<<24>>24==1&(b|0)==255)?!(O<<24>>24==2&(b|0)==65535):0){b=0;yb=Q;return b|0}c[e>>2]=c[g+12>>2];b=0;yb=Q;return b|0}j=i+16|0;g=cq(b,c[j>>2]|0)|0;c[j>>2]=g;e=Kqb(g)|0;if((e|0)!=0?(c[e+8>>2]|0)==20:0){O=b+40|0;h=pob(c[O>>2]|0)|0;g=i+8|0;VA(q,h,c[g>>2]|0);O=pob(c[O>>2]|0)|0;h=i+12|0;n=0;ea(130,r|0,O|0,c[h>>2]|0);O=n;n=0;if(O&1){Q=sa()|0;P()|0;Fha(q);Ea(Q|0)}if(!(Hi(q,r)|0)){c[j>>2]=c[e+12>>2];O=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=O}Fha(r);Fha(q);g=c[j>>2]|0}g=Mqb(g)|0;do if(g){O=Wsa(g+8|0)|0;O=(O|0)==0&(P()|0)==0;h=pob(c[b+40>>2]|0)|0;if(!O){g=i+12|0;VA(w,h,c[g>>2]|0);O=QGa(w)|0;Fha(w);if(O)break;b=c[i+8>>2]|0;yb=Q;return b|0}f=i+8|0;VA(x,h,c[f>>2]|0);O=QGa(x)|0;Fha(x);if(O){Gsb(y,WCb(c[b+36>>2]|0)|0);O=c[y>>2]|0;b=Q6a(O,c[f>>2]|0)|0;b=zMa(O,b,c[i+12>>2]|0)|0;yb=Q;return b|0}else{b=c[i+12>>2]|0;yb=Q;return b|0}}else g=i+12|0;while(0);e=i+8|0;if(!(L6(c[e>>2]|0,c[g>>2]|0)|0)){b=0;yb=Q;return b|0}g=b+40|0;O=pob(c[g>>2]|0)|0;VA(C,O,c[e>>2]|0);e:do if(!(QGa(C)|0)){O=pob(c[g>>2]|0)|0;n=0;ea(130,B|0,O|0,c[j>>2]|0);O=n;n=0;f:do if(O&1){f=sa()|0;P()|0}else{do if(QGa(B)|0){if(Hi(B,C)|0){Fha(B);break e}Gsb(A,WCb(c[b+36>>2]|0)|0);h=c[A>>2]|0;n=0;g=U(161,h|0,c[j>>2]|0)|0;b=n;n=0;if(!(b&1)?(n=0,f=V(57,h|0,g|0,c[e>>2]|0)|0,b=n,n=0,!(b&1)):0)break;f=sa()|0;P()|0;Fha(B);break f}else f=c[e>>2]|0;while(0);Fha(B);Fha(C);b=f;yb=Q;return b|0}while(0);Fha(C);Q=f;Ea(Q|0)}while(0);Fha(C);b=0;yb=Q;return b|0}function tc(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,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,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0;ya=yb;yb=yb+1760|0;b=ya+1728|0;m=ya+1704|0;y=ya+1680|0;J=ya+1656|0;V=ya+1632|0;ea=ya+1608|0;qa=ya+1584|0;wa=ya+1560|0;xa=ya+1536|0;c=ya+1512|0;d=ya+1488|0;e=ya+1464|0;f=ya+1440|0;g=ya+1416|0;h=ya+1392|0;i=ya+1368|0;j=ya+1344|0;k=ya+1320|0;l=ya+1296|0;o=ya+1272|0;p=ya+1248|0;q=ya+1224|0;r=ya+1200|0;s=ya+1176|0;t=ya+1152|0;u=ya+1128|0;v=ya+1104|0;w=ya+1080|0;x=ya+1056|0;z=ya+1032|0;A=ya+1008|0;B=ya+984|0;C=ya+960|0;D=ya+936|0;E=ya+912|0;F=ya+888|0;G=ya+864|0;H=ya+840|0;I=ya+816|0;K=ya+792|0;L=ya+768|0;M=ya+744|0;N=ya+720|0;O=ya+696|0;Q=ya+672|0;R=ya+648|0;S=ya+624|0;T=ya+600|0;U=ya+576|0;W=ya+552|0;X=ya+528|0;Y=ya+504|0;Z=ya+480|0;_=ya+456|0;$=ya+432|0;aa=ya+408|0;ba=ya+384|0;ca=ya+360|0;da=ya+336|0;ga=ya+312|0;ha=ya+288|0;ia=ya+264|0;ja=ya+240|0;ka=ya+216|0;la=ya+192|0;ma=ya+168|0;na=ya+144|0;oa=ya+120|0;pa=ya+96|0;ra=ya+72|0;ta=ya+48|0;ua=ya+24|0;va=ya;IYa(b,5);n=0;fa(118,a|0,90298,90302,b|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(b);Ea(za|0)}TIa(b);IYa(m,6);n=0;fa(118,a|0,90351,90366,m|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(m);Ea(za|0)}TIa(m);IYa(y,7);n=0;fa(118,a|0,90447,90463,y|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(y);Ea(za|0)}TIa(y);IYa(J,8);n=0;fa(118,a|0,90496,90521,J|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(J);Ea(za|0)}TIa(J);IYa(V,9);n=0;fa(118,a|0,90567,90580,V|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(V);Ea(za|0)}TIa(V);IYa(ea,10);n=0;fa(118,a|0,90640,90653,ea|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(ea);Ea(za|0)}TIa(ea);IYa(qa,11);n=0;fa(118,a|0,90683,90698,qa|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(qa);Ea(za|0)}TIa(qa);IYa(wa,12);n=0;fa(118,a|0,90734,90738,wa|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(wa);Ea(za|0)}TIa(wa);IYa(xa,13);n=0;fa(118,a|0,90763,90767,xa|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(xa);Ea(za|0)}TIa(xa);IYa(c,14);n=0;fa(118,a|0,90803,90834,c|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(c);Ea(za|0)}TIa(c);IYa(d,15);n=0;fa(118,a|0,90862,90879,d|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(d);Ea(za|0)}TIa(d);IYa(e,16);n=0;fa(118,a|0,90927,90935,e|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(e);Ea(za|0)}TIa(e);IYa(f,17);n=0;fa(118,a|0,90971,90982,f|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(f);Ea(za|0)}TIa(f);IYa(g,18);n=0;fa(118,a|0,91069,91082,g|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(g);Ea(za|0)}TIa(g);IYa(h,19);n=0;fa(118,a|0,91107,91125,h|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(h);Ea(za|0)}TIa(h);IYa(i,20);n=0;fa(118,a|0,91143,91152,i|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(i);Ea(za|0)}TIa(i);IYa(j,21);n=0;fa(118,a|0,91209,91229,j|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(j);Ea(za|0)}TIa(j);IYa(k,22);n=0;fa(118,a|0,91277,91299,k|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(k);Ea(za|0)}TIa(k);IYa(l,23);n=0;fa(118,a|0,91349,91381,l|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(l);Ea(za|0)}TIa(l);IYa(o,24);n=0;fa(118,a|0,91485,91495,o|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(o);Ea(za|0)}TIa(o);IYa(p,25);n=0;fa(118,a|0,91548,91562,p|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(p);Ea(za|0)}TIa(p);IYa(q,26);n=0;fa(118,a|0,91620,91640,q|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(q);Ea(za|0)}TIa(q);IYa(r,27);n=0;fa(118,a|0,91683,91701,r|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(r);Ea(za|0)}TIa(r);IYa(s,28);n=0;fa(118,a|0,91766,91701,s|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(s);Ea(za|0)}TIa(s);IYa(t,29);n=0;fa(118,a|0,91784,91789,t|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(t);Ea(za|0)}TIa(t);IYa(u,30);n=0;fa(118,a|0,91816,91831,u|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(u);Ea(za|0)}TIa(u);IYa(v,31);n=0;fa(118,a|0,91883,91896,v|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(v);Ea(za|0)}TIa(v);IYa(w,32);n=0;fa(118,a|0,91927,91940,w|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(w);Ea(za|0)}TIa(w);IYa(x,33);n=0;fa(118,a|0,91970,91978,x|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(x);Ea(za|0)}TIa(x);IYa(z,34);n=0;fa(118,a|0,91994,92009,z|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(z);Ea(za|0)}TIa(z);IYa(A,35);n=0;fa(118,a|0,92108,92135,A|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(A);Ea(za|0)}TIa(A);IYa(B,36);n=0;fa(118,a|0,92215,92218,B|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(B);Ea(za|0)}TIa(B);IYa(C,37);n=0;fa(118,a|0,92228,92244,C|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(C);Ea(za|0)}TIa(C);IYa(D,38);n=0;fa(118,a|0,92324,92346,D|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(D);Ea(za|0)}TIa(D);IYa(E,39);n=0;fa(118,a|0,92381,92399,E|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(E);Ea(za|0)}TIa(E);IYa(F,40);n=0;fa(118,a|0,92417,92433,F|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(F);Ea(za|0)}TIa(F);IYa(G,41);n=0;fa(118,a|0,92469,92485,G|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(G);Ea(za|0)}TIa(G);IYa(H,42);n=0;fa(118,a|0,92543,92554,H|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(H);Ea(za|0)}TIa(H);IYa(I,43);n=0;fa(118,a|0,92600,92621,I|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(I);Ea(za|0)}TIa(I);IYa(K,44);n=0;fa(118,a|0,134087,92702,K|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(K);Ea(za|0)}TIa(K);IYa(L,45);n=0;fa(118,a|0,92731,92746,L|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(L);Ea(za|0)}TIa(L);IYa(M,46);n=0;fa(118,a|0,92784,92795,M|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(M);Ea(za|0)}TIa(M);IYa(N,47);n=0;fa(118,a|0,92829,92846,N|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(N);Ea(za|0)}TIa(N);IYa(O,48);n=0;fa(118,a|0,92863,92878,O|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(O);Ea(za|0)}TIa(O);IYa(Q,49);n=0;fa(118,a|0,92929,92953,Q|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(Q);Ea(za|0)}TIa(Q);IYa(R,50);n=0;fa(118,a|0,92998,93016,R|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(R);Ea(za|0)}TIa(R);IYa(S,51);n=0;fa(118,a|0,93056,93071,S|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(S);Ea(za|0)}TIa(S);IYa(T,52);n=0;fa(118,a|0,93115,93129,T|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(T);Ea(za|0)}TIa(T);IYa(U,53);n=0;fa(118,a|0,93153,93171,U|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(U);Ea(za|0)}TIa(U);IYa(W,54);n=0;fa(118,a|0,93221,93251,W|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(W);Ea(za|0)}TIa(W);IYa(X,55);n=0;fa(118,a|0,93282,93324,X|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(X);Ea(za|0)}TIa(X);IYa(Y,56);n=0;fa(118,a|0,93378,93398,Y|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(Y);Ea(za|0)}TIa(Y);IYa(Z,57);n=0;fa(118,a|0,93454,93472,Z|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(Z);Ea(za|0)}TIa(Z);IYa(_,58);n=0;fa(118,a|0,93508,93523,_|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(_);Ea(za|0)}TIa(_);IYa($,59);n=0;fa(118,a|0,93556,93565,$|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa($);Ea(za|0)}TIa($);IYa(aa,60);n=0;fa(118,a|0,93619,93623,aa|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(aa);Ea(za|0)}TIa(aa);IYa(ba,61);n=0;fa(118,a|0,93651,93661,ba|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(ba);Ea(za|0)}TIa(ba);IYa(ca,62);n=0;fa(118,a|0,93719,93735,ca|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(ca);Ea(za|0)}TIa(ca);IYa(da,63);n=0;fa(118,a|0,93778,93804,da|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(da);Ea(za|0)}TIa(da);IYa(ga,64);n=0;fa(118,a|0,93887,93909,ga|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(ga);Ea(za|0)}TIa(ga);IYa(ha,65);n=0;fa(118,a|0,93962,93990,ha|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(ha);Ea(za|0)}TIa(ha);IYa(ia,66);n=0;fa(118,a|0,94048,94082,ia|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(ia);Ea(za|0)}TIa(ia);IYa(ja,67);n=0;fa(118,a|0,94148,94158,ja|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(ja);Ea(za|0)}TIa(ja);IYa(ka,68);n=0;fa(118,a|0,94186,94207,ka|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(ka);Ea(za|0)}TIa(ka);IYa(la,69);n=0;fa(118,a|0,94259,94274,la|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(la);Ea(za|0)}TIa(la);IYa(ma,70);n=0;fa(118,a|0,94332,94336,ma|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(ma);Ea(za|0)}TIa(ma);IYa(na,71);n=0;fa(118,a|0,94392,94398,na|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(na);Ea(za|0)}TIa(na);IYa(oa,71);n=0;fa(118,a|0,94430,94442,oa|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(oa);Ea(za|0)}TIa(oa);IYa(pa,72);n=0;fa(118,a|0,94489,94505,pa|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(pa);Ea(za|0)}TIa(pa);IYa(ra,73);n=0;fa(118,a|0,94538,94554,ra|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(ra);Ea(za|0)}TIa(ra);IYa(ta,74);n=0;fa(118,a|0,94606,94619,ta|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(ta);Ea(za|0)}TIa(ta);IYa(ua,75);n=0;fa(118,a|0,94665,94671,ua|0);za=n;n=0;if(za&1){za=sa()|0;P()|0;TIa(ua);Ea(za|0)}TIa(ua);IYa(va,76);n=0;fa(118,a|0,94725,94732,va|0);za=n;n=0;if(!(za&1)){TIa(va);yb=ya;return}za=sa()|0;P()|0;TIa(va);Ea(za|0)}function uc(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,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0;wa=yb;yb=yb+1664|0;ta=wa+1640|0;g=wa+1608|0;I=wa+1584|0;T=wa+1560|0;ca=wa+1536|0;oa=wa+1512|0;qa=wa+1488|0;ra=wa+1464|0;f=wa+1440|0;h=wa+1416|0;i=wa+1392|0;j=wa+1368|0;k=wa+1344|0;l=wa+1320|0;m=wa+1296|0;n=wa+1272|0;o=wa+1248|0;p=wa+1224|0;q=wa+1200|0;r=wa+1176|0;s=wa+1152|0;t=wa+1128|0;u=wa+1104|0;v=wa+1080|0;w=wa+1056|0;x=wa+1032|0;ua=wa+1008|0;va=wa+984|0;y=wa+960|0;z=wa+936|0;A=wa+912|0;B=wa+888|0;C=wa+864|0;D=wa+840|0;E=wa+816|0;F=wa+792|0;G=wa+768|0;H=wa+744|0;J=wa+720|0;K=wa+696|0;L=wa+672|0;M=wa+648|0;N=wa+624|0;O=wa+600|0;P=wa+576|0;Q=wa+552|0;R=wa+528|0;S=wa+504|0;U=wa+480|0;V=wa+456|0;W=wa+432|0;X=wa+408|0;Y=wa+384|0;Z=wa+360|0;_=wa+336|0;$=wa+312|0;aa=wa+288|0;ba=wa+264|0;da=wa+240|0;ea=wa+216|0;fa=wa+192|0;ga=wa+168|0;ha=wa+144|0;ia=wa+120|0;ja=wa+96|0;ka=wa+72|0;la=wa+48|0;na=wa+24|0;pa=wa;tw(g,d,c[e+12>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=wa;return}c[I>>2]=c[g>>2];c[I+4>>2]=c[g+4>>2];c[I+8>>2]=c[g+8>>2];c[I+12>>2]=c[g+12>>2];c[I+16>>2]=c[g+16>>2];c[I+20>>2]=c[g+20>>2];do switch(c[e+8>>2]|0){case 1:case 0:{Xha(T,I);sa=ta;f=T;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 3:case 2:{Jha(ca,I);sa=ta;f=ca;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 5:case 4:{Ela(oa,I);sa=ta;f=oa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 21:case 20:{GQ(qa,I);sa=ta;f=qa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 45:{r_a(ra,I);sa=ta;f=ra;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 46:{qUa(f,I);sa=ta;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 22:{bWa(h,I);sa=ta;f=h;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 23:{E2a(i,I);sa=ta;f=i;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 24:{sa=I;S3a(j,c[sa>>2]|0,c[sa+4>>2]|0,c[I+16>>2]|0);sa=ta;f=j;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 41:case 37:{Tra(k,I);sa=ta;f=k;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 42:case 38:{Sra(l,I);sa=ta;f=l;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 39:case 35:{Lua(m,I);sa=ta;f=m;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 40:case 36:{Kua(n,I);sa=ta;f=n;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 49:case 47:{Yia(o,I);sa=ta;f=o;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 50:case 48:{Qia(p,I);sa=ta;f=p;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 51:{JGa(q,I);sa=ta;f=q;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 7:case 6:{aN(r,I);sa=ta;f=r;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 9:case 8:{HP(s,I);sa=ta;f=s;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 11:case 10:{Ywa(t,I);sa=ta;f=t;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 13:case 12:{Awa(u,I);sa=ta;f=u;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 15:case 14:{uua(v,I);sa=ta;f=v;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 17:case 16:{isa(w,I);sa=ta;f=w;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 19:case 18:{Xwa(x,I);sa=ta;f=x;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 30:case 26:case 29:case 25:{sa=ta;f=I;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));wy(ua,d,e,ta);sa=ta;f=ua;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 32:case 28:case 31:case 27:{sa=ta;f=I;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));py(va,d,e,ta);sa=ta;f=va;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 54:case 52:{cI(y,I);sa=ta;f=y;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 58:case 56:{bI(z,I);sa=ta;f=z;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 55:case 53:{aI(A,I);sa=ta;f=A;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 59:case 57:{$H(B,I);sa=ta;f=B;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 33:{q_a(C,I);sa=ta;f=C;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 43:{J0a(D,I);sa=ta;f=D;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 34:{sa=I;pZa(E,c[sa>>2]|0,c[sa+4>>2]|0,c[I+16>>2]|0);sa=ta;f=E;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 44:{wG(F,I);sa=ta;f=F;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 60:{Ilb(G,I);sa=ta;f=G;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 61:{Rlb(H,I);sa=ta;f=H;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 62:{Qlb(J,I);sa=ta;f=J;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 63:{Plb(K,I);sa=ta;f=K;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 64:{Tlb(L,I);sa=ta;f=L;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 65:{Slb(M,I);sa=ta;f=M;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 66:{dta(N,I);sa=ta;f=N;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 67:{ygb(O,I);sa=ta;f=O;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 68:{zib(P,I);sa=ta;f=P;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 69:{Aib(Q,I);sa=ta;f=Q;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 70:{Jgb(R,I);sa=ta;f=R;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 71:{Fib(S,I);sa=ta;f=S;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 72:{Gib(U,I);sa=ta;f=U;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 73:{Sgb(V,I);sa=ta;f=V;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 74:{Pib(W,I);sa=ta;f=W;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 75:{Rib(X,I);sa=ta;f=X;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 76:{Rgb(Y,I);sa=ta;f=Y;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 77:{Oib(Z,I);sa=ta;f=Z;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 78:{Qib(_,I);sa=ta;f=_;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 79:{Wgb($,I);sa=ta;f=$;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 80:{Ugb(aa,I);sa=ta;f=aa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 81:{xgb(ba,I);sa=ta;f=ba;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 82:{Vgb(da,I);sa=ta;f=da;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 83:{Tgb(ea,I);sa=ta;f=ea;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 84:{wgb(fa,I);sa=ta;f=fa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 85:{Fcb(ga,I);sa=ta;f=ga;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 86:{Dcb(ha,I);sa=ta;f=ha;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 87:{Ecb(ia,I);sa=ta;f=ia;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 88:{Ccb(ja,I);sa=ta;f=ja;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 89:{Ucb(ka,I);sa=ta;f=ka;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 90:{Scb(la,I);sa=ta;f=la;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 91:{Tcb(na,I);sa=ta;f=na;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 92:{Rcb(pa,I);sa=ta;f=pa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 93:{ma(141129,96854,339,132100);break}default:ma(141129,96854,341,132100)}while(0)}function vc(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,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0;wa=yb;yb=yb+1664|0;ta=wa+1640|0;g=wa+1608|0;I=wa+1584|0;T=wa+1560|0;ca=wa+1536|0;oa=wa+1512|0;qa=wa+1488|0;ra=wa+1464|0;f=wa+1440|0;h=wa+1416|0;i=wa+1392|0;j=wa+1368|0;k=wa+1344|0;l=wa+1320|0;m=wa+1296|0;n=wa+1272|0;o=wa+1248|0;p=wa+1224|0;q=wa+1200|0;r=wa+1176|0;s=wa+1152|0;t=wa+1128|0;u=wa+1104|0;v=wa+1080|0;w=wa+1056|0;x=wa+1032|0;ua=wa+1008|0;va=wa+984|0;y=wa+960|0;z=wa+936|0;A=wa+912|0;B=wa+888|0;C=wa+864|0;D=wa+840|0;E=wa+816|0;F=wa+792|0;G=wa+768|0;H=wa+744|0;J=wa+720|0;K=wa+696|0;L=wa+672|0;M=wa+648|0;N=wa+624|0;O=wa+600|0;P=wa+576|0;Q=wa+552|0;R=wa+528|0;S=wa+504|0;U=wa+480|0;V=wa+456|0;W=wa+432|0;X=wa+408|0;Y=wa+384|0;Z=wa+360|0;_=wa+336|0;$=wa+312|0;aa=wa+288|0;ba=wa+264|0;da=wa+240|0;ea=wa+216|0;fa=wa+192|0;ga=wa+168|0;ha=wa+144|0;ia=wa+120|0;ja=wa+96|0;ka=wa+72|0;la=wa+48|0;na=wa+24|0;pa=wa;nz(g,d,c[e+12>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=wa;return}c[I>>2]=c[g>>2];c[I+4>>2]=c[g+4>>2];c[I+8>>2]=c[g+8>>2];c[I+12>>2]=c[g+12>>2];c[I+16>>2]=c[g+16>>2];c[I+20>>2]=c[g+20>>2];do switch(c[e+8>>2]|0){case 1:case 0:{Xha(T,I);sa=ta;f=T;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 3:case 2:{Jha(ca,I);sa=ta;f=ca;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 5:case 4:{Ela(oa,I);sa=ta;f=oa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 21:case 20:{GQ(qa,I);sa=ta;f=qa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 45:{r_a(ra,I);sa=ta;f=ra;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 46:{qUa(f,I);sa=ta;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 22:{bWa(h,I);sa=ta;f=h;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 23:{E2a(i,I);sa=ta;f=i;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 24:{sa=I;S3a(j,c[sa>>2]|0,c[sa+4>>2]|0,c[I+16>>2]|0);sa=ta;f=j;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 41:case 37:{Tra(k,I);sa=ta;f=k;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 42:case 38:{Sra(l,I);sa=ta;f=l;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 39:case 35:{Lua(m,I);sa=ta;f=m;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 40:case 36:{Kua(n,I);sa=ta;f=n;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 49:case 47:{Yia(o,I);sa=ta;f=o;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 50:case 48:{Qia(p,I);sa=ta;f=p;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 51:{JGa(q,I);sa=ta;f=q;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 7:case 6:{aN(r,I);sa=ta;f=r;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 9:case 8:{HP(s,I);sa=ta;f=s;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 11:case 10:{Ywa(t,I);sa=ta;f=t;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 13:case 12:{Awa(u,I);sa=ta;f=u;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 15:case 14:{uua(v,I);sa=ta;f=v;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 17:case 16:{isa(w,I);sa=ta;f=w;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 19:case 18:{Xwa(x,I);sa=ta;f=x;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 30:case 26:case 29:case 25:{sa=ta;f=I;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));wy(ua,d,e,ta);sa=ta;f=ua;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 32:case 28:case 31:case 27:{sa=ta;f=I;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));py(va,d,e,ta);sa=ta;f=va;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 54:case 52:{cI(y,I);sa=ta;f=y;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 58:case 56:{bI(z,I);sa=ta;f=z;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 55:case 53:{aI(A,I);sa=ta;f=A;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 59:case 57:{$H(B,I);sa=ta;f=B;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 33:{q_a(C,I);sa=ta;f=C;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 43:{J0a(D,I);sa=ta;f=D;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 34:{sa=I;pZa(E,c[sa>>2]|0,c[sa+4>>2]|0,c[I+16>>2]|0);sa=ta;f=E;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 44:{wG(F,I);sa=ta;f=F;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 60:{Ilb(G,I);sa=ta;f=G;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 61:{Rlb(H,I);sa=ta;f=H;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 62:{Qlb(J,I);sa=ta;f=J;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 63:{Plb(K,I);sa=ta;f=K;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 64:{Tlb(L,I);sa=ta;f=L;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 65:{Slb(M,I);sa=ta;f=M;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 66:{dta(N,I);sa=ta;f=N;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 67:{ygb(O,I);sa=ta;f=O;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 68:{zib(P,I);sa=ta;f=P;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 69:{Aib(Q,I);sa=ta;f=Q;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 70:{Jgb(R,I);sa=ta;f=R;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 71:{Fib(S,I);sa=ta;f=S;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 72:{Gib(U,I);sa=ta;f=U;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 73:{Sgb(V,I);sa=ta;f=V;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 74:{Pib(W,I);sa=ta;f=W;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 75:{Rib(X,I);sa=ta;f=X;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 76:{Rgb(Y,I);sa=ta;f=Y;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 77:{Oib(Z,I);sa=ta;f=Z;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 78:{Qib(_,I);sa=ta;f=_;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 79:{Wgb($,I);sa=ta;f=$;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 80:{Ugb(aa,I);sa=ta;f=aa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 81:{xgb(ba,I);sa=ta;f=ba;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 82:{Vgb(da,I);sa=ta;f=da;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 83:{Tgb(ea,I);sa=ta;f=ea;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 84:{wgb(fa,I);sa=ta;f=fa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 85:{Fcb(ga,I);sa=ta;f=ga;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 86:{Dcb(ha,I);sa=ta;f=ha;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 87:{Ecb(ia,I);sa=ta;f=ia;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 88:{Ccb(ja,I);sa=ta;f=ja;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 89:{Ucb(ka,I);sa=ta;f=ka;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 90:{Scb(la,I);sa=ta;f=la;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 91:{Tcb(na,I);sa=ta;f=na;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 92:{Rcb(pa,I);sa=ta;f=pa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 93:{ma(141129,96854,339,132100);break}default:ma(141129,96854,341,132100)}while(0)}function wc(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,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0;wa=yb;yb=yb+1664|0;ta=wa+1640|0;g=wa+1608|0;I=wa+1584|0;T=wa+1560|0;ca=wa+1536|0;oa=wa+1512|0;qa=wa+1488|0;ra=wa+1464|0;f=wa+1440|0;h=wa+1416|0;i=wa+1392|0;j=wa+1368|0;k=wa+1344|0;l=wa+1320|0;m=wa+1296|0;n=wa+1272|0;o=wa+1248|0;p=wa+1224|0;q=wa+1200|0;r=wa+1176|0;s=wa+1152|0;t=wa+1128|0;u=wa+1104|0;v=wa+1080|0;w=wa+1056|0;x=wa+1032|0;ua=wa+1008|0;va=wa+984|0;y=wa+960|0;z=wa+936|0;A=wa+912|0;B=wa+888|0;C=wa+864|0;D=wa+840|0;E=wa+816|0;F=wa+792|0;G=wa+768|0;H=wa+744|0;J=wa+720|0;K=wa+696|0;L=wa+672|0;M=wa+648|0;N=wa+624|0;O=wa+600|0;P=wa+576|0;Q=wa+552|0;R=wa+528|0;S=wa+504|0;U=wa+480|0;V=wa+456|0;W=wa+432|0;X=wa+408|0;Y=wa+384|0;Z=wa+360|0;_=wa+336|0;$=wa+312|0;aa=wa+288|0;ba=wa+264|0;da=wa+240|0;ea=wa+216|0;fa=wa+192|0;ga=wa+168|0;ha=wa+144|0;ia=wa+120|0;ja=wa+96|0;ka=wa+72|0;la=wa+48|0;na=wa+24|0;pa=wa;AB(g,d,c[e+12>>2]|0);if(lsb(g)|0){c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];yb=wa;return}c[I>>2]=c[g>>2];c[I+4>>2]=c[g+4>>2];c[I+8>>2]=c[g+8>>2];c[I+12>>2]=c[g+12>>2];c[I+16>>2]=c[g+16>>2];c[I+20>>2]=c[g+20>>2];do switch(c[e+8>>2]|0){case 1:case 0:{Xha(T,I);sa=ta;f=T;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 3:case 2:{Jha(ca,I);sa=ta;f=ca;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 5:case 4:{Ela(oa,I);sa=ta;f=oa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 21:case 20:{GQ(qa,I);sa=ta;f=qa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 45:{r_a(ra,I);sa=ta;f=ra;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 46:{qUa(f,I);sa=ta;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 22:{bWa(h,I);sa=ta;f=h;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 23:{E2a(i,I);sa=ta;f=i;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 24:{sa=I;S3a(j,c[sa>>2]|0,c[sa+4>>2]|0,c[I+16>>2]|0);sa=ta;f=j;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 41:case 37:{Tra(k,I);sa=ta;f=k;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 42:case 38:{Sra(l,I);sa=ta;f=l;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 39:case 35:{Lua(m,I);sa=ta;f=m;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 40:case 36:{Kua(n,I);sa=ta;f=n;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 49:case 47:{Yia(o,I);sa=ta;f=o;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 50:case 48:{Qia(p,I);sa=ta;f=p;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 51:{JGa(q,I);sa=ta;f=q;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 7:case 6:{aN(r,I);sa=ta;f=r;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 9:case 8:{HP(s,I);sa=ta;f=s;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 11:case 10:{Ywa(t,I);sa=ta;f=t;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 13:case 12:{Awa(u,I);sa=ta;f=u;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 15:case 14:{uua(v,I);sa=ta;f=v;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 17:case 16:{isa(w,I);sa=ta;f=w;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 19:case 18:{Xwa(x,I);sa=ta;f=x;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 30:case 26:case 29:case 25:{sa=ta;f=I;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));wy(ua,d,e,ta);sa=ta;f=ua;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 32:case 28:case 31:case 27:{sa=ta;f=I;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));py(va,d,e,ta);sa=ta;f=va;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 54:case 52:{cI(y,I);sa=ta;f=y;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 58:case 56:{bI(z,I);sa=ta;f=z;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 55:case 53:{aI(A,I);sa=ta;f=A;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 59:case 57:{$H(B,I);sa=ta;f=B;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 33:{q_a(C,I);sa=ta;f=C;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 43:{J0a(D,I);sa=ta;f=D;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 34:{sa=I;pZa(E,c[sa>>2]|0,c[sa+4>>2]|0,c[I+16>>2]|0);sa=ta;f=E;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 44:{wG(F,I);sa=ta;f=F;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 60:{Ilb(G,I);sa=ta;f=G;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 61:{Rlb(H,I);sa=ta;f=H;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 62:{Qlb(J,I);sa=ta;f=J;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 63:{Plb(K,I);sa=ta;f=K;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 64:{Tlb(L,I);sa=ta;f=L;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 65:{Slb(M,I);sa=ta;f=M;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 66:{dta(N,I);sa=ta;f=N;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 67:{ygb(O,I);sa=ta;f=O;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 68:{zib(P,I);sa=ta;f=P;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 69:{Aib(Q,I);sa=ta;f=Q;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 70:{Jgb(R,I);sa=ta;f=R;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 71:{Fib(S,I);sa=ta;f=S;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 72:{Gib(U,I);sa=ta;f=U;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 73:{Sgb(V,I);sa=ta;f=V;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 74:{Pib(W,I);sa=ta;f=W;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 75:{Rib(X,I);sa=ta;f=X;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 76:{Rgb(Y,I);sa=ta;f=Y;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 77:{Oib(Z,I);sa=ta;f=Z;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 78:{Qib(_,I);sa=ta;f=_;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 79:{Wgb($,I);sa=ta;f=$;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 80:{Ugb(aa,I);sa=ta;f=aa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 81:{xgb(ba,I);sa=ta;f=ba;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 82:{Vgb(da,I);sa=ta;f=da;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 83:{Tgb(ea,I);sa=ta;f=ea;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 84:{wgb(fa,I);sa=ta;f=fa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 85:{Fcb(ga,I);sa=ta;f=ga;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 86:{Dcb(ha,I);sa=ta;f=ha;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 87:{Ecb(ia,I);sa=ta;f=ia;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 88:{Ccb(ja,I);sa=ta;f=ja;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 89:{Ucb(ka,I);sa=ta;f=ka;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 90:{Scb(la,I);sa=ta;f=la;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 91:{Tcb(na,I);sa=ta;f=na;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 92:{Rcb(pa,I);sa=ta;f=pa;g=sa+24|0;do{a[sa>>0]=a[f>>0]|0;sa=sa+1|0;f=f+1|0}while((sa|0)<(g|0));Wza(b,ta);yb=wa;return}case 93:{ma(141129,96854,339,132100);break}default:ma(141129,96854,341,132100)}while(0)}function xc(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,o=0,p=0,q=0,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;M=yb;yb=yb+128|0;C=M+124|0;E=M+120|0;N=M+108|0;F=M+104|0;u=M+88|0;r=M+80|0;g=M+72|0;s=M+68|0;A=M+64|0;B=M+60|0;t=M+56|0;h=M+52|0;k=M+48|0;o=M+44|0;q=M+40|0;l=M+36|0;w=M+24|0;x=M+20|0;y=M+16|0;G=M+12|0;I=M+8|0;L=M+4|0;J=M;c[E>>2]=b;c[N>>2]=0;K=N+4|0;c[K>>2]=0;H=N+8|0;c[H>>2]=0;f=a+36|0;Gsb(F,WCb(c[f>>2]|0)|0);b=c[E>>2]|0;i=YSa(c[b>>2]|0)|0;p=a+56|0;d=oC(p,E)|0;e=(d|0)==0;a:do if(i){if(!e){n=0;fa(75,80202,80240,95,80272);n=0;D=7;break}k=Rqb(b)|0;if(k|0){i=c[f>>2]|0;WCb(i)|0;$jb(u,i+152|0);i=k+12|0;nrb(r,i);Hib(g,i);i=r+4|0;j=c[g>>2]|0;h=c[g+4>>2]|0;b:while(1){if(!(dhb(c[r>>2]|0,c[i>>2]|0,j,h)|0)){D=21;break}n=0;b=S(228,r|0)|0;D=n;n=0;if(D&1){D=6;break}f=c[b>>2]|0;c[s>>2]=f;b=oC(p,s)|0;if(b|0){g=b+12|0;d=b+16|0;e=c[d>>2]|0;b=c[g>>2]|0;while(1){if((b|0)==(e|0))break;n=0;da(231,u|0,c[b>>2]|0);D=n;n=0;if(D&1){D=5;break b}b=b+4|0}c[d>>2]=c[g>>2]}n=0;da(231,u|0,f|0);D=n;n=0;if(D&1){D=6;break}hob(r)}if((D|0)==5){b=sa()|0;P()|0;break}else if((D|0)==6){b=sa()|0;P()|0;break}else if((D|0)==21){d=k+12|0;qEa(d,u);f=c[k+4>>2]|0;do if(vub(f)|0){b=NF(a+76|0,k+8|0)|0;if(!b){b=WCb(c[a+32>>2]|0)|0;n=0;b=U(133,b|0,f|0)|0;D=n;n=0;if(D&1){D=7;break a}}else b=c[b+12>>2]|0;n=0;e=S(275,d|0)|0;D=n;n=0;if(D&1){D=7;break a}d=c[e>>2]|0;if(vub(c[d+4>>2]|0)|0){n=0;d=V(70,c[F>>2]|0,b|0,d|0)|0;D=n;n=0;if(D&1){D=7;break a}c[e>>2]=d}n=0;da(620,k|0,0);D=n;n=0;if(D&1){D=7;break a}n=0;b=V(71,c[F>>2]|0,b|0,f|0)|0;D=n;n=0;if(D&1){D=7;break a}EYa(a+16|0,b);c[A>>2]=k;b=c[K>>2]|0;if(b>>>0>=(c[H>>2]|0)>>>0){n=0;da(372,N|0,A|0);D=n;n=0;if(D&1){D=7;break a}else break}else{c[b>>2]=k;c[K>>2]=(c[K>>2]|0)+4;break}}while(0);n=0;da(620,k|0,0);D=n;n=0;if(D&1){D=7;break}else{D=135;break}}}l=wrb(b)|0;if(!l){i=hrb(b)|0;if(!i){n=0;fa(75,141129,80240,182,80272);n=0;D=7;break}j=i+12|0;h=c[j>>2]|0;g=i+4|0;d=c[g>>2]|0;if(vub(d)|0){e=WCb(c[a+32>>2]|0)|0;n=0;e=U(133,e|0,d|0)|0;D=n;n=0;if(D&1){D=7;break}b=c[F>>2]|0;n=0;f=V(70,b|0,e|0,c[j>>2]|0)|0;D=n;n=0;if(D&1){D=7;break}c[j>>2]=f;n=0;d=V(71,b|0,e|0,d|0)|0;D=n;n=0;if(D&1){D=7;break}c[t>>2]=i;b=c[K>>2]|0;if(b>>>0>=(c[H>>2]|0)>>>0){n=0;da(372,N|0,t|0);D=n;n=0;if(D&1){D=7;break}}else{c[b>>2]=i;c[K>>2]=(c[K>>2]|0)+4}c[g>>2]=0;b=c[j>>2]|0}else{d=i;b=h}n=0;b=V(72,a|0,h|0,b|0)|0;D=n;n=0;if(D&1){D=7;break}c[j>>2]=b;Qpb(i);EYa(a+16|0,d);D=135;break}n=0;g=V(72,a|0,c[l+8>>2]|0,l|0)|0;D=n;n=0;if(!(D&1)){i=l+12|0;h=c[i>>2]|0;k=l+16|0;j=c[k>>2]|0;d=c[l+4>>2]|0;c[B>>2]=0;if(vub(d)|0){e=WCb(c[a+32>>2]|0)|0;n=0;e=U(133,e|0,d|0)|0;D=n;n=0;if(D&1){D=7;break}b=c[i>>2]|0;if(vub(c[b+4>>2]|0)|0){n=0;b=V(70,c[F>>2]|0,e|0,b|0)|0;D=n;n=0;if(D&1){D=7;break}c[i>>2]=b}b=c[k>>2]|0;if(b|0?vub(c[b+4>>2]|0)|0:0){n=0;b=V(70,c[F>>2]|0,e|0,b|0)|0;D=n;n=0;if(D&1){D=7;break}c[k>>2]=b}c[B>>2]=g;n=0;b=V(71,c[F>>2]|0,e|0,d|0)|0;D=n;n=0;if(D&1){D=7;break}f=b;b=c[i>>2]|0;d=g;e=g}else{f=g;b=h;d=0;e=0}n=0;b=V(72,a|0,h|0,b|0)|0;D=n;n=0;if(!(D&1)){c[i>>2]=b;b=c[k>>2]|0;if(b|0){n=0;b=V(72,a|0,j|0,b|0)|0;D=n;n=0;if(D&1){D=7;break}c[k>>2]=b}gQ(l);do if(d|0){n=0;ca(522,d|0);D=n;n=0;if(D&1){D=7;break a}b=c[K>>2]|0;if((b|0)==(c[H>>2]|0)){n=0;da(332,N|0,B|0);D=n;n=0;if(D&1){D=7;break a}else break}else{c[b>>2]=e;c[K>>2]=(c[K>>2]|0)+4;break}}while(0);EYa(a+16|0,f);D=135}else D=7}else D=7}else{if(!e){bma(N,d+12|0);b=c[E>>2]|0}e=iqb(b)|0;if(e|0){if(!(eCb(c[e+4>>2]|0)|0)){D=135;break}d=e+12|0;b=c[d>>2]|0;if((c[b+4>>2]|0)==6){EYa(a+16|0,b);D=135;break}m4a(e,0);c[h>>2]=e;b=c[K>>2]|0;if(b>>>0>=(c[H>>2]|0)>>>0){n=0;da(372,N|0,h|0);D=n;n=0;if(D&1){D=7;break}}else{c[b>>2]=e;c[K>>2]=(c[K>>2]|0)+4}n=0;b=V(71,c[F>>2]|0,c[e+8>>2]|0,c[(c[d>>2]|0)+4>>2]|0)|0;D=n;n=0;if(D&1){D=7;break}EYa(a+16|0,b);D=135;break}i=Qqb(b)|0;if(i|0){h=i+12|0;b=c[h>>2]|0;if(!b){D=135;break}g=c[b+4>>2]|0;if(!(vub(g)|0))if((g|0)==6){EYa(a+16|0,b);D=135;break}else{n=0;fa(75,115968,80240,223,80272);n=0;D=7;break}c[k>>2]=c[i+8>>2];n=0;c[C>>2]=c[k>>2];f=V(73,a|0,C|0,g|0)|0;D=n;n=0;if(D&1){D=7;break}e=c[F>>2]|0;n=0;b=V(70,e|0,f|0,c[h>>2]|0)|0;D=n;n=0;if(D&1){D=7;break}c[o>>2]=b;d=c[K>>2]|0;if(d>>>0>=(c[H>>2]|0)>>>0){n=0;da(372,N|0,o|0);D=n;n=0;if(D&1){D=7;break}}else{c[d>>2]=b;c[K>>2]=(c[K>>2]|0)+4}do if(c[i+16>>2]|0){c[q>>2]=i;b=c[K>>2]|0;if(b>>>0>=(c[H>>2]|0)>>>0){n=0;da(372,N|0,q|0);D=n;n=0;if(D&1){D=7;break a}}else{c[b>>2]=i;c[K>>2]=(c[K>>2]|0)+4}b=c[i+4>>2]|0;if(vub(b)|0){n=0;b=V(71,e|0,f|0,g|0)|0;D=n;n=0;if(D&1){D=7;break a}EYa(a+16|0,b);break}if((b|0)!=6){n=0;fa(75,80288,80240,216,80272);n=0;D=7;break a}n=0;b=S(276,e|0)|0;D=n;n=0;if(D&1){D=7;break a}EYa(a+16|0,b)}while(0);c[h>>2]=0;Cva(i);D=135;break}h=Jqb(b)|0;if((h|0)!=0?(z=h+32|0,j=c[z>>2]|0,(j|0)!=0):0){i=c[j+4>>2]|0;if(!(vub(i)|0))if((i|0)==6){EYa(a+16|0,j);D=135;break}else{n=0;fa(75,115968,80240,246,80272);n=0;D=7;break}g=WCb(c[a+32>>2]|0)|0;n=0;g=U(133,g|0,i|0)|0;B=n;n=0;if(!(B&1)?(v=c[F>>2]|0,n=0,m=V(70,v|0,g|0,c[z>>2]|0)|0,B=n,n=0,!(B&1)):0){c[l>>2]=m;b=c[K>>2]|0;if(b>>>0>=(c[H>>2]|0)>>>0){n=0;da(372,N|0,l|0);B=n;n=0;if(B&1){D=7;break}}else{c[b>>2]=m;c[K>>2]=(c[K>>2]|0)+4}n=0;da(1367,w|0,h|0);B=n;n=0;if(!(B&1)){f=w+4|0;b=c[w>>2]|0;while(1){if((f|0)==(b|0)){D=131;break}c[y>>2]=c[b+16>>2];n=0;c[C>>2]=c[y>>2];d=V(73,a|0,C|0,i|0)|0;B=n;n=0;if(B&1)break;n=0;e=V(71,v|0,g|0,i|0)|0;B=n;n=0;if(B&1)break;n=0;d=V(70,v|0,d|0,e|0)|0;B=n;n=0;if(B&1)break;c[x>>2]=d;e=c[K>>2]|0;if(e>>>0>=(c[H>>2]|0)>>>0){n=0;da(372,N|0,x|0);B=n;n=0;if(B&1)break}else{c[e>>2]=d;c[K>>2]=(c[K>>2]|0)+4}d=b;b=c[d+4>>2]|0;c:do if(!b)while(1){b=c[d+8>>2]|0;if((d|0)==(c[b>>2]|0))break c;d=b}else while(1){d=c[b>>2]|0;if(!d)break;b=d}while(0)}if((D|0)==131){c[z>>2]=0;_zb(h);Khb(w);D=135;break}M=sa()|0;P()|0;Khb(w);Vob(N);Ea(M|0)}else D=7}else D=7}else D=135}while(0);d:do if((D|0)==135){i=a+16|0;b=c[c[i>>2]>>2]|0;g=WCb(b)|0;c[E>>2]=g;e=g;n=0;ca(522,g|0);D=n;n=0;if(!(D&1)){d=c[b>>2]|0;e:do if(!(_xb(d)|0)){h=c[b+4>>2]|0;switch(h|0){case 6:{b=c[K>>2]|0;if((b|0)==(c[H>>2]|0)){n=0;da(332,N|0,E|0);H=n;n=0;if(H&1){D=7;break d}}else{c[b>>2]=e;c[K>>2]=(c[K>>2]|0)+4}n=0;b=S(276,c[F>>2]|0)|0;H=n;n=0;if(H&1){D=7;break d}EYa(a+16|0,b);break e}case 0:{if(Gzb(d)|0)break e;b=c[K>>2]|0;if((b|0)==(c[H>>2]|0)){n=0;da(332,N|0,E|0);H=n;n=0;if(H&1){D=7;break d}}else{c[b>>2]=e;c[K>>2]=(c[K>>2]|0)+4}n=0;b=S(277,c[F>>2]|0)|0;H=n;n=0;if(H&1){D=7;break d}EYa(a+16|0,b);break e}default:{f=WCb(c[a+32>>2]|0)|0;n=0;f=U(133,f|0,h|0)|0;E=n;n=0;if(E&1){D=7;break d}e=c[F>>2]|0;n=0;b=V(70,e|0,f|0,g|0)|0;F=n;n=0;if(F&1){D=7;break d}c[G>>2]=b;d=c[K>>2]|0;if(d>>>0>=(c[H>>2]|0)>>>0){n=0;da(372,N|0,G|0);H=n;n=0;if(H&1){D=7;break d}}else{c[d>>2]=b;c[K>>2]=(c[K>>2]|0)+4}n=0;b=V(71,e|0,f|0,h|0)|0;H=n;n=0;if(H&1){D=7;break d}EYa(a+16|0,b);break e}}}while(0);if((c[N>>2]|0)==(c[K>>2]|0)){Vob(N);yb=M;return}n=0;b=S(278,a+16|0)|0;H=n;n=0;if(!(H&1)){c[I>>2]=b;if(b|0?!(YSa(c[b>>2]|0)|0):0){n=0;i=U(134,a+56|0,I|0)|0;J=n;n=0;if(J&1){D=7;break}e=c[K>>2]|0;f=i+4|0;g=i+8|0;b=c[N>>2]|0;while(1){h=b;if((e|0)==(h|0)){D=169;break}b=c[b>>2]|0;c[L>>2]=b;d=c[f>>2]|0;if((d|0)==(c[g>>2]|0)){n=0;da(332,i|0,L|0);K=n;n=0;if(K&1){D=4;break}}else{c[d>>2]=b;c[f>>2]=(c[f>>2]|0)+4}b=h+4|0}if((D|0)==4){b=sa()|0;P()|0;break}else if((D|0)==169){Vob(N);yb=M;return}}b=WCb(c[c[i>>2]>>2]|0)|0;c[J>>2]=b;n=0;b=U(135,a+56|0,J|0)|0;L=n;n=0;if(!(L&1)){bma(b,N);Vob(N);yb=M;return}else D=7}else D=7}else D=7}while(0);if((D|0)==7){b=sa()|0;P()|0}M=b;Vob(N);Ea(M|0)}function yc(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,o=0,p=0,q=0,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,Q=0,R=0,S=0,T=0,U=0,W=0;U=yb;yb=yb+48|0;S=U+36|0;W=U+24|0;Q=U+8|0;R=U;a:do if((b|0)!=(d|0)?(a[b>>0]|0)==78:0){g=w8(b+1|0,d,S)|0;b:do if((g|0)!=(d|0)){h=e+52|0;c[h>>2]=0;switch(a[g>>0]|0){case 82:{f=1;N=6;break}case 79:{f=2;N=6;break}default:{}}if((N|0)==6){c[h>>2]=f;g=g+1|0}O=e+4|0;f=c[O>>2]|0;if(f>>>0<(c[e+8>>2]|0)>>>0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;sia(f);c[O>>2]=(c[O>>2]|0)+24}else DD(e);if(((d-g|0)>1?(a[g>>0]|0)==83:0)?(a[g+1>>0]|0)==116:0){FMa((c[O>>2]|0)+-24|0,141305);g=g+2|0}if((g|0)==(d|0)){g=c[O>>2]|0;f=0;while(1){if((f|0)==-1)break;W=f+-1|0;J2a(g+(W*24|0)|0);f=W}c[O>>2]=g+-24;break}k=W+11|0;l=W+4|0;j=e+12|0;M=e+20|0;m=e+24|0;o=Q+11|0;p=Q+4|0;q=Q+11|0;r=Q+4|0;s=Q+12|0;t=Q+4|0;u=Q+8|0;v=e+16|0;w=Q+12|0;x=Q+4|0;y=Q+8|0;z=Q+11|0;A=Q+4|0;B=Q+12|0;C=Q+4|0;D=Q+8|0;E=Q+11|0;F=Q+4|0;G=Q+12|0;H=Q+4|0;I=Q+8|0;J=Q+12|0;K=Q+4|0;L=Q+8|0;i=0;c:while(1){d:while(1){f=a[g>>0]|0;if(f<<24>>24==69){N=146;break c}switch(f<<24>>24|0){case 83:{N=23;break d}case 84:{N=50;break d}case 68:{N=75;break d}case 73:{h=$f(g,d,e)|0;if((h|0)==(g|0)|(h|0)==(d|0))break b;d6(W,(c[O>>2]|0)+-24|0);g=c[O>>2]|0;f=0;while(1){if((f|0)==-1)break;N=f+-1|0;J2a(g+(N*24|0)|0);f=N}c[O>>2]=g+-24;N=a[k>>0]|0;f=N<<24>>24<0;n=0;V(124,g+-48|0,(f?c[W>>2]|0:W)|0,(f?c[l>>2]|0:N&255)|0)|0;N=n;n=0;if(N&1){N=112;break c}N=(c[O>>2]|0)+-24|0;c[R>>2]=c[j>>2];n=0;ea(215,Q|0,N|0,R|0);N=n;n=0;if(N&1){N=113;break c}f=c[M>>2]|0;if(f>>>0>=(c[m>>2]|0)>>>0){n=0;da(4197,v|0,Q|0);N=n;n=0;if(N&1){N=114;break c}}else{c[f+12>>2]=c[s>>2];c[f>>2]=c[Q>>2];c[f+4>>2]=c[t>>2];c[f+8>>2]=c[u>>2];c[u>>2]=0;c[t>>2]=0;c[Q>>2]=0;c[M>>2]=(c[M>>2]|0)+16}V5(Q);Chb(W);g=h;break}case 76:{g=g+1|0;if((g|0)==(d|0))break b;break}default:{N=119;break d}}}e:do if((N|0)==23){N=0;i=g+1|0;if((i|0)!=(d|0)?(a[i>>0]|0)==116:0){N=119;break}i=hh(g,d,e)|0;if((i|0)==(g|0)|(i|0)==(d|0))break b;d6(W,(c[O>>2]|0)+-24|0);g=c[O>>2]|0;f=0;while(1){if((f|0)==-1)break;h=f+-1|0;J2a(g+(h*24|0)|0);f=h}c[O>>2]=g+-24;h=g+-48|0;f=a[h+11>>0]|0;if(f<<24>>24<0)f=c[g+-44>>2]|0;else f=f&255;if(!f){n=0;da(4205,h|0,W|0);h=n;n=0;if(h&1){N=40;break c}}else{n=0;ea(218,Q|0,140001,W|0);h=n;n=0;if(h&1){N=41;break c}h=a[z>>0]|0;g=h<<24>>24<0;n=0;V(124,(c[O>>2]|0)+-24|0,(g?c[Q>>2]|0:Q)|0,(g?c[A>>2]|0:h&255)|0)|0;h=n;n=0;if(h&1){N=42;break c}Chb(Q);h=(c[O>>2]|0)+-24|0;c[R>>2]=c[j>>2];n=0;ea(215,Q|0,h|0,R|0);h=n;n=0;if(h&1){N=44;break c}f=c[M>>2]|0;if(f>>>0>=(c[m>>2]|0)>>>0){n=0;da(4197,v|0,Q|0);h=n;n=0;if(h&1){N=45;break c}}else{c[f+12>>2]=c[J>>2];c[f>>2]=c[Q>>2];c[f+4>>2]=c[K>>2];c[f+8>>2]=c[L>>2];c[L>>2]=0;c[K>>2]=0;c[Q>>2]=0;c[M>>2]=(c[M>>2]|0)+16}V5(Q)}Chb(W);g=i}else if((N|0)==50){N=0;i=tk(g,d,e)|0;if((i|0)==(g|0)|(i|0)==(d|0))break b;d6(W,(c[O>>2]|0)+-24|0);g=c[O>>2]|0;f=0;while(1){if((f|0)==-1)break;h=f+-1|0;J2a(g+(h*24|0)|0);f=h}c[O>>2]=g+-24;h=g+-48|0;f=a[h+11>>0]|0;if(f<<24>>24<0)f=c[g+-44>>2]|0;else f=f&255;if(!f){n=0;da(4205,h|0,W|0);h=n;n=0;if(h&1){N=61;break c}}else{n=0;ea(218,Q|0,140001,W|0);h=n;n=0;if(h&1){N=62;break c}h=a[q>>0]|0;g=h<<24>>24<0;n=0;V(124,(c[O>>2]|0)+-24|0,(g?c[Q>>2]|0:Q)|0,(g?c[r>>2]|0:h&255)|0)|0;h=n;n=0;if(h&1){N=63;break c}Chb(Q)}h=(c[O>>2]|0)+-24|0;c[R>>2]=c[j>>2];n=0;ea(215,Q|0,h|0,R|0);h=n;n=0;if(h&1){N=71;break c}f=c[M>>2]|0;if(f>>>0>=(c[m>>2]|0)>>>0){n=0;da(4197,v|0,Q|0);h=n;n=0;if(h&1){N=72;break c}}else{c[f+12>>2]=c[B>>2];c[f>>2]=c[Q>>2];c[f+4>>2]=c[C>>2];c[f+8>>2]=c[D>>2];c[D>>2]=0;c[C>>2]=0;c[Q>>2]=0;c[M>>2]=(c[M>>2]|0)+16}V5(Q);Chb(W);g=i}else if((N|0)==75){N=0;f=g+1|0;if((f|0)!=(d|0))switch(a[f>>0]|0){case 84:case 116:break;default:{N=119;break e}}i=Fp(g,d,e)|0;if((i|0)==(g|0)|(i|0)==(d|0))break b;d6(W,(c[O>>2]|0)+-24|0);g=c[O>>2]|0;f=0;while(1){if((f|0)==-1)break;h=f+-1|0;J2a(g+(h*24|0)|0);f=h}c[O>>2]=g+-24;h=g+-48|0;f=a[h+11>>0]|0;if(f<<24>>24<0)f=c[g+-44>>2]|0;else f=f&255;if(!f){n=0;da(4205,h|0,W|0);h=n;n=0;if(h&1){N=88;break c}}else{n=0;ea(218,Q|0,140001,W|0);h=n;n=0;if(h&1){N=89;break c}h=a[E>>0]|0;g=h<<24>>24<0;n=0;V(124,(c[O>>2]|0)+-24|0,(g?c[Q>>2]|0:Q)|0,(g?c[F>>2]|0:h&255)|0)|0;h=n;n=0;if(h&1){N=90;break c}Chb(Q)}h=(c[O>>2]|0)+-24|0;c[R>>2]=c[j>>2];n=0;ea(215,Q|0,h|0,R|0);h=n;n=0;if(h&1){N=98;break c}f=c[M>>2]|0;if(f>>>0>=(c[m>>2]|0)>>>0){n=0;da(4197,v|0,Q|0);h=n;n=0;if(h&1){N=99;break c}}else{c[f+12>>2]=c[G>>2];c[f>>2]=c[Q>>2];c[f+4>>2]=c[H>>2];c[f+8>>2]=c[I>>2];c[I>>2]=0;c[H>>2]=0;c[Q>>2]=0;c[M>>2]=(c[M>>2]|0)+16}V5(Q);Chb(W);g=i}while(0);if((N|0)==119){i=XQ(g,d,e)|0;if((i|0)==(g|0)|(i|0)==(d|0))break b;d6(W,(c[O>>2]|0)+-24|0);g=c[O>>2]|0;f=0;while(1){if((f|0)==-1)break;N=f+-1|0;J2a(g+(N*24|0)|0);f=N}c[O>>2]=g+-24;h=g+-48|0;f=a[h+11>>0]|0;if(f<<24>>24<0)f=c[g+-44>>2]|0;else f=f&255;if(!f){n=0;da(4205,h|0,W|0);N=n;n=0;if(N&1){N=130;break}}else{n=0;ea(218,Q|0,140001,W|0);N=n;n=0;if(N&1){N=131;break}N=a[o>>0]|0;h=N<<24>>24<0;n=0;V(124,(c[O>>2]|0)+-24|0,(h?c[Q>>2]|0:Q)|0,(h?c[p>>2]|0:N&255)|0)|0;N=n;n=0;if(N&1){N=132;break}Chb(Q)}N=(c[O>>2]|0)+-24|0;c[R>>2]=c[j>>2];n=0;ea(215,Q|0,N|0,R|0);N=n;n=0;if(N&1){N=141;break}f=c[M>>2]|0;if(f>>>0>=(c[m>>2]|0)>>>0){n=0;da(4197,v|0,Q|0);N=n;n=0;if(N&1){N=142;break}}else{c[f+12>>2]=c[w>>2];c[f>>2]=c[Q>>2];c[f+4>>2]=c[x>>2];c[f+8>>2]=c[y>>2];c[y>>2]=0;c[x>>2]=0;c[Q>>2]=0;c[M>>2]=(c[M>>2]|0)+16}V5(Q);Chb(W);g=i}i=1}switch(N|0){case 40:{b=sa()|0;P()|0;N=49;break}case 41:{b=sa()|0;P()|0;N=43;break}case 42:{b=sa()|0;P()|0;Chb(Q);N=43;break}case 44:{b=sa()|0;P()|0;N=46;break}case 45:{b=sa()|0;P()|0;V5(Q);N=46;break}case 61:{b=sa()|0;P()|0;N=74;break}case 62:{b=sa()|0;P()|0;N=64;break}case 63:{b=sa()|0;P()|0;Chb(Q);N=64;break}case 71:{b=sa()|0;P()|0;N=73;break}case 72:{b=sa()|0;P()|0;V5(Q);N=73;break}case 88:{b=sa()|0;P()|0;N=101;break}case 89:{b=sa()|0;P()|0;N=91;break}case 90:{b=sa()|0;P()|0;Chb(Q);N=91;break}case 98:{b=sa()|0;P()|0;N=100;break}case 99:{b=sa()|0;P()|0;V5(Q);N=100;break}case 112:{b=sa()|0;P()|0;N=116;break}case 113:{b=sa()|0;P()|0;N=115;break}case 114:{b=sa()|0;P()|0;V5(Q);N=115;break}case 130:{b=sa()|0;P()|0;N=144;break}case 131:{b=sa()|0;P()|0;N=133;break}case 132:{b=sa()|0;P()|0;Chb(Q);N=133;break}case 141:{b=sa()|0;P()|0;N=143;break}case 142:{b=sa()|0;P()|0;V5(Q);N=143;break}case 146:{b=g+1|0;c[e+48>>2]=c[S>>2];if(i?(T=c[M>>2]|0,(c[e+16>>2]|0)!=(T|0)):0){f=0;while(1){if((f|0)==-1)break;W=f+-1|0;V5(T+(W<<4)|0);f=W}c[M>>2]=T+-16}break a}}if((N|0)==43)N=49;else if((N|0)==46)N=49;else if((N|0)==64)N=74;else if((N|0)==73)N=74;else if((N|0)==91)N=101;else if((N|0)==100)N=101;else if((N|0)==115)N=116;else if((N|0)==133)N=144;else if((N|0)==143)N=144;if((N|0)==49)Chb(W);else if((N|0)==74)Chb(W);else if((N|0)==101)Chb(W);else if((N|0)==116)Chb(W);else if((N|0)==144)Chb(W);Ea(b|0)}while(0)}while(0);yb=U;return b|0}function zc(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,o=0,p=0,q=0,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,Q=0,R=0,T=0,X=0;X=yb;yb=yb+176|0;z=X+168|0;v=X+164|0;H=X+152|0;x=X+148|0;w=X+144|0;M=X+132|0;p=X+120|0;o=X+108|0;A=X+104|0;l=X+92|0;B=X+88|0;m=X+76|0;L=X+64|0;K=X+52|0;C=X+48|0;D=X+44|0;E=X+32|0;J=X+20|0;I=X+8|0;F=X+4|0;G=X;T=vJa(c[d>>2]|0,0)|0;if(!((a[b+112>>0]&1)==0|e^1))Wla(T+12|0,X8(d,0)|0);f=c[b+104>>2]|0;if(f|0)Wla(T+12|0,f);f=b+56|0;if(!(WCb(c[f>>2]|0)|0)){_u(T);yb=X;return T|0}g=(c[b+96>>2]|0)+8|0;h=c[g>>2]|0;t=qib(h)|0;R=(t|0)==0;if(!R?(c[g>>2]=c[h+8>>2],Q=c[t+28>>2]|0,(Q|0)==(WCb(c[f>>2]|0)|0)):0)O=(c[b+108>>2]|0)!=0;else O=1;c[v>>2]=0;u=b+48|0;q=b+64|0;g=WCb(c[q>>2]|0)|0;Q=Ryb(u)|0;y=b+108|0;i=g;f=0;h=0;while(1){k=i;if((Q|0)==(k|0))break;j=i;i=j+8|0;j=c[j+12>>2]|0;if(!(c[y>>2]|0)){if(!(c[j+8>>2]|0))N=15}else if(!(c[j+12>>2]|0))N=15;if((N|0)==15){N=0;if(f|0){N=16;break}f=c[i>>2]|0;c[v>>2]=f;h=f}i=c[k+4>>2]|0}if((N|0)==16)ma(72800,72707,203,72885);if(!h)ma(72892,72707,207,72885);a:do if(!(c[y>>2]|0)){c[H>>2]=0;s=H+4|0;c[s>>2]=0;r=H+8|0;c[r>>2]=0;p=t+20|0;o=t+20|0;l=0;q=0;f=0;b:while(1){m=g;b=(Q|0)==(m|0);if(!b){h=c[g+8>>2]|0;if((h|0)!=(c[v>>2]|0)){g=c[g+12>>2]|0;if(!(c[g+8>>2]|0)){N=29;break}else{k=g;N=32}}else{g=l;h=q}}else{h=c[v>>2]|0;n=0;g=U(85,u|0,v|0)|0;N=n;n=0;if(N&1){N=25;break}k=c[g>>2]|0;N=32}do if((N|0)==32){N=0;if(O)j=(a[h+112>>0]&1)!=0;else j=0;if(!R?kKa(p,c[h+100>>2]|0)|0:0){g=k+4|0;if((c[g>>2]|0)!=1){N=37;break b}c[g>>2]=0;i=1}else i=0;if(!((!j?!((c[k+4>>2]|0)!=0|i):0)?!(c[k+16>>2]|0):0)){n=0;g=W(6,k|0,d|0,h|0,j|0)|0;M=n;n=0;if(M&1){N=25;break b}if(i){h=(z2(o,h+100|0)|0)+20|0;h=c[h>>2]|0;n=0;h=V(c[(c[h>>2]|0)+8>>2]|0,h|0,d|0,e|0)|0;M=n;n=0;if(M&1){N=25;break b}n=0;g=V(55,d|0,g|0,h|0)|0;M=n;n=0;if(M&1){N=25;break b}}if(g|0){if(b){N=49;break b}n=0;i=W(7,c[d>>2]|0,c[k+8>>2]|0,g|0,0)|0;M=n;n=0;if(M&1){N=25;break b}c[w>>2]=i;g=c[s>>2]|0;h=i;if((g|0)==(c[r>>2]|0)){n=0;da(228,H|0,w|0);M=n;n=0;if(M&1){N=25;break b}}else{c[g>>2]=h;c[s>>2]=(c[s>>2]|0)+4}if(q|0){c[q+16>>2]=h;gQ(q);g=l;h=c[w>>2]|0;break}if(f|0){N=65;break b}g=l;h=i;f=i;break}}n=0;g=V(56,c[d>>2]|0,20,c[k+8>>2]|0)|0;M=n;n=0;if(M&1){N=25;break b}if(l){n=0;g=W(8,c[d>>2]|0,7,l|0,g|0)|0;M=n;n=0;if(M&1){N=25;break b}}if(b){N=74;break b}else h=q}while(0);l=g;q=h;g=c[m+4>>2]|0}c:do if((N|0)==25){f=sa()|0;P()|0}else if((N|0)==29){n=0;fa(75,72906,72707,228,72885);n=0;N=26}else if((N|0)==37){n=0;fa(75,72925,72707,236,72885);n=0;N=26}else if((N|0)==49){do if(l){n=0;g=W(7,c[d>>2]|0,l|0,g|0,0)|0;e=n;n=0;if(e&1){N=26;break c}n=0;h=S(235,g|0)|0;e=n;n=0;if(e&1){N=26;break c}c[x>>2]=h;i=c[s>>2]|0;if(i>>>0>=(c[r>>2]|0)>>>0){n=0;da(227,H|0,x|0);e=n;n=0;if(e&1){N=26;break c}else break}else{c[i>>2]=h;c[s>>2]=(c[s>>2]|0)+4;break}}while(0);if(q|0){c[q+16>>2]=g;gQ(q);N=74;break}if(!f){f=g;N=74}else{n=0;fa(75,72956,72707,258,72885);n=0;N=26}}else if((N|0)==65){n=0;fa(75,72956,72707,268,72885);n=0;N=26}while(0);if((N|0)==26){f=sa()|0;P()|0}else if((N|0)==74){while(1){g=c[s>>2]|0;if((g|0)==(c[H>>2]|0))break;d=g+-4|0;e=c[d>>2]|0;c[s>>2]=d;gQ(e)}Vob(H);break}Vob(H);X=f;Ea(X|0)}else{c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;D8(p,72962,Zzb(72962)|0);n=0;da(229,o|0,c[b+100>>2]|0);H=n;n=0;do if(H&1){f=sa()|0;P()|0}else{H=a[o+11>>0]|0;x=H<<24>>24<0;n=0;V(43,p|0,(x?c[o>>2]|0:o)|0,(x?c[o+4>>2]|0:H&255)|0)|0;H=n;n=0;if(H&1){f=sa()|0;P()|0;Chb(o);break}c[M>>2]=c[p>>2];c[M+4>>2]=c[p+4>>2];c[M+8>>2]=c[p+8>>2];f=0;while(1){if((f|0)==3)break;c[p+(f<<2)>>2]=0;f=f+1|0}Chb(o);Chb(p);n=0;ea(118,l|0,M|0,72970);H=n;n=0;do if(!(H&1)){n=0;da(230,A|0,l|0);H=n;n=0;if(H&1){f=sa()|0;P()|0;Chb(l);break}Chb(l);n=0;ea(118,m|0,M|0,72979);H=n;n=0;if(!(H&1)){n=0;da(230,B|0,m|0);H=n;n=0;if(H&1){f=sa()|0;P()|0;Chb(m);break}Chb(m);yib(L);n=0;w=U(86,c[d>>2]|0,0)|0;H=n;n=0;if(H&1){f=sa()|0;P()|0}else{c[K>>2]=0;p=K+4|0;c[p>>2]=0;r=K+8|0;c[r>>2]=0;s=t+20|0;u=I+11|0;v=I+4|0;o=t+20|0;f=w;g=WCb(c[q>>2]|0)|0;d:while(1){m=g;if((Q|0)==(m|0)){N=156;break}j=g;k=c[j+8>>2]|0;j=c[j+12>>2]|0;Cub(C);l=j+12|0;if(!(c[l>>2]|0)){b=c[A>>2]|0;c[C>>2]=b}else{n=0;ea(118,J|0,M|0,72986);N=n;n=0;if(N&1){N=107;break}n=0;da(229,I|0,c[k+100>>2]|0);N=n;n=0;if(N&1){N=110;break}N=a[u>>0]|0;H=N<<24>>24<0;n=0;V(43,J|0,(H?c[I>>2]|0:I)|0,(H?c[v>>2]|0:N&255)|0)|0;N=n;n=0;if(N&1){N=111;break}c[E>>2]=c[J>>2];c[E+4>>2]=c[J+4>>2];c[E+8>>2]=c[J+8>>2];g=0;while(1){if((g|0)==3)break;c[J+(g<<2)>>2]=0;g=g+1|0}n=0;da(230,D|0,E|0);N=n;n=0;if(N&1){N=112;break}b=c[D>>2]|0;c[C>>2]=b;Chb(E);Chb(I);Chb(J)}if(O)i=(a[k+112>>0]&1)!=0;else i=0;do if(R)h=0;else{if(!(kKa(s,c[k+100>>2]|0)|0)){h=0;break}g=j+4|0;if((c[g>>2]|0)!=1){N=121;break d}c[g>>2]=0;h=1}while(0);do if(!i){if((c[j+4>>2]|0)!=0|h){N=126;break}if(!(c[j+16>>2]|0))N=138;else N=126}else N=126;while(0);do if((N|0)==126){n=0;g=W(6,j|0,d|0,k|0,i|0)|0;N=n;n=0;if(N&1){N=107;break d}if(h){h=(z2(o,k+100|0)|0)+20|0;h=c[h>>2]|0;n=0;h=V(c[(c[h>>2]|0)+8>>2]|0,h|0,d|0,e|0)|0;N=n;n=0;if(N&1){N=107;break d}n=0;g=V(55,d|0,g|0,h|0)|0;N=n;n=0;if(N&1){N=107;break d}}if(!g){N=138;break}n=0;h=U(86,c[d>>2]|0,0)|0;N=n;n=0;if(N&1){N=107;break d}i=h+12|0;n=0;da(231,i|0,f|0);N=n;n=0;if(N&1){N=107;break d}c[f+8>>2]=b;n=0;da(231,i|0,g|0);N=n;n=0;if(N&1){N=107;break d}if((c[g+4>>2]|0)==6){f=h;N=145;break}c[F>>2]=c[B>>2];f=c[d>>2]|0;n=0;c[z>>2]=c[F>>2];f=W(9,f|0,z|0,0,0)|0;N=n;n=0;if(N&1){N=107;break d}n=0;da(231,i|0,f|0);N=n;n=0;if(N&1){N=107;break d}else{f=h;N=145}}while(0);do if((N|0)==138){c[C>>2]=c[B>>2];g=c[l>>2]|0;if(g|0){N=146;break}h=c[p>>2]|0;g=c[K>>2]|0;while(1){if((g|0)==(h|0))break;if(dub(c[g>>2]|0,c[A>>2]|0)|0)c[g>>2]=c[B>>2];g=g+4|0}c[A>>2]=c[B>>2];N=145}while(0);if((N|0)==145){N=0;g=c[l>>2]|0;if(g)N=146}e:do if((N|0)==146){b=c[g+4>>2]|0;g=c[g>>2]|0;while(1){if((g|0)==(b|0))break e;h=c[g>>2]|0;while(1){i=c[p>>2]|0;j=c[K>>2]|0;k=i;if(i-j>>2>>>0>h>>>0)break;if((c[r>>2]|0)==(i|0)){n=0;da(232,K|0,A|0);N=n;n=0;if(N&1){N=106;break d}}else{c[k>>2]=c[A>>2];c[p>>2]=(c[p>>2]|0)+4}}c[j+(h<<2)>>2]=c[C>>2];g=g+4|0}}while(0);g=c[m+4>>2]|0}if((N|0)==106){f=sa()|0;P()|0;N=109}else if((N|0)==107){f=sa()|0;P()|0;N=109}else if((N|0)==110){f=sa()|0;P()|0;N=114}else if((N|0)==111){f=sa()|0;P()|0;N=113}else if((N|0)==112){f=sa()|0;P()|0;Chb(E);N=113}else if((N|0)==121){n=0;fa(75,72925,72707,316,72885);n=0;N=108}else if((N|0)==156){c[f+8>>2]=c[B>>2];c[G>>2]=c[A>>2];g=c[y>>2]|0;e=c[d>>2]|0;n=0;c[z>>2]=c[G>>2];g=W(10,e|0,K|0,z|0,g|0)|0;e=n;n=0;if(!(e&1)?(n=0,da(231,w+12|0,g|0),e=n,n=0,!(e&1)):0){Vob(K);bXa(L);Chb(M);break a}else N=108}if((N|0)==108){f=sa()|0;P()|0;N=109}else if((N|0)==113){Chb(I);N=114}if((N|0)!=109)if((N|0)==114)Chb(J);Vob(K)}bXa(L)}else N=102}else N=102;while(0);if((N|0)==102){f=sa()|0;P()|0}Chb(M);X=f;Ea(X|0)}while(0);Chb(p);X=f;Ea(X|0)}while(0);if(f|0)Wla(T+12|0,f);_u(T);yb=X;return T|0}function Ac(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,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,Q=0,R=0,T=0,W=0,X=0,Y=0,Z=0;T=yb;yb=yb+928|0;M=T+920|0;s=T+784|0;l=T+772|0;o=T+768|0;A=T+632|0;z=T+620|0;t=T+616|0;F=T+480|0;E=T+464|0;C=T+452|0;D=T+448|0;Z=T+312|0;Y=T+300|0;L=T+296|0;X=T+160|0;W=T+24|0;N=T+20|0;O=T+16|0;Q=T+4|0;R=T;i=c[e+100>>2]|0;j=(WCb(i)|0)==0;k=s+56|0;c[s>>2]=31812;c[k>>2]=31832;Hoa(s+56|0,s+4|0);c[s+128>>2]=0;c[s+132>>2]=-1;c[s>>2]=39764;c[k>>2]=39784;k=s+4|0;RKa(k);c[k>>2]=39800;h=s+36|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}c[s+48>>2]=0;c[s+52>>2]=16;n=0;g=U(59,s|0,53644)|0;h=n;n=0;if(((((!(h&1)?(n=0,m=U(59,g|0,f|0)|0,h=n,n=0,!(h&1)):0)?(n=0,p=U(59,m|0,53654)|0,m=n,n=0,!(m&1)):0)?(n=0,q=U(60,p|0,(j?65536:i<<16)|0)|0,p=n,n=0,!(p&1)):0)?(n=0,U(59,q|0,139927)|0,q=n,n=0,!(q&1)):0)?(n=0,da(75,l|0,k|0),q=n,n=0,!(q&1)):0){n=0;ea(101,o|0,((a[l+11>>0]|0)<0?c[l>>2]|0:l)|0,0);q=n;n=0;if((!(q&1)?(n=0,r=S(219,c[o>>2]|0)|0,q=n,n=0,!(q&1)):0)?(n=0,da(76,d|0,r|0),r=n,n=0,!(r&1)):0){Chb(l);v$a(s);j=e+112|0;g=c[j>>2]|0;a:do if((g|0)==(c[e+108>>2]|0))h=g;else{i=A+56|0;c[A>>2]=31812;c[i>>2]=31832;Hoa(A+56|0,A+4|0);c[A+128>>2]=0;c[A+132>>2]=-1;c[A>>2]=39764;c[i>>2]=39784;i=A+4|0;RKa(i);c[i>>2]=39800;h=A+36|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}c[A+48>>2]=0;c[A+52>>2]=16;n=0;g=U(59,A|0,54163)|0;s=n;n=0;do if(((((!(s&1)?(n=0,u=U(59,g|0,f|0)|0,s=n,n=0,!(s&1)):0)?(n=0,v=U(59,u|0,54176)|0,u=n,n=0,!(u&1)):0)?(n=0,w=U(59,v|0,53674)|0,v=n,n=0,!(v&1)):0)?(n=0,x=U(59,w|0,54181)|0,w=n,n=0,!(w&1)):0)?(n=0,y=U(59,x|0,f|0)|0,x=n,n=0,!(x&1)):0){n=0;U(59,y|0,139927)|0;y=n;n=0;if(y&1){B=32;break}n=0;da(75,z|0,i|0);y=n;n=0;if(y&1){B=32;break}n=0;ea(101,t|0,((a[z+11>>0]|0)<0?c[z>>2]|0:z)|0,0);y=n;n=0;do if(!(y&1)){n=0;g=S(219,c[t>>2]|0)|0;y=n;n=0;if(y&1)break;n=0;da(76,d|0,g|0);y=n;n=0;if(y&1)break;Chb(z);v$a(A);h=c[e+108>>2]|0;g=c[j>>2]|0;break a}while(0);g=sa()|0;P()|0;Chb(z)}else B=32;while(0);if((B|0)==32){g=sa()|0;P()|0}v$a(A);Z=g;Ea(Z|0)}while(0);l=F+56|0;m=F+4|0;o=F+56|0;p=F+128|0;q=F+132|0;r=F+4|0;s=F+36|0;t=F+48|0;u=F+52|0;v=C+11|0;k=h;while(1){if((k|0)==(g|0)){B=58;break}c[F>>2]=31812;c[l>>2]=31832;Hoa(o,m);c[p>>2]=0;c[q>>2]=-1;c[F>>2]=39764;c[l>>2]=39784;RKa(r);c[r>>2]=39800;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[s+(h<<2)>>2]=0;h=h+1|0}c[t>>2]=0;c[u>>2]=16;n=0;h=U(59,F|0,54187)|0;B=n;n=0;if(B&1){B=54;break}n=0;h=U(59,h|0,f|0)|0;B=n;n=0;if(B&1){B=54;break}n=0;h=U(59,h|0,139929)|0;B=n;n=0;if(B&1){B=54;break}n=0;i=S(220,c[k>>2]|0)|0;j=P()|0;B=n;n=0;if(B&1){B=54;break}n=0;h=V(42,h|0,i|0,j|0)|0;B=n;n=0;if(B&1){B=54;break}n=0;h=U(59,h|0,54194)|0;B=n;n=0;if(B&1){B=54;break}n=0;da(77,E|0,k+4|0);B=n;n=0;if(B&1){B=54;break}n=0;h=U(61,h|0,E|0)|0;B=n;n=0;if(B&1){B=55;break}n=0;U(59,h|0,98616)|0;B=n;n=0;if(B&1){B=55;break}Chb(E);n=0;da(75,C|0,r|0);B=n;n=0;if(B&1){B=54;break}n=0;ea(101,D|0,((a[v>>0]|0)<0?c[C>>2]|0:C)|0,0);B=n;n=0;if(B&1){B=56;break}n=0;h=S(219,c[D>>2]|0)|0;B=n;n=0;if(B&1){B=56;break}n=0;da(76,d|0,h|0);B=n;n=0;if(B&1){B=56;break}Chb(C);v$a(F);k=k+16|0}if((B|0)==54){g=sa()|0;P()|0}else if((B|0)==55){g=sa()|0;P()|0;Chb(E)}else if((B|0)==56){g=sa()|0;P()|0;Chb(C)}else if((B|0)==58){i=Z+56|0;c[Z>>2]=31812;c[i>>2]=31832;Hoa(Z+56|0,Z+4|0);c[Z+128>>2]=0;c[Z+132>>2]=-1;c[Z>>2]=39764;c[i>>2]=39784;i=Z+4|0;RKa(i);c[i>>2]=39800;h=Z+36|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}c[Z+48>>2]=0;c[Z+52>>2]=16;n=0;g=U(59,Z|0,54198)|0;F=n;n=0;do if(((((!(F&1)?(n=0,G=U(59,g|0,f|0)|0,F=n,n=0,!(F&1)):0)?(n=0,H=U(59,G|0,106998)|0,G=n,n=0,!(G&1)):0)?(n=0,I=U(59,H|0,f|0)|0,H=n,n=0,!(H&1)):0)?(n=0,J=U(59,I|0,54208)|0,I=n,n=0,!(I&1)):0)?(n=0,K=U(59,J|0,54211)|0,J=n,n=0,!(J&1)):0){n=0;g=U(59,K|0,54217)|0;K=n;n=0;if(K&1){B=88;break}n=0;g=U(59,g|0,54228)|0;K=n;n=0;if(K&1){B=88;break}n=0;g=U(59,g|0,54240)|0;K=n;n=0;if(K&1){B=88;break}n=0;g=U(59,g|0,54252)|0;K=n;n=0;if(K&1){B=88;break}n=0;g=U(59,g|0,54265)|0;K=n;n=0;if(K&1){B=88;break}n=0;g=U(59,g|0,54277)|0;K=n;n=0;if(K&1){B=88;break}n=0;g=U(59,g|0,54290)|0;K=n;n=0;if(K&1){B=88;break}n=0;g=U(59,g|0,54304)|0;K=n;n=0;if(K&1){B=88;break}n=0;g=U(59,g|0,54318)|0;K=n;n=0;if(K&1){B=88;break}n=0;g=U(59,g|0,134157)|0;K=n;n=0;if(K&1){B=88;break}n=0;U(59,g|0,54323)|0;K=n;n=0;if(K&1){B=88;break}n=0;U(59,Z|0,54328)|0;K=n;n=0;if(K&1){B=88;break}n=0;da(78,e|0,Z|0);K=n;n=0;if(K&1){B=88;break}n=0;g=U(59,Z|0,54375)|0;K=n;n=0;if(K&1){B=88;break}n=0;g=U(59,g|0,f|0)|0;K=n;n=0;if(K&1){B=88;break}n=0;U(59,g|0,139927)|0;K=n;n=0;if(K&1){B=88;break}n=0;da(75,Y|0,i|0);K=n;n=0;if(K&1){B=88;break}n=0;ea(101,L|0,((a[Y+11>>0]|0)<0?c[Y>>2]|0:Y)|0,0);K=n;n=0;do if(K&1)B=89;else{n=0;g=S(219,c[L>>2]|0)|0;L=n;n=0;if(L&1){B=89;break}n=0;da(76,d|0,g|0);L=n;n=0;if(L&1){B=89;break}if(a[b+26>>0]&1){Chb(Y);v$a(Z);yb=T;return}j=c[e+16>>2]|0;k=X+56|0;l=X+4|0;m=X+56|0;o=X+128|0;p=X+132|0;q=X+4|0;r=X+36|0;s=X+48|0;t=X+52|0;u=W+56|0;v=W+4|0;w=W+56|0;x=W+128|0;y=W+132|0;z=W+4|0;A=W+36|0;B=W+48|0;C=W+52|0;D=Q+11|0;i=c[e+12>>2]|0;b:while(1){if((i|0)==(j|0)){B=123;break}switch(c[(c[i>>2]|0)+8>>2]|0){case 2:case 0:{c[X>>2]=31812;c[k>>2]=31832;Hoa(m,l);c[o>>2]=0;c[p>>2]=-1;c[X>>2]=39764;c[k>>2]=39784;RKa(q);c[q>>2]=39800;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;g=0;while(1){if((g|0)==3)break;c[r+(g<<2)>>2]=0;g=g+1|0}c[s>>2]=0;c[t>>2]=16;g=c[c[i>>2]>>2]|0;c:while(1){h=a[g>>0]|0;switch(h<<24>>24){case 0:break c;case 45:{n=0;U(62,X|0,95)|0;e=n;n=0;if(e&1){B=99;break b}break}default:{n=0;U(62,X|0,h|0)|0;e=n;n=0;if(e&1){B=99;break b}}}g=g+1|0}c[W>>2]=31812;c[u>>2]=31832;Hoa(w,v);c[x>>2]=0;c[y>>2]=-1;c[W>>2]=39764;c[u>>2]=39784;RKa(z);c[z>>2]=39800;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;g=0;while(1){if((g|0)==3)break;c[A+(g<<2)>>2]=0;g=g+1|0}c[B>>2]=0;c[C>>2]=16;n=0;g=U(59,W|0,54381)|0;e=n;n=0;if(e&1){B=119;break b}c[N>>2]=c[c[i>>2]>>2];n=0;c[M>>2]=c[N>>2];h=V(39,b|0,M|0,0)|0;e=n;n=0;if(e&1){B=119;break b}n=0;g=U(59,g|0,h|0)|0;e=n;n=0;if(e&1){B=119;break b}n=0;g=U(59,g|0,54395)|0;e=n;n=0;if(e&1){B=119;break b}n=0;g=U(59,g|0,f|0)|0;e=n;n=0;if(e&1){B=119;break b}n=0;g=U(59,g|0,140218)|0;e=n;n=0;if(e&1){B=119;break b}c[O>>2]=c[c[i>>2]>>2];n=0;c[M>>2]=c[O>>2];h=V(39,b|0,M|0,0)|0;e=n;n=0;if(e&1){B=119;break b}n=0;U(59,g|0,h|0)|0;e=n;n=0;if(e&1){B=119;break b}n=0;da(75,Q|0,z|0);e=n;n=0;if(e&1){B=119;break b}n=0;ea(101,R|0,((a[D>>0]|0)<0?c[Q>>2]|0:Q)|0,0);e=n;n=0;if(e&1){B=120;break b}n=0;g=S(219,c[R>>2]|0)|0;e=n;n=0;if(e&1){B=120;break b}n=0;da(76,d|0,g|0);e=n;n=0;if(e&1){B=120;break b}Chb(Q);v$a(W);v$a(X);break}default:{}}i=i+4|0}if((B|0)==99){g=sa()|0;P()|0}else if((B|0)==119){g=sa()|0;P()|0;B=121}else if((B|0)==120){g=sa()|0;P()|0;Chb(Q);B=121}else if((B|0)==123){Chb(Y);v$a(Z);yb=T;return}if((B|0)==121)v$a(W);v$a(X)}while(0);if((B|0)==89){g=sa()|0;P()|0}Chb(Y)}else B=88;while(0);if((B|0)==88){g=sa()|0;P()|0}v$a(Z);Z=g;Ea(Z|0)}v$a(F);Z=g;Ea(Z|0)}g=sa()|0;P()|0;Chb(l)}else{g=sa()|0;P()|0}v$a(s);Z=g;Ea(Z|0)}function Bc(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,T=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,ea=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0;ba=yb;yb=yb+288|0;M=ba+256|0;ga=ba+244|0;ha=ba+232|0;ia=ba+220|0;_=ba+128|0;la=ba+108|0;$=ba+104|0;aa=ba+100|0;ka=ba+80|0;O=ba+76|0;Q=ba+72|0;R=ba+60|0;ca=ba+48|0;ea=ba+36|0;T=ba+32|0;X=ba;Y=ba+28|0;Z=ba+24|0;N=d+16|0;if((WCb(c[N>>2]|0)|0)>>>0<2){yb=ba;return}z=d+12|0;A=b+28|0;B=la+4|0;C=la+12|0;D=la+16|0;E=la+8|0;F=ka+4|0;G=ka+12|0;H=ka+16|0;J=ka+8|0;K=ea+4|0;L=ea+8|0;y=b+20|0;x=b+32|0;d=0;e=0;p=0;b=0;a:while(1){w=d;while(1){if(w>>>0>=((WCb(c[N>>2]|0)|0)+-1|0)>>>0){ja=198;break a}v=uXa(z,w)|0;v=Ija(c[v>>2]|0)|0;if(v|0?(VA(_,c[A>>2]|0,v),u=QGa(_)|0,Fha(_),!u):0)break;w=w+1|0}c[la>>2]=0;c[la+4>>2]=0;c[la+8>>2]=0;c[la+12>>2]=0;g[D>>2]=1.0;n=0;d=U(74,z|0,w|0)|0;u=n;n=0;if(u&1){ja=93;break}n=0;h=S(287,c[d>>2]|0)|0;u=n;n=0;if(u&1){ja=93;break}c[$>>2]=h;k=c[B>>2]|0;o=(k|0)==0;b:do if(!o){l=k+-1|0;m=(k&l|0)==0;if(!m)if(h>>>0>>0)d=h;else d=(h>>>0)%(k>>>0)|0;else d=h&l;e=c[(c[la>>2]|0)+(d<<2)>>2]|0;if(!e)ja=26;else while(1){e=c[e>>2]|0;if(!e){ja=26;break b}f=c[e+4>>2]|0;if((f|0)!=(h|0)){if(!m){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(d|0)){ja=26;break b}}if((c[e+8>>2]|0)==(h|0)){h=d;break b}}}else{d=e;ja=26}while(0);if((ja|0)==26){ja=0;n=0;fa(121,ia|0,la|0,h|0,$|0);u=n;n=0;if(u&1){ja=93;break}i=+(((c[C>>2]|0)+1|0)>>>0);j=+g[D>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)==0;ja=31}else{e=0;ja=31}}else if(o){e=0;d=0;ja=31}else h=d;do if((ja|0)==31){ja=0;u=d|(e^1)&1;t=~~+I(+(i/j))>>>0;n=0;da(1089,la|0,(u>>>0>>0?t:u)|0);u=n;n=0;if(u&1){ja=36;break a}d=c[B>>2]|0;e=d+-1|0;if(!(d&e)){k=d;h=h&e;break}if(h>>>0>>0)k=d;else{k=d;h=(h>>>0)%(d>>>0)|0}}while(0);d=c[(c[la>>2]|0)+(h<<2)>>2]|0;if(!d){d=c[ia>>2]|0;c[d>>2]=c[E>>2];f=d;c[E>>2]=f;c[(c[la>>2]|0)+(h<<2)>>2]=E;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=k+-1|0;if(k&e){if(d>>>0>=k>>>0)d=(d>>>0)%(k>>>0)|0}else d=d&e;c[(c[la>>2]|0)+(d<<2)>>2]=f}}else{u=c[ia>>2]|0;c[u>>2]=c[d>>2];c[d>>2]=u}c[C>>2]=(c[C>>2]|0)+1;c[ia>>2]=0}t=w;e=p;c:while(1){u=t+1|0;if(u>>>0>=(WCb(c[N>>2]|0)|0)>>>0){s=e;break}n=0;d=U(74,z|0,u|0)|0;s=n;n=0;if(s&1){ja=92;break a}n=0;d=S(288,c[d>>2]|0)|0;s=n;n=0;if(s&1){ja=92;break a}n=0;d=U(112,d|0,v|0)|0;s=n;n=0;if(s&1){ja=92;break a}if(!d){s=e;break}n=0;d=U(74,z|0,u|0)|0;s=n;n=0;if(s&1){ja=92;break a}n=0;k=S(287,c[d>>2]|0)|0;s=n;n=0;if(s&1){ja=92;break a}c[aa>>2]=k;l=c[B>>2]|0;p=(l|0)==0;d:do if(!p){m=l+-1|0;o=(l&m|0)==0;if(!o)if(k>>>0>>0)d=k;else d=(k>>>0)%(l>>>0)|0;else d=k&m;e=c[(c[la>>2]|0)+(d<<2)>>2]|0;if(e)while(1){e=c[e>>2]|0;if(!e)break d;f=c[e+4>>2]|0;if((f|0)!=(k|0)){do if(o)f=f&m;else{if(f>>>0>>0)break;f=(f>>>0)%(l>>>0)|0}while(0);if((f|0)!=(d|0))break d}if((c[e+8>>2]|0)==(k|0)){s=d;break c}}}else d=e;while(0);n=0;fa(121,ha|0,la|0,k|0,aa|0);t=n;n=0;if(t&1){ja=92;break a}i=+(((c[C>>2]|0)+1|0)>>>0);j=+g[D>>2];if(j*+(l>>>0)>>0>2){e=(l&l+-1|0)==0;ja=76}else{e=0;ja=76}}else if(p){e=0;d=0;ja=76}else k=d;do if((ja|0)==76){ja=0;t=d|(e^1)&1;s=~~+I(+(i/j))>>>0;n=0;da(1089,la|0,(t>>>0>>0?s:t)|0);t=n;n=0;if(t&1){ja=81;break a}d=c[B>>2]|0;e=d+-1|0;if(!(d&e)){l=d;k=k&e;break}if(k>>>0>>0)l=d;else{l=d;k=(k>>>0)%(d>>>0)|0}}while(0);d=c[(c[la>>2]|0)+(k<<2)>>2]|0;if(!d){d=c[ha>>2]|0;c[d>>2]=c[E>>2];f=d;c[E>>2]=f;c[(c[la>>2]|0)+(k<<2)>>2]=E;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=l+-1|0;do if(!(l&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(l>>>0)|0}while(0);c[(c[la>>2]|0)+(d<<2)>>2]=f}}else{t=c[ha>>2]|0;c[t>>2]=c[d>>2];c[d>>2]=t}c[C>>2]=(c[C>>2]|0)+1;c[ha>>2]=0;t=u;e=k}l=u-w|0;if(l>>>0>=3){n=0;d=U(74,z|0,w|0)|0;r=n;n=0;if(r&1){ja=93;break}n=0;d=S(287,c[d>>2]|0)|0;r=n;n=0;if(r&1){ja=93;break}e=w;r=d;k=d;while(1){e=e+1|0;if(e>>>0>=u>>>0)break;n=0;d=U(74,z|0,e|0)|0;q=n;n=0;if(q&1){ja=91;break a}d=c[d>>2]|0;n=0;f=S(287,d|0)|0;q=n;n=0;if(q&1){ja=91;break a}n=0;d=S(287,d|0)|0;q=n;n=0;if(q&1){ja=91;break a}r=f>>>0>>0?f:r;k=k>>>0>>0?d:k}q=k-r|0;if(!(q>>>0>1024|q>>>0>(l*3|0)>>>0)){c[ka>>2]=0;c[ka+4>>2]=0;c[ka+8>>2]=0;c[ka+12>>2]=0;g[H>>2]=1.0;q=w;while(1){if(q>>>0>=u>>>0)break;n=0;d=U(74,z|0,q|0)|0;p=n;n=0;if(p&1){ja=149;break a}n=0;d=S(289,c[d>>2]|0)|0;p=n;n=0;if(p&1){ja=149;break a}m=d+8|0;p=LAb(m)|0;k=c[F>>2]|0;o=(k|0)==0;e:do if(!o){f=k+-1|0;l=(k&f|0)==0;if(!l)if(p>>>0>>0)b=p;else b=(p>>>0)%(k>>>0)|0;else b=p&f;d=c[(c[ka>>2]|0)+(b<<2)>>2]|0;if(!d)ja=126;else while(1){d=c[d>>2]|0;if(!d){ja=126;break e}e=c[d+4>>2]|0;if((e|0)!=(p|0)){do if(l)e=e&f;else{if(e>>>0>>0)break;e=(e>>>0)%(k>>>0)|0}while(0);if((e|0)!=(b|0)){ja=126;break e}}if(dub(c[d+8>>2]|0,c[m>>2]|0)|0)break e}}else ja=126;while(0);if((ja|0)==126){ja=0;n=0;fa(74,ga|0,ka|0,p|0,m|0);m=n;n=0;if(m&1){ja=149;break a}i=+(((c[G>>2]|0)+1|0)>>>0);j=+g[H>>2];if(j*+(k>>>0)>>0>2){b=(k&k+-1|0)==0;ja=131}else{b=0;ja=131}}else if(o){b=0;d=0;ja=131}do if((ja|0)==131){ja=0;o=d|(b^1)&1;m=~~+I(+(i/j))>>>0;n=0;da(86,ka|0,(o>>>0>>0?m:o)|0);o=n;n=0;if(o&1){ja=136;break a}d=c[F>>2]|0;b=d+-1|0;if(!(d&b)){k=d;b=p&b;break}if(p>>>0>>0){k=d;b=p;break}k=d;b=(p>>>0)%(d>>>0)|0}while(0);d=c[(c[ka>>2]|0)+(b<<2)>>2]|0;do if(!d){d=c[ga>>2]|0;c[d>>2]=c[J>>2];f=d;c[J>>2]=f;c[(c[ka>>2]|0)+(b<<2)>>2]=J;if(!(c[d>>2]|0))break;d=c[(c[d>>2]|0)+4>>2]|0;e=k+-1|0;do if(!(k&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(k>>>0)|0}while(0);c[(c[ka>>2]|0)+(d<<2)>>2]=f}else{p=c[ga>>2]|0;c[p>>2]=c[d>>2];c[d>>2]=p}while(0);c[G>>2]=(c[G>>2]|0)+1;c[ga>>2]=0}q=q+1|0}Cub(O);d=0;while(1){e=d+1|0;n=0;da(2683,ca|0,d|0);q=n;n=0;if(q&1){ja=148;break a}n=0;U(77,ca|0,101461)|0;q=n;n=0;if(q&1){ja=159;break a}c[R>>2]=c[ca>>2];c[R+4>>2]=c[ca+4>>2];c[R+8>>2]=c[ca+8>>2];d=0;while(1){if((d|0)==3)break;c[ca+(d<<2)>>2]=0;d=d+1|0}n=0;da(230,Q|0,R|0);q=n;n=0;if(q&1){ja=160;break a}d=c[Q>>2]|0;c[O>>2]=d;Chb(R);Chb(ca);if(!(LF(ka,O)|0))break;d=e}c[ea>>2]=0;c[K>>2]=0;c[L>>2]=0;m=w;k=d;while(1){if(m>>>0>=u>>>0)break;n=0;d=U(74,z|0,m|0)|0;q=n;n=0;if(q&1){ja=177;break a}n=0;d=S(289,c[d>>2]|0)|0;q=n;n=0;if(q&1){ja=177;break a}l=c[d+8>>2]|0;n=0;d=U(74,z|0,m|0)|0;q=n;n=0;if(q&1){ja=177;break a}n=0;d=S(287,c[d>>2]|0)|0;q=n;n=0;if(q&1){ja=177;break a}f=d-r|0;while(1){d=c[K>>2]|0;q=c[ea>>2]|0;e=d;k=q;if(d-q>>2>>>0>f>>>0)break;if((c[L>>2]|0)==(d|0)){n=0;da(232,ea|0,O|0);q=n;n=0;if(q&1){ja=175;break a}}else{c[e>>2]=c[O>>2];c[K>>2]=(c[K>>2]|0)+4}}d=c[O>>2]|0;if(!(dub(c[k+(f<<2)>>2]|0,d)|0)){ja=181;break a}c[k+(f<<2)>>2]=l;m=m+1|0;k=d}Gsb(T,WCb(c[y>>2]|0)|0);if(!r){d=v;e=c[T>>2]|0}else{Bqb(X,r);n=0;d=M;e=X;f=d+24|0;do{a[d>>0]=a[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(f|0));d=U(120,T|0,M|0)|0;r=n;n=0;if(r&1){ja=178;break}e=c[T>>2]|0;n=0;d=W(8,e|0,1,v|0,d|0)|0;v=n;n=0;if(v&1){ja=178;break}}c[Y>>2]=k;c[Z>>2]=k;n=0;c[M>>2]=c[Z>>2];d=W(10,e|0,ea|0,M|0,d|0)|0;v=n;n=0;if(v&1){ja=178;break}n=0;c[M>>2]=c[Y>>2];d=V(89,e|0,M|0,d|0)|0;v=n;n=0;if(v&1){ja=178;break}n=0;e=U(74,z|0,t|0)|0;v=n;n=0;if(v&1){ja=178;break}c[e>>2]=d;d=w;while(1){if(d>>>0>=t>>>0)break;n=0;e=U(74,z|0,d|0)|0;w=n;n=0;if(w&1){ja=176;break a}Gjb(c[e>>2]|0);d=d+1|0}a[x>>0]=1;Vob(ea);Pdb(ka)}}Pdb(la);d=u;e=h;p=s}switch(ja|0){case 36:{d=sa()|0;P()|0;b=c[ia>>2]|0;c[ia>>2]=0;if(!b){ka=d;Pdb(la);Ea(ka|0)}RCb(b);ka=d;Pdb(la);Ea(ka|0)}case 81:{d=sa()|0;P()|0;b=c[ha>>2]|0;c[ha>>2]=0;if(!b){ka=d;Pdb(la);Ea(ka|0)}RCb(b);ka=d;Pdb(la);Ea(ka|0)}case 91:{d=sa()|0;P()|0;ja=94;break}case 92:{d=sa()|0;P()|0;ja=94;break}case 93:{d=sa()|0;P()|0;ja=94;break}case 136:{d=sa()|0;P()|0;b=c[ga>>2]|0;c[ga>>2]=0;if(b)RCb(b);break}case 148:{d=sa()|0;P()|0;ja=150;break}case 149:{d=sa()|0;P()|0;ja=150;break}case 159:{d=sa()|0;P()|0;ja=161;break}case 160:{d=sa()|0;P()|0;Chb(R);ja=161;break}case 175:{d=sa()|0;P()|0;ja=179;break}case 176:{d=sa()|0;P()|0;ja=179;break}case 177:{d=sa()|0;P()|0;ja=179;break}case 178:{d=sa()|0;P()|0;ja=179;break}case 181:{n=0;fa(75,101470,101296,1106,101498);n=0;d=sa()|0;P()|0;ja=179;break}case 198:{yb=ba;return}}if((ja|0)==94){ka=d;Pdb(la);Ea(ka|0)}else if((ja|0)!=150)if((ja|0)==161)Chb(ca);else if((ja|0)==179)Vob(ea);Pdb(ka);ka=d;Pdb(la);Ea(ka|0)}function Cc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=yb;yb=yb+32|0;g=h;a:do if((b|0)!=(d|0)){b:do switch(a[b>>0]|0){case 118:{fga(g,141366);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 119:{lga(g);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 98:{fga(g,141371);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 99:{fga(g,141140);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 97:{Qfa(g,141145);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 104:{Ofa(g,141157);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 115:{ega(g,141171);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 116:{Nfa(g,141177);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 105:{gga(g,141376);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 106:{Pfa(g,141380);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 108:{fga(g,141393);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 109:{Ofa(g,141398);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 120:{Wfa(g,141412);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 121:{Ufa(g);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 110:{dga(g,141206);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 111:{Mfa(g,141215);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 102:{ega(g,141422);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 100:{mga(g);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 101:{Qfa(g,141428);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 103:{Rfa(g,141440);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 122:{gga(g,141451);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+1|0;break a}case 117:{f=b+1|0;g=Nk(f,d,e)|0;b=(g|0)==(f|0)?b:g;break a}case 68:{f=b+1|0;if((f|0)==(d|0))break a;switch(a[f>>0]|0){case 100:{Wfa(g,141455);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 101:{Rfa(g,141465);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 102:{Wfa(g,141476);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 104:{Wfa(g,141486);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 105:{dga(g,141496);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 115:{dga(g,141505);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 97:{fga(g,141514);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}case 110:{Nfa(g,141519);d=e+4|0;f=c[d>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,g|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(g);break b}}else{I6(f,g);c[d>>2]=(c[d>>2]|0)+24}J2a(g);b=b+2|0;break a}default:break a}}default:break a}while(0);Ea(b|0)}while(0);yb=h;return b|0}function Dc(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,o=0,p=0,q=0,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;K=yb;yb=yb+160|0;I=K+156|0;H=K+152|0;g=K+148|0;v=K+144|0;w=K+140|0;z=K+136|0;t=K+132|0;u=K+128|0;x=K+116|0;r=K+112|0;s=K+108|0;y=K+96|0;B=K+84|0;C=K+72|0;L=K+68|0;A=K+64|0;F=K+52|0;D=K+40|0;E=K+28|0;J=K+16|0;G=K+12|0;M=K;LCa(H);n=0;f=U(81,d|0,1)|0;O=n;n=0;a:do if(!(O&1)){do if(Gcb(f)|0){n=0;f=U(81,d|0,1)|0;O=n;n=0;if(O&1){N=13;break a}if($Bb(a[f>>0]|0)|0){n=0;f=U(81,d|0,1)|0;O=n;n=0;if(O&1){N=13;break a}n=0;f=S(331,f|0)|0;O=n;n=0;if(O&1){N=13;break a}n=0;f=S(334,f|0)|0;O=n;n=0;if(O&1){N=13;break a}if(f){N=15;break}}n=0;f=U(81,d|0,1)|0;O=n;n=0;if(O&1){N=13;break a}n=0;f=S(331,f|0)|0;O=n;n=0;if(O&1){N=13;break a}Ftb(g,f);f=c[H>>2]|0;i=f+8|0;c[i>>2]=c[g>>2];j=2;O=H;g=b+48|0}else N=15;while(0);if((N|0)==15){g=b+48|0;n=0;f=S(222,c[g>>2]|0)|0;O=n;n=0;if(O&1){N=13;break}N=c[H>>2]|0;i=N+8|0;c[i>>2]=f;j=1;O=H;f=N}c[g>>2]=(c[g>>2]|0)+1;g=b+36|0;h=c[g>>2]|0;if((h|0)==(c[b+40>>2]|0)){n=0;da(232,b+32|0,i|0);N=n;n=0;if(N&1){N=13;break}q=i}else{c[h>>2]=c[i>>2];c[g>>2]=(c[g>>2]|0)+4;q=i}Cub(v);Cub(w);l=0;i=0;p=0;m=j;g=c[v>>2]|0;o=c[w>>2]|0;b:while(1){n=0;h=S(330,d|0)|0;N=n;n=0;if(N&1){N=12;break}if(m>>>0>=h>>>0){N=60;break}n=0;h=U(81,d|0,m|0)|0;N=n;n=0;if(N&1){N=12;break}if(!(UBb(a[h>>0]|0)|0)){N=60;break}n=0;j=U(81,d|0,m|0)|0;N=n;n=0;if(N&1){N=12;break}n=0;h=U(81,j|0,0)|0;N=n;n=0;if(N&1){N=12;break}n=0;h=S(331,h|0)|0;N=n;n=0;if(N&1){N=12;break}do if(!(dub(h,c[37389]|0)|0)){n=0;h=U(81,j|0,0)|0;N=n;n=0;if(N&1){N=12;break b}n=0;h=S(331,h|0)|0;N=n;n=0;if(N&1){N=12;break b}if(dub(h,c[37390]|0)|0){n=0;h=U(81,j|0,1)|0;N=n;n=0;if(N&1){N=12;break b}n=0;h=S(331,h|0)|0;N=n;n=0;if(N&1){N=12;break b}Ftb(r,h);g=c[r>>2]|0;n=0;h=U(81,j|0,2)|0;N=n;n=0;if(N&1){N=12;break b}n=0;h=S(331,h|0)|0;N=n;n=0;if(N&1){N=12;break b}Ftb(s,h);k=l;h=p;j=c[s>>2]|0;break}n=0;h=U(81,j|0,0)|0;N=n;n=0;if(N&1){N=12;break b}n=0;h=S(331,h|0)|0;N=n;n=0;if(N&1){N=12;break b}if(!(dub(h,c[37409]|0)|0)){N=60;break b}n=0;h=U(81,j|0,1)|0;N=n;n=0;if(N&1){N=12;break b}n=0;h=S(331,h|0)|0;N=n;n=0;if(N&1){N=12;break b}n=0;i=U(199,h|0,0)|0;N=n;n=0;if(N&1){N=12;break b}else{k=l;h=1;j=o}}else{n=0;ca(569,z|0);N=n;n=0;if(N&1){N=12;break b}n=0;h=U(81,j|0,1)|0;N=n;n=0;if(N&1){N=37;break b}n=0;h=S(331,h|0)|0;N=n;n=0;if(N&1){N=37;break b}Ftb(t,h);h=c[z>>2]|0;N=c[t>>2]|0;c[h>>2]=N;c[h+4>>2]=c[q>>2];c[h+8>>2]=3;j=c[b>>2]|0;c[u>>2]=N;c[I>>2]=c[u>>2];if(FEa(j,I)|0){N=34;break b}c[z>>2]=0;n=0;da(72,j|0,h|0);N=n;n=0;if(N&1){N=37;break b}c[z>>2]=0;k=1;h=p;j=o}while(0);l=k;p=h;m=m+1|0;o=j}do if((N|0)==12){d=sa()|0;P()|0;c[v>>2]=g;c[w>>2]=o;h=O;g=d;N=14;break a}else if((N|0)==34){c[v>>2]=g;c[w>>2]=o;j=oa(20)|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;N=Zzb(119228)|0;n=0;ea(95,x|0,119228,N|0);N=n;n=0;if(!(N&1)){n=0;fa(134,j|0,x|0,c[d+28>>2]|0,c[d+32>>2]|0);d=n;n=0;if(d&1)i=1;else{n=0;ea(122,j|0,31856,511);n=0;i=0}g=sa()|0;P()|0;Chb(x);if(!i)break}else{g=sa()|0;P()|0}va(j|0)}else if((N|0)==37){h=sa()|0;P()|0;c[v>>2]=g;c[w>>2]=o;g=h;h=c[z>>2]|0}else if((N|0)==60){c[v>>2]=g;c[w>>2]=o;j=g;k=o;if(l&p){i=oa(20)|0;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;N=Zzb(119284)|0;n=0;ea(95,y|0,119284,N|0);N=n;n=0;if(!(N&1)){n=0;fa(134,i|0,y|0,c[d+28>>2]|0,c[d+32>>2]|0);d=n;n=0;if(d&1)h=1;else{n=0;ea(122,i|0,31856,511);n=0;h=0}g=sa()|0;P()|0;Chb(y);if(!h){h=O;N=136;break a}}else{g=sa()|0;P()|0}va(i|0);h=O;N=136;break a}if(!i){n=0;h=U(81,d|0,m|0)|0;z=n;n=0;if(z&1){N=13;break a}n=0;h=S(331,h|0)|0;z=n;n=0;if(z&1){N=13;break a}n=0;h=U(199,h|0,0)|0;z=n;n=0;if(z&1){N=13;break a}else{i=h;h=m+1|0}}else h=m;if(eCb(j)|0){if(!(pnb(k)|0)){i=oa(20)|0;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;d=Zzb(119315)|0;n=0;ea(95,B|0,119315,d|0);d=n;n=0;if(!(d&1)){n=0;da(330,i|0,B|0);d=n;n=0;if(d&1)h=1;else{n=0;ea(122,i|0,31856,511);n=0;h=0}g=sa()|0;P()|0;Chb(B);if(!h){h=O;N=136;break a}}else{g=sa()|0;P()|0}va(i|0);h=O;N=136;break a}if(!e){i=oa(20)|0;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;d=Zzb(119345)|0;n=0;ea(95,C|0,119345,d|0);d=n;n=0;if(!(d&1)){n=0;da(330,i|0,C|0);d=n;n=0;if(d&1)h=1;else{n=0;ea(122,i|0,31856,511);n=0;h=0}g=sa()|0;P()|0;Chb(C);if(!h){h=O;N=136;break a}}else{g=sa()|0;P()|0}va(i|0);h=O;N=136;break a}n=0;ca(570,L|0);M=n;n=0;if(M&1){N=13;break a}h=c[L>>2]|0;M=c[q>>2]|0;c[h+8>>2]=M;c[h>>2]=g;c[h+4>>2]=o;c[h+12>>2]=i;a[h+20>>0]=p&1;g=c[b>>2]|0;c[A>>2]=M;c[I>>2]=c[A>>2];if(!(EEa(g,I)|0)){c[L>>2]=0;n=0;da(3025,g|0,h|0);d=n;n=0;if(d&1){g=sa()|0;P()|0;c[L>>2]=0;h=O;N=136;break a}c[L>>2]=0;c[O>>2]=0;if(!f){yb=K;return}RCb(f);yb=K;return}j=oa(20)|0;c[F>>2]=0;c[F+4>>2]=0;c[F+8>>2]=0;M=Zzb(119371)|0;n=0;ea(95,F|0,119371,M|0);M=n;n=0;if(!(M&1)){n=0;fa(134,j|0,F|0,c[d+28>>2]|0,c[d+32>>2]|0);d=n;n=0;if(d&1)i=1;else{n=0;ea(122,j|0,31856,511);n=0;i=0}g=sa()|0;P()|0;Chb(F);if(i)N=94}else{g=sa()|0;P()|0;N=94}if((N|0)==94)va(j|0);c[L>>2]=0;if(!h){h=O;N=136;break a}RCb(h);h=O;N=136;break a}if(e){i=oa(20)|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;d=Zzb(119388)|0;n=0;ea(95,D|0,119388,d|0);d=n;n=0;if(!(d&1)){n=0;da(330,i|0,D|0);d=n;n=0;if(d&1)h=1;else{n=0;ea(122,i|0,31856,511);n=0;h=0}g=sa()|0;P()|0;Chb(D);if(!h){h=O;N=136;break a}}else{g=sa()|0;P()|0}va(i|0);h=O;N=136;break a}c[f+12>>2]=i;n=0;g=S(330,d|0)|0;L=n;n=0;if(L&1){N=13;break a}do if(h>>>0>>0){n=0;g=U(81,d|0,h|0)|0;L=n;n=0;if(L&1){N=13;break a}n=0;g=U(204,b|0,g|0)|0;L=n;n=0;if(L&1){N=13;break a}c[f+16>>2]=g;a[f+20>>0]=p&1;n=0;g=S(330,d|0)|0;L=n;n=0;if(L&1){N=13;break a}if((h+1|0)!=(g|0)){i=oa(20)|0;c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;d=Zzb(119433)|0;n=0;ea(95,J|0,119433,d|0);d=n;n=0;if(!(d&1)){n=0;da(330,i|0,J|0);d=n;n=0;if(d&1)h=1;else{n=0;ea(122,i|0,31856,511);n=0;h=0}g=sa()|0;P()|0;Chb(J);if(!h)break}else{g=sa()|0;P()|0}va(i|0);break}g=c[b>>2]|0;c[G>>2]=c[q>>2];c[I>>2]=c[G>>2];if(!(EEa(g,I)|0)){c[O>>2]=0;n=0;da(3025,g|0,f|0);d=n;n=0;if(d&1){N=13;break a}c[O>>2]=0;yb=K;return}i=oa(20)|0;c[M>>2]=0;c[M+4>>2]=0;c[M+8>>2]=0;L=Zzb(119371)|0;n=0;ea(95,M|0,119371,L|0);L=n;n=0;if(!(L&1)){n=0;fa(134,i|0,M|0,c[d+28>>2]|0,c[d+32>>2]|0);d=n;n=0;if(d&1)h=1;else{n=0;ea(122,i|0,31856,511);n=0;h=0}g=sa()|0;P()|0;Chb(M);if(!h)break}else{g=sa()|0;P()|0}va(i|0)}else{i=oa(20)|0;c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;M=Zzb(119413)|0;n=0;ea(95,E|0,119413,M|0);M=n;n=0;if(!(M&1)){n=0;fa(134,i|0,E|0,c[d+28>>2]|0,c[d+32>>2]|0);d=n;n=0;if(d&1)h=1;else{n=0;ea(122,i|0,31856,511);n=0;h=0}g=sa()|0;P()|0;Chb(E);if(!h)break}else{g=sa()|0;P()|0}va(i|0)}while(0);c[O>>2]=0;break a}while(0);c[z>>2]=0;if(!h){h=O;N=136}else{RCb(h);h=O;N=136}}else N=13;while(0);if((N|0)==13){g=sa()|0;P()|0;h=H;f=c[H>>2]|0;N=14}if((N|0)==14)N=136;if((N|0)==136){c[h>>2]=0;if(!f){O=g;Ea(O|0)}}RCb(f);O=g;Ea(O|0)}function Ec(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,T=0,V=0,W=0,X=0,Y=0,Z=0,_=0;V=yb;yb=yb+352|0;L=V+340|0;W=V+328|0;R=V+324|0;X=V+312|0;s=V+308|0;t=V+296|0;Z=V+232|0;_=V+212|0;r=V+208|0;Y=V+188|0;C=V+184|0;D=V+144|0;E=V+180|0;F=V+176|0;G=V+120|0;H=V+172|0;J=V+96|0;K=V+72|0;M=V+48|0;N=V+24|0;O=V;Q=V+168|0;Yz(Z,b);n=0;ca(528,Z|0);B=n;n=0;if(B&1){_=sa()|0;P()|0;P2(Z);Ea(_|0)}x=_+4|0;y=_+8|0;z=_+12|0;A=_+16|0;c[_>>2]=0;c[_+4>>2]=0;c[_+8>>2]=0;c[_+12>>2]=0;g[A>>2]=1.0;q=Z+16|0;B=_+8|0;d=0;b=c[Z+12>>2]|0;a:while(1){if((q|0)==(b|0)){T=52;break}o=c[b+16>>2]|0;c[r>>2]=o;c[s>>2]=o;h=pH(s,4)|0;k=c[x>>2]|0;p=(k|0)==0;b:do if(!p){l=k+-1|0;m=(k&l|0)==0;if(!m)if(h>>>0>>0)d=h;else d=(h>>>0)%(k>>>0)|0;else d=h&l;e=c[(c[_>>2]|0)+(d<<2)>>2]|0;if(!e)T=20;else while(1){e=c[e>>2]|0;if(!e){T=20;break b}f=c[e+4>>2]|0;if((f|0)!=(h|0)){if(!m){if(f>>>0>=k>>>0)f=(f>>>0)%(k>>>0)|0}else f=f&l;if((f|0)!=(d|0)){T=20;break b}}if((c[e+8>>2]|0)==(o|0)){h=d;break b}}}else T=20;while(0);if((T|0)==20){T=0;n=0;fa(119,t|0,_|0,h|0,r|0);w=n;n=0;if(w&1){T=51;break}i=+(((c[z>>2]|0)+1|0)>>>0);j=+g[A>>2];if(j*+(k>>>0)>>0>2){e=(k&k+-1|0)==0;T=25}else{e=0;T=25}}else if(p){e=0;d=0;T=25}else h=d;do if((T|0)==25){T=0;w=d|(e^1)&1;v=~~+I(+(i/j))>>>0;n=0;da(2274,_|0,(w>>>0>>0?v:w)|0);w=n;n=0;if(w&1){T=30;break a}d=c[x>>2]|0;e=d+-1|0;if(!(d&e)){k=d;h=h&e;break}if(h>>>0>>0)k=d;else{k=d;h=(h>>>0)%(d>>>0)|0}}while(0);d=c[(c[_>>2]|0)+(h<<2)>>2]|0;if(!d){d=c[t>>2]|0;c[d>>2]=c[B>>2];f=d;c[B>>2]=f;c[(c[_>>2]|0)+(h<<2)>>2]=B;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=k+-1|0;if(k&e){if(d>>>0>=k>>>0)d=(d>>>0)%(k>>>0)|0}else d=d&e;c[(c[_>>2]|0)+(d<<2)>>2]=f}}else{w=c[t>>2]|0;c[w>>2]=c[d>>2];c[d>>2]=w}c[z>>2]=(c[z>>2]|0)+1;c[t>>2]=0}d=c[b+4>>2]|0;c:do if(!d)while(1){d=c[b+8>>2]|0;if((b|0)==(c[d>>2]|0)){b=d;break c}b=d}else{b=d;while(1){d=c[b>>2]|0;if(!d)break;b=d}}while(0);d=h}if((T|0)==30){b=sa()|0;P()|0;d=c[t>>2]|0;c[t>>2]=0;if(d)RCb(d)}else if((T|0)==51){b=sa()|0;P()|0}else if((T|0)==52){c[Y>>2]=0;c[Y+4>>2]=0;c[Y+8>>2]=0;c[Y+12>>2]=0;g[Y+16>>2]=1.0;u=a+48|0;s=a+32|0;t=J+16|0;v=Z+44|0;r=G+16|0;w=Z+24|0;q=0;d=0;d:while(1){while(1){if(!(c[z>>2]|0)){T=184;break d}T=c[y>>2]|0;b=c[T+8>>2]|0;_6(_,T)|0;T=iqb(b)|0;c[C>>2]=T;if(!T){n=0;b=S(243,b|0)|0;T=n;n=0;if(T&1){T=62;break d}c[F>>2]=b;n=0;b=U(164,u|0,F|0)|0;T=n;n=0;if(T&1){T=62;break d}if(!(eCb(c[b+16>>2]|0)|0)){T=113;break}}else{n=0;b=U(163,Y|0,C|0)|0;T=n;n=0;if(T&1){T=62;break d}if(!(eCb(c[b+16>>2]|0)|0)){T=66;break}}}e:do if((T|0)==66){T=0;n=0;ea(160,D|0,a|0,c[(c[C>>2]|0)+12>>2]|0);p=n;n=0;if(p&1){T=63;break d}n=0;b=U(163,Y|0,C|0)|0;p=n;n=0;if(p&1){T=63;break d}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];if(eCb(c[b+16>>2]|0)|0){n=0;b=U(156,v|0,C|0)|0;p=n;n=0;if(p&1){T=63;break d}b=b+8|0;while(1){p=c[b>>2]|0;if(!p){b=q;break e}l=c[p+8>>2]|0;c[E>>2]=l;c[L>>2]=l;o=pH(L,4)|0;h=c[x>>2]|0;m=(h|0)==0;f:do if(!m){f=h+-1|0;k=(h&f|0)==0;if(!k)if(o>>>0>>0)b=o;else b=(o>>>0)%(h>>>0)|0;else b=o&f;d=c[(c[_>>2]|0)+(b<<2)>>2]|0;if(!d)T=88;else while(1){d=c[d>>2]|0;if(!d){T=88;break f}e=c[d+4>>2]|0;if((e|0)!=(o|0)){do if(k)e=e&f;else{if(e>>>0>>0)break;e=(e>>>0)%(h>>>0)|0}while(0);if((e|0)!=(b|0)){T=88;break f}}if((c[d+8>>2]|0)==(l|0))break f}}else{b=d;T=88}while(0);if((T|0)==88){T=0;n=0;fa(120,W|0,_|0,o|0,E|0);l=n;n=0;if(l&1){T=61;break d}i=+(((c[z>>2]|0)+1|0)>>>0);j=+g[A>>2];if(j*+(h>>>0)>>0>2){d=(h&h+-1|0)==0;T=93}else{d=0;T=93}}else if(m){d=0;b=0;T=93}do if((T|0)==93){T=0;m=b|(d^1)&1;l=~~+I(+(i/j))>>>0;n=0;da(2274,_|0,(m>>>0>>0?l:m)|0);m=n;n=0;if(m&1){T=98;break d}b=c[x>>2]|0;d=b+-1|0;if(!(b&d)){h=b;b=o&d;break}if(o>>>0>>0){h=b;b=o}else{h=b;b=(o>>>0)%(b>>>0)|0}}while(0);d=c[(c[_>>2]|0)+(b<<2)>>2]|0;if(!d){d=c[W>>2]|0;c[d>>2]=c[B>>2];f=d;c[B>>2]=f;c[(c[_>>2]|0)+(b<<2)>>2]=B;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=h+-1|0;if(h&e){if(d>>>0>=h>>>0)d=(d>>>0)%(h>>>0)|0}else d=d&e;c[(c[_>>2]|0)+(d<<2)>>2]=f}}else{o=c[W>>2]|0;c[o>>2]=c[d>>2];c[d>>2]=o}c[z>>2]=(c[z>>2]|0)+1;c[W>>2]=0}d=b;b=p}}else b=q}else if((T|0)==113){T=0;egb(G);n=0;b=U(99,Z|0,F|0)|0;p=n;n=0;if(p&1){T=63;break d}k=b+4|0;h=1;b=c[b>>2]|0;while(1){if((k|0)==(b|0))break;c[H>>2]=c[b+16>>2];egb(J);if(!(c[H>>2]|0)){e=WCb(c[s>>2]|0)|0;f=c[(c[F>>2]|0)+8>>2]|0;if(!(Wjb(e,f)|0)){T=120;break}n=0;e=U(84,e|0,f|0)|0;p=n;n=0;if(p&1){T=60;break d}n=0;da(2275,K|0,e|0);p=n;n=0;if(p&1){T=60;break d}c[J>>2]=c[K>>2];c[J+4>>2]=c[K+4>>2];c[J+8>>2]=c[K+8>>2];c[J+12>>2]=c[K+12>>2];c[J+16>>2]=c[K+16>>2]}else{n=0;e=U(163,Y|0,H|0)|0;p=n;n=0;if(p&1){T=60;break d}c[J>>2]=c[e>>2];c[J+4>>2]=c[e+4>>2];c[J+8>>2]=c[e+8>>2];c[J+12>>2]=c[e+12>>2];c[J+16>>2]=c[e+16>>2]}if(bCb(c[t>>2]|0)|0){T=125;break}if(!h){n=0;e=U(95,G|0,J|0)|0;p=n;n=0;if(p&1){T=60;break d}if(e){T=130;break}}else{c[G>>2]=c[J>>2];c[G+4>>2]=c[J+4>>2];c[G+8>>2]=c[J+8>>2];c[G+12>>2]=c[J+12>>2];c[G+16>>2]=c[J+16>>2]}e=c[b+4>>2]|0;g:do if(!e)while(1){e=c[b+8>>2]|0;if((b|0)==(c[e>>2]|0)){b=e;break g}b=e}else{b=e;while(1){e=c[b>>2]|0;if(!e)break;b=e}}while(0);h=0}if((T|0)==120){T=0;egb(M);c[G>>2]=c[M>>2];c[G+4>>2]=c[M+4>>2];c[G+8>>2]=c[M+8>>2];c[G+12>>2]=c[M+12>>2];c[G+16>>2]=c[M+16>>2]}else if((T|0)==125){T=0;egb(N);c[G>>2]=c[N>>2];c[G+4>>2]=c[N+4>>2];c[G+8>>2]=c[N+8>>2];c[G+12>>2]=c[N+12>>2];c[G+16>>2]=c[N+16>>2]}else if((T|0)==130){T=0;egb(O);c[G>>2]=c[O>>2];c[G+4>>2]=c[O+4>>2];c[G+8>>2]=c[O+8>>2];c[G+12>>2]=c[O+12>>2];c[G+16>>2]=c[O+16>>2]}if(eCb(c[r>>2]|0)|0){n=0;b=U(164,u|0,F|0)|0;p=n;n=0;if(p&1){T=63;break d}c[b>>2]=c[G>>2];c[b+4>>2]=c[G+4>>2];c[b+8>>2]=c[G+8>>2];c[b+12>>2]=c[G+12>>2];c[b+16>>2]=c[G+16>>2];n=0;e=U(102,w|0,F|0)|0;p=n;n=0;if(p&1){T=63;break d}b=q;e=e+8|0;while(1){e=c[e>>2]|0;if(!e)break e;o=c[e+8>>2]|0;c[Q>>2]=o;c[R>>2]=o;q=pH(R,4)|0;l=c[x>>2]|0;p=(l|0)==0;h:do if(!p){k=l+-1|0;m=(l&k|0)==0;if(!m)if(q>>>0>>0)b=q;else b=(q>>>0)%(l>>>0)|0;else b=q&k;f=c[(c[_>>2]|0)+(b<<2)>>2]|0;if(!f)T=161;else while(1){f=c[f>>2]|0;if(!f){T=161;break h}h=c[f+4>>2]|0;if((h|0)!=(q|0)){do if(m)h=h&k;else{if(h>>>0>>0)break;h=(h>>>0)%(l>>>0)|0}while(0);if((h|0)!=(b|0)){T=161;break h}}if((c[f+8>>2]|0)==(o|0))break h}}else T=161;while(0);if((T|0)==161){T=0;n=0;fa(120,X|0,_|0,q|0,Q|0);o=n;n=0;if(o&1){T=59;break d}i=+(((c[z>>2]|0)+1|0)>>>0);j=+g[A>>2];if(j*+(l>>>0)>>0>2){f=(l&l+-1|0)==0;T=166}else{f=0;T=166}}else if(p){f=0;b=0;T=166}do if((T|0)==166){T=0;p=b|(f^1)&1;o=~~+I(+(i/j))>>>0;n=0;da(2274,_|0,(p>>>0>>0?o:p)|0);p=n;n=0;if(p&1){T=171;break d}b=c[x>>2]|0;f=b+-1|0;if(!(b&f)){l=b;b=q&f;break}if(q>>>0>>0){l=b;b=q}else{l=b;b=(q>>>0)%(b>>>0)|0}}while(0);f=c[(c[_>>2]|0)+(b<<2)>>2]|0;if(!f){f=c[X>>2]|0;c[f>>2]=c[B>>2];k=f;c[B>>2]=k;c[(c[_>>2]|0)+(b<<2)>>2]=B;if(c[f>>2]|0){f=c[(c[f>>2]|0)+4>>2]|0;h=l+-1|0;if(l&h){if(f>>>0>=l>>>0)f=(f>>>0)%(l>>>0)|0}else f=f&h;c[(c[_>>2]|0)+(f<<2)>>2]=k}}else{q=c[X>>2]|0;c[q>>2]=c[f>>2];c[f>>2]=q}c[z>>2]=(c[z>>2]|0)+1;c[X>>2]=0}}}else b=q}while(0);q=b}if((T|0)==59){b=sa()|0;P()|0;T=64}else if((T|0)==60){b=sa()|0;P()|0;T=64}else if((T|0)==61){b=sa()|0;P()|0;T=64}else if((T|0)==62){b=sa()|0;P()|0;T=64}else if((T|0)==63){b=sa()|0;P()|0;T=64}else if((T|0)==98){b=sa()|0;P()|0;d=c[W>>2]|0;c[W>>2]=0;if(d)RCb(d)}else if((T|0)==171){b=sa()|0;P()|0;d=c[X>>2]|0;c[X>>2]=0;if(d)RCb(d)}else if((T|0)==184){Pdb(Y);Pdb(_);P2(Z);yb=V;return}Pdb(Y)}Pdb(_);_=b;P2(Z);Ea(_|0)}function Fc(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,o=0,p=0,q=0,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;L=yb;yb=yb+384|0;d=L+372|0;e=L+360|0;f=L+348|0;g=L+336|0;h=L+324|0;i=L+312|0;I=L+300|0;J=L+288|0;K=L+276|0;j=L+264|0;k=L+252|0;l=L+240|0;m=L+228|0;o=L+216|0;p=L+204|0;q=L+192|0;r=L+180|0;s=L+168|0;t=L+156|0;u=L+144|0;v=L+132|0;w=L+120|0;x=L+108|0;y=L+96|0;z=L+84|0;A=L+72|0;B=L+60|0;C=L+48|0;D=L+36|0;E=L+24|0;F=L+12|0;G=L;H=b+24|0;do if((c[H>>2]|0)>3){c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;D8(d,90927,Zzb(90927)|0);n=0;da(68,b|0,d|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(d);Ea(M|0)}Chb(d);c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;D8(e,91485,Zzb(91485)|0);n=0;da(68,b|0,e|0);M=n;n=0;if(!(M&1)){Chb(e);break}M=sa()|0;P()|0;Chb(e);Ea(M|0)}while(0);do if(!(a[b+33>>0]&1)){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;D8(f,90734,Zzb(90734)|0);n=0;da(68,b|0,f|0);M=n;n=0;if(!(M&1)){Chb(f);break}M=sa()|0;P()|0;Chb(f);Ea(M|0)}while(0);c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;D8(g,93153,Zzb(93153)|0);n=0;da(68,b|0,g|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(g);Ea(M|0)}Chb(g);c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;D8(h,93378,Zzb(93378)|0);n=0;da(68,b|0,h|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(h);Ea(M|0)}Chb(h);c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;D8(i,92324,Zzb(92324)|0);n=0;da(68,b|0,i|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(i);Ea(M|0)}Chb(i);if((c[H>>2]|0)<=1?(c[b+28>>2]|0)<=1:0)d=22;else d=16;do if((d|0)==16){c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;D8(I,92417,Zzb(92417)|0);n=0;da(68,b|0,I|0);M=n;n=0;if(!(M&1)){Chb(I);if((c[H>>2]|0)>2){d=23;break}else{d=22;break}}M=sa()|0;P()|0;Chb(I);Ea(M|0)}while(0);do if((d|0)==22)if((c[b+28>>2]|0)>1)d=23;else{c[K>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;D8(K,92543,Zzb(92543)|0);n=0;da(68,b|0,K|0);M=n;n=0;if(!(M&1)){Chb(K);break}M=sa()|0;P()|0;Chb(K);Ea(M|0)}while(0);do if((d|0)==23){c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;D8(J,92600,Zzb(92600)|0);n=0;da(68,b|0,J|0);M=n;n=0;if(!(M&1)){Chb(J);break}M=sa()|0;P()|0;Chb(J);Ea(M|0)}while(0);if(!((c[H>>2]|0)<=1?(c[b+28>>2]|0)<=1:0))d=31;do if((d|0)==31){c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;D8(j,90567,Zzb(90567)|0);n=0;da(68,b|0,j|0);M=n;n=0;if(!(M&1)){Chb(j);break}M=sa()|0;P()|0;Chb(j);Ea(M|0)}while(0);c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;D8(k,93962,Zzb(93962)|0);n=0;da(68,b|0,k|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(k);Ea(M|0)}Chb(k);c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;D8(l,94725,Zzb(94725)|0);n=0;da(68,b|0,l|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(l);Ea(M|0)}Chb(l);c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;D8(m,93508,Zzb(93508)|0);n=0;da(68,b|0,m|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(m);Ea(M|0)}Chb(m);c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;D8(o,93153,Zzb(93153)|0);n=0;da(68,b|0,o|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(o);Ea(M|0)}Chb(o);if(!((c[H>>2]|0)<=2?(c[b+28>>2]|0)<=1:0))d=40;do if((d|0)==40){c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;D8(p,91927,Zzb(91927)|0);n=0;da(68,b|0,p|0);M=n;n=0;if(!(M&1)){Chb(p);break}M=sa()|0;P()|0;Chb(p);Ea(M|0)}while(0);c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;D8(q,90447,Zzb(90447)|0);n=0;da(68,b|0,q|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(q);Ea(M|0)}Chb(q);c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;D8(r,93719,Zzb(93719)|0);n=0;da(68,b|0,r|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(r);Ea(M|0)}Chb(r);c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;D8(s,94725,Zzb(94725)|0);n=0;da(68,b|0,s|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(s);Ea(M|0)}Chb(s);c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;D8(t,93508,Zzb(93508)|0);n=0;da(68,b|0,t|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(t);Ea(M|0)}Chb(t);c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;D8(u,90447,Zzb(90447)|0);n=0;da(68,b|0,u|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(u);Ea(M|0)}Chb(u);c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;D8(v,93508,Zzb(93508)|0);n=0;da(68,b|0,v|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(v);Ea(M|0)}Chb(v);c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;D8(w,94725,Zzb(94725)|0);n=0;da(68,b|0,w|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(w);Ea(M|0)}Chb(w);if(!((c[H>>2]|0)<=2?(c[b+28>>2]|0)<=0:0))d=56;do if((d|0)==56){c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;D8(x,90640,Zzb(90640)|0);n=0;da(68,b|0,x|0);M=n;n=0;if(!(M&1)){Chb(x);break}M=sa()|0;P()|0;Chb(x);Ea(M|0)}while(0);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;D8(y,91883,Zzb(91883)|0);n=0;da(68,b|0,y|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(y);Ea(M|0)}Chb(y);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;D8(z,93153,Zzb(93153)|0);n=0;da(68,b|0,z|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(z);Ea(M|0)}Chb(z);c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;D8(A,93378,Zzb(93378)|0);n=0;da(68,b|0,A|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(A);Ea(M|0)}Chb(A);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;D8(B,91883,Zzb(91883)|0);n=0;da(68,b|0,B|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(B);Ea(M|0)}Chb(B);c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;D8(C,92324,Zzb(92324)|0);n=0;da(68,b|0,C|0);M=n;n=0;if(M&1){M=sa()|0;P()|0;Chb(C);Ea(M|0)}Chb(C);do if((c[H>>2]|0)>2)d=73;else{if((c[b+28>>2]|0)>1){d=73;break}c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;D8(E,92543,Zzb(92543)|0);n=0;da(68,b|0,E|0);M=n;n=0;if(!(M&1)){Chb(E);break}M=sa()|0;P()|0;Chb(E);Ea(M|0)}while(0);do if((d|0)==73){c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;D8(D,92600,Zzb(92600)|0);n=0;da(68,b|0,D|0);M=n;n=0;if(!(M&1)){Chb(D);break}M=sa()|0;P()|0;Chb(D);Ea(M|0)}while(0);if(!((c[H>>2]|0)<=1?(c[b+28>>2]|0)<=0:0))d=86;do if((d|0)==86){c[F>>2]=0;c[F+4>>2]=0;c[F+8>>2]=0;D8(F,93619,Zzb(93619)|0);n=0;da(68,b|0,F|0);M=n;n=0;if(!(M&1)){Chb(F);break}M=sa()|0;P()|0;Chb(F);Ea(M|0)}while(0);c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;D8(G,94725,Zzb(94725)|0);n=0;da(68,b|0,G|0);M=n;n=0;if(!(M&1)){Chb(G);yb=L;return}M=sa()|0;P()|0;Chb(G);Ea(M|0)}function Gc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:do if(a>>>0<212){b=Jra(30784,30976,a)|0;b=c[b>>2]|0}else{if(a>>>0>4294967291){b=oa(8)|0;n=0;da(4188,b|0,135649);i=n;n=0;if(i&1){i=sa()|0;P()|0;va(b|0);Ea(i|0)}else{c[b>>2]=50828;za(b|0,39624,475)}}h=(a>>>0)/210|0;g=h*210|0;b=0;d=g;g=(Jra(30976,31168,a-g|0)|0)-30976>>2;while(1){f=(c[30976+(g<<2)>>2]|0)+d|0;a=5;while(1){if(a>>>0>=47){i=10;break}d=c[30784+(a<<2)>>2]|0;e=(f>>>0)/(d>>>0)|0;if(e>>>0>>0){b=f;break a}if((f|0)==(J(e,d)|0))break;else a=a+1|0}b:do if((i|0)==10){i=0;e=211;c:while(1){a=(f>>>0)/(e>>>0)|0;do if(a>>>0>=e>>>0)if((f|0)!=(J(a,e)|0)){a=e+10|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>=a>>>0)if((f|0)!=(J(d,a)|0)){a=e+12|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>=a>>>0)if((f|0)!=(J(d,a)|0)){a=e+16|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>=a>>>0)if((f|0)!=(J(d,a)|0)){a=e+18|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>=a>>>0)if((f|0)!=(J(d,a)|0)){a=e+22|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>=a>>>0)if((f|0)!=(J(d,a)|0)){a=e+28|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f}else{if((f|0)==(J(d,a)|0)){d=9;break}a=e+30|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+36|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+40|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+42|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+46|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+52|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+58|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+60|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+66|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+70|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+72|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+78|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+82|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+88|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+96|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+100|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+102|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+106|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+108|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+112|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+120|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+126|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+130|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+136|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+138|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+142|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+148|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+150|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+156|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+162|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+166|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+168|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+172|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+178|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+180|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+186|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+190|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+192|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+196|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+198|0;d=(f>>>0)/(a>>>0)|0;if(d>>>0>>0){d=1;b=f;break}if((f|0)==(J(d,a)|0)){d=9;break}a=e+208|0;d=(f>>>0)/(a>>>0)|0;j=d>>>0>>0;d=(f|0)==(J(d,a)|0);a=j|d?a:e+210|0;d=j?1:d?9:0;b=j?f:b}}else d=9;else{d=1;b=f}}else d=9;else{d=1;b=f}}else d=9;else{d=1;b=f}}else d=9;else{d=1;b=f}}else d=9;else{d=1;b=f}}else{a=e;d=9}else{a=e;d=1;b=f}while(0);switch(d&15){case 9:break b;case 0:{e=a;break}default:break c}}if(d)break a}while(0);j=g+1|0;f=(j|0)==48;d=h+(f&1)|0;h=d;d=d*210|0;g=f?0:j}}while(0);return b|0}function Hc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0;L=yb;yb=yb+304|0;D=L+280|0;K=L+276|0;M=L+264|0;Q=L+244|0;m=L+240|0;o=L+196|0;O=L+176|0;r=L+172|0;u=L+168|0;v=L+164|0;w=L;x=L+160|0;N=L+140|0;E=L+136|0;F=L+132|0;G=L+128|0;H=L+36|0;J=L+24|0;f=Q+8|0;c[Q>>2]=0;c[Q+4>>2]=0;c[Q+8>>2]=0;c[Q+12>>2]=0;g[Q+16>>2]=1.0;n=0;da(1045,e|0,Q|0);B=n;n=0;do if(!(B&1)){j=c[e+16>>2]|0;i=c[e+12>>2]|0;while(1){if((i|0)==(j|0))break;h=c[i>>2]|0;if(!(c[h+8>>2]|0)){n=0;h=U(125,Q|0,h+4|0)|0;B=n;n=0;if(B&1){C=8;break}a[h+32>>0]=1}i=i+4|0}if((C|0)==8){f=sa()|0;P()|0;break}j=c[e+76>>2]|0;i=c[e+72>>2]|0;a:while(1){if((i|0)==(j|0))break;k=c[i+8>>2]|0;h=c[i+4>>2]|0;while(1){l=h;if((k|0)==(l|0))break;c[m>>2]=c[h>>2];n=0;h=U(125,Q|0,m|0)|0;B=n;n=0;if(B&1){C=7;break a}a[h+32>>0]=1;h=l+4|0}i=i+16|0}if((C|0)==7){f=sa()|0;P()|0;break}n=0;da(998,o|0,e|0);C=n;n=0;if(!(C&1)){Lvb(o);n=0;da(1046,o|0,Q|0);C=n;n=0;if(!(C&1)?(n=0,ca(489,o|0),C=n,n=0,!(C&1)):0){osa(o);h=O+8|0;c[O>>2]=0;c[O+4>>2]=0;c[O+8>>2]=0;c[O+12>>2]=0;g[O+16>>2]=1.0;b:while(1){f=c[f>>2]|0;if(!f){C=37;break}i=f+32|0;while(1){i=c[i>>2]|0;if(!i)break;j=i;c[r>>2]=c[j+8>>2];n=0;k=U(126,O|0,r|0)|0;C=n;n=0;if(C&1){C=33;break b}n=0;W(19,k|0,c[k+4>>2]|0,c[j+12>>2]|0,c[j+16>>2]|0)|0;C=n;n=0;if(C&1){C=33;break b}}}do if((C|0)==33){f=sa()|0;P()|0;C=35}else if((C|0)==37){t=w+16|0;f=h;c:while(1){f=c[f>>2]|0;if(!f){C=67;break}s=f;c[u>>2]=c[s+8>>2];n=0;i=U(125,Q|0,u|0)|0;C=n;n=0;if(C&1){C=32;break}d:do if(!(a[i+32>>0]&1)){c[v>>2]=c[u>>2];n=0;c[D>>2]=c[v>>2];i=U(64,e|0,D|0)|0;C=n;n=0;if(C&1){C=32;break c}o=uob(i)|0;r=s+16|0;m=i+44|0;l=0;while(1){if(l>>>0>=o>>>0)break d;egb(w);k=c[r>>2]|0;j=c[s+12>>2]|0;while(1){if((j|0)==(k|0)){C=59;break}i=c[j>>2]|0;if(!(dub(c[i+24>>2]|0,c[u>>2]|0)|0)){C=47;break c}if((WCb(c[i+12>>2]|0)|0)!=(o|0)){C=49;break c}n=0;i=U(74,i+8|0,l|0)|0;C=n;n=0;if(C&1){C=30;break c}i=Mqb(c[i>>2]|0)|0;if(!i){C=57;break}i=i+8|0;if(c[t>>2]|0){n=0;i=U(95,w|0,i|0)|0;C=n;n=0;if(C&1){C=30;break c}if(i){C=56;break}}else{c[w>>2]=c[i>>2];c[w+4>>2]=c[i+4>>2];c[w+8>>2]=c[i+8>>2];c[w+12>>2]=c[i+12>>2];c[w+16>>2]=c[i+16>>2]}j=j+4|0}if((C|0)==56)c[t>>2]=0;else if((C|0)==57)c[t>>2]=0;else if((C|0)==59?(0,c[t>>2]|0):0){Gsb(x,e);n=0;i=D;j=w;k=i+24|0;do{a[i>>0]=a[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));i=U(120,x|0,D|0)|0;C=n;n=0;if(C&1){C=31;break c}j=c[x>>2]|0;n=0;i=V(70,j|0,l|0,i|0)|0;C=n;n=0;if(C&1){C=31;break c}n=0;i=V(57,j|0,i|0,c[m>>2]|0)|0;C=n;n=0;if(C&1){C=31;break c}c[m>>2]=i;n=0;i=U(125,Q|0,u|0)|0;C=n;n=0;if(C&1){C=31;break c}n=0;da(560,i|0,l|0);C=n;n=0;if(C&1){C=31;break c}}l=l+1|0}}while(0)}if((C|0)==30){f=sa()|0;P()|0;C=35;break}else if((C|0)==31){f=sa()|0;P()|0;C=35;break}else if((C|0)==32){f=sa()|0;P()|0;C=35;break}else if((C|0)==47){n=0;fa(75,78388,78409,247,103338);n=0}else if((C|0)==49){n=0;fa(75,78457,78409,248,103338);n=0}else if((C|0)==67){x=N+4|0;y=N+12|0;z=N+16|0;c[N>>2]=0;c[N+4>>2]=0;c[N+8>>2]=0;c[N+12>>2]=0;g[z>>2]=1.0;A=d+20|0;B=N+8|0;f=0;e:while(1){h=c[h>>2]|0;if(!h){C=128;break}i=h;v=c[i+8>>2]|0;c[E>>2]=v;u=i+12|0;c[G>>2]=v;n=0;c[D>>2]=c[G>>2];v=U(64,e|0,D|0)|0;w=n;n=0;if(w&1){C=73;break}c[F>>2]=v;j=uob(v)|0;w=v;f:do if(j){t=i+16|0;while(1){j=j+-1|0;n=0;i=U(125,Q|0,E|0)|0;s=n;n=0;if(s&1){C=72;break e}g:do if(iFa(i,j)|0){k=c[t>>2]|0;i=c[u>>2]|0;while(1){if((i|0)==(k|0))break;n=0;l=U(74,(c[i>>2]|0)+8|0,j|0)|0;s=n;n=0;if(s&1){C=71;break e}n=0;ea(130,H|0,A|0,c[l>>2]|0);s=n;n=0;if(s&1){C=71;break e}s=QGa(H)|0;Fha(H);if(s)break g;i=i+4|0}n=0;da(1047,J|0,u|0);s=n;n=0;if(s&1){C=72;break e}n=0;ea(138,v|0,j|0,J|0);s=n;n=0;if(s&1){C=124;break e}Vob(J);c[K>>2]=w;s=pH(K,4)|0;m=c[x>>2]|0;r=(m|0)==0;h:do if(!r){l=m+-1|0;o=(m&l|0)==0;do if(o)f=s&l;else{if(s>>>0>>0){f=s;break}f=(s>>>0)%(m>>>0)|0}while(0);i=c[(c[N>>2]|0)+(f<<2)>>2]|0;if(!i)break;while(1){i=c[i>>2]|0;if(!i)break h;k=c[i+4>>2]|0;if((k|0)!=(s|0)){do if(o)k=k&l;else{if(k>>>0>>0)break;k=(k>>>0)%(m>>>0)|0}while(0);if((k|0)!=(f|0))break h}if((c[i+8>>2]|0)==(v|0))break g}}while(0);n=0;fa(108,M|0,N|0,s|0,F|0);o=n;n=0;if(o&1){C=72;break e}p=+(((c[y>>2]|0)+1|0)>>>0);q=+g[z>>2];do if(!(q*+(m>>>0)>>0<=2){i=0;C=108;break}i=(m&m+-1|0)==0;C=108}while(0);do if((C|0)==108){C=0;r=f|(i^1)&1;o=~~+I(+(p/q))>>>0;n=0;da(1048,N|0,(r>>>0>>0?o:r)|0);r=n;n=0;if(r&1){C=113;break e}f=c[x>>2]|0;i=f+-1|0;if(!(f&i)){m=f;f=s&i;break}if(s>>>0>>0){m=f;f=s;break}m=f;f=(s>>>0)%(f>>>0)|0}while(0);i=c[(c[N>>2]|0)+(f<<2)>>2]|0;do if(!i){i=c[M>>2]|0;c[i>>2]=c[B>>2];l=i;c[B>>2]=l;c[(c[N>>2]|0)+(f<<2)>>2]=B;if(!(c[i>>2]|0))break;i=c[(c[i>>2]|0)+4>>2]|0;k=m+-1|0;do if(!(m&k))i=i&k;else{if(i>>>0>>0)break;i=(i>>>0)%(m>>>0)|0}while(0);c[(c[N>>2]|0)+(i<<2)>>2]=l}else{s=c[M>>2]|0;c[s>>2]=c[i>>2];c[i>>2]=s}while(0);c[y>>2]=(c[y>>2]|0)+1;c[M>>2]=0}while(0);if(!j)break f}}while(0)}do if((C|0)==71){f=sa()|0;P()|0;C=75}else if((C|0)==72){f=sa()|0;P()|0;C=75}else if((C|0)==73){f=sa()|0;P()|0;C=75}else if((C|0)==113){f=sa()|0;P()|0;h=c[M>>2]|0;c[M>>2]=0;if(h)RCb(h)}else if((C|0)==124){f=sa()|0;P()|0;Vob(J)}else if((C|0)==128){if((a[b+16>>0]&1)==0|(c[y>>2]|0)==0){Pdb(N);Sxa(O);zwa(Q);yb=L;return}n=0;ea(139,N|0,e|0,d|0);M=n;n=0;if(M&1){f=sa()|0;P()|0;C=75;break}else{Pdb(N);Sxa(O);zwa(Q);yb=L;return}}while(0);Pdb(N);break}f=sa()|0;P()|0;C=35}while(0);Sxa(O);O=f;zwa(Q);Ea(O|0)}O=sa()|0;P()|0;osa(o);zwa(Q);Ea(O|0)}else C=9}else C=9;while(0);if((C|0)==9){f=sa()|0;P()|0}O=f;zwa(Q);Ea(O|0)}function Ic(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,o=0,p=0,q=0,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;I=yb;yb=yb+256|0;E=I+232|0;t=I+224|0;x=I+216|0;i=I+248|0;u=I+212|0;y=I+208|0;w=I+200|0;L=I+184|0;h=I+168|0;A=I+152|0;B=I+140|0;k=I+136|0;l=I+132|0;z=I+120|0;o=I+116|0;p=I+112|0;q=I+108|0;v=I+96|0;r=I+92|0;s=I+80|0;K=I+68|0;H=I+64|0;J=I+24|0;D=I+8|0;F=I+4|0;G=I;c[x>>2]=e;C=d+4|0;e=c[C>>2]|0;f=c[d>>2]|0;if(((e-f|0)/12|0)>>>0<2){L=0;yb=I;return L|0}e=jQ(f,e,b)|0;kta(d,e,c[C>>2]|0)|0;c[u>>2]=i;c[y>>2]=u;c[w>>2]=y;c[w+4>>2]=b;EW(L,d);e=c[L>>2]|0;f=L+4|0;g=c[f>>2]|0;c[h>>2]=i;c[h+4>>2]=x;c[h+8>>2]=u;c[h+12>>2]=b;n=0;c[E>>2]=c[h>>2];c[E+4>>2]=c[h+4>>2];c[E+8>>2]=c[h+8>>2];c[E+12>>2]=c[h+12>>2];e=V(64,e|0,g|0,E|0)|0;m=n;n=0;a:do if(!(m&1)){kta(L,e,g)|0;e=c[f>>2]|0;f=c[L>>2]|0;do if(((e-f|0)/12|0)>>>0>1){yib(A);yib(B);g=f;while(1){if((g|0)==(e|0)){m=16;break}n=0;h=U(106,g|0,c[x>>2]|0)|0;m=n;n=0;if(m&1){m=15;break}c[k>>2]=h;n=0;h=S(273,h|0)|0;m=n;n=0;if(m&1){m=15;break}n=0;i=U(107,A|0,k|0)|0;m=n;n=0;if(m&1){m=15;break}c[i>>2]=h;c[l>>2]=h;n=0;h=U(108,B|0,l|0)|0;m=n;n=0;if(m&1){m=15;break}i=h+4|0;j=c[i>>2]|0;if((j|0)==(c[h+8>>2]|0)){n=0;da(332,h|0,k|0);m=n;n=0;if(m&1){m=15;break}}else{c[j>>2]=c[k>>2];c[i>>2]=(c[i>>2]|0)+4}g=g+12|0}if((m|0)==15){e=sa()|0;P()|0}else if((m|0)==16){yib(z);k=v+4|0;l=v+8|0;m=s+4|0;b:while(1){if((f|0)==(e|0)){m=42;break}n=0;g=U(106,f|0,c[x>>2]|0)|0;j=n;n=0;if(j&1){m=21;break}c[o>>2]=g;n=0;g=U(107,A|0,o|0)|0;j=n;n=0;if(j&1){m=21;break}g=c[g>>2]|0;c[p>>2]=g;c:do if(!(Jga(z,g)|0)){n=0;fa(104,t|0,z|0,g|0,p|0);j=n;n=0;if(j&1){m=21;break b}n=0;i=U(108,B|0,p|0)|0;j=n;n=0;if(j&1){m=21;break b}j=i+4|0;h=c[j>>2]|0;g=c[i>>2]|0;if((h-g|0)!=4){if((h|0)==(g|0)){m=27;break b}while(1){if(h-g>>2>>>0<=1)break c;c[q>>2]=c[g>>2];c[v>>2]=0;c[k>>2]=0;c[l>>2]=0;n=0;g=W(16,c[i>>2]|0,c[j>>2]|0,q|0,v|0)|0;h=n;n=0;if(h&1){m=36;break b}Exa(i,g,c[j>>2]|0)|0;g=c[i>>2]|0;if((c[j>>2]|0)-g>>2>>>0>1){c[r>>2]=c[g>>2];n=0;da(617,s|0,L|0);h=n;n=0;if(h&1){m=36;break b}g=c[m>>2]|0;n=0;h=Y(23,c[s>>2]|0,g|0,u|0,x|0,r|0)|0;M=n;n=0;if(M&1){m=37;break b}kta(s,h,g)|0;n=0;g=V(65,b|0,s|0,(c[x>>2]|0)+1|0)|0;M=n;n=0;if(M&1){m=37;break b}Vob(s);if(g){m=38;break b}}bma(i,v);Vob(v);g=c[i>>2]|0;h=c[j>>2]|0}}}while(0);f=f+12|0}if((m|0)==21){e=sa()|0;P()|0;m=22}else if((m|0)==27){n=0;fa(75,76303,76320,543,76356);n=0;e=sa()|0;P()|0;m=22}else if((m|0)==36){e=sa()|0;P()|0;m=40}else if((m|0)==37){e=sa()|0;P()|0;Vob(s);m=40}else if((m|0)==38){Vob(v);lmb(z);PQa(B);LZa(A);e=1;break}else if((m|0)==42){lmb(z);PQa(B);LZa(A);m=45;break}if((m|0)!=22)if((m|0)==40)Vob(v);lmb(z)}PQa(B);LZa(A);M=e;Vob(L);Ea(M|0)}else m=45;while(0);d:do if((m|0)==45){e=c[x>>2]|0;if(e){n=0;e=V(66,w|0,e|0,d|0)|0;M=n;n=0;if(M&1)break a;if(e){n=0;fa(105,K|0,y|0,c[x>>2]|0,d|0);M=n;n=0;if(M&1)break a;a[b+56>>0]=1;Gsb(H,WCb(c[b+36>>2]|0)|0);l=b+32|0;M=WCb(c[l>>2]|0)|0;n=0;da(618,J|0,M|0);M=n;n=0;if(M&1){e=sa()|0;P()|0}else{c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;M=Zzb(76381)|0;n=0;ea(95,D|0,76381,M|0);M=n;n=0;e:do if(!(M&1)){n=0;e=U(109,J|0,D|0)|0;M=n;n=0;if(M&1){e=sa()|0;P()|0;Chb(D);break}Chb(D);j=c[C>>2]|0;k=K+4|0;i=c[d>>2]|0;f:while(1){if((i|0)==(j|0)){m=74;break}h=i+4|0;f=c[h>>2]|0;if(f){n=0;da(619,b|0,f|0);M=n;n=0;if(M&1){m=63;break}f=0;while(1){g=c[h>>2]|0;if(f>>>0>=(c[k>>2]|0)-(c[K>>2]|0)>>2>>>0)break;n=0;ca(516,g+12|0);M=n;n=0;if(M&1){m=62;break f}f=f+1|0}c[F>>2]=e;f=c[H>>2]|0;n=0;c[E>>2]=c[F>>2];f=W(9,f|0,E|0,0,0)|0;M=n;n=0;if(M&1){m=63;break}n=0;da(231,g+12|0,f|0);M=n;n=0;if(M&1){m=63;break}M=c[h>>2]|0;n=0;da(620,M|0,c[M+4>>2]|0);M=n;n=0;if(M&1){m=63;break}}else{n=0;da(619,b|0,c[i>>2]|0);M=n;n=0;if(M&1){m=63;break}c[G>>2]=e;f=c[H>>2]|0;n=0;c[E>>2]=c[G>>2];f=W(9,f|0,E|0,0,0)|0;M=n;n=0;if(M&1){m=63;break}c[c[i+8>>2]>>2]=f}i=i+12|0}if((m|0)==62){e=sa()|0;P()|0;m=65;break}else if((m|0)==63){e=sa()|0;P()|0;m=65;break}else if((m|0)==74){h=c[l>>2]|0;WCb(h)|0;h=c[h+44>>2]|0;i=c[H>>2]|0;n=0;j=U(86,i|0,0)|0;M=n;n=0;if(M&1){m=64;break}c[j+8>>2]=e;f=h+4|0;e=c[f>>2]|0;g:do switch(e|0){case 6:{n=0;da(231,j+12|0,h|0);M=n;n=0;if(M&1){m=64;break e}break}case 0:{f=j+12|0;n=0;da(231,f|0,h|0);M=n;n=0;if(M&1){m=64;break e}n=0;e=U(110,i|0,0)|0;M=n;n=0;if(M&1){m=64;break e}n=0;da(231,f|0,e|0);M=n;n=0;if(M&1){m=64;break e}break}default:{g=Rqb(h)|0;if(g){n=0;ca(517,g|0);M=n;n=0;if(M&1){m=64;break e}e=c[f>>2]|0}if((e|0)==6){n=0;da(231,j+12|0,h|0);M=n;n=0;if(M&1){m=64;break e}else break g}n=0;e=U(110,i|0,h|0)|0;M=n;n=0;if(M&1){m=64;break e}n=0;da(231,j+12|0,e|0);M=n;n=0;if(M&1){m=64;break e}}}while(0);n=0;ca(517,j|0);M=n;n=0;if(M&1){m=64;break}n=0;f=U(86,i|0,0)|0;M=n;n=0;if(M&1){m=64;break}g=f+12|0;n=0;da(231,g|0,j|0);M=n;n=0;if(M&1){m=64;break}e=c[k>>2]|0;while(1){if((c[K>>2]|0)==(e|0))break;n=0;da(231,g|0,c[e+-4>>2]|0);M=n;n=0;if(M&1){m=61;break}e=(c[k>>2]|0)+-4|0;c[k>>2]=e}if((m|0)==61){e=sa()|0;P()|0;m=65;break}M=c[l>>2]|0;WCb(M)|0;n=0;da(620,f|0,c[M+12>>2]|0);M=n;n=0;if(M&1){m=64;break}e=c[l>>2]|0;WCb(e)|0;c[e+44>>2]=f;J7a(J);Vob(K);e=1;break d}}else m=64;while(0);if((m|0)==64){e=sa()|0;P()|0;m=65}J7a(J)}Vob(K);M=e;Vob(L);Ea(M|0)}else e=0}else e=0}while(0);Vob(L);M=e;yb=I;return M|0}while(0);M=sa()|0;P()|0;Vob(L);Ea(M|0);return 0}function Jc(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,o=0,p=0,q=0,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=yb;yb=yb+224|0;w=E+216|0;p=E+200|0;D=E+192|0;F=E+148|0;j=E+136|0;l=E+124|0;m=E+112|0;o=E+100|0;f=E+88|0;g=E+76|0;h=E+64|0;i=E+60|0;C=E+56|0;q=E+52|0;r=E+48|0;s=E+44|0;t=E+220|0;u=E+40|0;y=E+28|0;z=E+16|0;x=E+12|0;v=E+8|0;A=E+4|0;B=E;c[D>>2]=d;VSa(F,d);n=0;ca(488,F|0);G=n;n=0;do if(!(G&1)?(c[j>>2]=0,c[j+4>>2]=0,c[j+8>>2]=0,G=Zzb(92998)|0,n=0,ea(95,j|0,92998,G|0),G=n,n=0,!(G&1)):0){n=0;da(68,F|0,j|0);G=n;n=0;if(G&1){G=sa()|0;P()|0;Chb(j);osa(F);Ea(G|0)}Chb(j);c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;G=Zzb(90927)|0;n=0;ea(95,l|0,90927,G|0);G=n;n=0;if(!(G&1)){n=0;da(68,F|0,l|0);G=n;n=0;if(G&1){G=sa()|0;P()|0;Chb(l);osa(F);Ea(G|0)}Chb(l);c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;G=Zzb(91620)|0;n=0;ea(95,m|0,91620,G|0);G=n;n=0;if(!(G&1)){n=0;da(68,F|0,m|0);G=n;n=0;if(G&1){G=sa()|0;P()|0;Chb(m);osa(F);Ea(G|0)}Chb(m);c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;G=Zzb(90927)|0;n=0;ea(95,o|0,90927,G|0);G=n;n=0;if(!(G&1)){n=0;da(68,F|0,o|0);G=n;n=0;if(G&1){G=sa()|0;P()|0;Chb(o);osa(F);Ea(G|0)}Chb(o);c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;G=Zzb(94048)|0;n=0;ea(95,f|0,94048,G|0);G=n;n=0;if(!(G&1)){n=0;da(68,F|0,f|0);G=n;n=0;if(G&1){G=sa()|0;P()|0;Chb(f);osa(F);Ea(G|0)}Chb(f);c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;G=Zzb(93508)|0;n=0;ea(95,g|0,93508,G|0);G=n;n=0;if(!(G&1)){n=0;da(68,F|0,g|0);G=n;n=0;if(G&1){G=sa()|0;P()|0;Chb(g);osa(F);Ea(G|0)}Chb(g);c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;G=Zzb(94725)|0;n=0;ea(95,h|0,94725,G|0);G=n;n=0;if(!(G&1)){n=0;da(68,F|0,h|0);G=n;n=0;if(G&1){G=sa()|0;P()|0;Chb(h);osa(F);Ea(G|0)}Chb(h);glb(F,(a[b+24>>0]&1)!=0);n=0;ca(489,F|0);G=n;n=0;if(!(G&1)?(Pwb(i,0),n=0,k=V(38,d|0,c[i>>2]|0,2)|0,G=n,n=0,!(G&1)):0){if(!k){n=0;ca(490,d|0);G=n;n=0;if(G&1){j=26;break}n=0;ba(3);G=n;n=0;if(G&1){j=26;break}n=0;ca(491,51159);G=n;n=0;if(G&1){sa()|0;P()|0;iSa()}else iSa()}n=0;k=Q(1)|0;G=n;n=0;if(!(G&1)){n=0;da(69,k|0,d|0);G=n;n=0;if(G&1){j=26;break}f=c[e>>2]|0;n=0;h=S(215,f|0)|0;G=n;n=0;if(G&1){j=26;break}c[C>>2]=h;n=0;g=U(56,k|0,1)|0;G=n;n=0;if(G&1){j=26;break}G=WCb(c[g>>2]|0)|0;n=0;U(57,G|0,h|0)|0;G=n;n=0;if(G&1){j=26;break}n=0;fa(71,b|0,k|0,d|0,f|0);G=n;n=0;if(G&1){j=26;break}n=0;da(70,h|0,c[37105]|0);G=n;n=0;if(G&1){j=26;break}n=0;da(70,h|0,c[37153]|0);G=n;n=0;if(G&1){j=26;break}n=0;da(70,h|0,c[37152]|0);G=n;n=0;if(G&1){j=26;break}n=0;f=U(56,h|0,3)|0;G=n;n=0;if(G&1){j=26;break}f=c[f>>2]|0;n=0;g=S(216,c[37150]|0)|0;G=n;n=0;if(G&1){j=26;break}e=WCb(f)|0;G=WCb(g)|0;n=0;U(57,e|0,G|0)|0;G=n;n=0;if(G&1){j=26;break}n=0;f=U(56,h|0,3)|0;G=n;n=0;if(G&1){j=26;break}n=0;ca(492,c[f>>2]|0);G=n;n=0;if(G&1){j=26;break}n=0;ea(96,d|0,b|0,C|0);G=n;n=0;if(G&1){j=26;break}n=0;ea(97,d|0,b|0,C|0);G=n;n=0;if(G&1){j=26;break}h=c[d+76>>2]|0;i=0;g=c[d+72>>2]|0;while(1){if((g|0)==(h|0)){j=58;break}n=0;da(71,p|0,g|0);G=n;n=0;if(G&1){j=25;break}n=0;f=U(58,i|0,p|0)|0;G=n;n=0;if(G&1){j=57;break}Nrb(p);i=f;g=g+16|0}if((j|0)==25){f=sa()|0;P()|0;break}else if((j|0)==57){G=sa()|0;P()|0;Nrb(p);osa(F);Ea(G|0)}else if((j|0)==58){g=b+144|0;c[g>>2]=i;f=1;while(1){if(f>>>0>=i>>>0)break;f=f<<1}c[g>>2]=f;f=c[D>>2]|0;g=c[f+16>>2]|0;f=c[f+12>>2]|0;while(1){if((f|0)==(g|0))break;h=c[f>>2]|0;if((c[h+8>>2]|0)==0?(c[q>>2]=c[h>>2],n=0,c[w>>2]=c[q>>2],V(39,b|0,w|0,0)|0,G=n,n=0,G&1):0){j=24;break}f=f+4|0}if((j|0)==24){f=sa()|0;P()|0;break}f=c[D>>2]|0;g=c[f+28>>2]|0;f=c[f+24>>2]|0;while(1){if((f|0)==(g|0))break;c[r>>2]=c[(c[f>>2]|0)+8>>2];n=0;c[w>>2]=c[r>>2];V(39,b|0,w|0,0)|0;G=n;n=0;if(G&1){j=23;break}f=f+4|0}if((j|0)==23){f=sa()|0;P()|0;break}Ftb(s,c[37178]|0);n=0;c[w>>2]=c[s>>2];V(39,b|0,w|0,0)|0;G=n;n=0;if(G&1){j=26;break}a[t>>0]=0;f=c[D>>2]|0;n=0;fa(72,f|0,b|0,C|0,t|0);G=n;n=0;if(G&1){j=26;break}n=0;fa(73,f|0,C|0,b|0,D|0);G=n;n=0;if(G&1){j=26;break}a:do if(a[t>>0]&1){Pwb(u,b);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;n=0;f=U(56,c[C>>2]|0,3)|0;G=n;n=0;do if(!(G&1)){h=WCb(c[f>>2]|0)|0;g=c[D>>2]|0;Ftb(x,c[37178]|0);Ftb(v,c[37179]|0);f=c[u>>2]|0;n=0;c[w>>2]=c[v>>2];f=V(40,f|0,w|0,1)|0;G=n;n=0;if(G&1)break;n=0;c[w>>2]=c[x>>2];f=Y(21,w|0,y|0,1,z|0,f|0)|0;G=n;n=0;if(G&1)break;n=0;f=V(41,b|0,g|0,f|0)|0;G=n;n=0;if(G&1)break;n=0;U(57,h|0,f|0)|0;G=n;n=0;if(G&1)break;n=0;f=S(217,12)|0;G=n;n=0;if(G&1)break;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;Ysb(f);Ftb(A,c[37178]|0);c[f>>2]=c[A>>2];Ftb(B,c[37178]|0);c[f+4>>2]=c[B>>2];c[f+8>>2]=0;n=0;da(72,c[D>>2]|0,f|0);G=n;n=0;if(G&1)break;Vob(z);Vob(y);break a}while(0);G=sa()|0;P()|0;Vob(z);Vob(y);osa(F);Ea(G|0)}while(0);n=0;f=U(56,c[C>>2]|0,3)|0;G=n;n=0;if(G&1){j=26;break}n=0;ea(98,b|0,c[f>>2]|0,c[D>>2]|0);G=n;n=0;if(G&1){j=26;break}n=0;f=U(56,c[C>>2]|0,3)|0;G=n;n=0;if(G&1){j=26;break}n=0;ea(99,b|0,c[f>>2]|0,c[D>>2]|0);G=n;n=0;if(G&1){j=26;break}osa(F);yb=E;return k|0}}else j=26}else j=26}else j=26}else j=26}else j=26}else j=26}else j=26}else j=26}else j=26;while(0);if((j|0)==26){f=sa()|0;P()|0}G=f;osa(F);Ea(G|0);return 0}function Kc(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,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=yb;yb=yb+176|0;o=T+160|0;z=T+156|0;K=T+152|0;O=T+148|0;P=T+144|0;Q=T+140|0;R=T+136|0;S=T+132|0;e=T+128|0;f=T+124|0;g=T+120|0;h=T+116|0;i=T+112|0;j=T+108|0;k=T+104|0;l=T+100|0;m=T+96|0;n=T+92|0;p=T+88|0;q=T+84|0;r=T+80|0;s=T+76|0;t=T+72|0;u=T+68|0;v=T+64|0;w=T+60|0;x=T+56|0;y=T+52|0;A=T+48|0;B=T+44|0;C=T+40|0;D=T+36|0;E=T+32|0;F=T+28|0;G=T+24|0;H=T+20|0;I=T+16|0;J=T+12|0;L=T+8|0;M=T+4|0;N=T;if(a[b+33>>0]&1)BM(IWa(150620,112791)|0);T_a(b,c[d+12>>2]|0);if((c[d+4>>2]|0)==6){Ygb(c[b+28>>2]|0);yb=T;return}do switch(c[d+8>>2]|0){case 0:{tI(c[b+28>>2]|0,103)|0;yb=T;return}case 2:{tI(c[b+28>>2]|0,104)|0;yb=T;return}case 4:{tI(c[b+28>>2]|0,105)|0;yb=T;return}case 20:{tI(c[b+28>>2]|0,69)|0;yb=T;return}case 1:{tI(c[b+28>>2]|0,121)|0;yb=T;return}case 3:{tI(c[b+28>>2]|0,122)|0;yb=T;return}case 5:{tI(c[b+28>>2]|0,123)|0;yb=T;return}case 21:{tI(c[b+28>>2]|0,80)|0;yb=T;return}case 6:{tI(c[b+28>>2]|0,-116)|0;yb=T;return}case 8:{tI(c[b+28>>2]|0,-117)|0;yb=T;return}case 10:{tI(c[b+28>>2]|0,-115)|0;yb=T;return}case 12:{tI(c[b+28>>2]|0,-114)|0;yb=T;return}case 14:{tI(c[b+28>>2]|0,-113)|0;yb=T;return}case 16:{tI(c[b+28>>2]|0,-112)|0;yb=T;return}case 18:{tI(c[b+28>>2]|0,-111)|0;yb=T;return}case 7:{tI(c[b+28>>2]|0,-102)|0;yb=T;return}case 9:{tI(c[b+28>>2]|0,-103)|0;yb=T;return}case 11:{tI(c[b+28>>2]|0,-101)|0;yb=T;return}case 13:{tI(c[b+28>>2]|0,-100)|0;yb=T;return}case 15:{tI(c[b+28>>2]|0,-99)|0;yb=T;return}case 17:{tI(c[b+28>>2]|0,-98)|0;yb=T;return}case 19:{tI(c[b+28>>2]|0,-97)|0;yb=T;return}case 22:{tI(c[b+28>>2]|0,-84)|0;yb=T;return}case 23:{tI(c[b+28>>2]|0,-83)|0;yb=T;return}case 24:{tI(c[b+28>>2]|0,-89)|0;yb=T;return}case 27:{tI(c[b+28>>2]|0,-87)|0;yb=T;return}case 28:{tI(c[b+28>>2]|0,-81)|0;yb=T;return}case 25:{tI(c[b+28>>2]|0,-88)|0;yb=T;return}case 26:{tI(c[b+28>>2]|0,-82)|0;yb=T;return}case 31:{tI(c[b+28>>2]|0,-85)|0;yb=T;return}case 32:{tI(c[b+28>>2]|0,-79)|0;yb=T;return}case 29:{tI(c[b+28>>2]|0,-86)|0;yb=T;return}case 30:{tI(c[b+28>>2]|0,-80)|0;yb=T;return}case 37:{tI(c[b+28>>2]|0,-77)|0;yb=T;return}case 38:{tI(c[b+28>>2]|0,-72)|0;yb=T;return}case 35:{tI(c[b+28>>2]|0,-78)|0;yb=T;return}case 36:{tI(c[b+28>>2]|0,-73)|0;yb=T;return}case 41:{tI(c[b+28>>2]|0,-75)|0;yb=T;return}case 42:{tI(c[b+28>>2]|0,-70)|0;yb=T;return}case 39:{tI(c[b+28>>2]|0,-76)|0;yb=T;return}case 40:{tI(c[b+28>>2]|0,-71)|0;yb=T;return}case 44:{tI(c[b+28>>2]|0,-74)|0;yb=T;return}case 43:{tI(c[b+28>>2]|0,-69)|0;yb=T;return}case 33:{tI(c[b+28>>2]|0,-68)|0;yb=T;return}case 34:{tI(c[b+28>>2]|0,-67)|0;yb=T;return}case 45:{tI(c[b+28>>2]|0,-66)|0;yb=T;return}case 46:{tI(c[b+28>>2]|0,-65)|0;yb=T;return}case 47:{tI(c[b+28>>2]|0,-64)|0;yb=T;return}case 48:{tI(c[b+28>>2]|0,-63)|0;yb=T;return}case 49:{tI(c[b+28>>2]|0,-62)|0;yb=T;return}case 50:{tI(c[b+28>>2]|0,-61)|0;yb=T;return}case 51:{tI(c[b+28>>2]|0,-60)|0;yb=T;return}case 52:{S=tI(c[b+28>>2]|0,-4)|0;Pwb(o,0);YA(S,c[o>>2]|0)|0;yb=T;return}case 53:{S=tI(c[b+28>>2]|0,-4)|0;Pwb(z,1);YA(S,c[z>>2]|0)|0;yb=T;return}case 54:{S=tI(c[b+28>>2]|0,-4)|0;Pwb(K,2);YA(S,c[K>>2]|0)|0;yb=T;return}case 55:{S=tI(c[b+28>>2]|0,-4)|0;Pwb(O,3);YA(S,c[O>>2]|0)|0;yb=T;return}case 56:{S=tI(c[b+28>>2]|0,-4)|0;Pwb(P,4);YA(S,c[P>>2]|0)|0;yb=T;return}case 57:{S=tI(c[b+28>>2]|0,-4)|0;Pwb(Q,5);YA(S,c[Q>>2]|0)|0;yb=T;return}case 58:{S=tI(c[b+28>>2]|0,-4)|0;Pwb(R,6);YA(S,c[R>>2]|0)|0;yb=T;return}case 59:{R=tI(c[b+28>>2]|0,-4)|0;Pwb(S,7);YA(R,c[S>>2]|0)|0;yb=T;return}case 60:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(e,4);YA(S,c[e>>2]|0)|0;yb=T;return}case 61:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(f,8);YA(S,c[f>>2]|0)|0;yb=T;return}case 62:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(g,12);YA(S,c[g>>2]|0)|0;yb=T;return}case 63:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(h,15);YA(S,c[h>>2]|0)|0;yb=T;return}case 64:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(i,18);YA(S,c[i>>2]|0)|0;yb=T;return}case 65:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(j,21);YA(S,c[j>>2]|0)|0;yb=T;return}case 66:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(k,76);YA(S,c[k>>2]|0)|0;yb=T;return}case 67:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(l,81);YA(S,c[l>>2]|0)|0;yb=T;return}case 68:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(m,82);YA(S,c[m>>2]|0)|0;yb=T;return}case 69:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(n,83);YA(S,c[n>>2]|0)|0;yb=T;return}case 70:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(p,98);YA(S,c[p>>2]|0)|0;yb=T;return}case 71:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(q,99);YA(S,c[q>>2]|0)|0;yb=T;return}case 72:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(r,100);YA(S,c[r>>2]|0)|0;yb=T;return}case 73:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(s,115);YA(S,c[s>>2]|0)|0;yb=T;return}case 74:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(t,116);YA(S,c[t>>2]|0)|0;yb=T;return}case 75:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(u,117);YA(S,c[u>>2]|0)|0;yb=T;return}case 76:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(v,132);YA(S,c[v>>2]|0)|0;yb=T;return}case 77:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(w,133);YA(S,c[w>>2]|0)|0;yb=T;return}case 78:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(x,134);YA(S,c[x>>2]|0)|0;yb=T;return}case 79:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(y,149);YA(S,c[y>>2]|0)|0;yb=T;return}case 80:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(A,150);YA(S,c[A>>2]|0)|0;yb=T;return}case 81:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(B,151);YA(S,c[B>>2]|0)|0;yb=T;return}case 82:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(C,160);YA(S,c[C>>2]|0)|0;yb=T;return}case 83:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(D,161);YA(S,c[D>>2]|0)|0;yb=T;return}case 84:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(E,162);YA(S,c[E>>2]|0)|0;yb=T;return}case 85:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(F,171);YA(S,c[F>>2]|0)|0;yb=T;return}case 86:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(G,172);YA(S,c[G>>2]|0)|0;yb=T;return}case 87:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(H,173);YA(S,c[H>>2]|0)|0;yb=T;return}case 88:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(I,174);YA(S,c[I>>2]|0)|0;yb=T;return}case 89:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(J,175);YA(S,c[J>>2]|0)|0;yb=T;return}case 90:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(L,176);YA(S,c[L>>2]|0)|0;yb=T;return}case 91:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(M,177);YA(S,c[M>>2]|0)|0;yb=T;return}case 92:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(N,178);YA(S,c[N>>2]|0)|0;yb=T;return}case 93:{ma(141129,112765,1141,132100);break}default:{yb=T;return}}while(0)}function Lc(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,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=yb;yb=yb+176|0;o=T+160|0;z=T+156|0;K=T+152|0;O=T+148|0;P=T+144|0;Q=T+140|0;R=T+136|0;S=T+132|0;e=T+128|0;f=T+124|0;g=T+120|0;h=T+116|0;i=T+112|0;j=T+108|0;k=T+104|0;l=T+100|0;m=T+96|0;n=T+92|0;p=T+88|0;q=T+84|0;r=T+80|0;s=T+76|0;t=T+72|0;u=T+68|0;v=T+64|0;w=T+60|0;x=T+56|0;y=T+52|0;A=T+48|0;B=T+44|0;C=T+40|0;D=T+36|0;E=T+32|0;F=T+28|0;G=T+24|0;H=T+20|0;I=T+16|0;J=T+12|0;L=T+8|0;M=T+4|0;N=T;if(a[b+33>>0]&1)BM(IWa(150620,112791)|0);if((c[d+4>>2]|0)==6){yb=T;return}do switch(c[d+8>>2]|0){case 0:{tI(c[b+28>>2]|0,103)|0;yb=T;return}case 2:{tI(c[b+28>>2]|0,104)|0;yb=T;return}case 4:{tI(c[b+28>>2]|0,105)|0;yb=T;return}case 20:{tI(c[b+28>>2]|0,69)|0;yb=T;return}case 1:{tI(c[b+28>>2]|0,121)|0;yb=T;return}case 3:{tI(c[b+28>>2]|0,122)|0;yb=T;return}case 5:{tI(c[b+28>>2]|0,123)|0;yb=T;return}case 21:{tI(c[b+28>>2]|0,80)|0;yb=T;return}case 6:{tI(c[b+28>>2]|0,-116)|0;yb=T;return}case 8:{tI(c[b+28>>2]|0,-117)|0;yb=T;return}case 10:{tI(c[b+28>>2]|0,-115)|0;yb=T;return}case 12:{tI(c[b+28>>2]|0,-114)|0;yb=T;return}case 14:{tI(c[b+28>>2]|0,-113)|0;yb=T;return}case 16:{tI(c[b+28>>2]|0,-112)|0;yb=T;return}case 18:{tI(c[b+28>>2]|0,-111)|0;yb=T;return}case 7:{tI(c[b+28>>2]|0,-102)|0;yb=T;return}case 9:{tI(c[b+28>>2]|0,-103)|0;yb=T;return}case 11:{tI(c[b+28>>2]|0,-101)|0;yb=T;return}case 13:{tI(c[b+28>>2]|0,-100)|0;yb=T;return}case 15:{tI(c[b+28>>2]|0,-99)|0;yb=T;return}case 17:{tI(c[b+28>>2]|0,-98)|0;yb=T;return}case 19:{tI(c[b+28>>2]|0,-97)|0;yb=T;return}case 22:{tI(c[b+28>>2]|0,-84)|0;yb=T;return}case 23:{tI(c[b+28>>2]|0,-83)|0;yb=T;return}case 24:{tI(c[b+28>>2]|0,-89)|0;yb=T;return}case 27:{tI(c[b+28>>2]|0,-87)|0;yb=T;return}case 28:{tI(c[b+28>>2]|0,-81)|0;yb=T;return}case 25:{tI(c[b+28>>2]|0,-88)|0;yb=T;return}case 26:{tI(c[b+28>>2]|0,-82)|0;yb=T;return}case 31:{tI(c[b+28>>2]|0,-85)|0;yb=T;return}case 32:{tI(c[b+28>>2]|0,-79)|0;yb=T;return}case 29:{tI(c[b+28>>2]|0,-86)|0;yb=T;return}case 30:{tI(c[b+28>>2]|0,-80)|0;yb=T;return}case 37:{tI(c[b+28>>2]|0,-77)|0;yb=T;return}case 38:{tI(c[b+28>>2]|0,-72)|0;yb=T;return}case 35:{tI(c[b+28>>2]|0,-78)|0;yb=T;return}case 36:{tI(c[b+28>>2]|0,-73)|0;yb=T;return}case 41:{tI(c[b+28>>2]|0,-75)|0;yb=T;return}case 42:{tI(c[b+28>>2]|0,-70)|0;yb=T;return}case 39:{tI(c[b+28>>2]|0,-76)|0;yb=T;return}case 40:{tI(c[b+28>>2]|0,-71)|0;yb=T;return}case 44:{tI(c[b+28>>2]|0,-74)|0;yb=T;return}case 43:{tI(c[b+28>>2]|0,-69)|0;yb=T;return}case 33:{tI(c[b+28>>2]|0,-68)|0;yb=T;return}case 34:{tI(c[b+28>>2]|0,-67)|0;yb=T;return}case 45:{tI(c[b+28>>2]|0,-66)|0;yb=T;return}case 46:{tI(c[b+28>>2]|0,-65)|0;yb=T;return}case 47:{tI(c[b+28>>2]|0,-64)|0;yb=T;return}case 48:{tI(c[b+28>>2]|0,-63)|0;yb=T;return}case 49:{tI(c[b+28>>2]|0,-62)|0;yb=T;return}case 50:{tI(c[b+28>>2]|0,-61)|0;yb=T;return}case 51:{tI(c[b+28>>2]|0,-60)|0;yb=T;return}case 52:{S=tI(c[b+28>>2]|0,-4)|0;Pwb(o,0);YA(S,c[o>>2]|0)|0;yb=T;return}case 53:{S=tI(c[b+28>>2]|0,-4)|0;Pwb(z,1);YA(S,c[z>>2]|0)|0;yb=T;return}case 54:{S=tI(c[b+28>>2]|0,-4)|0;Pwb(K,2);YA(S,c[K>>2]|0)|0;yb=T;return}case 55:{S=tI(c[b+28>>2]|0,-4)|0;Pwb(O,3);YA(S,c[O>>2]|0)|0;yb=T;return}case 56:{S=tI(c[b+28>>2]|0,-4)|0;Pwb(P,4);YA(S,c[P>>2]|0)|0;yb=T;return}case 57:{S=tI(c[b+28>>2]|0,-4)|0;Pwb(Q,5);YA(S,c[Q>>2]|0)|0;yb=T;return}case 58:{S=tI(c[b+28>>2]|0,-4)|0;Pwb(R,6);YA(S,c[R>>2]|0)|0;yb=T;return}case 59:{R=tI(c[b+28>>2]|0,-4)|0;Pwb(S,7);YA(R,c[S>>2]|0)|0;yb=T;return}case 60:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(e,4);YA(S,c[e>>2]|0)|0;yb=T;return}case 61:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(f,8);YA(S,c[f>>2]|0)|0;yb=T;return}case 62:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(g,12);YA(S,c[g>>2]|0)|0;yb=T;return}case 63:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(h,15);YA(S,c[h>>2]|0)|0;yb=T;return}case 64:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(i,18);YA(S,c[i>>2]|0)|0;yb=T;return}case 65:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(j,21);YA(S,c[j>>2]|0)|0;yb=T;return}case 66:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(k,76);YA(S,c[k>>2]|0)|0;yb=T;return}case 67:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(l,81);YA(S,c[l>>2]|0)|0;yb=T;return}case 68:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(m,82);YA(S,c[m>>2]|0)|0;yb=T;return}case 69:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(n,83);YA(S,c[n>>2]|0)|0;yb=T;return}case 70:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(p,98);YA(S,c[p>>2]|0)|0;yb=T;return}case 71:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(q,99);YA(S,c[q>>2]|0)|0;yb=T;return}case 72:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(r,100);YA(S,c[r>>2]|0)|0;yb=T;return}case 73:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(s,115);YA(S,c[s>>2]|0)|0;yb=T;return}case 74:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(t,116);YA(S,c[t>>2]|0)|0;yb=T;return}case 75:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(u,117);YA(S,c[u>>2]|0)|0;yb=T;return}case 76:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(v,132);YA(S,c[v>>2]|0)|0;yb=T;return}case 77:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(w,133);YA(S,c[w>>2]|0)|0;yb=T;return}case 78:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(x,134);YA(S,c[x>>2]|0)|0;yb=T;return}case 79:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(y,149);YA(S,c[y>>2]|0)|0;yb=T;return}case 80:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(A,150);YA(S,c[A>>2]|0)|0;yb=T;return}case 81:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(B,151);YA(S,c[B>>2]|0)|0;yb=T;return}case 82:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(C,160);YA(S,c[C>>2]|0)|0;yb=T;return}case 83:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(D,161);YA(S,c[D>>2]|0)|0;yb=T;return}case 84:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(E,162);YA(S,c[E>>2]|0)|0;yb=T;return}case 85:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(F,171);YA(S,c[F>>2]|0)|0;yb=T;return}case 86:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(G,172);YA(S,c[G>>2]|0)|0;yb=T;return}case 87:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(H,173);YA(S,c[H>>2]|0)|0;yb=T;return}case 88:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(I,174);YA(S,c[I>>2]|0)|0;yb=T;return}case 89:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(J,175);YA(S,c[J>>2]|0)|0;yb=T;return}case 90:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(L,176);YA(S,c[L>>2]|0)|0;yb=T;return}case 91:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(M,177);YA(S,c[M>>2]|0)|0;yb=T;return}case 92:{S=tI(c[b+28>>2]|0,-3)|0;Pwb(N,178);YA(S,c[N>>2]|0)|0;yb=T;return}case 93:{ma(141129,112765,1141,132100);break}default:{yb=T;return}}while(0)}function Mc(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,o=0,p=0,q=0;q=yb;yb=yb+96|0;p=q+64|0;j=q+48|0;l=q+36|0;m=q+24|0;o=q+12|0;k=q;a:do if((d-b|0)>3?(a[b>>0]|0)==76:0){f=b+1|0;b:do switch(a[f>>0]|0){case 84:break a;case 119:{g=b+2|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;T3(p,141121,Zzb(141121)|0);n=0;f=W(45,g|0,d|0,p|0,e|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(p);break b}else{Chb(p);b=(f|0)==(g|0)?b:f;break a}}case 98:{if((a[b+3>>0]|0)!=69)break a;switch(a[b+2>>0]|0){case 48:{ega(p,141129);f=e+4|0;g=c[f>>2]|0;if(g>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,p|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(p);break b}}else{I6(g,p);c[f>>2]=(c[f>>2]|0)+24}J2a(p);b=b+4|0;break a}case 49:{fga(p,141135);f=e+4|0;g=c[f>>2]|0;if(g>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,p|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(p);break b}}else{I6(g,p);c[f>>2]=(c[f>>2]|0)+24}J2a(p);b=b+4|0;break a}default:break a}}case 99:{g=b+2|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;T3(p,141140,Zzb(141140)|0);n=0;f=W(45,g|0,d|0,p|0,e|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(p);break b}else{Chb(p);b=(f|0)==(g|0)?b:f;break a}}case 97:{g=b+2|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;T3(p,141145,Zzb(141145)|0);n=0;f=W(45,g|0,d|0,p|0,e|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(p);break b}else{Chb(p);b=(f|0)==(g|0)?b:f;break a}}case 104:{g=b+2|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;T3(p,141157,Zzb(141157)|0);n=0;f=W(45,g|0,d|0,p|0,e|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(p);break b}else{Chb(p);b=(f|0)==(g|0)?b:f;break a}}case 115:{g=b+2|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;T3(p,141171,Zzb(141171)|0);n=0;f=W(45,g|0,d|0,p|0,e|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(p);break b}else{Chb(p);b=(f|0)==(g|0)?b:f;break a}}case 116:{g=b+2|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;T3(p,141177,Zzb(141177)|0);n=0;f=W(45,g|0,d|0,p|0,e|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(p);break b}else{Chb(p);b=(f|0)==(g|0)?b:f;break a}}case 105:{g=b+2|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;T3(p,151778,Zzb(151778)|0);n=0;f=W(45,g|0,d|0,p|0,e|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(p);break b}else{Chb(p);b=(f|0)==(g|0)?b:f;break a}}case 106:{g=b+2|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;T3(p,141192,Zzb(141192)|0);n=0;f=W(45,g|0,d|0,p|0,e|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(p);break b}else{Chb(p);b=(f|0)==(g|0)?b:f;break a}}case 108:{g=b+2|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;T3(p,141194,Zzb(141194)|0);n=0;f=W(45,g|0,d|0,p|0,e|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(p);break b}else{Chb(p);b=(f|0)==(g|0)?b:f;break a}}case 109:{g=b+2|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;T3(p,141196,Zzb(141196)|0);n=0;f=W(45,g|0,d|0,p|0,e|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(p);break b}else{Chb(p);b=(f|0)==(g|0)?b:f;break a}}case 120:{g=b+2|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;T3(p,141199,Zzb(141199)|0);n=0;f=W(45,g|0,d|0,p|0,e|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(p);break b}else{Chb(p);b=(f|0)==(g|0)?b:f;break a}}case 121:{g=b+2|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;T3(p,141202,Zzb(141202)|0);n=0;f=W(45,g|0,d|0,p|0,e|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(p);break b}else{Chb(p);b=(f|0)==(g|0)?b:f;break a}}case 110:{g=b+2|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;T3(p,141206,Zzb(141206)|0);n=0;f=W(45,g|0,d|0,p|0,e|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(p);break b}else{Chb(p);b=(f|0)==(g|0)?b:f;break a}}case 111:{g=b+2|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;T3(p,141215,Zzb(141215)|0);n=0;f=W(45,g|0,d|0,p|0,e|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(p);break b}else{Chb(p);b=(f|0)==(g|0)?b:f;break a}}case 102:{o=b+2|0;p=zp(o,d,e)|0;b=(p|0)==(o|0)?b:p;break a}case 100:{o=b+2|0;p=mp(o,d,e)|0;b=(p|0)==(o|0)?b:p;break a}case 101:{o=b+2|0;p=Hp(o,d,e)|0;b=(p|0)==(o|0)?b:p;break a}case 95:{if((a[b+2>>0]|0)!=90)break a;p=b+3|0;f=Nc(p,d,e)|0;if((f|0)==(p|0)|(f|0)==(d|0))break a;b=(a[f>>0]|0)==69?f+1|0:b;break a}default:{i=cc(f,d,e)|0;if((i|0)==(f|0)|(i|0)==(d|0))break a;if((a[i>>0]|0)==69){b=i+1|0;break a}h=i;while(1){if((h|0)==(d|0))break a;f=a[h>>0]|0;if(((f<<24>>24)+-48|0)>>>0>=10)break;h=h+1|0}if(!((h|0)!=(i|0)&f<<24>>24==69))break a;g=e+4|0;f=c[g>>2]|0;if((c[e>>2]|0)==(f|0))break a;d6(o,f+-24|0);n=0;V(128,o|0,0,139929)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0}else{c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,m|0,139927)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0}else{c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;n=0;ea(219,k|0,i|0,h|0);e=n;n=0;do if(e&1){b=sa()|0;P()|0}else{e=a[k+11>>0]|0;d=e<<24>>24<0;n=0;V(124,l|0,(d?c[k>>2]|0:k)|0,(d?c[k+4>>2]|0:e&255)|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(k);break}c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];c[j+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}X6(p,j);RC((c[g>>2]|0)+-24|0,p);J2a(p);Chb(j);Chb(k);Chb(l);Chb(m);Chb(o);b=h+1|0;break a}while(0);Chb(l)}Chb(m)}Chb(o)}}while(0);Ea(b|0)}while(0);yb=q;return b|0}function Nc(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=yb;yb=yb+64|0;z=y+56|0;A=y+48|0;w=y+40|0;x=y+24|0;t=y+12|0;r=y;do if((b|0)!=(d|0)){v=e+56|0;vjb(z,v);c[v>>2]=(c[v>>2]|0)+1;f=e+61|0;ejb(A,f);if((c[v>>2]|0)>>>0>1)a[f>>0]=1;a:do switch(a[b>>0]|0){case 84:case 71:{n=0;d=V(125,b|0,d|0,e|0)|0;x=n;n=0;if(x&1){d=sa()|0;P()|0;m=111}else{f=1;m=110}break}default:{n=0;l=V(126,b|0,d|0,e|0)|0;v=n;n=0;if(v&1){d=sa()|0;P()|0;m=111;break a}u=c[e+48>>2]|0;v=c[e+52>>2]|0;b:do if((l|0)!=(b|0)){if((l|0)!=(d|0)){switch(a[l>>0]|0){case 46:case 69:{d=l;break b}default:{}}ejb(w,f);a[f>>0]=0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[x+(f<<2)>>2]=0;f=f+1|0}s=e+4|0;i=c[s>>2]|0;c:do if((c[e>>2]|0)!=(i|0)){f=i+-24|0;j=a[f+11>>0]|0;k=j<<24>>24<0;if(k)g=c[i+-20>>2]|0;else g=j&255;if(g){d:do if(!(a[e+60>>0]|0)){if(k){g=c[f>>2]|0;h=c[i+-20>>2]|0}else{g=f;h=j&255}if((a[g+h+-1>>0]|0)==62){if(k){g=c[i+-20>>2]|0;h=c[f>>2]|0}else{g=j&255;h=f}if((a[h+(g+-2)>>0]|0)!=45){if(k){g=c[i+-20>>2]|0;h=c[f>>2]|0}else{g=j&255;h=f}if((a[h+(g+-2)>>0]|0)!=62){n=0;i=V(127,l|0,d|0,e|0)|0;q=n;n=0;if(q&1){m=20;break}if((i|0)==(l|0)){d=b;f=0;break c}q=c[s>>2]|0;g=q;if(((q-(c[e>>2]|0)|0)/24|0)>>>0<2){d=b;f=0;break c}h=g+-24|0;c[t>>2]=c[h>>2];c[t+4>>2]=c[h+4>>2];c[t+8>>2]=c[h+8>>2];f=0;while(1){if((f|0)==3)break;c[h+(f<<2)>>2]=0;f=f+1|0}g=g+-12|0;h=x+11|0;if((a[h>>0]|0)<0){Fsb(c[x>>2]|0,0);c[x+4>>2]=0}else{Fsb(x,0);a[h>>0]=0}Yw(x);c[x>>2]=c[g>>2];c[x+4>>2]=c[g+4>>2];c[x+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}q=a[h>>0]|0;if(!(((q<<24>>24<0?c[x+4>>2]|0:q&255)|0)==0?(n=0,da(4195,t|0,32),q=n,n=0,q&1):0))m=49;do if((m|0)==49){g=c[s>>2]|0;f=0;while(1){if((f|0)==-1)break;q=f+-1|0;J2a(g+(q*24|0)|0);f=q}c[s>>2]=g+-24;q=a[t+11>>0]|0;p=q<<24>>24<0;n=0;W(42,g+-48|0,0,(p?c[t>>2]|0:t)|0,(p?c[t+4>>2]|0:q&255)|0)|0;q=n;n=0;if(q&1)break;Chb(t);g=i;f=(c[s>>2]|0)+-24|0;m=54;break d}while(0);d=sa()|0;P()|0;Chb(t)}else{g=l;m=54}}else{g=l;m=54}}else{g=l;m=54}}else{g=l;m=54}while(0);e:do if((m|0)==54){n=0;da(4195,f|0,40);q=n;n=0;if(!(q&1)){if((g|0)!=(d|0)?(a[g>>0]|0)==118:0){d=g+1|0;g=c[e>>2]|0;f=c[s>>2]|0}else m=58;do if((m|0)==58){m=t+11|0;o=t+4|0;p=r+11|0;q=r+4|0;k=1;f=g;f:while(1){h=f;f=c[s>>2]|0;g=c[e>>2]|0;while(1){i=(f-g|0)/24|0;n=0;l=V(127,h|0,d|0,e|0)|0;j=n;n=0;if(j&1){m=62;break f}f=c[s>>2]|0;g=c[e>>2]|0;j=(f-g|0)/24|0;if((l|0)==(h|0)){m=93;break f}if(j>>>0>i>>>0)break;else h=l}c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[t+(f<<2)>>2]=0;f=f+1|0}f=i;while(1){if(f>>>0>=j>>>0)break;h=a[m>>0]|0;if((h<<24>>24<0?c[o>>2]|0:h&255)|0?(n=0,U(216,t|0,140151)|0,h=n,n=0,h&1):0){m=72;break f}n=0;da(4196,r|0,(c[e>>2]|0)+(f*24|0)|0);h=n;n=0;if(h&1){m=76;break f}h=a[p>>0]|0;g=h<<24>>24<0;n=0;V(124,t|0,(g?c[r>>2]|0:r)|0,(g?c[q>>2]|0:h&255)|0)|0;h=n;n=0;if(h&1){m=77;break f}Chb(r);f=f+1|0}f=i;while(1){if(f>>>0>=j>>>0)break;h=c[s>>2]|0;g=0;while(1){if((g|0)==-1)break;i=g+-1|0;J2a(h+(i*24|0)|0);g=i}c[s>>2]=h+-24;f=f+1|0}h=a[m>>0]|0;f=c[o>>2]|0;g=h&255;if((h<<24>>24<0?f:g)|0){i=c[s>>2]|0;if((c[e>>2]|0)==(i|0)){m=106;break}if(!k){n=0;U(216,i+-24|0,140151)|0;k=n;n=0;if(k&1){m=89;break}h=a[m>>0]|0;g=h&255;i=c[s>>2]|0;f=c[o>>2]|0}k=h<<24>>24<0;n=0;V(124,i+-24|0,(k?c[t>>2]|0:t)|0,(k?f:g)|0)|0;k=n;n=0;if(k&1){m=89;break}else f=0}else f=k;Chb(t);k=f;f=l}if((m|0)==62){d=sa()|0;P()|0;break e}else if((m|0)==72){d=sa()|0;P()|0}else if((m|0)==76){d=sa()|0;P()|0;m=78}else if((m|0)==77){d=sa()|0;P()|0;Chb(r);m=78}else if((m|0)==89){d=sa()|0;P()|0}else if((m|0)==93){d=h;break}else if((m|0)==106){Chb(t);d=b;f=0;break c}Chb(t);break e}while(0);if((g|0)==(f|0)){d=b;f=0;break c}n=0;da(4195,f+-24|0,41);t=n;n=0;if(!(t&1)){if(u&1|0?(n=0,U(216,(c[s>>2]|0)+-24|0,139874)|0,t=n,n=0,t&1):0){m=20;break}if(u&2|0?(n=0,U(216,(c[s>>2]|0)+-24|0,139881)|0,t=n,n=0,t&1):0){m=20;break}if(u&4|0?(n=0,U(216,(c[s>>2]|0)+-24|0,139891)|0,u=n,n=0,u&1):0){m=20;break}switch(v|0){case 1:{n=0;U(216,(c[s>>2]|0)+-24|0,141355)|0;v=n;n=0;if(v&1){m=20;break e}break}case 2:{n=0;U(216,(c[s>>2]|0)+-24|0,141358)|0;v=n;n=0;if(v&1){m=20;break e}break}default:{}}v=a[x+11>>0]|0;u=v<<24>>24<0;n=0;V(124,(c[s>>2]|0)+-24|0,(u?c[x>>2]|0:x)|0,(u?c[x+4>>2]|0:v&255)|0)|0;v=n;n=0;if(!(v&1)){f=1;break c}else m=20}else m=20}else m=20}while(0);if((m|0)==20){d=sa()|0;P()|0}Chb(x);Nqb(c[w>>2]|0,a[w+4>>0]|0);m=111;break a}else{d=b;f=0}}else{d=b;f=0}while(0);Chb(x);Nqb(c[w>>2]|0,a[w+4>>0]|0);if(!f){f=0;m=110;break a}}}else d=b;while(0);f=1;m=110}}while(0);if((m|0)==110){Nqb(c[A>>2]|0,a[A+4>>0]|0);Pwb(c[z>>2]|0,c[z+4>>2]|0);if(f){m=112;break}else{d=b;break}}else if((m|0)==111){Nqb(c[A>>2]|0,a[A+4>>0]|0);Pwb(c[z>>2]|0,c[z+4>>2]|0);Ea(d|0)}}else{d=b;m=112}while(0);yb=y;return d|0}function Oc(a,b){a=a|0;b=b|0;do switch(b|0){case 0:{IWa(a,121374)|0;return}case 1:{IWa(a,122332)|0;return}case 2:{IWa(a,122180)|0;return}case 3:{IWa(a,121985)|0;return}case 4:{IWa(a,121995)|0;return}case 5:{IWa(a,122233)|0;return}case 6:{IWa(a,122243)|0;return}case 7:{IWa(a,121382)|0;return}case 8:{IWa(a,122195)|0;return}case 9:{IWa(a,122506)|0;return}case 10:{IWa(a,122271)|0;return}case 11:{IWa(a,122289)|0;return}case 12:{IWa(a,122279)|0;return}case 13:{IWa(a,122253)|0;return}case 14:{IWa(a,122262)|0;return}case 15:{IWa(a,122005)|0;return}case 16:{IWa(a,122188)|0;return}case 17:{IWa(a,122162)|0;return}case 18:{IWa(a,122171)|0;return}case 19:{IWa(a,122085)|0;return}case 20:{IWa(a,122094)|0;return}case 21:{IWa(a,122067)|0;return}case 22:{IWa(a,122076)|0;return}case 23:{IWa(a,122049)|0;return}case 24:{IWa(a,122058)|0;return}case 25:{IWa(a,122822)|0;return}case 26:{IWa(a,124071)|0;return}case 27:{IWa(a,123907)|0;return}case 28:{IWa(a,123637)|0;return}case 29:{IWa(a,123647)|0;return}case 30:{IWa(a,123960)|0;return}case 31:{IWa(a,123970)|0;return}case 32:{IWa(a,122830)|0;return}case 33:{IWa(a,123922)|0;return}case 34:{IWa(a,124232)|0;return}case 35:{IWa(a,123998)|0;return}case 36:{IWa(a,124016)|0;return}case 37:{IWa(a,124006)|0;return}case 38:{IWa(a,123980)|0;return}case 39:{IWa(a,123989)|0;return}case 40:{IWa(a,123657)|0;return}case 41:{IWa(a,123915)|0;return}case 42:{IWa(a,123889)|0;return}case 43:{IWa(a,123898)|0;return}case 44:{IWa(a,123786)|0;return}case 45:{IWa(a,123795)|0;return}case 46:{IWa(a,123768)|0;return}case 47:{IWa(a,123777)|0;return}case 48:{IWa(a,123750)|0;return}case 49:{IWa(a,123759)|0;return}case 50:{IWa(a,119914)|0;return}case 51:{IWa(a,120193)|0;return}case 52:{IWa(a,120119)|0;return}case 53:{IWa(a,120041)|0;return}case 54:{IWa(a,120013)|0;return}case 55:{IWa(a,120111)|0;return}case 56:{IWa(a,120103)|0;return}case 57:{IWa(a,120049)|0;return}case 58:{IWa(a,120127)|0;return}case 59:{IWa(a,120096)|0;return}case 60:{IWa(a,120080)|0;return}case 61:{IWa(a,120073)|0;return}case 62:{IWa(a,120066)|0;return}case 63:{IWa(a,120458)|0;return}case 64:{IWa(a,120738)|0;return}case 65:{IWa(a,120648)|0;return}case 66:{IWa(a,120570)|0;return}case 67:{IWa(a,120557)|0;return}case 68:{IWa(a,120640)|0;return}case 69:{IWa(a,120632)|0;return}case 70:{IWa(a,120578)|0;return}case 71:{IWa(a,120656)|0;return}case 72:{IWa(a,120625)|0;return}case 73:{IWa(a,120609)|0;return}case 74:{IWa(a,120602)|0;return}case 75:{IWa(a,120595)|0;return}case 76:{IWa(a,124514)|0;return}case 77:{IWa(a,124663)|0;return}case 78:{IWa(a,124631)|0;return}case 79:{IWa(a,124642)|0;return}case 80:{IWa(a,124587)|0;return}case 81:{IWa(a,124598)|0;return}case 82:{IWa(a,124609)|0;return}case 83:{IWa(a,124620)|0;return}case 84:{IWa(a,124565)|0;return}case 85:{IWa(a,124576)|0;return}case 86:{IWa(a,121089)|0;return}case 87:{IWa(a,121238)|0;return}case 88:{IWa(a,121206)|0;return}case 89:{IWa(a,121217)|0;return}case 90:{IWa(a,121162)|0;return}case 91:{IWa(a,121173)|0;return}case 92:{IWa(a,121184)|0;return}case 93:{IWa(a,121195)|0;return}case 94:{IWa(a,121140)|0;return}case 95:{IWa(a,121151)|0;return}case 96:{IWa(a,122554)|0;return}case 97:{IWa(a,122680)|0;return}case 98:{IWa(a,122648)|0;return}case 99:{IWa(a,122659)|0;return}case 100:{IWa(a,122604)|0;return}case 101:{IWa(a,122615)|0;return}case 102:{IWa(a,122626)|0;return}case 103:{IWa(a,122637)|0;return}case 104:{IWa(a,122582)|0;return}case 105:{IWa(a,122593)|0;return}case 106:{IWa(a,120285)|0;return}case 107:{IWa(a,120379)|0;return}case 108:{IWa(a,120340)|0;return}case 109:{IWa(a,120322)|0;return}case 110:{IWa(a,120331)|0;return}case 111:{IWa(a,120313)|0;return}case 112:{IWa(a,120830)|0;return}case 113:{IWa(a,120924)|0;return}case 114:{IWa(a,120885)|0;return}case 115:{IWa(a,120867)|0;return}case 116:{IWa(a,120876)|0;return}case 117:{IWa(a,120858)|0;return}case 118:{IWa(a,124845)|0;return}case 119:{IWa(a,124899)|0;return}case 120:{IWa(a,124918)|0;return}case 121:{IWa(a,124432)|0;return}case 122:{IWa(a,124442)|0;return}case 123:{IWa(a,124463)|0;return}case 124:{IWa(a,124747)|0;return}case 125:{IWa(a,124757)|0;return}case 126:{IWa(a,124778)|0;return}case 127:{IWa(a,124653)|0;return}case 128:{IWa(a,121007)|0;return}case 129:{IWa(a,121017)|0;return}case 130:{IWa(a,121038)|0;return}case 131:{IWa(a,121322)|0;return}case 132:{IWa(a,121332)|0;return}case 133:{IWa(a,121353)|0;return}case 134:{IWa(a,121228)|0;return}case 135:{IWa(a,122514)|0;return}case 136:{IWa(a,122764)|0;return}case 137:{IWa(a,122670)|0;return}case 138:{IWa(a,124240)|0;return}case 139:{IWa(a,124374)|0;return}case 140:{IWa(a,120221)|0;return}case 141:{IWa(a,120440)|0;return}case 142:{IWa(a,120369)|0;return}case 143:{IWa(a,120275)|0;return}case 144:{IWa(a,120359)|0;return}case 145:{IWa(a,120349)|0;return}case 146:{IWa(a,120766)|0;return}case 147:{IWa(a,120985)|0;return}case 148:{IWa(a,120914)|0;return}case 149:{IWa(a,120820)|0;return}case 150:{IWa(a,120904)|0;return}case 151:{IWa(a,120894)|0;return}case 152:{ma(141129,97990,577,131297);break}default:return}while(0)}function Pc(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,o=0,p=0,q=0,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;K=yb;yb=yb+176|0;H=K+160|0;C=K+156|0;M=K+152|0;f=K+148|0;g=K+136|0;h=K+124|0;i=K+120|0;j=K+108|0;l=K+96|0;m=K+92|0;o=K+80|0;p=K+68|0;q=K+64|0;t=K+60|0;u=K+56|0;v=K+52|0;w=K+48|0;x=K+44|0;z=K+32|0;A=K+28|0;D=K+16|0;F=K+12|0;G=K+8|0;J=K+4|0;I=K;Gsb(C,b);jFa(M);c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;E=Zzb(85873)|0;n=0;ea(95,h|0,85873,E|0);E=n;n=0;a:do if(E&1)L=37;else{k=a+8|0;n=0;U(69,h|0,c[k>>2]|0)|0;E=n;n=0;do if(E&1){d=sa()|0;P()|0}else{c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];d=0;while(1){if((d|0)==3)break;c[h+(d<<2)>>2]=0;d=d+1|0}n=0;da(230,f|0,g|0);E=n;n=0;if(E&1){d=sa()|0;P()|0;Chb(g);break}e=c[M>>2]|0;c[e>>2]=c[f>>2];Chb(g);Chb(h);y=e;n=0;E=S(217,120)|0;B=n;n=0;if(B&1){L=37;break a}mT(E);c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;B=Zzb(85884)|0;n=0;ea(95,l|0,85884,B|0);B=n;n=0;if(B&1){L=37;break a}n=0;U(69,l|0,c[k>>2]|0)|0;B=n;n=0;do if(B&1){d=sa()|0;P()|0}else{c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];c[j+8>>2]=c[l+8>>2];d=0;while(1){if((d|0)==3)break;c[l+(d<<2)>>2]=0;d=d+1|0}n=0;da(230,i|0,j|0);B=n;n=0;if(B&1){d=sa()|0;P()|0;Chb(j);break}B=E+8|0;c[B>>2]=c[i>>2];Chb(j);Chb(l);c[E>>2]=c[a>>2];c[E+4>>2]=c[a+4>>2];c[E+40>>2]=c[e>>2];n=0;r=S(217,120)|0;s=n;n=0;if(s&1){L=37;break a}mT(r);c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;s=Zzb(85897)|0;n=0;ea(95,p|0,85897,s|0);s=n;n=0;if(s&1){L=37;break a}n=0;U(69,p|0,c[k>>2]|0)|0;s=n;n=0;do if(s&1){d=sa()|0;P()|0}else{c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];d=0;while(1){if((d|0)==3)break;c[p+(d<<2)>>2]=0;d=d+1|0}n=0;da(230,m|0,o|0);s=n;n=0;if(s&1){d=sa()|0;P()|0;Chb(o);break}s=r+8|0;c[s>>2]=c[m>>2];Chb(o);Chb(p);n=0;p=S(282,b+152|0)|0;o=n;n=0;if(o&1){L=37;break a}c[p+24>>2]=c[B>>2];c[q>>2]=c[a+40>>2];n=0;c[H>>2]=c[q>>2];h=U(70,b|0,H|0)|0;q=n;n=0;if(q&1){L=37;break a}i=c[h+12>>2]|0;j=r+16|0;k=r+20|0;l=r+24|0;m=p+8|0;g=c[h+8>>2]|0;b:while(1){if((g|0)==(i|0))break;o=c[g>>2]|0;c[t>>2]=o;c:do switch(o|0){case 2:{n=0;d=U(152,C|0,(c[k>>2]|0)-(c[j>>2]|0)>>2|0)|0;q=n;n=0;if(q&1){L=36;break b}n=0;da(231,m|0,d|0);q=n;n=0;if(q&1){L=36;break b}n=0;d=U(153,C|0,(c[k>>2]|0)-(c[j>>2]|0)>>2|0)|0;q=n;n=0;if(q&1){L=36;break b}n=0;da(231,m|0,d|0);q=n;n=0;if(q&1){L=36;break b}c[u>>2]=1;d=e+12|0;f=c[d>>2]|0;if(f>>>0>=(c[e+16>>2]|0)>>>0){n=0;da(212,e+8|0,u|0);q=n;n=0;if(q&1){L=36;break b}}else{c[f>>2]=1;c[d>>2]=(c[d>>2]|0)+4}c[v>>2]=1;d=e+12|0;f=c[d>>2]|0;if(f>>>0>=(c[e+16>>2]|0)>>>0){n=0;da(212,e+8|0,v|0);q=n;n=0;if(q&1){L=36;break b}else break c}else{c[f>>2]=1;c[d>>2]=(c[d>>2]|0)+4;break c}}case 3:{d=c[C>>2]|0;n=0;f=V(71,d|0,(c[k>>2]|0)-(c[j>>2]|0)>>2|0,3)|0;q=n;n=0;if(q&1){L=36;break b}n=0;d=V(56,d|0,43,f|0)|0;q=n;n=0;if(q&1){L=36;break b}n=0;da(231,m|0,d|0);q=n;n=0;if(q&1){L=36;break b}c[w>>2]=4;d=e+12|0;f=c[d>>2]|0;if(f>>>0>=(c[e+16>>2]|0)>>>0){n=0;da(212,e+8|0,w|0);q=n;n=0;if(q&1){L=36;break b}else break c}else{c[f>>2]=4;c[d>>2]=(c[d>>2]|0)+4;break c}}default:{n=0;d=V(71,c[C>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)>>2|0,o|0)|0;q=n;n=0;if(q&1){L=36;break b}n=0;da(231,m|0,d|0);q=n;n=0;if(q&1){L=36;break b}d=e+12|0;f=c[d>>2]|0;if((f|0)==(c[e+16>>2]|0)){n=0;da(1451,e+8|0,t|0);q=n;n=0;if(q&1){L=36;break b}else break c}else{c[f>>2]=o;c[d>>2]=(c[d>>2]|0)+4;break c}}}while(0);d=c[k>>2]|0;if((d|0)==(c[l>>2]|0)){n=0;da(1451,j|0,t|0);q=n;n=0;if(q&1){L=36;break}}else{c[d>>2]=o;c[k>>2]=(c[k>>2]|0)+4}g=g+4|0}if((L|0)==36){d=sa()|0;P()|0;L=38;break a}f=h+4|0;d=c[f>>2]|0;switch(d|0){case 2:{c[x>>2]=c[37378];c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;w=Zzb(85908)|0;n=0;ea(95,z|0,85908,w|0);w=n;n=0;if(w&1){L=37;break a}n=0;c[H>>2]=c[x>>2];d=V(83,b|0,H|0,z|0)|0;x=n;n=0;if(x&1){e=sa()|0;P()|0;Chb(z);break a}Chb(z);c[p+4>>2]=1;c[A>>2]=c[d+8>>2];c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;d=c[C>>2]|0;n=0;c[H>>2]=c[A>>2];d=W(14,d|0,H|0,D|0,1)|0;A=n;n=0;if(A&1){e=sa()|0;P()|0;Vob(D);break a}Vob(D);n=0;d=V(84,C|0,p|0,d|0)|0;D=n;n=0;if(D&1){L=37;break a}c[r+44>>2]=d;c[e+4>>2]=1;break}case 3:{c[p+4>>2]=4;n=0;d=V(56,c[C>>2]|0,44,p|0)|0;D=n;n=0;if(D&1){L=37;break a}c[r+44>>2]=d;c[e+4>>2]=4;break}default:{c[p+4>>2]=d;c[r+44>>2]=p;c[e+4>>2]=c[f>>2]}}c[r+12>>2]=c[f>>2];n=0;da(1638,E|0,e|0);D=n;n=0;if(D&1){L=37;break a}c[F>>2]=c[s>>2];c[H>>2]=c[F>>2];if((lEa(b,H)|0)==0?(n=0,da(216,b|0,r|0),F=n,n=0,F&1):0){L=37;break a}c[G>>2]=c[e>>2];c[H>>2]=c[G>>2];do if(!(rDa(b,H)|0)){c[M>>2]=0;c[J>>2]=y;n=0;U(80,b|0,J|0)|0;G=n;n=0;if(G&1){e=sa()|0;P()|0;d=c[J>>2]|0;c[J>>2]=0;if(!d)break a;Xrb(d);RCb(d);break a}else{d=c[J>>2]|0;c[J>>2]=0;if(!d){e=0;break}Xrb(d);RCb(d);e=0;break}}while(0);c[I>>2]=c[B>>2];c[H>>2]=c[I>>2];if((lEa(b,H)|0)==0?(n=0,da(216,b|0,E|0),L=n,n=0,L&1):0){L=37;break a}d=c[s>>2]|0;c[M>>2]=0;if(!e){yb=K;return d|0}Xrb(e);RCb(e);yb=K;return d|0}while(0);Chb(p);e=d;break a}while(0);Chb(l);e=d;break a}while(0);Chb(h);e=d}while(0);if((L|0)==37){d=sa()|0;P()|0;L=38}if((L|0)==38)e=d;d=c[M>>2]|0;c[M>>2]=0;if(!d)Ea(e|0);Xrb(d);RCb(d);Ea(e|0);return 0}function Qc(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,o=0,p=0,q=0,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,Q=0,R=0,S=0,T=0,W=0,X=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,ea=0,fa=0,ga=0,ha=0;W=yb;yb=yb+288|0;j=W+280|0;o=W+272|0;R=W+260|0;ea=W+248|0;aa=W+236|0;T=W+224|0;fa=W+212|0;ga=W+200|0;ha=W+188|0;X=W+176|0;Z=W+164|0;k=W+160|0;l=W+156|0;K=W+144|0;m=W+140|0;L=W+128|0;ba=W+116|0;_=W+104|0;M=W+92|0;p=W+284|0;q=W+88|0;N=W+76|0;r=W+72|0;O=W+60|0;s=W+56|0;t=W+52|0;Q=W+40|0;ca=W+28|0;$=W+16|0;u=W+12|0;S=W;v=b+12|0;if(a[v>>0]&1)BM(IWa(150620,117878)|0);w=IF(b)|0;if(a[v>>0]&1)BM(Ym(IWa(150620,117251)|0,w)|0);Gsb(W+276|0,c[b>>2]|0);x=aa+11|0;y=_+11|0;z=$+11|0;A=aa+4|0;B=_+4|0;C=$+4|0;D=K+4|0;E=K+8|0;F=b+100|0;G=b+104|0;H=b+96|0;I=X+11|0;J=X+4|0;i=0;a:while(1){if(i>>>0>=w>>>0){e=93;break}if(a[v>>0]&1)BM(IWa(150620,117257)|0);g=Yl(b)|0;h=Yl(b)|0;switch(IF(b)|0){case 0:{c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;D8(ea,117893,Zzb(117893)|0);n=0;da(88,aa|0,i|0);f=n;n=0;if(f&1){e=32;break a}f=a[x>>0]|0;e=f<<24>>24<0;n=0;V(43,ea|0,(e?c[aa>>2]|0:aa)|0,(e?c[A>>2]|0:f&255)|0)|0;f=n;n=0;if(f&1){e=33;break a}c[R>>2]=c[ea>>2];c[R+4>>2]=c[ea+4>>2];c[R+8>>2]=c[ea+8>>2];d=0;while(1){if((d|0)==3)break;c[ea+(d<<2)>>2]=0;d=d+1|0}n=0;da(230,o|0,R|0);f=n;n=0;if(f&1){e=34;break a}Chb(R);Chb(aa);Chb(ea);e=IF(b)|0;d=c[b>>2]|0;if(e>>>0>=(c[d+4>>2]|0)-(c[d>>2]|0)>>2>>>0){g5(ha,e);n=0;U(77,ha|0,117902)|0;f=n;n=0;if(f&1){e=37;break a}c[ga>>2]=c[ha>>2];c[ga+4>>2]=c[ha+4>>2];c[ga+8>>2]=c[ha+8>>2];d=0;while(1){if((d|0)==3)break;c[ha+(d<<2)>>2]=0;d=d+1|0}n=0;U(69,ga|0,117926)|0;f=n;n=0;if(f&1){e=38;break a}c[fa>>2]=c[ga>>2];c[fa+4>>2]=c[ga+4>>2];c[fa+8>>2]=c[ga+8>>2];d=0;while(1){if((d|0)==3)break;c[ga+(d<<2)>>2]=0;d=d+1|0}f=c[b>>2]|0;n=0;da(88,X|0,(c[f+4>>2]|0)-(c[f>>2]|0)>>2|0);f=n;n=0;if(f&1){e=39;break a}f=a[I>>0]|0;d=f<<24>>24<0;n=0;V(43,fa|0,(d?c[X>>2]|0:X)|0,(d?c[J>>2]|0:f&255)|0)|0;f=n;n=0;if(f&1){e=40;break a}c[T>>2]=c[fa>>2];c[T+4>>2]=c[fa+4>>2];c[T+8>>2]=c[fa+8>>2];d=0;while(1){if((d|0)==3)break;c[fa+(d<<2)>>2]=0;d=d+1|0}n=0;da(4022,b|0,T|0);f=n;n=0;if(f&1){e=41;break a}Chb(T);Chb(X);Chb(fa);Chb(ga);Chb(ha);d=c[b>>2]|0}d=c[(c[d>>2]|0)+(e<<2)>>2]|0;D$(Z,d+8|0);f=c[d+4>>2]|0;c[l>>2]=c[o>>2];c[K>>2]=0;c[D>>2]=0;c[E>>2]=0;n=0;c[j>>2]=c[l>>2];f=Y(21,j|0,Z|0,f|0,K|0,0)|0;e=n;n=0;if(e&1){e=52;break a}Vob(K);c[k>>2]=f;c[f>>2]=g;c[f+4>>2]=h;c[f+40>>2]=c[d>>2];e=f;n=0;da(216,c[b>>2]|0,f|0);h=n;n=0;if(h&1){e=53;break a}d=c[F>>2]|0;if((d|0)==(c[G>>2]|0)){n=0;da(4026,H|0,k|0);h=n;n=0;if(h&1){e=53;break a}}else{c[d>>2]=e;c[F>>2]=(c[F>>2]|0)+4}Vob(Z);break}case 1:{c[(c[b>>2]|0)+48>>2]=g;c[(c[b>>2]|0)+52>>2]=h;c[ba>>2]=0;c[ba+4>>2]=0;c[ba+8>>2]=0;D8(ba,117930,Zzb(117930)|0);n=0;da(88,_|0,i|0);h=n;n=0;if(h&1){e=64;break a}h=a[y>>0]|0;g=h<<24>>24<0;n=0;V(43,ba|0,(g?c[_>>2]|0:_)|0,(g?c[B>>2]|0:h&255)|0)|0;h=n;n=0;if(h&1){e=65;break a}c[L>>2]=c[ba>>2];c[L+4>>2]=c[ba+4>>2];c[L+8>>2]=c[ba+8>>2];d=0;while(1){if((d|0)==3)break;c[ba+(d<<2)>>2]=0;d=d+1|0}n=0;da(230,m|0,L|0);h=n;n=0;if(h&1){e=66;break a}c[(c[b>>2]|0)+60>>2]=c[m>>2];Chb(L);Chb(_);Chb(ba);if((JF(b)|0)!=-16){c[M>>2]=0;c[M+4>>2]=0;c[M+8>>2]=0;D8(M,117939,Zzb(117939)|0);n=0;da(4022,b|0,M|0);h=n;n=0;if(h&1){e=69;break a}Chb(M)}a[(c[b>>2]|0)+56>>0]=1;h=c[b>>2]|0;j6a(q,-1,0);oD(b,h+64|0,h+68|0,p,c[q>>2]|0);if(a[p>>0]&1){c[N>>2]=0;c[N+4>>2]=0;c[N+8>>2]=0;D8(N,114786,Zzb(114786)|0);n=0;da(4022,b|0,N|0);h=n;n=0;if(h&1){e=73;break a}Chb(N)}break}case 2:{c[(c[b>>2]|0)+84>>2]=g;c[(c[b>>2]|0)+88>>2]=h;f5(O,i);n=0;da(230,r|0,O|0);h=n;n=0;if(h&1){e=76;break a}c[(c[b>>2]|0)+96>>2]=c[r>>2];Chb(O);a[(c[b>>2]|0)+92>>0]=1;h=c[b>>2]|0;j6a(s,-1,0);oD(b,h+100|0,h+104|0,h+120|0,c[s>>2]|0);break}case 3:{c[ca>>2]=0;c[ca+4>>2]=0;c[ca+8>>2]=0;D8(ca,117974,Zzb(117974)|0);n=0;da(88,$|0,i|0);f=n;n=0;if(f&1){e=84;break a}f=a[z>>0]|0;e=f<<24>>24<0;n=0;V(43,ca|0,(e?c[$>>2]|0:$)|0,(e?c[C>>2]|0:f&255)|0)|0;f=n;n=0;if(f&1){e=85;break a}c[Q>>2]=c[ca>>2];c[Q+4>>2]=c[ca+4>>2];c[Q+8>>2]=c[ca+8>>2];d=0;while(1){if((d|0)==3)break;c[ca+(d<<2)>>2]=0;d=d+1|0}n=0;da(230,t|0,Q|0);f=n;n=0;if(f&1){e=86;break a}Chb(Q);Chb($);Chb(ca);e=oH(b)|0;f=IF(b)|0;c[u>>2]=c[t>>2];c[j>>2]=c[u>>2];f=Gza(j,e,0,(f|0)==0&1)|0;c[f>>2]=g;c[f+4>>2]=h;pq(c[b>>2]|0,f);break}default:{c[S>>2]=0;c[S+4>>2]=0;c[S+8>>2]=0;D8(S,117983,Zzb(117983)|0);n=0;da(4022,b|0,S|0);h=n;n=0;if(h&1){e=92;break a}Chb(S)}}i=i+1|0}switch(e|0){case 32:{d=sa()|0;P()|0;e=36;break}case 33:{d=sa()|0;P()|0;e=35;break}case 34:{d=sa()|0;P()|0;Chb(R);e=35;break}case 37:{d=sa()|0;P()|0;break}case 38:{d=sa()|0;P()|0;e=44;break}case 39:{d=sa()|0;P()|0;e=43;break}case 40:{d=sa()|0;P()|0;e=42;break}case 41:{d=sa()|0;P()|0;Chb(T);e=42;break}case 52:{d=sa()|0;P()|0;Vob(K);e=54;break}case 53:{d=sa()|0;P()|0;e=54;break}case 64:{d=sa()|0;P()|0;e=68;break}case 65:{d=sa()|0;P()|0;e=67;break}case 66:{d=sa()|0;P()|0;Chb(L);e=67;break}case 69:{ha=sa()|0;P()|0;Chb(M);Ea(ha|0)}case 73:{ha=sa()|0;P()|0;Chb(N);Ea(ha|0)}case 76:{ha=sa()|0;P()|0;Chb(O);Ea(ha|0)}case 84:{d=sa()|0;P()|0;e=88;break}case 85:{d=sa()|0;P()|0;e=87;break}case 86:{d=sa()|0;P()|0;Chb(Q);e=87;break}case 92:{ha=sa()|0;P()|0;Chb(S);Ea(ha|0)}case 93:{yb=W;return}}if((e|0)==35){Chb(aa);e=36}else if((e|0)==42){Chb(X);e=43}else if((e|0)==54){Vob(Z);ha=d;Ea(ha|0)}else if((e|0)==67){Chb(_);e=68}else if((e|0)==87){Chb($);e=88}if((e|0)==36){Chb(ea);ha=d;Ea(ha|0)}else if((e|0)==43){Chb(fa);e=44}else if((e|0)==68){Chb(ba);ha=d;Ea(ha|0)}else if((e|0)==88){Chb(ca);ha=d;Ea(ha|0)}if((e|0)==44)Chb(ga);Chb(ha);ha=d;Ea(ha|0)}function Rc(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,o=0,p=0,q=0;p=yb;yb=yb+32|0;o=p+12|0;m=p;f=d;a:do if((f-b|0)>2){if((a[b>>0]|0)==103){g=(a[b+1>>0]|0)==115;i=g;g=g?b+2|0:b}else{i=0;g=b}h=Sl(g,d,e)|0;if((h|0)!=(g|0)){if(!i){b=h;break}f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break;IGa(f+-24|0,0,140001)|0;b=h;break}if(((f-g|0)>2?(a[g>>0]|0)==115:0)?(a[g+1>>0]|0)==114:0){h=g+2|0;b:do if((a[h>>0]|0)==78){l=g+3|0;f=ti(l,d,e)|0;if((f|0)==(l|0)|(f|0)==(d|0))break a;h=$f(f,d,e)|0;l=e+4|0;do if((h|0)==(f|0))k=e;else{f=c[l>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(o,f+-24|0);g=c[l>>2]|0;f=0;while(1){if((f|0)==-1)break;k=f+-1|0;J2a(g+(k*24|0)|0);f=k}c[l>>2]=g+-24;k=a[o+11>>0]|0;j=k<<24>>24<0;n=0;V(124,g+-48|0,(j?c[o>>2]|0:o)|0,(j?c[o+4>>2]|0:k&255)|0)|0;k=n;n=0;if(k&1){b=sa()|0;P()|0;Chb(o);break b}if((h|0)!=(d|0)){Chb(o);f=h;k=e;break}g=c[l>>2]|0;f=0;while(1){if((f|0)==-1)break;m=f+-1|0;J2a(g+(m*24|0)|0);f=m}c[l>>2]=g+-24;Chb(o);break a}while(0);i=m+11|0;j=m+4|0;while(1){if((a[f>>0]|0)==69){g=43;break}h=E1a(f,d,e)|0;if((h|0)==(f|0)|(h|0)==(d|0))break a;f=c[l>>2]|0;if(((f-(c[k>>2]|0)|0)/24|0)>>>0<2)break a;d6(o,f+-24|0);g=c[l>>2]|0;f=0;while(1){if((f|0)==-1)break;q=f+-1|0;J2a(g+(q*24|0)|0);f=q}c[l>>2]=g+-24;n=0;V(128,o|0,0,140001)|0;q=n;n=0;if(q&1){g=40;break}c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];f=0;while(1){if((f|0)==3)break;c[o+(f<<2)>>2]=0;f=f+1|0}q=a[i>>0]|0;g=q<<24>>24<0;n=0;V(124,(c[l>>2]|0)+-24|0,(g?c[m>>2]|0:m)|0,(g?c[j>>2]|0:q&255)|0)|0;q=n;n=0;if(q&1){g=41;break}Chb(m);Chb(o);f=h}if((g|0)==40){b=sa()|0;P()|0}else if((g|0)==41){b=sa()|0;P()|0;Chb(m)}else if((g|0)==43){q=f+1|0;g=Sl(q,d,e)|0;if((g|0)==(q|0)){g=c[l>>2]|0;if((c[e>>2]|0)==(g|0))break a;f=0;while(1){if((f|0)==-1)break;q=f+-1|0;J2a(g+(q*24|0)|0);f=q}c[l>>2]=g+-24;break a}f=c[l>>2]|0;if(((f-(c[k>>2]|0)|0)/24|0)>>>0<2)break a;d6(o,f+-24|0);f=c[l>>2]|0;b=0;while(1){if((b|0)==-1)break;q=b+-1|0;J2a(f+(q*24|0)|0);b=q}c[l>>2]=f+-24;n=0;V(128,o|0,0,140001)|0;q=n;n=0;do if(!(q&1)){c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}q=a[m+11>>0]|0;e=q<<24>>24<0;n=0;V(124,(c[l>>2]|0)+-24|0,(e?c[m>>2]|0:m)|0,(e?c[m+4>>2]|0:q&255)|0)|0;q=n;n=0;if(q&1){b=sa()|0;P()|0;Chb(m);break}else{Chb(m);Chb(o);b=g;break a}}else{b=sa()|0;P()|0}while(0);Chb(o);break}Chb(o)}else{f=ti(h,d,e)|0;if((f|0)!=(h|0)){i=$f(f,d,e)|0;do if((i|0)!=(f|0)){h=e+4|0;f=c[h>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(o,f+-24|0);g=c[h>>2]|0;f=0;while(1){if((f|0)==-1)break;q=f+-1|0;J2a(g+(q*24|0)|0);f=q}c[h>>2]=g+-24;q=a[o+11>>0]|0;l=q<<24>>24<0;n=0;V(124,g+-48|0,(l?c[o>>2]|0:o)|0,(l?c[o+4>>2]|0:q&255)|0)|0;q=n;n=0;if(q&1){b=sa()|0;P()|0;Chb(o);break b}else{Chb(o);f=i;break}}while(0);h=Sl(f,d,e)|0;if((h|0)==(f|0)){g=e+4|0;h=c[g>>2]|0;if((c[e>>2]|0)==(h|0))break a;f=0;while(1){if((f|0)==-1)break;q=f+-1|0;J2a(h+(q*24|0)|0);f=q}c[g>>2]=h+-24;break a}g=e+4|0;f=c[g>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(o,f+-24|0);f=c[g>>2]|0;b=0;while(1){if((b|0)==-1)break;q=b+-1|0;J2a(f+(q*24|0)|0);b=q}c[g>>2]=f+-24;n=0;V(128,o|0,0,140001)|0;q=n;n=0;do if(!(q&1)){c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}q=a[m+11>>0]|0;e=q<<24>>24<0;n=0;V(124,(c[g>>2]|0)+-24|0,(e?c[m>>2]|0:m)|0,(e?c[m+4>>2]|0:q&255)|0)|0;q=n;n=0;if(q&1){b=sa()|0;P()|0;Chb(m);break}else{Chb(m);Chb(o);b=h;break a}}else{b=sa()|0;P()|0}while(0);Chb(o);break}j=E1a(h,d,e)|0;if((j|0)==(h|0)|(j|0)==(d|0))break a;if(i){f=e+4|0;g=c[f>>2]|0;if((c[e>>2]|0)==(g|0))break a;IGa(g+-24|0,0,140001)|0;l=f}else l=e+4|0;i=m+11|0;k=m+4|0;f=j;while(1){if((a[f>>0]|0)==69){g=111;break}h=E1a(f,d,e)|0;if((h|0)==(f|0)|(h|0)==(d|0))break a;f=c[l>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(o,f+-24|0);g=c[l>>2]|0;f=0;while(1){if((f|0)==-1)break;q=f+-1|0;J2a(g+(q*24|0)|0);f=q}c[l>>2]=g+-24;n=0;V(128,o|0,0,140001)|0;q=n;n=0;if(q&1){g=108;break}c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];f=0;while(1){if((f|0)==3)break;c[o+(f<<2)>>2]=0;f=f+1|0}q=a[i>>0]|0;j=q<<24>>24<0;n=0;V(124,(c[l>>2]|0)+-24|0,(j?c[m>>2]|0:m)|0,(j?c[k>>2]|0:q&255)|0)|0;q=n;n=0;if(q&1){g=109;break}Chb(m);Chb(o);f=h}if((g|0)==108){b=sa()|0;P()|0}else if((g|0)==109){b=sa()|0;P()|0;Chb(m)}else if((g|0)==111){q=f+1|0;g=Sl(q,d,e)|0;if((g|0)==(q|0)){g=c[l>>2]|0;if((c[e>>2]|0)==(g|0))break a;f=0;while(1){if((f|0)==-1)break;q=f+-1|0;J2a(g+(q*24|0)|0);f=q}c[l>>2]=g+-24;break a}f=c[l>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(o,f+-24|0);f=c[l>>2]|0;b=0;while(1){if((b|0)==-1)break;q=b+-1|0;J2a(f+(q*24|0)|0);b=q}c[l>>2]=f+-24;n=0;V(128,o|0,0,140001)|0;q=n;n=0;do if(!(q&1)){c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}q=a[m+11>>0]|0;e=q<<24>>24<0;n=0;V(124,(c[l>>2]|0)+-24|0,(e?c[m>>2]|0:m)|0,(e?c[m+4>>2]|0:q&255)|0)|0;q=n;n=0;if(q&1){b=sa()|0;P()|0;Chb(m);break}else{Chb(m);Chb(o);b=g;break a}}else{b=sa()|0;P()|0}while(0);Chb(o);break}Chb(o)}while(0);Ea(b|0)}}while(0);yb=p;return b|0}function Sc(e,f,i){e=e|0;f=f|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=yb;yb=yb+288|0;G=L+264|0;H=L;I=L+260|0;J=L+272|0;j=a[f>>0]|0;a:do if(j<<24>>24){y=e+4|0;z=e+100|0;A=e+108|0;B=e+8|0;C=H+10|0;D=H+33|0;E=H+46|0;F=H+94|0;x=G+4|0;m=f;u=0;f=0;k=0;l=j;j=0;b:while(1){c:do if(!(Cxb(l&255)|0)){l=l<<24>>24==37;d:do if(l){p=m+1|0;n=a[p>>0]|0;e:do switch(n<<24>>24){case 37:break d;case 42:{w=0;m=m+2|0;break}default:{l=n&255;if(rCb(l)|0?(a[m+2>>0]|0)==36:0){w=Uva(i,l+-48|0)|0;m=m+3|0;break e}m=(c[i>>2]|0)+(4-1)&~(4-1);w=c[m>>2]|0;c[i>>2]=m+4;m=p}}while(0);l=a[m>>0]|0;if(!(rCb(l&255)|0)){n=0;r=m;p=l}else{n=0;do{n=(n*10|0)+-48+(l&255)|0;m=m+1|0;l=a[m>>0]|0}while((rCb(l&255)|0)!=0);r=m;p=l}q=r+1|0;if(p<<24>>24==109){l=(w|0)!=0&1;k=0;m=q;r=r+2|0;p=a[q>>0]|0;j=0}else{l=0;m=r;r=q}switch(p<<24>>24){case 104:{v=(a[r>>0]|0)==104;p=v?-2:-1;m=v?m+2|0:r;break}case 108:{v=(a[r>>0]|0)==108;p=v?3:1;m=v?m+2|0:r;break}case 106:{p=3;m=r;break}case 116:case 122:{p=1;m=r;break}case 76:{p=2;m=r;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{p=0;break}default:{K=141;break b}}s=d[m>>0]|0;t=(s&47|0)==3;s=t?s|32:s;t=t?1:p;r=s&255;switch(r<<24>>24){case 99:{n=(n|0)>1?n:1;break}case 91:break;case 110:{W9(w,t,u,((u|0)<0)<<31>>31);n=u;break c}default:{HFa(e,0);do{p=c[y>>2]|0;if(p>>>0<(c[z>>2]|0)>>>0){c[y>>2]=p+1;p=d[p>>0]|0}else p=nI(e)|0}while((Cxb(p)|0)!=0);if(!(c[z>>2]|0))p=c[y>>2]|0;else{p=(c[y>>2]|0)+-1|0;c[y>>2]=p}u=(c[A>>2]|0)+u+p-(c[B>>2]|0)|0}}HFa(e,n);q=c[y>>2]|0;p=c[z>>2]|0;if(q>>>0

>>0)c[y>>2]=q+1;else{if((nI(e)|0)<0){K=141;break b}p=c[z>>2]|0}if(p|0)c[y>>2]=(c[y>>2]|0)+-1;f:do switch(r<<24>>24){case 91:case 99:case 115:{v=(s|0)==99;g:do if((s|16|0)==115){LL(H|0,-1,257)|0;a[H>>0]=0;if((s|0)==115){a[D>>0]=0;b[C>>1]=0;b[C+2>>1]=0;a[C+4>>0]=0}}else{s=m+1|0;r=(a[s>>0]|0)==94;p=r&1;m=r?m+2|0:s;LL(H|0,p|0,257)|0;a[H>>0]=0;switch(a[m>>0]|0){case 45:{r=(p^1)&255;a[E>>0]=r;m=m+1|0;break}case 93:{r=(p^1)&255;a[F>>0]=r;m=m+1|0;break}default:r=(p^1)&255}while(1){p=a[m>>0]|0;h:do switch(p<<24>>24){case 0:{K=141;break b}case 93:break g;case 45:{q=m+1|0;p=a[q>>0]|0;switch(p<<24>>24){case 93:case 0:{p=45;break h}default:{}}m=a[m+-1>>0]|0;if((m&255)<(p&255)){m=m&255;do{m=m+1|0;a[H+m>>0]=r;p=a[q>>0]|0}while(m>>>0<(p&255)>>>0);m=q}else m=q;break}default:{}}while(0);a[H+((p&255)+1)>>0]=r;m=m+1|0}}while(0);p=v?n+1|0:31;s=(t|0)==1;t=(l|0)!=0;i:do if(s){if(t){j=qc(p<<2)|0;if(!j){k=0;j=0;K=141;break b}}else j=w;c[G>>2]=0;c[x>>2]=0;r=p;k=0;j:while(1){q=(j|0)==0;do{k:while(1){p=c[y>>2]|0;if(p>>>0<(c[z>>2]|0)>>>0){c[y>>2]=p+1;p=d[p>>0]|0}else p=nI(e)|0;if(!(a[H+(p+1)>>0]|0))break j;a[J>>0]=p;switch(Ku(I,J,1,G)|0){case -1:{k=0;K=141;break b}case -2:break;default:break k}}if(!q){c[j+(k<<2)>>2]=c[I>>2];k=k+1|0}}while(!(t&(k|0)==(r|0)));k=r<<1|1;p=F7(j,k<<2)|0;if(!p){k=0;K=141;break b}else{q=r;r=k;j=p;k=q}}if(!(rob(G)|0)){k=0;K=141;break b}else{r=k;k=0;q=j}}else{if(t){k=qc(p)|0;if(!k){k=0;j=0;K=141;break b}q=p;j=0;while(1){do{p=c[y>>2]|0;if(p>>>0<(c[z>>2]|0)>>>0){c[y>>2]=p+1;p=d[p>>0]|0}else p=nI(e)|0;if(!(a[H+(p+1)>>0]|0)){r=j;q=0;j=0;break i}a[k+j>>0]=p;j=j+1|0}while((j|0)!=(q|0));j=q<<1|1;p=F7(k,j)|0;if(!p){j=0;K=141;break b}else{r=q;q=j;k=p;j=r}}}if(!w)while(1){j=c[y>>2]|0;if(j>>>0<(c[z>>2]|0)>>>0){c[y>>2]=j+1;j=d[j>>0]|0}else j=nI(e)|0;if(!(a[H+(j+1)>>0]|0)){r=0;k=0;q=0;j=0;break i}}k=0;while(1){j=c[y>>2]|0;if(j>>>0<(c[z>>2]|0)>>>0){c[y>>2]=j+1;j=d[j>>0]|0}else j=nI(e)|0;if(!(a[H+(j+1)>>0]|0)){r=k;k=w;q=0;j=0;break i}a[w+k>>0]=j;k=k+1|0}}while(0);if(!(c[z>>2]|0))p=c[y>>2]|0;else{p=(c[y>>2]|0)+-1|0;c[y>>2]=p}p=p-(c[B>>2]|0)+(c[A>>2]|0)|0;if(!p)break b;if(!((p|0)==(n|0)|v^1))break b;do if(t)if(s){c[w>>2]=q;break}else{c[w>>2]=k;break}while(0);if(!v){if(q|0)c[q+(r<<2)>>2]=0;if(!k){k=0;break f}a[k+r>>0]=0}break}case 120:case 88:case 112:{n=16;K=129;break}case 111:{n=8;K=129;break}case 117:case 100:{n=10;K=129;break}case 105:{n=0;K=129;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{o=+Mi(e,t,0);if((c[A>>2]|0)==((c[B>>2]|0)-(c[y>>2]|0)|0))break b;if(w)switch(t|0){case 0:{g[w>>2]=o;break f}case 1:{h[w>>3]=o;break f}case 2:{h[w>>3]=o;break f}default:break f}break}default:{}}while(0);do if((K|0)==129){K=0;n=Yf(e,n,0,-1,-1)|0;p=P()|0;if((c[A>>2]|0)==((c[B>>2]|0)-(c[y>>2]|0)|0))break b;if((w|0)!=0&(s|0)==112){c[w>>2]=n;break}else{W9(w,t,n,p);break}}while(0);f=f+((w|0)!=0&1)|0;n=(c[A>>2]|0)+u+(c[y>>2]|0)-(c[B>>2]|0)|0;break c}while(0);m=m+(l&1)|0;HFa(e,0);l=c[y>>2]|0;if(l>>>0<(c[z>>2]|0)>>>0){c[y>>2]=l+1;l=d[l>>0]|0}else l=nI(e)|0;if((l|0)!=(d[m>>0]|0)){K=21;break b}n=u+1|0}else{while(1){l=m+1|0;if(!(Cxb(d[l>>0]|0)|0))break;else m=l}HFa(e,0);do{l=c[y>>2]|0;if(l>>>0<(c[z>>2]|0)>>>0){c[y>>2]=l+1;l=d[l>>0]|0}else l=nI(e)|0}while((Cxb(l)|0)!=0);if(!(c[z>>2]|0))l=c[y>>2]|0;else{l=(c[y>>2]|0)+-1|0;c[y>>2]=l}n=(c[A>>2]|0)+u+l-(c[B>>2]|0)|0}while(0);m=m+1|0;l=a[m>>0]|0;if(!(l<<24>>24))break a;else u=n}if((K|0)==21){if(c[z>>2]|0)c[y>>2]=(c[y>>2]|0)+-1;if((f|0)!=0|(l|0)>-1)break;else{l=0;f=k;K=142}}else if((K|0)==141)if(!f){f=k;K=142}if((K|0)==142){k=f;f=-1}if(l){wg(k);wg(j)}}else f=0;while(0);yb=L;return f|0}function Tc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;e=c[d>>2]|0;c[f>>2]=e;e=c[e>>2]|0;if(a[b+104>>0]&1){if(!(VBb(e)|0)){md(b,d);yb=g;return}b=b+16|0;IW(b,1144,d);e=(Tfb(c[f>>2]|0)|0)+16|0;if(c[e>>2]|0){IW(b,1143,(Tfb(c[f>>2]|0)|0)+16|0);IW(b,1145,d)}IW(b,1143,(Tfb(c[f>>2]|0)|0)+12|0);IW(b,1146,d);IW(b,1143,(Tfb(c[f>>2]|0)|0)+8|0);yb=g;return}do switch(e|0){case 1:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);slb(c[f>>2]|0)|0;e1(e,c[f>>2]|0,d,0);yb=g;return}case 2:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 3:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 4:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 5:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 6:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);slb(c[f>>2]|0)|0;e1(e,c[f>>2]|0,d,0);yb=g;return}case 7:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 8:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);slb(c[f>>2]|0)|0;e1(e,c[f>>2]|0,d,0);yb=g;return}case 9:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 10:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 11:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 12:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 13:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 14:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 15:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 16:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 17:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 18:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 19:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 20:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 21:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 36:{ma(141129,79048,270,134810);break}case 24:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 23:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 25:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 26:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 27:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 28:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 29:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 30:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 31:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 32:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 33:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 34:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 35:{d=O8(b+92|0,f)|0;d=c[d>>2]|0;e=b+44|0;ZHa(e,c[f>>2]|0);gub(c[f>>2]|0);e1(e,c[f>>2]|0,d,0);yb=g;return}case 0:{ma(141129,79048,269,134810);break}default:{yb=g;return}}while(0)}function Uc(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=yb;yb=yb+112|0;w=t+88|0;u=t+76|0;v=t+64|0;s=t+52|0;p=t+16|0;q=t;r=t+40|0;h=d;a:do if((h-b|0)>3){f=a[b>>0]|0;if(f<<24>>24==103){o=(a[b+1>>0]|0)==115;f=o?b+2|0:b;g=f;f=a[f>>0]|0}else{o=0;g=b}if(f<<24>>24==110){f=a[g+1>>0]|0;switch(f<<24>>24){case 97:case 119:break;default:{f=b;break a}}m=f<<24>>24==97;f=g+2|0;b:do if((f|0)!=(d|0)){l=0;while(1){if((a[f>>0]|0)==95)break;g=ac(f,d,e)|0;if((g|0)==(f|0)|(g|0)==(d|0))break b;else{l=1;f=g}}k=f+1|0;g=cc(k,d,e)|0;if(!((g|0)==(k|0)|(g|0)==(d|0))){f=a[g>>0]|0;c:do if(!((h-g|0)>2&f<<24>>24==112))if(f<<24>>24==69)k=0;else break b;else{if((a[g+1>>0]|0)!=105)break b;f=g+2|0;while(1){if((a[f>>0]|0)==69){k=1;g=f;break c}k=f;f=ac(f,d,e)|0;if((f|0)==(k|0)|(f|0)==(d|0))break b}}while(0);c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[w+(f<<2)>>2]=0;f=f+1|0}do if(k){d=e+4|0;f=c[d>>2]|0;if((c[e>>2]|0)==(f|0)){f=b;g=1;h=102}else{n=0;da(4196,u|0,f+-24|0);j=n;n=0;if(j&1){f=sa()|0;P()|0;h=107;break}f=w+11|0;if((a[f>>0]|0)<0){Fsb(c[w>>2]|0,0);c[w+4>>2]=0}else{Fsb(w,0);a[f>>0]=0}Yw(w);c[w>>2]=c[u>>2];c[w+4>>2]=c[u+4>>2];c[w+8>>2]=c[u+8>>2];f=0;while(1){if((f|0)==3)break;c[u+(f<<2)>>2]=0;f=f+1|0}Chb(u);h=c[d>>2]|0;f=0;while(1){if((f|0)==-1)break;j=f+-1|0;J2a(h+(j*24|0)|0);f=j}f=h+-24|0;c[d>>2]=f;j=e;h=35}}else{f=e+4|0;d=f;j=e;f=c[f>>2]|0;h=35}while(0);d:do if((h|0)==35)if((c[j>>2]|0)==(f|0)){f=b;g=1;h=102}else{n=0;da(4196,u|0,f+-24|0);i=n;n=0;do if(!(i&1)){i=c[d>>2]|0;f=0;while(1){if((f|0)==-1)break;h=f+-1|0;J2a(i+(h*24|0)|0);f=h}h=i+-24|0;c[d>>2]=h;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[v+(f<<2)>>2]=0;f=f+1|0}do if(l)if((c[j>>2]|0)==(h|0)){f=b;g=1;h=101}else{n=0;da(4196,s|0,i+-48|0);j=n;n=0;if(j&1){f=sa()|0;P()|0;h=105;break}f=v+11|0;if((a[f>>0]|0)<0){Fsb(c[v>>2]|0,0);c[v+4>>2]=0}else{Fsb(v,0);a[f>>0]=0}Yw(v);c[v>>2]=c[s>>2];c[v+4>>2]=c[s+4>>2];c[v+8>>2]=c[s+8>>2];f=0;while(1){if((f|0)==3)break;c[s+(f<<2)>>2]=0;f=f+1|0}Chb(s);h=c[d>>2]|0;f=0;while(1){if((f|0)==-1)break;j=f+-1|0;J2a(h+(j*24|0)|0);f=j}c[d>>2]=h+-24;h=58}else h=58;while(0);e:do if((h|0)==58){c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[s+(f<<2)>>2]=0;f=f+1|0}if(o?(n=0,da(4204,s|0,140001),o=n,n=0,o&1):0)h=63;else h=64;f:do if((h|0)==64){if(m){n=0;U(216,s|0,140211)|0;o=n;n=0;if(o&1){h=63;break}}else{n=0;U(216,s|0,139961)|0;o=n;n=0;if(o&1){h=63;break}}g:do if(l){n=0;ea(218,q|0,139929,v|0);o=n;n=0;if(o&1){f=sa()|0;P()|0}else{n=0;U(216,q|0,140215)|0;o=n;n=0;do if(!(o&1)){c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];f=0;while(1){if((f|0)==3)break;c[q+(f<<2)>>2]=0;f=f+1|0}o=a[p+11>>0]|0;m=o<<24>>24<0;n=0;V(124,s|0,(m?c[p>>2]|0:p)|0,(m?c[p+4>>2]|0:o&255)|0)|0;o=n;n=0;if(o&1){f=sa()|0;P()|0;Chb(p);break}else{Chb(p);Chb(q);break g}}else{f=sa()|0;P()|0}while(0);Chb(q)}break f}while(0);o=a[u+11>>0]|0;m=o<<24>>24<0;n=0;V(124,s|0,(m?c[u>>2]|0:u)|0,(m?c[u+4>>2]|0:o&255)|0)|0;o=n;n=0;if(o&1)h=63;else{h:do if(k){n=0;ea(218,q|0,139924,w|0);o=n;n=0;if(o&1){f=sa()|0;P()|0}else{n=0;U(216,q|0,139927)|0;o=n;n=0;do if(!(o&1)){c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];f=0;while(1){if((f|0)==3)break;c[q+(f<<2)>>2]=0;f=f+1|0}o=a[p+11>>0]|0;m=o<<24>>24<0;n=0;V(124,s|0,(m?c[p>>2]|0:p)|0,(m?c[p+4>>2]|0:o&255)|0)|0;o=n;n=0;if(o&1){f=sa()|0;P()|0;Chb(p);break}else{Chb(p);Chb(q);break h}}else{f=sa()|0;P()|0}while(0);Chb(q)}break f}while(0);c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];f=0;while(1){if((f|0)==3)break;c[s+(f<<2)>>2]=0;f=f+1|0}X6(p,r);f=c[d>>2]|0;do if(f>>>0<(c[e+8>>2]|0)>>>0){I6(f,p);c[d>>2]=(c[d>>2]|0)+24}else{n=0;da(4198,e|0,p|0);q=n;n=0;if(!(q&1))break;f=sa()|0;P()|0;J2a(p);Chb(r);break f}while(0);J2a(p);Chb(r);Chb(s);f=g+1|0;g=0;h=101;break e}}while(0);if((h|0)==63){f=sa()|0;P()|0}Chb(s);h=105}while(0);if((h|0)==101){Chb(v);Chb(u);h=102;break d}else if((h|0)==105){Chb(v);Chb(u);break}}else{f=sa()|0;P()|0}while(0);h=107}while(0);if((h|0)==102){Chb(w);if(!g)break a;else break}else if((h|0)==107){Chb(w);Ea(f|0)}}}while(0);f=b}else f=b}else f=b;while(0);yb=t;return f|0}function Vc(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,T=0,W=0,X=0,Y=0;M=yb;yb=yb+400|0;y=M+396|0;A=M+384|0;X=M+372|0;Y=M+280|0;W=M+188|0;R=M+176|0;T=M+156|0;B=M+144|0;x=M+140|0;Q=M+128|0;z=M+124|0;D=M+120|0;E=M+116|0;N=M+24|0;L=M+12|0;F=M+8|0;G=M+4|0;H=M;c[X>>2]=0;J=X+4|0;c[J>>2]=0;K=X+8|0;c[K>>2]=0;C=b+52|0;w=pob(c[C>>2]|0)|0;n=0;ea(130,Y|0,w|0,0);w=n;n=0;if(w&1){Y=sa()|0;P()|0;Vob(X);Ea(Y|0)}w=pob(c[C>>2]|0)|0;n=0;ea(130,W|0,w|0,d|0);w=n;n=0;if(w&1){e=sa()|0;P()|0}else{w=Icb(WCb(c[b+32>>2]|0)|0)|0;n=0;da(1793,R|0,w|0);w=n;n=0;if(w&1){e=sa()|0;P()|0}else{f=c[R>>2]|0;e=(c[R+4>>2]|0)-f>>2;while(1){if((e|0)<=0)break;w=f;c[w>>2]=0;e=e+-1|0;f=w+4|0}r=T+4|0;s=T+12|0;t=T+16|0;c[T>>2]=0;c[T+4>>2]=0;c[T+8>>2]=0;c[T+12>>2]=0;g[t>>2]=1.0;n=0;da(1794,B|0,d|0);w=n;n=0;do if(w&1){e=sa()|0;P()|0}else{u=c[B+4>>2]|0;v=T+8|0;e=0;f=c[B>>2]|0;a:while(1){w=f;if((u|0)==(w|0)){O=54;break}q=c[f>>2]|0;c[x>>2]=q;o=q;l=(c[R>>2]|0)+(c[o+8>>2]<<2)|0;c[l>>2]=(c[l>>2]|0)+1;c[y>>2]=q;q=pH(y,4)|0;l=c[r>>2]|0;p=(l|0)==0;b:do if(!p){i=l+-1|0;m=(l&i|0)==0;if(!m)if(q>>>0>>0)e=q;else e=(q>>>0)%(l>>>0)|0;else e=q&i;f=c[(c[T>>2]|0)+(e<<2)>>2]|0;if(!f)O=26;else while(1){f=c[f>>2]|0;if(!f){O=26;break b}h=c[f+4>>2]|0;if((h|0)!=(q|0)){if(!m){if(h>>>0>=l>>>0)h=(h>>>0)%(l>>>0)|0}else h=h&i;if((h|0)!=(e|0)){O=26;break b}}if((c[f+8>>2]|0)==(o|0))break b}}else O=26;while(0);if((O|0)==26){O=0;n=0;fa(99,A|0,T|0,q|0,x|0);o=n;n=0;if(o&1){O=52;break}j=+(((c[s>>2]|0)+1|0)>>>0);k=+g[t>>2];if(k*+(l>>>0)>>0>2){f=(l&l+-1|0)==0;O=31}else{f=0;O=31}}else if(p){f=0;e=0;O=31}do if((O|0)==31){O=0;p=e|(f^1)&1;o=~~+I(+(j/k))>>>0;n=0;da(434,T|0,(p>>>0>>0?o:p)|0);p=n;n=0;if(p&1){O=36;break a}e=c[r>>2]|0;f=e+-1|0;if(!(e&f)){l=e;e=q&f;break}if(q>>>0>>0){l=e;e=q}else{l=e;e=(q>>>0)%(e>>>0)|0}}while(0);f=c[(c[T>>2]|0)+(e<<2)>>2]|0;if(!f){f=c[A>>2]|0;c[f>>2]=c[v>>2];i=f;c[v>>2]=i;c[(c[T>>2]|0)+(e<<2)>>2]=v;if(c[f>>2]|0){f=c[(c[f>>2]|0)+4>>2]|0;h=l+-1|0;if(l&h){if(f>>>0>=l>>>0)f=(f>>>0)%(l>>>0)|0}else f=f&h;c[(c[T>>2]|0)+(f<<2)>>2]=i}}else{q=c[A>>2]|0;c[q>>2]=c[f>>2];c[f>>2]=q}c[s>>2]=(c[s>>2]|0)+1;c[A>>2]=0}f=w+4|0}if((O|0)==36){e=sa()|0;P()|0;f=c[A>>2]|0;c[A>>2]=0;if(f)RCb(f)}else if((O|0)==52){e=sa()|0;P()|0}else if((O|0)==54){Htb(B);c[Q>>2]=0;s=Q+4|0;c[s>>2]=0;t=Q+8|0;c[t>>2]=0;c[z>>2]=d+12;n=0;da(1795,Q|0,z|0);B=n;n=0;do if(B&1)O=67;else{p=N+26|0;q=N+36|0;r=L+4|0;o=b+36|0;c:while(1){e=c[s>>2]|0;if((c[Q>>2]|0)==(e|0)){O=109;break}l=e+-4|0;m=c[l>>2]|0;c[s>>2]=l;l=c[m>>2]|0;c[D>>2]=l;f=l;e=Rqb(f)|0;d:do if(!e){B=pob(c[C>>2]|0)|0;n=0;ea(130,N|0,B|0,f|0);B=n;n=0;if(B&1){O=66;break c}if(a[p>>0]&1){O=72;break c}do if((kR(f)|0?!(ENa(N)|0):0)?!(Hi(Y,N)|0):0){if(mMa(N)|0?ENa(W)|0:0)break;if(c[q>>2]|0){n=0;e=V(85,b|0,f|0,T|0)|0;B=n;n=0;if(B&1){O=86;break c}if(e)break}n=0;da(1794,L|0,f|0);B=n;n=0;if(B&1){O=86;break c}f=c[r>>2]|0;e=c[L>>2]|0;while(1){if((e|0)==(f|0))break;h=(c[R>>2]|0)+(c[(c[e>>2]|0)+8>>2]<<2)|0;i=c[h>>2]|0;if(!i){O=85;break c}c[h>>2]=i+-1;e=e+4|0}e=c[L>>2]|0;h=c[r>>2]|0;i=c[R>>2]|0;f=e;while(1){if((h|0)==(f|0))break;if(c[i+(c[(c[f>>2]|0)+8>>2]<<2)>>2]|0){O=94;break}f=f+4|0}if((O|0)==94){O=0;while(1){if((h|0)==(e|0))break;B=i+(c[(c[e>>2]|0)+8>>2]<<2)|0;c[B>>2]=(c[B>>2]|0)+1;e=e+4|0}Htb(L);break}e=c[J>>2]|0;if((e|0)==(c[K>>2]|0)){n=0;da(332,X|0,D|0);B=n;n=0;if(B&1){O=87;break c}}else{c[e>>2]=l;c[J>>2]=(c[J>>2]|0)+4}Gsb(F,WCb(c[o>>2]|0)|0);n=0;e=S(277,c[F>>2]|0)|0;B=n;n=0;if(B&1){O=87;break c}c[m>>2]=e;f=c[r>>2]|0;e=c[L>>2]|0;while(1){h=e;if((f|0)==(h|0))break;c[G>>2]=c[e>>2];kca(T,G);e=h+4|0}Htb(L);Fha(N);break d}while(0);n=0;da(919,Y|0,N|0);B=n;n=0;if(B&1){O=86;break c}Fha(N)}else{i=e+12|0;e=WCb(c[e+16>>2]|0)|0;while(1){if(!e)break d;e=e+-1|0;n=0;f=U(74,i|0,e|0)|0;B=n;n=0;if(B&1){O=65;break c}c[E>>2]=f;h=c[s>>2]|0;if(h>>>0>=(c[t>>2]|0)>>>0){n=0;da(1795,Q|0,E|0);B=n;n=0;if(B&1){O=65;break c}}else{c[h>>2]=f;c[s>>2]=(c[s>>2]|0)+4}}}while(0)}if((O|0)==65){e=sa()|0;P()|0;O=68;break}else if((O|0)==66){e=sa()|0;P()|0;O=68;break}else if((O|0)==72){Fha(N);O=109}else if((O|0)==85){n=0;fa(75,86669,86701,138,127709);n=0;e=sa()|0;P()|0;O=88}else if((O|0)==86){e=sa()|0;P()|0}else if((O|0)==87){e=sa()|0;P()|0;O=88}if((O|0)==88)Htb(L);else if((O|0)==109){if((c[X>>2]|0)==(c[J>>2]|0)){Vob(Q);Pdb(T);Vob(R);Fha(W);Fha(Y);Vob(X);yb=M;return}Gsb(H,WCb(c[o>>2]|0)|0);n=0;e=U(116,c[H>>2]|0,X|0)|0;O=n;n=0;if(O&1){O=67;break}n=0;da(231,e+12|0,d|0);O=n;n=0;if(O&1){O=67;break}n=0;da(620,e|0,c[d+4>>2]|0);O=n;n=0;if(O&1){O=67;break}EYa(b+16|0,e);Vob(Q);Pdb(T);Vob(R);Fha(W);Fha(Y);Vob(X);yb=M;return}Fha(N)}while(0);if((O|0)==67){e=sa()|0;P()|0;O=68}Vob(Q);break}Htb(B)}while(0);Pdb(T);Vob(R)}Fha(W)}Fha(Y);Y=e;Vob(X);Ea(Y|0)}function Wc(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,o=0,p=0,q=0,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,Q=0,R=0,T=0,V=0;Q=yb;yb=yb+1056|0;y=Q+1040|0;V=Q+1012|0;g=Q+1008|0;h=Q+1004|0;o=Q+1e3|0;q=Q+996|0;v=Q+984|0;T=Q+968|0;R=Q+808|0;r=Q+800|0;s=Q+576|0;L=Q+352|0;z=Q+344|0;A=Q+340|0;B=Q+328|0;C=Q+316|0;E=Q+304|0;H=Q+292|0;J=Q+280|0;O=Q+56|0;D=Q+48|0;F=Q+44|0;K=Q+32|0;M=Q+20|0;t=Q+16|0;w=Q+12|0;x=Q;cs(V,d);f=c[d+4>>2]|0;e=c[d>>2]|0;while(1){if((e|0)==(f|0))break;e=e+4|0}u=d+12|0;p=d+16|0;f=c[p>>2]|0;e=c[u>>2]|0;while(1){if((e|0)==(f|0))break;e=e+4|0}n=0;da(2024,d|0,b|0);f=n;n=0;do if((((!(f&1)?(i=b+16|0,n=0,da(2025,i|0,d+48|0),f=n,n=0,!(f&1)):0)?(n=0,da(2026,i|0,d+84|0),i=n,n=0,!(i&1)):0)?(j=mAa(V)|0,I=b+48|0,c[g>>2]=88085,n=0,k=U(158,I|0,g|0)|0,i=n,n=0,!(i&1)):0)?(c[k>>2]=j,l=V1a(V)|0,c[h>>2]=88095,n=0,m=U(158,I|0,h|0)|0,k=n,n=0,!(k&1)):0){c[m>>2]=l;if(a[d+92>>0]&1){f=c[d+112>>2]|0;g=0;e=c[d+108>>2]|0;while(1){if((e|0)==(f|0))break;g=g+((c[e+8>>2]|0)-(c[e+4>>2]|0))|0;e=e+16|0}c[o>>2]=88103;n=0;e=U(158,I|0,o|0)|0;o=n;n=0;if(o&1)break;c[e>>2]=g}if(a[d+56>>0]&1){f=c[d+76>>2]|0;g=0;e=c[d+72>>2]|0;while(1){if((e|0)==(f|0))break;g=g+((c[e+8>>2]|0)-(c[e+4>>2]|0)>>2)|0;e=e+16|0}c[q>>2]=88117;n=0;e=U(158,I|0,q|0)|0;q=n;n=0;if(q&1)break;c[e>>2]=g}if(!(a[b+44>>0]&1)){c[t>>2]=0;n=0;ea(154,d|0,b|0,t|0);T=n;n=0;if(T&1)break;f=c[t>>2]|0;c[w>>2]=88176;n=0;e=U(158,I|0,w|0)|0;T=n;n=0;if(T&1)break;c[e>>2]=f;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;T=Zzb(88183)|0;n=0;ea(95,x|0,88183,T|0);T=n;n=0;if(T&1)break;n=0;da(2027,b|0,x|0);T=n;n=0;if(T&1){T=sa()|0;P()|0;Chb(x);hib(V);Ea(T|0)}else{Chb(x);n=0;da(2029,149260,b+48|0);T=n;n=0;if(T&1)break;hib(V);yb=Q;return}}c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;x=Zzb(98519)|0;n=0;ea(95,v|0,98519,x|0);x=n;n=0;if(!(x&1)){n=0;da(2027,b|0,v|0);x=n;n=0;if(x&1){T=sa()|0;P()|0;Chb(v);hib(V);Ea(T|0)}Chb(v);Sdb(T,0);n=0;fa(85,R|0,d|0,T|0,0);x=n;n=0;if(x&1){e=sa()|0;P()|0}else{n=0;ca(507,R|0);x=n;n=0;a:do if((!(x&1)?(c[r>>2]=0,n=0,fa(116,d|0,b|0,R|0,r|0),x=n,n=0,!(x&1)):0)?(n=0,ca(502,s|0),x=n,n=0,!(x&1)):0){n=0;da(2028,d|0,s|0);x=n;n=0;if(!(x&1)?(n=0,G=S(283,s|0)|0,x=n,n=0,!(x&1)):0){uF(s);h=c[p>>2]|0;i=b+48|0;g=c[u>>2]|0;while(1){if((g|0)==(h|0)){N=76;break}n=0;ca(502,L|0);N=n;n=0;if(N&1){N=61;break}n=0;da(2028,d|0,L|0);N=n;n=0;if(N&1){N=65;break}c[z>>2]=c[c[g>>2]>>2];c[y>>2]=c[z>>2];FE(L,y);Roa(i);n=0;e=S(283,L|0)|0;N=n;n=0;if(N&1){N=65;break}c[A>>2]=88130;n=0;f=U(158,I|0,A|0)|0;N=n;n=0;if(N&1){N=65;break}c[f>>2]=G-e;c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;N=Zzb(88159)|0;n=0;ea(95,J|0,88159,N|0);N=n;n=0;if(N&1){N=65;break}n=0;U(69,J|0,c[c[g>>2]>>2]|0)|0;N=n;n=0;if(N&1){N=66;break}c[H>>2]=c[J>>2];c[H+4>>2]=c[J+4>>2];c[H+8>>2]=c[J+8>>2];e=0;while(1){if((e|0)==3)break;c[J+(e<<2)>>2]=0;e=e+1|0}n=0;U(69,H|0,139924)|0;N=n;n=0;if(N&1){N=67;break}c[E>>2]=c[H>>2];c[E+4>>2]=c[H+4>>2];c[E+8>>2]=c[H+8>>2];e=0;while(1){if((e|0)==3)break;c[H+(e<<2)>>2]=0;e=e+1|0}n=0;U(69,E|0,c[(c[g>>2]|0)+4>>2]|0)|0;N=n;n=0;if(N&1){N=68;break}c[C>>2]=c[E>>2];c[C+4>>2]=c[E+4>>2];c[C+8>>2]=c[E+8>>2];e=0;while(1){if((e|0)==3)break;c[E+(e<<2)>>2]=0;e=e+1|0}n=0;da(91,C|0,41);N=n;n=0;if(N&1){N=69;break}c[B>>2]=c[C>>2];c[B+4>>2]=c[C+4>>2];c[B+8>>2]=c[C+8>>2];e=0;while(1){if((e|0)==3)break;c[C+(e<<2)>>2]=0;e=e+1|0}n=0;da(2027,b|0,B|0);N=n;n=0;if(N&1){N=70;break}Chb(B);Chb(C);Chb(E);Chb(H);Chb(J);uF(L);g=g+4|0}if((N|0)==61){e=sa()|0;P()|0;N=63;break}else if((N|0)==65){e=sa()|0;P()|0}else if((N|0)==66){e=sa()|0;P()|0;N=74}else if((N|0)==67){e=sa()|0;P()|0;N=73}else if((N|0)==68){e=sa()|0;P()|0;N=72}else if((N|0)==69){e=sa()|0;P()|0;N=71}else if((N|0)==70){e=sa()|0;P()|0;Chb(B);N=71}else if((N|0)==76){g=d+124|0;b:do if(!(bCb(c[g>>2]|0)|0)){n=0;ca(502,O|0);L=n;n=0;if(L&1){N=62;break a}n=0;da(2028,d|0,O|0);L=n;n=0;do if(L&1)N=88;else{Cub(D);c[O+124>>2]=c[D>>2];Roa(i);n=0;f=S(283,O|0)|0;L=n;n=0;if(L&1){N=88;break}c[F>>2]=88130;n=0;e=U(158,I|0,F|0)|0;L=n;n=0;if(L&1){N=88;break}c[e>>2]=G-f;c[M>>2]=0;c[M+4>>2]=0;c[M+8>>2]=0;L=Zzb(88168)|0;n=0;ea(95,M|0,88168,L|0);L=n;n=0;if(L&1){N=88;break}n=0;U(69,M|0,c[g>>2]|0)|0;L=n;n=0;do if(!(L&1)){c[K>>2]=c[M>>2];c[K+4>>2]=c[M+4>>2];c[K+8>>2]=c[M+8>>2];e=0;while(1){if((e|0)==3)break;c[M+(e<<2)>>2]=0;e=e+1|0}n=0;da(2027,b|0,K|0);b=n;n=0;if(b&1){e=sa()|0;P()|0;Chb(K);break}else{Chb(K);Chb(M);uF(O);break b}}else{e=sa()|0;P()|0}while(0);Chb(M)}while(0);if((N|0)==88){e=sa()|0;P()|0}uF(O);break a}while(0);Roa(149260);Z_(R);Htb(T);hib(V);yb=Q;return}if((N|0)==71){Chb(C);N=72}if((N|0)==72){Chb(E);N=73}if((N|0)==73){Chb(H);N=74}if((N|0)==74)Chb(J);uF(L);break}e=sa()|0;P()|0;uF(s)}else N=62;while(0);if((N|0)==62){e=sa()|0;P()|0;N=63}Z_(R)}Htb(T);T=e;hib(V);Ea(T|0)}}while(0);T=sa()|0;P()|0;hib(V);Ea(T|0)}function Xc(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,o=0,p=0,q=0,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,Q=0,R=0,S=0,T=0;B=yb;yb=yb+240|0;j=B+232|0;l=B+220|0;v=B+216|0;z=B+204|0;E=B+192|0;A=B+180|0;G=B+168|0;I=B+156|0;M=B+144|0;N=B+132|0;Q=B+120|0;J=B+108|0;C=B+96|0;k=B+84|0;F=B+72|0;H=B+60|0;L=B+48|0;O=B+36|0;R=B+24|0;K=B+12|0;D=B;pxa(b);Ui(b);h=b+8|0;i=b+36|0;m=b+56|0;o=j+4|0;p=b+204|0;q=J+11|0;r=K+11|0;s=J+4|0;t=K+4|0;u=C+11|0;w=D+11|0;x=C+4|0;y=D+4|0;a:while(1){if(!(Hjb(c[h>>2]|0,c[i>>2]|0)|0)){S=112;break}f=IF(b)|0;g=IF(b)|0;d=c[i>>2]|0;e=c[h>>2]|0;if((d+g|0)>>>0>((c[e+4>>2]|0)-(c[e>>2]|0)|0)>>>0){c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;D8(l,113960,Zzb(113960)|0);n=0;da(4022,b|0,l|0);e=n;n=0;if(e&1){S=6;break}Chb(l);d=c[i>>2]|0}b:do switch(f|0){case 0:{S=30;break}case 10:{S=24;break}default:{c[v>>2]=f;TF(j,m,f,v);if(!(a[o>>0]&1)){g5(E,f);n=0;U(77,E|0,113996)|0;e=n;n=0;if(e&1){S=15;break a}c[z>>2]=c[E>>2];c[z+4>>2]=c[E+4>>2];c[z+8>>2]=c[E+8>>2];e=0;while(1){if((e|0)==3)break;c[E+(e<<2)>>2]=0;e=e+1|0}n=0;da(4022,b|0,z|0);e=n;n=0;if(e&1){S=16;break a}Chb(z);Chb(E)}do switch(f|0){case 10:{S=24;break b}case 8:{gDa(b);break b}case 5:{nt(b);break b}case 1:{ai(b);break b}case 2:{Qc(b);break b}case 3:{ks(b);break b}case 7:{Ll(b);break b}case 9:{ho(b);break b}case 6:{yn(b);Bna(p);Ux(b,-1)|0;break b}case 11:{bn(b);break b}case 4:{An(b);break b}default:{S=30;break b}}while(0)}}while(0);if((S|0)==24){S=0;_f(b)}else if((S|0)==30){S=0;Pu(b,g);f=d+g|0;if((c[i>>2]|0)>>>0>f>>>0){f5(Q,d);n=0;U(77,Q|0,114026)|0;e=n;n=0;if(e&1){S=55;break}c[N>>2]=c[Q>>2];c[N+4>>2]=c[Q+4>>2];c[N+8>>2]=c[Q+8>>2];e=0;while(1){if((e|0)==3)break;c[Q+(e<<2)>>2]=0;e=e+1|0}n=0;U(69,N|0,114061)|0;e=n;n=0;if(e&1){S=56;break}c[M>>2]=c[N>>2];c[M+4>>2]=c[N+4>>2];c[M+8>>2]=c[N+8>>2];e=0;while(1){if((e|0)==3)break;c[N+(e<<2)>>2]=0;e=e+1|0}n=0;da(2683,J|0,g|0);e=n;n=0;if(e&1){S=57;break}e=a[q>>0]|0;T=e<<24>>24<0;n=0;V(43,M|0,(T?c[J>>2]|0:J)|0,(T?c[s>>2]|0:e&255)|0)|0;e=n;n=0;if(e&1){S=58;break}c[I>>2]=c[M>>2];c[I+4>>2]=c[M+4>>2];c[I+8>>2]=c[M+8>>2];e=0;while(1){if((e|0)==3)break;c[M+(e<<2)>>2]=0;e=e+1|0}n=0;U(69,I|0,114076)|0;T=n;n=0;if(T&1){S=59;break}c[G>>2]=c[I>>2];c[G+4>>2]=c[I+4>>2];c[G+8>>2]=c[I+8>>2];e=0;while(1){if((e|0)==3)break;c[I+(e<<2)>>2]=0;e=e+1|0}n=0;da(88,C|0,c[i>>2]|0);T=n;n=0;if(T&1){S=60;break}T=a[u>>0]|0;e=T<<24>>24<0;n=0;V(43,G|0,(e?c[C>>2]|0:C)|0,(e?c[x>>2]|0:T&255)|0)|0;T=n;n=0;if(T&1){S=61;break}c[A>>2]=c[G>>2];c[A+4>>2]=c[G+4>>2];c[A+8>>2]=c[G+8>>2];e=0;while(1){if((e|0)==3)break;c[G+(e<<2)>>2]=0;e=e+1|0}n=0;da(4022,b|0,A|0);T=n;n=0;if(T&1){S=62;break}Chb(A);Chb(C);Chb(G);Chb(I);Chb(J);Chb(M);Chb(N);Chb(Q)}c[i>>2]=f}if((c[i>>2]|0)!=(d+g|0)){f5(R,d);n=0;U(77,R|0,114110)|0;T=n;n=0;if(T&1){S=96;break}c[O>>2]=c[R>>2];c[O+4>>2]=c[R+4>>2];c[O+8>>2]=c[R+8>>2];d=0;while(1){if((d|0)==3)break;c[R+(d<<2)>>2]=0;d=d+1|0}n=0;U(69,O|0,114061)|0;T=n;n=0;if(T&1){S=97;break}c[L>>2]=c[O>>2];c[L+4>>2]=c[O+4>>2];c[L+8>>2]=c[O+8>>2];d=0;while(1){if((d|0)==3)break;c[O+(d<<2)>>2]=0;d=d+1|0}n=0;da(2683,K|0,g|0);T=n;n=0;if(T&1){S=98;break}T=a[r>>0]|0;g=T<<24>>24<0;n=0;V(43,L|0,(g?c[K>>2]|0:K)|0,(g?c[t>>2]|0:T&255)|0)|0;T=n;n=0;if(T&1){S=99;break}c[H>>2]=c[L>>2];c[H+4>>2]=c[L+4>>2];c[H+8>>2]=c[L+8>>2];d=0;while(1){if((d|0)==3)break;c[L+(d<<2)>>2]=0;d=d+1|0}n=0;U(69,H|0,114076)|0;T=n;n=0;if(T&1){S=100;break}c[F>>2]=c[H>>2];c[F+4>>2]=c[H+4>>2];c[F+8>>2]=c[H+8>>2];d=0;while(1){if((d|0)==3)break;c[H+(d<<2)>>2]=0;d=d+1|0}n=0;da(88,D|0,c[i>>2]|0);T=n;n=0;if(T&1){S=101;break}T=a[w>>0]|0;g=T<<24>>24<0;n=0;V(43,F|0,(g?c[D>>2]|0:D)|0,(g?c[y>>2]|0:T&255)|0)|0;T=n;n=0;if(T&1){S=102;break}c[k>>2]=c[F>>2];c[k+4>>2]=c[F+4>>2];c[k+8>>2]=c[F+8>>2];d=0;while(1){if((d|0)==3)break;c[F+(d<<2)>>2]=0;d=d+1|0}n=0;da(4022,b|0,k|0);T=n;n=0;if(T&1){S=103;break}Chb(k);Chb(D);Chb(F);Chb(H);Chb(K);Chb(L);Chb(O);Chb(R)}}switch(S|0){case 6:{T=sa()|0;P()|0;Chb(l);Ea(T|0)}case 15:{d=sa()|0;P()|0;S=17;break}case 16:{d=sa()|0;P()|0;Chb(z);S=17;break}case 55:{d=sa()|0;P()|0;S=69;break}case 56:{d=sa()|0;P()|0;S=68;break}case 57:{d=sa()|0;P()|0;S=67;break}case 58:{d=sa()|0;P()|0;S=66;break}case 59:{d=sa()|0;P()|0;S=65;break}case 60:{d=sa()|0;P()|0;S=64;break}case 61:{d=sa()|0;P()|0;S=63;break}case 62:{d=sa()|0;P()|0;Chb(A);S=63;break}case 96:{d=sa()|0;P()|0;S=110;break}case 97:{d=sa()|0;P()|0;S=109;break}case 98:{d=sa()|0;P()|0;S=108;break}case 99:{d=sa()|0;P()|0;S=107;break}case 100:{d=sa()|0;P()|0;S=106;break}case 101:{d=sa()|0;P()|0;S=105;break}case 102:{d=sa()|0;P()|0;S=104;break}case 103:{d=sa()|0;P()|0;Chb(k);S=104;break}case 112:{Mk(b);yb=B;return}}if((S|0)==17){Chb(E);T=d;Ea(T|0)}else if((S|0)==63){Chb(C);S=64}else if((S|0)==104){Chb(D);S=105}if((S|0)==64){Chb(G);S=65}else if((S|0)==105){Chb(F);S=106}if((S|0)==65){Chb(I);S=66}else if((S|0)==106){Chb(H);S=107}if((S|0)==66){Chb(J);S=67}else if((S|0)==107){Chb(K);S=108}if((S|0)==67){Chb(M);S=68}else if((S|0)==108){Chb(L);S=109}if((S|0)==68){Chb(N);S=69}else if((S|0)==109){Chb(O);S=110}if((S|0)==69){Chb(Q);T=d;Ea(T|0)}else if((S|0)==110){Chb(R);T=d;Ea(T|0)}}function Yc(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1640,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1639,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1641,b);NU(e,(Tfb(d)|0)+16|0);IW(e,1639,(Tfb(d)|0)+12|0);IW(e,1639,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1642,b);IW(e,1639,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1643,b);NU(e,(tfb(d)|0)+16|0);NU(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1644,b);IW(e,1639,(cfb(d)|0)+28|0);NU(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1645,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1639,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1646,b);b=wdb(d)|0;IW(e,1639,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1639,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1647,b);return}case 9:{e=a+16|0;IW(e,1648,b);IW(e,1639,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1649,b);return}case 11:{e=a+16|0;IW(e,1650,b);IW(e,1639,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1651,b);IW(e,1639,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1652,b);IW(e,1639,(efb(d)|0)+28|0);IW(e,1639,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1653,b);IW(e,1639,(ieb(d)|0)+24|0);IW(e,1639,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1654,b);IW(e,1639,(hdb(d)|0)+24|0);IW(e,1639,(hdb(d)|0)+20|0);IW(e,1639,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1655,b);IW(e,1639,(Ldb(d)|0)+20|0);IW(e,1639,(Ldb(d)|0)+16|0);IW(e,1639,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1656,b);IW(e,1639,(Kdb(d)|0)+16|0);IW(e,1639,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1657,b);IW(e,1639,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1658,b);IW(e,1639,(zdb(d)|0)+20|0);IW(e,1639,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1659,b);IW(e,1639,(ydb(d)|0)+12|0);IW(e,1639,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1660,b);IW(e,1639,(gdb(d)|0)+16|0);IW(e,1639,(gdb(d)|0)+12|0);IW(e,1639,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1661,b);IW(e,1639,(geb(d)|0)+16|0);IW(e,1639,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1662,b);IW(e,1639,(Hdb(d)|0)+12|0);IW(e,1639,(Hdb(d)|0)+16|0);IW(e,1639,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1663,b);return}case 34:{e=a+16|0;IW(e,1664,b);IW(e,1639,(Jdb(d)|0)+8|0);IW(e,1639,(Jdb(d)|0)+12|0);IW(e,1639,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1665,b);IW(e,1639,(Idb(d)|0)+8|0);IW(e,1639,(Idb(d)|0)+12|0);IW(e,1639,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1666,b);return}case 15:{e=a+16|0;IW(e,1667,b);IW(e,1639,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1668,b);IW(e,1639,(Veb(d)|0)+16|0);IW(e,1639,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1669,b);IW(e,1639,(Teb(d)|0)+16|0);IW(e,1639,(Teb(d)|0)+12|0);IW(e,1639,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1670,b);IW(e,1639,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1671,b);NU(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1672,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1639,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1673,b);return}case 22:{IW(a+16|0,1674,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Zc(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,2078,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2077,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,2079,b);qW(e,(Tfb(d)|0)+16|0);IW(e,2077,(Tfb(d)|0)+12|0);IW(e,2077,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,2080,b);IW(e,2077,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,2081,b);qW(e,(tfb(d)|0)+16|0);qW(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,2082,b);IW(e,2077,(cfb(d)|0)+28|0);qW(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,2083,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2077,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,2084,b);b=wdb(d)|0;IW(e,2077,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2077,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,2085,b);return}case 9:{e=a+16|0;IW(e,2086,b);IW(e,2077,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,2087,b);return}case 11:{e=a+16|0;IW(e,2088,b);IW(e,2077,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,2089,b);IW(e,2077,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,2090,b);IW(e,2077,(efb(d)|0)+28|0);IW(e,2077,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,2091,b);IW(e,2077,(ieb(d)|0)+24|0);IW(e,2077,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,2092,b);IW(e,2077,(hdb(d)|0)+24|0);IW(e,2077,(hdb(d)|0)+20|0);IW(e,2077,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,2093,b);IW(e,2077,(Ldb(d)|0)+20|0);IW(e,2077,(Ldb(d)|0)+16|0);IW(e,2077,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,2094,b);IW(e,2077,(Kdb(d)|0)+16|0);IW(e,2077,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,2095,b);IW(e,2077,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,2096,b);IW(e,2077,(zdb(d)|0)+20|0);IW(e,2077,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,2097,b);IW(e,2077,(ydb(d)|0)+12|0);IW(e,2077,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,2098,b);IW(e,2077,(gdb(d)|0)+16|0);IW(e,2077,(gdb(d)|0)+12|0);IW(e,2077,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,2099,b);IW(e,2077,(geb(d)|0)+16|0);IW(e,2077,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,2100,b);IW(e,2077,(Hdb(d)|0)+12|0);IW(e,2077,(Hdb(d)|0)+16|0);IW(e,2077,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,2101,b);return}case 34:{e=a+16|0;IW(e,2102,b);IW(e,2077,(Jdb(d)|0)+8|0);IW(e,2077,(Jdb(d)|0)+12|0);IW(e,2077,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,2103,b);IW(e,2077,(Idb(d)|0)+8|0);IW(e,2077,(Idb(d)|0)+12|0);IW(e,2077,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,2104,b);return}case 15:{e=a+16|0;IW(e,2105,b);IW(e,2077,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,2106,b);IW(e,2077,(Veb(d)|0)+16|0);IW(e,2077,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,2107,b);IW(e,2077,(Teb(d)|0)+16|0);IW(e,2077,(Teb(d)|0)+12|0);IW(e,2077,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,2108,b);IW(e,2077,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,2109,b);qW(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,2110,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2077,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,2111,b);return}case 22:{IW(a+16|0,2112,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function _c(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,2384,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2371,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,2385,b);uW(e,(Tfb(d)|0)+16|0);IW(e,2371,(Tfb(d)|0)+12|0);IW(e,2371,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,2386,b);IW(e,2371,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,2387,b);uW(e,(tfb(d)|0)+16|0);uW(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,2388,b);IW(e,2371,(cfb(d)|0)+28|0);uW(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,2389,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2371,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,2390,b);b=wdb(d)|0;IW(e,2371,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2371,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,2391,b);return}case 9:{e=a+16|0;IW(e,2392,b);IW(e,2371,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,2393,b);return}case 11:{e=a+16|0;IW(e,2394,b);IW(e,2371,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,2395,b);IW(e,2371,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,2396,b);IW(e,2371,(efb(d)|0)+28|0);IW(e,2371,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,2397,b);IW(e,2371,(ieb(d)|0)+24|0);IW(e,2371,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,2398,b);IW(e,2371,(hdb(d)|0)+24|0);IW(e,2371,(hdb(d)|0)+20|0);IW(e,2371,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,2399,b);IW(e,2371,(Ldb(d)|0)+20|0);IW(e,2371,(Ldb(d)|0)+16|0);IW(e,2371,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,2400,b);IW(e,2371,(Kdb(d)|0)+16|0);IW(e,2371,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,2401,b);IW(e,2371,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,2402,b);IW(e,2371,(zdb(d)|0)+20|0);IW(e,2371,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,2403,b);IW(e,2371,(ydb(d)|0)+12|0);IW(e,2371,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,2404,b);IW(e,2371,(gdb(d)|0)+16|0);IW(e,2371,(gdb(d)|0)+12|0);IW(e,2371,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,2405,b);IW(e,2371,(geb(d)|0)+16|0);IW(e,2371,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,2406,b);IW(e,2371,(Hdb(d)|0)+12|0);IW(e,2371,(Hdb(d)|0)+16|0);IW(e,2371,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,2407,b);return}case 34:{e=a+16|0;IW(e,2408,b);IW(e,2371,(Jdb(d)|0)+8|0);IW(e,2371,(Jdb(d)|0)+12|0);IW(e,2371,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,2409,b);IW(e,2371,(Idb(d)|0)+8|0);IW(e,2371,(Idb(d)|0)+12|0);IW(e,2371,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,2410,b);return}case 15:{e=a+16|0;IW(e,2411,b);IW(e,2371,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,2412,b);IW(e,2371,(Veb(d)|0)+16|0);IW(e,2371,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,2413,b);IW(e,2371,(Teb(d)|0)+16|0);IW(e,2371,(Teb(d)|0)+12|0);IW(e,2371,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,2414,b);IW(e,2371,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,2415,b);uW(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,2416,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2371,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,2417,b);return}case 22:{IW(a+16|0,2418,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function $c(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1953,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1952,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1954,b);WW(e,(Tfb(d)|0)+16|0);IW(e,1952,(Tfb(d)|0)+12|0);IW(e,1952,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1955,b);IW(e,1952,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1956,b);WW(e,(tfb(d)|0)+16|0);WW(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1957,b);IW(e,1952,(cfb(d)|0)+28|0);WW(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1958,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1952,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1959,b);b=wdb(d)|0;IW(e,1952,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1952,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1960,b);return}case 9:{e=a+16|0;IW(e,1961,b);IW(e,1952,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1962,b);return}case 11:{e=a+16|0;IW(e,1963,b);IW(e,1952,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1964,b);IW(e,1952,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1965,b);IW(e,1952,(efb(d)|0)+28|0);IW(e,1952,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1966,b);IW(e,1952,(ieb(d)|0)+24|0);IW(e,1952,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1967,b);IW(e,1952,(hdb(d)|0)+24|0);IW(e,1952,(hdb(d)|0)+20|0);IW(e,1952,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1968,b);IW(e,1952,(Ldb(d)|0)+20|0);IW(e,1952,(Ldb(d)|0)+16|0);IW(e,1952,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1969,b);IW(e,1952,(Kdb(d)|0)+16|0);IW(e,1952,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1970,b);IW(e,1952,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1971,b);IW(e,1952,(zdb(d)|0)+20|0);IW(e,1952,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1972,b);IW(e,1952,(ydb(d)|0)+12|0);IW(e,1952,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1973,b);IW(e,1952,(gdb(d)|0)+16|0);IW(e,1952,(gdb(d)|0)+12|0);IW(e,1952,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1974,b);IW(e,1952,(geb(d)|0)+16|0);IW(e,1952,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1975,b);IW(e,1952,(Hdb(d)|0)+12|0);IW(e,1952,(Hdb(d)|0)+16|0);IW(e,1952,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1976,b);return}case 34:{e=a+16|0;IW(e,1977,b);IW(e,1952,(Jdb(d)|0)+8|0);IW(e,1952,(Jdb(d)|0)+12|0);IW(e,1952,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1978,b);IW(e,1952,(Idb(d)|0)+8|0);IW(e,1952,(Idb(d)|0)+12|0);IW(e,1952,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1979,b);return}case 15:{e=a+16|0;IW(e,1980,b);IW(e,1952,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1981,b);IW(e,1952,(Veb(d)|0)+16|0);IW(e,1952,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1982,b);IW(e,1952,(Teb(d)|0)+16|0);IW(e,1952,(Teb(d)|0)+12|0);IW(e,1952,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1983,b);IW(e,1952,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1984,b);WW(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1985,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1952,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1986,b);return}case 22:{IW(a+16|0,1987,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ad(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3144,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3137,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3146,b);aX(e,(Tfb(d)|0)+16|0);IW(e,3137,(Tfb(d)|0)+12|0);IW(e,3137,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3147,b);IW(e,3137,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,3148,b);aX(e,(tfb(d)|0)+16|0);aX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3149,b);IW(e,3137,(cfb(d)|0)+28|0);aX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,3153,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3137,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,3154,b);b=wdb(d)|0;IW(e,3137,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3137,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,3155,b);return}case 9:{e=a+16|0;IW(e,3156,b);IW(e,3137,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,3157,b);return}case 11:{e=a+16|0;IW(e,3158,b);IW(e,3137,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,3159,b);IW(e,3137,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,3160,b);IW(e,3137,(efb(d)|0)+28|0);IW(e,3137,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,3161,b);IW(e,3137,(ieb(d)|0)+24|0);IW(e,3137,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,3162,b);IW(e,3137,(hdb(d)|0)+24|0);IW(e,3137,(hdb(d)|0)+20|0);IW(e,3137,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,3163,b);IW(e,3137,(Ldb(d)|0)+20|0);IW(e,3137,(Ldb(d)|0)+16|0);IW(e,3137,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,3164,b);IW(e,3137,(Kdb(d)|0)+16|0);IW(e,3137,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,3165,b);IW(e,3137,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,3166,b);IW(e,3137,(zdb(d)|0)+20|0);IW(e,3137,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,3167,b);IW(e,3137,(ydb(d)|0)+12|0);IW(e,3137,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,3168,b);IW(e,3137,(gdb(d)|0)+16|0);IW(e,3137,(gdb(d)|0)+12|0);IW(e,3137,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,3169,b);IW(e,3137,(geb(d)|0)+16|0);IW(e,3137,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,3170,b);IW(e,3137,(Hdb(d)|0)+12|0);IW(e,3137,(Hdb(d)|0)+16|0);IW(e,3137,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,3171,b);return}case 34:{e=a+16|0;IW(e,3172,b);IW(e,3137,(Jdb(d)|0)+8|0);IW(e,3137,(Jdb(d)|0)+12|0);IW(e,3137,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,3173,b);IW(e,3137,(Idb(d)|0)+8|0);IW(e,3137,(Idb(d)|0)+12|0);IW(e,3137,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,3174,b);return}case 15:{e=a+16|0;IW(e,3175,b);IW(e,3137,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,3176,b);IW(e,3137,(Veb(d)|0)+16|0);IW(e,3137,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,3177,b);IW(e,3137,(Teb(d)|0)+16|0);IW(e,3137,(Teb(d)|0)+12|0);IW(e,3137,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,3178,b);IW(e,3137,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,3150,b);aX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,3179,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3137,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,3180,b);return}case 22:{IW(a+16|0,3151,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function bd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3418,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3411,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3420,b);bX(e,(Tfb(d)|0)+16|0);IW(e,3411,(Tfb(d)|0)+12|0);IW(e,3411,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3421,b);IW(e,3411,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,3422,b);bX(e,(tfb(d)|0)+16|0);bX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3423,b);IW(e,3411,(cfb(d)|0)+28|0);bX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,3427,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3411,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,3428,b);b=wdb(d)|0;IW(e,3411,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3411,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,3429,b);return}case 9:{e=a+16|0;IW(e,3430,b);IW(e,3411,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,3431,b);return}case 11:{e=a+16|0;IW(e,3432,b);IW(e,3411,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,3433,b);IW(e,3411,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,3434,b);IW(e,3411,(efb(d)|0)+28|0);IW(e,3411,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,3435,b);IW(e,3411,(ieb(d)|0)+24|0);IW(e,3411,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,3436,b);IW(e,3411,(hdb(d)|0)+24|0);IW(e,3411,(hdb(d)|0)+20|0);IW(e,3411,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,3437,b);IW(e,3411,(Ldb(d)|0)+20|0);IW(e,3411,(Ldb(d)|0)+16|0);IW(e,3411,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,3438,b);IW(e,3411,(Kdb(d)|0)+16|0);IW(e,3411,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,3439,b);IW(e,3411,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,3440,b);IW(e,3411,(zdb(d)|0)+20|0);IW(e,3411,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,3441,b);IW(e,3411,(ydb(d)|0)+12|0);IW(e,3411,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,3442,b);IW(e,3411,(gdb(d)|0)+16|0);IW(e,3411,(gdb(d)|0)+12|0);IW(e,3411,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,3443,b);IW(e,3411,(geb(d)|0)+16|0);IW(e,3411,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,3444,b);IW(e,3411,(Hdb(d)|0)+12|0);IW(e,3411,(Hdb(d)|0)+16|0);IW(e,3411,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,3445,b);return}case 34:{e=a+16|0;IW(e,3446,b);IW(e,3411,(Jdb(d)|0)+8|0);IW(e,3411,(Jdb(d)|0)+12|0);IW(e,3411,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,3447,b);IW(e,3411,(Idb(d)|0)+8|0);IW(e,3411,(Idb(d)|0)+12|0);IW(e,3411,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,3448,b);return}case 15:{e=a+16|0;IW(e,3449,b);IW(e,3411,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,3450,b);IW(e,3411,(Veb(d)|0)+16|0);IW(e,3411,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,3451,b);IW(e,3411,(Teb(d)|0)+16|0);IW(e,3411,(Teb(d)|0)+12|0);IW(e,3411,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,3452,b);IW(e,3411,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,3424,b);bX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,3453,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3411,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,3454,b);return}case 22:{IW(a+16|0,3425,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function cd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3299,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3292,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3301,b);cX(e,(Tfb(d)|0)+16|0);IW(e,3292,(Tfb(d)|0)+12|0);IW(e,3292,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3302,b);IW(e,3292,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,3303,b);cX(e,(tfb(d)|0)+16|0);cX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3304,b);IW(e,3292,(cfb(d)|0)+28|0);cX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,3308,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3292,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,3309,b);b=wdb(d)|0;IW(e,3292,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3292,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,3310,b);return}case 9:{e=a+16|0;IW(e,3311,b);IW(e,3292,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,3312,b);return}case 11:{e=a+16|0;IW(e,3313,b);IW(e,3292,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,3314,b);IW(e,3292,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,3315,b);IW(e,3292,(efb(d)|0)+28|0);IW(e,3292,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,3316,b);IW(e,3292,(ieb(d)|0)+24|0);IW(e,3292,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,3317,b);IW(e,3292,(hdb(d)|0)+24|0);IW(e,3292,(hdb(d)|0)+20|0);IW(e,3292,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,3318,b);IW(e,3292,(Ldb(d)|0)+20|0);IW(e,3292,(Ldb(d)|0)+16|0);IW(e,3292,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,3319,b);IW(e,3292,(Kdb(d)|0)+16|0);IW(e,3292,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,3320,b);IW(e,3292,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,3321,b);IW(e,3292,(zdb(d)|0)+20|0);IW(e,3292,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,3322,b);IW(e,3292,(ydb(d)|0)+12|0);IW(e,3292,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,3323,b);IW(e,3292,(gdb(d)|0)+16|0);IW(e,3292,(gdb(d)|0)+12|0);IW(e,3292,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,3324,b);IW(e,3292,(geb(d)|0)+16|0);IW(e,3292,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,3325,b);IW(e,3292,(Hdb(d)|0)+12|0);IW(e,3292,(Hdb(d)|0)+16|0);IW(e,3292,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,3326,b);return}case 34:{e=a+16|0;IW(e,3327,b);IW(e,3292,(Jdb(d)|0)+8|0);IW(e,3292,(Jdb(d)|0)+12|0);IW(e,3292,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,3328,b);IW(e,3292,(Idb(d)|0)+8|0);IW(e,3292,(Idb(d)|0)+12|0);IW(e,3292,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,3329,b);return}case 15:{e=a+16|0;IW(e,3330,b);IW(e,3292,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,3331,b);IW(e,3292,(Veb(d)|0)+16|0);IW(e,3292,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,3332,b);IW(e,3292,(Teb(d)|0)+16|0);IW(e,3292,(Teb(d)|0)+12|0);IW(e,3292,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,3333,b);IW(e,3292,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,3305,b);cX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,3334,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3292,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,3335,b);return}case 22:{IW(a+16|0,3306,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function dd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3537,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3530,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3539,b);dX(e,(Tfb(d)|0)+16|0);IW(e,3530,(Tfb(d)|0)+12|0);IW(e,3530,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3540,b);IW(e,3530,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,3541,b);dX(e,(tfb(d)|0)+16|0);dX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3542,b);IW(e,3530,(cfb(d)|0)+28|0);dX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,3546,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3530,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,3547,b);b=wdb(d)|0;IW(e,3530,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3530,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,3548,b);return}case 9:{e=a+16|0;IW(e,3549,b);IW(e,3530,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,3550,b);return}case 11:{e=a+16|0;IW(e,3551,b);IW(e,3530,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,3552,b);IW(e,3530,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,3553,b);IW(e,3530,(efb(d)|0)+28|0);IW(e,3530,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,3554,b);IW(e,3530,(ieb(d)|0)+24|0);IW(e,3530,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,3555,b);IW(e,3530,(hdb(d)|0)+24|0);IW(e,3530,(hdb(d)|0)+20|0);IW(e,3530,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,3556,b);IW(e,3530,(Ldb(d)|0)+20|0);IW(e,3530,(Ldb(d)|0)+16|0);IW(e,3530,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,3557,b);IW(e,3530,(Kdb(d)|0)+16|0);IW(e,3530,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,3558,b);IW(e,3530,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,3559,b);IW(e,3530,(zdb(d)|0)+20|0);IW(e,3530,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,3560,b);IW(e,3530,(ydb(d)|0)+12|0);IW(e,3530,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,3561,b);IW(e,3530,(gdb(d)|0)+16|0);IW(e,3530,(gdb(d)|0)+12|0);IW(e,3530,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,3562,b);IW(e,3530,(geb(d)|0)+16|0);IW(e,3530,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,3563,b);IW(e,3530,(Hdb(d)|0)+12|0);IW(e,3530,(Hdb(d)|0)+16|0);IW(e,3530,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,3564,b);return}case 34:{e=a+16|0;IW(e,3565,b);IW(e,3530,(Jdb(d)|0)+8|0);IW(e,3530,(Jdb(d)|0)+12|0);IW(e,3530,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,3566,b);IW(e,3530,(Idb(d)|0)+8|0);IW(e,3530,(Idb(d)|0)+12|0);IW(e,3530,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,3567,b);return}case 15:{e=a+16|0;IW(e,3568,b);IW(e,3530,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,3569,b);IW(e,3530,(Veb(d)|0)+16|0);IW(e,3530,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,3570,b);IW(e,3530,(Teb(d)|0)+16|0);IW(e,3530,(Teb(d)|0)+12|0);IW(e,3530,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,3571,b);IW(e,3530,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,3543,b);dX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,3572,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3530,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,3573,b);return}case 22:{IW(a+16|0,3544,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ed(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3656,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3649,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3658,b);eX(e,(Tfb(d)|0)+16|0);IW(e,3649,(Tfb(d)|0)+12|0);IW(e,3649,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3659,b);IW(e,3649,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,3660,b);eX(e,(tfb(d)|0)+16|0);eX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3661,b);IW(e,3649,(cfb(d)|0)+28|0);eX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,3665,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3649,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,3666,b);b=wdb(d)|0;IW(e,3649,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3649,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,3667,b);return}case 9:{e=a+16|0;IW(e,3668,b);IW(e,3649,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,3669,b);return}case 11:{e=a+16|0;IW(e,3670,b);IW(e,3649,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,3671,b);IW(e,3649,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,3672,b);IW(e,3649,(efb(d)|0)+28|0);IW(e,3649,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,3673,b);IW(e,3649,(ieb(d)|0)+24|0);IW(e,3649,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,3674,b);IW(e,3649,(hdb(d)|0)+24|0);IW(e,3649,(hdb(d)|0)+20|0);IW(e,3649,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,3675,b);IW(e,3649,(Ldb(d)|0)+20|0);IW(e,3649,(Ldb(d)|0)+16|0);IW(e,3649,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,3676,b);IW(e,3649,(Kdb(d)|0)+16|0);IW(e,3649,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,3677,b);IW(e,3649,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,3678,b);IW(e,3649,(zdb(d)|0)+20|0);IW(e,3649,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,3679,b);IW(e,3649,(ydb(d)|0)+12|0);IW(e,3649,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,3680,b);IW(e,3649,(gdb(d)|0)+16|0);IW(e,3649,(gdb(d)|0)+12|0);IW(e,3649,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,3681,b);IW(e,3649,(geb(d)|0)+16|0);IW(e,3649,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,3682,b);IW(e,3649,(Hdb(d)|0)+12|0);IW(e,3649,(Hdb(d)|0)+16|0);IW(e,3649,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,3683,b);return}case 34:{e=a+16|0;IW(e,3684,b);IW(e,3649,(Jdb(d)|0)+8|0);IW(e,3649,(Jdb(d)|0)+12|0);IW(e,3649,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,3685,b);IW(e,3649,(Idb(d)|0)+8|0);IW(e,3649,(Idb(d)|0)+12|0);IW(e,3649,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,3686,b);return}case 15:{e=a+16|0;IW(e,3687,b);IW(e,3649,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,3688,b);IW(e,3649,(Veb(d)|0)+16|0);IW(e,3649,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,3689,b);IW(e,3649,(Teb(d)|0)+16|0);IW(e,3649,(Teb(d)|0)+12|0);IW(e,3649,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,3690,b);IW(e,3649,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,3662,b);eX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,3691,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3649,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,3692,b);return}case 22:{IW(a+16|0,3663,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)} -function V$(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h+4|0;f=h;g=Qqb(b)|0;if(g|0){c[f>>2]=c[g+8>>2];g=c[g+12>>2]|0;c[e>>2]=c[f>>2];FN(a,e,d,g);yb=h;return}e=Jqb(b)|0;if(!e){yb=h;return}vq(a,e,d);yb=h;return}function W$(){var a=0,b=0,d=0,e=0;a=c[37290]|0;b=c[37289]|0;d=a-b|0;e=(d|0)/20|0;if(e>>>0<4){Ix(149156,4-e|0);return}if((d|0)==80)return;b=b+80|0;while(1){if((b|0)==(a|0))break;e=a+-20|0;Pdb(e);a=e}c[37290]=b;return}function X$(a){a=a|0;var b=0;Y9(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function Y$(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+416|0;d=f+24|0;e=f;rjb(d,b);b=0;while(1){if((b|0)==16)break;g=d+(b*24|0)|0;aN(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}cab(a,d);yb=f;return}function Z$(a,b){a=a|0;b=b|0;if(!b)return;Z$(a,c[b>>2]|0);Z$(a,c[b+4>>2]|0);Nrb(b+16|0);RCb(b);return}function _$(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i+4|0;g=i;if((a[d+12>>0]&1)==0?(h=c[e+4>>2]|0,vub(h)|0):0){if(!(eCb(h)|0))ma(97378,97392,87,97427);AB(b,d,c[e+12>>2]|0);yb=i;return}c[g>>2]=c[37329];c[f>>2]=c[g>>2];Ulb(b,f);yb=i;return}function $$(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=c[d+8>>2]|0;f=Cda(b,c[d+12>>2]|0)|0;e=a[d+16>>0]|0;d=Cda(b,c[d+20>>2]|0)|0;return cua(c[b+32>>2]|0,g,f,e,d)|0}function a0(a){a=a|0;var b=0;Bba(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function b0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=b;e=c[f+4>>2]|0;d=a;c[d>>2]=c[f>>2];c[d+4>>2]=e;d=a+8|0;e=b+8|0;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];if((a|0)==(b|0))return;nw(a+24|0,c[b+24>>2]|0,c[b+28>>2]|0);return}function c0(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);_Va(a);sV(a,c[b+12>>2]|0);sV(a,c[b+20>>2]|0);y9(a);yb=d;return}function d0(b,d){b=b|0;d=d|0;var e=0;if(c[37104]|0)IWa(Ym(IWa(150452,69871)|0,d)|0,65627)|0;e=b+140|0;if((((c[b+144>>2]|0)-(c[e>>2]|0)|0)/12|0)>>>0<=d>>>0){e=0;return e|0}b=oAa(e,d)|0;if((a[b+11>>0]|0)<0){e=c[b>>2]|0;return e|0}else{e=b;return e|0}return 0}function e0(b){b=b|0;var d=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}if((a[b+11>>0]|0)<0)d=(c[b+8>>2]&2147483647)+-1|0;else d=10;n=0;da(92,b|0,d|0);d=n;n=0;if(d&1){d=sa()|0;P()|0;Chb(b);Ea(d|0)}else return}function f0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+224|0;d=f+24|0;e=f;Cjb(d,b);b=0;while(1){if((b|0)==8)break;g=d+(b*24|0)|0;aN(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Hab(a,d);yb=f;return}function g0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+128|0;d=f+24|0;e=f;Y7(d,b);b=0;while(1){if((b|0)==4)break;g=d+(b*24|0)|0;Xwa(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Iab(a,d);yb=f;return}function h0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+192|0;f=g;if((c[b+16>>2]|0)!=1)ma(112215,111484,981,112230);sDa(f);d=f;e=8;while(1){if(!e)break;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[d+16>>2]=c[b+16>>2];d=d+24|0;e=e+-1|0}Hab(a,f);yb=g;return}function i0(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);_Va(a);sV(a,c[b+8>>2]|0);sV(a,c[b+12>>2]|0);y9(a);yb=d;return}function j0(a){a=a|0;var b=0,d=0,e=0;b=mla(184)|0;d=b+104|0;e=b+4|0;c[b>>2]=37660;c[d>>2]=37680;Hoa(d,e);c[b+176>>2]=0;c[b+180>>2]=-1;c[b>>2]=46188;c[d>>2]=46208;n=0;ca(547,e|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;ktb(d);RCb(b);Ea(e|0)}else{c[a>>2]=b;return}}function k0(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-16|0;c[d>>2]=e;V5(e)}b=c[a>>2]|0;if(b|0)$Wa(c[c[a+16>>2]>>2]|0,b,(c[a+12>>2]|0)-b>>4);return}function l0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+48|0;f=g;if((c[b+16>>2]|0)!=4)ma(112215,111484,981,112230);Wmb(f);d=f;e=2;while(1){if(!e)break;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[d+16>>2]=c[b+16>>2];d=d+24|0;e=e+-1|0}Jab(a,f);yb=g;return}function m0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+96|0;f=g;if((c[b+16>>2]|0)!=3)ma(112215,111484,981,112230);_7a(f);d=f;e=4;while(1){if(!e)break;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[d+16>>2]=c[b+16>>2];d=d+24|0;e=e+-1|0}Iab(a,f);yb=g;return}function n0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+48|0;f=g;if((c[b+16>>2]|0)!=2)ma(112215,111484,981,112230);Wmb(f);d=f;e=2;while(1){if(!e)break;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[d+16>>2]=c[b+16>>2];d=d+24|0;e=e+-1|0}Jab(a,f);yb=g;return}function o0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+96|0;f=g;if((c[b+16>>2]|0)!=1)ma(112215,111484,981,112230);_7a(f);d=f;e=4;while(1){if(!e)break;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[d+16>>2]=c[b+16>>2];d=d+24|0;e=e+-1|0}Iab(a,f);yb=g;return}function p0(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;c[f+8>>2]=e;e=c[a+40>>2]|0;b=c[a+36>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(Yrb(d)|0)Tna(f,d);b=b+4|0}yb=g;return}function q0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+128|0;d=f+24|0;e=f;Ljb(d,b);b=0;while(1){if((b|0)==4)break;g=d+(b*24|0)|0;aN(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Iab(a,d);yb=f;return}function r0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+128|0;d=f+24|0;e=f;Y7(d,b);b=0;while(1){if((b|0)==4)break;g=d+(b*24|0)|0;aN(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Iab(a,d);yb=f;return}function s0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+128|0;d=f+24|0;e=f;Y7(d,b);b=0;while(1){if((b|0)==4)break;g=d+(b*24|0)|0;HP(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Iab(a,d);yb=f;return}function t0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+80|0;d=f+24|0;e=f;X7(d,b);b=0;while(1){if((b|0)==2)break;g=d+(b*24|0)|0;Xwa(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Jab(a,d);yb=f;return}function u0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+80|0;d=f+24|0;e=f;Kjb(d,b);b=0;while(1){if((b|0)==2)break;g=d+(b*24|0)|0;aN(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Jab(a,d);yb=f;return}function v0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+80|0;d=f+24|0;e=f;X7(d,b);b=0;while(1){if((b|0)==2)break;g=d+(b*24|0)|0;aN(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Jab(a,d);yb=f;return}function w0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=yb;yb=yb+80|0;d=f+24|0;e=f;X7(d,b);b=0;while(1){if((b|0)==2)break;g=d+(b*24|0)|0;HP(e,g);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];b=b+1|0}Jab(a,d);yb=f;return}function x0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=(c[a+4>>2]|0)-(c[a>>2]|0)>>4;while(1){f=d+-1|0;if((d|0)<=0)break;e=c[a>>2]|0;d=c[e+(f<<4)>>2]|0;if(!(bCb(d)|0)){if(OBb(d)|0)u2(b,c[e+(f<<4)+4>>2]|0)|0}else rF(b,c[e+(f<<4)+4>>2]|0);d=f}return}function y0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;if(!(PBb(c[b>>2]|0)|0)){yb=g;return}e=c[a+24>>2]|0;a=Ffb(b)|0;c[f>>2]=a;b=e+4|0;d=c[b>>2]|0;if(d>>>0<(c[e+8>>2]|0)>>>0){c[d>>2]=a;c[b>>2]=(c[b>>2]|0)+4;yb=g;return}else{_M(e,f);yb=g;return}}function z0(a,b){a=a|0;b=b|0;b=C8(a,b)|0;if((b|0)==(a+4|0))return;GK(a,b)|0;return}function A0(a,b){a=a|0;b=b|0;b=C8(a,b)|0;if((b|0)==(a+4|0))return;HK(a,b)|0;return}function B0(a,b){a=a|0;b=b|0;b=C8(a,b)|0;if((b|0)==(a+4|0))return;IK(a,b)|0;return}function C0(a,b){a=a|0;b=b|0;b=C8(a,b)|0;if((b|0)==(a+4|0))return;JK(a,b)|0;return}function D0(a,b){a=a|0;b=b|0;b=C8(a,b)|0;if((b|0)==(a+4|0))return;KK(a,b)|0;return}function E0(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=b;d=+AAb(e);e=irb(d)|0;if((e&2147483647)>>>0>2139095040){Bqb(a,0);yb=f;return}if(_hb(b)|0){Bqb(a,~~+hb(+d));yb=f;return}if((e|0)<0){Bqb(a,-2147483648);yb=f;return}else{Bqb(a,2147483647);yb=f;return}}function F0(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);_Va(a);sV(a,c[b+20>>2]|0);sV(a,c[b+24>>2]|0);y9(a);yb=d;return}function G0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+32|0;f=e+24|0;d=e;c[f>>2]=b;OFa(d,a,f);n=0;ea(148,a|0,b|0,d|0);b=n;n=0;if(b&1){f=sa()|0;P()|0;TIa(d);Ea(f|0)}else{TIa(d);yb=e;return}}function H0(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=b+4|0;e=(c[d>>2]|0)-(c[b>>2]|0)|0;if(!e)return;n=0;da(235,a|0,e>>2|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Qcb(a);Ea(e|0)}Wva(a,c[b>>2]|0,c[d>>2]|0);return}function I0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=yb;yb=yb+16|0;e=d+4|0;g=d;f=c[b+12>>2]|0;h=qea(c[a+8>>2]|0,c[b+8>>2]|0)|0;c[g>>2]=h;c[e>>2]=c[g>>2];b=Ho(a,b,f,e,1)|0;yb=d;return b|0}function J0(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(24)|0;c[b>>2]=g;c[b+4>>2]=d+8;c[g+8>>2]=c[c[f>>2]>>2];ukb(g+12|0);a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function K0(a,b){a=a|0;b=b|0;if(!b)return;K0(a,c[b>>2]|0);K0(a,c[b+4>>2]|0);Nrb(b+16|0);RCb(b);return}function L0(a,b){a=a|0;b=b|0;a=oC(a,b)|0;if(a|0)return a+12|0;a=oa(8)|0;n=0;da(67,a|0,107428);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(a|0);Ea(b|0)}else{c[a>>2]=50808;za(a|0,39608,473)}return 0}function M0(b,d){b=b|0;d=d|0;var e=0;e=c[b>>2]|0;if((e|0)!=(c[d>>2]|0)){e=0;return e|0}switch(e|0){case 0:{e=dub(c[b+8>>2]|0,c[d+8>>2]|0)|0;return e|0}case 1:{e=+h[b+8>>3]==+h[d+8>>3];return e|0}case 2:{e=(b|0)==(d|0);return e|0}case 4:{e=((a[b+8>>0]^a[d+8>>0])&1)==0;return e|0}case 5:{e=(b|0)==(d|0);return e|0}case 3:{e=1;return e|0}default:Ta()}return 0}function N0(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=b+4|0;e=(c[d>>2]|0)-(c[b>>2]|0)|0;if(!e)return;n=0;da(1835,a|0,e|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Qcb(a);Ea(e|0)}sya(a,c[b>>2]|0,c[d>>2]|0);return}function O0(a){a=a|0;var b=0;m8(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function P0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;e=i2(a+44|0,b+8|0)|0;b=WCb(c[a+16>>2]|0)|0;c[f>>2]=b;a=e+4|0;d=c[a>>2]|0;if(d>>>0<(c[e+8>>2]|0)>>>0){c[d>>2]=b;c[a>>2]=(c[a>>2]|0)+4;yb=g;return}else{_M(e,f);yb=g;return}}function Q0(b,d){b=b|0;d=d|0;if(a[b+33>>0]&1)BM(IWa(150620,112891)|0);if((c[(c[d+12>>2]|0)+4>>2]|0)==6)return;if((c[(c[d+16>>2]|0)+4>>2]|0)==6)return;tI(tI(c[b+28>>2]|0,-2)|0,0)|0;G5(b,4,4,0);return}function R0(a,b){a=a|0;b=b|0;if(!b)return;R0(a,c[b>>2]|0);R0(a,c[b+4>>2]|0);Nrb(b+16|0);RCb(b);return}function S0(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;DA(d,a,c[b>>2]|0,f);yb=e;return (c[d>>2]|0)+20|0}function T0(){var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;QKa(151020);c[37755]=47752;c[37763]=46520;c[37765]=151076;c[37767]=-1;a[151072]=0;wjb(b,c[37756]|0);n=0;da(30,151020,b|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;XWa(b);nlb(151020);Ea(e|0)}else{XWa(b);yb=d;return}}function U0(){var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;RKa(150956);c[37739]=47816;c[37747]=46520;c[37749]=151012;c[37751]=-1;a[151008]=0;wjb(b,c[37740]|0);n=0;da(31,150956,b|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;XWa(b);olb(150956);Ea(e|0)}else{XWa(b);yb=d;return}}function V0(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);_Va(a);sV(a,c[b+12>>2]|0);sV(a,c[b+16>>2]|0);y9(a);yb=d;return}function W0(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+2496|0;g=c[b>>2]|0;d=((g+1|0)>>>0)%624|0;e=a+(g<<2)|0;f=c[a+(d<<2)>>2]|0;c[e>>2]=c[a+((((g+397|0)>>>0)%624|0)<<2)>>2]^(c[e>>2]&-2147483648|f&2147483646)>>>1^0-(f&1)&-1727483681;a=c[a+(c[b>>2]<<2)>>2]|0;a=a^a>>>11;c[b>>2]=d;a=a^a<<7&-1658038656;a=a^a<<15&-272236544;return a^a>>>18|0}function X0(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+4>>2]|0;e=a+8|0;while(1){b=c[e>>2]|0;if((d|0)==(b|0))break;f=b+-4|0;c[e>>2]=f;b=c[f>>2]|0;c[f>>2]=0;if(b|0){kSa(b);RCb(b)}}b=c[a>>2]|0;if(!b)return;RCb(b);return}function Y0(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);_Va(a);sV(a,c[b+24>>2]|0);sV(a,c[b+28>>2]|0);y9(a);yb=d;return}function Z0(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;if((d|0)==1)b=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)|0;e=a+20|0;f=a+28|0;if((c[e>>2]|0)>>>0>(c[f>>2]|0)>>>0?(Hb[c[a+36>>2]&255](a,0,0)|0,(c[e>>2]|0)==0):0)b=-1;else{c[a+16>>2]=0;c[f>>2]=0;c[e>>2]=0;if((Hb[c[a+40>>2]&255](a,b,d)|0)<0)b=-1;else{c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=c[a>>2]&-17;b=0}}return b|0}function _0(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(40)|0;c[b>>2]=g;c[b+4>>2]=d+8;c[g+8>>2]=c[c[f>>2]>>2];egb(g+16|0);a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function $0(a,b){a=a|0;b=b|0;var e=0,f=0;Mpb(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);e=0;while(1){if((e|0)==16)break;f=IWa(a,111730)|0;Ym(f,d[b+e>>0]|0)|0;if((e|0)!=15)IWa(a,139961)|0;e=e+1|0}Npb(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function a1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;d=c[a+8>>2]|0;e=c[a+4>>2]|0;if((d|0)==(e|0))e=0;else e=(d-e<<8)+-1|0;d=a+20|0;if((e|0)==((c[a+16>>2]|0)+(c[d>>2]|0)|0))ji(a);Vda(f,a);c[c[f+4>>2]>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+1;yb=g;return}function b1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;d=c[a+8>>2]|0;e=c[a+4>>2]|0;if((d|0)==(e|0))e=0;else e=(d-e<<8)+-1|0;d=a+20|0;if((e|0)==((c[a+16>>2]|0)+(c[d>>2]|0)|0))ki(a);Vda(f,a);c[c[f+4>>2]>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+1;yb=g;return}function c1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;f=INa(1)|0;KJa(WCb(f)|0,b)|0;b=WCb(INa(3)|0)|0;b=KJa(b,WGa(148840)|0)|0;Pwb(d,KJa(KJa(b,dWa(a)|0)|0,f)|0);yb=e;return c[d>>2]|0}function d1(a){a=a|0;var b=0;jTa(a);c[a>>2]=43792;c[a+140>>2]=1;b=a+144|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+160>>2]=1.0;b=a+164|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+180>>2]=1.0;b=a+184|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+200>>2]=1.0;return}function e1(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+16|0;g=f;c[g>>2]=b;if((Mba(a+48|0,g)|0)!=(a+52|0))ma(79178,79112,128,79214);mka(a,b,d);if(e|0?(c[e+4>>2]|0)==(c[b+4>>2]|0):0){yb=f;return}sz(a,b);yb=f;return}function f1(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=b;d=+AAb(e);e=irb(d)|0;if((e&2147483647)>>>0>2139095040){Bqb(a,0);yb=f;return}if(Zhb(b)|0){Bqb(a,~~+hb(+d)>>>0);yb=f;return}if((e|0)<0){Bqb(a,0);yb=f;return}else{Bqb(a,-1);yb=f;return}}function g1(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;e=i+12|0;f=i+8|0;g=i+4|0;h=i;Gsb(f,a);if(!b)Cub(g);else Zsb(g,b);f=c[f>>2]|0;c[e>>2]=c[g>>2];e=HTa(f,e,d)|0;if(!(c[37104]|0)){yb=i;return e|0}Pwb(h,b);Gg(e,56540,c[h>>2]|0,d);yb=i;return e|0}function h1(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(!(c[37104]|0)){b=a;b=c[b>>2]|0;yb=d;return b|0}else{e=IWa(150452,57349)|0;a=O8(148192,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;b=c[b>>2]|0;b=c[b>>2]|0;yb=d;return b|0}return 0}function i1(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;if((a|0)!=(b|0)){e=ti(a,b,d)|0;if((e|0)==(a|0))e=Wx(a,b,d)|0;if((e|0)!=(a|0)?(f=c[d+4>>2]|0,(c[d>>2]|0)!=(f|0)):0)IGa(f+-24|0,0,139999)|0;else e=a}else e=a;return e|0}function j1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=eCb(c[b+4>>2]|0)|0;e=c[b+8>>2]|0;d=Cda(a,c[b+12>>2]|0)|0;b=c[a+32>>2]|0;if(f){f=qVa(b,e,d)|0;return f|0}else{f=tVa(b,e,d)|0;return f|0}return 0}function k1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;f=d;e=DQ(a,f,b+16|0)|0;i8(a,c[f>>2]|0,e,b);yb=d;return b|0}function l1(a,b){a=a|0;b=b|0;var c=0,d=0;d=yb;yb=yb+48|0;c=d;Dxa(c,b);n=0;da(4071,c|0,a|0);b=n;n=0;if(b&1){d=sa()|0;P()|0;SUa(c);Ea(d|0)}else{SUa(c);yb=d;return}}function m1(b,d){b=b|0;d=d|0;var e=0,f=0;if(a[b+33>>0]&1){f=IWa(150620,113133)|0;e=c[b+28>>2]|0;BM(Ym(f,(c[e+4>>2]|0)-(c[e>>2]|0)+1|0)|0)}TW(b,d);return}function n1(a,b){a=a|0;b=b|0;if((a|0)==(b|0))return;c[a+16>>2]=c[b+16>>2];uo(a,c[b+8>>2]|0,0);return}function o1(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)!=1){e=0;return e|0}e=Ihb(c[b+4>>2]|0)|0;a[e+8>>0]=16;c[e+32>>2]=5;EI(b,e+16|0,e+12|0);a[e+20>>0]=0;f=rl(b)|0;c[e+28>>2]=f;b=rl(b)|0;c[e+24>>2]=b;iHa(e);c[d>>2]=e;e=1;return e|0}function p1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=yb;yb=yb+16|0;d=f;if(!(c[a+44>>2]|0)){w_a(d,WCb(c[a+36>>2]|0)|0);g=a+44|0;h=c[d>>2]|0;c[d>>2]=0;e=c[g>>2]|0;c[g>>2]=h;if(e|0)RCb(e);c[d>>2]=0}e1a(a+16|0,b);yb=f;return}function q1(b,d){b=b|0;d=d|0;var e=0,f=0;if(a[b+33>>0]&1){f=IWa(150620,113175)|0;e=c[b+28>>2]|0;BM(Ym(f,(c[e+4>>2]|0)-(c[e>>2]|0)+1|0)|0)}TW(b,d);return}function r1(a,b){a=a|0;b=b|0;var d=0;if((K0a(WCb(b)|0)|0)!=1?(d=rrb(b,1)|0,K0a(WCb(c[d>>2]|0)|0)|0):0){hfa(a,123);d=a+16|0;c[d>>2]=(c[d>>2]|0)+1;BIa(a);b=rrb(b,1)|0;U_(a,c[b>>2]|0);c[d>>2]=(c[d>>2]|0)+-1;BIa(a);hfa(a,125);return}Qua(a,66735);return}function s1(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;c[a>>2]=50024;e=a+8|0;f=a+12|0;d=0;while(1){b=c[e>>2]|0;if(d>>>0>=(c[f>>2]|0)-b>>2>>>0)break;b=c[b+(d<<2)>>2]|0;if(b|0?(h=b+4|0,g=c[h>>2]|0,c[h>>2]=g+-1,(g|0)==0):0)Rb[c[(c[b>>2]|0)+8>>2]&1023](b);d=d+1|0}Chb(a+144|0);sGa(e);return}function t1(b){b=b|0;var d=0;d=c[b>>2]|0;if(!(dub(c[d+8>>2]|0,c[b+4>>2]|0)|0))ma(95477,94804,406,95496);if(!(a[b+8>>0]&1))return;if(!(c[d+48>>2]|0))return;d=RE(d)|0;if((d|0)==(c[b+12>>2]|0))return;cqb();n=0;ca(491,95502);d=n;n=0;if(d&1){sa()|0;P()|0;iSa()}else iSa()}function u1(b){b=b|0;var d=0,e=0,f=0;d=0;while(1){if(d>>>0>=(xmb(b)|0)>>>0){d=0;b=8;break}e=Vr(b,d)|0;if(((UBb(a[e>>0]|0)|0?xmb(e)|0:0)?(f=Vr(e,0)|0,$Bb(a[f>>0]|0)|0):0)?(f=kH(Vr(e,0)|0)|0,dub(f,c[37390]|0)|0):0){d=1;b=8;break}d=d+1|0}if((b|0)==8)return d|0;return 0}function v1(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;yib(b+12|0);c[b+24>>2]=d;c[b+28>>2]=e;a[b+32>>0]=f&1;a[b+33>>0]=g&1;g=c[d+64>>2]|0;WCb(g)|0;c[b+36>>2]=g+152;yib(b+44|0);c[b+56>>2]=0;c[b+60>>2]=0;c[b+64>>2]=0;return}function w1(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[i>>3]=a;d=c[i>>2]|0;e=c[i+4>>2]|0;f=U4a(d|0,e|0,52)|0;P()|0;switch(f&2047){case 0:{if(a!=0.0){a=+w1(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[i>>2]=d;c[i+4>>2]=e&-2146435073|1071644672;a=+h[i>>3]}}return +a}function x1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;b=qea(c[a+8>>2]|0,b)|0;c[f>>2]=b;a=c[a>>2]|0;c[e>>2]=c[f>>2];a=dWa(Kha(a,e,1)|0)|0;yb=d;return a|0}function y1(a,b){a=a|0;b=b|0;if(!b)return;y1(a,c[b>>2]|0);y1(a,c[b+4>>2]|0);RCb(b);return}function z1(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=b+68|0;e=b+48|0;f=b+44|0;g=b+16|0;while(1){$6(e);if(a[f>>0]&1)Ec(b,c);a[d>>0]=0;CYa(g,c);if(!(a[f>>0]&1)){b=6;break}if(!(a[d>>0]&1)){b=6;break}}if((b|0)==6)return}function A1(a){a=a|0;var b=0;b=yb;yb=yb+16|0;n=0;ba(a|0);a=n;n=0;if(!(a&1)){n=0;da(4193,139434,b|0);n=0}a=ta(0)|0;P()|0;pa(a|0)|0;n=0;da(4193,139474,b+8|0);n=0;a=ta(0)|0;P()|0;n=0;ba(5);b=n;n=0;if(b&1){b=ta(0)|0;P()|0;yub(b)}else yub(a)}function B1(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=d+16|0;while(1){d=a;if((a|0)==(b|0)){e=11;break}if(VBa(c[f>>2]|0,a)|0)break;a=a+24|0}if((e|0)==11)return a|0;while(1){a=a+24|0;if((a|0)==(b|0))break;if(!(VBa(c[f>>2]|0,a)|0)){LS(d,a);d=d+24|0}}b=d;return b|0}function C1(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+96|0;e=f;if(!(dub(c[d+8>>2]|0,c[b+36>>2]|0)|0)){yb=f;return}if(c[d+16>>2]|0){g=b+44|0;c[g>>2]=(c[g>>2]|0)+1}VA(e,c[b+52>>2]|0,c[d+12>>2]|0);g=QGa(e)|0;Fha(e);if(!g){yb=f;return}a[b+40>>0]=1;yb=f;return}function D1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;f=d+4|0;e=d;a=a+28|0;tI(c[a>>2]|0,-4)|0;g=c[a>>2]|0;Pwb(f,8);YA(g,c[f>>2]|0)|0;a=c[a>>2]|0;Pwb(e,c[b+8>>2]|0);tI(YA(a,c[e>>2]|0)|0,0)|0;yb=d;return}function E1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d;f=WCb(INa(3)|0)|0;a=KJa(KJa(f,WGa(148840)|0)|0,a)|0;Pwb(e,KJa(a,INa(0)|0)|0);a=c[e>>2]|0;e=rrb(a,2)|0;KJa(WCb(c[e>>2]|0)|0,b)|0;yb=d;return a|0}function F1(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;l=yb;yb=yb+16|0;i=l;j=d+4|0;k=d+8|0;do{e=b&127;b=b>>>7;f=eCb(b)|0;g=e|-128;a[i>>0]=f?g:e;h=c[j>>2]|0;if((h|0)==(c[k>>2]|0))qN(d,i);else{a[h>>0]=f?g:e;c[j>>2]=(c[j>>2]|0)+1}}while(f);yb=l;return}function G1(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=yb;yb=yb+32|0;c=d;H6a(c,a+44|0);n=0;da(2076,c|0,b|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Arb(c);Ea(e|0)}else{Arb(c);JTa(a+16|0,b);yb=d;return}}function H1(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;c[a>>2]=b;c[a+4>>2]=d;e=(d>>>5)+((d&31|0)!=0&1)|0;c[a+12>>2]=e;b=(d>>>0)/(e>>>0)|0;c[a+8>>2]=b;c[a+20>>2]=0;c[a+16>>2]=e-((d>>>0)%(e>>>0)|0);c[a+24>>2]=0;c[a+28>>2]=e>>>0>d>>>0?0:-1>>>(32-b|0);c[a+32>>2]=b>>>0<31?-1>>>(31-b|0):-1;return}function I1(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[a>>2]|0;if(!e)return;f=a+4|0;b=c[f>>2]|0;while(1){if((e|0)==(b|0))break;b=b+-4|0;d=c[b>>2]|0;c[b>>2]=0;if(d|0){kSa(d);RCb(d)}}c[f>>2]=e;RCb(c[a>>2]|0);return}function J1(b,d){b=b|0;d=d|0;var e=0,f=0;hfa(b,91);e=rrb(d,1)|0;e=c[e>>2]|0;d=0;while(1){if(d>>>0>=(K0a(WCb(e)|0)|0)>>>0)break;do if(d|0)if(!(a[b>>0]&1)){hfa(b,44);break}else{Qua(b,140151);break}while(0);f=rrb(e,d)|0;Xi(b,c[f>>2]|0);d=d+1|0}hfa(b,93);return}function K1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+416|0;d=f+24|0;e=f;rjb(d,b);b=0;while(1){if(b>>>0>=16){b=6;break}cmb(e,c[d+(b*24|0)+16>>2]|0);if(Opb(d+(b*24|0)|0,e)|0){b=4;break}b=b+1|0}if((b|0)==4){Bqb(a,1);yb=f;return}else if((b|0)==6){Bqb(a,0);yb=f;return}}function L1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+416|0;d=f+24|0;e=f;rjb(d,b);b=0;while(1){if(b>>>0>=16){b=6;break}cmb(e,c[d+(b*24|0)+16>>2]|0);if(yda(d+(b*24|0)|0,e)|0){b=4;break}b=b+1|0}if((b|0)==4){Bqb(a,0);yb=f;return}else if((b|0)==6){Bqb(a,1);yb=f;return}}function M1(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;Pwb(e,b);c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=c[e>>2];Pwb(e,b);jSa(a+16|0,e);Pwb(e,b);jSa(a+32|0,e);yb=d;return}function N1(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=b+11|0;e=a[f>>0]|0;g=e<<24>>24<0;if(g)e=c[b+4>>2]|0;else e=e&255;do if(e>>>0>=d>>>0)if(g){Fsb((c[b>>2]|0)+d|0,0);c[b+4>>2]=d;break}else{Fsb(b+d|0,0);a[f>>0]=d;break}else TQ(b,d-e|0)|0;while(0);return}function O1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((c[a+4>>2]|0)!=(c[b+4>>2]|0)){e=0;return e|0}e=c[a+8>>2]|0;a=(c[a+12>>2]|0)-e|0;f=c[b+8>>2]|0;d=f;if((a|0)!=((c[b+12>>2]|0)-f|0)){f=0;return f|0}b=a>>2;a=0;while(1){if(a>>>0>=b>>>0){a=1;b=7;break}if((c[e+(a<<2)>>2]|0)!=(c[d+(a<<2)>>2]|0)){a=0;b=7;break}a=a+1|0}if((b|0)==7)return a|0;return 0}function P1(b,d){b=b|0;d=d|0;if(a[b+33>>0]&1)BM(IWa(150620,113073)|0);yIa(b,c[d+12>>2]|0);TW(b,d);return}function Q1(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;c[f+8>>2]=e;e=c[a+28>>2]|0;b=c[a+24>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(!(Yrb(d)|0))Bm(f,d);b=b+4|0}yb=g;return}function R1(a,b){a=+a;b=b|0;var d=0,e=0;if((b|0)<=1023){if((b|0)<-1022){a=a*2.2250738585072014e-308;e=(b|0)<-2044;d=b+2044|0;a=e?a*2.2250738585072014e-308:a;b=e?((d|0)>-1022?d:-1022):b+1022|0}}else{a=a*8988465674311579538646525.0e283;d=(b|0)>2046;e=b+-2046|0;a=d?a*8988465674311579538646525.0e283:a;b=d?((e|0)<1023?e:1023):b+-1023|0}d=X2a(b+1023|0,0,52)|0;e=P()|0;c[i>>2]=d;c[i+4>>2]=e;return +(a*+h[i>>3])}function S1(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(16)|0;c[b>>2]=g;c[b+4>>2]=d+8;c[g+8>>2]=c[c[f>>2]>>2];Cub(g+12|0);a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function T1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+224|0;d=f+24|0;e=f;Cjb(d,b);b=0;while(1){if(b>>>0>=8){b=6;break}cmb(e,c[d+(b*24|0)+16>>2]|0);if(Opb(d+(b*24|0)|0,e)|0){b=4;break}b=b+1|0}if((b|0)==4){Bqb(a,1);yb=f;return}else if((b|0)==6){Bqb(a,0);yb=f;return}}function U1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+224|0;d=f+24|0;e=f;Cjb(d,b);b=0;while(1){if(b>>>0>=8){b=6;break}cmb(e,c[d+(b*24|0)+16>>2]|0);if(yda(d+(b*24|0)|0,e)|0){b=4;break}b=b+1|0}if((b|0)==4){Bqb(a,0);yb=f;return}else if((b|0)==6){Bqb(a,1);yb=f;return}}function V1(a,b){a=a|0;b=b|0;if(!b)return;V1(a,c[b>>2]|0);V1(a,c[b+4>>2]|0);RCb(b);return}function W1(a){a=a|0;var b=0;Dha(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function X1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+128|0;d=f+24|0;e=f;Ljb(d,b);b=0;while(1){if(b>>>0>=4){b=6;break}cmb(e,c[d+(b*24|0)+16>>2]|0);if(Opb(d+(b*24|0)|0,e)|0){b=4;break}b=b+1|0}if((b|0)==4){Bqb(a,1);yb=f;return}else if((b|0)==6){Bqb(a,0);yb=f;return}}function Y1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+128|0;d=f+24|0;e=f;Ljb(d,b);b=0;while(1){if(b>>>0>=4){b=6;break}cmb(e,c[d+(b*24|0)+16>>2]|0);if(yda(d+(b*24|0)|0,e)|0){b=4;break}b=b+1|0}if((b|0)==4){Bqb(a,0);yb=f;return}else if((b|0)==6){Bqb(a,1);yb=f;return}}function Z1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;anb(d,a);n=0;a=U(66,c[d>>2]|0,151356)|0;f=n;n=0;if(!(f&1)?(n=0,W(c[(c[a>>2]|0)+48>>2]|0,a|0,31216,31242,b|0)|0,f=n,n=0,!(f&1)):0){XWa(d);yb=e;return b|0}f=sa()|0;P()|0;XWa(d);Ea(f|0);return 0}function _1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+80|0;d=f+24|0;e=f;Kjb(d,b);b=0;while(1){if(b>>>0>=2){b=6;break}cmb(e,c[d+(b*24|0)+16>>2]|0);if(Opb(d+(b*24|0)|0,e)|0){b=4;break}b=b+1|0}if((b|0)==4){Bqb(a,1);yb=f;return}else if((b|0)==6){Bqb(a,0);yb=f;return}}function $1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+80|0;d=f+24|0;e=f;Kjb(d,b);b=0;while(1){if(b>>>0>=2){b=6;break}cmb(e,c[d+(b*24|0)+16>>2]|0);if(yda(d+(b*24|0)|0,e)|0){b=4;break}b=b+1|0}if((b|0)==4){Bqb(a,0);yb=f;return}else if((b|0)==6){Bqb(a,1);yb=f;return}}function a2(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;e=c[a+40>>2]|0;b=c[a+36>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(!(Yrb(d)|0))lna(f,d);b=b+4|0}yb=g;return}function b2(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+4>>2]|0;e=a+8|0;while(1){b=c[e>>2]|0;if((d|0)==(b|0))break;f=b+-4|0;c[e>>2]=f;b=c[f>>2]|0;c[f>>2]=0;if(b|0){lTa(b);RCb(b)}}b=c[a>>2]|0;if(!b)return;RCb(b);return}function c2(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;f=c[a+4>>2]|0;a=c[a>>2]|0;while(1){if((a|0)==(f|0))break;b=c[a>>2]|0;if((b|0?(g=Rqb(c[b+4>>2]|0)|0,g|0):0)?(c[e>>2]=c[g+8>>2],c[d>>2]=c[e>>2],!(BT(g,d)|0)):0)c[a>>2]=0;a=a+4|0}yb=h;return}function d2(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+48|0;e=g+24|0;f=g;switch(c[b+16>>2]|0){case 3:{Bqb(e,c[b>>2]&2147483647|c[d>>2]&-2147483648);r_a(a,e);yb=g;return}case 4:{e=b;Heb(f,c[e>>2]|0,c[e+4>>2]&2147483647|c[d+4>>2]&-2147483648);qUa(a,f);yb=g;return}default:ma(141129,111484,917,112161)}}function e2(a,b,c){a=a|0;b=b|0;c=c|0;Dlb(a,c);Vkb(a,b);c=a+-16|0;R$a(c+16|0,b);b7(c,b);Vkb(a,0);Dlb(a,0);return}function f2(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;if(((c[d>>2]|0)+-1|0)>>>0<3)IW(a,2685,b);ne(a,b);if(((c[d>>2]|0)+-1|0)>>>0>=3)return;IW(a,2686,b);return}function g2(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=yb;yb=yb+16|0;d=f;KDa(d,a+44|0,b);g=a+48|0;h=c[d>>2]|0;c[d>>2]=0;e=c[g>>2]|0;c[g>>2]=h;if(e|0){STa(e);RCb(e)}c[d>>2]=0;SD(a+16|0,b);yb=f;return}function h2(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;f=d;e=hR(a,f,b+16|0)|0;i8(a,c[f>>2]|0,e,b);yb=d;return b|0}function i2(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;sy(d,a,b,f);yb=e;return (c[d>>2]|0)+40|0}function j2(a){a=a|0;var b=0,c=0;c=yb;yb=yb+16|0;b=c;DO(b,a,138705);n=0;ca(580,b|0);a=n;n=0;if(a&1){c=sa()|0;P()|0;Chb(b);Ea(c|0)}else{Chb(b);yb=c;return}}function k2(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;j=b+8|0;j=Eb[c[(c[j>>2]|0)+20>>2]&511](j)|0;i=a[j+8+3>>0]|0;k=i<<24>>24<0;l=k?c[j>>2]|0:j;return Lh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,l,l+((k?c[j+4>>2]|0:i&255)<<2)|0)|0}function l2(b,d,e){b=b|0;d=d|0;e=e|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;yib(b+12|0);c[b+24>>2]=d;c[b+28>>2]=e;a[b+32>>0]=0;a[b+33>>0]=0;e=c[d>>2]|0;WCb(e)|0;c[b+36>>2]=e+152;yib(b+44|0);c[b+56>>2]=0;c[b+60>>2]=0;c[b+64>>2]=0;return}function m2(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;e=c[a+28>>2]|0;b=c[a+24>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(!(Yrb(d)|0))sW(f,d);b=b+4|0}yb=g;return}function n2(a){a=a|0;var b=0,c=0;c=yb;yb=yb+16|0;b=c;DO(b,a,138689);n=0;ca(581,b|0);a=n;n=0;if(a&1){c=sa()|0;P()|0;Chb(b);Ea(c|0)}else{Chb(b);yb=c;return}}function o2(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+1040|0;g=i+1024|0;e=i;h=c[37419]|0;f=dya(ORa(d,e)|0,e)|0;if(!(a[f>>0]|0)){c[g>>2]=d;p_a(e,1024,138771,g)|0}else e=f;c[37419]=h;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;D8(b,e,Zzb(e)|0);yb=i;return}function p2(a){a=a|0;var b=0,d=0;d=pob(c[(c[a>>2]|0)+40>>2]|0)|0;a=a+4|0;b=c[c[a>>2]>>2]|0;if(__(d,c[b+12>>2]|0,c[b+16>>2]|0)|0){d=c[c[a>>2]>>2]|0;a=d+12|0;d=d+16|0;b=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=b;return}else ma(89821,89176,739,140271)}function q2(b){b=b|0;if(a[b+26>>0]&1){b=1;return b|0}if(a[b+27>>0]&1){b=1;return b|0}if(Gqb(c[b+36>>2]|0,c[b+48>>2]|0)|0){b=1;return b|0}if(a[b+76>>0]&1){b=1;return b|0}if(a[b+77>>0]&1){b=1;return b|0}if(Gqb(c[b+60>>2]|0,c[b+72>>2]|0)|0){b=1;return b|0}if(a[b+78>>0]&1){b=1;return b|0}b=(a[b+79>>0]&1)!=0;return b|0}function r2(a){a=a|0;var b=0,d=0,e=0,f=0;f=yb;yb=yb+16|0;b=f+4|0;c[b>>2]=a;d=f;e=WCb(INa(2)|0)|0;e=KJa(e,WGa(148852)|0)|0;if(plb(a)|0)a=yTa()|0;else a=WGa(b)|0;Pwb(d,KJa(e,a)|0);yb=f;return c[d>>2]|0}function s2(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+32|0;f=e+28|0;d=e;c[f>>2]=b;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;rqb(d);c[d+24>>2]=a;n=0;da(1796,d|0,f|0);b=n;n=0;if(b&1){f=sa()|0;P()|0;Arb(d);Vob(a);Ea(f|0)}else{Arb(d);yb=e;return}}function t2(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+32|0;f=e+24|0;d=e;c[f>>2]=b;LIa(d,a,f);n=0;ea(149,a|0,b|0,d|0);b=n;n=0;if(b&1){f=sa()|0;P()|0;TIa(d);Ea(f|0)}else{TIa(d);yb=e;return}}function u2(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[a>>2]|0;g=a+4|0;f=c[g>>2]|0;h=Dna(d,f,b)|0;e=f;if((h|0)==(f|0)){a=0;return a|0}if((c[h>>2]|0)!=(b|0)){a=0;return a|0}b=h+4|0;f=e-b|0;if(f){Pxa(h|0,b|0,f|0)|0;e=c[g>>2]|0;d=c[a>>2]|0}eva(a,(e-d>>2)+-1|0);a=1;return a|0}function v2(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+32|0;f=e+28|0;d=e;c[f>>2]=b;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;rqb(d);c[d+24>>2]=a;n=0;da(436,d|0,f|0);b=n;n=0;if(b&1){f=sa()|0;P()|0;Arb(d);Vob(a);Ea(f|0)}else{Arb(d);yb=e;return}}function w2(a,b){a=a|0;b=b|0;var d=0,e=0;d=jeb(c[a+4>>2]|0)|0;e=$db(a,Vr(b,1)|0)|0;c[d+8>>2]=e;e=$db(a,Vr(b,2)|0)|0;c[d+12>>2]=e;b=$db(a,Vr(b,3)|0)|0;c[d+16>>2]=b;Kja(d);return d|0}function x2(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;e=(c[b+4>>2]|0)-(c[b>>2]|0)>>2;n=0;da(551,a|0,e|0);d=n;n=0;if(d&1){e=sa()|0;P()|0;Vob(a);Ea(e|0)}d=0;while(1){if((d|0)==(e|0))break;c[(c[a>>2]|0)+(c[(c[b>>2]|0)+(d<<2)>>2]<<2)>>2]=d;d=d+1|0}return}function y2(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=5;else{d=f;while(1){if(!(a[b>>0]|0)){b=d;break a}b=b+1|0;d=b;if(!(d&3)){e=5;break}}}while(0);if((e|0)==5){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 z2(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;b=c[b>>2]|0;a=Iga(b,c[a+4>>2]|0,d)|0;if((a|0)!=(d|0)?(b|0)>=(c[a+16>>2]|0):0){d=a;return d|0}return d|0}function A2(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g+4|0;f=g;a=a+4|0;d=c[a>>2]|0;if(!(c[b+16>>2]|0))Obb(d,98307)|0;else Obb(d,98300)|0;c[f>>2]=c[b+8>>2];b=c[a>>2]|0;c[e>>2]=c[f>>2];Ica(e,b)|0;yb=g;return}function B2(b,d){b=b|0;d=d|0;if(a[b+33>>0]&1)BM(IWa(150620,112719)|0);yIa(b,c[d+8>>2]|0);TW(b,d);return}function C2(){var b=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;a[f>>0]=10;b=c[11697]|0;if(!b)if(!(hla(46772)|0)){b=c[11697]|0;e=4}else b=-1;else e=4;do if((e|0)==4){e=c[11698]|0;if(!(e>>>0>=b>>>0|(a[46847]|0)==10)){c[11698]=e+1;a[e>>0]=10;b=10;break}if((Hb[c[46808>>2]&255](46772,f,1)|0)==1)b=d[f>>0]|0;else b=-1}while(0);yb=g;return b|0}function D2(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+32|0;f=e+28|0;d=e;c[f>>2]=b;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;rqb(d);c[d+24>>2]=a;n=0;da(477,d|0,f|0);b=n;n=0;if(b&1){f=sa()|0;P()|0;Arb(d);Vob(a);Ea(f|0)}else{Arb(d);yb=e;return}}function E2(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a>>2]=b;c[a+12>>2]=0;e=a+16|0;G0a(e);d=a+40|0;c[d>>2]=0;c[a+4>>2]=1;c[a+8>>2]=b;b=0;while(1){if(b|0){b=5;break}n=0;b=S(326,a|0)|0;f=n;n=0;if(f&1){b=6;break}c[d>>2]=b}if((b|0)==5)return;else if((b|0)==6){f=sa()|0;P()|0;ETa(e);Ea(f|0)}}function F2(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;c[f+8>>2]=e;e=c[a+28>>2]|0;b=c[a+24>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(!(Yrb(d)|0))rla(f,d);b=b+4|0}yb=g;return}function G2(a){a=a|0;var b=0,d=0,e=0,f=0;f=yb;yb=yb+16|0;b=f+4|0;c[b>>2]=a;d=f;e=WCb(INa(2)|0)|0;e=KJa(e,WGa(148848)|0)|0;if(plb(a)|0)a=yTa()|0;else a=WGa(b)|0;Pwb(d,KJa(e,a)|0);yb=f;return c[d>>2]|0}function H2(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+32|0;f=e+28|0;d=e;c[f>>2]=b;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;rqb(d);c[d+24>>2]=a;n=0;da(476,d|0,f|0);b=n;n=0;if(b&1){f=sa()|0;P()|0;Arb(d);Vob(a);Ea(f|0)}else{Arb(d);yb=e;return}}function I2(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+32|0;f=e+28|0;d=e;c[f>>2]=b;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;rqb(d);c[d+24>>2]=a;n=0;da(2606,d|0,f|0);b=n;n=0;if(b&1){f=sa()|0;P()|0;Arb(d);Vob(a);Ea(f|0)}else{Arb(d);yb=e;return}}function J2(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=Eeb(c[b+4>>2]|0)|0;e=Vr(d,1)|0;e=$Bb(a[e>>0]|0)|0;g=f+12|0;e=e?2:1;while(1){if(e>>>0>=(xmb(d)|0)>>>0)break;Wla(g,$db(b,Vr(d,e)|0)|0);e=e+1|0}_u(f);return f|0}function K2(a){a=a|0;var b=0;r3a(a);c[a>>2]=44992;yib(a+44|0);yib(a+56|0);yib(a+68|0);c[a+80>>2]=0;c[a+84>>2]=0;c[a+88>>2]=0;jbb(a+96|0);a=a+132|0;b=a+48|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function L2(a){a=a|0;var b=0;s3a(a);c[a>>2]=45152;yib(a+44|0);yib(a+56|0);yib(a+68|0);c[a+80>>2]=0;c[a+84>>2]=0;c[a+88>>2]=0;jbb(a+96|0);a=a+132|0;b=a+48|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function M2(a){a=a|0;var b=0;t3a(a);c[a>>2]=45072;yib(a+44|0);yib(a+56|0);yib(a+68|0);c[a+80>>2]=0;c[a+84>>2]=0;c[a+88>>2]=0;jbb(a+96|0);a=a+132|0;b=a+48|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function N2(a){a=a|0;var b=0;u3a(a);c[a>>2]=45232;yib(a+44|0);yib(a+56|0);yib(a+68|0);c[a+80>>2]=0;c[a+84>>2]=0;c[a+88>>2]=0;jbb(a+96|0);a=a+132|0;b=a+48|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function O2(a){a=a|0;var b=0;v3a(a);c[a>>2]=45312;yib(a+44|0);yib(a+56|0);yib(a+68|0);c[a+80>>2]=0;c[a+84>>2]=0;c[a+88>>2]=0;jbb(a+96|0);a=a+132|0;b=a+48|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function P2(a){a=a|0;Oia(a+44|0);Pia(a+24|0);LXa(a+12|0);qGa(a);return}function Q2(a){a=a|0;var b=0;$da(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function R2(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;j=b+8|0;j=Eb[c[(c[j>>2]|0)+20>>2]&511](j)|0;i=a[j+11>>0]|0;k=i<<24>>24<0;l=k?c[j>>2]|0:j;return dh(b,c[d>>2]|0,c[e>>2]|0,f,g,h,l,l+(k?c[j+4>>2]|0:i&255)|0)|0}function S2(a,b){a=a|0;b=b|0;var d=0,e=0;fIa(a,Jvb(c[(c[a+44>>2]|0)+4>>2]|0)|0,b,130683);$va(a,c[b+4>>2]|0,b);e=c[b+8>>2]|0;d=c[a+36>>2]|0;WCb(d)|0;fIa(a,e>>>0<(c[d+112>>2]|0)-(c[d+108>>2]|0)>>4>>>0,b,130931);return}function T2(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;a[b+9>>0]=0;fy(b,e)|0;if(a[b+8>>0]&1)return;e=L3(b,e)|0;IWa(IWa(e,c)|0,126796)|0;hFa(d,e)|0;return}function U2(a,b){a=a|0;b=b|0;var d=0,e=0;w3a(a);c[a>>2]=45880;c[a+44>>2]=b;e=a+48|0;c[e>>2]=0;if(b|0)return;n=0;fa(75,110281,110230,283,110305);n=0;b=sa()|0;P()|0;d=c[e>>2]|0;c[e>>2]=0;if(d|0){STa(d);RCb(d)}gcb(a);Ea(b|0)}function V2(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}e=a+12|0;d=b+12|0;c[e>>2]=0;f=a+16|0;c[f>>2]=0;c[a+20>>2]=0;c[e>>2]=c[d>>2];e=b+16|0;c[f>>2]=c[e>>2];b=b+20|0;c[a+20>>2]=c[b>>2];c[b>>2]=0;c[e>>2]=0;c[d>>2]=0;return}function W2(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;yib(b+12|0);c[b+24>>2]=d;c[b+28>>2]=e;a[b+32>>0]=0;a[b+33>>0]=f&1;f=c[d+64>>2]|0;WCb(f)|0;c[b+36>>2]=f+152;yib(b+44|0);c[b+56>>2]=0;c[b+60>>2]=0;c[b+64>>2]=0;return}function X2(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;c[f+8>>2]=e;e=c[a+40>>2]|0;b=c[a+36>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(!(Yrb(d)|0))cda(f,d);b=b+4|0}yb=g;return}function Y2(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=0;b=b+8|0;d=a+4|0;e=c[d>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[e>>2]=0;c[e+4>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+8;yb=g;return}else{bH(a,f,b);yb=g;return}}function Z2(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Ria()|0;KJa(WCb(c[c[a>>2]>>2]|0)|0,e)|0;a=Q5(dWa(c[37105]|0)|0,d)|0;KQ(e,b,rma(E1(a,dWa(c[37152]|0)|0)|0)|0);return}function _2(a,b){a=a|0;b=b|0;b=C8(a,b)|0;if((b|0)==(a+4|0))return;iM(a,b)|0;return}function $2(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+4>>2]|0;e=a+8|0;while(1){b=c[e>>2]|0;if((d|0)==(b|0))break;f=b+-4|0;c[e>>2]=f;b=c[f>>2]|0;c[f>>2]=0;if(b|0){vXa(b);RCb(b)}}b=c[a>>2]|0;if(!b)return;RCb(b);return}function a3(a,b){a=a|0;b=b|0;var c=0;c=b<<1;b=(b|0)>-1?c:0-c|1;while(1){c=b&31;b=b>>>5;if(!b)break;do if(c>>>0>=20)if(c>>>0<30){c=c+28|0;break}else{c=(c|0)==30?43:47;break}else c=c+103|0;while(0);SEa(a,c&255)|0}SEa(a,c+(c>>>0<26?65:71)&255)|0;return}function b3(a){a=a|0;var b=0;Sca(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function c3(a,b){a=a|0;b=b|0;var d=0;d=rrb(b,1)|0;Ota(a,c[d>>2]|0,b,-1);Alb(a);hfa(a,63);Alb(a);d=rrb(b,2)|0;Ota(a,c[d>>2]|0,b,0);Alb(a);hfa(a,58);Alb(a);d=rrb(b,3)|0;Ota(a,c[d>>2]|0,b,1);return}function d3(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=pA(a,Vr(b,1)|0)|0;d=Xeb(c[a+4>>2]|0)|0;e=d+24|0;c[e>>2]=f;e=G7(a+52|0,e)|0;c[d+4>>2]=c[e>>2];yka(a,b,xmb(b)|0,d);Crb(d);return d|0}function e3(a,b){a=a|0;b=b|0;var d=0,e=0;d=Ifb(c[a+4>>2]|0)|0;e=$db(a,Vr(b,1)|0)|0;c[d+8>>2]=e;e=$db(a,Vr(b,2)|0)|0;c[d+12>>2]=e;b=$db(a,Vr(b,3)|0)|0;c[d+16>>2]=b;$ja(d);return d|0}function f3(a,b){a=a|0;b=b|0;var d=0,e=0;d=Jfb(c[a+4>>2]|0)|0;e=$db(a,Vr(b,1)|0)|0;c[d+8>>2]=e;e=$db(a,Vr(b,2)|0)|0;c[d+12>>2]=e;b=$db(a,Vr(b,3)|0)|0;c[d+16>>2]=b;aka(d);return d|0}function g3(a,b){a=a|0;b=b|0;yIa(a,c[b+12>>2]|0);yIa(a,c[b+20>>2]|0);TW(a,b);return}function h3(a,b){a=a|0;b=b|0;yIa(a,c[b+8>>2]|0);yIa(a,c[b+12>>2]|0);TW(a,b);return}function i3(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;g=yb;yb=yb+16|0;h=g+12|0;j=g+8|0;i=g+4|0;f=g;Gsb(j,a);Zsb(i,b);a=c[j>>2]|0;c[h>>2]=c[i>>2];a=nHa(a,h,e,d)|0;if(!(c[37104]|0)){yb=g;return a|0}Pwb(f,b);Fg(a,c[f>>2]|0,d,e);yb=g;return a|0}function j3(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[b+8>>2]|0;d=Cda(a,c[b+12>>2]|0)|0;b=Cda(a,c[b+16>>2]|0)|0;return hGa(c[a+32>>2]|0,e,d,b)|0}function k3(a,b){a=a|0;b=b|0;if(!b)return;k3(a,c[b>>2]|0);k3(a,c[b+4>>2]|0);Nrb(b+16|0);RCb(b);return}function l3(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+4>>2]|0;e=a+8|0;while(1){b=c[e>>2]|0;if((d|0)==(b|0))break;f=b+-4|0;c[e>>2]=f;b=c[f>>2]|0;c[f>>2]=0;if(b|0){oZa(b);RCb(b)}}b=c[a>>2]|0;if(!b)return;RCb(b);return}function m3(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=Ndb(j^a|0,i^b|0,j|0,i|0)|0;g=P()|0;a=f^j;b=e^i;return Ndb((Pk(h,g,Ndb(f^c|0,e^d|0,f|0,e|0)|0,P()|0,0)|0)^a|0,(P()|0)^b|0,a|0,b|0)|0}function n3(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[a>>2]|0;if(!e)return;f=a+4|0;b=c[f>>2]|0;while(1){if((e|0)==(b|0))break;b=b+-4|0;d=c[b>>2]|0;c[b>>2]=0;if(d|0){lTa(d);RCb(d)}}c[f>>2]=e;RCb(c[a>>2]|0);return}function o3(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;if(f>>>0>4294967279)ipa();if(f>>>0<11)a[b+11>>0]=e;else{g=f+16&-16;f=Stb(g)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=e;b=f}dib(b,d,e)|0;Fsb(b+e|0,0);return}function p3(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f;g=WCb(INa(4)|0)|0;a=KJa(KJa(KJa(g,WGa(148812)|0)|0,a)|0,b)|0;if(zgb(d)|0)d=yTa()|0;Pwb(e,KJa(a,d)|0);yb=f;return c[e>>2]|0}function q3(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+32|0;d=f;e=c[a>>2]|0;if((((c[a+8>>2]|0)-e|0)/24|0)>>>0>=b>>>0){yb=f;return}rR(d,b,((c[a+4>>2]|0)-e|0)/24|0,a+8|0);jT(a,d);wta(d);yb=f;return}function r3(a,b,c){a=a|0;b=b|0;c=c|0;if(!(c<<24>>24)){n=0;da(4187,1,135524);n=0;c=ta(0)|0;P()|0;yub(c)}n=0;b=U(213,a|0,b|0)|0;a=n;n=0;do if(!(a&1))if(!b)return;else{n=0;da(4187,b|0,135567);n=0;break}while(0);a=ta(0)|0;P()|0;yub(a)}function s3(a,b){a=a|0;b=b|0;yIa(a,c[b+12>>2]|0);yIa(a,c[b+16>>2]|0);TW(a,b);return}function t3(a,b){a=a|0;b=b|0;if(!b)return;t3(a,c[b>>2]|0);t3(a,c[b+4>>2]|0);RCb(b);return}function u3(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=j6(b)|0;Jaa(b,(a[d+11>>0]|0)<0?c[d>>2]|0:d);i=d+16|0;g=d+12|0;e=b+68|0;d=0;while(1){f=c[g>>2]|0;if(d>>>0>=((c[i>>2]|0)-f|0)>>>0)break;Hmb(c[e>>2]|0,a[f+d>>0]|0);d=d+1|0}gF(b,h);return}function v3(a){a=a|0;var b=0;Dfa(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function w3(b){b=b|0;var d=0,e=0,f=0,g=0;d=b+44|0;f=c[d>>2]|0;e=c[b+24>>2]|0;g=e;if(f>>>0>>0)c[d>>2]=g;else{e=f;g=f}if(!(c[b+48>>2]&8)){g=-1;return g|0}f=b+16|0;d=c[f>>2]|0;b=c[b+12>>2]|0;if(d>>>0>>0){c[f>>2]=g;d=g}if(b>>>0>=d>>>0){g=-1;return g|0}g=Qzb(a[b>>0]|0)|0;return g|0}function x3(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a>>2]|0;NCa(a+8|0);RCb(a);a=b}return}function y3(b){b=b|0;var d=0,e=0,f=0;Ysb(b);a[b+8>>0]=0;e=b+12|0;Cub(e);j6a(b+16|0,0,0);j6a(b+20|0,65536,0);b=b+24|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+12>>0]=0;n=0;d=S(222,0)|0;f=n;n=0;if(f&1){f=sa()|0;P()|0;Bhb(b);Ea(f|0)}else{c[e>>2]=d;return}}function z3(a){a=a|0;Pdb(a+124|0);Pdb(a+104|0);Pdb(a+84|0);Pdb(a+64|0);Oeb(a+52|0);iib(a+40|0);Vob(a+28|0);ETa(a);return}function A3(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;c[f+8>>2]=e;e=c[a+28>>2]|0;b=c[a+24>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(!(Yrb(d)|0))as(f,d);b=b+4|0}yb=g;return}function B3(a){a=a|0;var b=0,d=0,e=0;e=yb;yb=yb+80|0;b=e+40|0;d=e;if(c[37104]|0)IWa(150452,67505)|0;Jja(b);n=0;ea(115,d|0,a|0,b|0);a=n;n=0;if(a&1){e=sa()|0;P()|0;tdb(b);Ea(e|0)}else{iab(d);tdb(b);yb=e;return}}function C3(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;if((c[a+24>>2]|0)!=(b|0)){yb=g;return}e=c[a+28>>2]|0;b=WCb(c[a>>2]|0)|0;c[f>>2]=b;a=e+4|0;d=c[a>>2]|0;if(d>>>0<(c[e+8>>2]|0)>>>0){c[d>>2]=b;c[a>>2]=(c[a>>2]|0)+4;yb=g;return}else{_M(e,f);yb=g;return}}function D3(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+60|0;e=c[d>>2]|0;if((c[a+56>>2]|0)==(e|0))ma(113289,112765,449,113372);c[d>>2]=e+-4;a=a+28|0;tI(c[a>>2]|0,11)|0;if((c[b+4>>2]|0)!=6)return;if(!(c[b+16>>2]|0))ma(113383,112765,461,113372);Ygb(c[a>>2]|0);return}function E3(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d;f=c[a+68>>2]|0;Pwb(e,b);YA(f,c[e>>2]|0)|0;if(!(c[a+76>>2]|0)){f=IHa(a)|0;yb=d;return f|0}c[a+140>>2]=(c[a+132>>2]|0)-(c[a+128>>2]|0)>>3;f=IHa(a)|0;yb=d;return f|0}function F3(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=a+8|0;e=0;b=0;while(1){g=c[f>>2]|0;d=c[g>>2]|0;if(e>>>0>=(c[g+4>>2]|0)-d>>2>>>0)break;d=c[d+(e<<2)>>2]|0;do if(d){if(!b){b=(c[d+8>>2]|0)==6;break}if(o6a(c[d>>2]|0)|0)b=0;else{FS(a,e);b=1}}while(0);e=e+1|0}return}function G3(a){a=a|0;c[a>>2]=43792;u6(a+184|0);Pdb(a+164|0);Pdb(a+144|0);iUa(a);return}function H3(a,b){a=a|0;b=b|0;var d=0,e=0;e=Cda(a,c[b+8>>2]|0)|0;d=Cda(a,c[b+12>>2]|0)|0;return qga(c[a+32>>2]|0,e,d,b+16|0)|0}function I3(a,b,d){a=a|0;b=b|0;d=d|0;eQa(a);c[a>>2]=40316;c[a+4>>2]=b;c[a+8>>2]=d;return}function J3(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+32|0;d=f;e=c[a>>2]|0;if((c[a+8>>2]|0)-e>>3>>>0>=b>>>0){yb=f;return}FR(d,b,(c[a+4>>2]|0)-e>>3,a+8|0);lU(a,d);vta(d);yb=f;return}function K3(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(16)|0;c[b>>2]=g;c[b+4>>2]=d+8;c[g+8>>2]=c[c[f>>2]>>2];c[g+12>>2]=0;a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function L3(b,d){b=b|0;d=d|0;var e=0;e=fy(b,d)|0;if(a[b+8>>0]&1)return e|0;if(!d){IWa(e,126841)|0;return e|0}else{IWa(e,126803)|0;mpa(e,c[d+8>>2]|0)|0;IWa(e,126838)|0;return e|0}return 0}function M3(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+32|0;e=f;HM(e,b,d,0);if(lsb(e)|0){egb(a);yb=f;return}else{c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];yb=f;return}}function N3(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=c[d>>2]|0;IWa(IWa(a,ala(c[b+24>>2]|0)|0)|0,98144)|0;a=b+8|0;if(!(WCb(c[a>>2]|0)|0))return;d=IWa(c[d>>2]|0,98135)|0;Ym(d,WCb(c[a>>2]|0)|0)|0;return}function O3(a,b){a=a|0;b=b|0;Udb(a,b);c[a+24>>2]=c[b+24>>2];aja(a+28|0,b+28|0);aja(a+40|0,b+40|0);aja(a+52|0,b+52|0);aja(a+64|0,b+64|0);c[a+76>>2]=c[b+76>>2];aja(a+80|0,b+80|0);return}function P3(a,b){a=a|0;b=b|0;var d=0,e=0;e=Cda(a,c[b+12>>2]|0)|0;d=Cda(a,c[b+16>>2]|0)|0;return gGa(c[a+32>>2]|0,e,d,c[b+8>>2]|0)|0}function Q3(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;c[f>>2]=c[b+8>>2];b=Cda(a,c[b+12>>2]|0)|0;a=c[a+32>>2]|0;c[e>>2]=c[f>>2];b=IQa(a,e,b)|0;yb=d;return b|0}function R3(a,b){a=a|0;b=b|0;var d=0;d=mla(36)|0;c[d>>2]=0;n=0;da(249,d+8|0,b|0);b=n;n=0;if(!(b&1)){c[d+4>>2]=a;b=c[a>>2]|0;c[d>>2]=b;c[b+4>>2]=d;c[a>>2]=d;d=a+8|0;c[d>>2]=(c[d>>2]|0)+1;return}a=sa()|0;P()|0;if(!d)Ea(a|0);RCb(d);Ea(a|0)}function S3(b,d){b=b|0;d=d|0;var e=0,f=0;e=b+32|0;if(!(a[e>>0]&1)){a[e>>0]=1;Ee(b,d);return}b=c[b+28>>2]|0;e=b+4|0;f=c[e>>2]|0;if((f|0)==(c[b+8>>2]|0)){_M(b,d);return}else{c[f>>2]=c[d>>2];c[e>>2]=(c[e>>2]|0)+4;return}}function T3(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(e>>>0>4294967279)ipa();if(e>>>0<11)a[b+11>>0]=e;else{g=e+16&-16;f=Stb(g)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=e;b=f}dib(b,d,e)|0;Fsb(b+e|0,0);return}function U3(a,b){a=a|0;b=b|0;var d=0,e=0;d=shb(c[a+4>>2]|0)|0;e=$db(a,Vr(b,1)|0)|0;c[d+8>>2]=e;e=$db(a,Vr(b,2)|0)|0;c[d+12>>2]=e;b=$db(a,Vr(b,3)|0)|0;c[d+16>>2]=b;yga(d);return d|0}function V3(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[b+8>>2]|0;d=Cda(a,c[b+12>>2]|0)|0;b=Cda(a,c[b+16>>2]|0)|0;return hIa(c[a+32>>2]|0,e,d,b)|0}function W3(a,b){a=a|0;b=b|0;if(!b)return;W3(a,c[b>>2]|0);W3(a,c[b+4>>2]|0);RCb(b);return}function X3(a){a=a|0;var b=0;iga(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function Y3(a){a=a|0;var b=0,d=0;r1a(a);c[a>>2]=40032;b=a+44|0;yib(b);n=0;U(75,a+4|0,55080)|0;d=n;n=0;if(d&1){d=sa()|0;P()|0;KYa(b);gcb(a);Ea(d|0)}else return}function Z3(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[a>>2]|0;if(!e)return;f=a+4|0;b=c[f>>2]|0;while(1){if((e|0)==(b|0))break;b=b+-4|0;d=c[b>>2]|0;c[b>>2]=0;if(d|0){vXa(d);RCb(d)}}c[f>>2]=e;RCb(c[a>>2]|0);return}function _3(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;if(((c[d>>2]|0)+-1|0)>>>0<3)IW(a+16|0,2382,b);_c(a,b);if(((c[d>>2]|0)+-1|0)>>>0>=3)return;IW(a+16|0,2383,b);return}function $3(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=mla(28)|0;c[b>>2]=f;c[b+4>>2]=d+4;c[f+16>>2]=c[c[e>>2]>>2];e=f+20|0;d=e;c[d>>2]=0;c[d+4>>2]=0;Frb(e);a[b+8>>0]=1;return}function a4(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=e;j=a+8|0;h=0;i=0;a:while(1){if((d|0)==(e|0)|h>>>0>=f>>>0)break;g=Feb(c[j>>2]|0)|0;a=lpb(d,k-d|0,b)|0;if(g|0)Feb(g)|0;switch(a|0){case -2:case -1:break a;case 0:{a=1;break}default:{}}h=h+1|0;i=a+i|0;d=d+a|0}return i|0}function b4(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;l=yb;yb=yb+16|0;i=l;a[i>>0]=37;j=i+1|0;a[j>>0]=g;k=i+2|0;a[k>>0]=h;a[i+3>>0]=0;if(h<<24>>24){a[j>>0]=h;a[k>>0]=g}k=Ltb(d,c[e>>2]|0)|0;k=d+(ub(d|0,k|0,i|0,f|0,c[b>>2]|0)|0)|0;c[e>>2]=k;yb=l;return}function c4(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=b;d=c[a+28>>2]|0;b=c[a+24>>2]|0;while(1){if((b|0)==(d|0))break;a=c[b>>2]|0;if(Yrb(a)|0)nAa(e,a);b=b+4|0}yb=f;return}function d4(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[a>>2]|0;if(!e)return;f=a+4|0;b=c[f>>2]|0;while(1){if((e|0)==(b|0))break;b=b+-4|0;d=c[b>>2]|0;c[b>>2]=0;if(d|0){oZa(d);RCb(d)}}c[f>>2]=e;RCb(c[a>>2]|0);return}function e4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;e=c[a+28>>2]|0;b=c[a+24>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(Yrb(d)|0)Vk(f,d);b=b+4|0}yb=g;return}function f4(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;d=h+4|0;e=h;Cva(b);f=c[b+12>>2]|0;g=ljb(f)|0;if((g|0)==6){HQ(a,f,c[b+16>>2]|0);yb=h;return}else{c[e>>2]=c[b+8>>2];c[d>>2]=c[e>>2];era(a,d,g);yb=h;return}}function g4(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?(Hb[c[a+36>>2]&255](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>>0)Hb[c[a+40>>2]&255](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 h4(a,b){a=a|0;b=b|0;if(!b)return;h4(a,c[b>>2]|0);h4(a,c[b+4>>2]|0);RCb(b);return}function i4(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;FA(d,a,b,f);yb=e;return (c[d>>2]|0)+20|0}function j4(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,69968)|0;a=O8(148204,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}yb=d;return (c[a+12>>2]|0)-(c[a+8>>2]|0)>>2|0}function k4(a){a=a|0;egb(a);egb(a+24|0);egb(a+48|0);egb(a+72|0);egb(a+96|0);egb(a+120|0);egb(a+144|0);egb(a+168|0);egb(a+192|0);egb(a+216|0);egb(a+240|0);egb(a+264|0);egb(a+288|0);egb(a+312|0);egb(a+336|0);egb(a+360|0);return}function l4(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g;e=b+44|0;f=c[e>>2]|0;if(vub(c[f+4>>2]|0)|0){Gsb(d,WCb(c[a+36>>2]|0)|0);b=qeb(c[d>>2]|0,c[e>>2]|0)|0;c[e>>2]=b}else b=f;a=rQ(a,f,b)|0;c[e>>2]=a;yb=g;return}function m4(b,d){b=b|0;d=d|0;var e=0,f=0;if(a[b+20>>0]&1){f=IWa(150620,96081)|0;BM(mpa(f,c[d+8>>2]|0)|0)}f=c[b+12>>2]|0;e=c[b+8>>2]|0;while(1){if((e|0)==(f|0))break;cu(b,c[e>>2]|0,d);e=e+4|0}return}function n4(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;HA(d,a,b,f);yb=e;return (c[d>>2]|0)+20|0}function o4(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=b+11|0;d=a[g>>0]|0;if(d<<24>>24<0){h=c[b>>2]|0;e=c[b+4>>2]|0}else{h=b;e=d&255}f=(e|0)!=0&1;e=e-f|0;if(e){Shb(h,h+f|0,e)|0;d=a[g>>0]|0}if(d<<24>>24<0)c[b+4>>2]=e;else a[g>>0]=e;Fsb(h+e|0,0);return}function p4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=yb;yb=yb+16|0;f=e+4|0;g=e;h=QS(c[a+8>>2]|0)|0;c[g>>2]=h;c[f>>2]=c[g>>2];if(ZVa(d,f)|0){yb=e;return}Gwa(d,il(b,a)|0);yb=e;return}function q4(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,70243)|0;a=O8(148204,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}yb=d;return (c[a+20>>2]|0)-(c[a+16>>2]|0)>>2|0}function r4(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a>>2]|0;d=C8(e,b)|0;if((d|0)==(e+4|0)){X1a(c[c[a+4>>2]>>2]|0,c[b>>2]|0,0);return}else{Ddb(c[c[a+8>>2]>>2]|0,c[(c[d+24>>2]|0)+-4>>2]|0);return}}function s4(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+80|0;e=d+76|0;b=d;c[e>>2]=a;Nfb(b);n=0;da(291,b|0,e|0);a=n;n=0;if(a&1){e=sa()|0;P()|0;Mfb(b);Ea(e|0)}else{Mfb(b);yb=d;return}}function t4(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,70413)|0;a=O8(148204,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}yb=d;return (c[a+32>>2]|0)-(c[a+28>>2]|0)>>2|0}function u4(a,b){a=a|0;b=b|0;if(!b)return;u4(a,c[b>>2]|0);u4(a,c[b+4>>2]|0);RCb(b);return}function v4(a,b){a=a|0;b=b|0;if(!b)return;v4(a,c[b>>2]|0);v4(a,c[b+4>>2]|0);RCb(b);return}function w4(a,b){a=a|0;b=b|0;if(!b)return;w4(a,c[b>>2]|0);w4(a,c[b+4>>2]|0);RCb(b);return}function x4(a,b){a=a|0;b=b|0;if(!b)return;x4(a,c[b>>2]|0);x4(a,c[b+4>>2]|0);RCb(b);return}function y4(a,b){a=a|0;b=b|0;if(!b)return;y4(a,c[b>>2]|0);y4(a,c[b+4>>2]|0);RCb(b);return}function z4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((d|0)!=80){d=0;return d|0}d=jeb(c[a+4>>2]|0)|0;e=rl(a)|0;c[d+16>>2]=e;e=rl(a)|0;c[d+12>>2]=e;a=rl(a)|0;c[d+8>>2]=a;Kja(d);c[b>>2]=d;d=1;return d|0}function A4(a,b){a=a|0;b=b|0;var d=0,e=0;if((b|0)!=(c[a+24>>2]|0)){if(!(dub(c[b+8>>2]|0,c[a+28>>2]|0)|0))return;c[a+36>>2]=c[a+32>>2];return}b=(c[b+12>>2]|0)+4|0;d=a+36|0;e=c[d>>2]|0;if((e|0)==(c[a+40>>2]|0)){_M(a+32|0,b);return}else{c[e>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+4;return}}function B4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;if((a|0)==(b|0)){c[d>>2]=4;e=0.0}else{g=c[37419]|0;c[37419]=0;t8a()|0;e=+OAb(a,f);a=c[37419]|0;if(!a)c[37419]=g;if((c[f>>2]|0)==(b|0)){if((a|0)==34)h=6}else{e=0.0;h=6}if((h|0)==6)c[d>>2]=4}yb=i;return +e}function C4(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;f=d+4|0;e=d;a=a+28|0;tI(c[a>>2]|0,-4)|0;g=c[a>>2]|0;Pwb(f,9);YA(g,c[f>>2]|0)|0;a=c[a>>2]|0;Pwb(e,c[b+8>>2]|0);YA(a,c[e>>2]|0)|0;yb=d;return}function D4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;if((a|0)==(b|0)){c[d>>2]=4;e=0.0}else{g=c[37419]|0;c[37419]=0;t8a()|0;e=+GBb(a,f);a=c[37419]|0;if(!a)c[37419]=g;if((c[f>>2]|0)==(b|0)){if((a|0)==34)h=6}else{e=0.0;h=6}if((h|0)==6)c[d>>2]=4}yb=i;return +e}function E4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0;i=yb;yb=yb+16|0;f=i;if((a|0)==(b|0)){c[d>>2]=4;e=0.0}else{g=c[37419]|0;c[37419]=0;t8a()|0;e=+HBb(a,f);a=c[37419]|0;if(!a)c[37419]=g;if((c[f>>2]|0)==(b|0)){if((a|0)==34)h=6}else{e=0.0;h=6}if((h|0)==6)c[d>>2]=4}yb=i;return +e}function F4(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;e=b+28|0;b=tI(c[e>>2]|0,-3)|0;Pwb(f,3);YA(b,c[f>>2]|0)|0;f=d+32|0;b=d+16|0;while(1){if((b|0)==(f|0))break;Hmb(c[e>>2]|0,a[b>>0]|0);b=b+1|0}yb=g;return}function G4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0;i=yb;yb=yb+128|0;h=i;f=h;g=f+124|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));f=h+4|0;c[f>>2]=a;g=h+8|0;c[g>>2]=-1;c[h+44>>2]=a;c[h+76>>2]=-1;HFa(h,0);e=+Mi(h,d,1);d=(c[f>>2]|0)-(c[g>>2]|0)+(c[h+108>>2]|0)|0;if(b|0)c[b>>2]=(d|0)==0?a:a+d|0;yb=i;return +e}function H4(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;c[f>>2]=c[b+8>>2];b=Cda(a,c[b+12>>2]|0)|0;a=c[a+32>>2]|0;c[e>>2]=c[f>>2];b=HTa(a,e,b)|0;yb=d;return b|0}function I4(a,b){a=a|0;b=b|0;if(!b)return;I4(a,c[b>>2]|0);I4(a,c[b+4>>2]|0);RCb(b);return}function J4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=yb;yb=yb+16|0;f=e+4|0;g=e;h=dO(c[a+8>>2]|0)|0;c[g>>2]=h;c[f>>2]=c[g>>2];if(ZVa(d,f)|0){yb=e;return}Gwa(d,Xk(b,a)|0);yb=e;return}function K4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=yb;yb=yb+64|0;b=e;$T(b,c[a+16>>2]|0);Q8a(b,1);n=0;da(2314,b|0,d|0);d=n;n=0;if(d&1){d=sa()|0;P()|0;Bkb(b);Ea(d|0)}else{Bkb(b);yb=e;return}}function L4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=d;eva(a+24|0,Icb(b)|0);d=c[a+24>>2]|0;b=(c[a+28>>2]|0)-d>>2;while(1){if((b|0)<=0)break;g=d;c[g>>2]=0;b=b+-1|0;d=g+4|0}TP(a,e);yb=f;return}function M4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;e=c[a+28>>2]|0;b=c[a+24>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(Yrb(d)|0)MF(f,d);b=b+4|0}yb=g;return}function N4(a,b){a=a|0;b=b|0;if(!b)return;N4(a,c[b>>2]|0);N4(a,c[b+4>>2]|0);RCb(b);return}function O4(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;iB(d,a,b,f);yb=e;return (c[d>>2]|0)+20|0}function P4(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;if(!a){yb=e;return}b=c[b+8>>2]|0;c[d>>2]=b;if(zI(a,b)|0){yb=e;return}d=an(a,d)|0;c[d>>2]=1;yb=e;return}function Q4(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;if(!a){yb=e;return}b=c[b+8>>2]|0;c[d>>2]=b;if(zI(a,b)|0){yb=e;return}d=an(a,d)|0;c[d>>2]=0;yb=e;return}function R4(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+16|0;e=c[d>>2]|0;if(!e){c[a+16>>2]=0;return}if((b|0)!=(e|0)){c[a+16>>2]=e;c[d>>2]=0;return}e=WCb(a)|0;c[a+16>>2]=e;d=c[d>>2]|0;n=0;da(c[(c[d>>2]|0)+12>>2]|0,d|0,e|0);e=n;n=0;if(e&1){e=ta(0)|0;P()|0;yub(e)}else return}function S4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+16|0;f=e;j6a(f,(WCb(c[a+32>>2]|0)|0)<<16,0);b=WCb(b)|0;up(a,b,0,(WCb(c[f>>2]|0)|0)-d|0,0,67861);yb=e;return}function T4(a,b){a=a|0;b=b|0;var d=0;yib(a);d=a+12|0;c[d>>2]=d;c[a+16>>2]=d;c[a+20>>2]=0;n=0;da(244,a|0,b|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;Pkb(d);pQa(a);Ea(b|0)}else return}function U4(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=yb;yb=yb+128|0;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;HFa(h,0);d=Yf(h,d,1,e,f)|0;e=P()|0;if(b|0)c[b>>2]=a+((c[i>>2]|0)+(c[h+108>>2]|0)-(c[g>>2]|0));O(e|0);yb=j;return d|0}function V4(a,b){a=a|0;b=b|0;if(!b)return;V4(a,c[b>>2]|0);V4(a,c[b+4>>2]|0);RCb(b);return}function W4(b){b=b|0;var d=0,e=0,f=0;Ysb(b);a[b+8>>0]=0;d=b+12|0;Cub(d);j6a(b+16|0,0,0);j6a(b+20|0,-1,0);e=b+24|0;c[e>>2]=0;c[b+28>>2]=0;c[b+32>>2]=0;n=0;b=S(222,0)|0;f=n;n=0;if(f&1){f=sa()|0;P()|0;Bhb(e);Ea(f|0)}else{c[d>>2]=b;return}}function X4(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;if(((c[d>>2]|0)+-1|0)>>>0<3)IW(a,293,b);Ae(a,b);if(((c[d>>2]|0)+-1|0)>>>0>=3)return;IW(a,294,b);return}function Y4(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=a[d+11>>0]|0;h=g<<24>>24<0;g=h?c[d+4>>2]|0:g&255;if(g>>>0>>0)hpa();else{g=g-e|0;D8(b,(h?c[d>>2]|0:d)+e|0,g>>>0>>0?g:f);return}}function Z4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a>>2]|0;a=C8(e,b)|0;if((a|0)==(e+4|0)){e=dub(c[b>>2]|0,c[d>>2]|0)|0;return e|0}else{e=dub(c[(c[a+24>>2]|0)+-4>>2]|0,c[d>>2]|0)|0;return e|0}return 0}function _4(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+4|0;d=c[g>>2]|0;e=c[a>>2]|0;f=(d-e|0)/12|0;if(f>>>0>>0){ND(a,b-f|0);return}if(f>>>0<=b>>>0)return;a=e+(b*12|0)|0;while(1){if((a|0)==(d|0))break;f=d+-12|0;Vob(f);d=f}c[g>>2]=a;return}function $4(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a>>2]|0;acb(a+8|0);RCb(a);a=b}return}function a5(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=a[b+11>>0]|0;g=f<<24>>24<0;if(g)h=c[b+4>>2]|0;else h=f&255;if((e|0)==-1)hpa();if(g)b=c[b>>2]|0;f=h>>>0>e>>>0;b=qdb(b,d,f?e:h)|0;if(!b)return (h>>>0>>0?-1:f&1)|0;else return b|0;return 0}function b5(a){a=a|0;var b=0;jbb(a);b=a+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;yib(a+68|0);b=a+80|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;yib(a+104|0);return}function c5(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=b;b=c[a+28>>2]|0;if(!b){yb=e;return}b=oC(b+76|0,d)|0;if(!b){yb=e;return}vv(a,b+12|0);yb=e;return}function d5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;if(eCb(c[b+4>>2]|0)|0){yb=e;return}f=Sqb(c[b+12>>2]|0)|0;c[d>>2]=f;if(!f){yb=e;return}b=c[b+8>>2]|0;f=Am(a+68|0,d)|0;c[f>>2]=b;yb=e;return}function e5(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=WCb(c[a+16>>2]|0)|0;e=Ryb(a)|0;f=(d|0)==0;a=g;while(1){g=a;if((e|0)==(g|0))break;a=a+8|0;if(!(!f?!(pdb(d,c[a>>2]|0)|0):0))fS(b,a);a=c[g+4>>2]|0}return}function f5(a,b){a=a|0;b=b|0;var c=0,d=0;d=yb;yb=yb+16|0;c=d;e0(c);n=0;ea(213,a|0,c|0,b|0);b=n;n=0;if(b&1){d=sa()|0;P()|0;Chb(c);Ea(d|0)}else{Chb(c);yb=d;return}}function g5(a,b){a=a|0;b=b|0;var c=0,d=0;d=yb;yb=yb+16|0;c=d;e0(c);n=0;ea(212,a|0,c|0,b|0);b=n;n=0;if(b&1){d=sa()|0;P()|0;Chb(c);Ea(d|0)}else{Chb(c);yb=d;return}}function h5(a,b){a=a|0;b=b|0;var c=0,d=0;d=yb;yb=yb+16|0;c=d;e0(c);n=0;ea(211,a|0,c|0,b|0);b=n;n=0;if(b&1){d=sa()|0;P()|0;Chb(c);Ea(d|0)}else{Chb(c);yb=d;return}}function i5(a,b){a=a|0;b=b|0;if(!b)return;i5(a,c[b>>2]|0);i5(a,c[b+4>>2]|0);RCb(b);return}function j5(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=yb;yb=yb+32|0;d=g+16|0;f=g;e=0;while(1){if((e|0)==16)break;UB(c+(e*24|0)|0,f);i=a[f>>0]|0;h=$ka(d,e)|0;a[h>>0]=i;e=e+1|0}e=b+16|0;do{a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}while((b|0)<(e|0));yb=g;return}function k5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a>>2]=c[b>>2];d=a+4|0;e=b+4|0;c[d>>2]=0;f=a+8|0;c[f>>2]=0;c[a+12>>2]=0;c[d>>2]=c[e>>2];d=b+8|0;c[f>>2]=c[d>>2];f=b+12|0;c[a+12>>2]=c[f>>2];c[f>>2]=0;c[d>>2]=0;c[e>>2]=0;e=b+16|0;d=c[e+4>>2]|0;b=a+16|0;c[b>>2]=c[e>>2];c[b+4>>2]=d;return}function l5(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=yb;yb=yb+64|0;b=e;$T(b,c[a+16>>2]|0);uvb(b);n=0;da(2314,b|0,d|0);d=n;n=0;if(d&1){d=sa()|0;P()|0;Bkb(b);Ea(d|0)}else{Bkb(b);yb=e;return}}function m5(b,d){b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+64|0;e=f;if(!(a[b+48>>0]&1)){yb=f;return}Y3(e);b=WCb(c[b+20>>2]|0)|0;n=0;ea(104,e+16|0,d|0,b|0);d=n;n=0;if(d&1){f=sa()|0;P()|0;JXa(e);Ea(f|0)}JXa(e);yb=f;return}function n5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;a=c[a+80>>2]|0;if(!a){yb=g;return}d=a+28|0;e=c[d>>2]|0;if((e|0)==(c[a+32>>2]|0)){_M(a+24|0,f);yb=g;return}else{c[e>>2]=b;c[d>>2]=(c[d>>2]|0)+4;yb=g;return}}function o5(a,b){a=a|0;b=b|0;if(HYa(c[a>>2]|0,b)|0)ma(51825,51625,1519,110814);else return JR(a,c[b+8>>2]|0,c[a+4>>2]|0)|0;return 0}function p5(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;Obb(c[d>>2]|0,134435)|0;a=b+4|0;if(!(vub(c[a>>2]|0)|0))return;d=IWa(c[d>>2]|0,98311)|0;SEa(IWa(d,ala(c[a>>2]|0)|0)|0,41)|0;return}function q5(a,b){a=a|0;b=b|0;var c=0,d=0;d=yb;yb=yb+32|0;c=d;_6a(c,0);n=0;a=V(82,a|0,b|0,c|0)|0;b=n;n=0;if(b&1){d=sa()|0;P()|0;TIa(c);Ea(d|0)}else{TIa(c);yb=d;return a|0}return 0}function r5(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,70206)|0;a=O8(148204,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}e=WCb(c[a+40>>2]|0)|0;yb=d;return e|0}function s5(a,b){a=a|0;b=b|0;var d=0,e=0;d=mla(12)|0;e=c[b>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Zzb(e)|0;n=0;ea(95,d|0,e|0,b|0);b=n;n=0;if(b&1){e=sa()|0;P()|0;RCb(d);Ea(e|0)}else{c[a>>2]=d;return}}function t5(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,70169)|0;a=O8(148204,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}e=WCb(c[a+8>>2]|0)|0;yb=d;return e|0}function u5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;$A(d,a,b,f);yb=e;return (c[d>>2]|0)+20|0}function v5(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;e=c[a+28>>2]|0;b=c[a+24>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(!(Yrb(d)|0))dva(f,d);b=b+4|0}yb=g;return}function w5(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;if(c[37104]|0){e=IWa(150452,70947)|0;a=O8(148228,b)|0;IWa(Ym(e,c[a>>2]|0)|0,57388)|0;a=c[b>>2]|0}e=WCb(c[a+4>>2]|0)|0;yb=d;return e|0}function x5(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+384|0;g=f;rjb(g,b);e=Wha(g,e&255)|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];c[e+16>>2]=c[d+16>>2];cab(a,g);yb=f;return}function y5(a,b){a=a|0;b=b|0;b=Mba(a,b)|0;if((b|0)==(a+4|0))return;JN(a,b)|0;return}function z5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=yb;yb=yb+16|0;f=e+4|0;g=e;c[g>>2]=c[b+8>>2];d=c[b+12>>2]|0;c[f>>2]=c[g>>2];YC(a,f,d,b);d=c[b+16>>2]|0;if(!d){yb=e;return}g=c[d+4>>2]|0;DNa(a,(g|0)==6|(g|0)==1,b);yb=e;return}function A5(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+16|0;f=e;c[f>>2]=d;$lb(a);c[a+24>>2]=b;n=0;da(623,a|0,f|0);d=n;n=0;if(d&1){f=sa()|0;P()|0;Hqb(a);Ea(f|0)}else{yb=e;return}}function B5(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;b=akb(b+152|0)|0;if(c[37104]|0)rg(b,d,e<<24>>24,f,g,h,i);a[b+20>>0]=0;a[b+8>>0]=d;a[b+9>>0]=e<<24>>24!=0&1;G1a(b+12|0,f,0)|0;G1a(b+16|0,(g|0)==0?d:g,0)|0;c[b+4>>2]=h;c[b+24>>2]=i;Zjb(b);return b|0}function C5(){var b=0,d=0;if((a[147536]|0)==0?mlb(147536)|0:0){d=145904;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=146192)}zZa(145904,136902)|0;zZa(145916,136905)|0;return}function D5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;c[e>>2]=a;a=d;f=WCb(INa(3)|0)|0;f=KJa(f,WGa(148884)|0)|0;Pwb(a,KJa(KJa(f,WGa(e)|0)|0,b)|0);yb=d;return c[a>>2]|0}function E5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;c[e>>2]=a;a=d;f=WCb(INa(3)|0)|0;f=KJa(f,WGa(148844)|0)|0;Pwb(a,KJa(KJa(f,WGa(e)|0)|0,b)|0);yb=d;return c[a>>2]|0}function F5(a){a=a|0;switch(c[a>>2]|0){case 0:{a=c[a+4>>2]|0;return a|0}case 1:{a=c[(c[a+4>>2]|0)+4>>2]|0;return a|0}case 2:{a=F5(Jcb(a,1)|0)|0;return a|0}case 5:{a=F5(Jcb(a,0)|0)|0;return a|0}case 6:{a=6;return a|0}default:ma(141129,77889,163,77918)}return 0}function G5(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=yb;yb=yb+16|0;h=f+4|0;g=f;a=a+28|0;i=c[a>>2]|0;Pwb(h,cxa((b|0)==0?d:b)|0);YA(i,c[h>>2]|0)|0;d=c[a>>2]|0;Pwb(g,e);YA(d,c[g>>2]|0)|0;yb=f;return}function H5(b,c){b=b|0;c=c|0;var e=0,f=0;f=(d[c+1>>0]|0)<<16|(d[c>>0]|0)<<24|(d[c+2>>0]|0)<<8|(d[c+3>>0]|0);e=b+3|0;c=a[e>>0]|0;b=(d[b+1>>0]|0)<<16|(d[b>>0]|0)<<24|(d[b+2>>0]|0)<<8|c&255;c=c<<24>>24==0;if(!((b|0)==(f|0)|c))do{e=e+1|0;c=a[e>>0]|0;b=b<<8|c&255;c=c<<24>>24==0}while(!((b|0)==(f|0)|c));return (c?0:e+-3|0)|0}function I5(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)Hb[c[b+36>>2]&255](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 J5(){var b=0,d=0;if((a[147616]|0)==0?mlb(147616)|0:0){d=146656;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=146944)}yZa(146656,48540)|0;yZa(146668,48552)|0;return}function K5(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+192|0;g=f;Cjb(g,b);e=eia(g,e&255)|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];c[e+16>>2]=c[d+16>>2];Hab(a,g);yb=f;return}function L5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=eCb(c[b+4>>2]|0)|0;d=a+4|0;e=c[d>>2]|0;if(f)Obb(e,98240)|0;else Obb(e,98251)|0;f=c[d>>2]|0;mpa(f,Eda(c[b+8>>2]|0,c[a>>2]|0)|0)|0;return}function M5(b,c){b=b|0;c=c|0;var d=0,e=0;a:do if((b|0)!=(c|0)?(d=(a[b>>0]|0)==110?b+1|0:b,(d|0)!=(c|0)):0){e=a[d>>0]|0;if(e<<24>>24==48){d=d+1|0;break}if((e+-49&255)<9)do{d=d+1|0;if((d|0)==(c|0)){d=c;break a}}while(((a[d>>0]|0)+-48|0)>>>0<10);else d=b}else d=b;while(0);return d|0}function N5(a,b){a=a|0;b=b|0;if(!b)return;N5(a,c[b>>2]|0);N5(a,c[b+4>>2]|0);RCb(b);return}function O5(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=A2a(c[e>>2]|0,b)|0;c[a>>2]=e;d=e+(d<<4)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<4);return}function P5(b){b=b|0;var d=0,e=0,f=0;e=b+92|0;if(c[e>>2]&8|0){e=0;return e|0}c[b+24>>2]=0;c[b+20>>2]=0;c[b+28>>2]=0;if(!(a[b+98>>0]&1)){f=c[b+56>>2]|0;d=f+(c[b+60>>2]|0)|0;c[b+8>>2]=f}else{f=c[b+32>>2]|0;d=f+(c[b+52>>2]|0)|0;c[b+8>>2]=f}c[b+12>>2]=d;c[b+16>>2]=d;c[e>>2]=8;f=1;return f|0}function Q5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;c[e>>2]=b;b=d;f=WCb(INa(3)|0)|0;a=KJa(KJa(f,WGa(149084)|0)|0,a)|0;Pwb(b,KJa(a,WGa(e)|0)|0);yb=d;return c[b>>2]|0}function R5(a,b){a=a|0;b=b|0;var d=0,e=0;qd(a,b);e=c[b>>2]|0;d=c[e>>2]|0;if(OBb(d)|0){IW(a+16|0,4109,b);d=c[e>>2]|0}if(!(aCb(d)|0))return;IW(a+16|0,4110,b);return}function S5(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0;if(e&2048){a[b>>0]=43;b=b+1|0}if(e&512){a[b>>0]=35;b=b+1|0}f=b;while(1){b=a[c>>0]|0;if(!(b<<24>>24))break;a[f>>0]=b;c=c+1|0;f=f+1|0}switch(e&74){case 64:{b=111;break}case 8:{b=e>>>9&32^120;break}default:b=d?100:117}a[f>>0]=b;return}function T5(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+4|0;e=c[d>>2]|0;if(dub(c[e+-4>>2]|0,c[b>>2]|0)|0){c[d>>2]=e+-4;e=(O4(a+12|0,t7(a+24|0,b)|0)|0)+4|0;c[e>>2]=(c[e>>2]|0)+-4;return}else ma(74110,125762,257,74136)}function U5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;e=d+4|0;g=d;f=c[b+12>>2]|0;c[g>>2]=c[b+8>>2];c[e>>2]=c[g>>2];b=Ho(a,b,f,e,0)|0;yb=d;return b|0}function V5(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-24|0;J2a(f);b=f}c[e>>2]=d;f=c[a>>2]|0;W1a(c[a+12>>2]|0,f,((c[a+8>>2]|0)-f|0)/24|0)}return}function W5(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+96|0;g=f;Ljb(g,b);e=fia(g,e&255)|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];c[e+16>>2]=c[d+16>>2];Iab(a,g);yb=f;return}function X5(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+96|0;g=f;Y7(g,b);e=fia(g,e&255)|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];c[e+16>>2]=c[d+16>>2];Iab(a,g);yb=f;return}function Y5(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+48|0;g=f;Kjb(g,b);e=gia(g,e&255)|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];c[e+16>>2]=c[d+16>>2];Jab(a,g);yb=f;return}function Z5(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+48|0;g=f;X7(g,b);e=gia(g,e&255)|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];c[e+16>>2]=c[d+16>>2];Jab(a,g);yb=f;return}function _5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;jB(d,a,b,f);yb=e;return (c[d>>2]|0)+24|0}function $5(b,e){b=b|0;e=e|0;var f=0,g=0;f=0;while(1){if((d[24656+f>>0]|0)==(b|0)){g=4;break}f=f+1|0;if((f|0)==87){b=87;g=5;break}}if((g|0)==4)if(!f)f=24752;else{b=f;g=5}if((g|0)==5){f=24752;do{do{g=f;f=f+1|0}while((a[g>>0]|0)!=0);b=b+-1|0}while((b|0)!=0)}return Tyb(f,c[e+20>>2]|0)|0}function a6(b,d){b=b|0;d=d|0;b=c[b>>2]|0;if(!(a[d+20>>0]&1)){IWa(b,ala(c[d+12>>2]|0)|0)|0;return}else{b=IWa(b,98549)|0;SEa(IWa(b,ala(c[d+12>>2]|0)|0)|0,41)|0;return}}function b6(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;e=c[a+28>>2]|0;b=c[a+24>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(!(Yrb(d)|0))wZ(f,d);b=b+4|0}yb=g;return}function c6(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+48|0;g=i+24|0;e=i;h=rib(b)|0;Bqb(e,d);d=g;f=d+24|0;do{a[d>>0]=a[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(f|0));g=D7(b,g)|0;h=hIa(c[b>>2]|0,15,h,g)|0;yb=i;return h|0}function d6(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=d+12|0;e=a[g+11>>0]|0;f=e<<24>>24<0;yM(d,f?c[g>>2]|0:g,f?c[d+16>>2]|0:e&255)|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}return}function e6(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;KB(d,a,c[b>>2]|0,f);yb=e;return (c[d>>2]|0)+20|0}function f6(a){a=a|0;var b=0;Dla(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function g6(a,b){a=a|0;b=b|0;if(!b)return;g6(a,c[b>>2]|0);g6(a,c[b+4>>2]|0);RCb(b);return}function h6(a,b){a=a|0;b=b|0;if(!b)return;h6(a,c[b>>2]|0);h6(a,c[b+4>>2]|0);RCb(b);return}function i6(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+32|0;e=d;b=m6a(b)|0;c[a+8>>2]=10;Bqb(e,b);b=(ffb(c[a+16>>2]|0)|0)+8|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];yb=d;return a|0}function j6(a){a=a|0;var b=0,d=0,e=0;b=yb;yb=yb+16|0;d=b;e=c[a+68>>2]|0;Pwb(d,0);YA(e,c[d>>2]|0)|0;if(!(c[a+76>>2]|0)){e=IHa(a)|0;yb=b;return e|0}c[a+140>>2]=(c[a+132>>2]|0)-(c[a+128>>2]|0)>>3;e=IHa(a)|0;yb=b;return e|0}function k6(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;e=c[a+28>>2]|0;b=c[a+24>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(Yrb(d)|0)wZ(f,d);b=b+4|0}yb=g;return}function l6(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=b+16|0;g=c[f>>2]|0;do if(g){if((g|0)!=(d|0)){e=b+36|0;c[e>>2]=(c[e>>2]|0)+1;c[b+24>>2]=2;a[b+54>>0]=1;break}b=b+24|0;if((c[b>>2]|0)==2)c[b>>2]=e}else{c[f>>2]=d;c[b+24>>2]=e;c[b+36>>2]=1}while(0);return}function m6(a){a=+a;var b=0,d=0,e=0,f=0,g=0;e=yb;yb=yb+16|0;b=e+8|0;d=e;h[b>>3]=a;f=leb(a)|0;g=(P()|0)&2147483647;if(g>>>0>2146435072|(g|0)==2146435072&f>>>0>0){b=ekb(b)|0;f=P()|0|524288;g=d;c[g>>2]=b;c[g+4>>2]=f;a=+BAb(d);yb=e;return +a}else ma(111661,111484,168,111706);return +(0.0)}function n6(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);_Va(a);sV(a,c[b+12>>2]|0);y9(a);yb=d;return}function o6(a){a=a|0;var b=0,d=0,e=0;vOa(a);e=(c[a>>2]&1|0)!=0;if(!e){XCb();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[37438]|0)==(a|0))c[37438]=b;TCb()}b=rca(a)|0;b=Eb[c[a+12>>2]&511](a)|0|b;d=c[a+92>>2]|0;if(d|0)wg(d);if(!e)wg(a);return b|0}function p6(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+32|0;e=g;f=e;d=c+(d*24|0)|0;c=f+24|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(c|0));Wza(b,e);yb=g;return}function q6(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+4>>2]|0;e=a+8|0;while(1){b=c[e>>2]|0;if((d|0)==(b|0))break;f=b+-4|0;c[e>>2]=f;b=c[f>>2]|0;c[f>>2]=0;if(b|0){Chb(b);RCb(b)}}b=c[a>>2]|0;if(!b)return;RCb(b);return}function r6(b,d){b=b|0;d=d|0;var e=0;if(a[b+12>>0]&1)BM(IWa(150620,112733)|0);e=rl(b)|0;c[d+16>>2]=e;e=rl(b)|0;c[d+12>>2]=e;b=rl(b)|0;c[d+8>>2]=b;yga(d);return}function s6(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=yb;yb=yb+64|0;d=f;$T(d,c[b+16>>2]|0);a[d+21>>0]=1;n=0;da(2314,d|0,e|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Bkb(d);Ea(e|0)}else{Bkb(d);yb=f;return}}function t6(a,b){a=a|0;b=b|0;if(!b)return;t6(a,c[b>>2]|0);t6(a,c[b+4>>2]|0);RCb(b);return}function u6(a){a=a|0;IU(a);return}function v6(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;c[a>>2]=b;f=a+4|0;c[f>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;b=WCb(e)|0;n=0;da(219,f|0,b|0);e=n;n=0;if(e&1){d=sa()|0;P()|0;Vob(f);Ea(d|0)}if(!b)return;Pxa(c[a+4>>2]|0,d|0,b|0)|0;return}function w6(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+32|0;e=g;f=e;c=_5(c,d+8|0)|0;d=f+24|0;do{a[f>>0]=a[c>>0]|0;f=f+1|0;c=c+1|0}while((f|0)<(d|0));Wza(b,e);yb=g;return}function x6(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;v1(a,c,d,0,e);n=0;da(4015,a|0,b|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;fxa(a);Ea(e|0)}else return}function y6(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;a=a+8|0;a=Eb[c[(c[a>>2]|0)+4>>2]&511](a)|0;e=(Mg(d,e,a,a+288|0,g,f,0)|0)-a|0;if((e|0)<288)c[b>>2]=((e|0)/12|0|0)%12|0;return}function z6(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;a=a+8|0;a=Eb[c[(c[a>>2]|0)+4>>2]&511](a)|0;e=(xg(d,e,a,a+288|0,g,f,0)|0)-a|0;if((e|0)<288)c[b>>2]=((e|0)/12|0|0)%12|0;return}function A6(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);_Va(a);sV(a,c[b+24>>2]|0);y9(a);yb=d;return}function B6(a){a=a|0;var b=0,d=0;b=jqb(a)|0;if(b|0){d=b;return d|0}a=wrb(a)|0;if(a|0){b=jqb(c[a+12>>2]|0)|0;if(b|0){d=b;return d|0}a=c[a+16>>2]|0;if(a|0?(d=jqb(a)|0,d|0):0)return d|0}d=0;return d|0}function C6(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;e=c[a+28>>2]|0;b=c[a+24>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(Yrb(d)|0)cJ(f,d);b=b+4|0}yb=g;return}function D6(a,b){a=a|0;b=b|0;var d=0,e=0;e=(Veb(a)|0)+12|0;e=(Veb(c[e>>2]|0)|0)+16|0;e=Zaa(c[e>>2]|0)|0;d=(Veb(a)|0)+16|0;d=e-(Zaa(c[d>>2]|0)|0)|0;c[b>>2]=d;return Q0a(a)|0}function E6(b,d){b=b|0;d=d|0;var e=0;if(c[(c[c[b+24>>2]>>2]|0)+(c[d+8>>2]<<2)>>2]|0)return;e=c[d+12>>2]|0;if(eCb(c[d+4>>2]|0)|0)Pwb(c[b>>2]|0,e);else{d=knb(d)|0;c[d+8>>2]=e;dmb(d)}a[b+28>>0]=1;return}function F6(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-24|0;c[d>>2]=e;J2a(e)}b=c[a>>2]|0;if(b|0)W1a(c[c[a+16>>2]>>2]|0,b,((c[a+12>>2]|0)-b|0)/24|0);return}function G6(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=b;n=0;d=S(217,16)|0;e=n;n=0;if(!(e&1)){c[d+4>>2]=0;c[d+8>>2]=0;c[d>>2]=44592;c[d+12>>2]=b;c[a+4>>2]=d;return}a=sa()|0;P()|0;if(!b)Ea(a|0);RCb(b);Ea(a|0)}function H6(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);_Va(a);sV(a,c[b+8>>2]|0);y9(a);yb=d;return}function I6(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}d=a+12|0;a=b+12|0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];d=0;while(1){if((d|0)==3)break;c[a+(d<<2)>>2]=0;d=d+1|0}return}function J6(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+16|0;f=e;c[f>>2]=d;$lb(a);c[a+24>>2]=b;n=0;da(1181,a|0,f|0);d=n;n=0;if(d&1){f=sa()|0;P()|0;Hqb(a);Ea(f|0)}else{yb=e;return}}function K6(a,b){a=a|0;b=b|0;if(!b)return;K6(a,c[b>>2]|0);K6(a,c[b+4>>2]|0);RCb(b);return}function L6(a,b){a=a|0;b=b|0;var c=0,d=0;d=yb;yb=yb+32|0;c=d;oab(c,0);n=0;a=V(59,a|0,b|0,c|0)|0;b=n;n=0;if(b&1){d=sa()|0;P()|0;TIa(c);Ea(d|0)}else{TIa(c);yb=d;return a|0}return 0}function M6(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;if(((c[d>>2]|0)+-1|0)>>>0<3)IW(a,396,b);Le(a,b);if(((c[d>>2]|0)+-1|0)>>>0>=3)return;IW(a,397,b);return}function N6(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;e=c[a+28>>2]|0;b=c[a+24>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(!(Yrb(d)|0))x8(f,d);b=b+4|0}yb=g;return}function O6(a){a=a|0;var b=0,d=0;d=yb;yb=yb+16|0;b=d;Sdb(b,0);n=0;ea(131,b|0,c[a>>2]|0,c[a+4>>2]|0);a=n;n=0;if(a&1){d=sa()|0;P()|0;Htb(b);Ea(d|0)}else{a=(c[b+4>>2]|0)-(c[b>>2]|0)|0;Htb(b);yb=d;return a|0}return 0}function P6(a,b){a=a|0;b=b|0;var d=0;$lb(a);d=a+24|0;yib(d);c[a+36>>2]=0;n=0;da(622,a|0,b|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;Khb(d);Hqb(a);Ea(b|0)}else return}function Q6(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;e=c[a+28>>2]|0;b=c[a+24>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(Yrb(d)|0)x8(f,d);b=b+4|0}yb=g;return}function R6(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;f=g;c[f>>2]=b;c[f+4>>2]=d;e=c[a+40>>2]|0;b=c[a+36>>2]|0;while(1){if((b|0)==(e|0))break;d=c[b>>2]|0;if(Yrb(d)|0)UK(f,d);b=b+4|0}yb=g;return}function S6(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if((d|0)==(b|0))return b|0;g=a+4|0;e=c[g>>2]|0;f=b;a=d;while(1){if((a|0)==(e|0))break;LS(f,a);f=f+24|0;a=a+24|0}a=c[g>>2]|0;while(1){if((f|0)==(a|0))break;e=a+-24|0;Aeb(e);a=e}c[g>>2]=f;return b|0}function T6(a,b){a=a|0;b=b|0;if(!b)return;T6(a,c[b>>2]|0);T6(a,c[b+4>>2]|0);RCb(b);return}function U6(a,b){a=a|0;b=b|0;if(!b)return;U6(a,c[b>>2]|0);U6(a,c[b+4>>2]|0);RCb(b);return}function V6(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;if(((c[d>>2]|0)+-1|0)>>>0<3)IW(a+16|0,577,b);Sd(a,b);if(((c[d>>2]|0)+-1|0)>>>0>=3)return;IW(a+16|0,578,b);return}function W6(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;if(((c[d>>2]|0)+-1|0)>>>0<3)IW(a+16|0,3786,b);Cd(a,b);if(((c[d>>2]|0)+-1|0)>>>0>=3)return;IW(a+16|0,3787,b);return}function X6(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}a=a+12|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[a+(d<<2)>>2]=0;d=d+1|0}return}function Y6(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=mla(32)|0;c[b>>2]=f;c[b+4>>2]=d+4;c[f+16>>2]=c[c[e>>2]>>2];yib(f+20|0);a[b+8>>0]=1;return}function Z6(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-16|0;acb(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function _6(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;f=e;d=c[b>>2]|0;pv(f,a,b);b=c[f>>2]|0;c[f>>2]=0;if(!b){yb=e;return d|0}RCb(b);yb=e;return d|0}function $6(a){a=a|0;var b=0,d=0,e=0;d=a+12|0;if(!(c[d>>2]|0))return;e=a+8|0;uSa(c[e>>2]|0);c[e>>2]=0;e=c[a+4>>2]|0;b=0;while(1){if((b|0)==(e|0))break;c[(c[a>>2]|0)+(b<<2)>>2]=0;b=b+1|0}c[d>>2]=0;return}function a7(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;e=WCb(INa(3)|0)|0;e=KJa(e,WGa(148840)|0)|0;a=KJa(e,dWa(a)|0)|0;Pwb(b,KJa(a,INa(0)|0)|0);yb=d;return c[b>>2]|0}function b7(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;if(!(c[b+12>>2]|0)){yb=e;return}b=b+44|0;if(c[(c[b>>2]|0)+4>>2]|0){yb=e;return}Gsb(d,WCb(c[a+36>>2]|0)|0);a=c[b>>2]|0;d=Uha(d,a,Dpb(c[d>>2]|0)|0)|0;c[b>>2]=d;yb=e;return}function c7(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-16|0;c[d>>2]=e;acb(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function d7(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+4>>2]|0;e=a+8|0;while(1){b=c[e>>2]|0;if((d|0)==(b|0))break;f=b+-4|0;c[e>>2]=f;b=c[f>>2]|0;c[f>>2]=0;if(b|0){Htb(b);RCb(b)}}b=c[a>>2]|0;if(!b)return;RCb(b);return}function e7(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;a=a+8|0;a=Eb[c[c[a>>2]>>2]&511](a)|0;e=(Mg(d,e,a,a+168|0,g,f,0)|0)-a|0;if((e|0)<168)c[b>>2]=((e|0)/12|0|0)%7|0;return}function f7(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;a=a+8|0;a=Eb[c[c[a>>2]>>2]&511](a)|0;e=(xg(d,e,a,a+168|0,g,f,0)|0)-a|0;if((e|0)<168)c[b>>2]=((e|0)/12|0|0)%7|0;return}function g7(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;c[f>>2]=c[b+8>>2];c[e>>2]=c[f>>2];b=dWa(Kha(a,e,0)|0)|0;yb=d;return b|0}function h7(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;GB(d,a,c[b>>2]|0,f);yb=e;return (c[d>>2]|0)+20|0}function i7(a){a=a|0;var b=0;b=IWa(150452,88806)|0;b=IWa(mpa(b,c[a+8>>2]|0)|0,112821)|0;SEa(Ym(b,Raa(c[a+44>>2]|0)|0)|0,10)|0;return}function j7(b,d){b=b|0;d=d|0;var e=0,f=0;d=(Tfb(c[d>>2]|0)|0)+16|0;if(!(c[d>>2]|0))ma(104356,79048,204,79160);else{d=b+124|0;f=(c[d>>2]|0)+-1|0;e=(c[(c[b+120>>2]|0)+(f>>>5<<2)>>2]&1<<(f&31)|0)!=0;c[d>>2]=f;d=b+104|0;IQ(b+120|0,d);a[d>>0]=e&1;return}}function k7(a){a=a|0;var b=0;b=c[a+12>>2]|0;if(!b)ma(134842,134390,430,134833);switch(c[a+8>>2]|0){case 4:case 3:case 2:case 1:case 0:{c[a+4>>2]=1;break}case 5:{c[a+4>>2]=2;break}case 6:{c[a+4>>2]=3;break}case 7:{c[a+4>>2]=4;break}default:ma(141129,134390,440,134833)}if((c[b+4>>2]|0)!=6)return;c[a+4>>2]=6;return}function l7(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if(!(((b|0)!=0?(f=Rqb(b)|0,(f|0)!=0):0)?!(eCb(c[f+8>>2]|0)|0):0))f=vJa(a,b)|0;c[f+8>>2]=c[d>>2];if(!e)return f|0;Wla(f+12|0,e);_u(f);return f|0}function m7(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;if(((c[d>>2]|0)+-1|0)>>>0<3)IW(a+16|0,846,b);Vd(a,b);if(((c[d>>2]|0)+-1|0)>>>0>=3)return;IW(a+16|0,847,b);return}function n7(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;if(((c[d>>2]|0)+-1|0)>>>0<3)IW(a+16|0,1104,b);Ld(a,b);if(((c[d>>2]|0)+-1|0)>>>0>=3)return;IW(a+16|0,1105,b);return}function o7(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;b=Ihb(b+152|0)|0;if(c[37104]|0)pg(b,d,e,f,g,h,i);a[b+20>>0]=0;a[b+8>>0]=d;G1a(b+12|0,e,0)|0;G1a(b+16|0,(f|0)==0?d:f,0)|0;c[b+24>>2]=g;c[b+28>>2]=h;c[b+32>>2]=i;iHa(b);return b|0}function p7(a,b){a=a|0;b=b|0;var d=0;if(!a)return 0;d=wrb(a)|0;if(!d)return 0;a=Aqb(c[d+8>>2]|0)|0;if(!a)return 0;if((c[a+8>>2]|0)!=15)return 0;a=jqb(c[a+12>>2]|0)|0;if(!a)return 0;else return ((c[a+8>>2]|0)==(b|0)?d:0)|0;return 0}function q7(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=J(e>>>0>>0?e:d,c[b+116>>2]|0)|0;f=(c[b+140>>2]|0)+(f+(d>>>0>>0?e:d))|0;g=a[f>>0]|0;a[f>>0]=g<<24>>24==-1?-1:(g&255)+1&255;b=b+152|0;d=(c[b>>2]|0)+(d<<2)|0;c[d>>2]=(c[d>>2]|0)+1;e=(c[b>>2]|0)+(e<<2)|0;c[e>>2]=(c[e>>2]|0)+1;return}function r7(a,b){a=a|0;b=b|0;var d=0,e=0;a=a+16|0;c[a>>2]=0;d=mla(24)|0;c[d>>2]=39864;e=d+4|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[a>>2]=d;return}function s7(a,b){a=a|0;b=b|0;if(!b)return;s7(a,c[b>>2]|0);s7(a,c[b+4>>2]|0);RCb(b);return}function t7(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;EB(d,a,b,f);yb=e;return (c[d>>2]|0)+20|0}function u7(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;kC(d,a,c[b>>2]|0,f);yb=e;return (c[d>>2]|0)+20|0}function v7(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if(!(a[b+44>>0]|0)){f=0;while(1){if((f|0)>=(e|0))break a;h=c[(c[b>>2]|0)+52>>2]|0;g=Qzb(a[d>>0]|0)|0;if((Gb[h&255](b,g)|0)==-1)break a;f=f+1|0;d=d+1|0}}else f=tTa(d,1,e,c[b+32>>2]|0)|0;while(0);return f|0}function w7(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+32|0;f=e;d=Ojb(d+152|0)|0;aO(f,a,b);a=d+8|0;c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];c[a+16>>2]=c[f+16>>2];c[d+4>>2]=b;yb=e;return d|0}function x7(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+56>>2]|0;f=(c[a+60>>2]|0)-d>>2;b=c[b>>2]|0;a=f;while(1){e=a+-1|0;if((a|0)<=0){a=6;break}if(dub(c[d+(e<<2)>>2]|0,b)|0){a=4;break}a=e}if((a|0)==4)return f+-1-e|0;else if((a|0)==6)ma(141129,112765,1398,113246);return 0}function y7(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=yb;yb=yb+16|0;h=i;if((c[d+16>>2]|0)!=5)ma(111522,111484,971,112202);g=0;while(1){if((g|0)==16)break;k=a[f+g>>0]|0;j=k&255;a[h+g>>0]=a[((k&255)<16?d+j|0:e+(j+-16)|0)>>0]|0;g=g+1|0}M0a(b,h);yb=i;return}function z7(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=b;b=rrb(a,0)|0;if(hXa(c[b>>2]|0,c[37196]|0)|0){b=rrb(a,2)|0;b=WCb(c[b>>2]|0)|0;KJa(b,WGa(d)|0)|0;yb=e;return}else ma(53602,74885,1493,53619)}function A7(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;if(((c[d>>2]|0)+-1|0)>>>0<3)IW(a,1840,b);Fe(a,b);if(((c[d>>2]|0)+-1|0)>>>0>=3)return;IW(a,1841,b);return}function B7(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Ss(a+44|0,b);eva(a+104|0,Icb(b)|0);e=c[a+104>>2]|0;d=(c[a+108>>2]|0)-e>>2;while(1){if((d|0)<=0)break;f=e;c[f>>2]=0;d=d+-1|0;e=f+4|0}zO(a+16|0,b+44|0);return}function C7(a,b){a=a|0;b=b|0;if(!b)return;C7(a,c[b>>2]|0);C7(a,c[b+4>>2]|0);RCb(b);return}function D7(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b+16>>2]|0;if(vub(d)|0){a=Ojb(c[a>>2]|0)|0;e=a+8|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[a+4>>2]=d;return a|0}else ma(55387,83338,369,55414);return 0}function E7(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=yb;yb=yb+16|0;g=f+4|0;h=f;c[h>>2]=c[b+24>>2];b=c[b+28>>2]|0;c[g>>2]=c[h>>2];e=bga(a,g,b,d,e)|0;yb=f;return e|0}function F7(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){b=qc(b)|0;return b|0}if(b>>>0>4294967231){c[37419]=12;b=0;return b|0}d=pl(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d|0){b=d+8|0;return b|0}d=qc(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;Uv(d|0,a|0,(e>>>0>>0?e:b)|0)|0;wg(a);b=d;return b|0}function G7(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;NB(d,a,b,f);yb=e;return (c[d>>2]|0)+20|0}function H7(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=b+12|0;c[g>>2]=0;c[b+16>>2]=148e3;do if(d)if(d>>>0<29&(a[148112]|0)==0){a[148112]=1;f=148e3;break}else{f=mla(d<<2)|0;break}else f=0;while(0);c[b>>2]=f;e=f+(e<<2)|0;c[b+8>>2]=e;c[b+4>>2]=e;c[g>>2]=f+(d<<2);return}function I7(a){a=a|0;var b=0,d=0;d=yb;yb=yb+16|0;b=d;if(!(VBb(c[a>>2]|0)|0))ma(74875,74885,426,101694);a=c[a+8>>2]|0;if(!(WCb(c[a+4>>2]|0)|0)){Pwb(b,0);b=c[b>>2]|0;yb=d;return b|0}else{a=cWa(a)|0;a=c[a>>2]|0;c[b>>2]=a;b=a;yb=d;return b|0}return 0}function J7(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=b;hCb(a+4|0);c[a+8>>2]=e;c[a+12>>2]=d;G0a(a+16|0);yib(a+40|0);e=a+52|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;g[a+68>>2]=1.0;c[a+72>>2]=0;return}function K7(a){a=a|0;oK(a,c[a+4>>2]|0);return}function L7(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=b;d=c[a+40>>2]|0;b=c[a+36>>2]|0;while(1){if((b|0)==(d|0))break;a=c[b>>2]|0;if(!(Yrb(a)|0))Yx(e,a);b=b+4|0}yb=f;return}function M7(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;g=yb;yb=yb+16|0;i=g+4|0;h=g;Gsb(i,a);j6a(h,0,0);a=Vma(c[i>>2]|0,b,d,e,f,c[h>>2]|0)|0;if(!(c[37104]|0)){yb=g;return a|0}zg(a,b,d,e,f);yb=g;return a|0}function N7(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=mla(24)|0;c[b>>2]=f;c[b+4>>2]=d+4;c[f+16>>2]=c[c[e>>2]>>2];e=f+20|0;c[e>>2]=0;hCb(e);a[b+8>>0]=1;return}function O7(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+32|0;f=e+28|0;d=e;c[f>>2]=b;H6a(d,a);n=0;da(87,d|0,f|0);b=n;n=0;if(b&1){f=sa()|0;P()|0;Arb(d);Ea(f|0)}else{Arb(d);yb=e;return}}function P7(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+32|0;f=e;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[f+16>>2]=c[d+16>>2];c[f+20>>2]=c[d+20>>2];Fl(a,b,f);yb=e;return}function Q7(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+4|0;d=c[g>>2]|0;e=c[a>>2]|0;f=(d-e|0)/24|0;if(f>>>0>>0){XE(a,b-f|0);return}if(f>>>0<=b>>>0)return;a=e+(b*24|0)|0;while(1){if((a|0)==(d|0))break;f=d+-24|0;Aeb(f);d=f}c[g>>2]=a;return}function R7(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=mla(32)|0;c[b>>2]=f;c[b+4>>2]=d+4;c[f+16>>2]=c[c[e>>2]>>2];c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;a[b+8>>0]=1;return}function S7(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Vea(b,d);return}function T7(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;if(((c[d>>2]|0)+-1|0)>>>0<3)IW(a,1877,b);Ie(a,b);if(((c[d>>2]|0)+-1|0)>>>0>=3)return;IW(a,1878,b);return}function U7(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Gbb(a,b);b=a+16|0;Dlb(b,c);Zpa(b,d);return}function V7(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;if(f>>>0>4294967279)ipa();if(f>>>0<11)a[b+11>>0]=e;else{g=f+16&-16;f=mla(g)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=e;b=f}dib(b,d,e)|0;Fsb(b+e|0,0);return}function W7(a){a=a|0;var b=0,d=0,e=0;b=a+8|0;if(!(c[b>>2]|0))return;d=c[a+4>>2]|0;e=(c[a>>2]|0)+4|0;c[(c[d>>2]|0)+4>>2]=c[e>>2];c[c[e>>2]>>2]=c[d>>2];c[b>>2]=0;b=d;while(1){if((b|0)==(a|0))break;e=c[b+4>>2]|0;Xpb(b+8|0);RCb(b);b=e}return}function X7(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+32|0;d=e;Kjb(a,b);b=0;while(1){if((b|0)==2)break;f=a+(b*24|0)|0;qUa(d,f);c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[f+16>>2]=c[d+16>>2];b=b+1|0}yb=e;return}function Y7(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+32|0;d=e;Ljb(a,b);b=0;while(1){if((b|0)==4)break;f=a+(b*24|0)|0;r_a(d,f);c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[f+16>>2]=c[d+16>>2];b=b+1|0}yb=e;return}function Z7(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;do if((b|0)!=8){e=b>>>2;if((b&3|0)!=0|(e|0)==0){a=22;return a|0}if(e+1073741823&e|0){a=22;return a|0}if((-64-b|0)>>>0>>0){a=12;return a|0}else{b=Rx(b>>>0>16?b:16,d)|0;break}}else b=qc(d)|0;while(0);if(!b){a=12;return a|0}c[a>>2]=b;a=0;return a|0}function _7(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[a>>2]|0;if(!e)return;f=a+4|0;b=c[f>>2]|0;while(1){if((e|0)==(b|0))break;b=b+-4|0;d=c[b>>2]|0;c[b>>2]=0;if(d|0){Htb(d);RCb(d)}}c[f>>2]=e;RCb(c[a>>2]|0);return}function $7(a){a=a|0;c[a>>2]=40756;Oeb(a+108|0);Khb(a+96|0);Vob(a+84|0);Vob(a+72|0);sHa(a+60|0);Ceb(a);return}function a8(a){a=a|0;var b=0,d=0;c[a>>2]=44552;t9a(a+40|0);eXa(a+28|0);d=a+20|0;b=c[d>>2]|0;c[d>>2]=0;if(b|0)RCb(b);d=a+16|0;b=c[d>>2]|0;c[d>>2]=0;if(!b){Xjb(a);return}gM(b);RCb(b);Xjb(a);return}function b8(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=jfb(c[b+4>>2]|0)|0;c[g+8>>2]=e;f=vp(Vr(d,1)|0,f)|0;a[g+16>>0]=f;f=$db(b,Vr(d,2)|0)|0;c[g+12>>2]=f;k7(g);return g|0}function c8(a,b){a=a|0;b=b|0;b=Mba(a,b)|0;if((b|0)==(a+4|0))return;uka(a+12|0,c[b+20>>2]|0)|0;lZ(a,b)|0;return}function d8(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;c[f>>2]=c[b+24>>2];c[e>>2]=c[f>>2];b=wp(a,b,e,b+8|0)|0;yb=d;return b|0}function e8(a,b){a=a|0;b=b|0;var d=0;d=c[a+44>>2]|0;a=b+24|0;if(!(LF(d,a)|0))ma(102330,102362,50,116827);else{d=Jm(d,a)|0;c[d>>2]=(c[d>>2]|0)+1;return}}function f8(a){a=a|0;var b=0,d=0;d=yb;yb=yb+16|0;b=d;Sdb(b,0);n=0;da(957,b|0,c[a>>2]|0);a=n;n=0;if(a&1){d=sa()|0;P()|0;Htb(b);Ea(d|0)}else{a=(c[b+4>>2]|0)-(c[b>>2]|0)|0;Htb(b);yb=d;return a|0}return 0}function g8(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=c[a+20>>2]|0;f=c[b>>2]|0;e=c[d>>2]|0;d=c[a+16>>2]|0;while(1){if((d|0)==(g|0)){b=0;d=6;break}b=c[d>>2]|0;if(dub(c[b>>2]|0,f)|0?dub(c[b+4>>2]|0,e)|0:0){d=6;break}d=d+4|0}if((d|0)==6)return b|0;return 0}function h8(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=yb;yb=yb+64|0;b=e;$T(b,c[a+16>>2]|0);n=0;da(2314,b|0,d|0);d=n;n=0;if(d&1){d=sa()|0;P()|0;Bkb(b);Ea(d|0)}else{Bkb(b);yb=e;return}}function i8(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=b;c[d>>2]=e;b=c[c[a>>2]>>2]|0;if(b){c[a>>2]=b;e=c[d>>2]|0}Yv(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1;return}function j8(){var a=0,b=0,c=0,d=0;c=yb;yb=yb+32|0;a=c;b=mla(40)|0;jdb(a,0);n=0;da(3898,b|0,a|0);d=n;n=0;if(d&1){d=sa()|0;P()|0;TIa(a);RCb(b);Ea(d|0)}else{TIa(a);yb=c;return b|0}return 0}function k8(a,b){a=a|0;b=b|0;if(!b)return;k8(a,c[b>>2]|0);k8(a,c[b+4>>2]|0);RCb(b);return}function l8(a,b){a=a|0;b=b|0;if(!b)return;l8(a,c[b>>2]|0);l8(a,c[b+4>>2]|0);RCb(b);return}function m8(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a>>2]|0;s1a(a+8|0);RCb(a);a=b}return}function n8(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;b=b+d|0;if(_sb(b)|0){d=b;c[d>>2]=e;c[d+4>>2]=f;return}else{d=b;b=d;a[b>>0]=e;a[b+1>>0]=e>>8;a[b+2>>0]=e>>16;a[b+3>>0]=e>>24;e=d+4|0;a[e>>0]=f;a[e+1>>0]=f>>8;a[e+2>>0]=f>>16;a[e+3>>0]=f>>24;return}}function o8(b,d,e){b=b|0;d=d|0;e=e|0;if(e|0){e=0;return e|0}e=akb(c[b+4>>2]|0)|0;c[e+4>>2]=5;a[e+8>>0]=16;EI(b,e+16|0,e+12|0);a[e+20>>0]=0;b=rl(b)|0;c[e+24>>2]=b;Zjb(e);c[d>>2]=e;e=1;return e|0}function p8(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+16|0;f=e;c[f>>2]=b;b=oC(d+76|0,f)|0;if(!b){yb=e;return}dM(a,b+12|0);yb=e;return}function q8(){var b=0,d=0,e=0;do if((c[11712]|0)>=0?(WFb()|0)!=0:0){if((a[46847]|0)!=10?(b=c[11698]|0,b>>>0<(c[11697]|0)>>>0):0){c[11698]=b+1;a[b>>0]=10;break}C2()|0}else e=3;while(0);do if((e|0)==3){if((a[46847]|0)!=10?(d=c[11698]|0,d>>>0<(c[11697]|0)>>>0):0){c[11698]=d+1;a[d>>0]=10;break}C2()|0}while(0);return}function r8(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Ria()|0;KJa(WCb(c[c[a>>2]>>2]|0)|0,e)|0;a=dWa(c[37105]|0)|0;KQ(e,b,Q5(Q5(a,c[37122]|0)|0,d)|0);return}function s8(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;b=c;while(1){if((e|0)==(f|0)){h=7;break}if((b|0)==(d|0)){b=-1;break}c=a[b>>0]|0;g=a[e>>0]|0;if(c<<24>>24>24){b=-1;break}if(g<<24>>24>24){b=1;break}e=e+1|0;b=b+1|0}if((h|0)==7)b=(b|0)!=(d|0)&1;return b|0}function t8(a){a=a|0;Vob(a+108|0);Pdb(a+88|0);Zla(a+68|0);Vob(a+56|0);Pdb(a+36|0);Vob(a+24|0);return}function u8(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;if(!(OLa(b,c[a+24>>2]|0)|0)){yb=e;return}a=c[a+32>>2]|0;b=eib(c[b+12>>2]|0)|0;c[d>>2]=b;d=O8(a,d)|0;c[d>>2]=(c[d>>2]|0)+1;yb=e;return}function v8(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=c[a+8>>2]|0;f=c[b>>2]|0;e=c[d>>2]|0;d=c[a+4>>2]|0;while(1){if((d|0)==(g|0)){b=0;d=6;break}b=c[d>>2]|0;if(dub(c[b>>2]|0,f)|0?dub(c[b+4>>2]|0,e)|0:0){d=6;break}d=d+4|0}if((d|0)==6)return b|0;return 0}function w8(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;c[e>>2]=0;if((b|0)!=(d|0)){f=a[b>>0]|0;if(f<<24>>24==114){c[e>>2]=4;f=b+1|0;b=f;d=4;f=a[f>>0]|0}else d=0;if(f<<24>>24==86){d=d|2;c[e>>2]=d;f=b+1|0;b=f;f=a[f>>0]|0}if(f<<24>>24==75){c[e>>2]=d|1;b=b+1|0}}return b|0}function x8(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;f=d;e=c[a>>2]|0;g=c[e+68>>2]|0;a=a+4|0;Pwb(f,c[c[a>>2]>>2]|0);YA(g,c[f>>2]|0)|0;uu(e,c[b+8>>2]|0);b=c[a>>2]|0;c[b>>2]=(c[b>>2]|0)+1;yb=d;return}function y8(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=lgb(c[a+4>>2]|0)|0;c[e+8>>2]=d;d=$db(a,Vr(b,1)|0)|0;c[e+12>>2]=d;d=$db(a,Vr(b,2)|0)|0;c[e+16>>2]=d;Wna(e);return e|0}function z8(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;c[e>>2]=d;f=a+(b*12|0)+4|0;g=c[f>>2]|0;if((g|0)==(c[a+(b*12|0)+8>>2]|0)){_M(a+(b*12|0)|0,e);yb=h;return}else{c[g>>2]=d;c[f>>2]=(c[f>>2]|0)+4;yb=h;return}}function A8(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;$lb(a);c[a+24>>2]=d;c[a+28>>2]=e;n=0;da(1052,a|0,b+44|0);e=n;n=0;if(e&1){e=sa()|0;P()|0;Hqb(a);Ea(e|0)}else return}function B8(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+16|0;e=f;g=WCb(INa(4)|0)|0;Pwb(e,KJa(KJa(KJa(KJa(g,WGa(148800)|0)|0,a)|0,b)|0,d)|0);yb=f;return c[e>>2]|0}function C8(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=hka(b,c[a+4>>2]|0,d)|0;if((a|0)!=(d|0)?!(Bfb(c[b>>2]|0,a+16|0)|0):0){d=a;return d|0}return d|0}function D8(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(e>>>0>4294967279)ipa();if(e>>>0<11)a[b+11>>0]=e;else{g=e+16&-16;f=mla(g)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=e;b=f}dib(b,d,e)|0;Fsb(b+e|0,0);return}function E8(b,d){b=b|0;d=d|0;var e=0,f=0;f=Thb(c[d>>2]|0,151636)|0;e=b+36|0;c[e>>2]=f;f=Eb[c[(c[f>>2]|0)+24>>2]&511](f)|0;d=b+44|0;c[d>>2]=f;e=c[e>>2]|0;e=(Eb[c[(c[e>>2]|0)+28>>2]&511](e)|0)&1;a[b+53>>0]=e;if((c[d>>2]|0)>8)Jwa(136274);else return}function F8(b,d){b=b|0;d=d|0;var e=0,f=0;f=Thb(c[d>>2]|0,151628)|0;e=b+36|0;c[e>>2]=f;f=Eb[c[(c[f>>2]|0)+24>>2]&511](f)|0;d=b+44|0;c[d>>2]=f;e=c[e>>2]|0;e=(Eb[c[(c[e>>2]|0)+28>>2]&511](e)|0)&1;a[b+53>>0]=e;if((c[d>>2]|0)>8)Jwa(136274);else return}function G8(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;d=f+4|0;e=f;if(c[37104]|0)IWa(IWa(IWa(150452,65591)|0,b)|0,65627)|0;Zsb(e,b);c[d>>2]=c[e>>2];e=wQ(a,d)|0;yb=f;return e|0}function H8(a){a=a|0;var b=0;a=Aqb(a)|0;if(!a){b=0;return b|0}if((c[a+8>>2]|0)!=7){b=0;return b|0}a=a+16|0;b=Mqb(c[a>>2]|0)|0;if(!b){b=0;return b|0}if(!(BGa(Peb(b+8|0)|0)|0)){b=0;return b|0}b=c[a>>2]|0;return b|0}function I8(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=mla(116)|0;c[b>>2]=f;c[b+4>>2]=d+4;c[f+16>>2]=c[e>>2];kbb(f+20|0,e+4|0);a[b+8>>0]=1;return}function J8(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(d>>>0>4294967279)ipa();if(d>>>0<11)a[b+11>>0]=d;else{g=d+16&-16;f=mla(g)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=d;b=f}F5a(b,d,e)|0;Fsb(b+d|0,0);return}function K8(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a>>2]|0;rab(a+8|0);RCb(a);a=b}return}function L8(a,b,d){a=a|0;b=b|0;d=d|0;return Xla(c[c[(c[a+4>>2]|0)+44>>2]>>2]|0,c[c[a+8>>2]>>2]|0,b,c[d>>2]|0)|0}function M8(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+16|0;e=g+4|0;f=g;if(!(a[(c[b+44>>2]|0)+1>>0]&1)){yb=g;return}h=WCb(c[b+36>>2]|0)|0;c[f>>2]=c[d+8>>2];c[e>>2]=c[f>>2];YKa(b,(EEa(h,e)|0)!=0,d);yb=g;return}function N8(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=b;d=c[a+40>>2]|0;b=c[a+36>>2]|0;while(1){if((b|0)==(d|0))break;a=c[b>>2]|0;if(!(Yrb(a)|0))V$a(e,a);b=b+4|0}yb=f;return}function O8(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+8|0;f=e;c[f>>2]=b;MC(d,a,c[b>>2]|0,f);yb=e;return (c[d>>2]|0)+20|0}function P8(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-12|0;qMa(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function Q8(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-12|0;rMa(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function R8(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-12|0;sMa(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function S8(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-12|0;tMa(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function T8(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-12|0;uMa(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function U8(a){a=a|0;var b=0,d=0;b=mla(24)|0;d=a+4|0;c[b>>2]=39864;a=b+4|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];c[a+16>>2]=c[d+16>>2];return b|0}function V8(){var a=0,b=0,c=0,d=0;c=yb;yb=yb+32|0;a=c;b=mla(40)|0;Ydb(a,0);n=0;da(3898,b|0,a|0);d=n;n=0;if(d&1){d=sa()|0;P()|0;TIa(a);RCb(b);Ea(d|0)}else{TIa(a);yb=c;return b|0}return 0}function W8(b,d){b=b|0;d=d|0;var e=0,f=0;e=b+4|0;f=c[e>>2]|0;if(f>>>0>20){f=0;return f|0}if(f>>>0<3){f=1;return f|0}if(((c[b>>2]|0)==1?(a[b+9>>0]&1)==0:0)?(c[e>>2]|0)>>>0<16:0){f=1;return f|0}if((c[d+4>>2]|0)<=2){f=0;return f|0}if(c[d+8>>2]|0){f=0;return f|0}f=(a[b+8>>0]&1)!=0;return f|0}function X8(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=yb;yb=yb+48|0;g=i+24|0;e=i;h=c[b+4>>2]|0;Bqb(e,d);d=g;f=d+24|0;do{a[d>>0]=a[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(f|0));g=D7(b,g)|0;h=tVa(c[b>>2]|0,h,g)|0;yb=i;return h|0}function Y8(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=On(zc(c[a+20>>2]|0,b,d)|0,a,b,d)|0;a=c[a+8>>2]|0;if(!a)return e|0;d=Hb[c[(c[a>>2]|0)+8>>2]&255](a,b,d)|0;e=zMa(c[b>>2]|0,e,d)|0;return e|0}function Z8(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+8|0;a=c[f>>2]|0;do{d=a;e=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));d3a(a);a=(c[f>>2]|0)+40|0;c[f>>2]=a;b=b+-1|0}while((b|0)!=0);return}function _8(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-12|0;c[d>>2]=e;qMa(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function $8(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-12|0;c[d>>2]=e;rMa(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function a9(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-12|0;c[d>>2]=e;sMa(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function b9(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-12|0;c[d>>2]=e;tMa(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function c9(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-12|0;c[d>>2]=e;uMa(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function d9(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+32|0;e=d;c[a+8>>2]=7;Bqb(e,b+-1|0);b=(ffb(c[a+16>>2]|0)|0)+8|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];yb=d;return a|0}function e9(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=(c[b+4>>2]|0)-(c[b>>2]|0)>>2;h=g+-1|0;f=0;while(1){if((f|0)==(g|0))break;e=f;while(1){d=e+1|0;if((e|0)==(h|0))break;e=c[b>>2]|0;_za(a,c[e+(f<<2)>>2]|0,c[e+(d<<2)>>2]|0);e=d}f=f+1|0}return}function f9(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+4>>2]|0;e=c[b>>2]|0;a=d;while(1){if(!a){a=0;d=8;break}if(!(Bfb(e,a+16|0)|0)){if(!(Bfb(c[a+16>>2]|0,b)|0)){a=1;d=8;break}a=d+4|0}d=c[a>>2]|0;a=d}if((d|0)==8)return a|0;return 0}function g9(a){a=a|0;var b=0,d=0,e=0;b=c[a+12>>2]|0;if(!b)ma(134859,134390,658,134833);d=c[a+16>>2]|0;if(!d)ma(134859,134390,658,134833);e=c[b+4>>2]|0;if((e|0)!=6?(c[d+4>>2]|0)!=6:0){b=a+4|0;if(Tka(c[a+8>>2]|0)|0){c[b>>2]=1;return}else{c[b>>2]=e;return}}c[a+4>>2]=6;return}function h9(a){a=a|0;var b=0;b=a+4|0;UO(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function i9(a){a=a|0;var b=0;b=a+4|0;VO(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function j9(a){a=a|0;var b=0;b=a+4|0;WO(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function k9(a){a=a|0;var b=0;b=a+4|0;XO(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function l9(a){a=a|0;var b=0;b=a+4|0;YO(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function m9(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+64|0;d=c[b>>2]|0;if(!d){e=0;return e|0}n=0;e=S(c[(c[a>>2]|0)+24>>2]|0,a|0)|0;f=n;n=0;if(f&1){f=sa()|0;P()|0;o6(d)|0;Ea(f|0)}if(o6(d)|0){f=0;return f|0}c[b>>2]=0;f=(e|0)==0?a:0;return f|0}function n9(a){a=a|0;var b=0,d=0;b=WCb(a)|0;if(!(VBb(c[a>>2]|0)|0))ma(66822,74885,1202,66855);d=rrb(a,0)|0;if(!(hXa(c[d>>2]|0,c[37203]|0)|0))ma(66822,74885,1202,66855);if((K0a(b)|0)>>>0<=3){d=0;return d|0}d=rrb(a,3)|0;d=(zgb(c[d>>2]|0)|0)^1;return d|0}function o9(b,d){b=b|0;d=d|0;var e=0;if(a[b+12>>0]&1)BM(IWa(150620,113073)|0);e=Ux(b,IF(b)|0)|0;c[d+8>>2]=e;b=rl(b)|0;c[d+12>>2]=b;mjb(d);return}function p9(a,b){a=a|0;b=b|0;Obb(c[a>>2]|0,98503)|0;SEa(DFa(c[a>>2]|0,c[b>>2]|0)|0,32)|0;SEa(DFa(c[a>>2]|0,c[b+4>>2]|0)|0,32)|0;return}function q9(a){a=a|0;lL(a,c[a+4>>2]|0);return}function r9(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e+4|0;f=e;c[f>>2]=b;b=Mba(a+52|0,f)|0;if((b|0)==(a+56|0)){Cub(d);f=c[d>>2]|0;yb=e;return f|0}else{f=c[b+20>>2]|0;c[d>>2]=f;yb=e;return f|0}return 0}function s9(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=mab(c[e>>2]|0,b)|0;c[a>>2]=e;d=e+(d*24|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*24|0);return}function t9(a,b){a=a|0;b=b|0;var d=0;Qua(a,88662);peb(a);d=rrb(b,2)|0;uQa(a,c[d>>2]|0);Alb(a);Qua(a,74842);Alb(a);hfa(a,40);b=rrb(b,1)|0;Xi(a,c[b>>2]|0);hfa(a,41);return}function u9(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;d=f+4|0;e=f;if(c[37104]|0)IWa(IWa(IWa(150452,65632)|0,b)|0,65627)|0;Zsb(e,b);c[d>>2]=c[e>>2];WC(a,d);yb=f;return}function v9(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;h=a+4|0;i=c[h>>2]|0;f=i-e|0;g=f>>2;a=b+(g<<2)|0;e=i;while(1){if(a>>>0>=d>>>0)break;c[e>>2]=c[a>>2];j=(c[h>>2]|0)+4|0;c[h>>2]=j;a=a+4|0;e=j}if(!f)return;Pxa(i+(0-g<<2)|0,b|0,f|0)|0;return}function w9(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if(!(a[b+44>>0]|0)){f=0;while(1){if((f|0)>=(e|0))break a;h=c[(c[b>>2]|0)+52>>2]|0;g=WCb(c[d>>2]|0)|0;if((Gb[h&255](b,g)|0)==-1)break a;f=f+1|0;d=d+4|0}}else f=tTa(d,4,e,c[b+32>>2]|0)|0;while(0);return f|0}function x9(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=uhb(c[a+4>>2]|0)|0;c[e+8>>2]=d;d=$db(a,Vr(b,1)|0)|0;c[e+12>>2]=d;d=$db(a,Vr(b,2)|0)|0;c[e+16>>2]=d;g9(e);return e|0}function y9(b){b=b|0;var d=0,e=0,f=0;do if(!(a[b+8>>0]&1)){e=b+4|0;f=c[e>>2]|0;if(!f)ma(97979,97990,672,98020);else{d=f+-1|0;c[e>>2]=d;gQa(c[b>>2]|0,d)|0;d=b;break}}else d=b;while(0);SEa(c[d>>2]|0,41)|0;return}function z9(a){a=a|0;var b=0;k7a(a);c[a>>2]=40756;yib(a+60|0);b=a+72|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;yib(a+96|0);yib(a+108|0);return}function A9(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=yb;yb=yb+16|0;j=i;Gsb(j,a);a=Ifa(c[j>>2]|0,b,d,e,f,g,h)|0;if(!(c[37104]|0)){yb=i;return a|0}qg(a,b,d,e,f,g,h);yb=i;return a|0}function B9(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=d;if((b|0)==(d|0)){e=1;yb=f;return e|0}a=CGa(a,b)|0;if(a|0?(Mba(a,e)|0)!=(a+4|0):0){e=1;yb=f;return e|0}e=0;yb=f;return e|0}function C9(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g;c[d>>2]=b;e=a+12|0;f=c[e>>2]|0;if((f|0)==(c[a+16>>2]|0))_M(a+8|0,d);else{c[f>>2]=b;c[e>>2]=(c[e>>2]|0)+4}Tb[c[(c[b>>2]|0)+8>>2]&255](b,a,c[a>>2]|0);yb=g;return}function D9(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+4|0;a=c[f>>2]|0;do{d=a;e=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));d3a(a);a=(c[f>>2]|0)+40|0;c[f>>2]=a;b=b+-1|0}while((b|0)!=0);return}function E9(a,b){a=a|0;b=b|0;if(!b)return;E9(a,c[b>>2]|0);E9(a,c[b+4>>2]|0);RCb(b);return}function F9(a,b){a=a|0;b=b|0;if(!b)return;F9(a,c[b>>2]|0);F9(a,c[b+4>>2]|0);RCb(b);return}function G9(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;d=f+4|0;e=f;if(c[37104]|0)IWa(IWa(IWa(150452,65709)|0,b)|0,65627)|0;Zsb(e,b);c[d>>2]=c[e>>2];yE(a,d);yb=f;return}function H9(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;d=f+4|0;e=f;if(c[37104]|0)IWa(IWa(IWa(150452,66092)|0,b)|0,65627)|0;Zsb(e,b);c[d>>2]=c[e>>2];FE(a,d);yb=f;return}function I9(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=yb;yb=yb+16|0;j=i;Gsb(j,a);a=Hfa(c[j>>2]|0,b,d,e,f,g,h)|0;if(!(c[37104]|0)){yb=i;return a|0}og(a,b,d,e,f,g,h);yb=i;return a|0}function J9(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+384|0;f=e;rjb(f,b);d=Wha(f,d&255)|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];yb=e;return}function K9(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+384|0;f=e;sjb(f,b);d=Wha(f,d&255)|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];yb=e;return}function L9(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[b+4>>2]|0;f=WCb(e)|0;if((c[a+8>>2]|0)>>>0>>0)Z5a(a,f);d=0;while(1){if((d|0)==(e|0))break;g=uXa(b,d)|0;c[(c[a>>2]|0)+(d<<2)>>2]=c[g>>2];d=d+1|0}c[a+4>>2]=f;return}function M9(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0;g=(e&255)<<16|(c&255)<<24|(f&255)<<8;f=b+2|0;e=a[f>>0]|0;c=(d[b+1>>0]|0)<<16|(d[b>>0]|0)<<24|(e&255)<<8;e=e<<24>>24==0;if(!((c|0)==(g|0)|e))do{f=f+1|0;e=a[f>>0]|0;c=(c|e&255)<<8;e=e<<24>>24==0}while(!((c|0)==(g|0)|e));return (e?0:f+-2|0)|0}function N9(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=d;if(!a){f=oa(4)|0;c[f>>2]=0;Nxb(f);za(f|0,37944,379)}else{e=Hb[c[(c[a>>2]|0)+24>>2]&255](a,b,e)|0;yb=f;return e|0}return 0}function O9(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+192|0;f=e;Cjb(f,b);d=eia(f,d&255)|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];yb=e;return}function P9(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+192|0;f=e;Djb(f,b);d=eia(f,d&255)|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];yb=e;return}function Q9(a){a=a|0;var b=0,d=0,e=0;b=yb;yb=yb+16|0;d=b;a=a+28|0;tI(c[a>>2]|0,-4)|0;e=c[a>>2]|0;Pwb(d,10);YA(e,c[d>>2]|0)|0;tI(tI(c[a>>2]|0,0)|0,0)|0;yb=b;return}function R9(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;a=IWa(a,55712)|0;b=O8(148192,e)|0;IWa(Ym(a,c[b>>2]|0)|0,139976)|0;yb=d;return}function S9(b,c,e){b=b|0;c=c|0;e=e|0;var f=0;f=(c&255)<<8|e&255;e=b+1|0;c=a[e>>0]|0;a:do if(!(c<<24>>24))e=0;else{c=(d[b>>0]|0)<<8|c&255;while(1){b=c&65535;if((b|0)==(f|0))break;e=e+1|0;c=a[e>>0]|0;if(!(c<<24>>24)){e=0;break a}else c=b<<8|c&255}e=e+-1|0}while(0);return e|0}function T9(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g+4|0;f=g;c[e>>2]=b;c[f>>2]=d;if(!a){g=oa(4)|0;c[g>>2]=0;Nxb(g);za(g|0,37944,379)}else{f=Hb[c[(c[a>>2]|0)+24>>2]&255](a,e,f)|0;yb=g;return f|0}return 0}function U9(a,b){a=a|0;b=b|0;a=a+4|0;c[b>>2]=39864;b=b+4|0;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2];c[b+16>>2]=c[a+16>>2];return}function V9(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;if(!(p7(b,c[a+24>>2]|0)|0)){yb=e;return}a=c[a+28>>2]|0;b=B_a(c[b+8>>2]|0)|0;c[d>>2]=b;d=O8(a,d)|0;c[d>>2]=(c[d>>2]|0)+1;yb=e;return}function W9(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;a:do if(d|0)switch(e|0){case -2:{a[d>>0]=f;break a}case -1:{b[d>>1]=f;break a}case 0:{c[d>>2]=f;break a}case 1:{c[d>>2]=f;break a}case 3:{e=d;c[e>>2]=f;c[e+4>>2]=g;break a}default:break a}while(0);return}function X9(a,b){a=a|0;b=b|0;var d=0;d=c[a+4>>2]|0;if(!d){d=a;d=c[d>>2]|0;return d|0}else{d=uXa(d+12|0,(Y_a(d)|0)-b+-1|0)|0;d=c[d>>2]|0;return d|0}return 0}function Y9(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a>>2]|0;FTa(a+8|0);RCb(a);a=b}return}function Z9(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=b;while(1){if((e|0)==(f|0)){h=7;break}if((a|0)==(d|0)){a=-1;break}b=c[a>>2]|0;g=c[e>>2]|0;if((b|0)<(g|0)){a=-1;break}if((g|0)<(b|0)){a=1;break}e=e+4|0;a=a+4|0}if((h|0)==7)a=(a|0)!=(d|0)&1;return a|0}function _9(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)>>>0<=(c[d>>2]|0)>>>0&1);return}case 2:{f=c[b+4>>2]|0;e=c[d+4>>2]|0;Bqb(a,(f>>>0>>0|((f|0)==(e|0)?(c[b>>2]|0)>>>0<=(c[d>>2]|0)>>>0:0))&1);return}default:ma(141129,111484,804,112124)}}function $9(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)>>>0>=(c[d>>2]|0)>>>0&1);return}case 2:{f=c[b+4>>2]|0;e=c[d+4>>2]|0;Bqb(a,(f>>>0>e>>>0|((f|0)==(e|0)?(c[b>>2]|0)>>>0>=(c[d>>2]|0)>>>0:0))&1);return}default:ma(141129,111484,852,112146)}}function aaa(b,d){b=b|0;d=d|0;if(a[b+33>>0]&1)BM(IWa(150620,112703)|0);d=c[d+8>>2]|0;if(d|0)T_a(b,d);tI(c[b+28>>2]|0,15)|0;return}function baa(a){a=a|0;var b=0,d=0,e=0;e=yb;yb=yb+16|0;d=e;switch(a|0){case 0:{b=-64;break}case 1:{b=-1;break}case 2:{b=-2;break}case 3:{b=-3;break}case 4:{b=-4;break}case 5:{b=-5;break}case 6:{ma(141129,113322,819,113349);break}default:b=0}Pwb(d,b);yb=e;return c[d>>2]|0}function caa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;udb(a,b);b=a+16|0;Dlb(b,c);Lea(b,d);return}function daa(a){a=a|0;YL(a,c[a+4>>2]|0);return}function eaa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+48|0;f=e;Kjb(f,b);d=gia(f,d&255)|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];yb=e;return}function faa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+96|0;f=e;Ljb(f,b);d=fia(f,d&255)|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];yb=e;return}function gaa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+48|0;f=e;X7(f,b);d=gia(f,d&255)|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];yb=e;return}function haa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+96|0;f=e;Y7(f,b);d=fia(f,d&255)|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];yb=e;return}function iaa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=yb;yb=yb+16|0;d=f;c[d>>2]=b;e=c[b+16>>2]|0;b=c[b+12>>2]|0;while(1){if((b|0)==(e|0))break;kca(G_(a,c[b>>2]|0)|0,d);b=b+4|0}yb=f;return}function jaa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);ksa(b,d);return}function kaa(a,b){a=a|0;b=b|0;a=c[a+24>>2]|0;if((!(_la(a,c[b+8>>2]|0)|0)?!(_la(a,c[b+12>>2]|0)|0):0)?!(_la(a,c[b+16>>2]|0)|0):0)return;Nra(a,b);return}function laa(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+4>>2]|0;a=e;while(1){if(!a){a=0;d=8;break}d=c[a+16>>2]|0;if((d|0)<=(b|0)){if((d|0)>=(b|0)){a=1;d=8;break}a=e+4|0}e=c[a>>2]|0;a=e}if((d|0)==8)return a|0;return 0}function maa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)>>>0<(c[d>>2]|0)>>>0&1);return}case 2:{f=c[b+4>>2]|0;e=c[d+4>>2]|0;Bqb(a,(f>>>0>>0|((f|0)==(e|0)?(c[b>>2]|0)>>>0<(c[d>>2]|0)>>>0:0))&1);return}default:ma(141129,111484,780,112113)}}function naa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0&1);return}case 2:{f=c[b+4>>2]|0;e=c[d+4>>2]|0;Bqb(a,(f>>>0>e>>>0|((f|0)==(e|0)?(c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0:0))&1);return}default:ma(141129,111484,828,112135)}}function oaa(a,b){a=a|0;b=b|0;var d=0,e=0;d=Kfb(c[a+4>>2]|0)|0;c[d+4>>2]=1;e=$db(a,Vr(b,1)|0)|0;c[d+12>>2]=e;b=$db(a,Vr(b,2)|0)|0;c[d+16>>2]=b;MVa(d);return d|0}function paa(a,b){a=a|0;b=b|0;var d=0,e=0;d=Ggb(c[a+4>>2]|0)|0;e=am(a,Vr(b,1)|0)|0;c[d+8>>2]=e;b=$db(a,Vr(b,2)|0)|0;c[d+12>>2]=b;m4a(d,1);FHa(d);return d|0}function qaa(a,b){a=a|0;b=b|0;var d=0,e=0;d=Ggb(c[a+4>>2]|0)|0;e=am(a,Vr(b,1)|0)|0;c[d+8>>2]=e;b=$db(a,Vr(b,2)|0)|0;c[d+12>>2]=b;m4a(d,0);FHa(d);return d|0}function raa(a,b){a=a|0;b=b|0;var d=0,e=0;b=b+8|0;d=O8(a+44|0,b)|0;c[d>>2]=(c[d>>2]|0)+1;if(Paa(a+56|0,b)|0)return;e=c[a+64>>2]|0;d=O8(a+56|0,b)|0;c[d>>2]=e;return}function saa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;udb(a,b);b=a+16|0;Dlb(b,c);zua(b,d);return}function taa(a){a=a|0;var b=0,d=0;d=pob(c[(c[a>>2]|0)+40>>2]|0)|0;b=c[c[a+4>>2]>>2]|0;if(!(__(d,c[b+12>>2]|0,c[b+16>>2]|0)|0))return;p2(c[a+8>>2]|0);return}function uaa(a){a=a|0;eM(a,c[a+4>>2]|0);return}function vaa(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=mla(48)|0;c[b>>2]=f;c[b+4>>2]=d+4;c[f+16>>2]=c[c[e>>2]>>2];egb(f+24|0);a[b+8>>0]=1;return}function waa(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)>>>(rTa(c[d>>2]|0,1)|0));return}case 2:{Heb(a,U4a(c[b>>2]|0,c[b+4>>2]|0,rTa(c[d>>2]|0,2)|0)|0,P()|0);return}default:ma(141129,111484,722,112091)}}function xaa(a){a=a|0;var b=0,d=0,e=0;b=yb;yb=yb+16|0;d=b+4|0;c[d>>2]=a;a=b;e=WCb(INa(2)|0)|0;e=KJa(e,WGa(148860)|0)|0;Pwb(a,KJa(e,WGa(d)|0)|0);yb=b;return c[a>>2]|0}function yaa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=(c[d+28>>2]|0)-(c[d+24>>2]|0)>>2;f=a+40|0;g=0;while(1){c[f>>2]=g;if(g>>>0>e>>>0){a=5;break}Ir(a,d);if(!(ef(a,b,d)|0)){a=5;break}g=(c[f>>2]|0)+1|0}if((a|0)==5)return}function zaa(a,b){a=a|0;b=b|0;h2a(a);c[a>>2]=46396;c[a+44>>2]=b;b=a+48|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+64>>2]=1.0;c[a+68>>2]=6;b=a+72|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+88>>2]=1.0;return}function Aaa(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[a>>2]|0;f=e+4|0;b=c[f>>2]|0;c[a>>2]=b;if(b|0)c[b+8>>2]=a;d=a+8|0;c[e+8>>2]=c[d>>2];b=c[d>>2]|0;if((c[b>>2]|0)==(a|0)){c[b>>2]=e;c[f>>2]=a;c[d>>2]=e;return}else{c[b+4>>2]=e;c[f>>2]=a;c[d>>2]=e;return}}function Baa(a){a=a|0;hM(a,c[a+4>>2]|0);return}function Caa(b,d){b=b|0;d=d|0;var e=0;if(!(a[b+28>>0]&1)){e=c[d+16>>2]|0;if(e|0?(c[e+4>>2]|0)==6:0)return;e=c[d+12>>2]|0;if(e|0?(c[e+4>>2]|0)==6:0)return}if(!(dub(c[d+8>>2]|0,c[b+24>>2]|0)|0))return;mra(b,c[d+12>>2]|0);return}function Daa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=b;if(pdb(a,b)|0)ma(73091,72707,139,73122);else{b=mla(20)|0;Z7a(b,d,0);e=ZH(a,e)|0;c[e>>2]=b;yb=f;return}}function Eaa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;udb(a,b);b=a+16|0;Dlb(b,c);Vja(b,d);return}function Faa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;switch(b|0){case 0:{if(!d)f=4;else a=1;break}case -1:{if((d|0)==-1)f=4;else a=1;break}default:a=1}if((f|0)==4){a=c[a+4>>2]|0;if((a|0)<0|(e&64)==0)if((a|0)<0)a=(e&64)==0;else a=0;else a=1}return a|0}function Gaa(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+64>>2]|0;d=c[e>>2]|0;e=(c[e+4>>2]|0)-d>>2;a=c[b>>2]|0;b=d;d=0;while(1){if(d>>>0>=e>>>0){a=6;break}if(dub(c[c[b+(d<<2)>>2]>>2]|0,a)|0){a=4;break}d=d+1|0}if((a|0)==4)return d|0;else if((a|0)==6)Ta();return 0}function Haa(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(!(Yrb(d)|0))wqa(b,d);a=a+4|0}return}function Iaa(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-12|0;Chb(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);c[a+8>>2]=0;c[e>>2]=0;c[a>>2]=0;return}function Jaa(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+16|0;h=g;f=y2(d)|0;e=b+68|0;b=c[e>>2]|0;Pwb(h,f);YA(b,c[h>>2]|0)|0;b=0;while(1){if((b|0)>=(f|0))break;tI(c[e>>2]|0,a[d+b>>0]|0)|0;b=b+1|0}yb=g;return}function Kaa(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+48|0;d=e;if((WCb(c[b+16>>2]|0)|0)>>>0<3){yb=e;return}$s(d,b,a+44|0,a+104|0,pob(c[a+40>>2]|0)|0);Ebb(d);yb=e;return}function Laa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g+4|0;f=g;a=kgb(a+152|0)|0;if(c[37104]|0){Pwb(e,b);Gg(a,56771,c[e>>2]|0,d)}Zsb(f,b);c[a+8>>2]=c[f>>2];c[a+12>>2]=d;mjb(a);yb=g;return a|0}function Maa(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;b=Wl(a,e)|0;yb=d;return c[b>>2]|0}function Naa(a){a=a|0;var b=0,d=0;d=c[a+4>>2]|0;b=0;while(1){if((b|0)==(d|0))break;c[(c[a>>2]|0)+(b<<2)>>2]=0;b=b+1|0}c[a+12>>2]=0;a=a+8|0;d=c[a>>2]|0;c[a>>2]=0;return d|0}function Oaa(a){a=a|0;var b=0,d=0;if(Pka(a)|0)return a|0;b=Dia()|0;d=rrb(b,1)|0;d=WCb(c[d>>2]|0)|0;KJa(d,WCb(a)|0)|0;a=b;return a|0}function Paa(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+4>>2]|0;e=c[b>>2]|0;a=d;b=d;while(1){if(!a){a=0;b=8;break}d=c[a+16>>2]|0;if(e>>>0>=d>>>0){if(d>>>0>=e>>>0){a=1;b=8;break}a=b+4|0}b=c[a>>2]|0;a=b}if((b|0)==8)return a|0;return 0}function Qaa(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,c[b>>2]>>(rTa(c[d>>2]|0,1)|0));return}case 2:{Heb(a,t$a(c[b>>2]|0,c[b+4>>2]|0,rTa(c[d>>2]|0,2)|0)|0,P()|0);return}default:ma(141129,111484,714,112086)}}function Raa(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+32|0;e=d+28|0;b=d;c[e>>2]=a;bmb(b);n=0;da(696,b|0,e|0);a=n;n=0;if(a&1){e=sa()|0;P()|0;Arb(b);Ea(e|0)}else{e=c[b+24>>2]|0;Arb(b);yb=d;return e|0}return 0}function Saa(a,b,c){a=a|0;b=b|0;c=c|0;Rga(a,b);n=0;da(2187,a+16|0,c|0);c=n;n=0;if(c&1){c=sa()|0;P()|0;Chb(a);Ea(c|0)}else return}function Taa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Isa(b,d);return}function Uaa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Jsa(b,d);return}function Vaa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Ksa(b,d);return}function Waa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Lsa(b,d);return}function Xaa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Msa(b,d);return}function Yaa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;vR(a,b);e=a+20|0;d=b+20|0;c[e>>2]=0;f=a+24|0;c[f>>2]=0;c[a+28>>2]=0;c[e>>2]=c[d>>2];e=b+24|0;c[f>>2]=c[e>>2];b=b+28|0;c[a+28>>2]=c[b>>2];c[b>>2]=0;c[e>>2]=0;c[d>>2]=0;return}function Zaa(a){a=a|0;a=ffb(a)|0;switch(c[a+4>>2]|0){case 1:{a=rTa(Peb(a+8|0)|0,1)|0;return a|0}case 2:{a=$Xa(a+8|0)|0;P()|0;a=rTa(a,2)|0;return a|0}default:ma(141129,103687,63,89409)}return 0}function _aa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=b;d=c[f+4>>2]|0;e=a;c[e>>2]=c[f>>2];c[e+4>>2]=d;e=a+8|0;d=b+8|0;c[e>>2]=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=0;c[e>>2]=c[d>>2];e=b+12|0;c[f>>2]=c[e>>2];b=b+16|0;c[a+16>>2]=c[b>>2];c[b>>2]=0;c[e>>2]=0;c[d>>2]=0;return}function $aa(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(!(Yrb(d)|0))Y2(b,d);a=a+4|0}return}function aba(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;b=(lC(a,e)|0)==0;yb=d;return b|0}function bba(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+4>>2]|0;e=a+8|0;while(1){b=c[e>>2]|0;if((d|0)==(b|0))break;f=b+-4|0;c[e>>2]=f;b=c[f>>2]|0;c[f>>2]=0;if(b|0){Brb(b);RCb(b)}}b=c[a>>2]|0;if(!b)return;RCb(b);return}function cba(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+4>>2]|0;e=a+8|0;while(1){b=c[e>>2]|0;if((d|0)==(b|0))break;f=b+-4|0;c[e>>2]=f;b=c[f>>2]|0;c[f>>2]=0;if(b|0){Xrb(b);RCb(b)}}b=c[a>>2]|0;if(!b)return;RCb(b);return}function dba(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,c[b>>2]<<(rTa(c[d>>2]|0,1)|0));return}case 2:{Heb(a,X2a(c[b>>2]|0,c[b+4>>2]|0,rTa(c[d>>2]|0,2)|0)|0,P()|0);return}default:ma(141129,111484,706,112082)}}function eba(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)<=(c[d>>2]|0)&1);return}case 2:{f=c[b+4>>2]|0;e=c[d+4>>2]|0;Bqb(a,((f|0)<(e|0)|((f|0)==(e|0)?(c[b>>2]|0)>>>0<=(c[d>>2]|0)>>>0:0))&1);return}default:ma(141129,111484,796,112120)}}function fba(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)>=(c[d>>2]|0)&1);return}case 2:{f=c[b+4>>2]|0;e=c[d+4>>2]|0;Bqb(a,((f|0)>(e|0)|((f|0)==(e|0)?(c[b>>2]|0)>>>0>=(c[d>>2]|0)>>>0:0))&1);return}default:ma(141129,111484,844,112142)}}function gba(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+64|0;d=e;Yz(d,b);c[a+56>>2]=d;n=0;da(1754,a+16|0,b|0);b=n;n=0;if(b&1){e=sa()|0;P()|0;P2(d);Ea(e|0)}else{P2(d);yb=e;return}}function hba(a,b){a=a|0;b=b|0;var d=0;if(!(vub(c[b+4>>2]|0)|0))return;if(eCb(c[b+8>>2]|0)|0?(d=(i4(a+36|0,b+8|0)|0)+4|0,(c[d>>2]|0)>0):0)return;pD(a,b);return}function iba(b){b=b|0;var d=0,e=0;d=Zzb(134072)|0;e=a[b+11>>0]|0;if((d|0)!=((e<<24>>24<0?c[b+4>>2]|0:e&255)|0)){e=0;return e|0}n=0;b=V(54,b|0,134072,d|0)|0;e=n;n=0;if(e&1){e=ta(0)|0;P()|0;yub(e)}e=(b|0)==0;return e|0}function jba(a){a=a|0;var b=0,d=0,e=0;d=a+4|0;e=c[d>>2]|0;b=c[e>>2]|0;c[d>>2]=b;if(b|0)c[b+8>>2]=a;d=a+8|0;c[e+8>>2]=c[d>>2];b=c[d>>2]|0;if((c[b>>2]|0)==(a|0)){c[b>>2]=e;c[e>>2]=a;c[d>>2]=e;return}else{c[b+4>>2]=e;c[e>>2]=a;c[d>>2]=e;return}}function kba(a,b){a=a|0;b=b|0;var d=0;d=rrb(b,2)|0;Ota(a,c[d>>2]|0,b,-1);Alb(a);d=rrb(b,1)|0;Qua(a,e7a(WCb(c[d>>2]|0)|0)|0);Alb(a);d=rrb(b,3)|0;Ota(a,c[d>>2]|0,b,1);return}function lba(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)<(c[d>>2]|0)&1);return}case 2:{f=c[b+4>>2]|0;e=c[d+4>>2]|0;Bqb(a,((f|0)<(e|0)|((f|0)==(e|0)?(c[b>>2]|0)>>>0<(c[d>>2]|0)>>>0:0))&1);return}default:ma(141129,111484,772,112109)}}function mba(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)>(c[d>>2]|0)&1);return}case 2:{f=c[b+4>>2]|0;e=c[d+4>>2]|0;Bqb(a,((f|0)>(e|0)|((f|0)==(e|0)?(c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0:0))&1);return}default:ma(141129,111484,820,112131)}}function nba(a){a=a|0;var b=0;if(!(OBb(c[a>>2]|0)|0)){b=0;return b|0}a=c[a+4>>2]|0;b=Aqb(a)|0;if(b|0){b=Tka(c[b+8>>2]|0)|0;return b|0}a=Kqb(a)|0;if(!a){b=0;return b|0}b=Tzb(c[a+8>>2]|0)|0;return b|0}function oba(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Gbb(a,b);b=a+16|0;Dlb(b,c);BAa(b,d);return}function pba(a,b,c){a=a|0;b=b|0;c=c|0;Gbb(a,b);b=a+16|0;Dlb(b,c);xna(b,c);return}function qba(b){b=b|0;var d=0,e=0,f=0,g=0;d=c[b+4>>2]|0;e=b+8|0;f=c[e>>2]|0;while(1){if((f|0)==(d|0))break;g=f+-4|0;c[e>>2]=g;f=g}e=c[b>>2]|0;do if(e|0){d=c[b+16>>2]|0;if((e|0)==(d|0)){a[d+112>>0]=0;break}else{RCb(e);break}}while(0);return}function rba(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;if((a[d+11>>0]|0)<0)T3(b,c[d>>2]|0,c[d+4>>2]|0);else{c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2]}return}function sba(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;e=WCb(INa(3)|0)|0;a=KJa(KJa(e,WGa(148856)|0)|0,a)|0;Pwb(b,KJa(a,INa(0)|0)|0);yb=d;return c[b>>2]|0}function tba(a,b){a=a|0;b=b|0;Vkb(a,b);lva(a,b);Vkb(a,0);return}function uba(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+60|0;e=c[d>>2]|0;if((c[a+56>>2]|0)==(e|0))ma(113289,112765,449,113372);c[d>>2]=e+-4;tI(c[a+28>>2]|0,11)|0;if((c[b+4>>2]|0)!=6)return;if(!(c[b+16>>2]|0))ma(113383,112765,461,113372);else return}function vba(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+64|0;d=e;Y3(d);a=WCb(c[a+36>>2]|0)|0;n=0;ea(104,d+16|0,b|0,a|0);b=n;n=0;if(b&1){e=sa()|0;P()|0;JXa(d);Ea(e|0)}else{JXa(d);yb=e;return}}function wba(a,b){a=a|0;b=b|0;var d=0,e=0;e=(c[b+4>>2]|0)-(c[b>>2]|0)>>2;if((c[a+8>>2]|0)>>>0>>0)Z5a(a,e);d=0;while(1){if((d|0)==(e|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=c[(c[b>>2]|0)+(d<<2)>>2];d=d+1|0}c[a+4>>2]=e;return}function xba(a){a=a|0;return via(a+4|0)|0}function yba(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;a=oC(a+84|0,e)|0;if(!a){e=0;yb=d;return e|0}e=iqb(c[a+12>>2]|0)|0;yb=d;return e|0}function zba(){var b=0;c[36996]=0;c[36997]=0;c[36998]=0;a[148112]=0;n=0;ba(39);b=n;n=0;if(b&1){b=sa()|0;P()|0;sGa(147984);Ea(b|0)}else{XMa(28);return}}function Aba(a,b){a=a|0;b=b|0;if(!b)return;Aba(a,c[b>>2]|0);Aba(a,c[b+4>>2]|0);RCb(b);return}function Bba(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a>>2]|0;Kkb(a+8|0);RCb(a);a=b}return}function Cba(a,b,d){a=a|0;b=b|0;d=d|0;return Kqa(c[c[(c[a+4>>2]|0)+44>>2]>>2]|0,c[c[a+8>>2]>>2]|0,b,c[d>>2]|0)|0}function Dba(a){a=a|0;var b=0,d=0,e=0;e=yb;yb=yb+16|0;b=e;d=WCb(INa(2)|0)|0;d=KJa(d,WGa(148808)|0)|0;if(zgb(a)|0)a=yTa()|0;Pwb(b,KJa(d,a)|0);yb=e;return c[b>>2]|0}function Eba(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Ova(b,d);return}function Fba(b,d){b=b|0;d=d|0;var e=0,f=0;do if((b|0)!=-1){f=d+4|0;e=c[f>>2]|0;if(!e){I5(d)|0;e=c[f>>2]|0;if(!e){b=-1;break}}if(e>>>0>((c[d+44>>2]|0)+-8|0)>>>0){e=e+-1|0;c[f>>2]=e;a[e>>0]=b;c[d>>2]=c[d>>2]&-17}else b=-1}else b=-1;while(0);return b|0}function Gba(a){a=a|0;var b=0;b=a+4|0;KX(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function Hba(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;b=yb;yb=yb+16|0;j=b+4|0;a=b;c[j>>2]=d;c[a>>2]=g;h=Bp(d,e,j,g,h,a)|0;c[f>>2]=c[j>>2];c[i>>2]=c[a>>2];yb=b;return h|0}function Iba(a,b){a=a|0;b=b|0;var d=0;Qua(a,66788);d=rrb(b,1)|0;r1(a,c[d>>2]|0);Qua(a,66793);d=rrb(b,2)|0;Yfb(a,c[d>>2]|0);Qua(a,140215);b=rrb(b,3)|0;r1(a,c[b>>2]|0);return}function Jba(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;e=WCb(INa(3)|0)|0;a=KJa(KJa(e,WGa(148840)|0)|0,a)|0;Pwb(b,KJa(a,INa(0)|0)|0);yb=d;return c[b>>2]|0}function Kba(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=yb;yb=yb+16|0;h=g;f=b+68|0;b=c[f>>2]|0;Pwb(h,e);YA(b,c[h>>2]|0)|0;b=0;while(1){if((b|0)==(e|0))break;tI(c[f>>2]|0,a[d+b>>0]|0)|0;b=b+1|0}yb=g;return}function Lba(a,b){a=a|0;b=b|0;var c=0;c=yb;yb=yb+16|0;yib(a);b=b+8|0;n=0;fa(98,c|0,a|0,b|0,b|0);b=n;n=0;if(b&1){c=sa()|0;P()|0;Khb(a);Ea(c|0)}else{yb=c;return}}function Mba(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;b=c[b>>2]|0;a=uoa(b,c[a+4>>2]|0,d)|0;if((a|0)!=(d|0)?b>>>0>=(c[a+16>>2]|0)>>>0:0){d=a;return d|0}return d|0}function Nba(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;b=yb;yb=yb+16|0;j=b+4|0;a=b;c[j>>2]=d;c[a>>2]=g;h=Eo(d,e,j,g,h,a)|0;c[f>>2]=c[j>>2];c[i>>2]=c[a>>2];yb=b;return h|0}function Oba(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;b=yb;yb=yb+16|0;j=b+4|0;a=b;c[j>>2]=d;c[a>>2]=g;h=Ru(d,e,j,g,h,a)|0;c[f>>2]=c[j>>2];c[i>>2]=c[a>>2];yb=b;return h|0}function Pba(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);xka(b,d);return}function Qba(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+4>>2]|0;e=a+8|0;while(1){b=c[e>>2]|0;if((d|0)==(b|0))break;f=b+-4|0;c[e>>2]=f;b=c[f>>2]|0;c[f>>2]=0;if(b|0){IM(b);RCb(b)}}b=c[a>>2]|0;if(!b)return;RCb(b);return}function Rba(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;b=yb;yb=yb+16|0;j=b+4|0;a=b;c[j>>2]=d;c[a>>2]=g;h=Dp(d,e,j,g,h,a)|0;c[f>>2]=c[j>>2];c[i>>2]=c[a>>2];yb=b;return h|0}function Sba(a){a=a|0;Vob(a+56|0);u4a(a+44|0);Chb(a+32|0);Chb(a+20|0);RQa(a);return}function Tba(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;udb(a,b);b=a+16|0;Dlb(b,c);Sya(b,d);return}function Uba(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0;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);return (f&255)-(d[c>>0]|0)|0}function Vba(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;e=d+4|0;g=d;f=c[a+40>>2]|0;c[g>>2]=c[a+36>>2];f=c[f>>2]|0;c[e>>2]=c[g>>2];b=nHa(f,e,b,0)|0;Pwb(c[a>>2]|0,b);yb=d;return}function Wba(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=d+4|0;while(1){if(Acb(e)|0)break;r3(b,c[d>>2]|0,a[f>>0]|0)}return}function Xba(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[b+16>>2]=1.0;b=(c[d>>2]|0)+20|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Yba(a){a=a|0;yU(a);return}function Zba(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);bja(b,c);return}function _ba(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=c[c[a>>2]>>2]|0;e=c[f+(b<<2)>>2]|0;f=c[f+(d<<2)>>2]|0;if(e>>>0>f>>>0){f=1;return f|0}if((e|0)!=(f|0)){f=0;return f|0}f=c[c[a+4>>2]>>2]|0;f=(c[f+(b<<2)>>2]|0)>>>0<(c[f+(d<<2)>>2]|0)>>>0;return f|0}function $ba(b,d){b=b|0;d=d|0;var e=0,f=0;f=c[d+8>>2]|0;e=Cda(b,c[d+12>>2]|0)|0;return oFa(c[b+32>>2]|0,f,e,a[d+16>>0]|0)|0}function aca(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=mla(24)|0;c[b>>2]=f;c[b+4>>2]=d+4;c[f+16>>2]=c[c[e>>2]>>2];Cub(f+20|0);a[b+8>>0]=1;return}function bca(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-20|0;c[d>>2]=e;Pdb(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function cca(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;a=a+4|0;Obb(c[a>>2]|0,98216)|0;c[f>>2]=c[b+8>>2];b=c[a>>2]|0;c[e>>2]=c[f>>2];Ica(e,b)|0;yb=d;return}function dca(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;a=a+4|0;Obb(c[a>>2]|0,98228)|0;c[f>>2]=c[b+8>>2];b=c[a>>2]|0;c[e>>2]=c[f>>2];Ica(e,b)|0;yb=d;return}function eca(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);loa(b,d);return}function fca(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;n=0;da(551,a|0,b|0);d=n;n=0;if(d&1){b=sa()|0;P()|0;Vob(a);Ea(b|0)}d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=d;d=d+1|0}return}function gca(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;vdb(a,b);b=a+16|0;Dlb(b,c);lya(b,d);return}function hca(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=yb;yb=yb+256|0;f=g;if((c|0)>(d|0)&(e&73728|0)==0){c=c-d|0;LL(f|0,b<<24>>24|0,(c>>>0<256?c:256)|0)|0;if(c>>>0>255){d=c;do{Nlb(a,f,256);d=d+-256|0}while(d>>>0>255);c=c&255}Nlb(a,f,c)}yb=g;return}function ica(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=yb;yb=yb+16|0;g=f+4|0;h=f;c[h>>2]=c[b+24>>2];c[g>>2]=c[h>>2];e=Jna(a,g,d,e)|0;yb=f;return e|0}function jca(a){a=a|0;var b=0,d=0;b=a+20|0;c[b>>2]=(c[b>>2]|0)+-1;b=a+16|0;d=(c[b>>2]|0)+1|0;c[b>>2]=d;if(d>>>0<=2047)return;d=a+4|0;RCb(c[c[d>>2]>>2]|0);c[d>>2]=(c[d>>2]|0)+4;c[b>>2]=(c[b>>2]|0)+-1024;return}function kca(a,b){a=a|0;b=b|0;b=oC(a,b)|0;if(!b)return;_6(a,b)|0;return}function lca(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=yb;yb=yb+16|0;f=e;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;Nbb(f,d)|0;b=c[f+4>>2]|0;d=a;c[d>>2]=c[f>>2];c[d+4>>2]=b;yb=e;return}function mca(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g;c[d>>2]=b;e=a+52|0;f=c[e>>2]|0;if((f|0)==(c[a+56>>2]|0)){_M(a+48|0,d);yb=g;return}else{c[f>>2]=b;c[e>>2]=(c[e>>2]|0)+4;yb=g;return}}function nca(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;a=n4(a+44|0,b+8|0)|0;c[e>>2]=b;FH(d+8|0,a,b,e);yb=d;return}function oca(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(Yrb(d)|0)HEa(b,d);a=a+4|0}return}function pca(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(f|0))break;e=c[a>>2]|0;if(Yrb(e)|0)ZRa(b,c[d>>2]|0,e);a=a+4|0}return}function qca(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);zoa(b,d);return}function rca(a){a=a|0;var b=0;if(!a){if(!(c[11692]|0))a=0;else a=rca(c[11692]|0)|0;XCb();b=c[37438]|0;if(b)do{if((c[b+20>>2]|0)>>>0>(c[b+28>>2]|0)>>>0)a=g4(b)|0|a;b=c[b+56>>2]|0}while((b|0)!=0);TCb()}else a=g4(a)|0;return a|0}function sca(b,d){b=b|0;d=d|0;var e=0;e=c[d>>2]|0;if(Gzb(e)|0)return;if(cvb(e)|0?a[c[b>>2]>>0]&1:0)return;Wla(c[b+4>>2]|0,d);if((c[d+4>>2]|0)!=6)return;a[c[b>>2]>>0]=1;return}function tca(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+16|0;e=c[d>>2]|0;if(!e){c[a+16>>2]=0;return}if((b|0)==(e|0)){e=WCb(a)|0;c[a+16>>2]=e;d=c[d>>2]|0;Sb[c[(c[d>>2]|0)+12>>2]&8191](d,e);return}else{e=Eb[c[(c[e>>2]|0)+8>>2]&511](e)|0;c[a+16>>2]=e;return}}function uca(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[a>>2]|0;if(!e)return;f=a+4|0;b=c[f>>2]|0;while(1){if((e|0)==(b|0))break;b=b+-4|0;d=c[b>>2]|0;c[b>>2]=0;if(d|0){Brb(d);RCb(d)}}c[f>>2]=e;RCb(c[a>>2]|0);return}function vca(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[a>>2]|0;if(!e)return;f=a+4|0;b=c[f>>2]|0;while(1){if((e|0)==(b|0))break;b=b+-4|0;d=c[b>>2]|0;c[b>>2]=0;if(d|0){Xrb(d);RCb(d)}}c[f>>2]=e;RCb(c[a>>2]|0);return}function wca(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=a[d+11>>0]|0;g=f<<24>>24<0;f=g?c[d+4>>2]|0:f&255;T3(b,g?c[d>>2]|0:d,f>>>0>>0?f:e);return}function xca(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g+4|0;f=g;c[e>>2]=b;c[f>>2]=d;if(!a){g=oa(4)|0;c[g>>2]=0;Nxb(g);za(g|0,37944,379)}else{Tb[c[(c[a>>2]|0)+24>>2]&255](a,e,f);yb=g;return}}function yca(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,Zob(c[b>>2]|0,c[d>>2]|0)|0);return}case 2:{Heb(a,bua(c[b>>2]|0,c[b+4>>2]|0,c[d>>2]|0,c[d+4>>2]|0)|0,P()|0);return}default:ma(141129,111484,738,112101)}}function zca(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;udb(a,b);b=a+16|0;Dlb(b,c);Vza(b,d);return}function Aca(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;vdb(a,b);b=a+16|0;Dlb(b,c);Rya(b,d);return}function Bca(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=mla(24)|0;c[b>>2]=f;c[b+4>>2]=d+4;c[f+16>>2]=c[e>>2];c[f+20>>2]=c[e+4>>2];a[b+8>>0]=1;return}function Cca(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if(dub(a,c[b+8>>2]|0)|0)GN(b,d,e,f);else{a=c[a+8>>2]|0;Wb[c[(c[a>>2]|0)+20>>2]&15](a,b,d,e,f,g)}return}function Dca(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+40>>2]|0;a=c[a+36>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(Yrb(d)|0)HEa(b,d);a=a+4|0}return}function Eca(a){a=a|0;var b=0;if(c[c[a>>2]>>2]|0)return;b=Eeb(c[(c[a+4>>2]|0)+4>>2]|0)|0;c[c[a>>2]>>2]=b;b=a+8|0;Wla((c[c[a>>2]>>2]|0)+12|0,c[c[b>>2]>>2]|0);c[c[b>>2]>>2]=c[c[a>>2]>>2];return}function Fca(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+32|0;f=g;d=b+32|0;e=f;b=c+8|0;c=e+24|0;do{a[e>>0]=a[b>>0]|0;e=e+1|0;b=b+1|0}while((e|0)<(c|0));f=D7(d,f)|0;yb=g;return f|0}function Gca(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,qpb(c[b>>2]|0,c[d>>2]|0)|0);return}case 2:{Heb(a,nua(c[b>>2]|0,c[b+4>>2]|0,c[d>>2]|0,c[d+4>>2]|0)|0,P()|0);return}default:ma(141129,111484,730,112096)}}function Hca(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=yb;yb=yb+16|0;i=h;Gsb(i,a);a=TKa(c[i>>2]|0,b,d,e,f,g)|0;if(!(c[37104]|0)){yb=h;return a|0}tg(a,b,d,e,f,g);yb=h;return a|0}function Ica(a,b){a=a|0;b=b|0;a=c[a>>2]|0;if(a|0?Umb(a,98633)|0:0){SEa(mpa(SEa(b,34)|0,a)|0,34)|0;return b|0}mpa(b,a)|0;return b|0}function Jca(b,d){b=b|0;d=d|0;if(a[b+12>>0]&1)BM(IWa(150620,112703)|0);$z(b,134540);if(!(c[(c[b+120>>2]|0)+12>>2]|0))return;b=rl(b)|0;c[d+8>>2]=b;return}function Kca(b,c){b=b|0;c=c|0;if(a[b+33>>0]&1)BM(IWa(150620,112655)|0);TW(b,c);return}function Lca(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=c[a+40>>2]|0;a=c[a+36>>2]|0;while(1){if((a|0)==(f|0))break;e=c[a>>2]|0;if(Yrb(e)|0)lUa(b,c[d>>2]|0,e);a=a+4|0}return}function Mca(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=yb;yb=yb+16|0;g=e+4|0;f=e;Gsb(g,a);j6a(f,0,0);a=gGa(c[g>>2]|0,b,d,c[f>>2]|0)|0;if(!(c[37104]|0)){yb=e;return a|0}Og(a,b,d);yb=e;return a|0}function Nca(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[b+16>>2]=1.0;b=(c[d>>2]|0)+20|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Oca(b,d){b=b|0;d=d|0;if(a[b+33>>0]&1)BM(IWa(150620,112719)|0);T_a(b,c[d+8>>2]|0);tI(c[b+28>>2]|0,26)|0;return}function Pca(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;udb(a,b);b=a+16|0;Dlb(b,c);wCa(b,d);return}function Qca(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=yb;yb=yb+16|0;g=e;c[g>>2]=b;c[g+4>>2]=d;f=e+8|0;lca(f,g,1);$_(a,b,d,c[f>>2]|0,c[f+4>>2]|0);yb=e;return}function Rca(a){a=a|0;var b=0;b=a+4|0;pW(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function Sca(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a>>2]|0;neb(a+8|0);RCb(a);a=b}return}function Tca(a){a=a|0;Ama(a+64|0);$6(a+76|0);cAa(a+96|0);cAa(a+108|0);return}function Uca(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);$ea(b,d);return}function Vca(a){a=a|0;var b=0,d=0,e=0,f=0;b=yb;yb=yb+16|0;d=b;e=c[a>>2]|0;f=(c[e+4>>2]|0)+-4|0;c[d>>2]=c[f>>2];c[e+4>>2]=f;a=(O4(c[a+4>>2]|0,d)|0)+4|0;c[a>>2]=(c[a>>2]|0)+-4;yb=b;return}function Wca(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);SEa(c[a>>2]|0,41)|0;yb=d;return}function Xca(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=a+4|0;while(1){if((b|0)==(d|0))break;e=c[a>>2]|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[a>>2]=(c[a>>2]|0)+12;b=b+12|0}return}function Yca(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;a=a+4|0;Obb(c[a>>2]|0,98294)|0;c[f>>2]=c[b+24>>2];b=c[a>>2]|0;c[e>>2]=c[f>>2];Ica(e,b)|0;yb=d;return}function Zca(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{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;EGa(b);b=(c[d>>2]|0)+24|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function _ca(a,b){a=a|0;b=b|0;b=NF(a,b)|0;if(!b)return;_6(a,b)|0;return}function $ca(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);mea(b,d);return}function ada(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Uga(b,d);return}function bda(a,b){a=a|0;b=b|0;b=Mba(a,b)|0;if((b|0)==(a+4|0))return;Lwa(a+12|0,c[b+20>>2]|0)|0;lZ(a,b)|0;return}function cda(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b>>2]|0;f=rrb(c[c[b+4>>2]>>2]|0,3)|0;Vz(e,c[f>>2]|0,d);if(!(a[e+26>>0]&1))return;if(!(dub(c[d+8>>2]|0,c[37179]|0)|0))return;a[c[b+8>>2]>>0]=1;return}function dda(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[a>>2]|0;if(!e)return;f=a+4|0;b=c[f>>2]|0;while(1){if((e|0)==(b|0))break;b=b+-4|0;d=c[b>>2]|0;c[b>>2]=0;if(d|0){IM(d);RCb(d)}}c[f>>2]=e;RCb(c[a>>2]|0);return}function eda(a,b){a=a|0;b=b|0;var d=0;Vkb(a,b);d=a+-16|0;u1a(d+16|0,b);Phb(c[d+52>>2]|0);Vkb(a,0);return}function fda(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=0;c[e+4>>2]=c[b+8>>2];a=(GP(a+40|0,e)|0)==0;yb=d;return a|0}function gda(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;c[f>>2]=c[b+8>>2];b=c[b+4>>2]|0;a=c[a+32>>2]|0;c[e>>2]=c[f>>2];b=M_a(a,e,b)|0;yb=d;return b|0}function hda(a,b){a=a|0;b=b|0;var d=0;d=yb;yb=yb+16|0;if(!(eCb(c[b+8>>2]|0)|0)){yb=d;return}b=b+8|0;GG(d,a+24|0,b,b);yb=d;return}function ida(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Fwa(b,d);return}function jda(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);pqa(b,d);return}function kda(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(!b)return;n=0;da(235,a|0,b|0);d=n;n=0;if(d&1){d=sa()|0;P()|0;Qcb(a);Ea(d|0)}EHa(a,b);return}function lda(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Aj(b,d,e,f,4)|0;if(!(c[e>>2]&4)){if((d|0)<69)d=d+2e3|0;else d=(d|0)<100?d+1900|0:d;c[a>>2]=d+-1900}return}function mda(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Ti(b,d,e,f,4)|0;if(!(c[e>>2]&4)){if((d|0)<69)d=d+2e3|0;else d=(d|0)<100?d+1900|0:d;c[a>>2]=d+-1900}return}function nda(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;ML(a,b);b=b+16|0}return}function oda(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;Obb(c[d>>2]|0,124941)|0;a=b+8|0;if(!(WCb(c[a>>2]|0)|0))return;d=IWa(c[d>>2]|0,98135)|0;Ym(d,WCb(c[a>>2]|0)|0)|0;return}function pda(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=1;c[e+4>>2]=c[b+8>>2];a=(GP(a+40|0,e)|0)==0;yb=d;return a|0}function qda(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=mla(24)|0;c[b>>2]=f;c[b+4>>2]=d+4;c[f+16>>2]=c[c[e>>2]>>2];c[f+20>>2]=0;a[b+8>>0]=1;return}function rda(a,b){a=a|0;b=b|0;if(!(LF(a+12|0,b)|0))ma(112437,112368,407,112465);else{b=Om(a+12|0,b)|0;return c[b>>2]|0}return 0}function sda(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);eda(b,d);return}function tda(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);jfa(b,d);return}function uda(a,b){a=a|0;b=b|0;Pwb(a,b);JB(a);do{b=cg(a)|0;b=nj(a)|0|b;b=ow(c[a>>2]|0)|0|b}while(ik(a)|0|b);return}function vda(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=yb;yb=yb+16|0;f=e+4|0;g=e;c[g>>2]=c[b+8>>2];d=T3a(c[a>>2]|0,d,1)|0;b=c[a>>2]|0;c[f>>2]=c[g>>2];d=IQa(b,f,d)|0;yb=e;return d|0}function wda(a){a=a|0;wV(a);return}function xda(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[a>>2]|0;if(!e)return;f=a+4|0;b=c[f>>2]|0;while(1){if((e|0)==(b|0))break;b=b+-4|0;d=c[b>>2]|0;c[b>>2]=0;if(d|0){DI(d);RCb(d)}}c[f>>2]=e;RCb(c[a>>2]|0);return}function yda(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+32|0;d=g+16|0;e=g;f=c[a+16>>2]|0;if((f|0)!=(c[b+16>>2]|0)){f=0;yb=g;return f|0}if(!f){f=1;yb=g;return f|0}UB(a,d);UB(b,e);f=(cia(d,e,16)|0)==0;yb=g;return f|0}function zda(a){a=a|0;var b=0,d=0,e=0;b=yb;yb=yb+16|0;d=b;a=a+28|0;tI(c[a>>2]|0,-4)|0;e=c[a>>2]|0;Pwb(d,11);YA(e,c[d>>2]|0)|0;tI(c[a>>2]|0,0)|0;yb=b;return}function Ada(a){a=a|0;var b=0,d=0;d=yb;yb=yb+16|0;b=d;c[b>>2]=a;a=c[37050]|0;if((Mba(148192,b)|0)==148196){b=O8(148192,b)|0;c[b>>2]=a;yb=d;return a|0}else ma(55645,55544,107,55695);return 0}function Bda(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=yb;yb=yb+16|0;h=g;Gsb(h,a);a=cua(c[h>>2]|0,b,d,e,f)|0;if(!(c[37104]|0)){yb=g;return a|0}Ag(a,b,d,e&255,f);yb=g;return a|0}function Cda(a,b){a=a|0;b=b|0;var d=0;if(!b){d=0;return d|0}d=gha(c[a+24>>2]|0,b)|0;if(d|0)return d|0;d=Yg(a,b)|0;return d|0}function Dda(a){a=a|0;jR(a,c[a+4>>2]|0);return}function Eda(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;Cub(d);if(!b)b=c[d>>2]|0;else{b=r9(b,a)|0;c[d>>2]=b}if(eCb(b)|0){d=b;yb=e;return d|0}a=w$(a)|0;c[d>>2]=a;d=a;yb=e;return d|0}function Fda(a,b,d){a=a|0;b=b|0;d=d|0;if(zM(b)|0){d=(Q0a(b)|0)==(d|0);return d|0}b=jqb(b)|0;if(!b){d=0;return d|0}d=(c[(c[a+44>>2]|0)+(c[b+8>>2]<<3)+4>>2]|0)==(d|0);return d|0}function Gda(a,b){a=a|0;b=b|0;if(!(LF(a+32|0,b)|0))ma(113092,112368,412,113118);else{b=Om(a+32|0,b)|0;return c[b>>2]|0}return 0}function Hda(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Nqa(b,d);return}function Ida(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Oqa(b,d);return}function Jda(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);wka(b,d);return}function Kda(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Pqa(b,d);return}function Lda(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Qqa(b,d);return}function Mda(a,b){a=a|0;b=b|0;var d=0,e=0;d=Wcb(WCb(b)|0)|0;e=tCb(d)|0;Ota(a,c[e>>2]|0,b,-1);Alb(a);hfa(a,61);Alb(a);d=uCb(d)|0;Ota(a,c[d>>2]|0,b,1);return}function Nda(a,b){a=a|0;b=b|0;var d=0,e=0;d=Fab(WCb(b)|0)|0;e=uCb(d)|0;Qua(a,WCb(c[e>>2]|0)|0);Alb(a);hfa(a,61);Alb(a);d=tCb(d)|0;Ota(a,c[d>>2]|0,b,1);return}function Oda(a,b,c){a=a|0;b=b|0;c=c|0;udb(a,b);b=a+16|0;Dlb(b,c);bra(b,c);return}function Pda(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Lxa(b,d);return}function Qda(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Mxa(b,d);return}function Rda(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Nxa(b,d);return}function Sda(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;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;EGa(b);b=(c[d>>2]|0)+24|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Tda(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);gna(b,c);return}function Uda(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=c[b>>2];b=(lC(a,e)|0)==0;yb=d;return b|0}function Vda(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=(c[b+20>>2]|0)+(c[b+16>>2]|0)|0;f=c[b+4>>2]|0;d=f+(e>>>10<<2)|0;if((c[b+8>>2]|0)==(f|0)){e=0;c[a>>2]=d;f=a+4|0;c[f>>2]=e;return}e=(c[d>>2]|0)+((e&1023)<<2)|0;c[a>>2]=d;f=a+4|0;c[f>>2]=e;return}function Wda(a,b,c){a=a|0;b=b|0;c=c|0;udb(a,b);b=a+16|0;Dlb(b,c);qra(b,c);return}function Xda(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);rra(b,d);return}function Yda(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);kya(b,d);return}function Zda(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=mla(24)|0;c[b>>2]=g;c[b+4>>2]=d+4;f=e;d=c[f+4>>2]|0;e=g+16|0;c[e>>2]=c[f>>2];c[e+4>>2]=d;a[b+8>>0]=1;return}function _da(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;vmb(b);b=(c[d>>2]|0)+20|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function $da(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a>>2]|0;blb(a+8|0);RCb(a);a=b}return}function aea(a,b){a=a|0;b=b|0;Dlb(a,b);Ex(a,b);Dlb(a,0);return}function bea(a,b){a=a|0;b=b|0;Vkb(a,b);JAa(a,b);Vkb(a,0);return}function cea(a,b){a=a|0;b=b|0;Vkb(a,b);KAa(a,b);Vkb(a,0);return}function dea(a,b){a=a|0;b=b|0;Vkb(a,b);LAa(a,b);Vkb(a,0);return}function eea(a,b){a=a|0;b=b|0;Vkb(a,b);MAa(a,b);Vkb(a,0);return}function fea(a,b){a=a|0;b=b|0;Vkb(a,b);NAa(a,b);Vkb(a,0);return}function gea(b,c){b=b|0;c=c|0;if(a[b+33>>0]&1)BM(IWa(150620,112676)|0);TW(b,c);return}function hea(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);wga(b,d);return}function iea(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Lra(b,d);return}function jea(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Mra(b,d);return}function kea(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);xga(b,d);return}function lea(a){a=a|0;if(!(c[a+8>>2]|0)){a=0;return a|0}if(!(OBb(c[a>>2]|0)|0)){a=0;return a|0}a=c[c[a+4>>2]>>2]|0;if(Yxb(a)|0){a=1;return a|0}if(Vxb(a)|0){a=1;return a|0}a=Txb(a)|0;return a|0}function mea(a,b){a=a|0;b=b|0;var c=0;Vkb(a,b);c=a+-16|0;N0a(c+16|0,b);cra(c,b);Vkb(a,0);return}function nea(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g;c[d>>2]=b;e=a+76|0;f=c[e>>2]|0;if((f|0)==(c[a+80>>2]|0)){_M(a+72|0,d);yb=g;return}else{c[f>>2]=b;c[e>>2]=(c[e>>2]|0)+4;yb=g;return}}function oea(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);vCa(b,d);return}function pea(a){a=a|0;var b=0;b=c[a>>2]|0;if(Uxb(b)|0){a=1;return a|0}if(!(OBb(b)|0)){a=0;return a|0}a=a+12|0;a=uXa(a,(WCb(c[a+4>>2]|0)|0)+-1|0)|0;a=pea(c[a>>2]|0)|0;return a|0}function qea(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=b;d=Mba(a+52|0,d)|0;if((d|0)==(a+56|0)){d=w$(b)|0;yb=e;return d|0}else{d=c[d+20>>2]|0;yb=e;return d|0}return 0}function rea(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=yb;yb=yb+16|0;g=f+4|0;i=f;h=c[a+44>>2]|0;c[i>>2]=c[d>>2];d=WCb(c[a+32>>2]|0)|0;c[g>>2]=c[i>>2];Ew(h,b,g,e,d)|0;yb=f;return}function sea(a,b,c){a=a|0;b=b|0;c=c|0;udb(a,b);b=a+16|0;Dlb(b,c);Yra(b,c);return}function tea(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Zra(b,d);return}function uea(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Vga(b,d);return}function vea(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);nza(b,d);return}function wea(){var a=0,b=0,d=0;n=0;a=Q(80)|0;d=n;n=0;if(d&1){d=ta(0)|0;P()|0;yub(d)}if((a|0?(b=c[a>>2]|0,b|0):0)?(d=b+48|0,(c[d>>2]&-256|0)==1126902528?(c[d+4>>2]|0)==1129074247:0):0)A1(c[b+12>>2]|0);A1(Btb()|0)}function xea(a){a=a|0;var b=0,d=0;b=a+8|0;d=Keb(c[c[b>>2]>>2]|0)|0;if(eCb(c[d+4>>2]|0)|0){d=Leb(c[d+12>>2]|0)|0;c[c[b>>2]>>2]=d;c[a>>2]=2;return}else{Gjb(d);c[a>>2]=2;return}}function yea(a,b){a=+a;b=+b;a=+Ylb(a);return a>+Ylb(b)|0}function zea(a){a=a|0;var b=0;b=a+4|0;kV(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function Aea(a){a=a|0;var b=0;b=a+4|0;lV(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function Bea(a){a=a|0;var b=0;b=a+4|0;mV(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function Cea(a){a=a|0;var b=0;b=a+4|0;nV(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function Dea(a){a=a|0;var b=0;b=a+4|0;oV(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function Eea(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+4>>2]|0;e=a+8|0;while(1){b=c[e>>2]|0;if((d|0)==(b|0))break;f=b+-4|0;c[e>>2]=f;b=c[f>>2]|0;c[f>>2]=0;if(b|0)RCb(b)}b=c[a>>2]|0;if(!b)return;RCb(b);return}function Fea(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=c[a+4>>2]|0;h=i>>8;if(i&1)h=c[(c[e>>2]|0)+h>>2]|0;a=c[a>>2]|0;Wb[c[(c[a>>2]|0)+20>>2]&15](a,b,d,e+h|0,(i&2|0)==0?2:f,g);return}function Gea(a,b){a=a|0;b=b|0;Vkb(a,b);WBa(a,b);Vkb(a,0);return}function Hea(a,b){a=a|0;b=b|0;Vkb(a,b);XBa(a,b);Vkb(a,0);return}function Iea(a,b){a=a|0;b=b|0;Vkb(a,b);YBa(a,b);Vkb(a,0);return}function Jea(a,b){a=a|0;b=b|0;Vkb(a,b);ZBa(a,b);Vkb(a,0);return}function Kea(a,b){a=a|0;b=b|0;Vkb(a,b);_Ba(a,b);Vkb(a,0);return}function Lea(a,b){a=a|0;b=b|0;var c=0;Vkb(a,b);c=a+-16|0;t_a(c+16|0,b);l4(c,b);Vkb(a,0);return}function Mea(a,b){a=a|0;b=b|0;var d=0;if((c[b+8>>2]|0)!=1)return;dJa(a,WCb(c[b+20>>2]|0)|0,b);d=uXa(b+16|0,0)|0;Cxa(a,c[(c[d>>2]|0)+4>>2]|0,b);return}function Nea(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);lsa(b,d);return}function Oea(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Uza(b,d);return}function Pea(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g;lKa(a);f=b+12|0;b=b+16|0;while(1){b=c[b>>2]|0;d=b;if((f|0)==(d|0))break;c[e>>2]=c[b+8>>2];fS(a,e);b=d+4|0}yb=g;return}function Qea(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+16|0;e=g+4|0;f=g;a=mgb(a+152|0)|0;if(c[37104]|0){Pwb(e,b);Lg(a,c[e>>2]|0,d)}Zsb(f,b);c[a+8>>2]=c[f>>2];c[a+4>>2]=d;yb=g;return a|0}function Rea(a){a=a|0;var b=0,e=0,f=0;b=a+4|0;e=c[b>>2]|0;f=e>>>0<(c[a+8>>2]|0)>>>0;do if((c[a+76>>2]|0)<0)if(f){c[b>>2]=e+1;a=d[e>>0]|0;break}else{a=oQa(a)|0;break}else if(f){c[b>>2]=e+1;a=d[e>>0]|0;break}else{a=oQa(a)|0;break}while(0);return a|0}function Sea(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=mla(28)|0;c[b>>2]=f;c[b+4>>2]=d+4;d=f+16|0;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];a[b+8>>0]=1;return}function Tea(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;f=WCb(INa(2)|0)|0;Pwb(d,KJa(KJa(KJa(f,WGa(148836)|0)|0,a)|0,b)|0);yb=e;return c[d>>2]|0}function Uea(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;f=WCb(INa(3)|0)|0;Pwb(d,KJa(KJa(KJa(f,WGa(148832)|0)|0,a)|0,b)|0);yb=e;return c[d>>2]|0}function Vea(a,b){a=a|0;b=b|0;Vkb(a,b);LGa(a+-16+16|0,b);Vkb(a,0);return}function Wea(a){a=a|0;var b=0,d=0,e=0;e=yb;yb=yb+16|0;d=e;b=c[a>>2]|0;if(eCb(b)|0){yb=e;return (b|0)==3|0}else{r$(d,c[a+4>>2]|0);a=(c[d+4>>2]|0)-(c[d>>2]|0)>>2;Htb(d);yb=e;return a|0}return 0}function Xea(a){a=a|0;var b=0;b5(a);b=a+120|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+136>>2]=1.0;a=a+140|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function Yea(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+80|0;f=g+48|0;e=g+24|0;h=g;Heb(h,c,d);qUa(e,h);c=f;d=e;e=c+24|0;do{a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));OI(b,f);yb=g;return}function Zea(b,d,e){b=b|0;d=d|0;e=e|0;e=(pB(b+4|0,(a[d+11>>0]|0)<0?c[d>>2]|0:d,e|16)|0)==0;b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;if(e){eW(b,c[b+16>>2]|4);return}else{eW(b,0);return}}function _ea(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;f=WCb(INa(3)|0)|0;Pwb(d,KJa(KJa(KJa(f,WGa(148824)|0)|0,b)|0,a)|0);yb=e;return c[d>>2]|0}function $ea(a,b){a=a|0;b=b|0;var c=0;Vkb(a,b);c=a+-16|0;R$a(c+16|0,b);b7(c,b);Vkb(a,0);return}function afa(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;SEa(c[a>>2]|0,40)|0;Fmb(e,c[a+28>>2]|0,c[a>>2]|0);Ik(e,b);eJ(a,b);yb=d;return}function bfa(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Upa(b,c);return}function cfa(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Vpa(b,c);return}function dfa(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Wpa(b,c);return}function efa(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Xpa(b,c);return}function ffa(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Ypa(b,c);return}function gfa(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-40|0;NVa(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function hfa(b,d){b=b|0;d=d|0;var e=0,f=0;cUa(b,d);if((a[b>>0]&1)==0&d<<24>>24==125?(f=b+12|0,e=(c[f>>2]|0)+-1|0,(a[(c[b+4>>2]|0)+e>>0]|0)==59):0)c[f>>2]=e;iR(b,1);e=c[b+4>>2]|0;b=b+12|0;f=c[b>>2]|0;c[b>>2]=f+1;a[e+f>>0]=d;return}function ifa(a){a=a|0;var b=0,d=0,e=0;b=mla(116)|0;n=0;d=U(86,c[c[a+20>>2]>>2]|0,0)|0;e=n;n=0;if(e&1){e=sa()|0;P()|0;RCb(b);Ea(e|0)}else{zka(b,d,0);Nsa(c[a+16>>2]|0,b);return b|0}return 0}function jfa(a,b){a=a|0;b=b|0;var c=0;Vkb(a,b);c=a+-16|0;v1a(c+16|0,b);xk(c,b);Vkb(a,0);return}function kfa(a,b){a=a|0;b=b|0;yIa(a,c[b+12>>2]|0);TW(a,b);return}function lfa(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,56518);IWa(a,140151)|0;Xfa(a,b,c,d,e,f,g);return}function mfa(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-40|0;c[d>>2]=e;NVa(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function nfa(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;a=oC(a+68|0,e)|0;if(!a){e=b;yb=d;return e|0}e=c[a+12>>2]|0;yb=d;return e|0}function ofa(b,d,e){b=b|0;d=d|0;e=e|0;c[b>>2]=d;c[b+4>>2]=d+152;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;d=b+20|0;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];c[d+16>>2]=c[e+16>>2];a[b+40>>0]=0;return}function pfa(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;vmb(b);b=(c[d>>2]|0)+20|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function qfa(a){a=a|0;var b=0,d=0,e=0;b=a+8|0;if(!(c[b>>2]|0))return;d=c[a+4>>2]|0;e=(c[a>>2]|0)+4|0;c[(c[d>>2]|0)+4>>2]=c[e>>2];c[c[e>>2]>>2]=c[d>>2];c[b>>2]=0;b=d;while(1){if((b|0)==(a|0))break;e=c[b+4>>2]|0;RCb(b);b=e}return}function rfa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(120)|0;mT(g);c[g+8>>2]=c[a>>2];c[g+12>>2]=d;c[g+44>>2]=f;bma(g+16|0,b);bma(g+28|0,e);return g|0}function sfa(a,b){a=a|0;b=b|0;var d=0;d=Icb(b)|0;c[a+136>>2]=d;oG(a+16|0,b);bg(a,b);Zx(a);return}function tfa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);PBa(b,d);return}function ufa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+16|0;d=g;c[d>>2]=b;e=a+16|0;f=c[e>>2]|0;if((f|0)==(c[a+20>>2]|0)){_M(a+12|0,d);yb=g;return}else{c[f>>2]=b;c[e>>2]=(c[e>>2]|0)+4;yb=g;return}}function vfa(a){a=+a;var b=0,c=0,d=0,e=0;c=yb;yb=yb+16|0;b=c;h[b>>3]=a;d=leb(a)|0;e=(P()|0)&2147483647;if(e>>>0>2146435072|(e|0)==2146435072&d>>>0>0){e=ekb(b)|0;O((P()|0)&1048575|0);yb=c;return e|0}else ma(111661,111484,155,111695);return 0}function wfa(a,b){a=a|0;b=b|0;var c=0;c=a+8|0;Rfb(c);n=0;da(4009,a+88|0,b|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;KZa(c);Ea(b|0)}else{TUa(a+36|0);KZa(c);return}}function xfa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=b;e=c[f+4>>2]|0;d=a;c[d>>2]=c[f>>2];c[d+4>>2]=e;if((a|0)==(b|0))return;xz(a+8|0,c[b+8>>2]|0,c[b+12>>2]|0);return}function yfa(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(!(Yrb(d)|0))tcb(b,d);a=a+4|0}return}function zfa(a,b,c){a=a|0;b=b|0;c=c|0;Gbb(a,b);b=a+16|0;Dlb(b,c);mwa(b,c);return}function Afa(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,56518);IWa(a,140151)|0;Aga(a,b,c,d,e,f,g);return}function Bfa(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,56518);IWa(a,140151)|0;Bga(a,b,c,d,e,f,g);return}function Cfa(a){a=a|0;a=(gV(a)|0)+16|0;a=(Veb(c[a>>2]|0)|0)+16|0;return Peb((ffb(c[a>>2]|0)|0)+8|0)|0}function Dfa(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a>>2]|0;gob(a+8|0);RCb(a);a=b}return}function Efa(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;a=oC(a+64|0,e)|0;if(!a){e=0;yb=d;return e|0}e=c[a+12>>2]|0;yb=d;return e|0}function Ffa(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;_cb(a,56518);IWa(a,140151)|0;tha(a,b,c,d,e,f);return}function Gfa(a){a=a|0;K7(a);return}function Hfa(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;b=keb(b)|0;a[b+8>>0]=d;G1a(b+12|0,e,0)|0;c[b+16>>2]=f;c[b+20>>2]=g;c[b+24>>2]=h;c[b+4>>2]=i;sSa(b);return b|0}function Ifa(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;b=ngb(b)|0;c[b+8>>2]=d;a[b+12>>0]=e;G1a(b+16|0,f,0)|0;c[b+20>>2]=g;c[b+24>>2]=h;c[b+4>>2]=i;I5a(b);return b|0}function Jfa(a){a=a|0;var b=0,d=0;b=a+4|0;d=UR(c[a>>2]|0,c[b>>2]|0)|0;Exa(a,d,c[b>>2]|0)|0;return}function Kfa(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(Yrb(d)|0)tcb(b,d);a=a+4|0}return}function Lfa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);eDa(b,d);return}function Mfa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,b,17);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Nfa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,b,14);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Ofa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,b,13);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Pfa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,b,12);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Qfa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,b,11);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Rfa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,b,10);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Sfa(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Hpa(b,c);return}function Tfa(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,141320,21);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Ufa(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,141541,18);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Vfa(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,140714,15);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Wfa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,b,9);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Xfa(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;FLa(a,b);IWa(a,140151)|0;Wia(a,c,d,e,f,g);return}function Yfa(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,56518);IWa(a,140151)|0;bha(a,b,c,d,e,f,g);return}function Zfa(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=yb;yb=yb+16|0;h=g;Gsb(h,a);a=Hxa(c[h>>2]|0,b,d,e,f)|0;if(!(c[37104]|0)){yb=g;return a|0}yg(a,b,d,e,f);yb=g;return a|0}function _fa(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=yb;yb=yb+16|0;h=g;Gsb(h,a);a=$Ra(c[h>>2]|0,b,d,f,e)|0;if(!(c[37104]|0)){yb=g;return a|0}Bg(a,b,d,e,f);yb=g;return a|0}function $fa(a,b){a=a|0;b=b|0;if(!b)return;$fa(a,c[b>>2]|0);$fa(a,c[b+4>>2]|0);RCb(b);return}function aga(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=fbb(a)|0;c[a+24>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+28>>2]=d;wba(a+8|0,e);return a|0}function bga(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;a=fbb(a)|0;c[a+24>>2]=c[b>>2];c[a+4>>2]=f;c[a+28>>2]=d;wba(a+8|0,e);return a|0}function cga(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Ona(b,d);return}function dga(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,b,8);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function ega(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,b,5);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function fga(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,b,4);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function gga(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,b,3);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function hga(a){a=a|0;var b=0;b=a+4|0;y1(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function iga(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a>>2]|0;Anb(a+8|0);RCb(a);a=b}return}function jga(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+40>>2]|0;a=c[a+36>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(!(Yrb(d)|0))Fdb(b,d);a=a+4|0}return}function kga(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);_pa(b,c);return}function lga(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,141121,7);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function mga(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,141534,6);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function nga(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;T3(a,141345,2);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function oga(a){a=a|0;DS(a,c[a+4>>2]|0);return}function pga(a){a=a|0;var b=0,d=0,e=0;e=c[a+4>>2]|0;b=6;d=c[a>>2]|0;while(1){if((d|0)==(e|0))break;a=c[d>>2]|0;if(!((b|0)==0|(a|0)==0)){if((a|0)!=6)if((b|0)==6)b=a;else b=(b|0)==(a|0)?b:0}else b=0;d=d+4|0}return b|0}function qga(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=hfb(b)|0;c[g+8>>2]=d;c[g+12>>2]=e;e=g+16|0;b=f;d=e+16|0;do{a[e>>0]=a[b>>0]|0;e=e+1|0;b=b+1|0}while((e|0)<(d|0));Ena(g);return g|0}function rga(a,b,c){a=a|0;b=b|0;c=c|0;udb(a,b);b=a+16|0;Dlb(b,c);Wua(b,c);return}function sga(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ihb(a,b);b=a+16|0;Dlb(b,c);Tua(b,d);return}function tga(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;Zb[a&3](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)}function uga(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+4|0;f=c[e>>2]|0;c[e>>2]=d;b=Wg(a,b)|0;c[e>>2]=f;return b|0}function vga(a){a=a|0;return hoa(a+4|0)|0}function wga(a,b){a=a|0;b=b|0;var c=0;Vkb(a,b);c=a+-16|0;l3a(c+16|0,b);vf(c,b);Vkb(a,0);return}function xga(a,b){a=a|0;b=b|0;var c=0;Vkb(a,b);c=a+-16|0;p3a(c+16|0,b);$o(c,b);Vkb(a,0);return}function yga(a){a=a|0;var b=0,d=0;b=c[a+8>>2]|0;if(!b)ma(134976,134390,669,134833);d=c[a+12>>2]|0;if(!d)ma(134976,134390,669,134833);b=c[b+4>>2]|0;if(((b|0)!=6?(c[d+4>>2]|0)!=6:0)?(c[(c[a+16>>2]|0)+4>>2]|0)!=6:0){c[a+4>>2]=b;return}c[a+4>>2]=6;return}function zga(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(!(Yrb(d)|0))VZ(b,d);a=a+4|0}return}function Aga(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;FLa(a,b);IWa(a,140151)|0;Gja(a,c,d,e,f,g);return}function Bga(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;zfb(a,b);IWa(a,140151)|0;Gja(a,c,d,e,f,g);return}function Cga(a,b){a=a|0;b=b|0;var d=0;d=c[a>>2]|0;if(iFa(d,b)|0){d=0;return d|0}if(zI(c[a+4>>2]|0,b)|0){d=0;return d|0}rF(d,b);d=1;return d|0}function Dga(a,b){a=a|0;b=b|0;var d=0;Qua(a,74842);Alb(a);hfa(a,40);d=rrb(b,1)|0;Xi(a,c[d>>2]|0);hfa(a,41);Alb(a);b=rrb(b,2)|0;uQa(a,c[b>>2]|0);return}function Ega(a,b){a=a|0;b=b|0;var c=0;c=a+16|0;IW(c,1330,b);hd(a,b);IW(c,1331,b);return}function Fga(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(Yrb(d)|0)kna(b,d);a=a+4|0}return}function Gga(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+40>>2]|0;a=c[a+36>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(Yrb(d)|0)Oka(b,d);a=a+4|0}return}function Hga(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+40>>2]|0;a=c[a+36>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(Yrb(d)|0)Fdb(b,d);a=a+4|0}return}function Iga(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;while(1){if(!b)break;e=(c[b+16>>2]|0)<(a|0);d=e?d:b;b=c[(e?b+4|0:b)>>2]|0}return d|0}function Jga(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+4>>2]|0;a=e;while(1){if(!a){a=0;d=8;break}d=c[a+16>>2]|0;if(d>>>0<=b>>>0){if(d>>>0>=b>>>0){a=1;d=8;break}a=e+4|0}e=c[a>>2]|0;a=e}if((d|0)==8)return a|0;return 0}function Kga(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,((c[b>>2]|0)>>>0)%((c[d>>2]|0)>>>0)|0);return}case 2:{Heb(a,jRa(c[b>>2]|0,c[b+4>>2]|0,c[d>>2]|0,c[d+4>>2]|0)|0,P()|0);return}default:ma(141129,111484,674,112063)}}function Lga(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,((c[b>>2]|0)>>>0)/((c[d>>2]|0)>>>0)|0);return}case 2:{Heb(a,znb(c[b>>2]|0,c[b+4>>2]|0,c[d>>2]|0,c[d+4>>2]|0)|0,P()|0);return}default:ma(141129,111484,658,112053)}}function Mga(a){a=a|0;a=Mqb(a)|0;if(a|0){a=Wsa(a+8|0)|0;O(P()|0);return a|0}cqb();n=0;ca(491,51533);a=n;n=0;if(a&1){sa()|0;P()|0;iSa()}else iSa();return 0}function Nga(a,b){a=a|0;b=b|0;var d=0,e=0;d=it(a,b+12|0)|0;e=b+16|0;if(!(c[e>>2]|0)){if(!d)return}else if(!(it(a,e)|0|d))return;yhb(a);if(!(c[b+4>>2]|0))return;else ma(54709,54728,274,83260)}function Oga(a,b){a=a|0;b=b|0;rba(a,b);n=0;da(4199,a+12|0,b+12|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;Chb(a);Ea(b|0)}else return}function Pga(a,b){a=a|0;b=b|0;if(!b)return;Pga(a,c[b>>2]|0);Pga(a,c[b+4>>2]|0);RCb(b);return}function Qga(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[a>>2]|0;if(!e)return;f=a+4|0;b=c[f>>2]|0;while(1){if((e|0)==(b|0))break;b=b+-4|0;d=c[b>>2]|0;c[b>>2]=0;if(d|0)RCb(d)}c[f>>2]=e;RCb(c[a>>2]|0);return}function Rga(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;if((a[d+11>>0]|0)<0)D8(b,c[d>>2]|0,c[d+4>>2]|0);else{c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2]}return}function Sga(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Aj(b,d,e,f,2)|0;b=c[e>>2]|0;if((d+-1|0)>>>0<12&(b&4|0)==0)c[a>>2]=d;else c[e>>2]=b|4;return}function Tga(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Ti(b,d,e,f,2)|0;b=c[e>>2]|0;if((d+-1|0)>>>0<12&(b&4|0)==0)c[a>>2]=d;else c[e>>2]=b|4;return}function Uga(a,b){a=a|0;b=b|0;var d=0;Vkb(a,b);d=a+-16|0;pza(d,b);Fhb(c[d+116>>2]|0);Vkb(a,0);return}function Vga(a,b){a=a|0;b=b|0;var c=0;Vkb(a,b);c=a+-16|0;L3a(c+16|0,b);uRa(c,b);Vkb(a,0);return}function Wga(a,b){a=a|0;b=b|0;var c=0;c=a+16|0;IW(c,1756,b);jd(a,b);IW(c,1757,b);return}function Xga(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;if(!(c[b+48>>2]|0)){yb=e;return}XHa(d,b,pob(c[a+40>>2]|0)|0);oua(d);yb=e;return}function Yga(a){a=a|0;var b=0;switch(a|0){case 1:{b=0;break}case 3:{b=2;break}case 4:{b=1;break}case 2:{b=8;break}case 5:{ma(84722,71530,45,71564);break}case 0:{b=9;break}case 6:{ma(141129,71530,47,71564);break}default:ma(141129,71530,49,71564)}return b|0}function Zga(a){a=a|0;var b=0,d=0;d=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(d|0))break;b=c[a>>2]|0;if(Yrb(b)|0)rsa(b);a=a+4|0}return}function _ga(a){a=a|0;var b=0,d=0;d=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(d|0))break;b=c[a>>2]|0;if(!(Yrb(b)|0))Dsa(b);a=a+4|0}return}function $ga(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(a-b>>2>>>0>=d>>>0){if(d|0){e=a;while(1){d=d+-1|0;c[e>>2]=c[b>>2];if(!d)break;else{b=b+4|0;e=e+4|0}}}}else do{d=d+-1|0;c[a+(d<<2)>>2]=c[b+(d<<2)>>2]}while((d|0)!=0);return a|0}function aha(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Mqa(b,c);return}function bha(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;FLa(a,b);IWa(a,140151)|0;bka(a,c,d,e,f,g);return}function cha(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;if(c[37104]|0)IWa(150452,67342)|0;if(!d)ma(67381,55544,2603,67385);if(!g)ma(67418,55544,2604,67385);else{Ml(a,b,e,f,d,g,h);return}}function dha(b){b=b|0;if(!(a[b+12>>0]&1))return;n=0;ea(103,c[(c[b>>2]|0)+40>>2]|0,c[b+4>>2]|0,c[b+8>>2]|0);b=n;n=0;if(b&1){b=ta(0)|0;P()|0;yub(b)}else return}function eha(a){a=a|0;var b=0;b=a+4|0;O$(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function fha(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=mla(16)|0;f=b;e=c[f+4>>2]|0;b=d+8|0;c[b>>2]=c[f>>2];c[b+4>>2]=e;c[d+4>>2]=a;b=c[a>>2]|0;c[d>>2]=b;c[b+4>>2]=d;c[a>>2]=d;b=a+8|0;c[b>>2]=(c[b>>2]|0)+1;return}function gha(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=b;if(!a){e=oa(4)|0;c[e>>2]=0;Nxb(e);za(e|0,37944,379)}else{d=Gb[c[(c[a>>2]|0)+24>>2]&255](a,d)|0;yb=e;return d|0}return 0}function hha(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(!(Yrb(d)|0))kUa(b,d);a=a+4|0}return}function iha(a,b,c){a=a|0;b=b|0;c=c|0;vdb(a,b);b=a+16|0;Dlb(b,c);Cua(b,c);return}function jha(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;cU(a,e);yb=d;return}function kha(a){a=a|0;var b=0;O3a(a);c[a>>2]=41516;b=a+56|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+72>>2]=1.0;b=a+76|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+92>>2]=1.0;return}function lha(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);fDa(b,c);return}function mha(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+16|0;g=f;Gsb(g,a);a=oFa(c[g>>2]|0,b,d,e)|0;if(!(c[37104]|0)){yb=f;return a|0}Hg(a,b,d,e&255);yb=f;return a|0}function nha(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=yb;yb=yb+32|0;g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((bqb(Ga(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;yb=f;return a|0}function oha(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-16|0;Nrb(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);c[a+8>>2]=0;c[e>>2]=0;c[a>>2]=0;return}function pha(a){a=a|0;var b=0;b=oa(8)|0;n=0;da(4191,b|0,a|0);a=n;n=0;if(a&1){a=sa()|0;P()|0;va(b|0);Ea(a|0)}else{c[b>>2]=50768;za(b|0,39576,473)}}function qha(a,b){a=a|0;b=b|0;var c=0;c=a+16|0;IW(c,2423,b);kd(a,b);IW(c,2424,b);return}function rha(a,b,c){a=a|0;b=b|0;c=c|0;udb(a,b);b=a+16|0;Dlb(b,c);Rva(b,c);return}function sha(a,b,c){a=a|0;b=b|0;c=c|0;vdb(a,b);b=a+16|0;Dlb(b,c);Uua(b,c);return}function tha(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;_cb(a,b);IWa(a,140151)|0;qka(a,c,d,e,f);return}function uha(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+16|0;g=f;Gsb(g,a);a=hGa(c[g>>2]|0,b,d,e)|0;if(!(c[37104]|0)){yb=f;return a|0}Dg(a,57257,b,d,e);yb=f;return a|0}function vha(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Aj(b,d,e,f,2)|0;b=c[e>>2]|0;if((d+-1|0)>>>0<31&(b&4|0)==0)c[a>>2]=d;else c[e>>2]=b|4;return}function wha(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Aj(b,d,e,f,3)|0;b=c[e>>2]|0;if((d|0)<366&(b&4|0)==0)c[a>>2]=d;else c[e>>2]=b|4;return}function xha(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Ti(b,d,e,f,2)|0;b=c[e>>2]|0;if((d+-1|0)>>>0<31&(b&4|0)==0)c[a>>2]=d;else c[e>>2]=b|4;return}function yha(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Ti(b,d,e,f,3)|0;b=c[e>>2]|0;if((d|0)<366&(b&4|0)==0)c[a>>2]=d;else c[e>>2]=b|4;return}function zha(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+8|0;e=a+16|0;if((e|0)!=(d|0))xz(e,c[d>>2]|0,c[b+12>>2]|0);c[a+12>>2]=c[b+4>>2];return}function Aha(a){a=a|0;var b=0,d=0;b=Keb(c[a>>2]|0)|0;d=c[b+12>>2]|0;if(eCb(c[b+4>>2]|0)|0){c[a>>2]=d;return}else{b=knb(b)|0;c[b+8>>2]=d;dmb(b);return}}function Bha(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-24|0;Aeb(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);c[a+8>>2]=0;c[e>>2]=0;c[a>>2]=0;return}function Cha(a){a=a|0;BR(a,c[a+4>>2]|0);return}function Dha(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a>>2]|0;mnb(a+8|0);RCb(a);a=b}return}function Eha(a){a=a|0;var b=0,d=0,e=0;d=WCb(c[a+16>>2]|0)|0;b=a+12|0;a=1;while(1){if(a>>>0>=d>>>0){a=0;b=5;break}e=uXa(b,a+-1|0)|0;if((c[(c[e>>2]|0)+4>>2]|0)==6){a=1;b=5;break}a=a+1|0}if((b|0)==5)return a|0;return 0}function Fha(a){a=a|0;Khb(a+80|0);Khb(a+64|0);Khb(a+52|0);lmb(a+40|0);lmb(a+28|0);Hqb(a);return}function Gha(a){a=a|0;wW(a+32|0);F$(a+16|0);V5(a);return}function Hha(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-12|0;Chb(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function Iha(a){a=a|0;var b=0;fpa(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function Jha(a,b){a=a|0;b=b|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,Qrb(c[b>>2]|0)|0);return}case 2:{b=dnb(c[b>>2]|0,c[b+4>>2]|0)|0;Heb(a,b,((b|0)<0)<<31>>31);return}default:ma(141129,111484,246,111767)}}function Kha(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=yb;yb=yb+16|0;f=e+4|0;g=e;c[g>>2]=c[b>>2];c[f>>2]=c[g>>2];d=Vf(a,f,d)|0;yb=e;return d|0}function Lha(a,b,d){a=a|0;b=b|0;d=d|0;a=a+4|0;while(1){if((b|0)==(d|0))break;Rga(c[a>>2]|0,b);c[a>>2]=(c[a>>2]|0)+12;b=b+12|0}return}function Mha(a){a=a|0;TT(a,c[a+4>>2]|0);return}function Nha(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-12|0;c[d>>2]=e;Chb(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function Oha(a){a=a|0;var b=0;b=oa(8)|0;n=0;da(4191,b|0,a|0);a=n;n=0;if(a&1){a=sa()|0;P()|0;va(b|0);Ea(a|0)}else{c[b>>2]=50808;za(b|0,39608,473)}}function Pha(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Aj(b,d,e,f,2)|0;b=c[e>>2]|0;if((d|0)<13&(b&4|0)==0)c[a>>2]=d+-1;else c[e>>2]=b|4;return}function Qha(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Ti(b,d,e,f,2)|0;b=c[e>>2]|0;if((d|0)<13&(b&4|0)==0)c[a>>2]=d+-1;else c[e>>2]=b|4;return}function Rha(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=c[a+4>>2]|0;g=h>>8;if(h&1)g=c[(c[d>>2]|0)+g>>2]|0;a=c[a>>2]|0;Vb[c[(c[a>>2]|0)+24>>2]&15](a,b,d+g|0,(h&2|0)==0?2:e,f);return}function Sha(a,b,c){a=a|0;b=b|0;c=c|0;udb(a,b);b=a+16|0;Dlb(b,c);lxa(b,c);return}function Tha(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+16|0;g=f;Gsb(g,a);a=fGa(c[g>>2]|0,b,d,e)|0;if(!(c[37104]|0)){yb=f;return a|0}Cg(a,57235,b,d,e);yb=f;return a|0}function Uha(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(!((b|0)!=0?(e=Rqb(b)|0,(e|0)!=0):0))e=vJa(c[a>>2]|0,b)|0;if(!d)return e|0;Wla(e+12|0,d);_u(e);return e|0}function Vha(a){a=a|0;kU(a,c[a+4>>2]|0);return}function Wha(a,b){a=a|0;b=b|0;if(b>>>0<=15)return a+(b*24|0)|0;a=oa(8)|0;n=0;da(67,a|0,111474);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(a|0);Ea(b|0)}else{c[a>>2]=50808;za(a|0,39608,473)}return 0}function Xha(a,b){a=a|0;b=b|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,msb(c[b>>2]|0)|0);return}case 2:{b=wnb(c[b>>2]|0,c[b+4>>2]|0)|0;Heb(a,b,((b|0)<0)<<31>>31);return}default:ma(141129,111484,240,111748)}}function Yha(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(dub(a,c[b+8>>2]|0)|0)l6(b,d,e);else{a=c[a+8>>2]|0;Ub[c[(c[a>>2]|0)+28>>2]&255](a,b,d,e)}return}function Zha(a){a=a|0;var b=0;j7a(a);c[a>>2]=39952;n=0;U(75,a+4|0,54653)|0;b=n;n=0;if(b&1){b=sa()|0;P()|0;Beb(a);Ea(b|0)}else return}function _ha(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;b=akb(b)|0;a[b+20>>0]=0;a[b+8>>0]=d;a[b+9>>0]=e&1;G1a(b+12|0,f,0)|0;G1a(b+16|0,g,0)|0;c[b+24>>2]=h;c[b+4>>2]=i;return b|0}function $ha(a,b){a=a|0;b=b|0;if(!a){IWa(b,55640)|0;return}else{IWa(IWa(IWa(b,113917)|0,a)|0,113917)|0;return}}function aia(){var a=0,b=0,d=0;b=yb;yb=yb+16|0;a=b;d=WCb(INa(2)|0)|0;d=KJa(d,WGa(148780)|0)|0;Pwb(a,KJa(d,INa(0)|0)|0);yb=b;return c[a>>2]|0}function bia(b,d){b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+16|0;f=e;c[f>>2]=d;rHa(b+80|0);YP(b,f);if(!(c[b+88>>2]|0)){yb=e;return}a[b+26>>0]=1;yb=e;return}function cia(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 dia(a){a=a|0;nU(a,c[a+4>>2]|0);return}function eia(a,b){a=a|0;b=b|0;if(b>>>0<=7)return a+(b*24|0)|0;a=oa(8)|0;n=0;da(67,a|0,111474);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(a|0);Ea(b|0)}else{c[a>>2]=50808;za(a|0,39608,473)}return 0}function fia(a,b){a=a|0;b=b|0;if(b>>>0<=3)return a+(b*24|0)|0;a=oa(8)|0;n=0;da(67,a|0,111474);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(a|0);Ea(b|0)}else{c[a>>2]=50808;za(a|0,39608,473)}return 0}function gia(a,b){a=a|0;b=b|0;if(b>>>0<=1)return a+(b*24|0)|0;a=oa(8)|0;n=0;da(67,a|0,111474);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(a|0);Ea(b|0)}else{c[a>>2]=50808;za(a|0,39608,473)}return 0}function hia(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Aj(b,d,e,f,1)|0;b=c[e>>2]|0;if((d|0)<7&(b&4|0)==0)c[a>>2]=d;else c[e>>2]=b|4;return}function iia(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Aj(b,d,e,f,2)|0;b=c[e>>2]|0;if((d|0)<61&(b&4|0)==0)c[a>>2]=d;else c[e>>2]=b|4;return}function jia(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Aj(b,d,e,f,2)|0;b=c[e>>2]|0;if((d|0)<60&(b&4|0)==0)c[a>>2]=d;else c[e>>2]=b|4;return}function kia(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Ti(b,d,e,f,1)|0;b=c[e>>2]|0;if((d|0)<7&(b&4|0)==0)c[a>>2]=d;else c[e>>2]=b|4;return}function lia(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Ti(b,d,e,f,2)|0;b=c[e>>2]|0;if((d|0)<61&(b&4|0)==0)c[a>>2]=d;else c[e>>2]=b|4;return}function mia(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Ti(b,d,e,f,2)|0;b=c[e>>2]|0;if((d|0)<60&(b&4|0)==0)c[a>>2]=d;else c[e>>2]=b|4;return}function nia(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(f|0))break;e=c[a>>2]|0;if(!(Yrb(e)|0))icb(b,c[d>>2]|0,e);a=a+4|0}return}function oia(){var a=0,b=0,d=0;b=yb;yb=yb+16|0;a=b;d=WCb(INa(2)|0)|0;d=KJa(d,WGa(149100)|0)|0;Pwb(a,KJa(d,INa(0)|0)|0);yb=b;return c[a>>2]|0}function pia(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[b+8>>2]|0;e=a+68|0;if(!d){c[e>>2]=0;return}f=c[e>>2]|0;d=c[d+4>>2]|0;if((f|0)==6){c[e>>2]=d;return}if((d|0)==6)return;ACa(a,d,f,b);return}function qia(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Gsa(b,c);return}function ria(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Hsa(b,c);return}function sia(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}a=a+12|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function tia(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;_cb(a,56518);IWa(a,140151)|0;Gja(a,b,c,d,e,f);return}function uia(a){a=a|0;var b=0;b=a+4|0;t3(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function via(a){a=a|0;return y_a(a)|0}function wia(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Aj(b,d,e,f,2)|0;b=c[e>>2]|0;if((d|0)<24&(b&4|0)==0)c[a>>2]=d;else c[e>>2]=b|4;return}function xia(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Ti(b,d,e,f,2)|0;b=c[e>>2]|0;if((d|0)<24&(b&4|0)==0)c[a>>2]=d;else c[e>>2]=b|4;return}function yia(a,b){a=a|0;b=b|0;var d=0,e=0;b=b+8|0;d=a+36|0;e=(c[d>>2]|0)+(c[b>>2]<<2)|0;c[e>>2]=(c[e>>2]|0)+1;b=c[b>>2]|0;if((c[(c[d>>2]|0)+(b<<2)>>2]|0)>>>0<=1)return;e=(c[a+24>>2]|0)+(b>>>5<<2)|0;c[e>>2]=c[e>>2]&~(1<<(b&31));return}function zia(a){a=a|0;var b=0,d=0;d=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(d|0))break;b=c[a>>2]|0;if(!(Yrb(b)|0))i7(b);a=a+4|0}return}function Aia(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+16|0;g=f;Gsb(g,a);a=uHa(c[g>>2]|0,b,d,e)|0;if(!(c[37104]|0)){yb=f;return a|0}Cg(a,57330,b,d,e);yb=f;return a|0}function Bia(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+16|0;g=f;Gsb(g,a);a=vHa(c[g>>2]|0,b,d,e)|0;if(!(c[37104]|0)){yb=f;return a|0}Cg(a,57311,b,d,e);yb=f;return a|0}function Cia(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+16|0;g=f;Gsb(g,a);a=hIa(c[g>>2]|0,b,d,e)|0;if(!(c[37104]|0)){yb=f;return a|0}Dg(a,56844,b,d,e);yb=f;return a|0}function Dia(){var a=0,b=0,d=0;b=yb;yb=yb+16|0;a=b;d=WCb(INa(2)|0)|0;d=KJa(d,WGa(148788)|0)|0;Pwb(a,KJa(d,INa(0)|0)|0);yb=b;return c[a>>2]|0}function Eia(){var a=0,b=0,d=0;b=yb;yb=yb+16|0;a=b;d=WCb(INa(2)|0)|0;d=KJa(d,WGa(149096)|0)|0;Pwb(a,KJa(d,INa(0)|0)|0);yb=b;return c[a>>2]|0}function Fia(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(!(Yrb(d)|0))ek(b,d);a=a+4|0}return}function Gia(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);cBa(b,c);return}function Hia(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Xsa(b,c);return}function Iia(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+80|0;f=g+48|0;d=g+24|0;e=g;Bqb(e,c);r_a(d,e);c=f;e=c+24|0;do{a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));OI(b,f);yb=g;return}function Jia(a){a=a|0;q9(a);return}function Kia(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)%(c[d>>2]|0)|0);return}case 2:{Heb(a,VV(c[b>>2]|0,c[b+4>>2]|0,c[d>>2]|0,c[d+4>>2]|0)|0,P()|0);return}default:ma(141129,111484,666,112058)}}function Lia(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(c[b>>2]|0)/(c[d>>2]|0)|0);return}case 2:{Heb(a,m3(c[b>>2]|0,c[b+4>>2]|0,c[d>>2]|0,c[d+4>>2]|0)|0,P()|0);return}default:ma(141129,111484,650,112048)}}function Mia(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Wdb(a)|0;wba(a+8|0,b);c[a+24>>2]=c[d>>2];c[a+32>>2]=0;c[a+28>>2]=e;return a|0}function Nia(a){a=a|0;var b=0;yib(a);n=0;ca(531,a|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;Xya(a);Ea(b|0)}else return}function Oia(a){a=a|0;o$(a);return}function Pia(a){a=a|0;p$(a);return}function Qia(a,b){a=a|0;b=b|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(Peb(b)|0)<<16>>16);return}case 2:{Heb(a,t$a(X2a($Xa(b)|0,P()|0,48)|0,P()|0,48)|0,P()|0);return}default:ma(141129,111484,279,111843)}}function Ria(){var a=0,b=0,d=0;b=yb;yb=yb+16|0;a=b;d=WCb(INa(2)|0)|0;d=KJa(d,WGa(148792)|0)|0;Pwb(a,KJa(d,INa(0)|0)|0);yb=b;return c[a>>2]|0}function Sia(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+48|0;f=g+24|0;d=g;cmb(d,c);c=f;e=c+24|0;do{a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b=YE(b,f)|0;yb=g;return b|0}function Tia(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+40>>2]|0;a=c[a+36>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(!(Yrb(d)|0))Lta(b,d);a=a+4|0}return}function Uia(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);mta(b,c);return}function Via(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);nta(b,c);return}function Wia(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;FLa(a,b);IWa(a,140151)|0;Bla(a,c,d,e,f);return}function Xia(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a>>2]|0;e=c[b>>2]|0;if((d|0)!=(e|0)){b=d>>>0>>0;return b|0}d=c[a+4>>2]|0;e=c[b+4>>2]|0;if((d|0)==(e|0)){b=(c[a+8>>2]|0)>>>0<(c[b+8>>2]|0)>>>0;return b|0}else{b=d>>>0>>0;return b|0}return 0}function Yia(a,b){a=a|0;b=b|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,(Peb(b)|0)<<24>>24);return}case 2:{Heb(a,t$a(X2a($Xa(b)|0,P()|0,56)|0,P()|0,56)|0,P()|0);return}default:ma(141129,111484,273,111834)}}function Zia(a,b){a=a|0;b=b|0;Vkb(a,b);s0a(a,b);EK(a,b);Vkb(a,0);return}function _ia(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a>>2]=c[b>>2];e=a+4|0;d=b+4|0;c[e>>2]=0;f=a+8|0;c[f>>2]=0;c[a+12>>2]=0;c[e>>2]=c[d>>2];e=b+8|0;c[f>>2]=c[e>>2];b=b+12|0;c[a+12>>2]=c[b>>2];c[b>>2]=0;c[e>>2]=0;c[d>>2]=0;return}function $ia(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);QJa(b,c)}function aja(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a>>2]=c[b>>2];d=c[b+4>>2]|0;c[a+4>>2]=d;e=b+8|0;f=c[e>>2]|0;c[a+8>>2]=f;if(!f){c[a>>2]=a+4;return}else{c[d+8>>2]=a+4;c[b>>2]=b+4;c[b+4>>2]=0;c[e>>2]=0;return}}function bja(a,b){a=a|0;b=b|0;Dlb(a,b);wz(a+-16+16|0,b);Dlb(a,0);return}function cja(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+40>>2]|0;a=c[a+36>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(Yrb(d)|0)Lta(b,d);a=a+4|0}return}function dja(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);wla(b,c);return}function eja(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);xla(b,c);return}function fja(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);xCa(b,c);return}function gja(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Pta(b,c);return}function hja(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Qta(b,c);return}function ija(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;_cb(a,56518);IWa(a,140151)|0;rka(a,b,c,d,e);return}function jja(a){a=+a;var b=0,d=0,e=0;h[i>>3]=a;b=c[i>>2]|0;d=c[i+4>>2]|0;e=U4a(b|0,d|0,52)|0;P()|0;switch(e&2047){case 0:{b=(b|0)==0&(d&2147483647|0)==0?2:3;break}case 2047:{b=(b|0)==0&(d&1048575|0)==0&1;break}default:b=4}return b|0}function kja(a){a=a|0;UO(a,c[a+4>>2]|0);return}function lja(a){a=a|0;VO(a,c[a+4>>2]|0);return}function mja(a){a=a|0;WO(a,c[a+4>>2]|0);return}function nja(a){a=a|0;XO(a,c[a+4>>2]|0);return}function oja(a){a=a|0;YO(a,c[a+4>>2]|0);return}function pja(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-16|0;C6a(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function qja(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-16|0;D6a(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function rja(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-16|0;E6a(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function sja(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-16|0;F6a(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function tja(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-16|0;G6a(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function uja(a,b){a=a|0;b=b|0;var c=0;c=a+16|0;IW(c,2200,b);Ed(a,b);IW(c,2201,b);return}function vja(a,b){a=a|0;b=b|0;IW(a,1218,b);ye(a,b);IW(a,1219,b);return}function wja(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-16|0;c[d>>2]=e;C6a(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function xja(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-16|0;c[d>>2]=e;D6a(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function yja(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-16|0;c[d>>2]=e;E6a(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function zja(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-16|0;c[d>>2]=e;F6a(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function Aja(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-16|0;c[d>>2]=e;G6a(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function Bja(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[a+4>>2]|0;f=g>>8;if(g&1)f=c[(c[d>>2]|0)+f>>2]|0;a=c[a>>2]|0;Ub[c[(c[a>>2]|0)+28>>2]&255](a,b,d+f|0,(g&2|0)==0?2:e);return}function Cja(a){a=+a;var b=0,d=0,e=0;e=yb;yb=yb+16|0;b=e+4|0;d=e;g[b>>2]=a;if(((irb(a)|0)&2147483647)>>>0>2139095040){b=LAb(b)|0|4194304;c[d>>2]=b;a=+AAb(d);yb=e;return +a}else ma(111661,111484,162,111706);return +(0.0)}function Dja(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);hua(b,c);return}function Eja(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);iua(b,c);return}function Fja(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);jua(b,c);return}function Gja(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;FLa(a,b);IWa(a,140151)|0;Rla(a,c,d,e,f);return}function Hja(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;_cb(a,56518);IWa(a,140151)|0;Dka(a,b,c,d,e);return}function Ija(a){a=a|0;a=gV(a)|0;if(!a){a=0;return a|0}a=(Veb(c[a+16>>2]|0)|0)+12|0;a=c[a>>2]|0;return a|0}function Jja(a){a=a|0;var b=0;B6a(a);c[a>>2]=40212;b=a+4|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;iob(b);c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;return}function Kja(a){a=a|0;var b=0,d=0,e=0;b=c[a+8>>2]|0;if((b|0?(d=c[a+12>>2]|0,d|0):0)?(e=c[a+16>>2]|0,e|0):0){a=a+4|0;c[a>>2]=5;if(((c[b+4>>2]|0)!=6?(c[d+4>>2]|0)!=6:0)?(c[e+4>>2]|0)!=6:0)return;c[a>>2]=6;return}ma(134873,134390,464,134833)}function Lja(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+8|0;b=c[d>>2]|0;if(!(c[(c[a+36>>2]|0)+(b<<2)>>2]|0)){e=(c[a+24>>2]|0)+(b>>>5<<2)|0;c[e>>2]=c[e>>2]&~(1<<(b&31));b=c[d>>2]|0}e=(c[a+48>>2]|0)+(b<<2)|0;c[e>>2]=(c[e>>2]|0)+1;return}function Mja(a){a=a|0;SU(a,c[a+4>>2]|0);return}function Nja(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;KL(a,b);b=b+16|0}return}function Oja(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;e=e+8|0;while(1){if(c>>>0>=d>>>0)break;Wla(e,$db(a,Vr(b,c)|0)|0);c=c+1|0}return}function Pja(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+40>>2]|0;a=c[a+36>>2]|0;while(1){if((a|0)==(e|0))break;d=c[a>>2]|0;if(!(Yrb(d)|0))fR(b,d);a=a+4|0}return}function Qja(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Aua(b,c);return}function Rja(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Bua(b,c);return}function Sja(a,b){a=a|0;b=b|0;var c=0;c=mla(48)|0;$Ea(c,b);C9(a,c);return}function Tja(a){a=a|0;var b=0;b=a+4|0;h4(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function Uja(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(12)|0;c[b>>2]=g;c[b+4>>2]=d+8;c[g+8>>2]=c[f>>2];a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function Vja(a,b){a=a|0;b=b|0;var c=0;Vkb(a,b);c=a+-16|0;eG(c,b);vba(c,b);Vkb(a,0);return}function Wja(a){a=a|0;var b=0,d=0,e=0;b=c[a+12>>2]|0;if((b|0?(d=c[a+16>>2]|0,d|0):0)?(e=c[a+20>>2]|0,e|0):0){a=a+4|0;c[a>>2]=0;if(((c[b+4>>2]|0)!=6?(c[d+4>>2]|0)!=6:0)?(c[e+4>>2]|0)!=6:0)return;c[a>>2]=6;return}ma(134895,134390,472,134833)}function Xja(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Vua(b,c);return}function Yja(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);tma(b,c);return}function Zja(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Xua(b,c);return}function _ja(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Yua(b,c);return}function $ja(a){a=a|0;var b=0,d=0,e=0;b=c[a+8>>2]|0;if((b|0?(d=c[a+12>>2]|0,d|0):0)?(e=c[a+16>>2]|0,e|0):0){a=a+4|0;c[a>>2]=0;if(((c[b+4>>2]|0)!=6?(c[d+4>>2]|0)!=6:0)?(c[e+4>>2]|0)!=6:0)return;c[a>>2]=6;return}ma(134941,134390,492,134833)}function aka(a){a=a|0;var b=0,d=0,e=0;b=c[a+8>>2]|0;if((b|0?(d=c[a+12>>2]|0,d|0):0)?(e=c[a+16>>2]|0,e|0):0){a=a+4|0;c[a>>2]=0;if(((c[b+4>>2]|0)!=6?(c[d+4>>2]|0)!=6:0)?(c[e+4>>2]|0)!=6:0)return;c[a>>2]=6;return}ma(134918,134390,484,134833)}function bka(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;zfb(a,b);IWa(a,140151)|0;oma(a,c,d,e,f);return}function cka(a){a=a|0;FP(a,c[a+4>>2]|0);return}function dka(a,b){a=a|0;b=b|0;Vkb(a,b);dKa(a,b);Vkb(a,0);return}function eka(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);kxa(b,c);return}function fka(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;g=(c[a>>2]|0)+64|0;f=c[g>>2]|0;c[g>>2]=f+1;c[b+4>>2]=f;a1((c[a>>2]|0)+28|0,e);yb=d;return}function gka(a,b){a=a|0;b=b|0;if(!b)return;gka(a,c[b>>2]|0);gka(a,c[b+4>>2]|0);RCb(b);return}function hka(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;while(1){if(!b)break;e=Bfb(c[b+16>>2]|0,a)|0;d=e?d:b;b=c[(e?b+4|0:b)>>2]|0}return d|0}function ika(a){a=a|0;var b=0;WCb(a)|0;if(!(VBb(c[a>>2]|0)|0)){a=0;return a|0}b=rrb(a,0)|0;if(!(hXa(c[b>>2]|0,c[37195]|0)|0)){b=0;return b|0}b=rrb(a,1)|0;b=(K0a(WCb(c[b>>2]|0)|0)|0)==0;return b|0}function jka(a,b){a=a|0;b=b|0;if(Rjb(a,b)|0){b=(c[a+16>>2]|0)+(b<<2)|0;b=c[b>>2]|0;return b|0}if(!(Wjb(a,b)|0))ma(141129,134390,766,135060);b=b-(uob(a)|0)|0;b=(c[a+28>>2]|0)+(b<<2)|0;b=c[b>>2]|0;return b|0}function kka(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Web(a)|0;c[a+8>>2]=b;c[a+12>>2]=c[d>>2];wba(a+16|0,e);Fla(a);return a|0}function lka(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=d+16|0;d=1;while(1){if(d>>>0>=c>>>0)break;Wla(e,$db(a,Vr(b,d)|0)|0);d=d+1|0}return}function mka(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+16|0;f=e;c[f>>2]=b;b=O8(a+48|0,f)|0;c[b>>2]=d;V$(a,c[f>>2]|0,(d|0)==0?-1:1);yb=e;return}function nka(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Mla(b,c);return}function oka(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Ima(b,c);return}function pka(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);rva(b,c);return}function qka(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;FLa(a,b);IWa(a,140151)|0;yma(a,c,d,e);return}function rka(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;R9(a,b);IWa(a,140151)|0;tna(a,c,d,e);return}function ska(a){a=a|0;var b=0;b=a+4|0;v4(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function tka(a){a=a|0;var b=0;b=a+4|0;w4(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function uka(a,b){a=a|0;b=b|0;var d=0,e=0;e=b+4|0;d=c[e>>2]|0;c[(c[b>>2]|0)+4>>2]=d;c[c[e>>2]>>2]=c[b>>2];a=a+8|0;c[a>>2]=(c[a>>2]|0)+-1;Xpb(b+8|0);RCb(b);return d|0}function vka(a){a=a|0;daa(a);return}function wka(a,b){a=a|0;b=b|0;var c=0;Vkb(a,b);c=a+-16|0;Ej(c,b);Qk(c,b);Vkb(a,0);return}function xka(a,b){a=a|0;b=b|0;var c=0;Vkb(a,b);c=a+-16|0;z1(c,b);vba(c,b);Vkb(a,0);return}function yka(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=d+8|0;d=2;while(1){if(d>>>0>=c>>>0)break;Wla(e,$db(a,Vr(b,d)|0)|0);d=d+1|0}return}function zka(b,d,e){b=b|0;d=d|0;e=e|0;w0a(b);w0a(b+24|0);w0a(b+48|0);w0a(b+72|0);c[b+96>>2]=0;c[b+100>>2]=-1;c[b+104>>2]=d;c[b+108>>2]=e;a[b+112>>0]=0;return}function Aka(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Pva(b,c);return}function Bka(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Qva(b,c);return}function Cka(a,b){a=a|0;b=b|0;var d=0,e=0;if((c[a+8>>2]|0)>>>0>>0)Bqa(a,b);e=a+4|0;d=c[e>>2]|0;while(1){if(d>>>0>=b>>>0)break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}c[e>>2]=b;return}function Dka(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;r9a(a,b);IWa(a,140151)|0;Opa(a,c,d,e);return}function Eka(a,b){a=a|0;b=b|0;a=c[a+24>>2]|0;if(!(_la(a,c[b+12>>2]|0)|0)?!(_la(a,c[b+16>>2]|0)|0):0)return;Nra(a,b);return}function Fka(a){a=a|0;uaa(a);return}function Gka(a){a=a|0;var b=0;switch(a|0){case 1:{b=105;break}case 2:{b=106;break}case 3:{b=102;break}case 4:{b=100;break}case 5:{b=86;break}case 0:{b=118;break}case 6:{ma(141129,71530,60,71578);break}default:ma(141129,71530,62,71578)}return b|0}function Hka(a,b){a=a|0;b=b|0;Vkb(a,b);cLa(a,b);Vkb(a,0);return}function Ika(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+28|0;e=c[d>>2]|0;if((e|0)==(c[a+32>>2]|0)){_M(a+24|0,b);return}else{c[e>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+4;return}}function Jka(a,b){a=a|0;b=b|0;var c=0;c=mla(48)|0;ata(c,b);C9(a,c);return}function Kka(a,b){a=a|0;b=b|0;var d=0,e=0;if((c[a+8>>2]|0)>>>0>>0)Bqa(a,b);e=a+4|0;d=c[e>>2]|0;while(1){if(d>>>0>=b>>>0)break;Cub((c[a>>2]|0)+(d<<2)|0);d=d+1|0}c[e>>2]=b;return}function Lka(a,b){a=a|0;b=b|0;if((a|0)!=(b|0))xz(a,c[b>>2]|0,c[b+4>>2]|0);h[a+16>>3]=+h[b+16>>3];return}function Mka(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;c[d>>2]=e+-8;OCa(c[e+-4>>2]|0)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function Nka(a){a=a|0;var b=0;b=W0(a+16|0)|0;return (b>>>0)%((c[a+8>>2]|0)-(c[a+4>>2]|0)>>2>>>0)|0|0}function Oka(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=yb;yb=yb+16|0;f=e+4|0;h=e;g=(a[d+20>>0]&1)!=0;c[h>>2]=c[d+8>>2];c[f>>2]=c[h>>2];rx(b,g,f,133635);yb=e;return}function Pka(a){a=a|0;if(zgb(a)|0){a=0;return a|0}WCb(a)|0;if(!(VBb(c[a>>2]|0)|0)){a=0;return a|0}a=rrb(a,0)|0;a=hXa(c[a>>2]|0,c[37397]|0)|0;return a|0}function Qka(a){a=a|0;Baa(a);return}function Rka(a){a=a|0;var b=0;b=W0(c[a>>2]|0)|0;return b&c[a+28>>2]|0}function Ska(a){a=a|0;var b=0;c[a>>2]=47300;n=0;ca(572,a|0);b=n;n=0;if(b&1){b=ta(0)|0;P()|0;yub(b)}else{XWa(a+28|0);wg(c[a+32>>2]|0);wg(c[a+36>>2]|0);wg(c[a+48>>2]|0);wg(c[a+60>>2]|0);return}}function Tka(a){a=a|0;switch(a|0){case 62:case 61:case 60:case 59:case 58:case 57:case 49:case 48:case 47:case 46:case 45:case 44:case 43:case 42:case 41:case 40:case 24:case 23:case 22:case 21:case 20:case 19:case 18:case 17:case 16:case 15:case 75:case 74:case 73:case 72:case 71:case 70:{a=1;break}default:a=0}return a|0}function Uka(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;_cb(a,56518);IWa(a,140151)|0;zla(a,b,c,d,e);return}function Vka(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;_cb(a,56518);IWa(a,140151)|0;Bla(a,b,c,d,e);return}function Wka(a){a=a|0;var b=0;b=a+4|0;V4(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function Xka(a){a=a|0;var b=0,d=0,e=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;OCa(c[b+-4>>2]|0);b=b+-8|0}c[e>>2]=d;RCb(c[a>>2]|0);return}function Yka(a,b){a=a|0;b=b|0;var c=0;c=a+16|0;IW(c,136,b);Wd(a,b);IW(c,137,b);return}function Zka(a,b){a=a|0;b=b|0;var c=0;c=mla(148)|0;REa(c,b);C9(a,c);return}function _ka(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;e=c[a>>2]|0;f=((c[d>>2]|0)-e|0)/20|0;if(f>>>0>>0){tD(a,b-f|0);return}if(f>>>0<=b>>>0)return;c[d>>2]=e+(b*20|0);return}function $ka(a,b){a=a|0;b=b|0;if(b>>>0<=15)return a+b|0;a=oa(8)|0;n=0;da(67,a|0,111474);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(a|0);Ea(b|0)}else{c[a>>2]=50808;za(a|0,39608,473)}return 0}function ala(a){a=a|0;var b=0;switch(a|0){case 0:{b=126628;break}case 1:{b=126633;break}case 2:{b=126637;break}case 3:{b=126641;break}case 4:{b=126645;break}case 5:{b=126649;break}case 6:{b=134556;break}default:ma(141129,126654,34,126686)}return b|0}function bla(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Rwa(b,c);return}function cla(a,b){a=a|0;b=b|0;var c=0;c=mla(48)|0;aGa(c,b);C9(a,c);return}function dla(a,b){a=a|0;b=b|0;var d=0,e=0;a=a+16|0;c[a>>2]=0;d=mla(20)|0;c[d>>2]=43284;e=d+4|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[a>>2]=d;return}function ela(a,b){a=a|0;b=b|0;if(!b)return;ela(a,c[b>>2]|0);ela(a,c[b+4>>2]|0);RCb(b);return}function fla(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=b;if(!a){e=oa(4)|0;c[e>>2]=0;Nxb(e);za(e|0,37944,379)}else{Sb[c[(c[a>>2]|0)+24>>2]&8191](a,d);yb=e;return}}function gla(b,d){b=b|0;d=d|0;if(a[b+33>>0]&1)BM(IWa(150620,112733)|0);if((c[d+4>>2]|0)==6)return;tI(c[b+28>>2]|0,27)|0;return}function hla(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 ila(a,b){a=a|0;b=b|0;if((a|0)==(b|0))return;ir(a,c[b>>2]|0,b+4|0);return}function jla(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+32|0;e=g;f=e;c=c+8|0;d=f+24|0;do{a[f>>0]=a[c>>0]|0;f=f+1|0;c=c+1|0}while((f|0)<(d|0));bx(b,e)|0;yb=g;return}function kla(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+4|0;d=c[e>>2]|0;if((d|0)==(c[a+8>>2]|0)){Bqa(a,(d<<1)+2|0);d=c[e>>2]|0}c[(c[a>>2]|0)+(d<<2)>>2]=c[b>>2];c[e>>2]=(c[e>>2]|0)+1;return}function lla(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;_cb(a,56518);IWa(a,140151)|0;Sla(a,b,c,d,e);return}function mla(a){a=a|0;var b=0,c=0;c=(a|0)==0?1:a;while(1){b=qc(c)|0;if(b|0){a=6;break}a=jtb()|0;if(!a){a=5;break}Qb[a&63]()}if((a|0)==5){c=oa(4)|0;MBb(c);za(c|0,39528,471)}else if((a|0)==6)return b|0;return 0}function nla(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=b;d=1;while(1){if((d|0)==624)break;e=(J(b^b>>>30,1812433253)|0)+d|0;c[a+(d<<2)>>2]=e;d=d+1|0;b=e}c[a+2496>>2]=0;return}function ola(a){a=a|0;t$(a);return}function pla(a,b){a=a|0;b=b|0;var d=0;d=rrb(b,1)|0;Qua(a,e7a(WCb(c[d>>2]|0)|0)|0);Alb(a);hfa(a,58);Alb(a);b=rrb(b,2)|0;Xi(a,c[b>>2]|0);return}function qla(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Ixa(b,c);return}function rla(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+4>>2]|0;e=rrb(c[c[a>>2]>>2]|0,3)|0;e=WCb(c[e>>2]|0)|0;KJa(e,Oh(d,c[c[a+8>>2]>>2]|0,b)|0)|0;return}function sla(a){a=a|0;var b=0;b=Tqb(a)|0;if(b)a=c[b+8>>2]|0;if(VBb(c[a>>2]|0)|0){b=1;return b|0}a=Qqb(a)|0;if(!a){b=0;return b|0}b=(c[a+16>>2]|0)!=0;return b|0}function tla(a,b){a=a|0;b=b|0;var d=0,e=0;e=(Bs(a,c[b+8>>2]|0)|0)+1|0;d=Bs(a,c[b+12>>2]|0)|0;b=q1a(a,c[b+16>>2]|0)|0;return e+(d>>>0>>0?b:d)|0}function ula(){Wzb();Lzb();Kzb();Jzb();Izb();gDb();gDb();vsb();Usb();Tsb();Ssb();Rsb();Qsb();Psb();return}function vla(a,b){a=a|0;b=b|0;b=C8(a,b)|0;if((b|0)==(a+4|0))return;lZ(a,b)|0;return}function wla(a,b){a=a|0;b=b|0;Dlb(a,b);jD(a+-16+16|0,b);Fz(b);Dlb(a,0);return}function xla(a,b){a=a|0;b=b|0;Dlb(a,b);kD(a+-16+16|0,b);Gi(b);Dlb(a,0);return}function yla(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);eya(b,c);return}function zla(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;FLa(a,b);IWa(a,140151)|0;roa(a,c,d,e);return}function Ala(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;_cb(a,56518);IWa(a,140151)|0;oma(a,b,c,d,e);return}function Bla(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;R9(a,b);IWa(a,140151)|0;Uoa(a,c,d,e);return}function Cla(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 Dla(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a>>2]|0;Nrb(a+8|0);RCb(a);a=b}return}function Ela(a,b){a=a|0;b=b|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,Pxb(c[b>>2]|0)|0);return}case 2:{b=jsb(c[b>>2]|0,c[b+4>>2]|0)|0;Heb(a,b,((b|0)<0)<<31>>31);return}default:ma(141129,111484,252,111787)}}function Fla(a){a=a|0;var b=0;switch(c[a+8>>2]|0){case 0:{c[a+4>>2]=1;return}case 1:{b=uXa(a+16|0,0)|0;a=a+4|0;if((c[(c[b>>2]|0)+4>>2]|0)==6){c[a>>2]=6;return}else{c[a>>2]=1;return}}default:return}}function Gla(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+44|0;e=c[d>>2]|0;if((e|0)==(c[a+48>>2]|0)){_M(a+40|0,b);return}else{c[e>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+4;return}}function Hla(a,b){a=a|0;b=b|0;Pf(a,b);return}function Ila(a,b,c){a=a|0;b=b|0;c=c|0;ihb(a,b);b=a+16|0;Dlb(b,c);Nya(b,c);return}function Jla(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;_cb(a,56518);IWa(a,140151)|0;yma(a,b,c,d);return}function Kla(a){a=a|0;var b=0,d=0,e=0,f=0;f=yb;yb=yb+32|0;b=f+16|0;d=f+12|0;e=f;x5a(e,573,0,a);if((c[a>>2]|0)!=-1){c[b>>2]=e;c[d>>2]=b;Ox(a,d)}yb=f;return (c[a+4>>2]|0)+-1|0}function Lla(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=0;e=a+4|0;c[e>>2]=0;c[a+8>>2]=0;c[a>>2]=c[b>>2];d=b+4|0;c[e>>2]=c[d>>2];e=b+8|0;c[a+8>>2]=c[e>>2];c[e>>2]=0;c[d>>2]=0;c[b>>2]=0;c[a+12>>2]=c[b+12>>2];return}function Mla(a,b){a=a|0;b=b|0;var d=0;Dlb(a,b);d=a+-16|0;g2(d,b);Pmb(c[d+48>>2]|0);Dlb(a,0);return}function Nla(a,b){a=a|0;b=b|0;aua(a,b)|0;if((a|0)==(b|0))return;yB(a+12|0,c[b+12>>2]|0,c[b+16>>2]|0);return}function Ola(a,b,d){a=a|0;b=b|0;d=d|0;d=uXa(b+12|0,(LSa(a,b)|0)-d+-1|0)|0;return c[d>>2]|0}function Pla(a,b){a=a|0;b=b|0;if((a|0)==(b|0))return;ur(a,c[b>>2]|0,b+4|0);return}function Qla(a,b){a=a|0;b=b|0;M4(a,b,a);if(Yub(c[b+4>>2]|0)|0)return;Gga(a,b);return}function Rla(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;FLa(a,b);IWa(a,140151)|0;Uoa(a,c,d,e);return}function Sla(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;zfb(a,b);IWa(a,140151)|0;Toa(a,c,d,e);return}function Tla(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;_cb(a,56518);IWa(a,140151)|0;Lma(a,b,c,d);return}function Ula(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=yb;yb=yb+32|0;f=g;c[b+36>>2]=14;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,La(54,f|0)|0):0)a[b+75>>0]=-1;f=mw(b,d,e)|0;yb=g;return f|0}function Vla(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+4|0;d=c[e>>2]|0;if((d|0)==(c[a+8>>2]|0)){fra(a,(d<<1)+2|0);d=c[e>>2]|0}c[(c[a>>2]|0)+(d<<2)>>2]=b;c[e>>2]=(c[e>>2]|0)+1;return}function Wla(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+4|0;d=c[e>>2]|0;if((d|0)==(c[a+8>>2]|0)){Bqa(a,(d<<1)+2|0);d=c[e>>2]|0}c[(c[a>>2]|0)+(d<<2)>>2]=b;c[e>>2]=(c[e>>2]|0)+1;return}function Xla(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return E7(a,b,c,d)|0}function Yla(a,b){a=a|0;b=b|0;var c=0;c=oa(16)|0;qrb();n=0;fa(181,c|0,a|0,50592,b|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(c|0);Ea(b|0)}else za(c|0,39448,464)}function Zla(a){a=a|0;X$(a);return}function _la(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=b;if(!b){d=0;yb=e;return d|0}d=(Mba(a+52|0,d)|0)!=(a+56|0);yb=e;return d|0}function $la(a){a=+a;var b=0,c=0;leb(a)|0;if((P()|0)>=0)if(a<18446744073709551616.0){c=+w(a)>=1.0?(a>0.0?~~+K(+v(a/4294967296.0),4294967295.0)>>>0:~~+I((a-+(~~a>>>0))/4294967296.0)>>>0):0;b=~~a>>>0}else{c=-1;b=-1}else{c=0;b=0}O(c|0);return b|0}function ama(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;b=Np(b)|0;c[f>>2]=b;b=c[a>>2]|0;c[e>>2]=c[f>>2];b=nHa(b,e,0,0)|0;yb=d;return b|0}function bma(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=f;f=a+4|0;d=b+4|0;e=c[f>>2]|0;c[f>>2]=c[d>>2];c[d>>2]=e;d=a+8|0;b=b+8|0;a=c[d>>2]|0;c[d>>2]=c[b>>2];c[b>>2]=a;return}function cma(a){a=a|0;var b=0;b=a+4|0;t6(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function dma(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 3:{Bqb(a,+L8a(b)<=+L8a(d)&1);return}case 4:{Bqb(a,+K8a(b)<=+K8a(d)&1);return}default:ma(141129,111484,812,112128)}}function ema(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 3:{Bqb(a,+L8a(b)>=+L8a(d)&1);return}case 4:{Bqb(a,+K8a(b)>=+K8a(d)&1);return}default:ma(141129,111484,860,112150)}}function fma(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;b=c[b+8>>2]|0;if(!(qqa(a,b)|0)){yb=e;return}pT(d,a,b);lNa(d);yb=e;return}function gma(a,b){a=a|0;b=b|0;Rga(a,b);n=0;da(2033,a+12|0,b+12|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;Chb(a);Ea(b|0)}else return}function hma(a){a=a|0;a0(a);return}function ima(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+16|0;e=f;Tb[c[(c[a>>2]|0)+12>>2]&255](e,a,b);if((c[e+4>>2]|0)==(c[d+4>>2]|0))a=(c[e>>2]|0)==(c[d>>2]|0);else a=0;yb=f;return a|0}function jma(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;e=yb;yb=yb+80|0;g=e+48|0;f=e+24|0;h=e;bab(g,b,c);dta(h,b);bab(f,h,d);Eab(a,g,f);yb=e;return}function kma(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;c[d>>2]=b;if(b|0)return;if((c[(c[a+8>>2]|0)+4>>2]|0)!=6){b=c[a+16>>2]|0;if(!b)return;if((c[(c[a+12>>2]|0)+4>>2]|0)!=6)return;if((c[b+4>>2]|0)!=6)return}c[d>>2]=6;return}function lma(a,b){a=a|0;b=b|0;var d=0;d=Hgb(c[a+4>>2]|0)|0;b=am(a,Vr(b,1)|0)|0;c[d+8>>2]=b;b=jka(c[a+84>>2]|0,b)|0;c[d+4>>2]=b;return d|0}function mma(a){a=a|0;var b=0,d=0;d=c[a+12>>2]|0;b=c[a+8>>2]|0;while(1){if((b|0)==(d|0)){b=5;break}if((c[b>>2]&-2|0)==2){b=6;break}b=b+4|0}if((b|0)==5)return (c[a+4>>2]&-2|0)==2|0;else if((b|0)==6)return 1;return 0}function nma(a){a=a|0;var b=0;b=Kqb(a)|0;if(b|0){b=Tzb(c[b+8>>2]|0)|0;return b|0}a=Aqb(a)|0;if(!a){b=0;return b|0}b=Tka(c[a+8>>2]|0)|0;return b|0}function oma(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;FLa(a,b);IWa(a,140151)|0;spa(a,c,d,e);return}function pma(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 3:{Bqb(a,+L8a(b)<+L8a(d)&1);return}case 4:{Bqb(a,+K8a(b)<+K8a(d)&1);return}default:ma(141129,111484,788,112117)}}function qma(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 3:{Bqb(a,+L8a(b)>+L8a(d)&1);return}case 4:{Bqb(a,+K8a(b)>+K8a(d)&1);return}default:ma(141129,111484,836,112139)}}function rma(a){a=a|0;var b=0,d=0,e=0;d=yb;yb=yb+16|0;b=d;e=WCb(INa(2)|0)|0;Pwb(b,KJa(KJa(e,WGa(149092)|0)|0,a)|0);yb=d;return c[b>>2]|0}function sma(a,b,d){a=a|0;b=b|0;d=d|0;if(PBb(c[b>>2]|0)|0){d=b;return d|0}if(!(nba(b)|0)){d=b;return d|0}d=aYa(b,d)|0;iL(a,d)|0;return d|0}function tma(a,b){a=a|0;b=b|0;Dlb(a,b);KD(a+-16+16|0,b);lR(b);Dlb(a,0);return}function uma(b,d){b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+80|0;f=e;x6(f,d,b,c[b+68>>2]|0,(a[b+72>>0]&1)!=0);Whb(f);yb=e;return}function vma(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;b=b+8|0;c[f>>2]=c[b>>2];c[e>>2]=c[f>>2];a=Iq(a+36|0,e)|0;c[b>>2]=a;yb=d;return}function wma(a,b,c){a=a|0;b=b|0;c=c|0;return JR(a,b,WCb(c)|0)|0}function xma(a,b){a=a|0;b=b|0;if(!b)return;xma(a,c[b>>2]|0);xma(a,c[b+4>>2]|0);RCb(b);return}function yma(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;r9a(a,b);IWa(a,140151)|0;rua(a,c,d);return}function zma(a,b){a=a|0;b=b|0;b=X9(b,c[c[a+4>>2]>>2]|0)|0;return (L6(b,c[c[a+8>>2]>>2]|0)|0)^1|0}function Ama(a){a=a|0;var b=0;b=a+4|0;U6(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function Bma(a,b){a=a|0;b=b|0;lLa(a,gdb(c[b>>2]|0)|0);return}function Cma(a,b){a=a|0;b=b|0;lLa(a,hdb(c[b>>2]|0)|0);return}function Dma(a){a=a|0;var b=0,d=0;d=c[a+20>>2]|0;b=c[a+16>>2]|0;while(1){if((b|0)==(d|0)){b=5;break}if((c[b>>2]&-2|0)==2){b=6;break}b=b+4|0}if((b|0)==5)return (c[a+12>>2]&-2|0)==2|0;else if((b|0)==6)return 1;return 0}function Ema(b,c){b=b|0;c=c|0;var d=0;d=yb;yb=yb+16|0;if(!(a[b+104>>0]&1)){yb=d;return}GG(d,b+108|0,c,c);yb=d;return}function Fma(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;f=d+4|0;g=d;e=mla(48)|0;c[g>>2]=c[b>>2];c[f>>2]=c[g>>2];nYa(e,f);C9(a,e);yb=d;return}function Gma(a){a=a|0;KX(a,c[a+4>>2]|0);return}function Hma(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-24|0;TIa(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function Ima(a,b){a=a|0;b=b|0;Dlb(a,b);eC(a+-16+16|0,b);cG(b);Dlb(a,0);return}function Jma(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;if((c[b+4>>2]|0)==6){d=b;yb=e;return d|0}Gsb(d,WCb(c[a+36>>2]|0)|0);d=Q6a(c[d>>2]|0,b)|0;yb=e;return d|0}function Kma(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;b=Op(b)|0;c[f>>2]=b;b=c[a>>2]|0;c[e>>2]=c[f>>2];b=nHa(b,e,0,0)|0;yb=d;return b|0}function Lma(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;r9a(a,b);IWa(a,140151)|0;Gva(a,c,d);return}function Mma(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=a+4|0;while(1){if((b|0)==(d|0))break;e=b;c[c[a>>2]>>2]=c[e>>2];c[a>>2]=(c[a>>2]|0)+4;b=e+4|0}return}function Nma(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-24|0;c[d>>2]=e;TIa(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function Oma(a,b){a=a|0;b=b|0;lLa(a,wdb(c[b>>2]|0)|0);return}function Pma(b,c){b=b|0;c=c|0;var d=0;d=Vr(c,1)|0;d=UBb(a[d>>0]|0)|0;d=d?1:2;Bn(b,c,d+1|0,$db(b,Vr(c,d)|0)|0);return}function Qma(a,b){a=a|0;b=b|0;var d=0;d=mla(12)|0;n=0;da(234,d|0,b|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;RCb(d);Ea(b|0)}else{c[a>>2]=d;return}}function Rma(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=yb;yb=yb+128|0;e=g;f=e;h=f+124|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(h|0));c[e+32>>2]=120;c[e+44>>2]=a;c[e+76>>2]=-1;c[e+84>>2]=a;h=Sc(e,b,d)|0;yb=g;return h|0}function Sma(a,b){a=a|0;b=b|0;if(bA(a,b)|0)return;ys(a,b)|0;return}function Tma(a,b){a=a|0;b=b|0;var d=0;d=c[c[a>>2]>>2]|0;eD(d,Dba(mG(b,Yga(c[(c[c[a+4>>2]>>2]|0)+12>>2]|0)|0)|0)|0);return}function Uma(a,b){a=a|0;b=b|0;if((a|0)==(b|0))return;yr(a,c[b>>2]|0,b+4|0);return}function Vma(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;a=Lfb(a)|0;c[a+8>>2]=g;c[a+12>>2]=b;c[a+16>>2]=d;c[a+20>>2]=e;c[a+24>>2]=f;fHa(a);return a|0}function Wma(a,b){a=a|0;b=b|0;DHa(a,Keb(c[b>>2]|0)|0);return}function Xma(a,b){a=a|0;b=b|0;DHa(a,Leb(c[b>>2]|0)|0);return}function Yma(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+32|0;e=g;f=e;c=c+8|0;d=f+24|0;do{a[f>>0]=a[c>>0]|0;f=f+1|0;c=c+1|0}while((f|0)<(d|0));Wza(b,e);yb=g;return}function Zma(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;a=Wdb(a)|0;L9(a+8|0,b);c[a+24>>2]=c[d>>2];c[a+32>>2]=f;c[a+28>>2]=e;return a|0}function _ma(a,b){a=a|0;b=b|0;lLa(a,xdb(c[b>>2]|0)|0);return}function $ma(a,b){a=a|0;b=b|0;lLa(a,ydb(c[b>>2]|0)|0);return}function ana(a,b){a=a|0;b=b|0;lLa(a,zdb(c[b>>2]|0)|0);return}function bna(a,b){a=a|0;b=b|0;lLa(a,Adb(c[b>>2]|0)|0);return}function cna(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;Spb(b);c[b>>2]=43528;c[b+4>>2]=d;c[b+8>>2]=e;a[b+12>>0]=f&1;return}function dna(a,b){a=a|0;b=b|0;var d=0;d=(Bs(a,c[b+16>>2]|0)|0)+2|0;d=d+(Bs(a,c[b+8>>2]|0)|0)|0;return d+(Bs(a,c[b+12>>2]|0)|0)|0}function ena(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=yb;yb=yb+48|0;f=g+24|0;e=g;Heb(e,c,d);c=f;d=e;e=c+24|0;do{a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));OI(b,f);yb=g;return}function fna(a){a=a|0;var b=0,d=0;d=c[j>>2]|0;b=d+a|0;if((a|0)>0&(b|0)<(d|0)|(b|0)<0){vb(b|0)|0;Fa(12);return -1}if((b|0)>(Wa()|0)){if(!(_a(b|0)|0)){Fa(12);return -1}}else c[j>>2]=b;return d|0}function gna(a,b){a=a|0;b=b|0;Dlb(a,b);gB(a+-16+16|0,b);Dlb(a,0);return}function hna(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;_cb(a,56518);IWa(a,140151)|0;roa(a,b,c,d);return}function ina(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;_cb(a,56518);IWa(a,140151)|0;soa(a,b,c,d);return}function jna(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+16|0;f=e;Gsb(f,a);a=pVa(c[f>>2]|0,b,d)|0;if(!(c[37104]|0)){yb=e;return a|0}Pg(a,b,d);yb=e;return a|0}function kna(a,b){a=a|0;b=b|0;var d=0,e=0;b=b+8|0;d=a+4|0;e=c[d>>2]|0;if((e|0)==(c[a+8>>2]|0)){_M(a,b);return}else{c[e>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+4;return}}function lna(a,b){a=a|0;b=b|0;var d=0;d=Wpb(c[b+16>>2]|0)|0;if(!d)return;if(!(dub(c[d+8>>2]|0,c[c[a>>2]>>2]|0)|0))return;c[c[a+4>>2]>>2]=b;return}function mna(b,d){b=b|0;d=d|0;var e=0,f=0;if((b|0)!=(d|0)){e=a[d+11>>0]|0;f=e<<24>>24<0;pM(b,f?c[d>>2]|0:d,f?c[d+4>>2]|0:e&255)}return}function nna(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+32|0;e=g;f=e;c=c+8|0;d=f+24|0;do{a[f>>0]=a[c>>0]|0;f=f+1|0;c=c+1|0}while((f|0)<(d|0));f=YE(b,e)|0;yb=g;return f|0}function ona(a,b){a=a|0;b=b|0;lLa(a,Hdb(c[b>>2]|0)|0);return}function pna(a,b){a=a|0;b=b|0;lLa(a,Idb(c[b>>2]|0)|0);return}function qna(a,b){a=a|0;b=b|0;lLa(a,Jdb(c[b>>2]|0)|0);return}function rna(a,b){a=a|0;b=b|0;lLa(a,Kdb(c[b>>2]|0)|0);return}function sna(a,b){a=a|0;b=b|0;lLa(a,Ldb(c[b>>2]|0)|0);return}function tna(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;_cb(a,b);IWa(a,140151)|0;asa(a,c,d);return}function una(a,b,d){a=a|0;b=b|0;d=d|0;a=c[(c[c[a+24>>2]>>2]|0)+(d<<2)>>2]|0;if((b|0)!=(d|0)){d=a;return d|0}if(!a)ma(104171,104084,809,140271);d=a+-1|0;return d|0}function vna(a){a=a|0;O0(a);return}function wna(a){a=a|0;var b=0;b=Wsa(a)|0;b=SEa(Sm(150452,b,P()|0)|0,58)|0;IWa(b,ala(c[a+16>>2]|0)|0)|0;return}function xna(a,b){a=a|0;b=b|0;Dlb(a,b);lB(a+-16+16|0,b);Dlb(a,0);return}function yna(a,b){a=a|0;b=b|0;b=ufb(c[b>>2]|0)|0;if(!(eCb(c[b+8>>2]|0)|0))return;Pm(a+48|0,b+8|0);return}function zna(a){a=a|0;var b=0,d=0;b=c[a+12>>2]|0;if(!b)ma(134846,134390,448,134833);d=c[a+20>>2]|0;if(!d)ma(134846,134390,448,134833);a=a+4|0;c[a>>2]=5;if((c[b+4>>2]|0)!=6?(c[d+4>>2]|0)!=6:0)return;c[a>>2]=6;return}function Ana(a){a=a|0;var b=0;if(!(c[a>>2]&128))b=1;else b=(c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0?2:1;b=Hb[c[a+40>>2]&255](a,0,b)|0;if((b|0)>=0)b=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)+(c[a+20>>2]|0)-(c[a+28>>2]|0)|0;return b|0}function Bna(a){a=a|0;var b=0;b=a+4|0;C7(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function Cna(a){a=a|0;QR(a,c[a+4>>2]|0);return}function Dna(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=a;a=b-e>>2;b=e;while(1){if(!a)break;g=(a|0)/2|0;e=b+(g<<2)|0;f=(c[e>>2]|0)>>>0>>0;a=f?a-(g+1)|0:g;b=f?e+4|0:b}return b|0}function Ena(a){a=a|0;var b=0,d=0;b=c[a+8>>2]|0;if(!b)ma(134859,134390,456,134833);d=c[a+12>>2]|0;if(!d)ma(134859,134390,456,134833);a=a+4|0;c[a>>2]=5;if((c[b+4>>2]|0)!=6?(c[d+4>>2]|0)!=6:0)return;c[a>>2]=6;return}function Fna(a,b,d){a=a|0;b=b|0;d=d|0;d=Cda(a,d)|0;return pVa(c[a+32>>2]|0,b,d)|0}function Gna(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;e=c[a>>2]|0;f=((c[d>>2]|0)-e|0)/24|0;if(f>>>0>>0){AF(a,b-f|0);return}if(f>>>0<=b>>>0)return;c[d>>2]=e+(b*24|0);return}function Hna(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-12|0;Vob(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function Ina(a){a=a|0;var b=0,d=0;b=mla(20)|0;d=a+4|0;c[b>>2]=43284;a=b+4|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];return b|0}function Jna(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Xeb(a)|0;c[a+4>>2]=e;c[a+24>>2]=c[b>>2];wba(a+8|0,d);return a|0}function Kna(a,b){a=a|0;b=b|0;lLa(a,feb(c[b>>2]|0)|0);return}function Lna(a,b){a=a|0;b=b|0;lLa(a,geb(c[b>>2]|0)|0);return}function Mna(a,b){a=a|0;b=b|0;lLa(a,heb(c[b>>2]|0)|0);return}function Nna(a,b){a=a|0;b=b|0;lLa(a,ieb(c[b>>2]|0)|0);return}function Ona(a,b){a=a|0;b=b|0;var c=0;Vkb(a,b);c=a+-16|0;MKa(c,b);MM(c,b);Vkb(a,0);return}function Pna(a,b){a=a|0;b=b|0;b=Efb(c[b>>2]|0)|0;if(!(eCb(c[b+8>>2]|0)|0))return;Pm(a+48|0,b+8|0);return}function Qna(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;_cb(a,56518);IWa(a,140151)|0;Ooa(a,b,c,d);return}function Rna(b){b=b|0;if(!(c[37104]|0)){b=(b|0)!=0;b=b&1;a[148265]=b;return}IWa(Zm(IWa(150452,67174)|0,b)|0,56341)|0;b=(b|0)!=0;b=b&1;a[148265]=b;return}function Sna(a){a=a|0;var b=0;b=zqb(a)|0;if(!b){b=(tfb(a)|0)+12|0;b=c[b>>2]|0;return b|0}else{b=b+8|0;b=c[b>>2]|0;return b|0}return 0}function Tna(a,b){a=a|0;b=b|0;if(!(dub(c[b>>2]|0,c[c[a>>2]>>2]|0)|0))return;if(!(dub(c[b+4>>2]|0,c[c[a+4>>2]>>2]|0)|0))return;c[c[a+8>>2]>>2]=c[b+8>>2];return}function Una(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-12|0;c[d>>2]=e;Vob(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function Vna(a,b){a=a|0;b=b|0;var d=0;Qua(a,74829);d=rrb(b,1)|0;if(zgb(c[d>>2]|0)|0)return;hfa(a,32);d=rrb(b,1)|0;Qua(a,e7a(WCb(c[d>>2]|0)|0)|0);return}function Wna(a){a=a|0;var b=0,d=0;b=c[a+12>>2]|0;if(!b)ma(134963,134390,500,134833);d=c[a+16>>2]|0;if(!d)ma(134963,134390,500,134833);a=a+4|0;c[a>>2]=5;if((c[b+4>>2]|0)!=6?(c[d+4>>2]|0)!=6:0)return;c[a>>2]=6;return}function Xna(a){a=a|0;c[a>>2]=41516;Pdb(a+76|0);Rxa(a+56|0);Mab(a);return}function Yna(){var a=0,b=0,d=0;a=mla(60)|0;b=a;d=b+60|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));n=0;ca(530,a|0);d=n;n=0;if(d&1){d=sa()|0;P()|0;RCb(a);Ea(d|0)}else return a|0;return 0}function Zna(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;b=(c[d>>2]|0)+12|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function _na(a){a=a|0;var b=0;switch(c[a>>2]|0){case 2:{Mzb(c[a+8>>2]|0);break}case 5:{b=c[a+8>>2]|0;if(b|0){Pdb(b);RCb(b)}break}default:{}}c[a>>2]=3;h[a+8>>3]=0.0;return}function $na(a,b){a=a|0;b=b|0;lLa(a,Keb(c[b>>2]|0)|0);return}function aoa(a,b){a=a|0;b=b|0;lLa(a,Leb(c[b>>2]|0)|0);return}function boa(a,b){a=a|0;b=b|0;lLa(a,Deb(c[b>>2]|0)|0);return}function coa(a,b,d){a=a|0;b=b|0;d=d|0;return uga(a,b,c[d+8>>2]|0)|0}function doa(a){a=a|0;ZR(a,c[a+4>>2]|0);return}function eoa(a){a=a|0;var b=0,d=0,e=0;b=mla(12)|0;c[b>>2]=41756;e=a+4|0;d=c[e+4>>2]|0;a=b+4|0;c[a>>2]=c[e>>2];c[a+4>>2]=d;return b|0}function foa(a,b){a=a|0;b=b|0;var d=0;Qua(a,134443);d=rrb(b,1)|0;if(zgb(c[d>>2]|0)|0)return;hfa(a,32);d=rrb(b,1)|0;Qua(a,e7a(WCb(c[d>>2]|0)|0)|0);return}function goa(a,b){a=a|0;b=b|0;var d=0;d=mla(28)|0;n=0;da(74,d|0,b|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;RCb(d);Ea(b|0)}else{c[a>>2]=d;return}}function hoa(a){a=a|0;return ZE(a)|0}function ioa(a){a=a|0;return Rka(a)|0}function joa(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-16|0;Htb(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function koa(a,b,d){a=a|0;b=b|0;d=d|0;GGa(a+4|0,c[b>>2]|0,c[d>>2]|0);return}function loa(a,b){a=a|0;b=b|0;Vkb(a,b);ZZa(a+-16+16|0,b);Vkb(a,0);return}function moa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;_cb(a,56518);IWa(a,140151)|0;tpa(a,b,c,d);return}function noa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a+84|0;g=c[e>>2]|0;h=d+256|0;f=OA(g,0,h)|0;f=(f|0)==0?h:f-g|0;d=f>>>0>>0?f:d;Uv(b|0,g|0,d|0)|0;c[a+4>>2]=g+d;b=g+f|0;c[a+8>>2]=b;c[e>>2]=b;return d|0}function ooa(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-16|0;c[d>>2]=e;Htb(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function poa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Hhb(c[a+4>>2]|0)|0;c[e+8>>2]=d;d=$db(a,Vr(b,1)|0)|0;c[e+12>>2]=d;tu(e);return e|0}function qoa(b,d){b=b|0;d=d|0;if(a[b+32>>0]&1)p8(c[b+24>>2]|0,d,c[b+40>>2]|0);dj(b,d);return}function roa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;R9(a,b);IWa(a,140151)|0;rua(a,c,d);return}function soa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;R9(a,b);IWa(a,140151)|0;kua(a,c,d);return}function toa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a+4|0;a=d-b|0;if((a|0)<=0)return;Uv(c[e>>2]|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+(((a|0)/12|0)*12|0);return}function uoa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;while(1){if(!b)break;e=(c[b+16>>2]|0)>>>0>>0;d=e?d:b;b=c[(e?b+4|0:b)>>2]|0}return d|0}function voa(a,b){a=a|0;b=b|0;lLa(a,cfb(c[b>>2]|0)|0);return}function woa(a,b){a=a|0;b=b|0;lLa(a,Teb(c[b>>2]|0)|0);return}function xoa(a,b){a=a|0;b=b|0;lLa(a,Ueb(c[b>>2]|0)|0);return}function yoa(a,b){a=a|0;b=b|0;lLa(a,Veb(c[b>>2]|0)|0);return}function zoa(a,b){a=a|0;b=b|0;Vkb(a,b);s_a(a+-16+16|0,b);Vkb(a,0);return}function Aoa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;Vq(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function Boa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;return Fq(g,b,d,e,f,WCb(c[a+32>>2]|0)|0)|0}function Coa(a,b){a=a|0;b=b|0;switch(c[a+4>>2]|0){case 3:{b=Hhb(b)|0;c[b+8>>2]=43;c[b+12>>2]=a;c[b+4>>2]=4;return b|0}case 4:{b=a;return b|0}default:ma(71594,71530,127,71612)}return 0}function Doa(a){a=a|0;pW(a,c[a+4>>2]|0);return}function Eoa(a,b){a=a|0;b=b|0;var c=0;c=a+16|0;IW(c,1676,b);Sk(a,b);IW(c,1677,b);return}function Foa(a,b){a=a|0;b=b|0;var d=0;d=mla(20)|0;n=0;da(2032,d|0,b|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;RCb(d);Ea(b|0)}else{c[a>>2]=d;return}}function Goa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=yb;yb=yb+16|0;e=h;c[e>>2]=c[d>>2];e=NK(0,0,b,e)|0;if((e|0)>=0?(f=e+1|0,g=qc(f)|0,c[a>>2]=g,(g|0)!=0):0)a=NK(g,f,b,d)|0;else a=-1;yb=h;return a|0}function Hoa(a,b){a=a|0;b=b|0;var d=0;c[a+24>>2]=b;c[a+16>>2]=(b|0)==0&1;c[a+20>>2]=0;c[a+4>>2]=4098;c[a+12>>2]=0;c[a+8>>2]=6;d=a+28|0;b=a+32|0;a=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));rwa(d);return}function Ioa(a,b){a=a|0;b=b|0;lLa(a,dfb(c[b>>2]|0)|0);return}function Joa(a,b){a=a|0;b=b|0;lLa(a,efb(c[b>>2]|0)|0);return}function Koa(a,b){a=a|0;b=b|0;lLa(a,ffb(c[b>>2]|0)|0);return}function Loa(a,b){a=a|0;b=b|0;lLa(a,tfb(c[b>>2]|0)|0);return}function Moa(a,b){a=a|0;b=b|0;lLa(a,ufb(c[b>>2]|0)|0);return}function Noa(a,b,c){a=a|0;b=b|0;c=c|0;Ht(a,b,c);return}function Ooa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;zfb(a,b);IWa(a,140151)|0;rua(a,c,d);return}function Poa(b){b=b|0;var c=0,d=0,e=0;d=(alb(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=(alb(b,120)|0)==0;d=e?d:d|128;b=(alb(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 Qoa(a,b){a=a|0;b=b|0;var d=0,e=0;CSa(a);c[a>>2]=c[b>>2];d=b+4|0;c[a+4>>2]=c[d>>2];e=b+8|0;c[a+8>>2]=c[e>>2];c[e>>2]=0;c[d>>2]=0;c[b>>2]=0;return}function Roa(a){a=a|0;var b=0;b=a+4|0;l8(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function Soa(a){a=a|0;ZS(a,c[a+4>>2]|0);return}function Toa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;R9(a,b);IWa(a,140151)|0;$ua(a,c,d);return}function Uoa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;R9(a,b);IWa(a,140151)|0;ava(a,c,d);return}function Voa(a){a=a|0;var b=0;b=a+4|0;k8(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function Woa(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-40|0;c[d>>2]=e;ivb(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function Xoa(a,b){a=a|0;b=b|0;lLa(a,Efb(c[b>>2]|0)|0);return}function Yoa(a,b){a=a|0;b=b|0;lLa(a,vfb(c[b>>2]|0)|0);return}function Zoa(a,b){a=a|0;b=b|0;lLa(a,wfb(c[b>>2]|0)|0);return}function _oa(a,b){a=a|0;b=b|0;lLa(a,xfb(c[b>>2]|0)|0);return}function $oa(a,b){a=a|0;b=b|0;lLa(a,Ffb(c[b>>2]|0)|0);return}function apa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;Xq(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function bpa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;Yq(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function cpa(a,b,c){a=a|0;b=b|0;c=c|0;_cb(a,56518);IWa(a,140151)|0;Qra(a,b,c);return}function dpa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;e=c[a>>2]|0;f=(c[d>>2]|0)-e>>2;if(f>>>0>>0){lH(a,b-f|0);return}if(f>>>0<=b>>>0)return;c[d>>2]=e+(b<<2);return}function epa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;e=c[a>>2]|0;f=(c[d>>2]|0)-e>>3;if(f>>>0>>0){PF(a,b-f|0);return}if(f>>>0<=b>>>0)return;c[d>>2]=e+(b<<3);return}function fpa(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a>>2]|0;Chb(a+8|0);RCb(a);a=b}return}function gpa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=mla(24)|0;c[e+4>>2]=0;c[e+8>>2]=0;c[e>>2]=44632;f7a(e+12|0,b,c[d>>2]|0);c[a>>2]=e+12;c[a+4>>2]=e;return}function hpa(){var a=0,b=0;a=oa(8)|0;n=0;da(67,a|0,140832);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(a|0);Ea(b|0)}else{c[a>>2]=50808;za(a|0,39608,473)}}function ipa(){var a=0,b=0;a=oa(8)|0;n=0;da(67,a|0,140832);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(a|0);Ea(b|0)}else{c[a>>2]=50788;za(a|0,39592,473)}}function jpa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;CN(a,b);b=b+16|0}jvb()}function kpa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Aj(b,d,e,f,4)|0;if(!(c[e>>2]&4))c[a>>2]=d+-1900;return}function lpa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Ti(b,d,e,f,4)|0;if(!(c[e>>2]&4))c[a>>2]=d+-1900;return}function mpa(a,b){a=a|0;b=b|0;if(!b){IWa(a,53456)|0;return a|0}else{IWa(SEa(a,36)|0,b)|0;return a|0}return 0}function npa(a,b){a=a|0;b=b|0;lLa(a,Gfb(c[b>>2]|0)|0);return}function opa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;Zq(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function ppa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;_q(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function qpa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;$q(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function rpa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;br(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function spa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;FLa(a,b);IWa(a,140151)|0;_ua(a,c,d);return}function tpa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;zfb(a,b);IWa(a,140151)|0;bva(a,c,d);return}function upa(a,b,c){a=a|0;b=b|0;c=c|0;_cb(a,56518);IWa(a,140151)|0;bsa(a,b,c);return}function vpa(b,c){b=b|0;c=+c;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+48|0;g=h+24|0;e=h;kEa(e,c);d=g;f=d+24|0;do{a[d>>0]=a[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(f|0));OI(b,g);yb=h;return}function wpa(b,c){b=b|0;c=+c;var d=0,e=0,f=0,g=0,h=0;h=yb;yb=yb+48|0;g=h+24|0;e=h;pUa(e,c);d=g;f=d+24|0;do{a[d>>0]=a[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(f|0));OI(b,g);yb=h;return}function xpa(a){a=a|0;UW(a,c[a+4>>2]|0);return}function ypa(a){a=a|0;Dda(a);return}function zpa(){var a=0,b=0;a=oa(8)|0;n=0;da(67,a|0,139e3);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(a|0);Ea(b|0)}else{c[a>>2]=50808;za(a|0,39608,473)}}function Apa(){var a=0,b=0;a=oa(8)|0;n=0;da(67,a|0,139e3);b=n;n=0;if(b&1){b=sa()|0;P()|0;va(a|0);Ea(b|0)}else{c[a>>2]=50788;za(a|0,39592,473)}}function Bpa(a,b){a=a|0;b=b|0;var d=0;c[b>>2]=41756;d=a+4|0;a=c[d+4>>2]|0;b=b+4|0;c[b>>2]=c[d>>2];c[b+4>>2]=a;return}function Cpa(b,d){b=b|0;d=d|0;var e=0;e=Mcb(d)|0;c[b>>2]=e;c[b+4>>2]=c[d+4>>2];a[b+8>>0]=0;c[b+12>>2]=c[d+12>>2];b=d+8|0;if(!(a[b>>0]&1)){a[b>>0]=1;return}else ma(81534,81381,48,81547)}function Dpa(a,b,d){a=a|0;b=b|0;d=d|0;a=a+4|0;while(1){if((b|0)==(d|0))break;reb(c[a>>2]|0,b);c[a>>2]=(c[a>>2]|0)+16;b=b+16|0}return}function Epa(a,b,d){a=a|0;b=b|0;d=d|0;if((d|0)!=1&(d|0)<257)cnb(a,d);else{c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;D8(a,136107,Zzb(136107)|0)}return}function Fpa(a,b){a=a|0;b=b|0;LB(a,Keb(c[b>>2]|0)|0);return}function Gpa(a,b){a=a|0;b=b|0;gt(a,Leb(c[b>>2]|0)|0);return}function Hpa(a,b){a=a|0;b=b|0;Dlb(a,b);PB(a+-16+16|0,b);Dlb(a,0);return}function Ipa(a){a=a|0;Pdb(a+24|0);Z_a(a);return}function Jpa(a){a=a|0;var b=0;g6a(a);c[a>>2]=43328;b=a+56|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;g[a+84>>2]=1.0;return}function Kpa(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-16|0;Nrb(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function Lpa(a,b){a=a|0;b=b|0;a=a+4|0;c[b>>2]=43284;b=b+4|0;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2];return}function Mpa(a,b){a=a|0;b=b|0;lLa(a,Tfb(c[b>>2]|0)|0);return}function Npa(a,b,d){a=a|0;b=b|0;d=d|0;if((d|0)!=9){d=0;return d|0}d=Igb(c[a+4>>2]|0)|0;a=IF(a)|0;c[d+8>>2]=a;Mzb(d);c[b>>2]=d;d=1;return d|0}function Opa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;_cb(a,b);IWa(a,140151)|0;vva(a,c,d);return}function Ppa(a,b,d){a=a|0;b=b|0;d=d|0;a=a+4|0;while(1){if((b|0)==(d|0))break;Wbb(c[a>>2]|0,b);c[a>>2]=(c[a>>2]|0)+16;b=b+16|0}return}function Qpa(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-16|0;c[d>>2]=e;Nrb(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function Rpa(a){a=a|0;var b=0;b=c[a+4>>2]|0;if(!b){while(1){b=c[a+8>>2]|0;if((a|0)==(c[b>>2]|0))break;a=b}return b|0}else{while(1){a=c[b>>2]|0;if(!a)break;b=a}return b|0}return 0}function Spa(a){a=a|0;var b=0,d=0;b=mla(16)|0;d=a+4|0;c[b>>2]=43156;a=b+4|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];return b|0}function Tpa(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Iva(a,Uha(a,b,c)|0,d,e,f,g)|0}function Upa(a,b){a=a|0;b=b|0;Dlb(a,b);VB(a+-16+16|0,b);Dlb(a,0);return}function Vpa(a,b){a=a|0;b=b|0;Dlb(a,b);WB(a+-16+16|0,b);Dlb(a,0);return}function Wpa(a,b){a=a|0;b=b|0;Dlb(a,b);XB(a+-16+16|0,b);Dlb(a,0);return}function Xpa(a,b){a=a|0;b=b|0;Dlb(a,b);YB(a+-16+16|0,b);Dlb(a,0);return}function Ypa(a,b){a=a|0;b=b|0;Dlb(a,b);ZB(a+-16+16|0,b);Dlb(a,0);return}function Zpa(a,b){a=a|0;b=b|0;Vkb(a,b);sfa(a+-16|0,b);Vkb(a,0);return}function _pa(a,b){a=a|0;b=b|0;Dlb(a,b);LA(a+-16+16|0,b);Dlb(a,0);return}function $pa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;dr(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function aqa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;er(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function bqa(a){a=a|0;var b=0,d=0;b=yb;yb=yb+16|0;d=b;a=tI(c[a+28>>2]|0,-3)|0;Pwb(d,80);YA(a,c[d>>2]|0)|0;yb=b;return}function cqa(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+48|0;f=g+24|0;d=g;M0a(d,c);c=f;e=c+24|0;do{a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));OI(b,f);yb=g;return}function dqa(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(!d)return;e=a+4|0;b=c[e>>2]|0;while(1){if((d|0)==(b|0))break;f=b+-24|0;Aeb(f);b=f}c[e>>2]=d;RCb(c[a>>2]|0);return}function eqa(b){b=b|0;if(a[b+72>>0]&1)BM(IWa(150620,113945)|0);b=b+68|0;Xt(c[b>>2]|0,1836278016);Xt(c[b>>2]|0,1);return}function fqa(a){a=a|0;c[a+4>>2]=c[a>>2];eha(a+12|0);cma(a+24|0);return}function gqa(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;b=b+12|0;pT(e,a,c[b>>2]|0);lNa(e);Pwb(c[a+16>>2]|0,c[b>>2]|0);yb=d;return}function hqa(a){a=a|0;var b=0;b=c[a+40>>2]|0;if(c[b+116>>2]|0)dM(c[a+24>>2]|0,(c[b+108>>2]|0)+16|0);tI(c[a+28>>2]|0,11)|0;return}function iqa(a){a=a|0;I1(a);return}function jqa(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;b=(c[d>>2]|0)+12|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function kqa(a,b,d){a=a|0;b=b|0;d=d|0;a=a+4|0;while(1){if((b|0)==(d|0))break;gma(c[a>>2]|0,b);c[a>>2]=(c[a>>2]|0)+24;b=b+24|0}return}function lqa(a,b){a=a|0;b=b|0;b=Mba(a,b)|0;if((b|0)==(a+4|0))return;lZ(a,b)|0;return}function mqa(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((b|0)==(e|0))break;e=e+-24|0;c[d>>2]=e;Aeb(e)}a=c[a>>2]|0;if(!a)return;RCb(a);return}function nqa(a,b){a=a|0;b=b|0;E6(a,Keb(c[b>>2]|0)|0);return}function oqa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;DM(a,b);b=b+16|0}return}function pqa(a,b){a=a|0;b=b|0;Vkb(a,b);f1a(a+-16+16|0,b);Vkb(a,0);return}function qqa(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;b=(oC(a+88|0,e)|0)!=0;yb=d;return b|0}function rqa(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;a=Fm((c[37289]|0)+(a*20|0)|0,e)|0;yb=d;return c[a>>2]|0}function sqa(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;d=b+84|0;a[d>>0]=1;e=b+16|0;f=1;while(1){if(!(f&1))break;a[d>>0]=0;Mya(b);U5a(e,c);f=a[d>>0]|0}return}function tqa(a,b){a=a|0;b=b|0;var d=0;d=thb(c[a+4>>2]|0)|0;if((xmb(b)|0)>>>0<=1)return d|0;b=$db(a,Vr(b,1)|0)|0;c[d+8>>2]=b;return d|0}function uqa(a){a=a|0;var b=0,d=0;d=(c[a+4>>2]|0)-(c[a>>2]|0)>>2;while(1){b=d+-1|0;if((d|0)<=0)break;qo(c[(c[a>>2]|0)+(b<<2)>>2]|0);d=b}return}function vqa(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=yb;yb=yb+48|0;f=g+24|0;d=g;Bqb(d,c);c=f;e=c+24|0;do{a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));OI(b,f);yb=g;return}function wqa(a,b){a=a|0;b=b|0;c[a+28>>2]=b;rHa(a+32|0);LM(a,b+44|0);return}function xqa(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,c[b>>2]^c[d>>2]);return}case 2:{Heb(a,c[b>>2]^c[d>>2],c[b+4>>2]^c[d+4>>2]);return}default:ma(141129,111484,698,112077)}}function yqa(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,c[b>>2]&c[d>>2]);return}case 2:{Heb(a,c[b>>2]&c[d>>2],c[b+4>>2]&c[d+4>>2]);return}default:ma(141129,111484,682,112068)}}function zqa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;GM(a,b);b=b+16|0}return}function Aqa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d;f=c[a>>2]|0;b=pA(a,Vr(b,1)|0)|0;c[e>>2]=b;apb(f,e);yb=d;return}function Bqa(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a>>2]|0;Z5a(a,b);d=a+4|0;b=0;while(1){if(b>>>0>=(c[d>>2]|0)>>>0)break;c[(c[a>>2]|0)+(b<<2)>>2]=c[e+(b<<2)>>2];b=b+1|0}return}function Cqa(a,b){a=a|0;b=b|0;var d=0;if((ZBb()|0)>>>0>>0)Apa();else{b=((b+-1|0)>>>5)+1|0;d=mla(b<<2)|0;c[a>>2]=d;c[a+4>>2]=0;c[a+8>>2]=b;return}}function Dqa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;e=c[a>>2]|0;f=(c[d>>2]|0)-e>>2;if(f>>>0>>0){KH(a,b-f|0);return}if(f>>>0<=b>>>0)return;c[d>>2]=e+(b<<2);return}function Eqa(a){a=a|0;var b=0;b=a+4|0;F9(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function Fqa(a){a=a|0;var b=0,d=0,e=0;b=mla(12)|0;c[b>>2]=41800;e=a+4|0;d=c[e+4>>2]|0;a=b+4|0;c[a>>2]=c[e>>2];c[a+4>>2]=d;return b|0}function Gqa(a,b,d){a=a|0;b=b|0;d=d|0;switch(c[b+16>>2]|0){case 1:{Bqb(a,c[b>>2]|c[d>>2]);return}case 2:{Heb(a,c[b>>2]|c[d>>2],c[b+4>>2]|c[d+4>>2]);return}default:ma(141129,111484,690,112073)}}function Hqa(a,b){a=a|0;b=b|0;Vkb(a,b);v_a(a,b);Vkb(a,0);return}function Iqa(b,d){b=b|0;d=d|0;if(a[b+12>>0]&1)BM(IWa(150620,112719)|0);b=rl(b)|0;c[d+8>>2]=b;dmb(d);return}function Jqa(a){a=a|0;a=a+16|0;while(1){if((Av(c[a>>2]|0)|0)!=32?(Av(c[a>>2]|0)|0)!=10:0)break;St(c[a>>2]|0)|0}return}function Kqa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ica(a,b,c,d)|0}function Lqa(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;b=iu(b)|0;c[e>>2]=b;a=O8(a+48|0,e)|0;c[a>>2]=(c[a>>2]|0)+1;yb=d;return}function Mqa(a,b){a=a|0;b=b|0;Dlb(a,b);qC(a+-16+16|0,b);Dlb(a,0);return}function Nqa(a,b){a=a|0;b=b|0;Vkb(a,b);K1a(a+-16+16|0,b);Vkb(a,0);return}function Oqa(a,b){a=a|0;b=b|0;Vkb(a,b);L1a(a+-16+16|0,b);Vkb(a,0);return}function Pqa(a,b){a=a|0;b=b|0;Vkb(a,b);N1a(a+-16+16|0,b);Vkb(a,0);return}function Qqa(a,b){a=a|0;b=b|0;Vkb(a,b);O1a(a+-16+16|0,b);Vkb(a,0);return}function Rqa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;jr(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function Sqa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;switch(b|0){case 6:case 2:case 1:return;default:{}}T2(a,d,c,e);return}function Tqa(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return dh(a,c[b>>2]|0,c[d>>2]|0,e,f,g,137163,137171)|0}function Uqa(a,b){a=a|0;b=b|0;b=(Ueb(c[b>>2]|0)|0)+8|0;Vba(a,c[b>>2]|0);return}function Vqa(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(((c-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==112:0){e=b+2|0;d=ac(e,c,d)|0;b=(d|0)==(e|0)?b:d}return b|0}function Wqa(b,d){b=b|0;d=d|0;var e=0,f=0;e=a[d+11>>0]|0;f=e<<24>>24<0;return ep(b,f?c[d>>2]|0:d,f?c[d+4>>2]|0:e&255)|0}function Xqa(a,b,d){a=a|0;b=b|0;d=d|0;a=a+8|0;while(1){if((b|0)==(d|0))break;c[c[a>>2]>>2]=c[b>>2];c[a>>2]=(c[a>>2]|0)+4;b=b+4|0}return}function Yqa(a){a=a|0;W1(a);return}function Zqa(a){a=a|0;var b=0,d=0;_E(a);d=c[a+8>>2]|0;b=c[a+4>>2]|0;while(1){if((b|0)==(d|0))break;RCb(c[b>>2]|0);b=b+4|0}Mwa(a);return}function _qa(a,b){a=a|0;b=b|0;var d=0;d=rrb(a,0)|0;if(hXa(c[d>>2]|0,c[37197]|0)|0){d=rrb(a,1)|0;KJa(WCb(c[d>>2]|0)|0,b)|0;return}else ma(51301,74885,1399,51319)}function $qa(a,b){a=a|0;b=b|0;var d=0;d=rrb(a,0)|0;if(hXa(c[d>>2]|0,c[37274]|0)|0){d=rrb(a,1)|0;KJa(WCb(c[d>>2]|0)|0,b)|0;return}else ma(51501,74885,1642,51519)}function ara(a,b){a=a|0;b=b|0;iQ(a,Keb(c[b>>2]|0)|0);return}function bra(a,b){a=a|0;b=b|0;Dlb(a,b);kB(a+-16+16|0,b);Dlb(a,0);return}function cra(a,b){a=a|0;b=b|0;var d=0;d=Raa(c[b+44>>2]|0)|0;b=(pm(c[a+44>>2]|0,b+8|0)|0)+4|0;c[b>>2]=d;return}function dra(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;kr(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function era(a,b,d){a=a|0;b=b|0;d=d|0;if((d|0)==6?f9(a+44|0,b)|0:0)return;b=G7(a+44|0,b)|0;c[b>>2]=d;return}function fra(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a>>2]|0;ucb(a,b);d=a+4|0;b=0;while(1){if(b>>>0>=(c[d>>2]|0)>>>0)break;c[(c[a>>2]|0)+(b<<2)>>2]=c[e+(b<<2)>>2];b=b+1|0}return}function gra(a,b,c){a=a|0;b=b|0;c=c|0;_cb(a,56518);IWa(a,140151)|0;rua(a,b,c);return}function hra(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return Lh(a,c[b>>2]|0,c[d>>2]|0,e,f,g,31440,31472)|0}function ira(a,b,d){a=a|0;b=b|0;d=d|0;if((d|0)>256){c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;D8(a,138736,Zzb(138736)|0)}else cnb(a,d);return}function jra(a,b){a=a|0;b=b|0;var d=0;d=rrb(a,0)|0;if(hXa(c[d>>2]|0,c[37210]|0)|0){d=rrb(a,2)|0;KJa(WCb(c[d>>2]|0)|0,b)|0;return}else ma(51381,74885,1436,51397)}function kra(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;Uq(f,b,5,d,e,WCb(c[a+32>>2]|0)|0);return}function lra(a,b){a=a|0;b=b|0;b=Qqb(b)|0;if(!b)return;if(!(dub(c[b+8>>2]|0,c[a+36>>2]|0)|0))return;if(!(c[b+16>>2]|0))return;a=a+48|0;c[a>>2]=(c[a>>2]|0)+1;return}function mra(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+32|0;d=c[e>>2]|0;c[e>>2]=d+1;if(!d)c[a+36>>2]=6;if(!b){c[a+36>>2]=0;return}b=c[b+4>>2]|0;if((b|0)==6)return;c[a+36>>2]=b;return}function nra(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;Gsb(e,a);a=qeb(c[e>>2]|0,b)|0;if(!(c[37104]|0)){yb=d;return a|0}Qg(a,56887,b);yb=d;return a|0}function ora(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((b|0)==(e|0))break;f=e+-20|0;c[d>>2]=f;e=f}a=c[a>>2]|0;if(!a)return;RCb(a);return}function pra(a,b,d){a=a|0;b=b|0;d=d|0;if((d|0)>256){c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;D8(a,138879,Zzb(138879)|0)}else cnb(a,d);return}function qra(a,b){a=a|0;b=b|0;Dlb(a,b);CC(a+-16+16|0,b);Dlb(a,0);return}function rra(a,b){a=a|0;b=b|0;Vkb(a,b);Q2a(a+-16+16|0,b);Vkb(a,0);return}function sra(a,b){a=a|0;b=b|0;switch(b|0){case 0:{Obb(c[a+4>>2]|0,119881)|0;return}case 1:{Obb(c[a+4>>2]|0,120995)|0;return}default:return}}function tra(a,b){a=a|0;b=b|0;var d=0;tI(c[a+28>>2]|0,11)|0;b=a+60|0;d=c[b>>2]|0;if((c[a+56>>2]|0)==(d|0))ma(113289,112765,396,113447);else{c[b>>2]=d+-4;return}}function ura(a){a=a|0;kV(a,c[a+4>>2]|0);return}function vra(a){a=a|0;lV(a,c[a+4>>2]|0);return}function wra(a){a=a|0;mV(a,c[a+4>>2]|0);return}function xra(a){a=a|0;nV(a,c[a+4>>2]|0);return}function yra(a){a=a|0;oV(a,c[a+4>>2]|0);return}function zra(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=mla(28)|0;c[e+4>>2]=0;c[e+8>>2]=0;c[e>>2]=44700;uab(e+12|0,b,c[d>>2]|0);c[a>>2]=e+12;c[a+4>>2]=e;return}function Ara(b,c){b=b|0;c=c|0;var d=0,e=0;while(1){d=a[c>>0]|0;if(!(d<<24>>24)){c=5;break}e=a[b>>0]|0;if(!(e<<24>>24?e<<24>>24==d<<24>>24:0)){b=0;c=5;break}b=b+1|0;c=c+1|0}if((c|0)==5)return b|0;return 0}function Bra(a,b){a=a|0;b=b|0;var d=0;d=rrb(b,1)|0;Ota(a,c[d>>2]|0,b,-1);hfa(a,44);Alb(a);d=rrb(b,2)|0;Ota(a,c[d>>2]|0,b,1);return}function Cra(a,b){a=a|0;b=b|0;var d=0;d=b+8|0;cj(a,c[d>>2]|0)|0;d=sm(a+64|0,d)|0;c[d>>2]=b;return a|0}function Dra(a,b){a=a|0;b=b|0;b=iqb(b)|0;if(!b)return;if(!(eCb(c[b+4>>2]|0)|0))ma(110770,104084,253,110814);m4a(b,0);Pwb(c[a+16>>2]|0,b);return}function Era(a){a=a|0;var b=0;switch(a|0){case 3:case 1:{b=4;break}case 2:{b=8;break}case 4:{b=8;break}case 5:{b=16;break}case 6:case 0:{ma(141129,126654,45,126696);break}default:ma(141129,126654,47,126696)}return b|0}function Fra(a,b){a=a|0;b=b|0;var d=0;b=a+60|0;d=c[b>>2]|0;if((c[a+56>>2]|0)==(d|0))ma(113289,112765,485,113309);else{c[b>>2]=d+-4;tI(c[a+28>>2]|0,11)|0;return}}function Gra(b,d){b=b|0;d=d|0;if(a[b+33>>0]&1)BM(IWa(150620,112703)|0);tI(c[b+28>>2]|0,15)|0;return}function Hra(a,b){a=a|0;b=b|0;var d=0;switch(b|0){case 1:{d=148936;break}case 2:{d=149e3;break}default:ma(74331,74257,237,74374)}d=c[d>>2]|0;return mv(a,d,ysb(0.0)|0)|0}function Ira(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=mla(b)|0;c[a>>2]=e;d=e+d|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+b;return}function Jra(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=a;a=b-a>>2;while(1){if(!a)break;b=(a|0)/2|0;g=e+(b<<2)|0;f=(c[g>>2]|0)>>>0>>0;e=f?g+4|0:e;a=f?a+-1-b|0:b}return e|0}function Kra(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[b+4>>2]|0;d=c[b+16>>2]|0;e=f+(d>>>10<<2)|0;if((c[b+8>>2]|0)==(f|0))b=0;else b=(c[e>>2]|0)+((d&1023)<<2)|0;c[a>>2]=e;c[a+4>>2]=b;return}function Lra(a,b){a=a|0;b=b|0;Vkb(a,b);m3a(a+-16+16|0,b);Vkb(a,0);return}function Mra(a,b){a=a|0;b=b|0;Vkb(a,b);o3a(a+-16+16|0,b);Vkb(a,0);return}function Nra(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;FH(d+8|0,a+52|0,b,e);yb=d;return}function Ora(a,b,c){a=a|0;b=b|0;c=c|0;_cb(a,56518);IWa(a,140151)|0;_ua(a,b,c);return}function Pra(a,b,c){a=a|0;b=b|0;c=c|0;_cb(a,56518);IWa(a,140151)|0;$ua(a,b,c);return}function Qra(a,b,c){a=a|0;b=b|0;c=c|0;r9a(a,b);IWa(a,140151)|0;Zbb(a,c);return}function Rra(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((b|0)==(e|0))break;f=e+-12|0;c[d>>2]=f;e=f}a=c[a>>2]|0;if(!a)return;RCb(a);return}function Sra(a,b){a=a|0;b=b|0;switch(c[b+16>>2]|0){case 1:{kEa(a,+((c[b>>2]|0)>>>0));return}case 2:{kEa(a,+((c[b>>2]|0)>>>0)+4294967296.0*+((c[b+4>>2]|0)>>>0));return}default:ma(141129,111484,313,111918)}}function Tra(a,b){a=a|0;b=b|0;switch(c[b+16>>2]|0){case 1:{pUa(a,+((c[b>>2]|0)>>>0));return}case 2:{pUa(a,+((c[b>>2]|0)>>>0)+4294967296.0*+((c[b+4>>2]|0)>>>0));return}default:ma(141129,111484,301,111888)}}function Ura(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;Wq(f,b,5,d,e,WCb(c[a+32>>2]|0)|0);return}function Vra(b,c){b=b|0;c=c|0;b=b+148|0;if(a[b>>0]&1)return;a[b>>0]=1;BM(IWa(IWa(150620,51410)|0,c)|0);return}function Wra(a){a=a|0;var b=0,d=0;d=yb;yb=yb+16|0;b=d;if(c[37104]|0)IWa(150452,66955)|0;Pwb(b,31);b=(uk(a,c[b>>2]|0,2)|0)&1;yb=d;return b|0}function Xra(a,b){a=a|0;b=b|0;b=Cda(a,b)|0;return qeb(c[a+32>>2]|0,b)|0}function Yra(a,b){a=a|0;b=b|0;Dlb(a,b);qB(a+-16+16|0,b);Dlb(a,0);return}function Zra(a,b){a=a|0;b=b|0;Vkb(a,b);K3a(a+-16+16|0,b);Vkb(a,0);return}function _ra(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;cr(f,b,d,e,128943,WCb(c[a+32>>2]|0)|0);return}function $ra(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;nr(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function asa(a,b,c){a=a|0;b=b|0;c=c|0;FLa(a,b);IWa(a,140151)|0;I6a(a,c);return}function bsa(a,b,c){a=a|0;b=b|0;c=c|0;r9a(a,b);IWa(a,140151)|0;rcb(a,c);return}function csa(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((b|0)==(e|0))break;f=e+-16|0;c[d>>2]=f;e=f}a=c[a>>2]|0;if(!a)return;RCb(a);return}function dsa(a,b){a=a|0;b=b|0;a=a+4|0;c[b>>2]=43156;b=b+4|0;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];return}function esa(a,b){a=a|0;b=b|0;var d=0;c[b>>2]=41800;d=a+4|0;a=c[d+4>>2]|0;b=b+4|0;c[b>>2]=c[d>>2];c[b+4>>2]=a;return}function fsa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;ar(f,b,1,d,e,WCb(c[a+32>>2]|0)|0);return}function gsa(a,b){a=a|0;b=b|0;a=c[(c[a+4>>2]|0)+36>>2]|0;Sb[c[(c[a>>2]|0)+20>>2]&8191](a,b);return}function hsa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a+4|0;a=d-b|0;if((a|0)<=0)return;Uv(c[e>>2]|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+(a>>3<<3);return}function isa(a,b){a=a|0;b=b|0;switch(c[b+16>>2]|0){case 3:{pUa(a,+isb(+(+L8a(b))));return}case 4:{kEa(a,+isb(+(+K8a(b))));return}default:ma(141129,111484,461,112025)}}function jsa(a){a=a|0;do if(a<<24>>24>47)if(a<<24>>24<58)a=1;else{if(a<<24>>24>96){if(a<<24>>24<103){a=1;break}}else if(a<<24>>24<=64){a=0;break}a=a<<24>>24<71}else a=0;while(0);return a|0}function ksa(a,b){a=a|0;b=b|0;Vkb(a,b);G1(a+-16|0,b);Vkb(a,0);return}function lsa(a,b){a=a|0;b=b|0;Vkb(a,b);b4a(a+-16+16|0,b);Vkb(a,0);return}function msa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;gr(f,b,d,e,128736,WCb(c[a+32>>2]|0)|0);return}function nsa(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;FH(d+8|0,a,b,e);yb=d;return}function osa(a){a=a|0;var b=0,d=0,e=0;e=a+8|0;b=c[a+12>>2]|0;a=c[e>>2]|0;while(1){if((a|0)==(b|0))break;d=c[a>>2]|0;if(d|0)Rb[c[(c[d>>2]|0)+4>>2]&1023](d);a=a+4|0}Vob(e);return}function psa(b){b=b|0;var d=0,e=0,f=0;e=c[b>>2]|0;f=a[e>>0]|0;if(!(rCb(f<<24>>24)|0))d=0;else{d=0;do{d=(d*10|0)+-48+(f<<24>>24)|0;e=e+1|0;c[b>>2]=e;f=a[e>>0]|0}while((rCb(f<<24>>24)|0)!=0)}return d|0}function qsa(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;e=c[a+24>>2]|0;if((d|0)==(e|0)){c[b>>2]=c[a+28>>2];return}if(d>>>0<=e>>>0)return;c[b>>2]=d+-1;return}function rsa(a){a=a|0;var b=0;b=IWa(150452,99221)|0;IWa(mpa(b,c[a+8>>2]|0)|0,99316)|0;return}function ssa(a,b,d){a=a|0;b=b|0;d=d|0;a=a+4|0;while(1){if((b|0)==(d|0))break;c[c[a>>2]>>2]=c[b>>2];c[a>>2]=(c[a>>2]|0)+4;b=b+4|0}return}function tsa(b,d){b=b|0;d=d|0;a[b>>0]=0;c[b+4>>2]=d;d=d+(c[(c[d>>2]|0)+-12>>2]|0)|0;if(!(c[d+16>>2]|0)){d=c[d+72>>2]|0;if(d|0)Ju(d)|0;a[b>>0]=1}return}function usa(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return Bh(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function vsa(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return Ch(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function wsa(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return Dh(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function xsa(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return nh(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function ysa(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return oh(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function zsa(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return ph(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function Asa(a,b){a=a|0;b=b|0;_Qa(a,gdb(c[b>>2]|0)|0);return}function Bsa(a,b){a=a|0;b=b|0;_Qa(a,hdb(c[b>>2]|0)|0);return}function Csa(a,b){a=a|0;b=b|0;var d=0;d=Obb(c[a+4>>2]|0,98262)|0;mpa(d,Eda(c[b+8>>2]|0,c[a>>2]|0)|0)|0;return}function Dsa(a){a=a|0;var b=0;b=IWa(150452,99221)|0;IWa(mpa(b,c[a+8>>2]|0)|0,99360)|0;return}function Esa(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+8|0;a=b;b=c[d>>2]|0;do{e=b;c[e>>2]=0;c[e+4>>2]=0;b=(c[d>>2]|0)+8|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Fsa(a,b){a=a|0;b=b|0;b=wdb(c[b>>2]|0)|0;y6a(c[a+24>>2]|0,b);return}function Gsa(a,b){a=a|0;b=b|0;Dlb(a,b);sB(a+-16+16|0,b);Dlb(a,0);return}function Hsa(a,b){a=a|0;b=b|0;Dlb(a,b);GA(a+-16+16|0,b);Dlb(a,0);return}function Isa(a,b){a=a|0;b=b|0;Vkb(a,b);NV(a+-16|0,b);Vkb(a,0);return}function Jsa(a,b){a=a|0;b=b|0;Vkb(a,b);OV(a+-16|0,b);Vkb(a,0);return}function Ksa(a,b){a=a|0;b=b|0;Vkb(a,b);PV(a+-16|0,b);Vkb(a,0);return}function Lsa(a,b){a=a|0;b=b|0;Vkb(a,b);QV(a+-16|0,b);Vkb(a,0);return}function Msa(a,b){a=a|0;b=b|0;Vkb(a,b);RV(a+-16|0,b);Vkb(a,0);return}function Nsa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;g=a+60|0;f=c[g>>2]|0;c[g>>2]=f+1;c[b+100>>2]=f;b1(a+4|0,e);yb=d;return}function Osa(a){a=a|0;var b=0,d=0,e=0,f=0;d=a+32|0;e=a+36|0;b=c[a+40>>2]|0;while(1){if(!b)break;f=b+-1|0;Tb[c[(c[d>>2]|0)+(f<<2)>>2]&255](0,a,c[(c[e>>2]|0)+(f<<2)>>2]|0);b=f}return}function Psa(){var a=0,b=0,d=0;a=mla(60)|0;b=a;d=b+60|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));fFa(a);return a|0}function Qsa(a,b,d){a=a|0;b=b|0;d=d|0;if(PBb(c[b>>2]|0)|0){d=b;return d|0}if(nba(b)|0){d=b;return d|0}d=$D(a,b,0,d)|0;return d|0}function Rsa(a,b){a=a|0;b=b|0;_Qa(a,wdb(c[b>>2]|0)|0);return}function Ssa(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];if((a|0)==(b|0))return;yB(a+4|0,c[b+4>>2]|0,c[b+8>>2]|0);return}function Tsa(b){b=b|0;if(a[b+33>>0]&1)BM(IWa(150620,112655)|0);tI(c[b+28>>2]|0,0)|0;return}function Usa(a){a=a|0;b3(a);return}function Vsa(a){a=a|0;Q2(a);return}function Wsa(a){a=a|0;var b=0;switch(c[a+16>>2]|0){case 1:{a=c[a>>2]|0;b=((a|0)<0)<<31>>31;O(b|0);return a|0}case 2:{b=a;a=c[b+4>>2]|0;b=c[b>>2]|0;O(a|0);return b|0}default:Ta()}return 0}function Xsa(a,b){a=a|0;b=b|0;Dlb(a,b);dD(a+-16+16|0,b);Dlb(a,0);return}function Ysa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;WM(a,b);b=b+16|0}return}function Zsa(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];if((a|0)==(b|0))return;xz(a+4|0,c[b+4>>2]|0,c[b+8>>2]|0);return}function _sa(a,b){a=a|0;b=b|0;var c=0;c=yb;yb=yb+16|0;b=b+8|0;GG(c,a+64|0,b,b);yb=c;return}function $sa(a,b){a=a|0;b=b|0;var c=0;c=yb;yb=yb+16|0;b=b+8|0;GG(c,a+52|0,b,b);yb=c;return}function ata(a,b){a=a|0;b=b|0;bTa(a);c[a>>2]=42328;c[a+44>>2]=b;return}function bta(a){a=a|0;oga(a);return}function cta(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;h=e-d|0;b=g;g=d;while(1){if((g|0)==(e|0))break;i=c[g>>2]|0;a[b>>0]=i>>>0<128?i&255:f;b=b+1|0;g=g+4|0}return d+(h>>>2<<2)|0}function dta(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;g=yb;yb=yb+48|0;d=g+24|0;e=g;f=d;h=f+16|0;do{a[f>>0]=255;f=f+1|0}while((f|0)<(h|0));M0a(e,d);O9a(b,c,e);yb=g;return}function eta(a,b){a=a|0;b=b|0;_Qa(a,xdb(c[b>>2]|0)|0);return}function fta(a,b){a=a|0;b=b|0;_Qa(a,ydb(c[b>>2]|0)|0);return}function gta(a,b){a=a|0;b=b|0;_Qa(a,zdb(c[b>>2]|0)|0);return}function hta(a,b){a=a|0;b=b|0;_Qa(a,Adb(c[b>>2]|0)|0);return}function ita(a,b){a=a|0;b=b|0;var c=0;c=yb;yb=yb+16|0;b=b+8|0;GG(c,a+24|0,b,b);yb=c;return}function jta(a,b){a=a|0;b=b|0;b=Cda(a,b)|0;return Q6a(c[a+32>>2]|0,b)|0}function kta(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((d|0)==(b|0))return b|0;a=a+4|0;e=(c[a>>2]|0)-d|0;if(e|0)Pxa(b|0,d|0,e|0)|0;c[a>>2]=b+(((e|0)/12|0)*12|0);return b|0}function lta(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if(dub(a,c[b+8>>2]|0)|0)GN(b,d,e,f);return}function mta(a,b){a=a|0;b=b|0;Dlb(a,b);UA(a+-16+16|0,b);Dlb(a,0);return}function nta(a,b){a=a|0;b=b|0;Dlb(a,b);xB(a+-16+16|0,b);Dlb(a,0);return}function ota(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;bN(a,b);b=b+16|0}return}function pta(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;cN(a,b);b=b+16|0}return}function qta(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;dN(a,b);b=b+16|0}return}function rta(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;eN(a,b);b=b+16|0}return}function sta(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;fN(a,b);b=b+16|0}return}function tta(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;gN(a,b);b=b+16|0}return}function uta(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;return Gq(f,b,d,e,128430,WCb(c[a+32>>2]|0)|0)|0}function vta(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((b|0)==(e|0))break;f=e+-8|0;c[d>>2]=f;e=f}a=c[a>>2]|0;if(!a)return;RCb(a);return}function wta(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((b|0)==(e|0))break;f=e+-24|0;c[d>>2]=f;e=f}a=c[a>>2]|0;if(!a)return;RCb(a);return}function xta(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=mla(36)|0;c[e+4>>2]=0;c[e+8>>2]=0;c[e>>2]=44660;F4a(e+12|0,b,c[d>>2]|0);c[a>>2]=e+12;c[a+4>>2]=e;return}function yta(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return wh(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function zta(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return Ih(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function Ata(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return Jh(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function Bta(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return sh(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function Cta(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return zh(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function Dta(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return Ah(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function Eta(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Eeb(a)|0;c[a+8>>2]=c[b>>2];L9(a+12|0,d);uZa(a,e);return a|0}function Fta(a,b){a=a|0;b=b|0;_Qa(a,Hdb(c[b>>2]|0)|0);return}function Gta(a,b){a=a|0;b=b|0;_Qa(a,Idb(c[b>>2]|0)|0);return}function Hta(a,b){a=a|0;b=b|0;_Qa(a,Jdb(c[b>>2]|0)|0);return}function Ita(a,b){a=a|0;b=b|0;_Qa(a,Kdb(c[b>>2]|0)|0);return}function Jta(a,b){a=a|0;b=b|0;_Qa(a,Ldb(c[b>>2]|0)|0);return}function Kta(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Lib(a+152|0)|0;c[a+8>>2]=b;c[a+12>>2]=d;c[a+16>>2]=e;gQ(a);if(!(c[37104]|0))return a|0;Cg(a,56529,b,d,e);return a|0}function Lta(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=c[a+212>>2];a=u7(a+204|0,e)|0;c[a>>2]=c[b+8>>2];yb=d;return}function Mta(a){a=a|0;y1(a,c[a+4>>2]|0);return}function Nta(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;c[a>>2]=a+4;d=a+4|0;c[(c[d>>2]|0)+8>>2]=0;c[d>>2]=0;c[a+8>>2]=0;a=c[b+4>>2]|0;return ((a|0)==0?b:a)|0}function Ota(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(mz(c,b,d)|0){hfa(a,40);Xi(a,b);hfa(a,41);return}else{Xi(a,b);return}}function Pta(a,b){a=a|0;b=b|0;Dlb(a,b);lD(a+-16+16|0,b);Dlb(a,0);return}function Qta(a,b){a=a|0;b=b|0;Dlb(a,b);mD(a+-16+16|0,b);Dlb(a,0);return}function Rta(a){a=a|0;var b=0;b=c[a+24>>2]|0;a=(c[a+28>>2]|0)-b|0;if((a|0)==4){b=0;return b|0}a=a>>2;if(a>>>0<=1)ma(106320,134747,810,80312);b=c[b+(a+-2<<2)>>2]|0;return b|0}function Sta(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=0;e=a+4|0;c[e>>2]=0;c[a+8>>2]=0;c[a>>2]=c[b>>2];d=b+4|0;c[e>>2]=c[d>>2];e=b+8|0;c[a+8>>2]=c[e>>2];c[e>>2]=0;c[d>>2]=0;c[b>>2]=0;return}function Tta(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=J(e,f)|0;d=a>>>16;a=(c>>>16)+(J(e,d)|0)|0;e=b>>>16;b=J(e,f)|0;return (O((a>>>16)+(J(e,d)|0)+(((a&65535)+b|0)>>>16)|0),a+b<<16|c&65535|0)|0}function Uta(a,b){a=a|0;b=b|0;if(!b)return;Uta(a,c[b>>2]|0);Uta(a,c[b+4>>2]|0);RCb(b);return}function Vta(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return xh(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function Wta(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return Kh(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function Xta(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return th(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function Yta(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;return Eh(c[b>>2]|0,c[d>>2]|0,e,f,g)|0}function Zta(a){a=a|0;var b=0;b=mla(8)|0;c[b>>2]=39908;c[b+4>>2]=c[a+4>>2];return b|0}function _ta(a,b){a=a|0;b=b|0;var d=0;d=rrb(b,1)|0;Ota(a,c[d>>2]|0,b,-1);hfa(a,91);b=rrb(b,2)|0;Xi(a,c[b>>2]|0);hfa(a,93);return}function $ta(a){a=a|0;n3(a);return}function aua(b,d){b=b|0;d=d|0;var e=0,f=0;if((b|0)!=(d|0)){e=a[d+11>>0]|0;f=e<<24>>24<0;sP(b,f?c[d>>2]|0:d,f?c[d+4>>2]|0:e&255)|0}return b|0}function bua(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=U4a(a|0,b|0,c&63|0)|0;f=P()|0;d=Ndb(0,0,c|0,d|0)|0;P()|0;d=X2a(a|0,b|0,d&63|0)|0;O(f|(P()|0)|0);return e|d|0}function cua(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;b=ifb(b)|0;c[b+8>>2]=d;c[b+12>>2]=e;a[b+16>>0]=f;c[b+20>>2]=g;zna(b);return b|0}function dua(a,b){a=a|0;b=b|0;_Qa(a,feb(c[b>>2]|0)|0);return}function eua(a,b){a=a|0;b=b|0;_Qa(a,geb(c[b>>2]|0)|0);return}function fua(a,b){a=a|0;b=b|0;_Qa(a,heb(c[b>>2]|0)|0);return}function gua(a,b){a=a|0;b=b|0;_Qa(a,ieb(c[b>>2]|0)|0);return}function hua(a,b){a=a|0;b=b|0;Dlb(a,b);uD(a+-16+16|0,b);Dlb(a,0);return}function iua(a,b){a=a|0;b=b|0;Dlb(a,b);vD(a+-16+16|0,b);Dlb(a,0);return}function jua(a,b){a=a|0;b=b|0;Dlb(a,b);wD(a+-16+16|0,b);Dlb(a,0);return}function kua(a,b,c){a=a|0;b=b|0;c=c|0;R9(a,b);IWa(a,140151)|0;ycb(a,c);return}function lua(a){a=a|0;s$(a,c[a+4>>2]|0);return}function mua(a){a=a|0;V1(a,c[a+4>>2]|0);return}function nua(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=X2a(a|0,b|0,c&63|0)|0;f=P()|0;d=Ndb(0,0,c|0,d|0)|0;P()|0;d=U4a(a|0,b|0,d&63|0)|0;O(f|(P()|0)|0);return e|d|0}function oua(a){a=a|0;var b=0;F3(a);b=c[a+4>>2]|0;if(!((c[b+4>>2]|0)<=2?(c[b+8>>2]|0)<=0:0))$g(a);c2(c[a+8>>2]|0);F3(a);return}function pua(a,b){a=a|0;b=b|0;var d=0;d=c[a+44>>2]|0;a=b+24|0;b=C8(d,a)|0;if((b|0)==(d+4|0))return;c[a>>2]=c[b+20>>2];return}function qua(a){a=a|0;var b=0,d=0;b=(c[a+4>>2]|0)-(c[a>>2]|0)|0;d=b>>2;if(!b)ma(75456,75464,37,75500);b=0;while(1){if((b|0)==(d|0))break;c[(c[a>>2]|0)+(b<<2)>>2]=b;b=b+1|0}return}function rua(a,b,c){a=a|0;b=b|0;c=c|0;R9(a,b);IWa(a,140151)|0;Zbb(a,c);return}function sua(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+4|0;a=b;b=c[d>>2]|0;do{e=b;c[e>>2]=0;c[e+4>>2]=0;b=(c[d>>2]|0)+8|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function tua(a){a=a|0;f6(a);return}function uua(a,b){a=a|0;b=b|0;switch(c[b+16>>2]|0){case 3:{pUa(a,+hb(+(+L8a(b))));return}case 4:{kEa(a,+ib(+(+K8a(b))));return}default:ma(141129,111484,453,112019)}}function vua(a,b){a=a|0;b=b|0;_Qa(a,Keb(c[b>>2]|0)|0);return}function wua(a,b){a=a|0;b=b|0;_Qa(a,Leb(c[b>>2]|0)|0);return}function xua(a,b){a=a|0;b=b|0;_Qa(a,Deb(c[b>>2]|0)|0);return}function yua(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;nN(a,b);b=b+16|0}return}function zua(a,b){a=a|0;b=b|0;Vkb(a,b);gba(a+-16|0,b);Vkb(a,0);return}function Aua(a,b){a=a|0;b=b|0;Dlb(a,b);zD(a+-16+16|0,b);Dlb(a,0);return}function Bua(a,b){a=a|0;b=b|0;Dlb(a,b);AD(a+-16+16|0,b);Dlb(a,0);return}function Cua(a,b){a=a|0;b=b|0;Dlb(a,b);BD(a+-16+16|0,b);Dlb(a,0);return}function Dua(a,b){a=a|0;b=b|0;var d=0;d=yb;yb=yb+16|0;b=b+8|0;FH(d,a+40|0,c[b>>2]|0,b);yb=d;return}function Eua(a,b){a=a|0;b=b|0;var d=0;d=yb;yb=yb+16|0;b=b+8|0;FH(d,a+28|0,c[b>>2]|0,b);yb=d;return}function Fua(a,b){a=a|0;b=b|0;var c=0;c=yb;yb=yb+16|0;b=b+8|0;GG(c,a+80|0,b,b);yb=c;return}function Gua(a,b){a=+a;b=+b;var d=0,e=0;h[i>>3]=a;e=c[i>>2]|0;d=c[i+4>>2]|0;h[i>>3]=b;d=c[i+4>>2]&-2147483648|d&2147483647;c[i>>2]=e;c[i+4>>2]=d;return +(+h[i>>3])}function Hua(a){a=a|0;var b=0,d=0;d=c[36996]|0;b=(c[36997]|0)-d>>2;if(b>>>0>=a>>>0){if(b>>>0>a>>>0)c[36997]=d+(a<<2)}else KG(a-b|0);return}function Iua(a){a=a|0;_W(a,c[a+4>>2]|0);return}function Jua(a){a=a|0;Cha(a);return}function Kua(a,b){a=a|0;b=b|0;switch(c[b+16>>2]|0){case 1:{kEa(a,+(c[b>>2]|0));return}case 2:{kEa(a,+((c[b>>2]|0)>>>0)+4294967296.0*+(c[b+4>>2]|0));return}default:ma(141129,111484,307,111903)}}function Lua(a,b){a=a|0;b=b|0;switch(c[b+16>>2]|0){case 1:{pUa(a,+(c[b>>2]|0));return}case 2:{pUa(a,+((c[b>>2]|0)>>>0)+4294967296.0*+(c[b+4>>2]|0));return}default:ma(141129,111484,295,111873)}}function Mua(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Xeb(a)|0;c[a+4>>2]=e;c[a+24>>2]=c[b>>2];L9(a+8|0,d);return a|0}function Nua(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((b|0)==(d|0))return;e=J(d>>>0>>0?d:b,c[a+132>>2]|0)|0;b=e+(b>>>0>>0?d:b)|0;d=(c[a+184>>2]|0)+(b>>>5<<2)|0;c[d>>2]=c[d>>2]|1<<(b&31);return}function Oua(a){a=a|0;v3(a);return}function Pua(a){a=a|0;var b=0;if(!(c[a>>2]|0))return;b=c[a+4>>2]|0;if(!b)return;b=cWa(b+12|0)|0;if((c[b>>2]|0)==(c[a>>2]|0))return;else ma(76395,76320,108,76422)}function Qua(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;cUa(b,a[d>>0]|0);f=y2(d)|0;g=f+1|0;iR(b,g);e=b+12|0;vtb((c[b+4>>2]|0)+(c[e>>2]|0)|0,d,g)|0;c[e>>2]=(c[e>>2]|0)+f;return}function Rua(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;tN(a,b);b=b+16|0}return}function Sua(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;uN(a,b);b=b+16|0}return}function Tua(a,b){a=a|0;b=b|0;Vkb(a,b);X6a(a+-16+16|0,b);Vkb(a,0);return}function Uua(a,b){a=a|0;b=b|0;Dlb(a,b);JD(a+-16+16|0,b);Dlb(a,0);return}function Vua(a,b){a=a|0;b=b|0;Dlb(a,b);_B(a+-16+16|0,b);Dlb(a,0);return}function Wua(a,b){a=a|0;b=b|0;Dlb(a,b);LD(a+-16+16|0,b);Dlb(a,0);return}function Xua(a,b){a=a|0;b=b|0;Dlb(a,b);MD(a+-16+16|0,b);Dlb(a,0);return}function Yua(a,b){a=a|0;b=b|0;Dlb(a,b);$B(a+-16+16|0,b);Dlb(a,0);return}function Zua(a,b){a=a|0;b=b|0;KRa(a);c[a>>2]=45752;n=0;da(3899,a+16|0,b|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;Xjb(a);Ea(b|0)}else return}function _ua(a,b,c){a=a|0;b=b|0;c=c|0;FLa(a,b);IWa(a,140151)|0;Zbb(a,c);return}function $ua(a,b,c){a=a|0;b=b|0;c=c|0;zfb(a,b);IWa(a,140151)|0;Zbb(a,c);return}function ava(a,b,c){a=a|0;b=b|0;c=c|0;R9(a,b);IWa(a,140151)|0;rcb(a,c);return}function bva(a,b,c){a=a|0;b=b|0;c=c|0;R9(a,b);IWa(a,140151)|0;scb(a,c);return}function cva(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;Gsb(e,a);a=E7a(c[e>>2]|0,b)|0;if(!(c[37104]|0)){yb=d;return a|0}Ug(a,b);yb=d;return a|0}function dva(a,b){a=a|0;b=b|0;var d=0;zoa((c[a>>2]|0)+16|0,b);d=_ob(b)|0;b=c[a+4>>2]|0;c[b>>2]=(c[b>>2]|0)+d;return}function eva(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;e=c[a>>2]|0;f=(c[d>>2]|0)-e>>2;if(f>>>0>>0){JI(a,b-f|0);return}if(f>>>0<=b>>>0)return;c[d>>2]=e+(b<<2);return}function fva(a){a=a|0;O$(a,c[a+4>>2]|0);return}function gva(a,b){a=a|0;b=b|0;c[b>>2]=39908;c[b+4>>2]=c[a+4>>2];return}function hva(a,b){a=a|0;b=b|0;var d=0;Qua(a,134540);d=rrb(b,1)|0;if(zgb(c[d>>2]|0)|0)return;hfa(a,32);d=rrb(b,1)|0;Xi(a,c[d>>2]|0);return}function iva(a,b){a=a|0;b=b|0;b=cfb(c[b>>2]|0)|0;y6a(c[a+24>>2]|0,b);return}function jva(a,b){a=a|0;b=b|0;b=Ueb(c[b>>2]|0)|0;y6a(c[a+24>>2]|0,b);return}function kva(a,b){a=a|0;b=b|0;Dlb(a,b);dC(a,b);Dlb(a,0);return}function lva(a,b){a=a|0;b=b|0;ML(a,b+44|0);return}function mva(a,b){a=a|0;b=b|0;_Qa(a,cfb(c[b>>2]|0)|0);return}function nva(a,b){a=a|0;b=b|0;_Qa(a,Teb(c[b>>2]|0)|0);return}function ova(a,b){a=a|0;b=b|0;_Qa(a,Ueb(c[b>>2]|0)|0);return}function pva(a,b){a=a|0;b=b|0;_Qa(a,Veb(c[b>>2]|0)|0);return}function qva(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;vN(a,b);b=b+16|0}return}function rva(a,b){a=a|0;b=b|0;Dlb(a,b);TD(a+-16+16|0,b);Dlb(a,0);return}function sva(b,d){b=b|0;d=d|0;var e=0;e=G7(b+12|0,d+8|0)|0;c[e>>2]=d;if(!(a[b+32>>0]&1))return;aq(c[b+28>>2]|0,d);return}function tva(a){a=a|0;var b=0;b=c[a+28>>2]|0;a=c[a+24>>2]|0;while(1){if((a|0)==(b|0)){a=0;b=5;break}if(c[(c[a>>2]|0)+48>>2]|0){a=1;b=5;break}a=a+4|0}if((b|0)==5)return a|0;return 0}function uva(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;Pq(g,b,d,e,f,WCb(c[a+32>>2]|0)|0)|0;return}function vva(a,b,c){a=a|0;b=b|0;c=c|0;FLa(a,b);IWa(a,140151)|0;rcb(a,c);return}function wva(a){a=a|0;Z$(a,c[a+4>>2]|0);return}function xva(a){a=a|0;Mha(a);return}function yva(a,b){a=a|0;b=b|0;b=b+8|0;if(adb(c[a+116>>2]|0,c[b>>2]|0)|0?!(Ejb(a)|0):0){a=c[(c[a+140>>2]|0)+(c[b>>2]<<2)>>2]|0;return a|0}return a|0}function zva(a,b){a=a|0;b=b|0;b=efb(c[b>>2]|0)|0;y6a(c[a+24>>2]|0,b);return}function Ava(a,b){a=a|0;b=b|0;b=tfb(c[b>>2]|0)|0;y6a(c[a+24>>2]|0,b);return}function Bva(a,b){a=a|0;b=b|0;b=ufb(c[b>>2]|0)|0;y6a(c[a+24>>2]|0,b);return}function Cva(a){a=a|0;var b=0;b=c[a+16>>2]|0;if(!b){c[a+4>>2]=6;return}if((c[b+4>>2]|0)==6){c[a+4>>2]=6;return}b=c[a+12>>2]|0;if(!b){c[a+4>>2]=0;return}else{c[a+4>>2]=c[b+4>>2];return}}function Dva(a){a=a|0;Vob(a+152|0);Vob(a+140|0);Pdb(a+120|0);XR(a);return}function Eva(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;mka(a,b,0);lqa(a+48|0,e);yb=d;return}function Fva(b,c){b=b|0;c=c|0;if(!(a[b+92>>0]&1))return;if(!(Yrb(b+84|0)|0))return;Edb(c,b+84|0);return}function Gva(a,b,c){a=a|0;b=b|0;c=c|0;_cb(a,b);IWa(a,140151)|0;rcb(a,c);return}function Hva(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=yb;yb=yb+16|0;h=g;c[h>>2]=f;f=Feb(d)|0;d=NK(a,b,e,h)|0;if(f|0)Feb(f)|0;yb=g;return d|0}function Iva(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return JFa(a,Uha(a,b,c)|0,d,e,f)|0}function Jva(a,b){a=a|0;b=b|0;_Qa(a,dfb(c[b>>2]|0)|0);return}function Kva(a,b){a=a|0;b=b|0;_Qa(a,efb(c[b>>2]|0)|0);return}function Lva(a,b){a=a|0;b=b|0;_Qa(a,ffb(c[b>>2]|0)|0);return}function Mva(a,b){a=a|0;b=b|0;_Qa(a,tfb(c[b>>2]|0)|0);return}function Nva(a,b){a=a|0;b=b|0;_Qa(a,ufb(c[b>>2]|0)|0);return}function Ova(a,b){a=a|0;b=b|0;Vkb(a,b);WWa(a+-16|0,b);Vkb(a,0);return}function Pva(a,b){a=a|0;b=b|0;Dlb(a,b);aE(a+-16+16|0,b);Dlb(a,0);return}function Qva(a,b){a=a|0;b=b|0;Dlb(a,b);bE(a+-16+16|0,b);Dlb(a,0);return}function Rva(a,b){a=a|0;b=b|0;Dlb(a,b);cE(a+-16+16|0,b);Dlb(a,0);return}function Sva(b){b=b|0;if(a[b+33>>0]&1)BM(IWa(150620,112719)|0);tI(c[b+28>>2]|0,26)|0;return}function Tva(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=shb(a+152|0)|0;if(c[37104]|0)Cg(a,56859,b,d,e);c[a+16>>2]=b;c[a+8>>2]=d;c[a+12>>2]=e;yga(a);return a|0}function Uva(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=yb;yb=yb+16|0;d=e;c[d>>2]=c[a>>2];while(1){f=(c[d>>2]|0)+(4-1)&~(4-1);a=c[f>>2]|0;c[d>>2]=f+4;if(b>>>0>1)b=b+-1|0;else break}yb=e;return a|0}function Vva(a){a=a|0;Pdb(a+52|0);nVa(a+40|0);ETa(a+16|0);return}function Wva(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a+4|0;a=d-b|0;if((a|0)<=0)return;Uv(c[e>>2]|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+(a>>2<<2);return}function Xva(a){a=a|0;Vha(a);return}function Yva(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;hCb(b);b=(c[d>>2]|0)+4|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Zva(a){a=a|0;f6(a);return}function _va(a,b){a=a|0;b=b|0;b=Efb(c[b>>2]|0)|0;y6a(c[a+24>>2]|0,b);return}function $va(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;hr(e,b,0,d,130901,WCb(c[a+32>>2]|0)|0);return}function awa(a){a=a|0;Vob(a+152|0);Vob(a+140|0);Pdb(a+120|0);_R(a);return}function bwa(a,b,d){a=a|0;b=b|0;d=d|0;if(Mgb(a,b)|0){d=b+(WBb(d)|0)|0;a=a+4096|0;if((d|0)==(c[a>>2]|0))c[a>>2]=b}else wg(b);return}function cwa(b,d){b=b|0;d=d|0;Eb[c[(c[b>>2]|0)+24>>2]&511](b)|0;d=Thb(c[d>>2]|0,151636)|0;c[b+36>>2]=d;d=(Eb[c[(c[d>>2]|0)+28>>2]&511](d)|0)&1;a[b+44>>0]=d;return}function dwa(b,d){b=b|0;d=d|0;Eb[c[(c[b>>2]|0)+24>>2]&511](b)|0;d=Thb(c[d>>2]|0,151628)|0;c[b+36>>2]=d;d=(Eb[c[(c[d>>2]|0)+28>>2]&511](d)|0)&1;a[b+44>>0]=d;return}function ewa(a,b){a=a|0;b=b|0;wOa(a,Keb(c[b>>2]|0)|0);return}function fwa(a,b){a=a|0;b=b|0;wOa(a,Leb(c[b>>2]|0)|0);return}function gwa(a,b){a=a|0;b=b|0;_Qa(a,Efb(c[b>>2]|0)|0);return}function hwa(a,b){a=a|0;b=b|0;_Qa(a,vfb(c[b>>2]|0)|0);return}function iwa(a,b){a=a|0;b=b|0;_Qa(a,wfb(c[b>>2]|0)|0);return}function jwa(a,b){a=a|0;b=b|0;_Qa(a,xfb(c[b>>2]|0)|0);return}function kwa(a,b){a=a|0;b=b|0;_Qa(a,Ffb(c[b>>2]|0)|0);return}function lwa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;BN(a,b);b=b+16|0}return}function mwa(a,b){a=a|0;b=b|0;Dlb(a,b);fE(a+-16+16|0,b);Dlb(a,0);return}function nwa(a,b){a=a|0;b=b|0;hab(a);c[a>>2]=40340;c[a+4>>2]=b;return}function owa(a,b){a=a|0;b=b|0;a=Obb(a,98273)|0;SEa(mpa(a,c[b+24>>2]|0)|0,41)|0;return}function pwa(b,c){b=b|0;c=c|0;if(!(a[b+92>>0]&1))return;if(Yrb(b+84|0)|0)return;Edb(c,b+84|0);return}function qwa(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;return Pb[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0)|0}function rwa(a){a=a|0;var b=0,d=0;n=0;b=Q(79)|0;d=n;n=0;if(d&1){d=ta(0)|0;P()|0;yub(d)}else{d=c[b>>2]|0;c[a>>2]=d;d=d+4|0;c[d>>2]=(c[d>>2]|0)+1;return}}function swa(a){a=a|0;dia(a);return}function twa(a){a=a|0;var b=0;a=a+8|0;b=Feb(c[a>>2]|0)|0;if(b|0)Feb(b)|0;a=c[a>>2]|0;if(!a)return 1;a=Feb(a)|0;b=Mxb()|0;if(a|0)Feb(a)|0;return (b|0)==1|0}function uwa(a,b){a=a|0;b=b|0;var d=0;d=rrb(b,1)|0;Xi(a,c[d>>2]|0);hfa(a,46);b=rrb(b,2)|0;Qua(a,e7a(WCb(c[b>>2]|0)|0)|0);return}function vwa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=b+12|0;d=b+16|0;e=c[f>>2]|0;c[f>>2]=c[d>>2];c[d>>2]=e;b=b+8|0;a=pVa(c[a>>2]|0,20,c[b>>2]|0)|0;c[b>>2]=a;return}function wwa(b){b=b|0;if(a[b+33>>0]&1)BM(IWa(150620,112676)|0);tI(c[b+28>>2]|0,1)|0;return}function xwa(b,c){b=b|0;c=c|0;if(!(a[b+56>>0]&1))return;if(!(Yrb(b+48|0)|0))return;meb(c,b+48|0);return}function ywa(a){a=a|0;Z3(a);return}function zwa(a){a=a|0;X3(a);return}function Awa(a,b){a=a|0;b=b|0;switch(c[b+16>>2]|0){case 3:{pUa(a,+v(+(+L8a(b))));return}case 4:{kEa(a,+v(+(+K8a(b))));return}default:ma(141129,111484,445,112013)}}function Bwa(a){a=+a;var b=0,c=0;c=yb;yb=yb+16|0;b=c;g[b>>2]=a;if(((irb(a)|0)&2147483647)>>>0>2139095040){b=(LAb(b)|0)&8388607;yb=c;return b|0}else ma(111661,111484,148,111695);return 0}function Cwa(a,b){a=a|0;b=b|0;ML(a,b+16|0);return}function Dwa(a,b){a=a|0;b=b|0;_Qa(a,Gfb(c[b>>2]|0)|0);return}function Ewa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;LP(a,b);b=b+16|0}return}function Fwa(a,b){a=a|0;b=b|0;Vkb(a,b);p1(a+-16|0,b);Vkb(a,0);return}function Gwa(b,d){b=b|0;d=d|0;var e=0;e=G7(b,d+8|0)|0;c[e>>2]=d;if(!(a[b+32>>0]&1))return;aq(c[b+28>>2]|0,d);return}function Hwa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;e=c[a>>2]|0;f=(c[d>>2]|0)-e|0;if(f>>>0>>0){PI(a,b-f|0);return}if(f>>>0<=b>>>0)return;c[d>>2]=e+b;return}function Iwa(a){a=a|0;K0(a,c[a+4>>2]|0);return}function Jwa(a){a=a|0;var b=0;b=oa(8)|0;n=0;da(4188,b|0,a|0);a=n;n=0;if(a&1){a=sa()|0;P()|0;va(b|0);Ea(a|0)}else za(b|0,39560,475)}function Kwa(a){a=a|0;c[37104]=a;if(!a){IWa(150452,71476)|0;IWa(150452,99294)|0;return}else{IWa(150452,70981)|0;return}}function Lwa(a,b){a=a|0;b=b|0;var d=0,e=0;e=b+4|0;d=c[e>>2]|0;c[(c[b>>2]|0)+4>>2]=d;c[c[e>>2]>>2]=c[b>>2];a=a+8|0;c[a>>2]=(c[a>>2]|0)+-1;RCb(b);return d|0}function Mwa(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((b|0)==(e|0))break;f=e+-4|0;c[d>>2]=f;e=f}a=c[a>>2]|0;if(!a)return;RCb(a);return}function Nwa(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((b|0)==(e|0))break;f=e+-1|0;c[d>>2]=f;e=f}a=c[a>>2]|0;if(!a)return;RCb(a);return}function Owa(a){a=a|0;f6(a);return}function Pwa(a){a=a|0;var b=0;uSa(c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(!b)return;RCb(b);return}function Qwa(a,b){a=a|0;b=b|0;b=Tfb(c[b>>2]|0)|0;y6a(c[a+24>>2]|0,b);return}function Rwa(a,b){a=a|0;b=b|0;Dlb(a,b);mE(a+-16+16|0,b);Dlb(a,0);return}function Swa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;DN(a,b);b=b+16|0}return}function Twa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;EN(a,b);b=b+16|0}return}function Uwa(a){a=a|0;D1a(a);c[a>>2]=41196;S1a(a+44|0);yib(a+108|0);c[a+120>>2]=0;c[a+124>>2]=0;c[a+128>>2]=0;return}function Vwa(b,c){b=b|0;c=c|0;if(!(a[b+56>>0]&1))return;if(Yrb(b+48|0)|0)return;meb(c,b+48|0);return}function Wwa(a){a=a|0;R0(a,c[a+4>>2]|0);return}function Xwa(a,b){a=a|0;b=b|0;switch(c[b+16>>2]|0){case 3:{pUa(a,+x(+(+L8a(b))));return}case 4:{kEa(a,+x(+(+K8a(b))));return}default:ma(141129,111484,469,112035)}}function Ywa(a,b){a=a|0;b=b|0;switch(c[b+16>>2]|0){case 3:{pUa(a,+I(+(+L8a(b))));return}case 4:{kEa(a,+I(+(+K8a(b))));return}default:ma(141129,111484,437,112008)}}function Zwa(a,b){a=a|0;b=b|0;c$a(a,gdb(c[b>>2]|0)|0);return}function _wa(a,b){a=a|0;b=b|0;c$a(a,hdb(c[b>>2]|0)|0);return}function $wa(a,b){a=a|0;b=b|0;d$a(a,gdb(c[b>>2]|0)|0);return}function axa(a,b){a=a|0;b=b|0;d$a(a,hdb(c[b>>2]|0)|0);return}function bxa(a,b){a=a|0;b=b|0;_Qa(a,Tfb(c[b>>2]|0)|0);return}function cxa(a){a=a|0;var b=0;switch(a|0){case 1:{b=0;break}case 2:{b=1;break}case 4:{b=2;break}case 8:{b=3;break}case 16:{b=4;break}case 32:{b=5;break}default:ma(141129,111146,105,111176)}return b|0}function dxa(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=0;do{h=b;b=b>>>7;g=eCb(b)|0;a[(c[d>>2]|0)+(f+e)>>0]=g?h|128:h&127;f=f+1|0}while(g);return f|0}function exa(a){a=a|0;var b=0,d=0;c[a>>2]=44072;Pdb(a+48|0);d=a+44|0;b=c[d>>2]|0;c[d>>2]=0;if(b|0)RCb(b);gcb(a);return}function fxa(a){a=a|0;Vob(a+56|0);A7a(a+44|0);k1a(a+12|0);Vob(a);return}function gxa(a){a=a|0;var b=0,d=0;d=a+4|0;b=0;while(1){if(b>>>0>=(c[c[a>>2]>>2]|0)>>>0)break;SEa(c[d>>2]|0,32)|0;b=b+1|0}return}function hxa(a,b){a=a|0;b=b|0;var d=0;if((ZBb()|0)>>>0>>0)Apa();else{d=mla(b)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+b;return}}function ixa(a){a=a|0;d4(a);return}function jxa(){var b=0;if((a[147464]|0)==0?mlb(147464)|0:0){b=ab(107815)|0;c[37334]=b}if((a[147472]|0)==0?mlb(147472)|0:0){b=c[37334]|0;if(!b)b=0;else b=sY(b)|0;c[37335]=b}return c[37335]|0}function kxa(a,b){a=a|0;b=b|0;Dlb(a,b);uE(a+-16+16|0,b);Dlb(a,0);return}function lxa(a,b){a=a|0;b=b|0;Dlb(a,b);vE(a+-16+16|0,b);Dlb(a,0);return}function mxa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;HN(a,b);b=b+16|0}return}function nxa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;IN(a,b);b=b+16|0}return}function oxa(a,b){a=a|0;b=b|0;IWa(IWa(IWa(150452,67545)|0,b)|0,67552)|0;za(oa(1)|0,31880,0)}function pxa(b){b=b|0;if(a[b+12>>0]&1)BM(IWa(150620,118535)|0);iU(b,1836278016);iU(b,1);return}function qxa(b,d){b=b|0;d=d|0;var e=0;e=(Bs(b,c[d+24>>2]|0)|0)+2|0;b=e+(Bs(b,c[d+28>>2]|0)|0)|0;return b+(0-(a[d+20>>0]&1)&10)|0}function rxa(b,d){b=b|0;d=d|0;T$a(b);c[b>>2]=43488;a[b+44>>0]=d&1;d=b+48|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;g[b+64>>2]=1.0;return}function sxa(a,b){a=a|0;b=b|0;var c=0;c=mla(48)|0;dQa(c,b);C9(a,c);return}function txa(a){a=a|0;t3(a,c[a+4>>2]|0);return}function uxa(a){a=a|0;kja(a);return}function vxa(a){a=a|0;lja(a);return}function wxa(a){a=a|0;mja(a);return}function xxa(a){a=a|0;nja(a);return}function yxa(a){a=a|0;oja(a);return}function zxa(a,b){a=a|0;b=b|0;c$a(a,wdb(c[b>>2]|0)|0);return}function Axa(a,b){a=a|0;b=b|0;d$a(a,wdb(c[b>>2]|0)|0);return}function Bxa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;lr(e,b,1,d,129128,WCb(c[a+32>>2]|0)|0);return}function Cxa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;mr(e,b,1,d,132310,WCb(c[a+32>>2]|0)|0);return}function Dxa(a,b){a=a|0;b=b|0;$lb(a);c[a+24>>2]=b;b=a+28|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+44>>2]=1.0;return}function Exa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((d|0)==(b|0))return b|0;a=a+4|0;e=(c[a>>2]|0)-d|0;if(e|0)Pxa(b|0,d|0,e|0)|0;c[a>>2]=b+(e>>2<<2);return b|0}function Fxa(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=mla(20)|0;c[b>>2]=f;c[b+4>>2]=d+4;c[f+16>>2]=c[e>>2];a[b+8>>0]=1;return}function Gxa(b){b=b|0;var d=0,e=0,f=0,g=0;e=a[b+11>>0]|0;f=e<<24>>24<0;g=c[b>>2]|0;d=f?g:b;return pH(d,(f?g:b)+(f?c[b+4>>2]|0:e&255)-d|0)|0}function Hxa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;a=Hfb(a)|0;c[a+8>>2]=b;c[a+12>>2]=d;c[a+16>>2]=e;c[a+20>>2]=f;Wja(a);return a|0}function Ixa(a,b){a=a|0;b=b|0;Dlb(a,b);zE(a+-16+16|0,b);Dlb(a,0);return}function Jxa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;MN(a,b);b=b+16|0}return}function Kxa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;NN(a,b);b=b+16|0}return}function Lxa(a,b){a=a|0;b=b|0;Vkb(a,b);Zk(a+-16|0,b);Vkb(a,0);return}function Mxa(a,b){a=a|0;b=b|0;Vkb(a,b);Xga(a+-16|0,b);Vkb(a,0);return}function Nxa(a,b){a=a|0;b=b|0;Vkb(a,b);_w(a+-16|0,b);Vkb(a,0);return}function Oxa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;wr(f,b,d,e,129889,WCb(c[a+32>>2]|0)|0);return}function Pxa(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 Uv(b,c,d)|0;return b|0}function Qxa(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;hCb(b);b=(c[d>>2]|0)+4|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Rxa(a){a=a|0;f6(a);return}function Sxa(a){a=a|0;f6(a);return}function Txa(a,b){a=a|0;b=b|0;c$a(a,xdb(c[b>>2]|0)|0);return}function Uxa(a,b){a=a|0;b=b|0;c$a(a,ydb(c[b>>2]|0)|0);return}function Vxa(a,b){a=a|0;b=b|0;c$a(a,zdb(c[b>>2]|0)|0);return}function Wxa(a,b){a=a|0;b=b|0;c$a(a,Adb(c[b>>2]|0)|0);return}function Xxa(a,b){a=a|0;b=b|0;d$a(a,xdb(c[b>>2]|0)|0);return}function Yxa(a,b){a=a|0;b=b|0;d$a(a,ydb(c[b>>2]|0)|0);return}function Zxa(a,b){a=a|0;b=b|0;d$a(a,zdb(c[b>>2]|0)|0);return}function _xa(a,b){a=a|0;b=b|0;d$a(a,Adb(c[b>>2]|0)|0);return}function $xa(a,b){a=a|0;b=b|0;e0a(a,gdb(c[b>>2]|0)|0);return}function aya(a,b){a=a|0;b=b|0;e0a(a,hdb(c[b>>2]|0)|0);return}function bya(a,b){a=a|0;b=b|0;Keb(c[b>>2]|0)|0;KSa(a);return}function cya(a,b){a=a|0;b=b|0;var d=0;d=mla(12)|0;c[d+8>>2]=c[b>>2];c[d+4>>2]=a;b=c[a>>2]|0;c[d>>2]=b;c[b+4>>2]=d;c[a>>2]=d;b=a+8|0;c[b>>2]=(c[b>>2]|0)+1;return}function dya(a,b){a=a|0;b=b|0;var d=0,e=0;switch(a|0){case 0:{d=b;break}case -1:{a=c[37419]|0;e=3;break}default:e=3}if((e|0)==3)if((a|0)==22)d=151778;else Ta();return d|0}function eya(a,b){a=a|0;b=b|0;Dlb(a,b);bD(a+-16+16|0,b);Dlb(a,0);return}function fya(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;ON(a,b);b=b+16|0}return}function gya(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;PN(a,b);b=b+16|0}return}function hya(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;QN(a,b);b=b+16|0}return}function iya(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;RN(a,b);b=b+16|0}return}function jya(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;SN(a,b);b=b+16|0}return}function kya(a,b){a=a|0;b=b|0;Vkb(a,b);JHa(a+-16|0,b);Vkb(a,0);return}function lya(a,b){a=a|0;b=b|0;Vkb(a,b);NI(a+-16|0,b);Vkb(a,0);return}function mya(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[d+16>>2]=c[b+16>>2];c[a+4>>2]=c[a+24>>2];return a|0}function nya(a,b){a=a|0;b=b|0;var d=0;d=(c[a+4>>2]|0)-(c[a>>2]|0)|0;Hwa(a,b>>>0>4096?b:4096);if(!(d>>>0>b>>>0&b>>>0<4096))return;LL((c[a>>2]|0)+b|0,0,4096-b|0)|0;return}function oya(b,d,e){b=b|0;d=d|0;e=e|0;b=b+d|0;if(atb(b)|0){c[b>>2]=e;return}else{a[b>>0]=e;a[b+1>>0]=e>>8;a[b+2>>0]=e>>16;a[b+3>>0]=e>>24;return}}function pya(a,b){a=a|0;b=b|0;_cb(a,56518);IWa(a,140151)|0;Zbb(a,b);return}function qya(a,b,d){a=a|0;b=b|0;d=d|0;a=Ggb(a+152|0)|0;if(c[37104]|0)Ig(a,56736,b,d);c[a+8>>2]=b;c[a+12>>2]=d;m4a(a,1);FHa(a);return a|0}function rya(a,b,d){a=a|0;b=b|0;d=d|0;a=Ggb(a+152|0)|0;if(c[37104]|0)Ig(a,56719,b,d);c[a+8>>2]=b;c[a+12>>2]=d;m4a(a,0);FHa(a);return a|0}function sya(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a+4|0;a=d-b|0;if((a|0)<=0)return;Uv(c[e>>2]|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return}function tya(a){a=a|0;var b=0,d=0;b=a+4|0;d=WCb(c[(c[b>>2]|0)+24>>2]|0)|0;a=a+12|0;mcb(d,c[a>>2]|0,0);PLa(c[b>>2]|0,c[a>>2]|0)|0;return}function uya(a,b){a=a|0;b=b|0;c$a(a,Hdb(c[b>>2]|0)|0);return}function vya(a,b){a=a|0;b=b|0;c$a(a,Idb(c[b>>2]|0)|0);return}function wya(a,b){a=a|0;b=b|0;c$a(a,Jdb(c[b>>2]|0)|0);return}function xya(a,b){a=a|0;b=b|0;c$a(a,Kdb(c[b>>2]|0)|0);return}function yya(a,b){a=a|0;b=b|0;c$a(a,Ldb(c[b>>2]|0)|0);return}function zya(a,b){a=a|0;b=b|0;d$a(a,Hdb(c[b>>2]|0)|0);return}function Aya(a,b){a=a|0;b=b|0;d$a(a,Idb(c[b>>2]|0)|0);return}function Bya(a,b){a=a|0;b=b|0;d$a(a,Jdb(c[b>>2]|0)|0);return}function Cya(a,b){a=a|0;b=b|0;d$a(a,Kdb(c[b>>2]|0)|0);return}function Dya(a,b){a=a|0;b=b|0;d$a(a,Ldb(c[b>>2]|0)|0);return}function Eya(a,b){a=a|0;b=b|0;e0a(a,wdb(c[b>>2]|0)|0);return}function Fya(a,b){a=a|0;b=b|0;C0a(a,gdb(c[b>>2]|0)|0);return}function Gya(a,b){a=a|0;b=b|0;C0a(a,hdb(c[b>>2]|0)|0);return}function Hya(a,b){a=a|0;b=b|0;pp(a,Veb(c[b>>2]|0)|0);return}function Iya(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+16>>2]|0;e=WCb(c[d>>2]|0)|0;if((e|0)==(b|0))return b|0;Pwb(d,b);pI(a+44|0,e,b);return b|0}function Jya(a){a=a|0;var b=0,c=0;b=mla(56)|0;n=0;ca(493,b|0);c=n;n=0;if(c&1){c=sa()|0;P()|0;RCb(b);Ea(c|0)}else{C9(a,b);return}}function Kya(b,d){b=b|0;d=d|0;c[b>>2]=d;nla(b+4|0,42);a[b+2504>>0]=1;return}function Lya(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==52860?a+4|0:0)|0}function Mya(a){a=a|0;gP(a+44|0);nQa(a+64|0);return}function Nya(a,b){a=a|0;b=b|0;Dlb(a,b);JE(a+-16+16|0,b);Dlb(a,0);return}function Oya(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;WN(a,b);b=b+16|0}return}function Pya(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;XN(a,b);b=b+16|0}return}function Qya(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;YN(a,b);b=b+16|0}return}function Rya(a,b){a=a|0;b=b|0;Vkb(a,b);YXa(a+-16|0,b);Vkb(a,0);return}function Sya(a,b){a=a|0;b=b|0;Vkb(a,b);MH(a+-16|0,b);Vkb(a,0);return}function Tya(a,b){a=a|0;b=b|0;a=a+b|0;b=a;b=d[b>>0]|d[b+1>>0]<<8|d[b+2>>0]<<16|d[b+3>>0]<<24;a=a+4|0;O(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0);return b|0}function Uya(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;Cr(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function Vya(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;Dr(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function Wya(a){a=a|0;W3(a,c[a+4>>2]|0);return}function Xya(a){a=a|0;cka(a);return}function Yya(a,b){a=a|0;b=b|0;e0a(a,xdb(c[b>>2]|0)|0);return}function Zya(a,b){a=a|0;b=b|0;e0a(a,ydb(c[b>>2]|0)|0);return}function _ya(a,b){a=a|0;b=b|0;e0a(a,zdb(c[b>>2]|0)|0);return}function $ya(a,b){a=a|0;b=b|0;e0a(a,Adb(c[b>>2]|0)|0);return}function aza(a,b){a=a|0;b=b|0;C0a(a,wdb(c[b>>2]|0)|0);return}function bza(a){a=a|0;var b=0;switch(a<<24>>24|0){case 105:{b=1;break}case 106:{b=2;break}case 102:{b=3;break}case 100:{b=4;break}case 86:{b=5;break}case 118:{b=0;break}default:Ta()}return b|0}function cza(a,b){a=a|0;b=b|0;c$a(a,feb(c[b>>2]|0)|0);return}function dza(a,b){a=a|0;b=b|0;c$a(a,geb(c[b>>2]|0)|0);return}function eza(a,b){a=a|0;b=b|0;c$a(a,heb(c[b>>2]|0)|0);return}function fza(a,b){a=a|0;b=b|0;c$a(a,ieb(c[b>>2]|0)|0);return}function gza(a,b){a=a|0;b=b|0;d$a(a,feb(c[b>>2]|0)|0);return}function hza(a,b){a=a|0;b=b|0;d$a(a,geb(c[b>>2]|0)|0);return}function iza(a,b){a=a|0;b=b|0;d$a(a,heb(c[b>>2]|0)|0);return}function jza(a,b){a=a|0;b=b|0;d$a(a,ieb(c[b>>2]|0)|0);return}function kza(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;bO(a,b);b=b+16|0}return}function lza(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;cO(a,b);b=b+16|0}return}function mza(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;hO(a,b);b=b+16|0}return}function nza(a,b){a=a|0;b=b|0;Vkb(a,b);Fh(a+-16|0,b);Vkb(a,0);return}function oza(a,b){a=a|0;b=b|0;var d=0;d=bkb(c[a+4>>2]|0)|0;b=$db(a,Vr(b,1)|0)|0;c[d+8>>2]=b;dmb(d);return d|0}function pza(b,c){b=b|0;c=c|0;a[b+104>>0]=1;c=c+44|0;qP(b+44|0,c);EN(b+16|0,c);return}function qza(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+16|0;e=f;if(c[37104]|0)IWa(150452,67316)|0;Ml(e,a,b,d,0,0,0);yb=f;return c[e>>2]|0}function rza(a,b){a=a|0;b=b|0;a=a+16|0;if((Av(c[a>>2]|0)|0)!=(b<<24>>24|0)){b=0;return b|0}St(c[a>>2]|0)|0;b=1;return b|0}function sza(a){a=a|0;Mja(a);return}function tza(a,b){a=a|0;b=b|0;e0a(a,Hdb(c[b>>2]|0)|0);return}function uza(a,b){a=a|0;b=b|0;e0a(a,Idb(c[b>>2]|0)|0);return}function vza(a,b){a=a|0;b=b|0;e0a(a,Jdb(c[b>>2]|0)|0);return}function wza(a,b){a=a|0;b=b|0;e0a(a,Kdb(c[b>>2]|0)|0);return}function xza(a,b){a=a|0;b=b|0;e0a(a,Ldb(c[b>>2]|0)|0);return}function yza(a,b){a=a|0;b=b|0;C0a(a,xdb(c[b>>2]|0)|0);return}function zza(a,b){a=a|0;b=b|0;C0a(a,ydb(c[b>>2]|0)|0);return}function Aza(a,b){a=a|0;b=b|0;C0a(a,zdb(c[b>>2]|0)|0);return}function Bza(a,b){a=a|0;b=b|0;C0a(a,Adb(c[b>>2]|0)|0);return}function Cza(a,b){a=a|0;b=b|0;o1a(a,gdb(c[b>>2]|0)|0);return}function Dza(a,b){a=a|0;b=b|0;o1a(a,hdb(c[b>>2]|0)|0);return}function Eza(b,d){b=b|0;d=d|0;var e=0;c[b>>2]=d;c[b+4>>2]=c[d+8>>2];e=(c[d+48>>2]|0)!=0;a[b+8>>0]=e&1;if(!e)return;e=RE(d)|0;c[b+12>>2]=e;return}function Fza(a,b){a=a|0;b=b|0;var d=0;b=b+8|0;d=c[b>>2]|0;if(!(Wjb(c[a+24>>2]|0,d)|0))return;c[b>>2]=c[(c[c[a+28>>2]>>2]|0)+(d<<2)>>2];return}function Gza(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=mla(24)|0;Zmb(g);c[g+8>>2]=c[b>>2];c[g+12>>2]=d;c[g+16>>2]=e;a[g+20>>0]=(f|0)==0&1;return g|0}function Hza(a,b){a=a|0;b=b|0;c$a(a,Keb(c[b>>2]|0)|0);return}function Iza(a,b){a=a|0;b=b|0;c$a(a,Leb(c[b>>2]|0)|0);return}function Jza(a,b){a=a|0;b=b|0;c$a(a,Deb(c[b>>2]|0)|0);return}function Kza(a,b){a=a|0;b=b|0;d$a(a,Keb(c[b>>2]|0)|0);return}function Lza(a,b){a=a|0;b=b|0;d$a(a,Leb(c[b>>2]|0)|0);return}function Mza(a,b){a=a|0;b=b|0;d$a(a,Deb(c[b>>2]|0)|0);return}function Nza(a,b){a=a|0;b=b|0;EAa(a,Keb(c[b>>2]|0)|0);return}function Oza(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;iO(a,b);b=b+16|0}return}function Pza(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;jO(a,b);b=b+16|0}return}function Qza(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;kO(a,b);b=b+16|0}return}function Rza(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;lO(a,b);b=b+16|0}return}function Sza(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;mO(a,b);b=b+16|0}return}function Tza(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;oO(a,b);b=b+16|0}return}function Uza(a,b){a=a|0;b=b|0;Vkb(a,b);B7(a+-16|0,b);Vkb(a,0);return}function Vza(a,b){a=a|0;b=b|0;Vkb(a,b);Gu(a+-16|0,b);Vkb(a,0);return}function Wza(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];Cub(a+24|0);return}function Xza(a){a=a|0;t4a(a);c[a>>2]=43872;yib(a+56|0);yib(a+68|0);c[a+84>>2]=0;return}function Yza(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;tr(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function Zza(b,d){b=b|0;d=d|0;if(eCb(c[d+4>>2]|0)|0){d=0;return d|0}if(a[b+93>>0]&1?(c[(c[b+120>>2]|0)+(c[d+8>>2]<<2)>>2]|0)>>>0>1:0){d=0;return d|0}d=1;return d|0}function _za(a,b,d){a=a|0;b=b|0;d=d|0;if(b>>>0>>0){b=(J(c[a+132>>2]|0,b)|0)+d|0;d=(c[a+184>>2]|0)+(b>>>5<<2)|0;c[d>>2]=c[d>>2]|1<<(b&31);return}else ma(76065,75526,74,76076)}function $za(a){a=a|0;if(!(c[37104]|0)){c[37064]=a;return}IWa(Zm(IWa(150452,67064)|0,a)|0,56341)|0;c[37064]=a;return}function aAa(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;if(!((b|0)==0&(c|0)==0))do{e=e+-1|0;a[e>>0]=d[24640+(b&15)>>0]|0|f;b=U4a(b|0,c|0,4)|0;c=P()|0}while(!((b|0)==0&(c|0)==0));return e|0}function bAa(a){a=a|0;h4(a,c[a+4>>2]|0);return}function cAa(a){a=a|0;var b=0;b=a+4|0;$fa(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function dAa(a){a=a|0;var b=0,d=0,e=0;b=mla(12)|0;c[b>>2]=40584;e=a+4|0;d=c[e+4>>2]|0;a=b+4|0;c[a>>2]=c[e>>2];c[a+4>>2]=d;return b|0}function eAa(a,b){a=a|0;b=b|0;C0a(a,Hdb(c[b>>2]|0)|0);return}function fAa(a,b){a=a|0;b=b|0;C0a(a,Idb(c[b>>2]|0)|0);return}function gAa(a,b){a=a|0;b=b|0;C0a(a,Jdb(c[b>>2]|0)|0);return}function hAa(a,b){a=a|0;b=b|0;C0a(a,Kdb(c[b>>2]|0)|0);return}function iAa(a,b){a=a|0;b=b|0;C0a(a,Ldb(c[b>>2]|0)|0);return}function jAa(a,b){a=a|0;b=b|0;o1a(a,wdb(c[b>>2]|0)|0);return}function kAa(a){a=a|0;var b=0;T1a(a);c[a>>2]=44072;b=a+44|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;g[a+64>>2]=1.0;return}function lAa(a,b){a=a|0;b=b|0;var d=0;d=b+4|0;if(!(vub(c[d>>2]|0)|0))return;gQ(b);if((c[d>>2]|0)!=6)return;sz(a,b);return}function mAa(a){a=a|0;var b=0;b=wmb(a)|0;b=b+(uob(a)|0)|0;a=c[a>>2]|0;b=b+((Yrb(a+84|0)|0)&1)|0;return b+((Yrb(a+48|0)|0)&1)|0}function nAa(a,b){a=a|0;b=b|0;a=IWa(c[a>>2]|0,139997)|0;IWa(a,c[b+4>>2]|0)|0;return}function oAa(a,b){a=a|0;b=b|0;var d=0;d=c[a>>2]|0;if((((c[a+4>>2]|0)-d|0)/12|0)>>>0>b>>>0)return d+(b*12|0)|0;else zpa();return 0}function pAa(b){b=b|0;var d=0;if((Eb[c[(c[b>>2]|0)+36>>2]&511](b)|0)==-1)b=-1;else{d=b+12|0;b=c[d>>2]|0;c[d>>2]=b+1;b=Qzb(a[b>>0]|0)|0}return b|0}function qAa(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;while(1){if((d|0)==(f|0))break;a=c[d>>2]|0;if(a>>>0<128)a=e[30160+(a<<1)>>1]|0;else a=0;b[g>>1]=a;g=g+2|0;d=d+4|0}return f|0}function rAa(a,b){a=a|0;b=b|0;e0a(a,feb(c[b>>2]|0)|0);return}function sAa(a,b){a=a|0;b=b|0;e0a(a,geb(c[b>>2]|0)|0);return}function tAa(a,b){a=a|0;b=b|0;e0a(a,heb(c[b>>2]|0)|0);return}function uAa(a,b){a=a|0;b=b|0;e0a(a,ieb(c[b>>2]|0)|0);return}function vAa(a,b){a=a|0;b=b|0;OK(a,cfb(c[b>>2]|0)|0);return}function wAa(a,b){a=a|0;b=b|0;kaa(a,Teb(c[b>>2]|0)|0);return}function xAa(a,b){a=a|0;b=b|0;Eka(a,Veb(c[b>>2]|0)|0);return}function yAa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;pO(a,b);b=b+16|0}return}function zAa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;qO(a,b);b=b+16|0}return}function AAa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;rO(a,b);b=b+16|0}return}function BAa(a,b){a=a|0;b=b|0;Vkb(a,b);A$(a+-16|0,b);Vkb(a,0);return}function CAa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+44>>2]|0;Fr(g,b,d,e,f,WCb(c[a+32>>2]|0)|0);return}function DAa(a){a=a|0;if(!(c[37104]|0)){c[37065]=a;return}IWa(Zm(IWa(150452,67121)|0,a)|0,56341)|0;c[37065]=a;return}function EAa(a,b){a=a|0;b=b|0;a=c[a+24>>2]|0;if(!(_la(a,c[b+12>>2]|0)|0))return;Nra(a,b);return}function FAa(a,b){a=a|0;b=b|0;o1a(a,xdb(c[b>>2]|0)|0);return}function GAa(a,b){a=a|0;b=b|0;o1a(a,ydb(c[b>>2]|0)|0);return}function HAa(a,b){a=a|0;b=b|0;o1a(a,zdb(c[b>>2]|0)|0);return}function IAa(a,b){a=a|0;b=b|0;o1a(a,Adb(c[b>>2]|0)|0);return}function JAa(a,b){a=a|0;b=b|0;TL(a,b+44|0);return}function KAa(a,b){a=a|0;b=b|0;UL(a,b+44|0);return}function LAa(a,b){a=a|0;b=b|0;VL(a,b+44|0);return}function MAa(a,b){a=a|0;b=b|0;WL(a,b+44|0);return}function NAa(a,b){a=a|0;b=b|0;XL(a,b+44|0);return}function OAa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+16|0;g=f;c[g>>2]=e;e=Feb(b)|0;b=Goa(a,d,g)|0;if(e|0)Feb(e)|0;yb=f;return b|0}function PAa(a,b){a=a|0;b=b|0;c$a(a,cfb(c[b>>2]|0)|0);return}function QAa(a,b){a=a|0;b=b|0;c$a(a,Teb(c[b>>2]|0)|0);return}function RAa(a,b){a=a|0;b=b|0;c$a(a,Ueb(c[b>>2]|0)|0);return}function SAa(a,b){a=a|0;b=b|0;c$a(a,Veb(c[b>>2]|0)|0);return}function TAa(a,b){a=a|0;b=b|0;d$a(a,cfb(c[b>>2]|0)|0);return}function UAa(a,b){a=a|0;b=b|0;d$a(a,Teb(c[b>>2]|0)|0);return}function VAa(a,b){a=a|0;b=b|0;d$a(a,Ueb(c[b>>2]|0)|0);return}function WAa(a,b){a=a|0;b=b|0;d$a(a,Veb(c[b>>2]|0)|0);return}function XAa(a,b){a=a|0;b=b|0;e0a(a,Keb(c[b>>2]|0)|0);return}function YAa(a,b){a=a|0;b=b|0;e0a(a,Leb(c[b>>2]|0)|0);return}function ZAa(a,b){a=a|0;b=b|0;e0a(a,Deb(c[b>>2]|0)|0);return}function _Aa(a,b){a=a|0;b=b|0;C0a(a,feb(c[b>>2]|0)|0);return}function $Aa(a,b){a=a|0;b=b|0;C0a(a,geb(c[b>>2]|0)|0);return}function aBa(a,b){a=a|0;b=b|0;C0a(a,heb(c[b>>2]|0)|0);return}function bBa(a,b){a=a|0;b=b|0;C0a(a,ieb(c[b>>2]|0)|0);return}function cBa(a,b){a=a|0;b=b|0;Dlb(a,b);bk(a+-16|0,b);Dlb(a,0);return}function dBa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;uO(a,b);b=b+16|0}return}function eBa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;zO(a,b);b=b+16|0}return}function fBa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;AO(a,b);b=b+16|0}return}function gBa(a,b,d){a=a|0;b=b|0;d=d|0;switch(b|0){case -1:case 0:{a=c[a>>2]|0;if((a|0)<0|(d&64)==0)if((a|0)<0)a=(d&64)==0;else a=0;else a=1;break}default:a=1}return a|0}function hBa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;xr(f,b,d,e,128767,WCb(c[a+32>>2]|0)|0);return}function iBa(a){a=a|0;u4(a,c[a+4>>2]|0);return}function jBa(a){a=a|0;v4(a,c[a+4>>2]|0);return}function kBa(a){a=a|0;w4(a,c[a+4>>2]|0);return}function lBa(a){a=a|0;x4(a,c[a+4>>2]|0);return}function mBa(a){a=a|0;y4(a,c[a+4>>2]|0);return}function nBa(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;while(1){if((e|0)==(f|0)){e=f;break}a=c[e>>2]|0;if(a>>>0>=128)break;if(!((b[30160+(a<<1)>>1]&d)<<16>>16))break;e=e+4|0}return e|0}function oBa(){var a=0,b=0,d=0;a=mla(44)|0;b=a;d=b+44|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));NIa(a);return a|0}function pBa(a,b){a=a|0;b=b|0;o1a(a,Hdb(c[b>>2]|0)|0);return}function qBa(a,b){a=a|0;b=b|0;o1a(a,Idb(c[b>>2]|0)|0);return}function rBa(a,b){a=a|0;b=b|0;o1a(a,Jdb(c[b>>2]|0)|0);return}function sBa(a,b){a=a|0;b=b|0;o1a(a,Kdb(c[b>>2]|0)|0);return}function tBa(a,b){a=a|0;b=b|0;o1a(a,Ldb(c[b>>2]|0)|0);return}function uBa(a,b){a=a|0;b=b|0;SH(a,Ffb(c[b>>2]|0)|0);return}function vBa(a){a=a|0;var b=0,d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;b=mla(48)|0;c[f>>2]=c[a+44>>2];c[e>>2]=c[f>>2];nYa(b,e);yb=d;return b|0}function wBa(a,b){a=a|0;b=b|0;a=c[a+24>>2]|0;if(!(_la(a,c[b+24>>2]|0)|0))return;Nra(a,b);return}function xBa(a){a=a|0;_7(a);return}function yBa(a){a=a|0;Bna(a+52|0);Ama(a+64|0);return}function zBa(a,b){a=a|0;b=b|0;c$a(a,dfb(c[b>>2]|0)|0);return}function ABa(a,b){a=a|0;b=b|0;c$a(a,efb(c[b>>2]|0)|0);return}function BBa(a,b){a=a|0;b=b|0;c$a(a,ffb(c[b>>2]|0)|0);return}function CBa(a,b){a=a|0;b=b|0;c$a(a,tfb(c[b>>2]|0)|0);return}function DBa(a,b){a=a|0;b=b|0;c$a(a,ufb(c[b>>2]|0)|0);return}function EBa(a,b){a=a|0;b=b|0;d$a(a,dfb(c[b>>2]|0)|0);return}function FBa(a,b){a=a|0;b=b|0;d$a(a,efb(c[b>>2]|0)|0);return}function GBa(a,b){a=a|0;b=b|0;d$a(a,ffb(c[b>>2]|0)|0);return}function HBa(a,b){a=a|0;b=b|0;d$a(a,tfb(c[b>>2]|0)|0);return}function IBa(a,b){a=a|0;b=b|0;d$a(a,ufb(c[b>>2]|0)|0);return}function JBa(a,b){a=a|0;b=b|0;C0a(a,Keb(c[b>>2]|0)|0);return}function KBa(a,b){a=a|0;b=b|0;C0a(a,Leb(c[b>>2]|0)|0);return}function LBa(a,b){a=a|0;b=b|0;C0a(a,Deb(c[b>>2]|0)|0);return}function MBa(a,b){a=a|0;b=b|0;lj(a,ufb(c[b>>2]|0)|0);return}function NBa(a,b){a=a|0;b=b|0;bt(a,cfb(c[b>>2]|0)|0);return}function OBa(a,b){a=a|0;b=b|0;EAa(a,dfb(c[b>>2]|0)|0);return}function PBa(a,b){a=a|0;b=b|0;Vkb(a,b);rf(a+-16|0,b);Vkb(a,0);return}function QBa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;BO(a,b);b=b+16|0}return}function RBa(b){b=b|0;var d=0;d=c[b+44>>2]|0;b=c[b+32>>2]|0;WCb(b)|0;b=(pm(d,b+8|0)|0)+8|0;a[b>>0]=0;return}function SBa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;Sqa(f,b,d,e,WCb(c[a+32>>2]|0)|0);return}function TBa(a){a=a|0;I4(a,c[a+4>>2]|0);return}function UBa(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{egb(b);b=(c[d>>2]|0)+24|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function VBa(a,b){a=a|0;b=b|0;if(!a){b=oa(4)|0;c[b>>2]=0;Nxb(b);za(b|0,37944,379)}else return Gb[c[(c[a>>2]|0)+24>>2]&255](a,b)|0;return 0}function WBa(a,b){a=a|0;b=b|0;_L(a,b+44|0);return}function XBa(a,b){a=a|0;b=b|0;$L(a,b+44|0);return}function YBa(a,b){a=a|0;b=b|0;aM(a,b+44|0);return}function ZBa(a,b){a=a|0;b=b|0;bM(a,b+44|0);return}function _Ba(a,b){a=a|0;b=b|0;cM(a,b+44|0);return}function $Ba(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[d+108>>2]|0;b=d+112|0;a=c[b>>2]|0;while(1){if((a|0)==(e|0))break;d=a+-16|0;Nrb(d);a=d}c[b>>2]=e;return}function aCa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=c[b+16>>2];return}function bCa(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=b;b=(Mba(a+52|0,e)|0)!=(a+56|0);yb=d;return b|0}function cCa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=yb;yb=yb+16|0;e=d+4|0;f=d;Cub(f);c[e>>2]=c[f>>2];b=MG(a,e,b)|0;yb=d;return b|0}function dCa(a,b){a=a|0;b=b|0;c$a(a,Efb(c[b>>2]|0)|0);return}function eCa(a,b){a=a|0;b=b|0;c$a(a,vfb(c[b>>2]|0)|0);return}function fCa(a,b){a=a|0;b=b|0;c$a(a,wfb(c[b>>2]|0)|0);return}function gCa(a,b){a=a|0;b=b|0;c$a(a,xfb(c[b>>2]|0)|0);return}function hCa(a,b){a=a|0;b=b|0;c$a(a,Ffb(c[b>>2]|0)|0);return}function iCa(a,b){a=a|0;b=b|0;d$a(a,Efb(c[b>>2]|0)|0);return}function jCa(a,b){a=a|0;b=b|0;d$a(a,vfb(c[b>>2]|0)|0);return}function kCa(a,b){a=a|0;b=b|0;d$a(a,wfb(c[b>>2]|0)|0);return}function lCa(a,b){a=a|0;b=b|0;d$a(a,xfb(c[b>>2]|0)|0);return}function mCa(a,b){a=a|0;b=b|0;d$a(a,Ffb(c[b>>2]|0)|0);return}function nCa(a,b){a=a|0;b=b|0;e0a(a,cfb(c[b>>2]|0)|0);return}function oCa(a,b){a=a|0;b=b|0;e0a(a,Teb(c[b>>2]|0)|0);return}function pCa(a,b){a=a|0;b=b|0;e0a(a,Ueb(c[b>>2]|0)|0);return}function qCa(a,b){a=a|0;b=b|0;e0a(a,Veb(c[b>>2]|0)|0);return}function rCa(a,b){a=a|0;b=b|0;o1a(a,feb(c[b>>2]|0)|0);return}function sCa(a,b){a=a|0;b=b|0;o1a(a,geb(c[b>>2]|0)|0);return}function tCa(a,b){a=a|0;b=b|0;o1a(a,heb(c[b>>2]|0)|0);return}function uCa(a,b){a=a|0;b=b|0;o1a(a,ieb(c[b>>2]|0)|0);return}function vCa(a,b){a=a|0;b=b|0;Vkb(a,b);sqa(a+-16|0,b);Vkb(a,0);return}function wCa(a,b){a=a|0;b=b|0;Vkb(a,b);zB(a+-16|0,b);Vkb(a,0);return}function xCa(a,b){a=a|0;b=b|0;Dlb(a,b);At(a+-16|0,b);Dlb(a,0);return}function yCa(a,b){a=a|0;b=b|0;Vkb(a,b);iI(a,b);Vkb(a,0);return}function zCa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;zr(f,b,d,e,132195,WCb(c[a+32>>2]|0)|0);return}function ACa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;Ar(f,b,d,e,132250,WCb(c[a+32>>2]|0)|0);return}function BCa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;Br(f,b,d,e,131228,WCb(c[a+32>>2]|0)|0);return}function CCa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=yb;yb=yb+16|0;e=f;c[e>>2]=c[d>>2];a=Hb[c[(c[a>>2]|0)+16>>2]&255](a,b,e)|0;if(a)c[d>>2]=c[e>>2];yb=f;return a&1|0}function DCa(a){a=a|0;N4(a,c[a+4>>2]|0);return}function ECa(b){b=b|0;if((a[147504]|0)==0?mlb(147504)|0:0){c[37852]=0;c[37853]=0;c[37854]=0;D8(151408,136860,Zzb(136860)|0)}return 151408}function FCa(b){b=b|0;if((a[147512]|0)==0?mlb(147512)|0:0){c[37855]=0;c[37856]=0;c[37857]=0;D8(151420,136869,Zzb(136869)|0)}return 151420}function GCa(b){b=b|0;if((a[147520]|0)==0?mlb(147520)|0:0){c[37858]=0;c[37859]=0;c[37860]=0;D8(151432,136881,Zzb(136881)|0)}return 151432}function HCa(b){b=b|0;if((a[147496]|0)==0?mlb(147496)|0:0){c[37849]=0;c[37850]=0;c[37851]=0;D8(151396,136851,Zzb(136851)|0)}return 151396}function ICa(){var a=0,b=0,d=0;a=mla(60)|0;b=a;d=b+60|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));yKa(a);return a|0}function JCa(a){a=a|0;var b=0,d=0,e=0;d=c[a+140>>2]|0;b=a+144|0;a=c[b>>2]|0;while(1){if((a|0)==(d|0))break;e=a+-12|0;Chb(e);a=e}c[b>>2]=d;return}function KCa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;Jr(f,b,0,d,e,WCb(c[a+32>>2]|0)|0);return}function LCa(a){a=a|0;var b=0;b=mla(24)|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;Zmb(b);c[a>>2]=b;return}function MCa(a){a=a|0;Z6(a);return}function NCa(a){a=a|0;var b=0;b=a+4|0;a=c[b>>2]|0;c[b>>2]=0;if(!a)return;Rb[c[(c[a>>2]|0)+4>>2]&1023](a);return}function OCa(a){a=a|0;var b=0,d=0;if(!a)return;d=a+4|0;b=c[d>>2]|0;c[d>>2]=b+-1;if(b|0)return;Rb[c[(c[a>>2]|0)+8>>2]&1023](a);xOa(a);return}function PCa(a,b){a=a|0;b=b|0;c$a(a,Gfb(c[b>>2]|0)|0);return}function QCa(a,b){a=a|0;b=b|0;d$a(a,Gfb(c[b>>2]|0)|0);return}function RCa(a,b){a=a|0;b=b|0;e0a(a,dfb(c[b>>2]|0)|0);return}function SCa(a,b){a=a|0;b=b|0;e0a(a,efb(c[b>>2]|0)|0);return}function TCa(a,b){a=a|0;b=b|0;e0a(a,ffb(c[b>>2]|0)|0);return}function UCa(a,b){a=a|0;b=b|0;e0a(a,tfb(c[b>>2]|0)|0);return}function VCa(a,b){a=a|0;b=b|0;e0a(a,ufb(c[b>>2]|0)|0);return}function WCa(a,b){a=a|0;b=b|0;C0a(a,cfb(c[b>>2]|0)|0);return}function XCa(a,b){a=a|0;b=b|0;C0a(a,Teb(c[b>>2]|0)|0);return}function YCa(a,b){a=a|0;b=b|0;C0a(a,Ueb(c[b>>2]|0)|0);return}function ZCa(a,b){a=a|0;b=b|0;C0a(a,Veb(c[b>>2]|0)|0);return}function _Ca(a,b){a=a|0;b=b|0;o1a(a,Keb(c[b>>2]|0)|0);return}function $Ca(a,b){a=a|0;b=b|0;o1a(a,Leb(c[b>>2]|0)|0);return}function aDa(a,b){a=a|0;b=b|0;o1a(a,Deb(c[b>>2]|0)|0);return}function bDa(a,b){a=a|0;b=b|0;_H(a,tfb(c[b>>2]|0)|0);return}function cDa(a,b){a=a|0;b=b|0;ut(a,ufb(c[b>>2]|0)|0);return}function dDa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;JO(a,b);b=b+16|0}return}function eDa(a,b){a=a|0;b=b|0;Vkb(a,b);vcb(a+-16|0,b);Vkb(a,0);return}function fDa(a,b){a=a|0;b=b|0;Dlb(a,b);Wc(a+-16|0,b);Dlb(a,0);return}function gDa(b){b=b|0;var d=0;if(a[b+12>>0]&1)BM(IWa(150620,118161)|0);d=IF(b)|0;c[b+40>>2]=d;return}function hDa(a,b){a=a|0;b=b|0;return CU(a,0,b)|0}function iDa(a){a=a|0;V4(a,c[a+4>>2]|0);return}function jDa(b){b=b|0;if((a[147584]|0)==0?mlb(147584)|0:0){c[37869]=0;c[37870]=0;c[37871]=0;CK(151476,48372,Yzb(48372)|0)}return 151476}function kDa(b){b=b|0;if((a[147592]|0)==0?mlb(147592)|0:0){c[37872]=0;c[37873]=0;c[37874]=0;CK(151488,48408,Yzb(48408)|0)}return 151488}function lDa(b){b=b|0;if((a[147600]|0)==0?mlb(147600)|0:0){c[37875]=0;c[37876]=0;c[37877]=0;CK(151500,48456,Yzb(48456)|0)}return 151500}function mDa(b){b=b|0;if((a[147576]|0)==0?mlb(147576)|0:0){c[37866]=0;c[37867]=0;c[37868]=0;CK(151464,48336,Yzb(48336)|0)}return 151464}function nDa(a,b){a=a|0;b=b|0;var d=0;c[b>>2]=40584;d=a+4|0;a=c[d+4>>2]|0;b=b+4|0;c[b>>2]=c[d>>2];c[b+4>>2]=a;return}function oDa(a,b){a=a|0;b=b|0;wBa(a,vfb(c[b>>2]|0)|0);return}function pDa(a,b){a=a|0;b=b|0;iJ(a,wfb(c[b>>2]|0)|0);return}function qDa(a,b){a=a|0;b=b|0;jJ(a,Ffb(c[b>>2]|0)|0);return}function rDa(a,b){a=a|0;b=b|0;b=C8(a+176|0,b)|0;if((b|0)==(a+180|0)){a=0;return a|0}a=c[b+20>>2]|0;return a|0}function sDa(a){a=a|0;egb(a);egb(a+24|0);egb(a+48|0);egb(a+72|0);egb(a+96|0);egb(a+120|0);egb(a+144|0);egb(a+168|0);return}function tDa(a,b){a=a|0;b=b|0;var d=0,e=0;e=y2(b)|0;d=mla(e+13|0)|0;c[d>>2]=e;c[d+4>>2]=e;c[d+8>>2]=0;d=Ryb(d)|0;Uv(d|0,b|0,e+1|0)|0;c[a>>2]=d;return}function uDa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=yb;yb=yb+16|0;d=f;c[d>>2]=e;b=Feb(b)|0;d=Rma(a,136422,d)|0;if(b|0)Feb(b)|0;yb=f;return d|0}function vDa(a){a=a|0;var b=0;b=mla(24)|0;c[b+4>>2]=0;c[b+8>>2]=0;c[b>>2]=42448;yib(b+12|0);c[a>>2]=b+12;c[a+4>>2]=b;return}function wDa(a,b){a=a|0;b=b|0;e0a(a,Efb(c[b>>2]|0)|0);return}function xDa(a,b){a=a|0;b=b|0;e0a(a,vfb(c[b>>2]|0)|0);return}function yDa(a,b){a=a|0;b=b|0;e0a(a,wfb(c[b>>2]|0)|0);return}function zDa(a,b){a=a|0;b=b|0;e0a(a,xfb(c[b>>2]|0)|0);return}function ADa(a,b){a=a|0;b=b|0;e0a(a,Ffb(c[b>>2]|0)|0);return}function BDa(a,b){a=a|0;b=b|0;C0a(a,dfb(c[b>>2]|0)|0);return}function CDa(a,b){a=a|0;b=b|0;C0a(a,efb(c[b>>2]|0)|0);return}function DDa(a,b){a=a|0;b=b|0;C0a(a,ffb(c[b>>2]|0)|0);return}function EDa(a,b){a=a|0;b=b|0;C0a(a,tfb(c[b>>2]|0)|0);return}function FDa(a,b){a=a|0;b=b|0;C0a(a,ufb(c[b>>2]|0)|0);return}function GDa(a,b){a=a|0;b=b|0;Fza(a,Keb(c[b>>2]|0)|0);return}function HDa(a,b){a=a|0;b=b|0;Fza(a,Leb(c[b>>2]|0)|0);return}function IDa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;NO(a,b);b=b+16|0}return}function JDa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;RO(a,b);b=b+16|0}return}function KDa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=mla(36)|0;qFa(e,c[b>>2]|0,d);c[a>>2]=e;return}function LDa(a){a=a|0;i5(a,c[a+4>>2]|0);return}function MDa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(dub(a,c[b+8>>2]|0)|0)l6(b,d,e);return}function NDa(b){b=b|0;var d=0,e=0;d=a[b+11>>0]|0;if(d<<24>>24<0)e=c[b+4>>2]|0;else e=d&255;d=a[b+12+11>>0]|0;if(d<<24>>24<0)d=c[b+16>>2]|0;else d=d&255;return d+e|0}function ODa(a,b){a=a|0;b=b|0;c$a(a,Tfb(c[b>>2]|0)|0);return}function PDa(a,b){a=a|0;b=b|0;d$a(a,Tfb(c[b>>2]|0)|0);return}function QDa(a,b){a=a|0;b=b|0;_D(a,Ffb(c[b>>2]|0)|0);return}function RDa(a){a=a|0;c[a>>2]=43872;B7a(a+68|0);B7a(a+56|0);ybb(a);return}function SDa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Gr(e,b,0,d,128256,WCb(c[a+32>>2]|0)|0);return}function TDa(a,b){a=a|0;b=b|0;var c=0,d=0;c=yb;yb=yb+32|0;d=c;tca(d,b);Wp(d,a);TIa(d);yb=c;return}function UDa(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{Cub(b);b=(c[d>>2]|0)+4|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function VDa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;iW(a,d,e);return}function WDa(a,b){a=a|0;b=b|0;e0a(a,Gfb(c[b>>2]|0)|0);return}function XDa(a,b){a=a|0;b=b|0;C0a(a,Efb(c[b>>2]|0)|0);return}function YDa(a,b){a=a|0;b=b|0;C0a(a,vfb(c[b>>2]|0)|0);return}function ZDa(a,b){a=a|0;b=b|0;C0a(a,wfb(c[b>>2]|0)|0);return}function _Da(a,b){a=a|0;b=b|0;C0a(a,xfb(c[b>>2]|0)|0);return}function $Da(a,b){a=a|0;b=b|0;C0a(a,Ffb(c[b>>2]|0)|0);return}function aEa(a,b){a=a|0;b=b|0;o1a(a,cfb(c[b>>2]|0)|0);return}function bEa(a,b){a=a|0;b=b|0;o1a(a,Teb(c[b>>2]|0)|0);return}function cEa(a,b){a=a|0;b=b|0;o1a(a,Ueb(c[b>>2]|0)|0);return}function dEa(a,b){a=a|0;b=b|0;o1a(a,Veb(c[b>>2]|0)|0);return}function eEa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;SO(a,b);b=b+16|0}return}function fEa(b,d){b=b|0;d=d|0;var e=0;e=c[b+4>>2]|0;b=c[b>>2]|0;while(1){if((b|0)==(e|0))break;U7a(d,a[b>>0]|0);b=b+1|0}return}function gEa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;Er(f,b,d,e,129221,WCb(c[a+32>>2]|0)|0);return}function hEa(a,b,d){a=a|0;b=b|0;d=d|0;b=T3a(c[a>>2]|0,b,1)|0;return mQ(a,b,T3a(c[a>>2]|0,d,1)|0)|0}function iEa(a){a=a|0;g4a(a+12|0);sza(a);return}function jEa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;KF(a,d,e);return}function kEa(a,b){a=a|0;b=+b;var d=0,e=0,f=0,g=0;d=yb;yb=yb+16|0;g=d;h[g>>3]=b;g=ekb(g)|0;f=P()|0;e=a;c[e>>2]=g;c[e+4>>2]=f;c[a+16>>2]=4;yb=d;return}function lEa(a,b){a=a|0;b=b|0;b=C8(a+200|0,b)|0;if((b|0)==(a+204|0)){a=0;return a|0}a=c[b+20>>2]|0;return a|0}function mEa(a){a=a|0;xBa(a+4|0);return}function nEa(b,d){b=b|0;d=d|0;if(eCb(c[d+8>>2]|0)|0)vla(b+80|0,d+8|0);if((c[d+4>>2]|0)!=6)return;a[b+26>>0]=1;return}function oEa(a){a=a|0;Gba(a);qfa(a+12|0);return}function pEa(a,b){a=a|0;b=b|0;if((a|0)==(b|0)){b=1;return b|0}if((a|0)==0|(b|0)==0){b=0;return b|0}b=Mdb(a,b)|0;return b|0}function qEa(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=c[b>>2];d=b+4|0;c[a+4>>2]=c[d>>2];e=b+8|0;c[a+8>>2]=c[e>>2];c[b>>2]=0;c[e>>2]=0;c[d>>2]=0;return}function rEa(a,b){a=a|0;b=b|0;C0a(a,Gfb(c[b>>2]|0)|0);return}function sEa(a,b){a=a|0;b=b|0;o1a(a,dfb(c[b>>2]|0)|0);return}function tEa(a,b){a=a|0;b=b|0;o1a(a,efb(c[b>>2]|0)|0);return}function uEa(a,b){a=a|0;b=b|0;o1a(a,ffb(c[b>>2]|0)|0);return}function vEa(a,b){a=a|0;b=b|0;o1a(a,tfb(c[b>>2]|0)|0);return}function wEa(a,b){a=a|0;b=b|0;o1a(a,ufb(c[b>>2]|0)|0);return}function xEa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;ZO(a,b);b=b+16|0}return}function yEa(a,b){a=a|0;b=b|0;if((a|0)==(b|0))return;xz(a,c[b>>2]|0,c[b+4>>2]|0);return}function zEa(a,b){a=a|0;b=b|0;c[a>>2]=39908;c[a+4>>2]=b;c[a+16>>2]=a;return}function AEa(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{egb(b);b=(c[d>>2]|0)+24|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function BEa(a){a=a|0;k3(a,c[a+4>>2]|0);return}function CEa(a){a=a|0;var b=0;b=c[a+4>>2]|0;if((b|0)==6){b=0;return b|0}if(yxb(b)|0){b=0;return b|0}a=d[a+8>>0]|0;b=(Era(b)|0)>>>0>a>>>0;return b|0}function DEa(a,b){a=a|0;b=b|0;e0a(a,Tfb(c[b>>2]|0)|0);return}function EEa(a,b){a=a|0;b=b|0;b=C8(a+212|0,b)|0;if((b|0)==(a+216|0)){a=0;return a|0}a=c[b+20>>2]|0;return a|0}function FEa(a,b){a=a|0;b=b|0;b=C8(a+188|0,b)|0;if((b|0)==(a+192|0)){a=0;return a|0}a=c[b+20>>2]|0;return a|0}function GEa(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;c[b>>2]=d;d=b+4|0;e=b+60|0;f=d;g=f+52|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));a[d+52>>0]=0;c[e>>2]=1;c[b+64>>2]=0;return}function HEa(a,b){a=a|0;b=b|0;if(!(dub(c[b>>2]|0,c[37153]|0)|0))return;rC(a,b+4|0);return}function IEa(a,b){a=a|0;b=b|0;b=HR(a,b)|0;O(P()|0);return b|0}function JEa(a,b){a=a|0;b=b|0;a=Eeb(a)|0;wba(a+12|0,b);_u(a);return a|0}function KEa(a,b){a=a|0;b=b|0;o1a(a,Efb(c[b>>2]|0)|0);return}function LEa(a,b){a=a|0;b=b|0;o1a(a,vfb(c[b>>2]|0)|0);return}function MEa(a,b){a=a|0;b=b|0;o1a(a,wfb(c[b>>2]|0)|0);return}function NEa(a,b){a=a|0;b=b|0;o1a(a,xfb(c[b>>2]|0)|0);return}function OEa(a,b){a=a|0;b=b|0;o1a(a,Ffb(c[b>>2]|0)|0);return}function PEa(a,b){a=a|0;b=b|0;var d=0;d=c[b+28>>2]|0;b=c[b+24>>2]|0;while(1){if((b|0)==(d|0))break;cP(a,b);b=b+16|0}return}function QEa(a){a=a|0;var b=0;b=mla(52)|0;n=0;da(3900,b|0,c[a+44>>2]|0);a=n;n=0;if(a&1){a=sa()|0;P()|0;RCb(b);Ea(a|0)}else return b|0;return 0}function REa(a,b){a=a|0;b=b|0;DXa(a);c[a>>2]=41116;c[a+136>>2]=b;return}function SEa(b,c){b=b|0;c=c|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;a[e>>0]=c;c=ep(b,e,1)|0;yb=d;return c|0}function TEa(a){a=a|0;N5(a,c[a+4>>2]|0);return}function UEa(a,b){a=a|0;b=b|0;C0a(a,Tfb(c[b>>2]|0)|0);return}function VEa(a){a=a|0;c[a>>2]=46396;Pdb(a+72|0);Pdb(a+48|0);gcb(a);return}function WEa(a){a=a|0;c[a>>2]=44152;Vob(a+72|0);iib(a+60|0);Vob(a+48|0);gcb(a);return}function XEa(a){a=a|0;var b=0;b=mla(48)|0;ata(b,c[a+44>>2]|0);return b|0}function YEa(a,b){a=a|0;b=b|0;o1a(a,Gfb(c[b>>2]|0)|0);return}function ZEa(a,b){a=a|0;b=b|0;FGa(a,Tfb(c[b>>2]|0)|0);return}function _Ea(){var a=0,b=0;a=mla(280)|0;LL(a|0,0,280)|0;n=0;ca(518,a|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;RCb(a);Ea(b|0)}else return a|0;return 0}function $Ea(a,b){a=a|0;b=b|0;C1a(a);c[a>>2]=42048;c[a+44>>2]=b;return}function aFa(a){a=a|0;var b=0,d=0,e=0;b=yb;yb=yb+16|0;e=b+4|0;d=b;c[e>>2]=0;hCb(e);Pwb(d,0);eGa(a,c[e>>2]|0,c[d>>2]|0);yb=b;return}function bFa(a){a=a|0;c[a>>2]=41196;ilb(a+120|0);Khb(a+108|0);CJa(a+44|0);gcb(a);return}function cFa(a,b){a=a|0;b=b|0;var c=0,d=0;c=yb;yb=yb+32|0;d=c;A5(d,a+108|0,b);Arb(d);yb=c;return}function dFa(a){a=a|0;f6(a);return}function eFa(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==52435?a+4|0:0)|0}function fFa(a){a=a|0;hhb(a);a=a+36|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function gFa(a){a=a|0;c[a>>2]=42408;Vob(a+88|0);jab(a+64|0);RYa(a+44|0);$fb(a);return}function hFa(a,b){a=a|0;b=b|0;BM(qy(a,b,0,1)|0);return b|0}function iFa(a,b){a=a|0;b=b|0;var d=0;d=c[a+4>>2]|0;a=Dna(c[a>>2]|0,d,b)|0;if((a|0)==(d|0)){d=0;return d|0}d=(c[a>>2]|0)==(b|0);return d|0}function jFa(a){a=a|0;var b=0;b=mla(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;Fbb(b);c[a>>2]=b;return}function kFa(a,b){a=a|0;b=b|0;var d=0;d=WCb(c[a+36>>2]|0)|0;Mf(b,d,pob(c[a+40>>2]|0)|0);return}function lFa(a){a=a|0;var b=0;b=a+4|0;gka(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function mFa(a){a=a|0;g6(a,c[a+4>>2]|0);return}function nFa(a){a=a|0;h6(a,c[a+4>>2]|0);return}function oFa(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;b=jfb(b)|0;c[b+8>>2]=d;c[b+12>>2]=e;a[b+16>>0]=f;k7(b);return b|0}function pFa(a,b){a=a|0;b=b|0;o1a(a,Tfb(c[b>>2]|0)|0);return}function qFa(b,d,e){b=b|0;d=d|0;e=e|0;yib(b);yib(b+12|0);c[b+24>>2]=d;c[b+28>>2]=e;a[b+32>>0]=0;return}function rFa(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[a+16>>2]=1.0;b=a+20|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+36>>2]=1.0;return}function sFa(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{Cub(b);b=(c[d>>2]|0)+4|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function tFa(a,b){a=a|0;b=b|0;A6a(a+16|0,gdb(c[b>>2]|0)|0);return}function uFa(a,b){a=a|0;b=b|0;A6a(a+16|0,hdb(c[b>>2]|0)|0);return}function vFa(a){a=a|0;var b=0;b=mab(c[a+12>>2]|0,1)|0;c[a+4>>2]=b;c[a>>2]=b;c[a+8>>2]=b+24;return}function wFa(a){a=a|0;t6(a,c[a+4>>2]|0);return}function xFa(a){a=a|0;var b=0,d=0;b=c[a+4>>2]|0;d=b+4|0;c[(c[b>>2]|0)+4>>2]=c[d>>2];c[c[d>>2]>>2]=c[b>>2];a=a+8|0;c[a>>2]=(c[a>>2]|0)+-1;RCb(b);return}function yFa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=uCb(Fab(a)|0)|0;c[e>>2]=b;b=tCb(Fab(a)|0)|0;c[b>>2]=d;return a|0}function zFa(a,b){a=a|0;b=b|0;IWa(150452,106958)|0;qH(a,b);IWa(150452,106962)|0;return}function AFa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Mr(e,b,0,d,131345,WCb(c[a+32>>2]|0)|0);return}function BFa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Nr(e,b,0,d,129638,WCb(c[a+32>>2]|0)|0);return}function CFa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Or(e,b,0,d,127587,WCb(c[a+32>>2]|0)|0);return}function DFa(a,b){a=a|0;b=b|0;SEa(a,34)|0;IWa(a,b)|0;return SEa(a,34)|0}function EFa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=43156;c[a+4>>2]=b;c[a+8>>2]=d;c[a+12>>2]=e;c[a+16>>2]=a;return}function FFa(a,b){a=a|0;b=b|0;cF(a,cfb(c[b>>2]|0)|0);return}function GFa(a,b){a=a|0;b=b|0;A6a(a+16|0,wdb(c[b>>2]|0)|0);return}function HFa(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 IFa(a){a=a|0;K6(a,c[a+4>>2]|0);return}function JFa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return ITa(a,Uha(a,b,c)|0,d,e)|0}function KFa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;a=Lib(a)|0;c[a+8>>2]=b;c[a+12>>2]=d;c[a+16>>2]=e;kma(a,f);return a|0}function LFa(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;zsb(a);return}function MFa(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;Yb[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function NFa(a){a=+a;var b=0;b=(g[i>>2]=a,c[i>>2]|0);switch((b>>>23&255)<<24>>24){case 0:{b=(b&2147483647|0)==0?2:3;break}case -1:{b=(b&8388607|0)==0&1;break}default:b=4}return b|0}function OFa(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=41756;c[a+4>>2]=b;c[a+8>>2]=d;c[a+16>>2]=a;return}function PFa(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;e=c[a+8>>2]|0;d=(c[a>>2]|0)+(e>>1)|0;if(!(e&1))a=b;else a=c[(c[d>>2]|0)+b>>2]|0;Rb[a&1023](d);return}function QFa(a){a=a|0;HUa(a);a=a+32|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function RFa(a,b){a=a|0;b=b|0;A6a(a+16|0,xdb(c[b>>2]|0)|0);return}function SFa(a,b){a=a|0;b=b|0;A6a(a+16|0,ydb(c[b>>2]|0)|0);return}function TFa(a,b){a=a|0;b=b|0;A6a(a+16|0,zdb(c[b>>2]|0)|0);return}function UFa(a,b){a=a|0;b=b|0;A6a(a+16|0,Adb(c[b>>2]|0)|0);return}function VFa(a,b){a=a|0;b=b|0;if(!a)ma(73152,72707,1454,72885);else{b=Hb[c[(c[a>>2]|0)+8>>2]&255](a,b,0)|0;s4(b);return b|0}return 0}function WFa(a){a=a|0;T6(a,c[a+4>>2]|0);return}function XFa(a){a=a|0;U6(a,c[a+4>>2]|0);return}function YFa(a){a=a|0;Gma(a);return}function ZFa(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;while(1){if((e|0)==(f|0)){e=f;break}a=c[e>>2]|0;if(a>>>0<128?(b[30160+(a<<1)>>1]&d)<<16>>16:0)break;e=e+4|0}return e|0}function _Fa(a,b){a=a|0;b=b|0;var d=0;d=rrb(b,1)|0;if(!(K0a(WCb(c[d>>2]|0)|0)|0))return;d=rrb(b,1)|0;U_(a,c[d>>2]|0);return}function $Fa(a){a=a|0;switch(a|0){case 46:case 42:case 41:case 40:case 39:case 34:case 32:case 30:case 28:case 26:case 24:case 23:case 22:case 21:case 5:case 3:case 1:{a=1;break}default:a=0}return a|0}function aGa(a,b){a=a|0;b=b|0;z2a(a);c[a>>2]=44392;c[a+44>>2]=b;return}function bGa(a){a=a|0;c[a>>2]=40996;pK(a+84|0);Pdb(a+64|0);y5a(a+44|0);gcb(a);return}function cGa(a){a=a|0;var b=0,d=0,e=0;b=mla(68)|0;d=b;e=d+68|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));XRa(b);c[a>>2]=b;return}function dGa(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;b=(c[d>>2]|0)+4|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function eGa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;fCb(a);hCb(a+16|0);c[a>>2]=7;e=uCb(a)|0;c[e>>2]=b;a=tCb(a)|0;c[a>>2]=d;return}function fGa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=jeb(a)|0;c[a+8>>2]=b;c[a+12>>2]=d;c[a+16>>2]=e;Kja(a);return a|0}function gGa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Kfb(a)|0;c[a+8>>2]=e;c[a+12>>2]=b;c[a+16>>2]=d;MVa(a);return a|0}function hGa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=lgb(a)|0;c[a+8>>2]=b;c[a+12>>2]=d;c[a+16>>2]=e;Wna(a);return a|0}function iGa(a,b){a=a|0;b=b|0;var c=0,d=0;c=a;a=5381;while(1){if(!c)break;d=a*33^c&255;c=c>>>8;a=d}c=b;while(1){if(!c)break;d=a*33^c&255;c=c>>>8;a=d}return a|0}function jGa(a,b){a=a|0;b=b|0;A6a(a+16|0,Hdb(c[b>>2]|0)|0);return}function kGa(a,b){a=a|0;b=b|0;A6a(a+16|0,Idb(c[b>>2]|0)|0);return}function lGa(a,b){a=a|0;b=b|0;A6a(a+16|0,Jdb(c[b>>2]|0)|0);return}function mGa(a,b){a=a|0;b=b|0;A6a(a+16|0,Kdb(c[b>>2]|0)|0);return}function nGa(a,b){a=a|0;b=b|0;A6a(a+16|0,Ldb(c[b>>2]|0)|0);return}function oGa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;return $x(f,b,d,e,WCb(c[a+32>>2]|0)|0)|0}function pGa(a,b){a=a|0;b=b|0;var d=0;d=c[a+32>>2]|0;b=Om(a+20|0,b+8|0)|0;c[b>>2]=d;return}function qGa(a){a=a|0;Cna(a);return}function rGa(b,d){b=b|0;d=d|0;var e=0;e=b+8|0;b=d;d=c[e>>2]|0;do{a[d>>0]=0;d=(c[e>>2]|0)+1|0;c[e>>2]=d;b=b+-1|0}while((b|0)!=0);return}function sGa(b){b=b|0;var d=0;d=c[b>>2]|0;do if(d|0){c[b+4>>2]=d;if((d|0)==(b+16|0)){a[b+128>>0]=0;break}else{RCb(d);break}}while(0);return}function tGa(a,b){a=a|0;b=b|0;bs(a,ufb(c[b>>2]|0)|0);return}function uGa(a){a=a|0;var b=0;s$a(a);c[a>>2]=45472;b=a+184|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[a+200>>2]=1.0;return}function vGa(a,b){a=a|0;b=b|0;TGa(a,ufb(c[b>>2]|0)|0);return}function wGa(a,b){a=a|0;b=b|0;A6a(a+16|0,feb(c[b>>2]|0)|0);return}function xGa(a,b){a=a|0;b=b|0;A6a(a+16|0,geb(c[b>>2]|0)|0);return}function yGa(a,b){a=a|0;b=b|0;A6a(a+16|0,heb(c[b>>2]|0)|0);return}function zGa(a,b){a=a|0;b=b|0;A6a(a+16|0,ieb(c[b>>2]|0)|0);return}function AGa(a){a=a|0;switch(a|0){case 0:{a=1;break}case 1:{a=2;break}case 2:{a=4;break}case 3:{a=8;break}case 4:{a=16;break}case 5:{a=32;break}default:a=1<>2]|0;return b|0}function DGa(a){a=a|0;var b=0,d=0,e=0;b=mla(120)|0;d=b;e=d+120|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));mT(b);c[a>>2]=b;return}function EGa(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function FGa(a,b){a=a|0;b=b|0;b=yo(a,b)|0;if(!b)return;Pwb(c[a>>2]|0,b);return}function GGa(a,b,c){a=a|0;b=b|0;c=c|0;In(a,b,c);return}function HGa(a){a=a|0;var b=0;if((Eb[c[(c[a>>2]|0)+36>>2]&511](a)|0)==-1)a=-1;else{b=a+12|0;a=c[b>>2]|0;c[b>>2]=a+4;a=WCb(c[a>>2]|0)|0}return a|0}function IGa(a,b,c){a=a|0;b=b|0;c=c|0;return PC(a,b,c,Zzb(c)|0)|0}function JGa(a,b){a=a|0;b=b|0;if((c[b+16>>2]|0)==2){b=$Xa(b)|0;P()|0;b=t$a(0,b|0,32)|0;Heb(a,b,P()|0);return}else ma(141129,111484,284,111853)}function KGa(a){a=a|0;G7a(a);c[a>>2]=42408;Jeb(a+44|0);Jeb(a+64|0);c[a+88>>2]=0;c[a+92>>2]=0;c[a+96>>2]=0;return}function LGa(a,b){a=a|0;b=b|0;KL(a,b+44|0);return}function MGa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;My(f,b,d,e,WCb(c[a+32>>2]|0)|0);return}function NGa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;Ny(f,b,d,e,WCb(c[a+32>>2]|0)|0);return}function OGa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;Oy(f,b,d,e,WCb(c[a+32>>2]|0)|0);return}function PGa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;return by(f,b,d,e,WCb(c[a+32>>2]|0)|0)|0}function QGa(b){b=b|0;if(ENa(b)|0){b=1;return b|0}if(c[b+48>>2]|0){b=1;return b|0}if(a[b+26>>0]&1){b=1;return b|0}b=(a[b+78>>0]&1)!=0;return b|0}function RGa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=yb;yb=yb+16|0;Xg(a,b,c,d);yb=d;return}function SGa(a,b){a=a|0;b=b|0;TW(a,b);return}function TGa(a,b){a=a|0;b=b|0;if(!(eCb(c[b+8>>2]|0)|0))return;vla(a+24|0,b+8|0);return}function UGa(a){a=a|0;s7(a,c[a+4>>2]|0);return}function VGa(a){a=a|0;doa(a);return}function WGa(a){a=a|0;var b=0,d=0;d=yb;yb=yb+16|0;b=d;Pwb(b,kcb(whb()|0,a)|0);yb=d;return c[b>>2]|0}function XGa(a){a=a|0;KRa(a);c[a>>2]=44552;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;yib(a+28|0);c[a+40>>2]=0;c[a+44>>2]=0;c[a+48>>2]=0;return}function YGa(a,b){a=a|0;b=b|0;TGa(a,Efb(c[b>>2]|0)|0);return}function ZGa(a,b){a=a|0;b=b|0;A6a(a+16|0,Keb(c[b>>2]|0)|0);return}function _Ga(a,b){a=a|0;b=b|0;A6a(a+16|0,Leb(c[b>>2]|0)|0);return}function $Ga(a,b){a=a|0;b=b|0;A6a(a+16|0,Deb(c[b>>2]|0)|0);return}function aHa(){var a=0,b=0,d=0;a=mla(56)|0;b=a;d=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));QFa(a);return a|0}function bHa(a,b){a=a|0;b=b|0;Rh(a,b);return}function cHa(a,b){a=a|0;b=b|0;if((c[a>>2]|0)!=(c[b>>2]|0)){b=0;return b|0}if((c[a+4>>2]|0)!=(c[b+4>>2]|0)){b=0;return b|0}b=(c[a+8>>2]|0)==(c[b+8>>2]|0);return b|0}function dHa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;Ry(f,b,d,e,WCb(c[a+32>>2]|0)|0);return}function eHa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=J(d>>>0>>0?d:b,c[a+132>>2]|0)|0;d=e+(b>>>0>>0?d:b)|0;return (c[(c[a+184>>2]|0)+(d>>>5<<2)>>2]&1<<(d&31)|0)!=0|0}function fHa(a){a=a|0;var b=0;b=a+4|0;c[b>>2]=1;if(((c[(c[a+12>>2]|0)+4>>2]|0)!=6?(c[(c[a+16>>2]|0)+4>>2]|0)!=6:0)?(c[(c[a+20>>2]|0)+4>>2]|0)!=6:0)return;c[b>>2]=6;return}function gHa(a){a=a|0;C7(a,c[a+4>>2]|0);return}function hHa(a,b){a=a|0;b=b|0;hda(a,ufb(c[b>>2]|0)|0);return}function iHa(a){a=a|0;if(!(c[a+32>>2]|0))ma(134815,134390,395,134833);if((c[(c[a+24>>2]|0)+4>>2]|0)!=6?(c[(c[a+28>>2]|0)+4>>2]|0)!=6:0){c[a+4>>2]=0;return}c[a+4>>2]=6;return}function jHa(a){a=a|0;Vob(a+20|0);fXa(a+4|0);return}function kHa(a,b){a=a|0;b=b|0;var d=0;d=c[a+12>>2]|0;b=Om(a,b+8|0)|0;c[b>>2]=d;return}function lHa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;d=d+8|0;Wb[c[(c[b>>2]|0)+16>>2]&15](a,b,c[d>>2]|0,c[d+4>>2]|0,0,e);return}function mHa(a,b){a=a|0;b=b|0;if(Ppb(b)|0){b=Reb(b)|0;iL(a,b)|0;return b|0}else{b=a;return b|0}return 0}function nHa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Jhb(a)|0;c[a+8>>2]=c[b>>2];c[a+12>>2]=d;c[a+16>>2]=e;Cva(a);return a|0}function oHa(a,b){a=a|0;b=b|0;a=Igb(a)|0;b=sY(WCb(kH(Vr(b,1)|0)|0)|0)|0;c[a+8>>2]=b;Mzb(a);return a|0}function pHa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;return dy(f,b,d,e,WCb(c[a+32>>2]|0)|0)|0}function qHa(a,b){a=a|0;b=b|0;var d=0,e=0;d=WBb(b)|0;e=a+4096|0;b=c[e>>2]|0;if((a+4096-b|0)>>>0>>0)b=qc(d)|0;else c[e>>2]=b+d;return b|0}function rHa(a){a=a|0;var b=0;b=a+4|0;xma(a,c[b>>2]|0);c[a+8>>2]=0;c[a>>2]=a+4;c[b>>2]=0;return}function sHa(a){a=a|0;Doa(a);return}function tHa(a,b){a=a|0;b=b|0;XZa(a+4|0,c[b>>2]|0);return}function uHa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Ifb(a)|0;c[a+8>>2]=b;c[a+12>>2]=d;c[a+16>>2]=e;$ja(a);return a|0}function vHa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Jfb(a)|0;c[a+8>>2]=b;c[a+12>>2]=d;c[a+16>>2]=e;aka(a);return a|0}function wHa(a,b){a=a|0;b=b|0;hda(a,Efb(c[b>>2]|0)|0);return}function xHa(a,b){a=a|0;b=b|0;A6a(a+16|0,cfb(c[b>>2]|0)|0);return}function yHa(a,b){a=a|0;b=b|0;A6a(a+16|0,Teb(c[b>>2]|0)|0);return}function zHa(a,b){a=a|0;b=b|0;A6a(a+16|0,Ueb(c[b>>2]|0)|0);return}function AHa(a,b){a=a|0;b=b|0;A6a(a+16|0,Veb(c[b>>2]|0)|0);return}function BHa(a,b){a=a|0;b=b|0;b=Leb(c[b>>2]|0)|0;Kgb(c[a+24>>2]|0,c[b+8>>2]|0);return}function CHa(a){a=a|0;c[a>>2]=43328;Pdb(a+68|0);Vob(a+56|0);fdb(a);return}function DHa(a,b){a=a|0;b=b|0;qsa(a,b+8|0);return}function EHa(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;b=(c[d>>2]|0)+4|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function FHa(a){a=a|0;var b=0;b=c[(c[a+12>>2]|0)+4>>2]|0;a=a+4|0;if((b|0)==6){c[a>>2]=6;return}if(eCb(c[a>>2]|0)|0){c[a>>2]=b;return}else{c[a>>2]=0;return}}function GHa(a,b){a=a|0;b=b|0;KL(a,b+16|0);return}function HHa(a,b){a=a|0;b=b|0;BF(a,cfb(c[b>>2]|0)|0);return}function IHa(a){a=a|0;var b=0,d=0;b=a+68|0;d=c[b>>2]|0;a=(c[d+4>>2]|0)-(c[d>>2]|0)|0;Xt(d,0);tI(c[b>>2]|0,0)|0;return a|0}function JHa(a,b){a=a|0;b=b|0;var d=0;d=RE(b)|0;b=WZ(c[a+44>>2]|0,b)|0;c[b>>2]=d;return}function KHa(a){a=a|0;var b=0,d=0;c[a>>2]=45880;d=a+48|0;b=c[d>>2]|0;c[d>>2]=0;if(b|0){STa(b);RCb(b)}gcb(a);return}function LHa(a){a=a|0;var b=0,d=0,e=0;b=mla(44)|0;d=b;e=d+44|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));Dfb(b);C9(a,b);return}function MHa(a,b){a=a|0;b=b|0;lqa(a,b+8|0);Lwa(a+12|0,b)|0;return}function NHa(b,d){b=b|0;d=d|0;var e=0;e=b+4|0;b=d;d=c[e>>2]|0;do{a[d>>0]=0;d=(c[e>>2]|0)+1|0;c[e>>2]=d;b=b+-1|0}while((b|0)!=0);return}function OHa(a){a=a|0;Soa(a);return}function PHa(a,b){a=a|0;b=b|0;A6a(a+16|0,dfb(c[b>>2]|0)|0);return}function QHa(a,b){a=a|0;b=b|0;A6a(a+16|0,efb(c[b>>2]|0)|0);return}function RHa(a,b){a=a|0;b=b|0;A6a(a+16|0,ffb(c[b>>2]|0)|0);return}function SHa(a,b){a=a|0;b=b|0;A6a(a+16|0,tfb(c[b>>2]|0)|0);return}function THa(a,b){a=a|0;b=b|0;A6a(a+16|0,ufb(c[b>>2]|0)|0);return}function UHa(a,b){a=a|0;b=b|0;f6a(a,gdb(c[b>>2]|0)|0);return}function VHa(a,b){a=a|0;b=b|0;f6a(a,hdb(c[b>>2]|0)|0);return}function WHa(a,b){a=a|0;b=b|0;var d=0;d=a+16|0;while(1){b=sc(a,b)|0;if(!b)break;Pwb(c[d>>2]|0,b)}return}function XHa(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;d=b+48|0;c[a+8>>2]=c[d>>2];if(!(c[d>>2]|0))ma(109518,109118,84,109532);else return}function YHa(b,d){b=b|0;d=d|0;if(a[b+24>>0]&1)return;switch(c[d+8>>2]|0){case 31:case 30:case 29:case 28:case 6:case 5:case 4:case 3:break;default:return}a[b+78>>0]=1;return}function ZHa(a,b){a=a|0;b=b|0;var c=0,d=0;c=yb;yb=yb+32|0;d=c;J6(d,a,b);Arb(d);yb=c;return}function _Ha(a,b){a=a|0;b=b|0;var c=0;c=b+20|0;vo(a,b,b+24|0,vo(a,b,c,0,0)|0,c)|0;return}function $Ha(a,b){a=a|0;b=b|0;cZ(a,b);EP(a+12|0,b+12|0);return}function aIa(b,d,e){b=b|0;d=d|0;e=e|0;while(1){if((d|0)==(e|0))break;b=a[d>>0]|0;if(b<<24>>24>-1)b=c[27344+(b<<24>>24<<2)>>2]&255;a[d>>0]=b;d=d+1|0}return e|0}function bIa(b,d,e){b=b|0;d=d|0;e=e|0;while(1){if((d|0)==(e|0))break;b=a[d>>0]|0;if(b<<24>>24>-1)b=c[28880+(b<<24>>24<<2)>>2]&255;a[d>>0]=b;d=d+1|0}return e|0}function cIa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;fCb(a);Pwb(a+16|0,0);c[a>>2]=6;e=tCb(a)|0;c[e>>2]=b;a=uCb(a)|0;c[a>>2]=d;return}function dIa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Dy(e,b,d,129088,WCb(c[a+32>>2]|0)|0);return}function eIa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;$y(f,b,d,e,WCb(c[a+32>>2]|0)|0);return}function fIa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;az(f,b,d,e,WCb(c[a+32>>2]|0)|0);return}function gIa(a,b){a=a|0;b=b|0;if(Yrb(b)|0){ct(a,b);return}else{mg(a,b);return}}function hIa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=uhb(a)|0;c[a+8>>2]=b;c[a+12>>2]=d;c[a+16>>2]=e;g9(a);return a|0}function iIa(a,b){a=a|0;b=b|0;A6a(a+16|0,Efb(c[b>>2]|0)|0);return}function jIa(a,b){a=a|0;b=b|0;A6a(a+16|0,vfb(c[b>>2]|0)|0);return}function kIa(a,b){a=a|0;b=b|0;A6a(a+16|0,wfb(c[b>>2]|0)|0);return}function lIa(a,b){a=a|0;b=b|0;A6a(a+16|0,xfb(c[b>>2]|0)|0);return}function mIa(a,b){a=a|0;b=b|0;A6a(a+16|0,Ffb(c[b>>2]|0)|0);return}function nIa(a,b){a=a|0;b=b|0;f6a(a,wdb(c[b>>2]|0)|0);return}function oIa(a){a=a|0;$$a(a+24|0);QRa(a+12|0);Vob(a);return}function pIa(a,b){a=a|0;b=b|0;a=((c[b+8>>2]|0)-(c[b+4>>2]|0)>>2)+a|0;b=Mga(c[b>>2]|0)|0;P()|0;return a+b|0}function qIa(b,d){b=b|0;d=d|0;var e=0;if((c[d+16>>2]|0)==5){e=b+16|0;do{a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}while((b|0)<(e|0));return}else ma(111522,111484,71,111541)}function rIa(a,b){a=a|0;b=b|0;vma(a,tfb(c[b>>2]|0)|0);return}function sIa(a,b){a=a|0;b=b|0;Kcb(a+16|0,gdb(c[b>>2]|0)|0);return}function tIa(a,b){a=a|0;b=b|0;Kcb(a+16|0,hdb(c[b>>2]|0)|0);return}function uIa(a,b,d){a=a|0;b=b|0;d=d|0;hk(b,d+1|0);Rga(a,(c[b+44>>2]|0)+(d*12|0)|0);return}function vIa(a){a=a|0;var b=0,d=0;d=a+40|0;b=a+40|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));g[d>>2]=1.0;return}function wIa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Hy(e,b,d,129054,WCb(c[a+32>>2]|0)|0);return}function xIa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Iy(e,b,d,128981,WCb(c[a+32>>2]|0)|0);return}function yIa(a,b){a=a|0;b=b|0;bHa(a,b);return}function zIa(a){a=a|0;xpa(a);return}function AIa(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;g=a;c[g>>2]=0;c[g+4>>2]=0;g=a+8|0;c[g>>2]=-1;c[g+4>>2]=-1;return}function BIa(b){b=b|0;var d=0,e=0;if(!(a[b>>0]&1))return;hfa(b,10);e=b+16|0;d=0;while(1){if((d|0)>=(c[e>>2]|0))break;hfa(b,32);d=d+1|0}return}function CIa(a,b){a=a|0;b=b|0;A6a(a+16|0,Gfb(c[b>>2]|0)|0);return}function DIa(a,b){a=a|0;b=b|0;f6a(a,xdb(c[b>>2]|0)|0);return}function EIa(a,b){a=a|0;b=b|0;f6a(a,ydb(c[b>>2]|0)|0);return}function FIa(a,b){a=a|0;b=b|0;f6a(a,zdb(c[b>>2]|0)|0);return}function GIa(a,b){a=a|0;b=b|0;f6a(a,Adb(c[b>>2]|0)|0);return}function HIa(a,b){a=a|0;b=b|0;BM(mpa(b,c[a>>2]|0)|0);return b|0}function IIa(a){a=a|0;var b=0;a=mla(60)|0;n=0;ca(530,a|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;RCb(a);Ea(b|0)}else return a|0;return 0}function JIa(a){a=a|0;var b=0;a=mla(280)|0;n=0;ca(518,a|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;RCb(a);Ea(b|0)}else return a|0;return 0}function KIa(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;tca(a+8|0,d);Gsb(a+32|0,b);return}function LIa(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=41800;c[a+4>>2]=b;c[a+8>>2]=d;c[a+16>>2]=a;return}function MIa(a,b){a=a|0;b=b|0;var d=0;d=c[a>>2]|0;if((c[a+4>>2]|0)-d>>2>>>0>b>>>0)return d+(b<<2)|0;else zpa();return 0}function NIa(a){a=a|0;Jeb(a);a=a+20|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function OIa(a,b){a=a|0;b=b|0;b=(xfb(c[b>>2]|0)|0)+8|0;Dra(a,c[b>>2]|0);return}function PIa(a,b){a=a|0;b=b|0;b=Leb(c[b>>2]|0)|0;zhb(c[a+104>>2]|0,c[b+8>>2]|0);return}function QIa(a,b){a=a|0;b=b|0;Kcb(a+16|0,wdb(c[b>>2]|0)|0);return}function RIa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;return hy(f,b,d,e,WCb(c[a+32>>2]|0)|0)|0}function SIa(b,c,d){b=b|0;c=c|0;d=d|0;if(!((b|0)==0&(c|0)==0))do{d=d+-1|0;a[d>>0]=b&7|48;b=U4a(b|0,c|0,3)|0;c=P()|0}while(!((b|0)==0&(c|0)==0));return d|0}function TIa(a){a=a|0;var b=0;b=c[a+16>>2]|0;if((b|0)==(a|0)){Rb[c[(c[b>>2]|0)+16>>2]&1023](b);return}if(!b)return;Rb[c[(c[b>>2]|0)+20>>2]&1023](b);return}function UIa(a){a=a|0;l8(a,c[a+4>>2]|0);return}function VIa(a,b){a=a|0;b=b|0;var d=0;_na(a);c[a>>2]=2;d=MYa()|0;c[a+8>>2]=d;TZa(d,b);return a|0}function WIa(a,b){a=a|0;b=b|0;Wla((orb(c[(c[a+24>>2]|0)+104>>2]|0)|0)+12|0,b);Lrb(a);return}function XIa(a,b){a=a|0;b=b|0;f6a(a,Hdb(c[b>>2]|0)|0);return}function YIa(a,b){a=a|0;b=b|0;f6a(a,Idb(c[b>>2]|0)|0);return}function ZIa(a,b){a=a|0;b=b|0;f6a(a,Jdb(c[b>>2]|0)|0);return}function _Ia(a,b){a=a|0;b=b|0;f6a(a,Kdb(c[b>>2]|0)|0);return}function $Ia(a,b){a=a|0;b=b|0;f6a(a,Ldb(c[b>>2]|0)|0);return}function aJa(a,b){a=a|0;b=b|0;O8a(a,gdb(c[b>>2]|0)|0);return}function bJa(a,b){a=a|0;b=b|0;O8a(a,hdb(c[b>>2]|0)|0);return}function cJa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Kr(e,b,0,d,127719,WCb(c[a+32>>2]|0)|0);return}function dJa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Lr(e,b,1,d,132278,WCb(c[a+32>>2]|0)|0);return}function eJa(a,b){a=a|0;b=b|0;var c=0;c=b+32|0;vo(a,b,b+28|0,vo(a,b,c,0,0)|0,c)|0;return}function fJa(a,b){a=a|0;b=b|0;if(tXa(a,b)|0)return c[(c[a+8>>2]|0)+(b<<2)>>2]|0;else{b=oa(4)|0;TBb(b);za(b|0,39640,481)}return 0}function gJa(a,b){a=a|0;b=b|0;A6a(a+16|0,Tfb(c[b>>2]|0)|0);return}function hJa(a,b){a=a|0;b=b|0;Kcb(a+16|0,xdb(c[b>>2]|0)|0);return}function iJa(a,b){a=a|0;b=b|0;Kcb(a+16|0,ydb(c[b>>2]|0)|0);return}function jJa(a,b){a=a|0;b=b|0;Kcb(a+16|0,zdb(c[b>>2]|0)|0);return}function kJa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Adb(c[b>>2]|0)|0);return}function lJa(a,b){a=a|0;b=b|0;rW(a,b+8|0);if(eCb(c[b+8>>2]|0)|0)return;Pwb(c[a+16>>2]|0,c[b+12>>2]|0);return}function mJa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;fz(f,b,d,e,WCb(c[a+32>>2]|0)|0);return}function nJa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Ky(e,b,d,129088,WCb(c[a+32>>2]|0)|0);return}function oJa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Ly(e,b,d,129088,WCb(c[a+32>>2]|0)|0);return}function pJa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;jz(f,b,d,e,WCb(c[a+32>>2]|0)|0);return}function qJa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;kz(f,b,d,e,WCb(c[a+32>>2]|0)|0);return}function rJa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;return iy(f,b,d,e,WCb(c[a+32>>2]|0)|0)|0}function sJa(a){a=a|0;var b=0;a=mla(56)|0;n=0;ca(499,a|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;RCb(a);Ea(b|0)}else return a|0;return 0}function tJa(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;while(1){if((c|0)==(d|0))break;b=a[c>>0]|0;a[f>>0]=b<<24>>24>-1?b:e;f=f+1|0;c=c+1|0}return d|0}function uJa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=tCb(Wcb(a)|0)|0;c[e>>2]=b;b=uCb(Wcb(a)|0)|0;c[b>>2]=d;return a|0}function vJa(a,b){a=a|0;b=b|0;a=Eeb(a)|0;if(!b)return a|0;Wla(a+12|0,b);_u(a);return a|0}function wJa(a,b){a=a|0;b=b|0;O8a(a,wdb(c[b>>2]|0)|0);return}function xJa(a,b){a=a|0;b=b|0;Bob(a);$jb(a+8|0,b);Cub(a+24|0);c[a+28>>2]=0;c[a+32>>2]=0;c[a+4>>2]=6;return}function yJa(){var a=0,b=0;a=mla(52)|0;n=0;da(3900,a|0,1);b=n;n=0;if(b&1){b=sa()|0;P()|0;RCb(a);Ea(b|0)}else return a|0;return 0}function zJa(a){a=a|0;Yba(a+40|0);I_a(a+12|0);return}function AJa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;$lb(a);c[a+24>>2]=b;c[a+28>>2]=d;c[a+32>>2]=e;return}function BJa(a){a=a|0;c[a>>2]=44472;B7a(a+56|0);B7a(a+44|0);gcb(a);return}function CJa(a){a=a|0;kYa(a+48|0);QQa(a+36|0);igb(a);return}function DJa(a,b){a=a|0;b=b|0;var c=0;c=b+24|0;vo(a,b,b+28|0,vo(a,b,c,0,0)|0,c)|0;return}function EJa(a,b){a=a|0;b=b|0;var c=0;c=b+12|0;vo(a,b,b+16|0,vo(a,b,c,0,0)|0,c)|0;return}function FJa(a){a=a|0;P8(a);return}function GJa(a){a=a|0;Q8(a);return}function HJa(a){a=a|0;R8(a);return}function IJa(a){a=a|0;S8(a);return}function JJa(a){a=a|0;T8(a);return}function KJa(a,b){a=a|0;b=b|0;if(VBb(c[a>>2]|0)|0){Vla(c[a+8>>2]|0,b);return a|0}else ma(74875,74885,414,51102);return 0}function LJa(){var a=0,b=0;b=yb;yb=yb+16|0;a=b;Pwb(a,0);yb=b;return c[a>>2]|0}function MJa(a,b){a=a|0;b=b|0;f6a(a,feb(c[b>>2]|0)|0);return}function NJa(a,b){a=a|0;b=b|0;f6a(a,geb(c[b>>2]|0)|0);return}function OJa(a,b){a=a|0;b=b|0;f6a(a,heb(c[b>>2]|0)|0);return}function PJa(a,b){a=a|0;b=b|0;f6a(a,ieb(c[b>>2]|0)|0);return}function QJa(a,b){a=a|0;b=b|0;Dlb(a,b);lE(a+-16+16|0,b)}function RJa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Hdb(c[b>>2]|0)|0);return}function SJa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Idb(c[b>>2]|0)|0);return}function TJa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Jdb(c[b>>2]|0)|0);return}function UJa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Kdb(c[b>>2]|0)|0);return}function VJa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Ldb(c[b>>2]|0)|0);return}function WJa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;pz(f,b,d,e,WCb(c[a+32>>2]|0)|0);return}function XJa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Sy(e,b,d,130683,WCb(c[a+32>>2]|0)|0);return}function YJa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Ty(e,b,d,130683,WCb(c[a+32>>2]|0)|0);return}function ZJa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Uy(e,b,d,128981,WCb(c[a+32>>2]|0)|0);return}function _Ja(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Vy(e,b,d,128981,WCb(c[a+32>>2]|0)|0);return}function $Ja(a,b,d){a=a|0;b=b|0;d=d|0;c[a+76>>2]=b;aua(a+80|0,d)|0;return}function aKa(a,b){a=a|0;b=b|0;var d=0;d=(Bs(a,c[b+28>>2]|0)|0)+2|0;return d+(q1a(a,c[b+32>>2]|0)|0)|0}function bKa(a,b){a=a|0;b=b|0;return (f9(a,b+8|0)|0)!=0|0}function cKa(a){a=a|0;var b=0;a=mla(56)|0;n=0;ca(493,a|0);b=n;n=0;if(b&1){b=sa()|0;P()|0;RCb(a);Ea(b|0)}else return a|0;return 0}function dKa(a,b){a=a|0;b=b|0;JM(a,b+44|0);return}function eKa(a,b){a=a|0;b=b|0;O8a(a,xdb(c[b>>2]|0)|0);return}function fKa(a,b){a=a|0;b=b|0;O8a(a,ydb(c[b>>2]|0)|0);return}function gKa(a,b){a=a|0;b=b|0;O8a(a,zdb(c[b>>2]|0)|0);return}function hKa(a,b){a=a|0;b=b|0;O8a(a,Adb(c[b>>2]|0)|0);return}function iKa(a,b){a=a|0;b=b|0;ueb(a,gdb(c[b>>2]|0)|0);return}function jKa(a,b){a=a|0;b=b|0;ueb(a,hdb(c[b>>2]|0)|0);return}function kKa(a,b){a=a|0;b=b|0;return (laa(a,b)|0)!=0|0}function lKa(a){a=a|0;hga(a);qfa(a+12|0);return}function mKa(){TAb();xAb();vAb();tAb();rAb();pAb();nAb();mAb();return}function nKa(a){a=a|0;if(!a){a=oa(4)|0;c[a>>2]=0;Nxb(a);za(a|0,37944,379)}else return Eb[c[(c[a>>2]|0)+24>>2]&511](a)|0;return 0}function oKa(a,b){a=a|0;b=b|0;Kab(a+16|0,gdb(c[b>>2]|0)|0);return}function pKa(a,b){a=a|0;b=b|0;Kab(a+16|0,hdb(c[b>>2]|0)|0);return}function qKa(a,b){a=a|0;b=b|0;teb(a+16|0,gdb(c[b>>2]|0)|0);return}function rKa(a,b){a=a|0;b=b|0;teb(a+16|0,hdb(c[b>>2]|0)|0);return}function sKa(a,b){a=a|0;b=b|0;f6a(a,Keb(c[b>>2]|0)|0);return}function tKa(a,b){a=a|0;b=b|0;f6a(a,Leb(c[b>>2]|0)|0);return}function uKa(a,b){a=a|0;b=b|0;f6a(a,Deb(c[b>>2]|0)|0);return}function vKa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Qy(e,b,d,129088,WCb(c[a+32>>2]|0)|0);return}function wKa(){var a=0,b=0;a=mla(52)|0;n=0;da(3900,a|0,2);b=n;n=0;if(b&1){b=sa()|0;P()|0;RCb(a);Ea(b|0)}else return a|0;return 0}function xKa(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=J(e>>>0>>0?e:d,c[b+116>>2]|0)|0;return a[(c[b+140>>2]|0)+(f+(d>>>0>>0?e:d))>>0]|0}function yKa(a){a=a|0;l8a(a);a=a+36|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function zKa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=shb(a)|0;c[a+16>>2]=b;c[a+8>>2]=d;c[a+12>>2]=e;yga(a);return a|0}function AKa(a,b){a=a|0;b=b|0;b=(feb(c[b>>2]|0)|0)+4|0;$hb(c[b>>2]|0);return}function BKa(a,b){a=a|0;b=b|0;b=(heb(c[b>>2]|0)|0)+4|0;aib(c[b>>2]|0);return}function CKa(a,b){a=a|0;b=b|0;O8a(a,Hdb(c[b>>2]|0)|0);return}function DKa(a,b){a=a|0;b=b|0;O8a(a,Idb(c[b>>2]|0)|0);return}function EKa(a,b){a=a|0;b=b|0;O8a(a,Jdb(c[b>>2]|0)|0);return}function FKa(a,b){a=a|0;b=b|0;O8a(a,Kdb(c[b>>2]|0)|0);return}function GKa(a,b){a=a|0;b=b|0;O8a(a,Ldb(c[b>>2]|0)|0);return}function HKa(a,b){a=a|0;b=b|0;ueb(a,wdb(c[b>>2]|0)|0);return}function IKa(a,b){a=a|0;b=b|0;Kcb(a+16|0,feb(c[b>>2]|0)|0);return}function JKa(a,b){a=a|0;b=b|0;Kcb(a+16|0,geb(c[b>>2]|0)|0);return}function KKa(a,b){a=a|0;b=b|0;Kcb(a+16|0,heb(c[b>>2]|0)|0);return}function LKa(a,b){a=a|0;b=b|0;Kcb(a+16|0,ieb(c[b>>2]|0)|0);return}function MKa(a,b){a=a|0;b=b|0;b=b+44|0;qP(a+44|0,b);ZO(a+16|0,b);return}function NKa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+44>>2]|0;yz(f,b,d,e,WCb(c[a+32>>2]|0)|0);return}function OKa(){var a=0;c[36941]=0;c[36940]=50136;c[36942]=46;c[36943]=44;c[36944]=0;c[36945]=0;c[36946]=0;a=0;while(1){if((a|0)==3)break;c[147776+(a<<2)>>2]=0;a=a+1|0}return}function PKa(){var b=0;c[36935]=0;c[36934]=50096;a[147744]=46;a[147745]=44;c[36937]=0;c[36938]=0;c[36939]=0;b=0;while(1){if((b|0)==3)break;c[147748+(b<<2)>>2]=0;b=b+1|0}return}function QKa(a){a=a|0;c[a>>2]=47380;rwa(a+4|0);a=a+8|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function RKa(a){a=a|0;c[a>>2]=47316;rwa(a+4|0);a=a+8|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function SKa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a=0;while(1){if((b|0)==(d|0))break;e=(c[b>>2]|0)+(a<<4)|0;f=e&-268435456;a=(f>>>24|f)^e;b=b+4|0}return a|0}function TKa(b,c,d,e,f,g){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;g=S$(b,c,d,c,e,f,g)|0;a[g+20>>0]=1;return g|0}function UKa(a,b){a=a|0;b=b|0;Kab(a+16|0,wdb(c[b>>2]|0)|0);return}function VKa(a,b){a=a|0;b=b|0;teb(a+16|0,wdb(c[b>>2]|0)|0);return}function WKa(a,b){a=a|0;b=b|0;$t(a,wdb(c[b>>2]|0)|0);return}function XKa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Xy(e,b,d,129054,WCb(c[a+32>>2]|0)|0);return}function YKa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Yy(e,b,d,128802,WCb(c[a+32>>2]|0)|0);return}function ZKa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;Zy(e,b,d,128981,WCb(c[a+32>>2]|0)|0);return}function _Ka(a,b){a=a|0;b=b|0;if(Yrb(b)|0){$G(a,b);return}else{ME(a,b);return}}function $Ka(a){a=a|0;_2a(a);c[a>>2]=44472;yib(a+44|0);yib(a+56|0);return}function aLa(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;b=0;while(1){if((c|0)==(d|0))break;e=(b<<4)+(a[c>>0]|0)|0;f=e&-268435456;b=(f>>>24|f)^e;c=c+1|0}return b|0}function bLa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=mla(24)|0;a5a(e,3);ufa(e,a);c[e+4>>2]=b;ufa(e,d);return e|0}function cLa(a,b){a=a|0;b=b|0;NM(a,b+44|0);return}function dLa(a,b){a=a|0;b=b|0;b=(Ueb(c[b>>2]|0)|0)+8|0;rOa(a,c[b>>2]|0);return}function eLa(a,b){a=a|0;b=b|0;ueb(a,xdb(c[b>>2]|0)|0);return}function fLa(a,b){a=a|0;b=b|0;ueb(a,ydb(c[b>>2]|0)|0);return}function gLa(a,b){a=a|0;b=b|0;ueb(a,zdb(c[b>>2]|0)|0);return}function hLa(a,b){a=a|0;b=b|0;ueb(a,Adb(c[b>>2]|0)|0);return}function iLa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Keb(c[b>>2]|0)|0);return}function jLa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Leb(c[b>>2]|0)|0);return}function kLa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Deb(c[b>>2]|0)|0);return}function lLa(a,b){a=a|0;b=b|0;Sf(a,b);return}function mLa(a,b){a=a|0;b=b|0;Kab(a+16|0,xdb(c[b>>2]|0)|0);return}function nLa(a,b){a=a|0;b=b|0;Kab(a+16|0,ydb(c[b>>2]|0)|0);return}function oLa(a,b){a=a|0;b=b|0;Kab(a+16|0,zdb(c[b>>2]|0)|0);return}function pLa(a,b){a=a|0;b=b|0;Kab(a+16|0,Adb(c[b>>2]|0)|0);return}function qLa(a,b){a=a|0;b=b|0;teb(a+16|0,xdb(c[b>>2]|0)|0);return}function rLa(a,b){a=a|0;b=b|0;teb(a+16|0,ydb(c[b>>2]|0)|0);return}function sLa(a,b){a=a|0;b=b|0;teb(a+16|0,zdb(c[b>>2]|0)|0);return}function tLa(a,b){a=a|0;b=b|0;teb(a+16|0,Adb(c[b>>2]|0)|0);return}function uLa(a,b){a=a|0;b=b|0;f6a(a,cfb(c[b>>2]|0)|0);return}function vLa(a,b){a=a|0;b=b|0;f6a(a,Teb(c[b>>2]|0)|0);return}function wLa(a,b){a=a|0;b=b|0;f6a(a,Ueb(c[b>>2]|0)|0);return}function xLa(a,b){a=a|0;b=b|0;f6a(a,Veb(c[b>>2]|0)|0);return}function yLa(a,b){a=a|0;b=b|0;O8a(a,feb(c[b>>2]|0)|0);return}function zLa(a,b){a=a|0;b=b|0;O8a(a,geb(c[b>>2]|0)|0);return}function ALa(a,b){a=a|0;b=b|0;O8a(a,heb(c[b>>2]|0)|0);return}function BLa(a,b){a=a|0;b=b|0;O8a(a,ieb(c[b>>2]|0)|0);return}function CLa(a){a=a|0;var b=0,d=0,e=0;b=yb;yb=yb+16|0;d=b+4|0;e=b;c[e>>2]=c[37329];c[d>>2]=c[e>>2];Ulb(a,d);yb=b;return}function DLa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;_y(e,b,d,128699,WCb(c[a+32>>2]|0)|0);return}function ELa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Rga(a,b);c[a+12>>2]=d;c[a+16>>2]=e;return}function FLa(a,b){a=a|0;b=b|0;if((b|0)==-1){IWa(a,55725)|0;return}else{Ym(a,b)|0;return}}function GLa(a,b){a=a|0;b=b|0;hfa(a,34);b=rrb(b,1)|0;Qua(a,e7a(WCb(c[b>>2]|0)|0)|0);hfa(a,34);return}function HLa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;b=b+8|0;d=(c[b>>2]|0)+-8|0;f=d;e=c[f+4>>2]|0;c[a>>2]=c[f>>2];c[a+4>>2]=e;c[b>>2]=d;return}function ILa(a,b){a=a|0;b=b|0;ueb(a,Hdb(c[b>>2]|0)|0);return}function JLa(a,b){a=a|0;b=b|0;ueb(a,Idb(c[b>>2]|0)|0);return}function KLa(a,b){a=a|0;b=b|0;ueb(a,Jdb(c[b>>2]|0)|0);return}function LLa(a,b){a=a|0;b=b|0;ueb(a,Kdb(c[b>>2]|0)|0);return}function MLa(a,b){a=a|0;b=b|0;ueb(a,Ldb(c[b>>2]|0)|0);return}function NLa(a,b){a=a|0;b=b|0;return yM(a,b,Zzb(b)|0)|0}function OLa(a,b){a=a|0;b=b|0;if(!a)return 0;a=iqb(a)|0;if(!a)return 0;else return ((c[a+8>>2]|0)==(b|0)?a:0)|0;return 0}function PLa(a,b){a=a|0;b=b|0;var d=0;a=a+24|0;d=c[a>>2]|0;if(!d){c[a>>2]=b;return b|0}Ymb(c[d+104>>2]|0);c[a>>2]=b;return b|0}function QLa(b,d){b=b|0;d=d|0;a[b>>0]=1;$jb(b+4|0,d);hCb(b+20|0);c[b+28>>2]=-1;c[b+32>>2]=-1;c[b+36>>2]=0;c[b+40>>2]=0;return}function RLa(a,b){a=a|0;b=b|0;gdb(c[b>>2]|0)|0;Tjb(a);return}function SLa(a,b){a=a|0;b=b|0;hdb(c[b>>2]|0)|0;Tjb(a);return}function TLa(a,b){a=a|0;b=b|0;Kab(a+16|0,Hdb(c[b>>2]|0)|0);return}function ULa(a,b){a=a|0;b=b|0;Kab(a+16|0,Idb(c[b>>2]|0)|0);return}function VLa(a,b){a=a|0;b=b|0;Kab(a+16|0,Jdb(c[b>>2]|0)|0);return}function WLa(a,b){a=a|0;b=b|0;Kab(a+16|0,Kdb(c[b>>2]|0)|0);return}function XLa(a,b){a=a|0;b=b|0;Kab(a+16|0,Ldb(c[b>>2]|0)|0);return}function YLa(a,b){a=a|0;b=b|0;teb(a+16|0,Hdb(c[b>>2]|0)|0);return}function ZLa(a,b){a=a|0;b=b|0;teb(a+16|0,Idb(c[b>>2]|0)|0);return}function _La(a,b){a=a|0;b=b|0;teb(a+16|0,Jdb(c[b>>2]|0)|0);return}function $La(a,b){a=a|0;b=b|0;teb(a+16|0,Kdb(c[b>>2]|0)|0);return}function aMa(a,b){a=a|0;b=b|0;teb(a+16|0,Ldb(c[b>>2]|0)|0);return}function bMa(a,b){a=a|0;b=b|0;f6a(a,dfb(c[b>>2]|0)|0);return}function cMa(a,b){a=a|0;b=b|0;f6a(a,efb(c[b>>2]|0)|0);return}function dMa(a,b){a=a|0;b=b|0;f6a(a,ffb(c[b>>2]|0)|0);return}function eMa(a,b){a=a|0;b=b|0;f6a(a,tfb(c[b>>2]|0)|0);return}function fMa(a,b){a=a|0;b=b|0;f6a(a,ufb(c[b>>2]|0)|0);return}function gMa(a,b){a=a|0;b=b|0;O8a(a,Keb(c[b>>2]|0)|0);return}function hMa(a,b){a=a|0;b=b|0;O8a(a,Leb(c[b>>2]|0)|0);return}function iMa(a,b){a=a|0;b=b|0;O8a(a,Deb(c[b>>2]|0)|0);return}function jMa(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;e=b+c|0;b=d;c=e+16|0;do{a[e>>0]=a[b>>0]|0;e=e+1|0;b=b+1|0}while((e|0)<(c|0));return}function kMa(a){a=a|0;a=a>>>1|a;a=a|a>>>2;a=a|a>>>4;a=a|a>>>8;a=a|a>>>16;if(!a){a=32;return a|0}a=48+((J(a,130329821)|0)>>>27)|0;a=d[a>>0]|0;return a|0}function lMa(b,d){b=b|0;d=d|0;Nq(b,d);if(aCb(c[d>>2]|0)|0)a[b+26>>0]=1;return q2(b)|0}function mMa(b){b=b|0;if(a[b+27>>0]&1){b=1;return b|0}if(a[b+76>>0]&1){b=1;return b|0}if(a[b+79>>0]&1){b=1;return b|0}b=(c[b+60>>2]|0)!=0;return b|0}function nMa(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;Uv(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function oMa(a){a=a|0;E9(a,c[a+4>>2]|0);return}function pMa(a){a=a|0;F9(a,c[a+4>>2]|0);return}function qMa(a){a=a|0;ura(a);return}function rMa(a){a=a|0;vra(a);return}function sMa(a){a=a|0;wra(a);return}function tMa(a){a=a|0;xra(a);return}function uMa(a){a=a|0;yra(a);return}function vMa(a,b,d){a=a|0;b=b|0;d=d|0;while(1){if((b|0)==(d|0))break;a=c[b>>2]|0;if(a>>>0<128)a=c[27344+(a<<2)>>2]|0;c[b>>2]=a;b=b+4|0}return d|0}function wMa(a,b,d){a=a|0;b=b|0;d=d|0;while(1){if((b|0)==(d|0))break;a=c[b>>2]|0;if(a>>>0<128)a=c[28880+(a<<2)>>2]|0;c[b>>2]=a;b=b+4|0}return d|0}function xMa(a,b,d){a=a|0;b=b|0;d=d|0;if((d|0)>256){qrb();b=50592}else{krb();b=50588}c[a>>2]=d;c[a+4>>2]=b;return}function yMa(b,d){b=b|0;d=d|0;var e=0;a[b>>0]=1;a[b+1>>0]=1;e=b+4|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;a[e+16>>0]=0;c[b+24>>2]=d;return}function zMa(a,b,c){a=a|0;b=b|0;c=c|0;b=vJa(a,b)|0;Wla(b+12|0,c);_u(b);return b|0}function AMa(a,b){a=a|0;b=b|0;b=(Leb(c[b>>2]|0)|0)+8|0;IB(a,c[b>>2]|0);return}function BMa(a,b){a=a|0;b=b|0;Kcb(a+16|0,cfb(c[b>>2]|0)|0);return}function CMa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Teb(c[b>>2]|0)|0);return}function DMa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Ueb(c[b>>2]|0)|0);return}function EMa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Veb(c[b>>2]|0)|0);return}function FMa(a,b){a=a|0;b=b|0;pM(a,b,Zzb(b)|0);return}function GMa(a){a=a|0;var b=0,d=0,e=0;b=yb;yb=yb+16|0;e=b+4|0;d=b;Pwb(e,0);Pwb(d,0);cIa(a,c[e>>2]|0,c[d>>2]|0);yb=b;return}function HMa(a,b){a=a|0;b=b|0;wdb(c[b>>2]|0)|0;Tjb(a);return}function IMa(a,b){a=a|0;b=b|0;f6a(a,Efb(c[b>>2]|0)|0);return}function JMa(a,b){a=a|0;b=b|0;f6a(a,vfb(c[b>>2]|0)|0);return}function KMa(a,b){a=a|0;b=b|0;f6a(a,wfb(c[b>>2]|0)|0);return}function LMa(a,b){a=a|0;b=b|0;f6a(a,xfb(c[b>>2]|0)|0);return}function MMa(a,b){a=a|0;b=b|0;f6a(a,Ffb(c[b>>2]|0)|0);return}function NMa(a,b){a=a|0;b=b|0;ueb(a,feb(c[b>>2]|0)|0);return}function OMa(a,b){a=a|0;b=b|0;ueb(a,geb(c[b>>2]|0)|0);return}function PMa(a,b){a=a|0;b=b|0;ueb(a,heb(c[b>>2]|0)|0);return}function QMa(a,b){a=a|0;b=b|0;ueb(a,ieb(c[b>>2]|0)|0);return}function RMa(c,d,e){c=c|0;d=d|0;e=e|0;c=c+d|0;if($sb(c)|0){b[c>>1]=e;return}else{a[c>>0]=e;a[c+1>>0]=e>>8;return}}function SMa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;bz(e,b,d,129088,WCb(c[a+32>>2]|0)|0);return}function TMa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;cz(e,b,d,127448,WCb(c[a+32>>2]|0)|0);return}function UMa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;gz(e,b,d,128347,WCb(c[a+32>>2]|0)|0);return}function VMa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;hz(e,b,d,132164,WCb(c[a+32>>2]|0)|0);return}function WMa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;iz(e,b,d,131309,WCb(c[a+32>>2]|0)|0);return}function XMa(a){a=a|0;var b=0;b=c[36997]|0;do{c[b>>2]=0;b=(c[36997]|0)+4|0;c[36997]=b;a=a+-1|0}while((a|0)!=0);return}function YMa(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==82285?a+4|0:0)|0}function ZMa(a,b){a=a|0;b=b|0;Kab(a+16|0,feb(c[b>>2]|0)|0);return}function _Ma(a,b){a=a|0;b=b|0;Kab(a+16|0,geb(c[b>>2]|0)|0);return}function $Ma(a,b){a=a|0;b=b|0;Kab(a+16|0,heb(c[b>>2]|0)|0);return}function aNa(a,b){a=a|0;b=b|0;Kab(a+16|0,ieb(c[b>>2]|0)|0);return}function bNa(a,b){a=a|0;b=b|0;teb(a+16|0,feb(c[b>>2]|0)|0);return}function cNa(a,b){a=a|0;b=b|0;teb(a+16|0,geb(c[b>>2]|0)|0);return}function dNa(a,b){a=a|0;b=b|0;teb(a+16|0,heb(c[b>>2]|0)|0);return}function eNa(a,b){a=a|0;b=b|0;teb(a+16|0,ieb(c[b>>2]|0)|0);return}function fNa(a,b){a=a|0;b=b|0;Kcb(a+16|0,dfb(c[b>>2]|0)|0);return}function gNa(a,b){a=a|0;b=b|0;Kcb(a+16|0,efb(c[b>>2]|0)|0);return}function hNa(a,b){a=a|0;b=b|0;Kcb(a+16|0,ffb(c[b>>2]|0)|0);return}function iNa(a,b){a=a|0;b=b|0;Kcb(a+16|0,tfb(c[b>>2]|0)|0);return}function jNa(a,b){a=a|0;b=b|0;Kcb(a+16|0,ufb(c[b>>2]|0)|0);return}function kNa(a){a=a|0;c[a>>2]=44272;VGa(a+44|0);gcb(a);return}function lNa(b){b=b|0;if(a[b+8>>0]&1)return;n=0;ca(526,b|0);b=n;n=0;if(b&1){b=ta(0)|0;P()|0;yub(b)}else return}function mNa(a,b){a=a|0;b=b|0;var d=0;d=(q1a(a,c[b+12>>2]|0)|0)+1|0;return d+(q1a(a,c[b+16>>2]|0)|0)|0}function nNa(a,b){a=a|0;b=b|0;xdb(c[b>>2]|0)|0;Tjb(a);return}function oNa(a,b){a=a|0;b=b|0;ydb(c[b>>2]|0)|0;Tjb(a);return}function pNa(a,b){a=a|0;b=b|0;zdb(c[b>>2]|0)|0;Tjb(a);return}function qNa(a,b){a=a|0;b=b|0;Adb(c[b>>2]|0)|0;Tjb(a);return}function rNa(a,b){a=a|0;b=b|0;b=(wfb(c[b>>2]|0)|0)+8|0;tjb(a,c[b>>2]|0);return}function sNa(a,b){a=a|0;b=b|0;jG(a,hdb(c[b>>2]|0)|0);return}function tNa(a,b){a=a|0;b=b|0;f6a(a,Gfb(c[b>>2]|0)|0);return}function uNa(a,b){a=a|0;b=b|0;O8a(a,cfb(c[b>>2]|0)|0);return}function vNa(a,b){a=a|0;b=b|0;O8a(a,Teb(c[b>>2]|0)|0);return}function wNa(a,b){a=a|0;b=b|0;O8a(a,Ueb(c[b>>2]|0)|0);return}function xNa(a,b){a=a|0;b=b|0;O8a(a,Veb(c[b>>2]|0)|0);return}function yNa(a,b){a=a|0;b=b|0;ueb(a,Keb(c[b>>2]|0)|0);return}function zNa(a,b){a=a|0;b=b|0;ueb(a,Leb(c[b>>2]|0)|0);return}function ANa(a,b){a=a|0;b=b|0;ueb(a,Deb(c[b>>2]|0)|0);return}function BNa(a,b){a=a|0;b=b|0;if(b>>>0>0|(b|0)==0&a>>>0>4294967295){b=kMa(b)|0;return b|0}else{b=(kMa(a)|0)+32|0;return b|0}return 0}function CNa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;ez(e,b,d,127756,WCb(c[a+32>>2]|0)|0);return}function DNa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;lz(e,b,d,128319,WCb(c[a+32>>2]|0)|0);return}function ENa(b){b=b|0;if(a[b+27>>0]&1){b=1;return b|0}if(c[b+72>>2]|0){b=1;return b|0}if(a[b+77>>0]&1){b=1;return b|0}b=(a[b+79>>0]&1)!=0;return b|0}function FNa(a){a=a|0;Zva(a+20|0);Pdb(a);return}function GNa(a){a=a|0;WCb(a)|0;if(!(VBb(c[a>>2]|0)|0)){a=0;return a|0}a=rrb(a,0)|0;a=hXa(c[a>>2]|0,c[37196]|0)|0;return a|0}function HNa(a){a=a|0;WCb(a)|0;if(!(VBb(c[a>>2]|0)|0)){a=0;return a|0}a=rrb(a,0)|0;a=hXa(c[a>>2]|0,c[37197]|0)|0;return a|0}function INa(a){a=a|0;var b=0,d=0;d=yb;yb=yb+16|0;b=d;Pwb(b,VIa(whb()|0,a)|0);yb=d;return c[b>>2]|0}function JNa(a,b){a=a|0;b=b|0;Kab(a+16|0,Keb(c[b>>2]|0)|0);return}function KNa(a,b){a=a|0;b=b|0;Kab(a+16|0,Leb(c[b>>2]|0)|0);return}function LNa(a,b){a=a|0;b=b|0;Kab(a+16|0,Deb(c[b>>2]|0)|0);return}function MNa(a,b){a=a|0;b=b|0;teb(a+16|0,Keb(c[b>>2]|0)|0);return}function NNa(a,b){a=a|0;b=b|0;teb(a+16|0,Leb(c[b>>2]|0)|0);return}function ONa(a,b){a=a|0;b=b|0;teb(a+16|0,Deb(c[b>>2]|0)|0);return}function PNa(a,b){a=a|0;b=b|0;wdb(c[b>>2]|0)|0;spb(a);return}function QNa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Efb(c[b>>2]|0)|0);return}function RNa(a,b){a=a|0;b=b|0;Kcb(a+16|0,vfb(c[b>>2]|0)|0);return}function SNa(a,b){a=a|0;b=b|0;Kcb(a+16|0,wfb(c[b>>2]|0)|0);return}function TNa(a,b){a=a|0;b=b|0;Kcb(a+16|0,xfb(c[b>>2]|0)|0);return}function UNa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Ffb(c[b>>2]|0)|0);return}function VNa(b){b=b|0;var d=0,e=0,f=0;hCb(b+4|0);d=b+56|0;e=b+12|0;f=e+44|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));g[d>>2]=1.0;a[b+9>>0]=1;return}function WNa(a,b){a=a|0;b=b|0;zea(a+44|0);return}function XNa(a,b){a=a|0;b=b|0;Aea(a+44|0);return}function YNa(a,b){a=a|0;b=b|0;Bea(a+44|0);return}function ZNa(a,b){a=a|0;b=b|0;Cea(a+44|0);return}function _Na(a,b){a=a|0;b=b|0;Dea(a+44|0);return}function $Na(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;fqb(a);return}function aOa(a){a=a|0;Vob(a+44|0);Khb(a+32|0);Hqb(a);return}function bOa(a,b){a=a|0;b=b|0;Hdb(c[b>>2]|0)|0;Tjb(a);return}function cOa(a,b){a=a|0;b=b|0;Idb(c[b>>2]|0)|0;Tjb(a);return}function dOa(a,b){a=a|0;b=b|0;Jdb(c[b>>2]|0)|0;Tjb(a);return}function eOa(a,b){a=a|0;b=b|0;Kdb(c[b>>2]|0)|0;Tjb(a);return}function fOa(a,b){a=a|0;b=b|0;Ldb(c[b>>2]|0)|0;Tjb(a);return}function gOa(a,b){a=a|0;b=b|0;mca(a,wdb(c[b>>2]|0)|0);return}function hOa(a,b){a=a|0;b=b|0;O8a(a,dfb(c[b>>2]|0)|0);return}function iOa(a,b){a=a|0;b=b|0;O8a(a,efb(c[b>>2]|0)|0);return}function jOa(a,b){a=a|0;b=b|0;O8a(a,ffb(c[b>>2]|0)|0);return}function kOa(a,b){a=a|0;b=b|0;O8a(a,tfb(c[b>>2]|0)|0);return}function lOa(a,b){a=a|0;b=b|0;O8a(a,ufb(c[b>>2]|0)|0);return}function mOa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;qz(e,b,d,132222,WCb(c[a+32>>2]|0)|0);return}function nOa(a,b){a=a|0;b=b|0;return LU(a,b)|0}function oOa(a,b){a=a|0;b=b|0;f6a(a,Tfb(c[b>>2]|0)|0);return}function pOa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Gfb(c[b>>2]|0)|0);return}function qOa(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+16>>2]|0;d=WCb(c[e>>2]|0)|0;Pwb(e,b);pI(a+44|0,d,b);return}function rOa(b,c){b=b|0;c=c|0;if(Pfb(c)|0){Iya(b,c)|0;return}else{a[b+104>>0]=0;return}}function sOa(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;yib(a+12|0);yib(a+24|0);c[a+36>>2]=0;return}function tOa(a){a=a|0;var b=0;G2a(a);c[a>>2]=44152;a=a+48|0;b=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function uOa(a){a=a|0;Chb(a+28|0);Chb(a+16|0);Chb(a+4|0);return}function vOa(a){a=a|0;var b=0;if(c[a+68>>2]|0){b=c[a+116>>2]|0;a=a+112|0;if(b|0)c[b+112>>2]=c[a>>2];a=c[a>>2]|0;c[((a|0)==0?47128:a+116|0)>>2]=b}return}function wOa(a,b){a=a|0;b=b|0;b=b+8|0;a=O8(a+24|0,b)|0;c[b>>2]=c[a>>2];return}function xOa(a){a=a|0;var b=0,d=0;b=a+8|0;if(!((c[b>>2]|0)!=0?(d=c[b>>2]|0,c[b>>2]=d+-1,(d|0)!=0):0))Rb[c[(c[a>>2]|0)+16>>2]&1023](a);return}function yOa(a){a=a|0;WCb(a)|0;if(!(VBb(c[a>>2]|0)|0)){a=0;return a|0}a=rrb(a,0)|0;a=hXa(c[a>>2]|0,c[37203]|0)|0;return a|0}function zOa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Lib(a)|0;c[a+8>>2]=b;c[a+12>>2]=d;c[a+16>>2]=e;gQ(a);return a|0}function AOa(a,b){a=a|0;b=b|0;By(a,wdb(c[b>>2]|0)|0);return}function BOa(a,b){a=a|0;b=b|0;TO(a,gdb(c[b>>2]|0)|0);return}function COa(a,b){a=a|0;b=b|0;px(a,hdb(c[b>>2]|0)|0);return}function DOa(a,b){a=a|0;b=b|0;LC(a,Leb(c[b>>2]|0)|0);return}function EOa(a,b){a=a|0;b=b|0;Mt(a,Leb(c[b>>2]|0)|0);return}function FOa(a,b){a=a|0;b=b|0;O8a(a,Efb(c[b>>2]|0)|0);return}function GOa(a,b){a=a|0;b=b|0;O8a(a,vfb(c[b>>2]|0)|0);return}function HOa(a,b){a=a|0;b=b|0;O8a(a,wfb(c[b>>2]|0)|0);return}function IOa(a,b){a=a|0;b=b|0;O8a(a,xfb(c[b>>2]|0)|0);return}function JOa(a,b){a=a|0;b=b|0;O8a(a,Ffb(c[b>>2]|0)|0);return}function KOa(a,b){a=a|0;b=b|0;ueb(a,cfb(c[b>>2]|0)|0);return}function LOa(a,b){a=a|0;b=b|0;ueb(a,Teb(c[b>>2]|0)|0);return}function MOa(a,b){a=a|0;b=b|0;ueb(a,Ueb(c[b>>2]|0)|0);return}function NOa(a,b){a=a|0;b=b|0;ueb(a,Veb(c[b>>2]|0)|0);return}function OOa(a,b,c){a=a|0;b=b|0;c=c|0;Xf(a,c);ol(c);return}function POa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;oz(e,b,d,127821,WCb(c[a+32>>2]|0)|0);return}function QOa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=b;e=c[f+4>>2]|0;d=a;c[d>>2]=c[f>>2];c[d+4>>2]=e;D$(a+8|0,b+8|0);return}function ROa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=b+4|0;if((c[e>>2]|0)==(d|0))return;c[e>>2]=d;sz(a,b);return}function SOa(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;N(23)}function TOa(a){a=+a;var b=0,d=0;d=yb;yb=yb+16|0;b=d;Pwb(b,jjb(whb()|0,a)|0);yb=d;return c[b>>2]|0}function UOa(a){a=a|0;if(a<<24>>24>96){if(a<<24>>24<123){a=1;return a|0}}else if(a<<24>>24>64?a<<24>>24<91|a<<24>>24==95:0){a=1;return a|0}a=a<<24>>24==36;return a|0}function VOa(a,b){a=a|0;b=b|0;feb(c[b>>2]|0)|0;Tjb(a);return}function WOa(a,b){a=a|0;b=b|0;geb(c[b>>2]|0)|0;Tjb(a);return}function XOa(a,b){a=a|0;b=b|0;heb(c[b>>2]|0)|0;Tjb(a);return}function YOa(a,b){a=a|0;b=b|0;ieb(c[b>>2]|0)|0;Tjb(a);return}function ZOa(a,b){a=a|0;b=b|0;Kab(a+16|0,cfb(c[b>>2]|0)|0);return}function _Oa(a,b){a=a|0;b=b|0;Kab(a+16|0,Teb(c[b>>2]|0)|0);return}function $Oa(a,b){a=a|0;b=b|0;Kab(a+16|0,Ueb(c[b>>2]|0)|0);return}function aPa(a,b){a=a|0;b=b|0;Kab(a+16|0,Veb(c[b>>2]|0)|0);return}function bPa(a,b){a=a|0;b=b|0;teb(a+16|0,cfb(c[b>>2]|0)|0);return}function cPa(a,b){a=a|0;b=b|0;teb(a+16|0,Teb(c[b>>2]|0)|0);return}function dPa(a,b){a=a|0;b=b|0;teb(a+16|0,Ueb(c[b>>2]|0)|0);return}function ePa(a,b){a=a|0;b=b|0;teb(a+16|0,Veb(c[b>>2]|0)|0);return}function fPa(a){a=a|0;var b=0,d=0;d=a+64|0;b=c[d>>2]|0;c[d>>2]=0;if((b|0)==((c[a+4>>2]|0)-(c[a>>2]|0)>>2|0))return;else ma(111372,111339,210,111394)}function gPa(a,b){a=a|0;b=b|0;b=(xfb(c[b>>2]|0)|0)+8|0;N3a(a,c[b>>2]|0);return}function hPa(a,b){a=a|0;b=b|0;O8a(a,Gfb(c[b>>2]|0)|0);return}function iPa(a,b){a=a|0;b=b|0;ueb(a,dfb(c[b>>2]|0)|0);return}function jPa(a,b){a=a|0;b=b|0;ueb(a,efb(c[b>>2]|0)|0);return}function kPa(a,b){a=a|0;b=b|0;ueb(a,ffb(c[b>>2]|0)|0);return}function lPa(a,b){a=a|0;b=b|0;ueb(a,tfb(c[b>>2]|0)|0);return}function mPa(a,b){a=a|0;b=b|0;ueb(a,ufb(c[b>>2]|0)|0);return}function nPa(a,b){a=a|0;b=b|0;Kcb(a+16|0,Tfb(c[b>>2]|0)|0);return}function oPa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+44>>2]|0;rz(e,b,d,127794,WCb(c[a+32>>2]|0)|0);return}function pPa(a){a=a|0;c[a>>2]=40916;OHa(a+44|0);gcb(a);return}function qPa(a){a=a|0;a=(Veb(a)|0)+16|0;return BGa(Peb((ffb(c[a>>2]|0)|0)+8|0)|0)|0}function rPa(a,b){a=a|0;b=b|0;ita(a,tfb(c[b>>2]|0)|0);return}function sPa(a,b){a=a|0;b=b|0;Keb(c[b>>2]|0)|0;Tjb(a);return}function tPa(a,b){a=a|0;b=b|0;Leb(c[b>>2]|0)|0;Tjb(a);return}function uPa(a,b){a=a|0;b=b|0;Deb(c[b>>2]|0)|0;Tjb(a);return}function vPa(a,b){a=a|0;b=b|0;Kab(a+16|0,dfb(c[b>>2]|0)|0);return}function wPa(a,b){a=a|0;b=b|0;Kab(a+16|0,efb(c[b>>2]|0)|0);return}function xPa(a,b){a=a|0;b=b|0;Kab(a+16|0,ffb(c[b>>2]|0)|0);return}function yPa(a,b){a=a|0;b=b|0;Kab(a+16|0,tfb(c[b>>2]|0)|0);return}function zPa(a,b){a=a|0;b=b|0;Kab(a+16|0,ufb(c[b>>2]|0)|0);return}function APa(a,b){a=a|0;b=b|0;teb(a+16|0,dfb(c[b>>2]|0)|0);return}function BPa(a,b){a=a|0;b=b|0;teb(a+16|0,efb(c[b>>2]|0)|0);return}function CPa(a,b){a=a|0;b=b|0;teb(a+16|0,ffb(c[b>>2]|0)|0);return}function DPa(a,b){a=a|0;b=b|0;teb(a+16|0,tfb(c[b>>2]|0)|0);return}function EPa(a,b){a=a|0;b=b|0;teb(a+16|0,ufb(c[b>>2]|0)|0);return}function FPa(a,b){a=a|0;b=b|0;xdb(c[b>>2]|0)|0;Jpb(a);return}function GPa(a,b){a=a|0;b=b|0;c[a>>2]=b;yib(a+4|0);return}function HPa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;D8(a,141129,Zzb(141129)|0);return}function IPa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[a+4>>2]|0)==(b|0)?(e=a+28|0,(c[e>>2]|0)!=1):0)c[e>>2]=d;return}function JPa(a,b){a=a|0;b=b|0;Nu(a,wdb(c[b>>2]|0)|0);return}function KPa(a,b){a=a|0;b=b|0;ueb(a,Efb(c[b>>2]|0)|0);return}function LPa(a,b){a=a|0;b=b|0;ueb(a,vfb(c[b>>2]|0)|0);return}function MPa(a,b){a=a|0;b=b|0;ueb(a,wfb(c[b>>2]|0)|0);return}function NPa(a,b){a=a|0;b=b|0;ueb(a,xfb(c[b>>2]|0)|0);return}function OPa(a,b){a=a|0;b=b|0;ueb(a,Ffb(c[b>>2]|0)|0);return}function PPa(a,b){a=a|0;b=b|0;b=Keb(c[b>>2]|0)|0;P4(c[a+80>>2]|0,b);return}function QPa(a,b){a=a|0;b=b|0;b=Leb(c[b>>2]|0)|0;Q4(c[a+80>>2]|0,b);return}function RPa(a,b){a=a|0;b=b|0;var c=0;c=mla(20)|0;Xcb(c,b);C9(a,c);return}function SPa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;D8(a,141135,Zzb(141135)|0);return}function TPa(a,b){a=a|0;b=b|0;Kab(a+16|0,Efb(c[b>>2]|0)|0);return}function UPa(a,b){a=a|0;b=b|0;Kab(a+16|0,vfb(c[b>>2]|0)|0);return}function VPa(a,b){a=a|0;b=b|0;Kab(a+16|0,wfb(c[b>>2]|0)|0);return}function WPa(a,b){a=a|0;b=b|0;Kab(a+16|0,xfb(c[b>>2]|0)|0);return}function XPa(a,b){a=a|0;b=b|0;Kab(a+16|0,Ffb(c[b>>2]|0)|0);return}function YPa(a,b){a=a|0;b=b|0;teb(a+16|0,Efb(c[b>>2]|0)|0);return}function ZPa(a,b){a=a|0;b=b|0;teb(a+16|0,vfb(c[b>>2]|0)|0);return}function _Pa(a,b){a=a|0;b=b|0;teb(a+16|0,wfb(c[b>>2]|0)|0);return}function $Pa(a,b){a=a|0;b=b|0;teb(a+16|0,xfb(c[b>>2]|0)|0);return}function aQa(a,b){a=a|0;b=b|0;teb(a+16|0,Ffb(c[b>>2]|0)|0);return}function bQa(a,b){a=a|0;b=b|0;O8a(a,Tfb(c[b>>2]|0)|0);return}function cQa(a,b){a=a|0;b=b|0;BM(IWa(b,a)|0);return b|0}function dQa(a,b){a=a|0;b=b|0;y2a(a);c[a>>2]=41316;c[a+44>>2]=b;return}function eQa(a){a=a|0;c[a>>2]=40328;return}function fQa(a){a=a|0;var b=0,d=0,e=0;d=a+4|0;e=c[d>>2]|0;b=c[a>>2]|0;while(1){if((b|0)==(e|0))break;RCb(c[b>>2]|0);b=b+4|0}c[d>>2]=c[a>>2];return}function gQa(a,b){a=a|0;b=b|0;var c=0;c=0;while(1){if((c|0)==(b|0))break;IWa(a,139961)|0;c=c+1|0}return a|0}function hQa(a){a=a|0;Qs(a,Zzb(141348)|0);return}function iQa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;CK(a,50168,Yzb(50168)|0);return}function jQa(a){a=a|0;var b=0;a=c[a+8>>2]|0;if(a){b=Feb(a)|0;a=Mxb()|0;if(b)Feb(b)|0}else a=1;return a|0}function kQa(a,b){a=a|0;b=b|0;G0(a,wdb(c[b>>2]|0)|0);return}function lQa(a,b){a=a|0;b=b|0;ueb(a,Gfb(c[b>>2]|0)|0);return}function mQa(a,b){a=a|0;b=b|0;BM(Wm(b,a)|0);return b|0}function nQa(a){a=a|0;bR(a);return}function oQa(a){a=a|0;var b=0,e=0;e=yb;yb=yb+16|0;b=e;if((I5(a)|0)==0?(Hb[c[a+32>>2]&255](a,b,1)|0)==1:0)a=d[b>>0]|0;else a=-1;yb=e;return a|0}function pQa(a){a=a|0;Mta(a);return}function qQa(a){a=a|0;var b=0,d=0;a=Vsb(c[a>>2]|0)|0;d=a+8|0;b=c[d>>2]|0;c[d>>2]=b+-1;if((b+-1|0)<0)RCb(a);return}function rQa(a){a=a|0;var b=0;while(1){b=c[a>>2]|0;if(!b){b=c[a+4>>2]|0;if(!b)break;else a=b}else a=b}return a|0}function sQa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;CK(a,50192,Yzb(50192)|0);return}function tQa(a){a=a|0;return 31552}function uQa(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+12|0;d=c[e>>2]|0;Xi(a,b);if((c[e>>2]|0)!=(d|0))return;Qua(a,66735);return}function vQa(a,b){a=a|0;b=b|0;cfb(c[b>>2]|0)|0;Tjb(a);return}function wQa(a,b){a=a|0;b=b|0;Teb(c[b>>2]|0)|0;Tjb(a);return}function xQa(a,b){a=a|0;b=b|0;Ueb(c[b>>2]|0)|0;Tjb(a);return}function yQa(a,b){a=a|0;b=b|0;Veb(c[b>>2]|0)|0;Tjb(a);return}function zQa(a,b){a=a|0;b=b|0;Kab(a+16|0,Gfb(c[b>>2]|0)|0);return}function AQa(a,b){a=a|0;b=b|0;teb(a+16|0,Gfb(c[b>>2]|0)|0);return}function BQa(a,b){a=a|0;b=b|0;nnb(gdb(c[b>>2]|0)|0);return}function CQa(a,b){a=a|0;b=b|0;onb(hdb(c[b>>2]|0)|0);return}function DQa(a){a=a|0;A1a(a+40|0);Vob(a+28|0);Hqb(a);return}function EQa(a){a=a|0;var b=0;b=mla(48)|0;$Ea(b,c[a+44>>2]|0);return b|0}function FQa(a,b,c){a=a|0;b=b|0;c=c|0;ma(141129,96854,837,69710)}function GQa(a,b){a=a|0;b=b|0;if(eCb(c[b+4>>2]|0)|0)return 0;else return (c[(c[a+120>>2]|0)+(c[b+8>>2]<<2)>>2]|0)>>>0<2|0;return 0}function HQa(b,d){b=b|0;d=d|0;P0a(b);c[b>>2]=42876;a[b+44>>0]=d&1;yib(b+48|0);return}function IQa(a,b,d){a=a|0;b=b|0;d=d|0;a=kgb(a)|0;c[a+8>>2]=c[b>>2];c[a+12>>2]=d;mjb(a);return a|0}function JQa(a,b){a=a|0;b=b|0;aL(a,ydb(c[b>>2]|0)|0);return}function KQa(a,b){a=a|0;b=b|0;QD(a,zdb(c[b>>2]|0)|0);return}function LQa(a,b){a=a|0;b=b|0;aH(a,Adb(c[b>>2]|0)|0);return}function MQa(a){a=a|0;switch(a|0){case 41:case 40:case 34:case 33:case 32:case 27:case 25:case 16:case 15:case 9:case 8:case 7:case 2:case 0:{a=1;break}default:a=0}return a|0}function NQa(a,b){a=a|0;b=b|0;var d=0;d=c[a>>2]|0;if(((c[a+4>>2]|0)-d|0)>>>0>b>>>0)return d+b|0;else zpa();return 0}function OQa(a){a=a|0;Aba(a,c[a+4>>2]|0);return}function PQa(a){a=a|0;lua(a);return}function QQa(a){a=a|0;mua(a);return}function RQa(a){a=a|0;Iha(a);return}function SQa(a){a=a|0;var b=0.0;switch(c[a+16>>2]|0){case 3:{b=+L8a(a);return +b}case 4:{b=+K8a(a);return +b}default:Ta()}return +(0.0)}function TQa(a,b){a=a|0;b=b|0;dfb(c[b>>2]|0)|0;Tjb(a);return}function UQa(a,b){a=a|0;b=b|0;efb(c[b>>2]|0)|0;Tjb(a);return}function VQa(a,b){a=a|0;b=b|0;ffb(c[b>>2]|0)|0;Tjb(a);return}function WQa(a,b){a=a|0;b=b|0;tfb(c[b>>2]|0)|0;Tjb(a);return}function XQa(a,b){a=a|0;b=b|0;ufb(c[b>>2]|0)|0;Tjb(a);return}function YQa(a,b){a=a|0;b=b|0;wdb(c[b>>2]|0)|0;qqb(a);return}function ZQa(a,b){a=a|0;b=b|0;ueb(a,Tfb(c[b>>2]|0)|0);return}function _Qa(a,b){a=a|0;b=b|0;s9a(c[a+24>>2]|0,b);return}function $Qa(a){a=a|0;Vob(a+48|0);Vob(a+36|0);Vob(a+24|0);Hqb(a);return}function aRa(){var a=0;a=mla(28)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;Gab(a);return a|0}function bRa(a,b){a=a|0;b=b|0;var d=0;d=c[(c[b+8>>2]|0)+4>>2]|0;mOa(a,vub(d)|0|(d|0)==6,b);return}function cRa(a){a=a|0;if(Kob(a)|0){a=0;return a|0}a=Yob(c[c[a>>2]>>2]|0)|0;return a|0}function dRa(a){a=a|0;return i6a(a+4|0)|0}function eRa(a,b){a=a|0;b=b|0;Kab(a+16|0,Tfb(c[b>>2]|0)|0);return}function fRa(a,b){a=a|0;b=b|0;teb(a+16|0,Tfb(c[b>>2]|0)|0);return}function gRa(a,b){a=a|0;b=b|0;b=(xfb(c[b>>2]|0)|0)+8|0;lra(a,c[b>>2]|0);return}function hRa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ma(141129,96854,836,69719)}function iRa(a){a=a|0;F3a(a);c[a>>2]=40836;p$a(a+44|0);c[a+104>>2]=0;c[a+108>>2]=0;c[a+112>>2]=0;return}function jRa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=yb;yb=yb+16|0;f=g|0;Pk(a,b,d,e,f)|0;yb=g;return (O(c[f+4>>2]|0),c[f>>2]|0)|0}function kRa(a){a=a|0;Iua(a);return}function lRa(a,b){a=a|0;b=b|0;return A4a(b)|0}function mRa(a,b){a=a|0;b=b|0;yN(a,b+44|0);return}function nRa(a,b){a=a|0;b=b|0;Efb(c[b>>2]|0)|0;Tjb(a);return}function oRa(a,b){a=a|0;b=b|0;vfb(c[b>>2]|0)|0;Tjb(a);return}function pRa(a,b){a=a|0;b=b|0;wfb(c[b>>2]|0)|0;Tjb(a);return}function qRa(a,b){a=a|0;b=b|0;xfb(c[b>>2]|0)|0;Tjb(a);return}function rRa(a,b){a=a|0;b=b|0;Ffb(c[b>>2]|0)|0;Tjb(a);return}function sRa(a,b){a=a|0;b=b|0;job(wdb(c[b>>2]|0)|0);return}function tRa(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}c[a+32>>2]=0;return}function uRa(a,b){a=a|0;b=b|0;if(Yrb(b)|0)return;b=b+44|0;a=Vu(a,c[b>>2]|0)|0;c[b>>2]=a;return}function vRa(a,b,d){a=a|0;b=b|0;d=d|0;a=Hgb(a+152|0)|0;if(c[37104]|0)Ng(a,b,d);c[a+8>>2]=b;c[a+4>>2]=d;return a|0}function wRa(a,b){a=a|0;b=b|0;yQ(a,feb(c[b>>2]|0)|0);return}function xRa(a,b){a=a|0;b=b|0;yQ(a,heb(c[b>>2]|0)|0);return}function yRa(a,b){a=a|0;b=b|0;FF(a,Hdb(c[b>>2]|0)|0);return}function zRa(a,b){a=a|0;b=b|0;dP(a,Idb(c[b>>2]|0)|0);return}function ARa(a,b){a=a|0;b=b|0;eP(a,Jdb(c[b>>2]|0)|0);return}function BRa(a,b){a=a|0;b=b|0;BP(a,Kdb(c[b>>2]|0)|0);return}function CRa(a,b){a=a|0;b=b|0;VD(a,Ldb(c[b>>2]|0)|0);return}function DRa(a,b){a=a|0;b=b|0;hdb(c[b>>2]|0)|0;drb()}function ERa(a,b){a=a|0;b=b|0;JA(a,ufb(c[b>>2]|0)|0);return}function FRa(a,b){a=a|0;b=b|0;BB(a,ufb(c[b>>2]|0)|0);return}function GRa(a,b){a=a|0;b=b|0;KA(a,ufb(c[b>>2]|0)|0);return}function HRa(a,b){a=a|0;b=b|0;CB(a,ufb(c[b>>2]|0)|0);return}function IRa(a,b){a=a|0;b=b|0;DB(a,ufb(c[b>>2]|0)|0);return}function JRa(a,b){a=a|0;b=b|0;s4a(a,hdb(c[b>>2]|0)|0);return}function KRa(a){a=a|0;var b=0;c[a>>2]=39992;b=a+4|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function LRa(){var a=0;cqb();n=0;ca(491,95872);a=n;n=0;if(a&1){sa()|0;P()|0;iSa()}else iSa()}function MRa(a,b){a=a|0;b=b|0;if(!(eCb(c[b+8>>2]|0)|0))return;vla(a+80|0,b+8|0);return}function NRa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d|0){e=a;while(1){d=d+-1|0;c[e>>2]=c[b>>2];if(!d)break;else{b=b+4|0;e=e+4|0}}}return a|0}function ORa(b,c){b=b|0;c=c|0;var d=0;b=EAb(b)|0;d=y2(b)|0;if(d>>>0<1024){Uv(c|0,b|0,d+1|0)|0;b=0}else{Uv(c|0,b|0,1023)|0;a[c+1023>>0]=0;b=34}return b|0}function PRa(a,b,d){a=a|0;b=b|0;d=d|0;$lb(a);c[a+24>>2]=b;c[a+28>>2]=d;return}function QRa(a){a=a|0;fva(a);return}function RRa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=a;c[e>>2]=0;c[e+4>>2]=0;e=a+8|0;c[e>>2]=-1;c[e+4>>2]=-1;return}function SRa(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==82716?a+4|0:0)|0}function TRa(a,b){a=a|0;b=b|0;Gfb(c[b>>2]|0)|0;Tjb(a);return}function URa(a,b){a=a|0;b=b|0;hdb(c[b>>2]|0)|0;btb(a);return}function VRa(a,b){a=a|0;b=b|0;a=IWa(a,98122)|0;Ym(a,c[b+8>>2]|0)|0;return}function WRa(a){a=a|0;var b=0;b=mla(12)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[a>>2]=b;return}function XRa(b){b=b|0;var d=0,e=0;d=b+16|0;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+12>>0]=0;return}function YRa(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return Ob[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)|0}function ZRa(a,b,d){a=a|0;b=b|0;d=d|0;b=rrb(b,3)|0;tQ(a,c[b>>2]|0,d);return}function _Ra(a,b){a=a|0;b=b|0;a=Efa(a,b)|0;if(!a){b=0;return b|0}b=iqb(a)|0;return b|0}function $Ra(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;f=_ha(b,c,0,d,c,e,f)|0;a[f+20>>0]=1;return f|0}function aSa(a,b){a=a|0;b=b|0;CH(a,ieb(c[b>>2]|0)|0);return}function bSa(a,b){a=a|0;b=b|0;hdb(c[b>>2]|0)|0;F2a(a);return}function cSa(a,b){a=a|0;b=b|0;MA(a,cfb(c[b>>2]|0)|0);return}function dSa(a){a=a|0;wva(a);return}function eSa(a,b){a=a|0;b=b|0;if(VBb(c[a>>2]|0)|0)return uXa(c[a+8>>2]|0,b)|0;else ma(74875,74885,409,140414);return 0}function fSa(a,b){a=a|0;b=b|0;Rob(ydb(c[b>>2]|0)|0);return}function gSa(a,b){a=a|0;b=b|0;Sob(zdb(c[b>>2]|0)|0);return}function hSa(a,b){a=a|0;b=b|0;Tob(Adb(c[b>>2]|0)|0);return}function iSa(){var a=0;n=0;U(59,150620,127446)|0;a=n;n=0;if(!(a&1)){n=0;ca(495,1);n=0}a=ta(0)|0;P()|0;yub(a)}function jSa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=c[b>>2];return}function kSa(a){a=a|0;Vob(a+48|0);Vob(a+36|0);C5a(a);return}function lSa(b){b=b|0;var d=0;KRa(b);c[b>>2]=41928;a[b+16>>0]=0;d=b+20|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;g[b+36>>2]=1.0;return}function mSa(a,b){a=a|0;b=b|0;Tfb(c[b>>2]|0)|0;Tjb(a);return}function nSa(a,b){a=a|0;b=b|0;kL(a,Keb(c[b>>2]|0)|0);return}function oSa(a,b){a=a|0;b=b|0;lA(a,wdb(c[b>>2]|0)|0);return}function pSa(b,c,d){b=b|0;c=c|0;d=d|0;c=c+d|0;d=b+16|0;do{a[b>>0]=a[c>>0]|0;b=b+1|0;c=c+1|0}while((b|0)<(d|0));return}function qSa(a){a=a|0;var b=0;b=mla(48)|0;aGa(b,c[a+44>>2]|0);return b|0}function rSa(a){a=a|0;Vob(a+48|0);Vob(a+36|0);ilb(a+24|0);Hqb(a);return}function sSa(a){a=a|0;if(((c[(c[a+16>>2]|0)+4>>2]|0)!=6?(c[(c[a+20>>2]|0)+4>>2]|0)!=6:0)?(c[(c[a+24>>2]|0)+4>>2]|0)!=6:0)return;c[a+4>>2]=6;return}function tSa(a,b,d){a=a|0;b=b|0;d=d|0;return T3a(c[a+32>>2]|0,d,b)|0}function uSa(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a>>2]|0;RCb(a);a=b}return}function vSa(a,b){a=a|0;b=b|0;ceb(a,Efb(c[b>>2]|0)|0);return}function wSa(a,b){a=a|0;b=b|0;deb(a,Efb(c[b>>2]|0)|0);return}function xSa(b,d,e){b=b|0;d=d|0;e=e|0;c[b>>2]=d;Gsb(b+4|0,d);c[b+8>>2]=e;d=(WCb(e)|0)==0&1;a[b+12>>0]=d;return}function ySa(a){a=a|0;if(!(a&1))return;BM(IWa(150620,112655)|0);return}function zSa(a){a=a|0;V_(a);Fc(a);Zj(a);return}function ASa(a){a=a|0;Pkb(a+12|0);YFa(a);return}function BSa(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=Tta(e,f)|0;a=P()|0;return (O((J(b,f)|0)+(J(d,e)|0)+a|a&0|0),c|0|0)|0}function CSa(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(!b)return;d=a+4|0;c[d>>2]=b;RCb(b);c[a+8>>2]=0;c[d>>2]=0;c[a>>2]=0;return}function DSa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=b;c[a+4>>2]=d;VA(a+8|0,e,b);return}function ESa(a,b){a=a|0;b=b|0;vO(a,feb(c[b>>2]|0)|0);return}function FSa(a,b){a=a|0;b=b|0;NZ(a,geb(c[b>>2]|0)|0);return}function GSa(a,b){a=a|0;b=b|0;M8(a,heb(c[b>>2]|0)|0);return}function HSa(a,b){a=a|0;b=b|0;_I(a,ieb(c[b>>2]|0)|0);return}function ISa(a,b){a=a|0;b=b|0;Caa(a,tfb(c[b>>2]|0)|0);return}function JSa(a,b){a=a|0;b=b|0;a=IWa(a,98111)|0;Ym(a,c[b+8>>2]|0)|0;return}function KSa(a){a=a|0;Sma(a,WCb(c[a>>2]|0)|0);return}function LSa(a,b){a=a|0;b=b|0;b=WCb(c[b+16>>2]|0)|0;return b+(((bCb(a)|0)^1)<<31>>31)|0}function MSa(a,b){a=a|0;b=b|0;return h6a(b)|0}function NSa(a,b){a=a|0;b=b|0;Kdb(c[b>>2]|0)|0;btb(a);return}function OSa(a,b){a=a|0;b=b|0;Ldb(c[b>>2]|0)|0;btb(a);return}function PSa(a,b){a=a|0;b=b|0;xpb(Hdb(c[b>>2]|0)|0);return}function QSa(a,b){a=a|0;b=b|0;ypb(Idb(c[b>>2]|0)|0);return}function RSa(a,b){a=a|0;b=b|0;zpb(Jdb(c[b>>2]|0)|0);return}function SSa(a,b){a=a|0;b=b|0;Apb(Kdb(c[b>>2]|0)|0);return}function TSa(a,b){a=a|0;b=b|0;Bpb(Ldb(c[b>>2]|0)|0);return}function USa(b,c){b=b|0;c=c|0;var d=0;a[b+77>>0]=1;d=b+79|0;a[d>>0]=(a[d>>0]|a[c+20>>0])&1;if(a[b+24>>0]&1)return;a[b+78>>0]=1;return}function VSa(b,d){b=b|0;d=d|0;c[b>>2]=d;c[b+4>>2]=d+152;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;pWa(b+20|0);a[b+40>>0]=0;return}function WSa(a){a=a|0;u$a(a+4|0);return}function XSa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=b;e=c[f+4>>2]|0;d=a;c[d>>2]=c[f>>2];c[d+4>>2]=e;O3(a+8|0,b+8|0);return}function YSa(a){a=a|0;if(OBb(a)|0){a=1;return a|0}if(VBb(a)|0){a=1;return a|0}a=aCb(a)|0;return a|0}function ZSa(a,b){a=a|0;b=b|0;Kdb(c[b>>2]|0)|0;F2a(a);return}function _Sa(a,b){a=a|0;b=b|0;Ldb(c[b>>2]|0)|0;F2a(a);return}function $Sa(a,b){a=a|0;b=b|0;dI(a,xdb(c[b>>2]|0)|0);return}function aTa(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;Ijb(a);return}function bTa(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=42368;return}function cTa(a){a=a|0;var b=0;b=mla(148)|0;REa(b,c[a+136>>2]|0);return b|0}function dTa(a){a=a|0;Iwa(a);return}function eTa(a,b,c){a=a|0;b=b|0;c=c|0;b=(Peb(b)|0)&65535;Bqb(a,(NYa(b,(Peb(c)|0)&65535)|0)<<16>>16);return}function fTa(a,b,c){a=a|0;b=b|0;c=c|0;b=(Peb(b)|0)&65535;Bqb(a,(nZa(b,(Peb(c)|0)&65535)|0)<<16>>16);return}function gTa(a,b){a=a|0;b=b|0;CN(a,b+16|0);Tub()}function hTa(a,b){a=a|0;b=b|0;BM(Ym(b,a)|0);return b|0}function iTa(a){a=a|0;JZa(a);c[a>>2]=43116;c[a+44>>2]=0;c[a+48>>2]=0;c[a+52>>2]=0;return}function jTa(a){a=a|0;KRa(a);b5(a+16|0);c[a>>2]=43832;return}function kTa(){Jxb();lwb();fAb();dAb();cAb();bAb();Vzb();return}function lTa(a){a=a|0;Vob(a+44|0);Vob(a+32|0);P8a(a);return}function mTa(a,b){a=a|0;b=b|0;ieb(c[b>>2]|0)|0;btb(a);return}function nTa(a,b){a=a|0;b=b|0;VI(a,feb(c[b>>2]|0)|0);return}function oTa(a,b){a=a|0;b=b|0;WQ(a,Keb(c[b>>2]|0)|0);return}function pTa(a,b){a=a|0;b=b|0;UY(a,Leb(c[b>>2]|0)|0);return}function qTa(a,b){a=a|0;b=b|0;S2(a,Deb(c[b>>2]|0)|0);return}function rTa(a,b){a=a|0;b=b|0;switch(b|0){case 1:{b=a&31;return b|0}case 2:{b=a&63;return b|0}default:ma(141129,103687,53,89409)}return 0}function sTa(b,c){b=b|0;c=c|0;var d=0;a[b+76>>0]=1;d=b+79|0;a[d>>0]=(a[d>>0]|a[c+20>>0])&1;if(a[b+24>>0]&1)return;a[b+78>>0]=1;return}function tTa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=J(c,b)|0;a=VE(a,e,d)|0;if((a|0)==(e|0))a=(b|0)==0?0:c;else a=(a>>>0)/(b>>>0)|0;return a|0}function uTa(a){a=a|0;$lb(a);yib(a+24|0);Cub(a+36|0);return}function vTa(a){a=a|0;zIa(a+36|0);igb(a);return}function wTa(a){a=a|0;Wwa(a);return}function xTa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((b|0)!=(d|0)){d=0;return d|0}d=L6(a,c)|0;return d|0}function yTa(){var a=0,b=0;b=yb;yb=yb+16|0;a=b;Pwb(a,_qb(whb()|0)|0);yb=b;return c[a>>2]|0}function zTa(a){a=a|0;var b=0,d=0;d=yb;yb=yb+16|0;b=d;hCb(b);if((a+-76|0)>>>0<76)Grb(b);yb=d;return c[b>>2]|0}function ATa(a,b){a=a|0;b=b|0;ieb(c[b>>2]|0)|0;F2a(a);return}function BTa(a,b){a=a|0;b=b|0;ita(a,ufb(c[b>>2]|0)|0);return}function CTa(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;VA(a+4|0,d,c[b>>2]|0);return}function DTa(a,b){a=a|0;b=b|0;return Iw(a,b)|0}function ETa(a){a=a|0;var b=0,d=0;fQa(a);b=a+20|0;if(c[b>>2]|0?(d=c[b>>2]|0,d|0):0){ETa(d);RCb(d)}Vob(a);return}function FTa(a){a=a|0;var b=0;b=a+4|0;a=c[b>>2]|0;c[b>>2]=0;if(!a)return;Brb(a);RCb(a);return}function GTa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function HTa(a,b,d){a=a|0;b=b|0;d=d|0;a=cib(a)|0;c[a+8>>2]=c[b>>2];c[a+12>>2]=d;Qpb(a);return a|0}function ITa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Uha(a,Uha(a,b,c)|0,d)|0}function JTa(a,b){a=a|0;b=b|0;DM(a,b+44|0);return}function KTa(a,b){a=a|0;b=b|0;VI(a,Keb(c[b>>2]|0)|0);return}function LTa(a,b){a=a|0;b=b|0;Cp(a,Keb(c[b>>2]|0)|0);return}function MTa(a,b){a=a|0;b=b|0;yp(a,Leb(c[b>>2]|0)|0);return}function NTa(a,b){a=a|0;b=b|0;ey(a,Keb(c[b>>2]|0)|0);return}function OTa(a,b){a=a|0;b=b|0;Zz(a,Leb(c[b>>2]|0)|0);return}function PTa(a,b){a=a|0;b=b|0;xdb(c[b>>2]|0)|0;otb(a);return}function QTa(a,b){a=a|0;b=b|0;_sa(a,feb(c[b>>2]|0)|0);return}function RTa(a,b){a=a|0;b=b|0;$sa(a,heb(c[b>>2]|0)|0);return}function STa(a){a=a|0;$Va(a+12|0);$Va(a);return}function TTa(a){a=a|0;var b=0;b=mla(12)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;Ysb(b);c[a>>2]=b;return}function UTa(a){a=a|0;var b=0;b=c[a>>2]|0;if(b){b=ob(b|0,0)|0;if(!b){c[a>>2]=0;return}}else b=22;Yla(b,138980)}function VTa(a){a=a|0;txa(a);return}function WTa(a,b,c){a=a|0;b=b|0;c=c|0;b=(Peb(b)|0)&65535;Bqb(a,(Zfb(b,(Peb(c)|0)&65535)|0)&65535);return}function XTa(a,b,c){a=a|0;b=b|0;c=c|0;b=(Peb(b)|0)&65535;Bqb(a,(Sfb(b,(Peb(c)|0)&65535)|0)&65535);return}function YTa(a,b){a=a|0;b=b|0;sqb(feb(c[b>>2]|0)|0);return}function ZTa(a,b){a=a|0;b=b|0;tqb(geb(c[b>>2]|0)|0);return}function _Ta(a,b){a=a|0;b=b|0;uqb(ieb(c[b>>2]|0)|0);return}function $Ta(a,b){a=a|0;b=b|0;ita(a,Efb(c[b>>2]|0)|0);return}function aUa(b){b=b|0;var d=0;iob(b);d=b+12|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;g[b+28>>2]=1.0;a[b+32>>0]=0;return}function bUa(){var a=0,b=0;a=yb;yb=yb+16|0;if(!(rb(151752,40)|0)){b=nb(c[37939]|0)|0;yb=a;return b|0}else Xdb(139282,a);return 0}function cUa(b,c){b=b|0;c=c|0;var d=0;d=b+20|0;if(!(a[d>>0]&1))return;a[d>>0]=0;if(!(kjb(c)|0))return;hfa(b,32);return}function dUa(a,b){a=a|0;b=b|0;Lo(a,ufb(c[b>>2]|0)|0);return}function eUa(a,b){a=a|0;b=b|0;Wr(a,cfb(c[b>>2]|0)|0);return}function fUa(a,b){a=a|0;b=b|0;FG(a,Teb(c[b>>2]|0)|0);return}function gUa(a,b){a=a|0;b=b|0;IH(a,Veb(c[b>>2]|0)|0);return}function hUa(a,b){a=a|0;b=b|0;GM(a,b+44|0);return}function iUa(a){a=a|0;mP(a+16|0);Xjb(a);return}function jUa(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;hkb(a);return}function kUa(a,b){a=a|0;b=b|0;Vl(a,b+8|0)|0;return}function lUa(a,b,d){a=a|0;b=b|0;d=d|0;b=rrb(b,3)|0;Vz(a,c[b>>2]|0,d);return}function mUa(){var b=0;if(!(a[148112]|0)){a[148112]=1;b=148e3}else b=mla(112)|0;c[36997]=b;c[36996]=b;c[36998]=b+112;return}function nUa(a,b,c){a=a|0;b=b|0;c=c|0;b=(Peb(b)|0)&255;Bqb(a,(o0a(b,(Peb(c)|0)&255)|0)<<24>>24);return}function oUa(a,b,c){a=a|0;b=b|0;c=c|0;b=(Peb(b)|0)&255;Bqb(a,(p0a(b,(Peb(c)|0)&255)|0)<<24>>24);return}function pUa(a,b){a=a|0;b=+b;var d=0,e=0;d=yb;yb=yb+16|0;e=d;g[e>>2]=b;e=LAb(e)|0;c[a>>2]=e;c[a+16>>2]=3;yb=d;return}function qUa(a,b){a=a|0;b=b|0;if((c[b+16>>2]|0)==2){Heb(a,c[b>>2]|0,c[b+4>>2]|0);c[a+16>>2]=4;return}else ma(111577,111484,85,111595)}function rUa(a,b){a=a|0;b=b|0;Vc(a,Efb(c[b>>2]|0)|0);return}function sUa(a,b,d){a=a|0;b=b|0;d=d|0;c[a+4>>2]=b;if(b|0)return;if(!(WCb(c[a+16>>2]|0)|0))return;fA(a,1,d);return}function tUa(a,b){a=a|0;b=b|0;return (C8(a+12|0,b)|0)!=(a+16|0)|0}function uUa(a,b){a=a|0;b=b|0;var d=0;d=mla(68)|0;GEa(d,c[b>>2]|0);c[a>>2]=d;return}function vUa(a){a=a|0;var b=0;b=c[a+32>>2]|0;if(b|0?(c[b+4>>2]|0)==6:0){b=0;return b|0}b=(c[(c[a+28>>2]|0)+4>>2]|0)!=6;return b|0}function wUa(a,b){a=a|0;b=b|0;Jaa(a,c[b>>2]|0);Jaa(a,c[b+4>>2]|0);return}function xUa(a,b){a=a|0;b=b|0;Hkb(a);return}function yUa(a,b){a=a|0;b=b|0;Hkb(a+16|0);return}function zUa(a,b){a=a|0;b=b|0;Uh(a,Veb(c[b>>2]|0)|0);return}function AUa(a,b){a=a|0;b=b|0;u8(a,Keb(c[b>>2]|0)|0);return}function BUa(a,b){a=a|0;b=b|0;Dua(a,Keb(c[b>>2]|0)|0);return}function CUa(a,b){a=a|0;b=b|0;Eua(a,Leb(c[b>>2]|0)|0);return}function DUa(a,b){a=a|0;b=b|0;if(b>>>0<1106247679|(b|0)==1106247679&a>>>0<4292870145)return 1;else return (b|0)<0&(b>>>0<3220176896|(b|0)==-1074790400&a>>>0<0)|0;return 0}function EUa(a,b){a=a|0;b=b|0;if(b>>>0<1105199103|(b|0)==1105199103&a>>>0<4290772993)return 1;else return (b|0)<0&(b>>>0<3252682752|(b|0)==-1042284544&a>>>0<1)|0;return 0}function FUa(a,b,c){a=a|0;b=b|0;c=c|0;ma(141129,96854,835,69727)}function GUa(a,b,c){a=a|0;b=b|0;c=c|0;ma(141129,96854,834,69735)}function HUa(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;g[a+28>>2]=1.0;return}function IUa(a,b){a=a|0;b=b|0;Rga(a,b);c[a+12>>2]=-1;c[a+16>>2]=-1;return}function JUa(a){a=a|0;iUa(a);RCb(a);return}function KUa(a,b){a=a|0;b=b|0;a=bkb(a+152|0)|0;if(c[37104]|0)Qg(a,56874,b);c[a+8>>2]=b;dmb(a);return a|0}function LUa(a){a=a|0;c[a>>2]=40156;c[a+64>>2]=40196;c[a+8>>2]=40176;aWa(a+12|0);return}function MUa(a,b){a=a|0;b=b|0;wdb(c[b>>2]|0)|0;ymb(a);return}function NUa(a,b){a=a|0;b=b|0;frb(Keb(c[b>>2]|0)|0);return}function OUa(a,b){a=a|0;b=b|0;grb(Deb(c[b>>2]|0)|0);return}function PUa(a,b,c){a=a|0;b=b|0;c=c|0;ma(141129,96854,831,69750)}function QUa(a,b,c){a=a|0;b=b|0;c=c|0;ma(141129,96854,833,69743)}function RUa(){var b=0;if((a[147456]|0)==0?mlb(147456)|0:0){b=ab(96061)|0;if(!b)b=0;else b=sY(b)|0;c[37328]=b}return c[37328]|0}function SUa(a){a=a|0;Pdb(a+28|0);Hqb(a);return}function TUa(a){a=a|0;n=0;S(338,a|0)|0;a=n;n=0;if(a&1){a=ta(0)|0;P()|0;yub(a)}else return}function UUa(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==89474?a+4|0:0)|0}function VUa(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;qkb(a);return}function WUa(a,b){a=a|0;b=b|0;efb(c[b>>2]|0)|0;btb(a);return}function XUa(a,b){a=a|0;b=b|0;DM(a,b+16|0);return}function YUa(a,b){a=a|0;b=b|0;VI(a,dfb(c[b>>2]|0)|0);return}function ZUa(a,b){a=a|0;b=b|0;OH(a,efb(c[b>>2]|0)|0);return}function _Ua(a,b){a=a|0;b=b|0;kx(a,tfb(c[b>>2]|0)|0);return}function $Ua(a,b){a=a|0;b=b|0;Qx(a,ufb(c[b>>2]|0)|0);return}function aVa(a,b){a=a|0;b=b|0;Ay(a,cfb(c[b>>2]|0)|0);return}function bVa(a,b){a=a|0;b=b|0;hC(a,cfb(c[b>>2]|0)|0);return}function cVa(a,b){a=a|0;b=b|0;SR(a,Teb(c[b>>2]|0)|0);return}function dVa(a,b){a=a|0;b=b|0;pia(a,Ueb(c[b>>2]|0)|0);return}function eVa(a,b){a=a|0;b=b|0;Kn(a,Veb(c[b>>2]|0)|0);return}function fVa(a,b){a=a|0;b=b|0;ieb(c[b>>2]|0)|0;ctb()}function gVa(a,b){a=a|0;b=b|0;raa(a,Keb(c[b>>2]|0)|0);return}function hVa(a,b){a=a|0;b=b|0;raa(a,Leb(c[b>>2]|0)|0);return}function iVa(a,b){a=a|0;b=b|0;d5(a,Keb(c[b>>2]|0)|0);return}function jVa(a,b){a=a|0;b=b|0;yia(a,Keb(c[b>>2]|0)|0);return}function kVa(a,b){a=a|0;b=b|0;Lja(a,Leb(c[b>>2]|0)|0);return}function lVa(a,b){a=a|0;b=b|0;_Ha(a,ieb(c[b>>2]|0)|0);return}function mVa(){var b=0,d=0,e=0;b=mla(44)|0;d=b;e=d+44|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));lSa(b);a[b+16>>0]=1;return b|0}function nVa(a){a=a|0;Wya(a);return}function oVa(b,c){b=b|0;c=c|0;c=Cbb(WCb(c)|0)|0;Qua(b,tj(+h[c>>3],(a[b+1>>0]&1)!=0)|0);return}function pVa(a,b,d){a=a|0;b=b|0;d=d|0;a=Hhb(a)|0;c[a+8>>2]=b;c[a+12>>2]=d;tu(a);return a|0}function qVa(a,b,d){a=a|0;b=b|0;d=d|0;a=Ggb(a)|0;c[a+8>>2]=b;c[a+12>>2]=d;m4a(a,1);return a|0}function rVa(a){a=a|0;var b=0;if((c[a+16>>2]|0)==4){b=a;a=c[b>>2]|0;O(c[b+4>>2]|0);return a|0}else ma(111633,78105,100,55590);return 0}function sVa(a,b){a=a|0;b=b|0;var d=0,e=0;Yaa(a,b);e=b+32|0;d=c[e+4>>2]|0;b=a+32|0;c[b>>2]=c[e>>2];c[b+4>>2]=d;return}function tVa(a,b,d){a=a|0;b=b|0;d=d|0;a=Ggb(a)|0;c[a+8>>2]=b;c[a+12>>2]=d;FHa(a);return a|0}function uVa(a,b){a=a|0;b=b|0;vfb(c[b>>2]|0)|0;btb(a);return}function vVa(a,b){a=a|0;b=b|0;ni(a,dfb(c[b>>2]|0)|0);return}function wVa(a,b){a=a|0;b=b|0;yW(a,efb(c[b>>2]|0)|0);return}function xVa(a,b){a=a|0;b=b|0;Yu(a,efb(c[b>>2]|0)|0);return}function yVa(a,b){a=a|0;b=b|0;Pn(a,cfb(c[b>>2]|0)|0);return}function zVa(a,b){a=a|0;b=b|0;xi(a,Teb(c[b>>2]|0)|0);return}function AVa(a,b){a=a|0;b=b|0;or(a,Ueb(c[b>>2]|0)|0);return}function BVa(a,b){a=a|0;b=b|0;Rg(a,Veb(c[b>>2]|0)|0);return}function CVa(a,b){a=a|0;b=b|0;GM(a,b+16|0);return}function DVa(a,b){a=a|0;b=b|0;ID(a,Keb(c[b>>2]|0)|0);return}function EVa(a,b){a=a|0;b=b|0;b=WCb(c[b>>2]|0)|0;b=Tya(c[a+4>>2]|0,b)|0;O(P()|0);return b|0}function FVa(a,b){a=a|0;b=b|0;if(!a){b=(m6a(b)|0)+32|0;return b|0}else{b=m6a(a)|0;return b|0}return 0}function GVa(a){a=a|0;var b=0,d=0;d=a+4|0;b=c[d>>2]|0;c[d>>2]=b+-1;if(!b)Rb[c[(c[a>>2]|0)+8>>2]&1023](a);return}function HVa(a){a=a|0;return 31520}function IVa(a,b,c){a=a|0;b=b|0;c=c|0;b=(Peb(b)|0)&255;Bqb(a,(xhb(b,(Peb(c)|0)&255)|0)&255);return}function JVa(a,b,c){a=a|0;b=b|0;c=c|0;b=(Peb(b)|0)&255;Bqb(a,(qhb(b,(Peb(c)|0)&255)|0)&255);return}function KVa(a,b){a=a|0;b=b|0;QQ(a,Ffb(c[b>>2]|0)|0);return}function LVa(a,b){a=a|0;b=b|0;bC(a,cfb(c[b>>2]|0)|0);return}function MVa(a){a=a|0;var b=0;b=a+4|0;c[b>>2]=1;if((c[(c[a+12>>2]|0)+4>>2]|0)!=6?(c[(c[a+16>>2]|0)+4>>2]|0)!=6:0)return;c[b>>2]=6;return}function NVa(a){a=a|0;Vob(a+28|0);Vob(a+16|0);Vob(a+4|0);return}function OVa(b,d){b=b|0;d=d|0;c[b>>2]=50748;tDa(b+4|0,(a[d+11>>0]|0)<0?c[d>>2]|0:d);return}function PVa(a,b){a=a|0;b=b|0;if(!(vub(c[b+4>>2]|0)|0))return b|0;b=Q6a(a,b)|0;return b|0}function QVa(a,b){a=a|0;b=b|0;Efb(c[b>>2]|0)|0;RBa(a);return}function RVa(a,b){a=a|0;b=b|0;nca(a,tfb(c[b>>2]|0)|0);return}function SVa(a,b){a=a|0;b=b|0;sn(a,ufb(c[b>>2]|0)|0);return}function TVa(a,b){a=a|0;b=b|0;oi(a,dfb(c[b>>2]|0)|0);return}function UVa(a,b){a=a|0;b=b|0;au(a,efb(c[b>>2]|0)|0);return}function VVa(a,b){a=a|0;b=b|0;z5(a,tfb(c[b>>2]|0)|0);return}function WVa(a,b){a=a|0;b=b|0;Hj(a,ufb(c[b>>2]|0)|0);return}function XVa(a,b){a=a|0;b=b|0;EQ(a,tfb(c[b>>2]|0)|0);return}function YVa(a,b){a=a|0;b=b|0;FYa(a,ufb(c[b>>2]|0)|0);return}function ZVa(a,b){a=a|0;b=b|0;return (C8(a,b)|0)!=(a+4|0)|0}function _Va(b){b=b|0;if(a[b+8>>0]&1)return;SEa(c[b>>2]|0,10)|0;b=b+4|0;c[b>>2]=(c[b>>2]|0)+1;return}function $Va(a){a=a|0;bAa(a);return}function aWa(a){a=a|0;c[a>>2]=39800;Chb(a+32|0);olb(a);return}function bWa(a,b){a=a|0;b=b|0;if((c[b+16>>2]|0)==1){b=c[b>>2]|0;Heb(a,b,((b|0)<0)<<31>>31);return}else ma(111549,111484,256,111796)}function cWa(a){a=a|0;var b=0;b=c[a+4>>2]|0;if(!b)ma(101662,118839,205,101694);else return (c[a>>2]|0)+(b+-1<<2)|0;return 0}function dWa(a){a=a|0;var b=0,d=0;b=yb;yb=yb+16|0;d=b;c[d>>2]=a;a=WGa(d)|0;yb=b;return a|0}function eWa(a,b){a=a|0;b=b|0;pR(a,Ffb(c[b>>2]|0)|0);return}function fWa(a,b){a=a|0;b=b|0;XS(a,Efb(c[b>>2]|0)|0);return}function gWa(a,b){a=a|0;b=b|0;YI(a,vfb(c[b>>2]|0)|0);return}function hWa(a,b){a=a|0;b=b|0;pfb(a,wfb(c[b>>2]|0)|0);return}function iWa(a,b){a=a|0;b=b|0;ZI(a,xfb(c[b>>2]|0)|0);return}function jWa(a,b){a=a|0;b=b|0;qfb(a,Ffb(c[b>>2]|0)|0);return}function kWa(a,b){a=a|0;b=b|0;Ueb(c[b>>2]|0)|0;otb(a);return}function lWa(){var a=0,b=0,d=0;a=mla(60)|0;b=a;d=b+60|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));$ab(a);return a|0}function mWa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=WCb(c[b>>2]|0)|0;n8(c[a+4>>2]|0,b,d,e);return}function nWa(a){a=a|0;if(!(a&1))return;BM(IWa(150620,112676)|0);return}function oWa(b,d){b=b|0;d=d|0;jbb(b);Cub(b+36|0);a[b+40>>0]=0;c[b+44>>2]=0;c[b+48>>2]=0;c[b+52>>2]=d;return}function pWa(d){d=d|0;var e=0;a[d>>0]=0;a[d+1>>0]=1;a[d+2>>0]=0;e=d+4|0;c[e>>2]=0;c[e+4>>2]=0;b[e+8>>1]=0;Pwb(d+16|0,31);return}function qWa(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];Sta(a+4|0,b+4|0);return}function rWa(b,d){b=b|0;d=d|0;c[b>>2]=50728;tDa(b+4|0,(a[d+11>>0]|0)<0?c[d>>2]|0:d);return}function sWa(a,b){a=a|0;b=b|0;Vib(a,efb(c[b>>2]|0)|0);return}function tWa(a,b){a=a|0;b=b|0;Sq(a,dfb(c[b>>2]|0)|0);return}function uWa(a,b){a=a|0;b=b|0;Rn(a,efb(c[b>>2]|0)|0);return}function vWa(a,b){a=a|0;b=b|0;at(a,ffb(c[b>>2]|0)|0);return}function wWa(a,b){a=a|0;b=b|0;lh(a,tfb(c[b>>2]|0)|0);return}function xWa(a,b){a=a|0;b=b|0;fj(a,ufb(c[b>>2]|0)|0);return}function yWa(a,b){a=a|0;b=b|0;EE(a,cfb(c[b>>2]|0)|0);return}function zWa(a,b){a=a|0;b=b|0;YHa(a,Veb(c[b>>2]|0)|0);return}function AWa(a,b){a=a|0;b=b|0;ma(141129,96854,830,69758);return 0}function BWa(a,b){a=a|0;b=b|0;ma(141129,96854,829,69766);return 0}function CWa(a,b){a=a|0;b=b|0;ma(141129,96854,828,69774);return 0}function DWa(a,b){a=a|0;b=b|0;ma(141129,96854,827,69782);return 0}function EWa(a,b){a=a|0;b=b|0;ma(141129,96854,826,69790);return 0}function FWa(a,b){a=a|0;b=b|0;ma(141129,96854,825,69798);return 0}function GWa(a){a=a|0;c[a>>2]=45472;Pdb(a+184|0);v5a(a);return}function HWa(a,b){a=a|0;b=b|0;var c=0;c=mla(92)|0;zaa(c,b);C9(a,c);return}function IWa(a,b){a=a|0;b=b|0;return ep(a,b,Zzb(b)|0)|0}function JWa(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=40584;c[a+4>>2]=b;c[a+8>>2]=d;c[a+16>>2]=a;return}function KWa(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;c[f>>2]=d;c[i>>2]=g;return 3}function LWa(a,b){a=a|0;b=b|0;jY(a,vfb(c[b>>2]|0)|0);return}function MWa(a,b){a=a|0;b=b|0;Zu(a,vfb(c[b>>2]|0)|0);return}function NWa(a,b){a=a|0;b=b|0;ssb(Teb(c[b>>2]|0)|0);return}function OWa(a,b){a=a|0;b=b|0;tsb(Veb(c[b>>2]|0)|0);return}function PWa(a,b){a=a|0;b=b|0;f4(a,tfb(c[b>>2]|0)|0);return}function QWa(a,b){a=a|0;b=b|0;Rk(a,ufb(c[b>>2]|0)|0);return}function RWa(){var b=0;b=mla(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;Gpb(b);a[b+16>>0]=1;return b|0}function SWa(a,b){a=a|0;b=b|0;if(b>>>0<1139802112|(b|0)==1139802112&a>>>0<0)return 1;else return (b|0)<0&(b>>>0<3220176896|(b|0)==-1074790400&a>>>0<0)|0;return 0}function TWa(a,b){a=a|0;b=b|0;if(b>>>0<1138753536|(b|0)==1138753536&a>>>0<0)return 1;else return (b|0)<0&(b>>>0<3286237184|(b|0)==-1008730112&a>>>0<1)|0;return 0}function UWa(a,b){a=a|0;b=b|0;ma(141129,96854,824,69806);return 0}function VWa(a,b){a=a|0;b=b|0;ma(141129,96854,823,69813);return 0}function WWa(a,b){a=a|0;b=b|0;eYa(a+16|0,b);sf(a);return}function XWa(a){a=a|0;var b=0,d=0;a=c[a>>2]|0;d=a+4|0;b=c[d>>2]|0;c[d>>2]=b+-1;if(!b)Rb[c[(c[a>>2]|0)+8>>2]&1023](a);return}function YWa(a,b){a=a|0;b=b|0;yJ(a,cfb(c[b>>2]|0)|0);return}function ZWa(a,b,d){a=a|0;b=b|0;d=d|0;d=WCb(c[d>>2]|0)|0;pSa(a,c[b+4>>2]|0,d);return}function _Wa(a,b){a=a|0;b=b|0;b=T3a(c[a>>2]|0,b,2)|0;return pVa(c[a>>2]|0,24,b)|0}function $Wa(a,b,c){a=a|0;b=b|0;c=c|0;bwa(a,b,c<<4);return}function aXa(a){a=a|0;var b=0,d=0;b=yb;yb=yb+16|0;d=b;a=WCb(c[a+60>>2]|0)|0;c[d>>2]=a;a=bqb(Ma(6,d|0)|0)|0;yb=b;return a|0}function bXa(a){a=a|0;iBa(a);return}function cXa(a){a=a|0;jBa(a);return}function dXa(a){a=a|0;kBa(a);return}function eXa(a){a=a|0;lBa(a);return}function fXa(a){a=a|0;mBa(a);return}function gXa(a){a=a|0;return jcb(c[a+4>>2]|0)|0}function hXa(a,b){a=a|0;b=b|0;WCb(a)|0;if(!(bCb(c[a>>2]|0)|0)){b=0;return b|0}b=dub(c[a+8>>2]|0,b)|0;return b|0}function iXa(a,b){a=a|0;b=b|0;lJa(a,Efb(c[b>>2]|0)|0);return}function jXa(a,b){a=a|0;b=b|0;AE(a,Efb(c[b>>2]|0)|0);return}function kXa(a,b){a=a|0;b=b|0;Cv(a,vfb(c[b>>2]|0)|0);return}function lXa(a,b){a=a|0;b=b|0;Mea(a,wfb(c[b>>2]|0)|0);return}function mXa(a,b){a=a|0;b=b|0;bRa(a,xfb(c[b>>2]|0)|0);return}function nXa(a,b){a=a|0;b=b|0;Vw(a,Ffb(c[b>>2]|0)|0);return}function oXa(){var a=0,b=0,d=0;a=mla(88)|0;b=a;d=b+88|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));Xza(a);return a|0}function pXa(a){a=a|0;G$a(a);c[a>>2]=42796;c[a+44>>2]=0;c[a+48>>2]=0;c[a+52>>2]=0;return}function qXa(a){a=a|0;var b=0;b=yb;yb=yb+16|0;wg(a);if(!(sb(c[37939]|0,0)|0)){yb=b;return}else Xdb(139381,b)}function rXa(a){a=a|0;Seb(a+16|0);Chb(a);return}function sXa(a){a=a|0;n=0;S(337,a|0)|0;a=n;n=0;if(a&1){a=ta(0)|0;P()|0;yub(a)}else return}function tXa(a,b){a=a|0;b=b|0;var d=0;d=c[a+8>>2]|0;if((c[a+12>>2]|0)-d>>2>>>0>b>>>0)a=(c[d+(b<<2)>>2]|0)!=0;else a=0;return a|0}function uXa(a,b){a=a|0;b=b|0;if((c[a+4>>2]|0)>>>0>b>>>0)return (c[a>>2]|0)+(b<<2)|0;else ma(118818,118839,181,140414);return 0}function vXa(a){a=a|0;Vob(a+32|0);Vob(a+20|0);jmb(a);return}function wXa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)!=(b|0)|c^1){d=0;return d|0}d=Kvb(d)|0;return d|0}function xXa(a,b){a=a|0;b=b|0;f2a(a,dfb(c[b>>2]|0)|0);return}function yXa(a,b){a=a|0;b=b|0;USa(a,efb(c[b>>2]|0)|0);return}function zXa(a,b){a=a|0;b=b|0;Fua(a,tfb(c[b>>2]|0)|0);return}function AXa(a,b){a=a|0;b=b|0;MRa(a,ufb(c[b>>2]|0)|0);return}function BXa(a,b){a=a|0;b=b|0;ZXa(a,Veb(c[b>>2]|0)|0);return}function CXa(a,b){a=a|0;b=b|0;ecb(a,Keb(c[b>>2]|0)|0);return}function DXa(a){a=a|0;KRa(a);b5(a+16|0);c[a>>2]=41156;return}function EXa(a){a=a|0;Hbb(a);RCb(a);return}function FXa(a){a=a|0;Ibb(a);RCb(a);return}function GXa(a){a=a|0;Jbb(a);RCb(a);return}function HXa(a){a=a|0;Kbb(a);RCb(a);return}function IXa(a){a=a|0;Lbb(a);RCb(a);return}function JXa(a){a=a|0;c[a>>2]=40032;KYa(a+44|0);gcb(a);return}function KXa(a){a=a|0;$fa(a,c[a+4>>2]|0);return}function LXa(a){a=a|0;TBa(a);return}function MXa(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;while(1){if((c|0)==(d|0))break;a[e>>0]=a[c>>0]|0;e=e+1|0;c=c+1|0}return d|0}function NXa(a,b){a=a|0;b=b|0;Njb(a,vfb(c[b>>2]|0)|0);return}function OXa(a,b){a=a|0;b=b|0;hQ(a,Efb(c[b>>2]|0)|0);return}function PXa(a,b){a=a|0;b=b|0;Vh(a,vfb(c[b>>2]|0)|0);return}function QXa(a,b){a=a|0;b=b|0;fma(a,xfb(c[b>>2]|0)|0);return}function RXa(a,b){a=a|0;b=b|0;t2(a,Ffb(c[b>>2]|0)|0);return}function SXa(a,b){a=a|0;b=b|0;pua(a,Ffb(c[b>>2]|0)|0);return}function TXa(a,b){a=a|0;b=b|0;e8(a,Ffb(c[b>>2]|0)|0);return}function UXa(a,b){a=a|0;b=b|0;etb(dfb(c[b>>2]|0)|0);return}function VXa(a,b){a=a|0;b=b|0;ftb(efb(c[b>>2]|0)|0);return}function WXa(a,b){a=a|0;b=b|0;gtb(ffb(c[b>>2]|0)|0);return}function XXa(){var a=0,b=0,d=0;a=mla(56)|0;b=a;d=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));iTa(a);return a|0}function YXa(a,b){a=a|0;b=b|0;nu(a+16|0,b);Tg(a);return}function ZXa(a,b){a=a|0;b=b|0;b=Mv(b,c[a+48>>2]|0)|0;Pwb(c[a+16>>2]|0,b);return}function _Xa(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;return Nb[a&31](b|0,c|0,d|0,e|0,f|0,g|0,h|0)|0}function $Xa(a){a=a|0;var b=0;if((c[a+16>>2]|0)==2){b=a;a=c[b>>2]|0;O(c[b+4>>2]|0);return a|0}else ma(111577,78105,89,52294);return 0}function aYa(a,b){a=a|0;b=b|0;var d=0;d=mla(24)|0;a5a(d,5);ufa(d,a);c[d+8>>2]=b;return d|0}function bYa(a,b,d){a=a|0;b=b|0;d=d|0;d=vJa(a,d)|0;c[d+8>>2]=c[b>>2];_u(d);return d|0}function cYa(a,b){a=a|0;b=b|0;C1(a,tfb(c[b>>2]|0)|0);return}function dYa(a,b){a=a|0;b=b|0;P0(a,ffb(c[b>>2]|0)|0);return}function eYa(a,b){a=a|0;b=b|0;WM(a,b+44|0);return}function fYa(a,b){a=a|0;b=b|0;eJa(a,cfb(c[b>>2]|0)|0);return}function gYa(a,b){a=a|0;b=b|0;F7a(a,Teb(c[b>>2]|0)|0);return}function hYa(a,b){a=a|0;b=b|0;LE(a,cfb(c[b>>2]|0)|0);return}function iYa(a,b){a=a|0;b=b|0;ny(a,Ueb(c[b>>2]|0)|0);return}function jYa(a,b){a=a|0;b=b|0;c8(a,b+8|0);return}function kYa(a){a=a|0;DCa(a);return}function lYa(a,b){a=a|0;b=b|0;return gE(a,0,b,Zzb(b)|0)|0}function mYa(a,b){a=a|0;b=b|0;nea(a,Efb(c[b>>2]|0)|0);return}function nYa(a,b){a=a|0;b=b|0;F0a(a);c[a>>2]=41636;c[a+44>>2]=c[b>>2];return}function oYa(a){a=a|0;c[a>>2]=40836;Vob(a+104|0);rSa(a+44|0);gcb(a);return}function pYa(a){a=a|0;var b=0;a=a+4|0;b=c[a>>2]|0;if(!b)ma(101662,118839,210,101685);else{c[a>>2]=b+-1;return}}function qYa(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;while(1){if((d|0)==(e|0))break;c[f>>2]=a[d>>0];f=f+4|0;d=d+1|0}return e|0}function rYa(a,b){a=a|0;b=b|0;CX(a,Tfb(c[b>>2]|0)|0);return}function sYa(a,b){a=a|0;b=b|0;bN(a,b+44|0);return}function tYa(a,b){a=a|0;b=b|0;cN(a,b+44|0);return}function uYa(a,b){a=a|0;b=b|0;dN(a,b+44|0);return}function vYa(a,b){a=a|0;b=b|0;eN(a,b+44|0);return}function wYa(a,b){a=a|0;b=b|0;fN(a,b+44|0);return}function xYa(a,b){a=a|0;b=b|0;wfb(c[b>>2]|0)|0;Dkb(a);return}function yYa(a,b){a=a|0;b=b|0;Ffb(c[b>>2]|0)|0;_fb(a);return}function zYa(a,b){a=a|0;b=b|0;SYa(a,dfb(c[b>>2]|0)|0);return}function AYa(a,b){a=a|0;b=b|0;EJa(a,Veb(c[b>>2]|0)|0);return}function BYa(a,b){a=a|0;b=b|0;Du(a,cfb(c[b>>2]|0)|0);return}function CYa(a,b){a=a|0;b=b|0;gN(a,b+44|0);return}function DYa(){var a=0;a=mla(20)|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;klb(a);return a|0}function EYa(a,b){a=a|0;b=b|0;Pwb(c[a>>2]|0,b);c[(c[a+28>>2]|0)+-4>>2]=b;return}function FYa(a,b){a=a|0;b=b|0;var d=0;d=WCb(c[a+20>>2]|0)|0;Mf(b,d,c[a+40>>2]|0);return}function GYa(a){a=a|0;l$a(a);c[a>>2]=40628;c[a+184>>2]=0;c[a+188>>2]=0;c[a+192>>2]=0;return}function HYa(a,b){a=a|0;b=b|0;return _la(a,b)|0}function IYa(a,b){a=a|0;b=b|0;var d=0;d=a+16|0;c[d>>2]=0;if(!b)return;c[a>>2]=43240;c[a+4>>2]=b;c[d>>2]=a;return}function JYa(a){a=a|0;Pga(a,c[a+4>>2]|0);return}function KYa(a){a=a|0;iDa(a);return}function LYa(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==83417?a+4|0:0)|0}function MYa(){var a=0;a=es(149168,12,4)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;qvb(a);return a|0}function NYa(a,b){a=a|0;b=b|0;var c=0,d=0;d=a&65535;c=d-(b&65535)|0;return (((c^d)&((a^b)&65535)&32768|0)==0?c&65535:((a&65535)>>>15)+32767<<16>>16)|0}function OYa(a,b){a=a|0;b=b|0;ns(a,Ffb(c[b>>2]|0)|0);return}function PYa(a,b){a=a|0;b=b|0;nEa(a,Efb(c[b>>2]|0)|0);return}function QYa(a,b){a=a|0;b=b|0;sTa(a,vfb(c[b>>2]|0)|0);return}function RYa(a){a=a|0;hma(a);return}function SYa(a,b){a=a|0;b=b|0;b=$n(b,c[a+48>>2]|0)|0;Pwb(c[a+16>>2]|0,b);return}function TYa(a,b){a=a|0;b=b|0;gj(a,b);return}function UYa(b,d){b=b|0;d=d|0;$lb(b);c[b+28>>2]=d;a[b+32>>0]=0;return}function VYa(a){a=a|0;gfa(a);return}function WYa(a,b,d){a=a|0;b=b|0;d=d|0;Y_(a,b);c[a+12>>2]=d;return}function XYa(a,b){a=a|0;b=b|0;Ffb(c[b>>2]|0)|0;ymb(a);return}function YYa(a,b){a=a|0;b=b|0;ecb(a,dfb(c[b>>2]|0)|0);return}function ZYa(a,b){a=a|0;b=b|0;DJa(a,efb(c[b>>2]|0)|0);return}function _Ya(a,b){a=a|0;b=b|0;EJa(a,tfb(c[b>>2]|0)|0);return}function $Ya(a,b){a=a|0;b=b|0;kFa(a,ufb(c[b>>2]|0)|0);return}function aZa(a,b){a=a|0;b=b|0;Kaa(a,ufb(c[b>>2]|0)|0);return}function bZa(a,b){a=a|0;b=b|0;Tu(a,tfb(c[b>>2]|0)|0);return}function cZa(a,b){a=a|0;b=b|0;js(a,ufb(c[b>>2]|0)|0);return}function dZa(a,b){a=a|0;b=b|0;Ntb(Efb(c[b>>2]|0)|0);return}function eZa(a,b){a=a|0;b=b|0;Otb(vfb(c[b>>2]|0)|0);return}function fZa(a,b){a=a|0;b=b|0;Ptb(wfb(c[b>>2]|0)|0);return}function gZa(a,b){a=a|0;b=b|0;Qtb(xfb(c[b>>2]|0)|0);return}function hZa(a,b){a=a|0;b=b|0;Rtb(Ffb(c[b>>2]|0)|0);return}function iZa(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;c[d>>2]=b;if(b|0)return;if((c[(c[a+12>>2]|0)+4>>2]|0)!=6)return;c[d>>2]=6;return}function jZa(b,d,e){b=b|0;d=d|0;e=e|0;if(!((a[b+8>>0]|e)&1))return (c[b>>2]|0)==(d|0)|0;else ma(83268,81381,67,140382);return 0}function kZa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d|0){e=a;while(1){d=d+-1|0;c[e>>2]=b;if(!d)break;else e=e+4|0}}return a|0}function lZa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;FK(a,1,45);return}function mZa(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;J8(a,1,45);return}function nZa(a,b){a=a|0;b=b|0;var c=0,d=0;d=a&65535;c=b&65535;b=d+c|0;return (((b^d)&(b^c)&32768|0)==0?b&65535:((a&65535)>>>15)+32767<<16>>16)|0}function oZa(a){a=a|0;Vob(a+48|0);Vob(a+36|0);Qeb(a);return}function pZa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((e|0)==4){Heb(a,b,d);c[a+16>>2]=2;return}else ma(111633,111484,99,111651)}function qZa(a,b){a=a|0;b=b|0;rfb(efb(c[b>>2]|0)|0);return}function rZa(a,b){a=a|0;b=b|0;eB(a,Ffb(c[b>>2]|0)|0);return}function sZa(a,b){a=a|0;b=b|0;TG(a,Ffb(c[b>>2]|0)|0);return}function tZa(a,b){a=a|0;b=b|0;Zcb(a,Ueb(c[b>>2]|0)|0);return}function uZa(a,b){a=a|0;b=b|0;c[a+4>>2]=b;if(b|0)return;if(!(WCb(c[a+16>>2]|0)|0))return;fA(a,0,0);return}function vZa(){var a=0,b=0,d=0;a=mla(56)|0;b=a;d=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));F_a(a);return a|0}function wZa(a,b){a=a|0;b=b|0;return E7a(c[a+32>>2]|0,b)|0}function xZa(a){a=a|0;switch(a&74){case 64:{a=8;break}case 8:{a=16;break}case 0:{a=0;break}default:a=10}return a|0}function yZa(a,b){a=a|0;b=b|0;return KN(a,b,Yzb(b)|0)|0}function zZa(a,b){a=a|0;b=b|0;return sP(a,b,Zzb(b)|0)|0}function AZa(a,b){a=a|0;b=b|0;return XP(a,b,Zzb(b)|0)|0}function BZa(a,b){a=a|0;b=b|0;hS(a,Keb(c[b>>2]|0)|0);return}function CZa(a,b){a=a|0;b=b|0;Ur(a,Tfb(c[b>>2]|0)|0);return}function DZa(a,b){a=a|0;b=b|0;WM(a,b+16|0);return}function EZa(a,b){a=a|0;b=b|0;H_(a,tfb(c[b>>2]|0)|0);return}function FZa(a,b){a=a|0;b=b|0;WD(a,ufb(c[b>>2]|0)|0);return}function GZa(){var a=0;a=mla(20)|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;Erb(a);return a|0}function HZa(a){a=a|0;Mab(a);RCb(a);return}function IZa(a){a=a|0;gcb(a);RCb(a);return}function JZa(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=43200;return}function KZa(a){a=a|0;n=0;S(340,a|0)|0;a=n;n=0;if(a&1){a=ta(0)|0;P()|0;yub(a)}else return}function LZa(a){a=a|0;LDa(a);return}function MZa(a,b){a=a|0;b=b|0;rfb(vfb(c[b>>2]|0)|0);return}function NZa(a,b){a=a|0;b=b|0;p5a(a,Efb(c[b>>2]|0)|0);return}function OZa(){var a=0;a=mla(16)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;Hpb(a);return a|0}function PZa(){var a=0,b=0,d=0;a=mla(48)|0;b=a;d=b+48|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));hgb(a);return a|0}function QZa(){var a=0,b=0,d=0;a=mla(48)|0;b=a;d=b+48|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));vab(a);return a|0}function RZa(){var a=0,b=0,d=0;a=mla(68)|0;b=a;d=b+68|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));kAa(a);return a|0}function SZa(a){a=a|0;Pkb(a+12|0);pQa(a);return}function TZa(a,b){a=a|0;b=b|0;if((c[a+8>>2]|0)>>>0>=b>>>0)return;fra(a,b);return}function UZa(a){a=a|0;B7a(a+24|0);Hqb(a);return}function VZa(a){a=a|0;uca(a);return}function WZa(a){a=a|0;vca(a);return}function XZa(a,b){a=a|0;b=b|0;Xz(a,b);return}function YZa(a,b,d){a=a|0;b=b|0;d=d|0;b=G7(a+28|0,b)|0;c[b>>2]=d;return}function ZZa(a,b){a=a|0;b=b|0;nN(a,b+44|0);return}function _Za(a,b){a=a|0;b=b|0;zP(a,b+44|0);return}function $Za(a,b){a=a|0;b=b|0;bp(a,Tfb(c[b>>2]|0)|0);return}function a_a(a,b){a=a|0;b=b|0;bN(a,b+16|0);return}function b_a(a,b){a=a|0;b=b|0;cN(a,b+16|0);return}function c_a(a,b){a=a|0;b=b|0;dN(a,b+16|0);return}function d_a(a,b){a=a|0;b=b|0;eN(a,b+16|0);return}function e_a(a,b){a=a|0;b=b|0;fN(a,b+16|0);return}function f_a(a,b){a=a|0;b=b|0;gN(a,b+16|0);return}function g_a(a){a=a|0;cbb(a);RCb(a);return}function h_a(a){a=a|0;BEa(a);return}function i_a(a,b){a=a|0;b=b|0;Ocb(a,vfb(c[b>>2]|0)|0);return}function j_a(a,b){a=a|0;b=b|0;Zcb(a,xfb(c[b>>2]|0)|0);return}function k_a(a,b){a=a|0;b=b|0;Jkb(a,Ffb(c[b>>2]|0)|0);return}function l_a(){var a=0,b=0,d=0;a=mla(84)|0;b=a;d=b+84|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));tOa(a);return a|0}function m_a(){var a=0,b=0,d=0;a=mla(44)|0;b=a;d=b+44|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));Bgb(a);return a|0}function n_a(){var a=0,b=0,d=0;a=mla(44)|0;b=a;d=b+44|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));Cgb(a);return a|0}function o_a(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;gqb(a);return}function p_a(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=yb;yb=yb+16|0;g=f;c[g>>2]=e;e=NK(a,b,d,g)|0;yb=f;return e|0}function q_a(a,b){a=a|0;b=b|0;if((c[b+16>>2]|0)==3){Bqb(a,c[b>>2]|0);c[a+16>>2]=1;return}else ma(111605,111484,92,111623)}function r_a(a,b){a=a|0;b=b|0;if((c[b+16>>2]|0)==1){Bqb(a,c[b>>2]|0);c[a+16>>2]=3;return}else ma(111549,111484,78,111567)}function s_a(a,b){a=a|0;b=b|0;tN(a,b+44|0);return}function t_a(a,b){a=a|0;b=b|0;uN(a,b+44|0);return}function u_a(a,b){a=a|0;b=b|0;TH(a,Tfb(c[b>>2]|0)|0);return}function v_a(a,b){a=a|0;b=b|0;CP(a,b+44|0);return}function w_a(a,b){a=a|0;b=b|0;var d=0;d=mla(4)|0;Gsb(d,b);c[a>>2]=d;return}function x_a(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;Xb[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function y_a(a){a=a|0;return c[c[a>>2]>>2]|0}function z_a(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==73452?a+4|0:0)|0}function A_a(a,b){a=a|0;b=b|0;var d=0;d=c[37248]|0;return mv(a,d,_pb(b)|0)|0}function B_a(a){a=a|0;a=(Veb(a)|0)+16|0;return Peb((ffb(c[a>>2]|0)|0)+8|0)|0}function C_a(a,b){a=a|0;b=b|0;A4(a,Efb(c[b>>2]|0)|0);return}function D_a(a,b){a=a|0;b=b|0;HL(a,Ffb(c[b>>2]|0)|0);return}function E_a(){var a=0,b=0,d=0;a=mla(44)|0;b=a;d=b+44|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));Xgb(a);return a|0}function F_a(a){a=a|0;g2a(a);c[a>>2]=44272;yib(a+44|0);return}function G_a(a){a=a|0;c[a>>2]=43488;Pdb(a+48|0);gcb(a);return}function H_a(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;vqb(a);return}function I_a(a){a=a|0;n=0;S(339,a|0)|0;a=n;n=0;if(a&1){a=ta(0)|0;P()|0;yub(a)}else return}function J_a(){c[36977]=0;c[36976]=50220;KBb();c[36976]=48260;c[36978]=48308;return}function K_a(){c[36973]=0;c[36972]=50220;LBb();c[36972]=48176;c[36974]=48224;return}function L_a(a,b){a=a|0;b=b|0;if(dub(a,b)|0)a=1;else a=dub(b,39712)|0;return a|0}function M_a(a,b,d){a=a|0;b=b|0;d=d|0;a=mgb(a)|0;c[a+8>>2]=c[b>>2];c[a+4>>2]=d;return a|0}function N_a(a,b){a=a|0;b=b|0;tE(a,ufb(c[b>>2]|0)|0);return}function O_a(a,b){a=a|0;b=b|0;vN(a,b+44|0);return}function P_a(a,b){a=a|0;b=b|0;V9(a,Tfb(c[b>>2]|0)|0);return}function Q_a(a){a=a|0;Wqa(150620,a)|0;return}function R_a(){var a=0;a=mla(20)|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;rsb(a);return a|0}function S_a(a){a=a|0;Sxa(a+12|0);Htb(a);return}function T_a(a,b){a=a|0;b=b|0;qoa(a,b);return}function U_a(a){a=a|0;var b=0,d=0;a=mla(56)|0;b=a;d=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));pXa(a);return a|0}function V_a(a){a=a|0;ybb(a);RCb(a);return}function W_a(a){a=a|0;if(c[a+108>>2]|0){a=0;return a|0}a=mH(c[a+104>>2]|0)|0;return a|0}function X_a(a,b){a=a|0;b=b|0;var d=0,e=0;d=yb;yb=yb+16|0;e=d;c[e>>2]=a;c[e+4>>2]=b;bqb(Na(91,e|0)|0)|0;yb=d;return}function Y_a(a){a=a|0;if(!a){a=1;return a|0}a=WCb(c[a+16>>2]|0)|0;return a|0}function Z_a(a){a=a|0;Gkb(a);return}function __a(a){a=a|0;TEa(a);return}function $_a(){var a=0;c[36985]=0;c[36984]=50220;a=t8a()|0;c[36986]=a;c[36984]=49456;return}function a$a(){var a=0;c[36981]=0;c[36980]=50220;a=t8a()|0;c[36982]=a;c[36980]=49432;return}function b$a(a,b){a=a|0;b=b|0;Eub(Tfb(c[b>>2]|0)|0);return}function c$a(a,b){a=a|0;b=b|0;c$(a,b);return}function d$a(a,b){a=a|0;b=b|0;d$(a,b);return}function e$a(){var a=0,b=0,d=0;a=mla(68)|0;b=a;d=b+68|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));$Ka(a);return a|0}function f$a(){var a=0,b=0,d=0;a=mla(44)|0;b=a;d=b+44|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));rhb(a);return a|0}function g$a(){var a=0,b=0,d=0;a=mla(88)|0;b=a;d=b+88|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));Jpa(a);return a|0}function h$a(){var a=0,b=0,d=0;a=mla(56)|0;b=a;d=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));D0a(a);return a|0}function i$a(a,b){a=a|0;b=b|0;c5(a,b);Hm(a,b);return}function j$a(b,d){b=b|0;d=d|0;b=(Bs(b,c[d+24>>2]|0)|0)+1|0;return b+(0-(a[d+20>>0]&1)&10)|0}function k$a(b,d){b=b|0;d=d|0;$lb(b);c[b+24>>2]=c[d>>2];a[b+28>>0]=1;c[b+32>>2]=0;return}function l$a(a){a=a|0;KRa(a);Xea(a+16|0);c[a>>2]=40672;return}function m$a(a){a=a|0;Chb(a+4|0);return}function n$a(a,b){a=a|0;b=b|0;nN(a,b+16|0);return}function o$a(){var a=0;a=mla(20)|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;Bsb(a);return a|0}function p$a(a){a=a|0;var b=0;$lb(a);a=a+24|0;b=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function q$a(a,b){a=a|0;b=b|0;zob(a);$jb(a+8|0,b);Cub(a+24|0);return}function r$a(a,b){a=a|0;b=b|0;var d=0;d=mla(20)|0;_aa(d,b);c[a>>2]=d;return}function s$a(a){a=a|0;KRa(a);Xea(a+16|0);c[a>>2]=45512;return}function t$a(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){O(b>>c|0);return a>>>c|(b&(1<>c-32|0}function u$a(a){a=a|0;nFa(a);return}function v$a(a){a=a|0;a0a(a);ktb(a+56|0);return}function w$a(a){a=a|0;b0a(a);ktb(a+60|0);return}function x$a(a){a=a|0;var b=0;b=mla(8)|0;c[b>>2]=46312;c[b+4>>2]=c[a+4>>2];return b|0}function y$a(a){a=a|0;var b=0;b=mla(8)|0;c[b>>2]=46268;c[b+4>>2]=c[a+4>>2];return b|0}function z$a(a){a=a|0;var b=0;b=mla(8)|0;c[b>>2]=46224;c[b+4>>2]=c[a+4>>2];return b|0}function A$a(){var a=0,b=0,d=0;a=mla(44)|0;b=a;d=b+44|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));Ghb(a);return a|0}function B$a(a,b,d){a=a|0;b=b|0;d=d|0;b=WCb(c[b>>2]|0)|0;oya(c[a+4>>2]|0,b,d);return}function C$a(a,b,d){a=a|0;b=b|0;d=d|0;b=WCb(c[b>>2]|0)|0;RMa(c[a+4>>2]|0,b,d);return}function D$a(){var a=0,b=0,d=0;a=mla(116)|0;b=a;d=b+116|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));iRa(a);return a|0}function E$a(){var a=0,b=0,d=0;a=mla(120)|0;b=a;d=b+120|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));z9(a);return a|0}function F$a(a,b){a=a|0;b=b|0;aua(a+92|0,b)|0;return}function G$a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=42836;return}function H$a(a){a=a|0;v4a(a+4|0);return}function I$a(a){a=a|0;w4a(a+4|0);return}function J$a(a){a=a|0;x4a(a+4|0);return}function K$a(a){a=a|0;y4a(a+4|0);return}function L$a(a){a=a|0;z4a(a+4|0);return}function M$a(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;a[b>>0]=0;c[b+20>>2]=d;a[b+24>>0]=e&1;a[b+25>>0]=f&1;return b|0}function N$a(a,b){a=a|0;b=b|0;tN(a,b+16|0);return}function O$a(a,b){a=a|0;b=b|0;uN(a,b+16|0);return}function P$a(a,b){a=a|0;b=b|0;Zo(a,ufb(c[b>>2]|0)|0);return}function Q$a(a,b){a=a|0;b=b|0;BN(a,b+44|0);return}function R$a(a,b){a=a|0;b=b|0;CN(a,b+44|0);return}function S$a(a){a=a|0;var b=0;b=mla(48)|0;dQa(b,c[a+44>>2]|0);return b|0}function T$a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=43552;return}function U$a(a){a=a|0;var b=0;b=c[a>>2]|0;b=(c[b+40>>2]|0)-(c[b+36>>2]|0)>>2;return b-(wmb(a)|0)|0}function V$a(a,b){a=a|0;b=b|0;N$a((c[a>>2]|0)+16|0,b);return}function W$a(a){a=a|0;v$a(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function X$a(a){a=a|0;Abb(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function Y$a(a){a=a|0;w$a(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function Z$a(a){a=a|0;Bbb(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function _$a(a){a=a|0;mFa(a);return}function $$a(a){a=a|0;wFa(a);return}function a0a(a){a=a|0;c[a>>2]=39764;c[a+56>>2]=39784;aWa(a+4|0);return}function b0a(a){a=a|0;c[a>>2]=46360;c[a+60>>2]=46380;aWa(a+8|0);return}function c0a(a){a=a|0;LUa(a);ktb(a+64|0);return}function d0a(a,b){a=a|0;b=b|0;var d=0;d=mla(24)|0;a5a(d,2);ufa(d,a);c[d+4>>2]=b;return d|0}function e0a(a,b){a=a|0;b=b|0;Q$(a,b);return}function f0a(){var a=0,b=0,d=0;a=mla(56)|0;b=a;d=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));pXa(a);return a|0}function g0a(){var a=0,b=0,d=0;a=mla(44)|0;b=a;d=b+44|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));bib(a);return a|0}function h0a(a,b){a=a|0;b=b|0;c[a>>2]=b;if(!b)return;b=bc(b)|0;c[a+4>>2]=b;return}function i0a(a){a=a|0;Pdb(a+20|0);Pdb(a);return}function j0a(a){a=a|0;return Dpb(c[a+32>>2]|0)|0}function k0a(a){a=a|0;return dWa(c[a+8>>2]|0)|0}function l0a(a){a=a|0;dda(a);return}function m0a(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==95388?a+4|0:0)|0}function n0a(a,b,c){a=a|0;b=b|0;c=c|0;if(b>>>0>c>>>0)return a+(c<<2)|0;else ma(118818,118839,181,140414);return 0}function o0a(a,b){a=a|0;b=b|0;var c=0,d=0;d=a&255;c=d-(b&255)|0;return (((c^d)&((a^b)&255)&128|0)==0?c&255:((a&255)>>>7)+127<<24>>24)|0}function p0a(a,b){a=a|0;b=b|0;var c=0,d=0;d=a&255;c=b&255;b=d+c|0;return (((b^d)&(b^c)&128|0)==0?b&255:((a&255)>>>7)+127<<24>>24)|0}function q0a(a){a=a|0;var b=0,d=0;a=mla(100)|0;b=a;d=b+100|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));KGa(a);return a|0}function r0a(a,b){a=a|0;b=b|0;vN(a,b+16|0);return}function s0a(a,b){a=a|0;b=b|0;LP(a,b+44|0);return}function t0a(a,b){a=a|0;b=b|0;Ep(a,Tfb(c[b>>2]|0)|0);return}function u0a(a,b){a=a|0;b=b|0;DV(a,oCb(b)|0);return}function v0a(a,b){a=a|0;b=b|0;var c=0;c=mla(48)|0;A5a(c,b);C9(a,c);return}function w0a(a){a=a|0;var b=0;yib(a);b=a+12|0;c[b>>2]=b;c[a+16>>2]=b;c[a+20>>2]=0;return}function x0a(a){a=a|0;c0a(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function y0a(a){a=a|0;bcb(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function z0a(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==103032?a+12|0:0)|0}function A0a(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==73802?a+4|0:0)|0}function B0a(a,b){a=a|0;b=b|0;Hs(a,Ffb(c[b>>2]|0)|0);return}function C0a(a,b){a=a|0;b=b|0;z$(a,b);return}function D0a(a){a=a|0;b3a(a);c[a>>2]=40916;yib(a+44|0);return}function E0a(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]=0;Pua(a);return}function F0a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=41676;return}function G0a(a){a=a|0;var b=0;b=zFb()|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=b;c[a+20>>2]=0;return}function H0a(){fyb();Lxb();Ixb();Hxb();Fxb();Exb();return}function I0a(a){a=a|0;c[a>>2]=42448;$7a(a+12|0);return}function J0a(a,b){a=a|0;b=b|0;if((c[b+16>>2]|0)==3){kEa(a,+L8a(b));return}else ma(111605,111484,266,111822)}function K0a(a){a=a|0;if(VBb(c[a>>2]|0)|0)return WCb(c[(c[a+8>>2]|0)+4>>2]|0)|0;else ma(74875,74885,393,51154);return 0}function L0a(a,b,c){a=a|0;b=b|0;c=c|0;zia(c);return}function M0a(b,d){b=b|0;d=d|0;var e=0;c[b+16>>2]=5;e=b+16|0;do{a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}while((b|0)<(e|0));return}function N0a(a,b){a=a|0;b=b|0;DN(a,b+44|0);return}function O0a(a,b){a=a|0;b=b|0;if(a&1){b=1;return b|0}b=Bnb(c[b>>2]|0)|0;return b|0}function P0a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=42916;return}function Q0a(a){a=a|0;a=(Veb(a)|0)+16|0;return 32-(Zaa(c[a>>2]|0)|0)|0}function R0a(b){b=b|0;jbb(b);yib(b+36|0);a[b+48>>0]=0;return}function S0a(a){a=a|0;gka(a,c[a+4>>2]|0);return}function T0a(a){a=a|0;IFa(a);return}function U0a(a,b){a=a|0;b=b|0;c[b>>2]=46312;c[b+4>>2]=c[a+4>>2];return}function V0a(a,b){a=a|0;b=b|0;c[b>>2]=46268;c[b+4>>2]=c[a+4>>2];return}function W0a(a,b){a=a|0;b=b|0;c[b>>2]=46224;c[b+4>>2]=c[a+4>>2];return}function X0a(b){b=b|0;Xi(b,c[b+24>>2]|0);iR(b,1);a[(c[b+4>>2]|0)+(c[b+12>>2]|0)>>0]=0;return}function Y0a(a,b){a=a|0;b=b|0;Xm(a,xfb(c[b>>2]|0)|0);return}function Z0a(a,b){a=a|0;b=b|0;Unb(a);Cub(a+12|0);$jb(a+16|0,b);return}function _0a(a){a=a|0;xda(a);return}function $0a(a){a=a|0;Qga(a);return}function a1a(a,b,c){a=a|0;b=b|0;c=c|0;if(!b){b=0;return b|0}b=OA(a,Qzb(c)|0,b)|0;return b|0}function b1a(a,b){a=a|0;b=b|0;var d=0;d=mla(24)|0;a5a(d,1);c[d+4>>2]=a;c[d+8>>2]=b;return d|0}function c1a(a){a=a|0;c[a>>2]=42876;w5a(a+48|0);gcb(a);return}function d1a(a,b){a=a|0;b=b|0;BN(a,b+16|0);return}function e1a(a,b){a=a|0;b=b|0;HN(a,b+44|0);return}function f1a(a,b){a=a|0;b=b|0;IN(a,b+44|0);return}function g1a(a,b){a=a|0;b=b|0;Fob(a);Cub(a+8|0);$jb(a+12|0,b);return}function h1a(){var a=0,b=0,d=0;a=mla(100)|0;b=a;d=b+100|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));KGa(a);return a|0}function i1a(a){a=a|0;RR(a+16|0);Xjb(a);return}function j1a(a,b){a=a|0;b=b|0;var c=0;c=mla(48)|0;V3a(c,b);C9(a,c);return}function k1a(a){a=a|0;WFa(a);return}function l1a(a){a=a|0;XFa(a);return}function m1a(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==110042?a+4|0:0)|0}function n1a(a,b){a=a|0;b=b|0;Aob(a);$jb(a+8|0,b);Cub(a+24|0);return}function o1a(a,b){a=a|0;b=b|0;y0(a,b);return}function p1a(b){b=b|0;if(a[b+27>>0]&1){b=1;return b|0}if(a[b+76>>0]&1){b=1;return b|0}b=(a[b+77>>0]&1)!=0;return b|0}function q1a(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=Bs(a,b)|0;return b|0}function r1a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=40072;return}function s1a(a){a=a|0;Pdb(a+4|0);return}function t1a(a,b){a=a|0;b=b|0;LP(a,b+16|0);return}function u1a(a,b){a=a|0;b=b|0;MN(a,b+44|0);return}function v1a(a,b){a=a|0;b=b|0;NN(a,b+44|0);return}function w1a(){var a=0,b=0,d=0;a=mla(52)|0;b=a;d=b+52|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));XGa(a);return a|0}function x1a(){var a=0,b=0,d=0;a=mla(44)|0;b=a;d=b+44|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));lSa(a);return a|0}function y1a(a){a=a|0;i1a(a);RCb(a);return}function z1a(a){a=a|0;var b=0;c[a>>2]=49976;a=a+8|0;b=c[a>>2]|0;if((b|0)!=(t8a()|0))pvb(c[a>>2]|0);return}function A1a(a){a=a|0;OQa(a);return}function B1a(a,b){a=a|0;b=b|0;q2a(Efb(c[b>>2]|0)|0);return}function C1a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=42088;return}function D1a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=41236;return}function E1a(a,b,c){a=a|0;b=b|0;c=c|0;return Wx(a,b,c)|0}function F1a(a){a=a|0;W7(a);return}function G1a(a,b,d){a=a|0;b=b|0;d=d|0;if(d>>>0<1|(d|0)==1&b>>>0<0){c[a>>2]=b;return a|0}else ma(55424,53431,93,140261);return 0}function H1a(a,b){a=a|0;b=b|0;Nga(a,Tfb(c[b>>2]|0)|0);return}function I1a(a,b){a=a|0;b=b|0;DN(a,b+16|0);return}function J1a(a,b){a=a|0;b=b|0;EN(a,b+16|0);return}function K1a(a,b){a=a|0;b=b|0;ON(a,b+44|0);return}function L1a(a,b){a=a|0;b=b|0;PN(a,b+44|0);return}function M1a(a,b){a=a|0;b=b|0;QN(a,b+44|0);return}function N1a(a,b){a=a|0;b=b|0;RN(a,b+44|0);return}function O1a(a,b){a=a|0;b=b|0;SN(a,b+44|0);return}function P1a(){var a=0,b=0,d=0;a=mla(96)|0;b=a;d=b+96|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));kha(a);return a|0}function Q1a(){var a=0,b=0,d=0;a=mla(104)|0;b=a;d=b+104|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));dcb(a);return a|0}function R1a(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;c[b>>2]=d;c[b+4>>2]=f;a[b+8>>0]=0;c[b+12>>2]=e;return}function S1a(a){a=a|0;jbb(a);yib(a+36|0);yib(a+48|0);return}function T1a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=44112;return}function U1a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=44952;return}function V1a(a){a=a|0;var b=0;b=c[a>>2]|0;b=(c[b+28>>2]|0)-(c[b+24>>2]|0)>>2;return b-(uob(a)|0)|0}function W1a(a,b,c){a=a|0;b=b|0;c=c|0;bwa(a,b,c*24|0);return}function X1a(a,b,d){a=a|0;b=b|0;d=d|0;d=iGa(iGa(c[a>>2]|0,d)|0,b)|0;c[a>>2]=d;return}function Y1a(b){b=b|0;rqb(b);a[b+36>>0]=0;Jeb(b+40|0);return}function Z1a(a){a=a|0;$lb(a);yib(a+24|0);return}function _1a(a){a=a|0;ela(a,c[a+4>>2]|0);return}function $1a(a){a=a|0;UGa(a);return}function a2a(a){a=a|0;a=c[a+12>>2]|0;if(!a)return;RCb(a);return}function b2a(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return us(c,d,e)|0}function c2a(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==109824?a+4|0:0)|0}function d2a(b){b=b|0;var c=0,d=0;c=5381;while(1){d=a[b>>0]|0;if(!(d<<24>>24))break;b=b+1|0;c=c*33^d<<24>>24}return c|0}function e2a(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=c[b>>2];c[a+4>>2]=d;c[a+8>>2]=e;return}function f2a(b,d){b=b|0;d=d|0;if(a[b+24>>0]&1)return;if(((c[d+8>>2]|0)+-25|0)>>>0>=8)return;a[b+78>>0]=1;return}function g2a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=44312;return}function h2a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=46436;return}function i2a(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Mb[a&63](b|0,c|0,d|0,e|0,f|0,g|0)|0}function j2a(a,b){a=a|0;b=b|0;var d=0,e=0;e=yb;yb=yb+16|0;d=e;b=(Z7(d,a,b)|0)==0;yb=e;return (b?c[d>>2]|0:0)|0}function k2a(a,b){a=a|0;b=b|0;nQa(a+40|0);return}function l2a(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Ws(c,d,e)|0}function m2a(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=0;if(!b)ma(51002,51004,64,51048);else{Ff(a,b,d);return}}function n2a(a,b){a=a|0;b=b|0;HN(a,b+16|0);return}function o2a(a,b){a=a|0;b=b|0;IN(a,b+16|0);return}function p2a(a,b){a=a|0;b=b|0;WN(a,b+44|0);return}function q2a(a){a=a|0;if(!(Gzb(c[c[a+12>>2]>>2]|0)|0))return;Gjb(a);return}function r2a(b,d){b=b|0;d=d|0;KRa(b);c[b>>2]=42288;a[b+16>>0]=d&1;yib(b+20|0);return}function s2a(){var a=0,b=0,d=0;a=mla(36)|0;b=a;d=b+36|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));Ofb(a);return a|0}function t2a(a){a=a|0;c[a>>2]=40628;ilb(a+184|0);N4a(a);return}function u2a(a){a=a|0;fdb(a);RCb(a);return}function v2a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=42248;return}function w2a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=42168;return}function x2a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=41888;return}function y2a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=41356;return}function z2a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=44432;return}function A2a(a,b){a=a|0;b=b|0;return qHa(a,b<<4)|0}function B2a(){return a7(c[37041]|0)|0}function C2a(a){a=a|0;var b=0;b=a+16|0;c[b>>2]=c[b>>2]|1;if(!(c[a+20>>2]&1))return;else xa()}function D2a(a){a=a|0;gHa(a);return}function E2a(a,b){a=a|0;b=b|0;if((c[b+16>>2]|0)==1){Heb(a,c[b>>2]|0,0);return}else ma(111549,111484,261,111809)}function F2a(b){b=b|0;a[b+76>>0]=1;a[b+77>>0]=1;a[b+79>>0]=1;if(a[b+24>>0]&1)return;a[b+78>>0]=1;return}function G2a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=44192;return}function H2a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=45712;return}function I2a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=45632;return}function J2a(a){a=a|0;Chb(a+12|0);Chb(a);return}function K2a(a,b){a=a|0;b=b|0;c[b>>2]=41844;return}function L2a(a){a=a|0;return 33312}function M2a(a,b){a=a|0;b=b|0;Ln(a,Tfb(c[b>>2]|0)|0);return}function N2a(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function O2a(a,b){a=a|0;b=b|0;MN(a,b+16|0);return}function P2a(a,b){a=a|0;b=b|0;NN(a,b+16|0);return}function Q2a(a,b){a=a|0;b=b|0;bO(a,b+44|0);return}function R2a(a,b){a=a|0;b=b|0;hO(a,b+44|0);return}function S2a(a){a=a|0;Sb[c[c[a>>2]>>2]&8191](a,134556);ma(141129,96854,663,96886)}function T2a(){var a=0,b=0,d=0;a=mla(44)|0;b=a;d=b+44|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));rkb(a);return a|0}function U2a(a,b,c){a=a|0;b=b|0;c=c|0;if(b>>>0>>0)ma(87164,87186,130,87222);else return b>>>0>c>>>0|(a&1)!=0|0;return 0}function V2a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=43448;return}function W2a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=41436;return}function X2a(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){O(b<>>32-c|0);return a<>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;fsb(a);return a|0}function Z2a(){var a=0;a=mla(20)|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;Gpb(a);return a|0}function _2a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=44512;return}function $2a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=43992;return}function a3a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=43076;return}function b3a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=40956;return}function c3a(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;N(13);return 0}function d3a(a){a=a|0;var b=0;a=a+4|0;b=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function e3a(a,b){a=a|0;b=b|0;Qua(a,66817);b=rrb(b,1)|0;Xi(a,c[b>>2]|0);return}function f3a(a,b){a=a|0;b=b|0;ON(a,b+16|0);return}function g3a(a,b){a=a|0;b=b|0;PN(a,b+16|0);return}function h3a(a,b){a=a|0;b=b|0;QN(a,b+16|0);return}function i3a(a,b){a=a|0;b=b|0;RN(a,b+16|0);return}function j3a(a,b){a=a|0;b=b|0;SN(a,b+16|0);return}function k3a(a,b){a=a|0;b=b|0;iO(a,b+44|0);return}function l3a(a,b){a=a|0;b=b|0;jO(a,b+44|0);return}function m3a(a,b){a=a|0;b=b|0;kO(a,b+44|0);return}function n3a(a,b){a=a|0;b=b|0;lO(a,b+44|0);return}function o3a(a,b){a=a|0;b=b|0;mO(a,b+44|0);return}function p3a(a,b){a=a|0;b=b|0;oO(a,b+44|0);return}function q3a(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;Tpb(a);return}function r3a(a){a=a|0;KRa(a);rqb(a+16|0);c[a>>2]=45032;return}function s3a(a){a=a|0;KRa(a);rqb(a+16|0);c[a>>2]=45192;return}function t3a(a){a=a|0;KRa(a);rqb(a+16|0);c[a>>2]=45112;return}function u3a(a){a=a|0;KRa(a);rqb(a+16|0);c[a>>2]=45272;return}function v3a(a){a=a|0;KRa(a);rqb(a+16|0);c[a>>2]=45352;return}function w3a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=45920;return}function x3a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=42556;return}function y3a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=41036;return}function z3a(a){a=a|0;a=yfb(a+152|0)|0;if(!(c[37104]|0))return a|0;Vg(a,56927);return a|0}function A3a(a){a=a|0;$lb(a);Cub(a+32|0);return}function B3a(a,b){a=a|0;b=b|0;_A(a,c[b>>2]|0,c[b+4>>2]|0,136208);c[a>>2]=47600;return}function C3a(a,b){a=a|0;b=b|0;L7(a,b);return}function D3a(){var a=0;a=mla(16)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;qsb(a);return a|0}function E3a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=42756;return}function F3a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=40876;return}function G3a(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+16|0;f=e;c[f>>2]=d;d=IA(a,b,f)|0;yb=e;return d|0}function H3a(a,b){a=a|0;b=b|0;WN(a,b+16|0);return}function I3a(a,b){a=a|0;b=b|0;XN(a,b+16|0);return}function J3a(a,b){a=a|0;b=b|0;YN(a,b+16|0);return}function K3a(a,b){a=a|0;b=b|0;pO(a,b+44|0);return}function L3a(a,b){a=a|0;b=b|0;qO(a,b+44|0);return}function M3a(a,b){a=a|0;b=b|0;bQ(a,b+44|0);return}function N3a(a,b){a=a|0;b=b|0;if(vub(c[b+4>>2]|0)|0)return;Pwb(c[a>>2]|0,b);return}function O3a(a){a=a|0;KRa(a);jbb(a+16|0);c[a>>2]=41556;return}function P3a(a){a=a|0;gcb(a);RCb(a);return}function Q3a(){var a=0;a=yb;yb=yb+16|0;if(!(pb(151756,582)|0)){yb=a;return}else Xdb(139331,a)}function R3a(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;return Lb[a&3](b|0,c|0,d|0,e|0,f|0,+g)|0}function S3a(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((d|0)==2){Bqb(a,b);return}else ma(111577,111484,288,111863)}function T3a(a,b,d){a=a|0;b=b|0;d=d|0;a=Hgb(a)|0;c[a+8>>2]=b;c[a+4>>2]=d;return a|0}function U3a(){var a=0;a=mla(16)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;Asb(a);return a|0}function V3a(a,b){a=a|0;b=b|0;W2a(a);c[a>>2]=41396;c[a+44>>2]=b;return}function W3a(a){a=a|0;KRa(a);jbb(a+16|0);c[a>>2]=42636;return}function X3a(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=yb;yb=yb+16|0;f=e;c[f>>2]=d;d=Rma(a,b,f)|0;yb=e;return d|0}function Y3a(b){b=b|0;if((a[147624]|0)==0?mlb(147624)|0:0){Gp();c[37879]=146944}return c[37879]|0}function Z3a(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+28>>2]=b;c[a+32>>2]=d;c[a+36>>2]=e;return a|0}function _3a(a,b){a=a|0;b=b|0;bO(a,b+16|0);return}function $3a(a,b){a=a|0;b=b|0;cO(a,b+16|0);return}function a4a(a,b){a=a|0;b=b|0;hO(a,b+16|0);return}function b4a(a,b){a=a|0;b=b|0;uO(a,b+44|0);return}function c4a(a,b){a=a|0;b=b|0;AO(a,b+44|0);return}function d4a(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;hqb(a);return}function e4a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=45432;return}function f4a(a){a=a|0;xma(a,c[a+4>>2]|0);return}function g4a(a){a=a|0;F1a(a);return}function h4a(b){b=b|0;if((a[147544]|0)==0?mlb(147544)|0:0){Ap();c[37862]=146192}return c[37862]|0}function i4a(a){a=a|0;a=mla(8)|0;c[a>>2]=41844;return a|0}function j4a(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==118186?a+4|0:0)|0}function k4a(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==116134?a+4|0:0)|0}function l4a(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==114927?a+4|0:0)|0}function m4a(a,b){a=a|0;b=b|0;if(b)b=c[(c[a+12>>2]|0)+4>>2]|0;else b=0;c[a+4>>2]=b;FHa(a);return}function n4a(){var a=0;a=mla(16)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;Lsb(a);return a|0}function o4a(a,b){a=a|0;b=b|0;b=WCb(c[b>>2]|0)|0;return X5a(c[a+4>>2]|0,b)|0}function p4a(a,b){a=a|0;b=b|0;b=WCb(c[b>>2]|0)|0;return Iib(c[a+4>>2]|0,b)|0}function q4a(a){a=a|0;c[a>>2]=43116;Vob(a+44|0);gcb(a);return}function r4a(a,b){a=a|0;b=b|0;b=a+28|0;c[b>>2]=(c[b>>2]|0)+-4;return}function s4a(a,b){a=a|0;b=b|0;Xw(a,b,b+16|0,b+20|0,b+24|0);return}function t4a(a){a=a|0;KRa(a);jbb(a+16|0);c[a>>2]=43912;return}function u4a(a){a=a|0;Hha(a);return}function v4a(a){a=a|0;pja(a);return}function w4a(a){a=a|0;qja(a);return}function x4a(a){a=a|0;rja(a);return}function y4a(a){a=a|0;sja(a);return}function z4a(a){a=a|0;tja(a);return}function A4a(a){a=a|0;return iba(a)|0}function B4a(a){a=a|0;I0a(a);RCb(a);return}function C4a(b){b=b|0;if((a[147640]|0)==0?mlb(147640)|0:0){cw();c[37880]=147232}return c[37880]|0}function D4a(b){b=b|0;if((a[147608]|0)==0?mlb(147608)|0:0){J5();c[37878]=146656}return c[37878]|0}function E4a(a,b){a=a|0;b=b|0;c[b>>2]=40540;return}function F4a(a,b,d){a=a|0;b=b|0;d=d|0;Cnb(a,b);c[a>>2]=44688;c[a+8>>2]=d;c[a+20>>2]=0;return}function G4a(a,b){a=a|0;b=b|0;iO(a,b+16|0);return}function H4a(a,b){a=a|0;b=b|0;jO(a,b+16|0);return}function I4a(a,b){a=a|0;b=b|0;kO(a,b+16|0);return}function J4a(a,b){a=a|0;b=b|0;lO(a,b+16|0);return}function K4a(a,b){a=a|0;b=b|0;mO(a,b+16|0);return}function L4a(a,b){a=a|0;b=b|0;oO(a,b+16|0);return}function M4a(a,b){a=a|0;b=b|0;BO(a,b+44|0);return}function N4a(a){a=a|0;Dva(a+16|0);Xjb(a);return}function O4a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=42008;return}function P4a(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;wqb(a);return}function Q4a(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;xqb(a);return}function R4a(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;gkb(a);return}function S4a(a){a=a|0;var b=0;b=a+12|0;a=c[b>>2]|0;c[b>>2]=0;if(!a)return;Vob(a);RCb(a);return}function T4a(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;Wb[a&15](b|0,c|0,d|0,e|0,f|0,g|0)}function U4a(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){O(b>>>c|0);return a>>>c|(b&(1<>>c-32|0}function V4a(b){b=b|0;if((a[147560]|0)==0?mlb(147560)|0:0){Xv();c[37863]=146480}return c[37863]|0}function W4a(b){b=b|0;if((a[147528]|0)==0?mlb(147528)|0:0){C5();c[37861]=145904}return c[37861]|0}function X4a(a,b,c){a=a|0;b=b|0;c=c|0;lS(a,b,c);return}function Y4a(a,b,c){a=a|0;b=b|0;c=c|0;jS(a,b,c);return}function Z4a(a,b,c){a=a|0;b=b|0;c=c|0;mS(a,b,c);return}function _4a(a,b,c){a=a|0;b=b|0;c=c|0;kS(a,b,c);return}function $4a(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;uj(b,d);a[b+32>>0]=e&1;c[b+36>>2]=f;return}function a5a(a,b){a=a|0;b=b|0;c[a>>2]=b;b=a+8|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;return}function b5a(){var a=0;a=mla(16)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;dtb(a);return a|0}function c5a(a,b,d){a=a|0;b=b|0;d=d|0;Tib(a+4|0,WCb(c[b>>2]|0)|0,d);return}function d5a(a,b,d){a=a|0;b=b|0;d=d|0;nya(a+4|0,WCb(c[d>>2]|0)|0);return}function e5a(a,b){a=a|0;b=b|0;Rga(a,b);return}function f5a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=46080;return}function g5a(a,b,c){a=a|0;b=b|0;c=c|0;qS(a,b,c);return}function h5a(a,b,c){a=a|0;b=b|0;c=c|0;oS(a,b,c);return}function i5a(a,b,c){a=a|0;b=b|0;c=c|0;rS(a,b,c);return}function j5a(a,b,c){a=a|0;b=b|0;c=c|0;pS(a,b,c);return}function k5a(a,b){a=a|0;b=b|0;pO(a,b+16|0);return}function l5a(a,b){a=a|0;b=b|0;qO(a,b+16|0);return}function m5a(a,b){a=a|0;b=b|0;rO(a,b+16|0);return}function n5a(b,d){b=b|0;d=d|0;m2a(b,(a[d+11>>0]|0)<0?c[d>>2]|0:d,0);return}function o5a(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];aja(a+4|0,b+4|0);return}function p5a(a,b){a=a|0;b=b|0;b=b+12|0;a=Vu(a,c[b>>2]|0)|0;c[b>>2]=a;return}function q5a(a){a=a|0;sS(a);if((c[(c[a+28>>2]|0)+4>>2]|0)!=6)return;c[a+4>>2]=6;return}function r5a(a){a=a|0;$fb(a);RCb(a);return}function s5a(a){a=a|0;Beb(a);RCb(a);return}function t5a(a){a=a|0;Ceb(a);RCb(a);return}function u5a(a){a=a|0;N4a(a);RCb(a);return}function v5a(a){a=a|0;awa(a+16|0);Xjb(a);return}function w5a(a){a=a|0;UIa(a);return}function x5a(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=e;c[a+4>>2]=b;c[a+8>>2]=d;return}function y5a(a){a=a|0;vna(a);return}function z5a(a){a=a|0;if((c[a>>2]|0)!=1){a=0;return a|0}a=_xb(c[c[a+4>>2]>>2]|0)|0;return a|0}function A5a(a,b){a=a|0;b=b|0;O4a(a);c[a>>2]=41968;c[a+44>>2]=b;return}function B5a(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=iGa(iGa(iGa(a,b)|0,c)|0,d)|0;O(0);return d|0}function C5a(a){a=a|0;Vob(a+24|0);Vob(a+12|0);Vob(a);return}function D5a(a){a=a|0;KRa(a);$lb(a+16|0);c[a>>2]=46e3;return}function E5a(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];T4(a+4|0,b+4|0);return}function F5a(a,b,c){a=a|0;b=b|0;c=c|0;if(b|0)LL(a|0,(Qzb(c)|0)&255|0,b|0)|0;return a|0}function G5a(a){a=a|0;if(!(c[a+4>>2]|0))ma(101662,118839,224,101679);else return c[a>>2]|0;return 0}function H5a(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;Pqb(a);return}function I5a(a){a=a|0;if((c[(c[a+20>>2]|0)+4>>2]|0)!=6?(c[(c[a+24>>2]|0)+4>>2]|0)!=6:0)return;c[a+4>>2]=6;return}function J5a(a,b){a=a|0;b=b|0;b=G7(a+28|0,b)|0;return c[b>>2]|0}function K5a(a,b){a=a|0;b=b|0;uO(a,b+16|0);return}function L5a(a,b){a=a|0;b=b|0;zO(a,b+16|0);return}function M5a(a,b){a=a|0;b=b|0;AO(a,b+16|0);return}function N5a(a){a=a|0;v5a(a);RCb(a);return}function O5a(a){a=a|0;if(c[37104]|0)IWa(150452,66581)|0;eeb(a);return}function P5a(a){a=a|0;var b=0;b=mla(8)|0;c[b>>2]=43240;c[b+4>>2]=c[a+4>>2];return b|0}function Q5a(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;x5(a,b,c,d);return}function R5a(a){a=a|0;gcb(a);RCb(a);return}function S5a(){RAb();wAb();uAb();sAb();qAb();return}function T5a(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;K5(a,b,c,d);return}function U5a(a,b){a=a|0;b=b|0;NO(a,b+44|0);return}function V5a(a,b){a=a|0;b=b|0;BO(a,b+16|0);return}function W5a(a,b){a=a|0;b=b|0;if(!(dub(c[a+24>>2]|0,c[b>>2]|0)|0))return;hCb(a+24|0);return}function X5a(a,b){a=a|0;b=b|0;b=a+b|0;return d[b>>0]|d[b+1>>0]<<8|d[b+2>>0]<<16|d[b+3>>0]<<24|0}function Y5a(a){a=a|0;gcb(a);RCb(a);return}function Z5a(a,b){a=a|0;b=b|0;c[a+8>>2]=b;b=es(c[a+12>>2]|0,b<<2,4)|0;c[a>>2]=b;return}function _5a(a){a=a|0;return ytb(c[a+32>>2]|0)|0}function $5a(b){b=b|0;$lb(b);a[b+28>>0]=0;return}function a6a(a){a=a|0;a=mla(8)|0;c[a>>2]=40540;return a|0}function b6a(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Y5(a,b,c,d);return}function c6a(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;W5(a,b,c,d);return}function d6a(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Z5(a,b,c,d);return}function e6a(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;X5(a,b,c,d);return}function f6a(a,b){a=a|0;b=b|0;nsa(c[a+24>>2]|0,b);return}function g6a(a){a=a|0;KRa(a);jbb(a+16|0);c[a>>2]=43368;return}function h6a(a){a=a|0;return Uu(a)|0}function i6a(a){a=a|0;return $P(a)|0}function j6a(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;if(d>>>0<1|(d|0)==1&b>>>0<0)return;else ma(55424,53431,90,55467)}function k6a(a,b){a=a|0;b=b|0;gdb(c[b>>2]|0)|0;return}function l6a(a,b){a=a|0;b=b|0;hdb(c[b>>2]|0)|0;return}function m6a(a){a=a|0;if(!a){a=32;return a|0}a=16+((J(0-a&a,125613361)|0)>>>27)|0;a=d[a>>0]|0;return a|0}function n6a(a){a=a|0;c[a>>2]=42796;Vob(a+44|0);gcb(a);return}function o6a(a){a=a|0;switch(a|0){case 7:case 5:case 4:case 2:{a=1;break}default:a=0}return a|0}function p6a(b,c){b=b|0;c=c|0;if(!(aCb(c)|0)){b=0;return b|0}a[b+26>>0]=1;b=1;return b|0}function q6a(a){a=a|0;gcb(a);RCb(a);return}function r6a(a){a=a|0;idb(a);RCb(a);return}function s6a(a){a=a|0;return 33344}function t6a(a,b){a=a|0;b=b|0;JO(a,b+16|0);return}function u6a(a,b){a=a|0;b=b|0;wdb(c[b>>2]|0)|0;return}function v6a(a){a=a|0;var b=0,d=0;b=a;d=b+36|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));seb(a);return}function w6a(){var a=0;a=mla(16)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;Vtb(a);return a|0}function x6a(a){a=a|0;gcb(a);RCb(a);return}function y6a(a,b){a=a|0;b=b|0;Nra(a,b);return}function z6a(a,b){a=a|0;b=b|0;c[b>>2]=43240;c[b+4>>2]=c[a+4>>2];return}function A6a(a,b){a=a|0;b=b|0;WHa(a+-16|0,b);return}function B6a(a){a=a|0;c[a>>2]=40364;return}function C6a(a){a=a|0;qMa(a+4|0);return}function D6a(a){a=a|0;rMa(a+4|0);return}function E6a(a){a=a|0;sMa(a+4|0);return}function F6a(a){a=a|0;tMa(a+4|0);return}function G6a(a){a=a|0;uMa(a+4|0);return}function H6a(a,b){a=a|0;b=b|0;$lb(a);c[a+24>>2]=b;return}function I6a(a,b){a=a|0;b=b|0;r9a(a,b);return}function J6a(a){a=a|0;a=Ekb(a+152|0)|0;if(!(c[37104]|0))return a|0;Vg(a,56915);return a|0}function K6a(a){a=a|0;var b=0;XCb();b=c[37438]|0;c[a+56>>2]=b;if(b|0)c[b+52>>2]=a;c[37438]=a;TCb();return a|0}function L6a(){xR(147880,Kla(151604)|0);return}function M6a(){xR(147872,Kla(151596)|0);return}function N6a(){xR(147864,Kla(151588)|0);return}function O6a(){xR(147856,Kla(151580)|0);return}function P6a(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;d=d-c|0;return (d>>>0>>0?d:e)|0}function Q6a(a,b){a=a|0;b=b|0;a=bkb(a)|0;c[a+8>>2]=b;dmb(a);return a|0}function R6a(a,b){a=a|0;b=b|0;NO(a,b+16|0);return}function S6a(a,b){a=a|0;b=b|0;RO(a,b+16|0);return}function T6a(a,b){a=a|0;b=b|0;xdb(c[b>>2]|0)|0;return}function U6a(a,b){a=a|0;b=b|0;ydb(c[b>>2]|0)|0;return}function V6a(a,b){a=a|0;b=b|0;zdb(c[b>>2]|0)|0;return}function W6a(a,b){a=a|0;b=b|0;Adb(c[b>>2]|0)|0;return}function X6a(a,b){a=a|0;b=b|0;cP(a,b+44|0);return}function Y6a(a,b){a=a|0;b=b|0;b=a+44|0;c[b>>2]=(c[b>>2]|0)+-4;return}function Z6a(a){a=+a;leb(a)|0;if((P()|0)<0)return 0;else return (yCb(a)|0)&a<=18446744073709551616.0|0;return 0}function _6a(a,b){a=a|0;b=b|0;c[a>>2]=41844;c[a+16>>2]=a;return}function $6a(){xR(147936,Kla(151540)|0);return}function a7a(){xR(147920,Kla(151532)|0);return}function b7a(){xR(147904,Kla(151524)|0);return}function c7a(){xR(147888,Kla(151456)|0);return}function d7a(a,b){a=a|0;b=b|0;c[b>>2]=45836;return}function e7a(a){a=a|0;if(bCb(c[a>>2]|0)|0)return c[a+8>>2]|0;else ma(51359,74885,230,66738);return 0}function f7a(a,b,d){a=a|0;b=b|0;d=d|0;Cnb(a,b);c[a>>2]=44620;c[a+8>>2]=d;return}function g7a(a){a=a|0;a=a-(a>>>1&1431655765)|0;a=(a&858993459)+(a>>>2&858993459)|0;return (J(a+(a>>>4)&252645135,16843009)|0)>>>24|0}function h7a(a){a=a|0;c[a>>2]=42288;$$a(a+20|0);Xjb(a);return}function i7a(a){a=a|0;var b=0;b=c[a+44>>2]|0;return fy(b,WCb(c[a+32>>2]|0)|0)|0}function j7a(a){a=a|0;KRa(a);jbb(a+16|0);c[a>>2]=40112;return}function k7a(a){a=a|0;KRa(a);jbb(a+16|0);c[a>>2]=40796;return}function l7a(a){a=a|0;gcb(a);RCb(a);return}function m7a(a,b){a=a|0;b=b|0;if(!b)b=0;else b=Mz(c[b>>2]|0,c[b+4>>2]|0,a)|0;return ((b|0)==0?a:b)|0}function n7a(a){a=a|0;Hma(a);return}function o7a(){xR(147816,Kla(151388)|0);return}function p7a(){xR(147808,Kla(151380)|0);return}function q7a(){xR(147800,Kla(151372)|0);return}function r7a(){xR(147792,Kla(151348)|0);return}function s7a(a){a=a|0;Oeb(a+4|0);return}function t7a(a,b){a=a|0;b=b|0;SO(a,b+16|0);return}function u7a(a,b){a=a|0;b=b|0;Hdb(c[b>>2]|0)|0;return}function v7a(a,b){a=a|0;b=b|0;Idb(c[b>>2]|0)|0;return}function w7a(a,b){a=a|0;b=b|0;Jdb(c[b>>2]|0)|0;return}function x7a(a,b){a=a|0;b=b|0;Kdb(c[b>>2]|0)|0;return}function y7a(a,b){a=a|0;b=b|0;Ldb(c[b>>2]|0)|0;return}function z7a(a){a=a|0;Wfb(a+4|0);return}function A7a(a){a=a|0;oMa(a);return}function B7a(a){a=a|0;pMa(a);return}function C7a(b,d){b=b|0;d=d|0;e4a(b);c[b>>2]=45392;a[b+44>>0]=d&1;return}function D7a(a,b){a=a|0;b=b|0;b=WZ(a+52|0,b)|0;return c[b>>2]|0}function E7a(a,b){a=a|0;b=b|0;a=Igb(a)|0;c[a+8>>2]=b;Mzb(a);return a|0}function F7a(a,b){a=a|0;b=b|0;Xw(a,b,b+8|0,b+12|0,b+16|0);return}function G7a(a){a=a|0;KRa(a);rqb(a+16|0);c[a>>2]=42476;return}function H7a(a){a=a|0;gcb(a);RCb(a);return}function I7a(a){a=a|0;gcb(a);RCb(a);return}function J7a(a){a=a|0;Khb(a+24|0);Hqb(a);return}function K7a(a,c,d){a=a|0;c=c|0;d=d|0;if(d>>>0<128)a=(b[30160+(d<<1)>>1]&c)<<16>>16!=0;else a=0;return a|0}function L7a(a,b,c){a=a|0;b=b|0;c=c|0;kJ(a,b,c);return}function M7a(a,b,c){a=a|0;b=b|0;c=c|0;oJ(a,b,c);return}function N7a(a,b,c){a=a|0;b=b|0;c=c|0;lJ(a,b,c);return}function O7a(a,b,c){a=a|0;b=b|0;c=c|0;pJ(a,b,c);return}function P7a(a,b,c){a=a|0;b=b|0;c=c|0;mJ(a,b,c);return}function Q7a(a,b,c){a=a|0;b=b|0;c=c|0;qJ(a,b,c);return}function R7a(a,b,c){a=a|0;b=b|0;c=c|0;nJ(a,b,c);return}function S7a(a,b,c){a=a|0;b=b|0;c=c|0;rJ(a,b,c);return}function T7a(a,b){a=a|0;b=b|0;ZO(a,b+16|0);return}function U7a(a,b){a=a|0;b=b|0;SEa(a+184|0,b)|0;return}function V7a(){ma(141129,96854,720,52417)}function W7a(a){a=a|0;gcb(a);RCb(a);return}function X7a(a){a=a|0;gcb(a);RCb(a);return}function Y7a(a){a=a|0;sXa(a+16|0);_0a(a);return}function Z7a(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=0;c[a+8>>2]=b;c[a+12>>2]=0;c[a+16>>2]=d;return}function _7a(a){a=a|0;egb(a);egb(a+24|0);egb(a+48|0);egb(a+72|0);return}function $7a(a){a=a|0;Qgb(a);return}function a8a(a,b){a=a|0;b=b|0;c[b>>2]=45792;return}function b8a(a,b,c){a=a|0;b=b|0;c=c|0;GO(a,b,c);return}function c8a(a,b,c){a=a|0;b=b|0;c=c|0;HO(a,b,c);return}function d8a(a,b,c){a=a|0;b=b|0;c=c|0;EJ(a,b,c);return}function e8a(a,b,c){a=a|0;b=b|0;c=c|0;IJ(a,b,c);return}function f8a(a,b,c){a=a|0;b=b|0;c=c|0;FJ(a,b,c);return}function g8a(a,b,c){a=a|0;b=b|0;c=c|0;JJ(a,b,c);return}function h8a(a,b,c){a=a|0;b=b|0;c=c|0;GJ(a,b,c);return}function i8a(a,b,c){a=a|0;b=b|0;c=c|0;KJ(a,b,c);return}function j8a(a,b,c){a=a|0;b=b|0;c=c|0;HJ(a,b,c);return}function k8a(a,b,c){a=a|0;b=b|0;c=c|0;LJ(a,b,c);return}function l8a(a){a=a|0;iob(a);iob(a+12|0);c[a+24>>2]=0;c[a+28>>2]=0;c[a+32>>2]=0;return}function m8a(a,b){a=a|0;b=b|0;feb(c[b>>2]|0)|0;return}function n8a(a,b){a=a|0;b=b|0;geb(c[b>>2]|0)|0;return}function o8a(a,b){a=a|0;b=b|0;heb(c[b>>2]|0)|0;return}function p8a(a,b){a=a|0;b=b|0;ieb(c[b>>2]|0)|0;return}function q8a(a){a=a|0;gcb(a);RCb(a);return}function r8a(a){a=a|0;gcb(a);RCb(a);return}function s8a(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Kb[a&31](b|0,c|0,d|0,e|0,f|0)|0}function t8a(){var b=0;if((a[147488]|0)==0?mlb(147488)|0:0){b=CI(2147483647,136425,0)|0;c[37833]=b}return c[37833]|0}function u8a(a,b,d){a=a|0;b=b|0;d=d|0;return ((c[b>>2]|0)==(d|0)?(c[b+4>>2]|0)==(a|0):0)|0}function v8a(a,b,c){a=a|0;b=b|0;c=c|0;OO(a,b,c);return}function w8a(a,b,c){a=a|0;b=b|0;c=c|0;PO(a,b,c);return}function x8a(a,b,c){a=a|0;b=b|0;c=c|0;bT(a,b,c);return}function y8a(a,b,c){a=a|0;b=b|0;c=c|0;cT(a,b,c);return}function z8a(a,b,c){a=a|0;b=b|0;c=c|0;RJ(a,b,c);return}function A8a(a,b,c){a=a|0;b=b|0;c=c|0;SJ(a,b,c);return}function B8a(a,b,c){a=a|0;b=b|0;c=c|0;TJ(a,b,c);return}function C8a(a,b,c){a=a|0;b=b|0;c=c|0;UJ(a,b,c);return}function D8a(a,b,c){a=a|0;b=b|0;c=c|0;VJ(a,b,c);return}function E8a(a,b,c){a=a|0;b=b|0;c=c|0;WJ(a,b,c);return}function F8a(a,b,c){a=a|0;b=b|0;c=c|0;XJ(a,b,c);return}function G8a(a,b,c){a=a|0;b=b|0;c=c|0;YJ(a,b,c);return}function H8a(a,b,c){a=a|0;b=b|0;c=c|0;dT(a,b,c);return}function I8a(a,b,c){a=a|0;b=b|0;c=c|0;BJ(a,b,c);return}function J8a(a,b,c){a=a|0;b=b|0;c=c|0;CJ(a,b,c);return}function K8a(a){a=a|0;if((c[a+16>>2]|0)==4)return +(+BAb(a));else ma(111633,78105,91,52144);return +(0.0)}function L8a(a){a=a|0;if((c[a+16>>2]|0)==3)return +(+AAb(a));else ma(111605,78105,90,52151);return +(0.0)}function M8a(a,b){a=a|0;b=b|0;Keb(c[b>>2]|0)|0;return}function N8a(a,b){a=a|0;b=b|0;cP(a,b+16|0);return}function O8a(a,b){a=a|0;b=b|0;C3(a,c[b>>2]|0);return}function P8a(a){a=a|0;Pdb(a+12|0);Vob(a);return}function Q8a(b,d){b=b|0;d=d|0;a[b+8>>0]=d&1;c[b+12>>2]=d?151778:139961;c[b+16>>2]=d?151778:127446;return}function R8a(a){a=a|0;gcb(a);RCb(a);return}function S8a(a){a=a|0;gcb(a);RCb(a);return}function T8a(a){a=a|0;gcb(a);RCb(a);return}function U8a(a){a=a|0;gcb(a);RCb(a);return}function V8a(a){a=a|0;gcb(a);RCb(a);return}function W8a(a){a=a|0;jab(a+40|0);Arb(a);return}function X8a(a){a=a|0;jab(a+40|0);Arb(a);return}function Y8a(a){a=a|0;jab(a+40|0);Arb(a);return}function Z8a(a){a=a|0;jab(a+40|0);Arb(a);return}function _8a(a){a=a|0;jab(a+40|0);Arb(a);return}function $8a(a){a=a|0;KXa(a);return}function a9a(a){a=a|0;c[a>>2]=46188;c[a+104>>2]=46208;FO(a+4|0);return}function b9a(a,b,c){a=a|0;b=b|0;c=c|0;hP(a,b,c);return}function c9a(a,b,c){a=a|0;b=b|0;c=c|0;aP(a,b,c);return}function d9a(a,b,c){a=a|0;b=b|0;c=c|0;iP(a,b,c);return}function e9a(a,b,c){a=a|0;b=b|0;c=c|0;bP(a,b,c);return}function f9a(a,b,c){a=a|0;b=b|0;c=c|0;fT(a,b,c);return}function g9a(a,b,c){a=a|0;b=b|0;c=c|0;QO(a,b,c);return}function h9a(a,b,c){a=a|0;b=b|0;c=c|0;gT(a,b,c);return}function i9a(a,b,c){a=a|0;b=b|0;c=c|0;hT(a,b,c);return}function j9a(a,b,c){a=a|0;b=b|0;c=c|0;NJ(a,b,c);return}function k9a(a,b,c){a=a|0;b=b|0;c=c|0;OJ(a,b,c);return}function l9a(a,b){a=a|0;b=b|0;Leb(c[b>>2]|0)|0;return}function m9a(a,b){a=a|0;b=b|0;Deb(c[b>>2]|0)|0;return}function n9a(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=b;c[a+4>>2]=d;c[a+8>>2]=e;return}function o9a(a){a=a|0;gcb(a);RCb(a);return}function p9a(a){a=a|0;gcb(a);RCb(a);return}function q9a(a){a=a|0;gcb(a);RCb(a);return}function r9a(a,b){a=a|0;b=b|0;$ha(b,a);return}function s9a(a,b){a=a|0;b=b|0;Eva(a,b);return}function t9a(a){a=a|0;Xka(a);return}function u9a(a){a=a|0;a9a(a);ktb(a+104|0);return}function v9a(a){a=a|0;a=mla(8)|0;c[a>>2]=45836;return a|0}function w9a(a,b,c){a=a|0;b=b|0;c=c|0;DT(a,b,c);return}function x9a(a,b,c){a=a|0;b=b|0;c=c|0;qT(a,b,c);return}function y9a(a,b,c){a=a|0;b=b|0;c=c|0;FT(a,b,c);return}function z9a(a,b,c){a=a|0;b=b|0;c=c|0;uT(a,b,c);return}function A9a(a,b,c){a=a|0;b=b|0;c=c|0;$O(a,b,c);return}function B9a(a,b,c){a=a|0;b=b|0;c=c|0;sT(a,b,c);return}function C9a(a,b,c){a=a|0;b=b|0;c=c|0;GT(a,b,c);return}function D9a(a,b,c){a=a|0;b=b|0;c=c|0;vT(a,b,c);return}function E9a(a,b,c){a=a|0;b=b|0;c=c|0;HT(a,b,c);return}function F9a(a,b,c){a=a|0;b=b|0;c=c|0;wT(a,b,c);return}function G9a(a,b,c){a=a|0;b=b|0;c=c|0;IT(a,b,c);return}function H9a(a,b,c){a=a|0;b=b|0;c=c|0;xT(a,b,c);return}function I9a(a,b,c){a=a|0;b=b|0;c=c|0;JT(a,b,c);return}function J9a(a,b,c){a=a|0;b=b|0;c=c|0;yT(a,b,c);return}function K9a(a,b,c){a=a|0;b=b|0;c=c|0;ET(a,b,c);return}function L9a(a,b,c){a=a|0;b=b|0;c=c|0;tT(a,b,c);return}function M9a(a,b,c){a=a|0;b=b|0;c=c|0;KT(a,b,c);return}function N9a(a,b,c){a=a|0;b=b|0;c=c|0;zT(a,b,c);return}function O9a(a,b,c){a=a|0;b=b|0;c=c|0;kT(a,b,c);return}function P9a(a,b,c){a=a|0;b=b|0;c=c|0;aK(a,b,c);return}function Q9a(a,b,c){a=a|0;b=b|0;c=c|0;sJ(a,b,c);return}function R9a(a,b,c){a=a|0;b=b|0;c=c|0;cK(a,b,c);return}function S9a(a,b,c){a=a|0;b=b|0;c=c|0;tJ(a,b,c);return}function T9a(a,b,c){a=a|0;b=b|0;c=c|0;dK(a,b,c);return}function U9a(a,b,c){a=a|0;b=b|0;c=c|0;uJ(a,b,c);return}function V9a(a,b,c){a=a|0;b=b|0;c=c|0;eK(a,b,c);return}function W9a(a,b,c){a=a|0;b=b|0;c=c|0;vJ(a,b,c);return}function X9a(a,b,c){a=a|0;b=b|0;c=c|0;fK(a,b,c);return}function Y9a(a,b,c){a=a|0;b=b|0;c=c|0;wJ(a,b,c);return}function Z9a(a,b,c){a=a|0;b=b|0;c=c|0;gK(a,b,c);return}function _9a(a,b,c){a=a|0;b=b|0;c=c|0;bK(a,b,c);return}function $9a(a,b,c){a=a|0;b=b|0;c=c|0;xJ(a,b,c);return}function aab(a,b,c){a=a|0;b=b|0;c=c|0;hK(a,b,c);return}function bab(a,b,c){a=a|0;b=b|0;c=c|0;lT(a,b,c);return}function cab(a,b){a=a|0;b=b|0;c[a+16>>2]=5;j5(a,b);return}function dab(){ma(141129,96854,730,69094)}function eab(){ma(141129,96854,733,69048)}function fab(){ma(141129,96854,732,69064)}function gab(a){a=a|0;switch(a|0){case 6:case 3:case 1:{a=1;break}default:a=0}return a|0}function hab(a){a=a|0;c[a>>2]=40352;return}function iab(a){a=a|0;jHa(a);return}function jab(a){a=a|0;Usa(a);return}function kab(a){a=a|0;gcb(a);RCb(a);return}function lab(a){a=a|0;gcb(a);RCb(a);return}function mab(a,b){a=a|0;b=b|0;return qHa(a,b*24|0)|0}function nab(a,b){a=a|0;b=b|0;c[a>>2]=46312;c[a+4>>2]=b;c[a+16>>2]=a;return}function oab(a,b){a=a|0;b=b|0;c[a>>2]=40540;c[a+16>>2]=a;return}function pab(a,b){a=a|0;b=b|0;c[a>>2]=46268;c[a+4>>2]=b;c[a+16>>2]=a;return}function qab(a,b){a=a|0;b=b|0;c[a>>2]=46224;c[a+4>>2]=b;c[a+16>>2]=a;return}function rab(a){a=a|0;iib(a+4|0);return}function sab(a,b,c){a=a|0;b=b|0;c=c|0;nP(a,b,c);return}function tab(a,b,c){a=a|0;b=b|0;c=c|0;lP(a,b,c);return}function uab(a,b,d){a=a|0;b=b|0;d=d|0;Cnb(a,b);c[a>>2]=44728;c[a+8>>2]=d;return}function vab(a){a=a|0;w2a(a);c[a>>2]=42128;c[a+44>>2]=0;return}function wab(a){a=a|0;a=mla(204)|0;LL(a|0,0,204)|0;d1(a);return a|0}function xab(a){a=a|0;gcb(a);RCb(a);return}function yab(a){a=a|0;gcb(a);RCb(a);return}function zab(a){a=a|0;gcb(a);RCb(a);return}function Aab(a){a=a|0;gcb(a);RCb(a);return}function Bab(a){a=a|0;Meb(a,2);c[a>>2]=40500;c[a+20>>2]=0;w0a(a+24|0);return}function Cab(){if((a[148136]|0)==0?mlb(148136)|0:0){$ib();c[37918]=151668}return c[37918]|0}function Dab(){if((a[147968]|0)==0?mlb(147968)|0:0){qmb();c[37916]=151660}return c[37916]|0}function Eab(a,b,c){a=a|0;b=b|0;c=c|0;rT(a,b,c);return}function Fab(a){a=a|0;if(zAb(c[a>>2]|0)|0)return a|0;else ma(75001,74943,79,75016);return 0}function Gab(a){a=a|0;KRa(a);c[a>>2]=44752;Cub(a+16|0);Cub(a+20|0);Cub(a+24|0);return}function Hab(a,b){a=a|0;b=b|0;c[a+16>>2]=5;HW(a,b);return}function Iab(a,b){a=a|0;b=b|0;c[a+16>>2]=5;OW(a,b);return}function Jab(a,b){a=a|0;b=b|0;c[a+16>>2]=5;pQ(a,b);return}function Kab(a,b){a=a|0;b=b|0;Lqa(a+-16|0,c[b>>2]|0);return}function Lab(a){a=a|0;switch(a|0){case 7:case 5:case 2:{a=1;break}default:a=0}return a|0}function Mab(a){a=a|0;igb(a+16|0);Xjb(a);return}function Nab(a){a=a|0;gcb(a);RCb(a);return}function Oab(a){a=a|0;gcb(a);RCb(a);return}function Pab(a){a=a|0;gcb(a);RCb(a);return}function Qab(a){a=a|0;return uXa(c[a>>2]|0,c[a+4>>2]|0)|0}function Rab(a){a=a|0;u9a(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function Sab(a){a=a|0;Vjb(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function Tab(a){a=a|0;JYa(a);return}function Uab(a){a=a|0;Bna(a+52|0);return}function Vab(a,b){a=a|0;b=b|0;cfb(c[b>>2]|0)|0;return}function Wab(a,b){a=a|0;b=b|0;Teb(c[b>>2]|0)|0;return}function Xab(a,b){a=a|0;b=b|0;Ueb(c[b>>2]|0)|0;return}function Yab(a,b){a=a|0;b=b|0;Veb(c[b>>2]|0)|0;return}function Zab(a,b){a=a|0;b=b|0;return Sr(a,b)|0}function _ab(){ma(141129,96854,726,82218)}function $ab(a){a=a|0;W3a(a);c[a>>2]=42596;return}function abb(a,b){a=a|0;b=b|0;return _lb(a+4|0,WCb(c[b>>2]|0)|0)|0}function bbb(a){a=a|0;return E3(a,1)|0}function cbb(a){a=a|0;igb(a+16|0);Xjb(a);return}function dbb(a){a=a|0;gcb(a);RCb(a);return}function ebb(a){a=a|0;gcb(a);RCb(a);return}function fbb(a){a=a|0;var b=0;b=es(a,32,4)|0;q$a(b,a);return b|0}function gbb(a){a=a|0;a=mla(8)|0;c[a>>2]=45792;return a|0}function hbb(){ma(141129,96854,721,104123)}function ibb(a,b){a=a|0;b=b|0;IQ(a+120|0,a+104|0);return}function jbb(a){a=a|0;$lb(a);c[a+24>>2]=0;c[a+28>>2]=0;c[a+32>>2]=0;return}function kbb(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];O3(a+4|0,b+4|0);return}function lbb(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return Jb[a&7](b|0,c|0,d|0,e|0,+f)|0}function mbb(a){a=a|0;Glb(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function nbb(a){a=a|0;jkb(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function obb(a){a=a|0;Hlb(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function pbb(a){a=a|0;kkb(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function qbb(a){a=a|0;eva(a+140|0,Icb(c[a+116>>2]|0)|0);return}function rbb(a,b){a=a|0;b=b|0;dfb(c[b>>2]|0)|0;return}function sbb(a,b){a=a|0;b=b|0;efb(c[b>>2]|0)|0;return}function tbb(a,b){a=a|0;b=b|0;ffb(c[b>>2]|0)|0;return}function ubb(a,b){a=a|0;b=b|0;tfb(c[b>>2]|0)|0;return}function vbb(a,b){a=a|0;b=b|0;ufb(c[b>>2]|0)|0;return}function wbb(){ma(141129,96854,722,97427)}function xbb(){ma(141129,96854,731,69080)}function ybb(a){a=a|0;igb(a+16|0);Xjb(a);return}function zbb(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;N(22)}function Abb(a){a=a|0;v$a(a);RCb(a);return}function Bbb(a){a=a|0;w$a(a);RCb(a);return}function Cbb(a){a=a|0;if(OBb(c[a>>2]|0)|0)return a+8|0;else ma(66934,74885,238,66945);return 0}function Dbb(a){a=a|0;if(bCb(c[a>>2]|0)|0)return a+8|0;else ma(51359,74885,234,51370);return 0}function Ebb(a){a=a|0;Oua(a+16|0);return}function Fbb(a){a=a|0;Cub(a);a=a+4|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function Gbb(a,b){a=a|0;b=b|0;c[a+132>>2]=b;return}function Hbb(a){a=a|0;Arb(a+16|0);Xjb(a);return}function Ibb(a){a=a|0;Arb(a+16|0);Xjb(a);return}function Jbb(a){a=a|0;Arb(a+16|0);Xjb(a);return}function Kbb(a){a=a|0;Arb(a+16|0);Xjb(a);return}function Lbb(a){a=a|0;Arb(a+16|0);Xjb(a);return}function Mbb(a){a=a|0;gcb(a);RCb(a);return}function Nbb(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;c[d>>2]=(c[d>>2]|0)+b;return a|0}function Obb(a,b){a=a|0;b=b|0;IWa(a,b)|0;return a|0}function Pbb(a){a=a|0;lmb(a+12|0);return}function Qbb(a){a=a|0;return 34712}function Rbb(a,b){a=a|0;b=b|0;Efb(c[b>>2]|0)|0;return}function Sbb(a,b){a=a|0;b=b|0;vfb(c[b>>2]|0)|0;return}function Tbb(a,b){a=a|0;b=b|0;wfb(c[b>>2]|0)|0;return}function Ubb(a,b){a=a|0;b=b|0;xfb(c[b>>2]|0)|0;return}function Vbb(a,b){a=a|0;b=b|0;Ffb(c[b>>2]|0)|0;return}function Wbb(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];E$(a+4|0,b+4|0);return}function Xbb(a){a=a|0;Cob(a);Cub(a+8|0);c[a+12>>2]=0;c[a+16>>2]=0;return}function Ybb(a,b){a=a|0;b=b|0;L4(a,b,c[b+44>>2]|0);return}function Zbb(a,b){a=a|0;b=b|0;R9(a,b);return}function _bb(a){a=a|0;c0a(a+-8|0);return}function $bb(a){a=a|0;bcb(a+-8|0);return}function acb(a){a=a|0;Htb(a+4|0);return}function bcb(a){a=a|0;c0a(a);RCb(a);return}function ccb(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==94846?a+4|0:0)|0}function dcb(a){a=a|0;f5a(a);c[a>>2]=46040;S1a(a+44|0);return}function ecb(a,b){a=a|0;b=b|0;vo(a,b,b+12|0,0,0)|0;return}function fcb(a){a=a|0;gcb(a);RCb(a);return}function gcb(a){a=a|0;Hqb(a+16|0);Xjb(a);return}function hcb(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 icb(a,b,c){a=a|0;b=b|0;c=c|0;cu(a,b,c);return}function jcb(a){a=a|0;return kob(a)|0}function kcb(a,b){a=a|0;b=b|0;_na(a);c[a>>2]=0;Krb(a+8|0,b);return a|0}function lcb(a){a=a|0;Vob(a+20|0);Pdb(a);return}function mcb(a,b,c){a=a|0;b=b|0;c=c|0;Daa(a,b,c);return}function ncb(a,b){a=a|0;b=b|0;Gfb(c[b>>2]|0)|0;return}function ocb(a){a=a|0;c[a>>2]=46040;CJa(a+44|0);gcb(a);return}function pcb(a){a=a|0;gcb(a);RCb(a);return}function qcb(a){a=a|0;Meb(a,1);c[a>>2]=40480;yib(a+20|0);return}function rcb(a,b){a=a|0;b=b|0;FLa(a,b);return}function scb(a,b){a=a|0;b=b|0;zfb(a,b);return}function tcb(a,b){a=a|0;b=b|0;gIa(a,b);return}function ucb(a,b){a=a|0;b=b|0;c[a+8>>2]=b;b=es(149168,b<<2,4)|0;c[a>>2]=b;return}function vcb(a,b){a=a|0;b=b|0;SO(a+16|0,b+44|0);return}function wcb(){ma(141129,96854,728,113038)}function xcb(a){a=a|0;gcb(a);RCb(a);return}function ycb(a,b){a=a|0;b=b|0;_cb(a,b);return}function zcb(a,b){a=a|0;b=b|0;return (Cla(b,a)|0)>0|0}function Acb(a){a=a|0;return Jib(a)|0}function Bcb(a){a=a|0;Uta(a,c[a+4>>2]|0);return}function Ccb(a,b){a=a|0;b=b|0;M_(a,b);return}function Dcb(a,b){a=a|0;b=b|0;E_(a,b);return}function Ecb(a,b){a=a|0;b=b|0;N_(a,b);return}function Fcb(a,b){a=a|0;b=b|0;F_(a,b);return}function Gcb(b){b=b|0;if(!($Bb(a[b>>0]|0)|0)){b=0;return b|0}b=(a[b+24>>0]&1)!=0;return b|0}function Hcb(a){a=a|0;c[a>>2]=41928;Pdb(a+20|0);Xjb(a);return}function Icb(a){a=a|0;return ((c[a+20>>2]|0)-(c[a+16>>2]|0)>>2)+((c[a+32>>2]|0)-(c[a+28>>2]|0)>>2)|0}function Jcb(a,b){a=a|0;b=b|0;b=MIa(a+12|0,b)|0;return c[b>>2]|0}function Kcb(a,b){a=a|0;b=b|0;Uj(a+-16|0,b);return}function Lcb(a,b){a=a|0;b=b|0;jbb(a);Cub(a+36|0);c[a+40>>2]=b;return}function Mcb(b){b=b|0;if(!(a[b+8>>0]&1))return c[b>>2]|0;else ma(81430,81381,72,81437);return 0}function Ncb(a,b){a=a|0;b=b|0;b=Bs(a,b)|0;c[a>>2]=b;return}function Ocb(a,b){a=a|0;b=b|0;vo(a,b,b+24|0,0,0)|0;return}function Pcb(){return aia()|0}function Qcb(a){a=a|0;var b=0;b=c[a>>2]|0;if(!b)return;c[a+4>>2]=b;RCb(b);return}function Rcb(a,b){a=a|0;b=b|0;K_(a,b);return}function Scb(a,b){a=a|0;b=b|0;C_(a,b);return}function Tcb(a,b){a=a|0;b=b|0;L_(a,b);return}function Ucb(a,b){a=a|0;b=b|0;D_(a,b);return}function Vcb(a){a=a|0;if((c[a+16>>2]|0)==3)return c[a>>2]|0;else ma(111605,78105,99,55605);return 0}function Wcb(a){a=a|0;if(PBb(c[a>>2]|0)|0)return a|0;else ma(74932,74943,74,74992);return 0}function Xcb(a,b){a=a|0;b=b|0;KRa(a);c[a>>2]=43592;c[a+16>>2]=b;return}function Ycb(a,b){a=a|0;b=b|0;Tfb(c[b>>2]|0)|0;return}function Zcb(a,b){a=a|0;b=b|0;vo(a,b,b+8|0,0,0)|0;return}function _cb(a,b){a=a|0;b=b|0;IWa(a,b)|0;return}function $cb(b){b=b|0;if(!($Bb(a[b>>0]|0)|0)){b=0;return b|0}b=(a[b+25>>0]&1)!=0;return b|0}function adb(a,b){a=a|0;b=b|0;return Ppb(jka(a,b)|0)|0}function bdb(){ma(141129,96854,718,127709)}function cdb(){ma(141129,96854,727,113063)}function ddb(){ma(141129,96854,719,116827)}function edb(a){a=a|0;var b=0;b=mla(92)|0;zaa(b,c[a+44>>2]|0);return b|0}function fdb(a){a=a|0;igb(a+16|0);Xjb(a);return}function gdb(a){a=a|0;if((c[a>>2]|0)==30)return a|0;else ma(53400,53431,288,53451);return 0}function hdb(a){a=a|0;if((c[a>>2]|0)==24)return a|0;else ma(53400,53431,288,53451);return 0}function idb(a){a=a|0;gcb(a);return}function jdb(a,b){a=a|0;b=b|0;c[a>>2]=45836;c[a+16>>2]=a;return}function kdb(a){a=a|0;joa(a);return}function ldb(a){a=a|0;aWa(a);RCb(a);return}function mdb(a,b){a=a|0;b=b|0;c[a>>2]=b;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function ndb(){ma(141129,96854,729,67851)}function odb(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=0;c[a+8>>2]=d;return}function pdb(a,b){a=a|0;b=b|0;return (oeb(a,b)|0)!=0|0}function qdb(a,b,c){a=a|0;b=b|0;c=c|0;if(!c)a=0;else a=cia(a,b,c)|0;return a|0}function rdb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ma(141129,54662,218,54682)}function sdb(){var a=0;a=mla(204)|0;LL(a|0,0,204)|0;d1(a);return a|0}function tdb(a){a=a|0;c[a>>2]=40212;Vob(a+16|0);Htb(a+4|0);return}function udb(a,b){a=a|0;b=b|0;c[a+52>>2]=b;return}function vdb(a,b){a=a|0;b=b|0;c[a+180>>2]=b;return}function wdb(a){a=a|0;if((c[a>>2]|0)==7)return a|0;else ma(53400,53431,288,53451);return 0}function xdb(a){a=a|0;if((c[a>>2]|0)==22)return a|0;else ma(53400,53431,288,53451);return 0}function ydb(a){a=a|0;if((c[a>>2]|0)==29)return a|0;else ma(53400,53431,288,53451);return 0}function zdb(a){a=a|0;if((c[a>>2]|0)==28)return a|0;else ma(53400,53431,288,53451);return 0}function Adb(a){a=a|0;if((c[a>>2]|0)==27)return a|0;else ma(53400,53431,288,53451);return 0}function Bdb(a){a=a|0;var b=0;b=es(a,44,4)|0;QLa(b,a);return b|0}function Cdb(a){a=a|0;TIa(a+8|0);return}function Ddb(a,b){a=a|0;b=b|0;b=iGa(c[a>>2]|0,b)|0;c[a>>2]=b;return}function Edb(a,b){a=a|0;b=b|0;yi(a,b);return}function Fdb(a,b){a=a|0;b=b|0;_Ka(a,b);return}function Gdb(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function Hdb(a){a=a|0;if((c[a>>2]|0)==32)return a|0;else ma(53400,53431,288,53451);return 0}function Idb(a){a=a|0;if((c[a>>2]|0)==35)return a|0;else ma(53400,53431,288,53451);return 0}function Jdb(a){a=a|0;if((c[a>>2]|0)==34)return a|0;else ma(53400,53431,288,53451);return 0}function Kdb(a){a=a|0;if((c[a>>2]|0)==26)return a|0;else ma(53400,53431,288,53451);return 0}function Ldb(a){a=a|0;if((c[a>>2]|0)==25)return a|0;else ma(53400,53431,288,53451);return 0}function Mdb(a,b){a=a|0;b=b|0;return L6(a,b)|0}function Ndb(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 (O(d|0),a-c>>>0|0)|0}function Odb(a){a=a|0;PFa(c[c[a>>2]>>2]|0);return}function Pdb(a){a=a|0;Pwa(a);return}function Qdb(){var a=0;a=mla(180)|0;LL(a|0,0,180)|0;N2(a);return a|0}function Rdb(a){a=a|0;IWa(a,124854)|0;return}function Sdb(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+12>>0]=d&1;return}function Tdb(a){a=a|0;var b=0;b=a+140|0;a=c[b>>2]|0;c[b>>2]=a+1;return a|0}function Udb(a,b){a=a|0;b=b|0;k5(a,b);return}function Vdb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a>>2]|0;c[a>>2]=d?e|b:e&~b;return}function Wdb(a){a=a|0;var b=0;b=es(a,36,4)|0;xJa(b,a);return b|0}function Xdb(a,b){a=a|0;b=b|0;var d=0;d=yb;yb=yb+16|0;c[d>>2]=b;IA(46772,a,d)|0;q8();Ta()}function Ydb(a,b){a=a|0;b=b|0;c[a>>2]=45792;c[a+16>>2]=a;return}function Zdb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function _db(a){a=a|0;IWa(WCb(a)|0,134528)|0;return}function $db(a,b){a=a|0;b=b|0;return oN(a,b)|0}function aeb(a){a=a|0;if(c[a+16>>2]|0){a=0;return a|0}a=(c[a+12>>2]|0)==0;return a|0}function beb(a){a=a|0;Jfa(a+48|0);return}function ceb(a,b){a=a|0;b=b|0;ws(a,b);return}function deb(a,b){a=a|0;b=b|0;xs(a,b);return}function eeb(a){a=a|0;DV(a,150452);return}function feb(a){a=a|0;if((c[a>>2]|0)==11)return a|0;else ma(53400,53431,288,53451);return 0}function geb(a){a=a|0;if((c[a>>2]|0)==31)return a|0;else ma(53400,53431,288,53451);return 0}function heb(a){a=a|0;if((c[a>>2]|0)==10)return a|0;else ma(53400,53431,288,53451);return 0}function ieb(a){a=a|0;if((c[a>>2]|0)==23)return a|0;else ma(53400,53431,288,53451);return 0}function jeb(a){a=a|0;a=es(a,20,4)|0;q3a(a);return a|0}function keb(a){a=a|0;a=es(a,28,4)|0;aTa(a);return a|0}function leb(a){a=+a;var b=0;h[i>>3]=a;b=c[i>>2]|0;O(c[i+4>>2]|0);return b|0}function meb(a,b){a=a|0;b=b|0;Aq(a,b);return}function neb(a){a=a|0;OCa(c[a+8>>2]|0);return}function oeb(a,b){a=a|0;b=b|0;return Jga(a,b)|0}function peb(b){b=b|0;if(!(a[b>>0]&1)){a[b+20>>0]=1;return}else{hfa(b,32);return}}function qeb(a,b){a=a|0;b=b|0;a=thb(a)|0;c[a+8>>2]=b;return a|0}function reb(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];N0(a+4|0,b+4|0);return}function seb(a){a=a|0;$nb(a);hCb(a+12|0);hCb(a+16|0);return}function teb(a,b){a=a|0;b=b|0;xc(a+-16|0,b);return}function ueb(a,b){a=a|0;b=b|0;xp(a,b);return}function veb(a){a=a|0;a=mla(180)|0;LL(a|0,0,180)|0;K2(a);return a|0}function web(a){a=a|0;a=mla(180)|0;LL(a|0,0,180)|0;L2(a);return a|0}function xeb(a){a=a|0;a=mla(180)|0;LL(a|0,0,180)|0;M2(a);return a|0}function yeb(a){a=a|0;a=mla(180)|0;LL(a|0,0,180)|0;N2(a);return a|0}function zeb(a){a=a|0;a=mla(180)|0;LL(a|0,0,180)|0;O2(a);return a|0}function Aeb(a){a=a|0;Vob(a+12|0);Chb(a);return}function Beb(a){a=a|0;igb(a+16|0);Xjb(a);return}function Ceb(a){a=a|0;igb(a+16|0);Xjb(a);return}function Deb(a){a=a|0;if((c[a>>2]|0)==33)return a|0;else ma(53400,53431,288,53451);return 0}function Eeb(a){a=a|0;var b=0;b=es(a,28,4)|0;g1a(b,a);return b|0}function Feb(a){a=a|0;var b=0;b=c[11771]|0;if(a|0)c[11771]=(a|0)==(-1|0)?149720:a;return ((b|0)==149720?-1:b)|0}function Geb(a,b,c){a=a|0;b=b|0;c=c|0;return dub(a,b)|0}function Heb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a;c[e>>2]=b;c[e+4>>2]=d;c[a+16>>2]=2;return}function Ieb(a){a=a|0;aob(a);hCb(a+12|0);hCb(a+16|0);return}function Jeb(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[a+16>>2]=1.0;return}function Keb(a){a=a|0;if((c[a>>2]|0)==9)return a|0;else ma(53400,53431,288,53451);return 0}function Leb(a){a=a|0;if((c[a>>2]|0)==8)return a|0;else ma(53400,53431,288,53451);return 0}function Meb(a,b){a=a|0;b=b|0;c[a>>2]=40520;c[a+4>>2]=-1;c[a+8>>2]=0;c[a+16>>2]=b;return}function Neb(b){b=b|0;var d=0;c[b>>2]=50044;d=c[b+8>>2]|0;if(d|0?a[b+12>>0]|0:0)PCb(d);return}function Oeb(a){a=a|0;S0a(a);return}function Peb(a){a=a|0;if((c[a+16>>2]|0)==1)return c[a>>2]|0;else ma(111549,78105,88,52301);return 0}function Qeb(a){a=a|0;Vob(a+24|0);Htb(a+12|0);Htb(a);return}function Reb(a){a=a|0;var b=0;b=mla(24)|0;a5a(b,0);c[b+4>>2]=a;return b|0}function Seb(a){a=a|0;TIa(a+16|0);Chb(a);return}function Teb(a){a=a|0;if((c[a>>2]|0)==17)return a|0;else ma(53400,53431,288,53451);return 0}function Ueb(a){a=a|0;if((c[a>>2]|0)==19)return a|0;else ma(53400,53431,288,53451);return 0}function Veb(a){a=a|0;if((c[a>>2]|0)==16)return a|0;else ma(53400,53431,288,53451);return 0}function Web(a){a=a|0;var b=0;b=es(a,32,4)|0;Z0a(b,a);return b|0}function Xeb(a){a=a|0;var b=0;b=es(a,28,4)|0;n1a(b,a);return b|0}function Yeb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (O(b+d+(c>>>0>>0|0)>>>0|0),c|0)|0}function Zeb(a,b){a=a|0;b=+b;h[a+16>>3]=b;return}function _eb(b){b=b|0;$lb(b);a[b+24>>0]=0;return}function $eb(a){a=a|0;return 33376}function afb(){var a=0;a=mla(180)|0;LL(a|0,0,180)|0;L2(a);return a|0}function bfb(a){a=a|0;Obb(a,134556)|0;return}function cfb(a){a=a|0;if((c[a>>2]|0)==5)return a|0;else ma(53400,53431,288,53451);return 0}function dfb(a){a=a|0;if((c[a>>2]|0)==15)return a|0;else ma(53400,53431,288,53451);return 0}function efb(a){a=a|0;if((c[a>>2]|0)==13)return a|0;else ma(53400,53431,288,53451);return 0}function ffb(a){a=a|0;if((c[a>>2]|0)==14)return a|0;else ma(53400,53431,288,53451);return 0}function gfb(a,b){a=a|0;b=b|0;Pwb(a,b);w0a(a+4|0);return}function hfb(a){a=a|0;a=es(a,32,4)|0;$Na(a);return a|0}function ifb(a){a=a|0;a=es(a,24,4)|0;o_a(a);return a|0}function jfb(a){a=a|0;a=es(a,20,4)|0;d4a(a);return a|0}function kfb(){var a=0;a=es(149168,24,8)|0;aFa(a);return a|0}function lfb(){var a=0;a=mla(196)|0;LL(a|0,0,196)|0;vnb(a);return a|0}function mfb(a){a=a|0;IWa(a,124821)|0;return}function nfb(a){a=a|0;IWa(a,124809)|0;return}function ofb(a,b){a=a|0;b=b|0;return _n(a,b,0)|0}function pfb(a,b){a=a|0;b=b|0;dA(a,b);return}function qfb(a,b){a=a|0;b=b|0;gA(a,b);return}function rfb(a){a=a|0;Vx(a+24|0,a+12|0);return}function sfb(a){a=a|0;pWa(a);Rmb(a);return}function tfb(a){a=a|0;if((c[a>>2]|0)==4)return a|0;else ma(53400,53431,288,53451);return 0}function ufb(a){a=a|0;if((c[a>>2]|0)==1)return a|0;else ma(53400,53431,288,53451);return 0}function vfb(a){a=a|0;if((c[a>>2]|0)==12)return a|0;else ma(53400,53431,288,53451);return 0}function wfb(a){a=a|0;if((c[a>>2]|0)==20)return a|0;else ma(53400,53431,288,53451);return 0}function xfb(a){a=a|0;if((c[a>>2]|0)==18)return a|0;else ma(53400,53431,288,53451);return 0}function yfb(a){a=a|0;a=es(a,8,4)|0;gub(a);return a|0}function zfb(a,b){a=a|0;b=b|0;Zm(a,b)|0;return}function Afb(a){a=a|0;var b=0;b=c[a>>2]|0;if((b|0)!=(t8a()|0))pvb(c[a>>2]|0);return}function Bfb(a,b){a=a|0;b=b|0;b=c[b>>2]|0;return (Cla((a|0)==0?151778:a,(b|0)==0?151778:b)|0)<0|0}function Cfb(){var a=0;a=mla(180)|0;LL(a|0,0,180)|0;O2(a);return a|0}function Dfb(a){a=a|0;U1a(a);c[a>>2]=44912;return}function Efb(a){a=a|0;if((c[a>>2]|0)==3)return a|0;else ma(53400,53431,288,53451);return 0}function Ffb(a){a=a|0;if((c[a>>2]|0)==6)return a|0;else ma(53400,53431,288,53451);return 0}function Gfb(a){a=a|0;if((c[a>>2]|0)==21)return a|0;else ma(53400,53431,288,53451);return 0}function Hfb(a){a=a|0;a=es(a,24,4)|0;H_a(a);return a|0}function Ifb(a){a=a|0;a=es(a,20,4)|0;P4a(a);return a|0}function Jfb(a){a=a|0;a=es(a,20,4)|0;Q4a(a);return a|0}function Kfb(a){a=a|0;a=es(a,20,4)|0;R4a(a);return a|0}function Lfb(a){a=a|0;a=es(a,28,4)|0;jUa(a);return a|0}function Mfb(a){a=a|0;oIa(a+36|0);igb(a);return}function Nfb(a){a=a|0;jbb(a);sOa(a+36|0);return}function Ofb(a){a=a|0;KRa(a);c[a>>2]=45552;c[a+24>>2]=0;c[a+28>>2]=0;c[a+32>>2]=0;return}function Pfb(a){a=a|0;if(!a){a=0;return a|0}a=(c[a+4>>2]|0)==6;return a|0}function Qfb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Ib[a&63](b|0,c|0,d|0,e|0)|0}function Rfb(a){a=a|0;a=MCb(a|0)|0;if(!a)return;else Yla(a,138598)}function Sfb(a,b){a=a|0;b=b|0;a=a&65535;b=a+(b&65535)|0;return ((b&65535)>>>0>>0?-1:b&65535)|0}function Tfb(a){a=a|0;if((c[a>>2]|0)==2)return a|0;else ma(53400,53431,288,53451);return 0}function Ufb(){xR(147720,Kla(151644)|0);return}function Vfb(){xR(147728,Kla(151652)|0);return}function Wfb(a){a=a|0;_1a(a);return}function Xfb(a,b,d){a=a|0;b=b|0;d=d|0;Tb[c[(c[d>>2]|0)+24>>2]&255](a,d,b);return}function Yfb(a,b){a=a|0;b=b|0;Qua(a,e7a(WCb(b)|0)|0);return}function Zfb(a,b){a=a|0;b=b|0;a=a&65535;b=a-(b&65535)|0;return ((b&65535)>>>0>a>>>0?0:b&65535)|0}function _fb(b){b=b|0;a[b+27>>0]=1;if(!(a[b+25>>0]&1))return;a[b+26>>0]=1;return}function $fb(a){a=a|0;Arb(a+16|0);Xjb(a);return}function agb(a,b,d){a=a|0;b=b|0;d=d|0;Gsb(a,b);c[a+4>>2]=d;return}function bgb(b){b=b|0;$lb(b);a[b+32>>0]=0;return}function cgb(){xR(147704,Kla(151636)|0);return}function dgb(){xR(147696,Kla(151628)|0);return}function egb(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;return}function fgb(a){a=a|0;Glb(a+184|0);u9a(a);return}function ggb(){var a=0;a=mla(180)|0;LL(a|0,0,180)|0;M2(a);return a|0}function hgb(a){a=a|0;v2a(a);c[a>>2]=42208;return}function igb(a){a=a|0;Vob(a+24|0);Hqb(a);return}function jgb(a,b){a=a|0;b=b|0;return w7(0,a,b)|0}function kgb(a){a=a|0;a=es(a,16,4)|0;ajb(a);return a|0}function lgb(a){a=a|0;a=es(a,20,4)|0;H5a(a);return a|0}function mgb(a){a=a|0;a=es(a,12,4)|0;bjb(a);return a|0}function ngb(a){a=a|0;a=es(a,28,4)|0;VUa(a);return a|0}function ogb(a,b){a=a|0;b=b|0;return Z1(a,b)|0}function pgb(a,b){a=a|0;b=b|0;Rga(a,b+16|0);return}function qgb(a,b){a=a|0;b=b|0;Rga(a,b+12|0);return}function rgb(a){a=a|0;if((c[a+16>>2]|0)==5)return a|0;else ma(111522,78105,97,77285);return 0}function sgb(a){a=a|0;cbb(a);return}function tgb(a){a=a|0;return (ofb(a,1)|0)!=0|0}function ugb(a,b){a=a|0;b=b|0;if(b<<24>>24>-1)b=c[28880+(b<<24>>24<<2)>>2]&255;return b|0}function vgb(a){a=a|0;return 32056}function wgb(a,b){a=a|0;b=b|0;t0(a,b);return}function xgb(a,b){a=a|0;b=b|0;g0(a,b);return}function ygb(a,b){a=a|0;b=b|0;Y$(a,b);return}function zgb(a){a=a|0;if(!(WCb(a)|0)){a=1;return a|0}a=aCb(c[a>>2]|0)|0;return a|0}function Agb(a){a=a|0;if((c[a+16>>2]|0)==5)return a|0;else ma(111522,78105,96,77285);return 0}function Bgb(a){a=a|0;H2a(a);c[a>>2]=45672;return}function Cgb(a){a=a|0;I2a(a);c[a>>2]=45592;return}function Dgb(a){a=a|0;var b=0;b=mla(48)|0;V3a(b,c[a+44>>2]|0);return b|0}function Egb(a,b){a=a|0;b=b|0;return (Bs(a,b)|0)*5|0}function Fgb(a){a=a|0;c[a>>2]=40480;$1a(a+20|0);return}function Ggb(a){a=a|0;a=es(a,16,4)|0;Lob(a);return a|0}function Hgb(a){a=a|0;a=es(a,12,4)|0;Mob(a);return a|0}function Igb(a){a=a|0;a=es(a,12,4)|0;lib(a);return a|0}function Jgb(a,b){a=a|0;b=b|0;f0(a,b);return}function Kgb(a,b){a=a|0;b=b|0;b=a+(b<<2)|0;c[b>>2]=(c[b>>2]|0)+1;return}function Lgb(a,b){a=a|0;b=b|0;Qoa(a,b);return}function Mgb(a,b){a=a|0;b=b|0;return (a+4096|0)>>>0>=b>>>0&a>>>0<=b>>>0|0}function Ngb(){GAb();jAb();gAb();eAb();return}function Ogb(a){a=a|0;gob(a+4|0);return}function Pgb(a){a=a|0;Vob(a+24|0);return}function Qgb(a){a=a|0;lmb(a);return}function Rgb(a,b){a=a|0;b=b|0;u0(a,b);return}function Sgb(a,b){a=a|0;b=b|0;q0(a,b);return}function Tgb(a,b){a=a|0;b=b|0;v0(a,b);return}function Ugb(a,b){a=a|0;b=b|0;r0(a,b);return}function Vgb(a,b){a=a|0;b=b|0;w0(a,b);return}function Wgb(a,b){a=a|0;b=b|0;s0(a,b);return}function Xgb(a){a=a|0;V2a(a);c[a>>2]=43408;return}function Ygb(a){a=a|0;tI(a,0)|0;return}function Zgb(){if(c[37104]|0)IWa(150452,67033)|0;return c[37064]|0}function _gb(){if(c[37104]|0)IWa(150452,67147)|0;return a[148265]&1|0}function $gb(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 ahb(a,b){a=a|0;b=b|0;return (b|0)==(a|0)|0}function bhb(b){b=b|0;if((a[b+8+3>>0]|0)<0)RCb(c[b>>2]|0);return}function chb(a,b,c){a=a|0;b=b|0;c=c|0;return -1}function dhb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return (a|0)!=(c|0)|(b|0)!=(d|0)|0}function ehb(){var a=0;a=es(149168,24,8)|0;GMa(a);return a|0}function fhb(){var a=0;a=mla(180)|0;LL(a|0,0,180)|0;K2(a);return a|0}function ghb(a){a=a|0;Obb(a,134540)|0;return}function hhb(a){a=a|0;var b=0;b=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function ihb(a,b){a=a|0;b=b|0;c[a+40>>2]=b;return}function jhb(a){a=a|0;Vob(a+32|0);Hqb(a);return}function khb(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;N(12);return 0}function lhb(){xR(147848,Kla(151572)|0);return}function mhb(){xR(147840,Kla(151564)|0);return}function nhb(){xR(147832,Kla(151556)|0);return}function ohb(){xR(147824,Kla(151548)|0);return}function phb(a,b){a=a|0;b=b|0;if(b<<24>>24>-1)b=c[27344+((b&255)<<2)>>2]&255;return b|0}function qhb(a,b){a=a|0;b=b|0;a=a&255;b=a+(b&255)|0;return ((b&255)>>>0>>0?-1:b&255)|0}function rhb(a){a=a|0;$2a(a);c[a>>2]=43952;return}function shb(a){a=a|0;a=es(a,20,4)|0;$ob(a);return a|0}function thb(a){a=a|0;a=es(a,12,4)|0;Qxb(a);return a|0}function uhb(a){a=a|0;a=es(a,20,4)|0;bpb(a);return a|0}function vhb(){if(c[37104]|0)IWa(150452,67092)|0;return c[37065]|0}function whb(){var a=0;a=es(149168,16,8)|0;fCb(a);return a|0}function xhb(a,b){a=a|0;b=b|0;a=a&255;b=a-(b&255)|0;return ((b&255)>>>0>a>>>0?0:b&255)|0}function yhb(a){a=a|0;uqa(a+40|0);return}function zhb(a,b){a=a|0;b=b|0;a=a+(b<<2)|0;c[a>>2]=(c[a>>2]|0)+1;return}function Ahb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Ub[a&255](b|0,c|0,d|0,e|0)}function Bhb(a){a=a|0;Kpa(a);return}function Chb(b){b=b|0;if((a[b+11>>0]|0)<0)RCb(c[b>>2]|0);return}function Dhb(a){a=a|0;var b=0;b=mla(48)|0;A5a(b,c[a+44>>2]|0);return b|0}function Ehb(b,d){b=b|0;d=d|0;KRa(b);c[b>>2]=44232;a[b+16>>0]=d&1;return}function Fhb(a){a=a|0;if(!a)return;else ma(79020,79048,403,102767)}function Ghb(a){a=a|0;x3a(a);c[a>>2]=42516;return}function Hhb(a){a=a|0;a=es(a,16,4)|0;rpb(a);return a|0}function Ihb(a){a=a|0;a=es(a,36,4)|0;v6a(a);return a|0}function Jhb(a){a=a|0;a=es(a,20,4)|0;Orb(a);return a|0}function Khb(a){a=a|0;f4a(a);return}function Lhb(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=d;c[a+4>>2]=b;return}function Mhb(a){a=a|0;return 34880}function Nhb(a){a=a|0;mpa(150620,c[a>>2]|0)|0;return}function Ohb(){var a=0;a=mla(132)|0;LL(a|0,0,132)|0;Uwa(a);return a|0}function Phb(a){a=a|0;if(!a)return;else ma(101996,102017,90,102767)}function Qhb(a){a=a|0;dqa(a);return}function Rhb(a){a=a|0;lmb(a+4|0);return}function Shb(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)Pxa(a|0,b|0,c|0)|0;return a|0}function Thb(a,b){a=a|0;b=b|0;return fJa(a,Kla(b)|0)|0}function Uhb(a){a=a|0;return 32088}function Vhb(a){a=a|0;Obb(a,134535)|0;return}function Whb(a){a=a|0;fxa(a);return}function Xhb(a){a=a|0;if(a>>>0<1602224128)return 1;else return (a|0)<0&a>>>0<3212836864|0;return 0}function Yhb(a){a=a|0;if(a>>>0<1593835520)return 1;else return (a|0)<0&a>>>0<3741319169|0;return 0}function Zhb(a){a=a|0;if(a>>>0<1333788672)return 1;else return (a|0)<0&a>>>0<3212836864|0;return 0}function _hb(a){a=a|0;if(a>>>0<1325400064)return 1;else return (a|0)<0&a>>>0<3472883713|0;return 0}function $hb(a){a=a|0;if((a|0)==2)ma(82181,81381,440,82218);else return}function aib(a){a=a|0;if((a|0)==2)ma(82233,81381,435,82270);else return}function bib(a){a=a|0;E3a(a);c[a>>2]=42716;return}function cib(a){a=a|0;a=es(a,16,4)|0;Yjb(a);return a|0}function dib(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)Uv(a|0,b|0,c|0)|0;return a|0}function eib(a){a=a|0;return Peb((ffb(a)|0)+8|0)|0}function fib(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=c[b>>2];c[a+4>>2]=d;return}function gib(b,d){b=b|0;d=d|0;KRa(b);c[b>>2]=42956;a[b+16>>0]=d&1;return}function hib(a){a=a|0;Vob(a+16|0);Vob(a+4|0);return}function iib(a){a=a|0;Hna(a);return}function jib(a,b){a=a|0;b=b|0;Fmb(a,b,(c[b+4>>2]|0)-(c[b>>2]|0)>>2);return}function kib(a){a=a|0;return PLa(a,ifa(a)|0)|0}function lib(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;$qb(a);return}function mib(a){a=a|0;Vnb(a);c[a+8>>2]=0;c[a+4>>2]=6;return}function nib(){var a=0;a=mla(20)|0;Ehb(a,1);return a|0}function oib(a){a=a|0;Obb(a,134552)|0;return}function pib(a,b){a=a|0;b=b|0;return Bs(a,b)|0}function qib(a){a=a|0;if(!a)return 0;else return ((c[a+16>>2]|0)==1?a:0)|0;return 0}function rib(a){a=a|0;return T3a(c[a>>2]|0,c[a+4>>2]|0,1)|0}function sib(a){a=a|0;c[a>>2]=50136;Chb(a+16|0);return}function tib(a){a=a|0;c[a>>2]=50096;Chb(a+12|0);return}function uib(){xR(147760,Kla(151364)|0);return}function vib(){xR(147736,Kla(151340)|0);return}function wib(){xR(147960,Kla(151620)|0);return}function xib(){xR(147952,Kla(151612)|0);return}function yib(a){a=a|0;c[a+4>>2]=0;c[a+8>>2]=0;c[a>>2]=a+4;return}function zib(a,b){a=a|0;b=b|0;K1(a,b);return}function Aib(a,b){a=a|0;b=b|0;L1(a,b);return}function Bib(a){a=a|0;return Pob(a)|0}function Cib(b){b=b|0;var c=0;c=mla(72)|0;rxa(c,(a[b+44>>0]&1)!=0);return c|0}function Dib(){xR(147664,Kla(151316)|0);return}function Eib(){xR(147656,Kla(151308)|0);return}function Fib(a,b){a=a|0;b=b|0;T1(a,b);return}function Gib(a,b){a=a|0;b=b|0;U1(a,b);return}function Hib(a,b){a=a|0;b=b|0;Fmb(a,b,c[b+4>>2]|0);return}function Iib(a,b){a=a|0;b=b|0;b=a+b|0;return d[b>>0]|d[b+1>>0]<<8|0}function Jib(a){a=a|0;return (c[a+64>>2]|0)==((c[a+4>>2]|0)-(c[a>>2]|0)>>2|0)|0}function Kib(a){a=a|0;if(!a){a=0;return a|0}a=(g7a(a)|0)==1;return a|0}function Lib(a){a=a|0;a=es(a,20,4)|0;CAb(a);return a|0}function Mib(){var a=0;c[36927]=0;c[36926]=49976;a=t8a()|0;c[36928]=a;return}function Nib(a){a=a|0;return 37360}function Oib(a,b){a=a|0;b=b|0;_1(a,b);return}function Pib(a,b){a=a|0;b=b|0;X1(a,b);return}function Qib(a,b){a=a|0;b=b|0;$1(a,b);return}function Rib(a,b){a=a|0;b=b|0;Y1(a,b);return}function Sib(){var a=0;a=mla(152)|0;LL(a|0,0,152)|0;nO(a);return a|0}function Tib(b,d,e){b=b|0;d=d|0;e=e|0;a[(c[b>>2]|0)+d>>0]=e;return}function Uib(a){a=a|0;c[a+144>>2]=0;c[a+148>>2]=1;c[a+152>>2]=0;return}function Vib(a,b){a=a|0;b=b|0;rr(a,b);return}function Wib(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=b;c[a+8>>2]=0;return}function Xib(a){a=a|0;if(!a)return 0;else return ((c[a+16>>2]|0)==0?a:0)|0;return 0}function Yib(a){a=a|0;if(a|0)Rb[c[(c[a>>2]|0)+4>>2]&1023](a);return}function Zib(){xR(147688,Kla(151356)|0);return}function _ib(){xR(147672,Kla(151324)|0);return}function $ib(){var a=0;a=Dab()|0;wjb(151668,c[a>>2]|0);return}function ajb(a){a=a|0;bob(a);Cub(a+8|0);return}function bjb(a){a=a|0;cob(a);Cub(a+8|0);return}function cjb(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];return}function djb(a,b){a=a|0;b=b|0;return q1a(a,b)|0}function ejb(b,d){b=b|0;d=d|0;c[b>>2]=d;a[b+4>>0]=a[d>>0]|0;return}function fjb(){c[36971]=0;c[36970]=49788;return}function gjb(){c[36969]=0;c[36968]=49760;return}function hjb(){c[36967]=0;c[36966]=49732;return}function ijb(){c[36965]=0;c[36964]=49704;return}function jjb(a,b){a=a|0;b=+b;_na(a);c[a>>2]=1;h[a+8>>3]=b;return a|0}function kjb(a){a=a|0;if(UOa(a)|0)return 1;else return (a+-48&255)<10|0;return 0}function ljb(a){a=a|0;if(!a){a=0;return a|0}a=c[a+4>>2]|0;return a|0}function mjb(a){a=a|0;if((c[(c[a+12>>2]|0)+4>>2]|0)!=6)return;c[a+4>>2]=6;return}function njb(a){a=a|0;vC(c[a+4>>2]|0,c[a+8>>2]|0);return}function ojb(a){a=a|0;if(!a)return 0;else return ((c[a+16>>2]|0)==2?a:0)|0;return 0}function pjb(a,b,c){a=a|0;b=b|0;c=c|0;c=U4(a,b,c,0,-2147483648)|0;O(P()|0);return c|0}function qjb(a){a=a|0;qfa(a);return}function rjb(a,b){a=a|0;b=b|0;qM(a,b);return}function sjb(a,b){a=a|0;b=b|0;fM(a,b);return}function tjb(b,c){b=b|0;c=c|0;if(c>>>0>=2)return;a[b+52>>0]=1;return}function ujb(a){a=a|0;$Q(a);return}function vjb(a,b){a=a|0;b=b|0;c[a>>2]=b;c[a+4>>2]=c[b>>2];return}function wjb(a,b){a=a|0;b=b|0;c[a>>2]=b;a=b+4|0;c[a>>2]=(c[a>>2]|0)+1;return}function xjb(){c[36955]=0;c[36954]=48124;return}function yjb(){c[36953]=0;c[36952]=48072;return}function zjb(){c[36951]=0;c[36950]=48008;return}function Ajb(){c[36949]=0;c[36948]=47944;return}function Bjb(a){a=a|0;return 37328}function Cjb(a,b){a=a|0;b=b|0;II(a,b);return}function Djb(a,b){a=a|0;b=b|0;rI(a,b);return}function Ejb(a){a=a|0;return dub(c[a+140>>2]|0,c[a+144>>2]|0)|0}function Fjb(){var a=0;a=mla(196)|0;LL(a|0,0,196)|0;GYa(a);return a|0}function Gjb(a){a=a|0;Cqb(a);return}function Hjb(a,b){a=a|0;b=b|0;return ((c[a+4>>2]|0)-(c[a>>2]|0)|0)>>>0>b>>>0|0}function Ijb(a){a=a|0;Qnb(a);hCb(a+12|0);return}function Jjb(a){a=a|0;Afb(a+8|0);RCb(a);return}function Kjb(a,b){a=a|0;b=b|0;ZG(a,b);return}function Ljb(a,b){a=a|0;b=b|0;AJ(a,b);return}function Mjb(a,b){a=a|0;b=b|0;a=g7a(a)|0;return a+(g7a(b)|0)|0}function Njb(a,b){a=a|0;b=b|0;sr(a,b);return}function Ojb(a){a=a|0;a=es(a,32,8)|0;Wkb(a);return a|0}function Pjb(a,b){a=a|0;b=b|0;if(b>>>0<128)b=c[27344+(b<<2)>>2]|0;return b|0}function Qjb(a,b){a=a|0;b=b|0;if(b>>>0<128)b=c[28880+(b<<2)>>2]|0;return b|0}function Rjb(a,b){a=a|0;b=b|0;return (c[a+20>>2]|0)-(c[a+16>>2]|0)>>2>>>0>b>>>0|0}function Sjb(a){a=a|0;c[a>>2]=45552;Vob(a+24|0);Xjb(a);return}function Tjb(a){a=a|0;elb(a);return}function Ujb(){var a=0;a=mla(204)|0;LL(a|0,0,204)|0;uGa(a);return a|0}function Vjb(a){a=a|0;u9a(a);RCb(a);return}function Wjb(a,b){a=a|0;b=b|0;return (c[a+20>>2]|0)-(c[a+16>>2]|0)>>2>>>0<=b>>>0|0}function Xjb(a){a=a|0;c[a>>2]=39992;Chb(a+4|0);return}function Yjb(a){a=a|0;Dob(a);Cub(a+8|0);return}function Zjb(a){a=a|0;if((c[(c[a+24>>2]|0)+4>>2]|0)!=6)return;c[a+4>>2]=6;return}function _jb(a){a=a|0;i1a(a);return}function $jb(a,b){a=a|0;b=b|0;iob(a);c[a+12>>2]=b;return}function akb(a){a=a|0;a=es(a,28,4)|0;Ieb(a);return a|0}function bkb(a){a=a|0;a=es(a,12,4)|0;Prb(a);return a|0}function ckb(){gDb();gDb();gDb();gDb();return}function dkb(a,b){a=a|0;b=b|0;c[a>>2]=50748;tDa(a+4|0,b);return}function ekb(a){a=a|0;var b=0;b=a;a=c[b>>2]|0;O(c[b+4>>2]|0);return a|0}function fkb(){var a=0;a=mla(20)|0;Ehb(a,0);return a|0}function gkb(a){a=a|0;Onb(a);hCb(a+8|0);return}function hkb(a){a=a|0;Pnb(a);hCb(a+8|0);return}function ikb(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;N(11);return 0}function jkb(a){a=a|0;Glb(a);RCb(a);return}function kkb(a){a=a|0;Hlb(a);RCb(a);return}function lkb(a){a=a|0;FO(a);RCb(a);return}function mkb(a){a=a|0;var b=0;b=Nwb(a)|0;return (b?0:a)|0}function nkb(a){a=a|0;return tXa(a,Kla(151628)|0)|0}function okb(a,b){a=a|0;b=b|0;return (cHa(a,b)|0)^1|0}function pkb(a,b){a=a|0;b=b|0;Hob(a,b);return}function qkb(a){a=a|0;Rnb(a);hCb(a+16|0);return}function rkb(a){a=a|0;D5a(a);c[a>>2]=45960;return}function skb(a,b){a=a|0;b=b|0;ma(141129,96854,707,97602)}function tkb(a){a=a|0;G3(a);RCb(a);return}function ukb(b){b=b|0;c[b>>2]=0;c[b+4>>2]=0;a[b+8>>0]=1;a[b+9>>0]=0;return}function vkb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Hb[a&255](b|0,c|0,d|0)|0}function wkb(a,b,c){a=a|0;b=b|0;c=c|0;c=U4(a,b,c,-1,-1)|0;O(P()|0);return c|0}function xkb(a){a=a|0;if(!a)a=0;else a=(Ey(a,39672)|0)!=0&1;return a|0}function ykb(a,b,c){a=a|0;b=b|0;c=c|0;return b>>>0<=a>>>0&a>>>0>>0|0}function zkb(a,b){a=a|0;b=b|0;c[a>>2]=50728;tDa(a+4|0,b);return}function Akb(a){a=a|0;a=mla(196)|0;vnb(a);return a|0}function Bkb(a){a=a|0;Pdb(a+44|0);return}function Ckb(a){a=a|0;__a(a);return}function Dkb(b){b=b|0;a[b+27>>0]=1;a[b+77>>0]=1;a[b+79>>0]=1;return}function Ekb(a){a=a|0;a=es(a,8,4)|0;esb(a);return a|0}function Fkb(a){a=a|0;var b=0;b=c[37834]|0;c[37834]=b+1;c[a+4>>2]=b+1;return}function Gkb(a){a=a|0;Zqa(a);return}function Hkb(a){a=a|0;c[a+64>>2]=0;return}function Ikb(a){a=a|0;Pdb(a+8|0);return}function Jkb(a,b){a=a|0;b=b|0;TI(a,b);return}function Kkb(a){a=a|0;Xsb(a+8|0);return}function Lkb(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)$ga(a,b,c)|0;return}function Mkb(a){a=a|0;$pb(a);return a|0}function Nkb(){var a=0;a=mla(32)|0;r2a(a,0);return a|0}function Okb(a,b,c){a=a|0;b=b|0;c=c|0;c=wkb(a,b,c)|0;O(P()|0);return c|0}function Pkb(a){a=a|0;qjb(a);return}function Qkb(a,b,c){a=a|0;b=b|0;c=c|0;if(b|0)kZa(a,c,b)|0;return}function Rkb(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)NRa(a,b,c)|0;return}function Skb(a){a=a|0;return 37784}function Tkb(a){a=a|0;return 37760}function Ukb(a){a=a|0;return 37720}function Vkb(a,b){a=a|0;b=b|0;c[a+16>>2]=b;return}function Wkb(a){a=a|0;_nb(a);egb(a+8|0);return}function Xkb(a,b,c){a=a|0;b=b|0;c=c|0;ma(141129,54662,212,103338)}function Ykb(){var a=0;a=mla(20)|0;gib(a,1);return a|0}function Zkb(a){a=a|0;gcb(a);return}function _kb(a,b){a=a|0;b=b|0;gF(a,b);return}function $kb(a){a=a|0;Meb(a,0);c[a>>2]=40460;c[a+20>>2]=0;return}function alb(b,c){b=b|0;c=c|0;b=WH(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function blb(a){a=a|0;lNa(a+4|0);return}function clb(a,b){a=a|0;b=b|0;c[a+52>>2]=c[a+48>>2];return}function dlb(a,b,c){a=a|0;b=b|0;c=c|0;c=pjb(a,b,c)|0;O(P()|0);return c|0}function elb(a){a=a|0;a=a+24|0;c[a>>2]=(c[a>>2]|0)+1;return}function flb(a){a=a|0;a=(c[a+4>>2]|0)-(c[a>>2]|0)>>2;return (a>>>0>1?a:1)|0}function glb(b,c){b=b|0;c=c|0;c=c&1;a[b+20>>0]=c;a[b+22>>0]=c;return}function hlb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ma(a|0,b|0,c|0,d|0)}function ilb(a){a=a|0;a=c[a>>2]|0;if(!a)return;RCb(a);return}function jlb(a){a=a|0;a=mla(60)|0;$ab(a);return a|0}function klb(a){a=a|0;KRa(a);c[a>>2]=41596;Cub(a+16|0);return}function llb(a){a=a|0;Snb(a);c[a+4>>2]=6;return}function mlb(b){b=b|0;if((a[b>>0]|0)==1)b=0;else{a[b>>0]=1;b=1}return b|0}function nlb(a){a=a|0;c[a>>2]=47380;XWa(a+4|0);return}function olb(a){a=a|0;c[a>>2]=47316;XWa(a+4|0);return}function plb(b){b=b|0;if(!b){b=1;return b|0}b=(a[b>>0]|0)==0;return b|0}function qlb(a){a=a|0;Beb(a);return}function rlb(a,b){a=a|0;b=b|0;za(oa(1)|0,35104,0)}function slb(a){a=a|0;llb(a);return a|0}function tlb(a,b){a=a|0;b=b|0;return c[a+(b<<3)>>2]|0}function ulb(a,b){a=a|0;b=b|0;return (c[a+(b>>>5<<2)>>2]&1<<(b&31)|0)!=0|0}function vlb(a){a=a|0;return oob(a)|0}function wlb(){var a=0;a=oa(4)|0;MBb(a);za(a|0,39528,471)}function xlb(a){a=a|0;Afb(a+8|0);return}function ylb(a){a=a|0;var b=0;b=dub(a,-1)|0;return (b?0:a)|0}function zlb(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function Alb(b){b=b|0;if(!(a[b>>0]&1))return;hfa(b,32);return}function Blb(a,b){a=a|0;b=b|0;a=WCb(a)|0;return M0(a,WCb(b)|0)|0}function Clb(a){a=a|0;var b=0;b=a&15;return (a<<24>>24<58?b:b+9<<24>>24)&255|0}function Dlb(a,b){a=a|0;b=b|0;c[a+20>>2]=b;return}function Elb(a){a=a|0;c[a>>2]=45752;TIa(a+16|0);Xjb(a);return}function Flb(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;N(21)}function Glb(a){a=a|0;ktb(a+4|0);return}function Hlb(a){a=a|0;ktb(a+8|0);return}function Ilb(a,b){a=a|0;b=b|0;R$(a,b);return}function Jlb(a,b){a=a|0;b=b|0;return cCa(a,b)|0}function Klb(a){a=a|0;IWa(150620,a)|0;return}function Llb(a){a=a|0;gcb(a);return}function Mlb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Tb[a&255](b|0,c|0,d|0)}function Nlb(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))VE(b,d,a)|0;return}function Olb(a){a=a|0;return jCb(c[a+4>>2]|0)|0}function Plb(a,b){a=a|0;b=b|0;n0(a,b);return}function Qlb(a,b){a=a|0;b=b|0;o0(a,b);return}function Rlb(a,b){a=a|0;b=b|0;h0(a,b);return}function Slb(a,b){a=a|0;b=b|0;l0(a,b);return}function Tlb(a,b){a=a|0;b=b|0;m0(a,b);return}function Ulb(a,b){a=a|0;b=b|0;egb(a);c[a+24>>2]=c[b>>2];return}function Vlb(a){a=a|0;a=mla(88)|0;Xza(a);return a|0}function Wlb(a){a=a|0;gcb(a);return}function Xlb(a,b){a=a|0;b=b|0;c[a>>2]=2;c[a+8>>2]=b;return}function Ylb(a){a=+a;return +a}function Zlb(){var a=0;a=mla(32)|0;r2a(a,1);return a|0}function _lb(b,d){b=b|0;d=d|0;return a[(c[b>>2]|0)+d>>0]|0}function $lb(a){a=a|0;N2a(a);return}function amb(){HAb();kAb();hAb();return}function bmb(a){a=a|0;$lb(a);c[a+24>>2]=0;return}function cmb(a,b){a=a|0;b=b|0;aO(a,0,b);return}function dmb(a){a=a|0;c[a+4>>2]=(c[(c[a+8>>2]|0)+4>>2]|0)==6?6:0;return}function emb(a){a=a|0;a=mla(56)|0;iTa(a);return a|0}function fmb(a){a=a|0;gcb(a);return}function gmb(a){a=a|0;gcb(a);return}function hmb(a){a=a|0;gcb(a);return}function imb(a){a=a|0;gcb(a);return}function jmb(a){a=a|0;Pdb(a);return}function kmb(a){a=a|0;var b=0;b=yb;yb=yb+a|0;yb=yb+15&-16;return b|0}function lmb(a){a=a|0;Bcb(a);return}function mmb(){var a=0;a=mla(20)|0;gib(a,0);return a|0}function nmb(a){a=a|0;a=mla(132)|0;Uwa(a);return a|0}function omb(a){a=a|0;gcb(a);return}function pmb(a){a=a|0;gcb(a);return}function qmb(){$tb();c[37915]=147976;return}function rmb(a,b){a=a|0;b=b|0;return dub(a,b)|0}function smb(a,b){a=a|0;b=b|0;Mya(a);return}function tmb(a){a=a|0;gcb(a);return}function umb(a){a=a|0;gcb(a);return}function vmb(a){a=a|0;c[a>>2]=0;c[a+8>>2]=0;c[a+16>>2]=0;return}function wmb(a){a=a|0;return (c[a+8>>2]|0)-(c[a+4>>2]|0)>>2|0}function xmb(a){a=a|0;a=(GH(a)|0)+4|0;return WCb(c[a>>2]|0)|0}function ymb(a){a=a|0;xQ(a);return}function zmb(a){a=a|0;gcb(a);return}function Amb(a){a=a|0;gcb(a);return}function Bmb(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;N(10);return 0}function Cmb(a,b){a=a|0;b=b|0;Pwb(a,b);return}function Dmb(){var a=0;a=mla(24)|0;a5a(a,4);return a|0}function Emb(a){a=a|0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function Fmb(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;return}function Gmb(a){a=a|0;Eob(a);c[a+16>>2]=0;return}function Hmb(a,b){a=a|0;b=b|0;tI(a,b)|0;return}function Imb(a){a=a|0;a=mla(68)|0;kAa(a);return a|0}function Jmb(a){a=a|0;a=mla(44)|0;Dfb(a);return a|0}function Kmb(a){a=a|0;wL(a);RCb(a);return}function Lmb(a){a=a|0;xL(a);RCb(a);return}function Mmb(a){a=a|0;yL(a);RCb(a);return}function Nmb(a){a=a|0;zL(a);RCb(a);return}function Omb(a){a=a|0;AL(a);RCb(a);return}function Pmb(a){a=a|0;vw(a);return}function Qmb(a){a=a|0;gcb(a);return}function Rmb(a){a=a|0;c[a+4>>2]=2;c[a+8>>2]=1;return}function Smb(a){a=a|0;c[a>>2]=40500;SZa(a+24|0);return}function Tmb(a,b){a=a|0;b=b|0;if(!a)a=0;else a=wK(a,b)|0;return a|0}function Umb(b,c){b=b|0;c=c|0;c=b+(ZJ(b,c)|0)|0;return ((a[c>>0]|0)==0?0:c)|0}function Vmb(a){a=a|0;if(!(SBb(a)|0))a=(rCb(a)|0)!=0&1;else a=1;return a|0}function Wmb(a){a=a|0;egb(a);egb(a+24|0);return}function Xmb(a,b,c){a=a|0;b=b|0;c=c|0;return (b>>>0<128?b&255:c)|0}function Ymb(a){a=a|0;_u(orb(a)|0);return}function Zmb(b){b=b|0;Ysb(b);Cub(b+8|0);a[b+20>>0]=0;return}function _mb(b){b=b|0;a[b>>0]=0;a[b+1>>0]=0;a[b+2>>0]=0;return}function $mb(a){a=a|0;gcb(a);return}function anb(a,b){a=a|0;b=b|0;wjb(a,c[b+28>>2]|0);return}function bnb(a,b,c){a=a|0;b=b|0;c=c|0;return (b<<24>>24>-1?b:c)|0}function cnb(a,b){a=a|0;b=b|0;o2(a,b);return}function dnb(a,b){a=a|0;b=b|0;return FVa(a,b)|0}function enb(a){a=a|0;a=mla(56)|0;F_a(a);return a|0}function fnb(a,b){a=a|0;b=b|0;H0(a,b);return}function gnb(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function hnb(a){a=a|0;nlb(a);RCb(a);return}function inb(a){a=a|0;olb(a);RCb(a);return}function jnb(a){a=a|0;KRa(a);c[a>>2]=43592;c[a+16>>2]=150452;return}function knb(a){a=a|0;Prb(a);return a|0}function lnb(a){a=a|0;a=mla(152)|0;nO(a);return a|0}function mnb(a){a=a|0;Chb(a);return}function nnb(a){a=a|0;Kja(a);return}function onb(a){a=a|0;sSa(a);return}function pnb(a){a=a|0;if(!a)a=0;else a=y2(a)|0;return a|0}function qnb(b){b=b|0;return (a[(c[37286]|0)+(b*40|0)+32>>0]&1)!=0|0}function rnb(a){a=a|0;gcb(a);return}function snb(a,b){a=a|0;b=b|0;return (vF(a,b)|0)^1|0}function tnb(){var a=0;a=mla(72)|0;rxa(a,1);return a|0}function unb(a){a=a|0;ntb(a);RCb(a);return}function vnb(a){a=a|0;GYa(a);c[a>>2]=40712;return}function wnb(a,b){a=a|0;b=b|0;return BNa(a,b)|0}function xnb(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;N(9);return 0}function ynb(a,b){a=a|0;b=b|0;var c=0;c=mpb(a|0)|0;return ((b|0)==0?a:c)|0}function znb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Pk(a,b,c,d,0)|0}function Anb(a){a=a|0;S_a(a+4|0);return}function Bnb(a){a=a|0;return (Ara(a,118662)|0)!=0|0}function Cnb(a,b){a=a|0;b=b|0;c[a>>2]=44740;c[a+4>>2]=b;return}function Dnb(a){a=a|0;gcb(a);return}function Enb(a){a=a|0;Zkb(a);RCb(a);return}function Fnb(a){a=a|0;Hob(a,35);return}function Gnb(a){a=a|0;Hob(a,34);return}function Hnb(a){a=a|0;Hob(a,33);return}function Inb(a){a=a|0;Hob(a,32);return}function Jnb(a){a=a|0;Hob(a,31);return}function Knb(a){a=a|0;Hob(a,30);return}function Lnb(a){a=a|0;Hob(a,29);return}function Mnb(a){a=a|0;Hob(a,28);return}function Nnb(a){a=a|0;Hob(a,27);return}function Onb(a){a=a|0;Hob(a,26);return}function Pnb(a){a=a|0;Hob(a,25);return}function Qnb(a){a=a|0;Hob(a,24);return}function Rnb(a){a=a|0;Hob(a,23);return}function Snb(a){a=a|0;Hob(a,22);return}function Tnb(a){a=a|0;Hob(a,21);return}function Unb(a){a=a|0;Hob(a,20);return}function Vnb(a){a=a|0;Hob(a,19);return}function Wnb(a){a=a|0;Hob(a,18);return}function Xnb(a){a=a|0;Hob(a,17);return}function Ynb(a){a=a|0;Hob(a,16);return}function Znb(a){a=a|0;Hob(a,15);return}function _nb(a){a=a|0;Hob(a,14);return}function $nb(a){a=a|0;Hob(a,13);return}function aob(a){a=a|0;Hob(a,12);return}function bob(a){a=a|0;Hob(a,11);return}function cob(a){a=a|0;Hob(a,10);return}function dob(a){a=a|0;a=mla(84)|0;tOa(a);return a|0}function eob(a){a=a|0;a=mla(44)|0;Bgb(a);return a|0}function fob(a){a=a|0;a=mla(44)|0;Cgb(a);return a|0}function gob(a){a=a|0;Fha(a+4|0);return}function hob(a){a=a|0;a=a+4|0;c[a>>2]=(c[a>>2]|0)+1;return}function iob(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function job(a){a=a|0;q5a(a);return}function kob(a){a=a|0;return Eu(a)|0}function lob(a){a=a|0;c[a>>2]=50748;qQa(a+4|0);return}function mob(){var a=0;a=mla(48)|0;C7a(a,1);return a|0}function nob(a){a=a|0;a=mla(196)|0;GYa(a);return a|0}function oob(a){a=a|0;return ((a|0)==1?32:(a|0)==2?64:-1)|0}function pob(a){a=a|0;return a+20|0}function qob(a,b){a=a|0;b=b|0;b=U4(a,b,10,-2147483648,0)|0;P()|0;return b|0}function rob(a){a=a|0;if(!a)a=1;else a=(c[a>>2]|0)==0&1;return a|0}function sob(a){a=a|0;z1a(a);RCb(a);return}function tob(){c[36919]=0;c[36918]=50044;a[147684]=0;c[36920]=30160;return}function uob(a){a=a|0;return (c[a+20>>2]|0)-(c[a+16>>2]|0)>>2|0}function vob(a){a=a|0;Bhb(a+24|0);return}function wob(a){a=a|0;gcb(a);return}function xob(a){a=a|0;Hob(a,9);return}function yob(a){a=a|0;Hob(a,8);return}function zob(a){a=a|0;Hob(a,7);return}function Aob(a){a=a|0;Hob(a,6);return}function Bob(a){a=a|0;Hob(a,5);return}function Cob(a){a=a|0;Hob(a,4);return}function Dob(a){a=a|0;Hob(a,3);return}function Eob(a){a=a|0;Hob(a,2);return}function Fob(a){a=a|0;Hob(a,1);return}function Gob(a){a=a|0;a=mla(44)|0;Xgb(a);return a|0}function Hob(a,b){a=a|0;b=b|0;c[a>>2]=b;c[a+4>>2]=0;return}function Iob(a){a=a|0;a=a+4|0;c[a>>2]=c[a>>2]&-177|128;return}function Job(a){a=a|0;c[a>>2]=50728;qQa(a+4|0);return}function Kob(a){a=a|0;return (c[a+8>>2]|0)==(c[a+4>>2]|0)|0}function Lob(a){a=a|0;xob(a);return}function Mob(a){a=a|0;yob(a);return}function Nob(a){a=a|0;Bhb(a+24|0);return}function Oob(a){a=a|0;Ym(150620,a)|0;return}function Pob(a){a=a|0;esb(a);return a|0}function Qob(a){a=a|0;a=mla(204)|0;uGa(a);return a|0}function Rob(a){a=a|0;Ena(a);return}function Sob(a){a=a|0;zna(a);return}function Tob(a){a=a|0;k7(a);return}function Uob(a){a=a|0;a=a+4|0;c[a>>2]=c[a>>2]&-2049;return}function Vob(a){a=a|0;Qcb(a);return}function Wob(){c[36931]=0;c[36930]=50356;return}function Xob(){c[36933]=0;c[36932]=50404;return}function Yob(a){a=a|0;return _xb(a)|0}function Zob(a,b){a=a|0;b=b|0;return a>>>(b&31)|a<<(0-b&31)|0}function _ob(a){a=a|0;return (c[a+32>>2]|0)-(c[a+28>>2]|0)>>2|0}function $ob(a){a=a|0;Xnb(a);return}function apb(a,b){a=a|0;b=b|0;c[a+124>>2]=c[b>>2];return}function bpb(a){a=a|0;Ynb(a);return}function cpb(a){a=a|0;sgb(a);RCb(a);return}function dpb(a){a=a|0;yib(a);return}function epb(a){a=a|0;a=mla(68)|0;$Ka(a);return a|0}function fpb(a){a=a|0;a=mla(88)|0;Jpa(a);return a|0}function gpb(a){a=a|0;a=mla(56)|0;D0a(a);return a|0}function hpb(a,b){a=a|0;b=b|0;c[a+36>>2]=b;return}function ipb(a,b,c){a=a|0;b=b|0;c=c|0;return CD(a,b,c)|0}function jpb(a,b,c){a=a|0;b=b|0;c=c|0;return Gb[a&255](b|0,c|0)|0}function kpb(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;N(20)}function lpb(a,b,c){a=a|0;b=b|0;c=c|0;return Ku(0,a,b,(c|0)==0?149772:c)|0}function mpb(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function npb(a){a=a|0;a=a+4|0;c[a>>2]=c[a>>2]&-177|32;return}function opb(){Mib();return}function ppb(){c[36925]=0;c[36924]=50308;return}function qpb(a,b){a=a|0;b=b|0;return a<<(b&31)|a>>>(0-b&31)|0}function rpb(a){a=a|0;Znb(a);return}function spb(b){b=b|0;a[b+53>>0]=1;return}function tpb(a){a=a|0;return ((c[a>>2]|0)==22?a:0)|0}function upb(){var a=0;a=mla(60)|0;HQa(a,1);return a|0}function vpb(a){a=a|0;tdb(a);RCb(a);return}function wpb(b,c){b=b|0;c=c|0;a[b+73>>0]=c&1;return}function xpb(a){a=a|0;Wja(a);return}function ypb(a){a=a|0;$ja(a);return}function zpb(a){a=a|0;aka(a);return}function Apb(a){a=a|0;MVa(a);return}function Bpb(a){a=a|0;fHa(a);return}function Cpb(a){a=a|0;a=a+4|0;c[a>>2]=c[a>>2]|2048;return}function Dpb(a){a=a|0;return yfb(a)|0}function Epb(){SEa(150620,10)|0;return}function Fpb(a,b,c){a=a|0;b=b|0;c=c|0;return}function Gpb(b){b=b|0;KRa(b);c[b>>2]=41076;a[b+16>>0]=0;return}function Hpb(a){a=a|0;KRa(a);c[a>>2]=41276;return}function Ipb(){var a=0;a=mla(72)|0;rxa(a,0);return a|0}function Jpb(b){b=b|0;a[b+104>>0]=0;return}function Kpb(a){a=a|0;a=mla(116)|0;iRa(a);return a|0}function Lpb(a){a=a|0;a=mla(120)|0;z9(a);return a|0}function Mpb(a){a=a|0;a=a+4|0;c[a>>2]=c[a>>2]&-75|8;return}function Npb(a){a=a|0;a=a+4|0;c[a>>2]=c[a>>2]&-75|2;return}function Opb(a,b){a=a|0;b=b|0;return (yda(a,b)|0)^1|0}function Ppb(a){a=a|0;return Kvb(a)|0}function Qpb(a){a=a|0;c[a+4>>2]=c[(c[a+12>>2]|0)+4>>2];return}function Rpb(a){a=a|0;RDa(a);RCb(a);return}function Spb(a){a=a|0;c[a>>2]=43540;return}function Tpb(a){a=a|0;Knb(a);return}function Upb(a){a=a|0;a=mla(44)|0;bib(a);return a|0}function Vpb(a){a=a|0;return ((c[a>>2]|0)==11?a:0)|0}function Wpb(a){a=a|0;return ((c[a>>2]|0)==10?a:0)|0}function Xpb(a){a=a|0;SZa(a+4|0);return}function Ypb(a){a=a|0;return es(a,12,4)|0}function Zpb(a){a=a|0;return 34832}function _pb(a){a=a|0;return TOa(+(a>>>0))|0}function $pb(a){a=a|0;c[a+144>>2]=c[a+140>>2];return}function aqb(a){a=a|0;return (a+-25|0)>>>0<25|0}function bqb(a){a=a|0;if(a>>>0>4294963200){c[37419]=0-a;a=-1}return a|0}function cqb(){IWa(150620,54623)|0;return}function dqb(a){a=a|0;q4a(a);RCb(a);return}function eqb(){var a=0;a=mla(48)|0;C7a(a,0);return a|0}function fqb(a){a=a|0;Lnb(a);return}function gqb(a){a=a|0;Mnb(a);return}function hqb(a){a=a|0;Nnb(a);return}function iqb(a){a=a|0;return ((c[a>>2]|0)==9?a:0)|0}function jqb(a){a=a|0;return ((c[a>>2]|0)==8?a:0)|0}function kqb(){c[36963]=0;c[36962]=49648;return}function lqb(){c[36961]=0;c[36960]=49592;return}function mqb(){c[36959]=0;c[36958]=49536;return}function nqb(){c[36957]=0;c[36956]=49480;return}function oqb(a){a=a|0;return 2}function pqb(a){a=a|0;return (WCb(a)|0)==0|0}function qqb(b){b=b|0;a[b+27>>0]=1;return}function rqb(a){a=a|0;$lb(a);return}function sqb(a){a=a|0;mjb(a);return}function tqb(a){a=a|0;Wna(a);return}function uqb(a){a=a|0;I5a(a);return}function vqb(a){a=a|0;Inb(a);return}function wqb(a){a=a|0;Fnb(a);return}function xqb(a){a=a|0;Gnb(a);return}function yqb(a){a=a|0;return ((c[a>>2]|0)==17?a:0)|0}function zqb(a){a=a|0;return ((c[a>>2]|0)==19?a:0)|0}function Aqb(a){a=a|0;return ((c[a>>2]|0)==16?a:0)|0}function Bqb(a,b){a=a|0;b=b|0;c[a>>2]=b;c[a+16>>2]=1;return}function Cqb(a){a=a|0;esb(a);return}function Dqb(a){a=a|0;h7a(a);RCb(a);return}function Eqb(a){a=a|0;Llb(a);RCb(a);return}function Fqb(a){a=a|0;bFa(a);RCb(a);return}function Gqb(a,b){a=a|0;b=b|0;return (0-b|0)!=(a|0)|0}function Hqb(a){a=a|0;Nrb(a);return}function Iqb(a){a=a|0;Vdb(a,4,1);return}function Jqb(a){a=a|0;return ((c[a>>2]|0)==5?a:0)|0}function Kqb(a){a=a|0;return ((c[a>>2]|0)==15?a:0)|0}function Lqb(a){a=a|0;return ((c[a>>2]|0)==13?a:0)|0}function Mqb(a){a=a|0;return ((c[a>>2]|0)==14?a:0)|0}function Nqb(b,c){b=b|0;c=c|0;a[b>>0]=c;return}function Oqb(a,b,c){a=a|0;b=b|0;c=+c;return Fb[a&1](b|0,+c)|0}function Pqb(a){a=a|0;Jnb(a);return}function Qqb(a){a=a|0;return ((c[a>>2]|0)==4?a:0)|0}function Rqb(a){a=a|0;return ((c[a>>2]|0)==1?a:0)|0}function Sqb(a){a=a|0;return ((c[a>>2]|0)==12?a:0)|0}function Tqb(a){a=a|0;return ((c[a>>2]|0)==18?a:0)|0}function Uqb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;N(8);return 0}function Vqb(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function Wqb(a,b,c){a=a|0;b=b|0;c=c|0;za(a|0,b|0,c|0)}function Xqb(a){a=a|0;Fmb(a,0,2147483647);return}function Yqb(){if(!(a[147480]|0))mlb(147480)|0;return}function Zqb(a,b){a=a|0;b=b|0;return a<<24>>24==b<<24>>24|0}function _qb(a){a=a|0;_na(a);c[a>>2]=3;return a|0}function $qb(a){a=a|0;Hnb(a);return}function arb(a){a=a|0;exa(a);RCb(a);return}function brb(a){a=a|0;Wlb(a);RCb(a);return}function crb(){var a=0;a=mla(60)|0;HQa(a,0);return a|0}function drb(){ma(81972,81381,522,112970)}function erb(a,b){a=a|0;b=b|0;return c[a+(b<<2)>>2]|0}function frb(a){a=a|0;FHa(a);return}function grb(a){a=a|0;Mzb(a);return}function hrb(a){a=a|0;return ((c[a>>2]|0)==3?a:0)|0}function irb(a){a=+a;return (g[i>>2]=a,c[i>>2]|0)|0}function jrb(a,b,c){a=a|0;b=b|0;c=c|0;Sb[a&8191](b|0,c|0)}function krb(){if(!(a[148144]|0))mlb(148144)|0;return}function lrb(a){a=a|0;return gq(a,0)|0}function mrb(a){a=a|0;return Kp(a,0)|0}function nrb(a,b){a=a|0;b=b|0;Fmb(a,b,0);return}function orb(a){a=a|0;return ufb(a)|0}function prb(){JAb();lAb();return}function qrb(){if(!(a[148152]|0))mlb(148152)|0;return}function rrb(a,b){a=a|0;b=b|0;return eSa(WCb(a)|0,b)|0}function srb(a){a=a|0;a=mla(52)|0;XGa(a);return a|0}function trb(a){a=a|0;kNa(a);RCb(a);return}function urb(a){a=a|0;VEa(a);RCb(a);return}function vrb(a){a=a|0;_zb(a);return}function wrb(a){a=a|0;return ((c[a>>2]|0)==2?a:0)|0}function xrb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;N(7);return 0}function yrb(a,b){a=a|0;b=b|0;return lb(a|0,b|0)|0}function zrb(a){a=a|0;return (a|0)!=46496&((a|0)!=0&(a|0)!=149652)&1|0}function Arb(a){a=a|0;Hqb(a);return}function Brb(a){a=a|0;Vob(a+12|0);return}function Crb(a){a=a|0;sS(a);return}function Drb(){var a=0;a=mla(20)|0;jnb(a);return a|0}function Erb(a){a=a|0;jnb(a);c[a>>2]=43632;return}function Frb(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;return}function Grb(a){a=a|0;Vdb(a,8,1);return}function Hrb(a){a=a|0;Pub(a);RCb(a);return}function Irb(){c[36991]=0;c[36990]=49848;return}function Jrb(){c[36989]=0;c[36988]=49816;return}function Krb(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];return}function Lrb(a){a=a|0;kib(a)|0;return}function Mrb(a){a=a|0;a=mla(96)|0;kha(a);return a|0}function Nrb(a){a=a|0;Vob(a+4|0);return}function Orb(a){a=a|0;Xbb(a);c[a+4>>2]=6;return}function Prb(a){a=a|0;Wnb(a);return}function Qrb(a){a=a|0;return m6a(a)|0}function Rrb(a){a=a|0;fmb(a);RCb(a);return}function Srb(a){a=a|0;gmb(a);RCb(a);return}function Trb(a){a=a|0;RL(a);RCb(a);return}function Urb(a){a=a|0;hmb(a);RCb(a);return}function Vrb(a){a=a|0;imb(a);RCb(a);return}function Wrb(a){a=a|0;c[a+52>>2]=c[a+48>>2];return}function Xrb(a){a=a|0;Vob(a+8|0);return}function Yrb(a){a=a|0;return eCb(c[a>>2]|0)|0}function Zrb(a,b){a=a|0;b=b|0;return -1}function _rb(){c[36917]=0;c[36916]=47912;return}function $rb(){c[36915]=0;c[36914]=47880;return}function asb(a){a=a|0;return gq(a,1)|0}function bsb(a){a=a|0;return Kp(a,1)|0}function csb(a,b){a=a|0;b=b|0;return 0}function dsb(a){a=a|0;a=mla(104)|0;dcb(a);return a|0}function esb(a){a=a|0;Tnb(a);return}function fsb(a){a=a|0;KRa(a);c[a>>2]=44352;return}function gsb(a){a=a|0;Cva(a);return}function hsb(a){a=a|0;_u(a);return}function isb(a){a=+a;return a-+v(a)!=.5?+Bxb(a):+Bxb(a/2.0)*2.0}function jsb(a,b){a=a|0;b=b|0;return Mjb(a,b)|0}function ksb(a){a=a|0;a=mla(36)|0;Ofb(a);return a|0}function lsb(a){a=a|0;return eCb(c[a+24>>2]|0)|0}function msb(a){a=a|0;return kMa(a)|0}function nsb(a){a=a|0;WEa(a);RCb(a);return}function osb(a){a=a|0;omb(a);RCb(a);return}function psb(a){a=a|0;pmb(a);RCb(a);return}function qsb(a){a=a|0;KRa(a);c[a>>2]=41476;return}function rsb(a){a=a|0;jnb(a);c[a>>2]=43712;return}function ssb(a){a=a|0;yga(a);return}function tsb(a){a=a|0;g9(a);return}function usb(a,b,c){a=a|0;b=b|0;c=c|0;return Z0(a,b,c)|0}function vsb(){sfb(148252);return}function wsb(){c[36923]=0;c[36922]=50240;return}function xsb(a,b){a=a|0;b=b|0;return (Cla(a,b)|0)==0|0}function ysb(a){a=+a;return TOa(a)|0}function zsb(a){a=a|0;egb(a);Cub(a+24|0);return}function Asb(a){a=a|0;KRa(a);c[a>>2]=43752;return}function Bsb(a){a=a|0;jnb(a);c[a>>2]=43672;return}function Csb(){yib(149260);return}function Dsb(a){a=a|0;if(!a)return;else wea()}function Esb(a,b){a=a|0;b=b|0;return b-a>>2|0}function Fsb(b,c){b=b|0;c=c|0;a[b>>0]=c;return}function Gsb(a,b){a=a|0;b=b|0;c[a>>2]=b+152;return}function Hsb(a){a=a|0;a=mla(44)|0;rkb(a);return a|0}function Isb(a){a=a|0;tmb(a);RCb(a);return}function Jsb(a){a=a|0;umb(a);RCb(a);return}function Ksb(a){a=a|0;t2a(a);RCb(a);return}function Lsb(a){a=a|0;KRa(a);c[a>>2]=42676;return}function Msb(){ma(141129,75265,168,75415)}function Nsb(a){a=a|0;c[a+4096>>2]=a;return}function Osb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;N(19)}function Psb(){yib(148240);return}function Qsb(){yib(148228);return}function Rsb(){yib(148216);return}function Ssb(){yib(148204);return}function Tsb(){yib(148192);return}function Usb(){yib(148180);return}function Vsb(a){a=a|0;return a+-12|0}function Wsb(a){a=a|0;return d2a(a)|0}function Xsb(a){a=a|0;Fha(a+8|0);return}function Ysb(a){a=a|0;Cub(a);Cub(a+4|0);return}function Zsb(a,b){a=a|0;b=b|0;m2a(a,b,0);return}function _sb(a){a=a|0;return (a&7|0)==0|0}function $sb(a){a=a|0;return (a&1|0)==0|0}function atb(a){a=a|0;return (a&3|0)==0|0}function btb(b){b=b|0;a[b+52>>0]=1;return}function ctb(){ma(82013,81381,518,113008)}function dtb(a){a=a|0;KRa(a);c[a>>2]=44032;return}function etb(a){a=a|0;tu(a);return}function ftb(a){a=a|0;iHa(a);return}function gtb(a){a=a|0;eub(a);return}function htb(a){a=a|0;c[a+4096>>2]=0;return}function itb(a){a=a|0;return (((a|32)+-97|0)>>>0<6|(rCb(a)|0)!=0)&1|0}function jtb(){var a=0;a=c[37940]|0;c[37940]=a+0;return a|0}function ktb(a){a=a|0;Ska(a);return}function ltb(a){a=a|0;uxb(a);RCb(a);return}function mtb(){tob();return}function ntb(a){a=a|0;t2a(a);return}function otb(b){b=b|0;a[b+26>>0]=1;return}function ptb(a){a=a|0;GWa(a);RCb(a);return}function qtb(a){a=a|0;BJa(a);RCb(a);return}function rtb(a){a=a|0;zmb(a);RCb(a);return}function stb(a){a=a|0;CHa(a);RCb(a);return}function ttb(a){a=a|0;Amb(a);RCb(a);return}function utb(a){a=a|0;pPa(a);RCb(a);return}function vtb(a,b,c){a=a|0;b=b|0;c=c|0;eA(a,b,c);return a|0}function wtb(a,b){a=a|0;b=b|0;return mb(a|0,b|0)|0}function xtb(a,b){a=a|0;b=b|0;return Va(a|0,b|0)|0}function ytb(a){a=a|0;return Ekb(a)|0}function ztb(a){a=a|0;return ((a|0)>31?-1:-1>>>(32-a|0))|0}function Atb(a,b,c){a=a|0;b=b|0;c=c|0;return noa(a,b,c)|0}function Btb(){var a=0;a=c[12654]|0;c[12654]=a+0;return a|0}function Ctb(a){a=a|0;s1(a);RCb(a);return}function Dtb(a){a=a|0;return a+4|0}function Etb(a){a=a|0;return (WCb(c[a+20>>2]|0)|0)!=-1|0}function Ftb(a,b){a=a|0;b=b|0;c[a>>2]=b;return}function Gtb(a){a=a|0;KHa(a);RCb(a);return}function Htb(a){a=a|0;Vob(a);return}function Itb(a){a=a|0;Qmb(a);RCb(a);return}function Jtb(a){a=a|0;bGa(a);RCb(a);return}function Ktb(a){a=a|0;Fgb(a);RCb(a);return}function Ltb(a,b){a=a|0;b=b|0;return b-a|0}function Mtb(){xob(149344);return}function Ntb(a){a=a|0;Qpb(a);return}function Otb(a){a=a|0;Zjb(a);return}function Ptb(a){a=a|0;Fla(a);return}function Qtb(a){a=a|0;dmb(a);return}function Rtb(a){a=a|0;Crb(a);return}function Stb(a){a=a|0;return qc(a)|0}function Ttb(a){a=a|0;sib(a);RCb(a);return}function Utb(a){a=a|0;tib(a);RCb(a);return}function Vtb(a){a=a|0;KRa(a);c[a>>2]=42996;return}function Wtb(a){a=a|0;n6a(a);RCb(a);return}function Xtb(a){a=a|0;$mb(a);RCb(a);return}function Ytb(a){a=a|0;NAb(a);RCb(a);return}function Ztb(a){a=a|0;oYa(a);RCb(a);return}function _tb(a){a=a|0;$7(a);RCb(a);return}function $tb(){vi();return}function aub(){return 214748364}function bub(a){a=a|0;lob(a);RCb(a);return}function cub(a,b){a=a|0;b=b|0;return (a|0)!=(b|0)|0}function dub(a,b){a=a|0;b=b|0;return (a|0)==(b|0)|0}function eub(a){a=a|0;c[a+4>>2]=c[a+24>>2];return}function fub(a){a=a|0;return (a|0)!=-1|0}function gub(a){a=a|0;llb(a);return}function hub(a){a=a|0;JXa(a);RCb(a);return}function iub(a){a=a|0;G_a(a);RCb(a);return}function jub(a,b){a=a|0;b=b|0;return (~b&a|0)==0|0}function kub(a){a=a|0;_jb(a);RCb(a);return}function lub(){c[37289]=0;c[37290]=0;c[37291]=0;return}function mub(){c[37286]=0;c[37287]=0;c[37288]=0;return}function nub(){OKa();return}function oub(){PKa();return}function pub(b){b=b|0;a[b+22>>0]=0;return}function qub(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;N(6);return 0}function rub(a){a=a|0;return (a?31-(M(a^a-1)|0)|0:32)|0}function sub(a){a=a|0;ma(141129,54662,243,51221);return 0}function tub(a){a=a|0;c[a+4>>2]=-1;return}function uub(a){a=a|0;igb(a);return}function vub(a){a=a|0;return (a|0)!=0&(a|0)!=6|0}function wub(a,b){a=a|0;b=b|0;return Eb[a&511](b|0)|0}function xub(a,b,c){a=a|0;b=b|0;c=c|0;return usb(a,b,c)|0}function yub(a){a=a|0;pa(a|0)|0;wea()}function zub(a){a=a|0;return c[a+12>>2]|0}function Aub(){return 107374182}function Bub(a,b){a=a|0;b=b|0;return b<<24>>24|0}function Cub(a){a=a|0;c[a>>2]=0;hCb(a);return}function Dub(a){a=a|0;ETa(a+16|0);return}function Eub(a){a=a|0;gQ(a);return}function Fub(a){a=a|0;Ska(a);RCb(a);return}function Gub(a){a=a|0;Neb(a);RCb(a);return}function Hub(a){a=a|0;Job(a);RCb(a);return}function Iub(a){a=a|0;return c[a+8>>2]|0}function Jub(a){a=a|0;return ((a|0)<10?48:87)+a&255|0}function Kub(a){a=a|0;rnb(a);RCb(a);return}function Lub(a){a=a|0;c[a>>2]=(c[a>>2]|0)+1;return}function Mub(a){a=a|0;return (a|0)==30|0}function Nub(a){a=a|0;return (a|0)==24|0}function Oub(a){a=a|0;return qb(a|0)|0}function Pub(a){a=a|0;uxb(a);return}function Qub(b){b=b|0;return a[b+9>>0]|0}function Rub(b){b=b|0;return a[b+8>>0]|0}function Sub(a){a=a|0;ma(141129,103218,110,103338)}function Tub(){ma(141129,75265,170,75433)}function Uub(){ma(141129,75265,169,98526)}function Vub(a){a=a|0;return -1}function Wub(){return 268435455}function Xub(a){a=a|0;return WCb(c[a+4>>2]|0)|0}function Yub(a){a=a|0;return (a&2|0)!=0|0}function Zub(a){a=a|0;a8(a);RCb(a);return}function _ub(a){a=a|0;gFa(a);RCb(a);return}function $ub(a){a=a|0;Hcb(a);RCb(a);return}function avb(a){a=a|0;qlb(a);RCb(a);return}function bvb(a){a=a|0;igb(a);return}function cvb(a){a=a|0;return (a|0)==22|0}function dvb(a){a=a|0;return (a|0)==29|0}function evb(a){a=a|0;return (a|0)==28|0}function fvb(a){a=a|0;return (a|0)==27|0}function gvb(a){a=a|0;Smb(a);RCb(a);return}function hvb(a){a=a|0;return jb(a|0)|0}function ivb(a){a=a|0;lcb(a);return}function jvb(){ma(141129,75265,171,75445)}function kvb(a){a=a|0;return (a|0)==32|0}function lvb(a){a=a|0;return (a|0)==35|0}function mvb(a){a=a|0;return (a|0)==34|0}function nvb(a){a=a|0;return (a|0)==26|0}function ovb(a){a=a|0;return (a|0)==25|0}function pvb(a){a=a|0;if(zrb(a)|0)wg(a);return}function qvb(a){a=a|0;iob(a);return}function rvb(a){a=a|0;Dnb(a);RCb(a);return}function svb(a){a=a|0;c1a(a);RCb(a);return}function tvb(a){a=a|0;Xna(a);RCb(a);return}function uvb(b){b=b|0;a[b+20>>0]=1;return}function vvb(a){a=a|0;return kb(a|0)|0}function wvb(){m2a(149108,139995,1);return}function xvb(){m2a(149104,140119,1);return}function yvb(){m2a(149088,140218,1);return}function zvb(){m2a(149076,134137,1);return}function Avb(){m2a(149072,112435,1);return}function Bvb(){m2a(149068,111741,1);return}function Cvb(){m2a(149064,139997,1);return}function Dvb(){m2a(149048,139929,1);return}function Evb(){m2a(149040,151778,1);return}function Fvb(){m2a(148996,140044,1);return}function Gvb(){m2a(148992,140112,1);return}function Hvb(){m2a(148988,139947,1);return}function Ivb(){m2a(148984,140107,1);return}function Jvb(a){a=a|0;return (a&16|0)!=0|0}function Kvb(a){a=a|0;return (a+-1|0)>>>0<2|0}function Lvb(b){b=b|0;a[b+40>>0]=1;return}function Mvb(a){a=a|0;return (a|0)==11|0}function Nvb(a){a=a|0;return (a|0)==31|0}function Ovb(a){a=a|0;return (a|0)==10|0}function Pvb(a){a=a|0;return (a|0)==23|0}function Qvb(a,b){a=a|0;b=b|0;yb=a;zb=b}function Rvb(){m2a(148980,140022,1);return}function Svb(){m2a(148976,140066,1);return}function Tvb(){m2a(148972,140032,1);return}function Uvb(){m2a(148968,139965,1);return}function Vvb(){m2a(148964,140041,1);return}function Wvb(){m2a(148960,140035,1);return}function Xvb(){m2a(148956,139963,1);return}function Yvb(){m2a(148952,139999,1);return}function Zvb(){m2a(148948,140069,1);return}function _vb(){m2a(148944,140027,1);return}function $vb(){m2a(148940,139949,1);return}function awb(){m2a(148936,140074,1);return}function bwb(){m2a(148932,140051,1);return}function cwb(){m2a(148928,140083,1);return}function dwb(){m2a(148900,126637,1);return}function ewb(){m2a(148872,135443,1);return}function fwb(){m2a(148868,135409,1);return}function gwb(){m2a(148856,134449,1);return}function hwb(){m2a(148848,134443,1);return}function iwb(){m2a(148844,100141,1);return}function jwb(){m2a(148840,134206,1);return}function kwb(){m2a(148836,125122,1);return}function lwb(){m2a(149468,118626,1);return}function mwb(){m2a(148816,134170,1);return}function nwb(){uj(149112,74434);return}function owb(){m2a(148812,134435,1);return}function pwb(){m2a(149100,74560,1);return}function qwb(){m2a(149096,74567,1);return}function rwb(){m2a(149092,88672,1);return}function swb(){m2a(149084,74573,1);return}function twb(){m2a(149080,74577,1);return}function uwb(){m2a(148808,134540,1);return}function vwb(){m2a(149060,74585,1);return}function wwb(){m2a(149056,74587,1);return}function xwb(){m2a(149052,98321,1);return}function ywb(){m2a(149044,74589,1);return}function zwb(){m2a(149036,74598,1);return}function Awb(){m2a(149032,74601,1);return}function Bwb(){m2a(149028,74609,1);return}function Cwb(){m2a(149024,74617,1);return}function Dwb(){m2a(148804,134521,1);return}function Ewb(){m2a(149020,74625,1);return}function Fwb(){m2a(149016,74632,1);return}function Gwb(){m2a(149012,74640,1);return}function Hwb(){m2a(149008,74647,1);return}function Iwb(){m2a(149004,74654,1);return}function Jwb(){m2a(148640,74743,1);return}function Kwb(){m2a(148636,72264,1);return}function Lwb(){m2a(148632,72274,1);return}function Mwb(){m2a(148624,72293,1);return}function Nwb(a){a=a|0;return (a|0)==-1|0}function Owb(a){a=a|0;return 2147483647}function Pwb(a,b){a=a|0;b=b|0;c[a>>2]=b;return}function Qwb(a){a=a|0;ocb(a);RCb(a);return}function Rwb(a){a=a|0;Sjb(a);RCb(a);return}function Swb(a){a=a|0;return (a|0)==33|0}function Twb(a,b){a=a|0;b=+b;return Db[a&1](+b)|0}function Uwb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;N(18)}function Vwb(a){a=a|0;return MCb(a|0)|0}function Wwb(){m2a(148796,134509,1);return}function Xwb(){m2a(148436,135434,1);return}function Ywb(){m2a(148924,74664,1);return}function Zwb(){m2a(148920,74677,1);return}function _wb(){m2a(148916,74690,1);return}function $wb(){m2a(148912,74703,1);return}function axb(){m2a(148908,74718,1);return}function bxb(){m2a(148904,74733,1);return}function cxb(){m2a(148432,135443,1);return}function dxb(){m2a(148896,74743,1);return}function exb(){m2a(148892,74754,1);return}function fxb(){m2a(148888,74766,1);return}function gxb(){m2a(148884,74780,1);return}function hxb(){m2a(148880,74793,1);return}function ixb(){m2a(148876,74807,1);return}function jxb(){m2a(148864,88676,1);return}function kxb(){m2a(148788,134186,1);return}function lxb(){m2a(148428,134157,1);return}function mxb(){m2a(148860,74822,1);return}function nxb(){m2a(148852,74829,1);return}function oxb(){m2a(148832,74838,1);return}function pxb(){m2a(148828,88668,1);return}function qxb(){m2a(148824,88662,1);return}function rxb(){m2a(148424,134166,1);return}function sxb(){m2a(148820,74842,1);return}function txb(){m2a(149e3,74660,1);return}function uxb(a){a=a|0;lob(a);return}function vxb(){return 357913941}function wxb(){return 536870911}function xxb(b){b=b|0;a[b+1>>0]=0;return}function yxb(a){a=a|0;return (a+-3|0)>>>0<2|0}function zxb(a){a=a|0;return (a|0)==9|0}function Axb(a){a=a|0;return (a|0)==8|0}function Bxb(a){a=+a;return a>=0.0?+v(a+.5):+I(a-.5)}function Cxb(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function Dxb(){m2a(148800,74848,1);return}function Exb(){m2a(148776,74149,1);return}function Fxb(){m2a(148772,74158,1);return}function Gxb(){m2a(148792,88680,1);return}function Hxb(){m2a(148768,74179,1);return}function Ixb(){m2a(148764,74200,1);return}function Jxb(){m2a(149464,118636,1);return}function Kxb(){m2a(148784,74860,1);return}function Lxb(){m2a(148760,74219,1);return}function Mxb(){return ((c[c[11771]>>2]|0)==0?1:4)|0}function Nxb(a){a=a|0;c[a>>2]=47280;return}function Oxb(){return 178956970}function Pxb(a){a=a|0;return g7a(a)|0}function Qxb(a){a=a|0;mib(a);return}function Rxb(a){a=a|0;wob(a);RCb(a);return}function Sxb(a){a=a|0;Elb(a);RCb(a);return}function Txb(a){a=a|0;return (a|0)==17|0}function Uxb(a){a=a|0;return (a|0)==19|0}function Vxb(a){a=a|0;return (a|0)==16|0}function Wxb(a,b){a=a|0;b=b|0;Rb[a&1023](b|0)}function Xxb(a){a=a|0;return (a&1|0)!=0|0}function Yxb(a){a=a|0;return (a|0)==15|0}function Zxb(a){a=a|0;return (a|0)==13|0}function _xb(a){a=a|0;return (a|0)==14|0}function $xb(){m2a(148616,108118,1);return}function ayb(){m2a(148780,74866,1);return}function byb(){m2a(148584,112035,1);return}function cyb(){m2a(148580,112008,1);return}function dyb(){m2a(148576,112013,1);return}function eyb(){m2a(148572,112004,1);return}function fyb(){m2a(148756,74238,1);return}function gyb(){m2a(148512,112157,1);return}function hyb(){m2a(148508,112153,1);return}function iyb(){m2a(148420,98519,1);return}function jyb(){m2a(148752,71816,1);return}function kyb(){m2a(148748,71832,1);return}function lyb(){m2a(148744,71848,1);return}function myb(){m2a(148740,71864,1);return}function nyb(){m2a(148736,71880,1);return}function oyb(){m2a(148732,71895,1);return}function pyb(){m2a(148728,71912,1);return}function qyb(){m2a(148724,71929,1);return}function ryb(){m2a(148720,71948,1);return}function syb(){m2a(148716,71967,1);return}function tyb(){m2a(148712,71990,1);return}function uyb(){m2a(148708,72013,1);return}function vyb(){m2a(148704,72035,1);return}function wyb(){m2a(148700,72054,1);return}function xyb(){m2a(148696,72070,1);return}function yyb(){m2a(148692,72086,1);return}function zyb(){m2a(148688,72102,1);return}function Ayb(){m2a(148684,72118,1);return}function Byb(){m2a(148680,72136,1);return}function Cyb(){m2a(148676,72154,1);return}function Dyb(){m2a(148672,72169,1);return}function Eyb(){m2a(148668,72184,1);return}function Fyb(){m2a(148664,72199,1);return}function Gyb(){m2a(148660,72214,1);return}function Hyb(){m2a(148656,72223,1);return}function Iyb(){m2a(148652,72232,1);return}function Jyb(){m2a(148648,72242,1);return}function Kyb(){m2a(148644,72253,1);return}function Lyb(){m2a(148628,72283,1);return}function Myb(a){a=a|0;Xjb(a);RCb(a);return}function Nyb(a){a=a|0;return (a|0)==4|0}function Oyb(a){a=a|0;return (a|0)==12|0}function Pyb(a){a=a|0;return (a|0)==20|0}function Qyb(a){a=a|0;return (a|0)==18|0}function Ryb(a){a=a|0;return a+12|0}function Syb(){IAb();return}function Tyb(a,b){a=a|0;b=b|0;return m7a(a,b)|0}function Uyb(){m2a(148620,72304,1);return}function Vyb(){m2a(148612,88684,1);return}function Wyb(){m2a(148608,72314,1);return}function Xyb(){m2a(148604,72321,1);return}function Yyb(){m2a(148600,72332,1);return}function Zyb(){m2a(148596,72340,1);return}function _yb(){m2a(148592,72349,1);return}function $yb(){m2a(148588,72367,1);return}function azb(){m2a(148568,72371,1);return}function bzb(){m2a(148564,72383,1);return}function czb(){m2a(148560,72392,1);return}function dzb(){m2a(148556,72401,1);return}function ezb(){m2a(148552,72410,1);return}function fzb(){m2a(148548,72419,1);return}function gzb(){m2a(148544,72433,1);return}function hzb(){m2a(148540,72446,1);return}function izb(){m2a(148536,72458,1);return}function jzb(){m2a(148532,72469,1);return}function kzb(){m2a(148528,72483,1);return}function lzb(){m2a(148524,72496,1);return}function mzb(){m2a(148520,72508,1);return}function nzb(){m2a(148516,72519,1);return}function ozb(){m2a(148504,72527,1);return}function pzb(){m2a(148500,72536,1);return}function qzb(){m2a(148496,72543,1);return}function rzb(){m2a(148492,72549,1);return}function szb(){m2a(148488,72554,1);return}function tzb(){m2a(148484,72559,1);return}function uzb(){m2a(148480,72579,1);return}function vzb(){m2a(148476,72589,1);return}function wzb(){m2a(148472,72601,1);return}function xzb(){m2a(148468,72614,1);return}function yzb(){m2a(148464,72627,1);return}function zzb(){m2a(148460,72639,1);return}function Azb(){m2a(148456,72651,1);return}function Bzb(){m2a(148452,72662,1);return}function Czb(){m2a(148448,72673,1);return}function Dzb(){m2a(148444,72684,1);return}function Ezb(a){a=a|0;return 4}function Fzb(a,b){a=a|0;b=b|0;return b|0}function Gzb(a){a=a|0;return (a|0)==21|0}function Hzb(){m2a(148440,72694,1);return}function Izb(){m2a(148176,50984,1);return}function Jzb(){m2a(148172,51056,1);return}function Kzb(){m2a(148168,51073,1);return}function Lzb(){m2a(148164,51088,1);return}function Mzb(a){a=a|0;c[a+4>>2]=0;return}function Nzb(a){a=a|0;lCb(a);RCb(a);return}function Ozb(a){a=a|0;return j2a(16,a)|0}function Pzb(){return (Xzb()|0)>0|0}function Qzb(a){a=a|0;return a&255|0}function Rzb(a){a=a|0;return 127}function Szb(a){a=a|0;return (a&8|0)!=0|0}function Tzb(a){a=a|0;return (a|1|0)==21|0}function Uzb(a,b){a=a|0;b=b|0;return +(+G4(a,b,2))}function Vzb(){Zsb(149472,118566);return}function Wzb(){m2a(148160,51094,1);return}function Xzb(){return (Aa()|0)&1|0}function Yzb(a){a=a|0;return $gb(a)|0}function Zzb(a){a=a|0;return y2(a)|0}function _zb(a){a=a|0;c[a+4>>2]=6;return}function $zb(a,b){a=a|0;b=b|0;return +(+G4(a,b,0))}function aAb(a,b){a=a|0;b=b|0;return +(+G4(a,b,1))}function bAb(){Zsb(149476,118581);return}function cAb(){Zsb(149480,118592);return}function dAb(){Zsb(149484,118603);return}function eAb(){Zsb(149372,110194);return}function fAb(){Zsb(149488,118616);return}function gAb(){Zsb(149368,110203);return}function hAb(){Zsb(149324,103614);return}function iAb(){Zsb(149496,134374);return}function jAb(){Zsb(149364,110212);return}function kAb(){Zsb(149328,103625);return}function lAb(){Zsb(149248,134503);return}function mAb(){Zsb(149240,84658);return}function nAb(){Zsb(149236,84666);return}function oAb(a,b){a=a|0;b=b|0;return}function pAb(){Zsb(149232,84674);return}function qAb(){Zsb(149288,89121);return}function rAb(){Zsb(149228,84682);return}function sAb(){Zsb(149284,89130);return}function tAb(){Zsb(149224,84690);return}function uAb(){Zsb(149280,89139);return}function vAb(){Zsb(149220,84698);return}function wAb(){Zsb(149276,89148);return}function xAb(){Zsb(149216,84706);return}function yAb(a){a=a|0;return 138788}function zAb(a){a=a|0;return (a|0)==7|0}function AAb(a){a=a|0;return +(+g[a>>2])}function BAb(a){a=a|0;return +(+h[a>>3])}function CAb(a){a=a|0;Gmb(a);return}function DAb(a,b,c){a=a|0;b=b|0;c=c|0;N(5);return 0}function EAb(a){a=a|0;return $5(a,c[11771]|0)|0}function FAb(){Zsb(149492,134385);return}function GAb(){Zsb(149360,110221);return}function HAb(){Zsb(149332,103634);return}function IAb(){Zsb(149320,100141);return}function JAb(){Zsb(149244,134498);return}function KAb(a){a=a|0;return 138913}function LAb(a){a=a|0;return c[a>>2]|0}function MAb(a){a=a|0;return (a|0)==5|0}function NAb(a){a=a|0;lCb(a);return}function OAb(a,b){a=a|0;b=b|0;return +(+Uzb(a,b))}function PAb(){Zsb(149316,96710);return}function QAb(){Nia(149292);return}function RAb(){Zsb(149272,89157);return}function SAb(){Zsb(149252,86406);return}function TAb(){Zsb(149212,84714);return}function UAb(){EBb();return}function VAb(){Zsb(149648,134082);return}function WAb(){Zsb(149644,134087);return}function XAb(){Zsb(149640,134093);return}function YAb(){Zsb(149636,134102);return}function ZAb(){Zsb(149632,134106);return}function _Ab(){Zsb(149628,134126);return}function $Ab(){Zsb(149624,134134);return}function aBb(){Zsb(149620,134137);return}function bBb(){Zsb(149616,134142);return}function cBb(){Zsb(149612,134147);return}function dBb(){Zsb(149608,134157);return}function eBb(){Zsb(149604,134166);return}function fBb(){Zsb(149600,134170);return}function gBb(){Zsb(149596,134175);return}function hBb(){Zsb(149592,134180);return}function iBb(){Zsb(149588,134186);return}function jBb(){Zsb(149584,134192);return}function kBb(){Zsb(149580,134206);return}function lBb(){Zsb(149576,134211);return}function mBb(){Zsb(149572,134216);return}function nBb(){Zsb(149568,134222);return}function oBb(){Zsb(149564,134227);return}function pBb(){Zsb(149560,134233);return} -function fd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,2277,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2276,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,2278,b);fX(e,(Tfb(d)|0)+16|0);IW(e,2276,(Tfb(d)|0)+12|0);IW(e,2276,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,2279,b);IW(e,2276,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,2280,b);fX(e,(tfb(d)|0)+16|0);fX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,2281,b);IW(e,2276,(cfb(d)|0)+28|0);fX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,2282,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2276,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,2283,b);b=wdb(d)|0;IW(e,2276,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2276,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,2284,b);return}case 9:{e=a+16|0;IW(e,2285,b);IW(e,2276,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,2286,b);return}case 11:{e=a+16|0;IW(e,2287,b);IW(e,2276,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,2288,b);IW(e,2276,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,2289,b);IW(e,2276,(efb(d)|0)+28|0);IW(e,2276,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,2290,b);IW(e,2276,(ieb(d)|0)+24|0);IW(e,2276,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,2291,b);IW(e,2276,(hdb(d)|0)+24|0);IW(e,2276,(hdb(d)|0)+20|0);IW(e,2276,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,2292,b);IW(e,2276,(Ldb(d)|0)+20|0);IW(e,2276,(Ldb(d)|0)+16|0);IW(e,2276,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,2293,b);IW(e,2276,(Kdb(d)|0)+16|0);IW(e,2276,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,2294,b);IW(e,2276,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,2295,b);IW(e,2276,(zdb(d)|0)+20|0);IW(e,2276,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,2296,b);IW(e,2276,(ydb(d)|0)+12|0);IW(e,2276,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,2297,b);IW(e,2276,(gdb(d)|0)+16|0);IW(e,2276,(gdb(d)|0)+12|0);IW(e,2276,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,2298,b);IW(e,2276,(geb(d)|0)+16|0);IW(e,2276,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,2299,b);IW(e,2276,(Hdb(d)|0)+12|0);IW(e,2276,(Hdb(d)|0)+16|0);IW(e,2276,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,2300,b);return}case 34:{e=a+16|0;IW(e,2301,b);IW(e,2276,(Jdb(d)|0)+8|0);IW(e,2276,(Jdb(d)|0)+12|0);IW(e,2276,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,2302,b);IW(e,2276,(Idb(d)|0)+8|0);IW(e,2276,(Idb(d)|0)+12|0);IW(e,2276,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,2303,b);return}case 15:{e=a+16|0;IW(e,2304,b);IW(e,2276,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,2305,b);IW(e,2276,(Veb(d)|0)+16|0);IW(e,2276,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,2306,b);IW(e,2276,(Teb(d)|0)+16|0);IW(e,2276,(Teb(d)|0)+12|0);IW(e,2276,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,2307,b);IW(e,2276,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,2308,b);fX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,2309,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2276,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,2310,b);return}case 22:{IW(a+16|0,2311,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function gd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1372,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1371,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1373,b);kX(e,(Tfb(d)|0)+16|0);IW(e,1371,(Tfb(d)|0)+12|0);IW(e,1371,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1374,b);IW(e,1371,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1375,b);kX(e,(tfb(d)|0)+16|0);kX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1376,b);IW(e,1371,(cfb(d)|0)+28|0);kX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1377,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1371,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1378,b);b=wdb(d)|0;IW(e,1371,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1371,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1379,b);return}case 9:{e=a+16|0;IW(e,1380,b);IW(e,1371,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1381,b);return}case 11:{e=a+16|0;IW(e,1382,b);IW(e,1371,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1383,b);IW(e,1371,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1384,b);IW(e,1371,(efb(d)|0)+28|0);IW(e,1371,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1385,b);IW(e,1371,(ieb(d)|0)+24|0);IW(e,1371,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1386,b);IW(e,1371,(hdb(d)|0)+24|0);IW(e,1371,(hdb(d)|0)+20|0);IW(e,1371,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1387,b);IW(e,1371,(Ldb(d)|0)+20|0);IW(e,1371,(Ldb(d)|0)+16|0);IW(e,1371,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1388,b);IW(e,1371,(Kdb(d)|0)+16|0);IW(e,1371,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1389,b);IW(e,1371,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1390,b);IW(e,1371,(zdb(d)|0)+20|0);IW(e,1371,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1391,b);IW(e,1371,(ydb(d)|0)+12|0);IW(e,1371,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1392,b);IW(e,1371,(gdb(d)|0)+16|0);IW(e,1371,(gdb(d)|0)+12|0);IW(e,1371,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1393,b);IW(e,1371,(geb(d)|0)+16|0);IW(e,1371,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1394,b);IW(e,1371,(Hdb(d)|0)+12|0);IW(e,1371,(Hdb(d)|0)+16|0);IW(e,1371,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1395,b);return}case 34:{e=a+16|0;IW(e,1396,b);IW(e,1371,(Jdb(d)|0)+8|0);IW(e,1371,(Jdb(d)|0)+12|0);IW(e,1371,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1397,b);IW(e,1371,(Idb(d)|0)+8|0);IW(e,1371,(Idb(d)|0)+12|0);IW(e,1371,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1398,b);return}case 15:{e=a+16|0;IW(e,1399,b);IW(e,1371,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1400,b);IW(e,1371,(Veb(d)|0)+16|0);IW(e,1371,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1401,b);IW(e,1371,(Teb(d)|0)+16|0);IW(e,1371,(Teb(d)|0)+12|0);IW(e,1371,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1402,b);IW(e,1371,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1403,b);kX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1404,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1371,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1405,b);return}case 22:{IW(a+16|0,1406,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function hd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1332,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1329,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1333,b);pX(e,(Tfb(d)|0)+16|0);IW(e,1329,(Tfb(d)|0)+12|0);IW(e,1329,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1334,b);IW(e,1329,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1335,b);pX(e,(tfb(d)|0)+16|0);pX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1336,b);IW(e,1329,(cfb(d)|0)+28|0);pX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1337,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1329,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1338,b);b=wdb(d)|0;IW(e,1329,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1329,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1339,b);return}case 9:{e=a+16|0;IW(e,1340,b);IW(e,1329,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1341,b);return}case 11:{e=a+16|0;IW(e,1342,b);IW(e,1329,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1343,b);IW(e,1329,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1344,b);IW(e,1329,(efb(d)|0)+28|0);IW(e,1329,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1345,b);IW(e,1329,(ieb(d)|0)+24|0);IW(e,1329,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1346,b);IW(e,1329,(hdb(d)|0)+24|0);IW(e,1329,(hdb(d)|0)+20|0);IW(e,1329,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1347,b);IW(e,1329,(Ldb(d)|0)+20|0);IW(e,1329,(Ldb(d)|0)+16|0);IW(e,1329,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1348,b);IW(e,1329,(Kdb(d)|0)+16|0);IW(e,1329,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1349,b);IW(e,1329,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1350,b);IW(e,1329,(zdb(d)|0)+20|0);IW(e,1329,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1351,b);IW(e,1329,(ydb(d)|0)+12|0);IW(e,1329,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1352,b);IW(e,1329,(gdb(d)|0)+16|0);IW(e,1329,(gdb(d)|0)+12|0);IW(e,1329,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1353,b);IW(e,1329,(geb(d)|0)+16|0);IW(e,1329,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1354,b);IW(e,1329,(Hdb(d)|0)+12|0);IW(e,1329,(Hdb(d)|0)+16|0);IW(e,1329,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1355,b);return}case 34:{e=a+16|0;IW(e,1356,b);IW(e,1329,(Jdb(d)|0)+8|0);IW(e,1329,(Jdb(d)|0)+12|0);IW(e,1329,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1357,b);IW(e,1329,(Idb(d)|0)+8|0);IW(e,1329,(Idb(d)|0)+12|0);IW(e,1329,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1358,b);return}case 15:{e=a+16|0;IW(e,1359,b);IW(e,1329,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1360,b);IW(e,1329,(Veb(d)|0)+16|0);IW(e,1329,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1361,b);IW(e,1329,(Teb(d)|0)+16|0);IW(e,1329,(Teb(d)|0)+12|0);IW(e,1329,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1362,b);IW(e,1329,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1363,b);pX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1364,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1329,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1365,b);return}case 22:{IW(a+16|0,1366,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function id(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1989,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1988,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1990,b);oX(e,(Tfb(d)|0)+16|0);IW(e,1988,(Tfb(d)|0)+12|0);IW(e,1988,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1991,b);IW(e,1988,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1992,b);oX(e,(tfb(d)|0)+16|0);oX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1993,b);IW(e,1988,(cfb(d)|0)+28|0);oX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1994,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1988,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1995,b);b=wdb(d)|0;IW(e,1988,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1988,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1996,b);return}case 9:{e=a+16|0;IW(e,1997,b);IW(e,1988,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1998,b);return}case 11:{e=a+16|0;IW(e,1999,b);IW(e,1988,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,2e3,b);IW(e,1988,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,2001,b);IW(e,1988,(efb(d)|0)+28|0);IW(e,1988,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,2002,b);IW(e,1988,(ieb(d)|0)+24|0);IW(e,1988,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,2003,b);IW(e,1988,(hdb(d)|0)+24|0);IW(e,1988,(hdb(d)|0)+20|0);IW(e,1988,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,2004,b);IW(e,1988,(Ldb(d)|0)+20|0);IW(e,1988,(Ldb(d)|0)+16|0);IW(e,1988,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,2005,b);IW(e,1988,(Kdb(d)|0)+16|0);IW(e,1988,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,2006,b);IW(e,1988,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,2007,b);IW(e,1988,(zdb(d)|0)+20|0);IW(e,1988,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,2008,b);IW(e,1988,(ydb(d)|0)+12|0);IW(e,1988,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,2009,b);IW(e,1988,(gdb(d)|0)+16|0);IW(e,1988,(gdb(d)|0)+12|0);IW(e,1988,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,2010,b);IW(e,1988,(geb(d)|0)+16|0);IW(e,1988,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,2011,b);IW(e,1988,(Hdb(d)|0)+12|0);IW(e,1988,(Hdb(d)|0)+16|0);IW(e,1988,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,2012,b);return}case 34:{e=a+16|0;IW(e,2013,b);IW(e,1988,(Jdb(d)|0)+8|0);IW(e,1988,(Jdb(d)|0)+12|0);IW(e,1988,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,2014,b);IW(e,1988,(Idb(d)|0)+8|0);IW(e,1988,(Idb(d)|0)+12|0);IW(e,1988,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,2015,b);return}case 15:{e=a+16|0;IW(e,2016,b);IW(e,1988,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,2017,b);IW(e,1988,(Veb(d)|0)+16|0);IW(e,1988,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,2018,b);IW(e,1988,(Teb(d)|0)+16|0);IW(e,1988,(Teb(d)|0)+12|0);IW(e,1988,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,2019,b);IW(e,1988,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,2020,b);oX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,2021,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1988,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,2022,b);return}case 22:{IW(a+16|0,2023,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function jd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1758,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1755,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1759,b);uX(e,(Tfb(d)|0)+16|0);IW(e,1755,(Tfb(d)|0)+12|0);IW(e,1755,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1760,b);IW(e,1755,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1761,b);uX(e,(tfb(d)|0)+16|0);uX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1762,b);IW(e,1755,(cfb(d)|0)+28|0);uX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1763,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1755,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1764,b);b=wdb(d)|0;IW(e,1755,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1755,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1765,b);return}case 9:{e=a+16|0;IW(e,1766,b);IW(e,1755,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1767,b);return}case 11:{e=a+16|0;IW(e,1768,b);IW(e,1755,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1769,b);IW(e,1755,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1770,b);IW(e,1755,(efb(d)|0)+28|0);IW(e,1755,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1771,b);IW(e,1755,(ieb(d)|0)+24|0);IW(e,1755,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1772,b);IW(e,1755,(hdb(d)|0)+24|0);IW(e,1755,(hdb(d)|0)+20|0);IW(e,1755,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1773,b);IW(e,1755,(Ldb(d)|0)+20|0);IW(e,1755,(Ldb(d)|0)+16|0);IW(e,1755,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1774,b);IW(e,1755,(Kdb(d)|0)+16|0);IW(e,1755,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1775,b);IW(e,1755,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1776,b);IW(e,1755,(zdb(d)|0)+20|0);IW(e,1755,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1777,b);IW(e,1755,(ydb(d)|0)+12|0);IW(e,1755,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1778,b);IW(e,1755,(gdb(d)|0)+16|0);IW(e,1755,(gdb(d)|0)+12|0);IW(e,1755,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1779,b);IW(e,1755,(geb(d)|0)+16|0);IW(e,1755,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1780,b);IW(e,1755,(Hdb(d)|0)+12|0);IW(e,1755,(Hdb(d)|0)+16|0);IW(e,1755,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1781,b);return}case 34:{e=a+16|0;IW(e,1782,b);IW(e,1755,(Jdb(d)|0)+8|0);IW(e,1755,(Jdb(d)|0)+12|0);IW(e,1755,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1783,b);IW(e,1755,(Idb(d)|0)+8|0);IW(e,1755,(Idb(d)|0)+12|0);IW(e,1755,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1784,b);return}case 15:{e=a+16|0;IW(e,1785,b);IW(e,1755,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1786,b);IW(e,1755,(Veb(d)|0)+16|0);IW(e,1755,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1787,b);IW(e,1755,(Teb(d)|0)+16|0);IW(e,1755,(Teb(d)|0)+12|0);IW(e,1755,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1788,b);IW(e,1755,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1789,b);uX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1790,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1755,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1791,b);return}case 22:{IW(a+16|0,1792,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function kd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,2425,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2422,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,2426,b);FX(e,(Tfb(d)|0)+16|0);IW(e,2422,(Tfb(d)|0)+12|0);IW(e,2422,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,2427,b);IW(e,2422,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,2428,b);FX(e,(tfb(d)|0)+16|0);FX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,2429,b);IW(e,2422,(cfb(d)|0)+28|0);FX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,2430,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2422,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,2431,b);b=wdb(d)|0;IW(e,2422,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2422,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,2432,b);return}case 9:{e=a+16|0;IW(e,2433,b);IW(e,2422,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,2434,b);return}case 11:{e=a+16|0;IW(e,2435,b);IW(e,2422,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,2436,b);IW(e,2422,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,2437,b);IW(e,2422,(efb(d)|0)+28|0);IW(e,2422,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,2438,b);IW(e,2422,(ieb(d)|0)+24|0);IW(e,2422,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,2439,b);IW(e,2422,(hdb(d)|0)+24|0);IW(e,2422,(hdb(d)|0)+20|0);IW(e,2422,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,2440,b);IW(e,2422,(Ldb(d)|0)+20|0);IW(e,2422,(Ldb(d)|0)+16|0);IW(e,2422,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,2441,b);IW(e,2422,(Kdb(d)|0)+16|0);IW(e,2422,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,2442,b);IW(e,2422,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,2443,b);IW(e,2422,(zdb(d)|0)+20|0);IW(e,2422,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,2444,b);IW(e,2422,(ydb(d)|0)+12|0);IW(e,2422,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,2445,b);IW(e,2422,(gdb(d)|0)+16|0);IW(e,2422,(gdb(d)|0)+12|0);IW(e,2422,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,2446,b);IW(e,2422,(geb(d)|0)+16|0);IW(e,2422,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,2447,b);IW(e,2422,(Hdb(d)|0)+12|0);IW(e,2422,(Hdb(d)|0)+16|0);IW(e,2422,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,2448,b);return}case 34:{e=a+16|0;IW(e,2449,b);IW(e,2422,(Jdb(d)|0)+8|0);IW(e,2422,(Jdb(d)|0)+12|0);IW(e,2422,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,2450,b);IW(e,2422,(Idb(d)|0)+8|0);IW(e,2422,(Idb(d)|0)+12|0);IW(e,2422,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,2451,b);return}case 15:{e=a+16|0;IW(e,2452,b);IW(e,2422,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,2453,b);IW(e,2422,(Veb(d)|0)+16|0);IW(e,2422,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,2454,b);IW(e,2422,(Teb(d)|0)+16|0);IW(e,2422,(Teb(d)|0)+12|0);IW(e,2422,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,2455,b);IW(e,2422,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,2456,b);FX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,2457,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2422,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,2458,b);return}case 22:{IW(a+16|0,2459,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ld(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1530,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1529,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1531,b);LX(e,(Tfb(d)|0)+16|0);IW(e,1529,(Tfb(d)|0)+12|0);IW(e,1529,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1532,b);IW(e,1529,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1533,b);LX(e,(tfb(d)|0)+16|0);LX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1534,b);IW(e,1529,(cfb(d)|0)+28|0);LX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1535,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1529,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1536,b);b=wdb(d)|0;IW(e,1529,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1529,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1537,b);return}case 9:{e=a+16|0;IW(e,1538,b);IW(e,1529,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1539,b);return}case 11:{e=a+16|0;IW(e,1540,b);IW(e,1529,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1541,b);IW(e,1529,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1542,b);IW(e,1529,(efb(d)|0)+28|0);IW(e,1529,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1543,b);IW(e,1529,(ieb(d)|0)+24|0);IW(e,1529,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1544,b);IW(e,1529,(hdb(d)|0)+24|0);IW(e,1529,(hdb(d)|0)+20|0);IW(e,1529,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1545,b);IW(e,1529,(Ldb(d)|0)+20|0);IW(e,1529,(Ldb(d)|0)+16|0);IW(e,1529,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1546,b);IW(e,1529,(Kdb(d)|0)+16|0);IW(e,1529,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1547,b);IW(e,1529,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1548,b);IW(e,1529,(zdb(d)|0)+20|0);IW(e,1529,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1549,b);IW(e,1529,(ydb(d)|0)+12|0);IW(e,1529,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1550,b);IW(e,1529,(gdb(d)|0)+16|0);IW(e,1529,(gdb(d)|0)+12|0);IW(e,1529,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1551,b);IW(e,1529,(geb(d)|0)+16|0);IW(e,1529,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1552,b);IW(e,1529,(Hdb(d)|0)+12|0);IW(e,1529,(Hdb(d)|0)+16|0);IW(e,1529,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1553,b);return}case 34:{e=a+16|0;IW(e,1554,b);IW(e,1529,(Jdb(d)|0)+8|0);IW(e,1529,(Jdb(d)|0)+12|0);IW(e,1529,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1555,b);IW(e,1529,(Idb(d)|0)+8|0);IW(e,1529,(Idb(d)|0)+12|0);IW(e,1529,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1556,b);return}case 15:{e=a+16|0;IW(e,1557,b);IW(e,1529,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1558,b);IW(e,1529,(Veb(d)|0)+16|0);IW(e,1529,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1559,b);IW(e,1529,(Teb(d)|0)+16|0);IW(e,1529,(Teb(d)|0)+12|0);IW(e,1529,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1560,b);IW(e,1529,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1561,b);LX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1562,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1529,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1563,b);return}case 22:{IW(a+16|0,1564,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function md(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1147,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1143,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1144,b);MX(e,(Tfb(d)|0)+16|0);IW(e,1143,(Tfb(d)|0)+12|0);IW(e,1143,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1148,b);IW(e,1143,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1149,b);MX(e,(tfb(d)|0)+16|0);MX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1150,b);IW(e,1143,(cfb(d)|0)+28|0);MX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1151,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1143,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1152,b);b=wdb(d)|0;IW(e,1143,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1143,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1153,b);return}case 9:{e=a+16|0;IW(e,1154,b);IW(e,1143,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1155,b);return}case 11:{e=a+16|0;IW(e,1156,b);IW(e,1143,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1157,b);IW(e,1143,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1158,b);IW(e,1143,(efb(d)|0)+28|0);IW(e,1143,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1159,b);IW(e,1143,(ieb(d)|0)+24|0);IW(e,1143,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1160,b);IW(e,1143,(hdb(d)|0)+24|0);IW(e,1143,(hdb(d)|0)+20|0);IW(e,1143,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1161,b);IW(e,1143,(Ldb(d)|0)+20|0);IW(e,1143,(Ldb(d)|0)+16|0);IW(e,1143,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1162,b);IW(e,1143,(Kdb(d)|0)+16|0);IW(e,1143,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1163,b);IW(e,1143,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1164,b);IW(e,1143,(zdb(d)|0)+20|0);IW(e,1143,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1165,b);IW(e,1143,(ydb(d)|0)+12|0);IW(e,1143,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1166,b);IW(e,1143,(gdb(d)|0)+16|0);IW(e,1143,(gdb(d)|0)+12|0);IW(e,1143,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1167,b);IW(e,1143,(geb(d)|0)+16|0);IW(e,1143,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1168,b);IW(e,1143,(Hdb(d)|0)+12|0);IW(e,1143,(Hdb(d)|0)+16|0);IW(e,1143,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1169,b);return}case 34:{e=a+16|0;IW(e,1170,b);IW(e,1143,(Jdb(d)|0)+8|0);IW(e,1143,(Jdb(d)|0)+12|0);IW(e,1143,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1171,b);IW(e,1143,(Idb(d)|0)+8|0);IW(e,1143,(Idb(d)|0)+12|0);IW(e,1143,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1172,b);return}case 15:{e=a+16|0;IW(e,1173,b);IW(e,1143,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1174,b);IW(e,1143,(Veb(d)|0)+16|0);IW(e,1143,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1175,b);IW(e,1143,(Teb(d)|0)+16|0);IW(e,1143,(Teb(d)|0)+12|0);IW(e,1143,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1176,b);IW(e,1143,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1177,b);MX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1178,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1143,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1179,b);return}case 22:{IW(a+16|0,1180,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function nd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,2570,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2569,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,2571,b);QX(e,(Tfb(d)|0)+16|0);IW(e,2569,(Tfb(d)|0)+12|0);IW(e,2569,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,2572,b);IW(e,2569,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,2573,b);QX(e,(tfb(d)|0)+16|0);QX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,2574,b);IW(e,2569,(cfb(d)|0)+28|0);QX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,2575,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2569,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,2576,b);b=wdb(d)|0;IW(e,2569,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2569,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,2577,b);return}case 9:{e=a+16|0;IW(e,2578,b);IW(e,2569,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,2579,b);return}case 11:{e=a+16|0;IW(e,2580,b);IW(e,2569,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,2581,b);IW(e,2569,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,2582,b);IW(e,2569,(efb(d)|0)+28|0);IW(e,2569,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,2583,b);IW(e,2569,(ieb(d)|0)+24|0);IW(e,2569,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,2584,b);IW(e,2569,(hdb(d)|0)+24|0);IW(e,2569,(hdb(d)|0)+20|0);IW(e,2569,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,2585,b);IW(e,2569,(Ldb(d)|0)+20|0);IW(e,2569,(Ldb(d)|0)+16|0);IW(e,2569,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,2586,b);IW(e,2569,(Kdb(d)|0)+16|0);IW(e,2569,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,2587,b);IW(e,2569,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,2588,b);IW(e,2569,(zdb(d)|0)+20|0);IW(e,2569,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,2589,b);IW(e,2569,(ydb(d)|0)+12|0);IW(e,2569,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,2590,b);IW(e,2569,(gdb(d)|0)+16|0);IW(e,2569,(gdb(d)|0)+12|0);IW(e,2569,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,2591,b);IW(e,2569,(geb(d)|0)+16|0);IW(e,2569,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,2592,b);IW(e,2569,(Hdb(d)|0)+12|0);IW(e,2569,(Hdb(d)|0)+16|0);IW(e,2569,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,2593,b);return}case 34:{e=a+16|0;IW(e,2594,b);IW(e,2569,(Jdb(d)|0)+8|0);IW(e,2569,(Jdb(d)|0)+12|0);IW(e,2569,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,2595,b);IW(e,2569,(Idb(d)|0)+8|0);IW(e,2569,(Idb(d)|0)+12|0);IW(e,2569,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,2596,b);return}case 15:{e=a+16|0;IW(e,2597,b);IW(e,2569,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,2598,b);IW(e,2569,(Veb(d)|0)+16|0);IW(e,2569,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,2599,b);IW(e,2569,(Teb(d)|0)+16|0);IW(e,2569,(Teb(d)|0)+12|0);IW(e,2569,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,2600,b);IW(e,2569,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,2601,b);QX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,2602,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2569,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,2603,b);return}case 22:{IW(a+16|0,2604,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function od(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3027,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3026,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3028,b);RX(e,(Tfb(d)|0)+16|0);IW(e,3026,(Tfb(d)|0)+12|0);IW(e,3026,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3029,b);IW(e,3026,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,3030,b);RX(e,(tfb(d)|0)+16|0);RX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3031,b);IW(e,3026,(cfb(d)|0)+28|0);RX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,3032,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3026,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,3033,b);b=wdb(d)|0;IW(e,3026,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3026,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,3034,b);return}case 9:{e=a+16|0;IW(e,3035,b);IW(e,3026,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,3036,b);return}case 11:{e=a+16|0;IW(e,3037,b);IW(e,3026,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,3038,b);IW(e,3026,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,3039,b);IW(e,3026,(efb(d)|0)+28|0);IW(e,3026,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,3040,b);IW(e,3026,(ieb(d)|0)+24|0);IW(e,3026,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,3041,b);IW(e,3026,(hdb(d)|0)+24|0);IW(e,3026,(hdb(d)|0)+20|0);IW(e,3026,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,3042,b);IW(e,3026,(Ldb(d)|0)+20|0);IW(e,3026,(Ldb(d)|0)+16|0);IW(e,3026,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,3043,b);IW(e,3026,(Kdb(d)|0)+16|0);IW(e,3026,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,3044,b);IW(e,3026,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,3045,b);IW(e,3026,(zdb(d)|0)+20|0);IW(e,3026,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,3046,b);IW(e,3026,(ydb(d)|0)+12|0);IW(e,3026,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,3047,b);IW(e,3026,(gdb(d)|0)+16|0);IW(e,3026,(gdb(d)|0)+12|0);IW(e,3026,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,3048,b);IW(e,3026,(geb(d)|0)+16|0);IW(e,3026,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,3049,b);IW(e,3026,(Hdb(d)|0)+12|0);IW(e,3026,(Hdb(d)|0)+16|0);IW(e,3026,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,3050,b);return}case 34:{e=a+16|0;IW(e,3051,b);IW(e,3026,(Jdb(d)|0)+8|0);IW(e,3026,(Jdb(d)|0)+12|0);IW(e,3026,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,3052,b);IW(e,3026,(Idb(d)|0)+8|0);IW(e,3026,(Idb(d)|0)+12|0);IW(e,3026,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,3053,b);return}case 15:{e=a+16|0;IW(e,3054,b);IW(e,3026,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,3055,b);IW(e,3026,(Veb(d)|0)+16|0);IW(e,3026,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,3056,b);IW(e,3026,(Teb(d)|0)+16|0);IW(e,3026,(Teb(d)|0)+12|0);IW(e,3026,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,3057,b);IW(e,3026,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,3058,b);RX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,3059,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3026,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,3060,b);return}case 22:{IW(a+16|0,3061,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function pd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,2876,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2875,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,2877,b);UX(e,(Tfb(d)|0)+16|0);IW(e,2875,(Tfb(d)|0)+12|0);IW(e,2875,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,2878,b);IW(e,2875,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,2879,b);UX(e,(tfb(d)|0)+16|0);UX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,2880,b);IW(e,2875,(cfb(d)|0)+28|0);UX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,2881,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2875,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,2882,b);b=wdb(d)|0;IW(e,2875,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2875,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,2883,b);return}case 9:{e=a+16|0;IW(e,2884,b);IW(e,2875,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,2885,b);return}case 11:{e=a+16|0;IW(e,2886,b);IW(e,2875,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,2887,b);IW(e,2875,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,2888,b);IW(e,2875,(efb(d)|0)+28|0);IW(e,2875,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,2889,b);IW(e,2875,(ieb(d)|0)+24|0);IW(e,2875,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,2890,b);IW(e,2875,(hdb(d)|0)+24|0);IW(e,2875,(hdb(d)|0)+20|0);IW(e,2875,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,2891,b);IW(e,2875,(Ldb(d)|0)+20|0);IW(e,2875,(Ldb(d)|0)+16|0);IW(e,2875,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,2892,b);IW(e,2875,(Kdb(d)|0)+16|0);IW(e,2875,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,2893,b);IW(e,2875,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,2894,b);IW(e,2875,(zdb(d)|0)+20|0);IW(e,2875,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,2895,b);IW(e,2875,(ydb(d)|0)+12|0);IW(e,2875,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,2896,b);IW(e,2875,(gdb(d)|0)+16|0);IW(e,2875,(gdb(d)|0)+12|0);IW(e,2875,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,2897,b);IW(e,2875,(geb(d)|0)+16|0);IW(e,2875,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,2898,b);IW(e,2875,(Hdb(d)|0)+12|0);IW(e,2875,(Hdb(d)|0)+16|0);IW(e,2875,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,2899,b);return}case 34:{e=a+16|0;IW(e,2900,b);IW(e,2875,(Jdb(d)|0)+8|0);IW(e,2875,(Jdb(d)|0)+12|0);IW(e,2875,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,2901,b);IW(e,2875,(Idb(d)|0)+8|0);IW(e,2875,(Idb(d)|0)+12|0);IW(e,2875,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,2902,b);return}case 15:{e=a+16|0;IW(e,2903,b);IW(e,2875,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,2904,b);IW(e,2875,(Veb(d)|0)+16|0);IW(e,2875,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,2905,b);IW(e,2875,(Teb(d)|0)+16|0);IW(e,2875,(Teb(d)|0)+12|0);IW(e,2875,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,2906,b);IW(e,2875,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,2907,b);UX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,2908,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2875,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,2909,b);return}case 22:{IW(a+16|0,2910,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function qd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,4111,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,4108,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,4112,b);VX(e,(Tfb(d)|0)+16|0);IW(e,4108,(Tfb(d)|0)+12|0);IW(e,4108,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,4113,b);IW(e,4108,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,4114,b);VX(e,(tfb(d)|0)+16|0);VX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,4115,b);IW(e,4108,(cfb(d)|0)+28|0);VX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,4116,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,4108,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,4117,b);b=wdb(d)|0;IW(e,4108,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,4108,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,4118,b);return}case 9:{e=a+16|0;IW(e,4119,b);IW(e,4108,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,4120,b);return}case 11:{e=a+16|0;IW(e,4121,b);IW(e,4108,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,4122,b);IW(e,4108,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,4123,b);IW(e,4108,(efb(d)|0)+28|0);IW(e,4108,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,4124,b);IW(e,4108,(ieb(d)|0)+24|0);IW(e,4108,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,4125,b);IW(e,4108,(hdb(d)|0)+24|0);IW(e,4108,(hdb(d)|0)+20|0);IW(e,4108,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,4126,b);IW(e,4108,(Ldb(d)|0)+20|0);IW(e,4108,(Ldb(d)|0)+16|0);IW(e,4108,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,4127,b);IW(e,4108,(Kdb(d)|0)+16|0);IW(e,4108,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,4128,b);IW(e,4108,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,4129,b);IW(e,4108,(zdb(d)|0)+20|0);IW(e,4108,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,4130,b);IW(e,4108,(ydb(d)|0)+12|0);IW(e,4108,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,4131,b);IW(e,4108,(gdb(d)|0)+16|0);IW(e,4108,(gdb(d)|0)+12|0);IW(e,4108,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,4132,b);IW(e,4108,(geb(d)|0)+16|0);IW(e,4108,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,4133,b);IW(e,4108,(Hdb(d)|0)+12|0);IW(e,4108,(Hdb(d)|0)+16|0);IW(e,4108,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,4134,b);return}case 34:{e=a+16|0;IW(e,4135,b);IW(e,4108,(Jdb(d)|0)+8|0);IW(e,4108,(Jdb(d)|0)+12|0);IW(e,4108,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,4136,b);IW(e,4108,(Idb(d)|0)+8|0);IW(e,4108,(Idb(d)|0)+12|0);IW(e,4108,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,4137,b);return}case 15:{e=a+16|0;IW(e,4138,b);IW(e,4108,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,4139,b);IW(e,4108,(Veb(d)|0)+16|0);IW(e,4108,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,4140,b);IW(e,4108,(Teb(d)|0)+16|0);IW(e,4108,(Teb(d)|0)+12|0);IW(e,4108,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,4141,b);IW(e,4108,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,4142,b);VX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,4143,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,4108,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,4144,b);return}case 22:{IW(a+16|0,4145,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function rd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1602,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1601,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1603,b);ZX(e,(Tfb(d)|0)+16|0);IW(e,1601,(Tfb(d)|0)+12|0);IW(e,1601,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1604,b);IW(e,1601,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1605,b);ZX(e,(tfb(d)|0)+16|0);ZX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1606,b);IW(e,1601,(cfb(d)|0)+28|0);ZX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1607,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1601,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1608,b);b=wdb(d)|0;IW(e,1601,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1601,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1609,b);return}case 9:{e=a+16|0;IW(e,1610,b);IW(e,1601,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1611,b);return}case 11:{e=a+16|0;IW(e,1612,b);IW(e,1601,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1613,b);IW(e,1601,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1614,b);IW(e,1601,(efb(d)|0)+28|0);IW(e,1601,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1615,b);IW(e,1601,(ieb(d)|0)+24|0);IW(e,1601,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1616,b);IW(e,1601,(hdb(d)|0)+24|0);IW(e,1601,(hdb(d)|0)+20|0);IW(e,1601,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1617,b);IW(e,1601,(Ldb(d)|0)+20|0);IW(e,1601,(Ldb(d)|0)+16|0);IW(e,1601,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1618,b);IW(e,1601,(Kdb(d)|0)+16|0);IW(e,1601,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1619,b);IW(e,1601,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1620,b);IW(e,1601,(zdb(d)|0)+20|0);IW(e,1601,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1621,b);IW(e,1601,(ydb(d)|0)+12|0);IW(e,1601,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1622,b);IW(e,1601,(gdb(d)|0)+16|0);IW(e,1601,(gdb(d)|0)+12|0);IW(e,1601,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1623,b);IW(e,1601,(geb(d)|0)+16|0);IW(e,1601,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1624,b);IW(e,1601,(Hdb(d)|0)+12|0);IW(e,1601,(Hdb(d)|0)+16|0);IW(e,1601,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1625,b);return}case 34:{e=a+16|0;IW(e,1626,b);IW(e,1601,(Jdb(d)|0)+8|0);IW(e,1601,(Jdb(d)|0)+12|0);IW(e,1601,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1627,b);IW(e,1601,(Idb(d)|0)+8|0);IW(e,1601,(Idb(d)|0)+12|0);IW(e,1601,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1628,b);return}case 15:{e=a+16|0;IW(e,1629,b);IW(e,1601,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1630,b);IW(e,1601,(Veb(d)|0)+16|0);IW(e,1601,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1631,b);IW(e,1601,(Teb(d)|0)+16|0);IW(e,1601,(Teb(d)|0)+12|0);IW(e,1601,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1632,b);IW(e,1601,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1633,b);ZX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1634,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1601,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1635,b);return}case 22:{IW(a+16|0,1636,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function sd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1566,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1565,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1567,b);_X(e,(Tfb(d)|0)+16|0);IW(e,1565,(Tfb(d)|0)+12|0);IW(e,1565,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1568,b);IW(e,1565,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1569,b);_X(e,(tfb(d)|0)+16|0);_X(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1570,b);IW(e,1565,(cfb(d)|0)+28|0);_X(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1571,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1565,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1572,b);b=wdb(d)|0;IW(e,1565,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1565,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1573,b);return}case 9:{e=a+16|0;IW(e,1574,b);IW(e,1565,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1575,b);return}case 11:{e=a+16|0;IW(e,1576,b);IW(e,1565,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1577,b);IW(e,1565,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1578,b);IW(e,1565,(efb(d)|0)+28|0);IW(e,1565,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1579,b);IW(e,1565,(ieb(d)|0)+24|0);IW(e,1565,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1580,b);IW(e,1565,(hdb(d)|0)+24|0);IW(e,1565,(hdb(d)|0)+20|0);IW(e,1565,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1581,b);IW(e,1565,(Ldb(d)|0)+20|0);IW(e,1565,(Ldb(d)|0)+16|0);IW(e,1565,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1582,b);IW(e,1565,(Kdb(d)|0)+16|0);IW(e,1565,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1583,b);IW(e,1565,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1584,b);IW(e,1565,(zdb(d)|0)+20|0);IW(e,1565,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1585,b);IW(e,1565,(ydb(d)|0)+12|0);IW(e,1565,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1586,b);IW(e,1565,(gdb(d)|0)+16|0);IW(e,1565,(gdb(d)|0)+12|0);IW(e,1565,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1587,b);IW(e,1565,(geb(d)|0)+16|0);IW(e,1565,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1588,b);IW(e,1565,(Hdb(d)|0)+12|0);IW(e,1565,(Hdb(d)|0)+16|0);IW(e,1565,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1589,b);return}case 34:{e=a+16|0;IW(e,1590,b);IW(e,1565,(Jdb(d)|0)+8|0);IW(e,1565,(Jdb(d)|0)+12|0);IW(e,1565,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1591,b);IW(e,1565,(Idb(d)|0)+8|0);IW(e,1565,(Idb(d)|0)+12|0);IW(e,1565,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1592,b);return}case 15:{e=a+16|0;IW(e,1593,b);IW(e,1565,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1594,b);IW(e,1565,(Veb(d)|0)+16|0);IW(e,1565,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1595,b);IW(e,1565,(Teb(d)|0)+16|0);IW(e,1565,(Teb(d)|0)+12|0);IW(e,1565,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1596,b);IW(e,1565,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1597,b);_X(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1598,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1565,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1599,b);return}case 22:{IW(a+16|0,1600,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function td(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1412,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1411,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1413,b);$X(e,(Tfb(d)|0)+16|0);IW(e,1411,(Tfb(d)|0)+12|0);IW(e,1411,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1414,b);IW(e,1411,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1415,b);$X(e,(tfb(d)|0)+16|0);$X(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1416,b);IW(e,1411,(cfb(d)|0)+28|0);$X(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1417,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1411,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1418,b);b=wdb(d)|0;IW(e,1411,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1411,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1419,b);return}case 9:{e=a+16|0;IW(e,1420,b);IW(e,1411,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1421,b);return}case 11:{e=a+16|0;IW(e,1422,b);IW(e,1411,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1423,b);IW(e,1411,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1424,b);IW(e,1411,(efb(d)|0)+28|0);IW(e,1411,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1425,b);IW(e,1411,(ieb(d)|0)+24|0);IW(e,1411,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1426,b);IW(e,1411,(hdb(d)|0)+24|0);IW(e,1411,(hdb(d)|0)+20|0);IW(e,1411,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1427,b);IW(e,1411,(Ldb(d)|0)+20|0);IW(e,1411,(Ldb(d)|0)+16|0);IW(e,1411,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1428,b);IW(e,1411,(Kdb(d)|0)+16|0);IW(e,1411,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1429,b);IW(e,1411,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1430,b);IW(e,1411,(zdb(d)|0)+20|0);IW(e,1411,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1431,b);IW(e,1411,(ydb(d)|0)+12|0);IW(e,1411,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1432,b);IW(e,1411,(gdb(d)|0)+16|0);IW(e,1411,(gdb(d)|0)+12|0);IW(e,1411,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1433,b);IW(e,1411,(geb(d)|0)+16|0);IW(e,1411,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1434,b);IW(e,1411,(Hdb(d)|0)+12|0);IW(e,1411,(Hdb(d)|0)+16|0);IW(e,1411,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1435,b);return}case 34:{e=a+16|0;IW(e,1436,b);IW(e,1411,(Jdb(d)|0)+8|0);IW(e,1411,(Jdb(d)|0)+12|0);IW(e,1411,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1437,b);IW(e,1411,(Idb(d)|0)+8|0);IW(e,1411,(Idb(d)|0)+12|0);IW(e,1411,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1438,b);return}case 15:{e=a+16|0;IW(e,1439,b);IW(e,1411,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1440,b);IW(e,1411,(Veb(d)|0)+16|0);IW(e,1411,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1441,b);IW(e,1411,(Teb(d)|0)+16|0);IW(e,1411,(Teb(d)|0)+12|0);IW(e,1411,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1442,b);IW(e,1411,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1443,b);$X(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1444,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1411,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1445,b);return}case 22:{IW(a+16|0,1446,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ud(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1258,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1257,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1259,b);aY(e,(Tfb(d)|0)+16|0);IW(e,1257,(Tfb(d)|0)+12|0);IW(e,1257,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1260,b);IW(e,1257,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1261,b);aY(e,(tfb(d)|0)+16|0);aY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1262,b);IW(e,1257,(cfb(d)|0)+28|0);aY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1263,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1257,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1264,b);b=wdb(d)|0;IW(e,1257,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1257,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1265,b);return}case 9:{e=a+16|0;IW(e,1266,b);IW(e,1257,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1267,b);return}case 11:{e=a+16|0;IW(e,1268,b);IW(e,1257,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1269,b);IW(e,1257,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1270,b);IW(e,1257,(efb(d)|0)+28|0);IW(e,1257,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1271,b);IW(e,1257,(ieb(d)|0)+24|0);IW(e,1257,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1272,b);IW(e,1257,(hdb(d)|0)+24|0);IW(e,1257,(hdb(d)|0)+20|0);IW(e,1257,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1273,b);IW(e,1257,(Ldb(d)|0)+20|0);IW(e,1257,(Ldb(d)|0)+16|0);IW(e,1257,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1274,b);IW(e,1257,(Kdb(d)|0)+16|0);IW(e,1257,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1275,b);IW(e,1257,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1276,b);IW(e,1257,(zdb(d)|0)+20|0);IW(e,1257,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1277,b);IW(e,1257,(ydb(d)|0)+12|0);IW(e,1257,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1278,b);IW(e,1257,(gdb(d)|0)+16|0);IW(e,1257,(gdb(d)|0)+12|0);IW(e,1257,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1279,b);IW(e,1257,(geb(d)|0)+16|0);IW(e,1257,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1280,b);IW(e,1257,(Hdb(d)|0)+12|0);IW(e,1257,(Hdb(d)|0)+16|0);IW(e,1257,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1281,b);return}case 34:{e=a+16|0;IW(e,1282,b);IW(e,1257,(Jdb(d)|0)+8|0);IW(e,1257,(Jdb(d)|0)+12|0);IW(e,1257,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1283,b);IW(e,1257,(Idb(d)|0)+8|0);IW(e,1257,(Idb(d)|0)+12|0);IW(e,1257,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1284,b);return}case 15:{e=a+16|0;IW(e,1285,b);IW(e,1257,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1286,b);IW(e,1257,(Veb(d)|0)+16|0);IW(e,1257,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1287,b);IW(e,1257,(Teb(d)|0)+16|0);IW(e,1257,(Teb(d)|0)+12|0);IW(e,1257,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1288,b);IW(e,1257,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1289,b);aY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1290,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1257,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1291,b);return}case 22:{IW(a+16|0,1292,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function vd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,2914,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2913,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,2915,b);bY(e,(Tfb(d)|0)+16|0);IW(e,2913,(Tfb(d)|0)+12|0);IW(e,2913,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,2916,b);IW(e,2913,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,2917,b);bY(e,(tfb(d)|0)+16|0);bY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,2918,b);IW(e,2913,(cfb(d)|0)+28|0);bY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,2919,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2913,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,2920,b);b=wdb(d)|0;IW(e,2913,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2913,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,2921,b);return}case 9:{e=a+16|0;IW(e,2922,b);IW(e,2913,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,2923,b);return}case 11:{e=a+16|0;IW(e,2924,b);IW(e,2913,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,2925,b);IW(e,2913,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,2926,b);IW(e,2913,(efb(d)|0)+28|0);IW(e,2913,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,2927,b);IW(e,2913,(ieb(d)|0)+24|0);IW(e,2913,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,2928,b);IW(e,2913,(hdb(d)|0)+24|0);IW(e,2913,(hdb(d)|0)+20|0);IW(e,2913,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,2929,b);IW(e,2913,(Ldb(d)|0)+20|0);IW(e,2913,(Ldb(d)|0)+16|0);IW(e,2913,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,2930,b);IW(e,2913,(Kdb(d)|0)+16|0);IW(e,2913,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,2931,b);IW(e,2913,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,2932,b);IW(e,2913,(zdb(d)|0)+20|0);IW(e,2913,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,2933,b);IW(e,2913,(ydb(d)|0)+12|0);IW(e,2913,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,2934,b);IW(e,2913,(gdb(d)|0)+16|0);IW(e,2913,(gdb(d)|0)+12|0);IW(e,2913,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,2935,b);IW(e,2913,(geb(d)|0)+16|0);IW(e,2913,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,2936,b);IW(e,2913,(Hdb(d)|0)+12|0);IW(e,2913,(Hdb(d)|0)+16|0);IW(e,2913,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,2937,b);return}case 34:{e=a+16|0;IW(e,2938,b);IW(e,2913,(Jdb(d)|0)+8|0);IW(e,2913,(Jdb(d)|0)+12|0);IW(e,2913,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,2939,b);IW(e,2913,(Idb(d)|0)+8|0);IW(e,2913,(Idb(d)|0)+12|0);IW(e,2913,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,2940,b);return}case 15:{e=a+16|0;IW(e,2941,b);IW(e,2913,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,2942,b);IW(e,2913,(Veb(d)|0)+16|0);IW(e,2913,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,2943,b);IW(e,2913,(Teb(d)|0)+16|0);IW(e,2913,(Teb(d)|0)+12|0);IW(e,2913,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,2944,b);IW(e,2913,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,2945,b);bY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,2946,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2913,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,2947,b);return}case 22:{IW(a+16|0,2948,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function wd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,2764,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2758,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,2760,b);fY(e,(Tfb(d)|0)+16|0);IW(e,2758,(Tfb(d)|0)+12|0);IW(e,2758,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,2765,b);IW(e,2758,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,2766,b);fY(e,(tfb(d)|0)+16|0);fY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,2767,b);IW(e,2758,(cfb(d)|0)+28|0);fY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,2768,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2758,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,2769,b);b=wdb(d)|0;IW(e,2758,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2758,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,2770,b);return}case 9:{e=a+16|0;IW(e,2771,b);IW(e,2758,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,2772,b);return}case 11:{e=a+16|0;IW(e,2773,b);IW(e,2758,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,2774,b);IW(e,2758,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,2775,b);IW(e,2758,(efb(d)|0)+28|0);IW(e,2758,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,2776,b);IW(e,2758,(ieb(d)|0)+24|0);IW(e,2758,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,2777,b);IW(e,2758,(hdb(d)|0)+24|0);IW(e,2758,(hdb(d)|0)+20|0);IW(e,2758,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,2778,b);IW(e,2758,(Ldb(d)|0)+20|0);IW(e,2758,(Ldb(d)|0)+16|0);IW(e,2758,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,2779,b);IW(e,2758,(Kdb(d)|0)+16|0);IW(e,2758,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,2780,b);IW(e,2758,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,2781,b);IW(e,2758,(zdb(d)|0)+20|0);IW(e,2758,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,2782,b);IW(e,2758,(ydb(d)|0)+12|0);IW(e,2758,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,2783,b);IW(e,2758,(gdb(d)|0)+16|0);IW(e,2758,(gdb(d)|0)+12|0);IW(e,2758,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,2784,b);IW(e,2758,(geb(d)|0)+16|0);IW(e,2758,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,2785,b);IW(e,2758,(Hdb(d)|0)+12|0);IW(e,2758,(Hdb(d)|0)+16|0);IW(e,2758,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,2786,b);return}case 34:{e=a+16|0;IW(e,2787,b);IW(e,2758,(Jdb(d)|0)+8|0);IW(e,2758,(Jdb(d)|0)+12|0);IW(e,2758,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,2788,b);IW(e,2758,(Idb(d)|0)+8|0);IW(e,2758,(Idb(d)|0)+12|0);IW(e,2758,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,2789,b);return}case 15:{e=a+16|0;IW(e,2790,b);IW(e,2758,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,2791,b);IW(e,2758,(Veb(d)|0)+16|0);IW(e,2758,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,2792,b);IW(e,2758,(Teb(d)|0)+16|0);IW(e,2758,(Teb(d)|0)+12|0);IW(e,2758,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,2793,b);IW(e,2758,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,2794,b);fY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,2795,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2758,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,2796,b);return}case 22:{IW(a+16|0,2797,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function xd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3863,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3862,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3864,b);gY(e,(Tfb(d)|0)+16|0);IW(e,3862,(Tfb(d)|0)+12|0);IW(e,3862,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3865,b);IW(e,3862,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,3866,b);gY(e,(tfb(d)|0)+16|0);gY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3867,b);IW(e,3862,(cfb(d)|0)+28|0);gY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,3868,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3862,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,3869,b);b=wdb(d)|0;IW(e,3862,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3862,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,3870,b);return}case 9:{e=a+16|0;IW(e,3871,b);IW(e,3862,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,3872,b);return}case 11:{e=a+16|0;IW(e,3873,b);IW(e,3862,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,3874,b);IW(e,3862,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,3875,b);IW(e,3862,(efb(d)|0)+28|0);IW(e,3862,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,3876,b);IW(e,3862,(ieb(d)|0)+24|0);IW(e,3862,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,3877,b);IW(e,3862,(hdb(d)|0)+24|0);IW(e,3862,(hdb(d)|0)+20|0);IW(e,3862,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,3878,b);IW(e,3862,(Ldb(d)|0)+20|0);IW(e,3862,(Ldb(d)|0)+16|0);IW(e,3862,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,3879,b);IW(e,3862,(Kdb(d)|0)+16|0);IW(e,3862,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,3880,b);IW(e,3862,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,3881,b);IW(e,3862,(zdb(d)|0)+20|0);IW(e,3862,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,3882,b);IW(e,3862,(ydb(d)|0)+12|0);IW(e,3862,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,3883,b);IW(e,3862,(gdb(d)|0)+16|0);IW(e,3862,(gdb(d)|0)+12|0);IW(e,3862,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,3884,b);IW(e,3862,(geb(d)|0)+16|0);IW(e,3862,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,3885,b);IW(e,3862,(Hdb(d)|0)+12|0);IW(e,3862,(Hdb(d)|0)+16|0);IW(e,3862,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,3886,b);return}case 34:{e=a+16|0;IW(e,3887,b);IW(e,3862,(Jdb(d)|0)+8|0);IW(e,3862,(Jdb(d)|0)+12|0);IW(e,3862,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,3888,b);IW(e,3862,(Idb(d)|0)+8|0);IW(e,3862,(Idb(d)|0)+12|0);IW(e,3862,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,3889,b);return}case 15:{e=a+16|0;IW(e,3890,b);IW(e,3862,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,3891,b);IW(e,3862,(Veb(d)|0)+16|0);IW(e,3862,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,3892,b);IW(e,3862,(Teb(d)|0)+16|0);IW(e,3862,(Teb(d)|0)+12|0);IW(e,3862,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,3893,b);IW(e,3862,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,3894,b);gY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,3895,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3862,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,3896,b);return}case 22:{IW(a+16|0,3897,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function yd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3826,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3825,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3827,b);iY(e,(Tfb(d)|0)+16|0);IW(e,3825,(Tfb(d)|0)+12|0);IW(e,3825,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3828,b);IW(e,3825,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,3829,b);iY(e,(tfb(d)|0)+16|0);iY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3830,b);IW(e,3825,(cfb(d)|0)+28|0);iY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,3831,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3825,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,3832,b);b=wdb(d)|0;IW(e,3825,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3825,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,3833,b);return}case 9:{e=a+16|0;IW(e,3834,b);IW(e,3825,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,3835,b);return}case 11:{e=a+16|0;IW(e,3836,b);IW(e,3825,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,3837,b);IW(e,3825,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,3838,b);IW(e,3825,(efb(d)|0)+28|0);IW(e,3825,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,3839,b);IW(e,3825,(ieb(d)|0)+24|0);IW(e,3825,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,3840,b);IW(e,3825,(hdb(d)|0)+24|0);IW(e,3825,(hdb(d)|0)+20|0);IW(e,3825,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,3841,b);IW(e,3825,(Ldb(d)|0)+20|0);IW(e,3825,(Ldb(d)|0)+16|0);IW(e,3825,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,3842,b);IW(e,3825,(Kdb(d)|0)+16|0);IW(e,3825,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,3843,b);IW(e,3825,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,3844,b);IW(e,3825,(zdb(d)|0)+20|0);IW(e,3825,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,3845,b);IW(e,3825,(ydb(d)|0)+12|0);IW(e,3825,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,3846,b);IW(e,3825,(gdb(d)|0)+16|0);IW(e,3825,(gdb(d)|0)+12|0);IW(e,3825,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,3847,b);IW(e,3825,(geb(d)|0)+16|0);IW(e,3825,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,3848,b);IW(e,3825,(Hdb(d)|0)+12|0);IW(e,3825,(Hdb(d)|0)+16|0);IW(e,3825,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,3849,b);return}case 34:{e=a+16|0;IW(e,3850,b);IW(e,3825,(Jdb(d)|0)+8|0);IW(e,3825,(Jdb(d)|0)+12|0);IW(e,3825,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,3851,b);IW(e,3825,(Idb(d)|0)+8|0);IW(e,3825,(Idb(d)|0)+12|0);IW(e,3825,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,3852,b);return}case 15:{e=a+16|0;IW(e,3853,b);IW(e,3825,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,3854,b);IW(e,3825,(Veb(d)|0)+16|0);IW(e,3825,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,3855,b);IW(e,3825,(Teb(d)|0)+16|0);IW(e,3825,(Teb(d)|0)+12|0);IW(e,3825,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,3856,b);IW(e,3825,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,3857,b);iY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,3858,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3825,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,3859,b);return}case 22:{IW(a+16|0,3860,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function zd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,2239,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2238,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,2240,b);lY(e,(Tfb(d)|0)+16|0);IW(e,2238,(Tfb(d)|0)+12|0);IW(e,2238,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,2241,b);IW(e,2238,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,2242,b);lY(e,(tfb(d)|0)+16|0);lY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,2243,b);IW(e,2238,(cfb(d)|0)+28|0);lY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,2244,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2238,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,2245,b);b=wdb(d)|0;IW(e,2238,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2238,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,2246,b);return}case 9:{e=a+16|0;IW(e,2247,b);IW(e,2238,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,2248,b);return}case 11:{e=a+16|0;IW(e,2249,b);IW(e,2238,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,2250,b);IW(e,2238,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,2251,b);IW(e,2238,(efb(d)|0)+28|0);IW(e,2238,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,2252,b);IW(e,2238,(ieb(d)|0)+24|0);IW(e,2238,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,2253,b);IW(e,2238,(hdb(d)|0)+24|0);IW(e,2238,(hdb(d)|0)+20|0);IW(e,2238,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,2254,b);IW(e,2238,(Ldb(d)|0)+20|0);IW(e,2238,(Ldb(d)|0)+16|0);IW(e,2238,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,2255,b);IW(e,2238,(Kdb(d)|0)+16|0);IW(e,2238,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,2256,b);IW(e,2238,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,2257,b);IW(e,2238,(zdb(d)|0)+20|0);IW(e,2238,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,2258,b);IW(e,2238,(ydb(d)|0)+12|0);IW(e,2238,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,2259,b);IW(e,2238,(gdb(d)|0)+16|0);IW(e,2238,(gdb(d)|0)+12|0);IW(e,2238,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,2260,b);IW(e,2238,(geb(d)|0)+16|0);IW(e,2238,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,2261,b);IW(e,2238,(Hdb(d)|0)+12|0);IW(e,2238,(Hdb(d)|0)+16|0);IW(e,2238,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,2262,b);return}case 34:{e=a+16|0;IW(e,2263,b);IW(e,2238,(Jdb(d)|0)+8|0);IW(e,2238,(Jdb(d)|0)+12|0);IW(e,2238,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,2264,b);IW(e,2238,(Idb(d)|0)+8|0);IW(e,2238,(Idb(d)|0)+12|0);IW(e,2238,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,2265,b);return}case 15:{e=a+16|0;IW(e,2266,b);IW(e,2238,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,2267,b);IW(e,2238,(Veb(d)|0)+16|0);IW(e,2238,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,2268,b);IW(e,2238,(Teb(d)|0)+16|0);IW(e,2238,(Teb(d)|0)+12|0);IW(e,2238,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,2269,b);IW(e,2238,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,2270,b);lY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,2271,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2238,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,2272,b);return}case 22:{IW(a+16|0,2273,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Ad(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1294,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1293,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1295,b);nY(e,(Tfb(d)|0)+16|0);IW(e,1293,(Tfb(d)|0)+12|0);IW(e,1293,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1296,b);IW(e,1293,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1297,b);nY(e,(tfb(d)|0)+16|0);nY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1298,b);IW(e,1293,(cfb(d)|0)+28|0);nY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1299,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1293,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1300,b);b=wdb(d)|0;IW(e,1293,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1293,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1301,b);return}case 9:{e=a+16|0;IW(e,1302,b);IW(e,1293,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1303,b);return}case 11:{e=a+16|0;IW(e,1304,b);IW(e,1293,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1305,b);IW(e,1293,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1306,b);IW(e,1293,(efb(d)|0)+28|0);IW(e,1293,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1307,b);IW(e,1293,(ieb(d)|0)+24|0);IW(e,1293,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1308,b);IW(e,1293,(hdb(d)|0)+24|0);IW(e,1293,(hdb(d)|0)+20|0);IW(e,1293,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1309,b);IW(e,1293,(Ldb(d)|0)+20|0);IW(e,1293,(Ldb(d)|0)+16|0);IW(e,1293,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1310,b);IW(e,1293,(Kdb(d)|0)+16|0);IW(e,1293,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1311,b);IW(e,1293,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1312,b);IW(e,1293,(zdb(d)|0)+20|0);IW(e,1293,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1313,b);IW(e,1293,(ydb(d)|0)+12|0);IW(e,1293,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1314,b);IW(e,1293,(gdb(d)|0)+16|0);IW(e,1293,(gdb(d)|0)+12|0);IW(e,1293,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1315,b);IW(e,1293,(geb(d)|0)+16|0);IW(e,1293,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1316,b);IW(e,1293,(Hdb(d)|0)+12|0);IW(e,1293,(Hdb(d)|0)+16|0);IW(e,1293,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1317,b);return}case 34:{e=a+16|0;IW(e,1318,b);IW(e,1293,(Jdb(d)|0)+8|0);IW(e,1293,(Jdb(d)|0)+12|0);IW(e,1293,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1319,b);IW(e,1293,(Idb(d)|0)+8|0);IW(e,1293,(Idb(d)|0)+12|0);IW(e,1293,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1320,b);return}case 15:{e=a+16|0;IW(e,1321,b);IW(e,1293,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1322,b);IW(e,1293,(Veb(d)|0)+16|0);IW(e,1293,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1323,b);IW(e,1293,(Teb(d)|0)+16|0);IW(e,1293,(Teb(d)|0)+12|0);IW(e,1293,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1324,b);IW(e,1293,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1325,b);nY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1326,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1293,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1327,b);return}case 22:{IW(a+16|0,1328,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Bd(b){b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,S=0,T=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,ga=0,ha=0,ia=0,ja=0,ka=0;_=yb;yb=yb+176|0;H=_+168|0;J=_+164|0;ca=_+152|0;ja=_+132|0;X=_+128|0;ka=_+116|0;ha=_+104|0;Y=_+100|0;Z=_+88|0;ga=_+76|0;K=_+72|0;L=_+60|0;M=_+56|0;$=_+44|0;ba=_+32|0;N=_+20|0;aa=_+8|0;O=_+4|0;Q=_;R=ja+4|0;S=ja+12|0;T=ja+16|0;c[ja>>2]=0;c[ja+4>>2]=0;c[ja+8>>2]=0;c[ja+12>>2]=0;g[T>>2]=1.0;Gsb(X,c[b>>2]|0);c[ka>>2]=0;f=ka+4|0;c[f>>2]=0;c[ka+8>>2]=0;F=c[b>>2]|0;G=c[F+72>>2]|0;d=G;do if((c[F+76>>2]|0)!=(G|0)?(e=d+4|0,(ka|0)!=(e|0)):0){n=0;ea(193,ka|0,c[e>>2]|0,c[d+8>>2]|0);G=n;n=0;if(G&1){d=sa()|0;P()|0;break}else{e=c[ka>>2]|0;G=c[f>>2]|0;ia=8;break}}else{e=0;G=0;ia=8}while(0);a:do if((ia|0)==8){x=ga+4|0;y=ga+8|0;z=ha+11|0;A=ha+4|0;B=ja+8|0;C=N+4|0;D=N+8|0;E=aa+4|0;F=aa+8|0;d=0;w=e;b:while(1){if((w|0)==(G|0)){ia=108;break}e=c[w>>2]|0;c:do if(!(dub(e,c[37368]|0)|0)){v=c[b>>2]|0;c[Y>>2]=e;n=0;c[H>>2]=c[Y>>2];e=U(64,v|0,H|0)|0;v=n;n=0;if(v&1){ia=5;break b}n=0;da(81,ha|0,e|0);v=n;n=0;if(v&1){ia=5;break b}n=0;da(73,Z|0,ha|0);v=n;n=0;if(v&1){ia=62;break b}n=0;v=U(136,Z|0,c[b>>2]|0)|0;u=n;n=0;if(u&1){ia=63;break b}Chb(Z);u=Gxa(ha)|0;i=c[R>>2]|0;t=(i|0)==0;d:do if(!t){m=i+-1|0;o=(i&m|0)==0;if(!o)if(u>>>0>>0)d=u;else d=(u>>>0)%(i>>>0)|0;else d=u&m;e=c[(c[ja>>2]|0)+(d<<2)>>2]|0;if(e){r=a[z>>0]|0;p=r<<24>>24<0;q=c[A>>2]|0;r=r&255;s=c[ha>>2]|0;e:while(1){e=c[e>>2]|0;if(!e)break d;f=c[e+4>>2]|0;if((f|0)!=(u|0)){do if(o)f=f&m;else{if(f>>>0>>0)break;f=(f>>>0)%(i>>>0)|0}while(0);if((f|0)!=(d|0))break d}h=e+8|0;f=a[h+11>>0]|0;l=f<<24>>24<0;if(l)f=c[e+12>>2]|0;else f=f&255;f:do if((f|0)==((p?q:r)|0)){if(l)if(!(qdb(c[h>>2]|0,p?s:ha,f)|0))break e;else break;l=p?s:ha;while(1){if(!f)break e;if((a[h>>0]|0)!=(a[l>>0]|0))break f;l=l+1|0;h=h+1|0;f=f+-1|0}}while(0)}Chb(ha);break c}}while(0);n=0;fa(138,ca|0,ja|0,u|0,ha|0);s=n;n=0;if(s&1){ia=62;break b}j=+(((c[S>>2]|0)+1|0)>>>0);k=+g[T>>2];if(k*+(i>>>0)>>0>2){e=(i&i+-1|0)==0;ia=45}else{e=0;ia=45}}else if(t){e=0;d=0;ia=45}do if((ia|0)==45){ia=0;t=d|(e^1)&1;s=~~+I(+(j/k))>>>0;n=0;da(2037,ja|0,(t>>>0>>0?s:t)|0);t=n;n=0;if(t&1){ia=50;break b}d=c[R>>2]|0;e=d+-1|0;if(!(d&e)){i=d;d=u&e;break}if(u>>>0>>0){i=d;d=u}else{i=d;d=(u>>>0)%(d>>>0)|0}}while(0);e=c[(c[ja>>2]|0)+(d<<2)>>2]|0;if(!e){e=c[ca>>2]|0;c[e>>2]=c[B>>2];h=e;c[B>>2]=h;c[(c[ja>>2]|0)+(d<<2)>>2]=B;if(c[e>>2]|0){e=c[(c[e>>2]|0)+4>>2]|0;f=i+-1|0;if(i&f){if(e>>>0>=i>>>0)e=(e>>>0)%(i>>>0)|0}else e=e&f;c[(c[ja>>2]|0)+(e<<2)>>2]=h}}else{u=c[ca>>2]|0;c[u>>2]=c[e>>2];c[e>>2]=u}c[S>>2]=(c[S>>2]|0)+1;c[ca>>2]=0;c[ga>>2]=0;c[x>>2]=0;c[y>>2]=0;c[K>>2]=1;n=0;ea(194,ga|0,118657,K|0);u=n;n=0;if(u&1){ia=74;break b}p=v+12|0;h=c[p>>2]|0;e=0;f=c[v+8>>2]|0;while(1){if((f|0)==(h|0))break;i=e+1|0;n=0;da(229,L|0,e|0);u=n;n=0;if(u&1){ia=73;break b}e=c[x>>2]|0;if(e>>>0>=(c[y>>2]|0)>>>0){n=0;ea(195,ga|0,L|0,f|0);u=n;n=0;if(u&1){ia=76;break b}}else{n=0;da(230,J|0,L|0);u=n;n=0;if(u&1){ia=76;break b}u=c[f>>2]|0;c[H>>2]=c[J>>2];fib(e,H,u);c[x>>2]=(c[x>>2]|0)+8}Chb(L);e=i;f=f+4|0}c[ba>>2]=0;c[ba+4>>2]=0;c[ba+8>>2]=0;u=Zzb(118662)|0;n=0;ea(95,ba|0,118662,u|0);u=n;n=0;if(u&1){ia=74;break b}u=a[z>>0]|0;t=u<<24>>24<0;n=0;V(43,ba|0,(t?c[ha>>2]|0:ha)|0,(t?c[A>>2]|0:u&255)|0)|0;u=n;n=0;if(u&1){ia=92;break b}c[$>>2]=c[ba>>2];c[$+4>>2]=c[ba+4>>2];c[$+8>>2]=c[ba+8>>2];e=0;while(1){if((e|0)==3)break;c[ba+(e<<2)>>2]=0;e=e+1|0}n=0;da(230,M|0,$|0);u=n;n=0;if(u&1){ia=93;break b}o=c[v+4>>2]|0;c[N>>2]=0;c[C>>2]=0;c[D>>2]=0;n=0;c[H>>2]=c[M>>2];o=W(40,H|0,ga|0,o|0,N|0)|0;u=n;n=0;if(u&1){ia=94;break b}Vob(N);Chb($);Chb(ba);h=c[X>>2]|0;n=0;i=V(71,h|0,0,1)|0;u=n;n=0;if(u&1){ia=74;break b}c[aa>>2]=0;c[E>>2]=0;c[F>>2]=0;l=v+8|0;e=0;while(1){f=c[l>>2]|0;if(e>>>0>=(c[p>>2]|0)-f>>2>>>0)break;m=e+1|0;n=0;e=V(71,h|0,m|0,c[f+(e<<2)>>2]|0)|0;u=n;n=0;if(u&1){ia=97;break b}c[O>>2]=e;f=c[E>>2]|0;if(f>>>0>=(c[F>>2]|0)>>>0){n=0;da(372,aa|0,O|0);u=n;n=0;if(u&1){ia=97;break b}}else{c[f>>2]=e;c[E>>2]=(c[E>>2]|0)+4}e=m}n=0;e=W(41,h|0,v|0,i|0,aa|0)|0;v=n;n=0;if(v&1){ia=98;break b}c[o+44>>2]=e;n=0;da(216,c[b>>2]|0,o|0);v=n;n=0;if(v&1){ia=98;break b}v=c[b>>2]|0;c[Q>>2]=c[o+8>>2];n=0;c[H>>2]=c[Q>>2];da(4047,v|0,H|0);v=n;n=0;if(v&1){ia=98;break b}Vob(aa);Vob(ga);Chb(ha)}while(0);w=w+4|0}switch(ia|0){case 5:{d=sa()|0;P()|0;break a}case 50:{d=sa()|0;P()|0;e=c[ca>>2]|0;c[ca>>2]=0;if(e){if(a[ca+8>>0]&1)Chb(e+8|0);RCb(e)}break}case 62:{d=sa()|0;P()|0;break}case 63:{d=sa()|0;P()|0;Chb(Z);break}case 73:{d=sa()|0;P()|0;ia=75;break}case 74:{d=sa()|0;P()|0;ia=75;break}case 76:{d=sa()|0;P()|0;Chb(L);ia=106;break}case 92:{d=sa()|0;P()|0;ia=96;break}case 93:{d=sa()|0;P()|0;ia=95;break}case 94:{d=sa()|0;P()|0;Vob(N);ia=95;break}case 97:{d=sa()|0;P()|0;ia=99;break}case 98:{d=sa()|0;P()|0;ia=99;break}case 108:{Vob(ka);RQa(ja);yb=_;return}}if((ia|0)==75)ia=106;else if((ia|0)==95){Chb($);ia=96}else if((ia|0)==99){Vob(aa);ia=106}if((ia|0)==96){Chb(ba);ia=106}if((ia|0)==106)Vob(ga);Chb(ha);ia=d;Vob(ka);RQa(ja);Ea(ia|0)}while(0);ia=d;Vob(ka);RQa(ja);Ea(ia|0)}function Cd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3788,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3775,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3789,b);vY(e,(Tfb(d)|0)+16|0);IW(e,3775,(Tfb(d)|0)+12|0);IW(e,3775,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3790,b);IW(e,3775,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,3791,b);vY(e,(tfb(d)|0)+16|0);vY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3792,b);IW(e,3775,(cfb(d)|0)+28|0);vY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,3793,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3775,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,3794,b);b=wdb(d)|0;IW(e,3775,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3775,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,3795,b);return}case 9:{e=a+16|0;IW(e,3796,b);IW(e,3775,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,3797,b);return}case 11:{e=a+16|0;IW(e,3798,b);IW(e,3775,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,3799,b);IW(e,3775,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,3800,b);IW(e,3775,(efb(d)|0)+28|0);IW(e,3775,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,3801,b);IW(e,3775,(ieb(d)|0)+24|0);IW(e,3775,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,3802,b);IW(e,3775,(hdb(d)|0)+24|0);IW(e,3775,(hdb(d)|0)+20|0);IW(e,3775,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,3803,b);IW(e,3775,(Ldb(d)|0)+20|0);IW(e,3775,(Ldb(d)|0)+16|0);IW(e,3775,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,3804,b);IW(e,3775,(Kdb(d)|0)+16|0);IW(e,3775,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,3805,b);IW(e,3775,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,3806,b);IW(e,3775,(zdb(d)|0)+20|0);IW(e,3775,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,3807,b);IW(e,3775,(ydb(d)|0)+12|0);IW(e,3775,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,3808,b);IW(e,3775,(gdb(d)|0)+16|0);IW(e,3775,(gdb(d)|0)+12|0);IW(e,3775,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,3809,b);IW(e,3775,(geb(d)|0)+16|0);IW(e,3775,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,3810,b);IW(e,3775,(Hdb(d)|0)+12|0);IW(e,3775,(Hdb(d)|0)+16|0);IW(e,3775,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,3811,b);return}case 34:{e=a+16|0;IW(e,3812,b);IW(e,3775,(Jdb(d)|0)+8|0);IW(e,3775,(Jdb(d)|0)+12|0);IW(e,3775,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,3813,b);IW(e,3775,(Idb(d)|0)+8|0);IW(e,3775,(Idb(d)|0)+12|0);IW(e,3775,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,3814,b);return}case 15:{e=a+16|0;IW(e,3815,b);IW(e,3775,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,3816,b);IW(e,3775,(Veb(d)|0)+16|0);IW(e,3775,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,3817,b);IW(e,3775,(Teb(d)|0)+16|0);IW(e,3775,(Teb(d)|0)+12|0);IW(e,3775,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,3818,b);IW(e,3775,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,3819,b);vY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,3820,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3775,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,3821,b);return}case 22:{IW(a+16|0,3822,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Dd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,2533,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2532,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,2534,b);xY(e,(Tfb(d)|0)+16|0);IW(e,2532,(Tfb(d)|0)+12|0);IW(e,2532,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,2535,b);IW(e,2532,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,2536,b);xY(e,(tfb(d)|0)+16|0);xY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,2537,b);IW(e,2532,(cfb(d)|0)+28|0);xY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,2538,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2532,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,2539,b);b=wdb(d)|0;IW(e,2532,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2532,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,2540,b);return}case 9:{e=a+16|0;IW(e,2541,b);IW(e,2532,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,2542,b);return}case 11:{e=a+16|0;IW(e,2543,b);IW(e,2532,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,2544,b);IW(e,2532,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,2545,b);IW(e,2532,(efb(d)|0)+28|0);IW(e,2532,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,2546,b);IW(e,2532,(ieb(d)|0)+24|0);IW(e,2532,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,2547,b);IW(e,2532,(hdb(d)|0)+24|0);IW(e,2532,(hdb(d)|0)+20|0);IW(e,2532,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,2548,b);IW(e,2532,(Ldb(d)|0)+20|0);IW(e,2532,(Ldb(d)|0)+16|0);IW(e,2532,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,2549,b);IW(e,2532,(Kdb(d)|0)+16|0);IW(e,2532,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,2550,b);IW(e,2532,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,2551,b);IW(e,2532,(zdb(d)|0)+20|0);IW(e,2532,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,2552,b);IW(e,2532,(ydb(d)|0)+12|0);IW(e,2532,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,2553,b);IW(e,2532,(gdb(d)|0)+16|0);IW(e,2532,(gdb(d)|0)+12|0);IW(e,2532,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,2554,b);IW(e,2532,(geb(d)|0)+16|0);IW(e,2532,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,2555,b);IW(e,2532,(Hdb(d)|0)+12|0);IW(e,2532,(Hdb(d)|0)+16|0);IW(e,2532,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,2556,b);return}case 34:{e=a+16|0;IW(e,2557,b);IW(e,2532,(Jdb(d)|0)+8|0);IW(e,2532,(Jdb(d)|0)+12|0);IW(e,2532,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,2558,b);IW(e,2532,(Idb(d)|0)+8|0);IW(e,2532,(Idb(d)|0)+12|0);IW(e,2532,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,2559,b);return}case 15:{e=a+16|0;IW(e,2560,b);IW(e,2532,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,2561,b);IW(e,2532,(Veb(d)|0)+16|0);IW(e,2532,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,2562,b);IW(e,2532,(Teb(d)|0)+16|0);IW(e,2532,(Teb(d)|0)+12|0);IW(e,2532,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,2563,b);IW(e,2532,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,2564,b);xY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,2565,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2532,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,2566,b);return}case 22:{IW(a+16|0,2567,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Ed(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,2202,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2199,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,2203,b);zY(e,(Tfb(d)|0)+16|0);IW(e,2199,(Tfb(d)|0)+12|0);IW(e,2199,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,2204,b);IW(e,2199,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,2205,b);zY(e,(tfb(d)|0)+16|0);zY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,2206,b);IW(e,2199,(cfb(d)|0)+28|0);zY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,2207,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2199,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,2208,b);b=wdb(d)|0;IW(e,2199,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2199,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,2209,b);return}case 9:{e=a+16|0;IW(e,2210,b);IW(e,2199,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,2211,b);return}case 11:{e=a+16|0;IW(e,2212,b);IW(e,2199,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,2213,b);IW(e,2199,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,2214,b);IW(e,2199,(efb(d)|0)+28|0);IW(e,2199,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,2215,b);IW(e,2199,(ieb(d)|0)+24|0);IW(e,2199,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,2216,b);IW(e,2199,(hdb(d)|0)+24|0);IW(e,2199,(hdb(d)|0)+20|0);IW(e,2199,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,2217,b);IW(e,2199,(Ldb(d)|0)+20|0);IW(e,2199,(Ldb(d)|0)+16|0);IW(e,2199,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,2218,b);IW(e,2199,(Kdb(d)|0)+16|0);IW(e,2199,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,2219,b);IW(e,2199,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,2220,b);IW(e,2199,(zdb(d)|0)+20|0);IW(e,2199,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,2221,b);IW(e,2199,(ydb(d)|0)+12|0);IW(e,2199,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,2222,b);IW(e,2199,(gdb(d)|0)+16|0);IW(e,2199,(gdb(d)|0)+12|0);IW(e,2199,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,2223,b);IW(e,2199,(geb(d)|0)+16|0);IW(e,2199,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,2224,b);IW(e,2199,(Hdb(d)|0)+12|0);IW(e,2199,(Hdb(d)|0)+16|0);IW(e,2199,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,2225,b);return}case 34:{e=a+16|0;IW(e,2226,b);IW(e,2199,(Jdb(d)|0)+8|0);IW(e,2199,(Jdb(d)|0)+12|0);IW(e,2199,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,2227,b);IW(e,2199,(Idb(d)|0)+8|0);IW(e,2199,(Idb(d)|0)+12|0);IW(e,2199,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,2228,b);return}case 15:{e=a+16|0;IW(e,2229,b);IW(e,2199,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,2230,b);IW(e,2199,(Veb(d)|0)+16|0);IW(e,2199,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,2231,b);IW(e,2199,(Teb(d)|0)+16|0);IW(e,2199,(Teb(d)|0)+12|0);IW(e,2199,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,2232,b);IW(e,2199,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,2233,b);zY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,2234,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2199,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,2235,b);return}case 22:{IW(a+16|0,2236,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Fd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,2041,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2040,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,2042,b);AY(e,(Tfb(d)|0)+16|0);IW(e,2040,(Tfb(d)|0)+12|0);IW(e,2040,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,2043,b);IW(e,2040,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,2044,b);AY(e,(tfb(d)|0)+16|0);AY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,2045,b);IW(e,2040,(cfb(d)|0)+28|0);AY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,2046,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2040,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,2047,b);b=wdb(d)|0;IW(e,2040,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2040,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,2048,b);return}case 9:{e=a+16|0;IW(e,2049,b);IW(e,2040,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,2050,b);return}case 11:{e=a+16|0;IW(e,2051,b);IW(e,2040,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,2052,b);IW(e,2040,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,2053,b);IW(e,2040,(efb(d)|0)+28|0);IW(e,2040,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,2054,b);IW(e,2040,(ieb(d)|0)+24|0);IW(e,2040,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,2055,b);IW(e,2040,(hdb(d)|0)+24|0);IW(e,2040,(hdb(d)|0)+20|0);IW(e,2040,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,2056,b);IW(e,2040,(Ldb(d)|0)+20|0);IW(e,2040,(Ldb(d)|0)+16|0);IW(e,2040,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,2057,b);IW(e,2040,(Kdb(d)|0)+16|0);IW(e,2040,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,2058,b);IW(e,2040,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,2059,b);IW(e,2040,(zdb(d)|0)+20|0);IW(e,2040,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,2060,b);IW(e,2040,(ydb(d)|0)+12|0);IW(e,2040,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,2061,b);IW(e,2040,(gdb(d)|0)+16|0);IW(e,2040,(gdb(d)|0)+12|0);IW(e,2040,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,2062,b);IW(e,2040,(geb(d)|0)+16|0);IW(e,2040,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,2063,b);IW(e,2040,(Hdb(d)|0)+12|0);IW(e,2040,(Hdb(d)|0)+16|0);IW(e,2040,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,2064,b);return}case 34:{e=a+16|0;IW(e,2065,b);IW(e,2040,(Jdb(d)|0)+8|0);IW(e,2040,(Jdb(d)|0)+12|0);IW(e,2040,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,2066,b);IW(e,2040,(Idb(d)|0)+8|0);IW(e,2040,(Idb(d)|0)+12|0);IW(e,2040,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,2067,b);return}case 15:{e=a+16|0;IW(e,2068,b);IW(e,2040,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,2069,b);IW(e,2040,(Veb(d)|0)+16|0);IW(e,2040,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,2070,b);IW(e,2040,(Teb(d)|0)+16|0);IW(e,2040,(Teb(d)|0)+12|0);IW(e,2040,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,2071,b);IW(e,2040,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,2072,b);AY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,2073,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2040,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,2074,b);return}case 22:{IW(a+16|0,2075,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Gd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,2989,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2988,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,2990,b);wY(e,(Tfb(d)|0)+16|0);IW(e,2988,(Tfb(d)|0)+12|0);IW(e,2988,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,2991,b);IW(e,2988,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,2992,b);wY(e,(tfb(d)|0)+16|0);wY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,2993,b);IW(e,2988,(cfb(d)|0)+28|0);wY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,2994,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2988,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,2995,b);b=wdb(d)|0;IW(e,2988,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2988,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,2996,b);return}case 9:{e=a+16|0;IW(e,2997,b);IW(e,2988,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,2998,b);return}case 11:{e=a+16|0;IW(e,2999,b);IW(e,2988,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,3e3,b);IW(e,2988,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,3001,b);IW(e,2988,(efb(d)|0)+28|0);IW(e,2988,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,3002,b);IW(e,2988,(ieb(d)|0)+24|0);IW(e,2988,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,3003,b);IW(e,2988,(hdb(d)|0)+24|0);IW(e,2988,(hdb(d)|0)+20|0);IW(e,2988,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,3004,b);IW(e,2988,(Ldb(d)|0)+20|0);IW(e,2988,(Ldb(d)|0)+16|0);IW(e,2988,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,3005,b);IW(e,2988,(Kdb(d)|0)+16|0);IW(e,2988,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,3006,b);IW(e,2988,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,3007,b);IW(e,2988,(zdb(d)|0)+20|0);IW(e,2988,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,3008,b);IW(e,2988,(ydb(d)|0)+12|0);IW(e,2988,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,3009,b);IW(e,2988,(gdb(d)|0)+16|0);IW(e,2988,(gdb(d)|0)+12|0);IW(e,2988,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,3010,b);IW(e,2988,(geb(d)|0)+16|0);IW(e,2988,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,3011,b);IW(e,2988,(Hdb(d)|0)+12|0);IW(e,2988,(Hdb(d)|0)+16|0);IW(e,2988,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,3012,b);return}case 34:{e=a+16|0;IW(e,3013,b);IW(e,2988,(Jdb(d)|0)+8|0);IW(e,2988,(Jdb(d)|0)+12|0);IW(e,2988,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,3014,b);IW(e,2988,(Idb(d)|0)+8|0);IW(e,2988,(Idb(d)|0)+12|0);IW(e,2988,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,3015,b);return}case 15:{e=a+16|0;IW(e,3016,b);IW(e,2988,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,3017,b);IW(e,2988,(Veb(d)|0)+16|0);IW(e,2988,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,3018,b);IW(e,2988,(Teb(d)|0)+16|0);IW(e,2988,(Teb(d)|0)+12|0);IW(e,2988,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,3019,b);IW(e,2988,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,3020,b);wY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,3021,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,2988,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,3022,b);return}case 22:{IW(a+16|0,3023,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Hd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3902,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3901,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3903,b);EY(e,(Tfb(d)|0)+16|0);IW(e,3901,(Tfb(d)|0)+12|0);IW(e,3901,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3904,b);IW(e,3901,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,3905,b);EY(e,(tfb(d)|0)+16|0);EY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3906,b);IW(e,3901,(cfb(d)|0)+28|0);EY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,3907,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3901,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,3908,b);b=wdb(d)|0;IW(e,3901,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3901,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,3909,b);return}case 9:{e=a+16|0;IW(e,3910,b);IW(e,3901,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,3911,b);return}case 11:{e=a+16|0;IW(e,3912,b);IW(e,3901,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,3913,b);IW(e,3901,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,3914,b);IW(e,3901,(efb(d)|0)+28|0);IW(e,3901,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,3915,b);IW(e,3901,(ieb(d)|0)+24|0);IW(e,3901,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,3916,b);IW(e,3901,(hdb(d)|0)+24|0);IW(e,3901,(hdb(d)|0)+20|0);IW(e,3901,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,3917,b);IW(e,3901,(Ldb(d)|0)+20|0);IW(e,3901,(Ldb(d)|0)+16|0);IW(e,3901,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,3918,b);IW(e,3901,(Kdb(d)|0)+16|0);IW(e,3901,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,3919,b);IW(e,3901,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,3920,b);IW(e,3901,(zdb(d)|0)+20|0);IW(e,3901,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,3921,b);IW(e,3901,(ydb(d)|0)+12|0);IW(e,3901,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,3922,b);IW(e,3901,(gdb(d)|0)+16|0);IW(e,3901,(gdb(d)|0)+12|0);IW(e,3901,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,3923,b);IW(e,3901,(geb(d)|0)+16|0);IW(e,3901,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,3924,b);IW(e,3901,(Hdb(d)|0)+12|0);IW(e,3901,(Hdb(d)|0)+16|0);IW(e,3901,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,3925,b);return}case 34:{e=a+16|0;IW(e,3926,b);IW(e,3901,(Jdb(d)|0)+8|0);IW(e,3901,(Jdb(d)|0)+12|0);IW(e,3901,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,3927,b);IW(e,3901,(Idb(d)|0)+8|0);IW(e,3901,(Idb(d)|0)+12|0);IW(e,3901,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,3928,b);return}case 15:{e=a+16|0;IW(e,3929,b);IW(e,3901,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,3930,b);IW(e,3901,(Veb(d)|0)+16|0);IW(e,3901,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,3931,b);IW(e,3901,(Teb(d)|0)+16|0);IW(e,3901,(Teb(d)|0)+12|0);IW(e,3901,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,3932,b);IW(e,3901,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,3933,b);EY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,3934,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3901,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,3935,b);return}case 22:{IW(a+16|0,3936,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Id(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1719,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1718,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1720,b);FY(e,(Tfb(d)|0)+16|0);IW(e,1718,(Tfb(d)|0)+12|0);IW(e,1718,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1721,b);IW(e,1718,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1722,b);FY(e,(tfb(d)|0)+16|0);FY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1723,b);IW(e,1718,(cfb(d)|0)+28|0);FY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1724,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1718,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1725,b);b=wdb(d)|0;IW(e,1718,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1718,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1726,b);return}case 9:{e=a+16|0;IW(e,1727,b);IW(e,1718,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1728,b);return}case 11:{e=a+16|0;IW(e,1729,b);IW(e,1718,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1730,b);IW(e,1718,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1731,b);IW(e,1718,(efb(d)|0)+28|0);IW(e,1718,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1732,b);IW(e,1718,(ieb(d)|0)+24|0);IW(e,1718,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1733,b);IW(e,1718,(hdb(d)|0)+24|0);IW(e,1718,(hdb(d)|0)+20|0);IW(e,1718,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1734,b);IW(e,1718,(Ldb(d)|0)+20|0);IW(e,1718,(Ldb(d)|0)+16|0);IW(e,1718,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1735,b);IW(e,1718,(Kdb(d)|0)+16|0);IW(e,1718,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1736,b);IW(e,1718,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1737,b);IW(e,1718,(zdb(d)|0)+20|0);IW(e,1718,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1738,b);IW(e,1718,(ydb(d)|0)+12|0);IW(e,1718,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1739,b);IW(e,1718,(gdb(d)|0)+16|0);IW(e,1718,(gdb(d)|0)+12|0);IW(e,1718,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1740,b);IW(e,1718,(geb(d)|0)+16|0);IW(e,1718,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1741,b);IW(e,1718,(Hdb(d)|0)+12|0);IW(e,1718,(Hdb(d)|0)+16|0);IW(e,1718,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1742,b);return}case 34:{e=a+16|0;IW(e,1743,b);IW(e,1718,(Jdb(d)|0)+8|0);IW(e,1718,(Jdb(d)|0)+12|0);IW(e,1718,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1744,b);IW(e,1718,(Idb(d)|0)+8|0);IW(e,1718,(Idb(d)|0)+12|0);IW(e,1718,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1745,b);return}case 15:{e=a+16|0;IW(e,1746,b);IW(e,1718,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1747,b);IW(e,1718,(Veb(d)|0)+16|0);IW(e,1718,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1748,b);IW(e,1718,(Teb(d)|0)+16|0);IW(e,1718,(Teb(d)|0)+12|0);IW(e,1718,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1749,b);IW(e,1718,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1750,b);FY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1751,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1718,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1752,b);return}case 22:{IW(a+16|0,1753,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Jd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1010,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1009,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1011,b);HY(e,(Tfb(d)|0)+16|0);IW(e,1009,(Tfb(d)|0)+12|0);IW(e,1009,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1012,b);IW(e,1009,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1013,b);HY(e,(tfb(d)|0)+16|0);HY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1014,b);IW(e,1009,(cfb(d)|0)+28|0);HY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1015,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1009,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1016,b);b=wdb(d)|0;IW(e,1009,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1009,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1017,b);return}case 9:{e=a+16|0;IW(e,1018,b);IW(e,1009,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1019,b);return}case 11:{e=a+16|0;IW(e,1020,b);IW(e,1009,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1021,b);IW(e,1009,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1022,b);IW(e,1009,(efb(d)|0)+28|0);IW(e,1009,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1023,b);IW(e,1009,(ieb(d)|0)+24|0);IW(e,1009,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1024,b);IW(e,1009,(hdb(d)|0)+24|0);IW(e,1009,(hdb(d)|0)+20|0);IW(e,1009,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1025,b);IW(e,1009,(Ldb(d)|0)+20|0);IW(e,1009,(Ldb(d)|0)+16|0);IW(e,1009,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1026,b);IW(e,1009,(Kdb(d)|0)+16|0);IW(e,1009,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1027,b);IW(e,1009,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1028,b);IW(e,1009,(zdb(d)|0)+20|0);IW(e,1009,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1029,b);IW(e,1009,(ydb(d)|0)+12|0);IW(e,1009,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1030,b);IW(e,1009,(gdb(d)|0)+16|0);IW(e,1009,(gdb(d)|0)+12|0);IW(e,1009,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1031,b);IW(e,1009,(geb(d)|0)+16|0);IW(e,1009,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1032,b);IW(e,1009,(Hdb(d)|0)+12|0);IW(e,1009,(Hdb(d)|0)+16|0);IW(e,1009,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1033,b);return}case 34:{e=a+16|0;IW(e,1034,b);IW(e,1009,(Jdb(d)|0)+8|0);IW(e,1009,(Jdb(d)|0)+12|0);IW(e,1009,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1035,b);IW(e,1009,(Idb(d)|0)+8|0);IW(e,1009,(Idb(d)|0)+12|0);IW(e,1009,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1036,b);return}case 15:{e=a+16|0;IW(e,1037,b);IW(e,1009,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1038,b);IW(e,1009,(Veb(d)|0)+16|0);IW(e,1009,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1039,b);IW(e,1009,(Teb(d)|0)+16|0);IW(e,1009,(Teb(d)|0)+12|0);IW(e,1009,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1040,b);IW(e,1009,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1041,b);HY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1042,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1009,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1043,b);return}case 22:{IW(a+16|0,1044,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Kd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1915,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1914,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1916,b);MY(e,(Tfb(d)|0)+16|0);IW(e,1914,(Tfb(d)|0)+12|0);IW(e,1914,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1917,b);IW(e,1914,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1918,b);MY(e,(tfb(d)|0)+16|0);MY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1919,b);IW(e,1914,(cfb(d)|0)+28|0);MY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1920,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1914,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1921,b);b=wdb(d)|0;IW(e,1914,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1914,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1922,b);return}case 9:{e=a+16|0;IW(e,1923,b);IW(e,1914,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1924,b);return}case 11:{e=a+16|0;IW(e,1925,b);IW(e,1914,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1926,b);IW(e,1914,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1927,b);IW(e,1914,(efb(d)|0)+28|0);IW(e,1914,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1928,b);IW(e,1914,(ieb(d)|0)+24|0);IW(e,1914,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1929,b);IW(e,1914,(hdb(d)|0)+24|0);IW(e,1914,(hdb(d)|0)+20|0);IW(e,1914,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1930,b);IW(e,1914,(Ldb(d)|0)+20|0);IW(e,1914,(Ldb(d)|0)+16|0);IW(e,1914,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1931,b);IW(e,1914,(Kdb(d)|0)+16|0);IW(e,1914,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1932,b);IW(e,1914,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1933,b);IW(e,1914,(zdb(d)|0)+20|0);IW(e,1914,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1934,b);IW(e,1914,(ydb(d)|0)+12|0);IW(e,1914,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1935,b);IW(e,1914,(gdb(d)|0)+16|0);IW(e,1914,(gdb(d)|0)+12|0);IW(e,1914,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1936,b);IW(e,1914,(geb(d)|0)+16|0);IW(e,1914,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1937,b);IW(e,1914,(Hdb(d)|0)+12|0);IW(e,1914,(Hdb(d)|0)+16|0);IW(e,1914,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1938,b);return}case 34:{e=a+16|0;IW(e,1939,b);IW(e,1914,(Jdb(d)|0)+8|0);IW(e,1914,(Jdb(d)|0)+12|0);IW(e,1914,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1940,b);IW(e,1914,(Idb(d)|0)+8|0);IW(e,1914,(Idb(d)|0)+12|0);IW(e,1914,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1941,b);return}case 15:{e=a+16|0;IW(e,1942,b);IW(e,1914,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1943,b);IW(e,1914,(Veb(d)|0)+16|0);IW(e,1914,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1944,b);IW(e,1914,(Teb(d)|0)+16|0);IW(e,1914,(Teb(d)|0)+12|0);IW(e,1914,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1945,b);IW(e,1914,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1946,b);MY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1947,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1914,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1948,b);return}case 22:{IW(a+16|0,1949,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Ld(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1106,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1093,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1107,b);TY(e,(Tfb(d)|0)+16|0);IW(e,1093,(Tfb(d)|0)+12|0);IW(e,1093,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1108,b);IW(e,1093,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1109,b);TY(e,(tfb(d)|0)+16|0);TY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1110,b);IW(e,1093,(cfb(d)|0)+28|0);TY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1111,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1093,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1112,b);b=wdb(d)|0;IW(e,1093,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1093,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1113,b);return}case 9:{e=a+16|0;IW(e,1114,b);IW(e,1093,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1115,b);return}case 11:{e=a+16|0;IW(e,1116,b);IW(e,1093,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1117,b);IW(e,1093,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1118,b);IW(e,1093,(efb(d)|0)+28|0);IW(e,1093,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1119,b);IW(e,1093,(ieb(d)|0)+24|0);IW(e,1093,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1120,b);IW(e,1093,(hdb(d)|0)+24|0);IW(e,1093,(hdb(d)|0)+20|0);IW(e,1093,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1121,b);IW(e,1093,(Ldb(d)|0)+20|0);IW(e,1093,(Ldb(d)|0)+16|0);IW(e,1093,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1122,b);IW(e,1093,(Kdb(d)|0)+16|0);IW(e,1093,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1123,b);IW(e,1093,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1124,b);IW(e,1093,(zdb(d)|0)+20|0);IW(e,1093,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1125,b);IW(e,1093,(ydb(d)|0)+12|0);IW(e,1093,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1126,b);IW(e,1093,(gdb(d)|0)+16|0);IW(e,1093,(gdb(d)|0)+12|0);IW(e,1093,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1127,b);IW(e,1093,(geb(d)|0)+16|0);IW(e,1093,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1128,b);IW(e,1093,(Hdb(d)|0)+12|0);IW(e,1093,(Hdb(d)|0)+16|0);IW(e,1093,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1129,b);return}case 34:{e=a+16|0;IW(e,1130,b);IW(e,1093,(Jdb(d)|0)+8|0);IW(e,1093,(Jdb(d)|0)+12|0);IW(e,1093,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1131,b);IW(e,1093,(Idb(d)|0)+8|0);IW(e,1093,(Idb(d)|0)+12|0);IW(e,1093,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1132,b);return}case 15:{e=a+16|0;IW(e,1133,b);IW(e,1093,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1134,b);IW(e,1093,(Veb(d)|0)+16|0);IW(e,1093,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1135,b);IW(e,1093,(Teb(d)|0)+16|0);IW(e,1093,(Teb(d)|0)+12|0);IW(e,1093,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1136,b);IW(e,1093,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1137,b);TY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1138,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1093,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1139,b);return}case 22:{IW(a+16|0,1140,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Md(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3699,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3698,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3700,b);dZ(e,(Tfb(d)|0)+16|0);IW(e,3698,(Tfb(d)|0)+12|0);IW(e,3698,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3701,b);IW(e,3698,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,3702,b);dZ(e,(tfb(d)|0)+16|0);dZ(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3703,b);IW(e,3698,(cfb(d)|0)+28|0);dZ(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,3704,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3698,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,3705,b);b=wdb(d)|0;IW(e,3698,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3698,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,3706,b);return}case 9:{e=a+16|0;IW(e,3707,b);IW(e,3698,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,3708,b);return}case 11:{e=a+16|0;IW(e,3709,b);IW(e,3698,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,3710,b);IW(e,3698,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,3711,b);IW(e,3698,(efb(d)|0)+28|0);IW(e,3698,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,3712,b);IW(e,3698,(ieb(d)|0)+24|0);IW(e,3698,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,3713,b);IW(e,3698,(hdb(d)|0)+24|0);IW(e,3698,(hdb(d)|0)+20|0);IW(e,3698,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,3714,b);IW(e,3698,(Ldb(d)|0)+20|0);IW(e,3698,(Ldb(d)|0)+16|0);IW(e,3698,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,3715,b);IW(e,3698,(Kdb(d)|0)+16|0);IW(e,3698,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,3716,b);IW(e,3698,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,3717,b);IW(e,3698,(zdb(d)|0)+20|0);IW(e,3698,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,3718,b);IW(e,3698,(ydb(d)|0)+12|0);IW(e,3698,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,3719,b);IW(e,3698,(gdb(d)|0)+16|0);IW(e,3698,(gdb(d)|0)+12|0);IW(e,3698,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,3720,b);IW(e,3698,(geb(d)|0)+16|0);IW(e,3698,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,3721,b);IW(e,3698,(Hdb(d)|0)+12|0);IW(e,3698,(Hdb(d)|0)+16|0);IW(e,3698,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,3722,b);return}case 34:{e=a+16|0;IW(e,3723,b);IW(e,3698,(Jdb(d)|0)+8|0);IW(e,3698,(Jdb(d)|0)+12|0);IW(e,3698,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,3724,b);IW(e,3698,(Idb(d)|0)+8|0);IW(e,3698,(Idb(d)|0)+12|0);IW(e,3698,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,3725,b);return}case 15:{e=a+16|0;IW(e,3726,b);IW(e,3698,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,3727,b);IW(e,3698,(Veb(d)|0)+16|0);IW(e,3698,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,3728,b);IW(e,3698,(Teb(d)|0)+16|0);IW(e,3698,(Teb(d)|0)+12|0);IW(e,3698,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,3729,b);IW(e,3698,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,3730,b);dZ(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,3731,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3698,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,3732,b);return}case 22:{IW(a+16|0,3733,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Nd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1678,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1675,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1680,b);mZ(e,(Tfb(d)|0)+16|0);IW(e,1675,(Tfb(d)|0)+12|0);IW(e,1675,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1681,b);IW(e,1675,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1682,b);mZ(e,(tfb(d)|0)+16|0);mZ(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1683,b);IW(e,1675,(cfb(d)|0)+28|0);mZ(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1688,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1675,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1689,b);b=wdb(d)|0;IW(e,1675,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1675,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1690,b);return}case 9:{e=a+16|0;IW(e,1691,b);IW(e,1675,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1692,b);return}case 11:{e=a+16|0;IW(e,1693,b);IW(e,1675,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1694,b);IW(e,1675,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1695,b);IW(e,1675,(efb(d)|0)+28|0);IW(e,1675,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1696,b);IW(e,1675,(ieb(d)|0)+24|0);IW(e,1675,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1697,b);IW(e,1675,(hdb(d)|0)+24|0);IW(e,1675,(hdb(d)|0)+20|0);IW(e,1675,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1698,b);IW(e,1675,(Ldb(d)|0)+20|0);IW(e,1675,(Ldb(d)|0)+16|0);IW(e,1675,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1699,b);IW(e,1675,(Kdb(d)|0)+16|0);IW(e,1675,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1700,b);IW(e,1675,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1701,b);IW(e,1675,(zdb(d)|0)+20|0);IW(e,1675,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1702,b);IW(e,1675,(ydb(d)|0)+12|0);IW(e,1675,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1703,b);IW(e,1675,(gdb(d)|0)+16|0);IW(e,1675,(gdb(d)|0)+12|0);IW(e,1675,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1704,b);IW(e,1675,(geb(d)|0)+16|0);IW(e,1675,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1705,b);IW(e,1675,(Hdb(d)|0)+12|0);IW(e,1675,(Hdb(d)|0)+16|0);IW(e,1675,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1706,b);return}case 34:{e=a+16|0;IW(e,1707,b);IW(e,1675,(Jdb(d)|0)+8|0);IW(e,1675,(Jdb(d)|0)+12|0);IW(e,1675,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1708,b);IW(e,1675,(Idb(d)|0)+8|0);IW(e,1675,(Idb(d)|0)+12|0);IW(e,1675,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1709,b);return}case 15:{e=a+16|0;IW(e,1710,b);IW(e,1675,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1711,b);IW(e,1675,(Veb(d)|0)+16|0);IW(e,1675,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1712,b);IW(e,1675,(Teb(d)|0)+16|0);IW(e,1675,(Teb(d)|0)+12|0);IW(e,1675,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1713,b);IW(e,1675,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1684,b);mZ(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1714,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1675,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1715,b);return}case 22:{IW(a+16|0,1685,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Od(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,176,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,175,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,177,b);NX(e,(Tfb(d)|0)+16|0);IW(e,175,(Tfb(d)|0)+12|0);IW(e,175,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,178,b);IW(e,175,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,179,b);NX(e,(tfb(d)|0)+16|0);NX(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,180,b);IW(e,175,(cfb(d)|0)+28|0);NX(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,181,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,175,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,182,b);b=wdb(d)|0;IW(e,175,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,175,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,183,b);return}case 9:{e=a+16|0;IW(e,184,b);IW(e,175,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,185,b);return}case 11:{e=a+16|0;IW(e,186,b);IW(e,175,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,187,b);IW(e,175,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,188,b);IW(e,175,(efb(d)|0)+28|0);IW(e,175,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,189,b);IW(e,175,(ieb(d)|0)+24|0);IW(e,175,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,190,b);IW(e,175,(hdb(d)|0)+24|0);IW(e,175,(hdb(d)|0)+20|0);IW(e,175,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,191,b);IW(e,175,(Ldb(d)|0)+20|0);IW(e,175,(Ldb(d)|0)+16|0);IW(e,175,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,192,b);IW(e,175,(Kdb(d)|0)+16|0);IW(e,175,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,193,b);IW(e,175,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,194,b);IW(e,175,(zdb(d)|0)+20|0);IW(e,175,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,195,b);IW(e,175,(ydb(d)|0)+12|0);IW(e,175,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,196,b);IW(e,175,(gdb(d)|0)+16|0);IW(e,175,(gdb(d)|0)+12|0);IW(e,175,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,197,b);IW(e,175,(geb(d)|0)+16|0);IW(e,175,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,198,b);IW(e,175,(Hdb(d)|0)+12|0);IW(e,175,(Hdb(d)|0)+16|0);IW(e,175,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,199,b);return}case 34:{e=a+16|0;IW(e,200,b);IW(e,175,(Jdb(d)|0)+8|0);IW(e,175,(Jdb(d)|0)+12|0);IW(e,175,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,201,b);IW(e,175,(Idb(d)|0)+8|0);IW(e,175,(Idb(d)|0)+12|0);IW(e,175,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,202,b);return}case 15:{e=a+16|0;IW(e,203,b);IW(e,175,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,204,b);IW(e,175,(Veb(d)|0)+16|0);IW(e,175,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,205,b);IW(e,175,(Teb(d)|0)+16|0);IW(e,175,(Teb(d)|0)+12|0);IW(e,175,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,206,b);IW(e,175,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,207,b);NX(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,208,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,175,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,209,b);return}case 22:{IW(a+16|0,210,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Pd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,1494,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1493,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,1495,b);rZ(e,(Tfb(d)|0)+16|0);IW(e,1493,(Tfb(d)|0)+12|0);IW(e,1493,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,1496,b);IW(e,1493,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,1497,b);rZ(e,(tfb(d)|0)+16|0);rZ(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,1498,b);IW(e,1493,(cfb(d)|0)+28|0);rZ(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,1499,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1493,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,1500,b);b=wdb(d)|0;IW(e,1493,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1493,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,1501,b);return}case 9:{e=a+16|0;IW(e,1502,b);IW(e,1493,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,1503,b);return}case 11:{e=a+16|0;IW(e,1504,b);IW(e,1493,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,1505,b);IW(e,1493,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,1506,b);IW(e,1493,(efb(d)|0)+28|0);IW(e,1493,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,1507,b);IW(e,1493,(ieb(d)|0)+24|0);IW(e,1493,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,1508,b);IW(e,1493,(hdb(d)|0)+24|0);IW(e,1493,(hdb(d)|0)+20|0);IW(e,1493,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,1509,b);IW(e,1493,(Ldb(d)|0)+20|0);IW(e,1493,(Ldb(d)|0)+16|0);IW(e,1493,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,1510,b);IW(e,1493,(Kdb(d)|0)+16|0);IW(e,1493,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,1511,b);IW(e,1493,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,1512,b);IW(e,1493,(zdb(d)|0)+20|0);IW(e,1493,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,1513,b);IW(e,1493,(ydb(d)|0)+12|0);IW(e,1493,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,1514,b);IW(e,1493,(gdb(d)|0)+16|0);IW(e,1493,(gdb(d)|0)+12|0);IW(e,1493,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,1515,b);IW(e,1493,(geb(d)|0)+16|0);IW(e,1493,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,1516,b);IW(e,1493,(Hdb(d)|0)+12|0);IW(e,1493,(Hdb(d)|0)+16|0);IW(e,1493,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,1517,b);return}case 34:{e=a+16|0;IW(e,1518,b);IW(e,1493,(Jdb(d)|0)+8|0);IW(e,1493,(Jdb(d)|0)+12|0);IW(e,1493,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,1519,b);IW(e,1493,(Idb(d)|0)+8|0);IW(e,1493,(Idb(d)|0)+12|0);IW(e,1493,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,1520,b);return}case 15:{e=a+16|0;IW(e,1521,b);IW(e,1493,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,1522,b);IW(e,1493,(Veb(d)|0)+16|0);IW(e,1493,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,1523,b);IW(e,1493,(Teb(d)|0)+16|0);IW(e,1493,(Teb(d)|0)+12|0);IW(e,1493,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,1524,b);IW(e,1493,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,1525,b);rZ(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,1526,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,1493,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,1527,b);return}case 22:{IW(a+16|0,1528,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Qd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3974,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3973,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3975,b);yZ(e,(Tfb(d)|0)+16|0);IW(e,3973,(Tfb(d)|0)+12|0);IW(e,3973,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3976,b);IW(e,3973,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,3977,b);yZ(e,(tfb(d)|0)+16|0);yZ(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3978,b);IW(e,3973,(cfb(d)|0)+28|0);yZ(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,3979,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3973,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,3980,b);b=wdb(d)|0;IW(e,3973,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3973,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,3981,b);return}case 9:{e=a+16|0;IW(e,3982,b);IW(e,3973,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,3983,b);return}case 11:{e=a+16|0;IW(e,3984,b);IW(e,3973,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,3985,b);IW(e,3973,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,3986,b);IW(e,3973,(efb(d)|0)+28|0);IW(e,3973,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,3987,b);IW(e,3973,(ieb(d)|0)+24|0);IW(e,3973,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,3988,b);IW(e,3973,(hdb(d)|0)+24|0);IW(e,3973,(hdb(d)|0)+20|0);IW(e,3973,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,3989,b);IW(e,3973,(Ldb(d)|0)+20|0);IW(e,3973,(Ldb(d)|0)+16|0);IW(e,3973,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,3990,b);IW(e,3973,(Kdb(d)|0)+16|0);IW(e,3973,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,3991,b);IW(e,3973,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,3992,b);IW(e,3973,(zdb(d)|0)+20|0);IW(e,3973,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,3993,b);IW(e,3973,(ydb(d)|0)+12|0);IW(e,3973,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,3994,b);IW(e,3973,(gdb(d)|0)+16|0);IW(e,3973,(gdb(d)|0)+12|0);IW(e,3973,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,3995,b);IW(e,3973,(geb(d)|0)+16|0);IW(e,3973,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,3996,b);IW(e,3973,(Hdb(d)|0)+12|0);IW(e,3973,(Hdb(d)|0)+16|0);IW(e,3973,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,3997,b);return}case 34:{e=a+16|0;IW(e,3998,b);IW(e,3973,(Jdb(d)|0)+8|0);IW(e,3973,(Jdb(d)|0)+12|0);IW(e,3973,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,3999,b);IW(e,3973,(Idb(d)|0)+8|0);IW(e,3973,(Idb(d)|0)+12|0);IW(e,3973,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,4e3,b);return}case 15:{e=a+16|0;IW(e,4001,b);IW(e,3973,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,4002,b);IW(e,3973,(Veb(d)|0)+16|0);IW(e,3973,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,4003,b);IW(e,3973,(Teb(d)|0)+16|0);IW(e,3973,(Teb(d)|0)+12|0);IW(e,3973,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,4004,b);IW(e,3973,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,4005,b);yZ(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,4006,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3973,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,4007,b);return}case 22:{IW(a+16|0,4008,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Rd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,3938,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3937,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,3939,b);HZ(e,(Tfb(d)|0)+16|0);IW(e,3937,(Tfb(d)|0)+12|0);IW(e,3937,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,3940,b);IW(e,3937,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,3941,b);HZ(e,(tfb(d)|0)+16|0);HZ(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,3942,b);IW(e,3937,(cfb(d)|0)+28|0);HZ(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,3943,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3937,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,3944,b);b=wdb(d)|0;IW(e,3937,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3937,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,3945,b);return}case 9:{e=a+16|0;IW(e,3946,b);IW(e,3937,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,3947,b);return}case 11:{e=a+16|0;IW(e,3948,b);IW(e,3937,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,3949,b);IW(e,3937,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,3950,b);IW(e,3937,(efb(d)|0)+28|0);IW(e,3937,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,3951,b);IW(e,3937,(ieb(d)|0)+24|0);IW(e,3937,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,3952,b);IW(e,3937,(hdb(d)|0)+24|0);IW(e,3937,(hdb(d)|0)+20|0);IW(e,3937,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,3953,b);IW(e,3937,(Ldb(d)|0)+20|0);IW(e,3937,(Ldb(d)|0)+16|0);IW(e,3937,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,3954,b);IW(e,3937,(Kdb(d)|0)+16|0);IW(e,3937,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,3955,b);IW(e,3937,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,3956,b);IW(e,3937,(zdb(d)|0)+20|0);IW(e,3937,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,3957,b);IW(e,3937,(ydb(d)|0)+12|0);IW(e,3937,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,3958,b);IW(e,3937,(gdb(d)|0)+16|0);IW(e,3937,(gdb(d)|0)+12|0);IW(e,3937,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,3959,b);IW(e,3937,(geb(d)|0)+16|0);IW(e,3937,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,3960,b);IW(e,3937,(Hdb(d)|0)+12|0);IW(e,3937,(Hdb(d)|0)+16|0);IW(e,3937,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,3961,b);return}case 34:{e=a+16|0;IW(e,3962,b);IW(e,3937,(Jdb(d)|0)+8|0);IW(e,3937,(Jdb(d)|0)+12|0);IW(e,3937,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,3963,b);IW(e,3937,(Idb(d)|0)+8|0);IW(e,3937,(Idb(d)|0)+12|0);IW(e,3937,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,3964,b);return}case 15:{e=a+16|0;IW(e,3965,b);IW(e,3937,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,3966,b);IW(e,3937,(Veb(d)|0)+16|0);IW(e,3937,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,3967,b);IW(e,3937,(Teb(d)|0)+16|0);IW(e,3937,(Teb(d)|0)+12|0);IW(e,3937,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,3968,b);IW(e,3937,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,3969,b);HZ(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,3970,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,3937,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,3971,b);return}case 22:{IW(a+16|0,3972,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Sd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,579,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,566,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,580,b);DY(e,(Tfb(d)|0)+16|0);IW(e,566,(Tfb(d)|0)+12|0);IW(e,566,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,581,b);IW(e,566,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,582,b);DY(e,(tfb(d)|0)+16|0);DY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,583,b);IW(e,566,(cfb(d)|0)+28|0);DY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,584,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,566,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,585,b);b=wdb(d)|0;IW(e,566,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,566,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,586,b);return}case 9:{e=a+16|0;IW(e,587,b);IW(e,566,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,588,b);return}case 11:{e=a+16|0;IW(e,589,b);IW(e,566,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,590,b);IW(e,566,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,591,b);IW(e,566,(efb(d)|0)+28|0);IW(e,566,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,592,b);IW(e,566,(ieb(d)|0)+24|0);IW(e,566,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,593,b);IW(e,566,(hdb(d)|0)+24|0);IW(e,566,(hdb(d)|0)+20|0);IW(e,566,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,594,b);IW(e,566,(Ldb(d)|0)+20|0);IW(e,566,(Ldb(d)|0)+16|0);IW(e,566,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,595,b);IW(e,566,(Kdb(d)|0)+16|0);IW(e,566,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,596,b);IW(e,566,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,597,b);IW(e,566,(zdb(d)|0)+20|0);IW(e,566,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,598,b);IW(e,566,(ydb(d)|0)+12|0);IW(e,566,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,599,b);IW(e,566,(gdb(d)|0)+16|0);IW(e,566,(gdb(d)|0)+12|0);IW(e,566,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,600,b);IW(e,566,(geb(d)|0)+16|0);IW(e,566,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,601,b);IW(e,566,(Hdb(d)|0)+12|0);IW(e,566,(Hdb(d)|0)+16|0);IW(e,566,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,602,b);return}case 34:{e=a+16|0;IW(e,603,b);IW(e,566,(Jdb(d)|0)+8|0);IW(e,566,(Jdb(d)|0)+12|0);IW(e,566,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,604,b);IW(e,566,(Idb(d)|0)+8|0);IW(e,566,(Idb(d)|0)+12|0);IW(e,566,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,605,b);return}case 15:{e=a+16|0;IW(e,606,b);IW(e,566,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,607,b);IW(e,566,(Veb(d)|0)+16|0);IW(e,566,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,608,b);IW(e,566,(Teb(d)|0)+16|0);IW(e,566,(Teb(d)|0)+12|0);IW(e,566,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,609,b);IW(e,566,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,610,b);DY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,611,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,566,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,612,b);return}case 22:{IW(a+16|0,613,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Td(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,959,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,958,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,960,b);LY(e,(Tfb(d)|0)+16|0);IW(e,958,(Tfb(d)|0)+12|0);IW(e,958,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,961,b);IW(e,958,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,962,b);LY(e,(tfb(d)|0)+16|0);LY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,963,b);IW(e,958,(cfb(d)|0)+28|0);LY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,964,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,958,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,965,b);b=wdb(d)|0;IW(e,958,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,958,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,966,b);return}case 9:{e=a+16|0;IW(e,967,b);IW(e,958,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,968,b);return}case 11:{e=a+16|0;IW(e,969,b);IW(e,958,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,970,b);IW(e,958,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,971,b);IW(e,958,(efb(d)|0)+28|0);IW(e,958,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,972,b);IW(e,958,(ieb(d)|0)+24|0);IW(e,958,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,973,b);IW(e,958,(hdb(d)|0)+24|0);IW(e,958,(hdb(d)|0)+20|0);IW(e,958,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,974,b);IW(e,958,(Ldb(d)|0)+20|0);IW(e,958,(Ldb(d)|0)+16|0);IW(e,958,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,975,b);IW(e,958,(Kdb(d)|0)+16|0);IW(e,958,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,976,b);IW(e,958,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,977,b);IW(e,958,(zdb(d)|0)+20|0);IW(e,958,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,978,b);IW(e,958,(ydb(d)|0)+12|0);IW(e,958,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,979,b);IW(e,958,(gdb(d)|0)+16|0);IW(e,958,(gdb(d)|0)+12|0);IW(e,958,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,980,b);IW(e,958,(geb(d)|0)+16|0);IW(e,958,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,981,b);IW(e,958,(Hdb(d)|0)+12|0);IW(e,958,(Hdb(d)|0)+16|0);IW(e,958,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,982,b);return}case 34:{e=a+16|0;IW(e,983,b);IW(e,958,(Jdb(d)|0)+8|0);IW(e,958,(Jdb(d)|0)+12|0);IW(e,958,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,984,b);IW(e,958,(Idb(d)|0)+8|0);IW(e,958,(Idb(d)|0)+12|0);IW(e,958,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,985,b);return}case 15:{e=a+16|0;IW(e,986,b);IW(e,958,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,987,b);IW(e,958,(Veb(d)|0)+16|0);IW(e,958,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,988,b);IW(e,958,(Teb(d)|0)+16|0);IW(e,958,(Teb(d)|0)+12|0);IW(e,958,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,989,b);IW(e,958,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,990,b);LY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,991,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,958,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,992,b);return}case 22:{IW(a+16|0,993,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Ud(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,884,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,883,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,885,b);WY(e,(Tfb(d)|0)+16|0);IW(e,883,(Tfb(d)|0)+12|0);IW(e,883,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,886,b);IW(e,883,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,887,b);WY(e,(tfb(d)|0)+16|0);WY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,888,b);IW(e,883,(cfb(d)|0)+28|0);WY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,889,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,883,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,890,b);b=wdb(d)|0;IW(e,883,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,883,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,891,b);return}case 9:{e=a+16|0;IW(e,892,b);IW(e,883,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,893,b);return}case 11:{e=a+16|0;IW(e,894,b);IW(e,883,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,895,b);IW(e,883,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,896,b);IW(e,883,(efb(d)|0)+28|0);IW(e,883,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,897,b);IW(e,883,(ieb(d)|0)+24|0);IW(e,883,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,898,b);IW(e,883,(hdb(d)|0)+24|0);IW(e,883,(hdb(d)|0)+20|0);IW(e,883,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,899,b);IW(e,883,(Ldb(d)|0)+20|0);IW(e,883,(Ldb(d)|0)+16|0);IW(e,883,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,900,b);IW(e,883,(Kdb(d)|0)+16|0);IW(e,883,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,901,b);IW(e,883,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,902,b);IW(e,883,(zdb(d)|0)+20|0);IW(e,883,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,903,b);IW(e,883,(ydb(d)|0)+12|0);IW(e,883,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,904,b);IW(e,883,(gdb(d)|0)+16|0);IW(e,883,(gdb(d)|0)+12|0);IW(e,883,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,905,b);IW(e,883,(geb(d)|0)+16|0);IW(e,883,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,906,b);IW(e,883,(Hdb(d)|0)+12|0);IW(e,883,(Hdb(d)|0)+16|0);IW(e,883,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,907,b);return}case 34:{e=a+16|0;IW(e,908,b);IW(e,883,(Jdb(d)|0)+8|0);IW(e,883,(Jdb(d)|0)+12|0);IW(e,883,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,909,b);IW(e,883,(Idb(d)|0)+8|0);IW(e,883,(Idb(d)|0)+12|0);IW(e,883,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,910,b);return}case 15:{e=a+16|0;IW(e,911,b);IW(e,883,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,912,b);IW(e,883,(Veb(d)|0)+16|0);IW(e,883,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,913,b);IW(e,883,(Teb(d)|0)+16|0);IW(e,883,(Teb(d)|0)+12|0);IW(e,883,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,914,b);IW(e,883,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,915,b);WY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,916,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,883,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,917,b);return}case 22:{IW(a+16|0,918,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Vd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,848,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,845,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,849,b);XY(e,(Tfb(d)|0)+16|0);IW(e,845,(Tfb(d)|0)+12|0);IW(e,845,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,850,b);IW(e,845,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,851,b);XY(e,(tfb(d)|0)+16|0);XY(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,852,b);IW(e,845,(cfb(d)|0)+28|0);XY(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,853,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,845,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,854,b);b=wdb(d)|0;IW(e,845,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,845,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,855,b);return}case 9:{e=a+16|0;IW(e,856,b);IW(e,845,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,857,b);return}case 11:{e=a+16|0;IW(e,858,b);IW(e,845,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,859,b);IW(e,845,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,860,b);IW(e,845,(efb(d)|0)+28|0);IW(e,845,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,861,b);IW(e,845,(ieb(d)|0)+24|0);IW(e,845,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,862,b);IW(e,845,(hdb(d)|0)+24|0);IW(e,845,(hdb(d)|0)+20|0);IW(e,845,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,863,b);IW(e,845,(Ldb(d)|0)+20|0);IW(e,845,(Ldb(d)|0)+16|0);IW(e,845,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,864,b);IW(e,845,(Kdb(d)|0)+16|0);IW(e,845,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,865,b);IW(e,845,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,866,b);IW(e,845,(zdb(d)|0)+20|0);IW(e,845,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,867,b);IW(e,845,(ydb(d)|0)+12|0);IW(e,845,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,868,b);IW(e,845,(gdb(d)|0)+16|0);IW(e,845,(gdb(d)|0)+12|0);IW(e,845,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,869,b);IW(e,845,(geb(d)|0)+16|0);IW(e,845,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,870,b);IW(e,845,(Hdb(d)|0)+12|0);IW(e,845,(Hdb(d)|0)+16|0);IW(e,845,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,871,b);return}case 34:{e=a+16|0;IW(e,872,b);IW(e,845,(Jdb(d)|0)+8|0);IW(e,845,(Jdb(d)|0)+12|0);IW(e,845,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,873,b);IW(e,845,(Idb(d)|0)+8|0);IW(e,845,(Idb(d)|0)+12|0);IW(e,845,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,874,b);return}case 15:{e=a+16|0;IW(e,875,b);IW(e,845,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,876,b);IW(e,845,(Veb(d)|0)+16|0);IW(e,845,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,877,b);IW(e,845,(Teb(d)|0)+16|0);IW(e,845,(Teb(d)|0)+12|0);IW(e,845,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,878,b);IW(e,845,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,879,b);XY(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,880,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,845,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,881,b);return}case 22:{IW(a+16|0,882,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Wd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{e=a+16|0;IW(e,138,b);b=ufb(d)|0;d=b+12|0;b=WCb(c[b+16>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,135,uXa(d,a)|0);b=a}return}case 2:{e=a+16|0;IW(e,139,b);xZ(e,(Tfb(d)|0)+16|0);IW(e,135,(Tfb(d)|0)+12|0);IW(e,135,(Tfb(d)|0)+8|0);return}case 3:{e=a+16|0;IW(e,140,b);IW(e,135,(Efb(d)|0)+12|0);return}case 4:{e=a+16|0;IW(e,141,b);xZ(e,(tfb(d)|0)+16|0);xZ(e,(tfb(d)|0)+12|0);return}case 5:{e=a+16|0;IW(e,142,b);IW(e,135,(cfb(d)|0)+28|0);xZ(e,(cfb(d)|0)+32|0);return}case 6:{e=a+16|0;IW(e,143,b);b=Ffb(d)|0;d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,135,uXa(d,a)|0);b=a}return}case 7:{e=a+16|0;IW(e,144,b);b=wdb(d)|0;IW(e,135,(wdb(d)|0)+28|0);d=b+8|0;b=WCb(c[b+12>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,135,uXa(d,a)|0);b=a}return}case 8:{IW(a+16|0,145,b);return}case 9:{e=a+16|0;IW(e,146,b);IW(e,135,(Keb(d)|0)+12|0);return}case 10:{IW(a+16|0,147,b);return}case 11:{e=a+16|0;IW(e,148,b);IW(e,135,(feb(d)|0)+12|0);return}case 12:{e=a+16|0;IW(e,149,b);IW(e,135,(vfb(d)|0)+24|0);return}case 13:{e=a+16|0;IW(e,150,b);IW(e,135,(efb(d)|0)+28|0);IW(e,135,(efb(d)|0)+24|0);return}case 23:{e=a+16|0;IW(e,151,b);IW(e,135,(ieb(d)|0)+24|0);IW(e,135,(ieb(d)|0)+20|0);return}case 24:{e=a+16|0;IW(e,152,b);IW(e,135,(hdb(d)|0)+24|0);IW(e,135,(hdb(d)|0)+20|0);IW(e,135,(hdb(d)|0)+16|0);return}case 25:{e=a+16|0;IW(e,153,b);IW(e,135,(Ldb(d)|0)+20|0);IW(e,135,(Ldb(d)|0)+16|0);IW(e,135,(Ldb(d)|0)+12|0);return}case 26:{e=a+16|0;IW(e,154,b);IW(e,135,(Kdb(d)|0)+16|0);IW(e,135,(Kdb(d)|0)+12|0);return}case 27:{e=a+16|0;IW(e,155,b);IW(e,135,(Adb(d)|0)+12|0);return}case 28:{e=a+16|0;IW(e,156,b);IW(e,135,(zdb(d)|0)+20|0);IW(e,135,(zdb(d)|0)+12|0);return}case 29:{e=a+16|0;IW(e,157,b);IW(e,135,(ydb(d)|0)+12|0);IW(e,135,(ydb(d)|0)+8|0);return}case 30:{e=a+16|0;IW(e,158,b);IW(e,135,(gdb(d)|0)+16|0);IW(e,135,(gdb(d)|0)+12|0);IW(e,135,(gdb(d)|0)+8|0);return}case 31:{e=a+16|0;IW(e,159,b);IW(e,135,(geb(d)|0)+16|0);IW(e,135,(geb(d)|0)+12|0);return}case 32:{e=a+16|0;IW(e,160,b);IW(e,135,(Hdb(d)|0)+12|0);IW(e,135,(Hdb(d)|0)+16|0);IW(e,135,(Hdb(d)|0)+20|0);return}case 33:{IW(a+16|0,161,b);return}case 34:{e=a+16|0;IW(e,162,b);IW(e,135,(Jdb(d)|0)+8|0);IW(e,135,(Jdb(d)|0)+12|0);IW(e,135,(Jdb(d)|0)+16|0);return}case 35:{e=a+16|0;IW(e,163,b);IW(e,135,(Idb(d)|0)+8|0);IW(e,135,(Idb(d)|0)+12|0);IW(e,135,(Idb(d)|0)+16|0);return}case 14:{IW(a+16|0,164,b);return}case 15:{e=a+16|0;IW(e,165,b);IW(e,135,(dfb(d)|0)+12|0);return}case 16:{e=a+16|0;IW(e,166,b);IW(e,135,(Veb(d)|0)+16|0);IW(e,135,(Veb(d)|0)+12|0);return}case 17:{e=a+16|0;IW(e,167,b);IW(e,135,(Teb(d)|0)+16|0);IW(e,135,(Teb(d)|0)+12|0);IW(e,135,(Teb(d)|0)+8|0);return}case 18:{e=a+16|0;IW(e,168,b);IW(e,135,(xfb(d)|0)+8|0);return}case 19:{e=a+16|0;IW(e,169,b);xZ(e,(Ueb(d)|0)+8|0);return}case 20:{e=a+16|0;IW(e,170,b);b=wfb(d)|0;d=b+16|0;b=WCb(c[b+20>>2]|0)|0;while(1){a=b+-1|0;if((b|0)<=0)break;IW(e,135,uXa(d,a)|0);b=a}return}case 21:{IW(a+16|0,171,b);return}case 22:{IW(a+16|0,172,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Xd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,1054,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1053,uXa(e,b)|0);d=b}return}case 2:{IW(a,1055,b);WS(a,(Tfb(d)|0)+16|0);IW(a,1053,(Tfb(d)|0)+12|0);IW(a,1053,(Tfb(d)|0)+8|0);return}case 3:{IW(a,1056,b);IW(a,1053,(Efb(d)|0)+12|0);return}case 4:{IW(a,1057,b);WS(a,(tfb(d)|0)+16|0);WS(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,1058,b);IW(a,1053,(cfb(d)|0)+28|0);WS(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,1059,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1053,uXa(e,b)|0);d=b}return}case 7:{IW(a,1060,b);b=wdb(d)|0;IW(a,1053,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1053,uXa(e,b)|0);d=b}return}case 8:{IW(a,1061,b);return}case 9:{IW(a,1062,b);IW(a,1053,(Keb(d)|0)+12|0);return}case 10:{IW(a,1063,b);return}case 11:{IW(a,1064,b);IW(a,1053,(feb(d)|0)+12|0);return}case 12:{IW(a,1065,b);IW(a,1053,(vfb(d)|0)+24|0);return}case 13:{IW(a,1066,b);IW(a,1053,(efb(d)|0)+28|0);IW(a,1053,(efb(d)|0)+24|0);return}case 23:{IW(a,1067,b);IW(a,1053,(ieb(d)|0)+24|0);IW(a,1053,(ieb(d)|0)+20|0);return}case 24:{IW(a,1068,b);IW(a,1053,(hdb(d)|0)+24|0);IW(a,1053,(hdb(d)|0)+20|0);IW(a,1053,(hdb(d)|0)+16|0);return}case 25:{IW(a,1069,b);IW(a,1053,(Ldb(d)|0)+20|0);IW(a,1053,(Ldb(d)|0)+16|0);IW(a,1053,(Ldb(d)|0)+12|0);return}case 26:{IW(a,1070,b);IW(a,1053,(Kdb(d)|0)+16|0);IW(a,1053,(Kdb(d)|0)+12|0);return}case 27:{IW(a,1071,b);IW(a,1053,(Adb(d)|0)+12|0);return}case 28:{IW(a,1072,b);IW(a,1053,(zdb(d)|0)+20|0);IW(a,1053,(zdb(d)|0)+12|0);return}case 29:{IW(a,1073,b);IW(a,1053,(ydb(d)|0)+12|0);IW(a,1053,(ydb(d)|0)+8|0);return}case 30:{IW(a,1074,b);IW(a,1053,(gdb(d)|0)+16|0);IW(a,1053,(gdb(d)|0)+12|0);IW(a,1053,(gdb(d)|0)+8|0);return}case 31:{IW(a,1075,b);IW(a,1053,(geb(d)|0)+16|0);IW(a,1053,(geb(d)|0)+12|0);return}case 32:{IW(a,1076,b);IW(a,1053,(Hdb(d)|0)+12|0);IW(a,1053,(Hdb(d)|0)+16|0);IW(a,1053,(Hdb(d)|0)+20|0);return}case 33:{IW(a,1077,b);return}case 34:{IW(a,1078,b);IW(a,1053,(Jdb(d)|0)+8|0);IW(a,1053,(Jdb(d)|0)+12|0);IW(a,1053,(Jdb(d)|0)+16|0);return}case 35:{IW(a,1079,b);IW(a,1053,(Idb(d)|0)+8|0);IW(a,1053,(Idb(d)|0)+12|0);IW(a,1053,(Idb(d)|0)+16|0);return}case 14:{IW(a,1080,b);return}case 15:{IW(a,1081,b);IW(a,1053,(dfb(d)|0)+12|0);return}case 16:{IW(a,1082,b);IW(a,1053,(Veb(d)|0)+16|0);IW(a,1053,(Veb(d)|0)+12|0);return}case 17:{IW(a,1083,b);IW(a,1053,(Teb(d)|0)+16|0);IW(a,1053,(Teb(d)|0)+12|0);IW(a,1053,(Teb(d)|0)+8|0);return}case 18:{IW(a,1084,b);IW(a,1053,(xfb(d)|0)+8|0);return}case 19:{IW(a,1085,b);WS(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,1086,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1053,uXa(e,b)|0);d=b}return}case 21:{IW(a,1087,b);return}case 22:{IW(a,1088,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Yd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,4073,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,4072,uXa(e,b)|0);d=b}return}case 2:{IW(a,4074,b);eT(a,(Tfb(d)|0)+16|0);IW(a,4072,(Tfb(d)|0)+12|0);IW(a,4072,(Tfb(d)|0)+8|0);return}case 3:{IW(a,4075,b);IW(a,4072,(Efb(d)|0)+12|0);return}case 4:{IW(a,4076,b);eT(a,(tfb(d)|0)+16|0);eT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,4077,b);IW(a,4072,(cfb(d)|0)+28|0);eT(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,4078,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,4072,uXa(e,b)|0);d=b}return}case 7:{IW(a,4079,b);b=wdb(d)|0;IW(a,4072,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,4072,uXa(e,b)|0);d=b}return}case 8:{IW(a,4080,b);return}case 9:{IW(a,4081,b);IW(a,4072,(Keb(d)|0)+12|0);return}case 10:{IW(a,4082,b);return}case 11:{IW(a,4083,b);IW(a,4072,(feb(d)|0)+12|0);return}case 12:{IW(a,4084,b);IW(a,4072,(vfb(d)|0)+24|0);return}case 13:{IW(a,4085,b);IW(a,4072,(efb(d)|0)+28|0);IW(a,4072,(efb(d)|0)+24|0);return}case 23:{IW(a,4086,b);IW(a,4072,(ieb(d)|0)+24|0);IW(a,4072,(ieb(d)|0)+20|0);return}case 24:{IW(a,4087,b);IW(a,4072,(hdb(d)|0)+24|0);IW(a,4072,(hdb(d)|0)+20|0);IW(a,4072,(hdb(d)|0)+16|0);return}case 25:{IW(a,4088,b);IW(a,4072,(Ldb(d)|0)+20|0);IW(a,4072,(Ldb(d)|0)+16|0);IW(a,4072,(Ldb(d)|0)+12|0);return}case 26:{IW(a,4089,b);IW(a,4072,(Kdb(d)|0)+16|0);IW(a,4072,(Kdb(d)|0)+12|0);return}case 27:{IW(a,4090,b);IW(a,4072,(Adb(d)|0)+12|0);return}case 28:{IW(a,4091,b);IW(a,4072,(zdb(d)|0)+20|0);IW(a,4072,(zdb(d)|0)+12|0);return}case 29:{IW(a,4092,b);IW(a,4072,(ydb(d)|0)+12|0);IW(a,4072,(ydb(d)|0)+8|0);return}case 30:{IW(a,4093,b);IW(a,4072,(gdb(d)|0)+16|0);IW(a,4072,(gdb(d)|0)+12|0);IW(a,4072,(gdb(d)|0)+8|0);return}case 31:{IW(a,4094,b);IW(a,4072,(geb(d)|0)+16|0);IW(a,4072,(geb(d)|0)+12|0);return}case 32:{IW(a,4095,b);IW(a,4072,(Hdb(d)|0)+12|0);IW(a,4072,(Hdb(d)|0)+16|0);IW(a,4072,(Hdb(d)|0)+20|0);return}case 33:{IW(a,4096,b);return}case 34:{IW(a,4097,b);IW(a,4072,(Jdb(d)|0)+8|0);IW(a,4072,(Jdb(d)|0)+12|0);IW(a,4072,(Jdb(d)|0)+16|0);return}case 35:{IW(a,4098,b);IW(a,4072,(Idb(d)|0)+8|0);IW(a,4072,(Idb(d)|0)+12|0);IW(a,4072,(Idb(d)|0)+16|0);return}case 14:{IW(a,4099,b);return}case 15:{IW(a,4100,b);IW(a,4072,(dfb(d)|0)+12|0);return}case 16:{IW(a,4101,b);IW(a,4072,(Veb(d)|0)+16|0);IW(a,4072,(Veb(d)|0)+12|0);return}case 17:{IW(a,4102,b);IW(a,4072,(Teb(d)|0)+16|0);IW(a,4072,(Teb(d)|0)+12|0);IW(a,4072,(Teb(d)|0)+8|0);return}case 18:{IW(a,4103,b);IW(a,4072,(xfb(d)|0)+8|0);return}case 19:{IW(a,4104,b);eT(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,4105,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,4072,uXa(e,b)|0);d=b}return}case 21:{IW(a,4106,b);return}case 22:{IW(a,4107,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Zd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3101,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3100,uXa(e,b)|0);d=b}return}case 2:{IW(a,3103,b);NT(a,(Tfb(d)|0)+16|0);IW(a,3100,(Tfb(d)|0)+12|0);IW(a,3100,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3104,b);IW(a,3100,(Efb(d)|0)+12|0);return}case 4:{IW(a,3105,b);NT(a,(tfb(d)|0)+16|0);NT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3106,b);IW(a,3100,(cfb(d)|0)+28|0);NT(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,3109,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3100,uXa(e,b)|0);d=b}return}case 7:{IW(a,3110,b);b=wdb(d)|0;IW(a,3100,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3100,uXa(e,b)|0);d=b}return}case 8:{IW(a,3111,b);return}case 9:{IW(a,3112,b);IW(a,3100,(Keb(d)|0)+12|0);return}case 10:{IW(a,3113,b);return}case 11:{IW(a,3114,b);IW(a,3100,(feb(d)|0)+12|0);return}case 12:{IW(a,3115,b);IW(a,3100,(vfb(d)|0)+24|0);return}case 13:{IW(a,3116,b);IW(a,3100,(efb(d)|0)+28|0);IW(a,3100,(efb(d)|0)+24|0);return}case 23:{IW(a,3117,b);IW(a,3100,(ieb(d)|0)+24|0);IW(a,3100,(ieb(d)|0)+20|0);return}case 24:{IW(a,3118,b);IW(a,3100,(hdb(d)|0)+24|0);IW(a,3100,(hdb(d)|0)+20|0);IW(a,3100,(hdb(d)|0)+16|0);return}case 25:{IW(a,3119,b);IW(a,3100,(Ldb(d)|0)+20|0);IW(a,3100,(Ldb(d)|0)+16|0);IW(a,3100,(Ldb(d)|0)+12|0);return}case 26:{IW(a,3120,b);IW(a,3100,(Kdb(d)|0)+16|0);IW(a,3100,(Kdb(d)|0)+12|0);return}case 27:{IW(a,3121,b);IW(a,3100,(Adb(d)|0)+12|0);return}case 28:{IW(a,3122,b);IW(a,3100,(zdb(d)|0)+20|0);IW(a,3100,(zdb(d)|0)+12|0);return}case 29:{IW(a,3123,b);IW(a,3100,(ydb(d)|0)+12|0);IW(a,3100,(ydb(d)|0)+8|0);return}case 30:{IW(a,3124,b);IW(a,3100,(gdb(d)|0)+16|0);IW(a,3100,(gdb(d)|0)+12|0);IW(a,3100,(gdb(d)|0)+8|0);return}case 31:{IW(a,3125,b);IW(a,3100,(geb(d)|0)+16|0);IW(a,3100,(geb(d)|0)+12|0);return}case 32:{IW(a,3126,b);IW(a,3100,(Hdb(d)|0)+12|0);IW(a,3100,(Hdb(d)|0)+16|0);IW(a,3100,(Hdb(d)|0)+20|0);return}case 33:{IW(a,3127,b);return}case 34:{IW(a,3128,b);IW(a,3100,(Jdb(d)|0)+8|0);IW(a,3100,(Jdb(d)|0)+12|0);IW(a,3100,(Jdb(d)|0)+16|0);return}case 35:{IW(a,3129,b);IW(a,3100,(Idb(d)|0)+8|0);IW(a,3100,(Idb(d)|0)+12|0);IW(a,3100,(Idb(d)|0)+16|0);return}case 14:{IW(a,3130,b);return}case 15:{IW(a,3131,b);IW(a,3100,(dfb(d)|0)+12|0);return}case 16:{IW(a,3132,b);IW(a,3100,(Veb(d)|0)+16|0);IW(a,3100,(Veb(d)|0)+12|0);return}case 17:{IW(a,3133,b);IW(a,3100,(Teb(d)|0)+16|0);IW(a,3100,(Teb(d)|0)+12|0);IW(a,3100,(Teb(d)|0)+8|0);return}case 18:{IW(a,3134,b);IW(a,3100,(xfb(d)|0)+8|0);return}case 19:{IW(a,3107,b);NT(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,3135,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3100,uXa(e,b)|0);d=b}return}case 21:{IW(a,3136,b);return}case 22:{IW(a,3108,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function _d(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3375,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3374,uXa(e,b)|0);d=b}return}case 2:{IW(a,3377,b);OT(a,(Tfb(d)|0)+16|0);IW(a,3374,(Tfb(d)|0)+12|0);IW(a,3374,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3378,b);IW(a,3374,(Efb(d)|0)+12|0);return}case 4:{IW(a,3379,b);OT(a,(tfb(d)|0)+16|0);OT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3380,b);IW(a,3374,(cfb(d)|0)+28|0);OT(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,3383,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3374,uXa(e,b)|0);d=b}return}case 7:{IW(a,3384,b);b=wdb(d)|0;IW(a,3374,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3374,uXa(e,b)|0);d=b}return}case 8:{IW(a,3385,b);return}case 9:{IW(a,3386,b);IW(a,3374,(Keb(d)|0)+12|0);return}case 10:{IW(a,3387,b);return}case 11:{IW(a,3388,b);IW(a,3374,(feb(d)|0)+12|0);return}case 12:{IW(a,3389,b);IW(a,3374,(vfb(d)|0)+24|0);return}case 13:{IW(a,3390,b);IW(a,3374,(efb(d)|0)+28|0);IW(a,3374,(efb(d)|0)+24|0);return}case 23:{IW(a,3391,b);IW(a,3374,(ieb(d)|0)+24|0);IW(a,3374,(ieb(d)|0)+20|0);return}case 24:{IW(a,3392,b);IW(a,3374,(hdb(d)|0)+24|0);IW(a,3374,(hdb(d)|0)+20|0);IW(a,3374,(hdb(d)|0)+16|0);return}case 25:{IW(a,3393,b);IW(a,3374,(Ldb(d)|0)+20|0);IW(a,3374,(Ldb(d)|0)+16|0);IW(a,3374,(Ldb(d)|0)+12|0);return}case 26:{IW(a,3394,b);IW(a,3374,(Kdb(d)|0)+16|0);IW(a,3374,(Kdb(d)|0)+12|0);return}case 27:{IW(a,3395,b);IW(a,3374,(Adb(d)|0)+12|0);return}case 28:{IW(a,3396,b);IW(a,3374,(zdb(d)|0)+20|0);IW(a,3374,(zdb(d)|0)+12|0);return}case 29:{IW(a,3397,b);IW(a,3374,(ydb(d)|0)+12|0);IW(a,3374,(ydb(d)|0)+8|0);return}case 30:{IW(a,3398,b);IW(a,3374,(gdb(d)|0)+16|0);IW(a,3374,(gdb(d)|0)+12|0);IW(a,3374,(gdb(d)|0)+8|0);return}case 31:{IW(a,3399,b);IW(a,3374,(geb(d)|0)+16|0);IW(a,3374,(geb(d)|0)+12|0);return}case 32:{IW(a,3400,b);IW(a,3374,(Hdb(d)|0)+12|0);IW(a,3374,(Hdb(d)|0)+16|0);IW(a,3374,(Hdb(d)|0)+20|0);return}case 33:{IW(a,3401,b);return}case 34:{IW(a,3402,b);IW(a,3374,(Jdb(d)|0)+8|0);IW(a,3374,(Jdb(d)|0)+12|0);IW(a,3374,(Jdb(d)|0)+16|0);return}case 35:{IW(a,3403,b);IW(a,3374,(Idb(d)|0)+8|0);IW(a,3374,(Idb(d)|0)+12|0);IW(a,3374,(Idb(d)|0)+16|0);return}case 14:{IW(a,3404,b);return}case 15:{IW(a,3405,b);IW(a,3374,(dfb(d)|0)+12|0);return}case 16:{IW(a,3406,b);IW(a,3374,(Veb(d)|0)+16|0);IW(a,3374,(Veb(d)|0)+12|0);return}case 17:{IW(a,3407,b);IW(a,3374,(Teb(d)|0)+16|0);IW(a,3374,(Teb(d)|0)+12|0);IW(a,3374,(Teb(d)|0)+8|0);return}case 18:{IW(a,3408,b);IW(a,3374,(xfb(d)|0)+8|0);return}case 19:{IW(a,3381,b);OT(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,3409,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3374,uXa(e,b)|0);d=b}return}case 21:{IW(a,3410,b);return}case 22:{IW(a,3382,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function $d(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3256,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3255,uXa(e,b)|0);d=b}return}case 2:{IW(a,3258,b);PT(a,(Tfb(d)|0)+16|0);IW(a,3255,(Tfb(d)|0)+12|0);IW(a,3255,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3259,b);IW(a,3255,(Efb(d)|0)+12|0);return}case 4:{IW(a,3260,b);PT(a,(tfb(d)|0)+16|0);PT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3261,b);IW(a,3255,(cfb(d)|0)+28|0);PT(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,3264,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3255,uXa(e,b)|0);d=b}return}case 7:{IW(a,3265,b);b=wdb(d)|0;IW(a,3255,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3255,uXa(e,b)|0);d=b}return}case 8:{IW(a,3266,b);return}case 9:{IW(a,3267,b);IW(a,3255,(Keb(d)|0)+12|0);return}case 10:{IW(a,3268,b);return}case 11:{IW(a,3269,b);IW(a,3255,(feb(d)|0)+12|0);return}case 12:{IW(a,3270,b);IW(a,3255,(vfb(d)|0)+24|0);return}case 13:{IW(a,3271,b);IW(a,3255,(efb(d)|0)+28|0);IW(a,3255,(efb(d)|0)+24|0);return}case 23:{IW(a,3272,b);IW(a,3255,(ieb(d)|0)+24|0);IW(a,3255,(ieb(d)|0)+20|0);return}case 24:{IW(a,3273,b);IW(a,3255,(hdb(d)|0)+24|0);IW(a,3255,(hdb(d)|0)+20|0);IW(a,3255,(hdb(d)|0)+16|0);return}case 25:{IW(a,3274,b);IW(a,3255,(Ldb(d)|0)+20|0);IW(a,3255,(Ldb(d)|0)+16|0);IW(a,3255,(Ldb(d)|0)+12|0);return}case 26:{IW(a,3275,b);IW(a,3255,(Kdb(d)|0)+16|0);IW(a,3255,(Kdb(d)|0)+12|0);return}case 27:{IW(a,3276,b);IW(a,3255,(Adb(d)|0)+12|0);return}case 28:{IW(a,3277,b);IW(a,3255,(zdb(d)|0)+20|0);IW(a,3255,(zdb(d)|0)+12|0);return}case 29:{IW(a,3278,b);IW(a,3255,(ydb(d)|0)+12|0);IW(a,3255,(ydb(d)|0)+8|0);return}case 30:{IW(a,3279,b);IW(a,3255,(gdb(d)|0)+16|0);IW(a,3255,(gdb(d)|0)+12|0);IW(a,3255,(gdb(d)|0)+8|0);return}case 31:{IW(a,3280,b);IW(a,3255,(geb(d)|0)+16|0);IW(a,3255,(geb(d)|0)+12|0);return}case 32:{IW(a,3281,b);IW(a,3255,(Hdb(d)|0)+12|0);IW(a,3255,(Hdb(d)|0)+16|0);IW(a,3255,(Hdb(d)|0)+20|0);return}case 33:{IW(a,3282,b);return}case 34:{IW(a,3283,b);IW(a,3255,(Jdb(d)|0)+8|0);IW(a,3255,(Jdb(d)|0)+12|0);IW(a,3255,(Jdb(d)|0)+16|0);return}case 35:{IW(a,3284,b);IW(a,3255,(Idb(d)|0)+8|0);IW(a,3255,(Idb(d)|0)+12|0);IW(a,3255,(Idb(d)|0)+16|0);return}case 14:{IW(a,3285,b);return}case 15:{IW(a,3286,b);IW(a,3255,(dfb(d)|0)+12|0);return}case 16:{IW(a,3287,b);IW(a,3255,(Veb(d)|0)+16|0);IW(a,3255,(Veb(d)|0)+12|0);return}case 17:{IW(a,3288,b);IW(a,3255,(Teb(d)|0)+16|0);IW(a,3255,(Teb(d)|0)+12|0);IW(a,3255,(Teb(d)|0)+8|0);return}case 18:{IW(a,3289,b);IW(a,3255,(xfb(d)|0)+8|0);return}case 19:{IW(a,3262,b);PT(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,3290,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3255,uXa(e,b)|0);d=b}return}case 21:{IW(a,3291,b);return}case 22:{IW(a,3263,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ae(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3494,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3493,uXa(e,b)|0);d=b}return}case 2:{IW(a,3496,b);QT(a,(Tfb(d)|0)+16|0);IW(a,3493,(Tfb(d)|0)+12|0);IW(a,3493,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3497,b);IW(a,3493,(Efb(d)|0)+12|0);return}case 4:{IW(a,3498,b);QT(a,(tfb(d)|0)+16|0);QT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3499,b);IW(a,3493,(cfb(d)|0)+28|0);QT(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,3502,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3493,uXa(e,b)|0);d=b}return}case 7:{IW(a,3503,b);b=wdb(d)|0;IW(a,3493,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3493,uXa(e,b)|0);d=b}return}case 8:{IW(a,3504,b);return}case 9:{IW(a,3505,b);IW(a,3493,(Keb(d)|0)+12|0);return}case 10:{IW(a,3506,b);return}case 11:{IW(a,3507,b);IW(a,3493,(feb(d)|0)+12|0);return}case 12:{IW(a,3508,b);IW(a,3493,(vfb(d)|0)+24|0);return}case 13:{IW(a,3509,b);IW(a,3493,(efb(d)|0)+28|0);IW(a,3493,(efb(d)|0)+24|0);return}case 23:{IW(a,3510,b);IW(a,3493,(ieb(d)|0)+24|0);IW(a,3493,(ieb(d)|0)+20|0);return}case 24:{IW(a,3511,b);IW(a,3493,(hdb(d)|0)+24|0);IW(a,3493,(hdb(d)|0)+20|0);IW(a,3493,(hdb(d)|0)+16|0);return}case 25:{IW(a,3512,b);IW(a,3493,(Ldb(d)|0)+20|0);IW(a,3493,(Ldb(d)|0)+16|0);IW(a,3493,(Ldb(d)|0)+12|0);return}case 26:{IW(a,3513,b);IW(a,3493,(Kdb(d)|0)+16|0);IW(a,3493,(Kdb(d)|0)+12|0);return}case 27:{IW(a,3514,b);IW(a,3493,(Adb(d)|0)+12|0);return}case 28:{IW(a,3515,b);IW(a,3493,(zdb(d)|0)+20|0);IW(a,3493,(zdb(d)|0)+12|0);return}case 29:{IW(a,3516,b);IW(a,3493,(ydb(d)|0)+12|0);IW(a,3493,(ydb(d)|0)+8|0);return}case 30:{IW(a,3517,b);IW(a,3493,(gdb(d)|0)+16|0);IW(a,3493,(gdb(d)|0)+12|0);IW(a,3493,(gdb(d)|0)+8|0);return}case 31:{IW(a,3518,b);IW(a,3493,(geb(d)|0)+16|0);IW(a,3493,(geb(d)|0)+12|0);return}case 32:{IW(a,3519,b);IW(a,3493,(Hdb(d)|0)+12|0);IW(a,3493,(Hdb(d)|0)+16|0);IW(a,3493,(Hdb(d)|0)+20|0);return}case 33:{IW(a,3520,b);return}case 34:{IW(a,3521,b);IW(a,3493,(Jdb(d)|0)+8|0);IW(a,3493,(Jdb(d)|0)+12|0);IW(a,3493,(Jdb(d)|0)+16|0);return}case 35:{IW(a,3522,b);IW(a,3493,(Idb(d)|0)+8|0);IW(a,3493,(Idb(d)|0)+12|0);IW(a,3493,(Idb(d)|0)+16|0);return}case 14:{IW(a,3523,b);return}case 15:{IW(a,3524,b);IW(a,3493,(dfb(d)|0)+12|0);return}case 16:{IW(a,3525,b);IW(a,3493,(Veb(d)|0)+16|0);IW(a,3493,(Veb(d)|0)+12|0);return}case 17:{IW(a,3526,b);IW(a,3493,(Teb(d)|0)+16|0);IW(a,3493,(Teb(d)|0)+12|0);IW(a,3493,(Teb(d)|0)+8|0);return}case 18:{IW(a,3527,b);IW(a,3493,(xfb(d)|0)+8|0);return}case 19:{IW(a,3500,b);QT(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,3528,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3493,uXa(e,b)|0);d=b}return}case 21:{IW(a,3529,b);return}case 22:{IW(a,3501,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function be(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3613,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3612,uXa(e,b)|0);d=b}return}case 2:{IW(a,3615,b);RT(a,(Tfb(d)|0)+16|0);IW(a,3612,(Tfb(d)|0)+12|0);IW(a,3612,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3616,b);IW(a,3612,(Efb(d)|0)+12|0);return}case 4:{IW(a,3617,b);RT(a,(tfb(d)|0)+16|0);RT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3618,b);IW(a,3612,(cfb(d)|0)+28|0);RT(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,3621,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3612,uXa(e,b)|0);d=b}return}case 7:{IW(a,3622,b);b=wdb(d)|0;IW(a,3612,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3612,uXa(e,b)|0);d=b}return}case 8:{IW(a,3623,b);return}case 9:{IW(a,3624,b);IW(a,3612,(Keb(d)|0)+12|0);return}case 10:{IW(a,3625,b);return}case 11:{IW(a,3626,b);IW(a,3612,(feb(d)|0)+12|0);return}case 12:{IW(a,3627,b);IW(a,3612,(vfb(d)|0)+24|0);return}case 13:{IW(a,3628,b);IW(a,3612,(efb(d)|0)+28|0);IW(a,3612,(efb(d)|0)+24|0);return}case 23:{IW(a,3629,b);IW(a,3612,(ieb(d)|0)+24|0);IW(a,3612,(ieb(d)|0)+20|0);return}case 24:{IW(a,3630,b);IW(a,3612,(hdb(d)|0)+24|0);IW(a,3612,(hdb(d)|0)+20|0);IW(a,3612,(hdb(d)|0)+16|0);return}case 25:{IW(a,3631,b);IW(a,3612,(Ldb(d)|0)+20|0);IW(a,3612,(Ldb(d)|0)+16|0);IW(a,3612,(Ldb(d)|0)+12|0);return}case 26:{IW(a,3632,b);IW(a,3612,(Kdb(d)|0)+16|0);IW(a,3612,(Kdb(d)|0)+12|0);return}case 27:{IW(a,3633,b);IW(a,3612,(Adb(d)|0)+12|0);return}case 28:{IW(a,3634,b);IW(a,3612,(zdb(d)|0)+20|0);IW(a,3612,(zdb(d)|0)+12|0);return}case 29:{IW(a,3635,b);IW(a,3612,(ydb(d)|0)+12|0);IW(a,3612,(ydb(d)|0)+8|0);return}case 30:{IW(a,3636,b);IW(a,3612,(gdb(d)|0)+16|0);IW(a,3612,(gdb(d)|0)+12|0);IW(a,3612,(gdb(d)|0)+8|0);return}case 31:{IW(a,3637,b);IW(a,3612,(geb(d)|0)+16|0);IW(a,3612,(geb(d)|0)+12|0);return}case 32:{IW(a,3638,b);IW(a,3612,(Hdb(d)|0)+12|0);IW(a,3612,(Hdb(d)|0)+16|0);IW(a,3612,(Hdb(d)|0)+20|0);return}case 33:{IW(a,3639,b);return}case 34:{IW(a,3640,b);IW(a,3612,(Jdb(d)|0)+8|0);IW(a,3612,(Jdb(d)|0)+12|0);IW(a,3612,(Jdb(d)|0)+16|0);return}case 35:{IW(a,3641,b);IW(a,3612,(Idb(d)|0)+8|0);IW(a,3612,(Idb(d)|0)+12|0);IW(a,3612,(Idb(d)|0)+16|0);return}case 14:{IW(a,3642,b);return}case 15:{IW(a,3643,b);IW(a,3612,(dfb(d)|0)+12|0);return}case 16:{IW(a,3644,b);IW(a,3612,(Veb(d)|0)+16|0);IW(a,3612,(Veb(d)|0)+12|0);return}case 17:{IW(a,3645,b);IW(a,3612,(Teb(d)|0)+16|0);IW(a,3612,(Teb(d)|0)+12|0);IW(a,3612,(Teb(d)|0)+8|0);return}case 18:{IW(a,3646,b);IW(a,3612,(xfb(d)|0)+8|0);return}case 19:{IW(a,3619,b);RT(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,3647,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3612,uXa(e,b)|0);d=b}return}case 21:{IW(a,3648,b);return}case 22:{IW(a,3620,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ce(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3065,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3064,uXa(e,b)|0);d=b}return}case 2:{IW(a,3066,b);VT(a,(Tfb(d)|0)+16|0);IW(a,3064,(Tfb(d)|0)+12|0);IW(a,3064,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3067,b);IW(a,3064,(Efb(d)|0)+12|0);return}case 4:{IW(a,3068,b);VT(a,(tfb(d)|0)+16|0);VT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3069,b);IW(a,3064,(cfb(d)|0)+28|0);VT(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,3070,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3064,uXa(e,b)|0);d=b}return}case 7:{IW(a,3071,b);b=wdb(d)|0;IW(a,3064,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3064,uXa(e,b)|0);d=b}return}case 8:{IW(a,3072,b);return}case 9:{IW(a,3073,b);IW(a,3064,(Keb(d)|0)+12|0);return}case 10:{IW(a,3074,b);return}case 11:{IW(a,3075,b);IW(a,3064,(feb(d)|0)+12|0);return}case 12:{IW(a,3076,b);IW(a,3064,(vfb(d)|0)+24|0);return}case 13:{IW(a,3077,b);IW(a,3064,(efb(d)|0)+28|0);IW(a,3064,(efb(d)|0)+24|0);return}case 23:{IW(a,3078,b);IW(a,3064,(ieb(d)|0)+24|0);IW(a,3064,(ieb(d)|0)+20|0);return}case 24:{IW(a,3079,b);IW(a,3064,(hdb(d)|0)+24|0);IW(a,3064,(hdb(d)|0)+20|0);IW(a,3064,(hdb(d)|0)+16|0);return}case 25:{IW(a,3080,b);IW(a,3064,(Ldb(d)|0)+20|0);IW(a,3064,(Ldb(d)|0)+16|0);IW(a,3064,(Ldb(d)|0)+12|0);return}case 26:{IW(a,3081,b);IW(a,3064,(Kdb(d)|0)+16|0);IW(a,3064,(Kdb(d)|0)+12|0);return}case 27:{IW(a,3082,b);IW(a,3064,(Adb(d)|0)+12|0);return}case 28:{IW(a,3083,b);IW(a,3064,(zdb(d)|0)+20|0);IW(a,3064,(zdb(d)|0)+12|0);return}case 29:{IW(a,3084,b);IW(a,3064,(ydb(d)|0)+12|0);IW(a,3064,(ydb(d)|0)+8|0);return}case 30:{IW(a,3085,b);IW(a,3064,(gdb(d)|0)+16|0);IW(a,3064,(gdb(d)|0)+12|0);IW(a,3064,(gdb(d)|0)+8|0);return}case 31:{IW(a,3086,b);IW(a,3064,(geb(d)|0)+16|0);IW(a,3064,(geb(d)|0)+12|0);return}case 32:{IW(a,3087,b);IW(a,3064,(Hdb(d)|0)+12|0);IW(a,3064,(Hdb(d)|0)+16|0);IW(a,3064,(Hdb(d)|0)+20|0);return}case 33:{IW(a,3088,b);return}case 34:{IW(a,3089,b);IW(a,3064,(Jdb(d)|0)+8|0);IW(a,3064,(Jdb(d)|0)+12|0);IW(a,3064,(Jdb(d)|0)+16|0);return}case 35:{IW(a,3090,b);IW(a,3064,(Idb(d)|0)+8|0);IW(a,3064,(Idb(d)|0)+12|0);IW(a,3064,(Idb(d)|0)+16|0);return}case 14:{IW(a,3091,b);return}case 15:{IW(a,3092,b);IW(a,3064,(dfb(d)|0)+12|0);return}case 16:{IW(a,3093,b);IW(a,3064,(Veb(d)|0)+16|0);IW(a,3064,(Veb(d)|0)+12|0);return}case 17:{IW(a,3094,b);IW(a,3064,(Teb(d)|0)+16|0);IW(a,3064,(Teb(d)|0)+12|0);IW(a,3064,(Teb(d)|0)+8|0);return}case 18:{IW(a,3095,b);IW(a,3064,(xfb(d)|0)+8|0);return}case 19:{IW(a,3096,b);VT(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,3097,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3064,uXa(e,b)|0);d=b}return}case 21:{IW(a,3098,b);return}case 22:{IW(a,3099,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function de(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3339,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3338,uXa(e,b)|0);d=b}return}case 2:{IW(a,3340,b);WT(a,(Tfb(d)|0)+16|0);IW(a,3338,(Tfb(d)|0)+12|0);IW(a,3338,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3341,b);IW(a,3338,(Efb(d)|0)+12|0);return}case 4:{IW(a,3342,b);WT(a,(tfb(d)|0)+16|0);WT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3343,b);IW(a,3338,(cfb(d)|0)+28|0);WT(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,3344,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3338,uXa(e,b)|0);d=b}return}case 7:{IW(a,3345,b);b=wdb(d)|0;IW(a,3338,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3338,uXa(e,b)|0);d=b}return}case 8:{IW(a,3346,b);return}case 9:{IW(a,3347,b);IW(a,3338,(Keb(d)|0)+12|0);return}case 10:{IW(a,3348,b);return}case 11:{IW(a,3349,b);IW(a,3338,(feb(d)|0)+12|0);return}case 12:{IW(a,3350,b);IW(a,3338,(vfb(d)|0)+24|0);return}case 13:{IW(a,3351,b);IW(a,3338,(efb(d)|0)+28|0);IW(a,3338,(efb(d)|0)+24|0);return}case 23:{IW(a,3352,b);IW(a,3338,(ieb(d)|0)+24|0);IW(a,3338,(ieb(d)|0)+20|0);return}case 24:{IW(a,3353,b);IW(a,3338,(hdb(d)|0)+24|0);IW(a,3338,(hdb(d)|0)+20|0);IW(a,3338,(hdb(d)|0)+16|0);return}case 25:{IW(a,3354,b);IW(a,3338,(Ldb(d)|0)+20|0);IW(a,3338,(Ldb(d)|0)+16|0);IW(a,3338,(Ldb(d)|0)+12|0);return}case 26:{IW(a,3355,b);IW(a,3338,(Kdb(d)|0)+16|0);IW(a,3338,(Kdb(d)|0)+12|0);return}case 27:{IW(a,3356,b);IW(a,3338,(Adb(d)|0)+12|0);return}case 28:{IW(a,3357,b);IW(a,3338,(zdb(d)|0)+20|0);IW(a,3338,(zdb(d)|0)+12|0);return}case 29:{IW(a,3358,b);IW(a,3338,(ydb(d)|0)+12|0);IW(a,3338,(ydb(d)|0)+8|0);return}case 30:{IW(a,3359,b);IW(a,3338,(gdb(d)|0)+16|0);IW(a,3338,(gdb(d)|0)+12|0);IW(a,3338,(gdb(d)|0)+8|0);return}case 31:{IW(a,3360,b);IW(a,3338,(geb(d)|0)+16|0);IW(a,3338,(geb(d)|0)+12|0);return}case 32:{IW(a,3361,b);IW(a,3338,(Hdb(d)|0)+12|0);IW(a,3338,(Hdb(d)|0)+16|0);IW(a,3338,(Hdb(d)|0)+20|0);return}case 33:{IW(a,3362,b);return}case 34:{IW(a,3363,b);IW(a,3338,(Jdb(d)|0)+8|0);IW(a,3338,(Jdb(d)|0)+12|0);IW(a,3338,(Jdb(d)|0)+16|0);return}case 35:{IW(a,3364,b);IW(a,3338,(Idb(d)|0)+8|0);IW(a,3338,(Idb(d)|0)+12|0);IW(a,3338,(Idb(d)|0)+16|0);return}case 14:{IW(a,3365,b);return}case 15:{IW(a,3366,b);IW(a,3338,(dfb(d)|0)+12|0);return}case 16:{IW(a,3367,b);IW(a,3338,(Veb(d)|0)+16|0);IW(a,3338,(Veb(d)|0)+12|0);return}case 17:{IW(a,3368,b);IW(a,3338,(Teb(d)|0)+16|0);IW(a,3338,(Teb(d)|0)+12|0);IW(a,3338,(Teb(d)|0)+8|0);return}case 18:{IW(a,3369,b);IW(a,3338,(xfb(d)|0)+8|0);return}case 19:{IW(a,3370,b);WT(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,3371,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3338,uXa(e,b)|0);d=b}return}case 21:{IW(a,3372,b);return}case 22:{IW(a,3373,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ee(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3220,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3219,uXa(e,b)|0);d=b}return}case 2:{IW(a,3221,b);XT(a,(Tfb(d)|0)+16|0);IW(a,3219,(Tfb(d)|0)+12|0);IW(a,3219,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3222,b);IW(a,3219,(Efb(d)|0)+12|0);return}case 4:{IW(a,3223,b);XT(a,(tfb(d)|0)+16|0);XT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3224,b);IW(a,3219,(cfb(d)|0)+28|0);XT(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,3225,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3219,uXa(e,b)|0);d=b}return}case 7:{IW(a,3226,b);b=wdb(d)|0;IW(a,3219,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3219,uXa(e,b)|0);d=b}return}case 8:{IW(a,3227,b);return}case 9:{IW(a,3228,b);IW(a,3219,(Keb(d)|0)+12|0);return}case 10:{IW(a,3229,b);return}case 11:{IW(a,3230,b);IW(a,3219,(feb(d)|0)+12|0);return}case 12:{IW(a,3231,b);IW(a,3219,(vfb(d)|0)+24|0);return}case 13:{IW(a,3232,b);IW(a,3219,(efb(d)|0)+28|0);IW(a,3219,(efb(d)|0)+24|0);return}case 23:{IW(a,3233,b);IW(a,3219,(ieb(d)|0)+24|0);IW(a,3219,(ieb(d)|0)+20|0);return}case 24:{IW(a,3234,b);IW(a,3219,(hdb(d)|0)+24|0);IW(a,3219,(hdb(d)|0)+20|0);IW(a,3219,(hdb(d)|0)+16|0);return}case 25:{IW(a,3235,b);IW(a,3219,(Ldb(d)|0)+20|0);IW(a,3219,(Ldb(d)|0)+16|0);IW(a,3219,(Ldb(d)|0)+12|0);return}case 26:{IW(a,3236,b);IW(a,3219,(Kdb(d)|0)+16|0);IW(a,3219,(Kdb(d)|0)+12|0);return}case 27:{IW(a,3237,b);IW(a,3219,(Adb(d)|0)+12|0);return}case 28:{IW(a,3238,b);IW(a,3219,(zdb(d)|0)+20|0);IW(a,3219,(zdb(d)|0)+12|0);return}case 29:{IW(a,3239,b);IW(a,3219,(ydb(d)|0)+12|0);IW(a,3219,(ydb(d)|0)+8|0);return}case 30:{IW(a,3240,b);IW(a,3219,(gdb(d)|0)+16|0);IW(a,3219,(gdb(d)|0)+12|0);IW(a,3219,(gdb(d)|0)+8|0);return}case 31:{IW(a,3241,b);IW(a,3219,(geb(d)|0)+16|0);IW(a,3219,(geb(d)|0)+12|0);return}case 32:{IW(a,3242,b);IW(a,3219,(Hdb(d)|0)+12|0);IW(a,3219,(Hdb(d)|0)+16|0);IW(a,3219,(Hdb(d)|0)+20|0);return}case 33:{IW(a,3243,b);return}case 34:{IW(a,3244,b);IW(a,3219,(Jdb(d)|0)+8|0);IW(a,3219,(Jdb(d)|0)+12|0);IW(a,3219,(Jdb(d)|0)+16|0);return}case 35:{IW(a,3245,b);IW(a,3219,(Idb(d)|0)+8|0);IW(a,3219,(Idb(d)|0)+12|0);IW(a,3219,(Idb(d)|0)+16|0);return}case 14:{IW(a,3246,b);return}case 15:{IW(a,3247,b);IW(a,3219,(dfb(d)|0)+12|0);return}case 16:{IW(a,3248,b);IW(a,3219,(Veb(d)|0)+16|0);IW(a,3219,(Veb(d)|0)+12|0);return}case 17:{IW(a,3249,b);IW(a,3219,(Teb(d)|0)+16|0);IW(a,3219,(Teb(d)|0)+12|0);IW(a,3219,(Teb(d)|0)+8|0);return}case 18:{IW(a,3250,b);IW(a,3219,(xfb(d)|0)+8|0);return}case 19:{IW(a,3251,b);XT(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,3252,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3219,uXa(e,b)|0);d=b}return}case 21:{IW(a,3253,b);return}case 22:{IW(a,3254,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function fe(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3458,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3457,uXa(e,b)|0);d=b}return}case 2:{IW(a,3459,b);YT(a,(Tfb(d)|0)+16|0);IW(a,3457,(Tfb(d)|0)+12|0);IW(a,3457,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3460,b);IW(a,3457,(Efb(d)|0)+12|0);return}case 4:{IW(a,3461,b);YT(a,(tfb(d)|0)+16|0);YT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3462,b);IW(a,3457,(cfb(d)|0)+28|0);YT(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,3463,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3457,uXa(e,b)|0);d=b}return}case 7:{IW(a,3464,b);b=wdb(d)|0;IW(a,3457,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3457,uXa(e,b)|0);d=b}return}case 8:{IW(a,3465,b);return}case 9:{IW(a,3466,b);IW(a,3457,(Keb(d)|0)+12|0);return}case 10:{IW(a,3467,b);return}case 11:{IW(a,3468,b);IW(a,3457,(feb(d)|0)+12|0);return}case 12:{IW(a,3469,b);IW(a,3457,(vfb(d)|0)+24|0);return}case 13:{IW(a,3470,b);IW(a,3457,(efb(d)|0)+28|0);IW(a,3457,(efb(d)|0)+24|0);return}case 23:{IW(a,3471,b);IW(a,3457,(ieb(d)|0)+24|0);IW(a,3457,(ieb(d)|0)+20|0);return}case 24:{IW(a,3472,b);IW(a,3457,(hdb(d)|0)+24|0);IW(a,3457,(hdb(d)|0)+20|0);IW(a,3457,(hdb(d)|0)+16|0);return}case 25:{IW(a,3473,b);IW(a,3457,(Ldb(d)|0)+20|0);IW(a,3457,(Ldb(d)|0)+16|0);IW(a,3457,(Ldb(d)|0)+12|0);return}case 26:{IW(a,3474,b);IW(a,3457,(Kdb(d)|0)+16|0);IW(a,3457,(Kdb(d)|0)+12|0);return}case 27:{IW(a,3475,b);IW(a,3457,(Adb(d)|0)+12|0);return}case 28:{IW(a,3476,b);IW(a,3457,(zdb(d)|0)+20|0);IW(a,3457,(zdb(d)|0)+12|0);return}case 29:{IW(a,3477,b);IW(a,3457,(ydb(d)|0)+12|0);IW(a,3457,(ydb(d)|0)+8|0);return}case 30:{IW(a,3478,b);IW(a,3457,(gdb(d)|0)+16|0);IW(a,3457,(gdb(d)|0)+12|0);IW(a,3457,(gdb(d)|0)+8|0);return}case 31:{IW(a,3479,b);IW(a,3457,(geb(d)|0)+16|0);IW(a,3457,(geb(d)|0)+12|0);return}case 32:{IW(a,3480,b);IW(a,3457,(Hdb(d)|0)+12|0);IW(a,3457,(Hdb(d)|0)+16|0);IW(a,3457,(Hdb(d)|0)+20|0);return}case 33:{IW(a,3481,b);return}case 34:{IW(a,3482,b);IW(a,3457,(Jdb(d)|0)+8|0);IW(a,3457,(Jdb(d)|0)+12|0);IW(a,3457,(Jdb(d)|0)+16|0);return}case 35:{IW(a,3483,b);IW(a,3457,(Idb(d)|0)+8|0);IW(a,3457,(Idb(d)|0)+12|0);IW(a,3457,(Idb(d)|0)+16|0);return}case 14:{IW(a,3484,b);return}case 15:{IW(a,3485,b);IW(a,3457,(dfb(d)|0)+12|0);return}case 16:{IW(a,3486,b);IW(a,3457,(Veb(d)|0)+16|0);IW(a,3457,(Veb(d)|0)+12|0);return}case 17:{IW(a,3487,b);IW(a,3457,(Teb(d)|0)+16|0);IW(a,3457,(Teb(d)|0)+12|0);IW(a,3457,(Teb(d)|0)+8|0);return}case 18:{IW(a,3488,b);IW(a,3457,(xfb(d)|0)+8|0);return}case 19:{IW(a,3489,b);YT(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,3490,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3457,uXa(e,b)|0);d=b}return}case 21:{IW(a,3491,b);return}case 22:{IW(a,3492,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ge(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3577,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3576,uXa(e,b)|0);d=b}return}case 2:{IW(a,3578,b);ZT(a,(Tfb(d)|0)+16|0);IW(a,3576,(Tfb(d)|0)+12|0);IW(a,3576,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3579,b);IW(a,3576,(Efb(d)|0)+12|0);return}case 4:{IW(a,3580,b);ZT(a,(tfb(d)|0)+16|0);ZT(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3581,b);IW(a,3576,(cfb(d)|0)+28|0);ZT(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,3582,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3576,uXa(e,b)|0);d=b}return}case 7:{IW(a,3583,b);b=wdb(d)|0;IW(a,3576,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3576,uXa(e,b)|0);d=b}return}case 8:{IW(a,3584,b);return}case 9:{IW(a,3585,b);IW(a,3576,(Keb(d)|0)+12|0);return}case 10:{IW(a,3586,b);return}case 11:{IW(a,3587,b);IW(a,3576,(feb(d)|0)+12|0);return}case 12:{IW(a,3588,b);IW(a,3576,(vfb(d)|0)+24|0);return}case 13:{IW(a,3589,b);IW(a,3576,(efb(d)|0)+28|0);IW(a,3576,(efb(d)|0)+24|0);return}case 23:{IW(a,3590,b);IW(a,3576,(ieb(d)|0)+24|0);IW(a,3576,(ieb(d)|0)+20|0);return}case 24:{IW(a,3591,b);IW(a,3576,(hdb(d)|0)+24|0);IW(a,3576,(hdb(d)|0)+20|0);IW(a,3576,(hdb(d)|0)+16|0);return}case 25:{IW(a,3592,b);IW(a,3576,(Ldb(d)|0)+20|0);IW(a,3576,(Ldb(d)|0)+16|0);IW(a,3576,(Ldb(d)|0)+12|0);return}case 26:{IW(a,3593,b);IW(a,3576,(Kdb(d)|0)+16|0);IW(a,3576,(Kdb(d)|0)+12|0);return}case 27:{IW(a,3594,b);IW(a,3576,(Adb(d)|0)+12|0);return}case 28:{IW(a,3595,b);IW(a,3576,(zdb(d)|0)+20|0);IW(a,3576,(zdb(d)|0)+12|0);return}case 29:{IW(a,3596,b);IW(a,3576,(ydb(d)|0)+12|0);IW(a,3576,(ydb(d)|0)+8|0);return}case 30:{IW(a,3597,b);IW(a,3576,(gdb(d)|0)+16|0);IW(a,3576,(gdb(d)|0)+12|0);IW(a,3576,(gdb(d)|0)+8|0);return}case 31:{IW(a,3598,b);IW(a,3576,(geb(d)|0)+16|0);IW(a,3576,(geb(d)|0)+12|0);return}case 32:{IW(a,3599,b);IW(a,3576,(Hdb(d)|0)+12|0);IW(a,3576,(Hdb(d)|0)+16|0);IW(a,3576,(Hdb(d)|0)+20|0);return}case 33:{IW(a,3600,b);return}case 34:{IW(a,3601,b);IW(a,3576,(Jdb(d)|0)+8|0);IW(a,3576,(Jdb(d)|0)+12|0);IW(a,3576,(Jdb(d)|0)+16|0);return}case 35:{IW(a,3602,b);IW(a,3576,(Idb(d)|0)+8|0);IW(a,3576,(Idb(d)|0)+12|0);IW(a,3576,(Idb(d)|0)+16|0);return}case 14:{IW(a,3603,b);return}case 15:{IW(a,3604,b);IW(a,3576,(dfb(d)|0)+12|0);return}case 16:{IW(a,3605,b);IW(a,3576,(Veb(d)|0)+16|0);IW(a,3576,(Veb(d)|0)+12|0);return}case 17:{IW(a,3606,b);IW(a,3576,(Teb(d)|0)+16|0);IW(a,3576,(Teb(d)|0)+12|0);IW(a,3576,(Teb(d)|0)+8|0);return}case 18:{IW(a,3607,b);IW(a,3576,(xfb(d)|0)+8|0);return}case 19:{IW(a,3608,b);ZT(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,3609,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3576,uXa(e,b)|0);d=b}return}case 21:{IW(a,3610,b);return}case 22:{IW(a,3611,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function he(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,2462,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2461,uXa(e,b)|0);d=b}return}case 2:{IW(a,2463,b);wU(a,(Tfb(d)|0)+16|0);IW(a,2461,(Tfb(d)|0)+12|0);IW(a,2461,(Tfb(d)|0)+8|0);return}case 3:{IW(a,2464,b);IW(a,2461,(Efb(d)|0)+12|0);return}case 4:{IW(a,2465,b);wU(a,(tfb(d)|0)+16|0);wU(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,2466,b);IW(a,2461,(cfb(d)|0)+28|0);wU(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,2467,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2461,uXa(e,b)|0);d=b}return}case 7:{IW(a,2468,b);b=wdb(d)|0;IW(a,2461,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2461,uXa(e,b)|0);d=b}return}case 8:{IW(a,2469,b);return}case 9:{IW(a,2470,b);IW(a,2461,(Keb(d)|0)+12|0);return}case 10:{IW(a,2471,b);return}case 11:{IW(a,2472,b);IW(a,2461,(feb(d)|0)+12|0);return}case 12:{IW(a,2473,b);IW(a,2461,(vfb(d)|0)+24|0);return}case 13:{IW(a,2474,b);IW(a,2461,(efb(d)|0)+28|0);IW(a,2461,(efb(d)|0)+24|0);return}case 23:{IW(a,2475,b);IW(a,2461,(ieb(d)|0)+24|0);IW(a,2461,(ieb(d)|0)+20|0);return}case 24:{IW(a,2476,b);IW(a,2461,(hdb(d)|0)+24|0);IW(a,2461,(hdb(d)|0)+20|0);IW(a,2461,(hdb(d)|0)+16|0);return}case 25:{IW(a,2477,b);IW(a,2461,(Ldb(d)|0)+20|0);IW(a,2461,(Ldb(d)|0)+16|0);IW(a,2461,(Ldb(d)|0)+12|0);return}case 26:{IW(a,2478,b);IW(a,2461,(Kdb(d)|0)+16|0);IW(a,2461,(Kdb(d)|0)+12|0);return}case 27:{IW(a,2479,b);IW(a,2461,(Adb(d)|0)+12|0);return}case 28:{IW(a,2480,b);IW(a,2461,(zdb(d)|0)+20|0);IW(a,2461,(zdb(d)|0)+12|0);return}case 29:{IW(a,2481,b);IW(a,2461,(ydb(d)|0)+12|0);IW(a,2461,(ydb(d)|0)+8|0);return}case 30:{IW(a,2482,b);IW(a,2461,(gdb(d)|0)+16|0);IW(a,2461,(gdb(d)|0)+12|0);IW(a,2461,(gdb(d)|0)+8|0);return}case 31:{IW(a,2483,b);IW(a,2461,(geb(d)|0)+16|0);IW(a,2461,(geb(d)|0)+12|0);return}case 32:{IW(a,2484,b);IW(a,2461,(Hdb(d)|0)+12|0);IW(a,2461,(Hdb(d)|0)+16|0);IW(a,2461,(Hdb(d)|0)+20|0);return}case 33:{IW(a,2485,b);return}case 34:{IW(a,2486,b);IW(a,2461,(Jdb(d)|0)+8|0);IW(a,2461,(Jdb(d)|0)+12|0);IW(a,2461,(Jdb(d)|0)+16|0);return}case 35:{IW(a,2487,b);IW(a,2461,(Idb(d)|0)+8|0);IW(a,2461,(Idb(d)|0)+12|0);IW(a,2461,(Idb(d)|0)+16|0);return}case 14:{IW(a,2488,b);return}case 15:{IW(a,2489,b);IW(a,2461,(dfb(d)|0)+12|0);return}case 16:{IW(a,2490,b);IW(a,2461,(Veb(d)|0)+16|0);IW(a,2461,(Veb(d)|0)+12|0);return}case 17:{IW(a,2491,b);IW(a,2461,(Teb(d)|0)+16|0);IW(a,2461,(Teb(d)|0)+12|0);IW(a,2461,(Teb(d)|0)+8|0);return}case 18:{IW(a,2492,b);IW(a,2461,(xfb(d)|0)+8|0);return}case 19:{IW(a,2493,b);wU(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,2494,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2461,uXa(e,b)|0);d=b}return}case 21:{IW(a,2495,b);return}case 22:{IW(a,2496,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ie(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,2116,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2115,uXa(e,b)|0);d=b}return}case 2:{IW(a,2117,b);AU(a,(Tfb(d)|0)+16|0);IW(a,2115,(Tfb(d)|0)+12|0);IW(a,2115,(Tfb(d)|0)+8|0);return}case 3:{IW(a,2118,b);IW(a,2115,(Efb(d)|0)+12|0);return}case 4:{IW(a,2119,b);AU(a,(tfb(d)|0)+16|0);AU(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,2120,b);IW(a,2115,(cfb(d)|0)+28|0);AU(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,2121,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2115,uXa(e,b)|0);d=b}return}case 7:{IW(a,2122,b);b=wdb(d)|0;IW(a,2115,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2115,uXa(e,b)|0);d=b}return}case 8:{IW(a,2123,b);return}case 9:{IW(a,2124,b);IW(a,2115,(Keb(d)|0)+12|0);return}case 10:{IW(a,2125,b);return}case 11:{IW(a,2126,b);IW(a,2115,(feb(d)|0)+12|0);return}case 12:{IW(a,2127,b);IW(a,2115,(vfb(d)|0)+24|0);return}case 13:{IW(a,2128,b);IW(a,2115,(efb(d)|0)+28|0);IW(a,2115,(efb(d)|0)+24|0);return}case 23:{IW(a,2129,b);IW(a,2115,(ieb(d)|0)+24|0);IW(a,2115,(ieb(d)|0)+20|0);return}case 24:{IW(a,2130,b);IW(a,2115,(hdb(d)|0)+24|0);IW(a,2115,(hdb(d)|0)+20|0);IW(a,2115,(hdb(d)|0)+16|0);return}case 25:{IW(a,2131,b);IW(a,2115,(Ldb(d)|0)+20|0);IW(a,2115,(Ldb(d)|0)+16|0);IW(a,2115,(Ldb(d)|0)+12|0);return}case 26:{IW(a,2132,b);IW(a,2115,(Kdb(d)|0)+16|0);IW(a,2115,(Kdb(d)|0)+12|0);return}case 27:{IW(a,2133,b);IW(a,2115,(Adb(d)|0)+12|0);return}case 28:{IW(a,2134,b);IW(a,2115,(zdb(d)|0)+20|0);IW(a,2115,(zdb(d)|0)+12|0);return}case 29:{IW(a,2135,b);IW(a,2115,(ydb(d)|0)+12|0);IW(a,2115,(ydb(d)|0)+8|0);return}case 30:{IW(a,2136,b);IW(a,2115,(gdb(d)|0)+16|0);IW(a,2115,(gdb(d)|0)+12|0);IW(a,2115,(gdb(d)|0)+8|0);return}case 31:{IW(a,2137,b);IW(a,2115,(geb(d)|0)+16|0);IW(a,2115,(geb(d)|0)+12|0);return}case 32:{IW(a,2138,b);IW(a,2115,(Hdb(d)|0)+12|0);IW(a,2115,(Hdb(d)|0)+16|0);IW(a,2115,(Hdb(d)|0)+20|0);return}case 33:{IW(a,2139,b);return}case 34:{IW(a,2140,b);IW(a,2115,(Jdb(d)|0)+8|0);IW(a,2115,(Jdb(d)|0)+12|0);IW(a,2115,(Jdb(d)|0)+16|0);return}case 35:{IW(a,2141,b);IW(a,2115,(Idb(d)|0)+8|0);IW(a,2115,(Idb(d)|0)+12|0);IW(a,2115,(Idb(d)|0)+16|0);return}case 14:{IW(a,2142,b);return}case 15:{IW(a,2143,b);IW(a,2115,(dfb(d)|0)+12|0);return}case 16:{IW(a,2144,b);IW(a,2115,(Veb(d)|0)+16|0);IW(a,2115,(Veb(d)|0)+12|0);return}case 17:{IW(a,2145,b);IW(a,2115,(Teb(d)|0)+16|0);IW(a,2115,(Teb(d)|0)+12|0);IW(a,2115,(Teb(d)|0)+8|0);return}case 18:{IW(a,2146,b);IW(a,2115,(xfb(d)|0)+8|0);return}case 19:{IW(a,2147,b);AU(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,2148,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2115,uXa(e,b)|0);d=b}return}case 21:{IW(a,2149,b);return}case 22:{IW(a,2150,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function je(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,1458,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1457,uXa(e,b)|0);d=b}return}case 2:{IW(a,1459,b);FU(a,(Tfb(d)|0)+16|0);IW(a,1457,(Tfb(d)|0)+12|0);IW(a,1457,(Tfb(d)|0)+8|0);return}case 3:{IW(a,1460,b);IW(a,1457,(Efb(d)|0)+12|0);return}case 4:{IW(a,1461,b);FU(a,(tfb(d)|0)+16|0);FU(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,1462,b);IW(a,1457,(cfb(d)|0)+28|0);FU(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,1463,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1457,uXa(e,b)|0);d=b}return}case 7:{IW(a,1464,b);b=wdb(d)|0;IW(a,1457,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1457,uXa(e,b)|0);d=b}return}case 8:{IW(a,1465,b);return}case 9:{IW(a,1466,b);IW(a,1457,(Keb(d)|0)+12|0);return}case 10:{IW(a,1467,b);return}case 11:{IW(a,1468,b);IW(a,1457,(feb(d)|0)+12|0);return}case 12:{IW(a,1469,b);IW(a,1457,(vfb(d)|0)+24|0);return}case 13:{IW(a,1470,b);IW(a,1457,(efb(d)|0)+28|0);IW(a,1457,(efb(d)|0)+24|0);return}case 23:{IW(a,1471,b);IW(a,1457,(ieb(d)|0)+24|0);IW(a,1457,(ieb(d)|0)+20|0);return}case 24:{IW(a,1472,b);IW(a,1457,(hdb(d)|0)+24|0);IW(a,1457,(hdb(d)|0)+20|0);IW(a,1457,(hdb(d)|0)+16|0);return}case 25:{IW(a,1473,b);IW(a,1457,(Ldb(d)|0)+20|0);IW(a,1457,(Ldb(d)|0)+16|0);IW(a,1457,(Ldb(d)|0)+12|0);return}case 26:{IW(a,1474,b);IW(a,1457,(Kdb(d)|0)+16|0);IW(a,1457,(Kdb(d)|0)+12|0);return}case 27:{IW(a,1475,b);IW(a,1457,(Adb(d)|0)+12|0);return}case 28:{IW(a,1476,b);IW(a,1457,(zdb(d)|0)+20|0);IW(a,1457,(zdb(d)|0)+12|0);return}case 29:{IW(a,1477,b);IW(a,1457,(ydb(d)|0)+12|0);IW(a,1457,(ydb(d)|0)+8|0);return}case 30:{IW(a,1478,b);IW(a,1457,(gdb(d)|0)+16|0);IW(a,1457,(gdb(d)|0)+12|0);IW(a,1457,(gdb(d)|0)+8|0);return}case 31:{IW(a,1479,b);IW(a,1457,(geb(d)|0)+16|0);IW(a,1457,(geb(d)|0)+12|0);return}case 32:{IW(a,1480,b);IW(a,1457,(Hdb(d)|0)+12|0);IW(a,1457,(Hdb(d)|0)+16|0);IW(a,1457,(Hdb(d)|0)+20|0);return}case 33:{IW(a,1481,b);return}case 34:{IW(a,1482,b);IW(a,1457,(Jdb(d)|0)+8|0);IW(a,1457,(Jdb(d)|0)+12|0);IW(a,1457,(Jdb(d)|0)+16|0);return}case 35:{IW(a,1483,b);IW(a,1457,(Idb(d)|0)+8|0);IW(a,1457,(Idb(d)|0)+12|0);IW(a,1457,(Idb(d)|0)+16|0);return}case 14:{IW(a,1484,b);return}case 15:{IW(a,1485,b);IW(a,1457,(dfb(d)|0)+12|0);return}case 16:{IW(a,1486,b);IW(a,1457,(Veb(d)|0)+16|0);IW(a,1457,(Veb(d)|0)+12|0);return}case 17:{IW(a,1487,b);IW(a,1457,(Teb(d)|0)+16|0);IW(a,1457,(Teb(d)|0)+12|0);IW(a,1457,(Teb(d)|0)+8|0);return}case 18:{IW(a,1488,b);IW(a,1457,(xfb(d)|0)+8|0);return}case 19:{IW(a,1489,b);FU(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,1490,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1457,uXa(e,b)|0);d=b}return}case 21:{IW(a,1491,b);return}case 22:{IW(a,1492,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ke(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,1183,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1182,uXa(e,b)|0);d=b}return}case 2:{IW(a,1184,b);QU(a,(Tfb(d)|0)+16|0);IW(a,1182,(Tfb(d)|0)+12|0);IW(a,1182,(Tfb(d)|0)+8|0);return}case 3:{IW(a,1185,b);IW(a,1182,(Efb(d)|0)+12|0);return}case 4:{IW(a,1186,b);QU(a,(tfb(d)|0)+16|0);QU(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,1187,b);IW(a,1182,(cfb(d)|0)+28|0);QU(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,1188,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1182,uXa(e,b)|0);d=b}return}case 7:{IW(a,1189,b);b=wdb(d)|0;IW(a,1182,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1182,uXa(e,b)|0);d=b}return}case 8:{IW(a,1190,b);return}case 9:{IW(a,1191,b);IW(a,1182,(Keb(d)|0)+12|0);return}case 10:{IW(a,1192,b);return}case 11:{IW(a,1193,b);IW(a,1182,(feb(d)|0)+12|0);return}case 12:{IW(a,1194,b);IW(a,1182,(vfb(d)|0)+24|0);return}case 13:{IW(a,1195,b);IW(a,1182,(efb(d)|0)+28|0);IW(a,1182,(efb(d)|0)+24|0);return}case 23:{IW(a,1196,b);IW(a,1182,(ieb(d)|0)+24|0);IW(a,1182,(ieb(d)|0)+20|0);return}case 24:{IW(a,1197,b);IW(a,1182,(hdb(d)|0)+24|0);IW(a,1182,(hdb(d)|0)+20|0);IW(a,1182,(hdb(d)|0)+16|0);return}case 25:{IW(a,1198,b);IW(a,1182,(Ldb(d)|0)+20|0);IW(a,1182,(Ldb(d)|0)+16|0);IW(a,1182,(Ldb(d)|0)+12|0);return}case 26:{IW(a,1199,b);IW(a,1182,(Kdb(d)|0)+16|0);IW(a,1182,(Kdb(d)|0)+12|0);return}case 27:{IW(a,1200,b);IW(a,1182,(Adb(d)|0)+12|0);return}case 28:{IW(a,1201,b);IW(a,1182,(zdb(d)|0)+20|0);IW(a,1182,(zdb(d)|0)+12|0);return}case 29:{IW(a,1202,b);IW(a,1182,(ydb(d)|0)+12|0);IW(a,1182,(ydb(d)|0)+8|0);return}case 30:{IW(a,1203,b);IW(a,1182,(gdb(d)|0)+16|0);IW(a,1182,(gdb(d)|0)+12|0);IW(a,1182,(gdb(d)|0)+8|0);return}case 31:{IW(a,1204,b);IW(a,1182,(geb(d)|0)+16|0);IW(a,1182,(geb(d)|0)+12|0);return}case 32:{IW(a,1205,b);IW(a,1182,(Hdb(d)|0)+12|0);IW(a,1182,(Hdb(d)|0)+16|0);IW(a,1182,(Hdb(d)|0)+20|0);return}case 33:{IW(a,1206,b);return}case 34:{IW(a,1207,b);IW(a,1182,(Jdb(d)|0)+8|0);IW(a,1182,(Jdb(d)|0)+12|0);IW(a,1182,(Jdb(d)|0)+16|0);return}case 35:{IW(a,1208,b);IW(a,1182,(Idb(d)|0)+8|0);IW(a,1182,(Idb(d)|0)+12|0);IW(a,1182,(Idb(d)|0)+16|0);return}case 14:{IW(a,1209,b);return}case 15:{IW(a,1210,b);IW(a,1182,(dfb(d)|0)+12|0);return}case 16:{IW(a,1211,b);IW(a,1182,(Veb(d)|0)+16|0);IW(a,1182,(Veb(d)|0)+12|0);return}case 17:{IW(a,1212,b);IW(a,1182,(Teb(d)|0)+16|0);IW(a,1182,(Teb(d)|0)+12|0);IW(a,1182,(Teb(d)|0)+8|0);return}case 18:{IW(a,1213,b);IW(a,1182,(xfb(d)|0)+8|0);return}case 19:{IW(a,1214,b);QU(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,1215,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1182,uXa(e,b)|0);d=b}return}case 21:{IW(a,1216,b);return}case 22:{IW(a,1217,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function le(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,2648,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2647,uXa(e,b)|0);d=b}return}case 2:{IW(a,2649,b);VU(a,(Tfb(d)|0)+16|0);IW(a,2647,(Tfb(d)|0)+12|0);IW(a,2647,(Tfb(d)|0)+8|0);return}case 3:{IW(a,2650,b);IW(a,2647,(Efb(d)|0)+12|0);return}case 4:{IW(a,2651,b);VU(a,(tfb(d)|0)+16|0);VU(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,2652,b);IW(a,2647,(cfb(d)|0)+28|0);VU(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,2653,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2647,uXa(e,b)|0);d=b}return}case 7:{IW(a,2654,b);b=wdb(d)|0;IW(a,2647,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2647,uXa(e,b)|0);d=b}return}case 8:{IW(a,2655,b);return}case 9:{IW(a,2656,b);IW(a,2647,(Keb(d)|0)+12|0);return}case 10:{IW(a,2657,b);return}case 11:{IW(a,2658,b);IW(a,2647,(feb(d)|0)+12|0);return}case 12:{IW(a,2659,b);IW(a,2647,(vfb(d)|0)+24|0);return}case 13:{IW(a,2660,b);IW(a,2647,(efb(d)|0)+28|0);IW(a,2647,(efb(d)|0)+24|0);return}case 23:{IW(a,2661,b);IW(a,2647,(ieb(d)|0)+24|0);IW(a,2647,(ieb(d)|0)+20|0);return}case 24:{IW(a,2662,b);IW(a,2647,(hdb(d)|0)+24|0);IW(a,2647,(hdb(d)|0)+20|0);IW(a,2647,(hdb(d)|0)+16|0);return}case 25:{IW(a,2663,b);IW(a,2647,(Ldb(d)|0)+20|0);IW(a,2647,(Ldb(d)|0)+16|0);IW(a,2647,(Ldb(d)|0)+12|0);return}case 26:{IW(a,2664,b);IW(a,2647,(Kdb(d)|0)+16|0);IW(a,2647,(Kdb(d)|0)+12|0);return}case 27:{IW(a,2665,b);IW(a,2647,(Adb(d)|0)+12|0);return}case 28:{IW(a,2666,b);IW(a,2647,(zdb(d)|0)+20|0);IW(a,2647,(zdb(d)|0)+12|0);return}case 29:{IW(a,2667,b);IW(a,2647,(ydb(d)|0)+12|0);IW(a,2647,(ydb(d)|0)+8|0);return}case 30:{IW(a,2668,b);IW(a,2647,(gdb(d)|0)+16|0);IW(a,2647,(gdb(d)|0)+12|0);IW(a,2647,(gdb(d)|0)+8|0);return}case 31:{IW(a,2669,b);IW(a,2647,(geb(d)|0)+16|0);IW(a,2647,(geb(d)|0)+12|0);return}case 32:{IW(a,2670,b);IW(a,2647,(Hdb(d)|0)+12|0);IW(a,2647,(Hdb(d)|0)+16|0);IW(a,2647,(Hdb(d)|0)+20|0);return}case 33:{IW(a,2671,b);return}case 34:{IW(a,2672,b);IW(a,2647,(Jdb(d)|0)+8|0);IW(a,2647,(Jdb(d)|0)+12|0);IW(a,2647,(Jdb(d)|0)+16|0);return}case 35:{IW(a,2673,b);IW(a,2647,(Idb(d)|0)+8|0);IW(a,2647,(Idb(d)|0)+12|0);IW(a,2647,(Idb(d)|0)+16|0);return}case 14:{IW(a,2674,b);return}case 15:{IW(a,2675,b);IW(a,2647,(dfb(d)|0)+12|0);return}case 16:{IW(a,2676,b);IW(a,2647,(Veb(d)|0)+16|0);IW(a,2647,(Veb(d)|0)+12|0);return}case 17:{IW(a,2677,b);IW(a,2647,(Teb(d)|0)+16|0);IW(a,2647,(Teb(d)|0)+12|0);IW(a,2647,(Teb(d)|0)+8|0);return}case 18:{IW(a,2678,b);IW(a,2647,(xfb(d)|0)+8|0);return}case 19:{IW(a,2679,b);VU(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,2680,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2647,uXa(e,b)|0);d=b}return}case 21:{IW(a,2681,b);return}case 22:{IW(a,2682,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function me(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,2326,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2325,uXa(e,b)|0);d=b}return}case 2:{IW(a,2327,b);YU(a,(Tfb(d)|0)+16|0);IW(a,2325,(Tfb(d)|0)+12|0);IW(a,2325,(Tfb(d)|0)+8|0);return}case 3:{IW(a,2328,b);IW(a,2325,(Efb(d)|0)+12|0);return}case 4:{IW(a,2329,b);YU(a,(tfb(d)|0)+16|0);YU(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,2330,b);IW(a,2325,(cfb(d)|0)+28|0);YU(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,2331,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2325,uXa(e,b)|0);d=b}return}case 7:{IW(a,2332,b);b=wdb(d)|0;IW(a,2325,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2325,uXa(e,b)|0);d=b}return}case 8:{IW(a,2333,b);return}case 9:{IW(a,2334,b);IW(a,2325,(Keb(d)|0)+12|0);return}case 10:{IW(a,2335,b);return}case 11:{IW(a,2336,b);IW(a,2325,(feb(d)|0)+12|0);return}case 12:{IW(a,2337,b);IW(a,2325,(vfb(d)|0)+24|0);return}case 13:{IW(a,2338,b);IW(a,2325,(efb(d)|0)+28|0);IW(a,2325,(efb(d)|0)+24|0);return}case 23:{IW(a,2339,b);IW(a,2325,(ieb(d)|0)+24|0);IW(a,2325,(ieb(d)|0)+20|0);return}case 24:{IW(a,2340,b);IW(a,2325,(hdb(d)|0)+24|0);IW(a,2325,(hdb(d)|0)+20|0);IW(a,2325,(hdb(d)|0)+16|0);return}case 25:{IW(a,2341,b);IW(a,2325,(Ldb(d)|0)+20|0);IW(a,2325,(Ldb(d)|0)+16|0);IW(a,2325,(Ldb(d)|0)+12|0);return}case 26:{IW(a,2342,b);IW(a,2325,(Kdb(d)|0)+16|0);IW(a,2325,(Kdb(d)|0)+12|0);return}case 27:{IW(a,2343,b);IW(a,2325,(Adb(d)|0)+12|0);return}case 28:{IW(a,2344,b);IW(a,2325,(zdb(d)|0)+20|0);IW(a,2325,(zdb(d)|0)+12|0);return}case 29:{IW(a,2345,b);IW(a,2325,(ydb(d)|0)+12|0);IW(a,2325,(ydb(d)|0)+8|0);return}case 30:{IW(a,2346,b);IW(a,2325,(gdb(d)|0)+16|0);IW(a,2325,(gdb(d)|0)+12|0);IW(a,2325,(gdb(d)|0)+8|0);return}case 31:{IW(a,2347,b);IW(a,2325,(geb(d)|0)+16|0);IW(a,2325,(geb(d)|0)+12|0);return}case 32:{IW(a,2348,b);IW(a,2325,(Hdb(d)|0)+12|0);IW(a,2325,(Hdb(d)|0)+16|0);IW(a,2325,(Hdb(d)|0)+20|0);return}case 33:{IW(a,2349,b);return}case 34:{IW(a,2350,b);IW(a,2325,(Jdb(d)|0)+8|0);IW(a,2325,(Jdb(d)|0)+12|0);IW(a,2325,(Jdb(d)|0)+16|0);return}case 35:{IW(a,2351,b);IW(a,2325,(Idb(d)|0)+8|0);IW(a,2325,(Idb(d)|0)+12|0);IW(a,2325,(Idb(d)|0)+16|0);return}case 14:{IW(a,2352,b);return}case 15:{IW(a,2353,b);IW(a,2325,(dfb(d)|0)+12|0);return}case 16:{IW(a,2354,b);IW(a,2325,(Veb(d)|0)+16|0);IW(a,2325,(Veb(d)|0)+12|0);return}case 17:{IW(a,2355,b);IW(a,2325,(Teb(d)|0)+16|0);IW(a,2325,(Teb(d)|0)+12|0);IW(a,2325,(Teb(d)|0)+8|0);return}case 18:{IW(a,2356,b);IW(a,2325,(xfb(d)|0)+8|0);return}case 19:{IW(a,2357,b);YU(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,2358,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2325,uXa(e,b)|0);d=b}return}case 21:{IW(a,2359,b);return}case 22:{IW(a,2360,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ne(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,2687,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2684,uXa(e,b)|0);d=b}return}case 2:{IW(a,2688,b);$U(a,(Tfb(d)|0)+16|0);IW(a,2684,(Tfb(d)|0)+12|0);IW(a,2684,(Tfb(d)|0)+8|0);return}case 3:{IW(a,2689,b);IW(a,2684,(Efb(d)|0)+12|0);return}case 4:{IW(a,2690,b);$U(a,(tfb(d)|0)+16|0);$U(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,2691,b);IW(a,2684,(cfb(d)|0)+28|0);$U(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,2692,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2684,uXa(e,b)|0);d=b}return}case 7:{IW(a,2693,b);b=wdb(d)|0;IW(a,2684,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2684,uXa(e,b)|0);d=b}return}case 8:{IW(a,2694,b);return}case 9:{IW(a,2695,b);IW(a,2684,(Keb(d)|0)+12|0);return}case 10:{IW(a,2696,b);return}case 11:{IW(a,2697,b);IW(a,2684,(feb(d)|0)+12|0);return}case 12:{IW(a,2698,b);IW(a,2684,(vfb(d)|0)+24|0);return}case 13:{IW(a,2699,b);IW(a,2684,(efb(d)|0)+28|0);IW(a,2684,(efb(d)|0)+24|0);return}case 23:{IW(a,2700,b);IW(a,2684,(ieb(d)|0)+24|0);IW(a,2684,(ieb(d)|0)+20|0);return}case 24:{IW(a,2701,b);IW(a,2684,(hdb(d)|0)+24|0);IW(a,2684,(hdb(d)|0)+20|0);IW(a,2684,(hdb(d)|0)+16|0);return}case 25:{IW(a,2702,b);IW(a,2684,(Ldb(d)|0)+20|0);IW(a,2684,(Ldb(d)|0)+16|0);IW(a,2684,(Ldb(d)|0)+12|0);return}case 26:{IW(a,2703,b);IW(a,2684,(Kdb(d)|0)+16|0);IW(a,2684,(Kdb(d)|0)+12|0);return}case 27:{IW(a,2704,b);IW(a,2684,(Adb(d)|0)+12|0);return}case 28:{IW(a,2705,b);IW(a,2684,(zdb(d)|0)+20|0);IW(a,2684,(zdb(d)|0)+12|0);return}case 29:{IW(a,2706,b);IW(a,2684,(ydb(d)|0)+12|0);IW(a,2684,(ydb(d)|0)+8|0);return}case 30:{IW(a,2707,b);IW(a,2684,(gdb(d)|0)+16|0);IW(a,2684,(gdb(d)|0)+12|0);IW(a,2684,(gdb(d)|0)+8|0);return}case 31:{IW(a,2708,b);IW(a,2684,(geb(d)|0)+16|0);IW(a,2684,(geb(d)|0)+12|0);return}case 32:{IW(a,2709,b);IW(a,2684,(Hdb(d)|0)+12|0);IW(a,2684,(Hdb(d)|0)+16|0);IW(a,2684,(Hdb(d)|0)+20|0);return}case 33:{IW(a,2710,b);return}case 34:{IW(a,2711,b);IW(a,2684,(Jdb(d)|0)+8|0);IW(a,2684,(Jdb(d)|0)+12|0);IW(a,2684,(Jdb(d)|0)+16|0);return}case 35:{IW(a,2712,b);IW(a,2684,(Idb(d)|0)+8|0);IW(a,2684,(Idb(d)|0)+12|0);IW(a,2684,(Idb(d)|0)+16|0);return}case 14:{IW(a,2713,b);return}case 15:{IW(a,2714,b);IW(a,2684,(dfb(d)|0)+12|0);return}case 16:{IW(a,2715,b);IW(a,2684,(Veb(d)|0)+16|0);IW(a,2684,(Veb(d)|0)+12|0);return}case 17:{IW(a,2716,b);IW(a,2684,(Teb(d)|0)+16|0);IW(a,2684,(Teb(d)|0)+12|0);IW(a,2684,(Teb(d)|0)+8|0);return}case 18:{IW(a,2717,b);IW(a,2684,(xfb(d)|0)+8|0);return}case 19:{IW(a,2718,b);$U(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,2719,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2684,uXa(e,b)|0);d=b}return}case 21:{IW(a,2720,b);return}case 22:{IW(a,2721,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function oe(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,2953,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2952,uXa(e,b)|0);d=b}return}case 2:{IW(a,2954,b);qV(a,(Tfb(d)|0)+16|0);IW(a,2952,(Tfb(d)|0)+12|0);IW(a,2952,(Tfb(d)|0)+8|0);return}case 3:{IW(a,2955,b);IW(a,2952,(Efb(d)|0)+12|0);return}case 4:{IW(a,2956,b);qV(a,(tfb(d)|0)+16|0);qV(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,2957,b);IW(a,2952,(cfb(d)|0)+28|0);qV(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,2958,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2952,uXa(e,b)|0);d=b}return}case 7:{IW(a,2959,b);b=wdb(d)|0;IW(a,2952,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2952,uXa(e,b)|0);d=b}return}case 8:{IW(a,2960,b);return}case 9:{IW(a,2961,b);IW(a,2952,(Keb(d)|0)+12|0);return}case 10:{IW(a,2962,b);return}case 11:{IW(a,2963,b);IW(a,2952,(feb(d)|0)+12|0);return}case 12:{IW(a,2964,b);IW(a,2952,(vfb(d)|0)+24|0);return}case 13:{IW(a,2965,b);IW(a,2952,(efb(d)|0)+28|0);IW(a,2952,(efb(d)|0)+24|0);return}case 23:{IW(a,2966,b);IW(a,2952,(ieb(d)|0)+24|0);IW(a,2952,(ieb(d)|0)+20|0);return}case 24:{IW(a,2967,b);IW(a,2952,(hdb(d)|0)+24|0);IW(a,2952,(hdb(d)|0)+20|0);IW(a,2952,(hdb(d)|0)+16|0);return}case 25:{IW(a,2968,b);IW(a,2952,(Ldb(d)|0)+20|0);IW(a,2952,(Ldb(d)|0)+16|0);IW(a,2952,(Ldb(d)|0)+12|0);return}case 26:{IW(a,2969,b);IW(a,2952,(Kdb(d)|0)+16|0);IW(a,2952,(Kdb(d)|0)+12|0);return}case 27:{IW(a,2970,b);IW(a,2952,(Adb(d)|0)+12|0);return}case 28:{IW(a,2971,b);IW(a,2952,(zdb(d)|0)+20|0);IW(a,2952,(zdb(d)|0)+12|0);return}case 29:{IW(a,2972,b);IW(a,2952,(ydb(d)|0)+12|0);IW(a,2952,(ydb(d)|0)+8|0);return}case 30:{IW(a,2973,b);IW(a,2952,(gdb(d)|0)+16|0);IW(a,2952,(gdb(d)|0)+12|0);IW(a,2952,(gdb(d)|0)+8|0);return}case 31:{IW(a,2974,b);IW(a,2952,(geb(d)|0)+16|0);IW(a,2952,(geb(d)|0)+12|0);return}case 32:{IW(a,2975,b);IW(a,2952,(Hdb(d)|0)+12|0);IW(a,2952,(Hdb(d)|0)+16|0);IW(a,2952,(Hdb(d)|0)+20|0);return}case 33:{IW(a,2976,b);return}case 34:{IW(a,2977,b);IW(a,2952,(Jdb(d)|0)+8|0);IW(a,2952,(Jdb(d)|0)+12|0);IW(a,2952,(Jdb(d)|0)+16|0);return}case 35:{IW(a,2978,b);IW(a,2952,(Idb(d)|0)+8|0);IW(a,2952,(Idb(d)|0)+12|0);IW(a,2952,(Idb(d)|0)+16|0);return}case 14:{IW(a,2979,b);return}case 15:{IW(a,2980,b);IW(a,2952,(dfb(d)|0)+12|0);return}case 16:{IW(a,2981,b);IW(a,2952,(Veb(d)|0)+16|0);IW(a,2952,(Veb(d)|0)+12|0);return}case 17:{IW(a,2982,b);IW(a,2952,(Teb(d)|0)+16|0);IW(a,2952,(Teb(d)|0)+12|0);IW(a,2952,(Teb(d)|0)+8|0);return}case 18:{IW(a,2983,b);IW(a,2952,(xfb(d)|0)+8|0);return}case 19:{IW(a,2984,b);qV(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,2985,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2952,uXa(e,b)|0);d=b}return}case 21:{IW(a,2986,b);return}case 22:{IW(a,2987,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function pe(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,1798,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1797,uXa(e,b)|0);d=b}return}case 2:{IW(a,1799,b);rV(a,(Tfb(d)|0)+16|0);IW(a,1797,(Tfb(d)|0)+12|0);IW(a,1797,(Tfb(d)|0)+8|0);return}case 3:{IW(a,1800,b);IW(a,1797,(Efb(d)|0)+12|0);return}case 4:{IW(a,1801,b);rV(a,(tfb(d)|0)+16|0);rV(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,1802,b);IW(a,1797,(cfb(d)|0)+28|0);rV(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,1803,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1797,uXa(e,b)|0);d=b}return}case 7:{IW(a,1804,b);b=wdb(d)|0;IW(a,1797,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1797,uXa(e,b)|0);d=b}return}case 8:{IW(a,1805,b);return}case 9:{IW(a,1806,b);IW(a,1797,(Keb(d)|0)+12|0);return}case 10:{IW(a,1807,b);return}case 11:{IW(a,1808,b);IW(a,1797,(feb(d)|0)+12|0);return}case 12:{IW(a,1809,b);IW(a,1797,(vfb(d)|0)+24|0);return}case 13:{IW(a,1810,b);IW(a,1797,(efb(d)|0)+28|0);IW(a,1797,(efb(d)|0)+24|0);return}case 23:{IW(a,1811,b);IW(a,1797,(ieb(d)|0)+24|0);IW(a,1797,(ieb(d)|0)+20|0);return}case 24:{IW(a,1812,b);IW(a,1797,(hdb(d)|0)+24|0);IW(a,1797,(hdb(d)|0)+20|0);IW(a,1797,(hdb(d)|0)+16|0);return}case 25:{IW(a,1813,b);IW(a,1797,(Ldb(d)|0)+20|0);IW(a,1797,(Ldb(d)|0)+16|0);IW(a,1797,(Ldb(d)|0)+12|0);return}case 26:{IW(a,1814,b);IW(a,1797,(Kdb(d)|0)+16|0);IW(a,1797,(Kdb(d)|0)+12|0);return}case 27:{IW(a,1815,b);IW(a,1797,(Adb(d)|0)+12|0);return}case 28:{IW(a,1816,b);IW(a,1797,(zdb(d)|0)+20|0);IW(a,1797,(zdb(d)|0)+12|0);return}case 29:{IW(a,1817,b);IW(a,1797,(ydb(d)|0)+12|0);IW(a,1797,(ydb(d)|0)+8|0);return}case 30:{IW(a,1818,b);IW(a,1797,(gdb(d)|0)+16|0);IW(a,1797,(gdb(d)|0)+12|0);IW(a,1797,(gdb(d)|0)+8|0);return}case 31:{IW(a,1819,b);IW(a,1797,(geb(d)|0)+16|0);IW(a,1797,(geb(d)|0)+12|0);return}case 32:{IW(a,1820,b);IW(a,1797,(Hdb(d)|0)+12|0);IW(a,1797,(Hdb(d)|0)+16|0);IW(a,1797,(Hdb(d)|0)+20|0);return}case 33:{IW(a,1821,b);return}case 34:{IW(a,1822,b);IW(a,1797,(Jdb(d)|0)+8|0);IW(a,1797,(Jdb(d)|0)+12|0);IW(a,1797,(Jdb(d)|0)+16|0);return}case 35:{IW(a,1823,b);IW(a,1797,(Idb(d)|0)+8|0);IW(a,1797,(Idb(d)|0)+12|0);IW(a,1797,(Idb(d)|0)+16|0);return}case 14:{IW(a,1824,b);return}case 15:{IW(a,1825,b);IW(a,1797,(dfb(d)|0)+12|0);return}case 16:{IW(a,1826,b);IW(a,1797,(Veb(d)|0)+16|0);IW(a,1797,(Veb(d)|0)+12|0);return}case 17:{IW(a,1827,b);IW(a,1797,(Teb(d)|0)+16|0);IW(a,1797,(Teb(d)|0)+12|0);IW(a,1797,(Teb(d)|0)+8|0);return}case 18:{IW(a,1828,b);IW(a,1797,(xfb(d)|0)+8|0);return}case 19:{IW(a,1829,b);rV(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,1830,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1797,uXa(e,b)|0);d=b}return}case 21:{IW(a,1831,b);return}case 22:{IW(a,1832,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function qe(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,2723,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2722,uXa(e,b)|0);d=b}return}case 2:{IW(a,2724,b);CV(a,(Tfb(d)|0)+16|0);IW(a,2722,(Tfb(d)|0)+12|0);IW(a,2722,(Tfb(d)|0)+8|0);return}case 3:{IW(a,2725,b);IW(a,2722,(Efb(d)|0)+12|0);return}case 4:{IW(a,2726,b);CV(a,(tfb(d)|0)+16|0);CV(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,2727,b);IW(a,2722,(cfb(d)|0)+28|0);CV(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,2728,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2722,uXa(e,b)|0);d=b}return}case 7:{IW(a,2729,b);b=wdb(d)|0;IW(a,2722,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2722,uXa(e,b)|0);d=b}return}case 8:{IW(a,2730,b);return}case 9:{IW(a,2731,b);IW(a,2722,(Keb(d)|0)+12|0);return}case 10:{IW(a,2732,b);return}case 11:{IW(a,2733,b);IW(a,2722,(feb(d)|0)+12|0);return}case 12:{IW(a,2734,b);IW(a,2722,(vfb(d)|0)+24|0);return}case 13:{IW(a,2735,b);IW(a,2722,(efb(d)|0)+28|0);IW(a,2722,(efb(d)|0)+24|0);return}case 23:{IW(a,2736,b);IW(a,2722,(ieb(d)|0)+24|0);IW(a,2722,(ieb(d)|0)+20|0);return}case 24:{IW(a,2737,b);IW(a,2722,(hdb(d)|0)+24|0);IW(a,2722,(hdb(d)|0)+20|0);IW(a,2722,(hdb(d)|0)+16|0);return}case 25:{IW(a,2738,b);IW(a,2722,(Ldb(d)|0)+20|0);IW(a,2722,(Ldb(d)|0)+16|0);IW(a,2722,(Ldb(d)|0)+12|0);return}case 26:{IW(a,2739,b);IW(a,2722,(Kdb(d)|0)+16|0);IW(a,2722,(Kdb(d)|0)+12|0);return}case 27:{IW(a,2740,b);IW(a,2722,(Adb(d)|0)+12|0);return}case 28:{IW(a,2741,b);IW(a,2722,(zdb(d)|0)+20|0);IW(a,2722,(zdb(d)|0)+12|0);return}case 29:{IW(a,2742,b);IW(a,2722,(ydb(d)|0)+12|0);IW(a,2722,(ydb(d)|0)+8|0);return}case 30:{IW(a,2743,b);IW(a,2722,(gdb(d)|0)+16|0);IW(a,2722,(gdb(d)|0)+12|0);IW(a,2722,(gdb(d)|0)+8|0);return}case 31:{IW(a,2744,b);IW(a,2722,(geb(d)|0)+16|0);IW(a,2722,(geb(d)|0)+12|0);return}case 32:{IW(a,2745,b);IW(a,2722,(Hdb(d)|0)+12|0);IW(a,2722,(Hdb(d)|0)+16|0);IW(a,2722,(Hdb(d)|0)+20|0);return}case 33:{IW(a,2746,b);return}case 34:{IW(a,2747,b);IW(a,2722,(Jdb(d)|0)+8|0);IW(a,2722,(Jdb(d)|0)+12|0);IW(a,2722,(Jdb(d)|0)+16|0);return}case 35:{IW(a,2748,b);IW(a,2722,(Idb(d)|0)+8|0);IW(a,2722,(Idb(d)|0)+12|0);IW(a,2722,(Idb(d)|0)+16|0);return}case 14:{IW(a,2749,b);return}case 15:{IW(a,2750,b);IW(a,2722,(dfb(d)|0)+12|0);return}case 16:{IW(a,2751,b);IW(a,2722,(Veb(d)|0)+16|0);IW(a,2722,(Veb(d)|0)+12|0);return}case 17:{IW(a,2752,b);IW(a,2722,(Teb(d)|0)+16|0);IW(a,2722,(Teb(d)|0)+12|0);IW(a,2722,(Teb(d)|0)+8|0);return}case 18:{IW(a,2753,b);IW(a,2722,(xfb(d)|0)+8|0);return}case 19:{IW(a,2754,b);CV(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,2755,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2722,uXa(e,b)|0);d=b}return}case 21:{IW(a,2756,b);return}case 22:{IW(a,2757,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function re(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,2608,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2607,uXa(e,b)|0);d=b}return}case 2:{IW(a,2609,b);KV(a,(Tfb(d)|0)+16|0);IW(a,2607,(Tfb(d)|0)+12|0);IW(a,2607,(Tfb(d)|0)+8|0);return}case 3:{IW(a,2610,b);IW(a,2607,(Efb(d)|0)+12|0);return}case 4:{IW(a,2611,b);KV(a,(tfb(d)|0)+16|0);KV(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,2612,b);IW(a,2607,(cfb(d)|0)+28|0);KV(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,2613,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2607,uXa(e,b)|0);d=b}return}case 7:{IW(a,2614,b);b=wdb(d)|0;IW(a,2607,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2607,uXa(e,b)|0);d=b}return}case 8:{IW(a,2615,b);return}case 9:{IW(a,2616,b);IW(a,2607,(Keb(d)|0)+12|0);return}case 10:{IW(a,2617,b);return}case 11:{IW(a,2618,b);IW(a,2607,(feb(d)|0)+12|0);return}case 12:{IW(a,2619,b);IW(a,2607,(vfb(d)|0)+24|0);return}case 13:{IW(a,2620,b);IW(a,2607,(efb(d)|0)+28|0);IW(a,2607,(efb(d)|0)+24|0);return}case 23:{IW(a,2621,b);IW(a,2607,(ieb(d)|0)+24|0);IW(a,2607,(ieb(d)|0)+20|0);return}case 24:{IW(a,2622,b);IW(a,2607,(hdb(d)|0)+24|0);IW(a,2607,(hdb(d)|0)+20|0);IW(a,2607,(hdb(d)|0)+16|0);return}case 25:{IW(a,2623,b);IW(a,2607,(Ldb(d)|0)+20|0);IW(a,2607,(Ldb(d)|0)+16|0);IW(a,2607,(Ldb(d)|0)+12|0);return}case 26:{IW(a,2624,b);IW(a,2607,(Kdb(d)|0)+16|0);IW(a,2607,(Kdb(d)|0)+12|0);return}case 27:{IW(a,2625,b);IW(a,2607,(Adb(d)|0)+12|0);return}case 28:{IW(a,2626,b);IW(a,2607,(zdb(d)|0)+20|0);IW(a,2607,(zdb(d)|0)+12|0);return}case 29:{IW(a,2627,b);IW(a,2607,(ydb(d)|0)+12|0);IW(a,2607,(ydb(d)|0)+8|0);return}case 30:{IW(a,2628,b);IW(a,2607,(gdb(d)|0)+16|0);IW(a,2607,(gdb(d)|0)+12|0);IW(a,2607,(gdb(d)|0)+8|0);return}case 31:{IW(a,2629,b);IW(a,2607,(geb(d)|0)+16|0);IW(a,2607,(geb(d)|0)+12|0);return}case 32:{IW(a,2630,b);IW(a,2607,(Hdb(d)|0)+12|0);IW(a,2607,(Hdb(d)|0)+16|0);IW(a,2607,(Hdb(d)|0)+20|0);return}case 33:{IW(a,2631,b);return}case 34:{IW(a,2632,b);IW(a,2607,(Jdb(d)|0)+8|0);IW(a,2607,(Jdb(d)|0)+12|0);IW(a,2607,(Jdb(d)|0)+16|0);return}case 35:{IW(a,2633,b);IW(a,2607,(Idb(d)|0)+8|0);IW(a,2607,(Idb(d)|0)+12|0);IW(a,2607,(Idb(d)|0)+16|0);return}case 14:{IW(a,2634,b);return}case 15:{IW(a,2635,b);IW(a,2607,(dfb(d)|0)+12|0);return}case 16:{IW(a,2636,b);IW(a,2607,(Veb(d)|0)+16|0);IW(a,2607,(Veb(d)|0)+12|0);return}case 17:{IW(a,2637,b);IW(a,2607,(Teb(d)|0)+16|0);IW(a,2607,(Teb(d)|0)+12|0);IW(a,2607,(Teb(d)|0)+8|0);return}case 18:{IW(a,2638,b);IW(a,2607,(xfb(d)|0)+8|0);return}case 19:{IW(a,2639,b);KV(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,2640,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2607,uXa(e,b)|0);d=b}return}case 21:{IW(a,2641,b);return}case 22:{IW(a,2642,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function se(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,440,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,439,uXa(e,b)|0);d=b}return}case 2:{IW(a,441,b);BV(a,(Tfb(d)|0)+16|0);IW(a,439,(Tfb(d)|0)+12|0);IW(a,439,(Tfb(d)|0)+8|0);return}case 3:{IW(a,442,b);IW(a,439,(Efb(d)|0)+12|0);return}case 4:{IW(a,443,b);BV(a,(tfb(d)|0)+16|0);BV(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,444,b);IW(a,439,(cfb(d)|0)+28|0);BV(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,445,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,439,uXa(e,b)|0);d=b}return}case 7:{IW(a,446,b);b=wdb(d)|0;IW(a,439,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,439,uXa(e,b)|0);d=b}return}case 8:{IW(a,447,b);return}case 9:{IW(a,448,b);IW(a,439,(Keb(d)|0)+12|0);return}case 10:{IW(a,449,b);return}case 11:{IW(a,450,b);IW(a,439,(feb(d)|0)+12|0);return}case 12:{IW(a,451,b);IW(a,439,(vfb(d)|0)+24|0);return}case 13:{IW(a,452,b);IW(a,439,(efb(d)|0)+28|0);IW(a,439,(efb(d)|0)+24|0);return}case 23:{IW(a,453,b);IW(a,439,(ieb(d)|0)+24|0);IW(a,439,(ieb(d)|0)+20|0);return}case 24:{IW(a,454,b);IW(a,439,(hdb(d)|0)+24|0);IW(a,439,(hdb(d)|0)+20|0);IW(a,439,(hdb(d)|0)+16|0);return}case 25:{IW(a,455,b);IW(a,439,(Ldb(d)|0)+20|0);IW(a,439,(Ldb(d)|0)+16|0);IW(a,439,(Ldb(d)|0)+12|0);return}case 26:{IW(a,456,b);IW(a,439,(Kdb(d)|0)+16|0);IW(a,439,(Kdb(d)|0)+12|0);return}case 27:{IW(a,457,b);IW(a,439,(Adb(d)|0)+12|0);return}case 28:{IW(a,458,b);IW(a,439,(zdb(d)|0)+20|0);IW(a,439,(zdb(d)|0)+12|0);return}case 29:{IW(a,459,b);IW(a,439,(ydb(d)|0)+12|0);IW(a,439,(ydb(d)|0)+8|0);return}case 30:{IW(a,460,b);IW(a,439,(gdb(d)|0)+16|0);IW(a,439,(gdb(d)|0)+12|0);IW(a,439,(gdb(d)|0)+8|0);return}case 31:{IW(a,461,b);IW(a,439,(geb(d)|0)+16|0);IW(a,439,(geb(d)|0)+12|0);return}case 32:{IW(a,462,b);IW(a,439,(Hdb(d)|0)+12|0);IW(a,439,(Hdb(d)|0)+16|0);IW(a,439,(Hdb(d)|0)+20|0);return}case 33:{IW(a,463,b);return}case 34:{IW(a,464,b);IW(a,439,(Jdb(d)|0)+8|0);IW(a,439,(Jdb(d)|0)+12|0);IW(a,439,(Jdb(d)|0)+16|0);return}case 35:{IW(a,465,b);IW(a,439,(Idb(d)|0)+8|0);IW(a,439,(Idb(d)|0)+12|0);IW(a,439,(Idb(d)|0)+16|0);return}case 14:{IW(a,466,b);return}case 15:{IW(a,467,b);IW(a,439,(dfb(d)|0)+12|0);return}case 16:{IW(a,468,b);IW(a,439,(Veb(d)|0)+16|0);IW(a,439,(Veb(d)|0)+12|0);return}case 17:{IW(a,469,b);IW(a,439,(Teb(d)|0)+16|0);IW(a,439,(Teb(d)|0)+12|0);IW(a,439,(Teb(d)|0)+8|0);return}case 18:{IW(a,470,b);IW(a,439,(xfb(d)|0)+8|0);return}case 19:{IW(a,471,b);BV(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,472,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,439,uXa(e,b)|0);d=b}return}case 21:{IW(a,473,b);return}case 22:{IW(a,474,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function te(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,479,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,478,uXa(e,b)|0);d=b}return}case 2:{IW(a,480,b);JV(a,(Tfb(d)|0)+16|0);IW(a,478,(Tfb(d)|0)+12|0);IW(a,478,(Tfb(d)|0)+8|0);return}case 3:{IW(a,481,b);IW(a,478,(Efb(d)|0)+12|0);return}case 4:{IW(a,482,b);JV(a,(tfb(d)|0)+16|0);JV(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,483,b);IW(a,478,(cfb(d)|0)+28|0);JV(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,484,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,478,uXa(e,b)|0);d=b}return}case 7:{IW(a,485,b);b=wdb(d)|0;IW(a,478,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,478,uXa(e,b)|0);d=b}return}case 8:{IW(a,486,b);return}case 9:{IW(a,487,b);IW(a,478,(Keb(d)|0)+12|0);return}case 10:{IW(a,488,b);return}case 11:{IW(a,489,b);IW(a,478,(feb(d)|0)+12|0);return}case 12:{IW(a,490,b);IW(a,478,(vfb(d)|0)+24|0);return}case 13:{IW(a,491,b);IW(a,478,(efb(d)|0)+28|0);IW(a,478,(efb(d)|0)+24|0);return}case 23:{IW(a,492,b);IW(a,478,(ieb(d)|0)+24|0);IW(a,478,(ieb(d)|0)+20|0);return}case 24:{IW(a,493,b);IW(a,478,(hdb(d)|0)+24|0);IW(a,478,(hdb(d)|0)+20|0);IW(a,478,(hdb(d)|0)+16|0);return}case 25:{IW(a,494,b);IW(a,478,(Ldb(d)|0)+20|0);IW(a,478,(Ldb(d)|0)+16|0);IW(a,478,(Ldb(d)|0)+12|0);return}case 26:{IW(a,495,b);IW(a,478,(Kdb(d)|0)+16|0);IW(a,478,(Kdb(d)|0)+12|0);return}case 27:{IW(a,496,b);IW(a,478,(Adb(d)|0)+12|0);return}case 28:{IW(a,497,b);IW(a,478,(zdb(d)|0)+20|0);IW(a,478,(zdb(d)|0)+12|0);return}case 29:{IW(a,498,b);IW(a,478,(ydb(d)|0)+12|0);IW(a,478,(ydb(d)|0)+8|0);return}case 30:{IW(a,499,b);IW(a,478,(gdb(d)|0)+16|0);IW(a,478,(gdb(d)|0)+12|0);IW(a,478,(gdb(d)|0)+8|0);return}case 31:{IW(a,500,b);IW(a,478,(geb(d)|0)+16|0);IW(a,478,(geb(d)|0)+12|0);return}case 32:{IW(a,501,b);IW(a,478,(Hdb(d)|0)+12|0);IW(a,478,(Hdb(d)|0)+16|0);IW(a,478,(Hdb(d)|0)+20|0);return}case 33:{IW(a,502,b);return}case 34:{IW(a,503,b);IW(a,478,(Jdb(d)|0)+8|0);IW(a,478,(Jdb(d)|0)+12|0);IW(a,478,(Jdb(d)|0)+16|0);return}case 35:{IW(a,504,b);IW(a,478,(Idb(d)|0)+8|0);IW(a,478,(Idb(d)|0)+12|0);IW(a,478,(Idb(d)|0)+16|0);return}case 14:{IW(a,505,b);return}case 15:{IW(a,506,b);IW(a,478,(dfb(d)|0)+12|0);return}case 16:{IW(a,507,b);IW(a,478,(Veb(d)|0)+16|0);IW(a,478,(Veb(d)|0)+12|0);return}case 17:{IW(a,508,b);IW(a,478,(Teb(d)|0)+16|0);IW(a,478,(Teb(d)|0)+12|0);IW(a,478,(Teb(d)|0)+8|0);return}case 18:{IW(a,509,b);IW(a,478,(xfb(d)|0)+8|0);return}case 19:{IW(a,510,b);JV(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,511,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,478,uXa(e,b)|0);d=b}return}case 21:{IW(a,512,b);return}case 22:{IW(a,513,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ue(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,515,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,514,uXa(e,b)|0);d=b}return}case 2:{IW(a,516,b);MV(a,(Tfb(d)|0)+16|0);IW(a,514,(Tfb(d)|0)+12|0);IW(a,514,(Tfb(d)|0)+8|0);return}case 3:{IW(a,517,b);IW(a,514,(Efb(d)|0)+12|0);return}case 4:{IW(a,518,b);MV(a,(tfb(d)|0)+16|0);MV(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,519,b);IW(a,514,(cfb(d)|0)+28|0);MV(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,520,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,514,uXa(e,b)|0);d=b}return}case 7:{IW(a,521,b);b=wdb(d)|0;IW(a,514,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,514,uXa(e,b)|0);d=b}return}case 8:{IW(a,522,b);return}case 9:{IW(a,523,b);IW(a,514,(Keb(d)|0)+12|0);return}case 10:{IW(a,524,b);return}case 11:{IW(a,525,b);IW(a,514,(feb(d)|0)+12|0);return}case 12:{IW(a,526,b);IW(a,514,(vfb(d)|0)+24|0);return}case 13:{IW(a,527,b);IW(a,514,(efb(d)|0)+28|0);IW(a,514,(efb(d)|0)+24|0);return}case 23:{IW(a,528,b);IW(a,514,(ieb(d)|0)+24|0);IW(a,514,(ieb(d)|0)+20|0);return}case 24:{IW(a,529,b);IW(a,514,(hdb(d)|0)+24|0);IW(a,514,(hdb(d)|0)+20|0);IW(a,514,(hdb(d)|0)+16|0);return}case 25:{IW(a,530,b);IW(a,514,(Ldb(d)|0)+20|0);IW(a,514,(Ldb(d)|0)+16|0);IW(a,514,(Ldb(d)|0)+12|0);return}case 26:{IW(a,531,b);IW(a,514,(Kdb(d)|0)+16|0);IW(a,514,(Kdb(d)|0)+12|0);return}case 27:{IW(a,532,b);IW(a,514,(Adb(d)|0)+12|0);return}case 28:{IW(a,533,b);IW(a,514,(zdb(d)|0)+20|0);IW(a,514,(zdb(d)|0)+12|0);return}case 29:{IW(a,534,b);IW(a,514,(ydb(d)|0)+12|0);IW(a,514,(ydb(d)|0)+8|0);return}case 30:{IW(a,535,b);IW(a,514,(gdb(d)|0)+16|0);IW(a,514,(gdb(d)|0)+12|0);IW(a,514,(gdb(d)|0)+8|0);return}case 31:{IW(a,536,b);IW(a,514,(geb(d)|0)+16|0);IW(a,514,(geb(d)|0)+12|0);return}case 32:{IW(a,537,b);IW(a,514,(Hdb(d)|0)+12|0);IW(a,514,(Hdb(d)|0)+16|0);IW(a,514,(Hdb(d)|0)+20|0);return}case 33:{IW(a,538,b);return}case 34:{IW(a,539,b);IW(a,514,(Jdb(d)|0)+8|0);IW(a,514,(Jdb(d)|0)+12|0);IW(a,514,(Jdb(d)|0)+16|0);return}case 35:{IW(a,540,b);IW(a,514,(Idb(d)|0)+8|0);IW(a,514,(Idb(d)|0)+12|0);IW(a,514,(Idb(d)|0)+16|0);return}case 14:{IW(a,541,b);return}case 15:{IW(a,542,b);IW(a,514,(dfb(d)|0)+12|0);return}case 16:{IW(a,543,b);IW(a,514,(Veb(d)|0)+16|0);IW(a,514,(Veb(d)|0)+12|0);return}case 17:{IW(a,544,b);IW(a,514,(Teb(d)|0)+16|0);IW(a,514,(Teb(d)|0)+12|0);IW(a,514,(Teb(d)|0)+8|0);return}case 18:{IW(a,545,b);IW(a,514,(xfb(d)|0)+8|0);return}case 19:{IW(a,546,b);MV(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,547,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,514,uXa(e,b)|0);d=b}return}case 21:{IW(a,548,b);return}case 22:{IW(a,549,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ve(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,95,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,94,uXa(e,b)|0);d=b}return}case 2:{IW(a,96,b);xV(a,(Tfb(d)|0)+16|0);IW(a,94,(Tfb(d)|0)+12|0);IW(a,94,(Tfb(d)|0)+8|0);return}case 3:{IW(a,97,b);IW(a,94,(Efb(d)|0)+12|0);return}case 4:{IW(a,98,b);xV(a,(tfb(d)|0)+16|0);xV(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,99,b);IW(a,94,(cfb(d)|0)+28|0);xV(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,100,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,94,uXa(e,b)|0);d=b}return}case 7:{IW(a,101,b);b=wdb(d)|0;IW(a,94,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,94,uXa(e,b)|0);d=b}return}case 8:{IW(a,102,b);return}case 9:{IW(a,103,b);IW(a,94,(Keb(d)|0)+12|0);return}case 10:{IW(a,104,b);return}case 11:{IW(a,105,b);IW(a,94,(feb(d)|0)+12|0);return}case 12:{IW(a,106,b);IW(a,94,(vfb(d)|0)+24|0);return}case 13:{IW(a,107,b);IW(a,94,(efb(d)|0)+28|0);IW(a,94,(efb(d)|0)+24|0);return}case 23:{IW(a,108,b);IW(a,94,(ieb(d)|0)+24|0);IW(a,94,(ieb(d)|0)+20|0);return}case 24:{IW(a,109,b);IW(a,94,(hdb(d)|0)+24|0);IW(a,94,(hdb(d)|0)+20|0);IW(a,94,(hdb(d)|0)+16|0);return}case 25:{IW(a,110,b);IW(a,94,(Ldb(d)|0)+20|0);IW(a,94,(Ldb(d)|0)+16|0);IW(a,94,(Ldb(d)|0)+12|0);return}case 26:{IW(a,111,b);IW(a,94,(Kdb(d)|0)+16|0);IW(a,94,(Kdb(d)|0)+12|0);return}case 27:{IW(a,112,b);IW(a,94,(Adb(d)|0)+12|0);return}case 28:{IW(a,113,b);IW(a,94,(zdb(d)|0)+20|0);IW(a,94,(zdb(d)|0)+12|0);return}case 29:{IW(a,114,b);IW(a,94,(ydb(d)|0)+12|0);IW(a,94,(ydb(d)|0)+8|0);return}case 30:{IW(a,115,b);IW(a,94,(gdb(d)|0)+16|0);IW(a,94,(gdb(d)|0)+12|0);IW(a,94,(gdb(d)|0)+8|0);return}case 31:{IW(a,116,b);IW(a,94,(geb(d)|0)+16|0);IW(a,94,(geb(d)|0)+12|0);return}case 32:{IW(a,117,b);IW(a,94,(Hdb(d)|0)+12|0);IW(a,94,(Hdb(d)|0)+16|0);IW(a,94,(Hdb(d)|0)+20|0);return}case 33:{IW(a,118,b);return}case 34:{IW(a,119,b);IW(a,94,(Jdb(d)|0)+8|0);IW(a,94,(Jdb(d)|0)+12|0);IW(a,94,(Jdb(d)|0)+16|0);return}case 35:{IW(a,120,b);IW(a,94,(Idb(d)|0)+8|0);IW(a,94,(Idb(d)|0)+12|0);IW(a,94,(Idb(d)|0)+16|0);return}case 14:{IW(a,121,b);return}case 15:{IW(a,122,b);IW(a,94,(dfb(d)|0)+12|0);return}case 16:{IW(a,123,b);IW(a,94,(Veb(d)|0)+16|0);IW(a,94,(Veb(d)|0)+12|0);return}case 17:{IW(a,124,b);IW(a,94,(Teb(d)|0)+16|0);IW(a,94,(Teb(d)|0)+12|0);IW(a,94,(Teb(d)|0)+8|0);return}case 18:{IW(a,125,b);IW(a,94,(xfb(d)|0)+8|0);return}case 19:{IW(a,126,b);xV(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,127,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,94,uXa(e,b)|0);d=b}return}case 21:{IW(a,128,b);return}case 22:{IW(a,129,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function we(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3737,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3736,uXa(e,b)|0);d=b}return}case 2:{IW(a,3738,b);PW(a,(Tfb(d)|0)+16|0);IW(a,3736,(Tfb(d)|0)+12|0);IW(a,3736,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3739,b);IW(a,3736,(Efb(d)|0)+12|0);return}case 4:{IW(a,3740,b);PW(a,(tfb(d)|0)+16|0);PW(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3741,b);IW(a,3736,(cfb(d)|0)+28|0);PW(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,3742,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3736,uXa(e,b)|0);d=b}return}case 7:{IW(a,3743,b);b=wdb(d)|0;IW(a,3736,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3736,uXa(e,b)|0);d=b}return}case 8:{IW(a,3744,b);return}case 9:{IW(a,3745,b);IW(a,3736,(Keb(d)|0)+12|0);return}case 10:{IW(a,3746,b);return}case 11:{IW(a,3747,b);IW(a,3736,(feb(d)|0)+12|0);return}case 12:{IW(a,3748,b);IW(a,3736,(vfb(d)|0)+24|0);return}case 13:{IW(a,3749,b);IW(a,3736,(efb(d)|0)+28|0);IW(a,3736,(efb(d)|0)+24|0);return}case 23:{IW(a,3750,b);IW(a,3736,(ieb(d)|0)+24|0);IW(a,3736,(ieb(d)|0)+20|0);return}case 24:{IW(a,3751,b);IW(a,3736,(hdb(d)|0)+24|0);IW(a,3736,(hdb(d)|0)+20|0);IW(a,3736,(hdb(d)|0)+16|0);return}case 25:{IW(a,3752,b);IW(a,3736,(Ldb(d)|0)+20|0);IW(a,3736,(Ldb(d)|0)+16|0);IW(a,3736,(Ldb(d)|0)+12|0);return}case 26:{IW(a,3753,b);IW(a,3736,(Kdb(d)|0)+16|0);IW(a,3736,(Kdb(d)|0)+12|0);return}case 27:{IW(a,3754,b);IW(a,3736,(Adb(d)|0)+12|0);return}case 28:{IW(a,3755,b);IW(a,3736,(zdb(d)|0)+20|0);IW(a,3736,(zdb(d)|0)+12|0);return}case 29:{IW(a,3756,b);IW(a,3736,(ydb(d)|0)+12|0);IW(a,3736,(ydb(d)|0)+8|0);return}case 30:{IW(a,3757,b);IW(a,3736,(gdb(d)|0)+16|0);IW(a,3736,(gdb(d)|0)+12|0);IW(a,3736,(gdb(d)|0)+8|0);return}case 31:{IW(a,3758,b);IW(a,3736,(geb(d)|0)+16|0);IW(a,3736,(geb(d)|0)+12|0);return}case 32:{IW(a,3759,b);IW(a,3736,(Hdb(d)|0)+12|0);IW(a,3736,(Hdb(d)|0)+16|0);IW(a,3736,(Hdb(d)|0)+20|0);return}case 33:{IW(a,3760,b);return}case 34:{IW(a,3761,b);IW(a,3736,(Jdb(d)|0)+8|0);IW(a,3736,(Jdb(d)|0)+12|0);IW(a,3736,(Jdb(d)|0)+16|0);return}case 35:{IW(a,3762,b);IW(a,3736,(Idb(d)|0)+8|0);IW(a,3736,(Idb(d)|0)+12|0);IW(a,3736,(Idb(d)|0)+16|0);return}case 14:{IW(a,3763,b);return}case 15:{IW(a,3764,b);IW(a,3736,(dfb(d)|0)+12|0);return}case 16:{IW(a,3765,b);IW(a,3736,(Veb(d)|0)+16|0);IW(a,3736,(Veb(d)|0)+12|0);return}case 17:{IW(a,3766,b);IW(a,3736,(Teb(d)|0)+16|0);IW(a,3736,(Teb(d)|0)+12|0);IW(a,3736,(Teb(d)|0)+8|0);return}case 18:{IW(a,3767,b);IW(a,3736,(xfb(d)|0)+8|0);return}case 19:{IW(a,3768,b);PW(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,3769,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3736,uXa(e,b)|0);d=b}return}case 21:{IW(a,3770,b);return}case 22:{IW(a,3771,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function xe(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,701,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,700,uXa(e,b)|0);d=b}return}case 2:{IW(a,702,b);gW(a,(Tfb(d)|0)+16|0);IW(a,700,(Tfb(d)|0)+12|0);IW(a,700,(Tfb(d)|0)+8|0);return}case 3:{IW(a,703,b);IW(a,700,(Efb(d)|0)+12|0);return}case 4:{IW(a,704,b);gW(a,(tfb(d)|0)+16|0);gW(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,705,b);IW(a,700,(cfb(d)|0)+28|0);gW(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,706,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,700,uXa(e,b)|0);d=b}return}case 7:{IW(a,707,b);b=wdb(d)|0;IW(a,700,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,700,uXa(e,b)|0);d=b}return}case 8:{IW(a,708,b);return}case 9:{IW(a,709,b);IW(a,700,(Keb(d)|0)+12|0);return}case 10:{IW(a,710,b);return}case 11:{IW(a,711,b);IW(a,700,(feb(d)|0)+12|0);return}case 12:{IW(a,712,b);IW(a,700,(vfb(d)|0)+24|0);return}case 13:{IW(a,713,b);IW(a,700,(efb(d)|0)+28|0);IW(a,700,(efb(d)|0)+24|0);return}case 23:{IW(a,714,b);IW(a,700,(ieb(d)|0)+24|0);IW(a,700,(ieb(d)|0)+20|0);return}case 24:{IW(a,715,b);IW(a,700,(hdb(d)|0)+24|0);IW(a,700,(hdb(d)|0)+20|0);IW(a,700,(hdb(d)|0)+16|0);return}case 25:{IW(a,716,b);IW(a,700,(Ldb(d)|0)+20|0);IW(a,700,(Ldb(d)|0)+16|0);IW(a,700,(Ldb(d)|0)+12|0);return}case 26:{IW(a,717,b);IW(a,700,(Kdb(d)|0)+16|0);IW(a,700,(Kdb(d)|0)+12|0);return}case 27:{IW(a,718,b);IW(a,700,(Adb(d)|0)+12|0);return}case 28:{IW(a,719,b);IW(a,700,(zdb(d)|0)+20|0);IW(a,700,(zdb(d)|0)+12|0);return}case 29:{IW(a,720,b);IW(a,700,(ydb(d)|0)+12|0);IW(a,700,(ydb(d)|0)+8|0);return}case 30:{IW(a,721,b);IW(a,700,(gdb(d)|0)+16|0);IW(a,700,(gdb(d)|0)+12|0);IW(a,700,(gdb(d)|0)+8|0);return}case 31:{IW(a,722,b);IW(a,700,(geb(d)|0)+16|0);IW(a,700,(geb(d)|0)+12|0);return}case 32:{IW(a,723,b);IW(a,700,(Hdb(d)|0)+12|0);IW(a,700,(Hdb(d)|0)+16|0);IW(a,700,(Hdb(d)|0)+20|0);return}case 33:{IW(a,724,b);return}case 34:{IW(a,725,b);IW(a,700,(Jdb(d)|0)+8|0);IW(a,700,(Jdb(d)|0)+12|0);IW(a,700,(Jdb(d)|0)+16|0);return}case 35:{IW(a,726,b);IW(a,700,(Idb(d)|0)+8|0);IW(a,700,(Idb(d)|0)+12|0);IW(a,700,(Idb(d)|0)+16|0);return}case 14:{IW(a,727,b);return}case 15:{IW(a,728,b);IW(a,700,(dfb(d)|0)+12|0);return}case 16:{IW(a,729,b);IW(a,700,(Veb(d)|0)+16|0);IW(a,700,(Veb(d)|0)+12|0);return}case 17:{IW(a,730,b);IW(a,700,(Teb(d)|0)+16|0);IW(a,700,(Teb(d)|0)+12|0);IW(a,700,(Teb(d)|0)+8|0);return}case 18:{IW(a,731,b);IW(a,700,(xfb(d)|0)+8|0);return}case 19:{IW(a,732,b);gW(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,733,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,700,uXa(e,b)|0);d=b}return}case 21:{IW(a,734,b);return}case 22:{IW(a,735,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ye(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,1220,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1142,uXa(e,b)|0);d=b}return}case 2:{IW(a,1221,b);VW(a,(Tfb(d)|0)+16|0);IW(a,1142,(Tfb(d)|0)+12|0);IW(a,1142,(Tfb(d)|0)+8|0);return}case 3:{IW(a,1222,b);IW(a,1142,(Efb(d)|0)+12|0);return}case 4:{IW(a,1223,b);VW(a,(tfb(d)|0)+16|0);VW(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,1224,b);IW(a,1142,(cfb(d)|0)+28|0);VW(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,1225,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1142,uXa(e,b)|0);d=b}return}case 7:{IW(a,1226,b);b=wdb(d)|0;IW(a,1142,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1142,uXa(e,b)|0);d=b}return}case 8:{IW(a,1227,b);return}case 9:{IW(a,1228,b);IW(a,1142,(Keb(d)|0)+12|0);return}case 10:{IW(a,1229,b);return}case 11:{IW(a,1230,b);IW(a,1142,(feb(d)|0)+12|0);return}case 12:{IW(a,1231,b);IW(a,1142,(vfb(d)|0)+24|0);return}case 13:{IW(a,1232,b);IW(a,1142,(efb(d)|0)+28|0);IW(a,1142,(efb(d)|0)+24|0);return}case 23:{IW(a,1233,b);IW(a,1142,(ieb(d)|0)+24|0);IW(a,1142,(ieb(d)|0)+20|0);return}case 24:{IW(a,1234,b);IW(a,1142,(hdb(d)|0)+24|0);IW(a,1142,(hdb(d)|0)+20|0);IW(a,1142,(hdb(d)|0)+16|0);return}case 25:{IW(a,1235,b);IW(a,1142,(Ldb(d)|0)+20|0);IW(a,1142,(Ldb(d)|0)+16|0);IW(a,1142,(Ldb(d)|0)+12|0);return}case 26:{IW(a,1236,b);IW(a,1142,(Kdb(d)|0)+16|0);IW(a,1142,(Kdb(d)|0)+12|0);return}case 27:{IW(a,1237,b);IW(a,1142,(Adb(d)|0)+12|0);return}case 28:{IW(a,1238,b);IW(a,1142,(zdb(d)|0)+20|0);IW(a,1142,(zdb(d)|0)+12|0);return}case 29:{IW(a,1239,b);IW(a,1142,(ydb(d)|0)+12|0);IW(a,1142,(ydb(d)|0)+8|0);return}case 30:{IW(a,1240,b);IW(a,1142,(gdb(d)|0)+16|0);IW(a,1142,(gdb(d)|0)+12|0);IW(a,1142,(gdb(d)|0)+8|0);return}case 31:{IW(a,1241,b);IW(a,1142,(geb(d)|0)+16|0);IW(a,1142,(geb(d)|0)+12|0);return}case 32:{IW(a,1242,b);IW(a,1142,(Hdb(d)|0)+12|0);IW(a,1142,(Hdb(d)|0)+16|0);IW(a,1142,(Hdb(d)|0)+20|0);return}case 33:{IW(a,1243,b);return}case 34:{IW(a,1244,b);IW(a,1142,(Jdb(d)|0)+8|0);IW(a,1142,(Jdb(d)|0)+12|0);IW(a,1142,(Jdb(d)|0)+16|0);return}case 35:{IW(a,1245,b);IW(a,1142,(Idb(d)|0)+8|0);IW(a,1142,(Idb(d)|0)+12|0);IW(a,1142,(Idb(d)|0)+16|0);return}case 14:{IW(a,1246,b);return}case 15:{IW(a,1247,b);IW(a,1142,(dfb(d)|0)+12|0);return}case 16:{IW(a,1248,b);IW(a,1142,(Veb(d)|0)+16|0);IW(a,1142,(Veb(d)|0)+12|0);return}case 17:{IW(a,1249,b);IW(a,1142,(Teb(d)|0)+16|0);IW(a,1142,(Teb(d)|0)+12|0);IW(a,1142,(Teb(d)|0)+8|0);return}case 18:{IW(a,1250,b);IW(a,1142,(xfb(d)|0)+8|0);return}case 19:{IW(a,1251,b);VW(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,1252,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1142,uXa(e,b)|0);d=b}return}case 21:{IW(a,1253,b);return}case 22:{IW(a,1254,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function ze(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,737,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,736,uXa(e,b)|0);d=b}return}case 2:{IW(a,738,b);kW(a,(Tfb(d)|0)+16|0);IW(a,736,(Tfb(d)|0)+12|0);IW(a,736,(Tfb(d)|0)+8|0);return}case 3:{IW(a,739,b);IW(a,736,(Efb(d)|0)+12|0);return}case 4:{IW(a,740,b);kW(a,(tfb(d)|0)+16|0);kW(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,741,b);IW(a,736,(cfb(d)|0)+28|0);kW(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,742,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,736,uXa(e,b)|0);d=b}return}case 7:{IW(a,743,b);b=wdb(d)|0;IW(a,736,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,736,uXa(e,b)|0);d=b}return}case 8:{IW(a,744,b);return}case 9:{IW(a,745,b);IW(a,736,(Keb(d)|0)+12|0);return}case 10:{IW(a,746,b);return}case 11:{IW(a,747,b);IW(a,736,(feb(d)|0)+12|0);return}case 12:{IW(a,748,b);IW(a,736,(vfb(d)|0)+24|0);return}case 13:{IW(a,749,b);IW(a,736,(efb(d)|0)+28|0);IW(a,736,(efb(d)|0)+24|0);return}case 23:{IW(a,750,b);IW(a,736,(ieb(d)|0)+24|0);IW(a,736,(ieb(d)|0)+20|0);return}case 24:{IW(a,751,b);IW(a,736,(hdb(d)|0)+24|0);IW(a,736,(hdb(d)|0)+20|0);IW(a,736,(hdb(d)|0)+16|0);return}case 25:{IW(a,752,b);IW(a,736,(Ldb(d)|0)+20|0);IW(a,736,(Ldb(d)|0)+16|0);IW(a,736,(Ldb(d)|0)+12|0);return}case 26:{IW(a,753,b);IW(a,736,(Kdb(d)|0)+16|0);IW(a,736,(Kdb(d)|0)+12|0);return}case 27:{IW(a,754,b);IW(a,736,(Adb(d)|0)+12|0);return}case 28:{IW(a,755,b);IW(a,736,(zdb(d)|0)+20|0);IW(a,736,(zdb(d)|0)+12|0);return}case 29:{IW(a,756,b);IW(a,736,(ydb(d)|0)+12|0);IW(a,736,(ydb(d)|0)+8|0);return}case 30:{IW(a,757,b);IW(a,736,(gdb(d)|0)+16|0);IW(a,736,(gdb(d)|0)+12|0);IW(a,736,(gdb(d)|0)+8|0);return}case 31:{IW(a,758,b);IW(a,736,(geb(d)|0)+16|0);IW(a,736,(geb(d)|0)+12|0);return}case 32:{IW(a,759,b);IW(a,736,(Hdb(d)|0)+12|0);IW(a,736,(Hdb(d)|0)+16|0);IW(a,736,(Hdb(d)|0)+20|0);return}case 33:{IW(a,760,b);return}case 34:{IW(a,761,b);IW(a,736,(Jdb(d)|0)+8|0);IW(a,736,(Jdb(d)|0)+12|0);IW(a,736,(Jdb(d)|0)+16|0);return}case 35:{IW(a,762,b);IW(a,736,(Idb(d)|0)+8|0);IW(a,736,(Idb(d)|0)+12|0);IW(a,736,(Idb(d)|0)+16|0);return}case 14:{IW(a,763,b);return}case 15:{IW(a,764,b);IW(a,736,(dfb(d)|0)+12|0);return}case 16:{IW(a,765,b);IW(a,736,(Veb(d)|0)+16|0);IW(a,736,(Veb(d)|0)+12|0);return}case 17:{IW(a,766,b);IW(a,736,(Teb(d)|0)+16|0);IW(a,736,(Teb(d)|0)+12|0);IW(a,736,(Teb(d)|0)+8|0);return}case 18:{IW(a,767,b);IW(a,736,(xfb(d)|0)+8|0);return}case 19:{IW(a,768,b);kW(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,769,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,736,uXa(e,b)|0);d=b}return}case 21:{IW(a,770,b);return}case 22:{IW(a,771,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Ae(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,295,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,292,uXa(e,b)|0);d=b}return}case 2:{IW(a,296,b);xW(a,(Tfb(d)|0)+16|0);IW(a,292,(Tfb(d)|0)+12|0);IW(a,292,(Tfb(d)|0)+8|0);return}case 3:{IW(a,297,b);IW(a,292,(Efb(d)|0)+12|0);return}case 4:{IW(a,298,b);xW(a,(tfb(d)|0)+16|0);xW(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,299,b);IW(a,292,(cfb(d)|0)+28|0);xW(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,300,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,292,uXa(e,b)|0);d=b}return}case 7:{IW(a,301,b);b=wdb(d)|0;IW(a,292,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,292,uXa(e,b)|0);d=b}return}case 8:{IW(a,302,b);return}case 9:{IW(a,303,b);IW(a,292,(Keb(d)|0)+12|0);return}case 10:{IW(a,304,b);return}case 11:{IW(a,305,b);IW(a,292,(feb(d)|0)+12|0);return}case 12:{IW(a,306,b);IW(a,292,(vfb(d)|0)+24|0);return}case 13:{IW(a,307,b);IW(a,292,(efb(d)|0)+28|0);IW(a,292,(efb(d)|0)+24|0);return}case 23:{IW(a,308,b);IW(a,292,(ieb(d)|0)+24|0);IW(a,292,(ieb(d)|0)+20|0);return}case 24:{IW(a,309,b);IW(a,292,(hdb(d)|0)+24|0);IW(a,292,(hdb(d)|0)+20|0);IW(a,292,(hdb(d)|0)+16|0);return}case 25:{IW(a,310,b);IW(a,292,(Ldb(d)|0)+20|0);IW(a,292,(Ldb(d)|0)+16|0);IW(a,292,(Ldb(d)|0)+12|0);return}case 26:{IW(a,311,b);IW(a,292,(Kdb(d)|0)+16|0);IW(a,292,(Kdb(d)|0)+12|0);return}case 27:{IW(a,312,b);IW(a,292,(Adb(d)|0)+12|0);return}case 28:{IW(a,313,b);IW(a,292,(zdb(d)|0)+20|0);IW(a,292,(zdb(d)|0)+12|0);return}case 29:{IW(a,314,b);IW(a,292,(ydb(d)|0)+12|0);IW(a,292,(ydb(d)|0)+8|0);return}case 30:{IW(a,315,b);IW(a,292,(gdb(d)|0)+16|0);IW(a,292,(gdb(d)|0)+12|0);IW(a,292,(gdb(d)|0)+8|0);return}case 31:{IW(a,316,b);IW(a,292,(geb(d)|0)+16|0);IW(a,292,(geb(d)|0)+12|0);return}case 32:{IW(a,317,b);IW(a,292,(Hdb(d)|0)+12|0);IW(a,292,(Hdb(d)|0)+16|0);IW(a,292,(Hdb(d)|0)+20|0);return}case 33:{IW(a,318,b);return}case 34:{IW(a,319,b);IW(a,292,(Jdb(d)|0)+8|0);IW(a,292,(Jdb(d)|0)+12|0);IW(a,292,(Jdb(d)|0)+16|0);return}case 35:{IW(a,320,b);IW(a,292,(Idb(d)|0)+8|0);IW(a,292,(Idb(d)|0)+12|0);IW(a,292,(Idb(d)|0)+16|0);return}case 14:{IW(a,321,b);return}case 15:{IW(a,322,b);IW(a,292,(dfb(d)|0)+12|0);return}case 16:{IW(a,323,b);IW(a,292,(Veb(d)|0)+16|0);IW(a,292,(Veb(d)|0)+12|0);return}case 17:{IW(a,324,b);IW(a,292,(Teb(d)|0)+16|0);IW(a,292,(Teb(d)|0)+12|0);IW(a,292,(Teb(d)|0)+8|0);return}case 18:{IW(a,325,b);IW(a,292,(xfb(d)|0)+8|0);return}case 19:{IW(a,326,b);xW(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,327,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,292,uXa(e,b)|0);d=b}return}case 21:{IW(a,328,b);return}case 22:{IW(a,329,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Be(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,2840,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2839,uXa(e,b)|0);d=b}return}case 2:{IW(a,2841,b);GX(a,(Tfb(d)|0)+16|0);IW(a,2839,(Tfb(d)|0)+12|0);IW(a,2839,(Tfb(d)|0)+8|0);return}case 3:{IW(a,2842,b);IW(a,2839,(Efb(d)|0)+12|0);return}case 4:{IW(a,2843,b);GX(a,(tfb(d)|0)+16|0);GX(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,2844,b);IW(a,2839,(cfb(d)|0)+28|0);GX(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,2845,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2839,uXa(e,b)|0);d=b}return}case 7:{IW(a,2846,b);b=wdb(d)|0;IW(a,2839,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2839,uXa(e,b)|0);d=b}return}case 8:{IW(a,2847,b);return}case 9:{IW(a,2848,b);IW(a,2839,(Keb(d)|0)+12|0);return}case 10:{IW(a,2849,b);return}case 11:{IW(a,2850,b);IW(a,2839,(feb(d)|0)+12|0);return}case 12:{IW(a,2851,b);IW(a,2839,(vfb(d)|0)+24|0);return}case 13:{IW(a,2852,b);IW(a,2839,(efb(d)|0)+28|0);IW(a,2839,(efb(d)|0)+24|0);return}case 23:{IW(a,2853,b);IW(a,2839,(ieb(d)|0)+24|0);IW(a,2839,(ieb(d)|0)+20|0);return}case 24:{IW(a,2854,b);IW(a,2839,(hdb(d)|0)+24|0);IW(a,2839,(hdb(d)|0)+20|0);IW(a,2839,(hdb(d)|0)+16|0);return}case 25:{IW(a,2855,b);IW(a,2839,(Ldb(d)|0)+20|0);IW(a,2839,(Ldb(d)|0)+16|0);IW(a,2839,(Ldb(d)|0)+12|0);return}case 26:{IW(a,2856,b);IW(a,2839,(Kdb(d)|0)+16|0);IW(a,2839,(Kdb(d)|0)+12|0);return}case 27:{IW(a,2857,b);IW(a,2839,(Adb(d)|0)+12|0);return}case 28:{IW(a,2858,b);IW(a,2839,(zdb(d)|0)+20|0);IW(a,2839,(zdb(d)|0)+12|0);return}case 29:{IW(a,2859,b);IW(a,2839,(ydb(d)|0)+12|0);IW(a,2839,(ydb(d)|0)+8|0);return}case 30:{IW(a,2860,b);IW(a,2839,(gdb(d)|0)+16|0);IW(a,2839,(gdb(d)|0)+12|0);IW(a,2839,(gdb(d)|0)+8|0);return}case 31:{IW(a,2861,b);IW(a,2839,(geb(d)|0)+16|0);IW(a,2839,(geb(d)|0)+12|0);return}case 32:{IW(a,2862,b);IW(a,2839,(Hdb(d)|0)+12|0);IW(a,2839,(Hdb(d)|0)+16|0);IW(a,2839,(Hdb(d)|0)+20|0);return}case 33:{IW(a,2863,b);return}case 34:{IW(a,2864,b);IW(a,2839,(Jdb(d)|0)+8|0);IW(a,2839,(Jdb(d)|0)+12|0);IW(a,2839,(Jdb(d)|0)+16|0);return}case 35:{IW(a,2865,b);IW(a,2839,(Idb(d)|0)+8|0);IW(a,2839,(Idb(d)|0)+12|0);IW(a,2839,(Idb(d)|0)+16|0);return}case 14:{IW(a,2866,b);return}case 15:{IW(a,2867,b);IW(a,2839,(dfb(d)|0)+12|0);return}case 16:{IW(a,2868,b);IW(a,2839,(Veb(d)|0)+16|0);IW(a,2839,(Veb(d)|0)+12|0);return}case 17:{IW(a,2869,b);IW(a,2839,(Teb(d)|0)+16|0);IW(a,2839,(Teb(d)|0)+12|0);IW(a,2839,(Teb(d)|0)+8|0);return}case 18:{IW(a,2870,b);IW(a,2839,(xfb(d)|0)+8|0);return}case 19:{IW(a,2871,b);GX(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,2872,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2839,uXa(e,b)|0);d=b}return}case 21:{IW(a,2873,b);return}case 22:{IW(a,2874,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Ce(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,2803,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2802,uXa(e,b)|0);d=b}return}case 2:{IW(a,2804,b);HX(a,(Tfb(d)|0)+16|0);IW(a,2802,(Tfb(d)|0)+12|0);IW(a,2802,(Tfb(d)|0)+8|0);return}case 3:{IW(a,2805,b);IW(a,2802,(Efb(d)|0)+12|0);return}case 4:{IW(a,2806,b);HX(a,(tfb(d)|0)+16|0);HX(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,2807,b);IW(a,2802,(cfb(d)|0)+28|0);HX(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,2808,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2802,uXa(e,b)|0);d=b}return}case 7:{IW(a,2809,b);b=wdb(d)|0;IW(a,2802,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2802,uXa(e,b)|0);d=b}return}case 8:{IW(a,2810,b);return}case 9:{IW(a,2811,b);IW(a,2802,(Keb(d)|0)+12|0);return}case 10:{IW(a,2812,b);return}case 11:{IW(a,2813,b);IW(a,2802,(feb(d)|0)+12|0);return}case 12:{IW(a,2814,b);IW(a,2802,(vfb(d)|0)+24|0);return}case 13:{IW(a,2815,b);IW(a,2802,(efb(d)|0)+28|0);IW(a,2802,(efb(d)|0)+24|0);return}case 23:{IW(a,2816,b);IW(a,2802,(ieb(d)|0)+24|0);IW(a,2802,(ieb(d)|0)+20|0);return}case 24:{IW(a,2817,b);IW(a,2802,(hdb(d)|0)+24|0);IW(a,2802,(hdb(d)|0)+20|0);IW(a,2802,(hdb(d)|0)+16|0);return}case 25:{IW(a,2818,b);IW(a,2802,(Ldb(d)|0)+20|0);IW(a,2802,(Ldb(d)|0)+16|0);IW(a,2802,(Ldb(d)|0)+12|0);return}case 26:{IW(a,2819,b);IW(a,2802,(Kdb(d)|0)+16|0);IW(a,2802,(Kdb(d)|0)+12|0);return}case 27:{IW(a,2820,b);IW(a,2802,(Adb(d)|0)+12|0);return}case 28:{IW(a,2821,b);IW(a,2802,(zdb(d)|0)+20|0);IW(a,2802,(zdb(d)|0)+12|0);return}case 29:{IW(a,2822,b);IW(a,2802,(ydb(d)|0)+12|0);IW(a,2802,(ydb(d)|0)+8|0);return}case 30:{IW(a,2823,b);IW(a,2802,(gdb(d)|0)+16|0);IW(a,2802,(gdb(d)|0)+12|0);IW(a,2802,(gdb(d)|0)+8|0);return}case 31:{IW(a,2824,b);IW(a,2802,(geb(d)|0)+16|0);IW(a,2802,(geb(d)|0)+12|0);return}case 32:{IW(a,2825,b);IW(a,2802,(Hdb(d)|0)+12|0);IW(a,2802,(Hdb(d)|0)+16|0);IW(a,2802,(Hdb(d)|0)+20|0);return}case 33:{IW(a,2826,b);return}case 34:{IW(a,2827,b);IW(a,2802,(Jdb(d)|0)+8|0);IW(a,2802,(Jdb(d)|0)+12|0);IW(a,2802,(Jdb(d)|0)+16|0);return}case 35:{IW(a,2828,b);IW(a,2802,(Idb(d)|0)+8|0);IW(a,2802,(Idb(d)|0)+12|0);IW(a,2802,(Idb(d)|0)+16|0);return}case 14:{IW(a,2829,b);return}case 15:{IW(a,2830,b);IW(a,2802,(dfb(d)|0)+12|0);return}case 16:{IW(a,2831,b);IW(a,2802,(Veb(d)|0)+16|0);IW(a,2802,(Veb(d)|0)+12|0);return}case 17:{IW(a,2832,b);IW(a,2802,(Teb(d)|0)+16|0);IW(a,2802,(Teb(d)|0)+12|0);IW(a,2802,(Teb(d)|0)+8|0);return}case 18:{IW(a,2833,b);IW(a,2802,(xfb(d)|0)+8|0);return}case 19:{IW(a,2834,b);HX(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,2835,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2802,uXa(e,b)|0);d=b}return}case 21:{IW(a,2836,b);return}case 22:{IW(a,2837,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function De(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,625,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,624,uXa(e,b)|0);d=b}return}case 2:{IW(a,626,b);JW(a,(Tfb(d)|0)+16|0);IW(a,624,(Tfb(d)|0)+12|0);IW(a,624,(Tfb(d)|0)+8|0);return}case 3:{IW(a,627,b);IW(a,624,(Efb(d)|0)+12|0);return}case 4:{IW(a,628,b);JW(a,(tfb(d)|0)+16|0);JW(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,629,b);IW(a,624,(cfb(d)|0)+28|0);JW(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,630,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,624,uXa(e,b)|0);d=b}return}case 7:{IW(a,631,b);b=wdb(d)|0;IW(a,624,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,624,uXa(e,b)|0);d=b}return}case 8:{IW(a,632,b);return}case 9:{IW(a,633,b);IW(a,624,(Keb(d)|0)+12|0);return}case 10:{IW(a,634,b);return}case 11:{IW(a,635,b);IW(a,624,(feb(d)|0)+12|0);return}case 12:{IW(a,636,b);IW(a,624,(vfb(d)|0)+24|0);return}case 13:{IW(a,637,b);IW(a,624,(efb(d)|0)+28|0);IW(a,624,(efb(d)|0)+24|0);return}case 23:{IW(a,638,b);IW(a,624,(ieb(d)|0)+24|0);IW(a,624,(ieb(d)|0)+20|0);return}case 24:{IW(a,639,b);IW(a,624,(hdb(d)|0)+24|0);IW(a,624,(hdb(d)|0)+20|0);IW(a,624,(hdb(d)|0)+16|0);return}case 25:{IW(a,640,b);IW(a,624,(Ldb(d)|0)+20|0);IW(a,624,(Ldb(d)|0)+16|0);IW(a,624,(Ldb(d)|0)+12|0);return}case 26:{IW(a,641,b);IW(a,624,(Kdb(d)|0)+16|0);IW(a,624,(Kdb(d)|0)+12|0);return}case 27:{IW(a,642,b);IW(a,624,(Adb(d)|0)+12|0);return}case 28:{IW(a,643,b);IW(a,624,(zdb(d)|0)+20|0);IW(a,624,(zdb(d)|0)+12|0);return}case 29:{IW(a,644,b);IW(a,624,(ydb(d)|0)+12|0);IW(a,624,(ydb(d)|0)+8|0);return}case 30:{IW(a,645,b);IW(a,624,(gdb(d)|0)+16|0);IW(a,624,(gdb(d)|0)+12|0);IW(a,624,(gdb(d)|0)+8|0);return}case 31:{IW(a,646,b);IW(a,624,(geb(d)|0)+16|0);IW(a,624,(geb(d)|0)+12|0);return}case 32:{IW(a,647,b);IW(a,624,(Hdb(d)|0)+12|0);IW(a,624,(Hdb(d)|0)+16|0);IW(a,624,(Hdb(d)|0)+20|0);return}case 33:{IW(a,648,b);return}case 34:{IW(a,649,b);IW(a,624,(Jdb(d)|0)+8|0);IW(a,624,(Jdb(d)|0)+12|0);IW(a,624,(Jdb(d)|0)+16|0);return}case 35:{IW(a,650,b);IW(a,624,(Idb(d)|0)+8|0);IW(a,624,(Idb(d)|0)+12|0);IW(a,624,(Idb(d)|0)+16|0);return}case 14:{IW(a,651,b);return}case 15:{IW(a,652,b);IW(a,624,(dfb(d)|0)+12|0);return}case 16:{IW(a,653,b);IW(a,624,(Veb(d)|0)+16|0);IW(a,624,(Veb(d)|0)+12|0);return}case 17:{IW(a,654,b);IW(a,624,(Teb(d)|0)+16|0);IW(a,624,(Teb(d)|0)+12|0);IW(a,624,(Teb(d)|0)+8|0);return}case 18:{IW(a,655,b);IW(a,624,(xfb(d)|0)+8|0);return}case 19:{IW(a,656,b);JW(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,657,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,624,uXa(e,b)|0);d=b}return}case 21:{IW(a,658,b);return}case 22:{IW(a,659,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Ee(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,336,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,335,uXa(e,b)|0);d=b}return}case 2:{IW(a,337,b);$W(a,(Tfb(d)|0)+16|0);IW(a,335,(Tfb(d)|0)+12|0);IW(a,335,(Tfb(d)|0)+8|0);return}case 3:{IW(a,338,b);IW(a,335,(Efb(d)|0)+12|0);return}case 4:{IW(a,339,b);$W(a,(tfb(d)|0)+16|0);$W(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,340,b);IW(a,335,(cfb(d)|0)+28|0);$W(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,341,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,335,uXa(e,b)|0);d=b}return}case 7:{IW(a,342,b);b=wdb(d)|0;IW(a,335,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,335,uXa(e,b)|0);d=b}return}case 8:{IW(a,343,b);return}case 9:{IW(a,344,b);IW(a,335,(Keb(d)|0)+12|0);return}case 10:{IW(a,345,b);return}case 11:{IW(a,346,b);IW(a,335,(feb(d)|0)+12|0);return}case 12:{IW(a,347,b);IW(a,335,(vfb(d)|0)+24|0);return}case 13:{IW(a,348,b);IW(a,335,(efb(d)|0)+28|0);IW(a,335,(efb(d)|0)+24|0);return}case 23:{IW(a,349,b);IW(a,335,(ieb(d)|0)+24|0);IW(a,335,(ieb(d)|0)+20|0);return}case 24:{IW(a,350,b);IW(a,335,(hdb(d)|0)+24|0);IW(a,335,(hdb(d)|0)+20|0);IW(a,335,(hdb(d)|0)+16|0);return}case 25:{IW(a,351,b);IW(a,335,(Ldb(d)|0)+20|0);IW(a,335,(Ldb(d)|0)+16|0);IW(a,335,(Ldb(d)|0)+12|0);return}case 26:{IW(a,352,b);IW(a,335,(Kdb(d)|0)+16|0);IW(a,335,(Kdb(d)|0)+12|0);return}case 27:{IW(a,353,b);IW(a,335,(Adb(d)|0)+12|0);return}case 28:{IW(a,354,b);IW(a,335,(zdb(d)|0)+20|0);IW(a,335,(zdb(d)|0)+12|0);return}case 29:{IW(a,355,b);IW(a,335,(ydb(d)|0)+12|0);IW(a,335,(ydb(d)|0)+8|0);return}case 30:{IW(a,356,b);IW(a,335,(gdb(d)|0)+16|0);IW(a,335,(gdb(d)|0)+12|0);IW(a,335,(gdb(d)|0)+8|0);return}case 31:{IW(a,357,b);IW(a,335,(geb(d)|0)+16|0);IW(a,335,(geb(d)|0)+12|0);return}case 32:{IW(a,358,b);IW(a,335,(Hdb(d)|0)+12|0);IW(a,335,(Hdb(d)|0)+16|0);IW(a,335,(Hdb(d)|0)+20|0);return}case 33:{IW(a,359,b);return}case 34:{IW(a,360,b);IW(a,335,(Jdb(d)|0)+8|0);IW(a,335,(Jdb(d)|0)+12|0);IW(a,335,(Jdb(d)|0)+16|0);return}case 35:{IW(a,361,b);IW(a,335,(Idb(d)|0)+8|0);IW(a,335,(Idb(d)|0)+12|0);IW(a,335,(Idb(d)|0)+16|0);return}case 14:{IW(a,362,b);return}case 15:{IW(a,363,b);IW(a,335,(dfb(d)|0)+12|0);return}case 16:{IW(a,364,b);IW(a,335,(Veb(d)|0)+16|0);IW(a,335,(Veb(d)|0)+12|0);return}case 17:{IW(a,365,b);IW(a,335,(Teb(d)|0)+16|0);IW(a,335,(Teb(d)|0)+12|0);IW(a,335,(Teb(d)|0)+8|0);return}case 18:{IW(a,366,b);IW(a,335,(xfb(d)|0)+8|0);return}case 19:{IW(a,367,b);$W(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,368,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,335,uXa(e,b)|0);d=b}return}case 21:{IW(a,369,b);return}case 22:{IW(a,370,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Fe(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,1842,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1839,uXa(e,b)|0);d=b}return}case 2:{IW(a,1843,b);WX(a,(Tfb(d)|0)+16|0);IW(a,1839,(Tfb(d)|0)+12|0);IW(a,1839,(Tfb(d)|0)+8|0);return}case 3:{IW(a,1844,b);IW(a,1839,(Efb(d)|0)+12|0);return}case 4:{IW(a,1845,b);WX(a,(tfb(d)|0)+16|0);WX(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,1846,b);IW(a,1839,(cfb(d)|0)+28|0);WX(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,1847,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1839,uXa(e,b)|0);d=b}return}case 7:{IW(a,1848,b);b=wdb(d)|0;IW(a,1839,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1839,uXa(e,b)|0);d=b}return}case 8:{IW(a,1849,b);return}case 9:{IW(a,1850,b);IW(a,1839,(Keb(d)|0)+12|0);return}case 10:{IW(a,1851,b);return}case 11:{IW(a,1852,b);IW(a,1839,(feb(d)|0)+12|0);return}case 12:{IW(a,1853,b);IW(a,1839,(vfb(d)|0)+24|0);return}case 13:{IW(a,1854,b);IW(a,1839,(efb(d)|0)+28|0);IW(a,1839,(efb(d)|0)+24|0);return}case 23:{IW(a,1855,b);IW(a,1839,(ieb(d)|0)+24|0);IW(a,1839,(ieb(d)|0)+20|0);return}case 24:{IW(a,1856,b);IW(a,1839,(hdb(d)|0)+24|0);IW(a,1839,(hdb(d)|0)+20|0);IW(a,1839,(hdb(d)|0)+16|0);return}case 25:{IW(a,1857,b);IW(a,1839,(Ldb(d)|0)+20|0);IW(a,1839,(Ldb(d)|0)+16|0);IW(a,1839,(Ldb(d)|0)+12|0);return}case 26:{IW(a,1858,b);IW(a,1839,(Kdb(d)|0)+16|0);IW(a,1839,(Kdb(d)|0)+12|0);return}case 27:{IW(a,1859,b);IW(a,1839,(Adb(d)|0)+12|0);return}case 28:{IW(a,1860,b);IW(a,1839,(zdb(d)|0)+20|0);IW(a,1839,(zdb(d)|0)+12|0);return}case 29:{IW(a,1861,b);IW(a,1839,(ydb(d)|0)+12|0);IW(a,1839,(ydb(d)|0)+8|0);return}case 30:{IW(a,1862,b);IW(a,1839,(gdb(d)|0)+16|0);IW(a,1839,(gdb(d)|0)+12|0);IW(a,1839,(gdb(d)|0)+8|0);return}case 31:{IW(a,1863,b);IW(a,1839,(geb(d)|0)+16|0);IW(a,1839,(geb(d)|0)+12|0);return}case 32:{IW(a,1864,b);IW(a,1839,(Hdb(d)|0)+12|0);IW(a,1839,(Hdb(d)|0)+16|0);IW(a,1839,(Hdb(d)|0)+20|0);return}case 33:{IW(a,1865,b);return}case 34:{IW(a,1866,b);IW(a,1839,(Jdb(d)|0)+8|0);IW(a,1839,(Jdb(d)|0)+12|0);IW(a,1839,(Jdb(d)|0)+16|0);return}case 35:{IW(a,1867,b);IW(a,1839,(Idb(d)|0)+8|0);IW(a,1839,(Idb(d)|0)+12|0);IW(a,1839,(Idb(d)|0)+16|0);return}case 14:{IW(a,1868,b);return}case 15:{IW(a,1869,b);IW(a,1839,(dfb(d)|0)+12|0);return}case 16:{IW(a,1870,b);IW(a,1839,(Veb(d)|0)+16|0);IW(a,1839,(Veb(d)|0)+12|0);return}case 17:{IW(a,1871,b);IW(a,1839,(Teb(d)|0)+16|0);IW(a,1839,(Teb(d)|0)+12|0);IW(a,1839,(Teb(d)|0)+8|0);return}case 18:{IW(a,1872,b);IW(a,1839,(xfb(d)|0)+8|0);return}case 19:{IW(a,1873,b);WX(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,1874,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1839,uXa(e,b)|0);d=b}return}case 21:{IW(a,1875,b);return}case 22:{IW(a,1876,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Ge(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,3182,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3181,uXa(e,b)|0);d=b}return}case 2:{IW(a,3183,b);hY(a,(Tfb(d)|0)+16|0);IW(a,3181,(Tfb(d)|0)+12|0);IW(a,3181,(Tfb(d)|0)+8|0);return}case 3:{IW(a,3184,b);IW(a,3181,(Efb(d)|0)+12|0);return}case 4:{IW(a,3185,b);hY(a,(tfb(d)|0)+16|0);hY(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,3186,b);IW(a,3181,(cfb(d)|0)+28|0);hY(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,3187,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3181,uXa(e,b)|0);d=b}return}case 7:{IW(a,3188,b);b=wdb(d)|0;IW(a,3181,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3181,uXa(e,b)|0);d=b}return}case 8:{IW(a,3189,b);return}case 9:{IW(a,3190,b);IW(a,3181,(Keb(d)|0)+12|0);return}case 10:{IW(a,3191,b);return}case 11:{IW(a,3192,b);IW(a,3181,(feb(d)|0)+12|0);return}case 12:{IW(a,3193,b);IW(a,3181,(vfb(d)|0)+24|0);return}case 13:{IW(a,3194,b);IW(a,3181,(efb(d)|0)+28|0);IW(a,3181,(efb(d)|0)+24|0);return}case 23:{IW(a,3195,b);IW(a,3181,(ieb(d)|0)+24|0);IW(a,3181,(ieb(d)|0)+20|0);return}case 24:{IW(a,3196,b);IW(a,3181,(hdb(d)|0)+24|0);IW(a,3181,(hdb(d)|0)+20|0);IW(a,3181,(hdb(d)|0)+16|0);return}case 25:{IW(a,3197,b);IW(a,3181,(Ldb(d)|0)+20|0);IW(a,3181,(Ldb(d)|0)+16|0);IW(a,3181,(Ldb(d)|0)+12|0);return}case 26:{IW(a,3198,b);IW(a,3181,(Kdb(d)|0)+16|0);IW(a,3181,(Kdb(d)|0)+12|0);return}case 27:{IW(a,3199,b);IW(a,3181,(Adb(d)|0)+12|0);return}case 28:{IW(a,3200,b);IW(a,3181,(zdb(d)|0)+20|0);IW(a,3181,(zdb(d)|0)+12|0);return}case 29:{IW(a,3201,b);IW(a,3181,(ydb(d)|0)+12|0);IW(a,3181,(ydb(d)|0)+8|0);return}case 30:{IW(a,3202,b);IW(a,3181,(gdb(d)|0)+16|0);IW(a,3181,(gdb(d)|0)+12|0);IW(a,3181,(gdb(d)|0)+8|0);return}case 31:{IW(a,3203,b);IW(a,3181,(geb(d)|0)+16|0);IW(a,3181,(geb(d)|0)+12|0);return}case 32:{IW(a,3204,b);IW(a,3181,(Hdb(d)|0)+12|0);IW(a,3181,(Hdb(d)|0)+16|0);IW(a,3181,(Hdb(d)|0)+20|0);return}case 33:{IW(a,3205,b);return}case 34:{IW(a,3206,b);IW(a,3181,(Jdb(d)|0)+8|0);IW(a,3181,(Jdb(d)|0)+12|0);IW(a,3181,(Jdb(d)|0)+16|0);return}case 35:{IW(a,3207,b);IW(a,3181,(Idb(d)|0)+8|0);IW(a,3181,(Idb(d)|0)+12|0);IW(a,3181,(Idb(d)|0)+16|0);return}case 14:{IW(a,3208,b);return}case 15:{IW(a,3209,b);IW(a,3181,(dfb(d)|0)+12|0);return}case 16:{IW(a,3210,b);IW(a,3181,(Veb(d)|0)+16|0);IW(a,3181,(Veb(d)|0)+12|0);return}case 17:{IW(a,3211,b);IW(a,3181,(Teb(d)|0)+16|0);IW(a,3181,(Teb(d)|0)+12|0);IW(a,3181,(Teb(d)|0)+8|0);return}case 18:{IW(a,3212,b);IW(a,3181,(xfb(d)|0)+8|0);return}case 19:{IW(a,3213,b);hY(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,3214,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,3181,uXa(e,b)|0);d=b}return}case 21:{IW(a,3215,b);return}case 22:{IW(a,3216,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function He(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,2497,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2421,uXa(e,b)|0);d=b}return}case 2:{IW(a,2498,b);mY(a,(Tfb(d)|0)+16|0);IW(a,2421,(Tfb(d)|0)+12|0);IW(a,2421,(Tfb(d)|0)+8|0);return}case 3:{IW(a,2499,b);IW(a,2421,(Efb(d)|0)+12|0);return}case 4:{IW(a,2500,b);mY(a,(tfb(d)|0)+16|0);mY(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,2501,b);IW(a,2421,(cfb(d)|0)+28|0);mY(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,2502,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2421,uXa(e,b)|0);d=b}return}case 7:{IW(a,2503,b);b=wdb(d)|0;IW(a,2421,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2421,uXa(e,b)|0);d=b}return}case 8:{IW(a,2504,b);return}case 9:{IW(a,2505,b);IW(a,2421,(Keb(d)|0)+12|0);return}case 10:{IW(a,2506,b);return}case 11:{IW(a,2507,b);IW(a,2421,(feb(d)|0)+12|0);return}case 12:{IW(a,2508,b);IW(a,2421,(vfb(d)|0)+24|0);return}case 13:{IW(a,2509,b);IW(a,2421,(efb(d)|0)+28|0);IW(a,2421,(efb(d)|0)+24|0);return}case 23:{IW(a,2510,b);IW(a,2421,(ieb(d)|0)+24|0);IW(a,2421,(ieb(d)|0)+20|0);return}case 24:{IW(a,2511,b);IW(a,2421,(hdb(d)|0)+24|0);IW(a,2421,(hdb(d)|0)+20|0);IW(a,2421,(hdb(d)|0)+16|0);return}case 25:{IW(a,2512,b);IW(a,2421,(Ldb(d)|0)+20|0);IW(a,2421,(Ldb(d)|0)+16|0);IW(a,2421,(Ldb(d)|0)+12|0);return}case 26:{IW(a,2513,b);IW(a,2421,(Kdb(d)|0)+16|0);IW(a,2421,(Kdb(d)|0)+12|0);return}case 27:{IW(a,2514,b);IW(a,2421,(Adb(d)|0)+12|0);return}case 28:{IW(a,2515,b);IW(a,2421,(zdb(d)|0)+20|0);IW(a,2421,(zdb(d)|0)+12|0);return}case 29:{IW(a,2516,b);IW(a,2421,(ydb(d)|0)+12|0);IW(a,2421,(ydb(d)|0)+8|0);return}case 30:{IW(a,2517,b);IW(a,2421,(gdb(d)|0)+16|0);IW(a,2421,(gdb(d)|0)+12|0);IW(a,2421,(gdb(d)|0)+8|0);return}case 31:{IW(a,2518,b);IW(a,2421,(geb(d)|0)+16|0);IW(a,2421,(geb(d)|0)+12|0);return}case 32:{IW(a,2519,b);IW(a,2421,(Hdb(d)|0)+12|0);IW(a,2421,(Hdb(d)|0)+16|0);IW(a,2421,(Hdb(d)|0)+20|0);return}case 33:{IW(a,2520,b);return}case 34:{IW(a,2521,b);IW(a,2421,(Jdb(d)|0)+8|0);IW(a,2421,(Jdb(d)|0)+12|0);IW(a,2421,(Jdb(d)|0)+16|0);return}case 35:{IW(a,2522,b);IW(a,2421,(Idb(d)|0)+8|0);IW(a,2421,(Idb(d)|0)+12|0);IW(a,2421,(Idb(d)|0)+16|0);return}case 14:{IW(a,2523,b);return}case 15:{IW(a,2524,b);IW(a,2421,(dfb(d)|0)+12|0);return}case 16:{IW(a,2525,b);IW(a,2421,(Veb(d)|0)+16|0);IW(a,2421,(Veb(d)|0)+12|0);return}case 17:{IW(a,2526,b);IW(a,2421,(Teb(d)|0)+16|0);IW(a,2421,(Teb(d)|0)+12|0);IW(a,2421,(Teb(d)|0)+8|0);return}case 18:{IW(a,2527,b);IW(a,2421,(xfb(d)|0)+8|0);return}case 19:{IW(a,2528,b);mY(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,2529,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2421,uXa(e,b)|0);d=b}return}case 21:{IW(a,2530,b);return}case 22:{IW(a,2531,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Ie(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,1879,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1838,uXa(e,b)|0);d=b}return}case 2:{IW(a,1880,b);yY(a,(Tfb(d)|0)+16|0);IW(a,1838,(Tfb(d)|0)+12|0);IW(a,1838,(Tfb(d)|0)+8|0);return}case 3:{IW(a,1881,b);IW(a,1838,(Efb(d)|0)+12|0);return}case 4:{IW(a,1882,b);yY(a,(tfb(d)|0)+16|0);yY(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,1883,b);IW(a,1838,(cfb(d)|0)+28|0);yY(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,1884,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1838,uXa(e,b)|0);d=b}return}case 7:{IW(a,1885,b);b=wdb(d)|0;IW(a,1838,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1838,uXa(e,b)|0);d=b}return}case 8:{IW(a,1886,b);return}case 9:{IW(a,1887,b);IW(a,1838,(Keb(d)|0)+12|0);return}case 10:{IW(a,1888,b);return}case 11:{IW(a,1889,b);IW(a,1838,(feb(d)|0)+12|0);return}case 12:{IW(a,1890,b);IW(a,1838,(vfb(d)|0)+24|0);return}case 13:{IW(a,1891,b);IW(a,1838,(efb(d)|0)+28|0);IW(a,1838,(efb(d)|0)+24|0);return}case 23:{IW(a,1892,b);IW(a,1838,(ieb(d)|0)+24|0);IW(a,1838,(ieb(d)|0)+20|0);return}case 24:{IW(a,1893,b);IW(a,1838,(hdb(d)|0)+24|0);IW(a,1838,(hdb(d)|0)+20|0);IW(a,1838,(hdb(d)|0)+16|0);return}case 25:{IW(a,1894,b);IW(a,1838,(Ldb(d)|0)+20|0);IW(a,1838,(Ldb(d)|0)+16|0);IW(a,1838,(Ldb(d)|0)+12|0);return}case 26:{IW(a,1895,b);IW(a,1838,(Kdb(d)|0)+16|0);IW(a,1838,(Kdb(d)|0)+12|0);return}case 27:{IW(a,1896,b);IW(a,1838,(Adb(d)|0)+12|0);return}case 28:{IW(a,1897,b);IW(a,1838,(zdb(d)|0)+20|0);IW(a,1838,(zdb(d)|0)+12|0);return}case 29:{IW(a,1898,b);IW(a,1838,(ydb(d)|0)+12|0);IW(a,1838,(ydb(d)|0)+8|0);return}case 30:{IW(a,1899,b);IW(a,1838,(gdb(d)|0)+16|0);IW(a,1838,(gdb(d)|0)+12|0);IW(a,1838,(gdb(d)|0)+8|0);return}case 31:{IW(a,1900,b);IW(a,1838,(geb(d)|0)+16|0);IW(a,1838,(geb(d)|0)+12|0);return}case 32:{IW(a,1901,b);IW(a,1838,(Hdb(d)|0)+12|0);IW(a,1838,(Hdb(d)|0)+16|0);IW(a,1838,(Hdb(d)|0)+20|0);return}case 33:{IW(a,1902,b);return}case 34:{IW(a,1903,b);IW(a,1838,(Jdb(d)|0)+8|0);IW(a,1838,(Jdb(d)|0)+12|0);IW(a,1838,(Jdb(d)|0)+16|0);return}case 35:{IW(a,1904,b);IW(a,1838,(Idb(d)|0)+8|0);IW(a,1838,(Idb(d)|0)+12|0);IW(a,1838,(Idb(d)|0)+16|0);return}case 14:{IW(a,1905,b);return}case 15:{IW(a,1906,b);IW(a,1838,(dfb(d)|0)+12|0);return}case 16:{IW(a,1907,b);IW(a,1838,(Veb(d)|0)+16|0);IW(a,1838,(Veb(d)|0)+12|0);return}case 17:{IW(a,1908,b);IW(a,1838,(Teb(d)|0)+16|0);IW(a,1838,(Teb(d)|0)+12|0);IW(a,1838,(Teb(d)|0)+8|0);return}case 18:{IW(a,1909,b);IW(a,1838,(xfb(d)|0)+8|0);return}case 19:{IW(a,1910,b);yY(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,1911,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,1838,uXa(e,b)|0);d=b}return}case 21:{IW(a,1912,b);return}case 22:{IW(a,1913,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Je(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,2152,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2151,uXa(e,b)|0);d=b}return}case 2:{IW(a,2153,b);GY(a,(Tfb(d)|0)+16|0);IW(a,2151,(Tfb(d)|0)+12|0);IW(a,2151,(Tfb(d)|0)+8|0);return}case 3:{IW(a,2154,b);IW(a,2151,(Efb(d)|0)+12|0);return}case 4:{IW(a,2155,b);GY(a,(tfb(d)|0)+16|0);GY(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,2156,b);IW(a,2151,(cfb(d)|0)+28|0);GY(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,2157,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2151,uXa(e,b)|0);d=b}return}case 7:{IW(a,2158,b);b=wdb(d)|0;IW(a,2151,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2151,uXa(e,b)|0);d=b}return}case 8:{IW(a,2159,b);return}case 9:{IW(a,2160,b);IW(a,2151,(Keb(d)|0)+12|0);return}case 10:{IW(a,2161,b);return}case 11:{IW(a,2162,b);IW(a,2151,(feb(d)|0)+12|0);return}case 12:{IW(a,2163,b);IW(a,2151,(vfb(d)|0)+24|0);return}case 13:{IW(a,2164,b);IW(a,2151,(efb(d)|0)+28|0);IW(a,2151,(efb(d)|0)+24|0);return}case 23:{IW(a,2165,b);IW(a,2151,(ieb(d)|0)+24|0);IW(a,2151,(ieb(d)|0)+20|0);return}case 24:{IW(a,2166,b);IW(a,2151,(hdb(d)|0)+24|0);IW(a,2151,(hdb(d)|0)+20|0);IW(a,2151,(hdb(d)|0)+16|0);return}case 25:{IW(a,2167,b);IW(a,2151,(Ldb(d)|0)+20|0);IW(a,2151,(Ldb(d)|0)+16|0);IW(a,2151,(Ldb(d)|0)+12|0);return}case 26:{IW(a,2168,b);IW(a,2151,(Kdb(d)|0)+16|0);IW(a,2151,(Kdb(d)|0)+12|0);return}case 27:{IW(a,2169,b);IW(a,2151,(Adb(d)|0)+12|0);return}case 28:{IW(a,2170,b);IW(a,2151,(zdb(d)|0)+20|0);IW(a,2151,(zdb(d)|0)+12|0);return}case 29:{IW(a,2171,b);IW(a,2151,(ydb(d)|0)+12|0);IW(a,2151,(ydb(d)|0)+8|0);return}case 30:{IW(a,2172,b);IW(a,2151,(gdb(d)|0)+16|0);IW(a,2151,(gdb(d)|0)+12|0);IW(a,2151,(gdb(d)|0)+8|0);return}case 31:{IW(a,2173,b);IW(a,2151,(geb(d)|0)+16|0);IW(a,2151,(geb(d)|0)+12|0);return}case 32:{IW(a,2174,b);IW(a,2151,(Hdb(d)|0)+12|0);IW(a,2151,(Hdb(d)|0)+16|0);IW(a,2151,(Hdb(d)|0)+20|0);return}case 33:{IW(a,2175,b);return}case 34:{IW(a,2176,b);IW(a,2151,(Jdb(d)|0)+8|0);IW(a,2151,(Jdb(d)|0)+12|0);IW(a,2151,(Jdb(d)|0)+16|0);return}case 35:{IW(a,2177,b);IW(a,2151,(Idb(d)|0)+8|0);IW(a,2151,(Idb(d)|0)+12|0);IW(a,2151,(Idb(d)|0)+16|0);return}case 14:{IW(a,2178,b);return}case 15:{IW(a,2179,b);IW(a,2151,(dfb(d)|0)+12|0);return}case 16:{IW(a,2180,b);IW(a,2151,(Veb(d)|0)+16|0);IW(a,2151,(Veb(d)|0)+12|0);return}case 17:{IW(a,2181,b);IW(a,2151,(Teb(d)|0)+16|0);IW(a,2151,(Teb(d)|0)+12|0);IW(a,2151,(Teb(d)|0)+8|0);return}case 18:{IW(a,2182,b);IW(a,2151,(xfb(d)|0)+8|0);return}case 19:{IW(a,2183,b);GY(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,2184,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,2151,uXa(e,b)|0);d=b}return}case 21:{IW(a,2185,b);return}case 22:{IW(a,2186,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Ke(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,773,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,772,uXa(e,b)|0);d=b}return}case 2:{IW(a,774,b);tX(a,(Tfb(d)|0)+16|0);IW(a,772,(Tfb(d)|0)+12|0);IW(a,772,(Tfb(d)|0)+8|0);return}case 3:{IW(a,775,b);IW(a,772,(Efb(d)|0)+12|0);return}case 4:{IW(a,776,b);tX(a,(tfb(d)|0)+16|0);tX(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,777,b);IW(a,772,(cfb(d)|0)+28|0);tX(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,778,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,772,uXa(e,b)|0);d=b}return}case 7:{IW(a,779,b);b=wdb(d)|0;IW(a,772,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,772,uXa(e,b)|0);d=b}return}case 8:{IW(a,780,b);return}case 9:{IW(a,781,b);IW(a,772,(Keb(d)|0)+12|0);return}case 10:{IW(a,782,b);return}case 11:{IW(a,783,b);IW(a,772,(feb(d)|0)+12|0);return}case 12:{IW(a,784,b);IW(a,772,(vfb(d)|0)+24|0);return}case 13:{IW(a,785,b);IW(a,772,(efb(d)|0)+28|0);IW(a,772,(efb(d)|0)+24|0);return}case 23:{IW(a,786,b);IW(a,772,(ieb(d)|0)+24|0);IW(a,772,(ieb(d)|0)+20|0);return}case 24:{IW(a,787,b);IW(a,772,(hdb(d)|0)+24|0);IW(a,772,(hdb(d)|0)+20|0);IW(a,772,(hdb(d)|0)+16|0);return}case 25:{IW(a,788,b);IW(a,772,(Ldb(d)|0)+20|0);IW(a,772,(Ldb(d)|0)+16|0);IW(a,772,(Ldb(d)|0)+12|0);return}case 26:{IW(a,789,b);IW(a,772,(Kdb(d)|0)+16|0);IW(a,772,(Kdb(d)|0)+12|0);return}case 27:{IW(a,790,b);IW(a,772,(Adb(d)|0)+12|0);return}case 28:{IW(a,791,b);IW(a,772,(zdb(d)|0)+20|0);IW(a,772,(zdb(d)|0)+12|0);return}case 29:{IW(a,792,b);IW(a,772,(ydb(d)|0)+12|0);IW(a,772,(ydb(d)|0)+8|0);return}case 30:{IW(a,793,b);IW(a,772,(gdb(d)|0)+16|0);IW(a,772,(gdb(d)|0)+12|0);IW(a,772,(gdb(d)|0)+8|0);return}case 31:{IW(a,794,b);IW(a,772,(geb(d)|0)+16|0);IW(a,772,(geb(d)|0)+12|0);return}case 32:{IW(a,795,b);IW(a,772,(Hdb(d)|0)+12|0);IW(a,772,(Hdb(d)|0)+16|0);IW(a,772,(Hdb(d)|0)+20|0);return}case 33:{IW(a,796,b);return}case 34:{IW(a,797,b);IW(a,772,(Jdb(d)|0)+8|0);IW(a,772,(Jdb(d)|0)+12|0);IW(a,772,(Jdb(d)|0)+16|0);return}case 35:{IW(a,798,b);IW(a,772,(Idb(d)|0)+8|0);IW(a,772,(Idb(d)|0)+12|0);IW(a,772,(Idb(d)|0)+16|0);return}case 14:{IW(a,799,b);return}case 15:{IW(a,800,b);IW(a,772,(dfb(d)|0)+12|0);return}case 16:{IW(a,801,b);IW(a,772,(Veb(d)|0)+16|0);IW(a,772,(Veb(d)|0)+12|0);return}case 17:{IW(a,802,b);IW(a,772,(Teb(d)|0)+16|0);IW(a,772,(Teb(d)|0)+12|0);IW(a,772,(Teb(d)|0)+8|0);return}case 18:{IW(a,803,b);IW(a,772,(xfb(d)|0)+8|0);return}case 19:{IW(a,804,b);tX(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,805,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,772,uXa(e,b)|0);d=b}return}case 21:{IW(a,806,b);return}case 22:{IW(a,807,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Le(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,398,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,385,uXa(e,b)|0);d=b}return}case 2:{IW(a,399,b);vX(a,(Tfb(d)|0)+16|0);IW(a,385,(Tfb(d)|0)+12|0);IW(a,385,(Tfb(d)|0)+8|0);return}case 3:{IW(a,400,b);IW(a,385,(Efb(d)|0)+12|0);return}case 4:{IW(a,401,b);vX(a,(tfb(d)|0)+16|0);vX(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,402,b);IW(a,385,(cfb(d)|0)+28|0);vX(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,403,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,385,uXa(e,b)|0);d=b}return}case 7:{IW(a,404,b);b=wdb(d)|0;IW(a,385,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,385,uXa(e,b)|0);d=b}return}case 8:{IW(a,405,b);return}case 9:{IW(a,406,b);IW(a,385,(Keb(d)|0)+12|0);return}case 10:{IW(a,407,b);return}case 11:{IW(a,408,b);IW(a,385,(feb(d)|0)+12|0);return}case 12:{IW(a,409,b);IW(a,385,(vfb(d)|0)+24|0);return}case 13:{IW(a,410,b);IW(a,385,(efb(d)|0)+28|0);IW(a,385,(efb(d)|0)+24|0);return}case 23:{IW(a,411,b);IW(a,385,(ieb(d)|0)+24|0);IW(a,385,(ieb(d)|0)+20|0);return}case 24:{IW(a,412,b);IW(a,385,(hdb(d)|0)+24|0);IW(a,385,(hdb(d)|0)+20|0);IW(a,385,(hdb(d)|0)+16|0);return}case 25:{IW(a,413,b);IW(a,385,(Ldb(d)|0)+20|0);IW(a,385,(Ldb(d)|0)+16|0);IW(a,385,(Ldb(d)|0)+12|0);return}case 26:{IW(a,414,b);IW(a,385,(Kdb(d)|0)+16|0);IW(a,385,(Kdb(d)|0)+12|0);return}case 27:{IW(a,415,b);IW(a,385,(Adb(d)|0)+12|0);return}case 28:{IW(a,416,b);IW(a,385,(zdb(d)|0)+20|0);IW(a,385,(zdb(d)|0)+12|0);return}case 29:{IW(a,417,b);IW(a,385,(ydb(d)|0)+12|0);IW(a,385,(ydb(d)|0)+8|0);return}case 30:{IW(a,418,b);IW(a,385,(gdb(d)|0)+16|0);IW(a,385,(gdb(d)|0)+12|0);IW(a,385,(gdb(d)|0)+8|0);return}case 31:{IW(a,419,b);IW(a,385,(geb(d)|0)+16|0);IW(a,385,(geb(d)|0)+12|0);return}case 32:{IW(a,420,b);IW(a,385,(Hdb(d)|0)+12|0);IW(a,385,(Hdb(d)|0)+16|0);IW(a,385,(Hdb(d)|0)+20|0);return}case 33:{IW(a,421,b);return}case 34:{IW(a,422,b);IW(a,385,(Jdb(d)|0)+8|0);IW(a,385,(Jdb(d)|0)+12|0);IW(a,385,(Jdb(d)|0)+16|0);return}case 35:{IW(a,423,b);IW(a,385,(Idb(d)|0)+8|0);IW(a,385,(Idb(d)|0)+12|0);IW(a,385,(Idb(d)|0)+16|0);return}case 14:{IW(a,424,b);return}case 15:{IW(a,425,b);IW(a,385,(dfb(d)|0)+12|0);return}case 16:{IW(a,426,b);IW(a,385,(Veb(d)|0)+16|0);IW(a,385,(Veb(d)|0)+12|0);return}case 17:{IW(a,427,b);IW(a,385,(Teb(d)|0)+16|0);IW(a,385,(Teb(d)|0)+12|0);IW(a,385,(Teb(d)|0)+8|0);return}case 18:{IW(a,428,b);IW(a,385,(xfb(d)|0)+8|0);return}case 19:{IW(a,429,b);vX(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,430,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,385,uXa(e,b)|0);d=b}return}case 21:{IW(a,431,b);return}case 22:{IW(a,432,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Me(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,256,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,255,uXa(e,b)|0);d=b}return}case 2:{IW(a,257,b);wX(a,(Tfb(d)|0)+16|0);IW(a,255,(Tfb(d)|0)+12|0);IW(a,255,(Tfb(d)|0)+8|0);return}case 3:{IW(a,258,b);IW(a,255,(Efb(d)|0)+12|0);return}case 4:{IW(a,259,b);wX(a,(tfb(d)|0)+16|0);wX(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,260,b);IW(a,255,(cfb(d)|0)+28|0);wX(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,261,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,255,uXa(e,b)|0);d=b}return}case 7:{IW(a,262,b);b=wdb(d)|0;IW(a,255,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,255,uXa(e,b)|0);d=b}return}case 8:{IW(a,263,b);return}case 9:{IW(a,264,b);IW(a,255,(Keb(d)|0)+12|0);return}case 10:{IW(a,265,b);return}case 11:{IW(a,266,b);IW(a,255,(feb(d)|0)+12|0);return}case 12:{IW(a,267,b);IW(a,255,(vfb(d)|0)+24|0);return}case 13:{IW(a,268,b);IW(a,255,(efb(d)|0)+28|0);IW(a,255,(efb(d)|0)+24|0);return}case 23:{IW(a,269,b);IW(a,255,(ieb(d)|0)+24|0);IW(a,255,(ieb(d)|0)+20|0);return}case 24:{IW(a,270,b);IW(a,255,(hdb(d)|0)+24|0);IW(a,255,(hdb(d)|0)+20|0);IW(a,255,(hdb(d)|0)+16|0);return}case 25:{IW(a,271,b);IW(a,255,(Ldb(d)|0)+20|0);IW(a,255,(Ldb(d)|0)+16|0);IW(a,255,(Ldb(d)|0)+12|0);return}case 26:{IW(a,272,b);IW(a,255,(Kdb(d)|0)+16|0);IW(a,255,(Kdb(d)|0)+12|0);return}case 27:{IW(a,273,b);IW(a,255,(Adb(d)|0)+12|0);return}case 28:{IW(a,274,b);IW(a,255,(zdb(d)|0)+20|0);IW(a,255,(zdb(d)|0)+12|0);return}case 29:{IW(a,275,b);IW(a,255,(ydb(d)|0)+12|0);IW(a,255,(ydb(d)|0)+8|0);return}case 30:{IW(a,276,b);IW(a,255,(gdb(d)|0)+16|0);IW(a,255,(gdb(d)|0)+12|0);IW(a,255,(gdb(d)|0)+8|0);return}case 31:{IW(a,277,b);IW(a,255,(geb(d)|0)+16|0);IW(a,255,(geb(d)|0)+12|0);return}case 32:{IW(a,278,b);IW(a,255,(Hdb(d)|0)+12|0);IW(a,255,(Hdb(d)|0)+16|0);IW(a,255,(Hdb(d)|0)+20|0);return}case 33:{IW(a,279,b);return}case 34:{IW(a,280,b);IW(a,255,(Jdb(d)|0)+8|0);IW(a,255,(Jdb(d)|0)+12|0);IW(a,255,(Jdb(d)|0)+16|0);return}case 35:{IW(a,281,b);IW(a,255,(Idb(d)|0)+8|0);IW(a,255,(Idb(d)|0)+12|0);IW(a,255,(Idb(d)|0)+16|0);return}case 14:{IW(a,282,b);return}case 15:{IW(a,283,b);IW(a,255,(dfb(d)|0)+12|0);return}case 16:{IW(a,284,b);IW(a,255,(Veb(d)|0)+16|0);IW(a,255,(Veb(d)|0)+12|0);return}case 17:{IW(a,285,b);IW(a,255,(Teb(d)|0)+16|0);IW(a,255,(Teb(d)|0)+12|0);IW(a,255,(Teb(d)|0)+8|0);return}case 18:{IW(a,286,b);IW(a,255,(xfb(d)|0)+8|0);return}case 19:{IW(a,287,b);wX(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,288,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,255,uXa(e,b)|0);d=b}return}case 21:{IW(a,289,b);return}case 22:{IW(a,290,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Ne(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,4149,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,4148,uXa(e,b)|0);d=b}return}case 2:{IW(a,4150,b);SY(a,(Tfb(d)|0)+16|0);IW(a,4148,(Tfb(d)|0)+12|0);IW(a,4148,(Tfb(d)|0)+8|0);return}case 3:{IW(a,4151,b);IW(a,4148,(Efb(d)|0)+12|0);return}case 4:{IW(a,4152,b);SY(a,(tfb(d)|0)+16|0);SY(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,4153,b);IW(a,4148,(cfb(d)|0)+28|0);SY(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,4154,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,4148,uXa(e,b)|0);d=b}return}case 7:{IW(a,4155,b);b=wdb(d)|0;IW(a,4148,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,4148,uXa(e,b)|0);d=b}return}case 8:{IW(a,4156,b);return}case 9:{IW(a,4157,b);IW(a,4148,(Keb(d)|0)+12|0);return}case 10:{IW(a,4158,b);return}case 11:{IW(a,4159,b);IW(a,4148,(feb(d)|0)+12|0);return}case 12:{IW(a,4160,b);IW(a,4148,(vfb(d)|0)+24|0);return}case 13:{IW(a,4161,b);IW(a,4148,(efb(d)|0)+28|0);IW(a,4148,(efb(d)|0)+24|0);return}case 23:{IW(a,4162,b);IW(a,4148,(ieb(d)|0)+24|0);IW(a,4148,(ieb(d)|0)+20|0);return}case 24:{IW(a,4163,b);IW(a,4148,(hdb(d)|0)+24|0);IW(a,4148,(hdb(d)|0)+20|0);IW(a,4148,(hdb(d)|0)+16|0);return}case 25:{IW(a,4164,b);IW(a,4148,(Ldb(d)|0)+20|0);IW(a,4148,(Ldb(d)|0)+16|0);IW(a,4148,(Ldb(d)|0)+12|0);return}case 26:{IW(a,4165,b);IW(a,4148,(Kdb(d)|0)+16|0);IW(a,4148,(Kdb(d)|0)+12|0);return}case 27:{IW(a,4166,b);IW(a,4148,(Adb(d)|0)+12|0);return}case 28:{IW(a,4167,b);IW(a,4148,(zdb(d)|0)+20|0);IW(a,4148,(zdb(d)|0)+12|0);return}case 29:{IW(a,4168,b);IW(a,4148,(ydb(d)|0)+12|0);IW(a,4148,(ydb(d)|0)+8|0);return}case 30:{IW(a,4169,b);IW(a,4148,(gdb(d)|0)+16|0);IW(a,4148,(gdb(d)|0)+12|0);IW(a,4148,(gdb(d)|0)+8|0);return}case 31:{IW(a,4170,b);IW(a,4148,(geb(d)|0)+16|0);IW(a,4148,(geb(d)|0)+12|0);return}case 32:{IW(a,4171,b);IW(a,4148,(Hdb(d)|0)+12|0);IW(a,4148,(Hdb(d)|0)+16|0);IW(a,4148,(Hdb(d)|0)+20|0);return}case 33:{IW(a,4172,b);return}case 34:{IW(a,4173,b);IW(a,4148,(Jdb(d)|0)+8|0);IW(a,4148,(Jdb(d)|0)+12|0);IW(a,4148,(Jdb(d)|0)+16|0);return}case 35:{IW(a,4174,b);IW(a,4148,(Idb(d)|0)+8|0);IW(a,4148,(Idb(d)|0)+12|0);IW(a,4148,(Idb(d)|0)+16|0);return}case 14:{IW(a,4175,b);return}case 15:{IW(a,4176,b);IW(a,4148,(dfb(d)|0)+12|0);return}case 16:{IW(a,4177,b);IW(a,4148,(Veb(d)|0)+16|0);IW(a,4148,(Veb(d)|0)+12|0);return}case 17:{IW(a,4178,b);IW(a,4148,(Teb(d)|0)+16|0);IW(a,4148,(Teb(d)|0)+12|0);IW(a,4148,(Teb(d)|0)+8|0);return}case 18:{IW(a,4179,b);IW(a,4148,(xfb(d)|0)+8|0);return}case 19:{IW(a,4180,b);SY(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,4181,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,4148,uXa(e,b)|0);d=b}return}case 21:{IW(a,4182,b);return}case 22:{IW(a,4183,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Oe(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,661,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,660,uXa(e,b)|0);d=b}return}case 2:{IW(a,662,b);AX(a,(Tfb(d)|0)+16|0);IW(a,660,(Tfb(d)|0)+12|0);IW(a,660,(Tfb(d)|0)+8|0);return}case 3:{IW(a,663,b);IW(a,660,(Efb(d)|0)+12|0);return}case 4:{IW(a,664,b);AX(a,(tfb(d)|0)+16|0);AX(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,665,b);IW(a,660,(cfb(d)|0)+28|0);AX(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,666,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,660,uXa(e,b)|0);d=b}return}case 7:{IW(a,667,b);b=wdb(d)|0;IW(a,660,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,660,uXa(e,b)|0);d=b}return}case 8:{IW(a,668,b);return}case 9:{IW(a,669,b);IW(a,660,(Keb(d)|0)+12|0);return}case 10:{IW(a,670,b);return}case 11:{IW(a,671,b);IW(a,660,(feb(d)|0)+12|0);return}case 12:{IW(a,672,b);IW(a,660,(vfb(d)|0)+24|0);return}case 13:{IW(a,673,b);IW(a,660,(efb(d)|0)+28|0);IW(a,660,(efb(d)|0)+24|0);return}case 23:{IW(a,674,b);IW(a,660,(ieb(d)|0)+24|0);IW(a,660,(ieb(d)|0)+20|0);return}case 24:{IW(a,675,b);IW(a,660,(hdb(d)|0)+24|0);IW(a,660,(hdb(d)|0)+20|0);IW(a,660,(hdb(d)|0)+16|0);return}case 25:{IW(a,676,b);IW(a,660,(Ldb(d)|0)+20|0);IW(a,660,(Ldb(d)|0)+16|0);IW(a,660,(Ldb(d)|0)+12|0);return}case 26:{IW(a,677,b);IW(a,660,(Kdb(d)|0)+16|0);IW(a,660,(Kdb(d)|0)+12|0);return}case 27:{IW(a,678,b);IW(a,660,(Adb(d)|0)+12|0);return}case 28:{IW(a,679,b);IW(a,660,(zdb(d)|0)+20|0);IW(a,660,(zdb(d)|0)+12|0);return}case 29:{IW(a,680,b);IW(a,660,(ydb(d)|0)+12|0);IW(a,660,(ydb(d)|0)+8|0);return}case 30:{IW(a,681,b);IW(a,660,(gdb(d)|0)+16|0);IW(a,660,(gdb(d)|0)+12|0);IW(a,660,(gdb(d)|0)+8|0);return}case 31:{IW(a,682,b);IW(a,660,(geb(d)|0)+16|0);IW(a,660,(geb(d)|0)+12|0);return}case 32:{IW(a,683,b);IW(a,660,(Hdb(d)|0)+12|0);IW(a,660,(Hdb(d)|0)+16|0);IW(a,660,(Hdb(d)|0)+20|0);return}case 33:{IW(a,684,b);return}case 34:{IW(a,685,b);IW(a,660,(Jdb(d)|0)+8|0);IW(a,660,(Jdb(d)|0)+12|0);IW(a,660,(Jdb(d)|0)+16|0);return}case 35:{IW(a,686,b);IW(a,660,(Idb(d)|0)+8|0);IW(a,660,(Idb(d)|0)+12|0);IW(a,660,(Idb(d)|0)+16|0);return}case 14:{IW(a,687,b);return}case 15:{IW(a,688,b);IW(a,660,(dfb(d)|0)+12|0);return}case 16:{IW(a,689,b);IW(a,660,(Veb(d)|0)+16|0);IW(a,660,(Veb(d)|0)+12|0);return}case 17:{IW(a,690,b);IW(a,660,(Teb(d)|0)+16|0);IW(a,660,(Teb(d)|0)+12|0);IW(a,660,(Teb(d)|0)+8|0);return}case 18:{IW(a,691,b);IW(a,660,(xfb(d)|0)+8|0);return}case 19:{IW(a,692,b);AX(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,693,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,660,uXa(e,b)|0);d=b}return}case 21:{IW(a,694,b);return}case 22:{IW(a,695,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Pe(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,810,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,809,uXa(e,b)|0);d=b}return}case 2:{IW(a,811,b);CY(a,(Tfb(d)|0)+16|0);IW(a,809,(Tfb(d)|0)+12|0);IW(a,809,(Tfb(d)|0)+8|0);return}case 3:{IW(a,812,b);IW(a,809,(Efb(d)|0)+12|0);return}case 4:{IW(a,813,b);CY(a,(tfb(d)|0)+16|0);CY(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,814,b);IW(a,809,(cfb(d)|0)+28|0);CY(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,815,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,809,uXa(e,b)|0);d=b}return}case 7:{IW(a,816,b);b=wdb(d)|0;IW(a,809,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,809,uXa(e,b)|0);d=b}return}case 8:{IW(a,817,b);return}case 9:{IW(a,818,b);IW(a,809,(Keb(d)|0)+12|0);return}case 10:{IW(a,819,b);return}case 11:{IW(a,820,b);IW(a,809,(feb(d)|0)+12|0);return}case 12:{IW(a,821,b);IW(a,809,(vfb(d)|0)+24|0);return}case 13:{IW(a,822,b);IW(a,809,(efb(d)|0)+28|0);IW(a,809,(efb(d)|0)+24|0);return}case 23:{IW(a,823,b);IW(a,809,(ieb(d)|0)+24|0);IW(a,809,(ieb(d)|0)+20|0);return}case 24:{IW(a,824,b);IW(a,809,(hdb(d)|0)+24|0);IW(a,809,(hdb(d)|0)+20|0);IW(a,809,(hdb(d)|0)+16|0);return}case 25:{IW(a,825,b);IW(a,809,(Ldb(d)|0)+20|0);IW(a,809,(Ldb(d)|0)+16|0);IW(a,809,(Ldb(d)|0)+12|0);return}case 26:{IW(a,826,b);IW(a,809,(Kdb(d)|0)+16|0);IW(a,809,(Kdb(d)|0)+12|0);return}case 27:{IW(a,827,b);IW(a,809,(Adb(d)|0)+12|0);return}case 28:{IW(a,828,b);IW(a,809,(zdb(d)|0)+20|0);IW(a,809,(zdb(d)|0)+12|0);return}case 29:{IW(a,829,b);IW(a,809,(ydb(d)|0)+12|0);IW(a,809,(ydb(d)|0)+8|0);return}case 30:{IW(a,830,b);IW(a,809,(gdb(d)|0)+16|0);IW(a,809,(gdb(d)|0)+12|0);IW(a,809,(gdb(d)|0)+8|0);return}case 31:{IW(a,831,b);IW(a,809,(geb(d)|0)+16|0);IW(a,809,(geb(d)|0)+12|0);return}case 32:{IW(a,832,b);IW(a,809,(Hdb(d)|0)+12|0);IW(a,809,(Hdb(d)|0)+16|0);IW(a,809,(Hdb(d)|0)+20|0);return}case 33:{IW(a,833,b);return}case 34:{IW(a,834,b);IW(a,809,(Jdb(d)|0)+8|0);IW(a,809,(Jdb(d)|0)+12|0);IW(a,809,(Jdb(d)|0)+16|0);return}case 35:{IW(a,835,b);IW(a,809,(Idb(d)|0)+8|0);IW(a,809,(Idb(d)|0)+12|0);IW(a,809,(Idb(d)|0)+16|0);return}case 14:{IW(a,836,b);return}case 15:{IW(a,837,b);IW(a,809,(dfb(d)|0)+12|0);return}case 16:{IW(a,838,b);IW(a,809,(Veb(d)|0)+16|0);IW(a,809,(Veb(d)|0)+12|0);return}case 17:{IW(a,839,b);IW(a,809,(Teb(d)|0)+16|0);IW(a,809,(Teb(d)|0)+12|0);IW(a,809,(Teb(d)|0)+8|0);return}case 18:{IW(a,840,b);IW(a,809,(xfb(d)|0)+8|0);return}case 19:{IW(a,841,b);CY(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,842,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,809,uXa(e,b)|0);d=b}return}case 21:{IW(a,843,b);return}case 22:{IW(a,844,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Qe(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;do switch(c[d>>2]|0){case 0:{Ta();break}case 1:{IW(a,922,b);d=ufb(d)|0;e=d+12|0;d=WCb(c[d+16>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,921,uXa(e,b)|0);d=b}return}case 2:{IW(a,923,b);KY(a,(Tfb(d)|0)+16|0);IW(a,921,(Tfb(d)|0)+12|0);IW(a,921,(Tfb(d)|0)+8|0);return}case 3:{IW(a,924,b);IW(a,921,(Efb(d)|0)+12|0);return}case 4:{IW(a,925,b);KY(a,(tfb(d)|0)+16|0);KY(a,(tfb(d)|0)+12|0);return}case 5:{IW(a,926,b);IW(a,921,(cfb(d)|0)+28|0);KY(a,(cfb(d)|0)+32|0);return}case 6:{IW(a,927,b);d=Ffb(d)|0;e=d+8|0;d=WCb(c[d+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,921,uXa(e,b)|0);d=b}return}case 7:{IW(a,928,b);b=wdb(d)|0;IW(a,921,(wdb(d)|0)+28|0);e=b+8|0;d=WCb(c[b+12>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,921,uXa(e,b)|0);d=b}return}case 8:{IW(a,929,b);return}case 9:{IW(a,930,b);IW(a,921,(Keb(d)|0)+12|0);return}case 10:{IW(a,931,b);return}case 11:{IW(a,932,b);IW(a,921,(feb(d)|0)+12|0);return}case 12:{IW(a,933,b);IW(a,921,(vfb(d)|0)+24|0);return}case 13:{IW(a,934,b);IW(a,921,(efb(d)|0)+28|0);IW(a,921,(efb(d)|0)+24|0);return}case 23:{IW(a,935,b);IW(a,921,(ieb(d)|0)+24|0);IW(a,921,(ieb(d)|0)+20|0);return}case 24:{IW(a,936,b);IW(a,921,(hdb(d)|0)+24|0);IW(a,921,(hdb(d)|0)+20|0);IW(a,921,(hdb(d)|0)+16|0);return}case 25:{IW(a,937,b);IW(a,921,(Ldb(d)|0)+20|0);IW(a,921,(Ldb(d)|0)+16|0);IW(a,921,(Ldb(d)|0)+12|0);return}case 26:{IW(a,938,b);IW(a,921,(Kdb(d)|0)+16|0);IW(a,921,(Kdb(d)|0)+12|0);return}case 27:{IW(a,939,b);IW(a,921,(Adb(d)|0)+12|0);return}case 28:{IW(a,940,b);IW(a,921,(zdb(d)|0)+20|0);IW(a,921,(zdb(d)|0)+12|0);return}case 29:{IW(a,941,b);IW(a,921,(ydb(d)|0)+12|0);IW(a,921,(ydb(d)|0)+8|0);return}case 30:{IW(a,942,b);IW(a,921,(gdb(d)|0)+16|0);IW(a,921,(gdb(d)|0)+12|0);IW(a,921,(gdb(d)|0)+8|0);return}case 31:{IW(a,943,b);IW(a,921,(geb(d)|0)+16|0);IW(a,921,(geb(d)|0)+12|0);return}case 32:{IW(a,944,b);IW(a,921,(Hdb(d)|0)+12|0);IW(a,921,(Hdb(d)|0)+16|0);IW(a,921,(Hdb(d)|0)+20|0);return}case 33:{IW(a,945,b);return}case 34:{IW(a,946,b);IW(a,921,(Jdb(d)|0)+8|0);IW(a,921,(Jdb(d)|0)+12|0);IW(a,921,(Jdb(d)|0)+16|0);return}case 35:{IW(a,947,b);IW(a,921,(Idb(d)|0)+8|0);IW(a,921,(Idb(d)|0)+12|0);IW(a,921,(Idb(d)|0)+16|0);return}case 14:{IW(a,948,b);return}case 15:{IW(a,949,b);IW(a,921,(dfb(d)|0)+12|0);return}case 16:{IW(a,950,b);IW(a,921,(Veb(d)|0)+16|0);IW(a,921,(Veb(d)|0)+12|0);return}case 17:{IW(a,951,b);IW(a,921,(Teb(d)|0)+16|0);IW(a,921,(Teb(d)|0)+12|0);IW(a,921,(Teb(d)|0)+8|0);return}case 18:{IW(a,952,b);IW(a,921,(xfb(d)|0)+8|0);return}case 19:{IW(a,953,b);KY(a,(Ueb(d)|0)+8|0);return}case 20:{IW(a,954,b);d=wfb(d)|0;e=d+16|0;d=WCb(c[d+20>>2]|0)|0;while(1){b=d+-1|0;if((d|0)<=0)break;IW(a,921,uXa(e,b)|0);d=b}return}case 21:{IW(a,955,b);return}case 22:{IW(a,956,b);return}case 36:{ma(141129,134747,714,134810);break}default:return}while(0)}function Re(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;w=yb;yb=yb+96|0;u=w+84|0;r=w+80|0;e=w+76|0;A=w+64|0;s=w+52|0;o=w+48|0;t=w+36|0;p=w+32|0;q=w+28|0;m=w+24|0;z=w+20|0;v=w+16|0;x=w+4|0;y=w;d=kH(Vr(b,0)|0)|0;if(dub(d,c[37394]|0)|0){Rf(a,b);yb=w;return}if(cub(d,c[37383]|0)|0){yb=w;return}Cub(r);Cub(e);g=$v(b,r,e)|0;d=c[r>>2]|0;if(!(eCb(d)|0)){d=w$(c[a+44>>2]|0)|0;c[r>>2]=d}e=a+12|0;f=c[e>>2]|0;if((f|0)==(c[a+16>>2]|0))_M(a+8|0,r);else{c[f>>2]=d;c[e>>2]=(c[e>>2]|0)+4}l=a+44|0;c[l>>2]=(c[l>>2]|0)+1;l=a+52|0;j=G7(l,r)|0;c[j>>2]=0;c[A>>2]=0;j=A+4|0;c[j>>2]=0;k=A+8|0;c[k>>2]=0;d=0;a:while(1){n=0;e=S(330,b|0)|0;i=n;n=0;if(i&1){j=22;break}if(g>>>0>=e>>>0){j=68;break}n=0;i=U(81,b|0,g|0)|0;h=n;n=0;if(h&1){j=22;break}n=0;e=U(81,i|0,0)|0;h=n;n=0;if(h&1){j=22;break}n=0;e=S(331,e|0)|0;h=n;n=0;if(h&1){j=22;break}b:do if(!(dub(e,c[37385]|0)|0)){if(dub(e,c[37394]|0)|0){n=0;d=U(81,i|0,1)|0;h=n;n=0;if(h&1){j=22;break a}n=0;d=U(201,a|0,d|0)|0;h=n;n=0;if(h&1){j=22;break a}e=c[a>>2]|0;c[o>>2]=d;c[u>>2]=c[o>>2];if(!(rDa(e,u)|0)){j=37;break a}c[p>>2]=d;n=0;c[u>>2]=c[p>>2];d=U(70,e|0,u|0)|0;i=n;n=0;if(i&1){j=22;break a}e=c[d+4>>2]|0;n=0;f=U(200,l|0,r|0)|0;i=n;n=0;if(i&1){j=22;break a}c[f>>2]=e;break}if(dub(e,c[37384]|0)|0){n=0;e=S(330,i|0)|0;h=n;n=0;if(h&1){j=22;break a}if(e>>>0>1){n=0;e=U(81,i|0,1)|0;h=n;n=0;if(h&1){j=22;break a}if(Gcb(e)|0){n=0;e=U(81,i|0,2)|0;i=n;n=0;if(i&1){j=22;break a}n=0;e=S(331,e|0)|0;i=n;n=0;if(i&1){j=22;break a}n=0;e=U(199,e|0,1)|0;i=n;n=0;if(i&1){j=22;break a}c[q>>2]=e;f=c[j>>2]|0;if(f>>>0>=(c[k>>2]|0)>>>0){n=0;da(212,A|0,q|0);i=n;n=0;if(i&1){j=22;break a}else break}else{c[f>>2]=e;c[j>>2]=(c[j>>2]|0)+4;break}}f=1;while(1){n=0;e=S(330,i|0)|0;h=n;n=0;if(h&1){j=21;break a}if(f>>>0>=e>>>0)break b;h=f+1|0;n=0;e=U(81,i|0,f|0)|0;f=n;n=0;if(f&1){j=21;break a}n=0;e=S(331,e|0)|0;f=n;n=0;if(f&1){j=21;break a}n=0;e=U(199,e|0,1)|0;f=n;n=0;if(f&1){j=21;break a}c[m>>2]=e;f=c[j>>2]|0;if(f>>>0>=(c[k>>2]|0)>>>0){n=0;da(212,A|0,m|0);f=n;n=0;if(f&1){j=21;break a}}else{c[f>>2]=e;c[j>>2]=(c[j>>2]|0)+4}f=h}}}}else{n=0;e=S(330,i|0)|0;h=n;n=0;if(h&1){j=22;break a}if(e>>>0>2){j=18;break a}n=0;e=U(81,i|0,1)|0;i=n;n=0;if(i&1){j=22;break a}n=0;e=S(331,e|0)|0;i=n;n=0;if(i&1){j=22;break a}n=0;e=U(199,e|0,0)|0;i=n;n=0;if(i&1){j=22;break a}n=0;f=U(200,l|0,r|0)|0;i=n;n=0;if(i&1){j=22;break a}c[f>>2]=e}while(0);g=g+1|0}c:do if((j|0)==18){f=oa(20)|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;z=Zzb(119673)|0;n=0;ea(95,s|0,119673,z|0);z=n;n=0;if(!(z&1)){n=0;fa(134,f|0,s|0,c[i+28>>2]|0,c[i+32>>2]|0);z=n;n=0;if(z&1)e=1;else{n=0;ea(122,f|0,31856,511);n=0;e=0}d=sa()|0;P()|0;Chb(s);if(!e){z=d;Vob(A);Ea(z|0)}}else{d=sa()|0;P()|0}va(f|0);z=d;Vob(A);Ea(z|0)}else if((j|0)==21){d=sa()|0;P()|0}else if((j|0)==22){d=sa()|0;P()|0}else if((j|0)==37){f=oa(20)|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;z=Zzb(119694)|0;n=0;ea(95,t|0,119694,z|0);z=n;n=0;if(!(z&1)){n=0;fa(134,f|0,t|0,c[i+28>>2]|0,c[i+32>>2]|0);z=n;n=0;if(z&1)e=1;else{n=0;ea(122,f|0,31856,511);n=0;e=0}d=sa()|0;P()|0;Chb(t);if(!e){z=d;Vob(A);Ea(z|0)}}else{d=sa()|0;P()|0}va(f|0);z=d;Vob(A);Ea(z|0)}else if((j|0)==68){d:do if(!d){n=0;ca(565,z|0);t=n;n=0;if(t&1){d=sa()|0;P()|0;break c}n=0;d=U(200,l|0,r|0)|0;t=n;n=0;do if(!(t&1)){e=c[z>>2]|0;c[e+4>>2]=c[d>>2];Qoa(e+8|0,A);g=c[a>>2]|0;f=c[g>>2]|0;g=c[g+4>>2]|0;h=g;i=e;d=f;while(1){if((d|0)==(h|0))break;if(O1(c[d>>2]|0,e)|0){j=92;break}d=d+4|0}if((j|0)==92){c[z>>2]=0;if(!e)break d;Xrb(e);RCb(e);break d}n=0;d=S(222,g-f>>2|0)|0;t=n;n=0;if(!(t&1)){c[e>>2]=d;f=a+24|0;g=c[f>>2]|0;if((g|0)==(c[a+28>>2]|0)){n=0;da(232,a+20|0,e|0);t=n;n=0;if(t&1){j=96;break}}else{c[g>>2]=d;c[f>>2]=(c[f>>2]|0)+4}d=c[a>>2]|0;c[v>>2]=c[e>>2];c[u>>2]=c[v>>2];if(rDa(d,u)|0){g=oa(20)|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;y=Zzb(126526)|0;n=0;ea(95,x|0,126526,y|0);y=n;n=0;if(!(y&1)){n=0;fa(134,g|0,x|0,c[b+28>>2]|0,c[b+32>>2]|0);y=n;n=0;if(y&1)f=1;else{n=0;ea(122,g|0,31856,511);n=0;f=0}d=sa()|0;P()|0;Chb(x);if(f)j=85}else{d=sa()|0;P()|0;j=85}if((j|0)==85)va(g|0);c[z>>2]=0;break}c[z>>2]=0;c[y>>2]=i;n=0;U(80,d|0,y|0)|0;x=n;n=0;if(!(x&1)){d=c[y>>2]|0;c[y>>2]=0;if(d|0){Xrb(d);RCb(d)}c[z>>2]=0;break d}d=sa()|0;P()|0;e=c[y>>2]|0;c[y>>2]=0;if(e|0){Xrb(e);RCb(e)}c[z>>2]=0;z=d;Vob(A);Ea(z|0)}else j=96}else j=96;while(0);if((j|0)==96){d=sa()|0;P()|0;e=c[z>>2]|0;c[z>>2]=0;if(!e){z=d;Vob(A);Ea(z|0)}}Xrb(e);RCb(e);z=d;Vob(A);Ea(z|0)}while(0);Vob(A);yb=w;return}while(0);z=d;Vob(A);Ea(z|0)}function Se(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,o=0,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=yb;yb=yb+96|0;l=A+88|0;o=A+72|0;q=A+60|0;g=A+56|0;u=A+40|0;x=A+28|0;m=A+24|0;y=A+4|0;k=A;d=c[a>>2]|0;e=HYa(d,b)|0;z=b+12|0;f=c[z>>2]|0;if(e){e=a+8|0;DW(o,c[f+4>>2]|0,d,c[e>>2]|0,c[37043]|0);Mob(q);d=c[e>>2]|0;f=c[o+8>>2]|0;Ftb(g,WCb(f)|0);n=0;c[l>>2]=c[g>>2];d=U(71,d|0,l|0)|0;k=n;n=0;if(!(k&1)?(c[q+8>>2]=d,p=b+16|0,n=0,ga(4,u|0,c[(c[p>>2]|0)+4>>2]|0,c[a>>2]|0,c[e>>2]|0,c[37043]|0),k=n,n=0,!(k&1)):0){Mob(x);d=c[e>>2]|0;e=c[u+8>>2]|0;Ftb(m,WCb(e)|0);n=0;c[l>>2]=c[m>>2];d=U(71,d|0,l|0)|0;m=n;n=0;if((((((!(m&1)?(c[x+8>>2]=d,c[y>>2]=c[b>>2],c[y+4>>2]=c[b+4>>2],c[y+8>>2]=c[b+8>>2],c[y+12>>2]=q,c[y+16>>2]=x,n=0,r=V(46,a|0,c[z>>2]|0,f|0)|0,z=n,n=0,!(z&1)):0)?(n=0,s=S(225,r|0)|0,z=n,n=0,!(z&1)):0)?(t=s,n=0,v=V(46,a|0,c[p>>2]|0,e|0)|0,z=n,n=0,!(z&1)):0)?(n=0,da(76,s|0,v|0),z=n,n=0,!(z&1)):0)?(n=0,w=V(47,a|0,y|0,c[a+4>>2]|0)|0,z=n,n=0,!(z&1)):0)?(n=0,da(76,s|0,w|0),z=n,n=0,!(z&1)):0){dha(u);dha(o);z=t;yb=A;return z|0}A=sa()|0;P()|0;dha(u);dha(o);Ea(A|0)}A=sa()|0;P()|0;dha(o);Ea(A|0)}f=uga(a,f,c[37044]|0)|0;d=uga(a,c[b+16>>2]|0,c[37044]|0)|0;Pwb(k,0);e=b+4|0;switch(c[e>>2]|0){case 1:{do switch(c[b+8>>2]|0){case 0:{i=mv(f,c[37232]|0,d)|0;c[k>>2]=i;break}case 1:{i=mv(f,c[37233]|0,d)|0;c[k>>2]=i;break}case 2:{z=SP(c[37157]|0,f,d)|0;yb=A;return z|0}case 3:{i=mv(Hra(f,1)|0,c[37245]|0,Hra(d,1)|0)|0;c[k>>2]=i;break}case 4:{i=mv(Hra(f,2)|0,c[37245]|0,Hra(d,2)|0)|0;c[k>>2]=i;break}case 5:{i=mv(Hra(f,1)|0,c[37246]|0,Hra(d,1)|0)|0;c[k>>2]=i;break}case 6:{i=mv(Hra(f,2)|0,c[37246]|0,Hra(d,2)|0)|0;c[k>>2]=i;break}case 7:{i=mv(f,c[37235]|0,d)|0;c[k>>2]=i;break}case 8:{i=mv(f,c[37234]|0,d)|0;c[k>>2]=i;break}case 9:{i=mv(f,c[37236]|0,d)|0;c[k>>2]=i;break}case 10:{i=mv(f,c[37249]|0,d)|0;c[k>>2]=i;break}case 11:{i=mv(f,c[37250]|0,d)|0;c[k>>2]=i;break}case 12:{i=mv(f,c[37248]|0,d)|0;c[k>>2]=i;break}case 15:if((c[(c[z>>2]|0)+4>>2]|0)==1){b=Hra(f,1)|0;z=c[37243]|0;z=mv(b,z,Hra(d,1)|0)|0;yb=A;return z|0}else{z=mv(f,c[37243]|0,d)|0;yb=A;return z|0}case 16:if((c[(c[z>>2]|0)+4>>2]|0)==1){b=Hra(f,1)|0;z=c[37244]|0;z=mv(b,z,Hra(d,1)|0)|0;yb=A;return z|0}else{z=mv(f,c[37244]|0,d)|0;yb=A;return z|0}case 17:{z=mv(Hra(f,1)|0,c[37239]|0,Hra(d,1)|0)|0;yb=A;return z|0}case 18:{z=mv(Hra(f,2)|0,c[37239]|0,Hra(d,2)|0)|0;yb=A;return z|0}case 19:{z=mv(Hra(f,1)|0,c[37241]|0,Hra(d,1)|0)|0;yb=A;return z|0}case 20:{z=mv(Hra(f,2)|0,c[37241]|0,Hra(d,2)|0)|0;yb=A;return z|0}case 21:{z=mv(Hra(f,1)|0,c[37242]|0,Hra(d,1)|0)|0;yb=A;return z|0}case 22:{z=mv(Hra(f,2)|0,c[37242]|0,Hra(d,2)|0)|0;yb=A;return z|0}case 23:{z=mv(Hra(f,1)|0,c[37240]|0,Hra(d,1)|0)|0;yb=A;return z|0}case 24:{z=mv(Hra(f,2)|0,c[37240]|0,Hra(d,2)|0)|0;yb=A;return z|0}case 70:case 57:{z=mv(f,c[37243]|0,d)|0;yb=A;return z|0}case 71:case 58:{z=mv(f,c[37244]|0,d)|0;yb=A;return z|0}case 75:case 62:{z=mv(f,c[37240]|0,d)|0;yb=A;return z|0}case 74:case 61:{z=mv(f,c[37242]|0,d)|0;yb=A;return z|0}case 73:case 60:{z=mv(f,c[37241]|0,d)|0;yb=A;return z|0}case 72:case 59:{z=mv(f,c[37239]|0,d)|0;yb=A;return z|0}case 14:case 13:{BM(IWa(150620,51844)|0);ma(141129,51625,1881,131297);break}default:{BM(Wm(IWa(150620,51870)|0,b)|0);Ta()}}while(0);z=mG(i,Yga(c[e>>2]|0)|0)|0;yb=A;return z|0}case 4:case 3:{switch(c[b+8>>2]|0){case 63:case 50:{h=mv(f,c[37232]|0,d)|0;j=h;c[k>>2]=j;break}case 64:case 51:{h=mv(f,c[37233]|0,d)|0;j=h;c[k>>2]=j;break}case 65:case 52:{h=mv(f,c[37247]|0,d)|0;j=h;c[k>>2]=j;break}case 66:case 53:{h=mv(f,c[37245]|0,d)|0;j=h;c[k>>2]=j;break}case 68:case 55:{h=SP(c[37164]|0,f,d)|0;j=h;c[k>>2]=j;break}case 69:case 56:{h=SP(c[37165]|0,f,d)|0;j=h;c[k>>2]=j;break}default:{BM(Wm(IWa(150620,51902)|0,b)|0);Ta()}}if((c[e>>2]|0)!=3){z=j;yb=A;return z|0}z=mG(h,2)|0;yb=A;return z|0}default:{BM(Wm(IWa(150620,51936)|0,b)|0);Ta()}}return 0}function Te(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,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;I=yb;yb=yb+128|0;F=I+120|0;G=I+112|0;H=I+104|0;K=I+92|0;L=I+80|0;M=I+68|0;J=I+48|0;h=I+44|0;r=I;w=I+40|0;x=I+36|0;y=I+32|0;z=I+28|0;A=I+24|0;B=I+20|0;C=I+16|0;D=I+12|0;E=I+8|0;t=Icb(b)|0;c[K>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;n=0;da(375,K|0,t|0);v=n;n=0;if(v&1){M=sa()|0;P()|0;iib(K);Ea(M|0)}c[L>>2]=0;u=L+4|0;c[u>>2]=0;v=L+8|0;c[v>>2]=0;c[M>>2]=0;p=M+4|0;c[p>>2]=0;c[M+8>>2]=0;e=a+44|0;q=a+40|0;n=0;da(376,M|0,(c[e>>2]|0)-(c[q>>2]|0)>>2|0);s=n;n=0;if(s&1){b=sa()|0;P()|0}else{c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;c[J+12>>2]=0;g[J+16>>2]=1.0;d=0;while(1){b=c[q>>2]|0;if(d>>>0>=(c[e>>2]|0)-b>>2>>>0){s=20;break}f=c[M>>2]|0;c[h>>2]=c[b+(d<<2)>>2];n=0;b=U(97,J|0,h|0)|0;s=n;n=0;if(s&1){s=18;break}c[b>>2]=f+(d*40|0);d=d+1|0}do if((s|0)==18){b=sa()|0;P()|0}else if((s|0)==20){m=a+36|0;o=r+4|0;l=0;k=0;a:while(1){b=c[p>>2]|0;d=c[M>>2]|0;j=d;if(l>>>0>=((b-d|0)/40|0)>>>0){s=35;break}b=j+(l*40|0)|0;i=(c[q>>2]|0)+(l<<2)|0;k=(c[i>>2]|0)==(c[m>>2]|0)?b:k;c[b>>2]=-1;bma(j+(l*40|0)+4|0,c[i>>2]|0);b=c[i>>2]|0;d=b+44|0;b=b+48|0;n=0;da(377,j+(l*40|0)+16|0,(c[b>>2]|0)-(c[d>>2]|0)>>2|0);s=n;n=0;if(s&1){s=17;break}f=c[b>>2]|0;b=c[d>>2]|0;d=c[j+(l*40|0)+16>>2]|0;while(1){if((b|0)==(f|0))break;n=0;e=U(98,J|0,c[b>>2]|0)|0;s=n;n=0;if(s&1){s=16;break a}c[d>>2]=e;b=b+4|0;d=d+4|0}f=j+(l*40|0)+28|0;n=0;da(378,f|0,c[(c[i>>2]|0)+24>>2]|0);s=n;n=0;if(s&1){s=17;break}h=j+(l*40|0)+32|0;e=j+(l*40|0)+36|0;b=(c[i>>2]|0)+20|0;while(1){b=c[b>>2]|0;if(!b)break;s=b+8|0;d=c[s+4>>2]|0;c[r>>2]=c[s>>2];c[o>>2]=d;d=c[h>>2]|0;if(d>>>0>=(c[e>>2]|0)>>>0){n=0;da(379,f|0,r|0);s=n;n=0;if(s&1){s=15;break a}}else{i=r;j=c[i+4>>2]|0;s=d;c[s>>2]=c[i>>2];c[s+4>>2]=j;c[h>>2]=(c[h>>2]|0)+8}}l=l+1|0}if((s|0)==15){b=sa()|0;P()|0;break}else if((s|0)==16){b=sa()|0;P()|0;break}else if((s|0)==17){b=sa()|0;P()|0;break}else if((s|0)==35){if(!k){n=0;fa(75,75190,75216,127,75247);n=0;b=sa()|0;P()|0;break}r=b;q=a+116|0;b=0;o=d;b:while(1){p=o;if((p|0)==(r|0)){s=88;break}m=p+4|0;d=(c[p+8>>2]|0)-(c[m>>2]|0)>>2;while(1){l=d+-1|0;if((d|0)<=0)break;d=c[(c[m>>2]|0)+(l<<2)>>2]|0;e=jqb(d)|0;c[w>>2]=e;i=e;do if(e){d=c[e+8>>2]|0;e=c[K>>2]|0;f=e+(d*12|0)+4|0;h=c[f>>2]|0;if((h|0)==(c[e+(d*12|0)+8>>2]|0)){n=0;da(380,e+(d*12|0)|0,w|0);a=n;n=0;if(a&1){s=14;break b}else break}else{c[h>>2]=i;c[f>>2]=(c[f>>2]|0)+4;break}}else{n=0;e=S(244,d|0)|0;a=n;n=0;if(a&1){s=14;break b}c[x>>2]=e;h=c[e+8>>2]|0;i=c[K>>2]|0;f=i+(h*12|0)|0;h=i+(h*12|0)+4|0;i=c[h>>2]|0;d=c[f>>2]|0;while(1){j=d;if((i|0)==(j|0))break;c[y>>2]=c[d>>2];n=0;d=U(99,c[q>>2]|0,y|0)|0;a=n;n=0;if(a&1){s=12;break b}n=0;fa(96,F|0,d|0,e|0,x|0);a=n;n=0;if(a&1){s=12;break b}d=j+4|0}c[h>>2]=c[f>>2]}while(0);d=l}d=0;while(1){c[z>>2]=d;if(d>>>0>=t>>>0)break;m=c[K>>2]|0;l=m+(d*12|0)|0;m=m+(d*12|0)+4|0;if((c[l>>2]|0)!=(c[m>>2]|0)){c[A>>2]=p;d=c[u>>2]|0;if(d>>>0>=(c[v>>2]|0)>>>0){n=0;da(381,L|0,A|0);a=n;n=0;if(a&1){s=13;break b}}else{c[d>>2]=o;c[u>>2]=(c[u>>2]|0)+4}while(1){d=c[u>>2]|0;if((c[L>>2]|0)==(d|0))break;e=d+-4|0;d=c[e>>2]|0;c[u>>2]=e;e=c[d+16>>2]|0;j=c[d+20>>2]|0;c:do if((e|0)==(j|0)){if((d|0)==(k|0)){e=c[m>>2]|0;d=c[l>>2]|0;while(1){f=d;if((e|0)==(f|0))break c;c[B>>2]=c[d>>2];n=0;d=U(99,c[q>>2]|0,B|0)|0;a=n;n=0;if(a&1){s=10;break b}c[C>>2]=0;n=0;fa(97,G|0,d|0,0,C|0);a=n;n=0;if(a&1){s=10;break b}d=f+4|0}}}else while(1){if((e|0)==(j|0))break c;d=c[e>>2]|0;c[D>>2]=d;d:do if((c[d>>2]|0)!=(b|0)){c[d>>2]=b;f=c[D>>2]|0;d=c[f+32>>2]|0;h=f;f=c[f+28>>2]|0;while(1){if((f|0)==(d|0)){s=80;break}if(ahb(c[z>>2]|0,c[f>>2]|0)|0)break;f=f+8|0}if((s|0)==80){s=0;d=c[u>>2]|0;if((d|0)==(c[v>>2]|0)){n=0;da(382,L|0,D|0);a=n;n=0;if(a&1){s=11;break b}else break}else{c[d>>2]=h;c[u>>2]=(c[u>>2]|0)+4;break}}i=c[m>>2]|0;f=f+4|0;d=c[l>>2]|0;while(1){h=d;if((i|0)==(h|0))break d;c[E>>2]=c[d>>2];n=0;d=U(99,c[q>>2]|0,E|0)|0;a=n;n=0;if(a&1){s=9;break b}n=0;fa(96,H|0,d|0,c[f>>2]|0,f|0);a=n;n=0;if(a&1){s=9;break b}d=h+4|0}}while(0);e=e+4|0}while(0)}c[m>>2]=c[l>>2];b=b+1|0;d=c[z>>2]|0}d=d+1|0}o=p+40|0}if((s|0)==9){b=sa()|0;P()|0;break}else if((s|0)==10){b=sa()|0;P()|0;break}else if((s|0)==11){b=sa()|0;P()|0;break}else if((s|0)==12){b=sa()|0;P()|0;break}else if((s|0)==13){b=sa()|0;P()|0;break}else if((s|0)==14){b=sa()|0;P()|0;break}else if((s|0)==88){Pdb(J);VYa(M);Vob(L);iib(K);yb=I;return}}}while(0);Pdb(J)}VYa(M);Vob(L);M=b;iib(K);Ea(M|0)}function Ue(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,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,Q=0,R=0,T=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ea=0;ea=yb;yb=yb+416|0;G=ea+408|0;I=ea+392|0;B=ea+376|0;x=ea+360|0;f=ea+356|0;z=ea+344|0;l=ea+340|0;F=ea+304|0;aa=ea+288|0;m=ea+272|0;j=ea+264|0;H=ea+252|0;p=ea+248|0;$=ea+232|0;t=ea+216|0;q=ea+212|0;M=ea+200|0;u=ea+196|0;N=ea+160|0;Z=ea+156|0;O=ea+80|0;J=ea+56|0;Q=ea+24|0;R=ea;T=ea+136|0;W=ea+116|0;w=ea+112|0;i=c[b>>2]|0;if(HYa(i,e)|0){g=b+8|0;DW(I,1,i,c[g>>2]|0,c[37043]|0);n=0;ga(4,B|0,c[e+32>>2]|0,c[b>>2]|0,c[g>>2]|0,c[37043]|0);aa=n;n=0;if(aa&1){f=sa()|0;P()|0}else{Mob(x);aa=c[g>>2]|0;h=c[I+8>>2]|0;Ftb(f,WCb(h)|0);n=0;c[G>>2]=c[f>>2];f=U(71,aa|0,G|0)|0;aa=n;n=0;if(!(aa&1)?(c[x+8>>2]=f,y=e+24|0,c[x+4>>2]=c[(c[y>>2]|0)+4>>2],Mob(z),k=c[g>>2]|0,A=c[B+8>>2]|0,Ftb(l,WCb(A)|0),n=0,c[G>>2]=c[l>>2],k=U(71,k|0,G|0)|0,aa=n,n=0,!(aa&1)):0){c[z+8>>2]=k;g=e+28|0;c[z+4>>2]=c[(c[g>>2]|0)+4>>2];f=F;i=e;j=f+36|0;do{c[f>>2]=c[i>>2];f=f+4|0;i=i+4|0}while((f|0)<(j|0));c[F+24>>2]=x;c[F+28>>2]=z;n=0;f=V(46,b|0,c[y>>2]|0,h|0)|0;aa=n;n=0;if(((((!(aa&1)?(n=0,C=S(225,f|0)|0,aa=n,n=0,!(aa&1)):0)?(n=0,D=V(46,b|0,c[g>>2]|0,A|0)|0,aa=n,n=0,!(aa&1)):0)?(n=0,da(76,C|0,D|0),aa=n,n=0,!(aa&1)):0)?(n=0,E=V(47,b|0,F|0,c[b+4>>2]|0)|0,b=n,n=0,!(b&1)):0)?(n=0,da(76,C|0,E|0),b=n,n=0,!(b&1)):0){dha(B);dha(I);b=C;yb=ea;return b|0}}f=sa()|0;P()|0;dha(B)}dha(I);ea=f;Ea(ea|0)}f=WCb(c[e+16>>2]|0)|0;if(f|0?(X=e+8|0,f>>>0<(d[X>>0]|0)>>>0):0){h=b+8|0;DW(aa,1,i,c[h>>2]|0,c[37043]|0);Lob(m);f=c[h>>2]|0;g=WCb(c[aa+8>>2]|0)|0;Ftb(j,g);n=0;c[G>>2]=c[j>>2];f=U(71,f|0,G|0)|0;I=n;n=0;if(((!(I&1)?(c[m+8>>2]=f,c[m+12>>2]=c[e+24>>2],n=0,K=V(44,b|0,m|0,c[37043]|0)|0,I=n,n=0,!(I&1)):0)?(Mob(H),o=c[h>>2]|0,Ftb(p,g),n=0,c[G>>2]=c[p>>2],o=U(71,o|0,G|0)|0,I=n,n=0,!(I&1)):0)?(c[H+8>>2]=o,r=e+28|0,n=0,ga(4,$|0,c[(c[r>>2]|0)+4>>2]|0,c[b>>2]|0,c[h>>2]|0,c[37043]|0),I=n,n=0,!(I&1)):0){Lob(t);f=c[h>>2]|0;g=WCb(c[$+8>>2]|0)|0;Ftb(q,g);n=0;c[G>>2]=c[q>>2];f=U(71,f|0,G|0)|0;I=n;n=0;do if((!(I&1)?(c[t+8>>2]=f,c[t+12>>2]=c[r>>2],n=0,L=V(44,b|0,t|0,c[37043]|0)|0,I=n,n=0,!(I&1)):0)?(Mob(M),s=c[h>>2]|0,Ftb(u,g),n=0,c[G>>2]=c[u>>2],s=U(71,s|0,G|0)|0,I=n,n=0,!(I&1)):0){c[M+8>>2]=s;f=N;i=e;j=f+36|0;do{c[f>>2]=c[i>>2];f=f+4|0;i=i+4|0}while((f|0)<(j|0));c[N+24>>2]=H;a[N+8>>0]=1;Pwb(Z,0);g=e+32|0;if((c[g>>2]|0)!=1){n=0;f=U(59,150620,52308)|0;ea=n;n=0;if(ea&1){_=27;break}n=0;f=U(63,f|0,c[g>>2]|0)|0;ea=n;n=0;if(ea&1){_=27;break}n=0;ca(497,f|0);ea=n;n=0;if(ea&1){_=27;break}n=0;ba(6);n=0;_=27;break}Wkb(O);Bqb(J,255);i=O+8|0;c[i>>2]=c[J>>2];c[i+4>>2]=c[J+4>>2];c[i+8>>2]=c[J+8>>2];c[i+12>>2]=c[J+12>>2];c[i+16>>2]=c[J+16>>2];c[O+4>>2]=1;i=Q+8|0;j=Q+4|0;k=T+8|0;l=T+12|0;m=T+16|0;o=T+4|0;p=W+8|0;q=W+12|0;r=W+16|0;s=W+4|0;t=N+28|0;u=N+12|0;h=0;while(1){if(h>>>0>=(d[X>>0]|0)>>>0)break;Wkb(Q);Bqb(R,h<<3);c[i>>2]=c[R>>2];c[i+4>>2]=c[R+4>>2];c[i+8>>2]=c[R+8>>2];c[i+12>>2]=c[R+12>>2];c[i+16>>2]=c[R+16>>2];c[j>>2]=1;bpb(T);c[k>>2]=11;c[l>>2]=M;c[m>>2]=Q;c[o>>2]=1;bpb(W);c[p>>2]=7;g=(h|0)==0;c[q>>2]=g?M:T;c[r>>2]=O;c[s>>2]=1;c[t>>2]=W;n=0;f=V(44,b|0,N|0,c[37043]|0)|0;e=n;n=0;if(e&1){_=26;break}if(!g){n=0;f=U(73,c[Z>>2]|0,f|0)|0;e=n;n=0;if(e&1){_=26;break}}c[Z>>2]=f;Lub(u);h=h+1|0}if((_|0)==26){f=sa()|0;P()|0;break}n=0;f=U(73,K|0,L|0)|0;b=n;n=0;if(!(b&1)?(n=0,Y=U(73,f|0,c[Z>>2]|0)|0,b=n,n=0,!(b&1)):0){dha($);dha(aa);b=Y;yb=ea;return b|0}else _=27}else _=27;while(0);if((_|0)==27){f=sa()|0;P()|0}dha($)}else{f=sa()|0;P()|0}dha(aa);ea=f;Ea(ea|0)}f=uga(b,c[e+24>>2]|0,c[37044]|0)|0;g=WCb(c[e+12>>2]|0)|0;if(g){aa=c[37232]|0;f=mG(mv(f,aa,ysb(+(g>>>0))|0)|0,0)|0}g=uga(b,c[e+28>>2]|0,c[37044]|0)|0;Pwb(w,0);h=e+32|0;a:do switch(c[h>>2]|0){case 1:{switch(a[e+8>>0]|0){case 1:{v=Tea(dWa(c[37251]|0)|0,A_a(f,0)|0)|0;c[w>>2]=v;break a}case 2:{v=Tea(dWa(c[37252]|0)|0,A_a(f,1)|0)|0;c[w>>2]=v;break a}case 4:{v=Tea(dWa(c[37253]|0)|0,A_a(f,2)|0)|0;c[w>>2]=v;break a}default:Ta()}break}case 3:{v=Tea(dWa(c[37254]|0)|0,A_a(f,2)|0)|0;c[w>>2]=v;break}case 4:{v=Tea(dWa(c[37258]|0)|0,A_a(f,3)|0)|0;c[w>>2]=v;break}default:{BM(Zm(IWa(150620,52308)|0,c[h>>2]|0)|0);Ta()}}while(0);b=mv(v,c[37277]|0,g)|0;yb=ea;return b|0}function Ve(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,o=0,p=0,q=0,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,Q=0,R=0,T=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,ea=0;ea=yb;yb=yb+160|0;e=ea+144|0;g=ea+140|0;ca=ea+128|0;p=ea+124|0;q=ea+120|0;r=ea+116|0;s=ea+112|0;t=ea+108|0;u=ea+104|0;i=ea+100|0;j=ea+96|0;k=ea+92|0;l=ea+88|0;m=ea+84|0;w=ea+80|0;v=ea+76|0;B=ea+72|0;G=ea+68|0;H=ea+64|0;J=ea+60|0;K=ea+56|0;M=ea+52|0;L=ea+48|0;N=ea+44|0;Q=ea+40|0;O=ea+36|0;R=ea+32|0;V=ea+28|0;T=ea+24|0;W=ea+20|0;Y=ea+16|0;X=ea+12|0;_=ea+8|0;aa=ea+4|0;$=ea;o=a+40|0;b=c[o>>2]|0;if(c[b+104>>2]|0)dM(c[a+24>>2]|0,(c[b+96>>2]|0)+16|0);b=a+52|0;h=a+44|0;d=0;while(1){c[e>>2]=d;f=c[o>>2]|0;if(d>>>0>=(uob(f)|0)>>>0)break;Z=c[b>>2]|0;d=O8(h,e)|0;c[d>>2]=Z;d=(c[e>>2]|0)+1|0}d=c[f+32>>2]|0;Z=a+12|0;b=c[f+28>>2]|0;while(1){if((b|0)==(d|0))break;c[g>>2]=c[b>>2];f=h7(Z,g)|0;c[f>>2]=(c[f>>2]|0)+1;b=b+4|0}yib(ca);d=c[o>>2]|0;b=uob(d)|0;a:while(1){c[p>>2]=b;if(b>>>0>=(Icb(d)|0)>>>0){b=39;break}e=uob(d)|0;n=0;b=U(84,d|0,b|0)|0;g=n;n=0;if(g&1){b=76;break}c[q>>2]=b;n=0;b=U(189,ca|0,q|0)|0;g=n;n=0;if(g&1){b=76;break}c[b>>2]=(c[b>>2]|0)+1;do if((c[q>>2]|0)==1){c[r>>2]=1;n=0;b=U(190,ca|0,r|0)|0;g=n;n=0;if(g&1){b=76;break a}b=c[b>>2]|0;n=0;d=U(191,h|0,p|0)|0;g=n;n=0;if(g&1){b=76;break a}c[d>>2]=e+b+-1}else{c[s>>2]=1;n=0;b=U(190,Z|0,s|0)|0;g=n;n=0;if(g&1){b=76;break a}e=e+(c[b>>2]|0)|0;if((c[q>>2]|0)==2){c[t>>2]=2;n=0;b=U(190,ca|0,t|0)|0;g=n;n=0;if(g&1){b=76;break a}b=c[b>>2]|0;n=0;d=U(191,h|0,p|0)|0;g=n;n=0;if(g&1){b=76;break a}c[d>>2]=e+b+-1;break}c[u>>2]=2;n=0;b=U(190,Z|0,u|0)|0;g=n;n=0;if(g&1){b=76;break a}e=e+(c[b>>2]|0)|0;if((c[q>>2]|0)==3){c[i>>2]=3;n=0;b=U(190,ca|0,i|0)|0;g=n;n=0;if(g&1){b=76;break a}b=c[b>>2]|0;n=0;d=U(191,h|0,p|0)|0;g=n;n=0;if(g&1){b=76;break a}c[d>>2]=e+b+-1;break}c[j>>2]=3;n=0;b=U(190,Z|0,j|0)|0;g=n;n=0;if(g&1){b=76;break a}e=e+(c[b>>2]|0)|0;if((c[q>>2]|0)==4){c[k>>2]=4;n=0;b=U(190,ca|0,k|0)|0;g=n;n=0;if(g&1){b=76;break a}b=c[b>>2]|0;n=0;d=U(191,h|0,p|0)|0;g=n;n=0;if(g&1){b=76;break a}c[d>>2]=e+b+-1;break}c[l>>2]=4;n=0;b=U(190,Z|0,l|0)|0;g=n;n=0;if(g&1){b=76;break a}e=e+(c[b>>2]|0)|0;if((c[q>>2]|0)!=5){b=37;break a}c[m>>2]=5;n=0;b=U(190,ca|0,m|0)|0;g=n;n=0;if(g&1){b=76;break a}b=c[b>>2]|0;n=0;d=U(191,h|0,p|0)|0;g=n;n=0;if(g&1){b=76;break a}c[d>>2]=e+b+-1}while(0);b=(c[p>>2]|0)+1|0;d=c[o>>2]|0}do if((b|0)==37){n=0;fa(75,141129,112765,308,113577);n=0}else if((b|0)==39){e=a+28|0;d=c[e>>2]|0;c[v>>2]=1;n=0;b=U(190,Z|0,v|0)|0;v=n;n=0;if((((((!(v&1)?(x=c[b>>2]|0,c[B>>2]=2,n=0,y=U(190,Z|0,B|0)|0,B=n,n=0,!(B&1)):0)?(z=c[y>>2]|0,c[G>>2]=3,n=0,A=U(190,Z|0,G|0)|0,G=n,n=0,!(G&1)):0)?(C=c[A>>2]|0,c[H>>2]=4,n=0,D=U(190,Z|0,H|0)|0,H=n,n=0,!(H&1)):0)?(E=c[D>>2]|0,c[J>>2]=5,n=0,F=U(190,Z|0,J|0)|0,J=n,n=0,!(J&1)):0)?(Pwb(w,((x|0)!=0&1)+((z|0)!=0&1)+((C|0)!=0&1)+((E|0)!=0&1)+((c[F>>2]|0)!=0&1)|0),n=0,U(192,d|0,c[w>>2]|0)|0,J=n,n=0,!(J&1)):0)?(c[K>>2]=1,n=0,I=U(190,Z|0,K|0)|0,K=n,n=0,!(K&1)):0){if(c[I>>2]|0){d=c[e>>2]|0;c[L>>2]=1;n=0;b=U(190,Z|0,L|0)|0;L=n;n=0;if(L&1)break;Pwb(M,c[b>>2]|0);n=0;b=U(192,d|0,c[M>>2]|0)|0;M=n;n=0;if(M&1)break;n=0;d=S(299,1)|0;M=n;n=0;if(M&1)break;n=0;da(957,b|0,d|0);M=n;n=0;if(M&1)break}c[N>>2]=2;n=0;b=U(190,Z|0,N|0)|0;N=n;n=0;if(!(N&1)){if(c[b>>2]|0){d=c[e>>2]|0;c[O>>2]=2;n=0;b=U(190,Z|0,O|0)|0;O=n;n=0;if(O&1)break;Pwb(Q,c[b>>2]|0);n=0;b=U(192,d|0,c[Q>>2]|0)|0;Q=n;n=0;if(Q&1)break;n=0;d=S(299,2)|0;Q=n;n=0;if(Q&1)break;n=0;da(957,b|0,d|0);Q=n;n=0;if(Q&1)break}c[R>>2]=3;n=0;b=U(190,Z|0,R|0)|0;R=n;n=0;if(!(R&1)){if(c[b>>2]|0){d=c[e>>2]|0;c[T>>2]=3;n=0;b=U(190,Z|0,T|0)|0;T=n;n=0;if(T&1)break;Pwb(V,c[b>>2]|0);n=0;b=U(192,d|0,c[V>>2]|0)|0;V=n;n=0;if(V&1)break;n=0;d=S(299,3)|0;V=n;n=0;if(V&1)break;n=0;da(957,b|0,d|0);V=n;n=0;if(V&1)break}c[W>>2]=4;n=0;b=U(190,Z|0,W|0)|0;W=n;n=0;if(!(W&1)){if(c[b>>2]|0){d=c[e>>2]|0;c[X>>2]=4;n=0;b=U(190,Z|0,X|0)|0;X=n;n=0;if(X&1)break;Pwb(Y,c[b>>2]|0);n=0;b=U(192,d|0,c[Y>>2]|0)|0;Y=n;n=0;if(Y&1)break;n=0;d=S(299,4)|0;Y=n;n=0;if(Y&1)break;n=0;da(957,b|0,d|0);Y=n;n=0;if(Y&1)break}c[_>>2]=5;n=0;b=U(190,Z|0,_|0)|0;_=n;n=0;if(!(_&1)){if(!(c[b>>2]|0)){k1a(ca);yb=ea;return}d=c[e>>2]|0;c[$>>2]=5;n=0;b=U(190,Z|0,$|0)|0;$=n;n=0;if(!($&1)?(Pwb(aa,c[b>>2]|0),n=0,ba=U(192,d|0,c[aa>>2]|0)|0,aa=n,n=0,!(aa&1)):0){n=0;b=S(299,5)|0;aa=n;n=0;if(aa&1)break;n=0;da(957,ba|0,b|0);ba=n;n=0;if(ba&1)break;k1a(ca);yb=ea;return}}}}}}}else if((b|0)==76){ea=sa()|0;P()|0;k1a(ca);Ea(ea|0)}while(0);ea=sa()|0;P()|0;k1a(ca);Ea(ea|0)}function We(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;v=yb;yb=yb+96|0;t=v+92|0;y=v+88|0;i=v+84|0;j=v+80|0;p=v+76|0;q=v+72|0;s=v+60|0;r=v+48|0;l=v+44|0;m=v+32|0;o=v+20|0;k=v+16|0;u=v+12|0;w=v;TTa(y);n=0;e=U(81,d|0,1)|0;z=n;n=0;a:do if((!(z&1)?(n=0,g=S(331,e|0)|0,z=n,n=0,!(z&1)):0)?(Ftb(i,g),f=c[y>>2]|0,c[f>>2]=c[i>>2],n=0,h=U(81,d|0,2)|0,z=n,n=0,!(z&1)):0){do if(UBb(a[h>>0]|0)|0){n=0;g=U(81,d|0,2)|0;z=n;n=0;if(z&1){x=83;break a}n=0;e=U(81,g|0,1)|0;z=n;n=0;if(z&1){x=83;break a}n=0;e=S(331,e|0)|0;z=n;n=0;if(z&1){x=83;break a}Ftb(j,e);h=f+4|0;c[h>>2]=c[j>>2];n=0;e=U(81,g|0,0)|0;z=n;n=0;if(z&1){x=83;break a}n=0;e=S(331,e|0)|0;z=n;n=0;if(z&1){x=83;break a}if(dub(e,c[37383]|0)|0){c[f+8>>2]=0;x=73;break}n=0;e=U(81,g|0,0)|0;z=n;n=0;if(z&1){x=83;break a}n=0;e=S(331,e|0)|0;z=n;n=0;if(z&1){x=83;break a}if(dub(e,c[37386]|0)|0){c[f+8>>2]=2;x=73;break}n=0;e=U(81,g|0,0)|0;z=n;n=0;if(z&1){x=83;break a}n=0;e=S(331,e|0)|0;z=n;n=0;if(z&1){x=83;break a}if(dub(e,c[37391]|0)|0){c[f+8>>2]=1;x=73;break}n=0;e=U(81,g|0,0)|0;z=n;n=0;if(z&1){x=83;break a}n=0;e=S(331,e|0)|0;z=n;n=0;if(z&1){x=83;break a}if(!(dub(e,c[37105]|0)|0)){h=oa(20)|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;z=Zzb(119473)|0;n=0;ea(95,r|0,119473,z|0);z=n;n=0;if(!(z&1)){n=0;da(330,h|0,r|0);z=n;n=0;if(z&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}e=sa()|0;P()|0;Chb(r);if(!g)break}else{e=sa()|0;P()|0}va(h|0);break}c[f+8>>2]=3;g=c[b>>2]|0;e=c[h>>2]|0;c[p>>2]=e;c[t>>2]=c[p>>2];if(!(EEa(g,t)|0)){x=73;break}c[q>>2]=e;n=0;c[t>>2]=c[q>>2];e=U(173,g|0,t|0)|0;z=n;n=0;if(z&1){x=83;break a}if(!(a[e+20>>0]&1)){x=73;break}h=oa(20)|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;z=Zzb(119284)|0;n=0;ea(95,s|0,119284,z|0);z=n;n=0;if(!(z&1)){n=0;fa(134,h|0,s|0,c[d+28>>2]|0,c[d+32>>2]|0);z=n;n=0;if(z&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}e=sa()|0;P()|0;Chb(s);if(!g)break}else{e=sa()|0;P()|0}va(h|0)}else{n=0;e=U(81,d|0,2)|0;z=n;n=0;if(z&1){x=83;break a}if(!(Gcb(e)|0)){n=0;e=U(81,d|0,2)|0;z=n;n=0;if(z&1){x=83;break a}n=0;e=S(331,e|0)|0;z=n;n=0;if(z&1){x=83;break a}if(!(rCb((WCb(a[e>>0]|0)|0)<<24>>24)|0)){n=0;e=U(81,d|0,3)|0;z=n;n=0;if(z&1){x=83;break a}n=0;e=S(331,e|0)|0;z=n;n=0;if(z&1){x=83;break a}Ftb(l,e);c[f+4>>2]=c[l>>2];n=0;e=U(81,d|0,2)|0;z=n;n=0;if(z&1){x=83;break a}n=0;e=S(331,e|0)|0;z=n;n=0;if(z&1){x=83;break a}if(dub(e,c[37386]|0)|0){if(a[(c[b>>2]|0)+92>>0]&1){c[f+8>>2]=2;x=73;break}h=oa(20)|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;z=Zzb(119488)|0;n=0;ea(95,m|0,119488,z|0);z=n;n=0;if(!(z&1)){n=0;da(330,h|0,m|0);z=n;n=0;if(z&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}e=sa()|0;P()|0;Chb(m);if(!g)break}else{e=sa()|0;P()|0}va(h|0);break}n=0;e=U(81,d|0,2)|0;z=n;n=0;if(z&1){x=83;break a}n=0;e=S(331,e|0)|0;z=n;n=0;if(z&1){x=83;break a}if(dub(e,c[37391]|0)|0){c[f+8>>2]=1;x=73;break}n=0;e=U(81,d|0,2)|0;z=n;n=0;if(z&1){x=83;break a}n=0;e=S(331,e|0)|0;z=n;n=0;if(z&1){x=83;break a}if(dub(e,c[37105]|0)|0){c[f+8>>2]=3;x=73;break}h=oa(20)|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;z=Zzb(119518)|0;n=0;ea(95,o|0,119518,z|0);z=n;n=0;if(!(z&1)){n=0;da(330,h|0,o|0);z=n;n=0;if(z&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}e=sa()|0;P()|0;Chb(o);if(!g)break}else{e=sa()|0;P()|0}va(h|0);break}}n=0;e=U(81,d|0,2)|0;z=n;n=0;if(z&1){x=83;break a}n=0;e=S(331,e|0)|0;z=n;n=0;if(z&1){x=83;break a}Ftb(k,e);c[f+4>>2]=c[k>>2];c[f+8>>2]=0;x=73}while(0);do if((x|0)==73){e=c[b>>2]|0;c[u>>2]=c[f>>2];c[t>>2]=c[u>>2];if(!(FEa(e,t)|0)){c[y>>2]=0;n=0;da(72,e|0,f|0);z=n;n=0;if(z&1){x=83;break a}c[y>>2]=0;yb=v;return}h=oa(20)|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;z=Zzb(119228)|0;n=0;ea(95,w|0,119228,z|0);z=n;n=0;if(!(z&1)){n=0;fa(134,h|0,w|0,c[d+28>>2]|0,c[d+32>>2]|0);z=n;n=0;if(z&1)g=1;else{n=0;ea(122,h|0,31856,511);n=0;g=0}e=sa()|0;P()|0;Chb(w);if(!g)break}else{e=sa()|0;P()|0}va(h|0)}while(0);c[y>>2]=0}else x=83;while(0);if((x|0)==83){e=sa()|0;P()|0;f=c[y>>2]|0;c[y>>2]=0;if(!f){z=e;Ea(z|0)}}RCb(f);z=e;Ea(z|0)}function Xe(b,e,f,g,h,i){b=b|0;e=+e;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.0,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=yb;yb=yb+560|0;l=F+32|0;u=F+536|0;E=F;D=E;m=F+540|0;c[u>>2]=0;C=m+12|0;leb(e)|0;j=P()|0;if((j|0)<0){e=-e;leb(e)|0;B=1;A=135390;j=P()|0}else{B=(h&2049|0)!=0&1;A=(h&2048|0)==0?((h&1|0)==0?135391:135396):135393}do if(0==0&(j&2146435072|0)==2146435072){E=(i&32|0)!=0;j=B+3|0;hca(b,32,f,j,h&-65537);Nlb(b,A,B);Nlb(b,e!=e|0.0!=0.0?(E?135443:135417):E?135409:135413,3);hca(b,32,f,j,h^8192)}else{q=+nCb(e,u)*2.0;j=q!=0.0;if(j)c[u>>2]=(c[u>>2]|0)+-1;t=i|32;if((t|0)==97){o=i&32;r=(o|0)==0?A:A+9|0;p=B|2;j=12-g|0;do if(!(g>>>0>11|(j|0)==0)){e=8.0;do{j=j+-1|0;e=e*16.0}while((j|0)!=0);if((a[r>>0]|0)==45){e=-(e+(-q-e));break}else{e=q+e-e;break}}else e=q;while(0);k=c[u>>2]|0;j=(k|0)<0?0-k|0:k;j=tV(j,((j|0)<0)<<31>>31,C)|0;if((j|0)==(C|0)){j=m+11|0;a[j>>0]=48}a[j+-1>>0]=(k>>31&2)+43;n=j+-2|0;a[n>>0]=i+15;k=(g|0)<1;l=(h&8|0)==0;m=E;do{B=~~e;j=m+1|0;a[m>>0]=o|d[24640+B>>0];e=(e-+(B|0))*16.0;if((j-D|0)==1?!(l&(k&e==0.0)):0){a[j>>0]=46;m=m+2|0}else m=j}while(e!=0.0);if((g|0)!=0?(-2-D+m|0)<(g|0):0){k=C;l=n;j=g+2+k-l|0}else{k=C;l=n;j=k-D-l+m|0}C=j+p|0;hca(b,32,f,C,h);Nlb(b,r,p);hca(b,48,f,C,h^65536);D=m-D|0;Nlb(b,E,D);E=k-l|0;hca(b,48,j-(D+E)|0,0,0);Nlb(b,n,E);hca(b,32,f,C,h^8192);j=C;break}k=(g|0)<0?6:g;if(j){j=(c[u>>2]|0)+-28|0;c[u>>2]=j;e=q*268435456.0}else{e=q;j=c[u>>2]|0}z=(j|0)<0?l:l+288|0;l=z;do{x=~~e>>>0;c[l>>2]=x;l=l+4|0;e=(e-+(x>>>0))*1.0e9}while(e!=0.0);x=z;if((j|0)>0){o=z;while(1){n=(j|0)<29?j:29;j=l+-4|0;if(j>>>0>=o>>>0){m=0;do{s=X2a(c[j>>2]|0,0,n|0)|0;s=Yeb(s|0,P()|0,m|0,0)|0;v=P()|0;m=znb(s|0,v|0,1e9,0)|0;w=BSa(m|0,P()|0,-1e9,-1)|0;w=Yeb(s|0,v|0,w|0,P()|0)|0;P()|0;c[j>>2]=w;j=j+-4|0}while(j>>>0>=o>>>0);if(m){w=o+-4|0;c[w>>2]=m;m=w}else m=o}else m=o;a:do if(l>>>0>m>>>0){j=l;while(1){l=j+-4|0;if(c[l>>2]|0){l=j;break a}if(l>>>0>m>>>0)j=l;else break}}while(0);j=(c[u>>2]|0)-n|0;c[u>>2]=j;if((j|0)>0)o=m;else break}}else m=z;if((j|0)<0){g=((k+25|0)/9|0)+1|0;s=(t|0)==102;do{r=0-j|0;r=(r|0)<9?r:9;if(m>>>0>>0){n=(1<>>r;p=0;j=m;do{w=c[j>>2]|0;c[j>>2]=(w>>>r)+p;p=J(w&n,o)|0;j=j+4|0}while(j>>>0>>0);m=(c[m>>2]|0)==0?m+4|0:m;if(p){c[l>>2]=p;l=l+4|0}}else m=(c[m>>2]|0)==0?m+4|0:m;j=s?z:m;l=(l-j>>2|0)>(g|0)?j+(g<<2)|0:l;j=(c[u>>2]|0)+r|0;c[u>>2]=j}while((j|0)<0);s=m}else s=m;if(s>>>0>>0){j=(x-s>>2)*9|0;n=c[s>>2]|0;if(n>>>0>=10){m=10;do{m=m*10|0;j=j+1|0}while(n>>>0>=m>>>0)}}else j=0;u=(t|0)==103;v=(k|0)!=0;m=k-((t|0)==102?0:j)+((v&u)<<31>>31)|0;if((m|0)<(((l-x>>2)*9|0)+-9|0)){w=m+9216|0;m=(w|0)/9|0;g=z+4+(m+-1024<<2)|0;m=w+(J(m,-9)|0)|0;if((m|0)<8){n=10;while(1){n=n*10|0;if((m|0)<7)m=m+1|0;else break}}else n=10;o=c[g>>2]|0;m=(o>>>0)/(n>>>0)|0;r=J(m,n)|0;o=o-r|0;p=(g+4|0)==(l|0);if(!(p&(o|0)==0)){e=(m&1|0)==0?9007199254740992.0:9007199254740994.0;w=n>>>1;q=o>>>0>>0?.5:p&(o|0)==(w|0)?1.0:1.5;if(B){w=(a[A>>0]|0)==45;q=w?-q:q;e=w?-e:e}c[g>>2]=r;if(e+q!=e){w=r+n|0;c[g>>2]=w;if(w>>>0>999999999){n=g;j=s;while(1){m=n+-4|0;c[n>>2]=0;if(m>>>0>>0){j=j+-4|0;c[j>>2]=0}w=(c[m>>2]|0)+1|0;c[m>>2]=w;if(w>>>0>999999999)n=m;else{n=j;break}}}else{m=g;n=s}j=(x-n>>2)*9|0;p=c[n>>2]|0;if(p>>>0>=10){o=10;do{o=o*10|0;j=j+1|0}while(p>>>0>=o>>>0)}}else{m=g;n=s}}else{m=g;n=s}w=m+4|0;l=l>>>0>w>>>0?w:l}else n=s;g=0-j|0;b:do if(l>>>0>n>>>0)while(1){m=l+-4|0;if(c[m>>2]|0){w=l;t=1;break b}if(m>>>0>n>>>0)l=m;else{w=m;t=0;break}}else{w=l;t=0}while(0);do if(u){k=k+((v^1)&1)|0;if((k|0)>(j|0)&(j|0)>-5){o=i+-1|0;k=k+-1-j|0}else{o=i+-2|0;k=k+-1|0}if(!(h&8)){if(t?(y=c[w+-4>>2]|0,(y|0)!=0):0)if(!((y>>>0)%10|0)){m=0;l=10;do{l=l*10|0;m=m+1|0}while(!((y>>>0)%(l>>>0)|0|0))}else m=0;else m=9;l=((w-x>>2)*9|0)+-9|0;if((o|32|0)==102){i=l-m|0;i=(i|0)>0?i:0;k=(k|0)<(i|0)?k:i;break}else{i=l+j-m|0;i=(i|0)>0?i:0;k=(k|0)<(i|0)?k:i;break}}}else o=i;while(0);s=(k|0)!=0;p=s?1:h>>>3&1;r=(o|32|0)==102;if(r){v=0;j=(j|0)>0?j:0}else{l=(j|0)<0?g:j;l=tV(l,((l|0)<0)<<31>>31,C)|0;m=C;if((m-l|0)<2)do{l=l+-1|0;a[l>>0]=48}while((m-l|0)<2);a[l+-1>>0]=(j>>31&2)+43;j=l+-2|0;a[j>>0]=o;v=j;j=m-j|0}j=B+1+k+p+j|0;hca(b,32,f,j,h);Nlb(b,A,B);hca(b,48,f,j,h^65536);if(r){p=n>>>0>z>>>0?z:n;r=E+9|0;n=r;o=E+8|0;m=p;do{l=tV(c[m>>2]|0,0,r)|0;if((m|0)==(p|0)){if((l|0)==(r|0)){a[o>>0]=48;l=o}}else if(l>>>0>E>>>0){LL(E|0,48,l-D|0)|0;do l=l+-1|0;while(l>>>0>E>>>0)}Nlb(b,l,n-l|0);m=m+4|0}while(m>>>0<=z>>>0);if(!((h&8|0)==0&(s^1)))Nlb(b,140218,1);if(m>>>0>>0&(k|0)>0)while(1){l=tV(c[m>>2]|0,0,r)|0;if(l>>>0>E>>>0){LL(E|0,48,l-D|0)|0;do l=l+-1|0;while(l>>>0>E>>>0)}Nlb(b,l,(k|0)<9?k:9);m=m+4|0;l=k+-9|0;if(!(m>>>0>>0&(k|0)>9)){k=l;break}else k=l}hca(b,48,k+9|0,9,0)}else{u=t?w:n+4|0;if(n>>>0>>0&(k|0)>-1){g=E+9|0;s=(h&8|0)==0;t=g;p=0-D|0;r=E+8|0;o=n;do{l=tV(c[o>>2]|0,0,g)|0;if((l|0)==(g|0)){a[r>>0]=48;l=r}do if((o|0)==(n|0)){m=l+1|0;Nlb(b,l,1);if(s&(k|0)<1){l=m;break}Nlb(b,140218,1);l=m}else{if(l>>>0<=E>>>0)break;LL(E|0,48,l+p|0)|0;do l=l+-1|0;while(l>>>0>E>>>0)}while(0);D=t-l|0;Nlb(b,l,(k|0)>(D|0)?D:k);k=k-D|0;o=o+4|0}while(o>>>0>>0&(k|0)>-1)}hca(b,48,k+18|0,18,0);Nlb(b,v,C-v|0)}hca(b,32,f,j,h^8192)}while(0);yb=F;return ((j|0)<(f|0)?f:j)|0}function Ye(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;m=yb;yb=yb+64|0;h=m+56|0;l=m+40|0;j=m+28|0;i=m+24|0;k=m+8|0;g=m;d=c[a>>2]|0;if(HYa(d,b)|0){f=b+12|0;e=a+8|0;DW(l,c[(c[f>>2]|0)+4>>2]|0,d,c[e>>2]|0,c[37043]|0);Mob(j);d=c[e>>2]|0;e=c[l+8>>2]|0;Ftb(i,WCb(e)|0);n=0;c[h>>2]=c[i>>2];d=U(71,d|0,h|0)|0;i=n;n=0;if(i&1){m=sa()|0;P()|0;dha(l);Ea(m|0)}c[j+8>>2]=d;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=j;n=0;d=V(46,a|0,c[f>>2]|0,e|0)|0;b=n;n=0;if(b&1){m=sa()|0;P()|0;dha(l);Ea(m|0)}n=0;e=S(225,d|0)|0;b=n;n=0;if(b&1){m=sa()|0;P()|0;dha(l);Ea(m|0)}n=0;d=V(47,a|0,k|0,c[a+4>>2]|0)|0;a=n;n=0;if(a&1){m=sa()|0;P()|0;dha(l);Ea(m|0)}n=0;da(76,e|0,d|0);a=n;n=0;if(a&1){m=sa()|0;P()|0;dha(l);Ea(m|0)}dha(l);l=e;yb=m;return l|0}d=b+4|0;switch(c[d>>2]|0){case 1:{switch(c[b+8>>2]|0){case 0:{l=c1(c[37160]|0,uga(a,c[b+12>>2]|0,c[37044]|0)|0)|0;yb=m;return l|0}case 4:case 2:{BM(Wm(IWa(150620,51963)|0,b)|0);ma(141129,51625,1581,132100);break}case 20:{l=mv(mG(uga(a,c[b+12>>2]|0,c[37044]|0)|0,0)|0,c[37243]|0,mG(_pb(0)|0,0)|0)|0;yb=m;return l|0}case 33:{l=_pb(0)|0;k=Tea(dWa(c[37254]|0)|0,l)|0;a=uga(a,c[b+12>>2]|0,c[37044]|0)|0;l=Uea(mv(k,c[37277]|0,a)|0,mG(Tea(dWa(c[37253]|0)|0,l)|0,0)|0)|0;yb=m;return l|0}case 29:case 25:{l=c[37238]|0;l=D5(l,D5(l,uga(a,c[b+12>>2]|0,c[37044]|0)|0)|0)|0;yb=m;return l|0}case 31:case 27:{l=c[37238]|0;l=mv(D5(l,D5(l,uga(a,c[b+12>>2]|0,c[37044]|0)|0)|0)|0,c[37250]|0,ysb(0.0)|0)|0;yb=m;return l|0}default:{BM(Wm(IWa(150620,52e3)|0,b)|0);Ta()}}break}case 4:case 3:{Pwb(g,0);do switch(c[b+8>>2]|0){case 7:case 6:{e=D5(c[37233]|0,uga(a,c[b+12>>2]|0,c[37044]|0)|0)|0;f=e;c[g>>2]=f;break}case 9:case 8:{e=c1(c[37158]|0,uga(a,c[b+12>>2]|0,c[37044]|0)|0)|0;f=e;c[g>>2]=f;break}case 11:case 10:{e=c1(c[37159]|0,uga(a,c[b+12>>2]|0,c[37044]|0)|0)|0;f=e;c[g>>2]=f;break}case 13:case 12:{e=c1(c[37161]|0,uga(a,c[b+12>>2]|0,c[37044]|0)|0)|0;f=e;c[g>>2]=f;break}case 19:case 18:{e=c1(c[37163]|0,uga(a,c[b+12>>2]|0,c[37044]|0)|0)|0;f=e;c[g>>2]=f;break}case 43:{l=mG(uga(a,c[b+12>>2]|0,c[37044]|0)|0,1)|0;yb=m;return l|0}case 44:{l=mG(uga(a,c[b+12>>2]|0,c[37044]|0)|0,2)|0;yb=m;return l|0}case 45:{l=_pb(0)|0;k=Tea(dWa(c[37253]|0)|0,l)|0;a=uga(a,c[b+12>>2]|0,c[37044]|0)|0;l=Uea(mv(k,c[37277]|0,a)|0,Tea(dWa(c[37254]|0)|0,l)|0)|0;yb=m;return l|0}case 35:{l=mG(mG(uga(a,c[b+12>>2]|0,c[37044]|0)|0,0)|0,2)|0;yb=m;return l|0}case 36:{l=mG(mG(uga(a,c[b+12>>2]|0,c[37044]|0)|0,0)|0,1)|0;yb=m;return l|0}case 37:{l=mG(mv(uga(a,c[b+12>>2]|0,c[37044]|0)|0,c[37250]|0,_pb(0)|0)|0,2)|0;yb=m;return l|0}case 38:{l=mG(mv(uga(a,c[b+12>>2]|0,c[37044]|0)|0,c[37250]|0,_pb(0)|0)|0,1)|0;yb=m;return l|0}case 15:case 14:case 17:case 16:{BM(IWa(150620,52031)|0);ma(141129,51625,1729,132100);break}default:{BM(Wm(IWa(150620,52085)|0,b)|0);Ta()}}while(0);if((c[d>>2]|0)!=3){l=f;yb=m;return l|0}l=mG(e,2)|0;yb=m;return l|0}default:{BM(Wm(IWa(150620,52118)|0,b)|0);Ta()}}return 0}function Ze(d,e,f,g,i){d=d|0;e=e|0;f=f|0;g=g|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=0,C=0,D=0,E=0;E=yb;yb=yb+64|0;A=E+56|0;B=E+40|0;y=E;C=E+48|0;D=E+60|0;c[A>>2]=e;v=(d|0)!=0;w=y+40|0;x=w;y=y+39|0;z=C+4|0;j=0;e=0;l=0;a:while(1){do{do if((e|0)>-1)if((j|0)>(2147483647-e|0)){c[37419]=75;e=-1;break}else{e=j+e|0;break}while(0);q=c[A>>2]|0;j=a[q>>0]|0;if(!(j<<24>>24)){u=93;break a}k=q;b:while(1){switch(j<<24>>24){case 37:{u=10;break b}case 0:{j=k;break b}default:{}}t=k+1|0;c[A>>2]=t;j=a[t>>0]|0;k=t}c:do if((u|0)==10){u=0;j=k;do{if((a[k+1>>0]|0)!=37)break c;j=j+1|0;k=k+2|0;c[A>>2]=k}while((a[k>>0]|0)==37)}while(0);j=j-q|0;if(v)Nlb(d,q,j)}while((j|0)!=0);k=c[A>>2]|0;j=a[k+1>>0]|0;if(!(rCb(j)|0)){r=-1;o=l;j=1}else{t=(a[k+2>>0]|0)==36;r=t?j+-48|0:-1;o=t?1:l;j=t?3:1}m=k+j|0;c[A>>2]=m;j=a[m>>0]|0;k=(j<<24>>24)+-32|0;if(k>>>0>31|(1<>2]=m;j=a[m>>0]|0;k=(j<<24>>24)+-32|0;if(k>>>0>31|(1<>24==42){k=n+1|0;j=a[k>>0]|0;if((rCb(j)|0)!=0?(a[n+2>>0]|0)==36:0){c[i+(j+-48<<2)>>2]=10;j=c[g+((a[k>>0]|0)+-48<<3)>>2]|0;m=1;k=n+3|0}else{if(o|0){e=-1;break}if(v){m=(c[f>>2]|0)+(4-1)&~(4-1);j=c[m>>2]|0;c[f>>2]=m+4;m=0}else{j=0;m=0}}c[A>>2]=k;t=(j|0)<0;s=t?0-j|0:j;l=t?l|8192:l;t=m}else{j=psa(A)|0;if((j|0)<0){e=-1;break}s=j;t=o;k=c[A>>2]|0}do if((a[k>>0]|0)==46){j=k+1|0;if((a[j>>0]|0)!=42){c[A>>2]=j;o=psa(A)|0;j=c[A>>2]|0;break}m=k+2|0;j=a[m>>0]|0;if(rCb(j)|0?(a[k+3>>0]|0)==36:0){c[i+(j+-48<<2)>>2]=10;o=c[g+((a[m>>0]|0)+-48<<3)>>2]|0;j=k+4|0;c[A>>2]=j;break}if(t|0){e=-1;break a}if(v){p=(c[f>>2]|0)+(4-1)&~(4-1);j=c[p>>2]|0;c[f>>2]=p+4}else j=0;c[A>>2]=m;o=j;j=m}else{o=-1;j=k}while(0);p=0;while(1){if(((a[j>>0]|0)+-65|0)>>>0>57){e=-1;break a}k=j+1|0;c[A>>2]=k;m=a[(a[j>>0]|0)+-65+(24176+(p*58|0))>>0]|0;n=m&255;if((n+-1|0)>>>0<8){p=n;j=k}else break}if(!(m<<24>>24)){e=-1;break}k=(r|0)>-1;do if(m<<24>>24==19)if(k){e=-1;break a}else u=52;else{if(k){c[i+(r<<2)>>2]=n;n=g+(r<<3)|0;r=c[n+4>>2]|0;u=B;c[u>>2]=c[n>>2];c[u+4>>2]=r;u=52;break}if(!v){e=0;break a}$p(B,n,f);u=53}while(0);if((u|0)==52){u=0;if(v)u=53;else j=0}d:do if((u|0)==53){u=0;j=a[j>>0]|0;j=(p|0)!=0&(j&15|0)==3?j&-33:j;k=l&-65537;r=(l&8192|0)==0?l:k;e:do switch(j|0){case 110:switch((p&255)<<24>>24){case 0:{c[c[B>>2]>>2]=e;j=0;break d}case 1:{c[c[B>>2]>>2]=e;j=0;break d}case 2:{j=c[B>>2]|0;c[j>>2]=e;c[j+4>>2]=((e|0)<0)<<31>>31;j=0;break d}case 3:{b[c[B>>2]>>1]=e;j=0;break d}case 4:{a[c[B>>2]>>0]=e;j=0;break d}case 6:{c[c[B>>2]>>2]=e;j=0;break d}case 7:{j=c[B>>2]|0;c[j>>2]=e;c[j+4>>2]=((e|0)<0)<<31>>31;j=0;break d}default:{j=0;break d}}case 112:{j=120;k=o>>>0>8?o:8;l=r|8;u=65;break}case 88:case 120:{k=o;l=r;u=65;break}case 111:{k=B;j=c[k>>2]|0;k=c[k+4>>2]|0;n=SIa(j,k,w)|0;l=x-n|0;p=0;m=135373;o=(r&8|0)==0|(o|0)>(l|0)?o:l+1|0;l=r;u=71;break}case 105:case 100:{k=B;j=c[k>>2]|0;k=c[k+4>>2]|0;if((k|0)<0){j=Ndb(0,0,j|0,k|0)|0;k=P()|0;l=B;c[l>>2]=j;c[l+4>>2]=k;l=1;m=135373;u=70;break e}else{l=(r&2049|0)!=0&1;m=(r&2048|0)==0?((r&1|0)==0?135373:135375):135374;u=70;break e}}case 117:{k=B;l=0;m=135373;j=c[k>>2]|0;k=c[k+4>>2]|0;u=70;break}case 99:{a[y>>0]=c[B>>2];q=y;p=0;m=135373;n=1;j=x;break}case 109:{j=EAb(c[37419]|0)|0;u=75;break}case 115:{j=c[B>>2]|0;j=(j|0)==0?135383:j;u=75;break}case 67:{c[C>>2]=c[B>>2];c[z>>2]=0;c[B>>2]=C;o=-1;l=C;u=80;break}case 83:if(!o){hca(d,32,s,0,r);j=0;u=90;break e}else{l=c[B>>2]|0;u=80;break e}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{j=Xe(d,+h[B>>3],s,o,r,j)|0;break d}default:{p=0;m=135373;n=o;k=r;j=x}}while(0);f:do if((u|0)==65){r=B;q=c[r>>2]|0;r=c[r+4>>2]|0;n=aAa(q,r,w,j&32)|0;m=(l&8|0)==0|(q|0)==0&(r|0)==0;p=m?0:2;m=m?135373:135373+(j>>>4)|0;o=k;j=q;k=r;u=71}else if((u|0)==70){n=tV(j,k,w)|0;p=l;l=r;u=71}else if((u|0)==75){u=0;r=OA(j,0,o)|0;l=(r|0)==0;q=j;p=0;m=135373;n=l?o:r-j|0;j=l?j+o|0:r}else if((u|0)==80){u=0;n=l;j=0;while(1){k=c[n>>2]|0;if(!k)break;k=Tmb(D,k)|0;m=(k|0)<0;if(m|k>>>0>(o-j|0)>>>0){u=84;break}j=k+j|0;if(o>>>0>j>>>0)n=n+4|0;else break}if((u|0)==84){u=0;if(m){e=-1;break a}}hca(d,32,s,j,r);if(!j){j=0;u=90}else{m=0;while(1){k=c[l>>2]|0;if(!k){u=90;break f}k=Tmb(D,k)|0;m=k+m|0;if((m|0)>(j|0)){u=90;break f}Nlb(d,D,k);if(m>>>0>=j>>>0){u=90;break}else l=l+4|0}}}while(0);if((u|0)==71){u=0;k=(j|0)!=0|(k|0)!=0;j=(o|0)!=0|k;k=x-n+((k^1)&1)|0;q=j?n:w;n=j?((o|0)>(k|0)?o:k):0;k=(o|0)>-1?l&-65537:l;j=x}else if((u|0)==90){u=0;hca(d,32,s,j,r^8192);j=(s|0)>(j|0)?s:j;break}o=j-q|0;n=(n|0)<(o|0)?o:n;r=n+p|0;j=(s|0)<(r|0)?r:s;hca(d,32,j,r,k);Nlb(d,m,p);hca(d,48,j,r,k^65536);hca(d,48,n,o,0);Nlb(d,q,o);hca(d,32,j,r,k^8192)}while(0);l=t}g:do if((u|0)==93)if(!d)if(!l)e=0;else{e=1;while(1){j=c[i+(e<<2)>>2]|0;if(!j)break;$p(g+(e<<3)|0,j,f);e=e+1|0;if(e>>>0>=10){e=1;break g}}k=0;while(1){j=e+1|0;if(k|0){e=-1;break g}if(j>>>0>=10){e=1;break g}e=j;k=c[i+(j<<2)>>2]|0}}while(0);yb=E;return e|0}function _e(a){a=a|0;var b=0,d=0,e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;C=yb;yb=yb+80|0;p=C+72|0;u=C+60|0;A=C+56|0;D=C+44|0;G=C+24|0;s=C+20|0;t=C+16|0;F=C+4|0;B=C;v=G+4|0;w=G+8|0;x=G+12|0;y=G+16|0;c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;c[G+12>>2]=0;g[y>>2]=1.0;q=c[a+44>>2]|0;r=a+120|0;z=G+8|0;b=0;o=c[a+40>>2]|0;a:while(1){if((o|0)==(q|0)){E=44;break}c[s>>2]=c[o>>2];if(lC(r,s)|0){k=c[o>>2]|0;c[t>>2]=k;c[p>>2]=k;m=pH(p,4)|0;i=c[v>>2]|0;l=(i|0)==0;b:do if(!l){e=i+-1|0;j=(i&e|0)==0;if(!j)if(m>>>0>>0)b=m;else b=(m>>>0)%(i>>>0)|0;else b=m&e;a=c[(c[G>>2]|0)+(b<<2)>>2]|0;if(!a)E=21;else while(1){a=c[a>>2]|0;if(!a){E=21;break b}d=c[a+4>>2]|0;if((d|0)!=(m|0)){if(!j){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&e;if((d|0)!=(b|0)){E=21;break b}}if((c[a+8>>2]|0)==(k|0))break b}}else E=21;while(0);if((E|0)==21){E=0;n=0;fa(133,u|0,G|0,m|0,t|0);k=n;n=0;if(k&1){E=4;break}f=+(((c[x>>2]|0)+1|0)>>>0);h=+g[y>>2];if(h*+(i>>>0)>>0>2){a=(i&i+-1|0)==0;E=26}else{a=0;E=26}}else if(l){a=0;b=0;E=26}do if((E|0)==26){E=0;l=b|(a^1)&1;k=~~+I(+(f/h))>>>0;n=0;da(3772,G|0,(l>>>0>>0?k:l)|0);l=n;n=0;if(l&1){E=31;break a}b=c[v>>2]|0;a=b+-1|0;if(!(b&a)){i=b;b=m&a;break}if(m>>>0>>0){i=b;b=m}else{i=b;b=(m>>>0)%(b>>>0)|0}}while(0);a=c[(c[G>>2]|0)+(b<<2)>>2]|0;if(!a){a=c[u>>2]|0;c[a>>2]=c[z>>2];e=a;c[z>>2]=e;c[(c[G>>2]|0)+(b<<2)>>2]=z;if(c[a>>2]|0){a=c[(c[a>>2]|0)+4>>2]|0;d=i+-1|0;if(i&d){if(a>>>0>=i>>>0)a=(a>>>0)%(i>>>0)|0}else a=a&d;c[(c[G>>2]|0)+(a<<2)>>2]=e}}else{m=c[u>>2]|0;c[m>>2]=c[a>>2];c[a>>2]=m}c[x>>2]=(c[x>>2]|0)+1;c[u>>2]=0}m=c[o>>2]|0;n=0;da(3773,m+24|0,m|0);m=n;n=0;if(m&1){E=4;break}}o=o+4|0}if((E|0)==4){F=sa()|0;P()|0;Pdb(G);Ea(F|0)}else if((E|0)==31){b=sa()|0;P()|0;a=c[u>>2]|0;c[u>>2]=0;if(!a){F=b;Pdb(G);Ea(F|0)}RCb(a);F=b;Pdb(G);Ea(F|0)}else if((E|0)==44){q=F+4|0;b=0;c:while(1){if(!(c[x>>2]|0)){E=106;break}a=c[w>>2]|0;k=c[a+8>>2]|0;_6(G,a)|0;iob(F);a=k+12|0;n=0;d=V(93,k+36|0,a|0,F|0)|0;u=n;n=0;if(u&1){E=49;break}d:do if(d){if(((c[k+16>>2]|0)-(c[k+12>>2]|0)|0)>>>0>=((c[q>>2]|0)-(c[F>>2]|0)|0)>>>0){E=54;break c}n=0;da(564,a|0,F|0);u=n;n=0;if(u&1){E=49;break c}n=0;da(3773,k+24|0,F|0);u=n;n=0;if(u&1){E=49;break c}a=c[k+4>>2]|0;e=c[k>>2]|0;i=a-e|0;d=c[F>>2]|0;j=(c[q>>2]|0)-d|0;e:do if((i|0)==(j|0))while(1){if((e|0)==(a|0))break d;if((c[e>>2]|0)!=(c[d>>2]|0))break e;e=e+4|0;d=d+4|0}while(0);if(i>>>0>=j>>>0){E=63;break c}n=0;da(564,k|0,F|0);u=n;n=0;if(u&1){E=49;break c}p=c[k+52>>2]|0;a=c[k+48>>2]|0;while(1){o=a;if((p|0)==(o|0))break d;k=c[a>>2]|0;c[B>>2]=k;c[A>>2]=k;m=pH(A,4)|0;i=c[v>>2]|0;l=(i|0)==0;f:do if(!l){e=i+-1|0;j=(i&e|0)==0;if(!j)if(m>>>0>>0)b=m;else b=(m>>>0)%(i>>>0)|0;else b=m&e;a=c[(c[G>>2]|0)+(b<<2)>>2]|0;if(!a)E=83;else while(1){a=c[a>>2]|0;if(!a){E=83;break f}d=c[a+4>>2]|0;if((d|0)!=(m|0)){do if(j)d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(i>>>0)|0}while(0);if((d|0)!=(b|0)){E=83;break f}}if((c[a+8>>2]|0)==(k|0))break f}}else E=83;while(0);if((E|0)==83){E=0;n=0;fa(132,D|0,G|0,m|0,B|0);u=n;n=0;if(u&1){E=48;break c}f=+(((c[x>>2]|0)+1|0)>>>0);h=+g[y>>2];if(h*+(i>>>0)>>0>2){a=(i&i+-1|0)==0;E=88}else{a=0;E=88}}else if(l){a=0;b=0;E=88}do if((E|0)==88){E=0;u=b|(a^1)&1;t=~~+I(+(f/h))>>>0;n=0;da(3772,G|0,(u>>>0>>0?t:u)|0);u=n;n=0;if(u&1){E=93;break c}b=c[v>>2]|0;a=b+-1|0;if(!(b&a)){i=b;b=m&a;break}if(m>>>0>>0){i=b;b=m;break}i=b;b=(m>>>0)%(b>>>0)|0}while(0);a=c[(c[G>>2]|0)+(b<<2)>>2]|0;do if(!a){a=c[D>>2]|0;c[a>>2]=c[z>>2];e=a;c[z>>2]=e;c[(c[G>>2]|0)+(b<<2)>>2]=z;if(!(c[a>>2]|0))break;a=c[(c[a>>2]|0)+4>>2]|0;d=i+-1|0;do if(!(i&d))a=a&d;else{if(a>>>0>>0)break;a=(a>>>0)%(i>>>0)|0}while(0);c[(c[G>>2]|0)+(a<<2)>>2]=e}else{u=c[D>>2]|0;c[u>>2]=c[a>>2];c[a>>2]=u}while(0);c[x>>2]=(c[x>>2]|0)+1;c[D>>2]=0}a=o+4|0}}while(0);Htb(F)}if((E|0)==48){b=sa()|0;P()|0;E=51}else if((E|0)==49){b=sa()|0;P()|0;E=51}else if((E|0)==54){n=0;fa(75,108199,108239,188,108277);n=0;E=50}else if((E|0)==63){n=0;fa(75,108290,108239,194,108277);n=0;E=50}else if((E|0)==93){b=sa()|0;P()|0;a=c[D>>2]|0;c[D>>2]=0;if(a)RCb(a)}else if((E|0)==106){Pdb(G);yb=C;return}if((E|0)==50){b=sa()|0;P()|0;E=51}Htb(F);F=b;Pdb(G);Ea(F|0)}}function $e(a){a=a|0;var b=0,d=0,e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;C=yb;yb=yb+80|0;p=C+72|0;u=C+60|0;A=C+56|0;D=C+44|0;G=C+24|0;s=C+20|0;t=C+16|0;F=C+4|0;B=C;v=G+4|0;w=G+8|0;x=G+12|0;y=G+16|0;c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;c[G+12>>2]=0;g[y>>2]=1.0;q=c[a+44>>2]|0;r=a+120|0;z=G+8|0;b=0;o=c[a+40>>2]|0;a:while(1){if((o|0)==(q|0)){E=44;break}c[s>>2]=c[o>>2];if(lC(r,s)|0){k=c[o>>2]|0;c[t>>2]=k;c[p>>2]=k;m=pH(p,4)|0;i=c[v>>2]|0;l=(i|0)==0;b:do if(!l){e=i+-1|0;j=(i&e|0)==0;if(!j)if(m>>>0>>0)b=m;else b=(m>>>0)%(i>>>0)|0;else b=m&e;a=c[(c[G>>2]|0)+(b<<2)>>2]|0;if(!a)E=21;else while(1){a=c[a>>2]|0;if(!a){E=21;break b}d=c[a+4>>2]|0;if((d|0)!=(m|0)){if(!j){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&e;if((d|0)!=(b|0)){E=21;break b}}if((c[a+8>>2]|0)==(k|0))break b}}else E=21;while(0);if((E|0)==21){E=0;n=0;fa(102,u|0,G|0,m|0,t|0);k=n;n=0;if(k&1){E=4;break}f=+(((c[x>>2]|0)+1|0)>>>0);h=+g[y>>2];if(h*+(i>>>0)>>0>2){a=(i&i+-1|0)==0;E=26}else{a=0;E=26}}else if(l){a=0;b=0;E=26}do if((E|0)==26){E=0;l=b|(a^1)&1;k=~~+I(+(f/h))>>>0;n=0;da(562,G|0,(l>>>0>>0?k:l)|0);l=n;n=0;if(l&1){E=31;break a}b=c[v>>2]|0;a=b+-1|0;if(!(b&a)){i=b;b=m&a;break}if(m>>>0>>0){i=b;b=m}else{i=b;b=(m>>>0)%(b>>>0)|0}}while(0);a=c[(c[G>>2]|0)+(b<<2)>>2]|0;if(!a){a=c[u>>2]|0;c[a>>2]=c[z>>2];e=a;c[z>>2]=e;c[(c[G>>2]|0)+(b<<2)>>2]=z;if(c[a>>2]|0){a=c[(c[a>>2]|0)+4>>2]|0;d=i+-1|0;if(i&d){if(a>>>0>=i>>>0)a=(a>>>0)%(i>>>0)|0}else a=a&d;c[(c[G>>2]|0)+(a<<2)>>2]=e}}else{m=c[u>>2]|0;c[m>>2]=c[a>>2];c[a>>2]=m}c[x>>2]=(c[x>>2]|0)+1;c[u>>2]=0}m=c[o>>2]|0;n=0;da(563,m+24|0,m|0);m=n;n=0;if(m&1){E=4;break}}o=o+4|0}if((E|0)==4){F=sa()|0;P()|0;Pdb(G);Ea(F|0)}else if((E|0)==31){b=sa()|0;P()|0;a=c[u>>2]|0;c[u>>2]=0;if(!a){F=b;Pdb(G);Ea(F|0)}RCb(a);F=b;Pdb(G);Ea(F|0)}else if((E|0)==44){q=F+4|0;b=0;c:while(1){if(!(c[x>>2]|0)){E=106;break}a=c[w>>2]|0;k=c[a+8>>2]|0;_6(G,a)|0;iob(F);a=k+12|0;n=0;d=V(62,k+36|0,a|0,F|0)|0;u=n;n=0;if(u&1){E=49;break}d:do if(d){if(((c[k+16>>2]|0)-(c[k+12>>2]|0)|0)>>>0>=((c[q>>2]|0)-(c[F>>2]|0)|0)>>>0){E=54;break c}n=0;da(564,a|0,F|0);u=n;n=0;if(u&1){E=49;break c}n=0;da(563,k+24|0,F|0);u=n;n=0;if(u&1){E=49;break c}a=c[k+4>>2]|0;e=c[k>>2]|0;i=a-e|0;d=c[F>>2]|0;j=(c[q>>2]|0)-d|0;e:do if((i|0)==(j|0))while(1){if((e|0)==(a|0))break d;if((c[e>>2]|0)!=(c[d>>2]|0))break e;e=e+4|0;d=d+4|0}while(0);if(i>>>0>=j>>>0){E=63;break c}n=0;da(564,k|0,F|0);u=n;n=0;if(u&1){E=49;break c}p=c[k+52>>2]|0;a=c[k+48>>2]|0;while(1){o=a;if((p|0)==(o|0))break d;k=c[a>>2]|0;c[B>>2]=k;c[A>>2]=k;m=pH(A,4)|0;i=c[v>>2]|0;l=(i|0)==0;f:do if(!l){e=i+-1|0;j=(i&e|0)==0;if(!j)if(m>>>0>>0)b=m;else b=(m>>>0)%(i>>>0)|0;else b=m&e;a=c[(c[G>>2]|0)+(b<<2)>>2]|0;if(!a)E=83;else while(1){a=c[a>>2]|0;if(!a){E=83;break f}d=c[a+4>>2]|0;if((d|0)!=(m|0)){do if(j)d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(i>>>0)|0}while(0);if((d|0)!=(b|0)){E=83;break f}}if((c[a+8>>2]|0)==(k|0))break f}}else E=83;while(0);if((E|0)==83){E=0;n=0;fa(101,D|0,G|0,m|0,B|0);u=n;n=0;if(u&1){E=48;break c}f=+(((c[x>>2]|0)+1|0)>>>0);h=+g[y>>2];if(h*+(i>>>0)>>0>2){a=(i&i+-1|0)==0;E=88}else{a=0;E=88}}else if(l){a=0;b=0;E=88}do if((E|0)==88){E=0;u=b|(a^1)&1;t=~~+I(+(f/h))>>>0;n=0;da(562,G|0,(u>>>0>>0?t:u)|0);u=n;n=0;if(u&1){E=93;break c}b=c[v>>2]|0;a=b+-1|0;if(!(b&a)){i=b;b=m&a;break}if(m>>>0>>0){i=b;b=m;break}i=b;b=(m>>>0)%(b>>>0)|0}while(0);a=c[(c[G>>2]|0)+(b<<2)>>2]|0;do if(!a){a=c[D>>2]|0;c[a>>2]=c[z>>2];e=a;c[z>>2]=e;c[(c[G>>2]|0)+(b<<2)>>2]=z;if(!(c[a>>2]|0))break;a=c[(c[a>>2]|0)+4>>2]|0;d=i+-1|0;do if(!(i&d))a=a&d;else{if(a>>>0>>0)break;a=(a>>>0)%(i>>>0)|0}while(0);c[(c[G>>2]|0)+(a<<2)>>2]=e}else{u=c[D>>2]|0;c[u>>2]=c[a>>2];c[a>>2]=u}while(0);c[x>>2]=(c[x>>2]|0)+1;c[D>>2]=0}a=o+4|0}}while(0);Htb(F)}if((E|0)==48){b=sa()|0;P()|0;E=51}else if((E|0)==49){b=sa()|0;P()|0;E=51}else if((E|0)==54){n=0;fa(75,108199,108239,188,108277);n=0;E=50}else if((E|0)==63){n=0;fa(75,108290,108239,194,108277);n=0;E=50}else if((E|0)==93){b=sa()|0;P()|0;a=c[D>>2]|0;c[D>>2]=0;if(a)RCb(a)}else if((E|0)==106){Pdb(G);yb=C;return}if((E|0)==50){b=sa()|0;P()|0;E=51}Htb(F);F=b;Pdb(G);Ea(F|0)}}function af(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,o=0,p=0,q=0;p=yb;yb=yb+96|0;q=p+72|0;o=p+48|0;m=p+36|0;j=p+24|0;k=p+12|0;l=p;a:do if(((b|0)!=(d|0)?(a[b>>0]|0)==65:0)?(i=b+1|0,(i|0)!=(d|0)):0){f=a[i>>0]|0;if(f<<24>>24==95){o=b+2|0;d=cc(o,d,e)|0;if((d|0)==(o|0))break;g=e+4|0;f=c[g>>2]|0;if((c[e>>2]|0)==(f|0))break;wca(q,f+-12|0,2);b=Zzb(139921)|0;o=a[q+11>>0]|0;if((b|0)==((o<<24>>24<0?c[q+4>>2]|0:o&255)|0)){n=0;b=V(129,q|0,139921,b|0)|0;o=n;n=0;if(o&1){o=ta(0)|0;P()|0;yub(o)}Chb(q);if(!b)o4((c[g>>2]|0)+-12|0)}else Chb(q);IGa((c[g>>2]|0)+-12|0,0,141362)|0;b=d;break}if((f+-49&255)<9){g=M5(i,d)|0;if((g|0)==(d|0))break;if((a[g>>0]|0)!=95)break;l=g+1|0;h=cc(l,d,e)|0;if((h|0)==(l|0))break;d=e+4|0;f=c[d>>2]|0;if((c[e>>2]|0)==(f|0))break;wca(q,f+-12|0,2);b=Zzb(139921)|0;l=a[q+11>>0]|0;if((b|0)==((l<<24>>24<0?c[q+4>>2]|0:l&255)|0)){n=0;b=V(129,q|0,139921,b|0)|0;l=n;n=0;if(l&1){l=ta(0)|0;P()|0;yub(l)}Chb(q);if(!b)o4((c[d>>2]|0)+-12|0)}else Chb(q);f=(c[d>>2]|0)+-12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;NR(m,i,g);n=0;V(128,m|0,0,139921)|0;l=n;n=0;if(l&1){b=sa()|0;P()|0}else{c[o>>2]=c[m>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,o|0,139976)|0;l=n;n=0;do if(!(l&1)){c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}l=a[q+11>>0]|0;k=l<<24>>24<0;n=0;W(42,f|0,0,(k?c[q>>2]|0:q)|0,(k?c[q+4>>2]|0:l&255)|0)|0;l=n;n=0;if(l&1){b=sa()|0;P()|0;Chb(q);break}else{Chb(q);Chb(o);Chb(m);b=h;break a}}else{b=sa()|0;P()|0}while(0);Chb(o)}Chb(m)}else{f=ac(i,d,e)|0;if((f|0)==(i|0)|(f|0)==(d|0))break;if((a[f>>0]|0)!=95)break;i=f+1|0;h=cc(i,d,e)|0;if((h|0)==(i|0))break;g=e+4|0;f=c[g>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break;I6(q,f+-24|0);f=c[g>>2]|0;b=0;while(1){if((b|0)==-1)break;e=b+-1|0;J2a(f+(e*24|0)|0);b=e}c[g>>2]=f+-24;I6(o,f+-48|0);b=c[g>>2]|0;d=b+-24|0;f=d+11|0;if((a[f>>0]|0)<0){Fsb(c[d>>2]|0,0);c[b+-20>>2]=0;b=d}else{Fsb(d,0);a[f>>0]=0;b=d}Yw(d);c[b>>2]=c[q>>2];c[b+4>>2]=c[q+4>>2];c[b+8>>2]=c[q+8>>2];b=0;while(1){if((b|0)==3)break;c[q+(b<<2)>>2]=0;b=b+1|0}f=q+12|0;n=0;ea(216,m|0,f|0,2);e=n;n=0;if(e&1){b=sa()|0;P()|0}else{b=Zzb(139921)|0;e=a[m+11>>0]|0;if((b|0)==((e<<24>>24<0?c[m+4>>2]|0:e&255)|0)){n=0;b=V(129,m|0,139921,b|0)|0;e=n;n=0;if(e&1){e=ta(0)|0;P()|0;yub(e)}Chb(m);if(!b)o4(f)}else Chb(m);n=0;da(4196,l|0,o|0);e=n;n=0;if(e&1){b=sa()|0;P()|0}else{n=0;V(128,l|0,0,139921)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0}else{c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,k|0,139976)|0;e=n;n=0;do if(e&1){b=sa()|0;P()|0}else{c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];b=0;while(1){if((b|0)==3)break;c[k+(b<<2)>>2]=0;b=b+1|0}e=a[f+11>>0]|0;i=e<<24>>24<0;n=0;V(124,j|0,(i?c[f>>2]|0:f)|0,(i?c[q+16>>2]|0:e&255)|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(j);break}c[m>>2]=c[j>>2];c[m+4>>2]=c[j+4>>2];c[m+8>>2]=c[j+8>>2];b=0;while(1){if((b|0)==3)break;c[j+(b<<2)>>2]=0;b=b+1|0}b=c[g>>2]|0;d=b+-12|0;f=d+11|0;if((a[f>>0]|0)<0){Fsb(c[d>>2]|0,0);c[b+-8>>2]=0;b=d}else{Fsb(d,0);a[f>>0]=0;b=d}Yw(d);c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}Chb(m);Chb(j);Chb(k);Chb(l);J2a(o);J2a(q);b=h;break a}while(0);Chb(k)}Chb(l)}}J2a(o);J2a(q)}Ea(b|0)}while(0);yb=p;return b|0}function bf(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,o=0,p=0,q=0,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,Q=0,R=0,T=0,X=0,Y=0,Z=0,_=0;_=yb;yb=yb+304|0;O=_+272|0;I=_+216|0;M=_+192|0;A=_+168|0;f=_+144|0;g=_+120|0;h=_+96|0;i=_+72|0;j=_+48|0;e=_+24|0;Y=_+256|0;Z=_+240|0;Q=_;egb(I);egb(M);egb(A);switch(c[d+8>>2]|0){case 28:case 26:{pUa(f,0.0);c[I>>2]=c[f>>2];c[I+4>>2]=c[f+4>>2];c[I+8>>2]=c[f+8>>2];c[I+12>>2]=c[f+12>>2];c[I+16>>2]=c[f+16>>2];pUa(g,1.0);c[M>>2]=c[g>>2];c[M+4>>2]=c[g+4>>2];c[M+8>>2]=c[g+8>>2];c[M+12>>2]=c[g+12>>2];c[M+16>>2]=c[g+16>>2];pUa(h,4294967296.0);c[A>>2]=c[h>>2];c[A+4>>2]=c[h+4>>2];c[A+8>>2]=c[h+8>>2];c[A+12>>2]=c[h+12>>2];c[A+16>>2]=c[h+16>>2];L=8;o=37;X=27;p=51;B=53;q=55;J=61;N=62;T=3;C=10;k=12;break}case 32:case 30:{kEa(i,0.0);c[I>>2]=c[i>>2];c[I+4>>2]=c[i+4>>2];c[I+8>>2]=c[i+8>>2];c[I+12>>2]=c[i+12>>2];c[I+16>>2]=c[i+16>>2];kEa(j,1.0);c[M>>2]=c[j>>2];c[M+4>>2]=c[j+4>>2];c[M+8>>2]=c[j+8>>2];c[M+12>>2]=c[j+12>>2];c[M+16>>2]=c[j+16>>2];kEa(e,4294967296.0);c[A>>2]=c[e>>2];c[A+4>>2]=c[e+4>>2];c[A+8>>2]=c[e+8>>2];c[A+12>>2]=c[e+12>>2];c[A+16>>2]=c[e+16>>2];L=9;o=38;X=31;p=64;B=66;q=68;J=74;N=75;T=4;C=11;k=13;break}default:Ta()}iG(Y,b,T);n=0;ea(145,Z|0,b|0,1);R=n;n=0;if(R&1){_=sa()|0;P()|0;lNa(Y);Ea(_|0)}R=b+44|0;h=c[R>>2]|0;n=0;e=S(280,Y|0)|0;H=n;n=0;do if(!(H&1)?(n=0,l=V(71,c[h>>2]|0,e|0,T|0)|0,H=n,n=0,!(H&1)):0){e=c[R>>2]|0;n=0;j=O;G=A;H=j+24|0;do{a[j>>0]=a[G>>0]|0;j=j+1|0;G=G+1|0}while((j|0)<(H|0));e=U(120,e|0,O|0)|0;H=n;n=0;if((!(H&1)?(n=0,m=W(8,c[h>>2]|0,B|0,l|0,e|0)|0,H=n,n=0,!(H&1)):0)?(n=0,r=V(56,c[h>>2]|0,k|0,m|0)|0,H=n,n=0,!(H&1)):0){f=c[R>>2]|0;n=0;j=O;G=A;H=j+24|0;do{a[j>>0]=a[G>>0]|0;j=j+1|0;G=G+1|0}while((j|0)<(H|0));g=U(120,f|0,O|0)|0;H=n;n=0;if(!(H&1)){e=c[R>>2]|0;n=0;j=O;G=M;H=j+24|0;do{a[j>>0]=a[G>>0]|0;j=j+1|0;G=G+1|0}while((j|0)<(H|0));e=U(120,e|0,O|0)|0;H=n;n=0;if(((((((((!(H&1)?(n=0,s=W(8,c[f>>2]|0,p|0,g|0,e|0)|0,H=n,n=0,!(H&1)):0)?(n=0,K=W(8,c[h>>2]|0,q|0,r|0,s|0)|0,H=n,n=0,!(H&1)):0)?(D=c[R>>2]|0,n=0,t=S(280,Y|0)|0,H=n,n=0,!(H&1)):0)?(n=0,u=V(71,c[D>>2]|0,t|0,T|0)|0,H=n,n=0,!(H&1)):0)?(v=c[R>>2]|0,n=0,w=S(280,Y|0)|0,H=n,n=0,!(H&1)):0)?(n=0,x=V(71,c[v>>2]|0,w|0,T|0)|0,H=n,n=0,!(H&1)):0)?(n=0,y=V(56,c[v>>2]|0,X|0,x|0)|0,H=n,n=0,!(H&1)):0)?(n=0,z=V(56,c[v>>2]|0,o|0,y|0)|0,H=n,n=0,!(H&1)):0)?(n=0,E=W(8,c[D>>2]|0,p|0,u|0,z|0)|0,H=n,n=0,!(H&1)):0){e=c[R>>2]|0;n=0;j=O;G=A;H=j+24|0;do{a[j>>0]=a[G>>0]|0;j=j+1|0;G=G+1|0}while((j|0)<(H|0));e=U(120,e|0,O|0)|0;H=n;n=0;if(!(H&1)?(n=0,F=W(8,c[D>>2]|0,B|0,E|0,e|0)|0,H=n,n=0,!(H&1)):0){n=0;h=V(56,c[D>>2]|0,C|0,F|0)|0;H=n;n=0;if(H&1)break;i=c[R>>2]|0;n=0;e=S(280,Y|0)|0;H=n;n=0;if(H&1)break;n=0;f=V(71,c[i>>2]|0,e|0,T|0)|0;H=n;n=0;if(H&1)break;e=c[R>>2]|0;n=0;j=O;G=I;H=j+24|0;do{a[j>>0]=a[G>>0]|0;j=j+1|0;G=G+1|0}while((j|0)<(H|0));e=U(120,e|0,O|0)|0;I=n;n=0;if(I&1)break;n=0;g=W(8,c[i>>2]|0,J|0,f|0,e|0)|0;J=n;n=0;if(J&1)break;n=0;f=V(56,c[c[R>>2]>>2]|0,X|0,K|0)|0;K=n;n=0;if(K&1)break;n=0;e=V(56,c[c[R>>2]>>2]|0,X|0,h|0)|0;K=n;n=0;if(K&1)break;n=0;g=W(7,c[i>>2]|0,g|0,f|0,e|0)|0;K=n;n=0;if(K&1)break;h=c[R>>2]|0;n=0;e=S(280,Y|0)|0;K=n;n=0;if(K&1)break;n=0;e=V(71,c[h>>2]|0,e|0,T|0)|0;K=n;n=0;if(K&1)break;n=0;f=V(56,c[h>>2]|0,L|0,e|0)|0;L=n;n=0;if(L&1)break;e=c[R>>2]|0;n=0;j=O;G=M;H=j+24|0;do{a[j>>0]=a[G>>0]|0;j=j+1|0;G=G+1|0}while((j|0)<(H|0));e=U(120,e|0,O|0)|0;M=n;n=0;if(M&1)break;n=0;f=W(8,c[h>>2]|0,N|0,f|0,e|0)|0;N=n;n=0;if(N&1)break;e=c[R>>2]|0;Bqb(Q,0);n=0;j=O;G=Q;H=j+24|0;do{a[j>>0]=a[G>>0]|0;j=j+1|0;G=G+1|0}while((j|0)<(H|0));e=U(120,e|0,O|0)|0;Q=n;n=0;if(Q&1)break;n=0;g=W(7,c[h>>2]|0,f|0,g|0,e|0)|0;Q=n;n=0;if(Q&1)break;i=c[R>>2]|0;n=0;e=S(280,Y|0)|0;Q=n;n=0;if(Q&1)break;n=0;h=V(70,c[i>>2]|0,e|0,c[d+12>>2]|0)|0;d=n;n=0;if(d&1)break;e=c[R>>2]|0;n=0;f=S(280,Z|0)|0;d=n;n=0;if(d&1)break;n=0;g=V(70,c[e>>2]|0,f|0,g|0)|0;d=n;n=0;if(d&1)break;f=c[R>>2]|0;n=0;e=S(280,Y|0)|0;d=n;n=0;if(d&1)break;n=0;e=V(71,c[f>>2]|0,e|0,T|0)|0;T=n;n=0;if(T&1)break;n=0;e=V(56,c[f>>2]|0,X|0,e|0)|0;X=n;n=0;if(X&1)break;n=0;e=W(28,i|0,h|0,g|0,e|0)|0;X=n;n=0;if(X&1)break;n=0;ea(147,b|0,e|0,Z|0);X=n;n=0;if(X&1)break;Pwb(c[b+16>>2]|0,e);lNa(Z);lNa(Y);yb=_;return}}}}}while(0);_=sa()|0;P()|0;lNa(Z);lNa(Y);Ea(_|0)}function cf(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0;F=yb;yb=yb+96|0;q=F+88|0;y=F+76|0;C=F+72|0;G=F+60|0;J=F+40|0;x=F+36|0;H=F+24|0;D=F+4|0;E=F;r=J+4|0;s=J+12|0;t=J+16|0;c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;c[J+12>>2]=0;g[t>>2]=1.0;z=a+24|0;u=a+28|0;v=c[u>>2]|0;w=J+8|0;b=0;p=c[z>>2]|0;a:while(1){if((p|0)==(v|0)){A=47;break}f=c[(c[p>>2]|0)+8>>2]|0;c[x>>2]=f;d=f;m=f;b:do if(f){if((jxa()|0)>1){n=0;e=U(59,150452,107461)|0;o=n;n=0;if(o&1){A=8;break a}n=0;d=U(182,e|0,d|0)|0;o=n;n=0;if(o&1){A=8;break a}n=0;U(62,d|0,10)|0;o=n;n=0;if(o&1){A=8;break a}}c[q>>2]=f;o=pH(q,4)|0;h=c[r>>2]|0;l=(h|0)==0;c:do if(!l){f=h+-1|0;k=(h&f|0)==0;if(!k)if(o>>>0>>0)b=o;else b=(o>>>0)%(h>>>0)|0;else b=o&f;d=c[(c[J>>2]|0)+(b<<2)>>2]|0;if(d)while(1){d=c[d>>2]|0;if(!d)break c;e=c[d+4>>2]|0;if((e|0)!=(o|0)){if(!k){if(e>>>0>=h>>>0)e=(e>>>0)%(h>>>0)|0}else e=e&f;if((e|0)!=(b|0))break c}if((c[d+8>>2]|0)==(m|0))break b}}while(0);n=0;fa(119,y|0,J|0,o|0,x|0);m=n;n=0;if(m&1){A=8;break a}i=+(((c[s>>2]|0)+1|0)>>>0);j=+g[t>>2];if(j*+(h>>>0)>>0>2){d=(h&h+-1|0)==0;A=30}else{d=0;A=30}}else if(l){d=0;b=0;A=30}do if((A|0)==30){A=0;m=b|(d^1)&1;l=~~+I(+(i/j))>>>0;n=0;da(2274,J|0,(m>>>0>>0?l:m)|0);m=n;n=0;if(m&1){A=35;break a}b=c[r>>2]|0;d=b+-1|0;if(!(b&d)){h=b;b=o&d;break}if(o>>>0>>0){h=b;b=o}else{h=b;b=(o>>>0)%(b>>>0)|0}}while(0);d=c[(c[J>>2]|0)+(b<<2)>>2]|0;if(!d){d=c[y>>2]|0;c[d>>2]=c[w>>2];f=d;c[w>>2]=f;c[(c[J>>2]|0)+(b<<2)>>2]=w;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=h+-1|0;if(h&e){if(d>>>0>=h>>>0)d=(d>>>0)%(h>>>0)|0}else d=d&e;c[(c[J>>2]|0)+(d<<2)>>2]=f}}else{o=c[y>>2]|0;c[o>>2]=c[d>>2];c[d>>2]=o}c[s>>2]=(c[s>>2]|0)+1;c[y>>2]=0}while(0);p=p+4|0}if((A|0)==8){H=sa()|0;P()|0;Pdb(J);Ea(H|0)}else if((A|0)==35){b=sa()|0;P()|0;d=c[y>>2]|0;c[y>>2]=0;if(!d){H=b;Pdb(J);Ea(H|0)}RCb(d);H=b;Pdb(J);Ea(H|0)}else if((A|0)==47){p=c[u>>2]|0;q=a+4|0;r=a+124|0;s=H+4|0;t=a+88|0;u=a+92|0;v=a+100|0;w=a+104|0;x=a+96|0;b=0;o=c[z>>2]|0;d:while(1){if((o|0)==(p|0)){A=105;break}d=c[o>>2]|0;if((d|0)!=(c[q>>2]|0)?(B=c[d+8>>2]|0,(B|0)!=0):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;Jeb(D);n=0;ga(12,H|0,D|0,B|0,c[a>>2]|0,c[r>>2]|0);z=n;n=0;if(z&1){A=62;break}jmb(D);e=c[s>>2]|0;d=c[H>>2]|0;while(1){f=d;if((e|0)==(f|0))break;z=c[d>>2]|0;c[E>>2]=z;h=z;if(!z){A=56;break}if(!(lC(J,E)|0)){A=56;break}d=f+4|0}e:do if((A|0)==56){A=0;if((jxa()|0)>1){n=0;U(59,150452,107474)|0;z=n;n=0;if(z&1){A=63;break d}n=0;ea(183,c[o>>2]|0,150452,0);z=n;n=0;if(z&1){A=63;break d}n=0;d=U(59,150452,107498)|0;z=n;n=0;if(z&1){A=63;break d}n=0;d=U(182,d|0,h|0)|0;z=n;n=0;if(z&1){A=63;break d}n=0;U(62,d|0,10)|0;z=n;n=0;if(z&1){A=63;break d}}c[C>>2]=c[o>>2];m=pH(C,4)|0;h=c[u>>2]|0;l=(h|0)==0;f:do if(!l){f=h+-1|0;k=(h&f|0)==0;if(!k)if(m>>>0>>0)b=m;else b=(m>>>0)%(h>>>0)|0;else b=m&f;d=c[(c[t>>2]|0)+(b<<2)>>2]|0;if(d)while(1){d=c[d>>2]|0;if(!d)break f;e=c[d+4>>2]|0;if((e|0)!=(m|0)){if(!k){if(e>>>0>=h>>>0)e=(e>>>0)%(h>>>0)|0}else e=e&f;if((e|0)!=(b|0))break f}if((c[d+8>>2]|0)==(c[o>>2]|0))break e}}while(0);n=0;fa(129,G|0,t|0,m|0,o|0);z=n;n=0;if(z&1){A=63;break d}i=+(((c[v>>2]|0)+1|0)>>>0);j=+g[w>>2];if(j*+(h>>>0)>>0>2){d=(h&h+-1|0)==0;A=86}else{d=0;A=86}}else if(l){d=0;b=0;A=86}do if((A|0)==86){A=0;z=b|(d^1)&1;y=~~+I(+(i/j))>>>0;n=0;da(994,t|0,(z>>>0>>0?y:z)|0);z=n;n=0;if(z&1){A=91;break d}b=c[u>>2]|0;d=b+-1|0;if(!(b&d)){h=b;b=m&d;break}if(m>>>0>>0){h=b;b=m}else{h=b;b=(m>>>0)%(b>>>0)|0}}while(0);d=c[(c[t>>2]|0)+(b<<2)>>2]|0;if(!d){d=c[G>>2]|0;c[d>>2]=c[x>>2];f=d;c[x>>2]=f;c[(c[t>>2]|0)+(b<<2)>>2]=x;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=h+-1|0;if(h&e){if(d>>>0>=h>>>0)d=(d>>>0)%(h>>>0)|0}else d=d&e;c[(c[t>>2]|0)+(d<<2)>>2]=f}}else{z=c[G>>2]|0;c[z>>2]=c[d>>2];c[d>>2]=z}c[v>>2]=(c[v>>2]|0)+1;c[G>>2]=0}while(0);Vob(H)}o=o+4|0}if((A|0)==62){H=sa()|0;P()|0;jmb(D);Pdb(J);Ea(H|0)}else if((A|0)==63){b=sa()|0;P()|0}else if((A|0)==91){b=sa()|0;P()|0;d=c[G>>2]|0;c[G>>2]=0;if(d)RCb(d)}else if((A|0)==105){Pdb(J);yb=F;return}Vob(H);H=b;Pdb(J);Ea(H|0)}}function df(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=yb;yb=yb+192|0;G=N+160|0;M=N+144|0;k=N+120|0;r=N+96|0;t=N+72|0;A=N+48|0;E=N+24|0;H=N;if((d+-35|0)>>>0>=3)ma(81701,81381,1182,81754);iG(M,b,1);K=b+44|0;l=c[K>>2]|0;n=0;m=S(280,M|0)|0;z=n;n=0;a:do if((!(z&1)?(o=c[K>>2]|0,n=0,j=S(280,h|0)|0,z=n,n=0,!(z&1)):0)?(n=0,p=V(71,c[o>>2]|0,j|0,1)|0,z=n,n=0,!(z&1)):0){j=c[K>>2]|0;Bqb(k,31);n=0;z=G;x=k;y=z+24|0;do{a[z>>0]=a[x>>0]|0;z=z+1|0;x=x+1|0}while((z|0)<(y|0));j=U(120,j|0,G|0)|0;z=n;n=0;if((!(z&1)?(n=0,q=W(8,c[o>>2]|0,7,p|0,j|0)|0,z=n,n=0,!(z&1)):0)?(n=0,L=V(70,c[l>>2]|0,m|0,q|0)|0,z=n,n=0,!(z&1)):0){l=c[K>>2]|0;Bqb(r,32);n=0;z=G;x=r;y=z+24|0;do{a[z>>0]=a[x>>0]|0;z=z+1|0;x=x+1|0}while((z|0)<(y|0));k=U(120,l|0,G|0)|0;z=n;n=0;if((!(z&1)?(u=c[K>>2]|0,n=0,s=S(280,h|0)|0,z=n,n=0,!(z&1)):0)?(n=0,v=V(71,c[u>>2]|0,s|0,1)|0,z=n,n=0,!(z&1)):0){j=c[K>>2]|0;Bqb(t,63);n=0;z=G;x=t;y=z+24|0;do{a[z>>0]=a[x>>0]|0;z=z+1|0;x=x+1|0}while((z|0)<(y|0));j=U(120,j|0,G|0)|0;z=n;n=0;if((!(z&1)?(n=0,w=W(8,c[u>>2]|0,7,v|0,j|0)|0,z=n,n=0,!(z&1)):0)?(n=0,J=W(8,c[l>>2]|0,20,k|0,w|0)|0,z=n,n=0,!(z&1)):0){switch(d|0){case 35:{n=0;j=S(280,i|0)|0;z=n;n=0;if(z&1)break a;n=0;k=S(280,f|0)|0;z=n;n=0;if(z&1)break a;n=0;l=S(280,M|0)|0;z=n;n=0;if(z&1)break a;n=0;j=W(23,b|0,j|0,k|0,l|0)|0;z=n;n=0;if(z&1)break a;else p=j;break}case 37:{n=0;j=S(280,i|0)|0;z=n;n=0;if(z&1)break a;n=0;k=S(280,g|0)|0;z=n;n=0;if(z&1)break a;n=0;l=S(280,M|0)|0;z=n;n=0;if(z&1)break a;n=0;j=W(24,b|0,j|0,k|0,l|0)|0;z=n;n=0;if(z&1)break a;else p=j;break}case 36:{n=0;j=S(280,i|0)|0;z=n;n=0;if(z&1)break a;n=0;k=S(280,g|0)|0;z=n;n=0;if(z&1)break a;n=0;l=S(280,M|0)|0;z=n;n=0;if(z&1)break a;n=0;j=W(25,b|0,j|0,k|0,l|0)|0;z=n;n=0;if(z&1)break a;else p=j;break}default:{n=0;ba(6);n=0;break a}}k=c[K>>2]|0;Bqb(A,1);n=0;z=G;x=A;y=z+24|0;do{a[z>>0]=a[x>>0]|0;z=z+1|0;x=x+1|0}while((z|0)<(y|0));j=U(120,k|0,G|0)|0;A=n;n=0;if(((!(A&1)?(C=c[K>>2]|0,n=0,D=S(280,M|0)|0,A=n,n=0,!(A&1)):0)?(n=0,B=V(71,c[C>>2]|0,D|0,1)|0,D=n,n=0,!(D&1)):0)?(n=0,F=W(8,c[k>>2]|0,10,j|0,B|0)|0,D=n,n=0,!(D&1)):0){j=c[K>>2]|0;Bqb(E,1);n=0;z=G;x=E;y=z+24|0;do{a[z>>0]=a[x>>0]|0;z=z+1|0;x=x+1|0}while((z|0)<(y|0));j=U(120,j|0,G|0)|0;E=n;n=0;if(!(E&1)?(n=0,I=W(8,c[k>>2]|0,1,F|0,j|0)|0,F=n,n=0,!(F&1)):0){m=c[K>>2]|0;Bqb(H,32);n=0;z=G;x=H;y=z+24|0;do{a[z>>0]=a[x>>0]|0;z=z+1|0;x=x+1|0}while((z|0)<(y|0));l=U(120,m|0,G|0)|0;H=n;n=0;if(H&1)break;j=c[K>>2]|0;n=0;k=S(280,M|0)|0;H=n;n=0;if(H&1)break;n=0;j=V(71,c[j>>2]|0,k|0,1)|0;H=n;n=0;if(H&1)break;n=0;o=W(8,c[m>>2]|0,1,l|0,j|0)|0;H=n;n=0;if(H&1)break;switch(d|0){case 35:{n=0;m=S(280,i|0)|0;d=n;n=0;if(d&1)break a;n=0;l=S(280,f|0)|0;f=n;n=0;if(f&1)break a;n=0;j=S(280,g|0)|0;g=n;n=0;if(g&1)break a;n=0;k=S(280,M|0)|0;g=n;n=0;if(g&1)break a;n=0;j=_(12,b|0,m|0,l|0,j|0,k|0,I|0,o|0)|0;I=n;n=0;if(I&1)break a;break}case 37:{n=0;m=S(280,i|0)|0;d=n;n=0;if(d&1)break a;n=0;l=S(280,f|0)|0;f=n;n=0;if(f&1)break a;n=0;j=S(280,g|0)|0;g=n;n=0;if(g&1)break a;n=0;k=S(280,M|0)|0;g=n;n=0;if(g&1)break a;n=0;j=_(13,b|0,m|0,l|0,j|0,k|0,I|0,o|0)|0;I=n;n=0;if(I&1)break a;break}case 36:{n=0;m=S(280,i|0)|0;d=n;n=0;if(d&1)break a;n=0;l=S(280,f|0)|0;f=n;n=0;if(f&1)break a;n=0;j=S(280,g|0)|0;g=n;n=0;if(g&1)break a;n=0;k=S(280,M|0)|0;g=n;n=0;if(g&1)break a;n=0;j=_(14,b|0,m|0,l|0,j|0,k|0,I|0,o|0)|0;I=n;n=0;if(I&1)break a;break}default:{n=0;ba(6);n=0;break a}}n=0;j=W(7,c[c[K>>2]>>2]|0,J|0,p|0,j|0)|0;J=n;n=0;if(J&1)break;n=0;j=W(26,c[K>>2]|0,e|0,L|0,j|0)|0;L=n;n=0;if(L&1)break;n=0;ea(147,b|0,j|0,i|0);i=n;n=0;if(i&1)break;lNa(M);yb=N;return j|0}}}}}}while(0);N=sa()|0;P()|0;lNa(M);Ea(N|0);return 0}function ef(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0;M=yb;yb=yb+160|0;G=M+152|0;K=M+140|0;L=M+136|0;R=M+96|0;h=M+52|0;O=M+32|0;Q=M+12|0;D=M+8|0;E=M+4|0;F=M;c[L>>2]=d;rFa(R);n=0;fa(112,e|0,b|0,L|0,R|0);J=n;n=0;do if(!(J&1)){if(!(c[R+12>>2]|0)){Q=0;FNa(R);yb=M;return Q|0}H=e+24|0;J=e+28|0;f=c[J>>2]|0;B=R+20|0;d=c[H>>2]|0;while(1){if((d|0)==(f|0))break;n=0;U(145,B|0,(c[d>>2]|0)+8|0)|0;C=n;n=0;if(C&1){N=3;break}d=d+4|0}if((N|0)==3){d=sa()|0;P()|0;break}n=0;da(998,h|0,e|0);C=n;n=0;if(!(C&1)){Lvb(h);n=0;da(1453,h|0,R|0);C=n;n=0;if(!(C&1)?(n=0,ca(489,h|0),C=n,n=0,!(C&1)):0){osa(h);C=O+12|0;c[O>>2]=0;c[O+4>>2]=0;c[O+8>>2]=0;c[O+12>>2]=0;g[O+16>>2]=1.0;v=Q+4|0;d=Q+8|0;A=Q+12|0;w=Q+16|0;c[Q>>2]=0;c[Q+4>>2]=0;c[Q+8>>2]=0;c[Q+12>>2]=0;g[w>>2]=1.0;x=c[J>>2]|0;y=b+20|0;z=Q+8|0;f=0;u=c[H>>2]|0;a:while(1){if((u|0)==(x|0)){N=72;break}h=(c[u>>2]|0)+8|0;b:do if(!(LF(O,h)|0)){n=0;h=U(145,B|0,h|0)|0;t=n;n=0;if(t&1){N=19;break a}t=c[h+4>>2]|0;s=c[h>>2]|0;while(1){if((s|0)==(t|0))break b;h=c[s+4>>2]|0;c[D>>2]=h;if(!(lC(Q,D)|0)){c[E>>2]=c[h+8>>2];n=0;ea(150,e|0,c[u>>2]|0,s|0);r=n;n=0;if(r&1){N=18;break a}n=0;h=U(146,O|0,E|0)|0;r=n;n=0;if(r&1){N=18;break a}c[h>>2]=(c[h>>2]|0)+1;p=c[u>>2]|0;c[F>>2]=p;c[G>>2]=p;r=pH(G,4)|0;m=c[v>>2]|0;q=(m|0)==0;c:do if(q)N=45;else{j=m+-1|0;o=(m&j|0)==0;do if(o)f=r&j;else{if(r>>>0>>0){f=r;break}f=(r>>>0)%(m>>>0)|0}while(0);h=c[(c[Q>>2]|0)+(f<<2)>>2]|0;if(!h){N=45;break}while(1){h=c[h>>2]|0;if(!h){N=45;break c}i=c[h+4>>2]|0;if((i|0)!=(r|0)){do if(o)i=i&j;else{if(i>>>0>>0)break;i=(i>>>0)%(m>>>0)|0}while(0);if((i|0)!=(f|0)){N=45;break c}}if((c[h+8>>2]|0)==(p|0))break c}}while(0);if((N|0)==45){N=0;n=0;fa(113,K|0,Q|0,r|0,F|0);p=n;n=0;if(p&1){N=18;break a}k=+(((c[A>>2]|0)+1|0)>>>0);l=+g[w>>2];do if(!(l*+(m>>>0)>>0<=2){h=0;N=50;break}h=(m&m+-1|0)==0;N=50}while(0);do if((N|0)==50){N=0;q=f|(h^1)&1;p=~~+I(+(k/l))>>>0;n=0;da(1048,Q|0,(q>>>0

>>0?p:q)|0);q=n;n=0;if(q&1){N=55;break a}f=c[v>>2]|0;h=f+-1|0;if(!(f&h)){m=f;f=r&h;break}if(r>>>0>>0){m=f;f=r;break}m=f;f=(r>>>0)%(f>>>0)|0}while(0);h=c[(c[Q>>2]|0)+(f<<2)>>2]|0;do if(!h){h=c[K>>2]|0;c[h>>2]=c[z>>2];j=h;c[z>>2]=j;c[(c[Q>>2]|0)+(f<<2)>>2]=z;if(!(c[h>>2]|0))break;h=c[(c[h>>2]|0)+4>>2]|0;i=m+-1|0;do if(!(m&i))h=h&i;else{if(h>>>0>>0)break;h=(h>>>0)%(m>>>0)|0}while(0);c[(c[Q>>2]|0)+(h<<2)>>2]=j}else{r=c[K>>2]|0;c[r>>2]=c[h>>2];c[h>>2]=r}while(0);c[A>>2]=(c[A>>2]|0)+1;c[K>>2]=0}n=0;h=U(146,O|0,E|0)|0;r=n;n=0;if(r&1){N=18;break a}h=c[h>>2]|0;n=0;i=U(144,y|0,E|0)|0;r=n;n=0;if(r&1){N=18;break a}if(h>>>0>(c[i>>2]|0)>>>0){N=69;break a}}s=s+8|0}}while(0);u=u+4|0}do if((N|0)==18){d=sa()|0;P()|0;N=21}else if((N|0)==19){d=sa()|0;P()|0;N=21}else if((N|0)==55){d=sa()|0;P()|0;f=c[K>>2]|0;c[K>>2]=0;if(f)RCb(f)}else if((N|0)==69){n=0;fa(75,83944,83997,326,84030);n=0;N=20}else if((N|0)==72){while(1){d=c[d>>2]|0;if(!d)break;n=0;ca(527,c[(c[d+8>>2]|0)+44>>2]|0);K=n;n=0;if(K&1){N=17;break}}if((N|0)==17){d=sa()|0;P()|0;N=21;break}if(!((a[b+16>>0]&1)==0|(c[A>>2]|0)==0)?(n=0,ea(139,Q|0,e|0,c[L>>2]|0),N=n,n=0,N&1):0){N=20;break}n=0;d=W(32,c[H>>2]|0,c[J>>2]|0,b|0,O|0)|0;N=n;n=0;if(N&1)N=20;else{tS(H,d,c[J>>2]|0)|0;N=(c[C>>2]|0)!=0;Pdb(Q);Pdb(O);Q=N;FNa(R);yb=M;return Q|0}}while(0);if((N|0)==20){d=sa()|0;P()|0;N=21}Pdb(Q);Pdb(O);Q=d;FNa(R);Ea(Q|0)}Q=sa()|0;P()|0;osa(h);FNa(R);Ea(Q|0)}else N=4}else N=4;while(0);if((N|0)==4){d=sa()|0;P()|0}Q=d;FNa(R);Ea(Q|0);return 0}function ff(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,o=0,p=0;o=yb;yb=yb+64|0;l=o+40|0;g=o+24|0;h=o+12|0;k=o;a:do if((d-b|0)>2?(a[b>>0]|0)==85:0){b:do switch(a[b+1>>0]|0){case 116:{c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;T3(g,140730,Zzb(140730)|0);X6(l,g);h=e+4|0;f=c[h>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,l|0);m=n;n=0;if(m&1){b=sa()|0;P()|0;J2a(l);Chb(g);break b}}else{I6(f,l);c[h>>2]=(c[h>>2]|0)+24}J2a(l);Chb(g);g=b+2|0;if((g|0)==(d|0)){g=c[h>>2]|0;f=0;while(1){if((f|0)==-1)break;m=f+-1|0;J2a(g+(m*24|0)|0);f=m}c[h>>2]=g+-24;break a}if(((a[g>>0]|0)+-48|0)>>>0<10){f=b+3|0;while(1){if((f|0)==(d|0)){f=d;break}if(((a[f>>0]|0)+-48|0)>>>0>=10)break;f=f+1|0}qr((c[h>>2]|0)+-24|0,g,f)}else f=g;TN((c[h>>2]|0)+-24|0,39);if((f|0)!=(d|0)?(a[f>>0]|0)==95:0){b=f+1|0;break a}g=c[h>>2]|0;f=0;while(1){if((f|0)==-1)break;m=f+-1|0;J2a(g+(m*24|0)|0);f=m}c[h>>2]=g+-24;break a}case 108:{c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;T3(h,140739,Zzb(140739)|0);X6(l,h);m=e+4|0;f=c[m>>2]|0;if(f>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,l|0);j=n;n=0;if(j&1){b=sa()|0;P()|0;J2a(l);Chb(h);break b}}else{I6(f,l);c[m>>2]=(c[m>>2]|0)+24}J2a(l);Chb(h);g=b+2|0;c:do if((a[g>>0]|0)==118){TN((c[m>>2]|0)+-24|0,41);f=b+3|0}else{f=cc(g,d,e)|0;if((f|0)==(g|0)){g=c[m>>2]|0;f=0;while(1){if((f|0)==-1)break;d=f+-1|0;J2a(g+(d*24|0)|0);f=d}c[m>>2]=g+-24;break a}g=c[m>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;d6(l,g+-24|0);h=c[m>>2]|0;g=0;while(1){if((g|0)==-1)break;j=g+-1|0;J2a(h+(j*24|0)|0);g=j}c[m>>2]=h+-24;i=l+11|0;g=a[i>>0]|0;p=g<<24>>24<0;j=l+4|0;n=0;V(124,h+-48|0,(p?c[l>>2]|0:l)|0,(p?c[j>>2]|0:g&255)|0)|0;h=n;n=0;do if(!(h&1)){while(1){n=0;h=V(127,f|0,d|0,e|0)|0;p=n;n=0;if(p&1){g=45;break}if((h|0)==(f|0)){g=64;break}f=c[m>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2){g=95;break}n=0;da(4196,k|0,f+-24|0);p=n;n=0;if(p&1){g=63;break}if((a[i>>0]|0)<0){Fsb(c[l>>2]|0,0);c[j>>2]=0}else{Fsb(l,0);a[i>>0]=0}Yw(l);c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];f=0;while(1){if((f|0)==3)break;c[k+(f<<2)>>2]=0;f=f+1|0}Chb(k);g=c[m>>2]|0;f=0;while(1){if((f|0)==-1)break;p=f+-1|0;J2a(g+(p*24|0)|0);f=p}c[m>>2]=g+-24;p=a[i>>0]|0;if((p<<24>>24<0?c[j>>2]|0:p&255)|0){n=0;U(216,g+-48|0,140151)|0;p=n;n=0;if(p&1){g=45;break}p=a[i>>0]|0;g=p<<24>>24<0;n=0;V(124,(c[m>>2]|0)+-24|0,(g?c[l>>2]|0:l)|0,(g?c[j>>2]|0:p&255)|0)|0;p=n;n=0;if(p&1){g=45;break}}f=h}if((g|0)==45){b=sa()|0;P()|0;g=47;break}else if((g|0)==63){b=sa()|0;P()|0;break}else if((g|0)==64){n=0;U(216,(c[m>>2]|0)+-24|0,139927)|0;p=n;n=0;if(p&1){g=46;break}Chb(l);break c}else if((g|0)==95){Chb(l);break a}}else g=46;while(0);if((g|0)==46){b=sa()|0;P()|0;g=47}Chb(l);break b}while(0);if((f|0)!=(d|0)?(a[f>>0]|0)==69:0){i=f+1|0;if((i|0)==(d|0)){g=c[m>>2]|0;f=0;while(1){if((f|0)==-1)break;p=f+-1|0;J2a(g+(p*24|0)|0);f=p}c[m>>2]=g+-24;break a}if(((a[i>>0]|0)+-48|0)>>>0<10){f=f+2|0;while(1){if((f|0)==(d|0)){f=d;break}if(((a[f>>0]|0)+-48|0)>>>0>=10)break;f=f+1|0}g=(c[m>>2]|0)+-24|0;if((a[g+11>>0]|0)<0)h=c[g>>2]|0;else h=g;Ro(g,h+7|0,i,f)|0}else f=i;if((f|0)!=(d|0)?(a[f>>0]|0)==95:0){b=f+1|0;break a}g=c[m>>2]|0;f=0;while(1){if((f|0)==-1)break;p=f+-1|0;J2a(g+(p*24|0)|0);f=p}c[m>>2]=g+-24;break a}g=c[m>>2]|0;f=0;while(1){if((f|0)==-1)break;p=f+-1|0;J2a(g+(p*24|0)|0);f=p}c[m>>2]=g+-24;break a}default:break a}while(0);Ea(b|0)}while(0);yb=o;return b|0}function gf(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=yb;yb=yb+992|0;m=y+972|0;w=y+960|0;p=y+864|0;q=y+840|0;r=y+816|0;x=y+948|0;s=y+720|0;e=y+696|0;f=y+672|0;t=y+936|0;g=y+480|0;h=y+456|0;i=y+432|0;u=y+924|0;j=y+48|0;k=y+24|0;l=y;v=y+912|0;if((d|0)!=5){b=kH(Vr(b,1)|0)|0;a=nc(b,d,c[a+4>>2]|0)|0;if(a|0){b=a;yb=y;return b|0}e=oa(20)|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;y=Zzb(125559)|0;n=0;ea(95,m|0,125559,y|0);y=n;n=0;if(!(y&1)){n=0;da(330,e|0,m|0);y=n;n=0;if(y&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}a=sa()|0;P()|0;Chb(m);if(!d){y=a;Ea(y|0)}}else{a=sa()|0;P()|0}va(e|0);y=a;Ea(y|0)}m=a+4|0;o=Ojb(c[m>>2]|0)|0;d=ofb(kH(Vr(b,1)|0)|0,0)|0;a=(xmb(b)|0)+-4|0;a:do switch(a>>>1|a<<31|0){case 0:{switch(d|0){case 4:case 2:{Wmb(p);a=0;while(1){if((a|0)==2)break;x=kH(Vr(b,a+2|0)|0)|0;oB(q,nc(x,d,c[m>>2]|0)|0);x=p+(a*24|0)|0;c[x>>2]=c[q>>2];c[x+4>>2]=c[q+4>>2];c[x+8>>2]=c[q+8>>2];c[x+12>>2]=c[q+12>>2];c[x+16>>2]=c[q+16>>2];a=a+1|0}Jab(r,p);b=o+8|0;c[b>>2]=c[r>>2];c[b+4>>2]=c[r+4>>2];c[b+8>>2]=c[r+8>>2];c[b+12>>2]=c[r+12>>2];c[b+16>>2]=c[r+16>>2];break a}default:{}}e=oa(20)|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;y=Zzb(125569)|0;n=0;ea(95,w|0,125569,y|0);y=n;n=0;if(!(y&1)){n=0;da(330,e|0,w|0);y=n;n=0;if(y&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}a=sa()|0;P()|0;Chb(w);if(!d){y=a;Ea(y|0)}}else{a=sa()|0;P()|0}va(e|0);y=a;Ea(y|0)}case 1:{switch(d|0){case 3:case 1:{_7a(s);a=0;while(1){if((a|0)==4)break;x=kH(Vr(b,a+2|0)|0)|0;oB(e,nc(x,d,c[m>>2]|0)|0);x=s+(a*24|0)|0;c[x>>2]=c[e>>2];c[x+4>>2]=c[e+4>>2];c[x+8>>2]=c[e+8>>2];c[x+12>>2]=c[e+12>>2];c[x+16>>2]=c[e+16>>2];a=a+1|0}Iab(f,s);b=o+8|0;c[b>>2]=c[f>>2];c[b+4>>2]=c[f+4>>2];c[b+8>>2]=c[f+8>>2];c[b+12>>2]=c[f+12>>2];c[b+16>>2]=c[f+16>>2];break a}default:{}}e=oa(20)|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;y=Zzb(125569)|0;n=0;ea(95,x|0,125569,y|0);y=n;n=0;if(!(y&1)){n=0;da(330,e|0,x|0);y=n;n=0;if(y&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}a=sa()|0;P()|0;Chb(x);if(!d){y=a;Ea(y|0)}}else{a=sa()|0;P()|0}va(e|0);y=a;Ea(y|0)}case 3:{if((d|0)==1){sDa(g);a=0;while(1){if((a|0)==8)break;x=kH(Vr(b,a+2|0)|0)|0;oB(h,nc(x,1,c[m>>2]|0)|0);x=g+(a*24|0)|0;c[x>>2]=c[h>>2];c[x+4>>2]=c[h+4>>2];c[x+8>>2]=c[h+8>>2];c[x+12>>2]=c[h+12>>2];c[x+16>>2]=c[h+16>>2];a=a+1|0}Hab(i,g);b=o+8|0;c[b>>2]=c[i>>2];c[b+4>>2]=c[i+4>>2];c[b+8>>2]=c[i+8>>2];c[b+12>>2]=c[i+12>>2];c[b+16>>2]=c[i+16>>2];break a}e=oa(20)|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;y=Zzb(125569)|0;n=0;ea(95,t|0,125569,y|0);y=n;n=0;if(!(y&1)){n=0;da(330,e|0,t|0);y=n;n=0;if(y&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}a=sa()|0;P()|0;Chb(t);if(!d){y=a;Ea(y|0)}}else{a=sa()|0;P()|0}va(e|0);y=a;Ea(y|0)}case 7:{if((d|0)==1){k4(j);a=0;while(1){if((a|0)==16)break;x=kH(Vr(b,a+2|0)|0)|0;oB(k,nc(x,1,c[m>>2]|0)|0);x=j+(a*24|0)|0;c[x>>2]=c[k>>2];c[x+4>>2]=c[k+4>>2];c[x+8>>2]=c[k+8>>2];c[x+12>>2]=c[k+12>>2];c[x+16>>2]=c[k+16>>2];a=a+1|0}cab(l,j);b=o+8|0;c[b>>2]=c[l>>2];c[b+4>>2]=c[l+4>>2];c[b+8>>2]=c[l+8>>2];c[b+12>>2]=c[l+12>>2];c[b+16>>2]=c[l+16>>2];break a}e=oa(20)|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;y=Zzb(125569)|0;n=0;ea(95,u|0,125569,y|0);y=n;n=0;if(!(y&1)){n=0;da(330,e|0,u|0);y=n;n=0;if(y&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}a=sa()|0;P()|0;Chb(u);if(!d){y=a;Ea(y|0)}}else{a=sa()|0;P()|0}va(e|0);y=a;Ea(y|0)}default:{e=oa(20)|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;y=Zzb(125603)|0;n=0;ea(95,v|0,125603,y|0);y=n;n=0;if(!(y&1)){n=0;da(330,e|0,v|0);y=n;n=0;if(y&1)d=1;else{n=0;ea(122,e|0,31856,511);n=0;d=0}a=sa()|0;P()|0;Chb(v);if(!d){y=a;Ea(y|0)}}else{a=sa()|0;P()|0}va(e|0);y=a;Ea(y|0)}}while(0);eub(o);b=o;yb=y;return b|0}function hf(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0.0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0,t=0.0,u=0,v=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0;G=yb;yb=yb+512|0;D=G;E=f+e|0;F=0-E|0;C=a+4|0;B=a+100|0;j=0;a:while(1){switch(b|0){case 46:{z=7;break a}case 48:break;default:{u=0;p=j;j=0;o=0;break a}}b=c[C>>2]|0;if(b>>>0<(c[B>>2]|0)>>>0){c[C>>2]=b+1;b=d[b>>0]|0}else b=nI(a)|0;j=1}if((z|0)==7){b=c[C>>2]|0;if(b>>>0<(c[B>>2]|0)>>>0){c[C>>2]=b+1;b=d[b>>0]|0}else b=nI(a)|0;if((b|0)==48){j=0;b=0;while(1){j=Yeb(j|0,b|0,-1,-1)|0;o=P()|0;b=c[C>>2]|0;if(b>>>0<(c[B>>2]|0)>>>0){c[C>>2]=b+1;b=d[b>>0]|0}else b=nI(a)|0;if((b|0)==48)b=o;else{u=1;p=1;break}}}else{u=1;p=j;j=0;o=0}}c[D>>2]=0;n=b+-48|0;m=(b|0)==46;b:do if(m|n>>>0<10){A=D+496|0;v=0;l=0;s=0;x=u;y=p;z=n;p=0;n=0;c:while(1){do if(m)if(!x){x=1;j=p;o=n}else break c;else{p=Yeb(p|0,n|0,1,0)|0;n=P()|0;u=(b|0)!=48;if((l|0)>=125){if(!u)break;c[A>>2]=c[A>>2]|1;break}m=D+(l<<2)|0;if(!v)b=z;else b=b+-48+((c[m>>2]|0)*10|0)|0;c[m>>2]=b;v=v+1|0;y=(v|0)==9;v=y?0:v;l=l+(y&1)|0;s=u?p:s;y=1}while(0);b=c[C>>2]|0;if(b>>>0<(c[B>>2]|0)>>>0){c[C>>2]=b+1;b=d[b>>0]|0}else b=nI(a)|0;z=b+-48|0;m=(b|0)==46;if(!(m|z>>>0<10)){u=x;m=y;z=31;break b}}b=v;m=(y|0)!=0;z=39}else{v=0;l=0;s=0;m=p;p=0;n=0;z=31}while(0);do if((z|0)==31){A=(u|0)==0;j=A?p:j;o=A?n:o;m=(m|0)!=0;if(!(m&(b|32|0)==101))if((b|0)>-1){b=v;z=39;break}else{b=v;z=41;break}m=dp(a,h)|0;b=P()|0;if((m|0)==0&(b|0)==-2147483648){if(!h){HFa(a,0);i=0.0;break}if(!(c[B>>2]|0)){m=0;b=0}else{c[C>>2]=(c[C>>2]|0)+-1;m=0;b=0}}j=Yeb(m|0,b|0,j|0,o|0)|0;b=v;o=P()|0;z=43}while(0);if((z|0)==39)if(c[B>>2]|0){c[C>>2]=(c[C>>2]|0)+-1;if(m)z=43;else z=42}else z=41;if((z|0)==41)if(m)z=43;else z=42;do if((z|0)==42){c[37419]=22;HFa(a,0);i=0.0}else if((z|0)==43){m=c[D>>2]|0;if(!m){i=+(g|0)*0.0;break}if(((n|0)<0|(n|0)==0&p>>>0<10)&((j|0)==(p|0)&(o|0)==(n|0))?(e|0)>30|(m>>>e|0)==0:0){i=+(g|0)*+(m>>>0);break}a=(f|0)/-2|0;C=((a|0)<0)<<31>>31;if((o|0)>(C|0)|(o|0)==(C|0)&j>>>0>a>>>0){c[37419]=34;i=+(g|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}a=f+-106|0;C=((a|0)<0)<<31>>31;if((o|0)<(C|0)|(o|0)==(C|0)&j>>>0>>0){c[37419]=34;i=+(g|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(b){if((b|0)<9){n=D+(l<<2)|0;m=c[n>>2]|0;while(1){m=m*10|0;if((b|0)>=8)break;else b=b+1|0}c[n>>2]=m}l=l+1|0}if((s|0)<9?(s|0)<=(j|0)&(j|0)<18:0){if((j|0)==9){i=+(g|0)*+((c[D>>2]|0)>>>0);break}if((j|0)<9){i=+(g|0)*+((c[D>>2]|0)>>>0)/+(c[30672+(8-j<<2)>>2]|0);break}a=e+27+(J(j,-3)|0)|0;b=c[D>>2]|0;if((a|0)>30|(b>>>a|0)==0){i=+(g|0)*+(b>>>0)*+(c[30672+(j+-10<<2)>>2]|0);break}}b=(j|0)%9|0;if(!b)m=0;else{s=(j|0)>-1?b:b+9|0;o=c[30672+(8-s<<2)>>2]|0;if(l){p=1e9/(o|0)|0;n=0;m=0;b=0;do{B=D+(b<<2)|0;C=c[B>>2]|0;a=(C>>>0)/(o>>>0)|0;C=C-(J(a,o)|0)|0;a=a+n|0;c[B>>2]=a;n=J(p,C)|0;a=(b|0)==(m|0)&(a|0)==0;j=a?j+-9|0:j;m=a?m+1&127:m;b=b+1|0}while((b|0)!=(l|0));if(!n)b=l;else{c[D+(l<<2)>>2]=n;b=l+1|0}}else{m=0;b=0}l=b;j=9-s+j|0}b=0;d:while(1){u=(j|0)<18;v=(j|0)==18;x=D+(m<<2)|0;while(1){if(!u){if(!v)break d;if((c[x>>2]|0)>>>0>=9007199){j=18;break d}}n=0;y=l;l=l+127|0;while(1){p=l&127;o=D+(p<<2)|0;l=X2a(c[o>>2]|0,0,29)|0;l=Yeb(l|0,P()|0,n|0,0)|0;n=P()|0;if(n>>>0>0|(n|0)==0&l>>>0>1e9){s=znb(l|0,n|0,1e9,0)|0;a=BSa(s|0,P()|0,-1e9,-1)|0;l=Yeb(l|0,n|0,a|0,P()|0)|0;P()|0}else s=0;c[o>>2]=l;a=(p|0)==(m|0);o=(p|0)!=(y+127&127|0)|a?y:(l|0)==0?p:y;if(a)break;else{n=s;y=o;l=p+-1|0}}b=b+-29|0;if(!s)l=y;else break}m=m+127&127;l=o+127&127;n=D+((o+126&127)<<2)|0;if((m|0)==(o|0))c[n>>2]=c[n>>2]|c[D+(l<<2)>>2];else l=y;c[D+(m<<2)>>2]=s;j=j+9|0}e:while(1){v=l+1&127;x=D+((l+127&127)<<2)|0;while(1){p=(j|0)==18;u=(j|0)>27?9:1;y=m;while(1){o=0;while(1){m=o+y&127;if((m|0)==(l|0)){z=92;break}m=c[D+(m<<2)>>2]|0;n=c[47264+(o<<2)>>2]|0;if(m>>>0>>0){z=92;break}if(m>>>0>n>>>0)break;if((o+1|0)>>>0<2)o=1;else{z=92;break}}if((z|0)==92?(z=0,p):0)break e;b=u+b|0;if((y|0)==(l|0))y=l;else break}p=(1<>>u;o=0;m=y;n=y;do{B=D+(n<<2)|0;C=c[B>>2]|0;a=(C>>>u)+o|0;c[B>>2]=a;o=J(C&p,s)|0;a=(n|0)==(m|0)&(a|0)==0;j=a?j+-9|0:j;m=a?m+1&127:m;n=n+1&127}while((n|0)!=(l|0));if(o|0){if((v|0)!=(m|0))break;c[x>>2]=c[x>>2]|1}}c[D+(l<<2)>>2]=o;l=v}i=0.0;j=l;m=0;do{n=m+y&127;l=j+1&127;if((n|0)==(j|0)){c[D+(l+-1<<2)>>2]=0;j=l}i=i*1.0e9+ +((c[D+(n<<2)>>2]|0)>>>0);m=m+1|0}while((m|0)!=2);t=+(g|0);k=i*t;n=b+53|0;o=n-f|0;p=(o|0)<(e|0);m=p?((o|0)>0?o:0):e;if((m|0)<53){H=+XBb(+R1(1.0,105-m|0),k);q=+wCb(k,+R1(1.0,53-m|0));r=H;i=q;q=H+(k-q)}else{r=0.0;i=0.0;q=k}l=y+2&127;if((l|0)!=(j|0)){l=c[D+(l<<2)>>2]|0;do if(l>>>0>=5e8){if((l|0)!=5e8){i=t*.75+i;break}if((y+3&127|0)==(j|0)){i=t*.5+i;break}else{i=t*.75+i;break}}else{if((l|0)==0?(y+3&127|0)==(j|0):0)break;i=t*.25+i}while(0);if((53-m|0)>1?!(+wCb(i,1.0)!=0.0):0)k=i+1.0;else k=i}else k=i;i=q+k-r;do if((n&2147483647|0)>(-2-E|0)){E=!(+w(+i)>=9007199254740992.0);b=b+((E^1)&1)|0;i=E?i:i*.5;if((b+50|0)<=(F|0)?!(k!=0.0&(p&((m|0)!=(o|0)|E))):0)break;c[37419]=34}while(0);i=+cCb(i,b)}while(0);yb=G;return +i}function jf(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0;F=yb;yb=yb+128|0;D=F+108|0;K=F+88|0;L=F+76|0;h=F+72|0;M=F+52|0;N=F+40|0;J=F+24|0;C=F+20|0;G=F+8|0;A=F+4|0;B=F;c[K>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;c[K+12>>2]=0;g[K+16>>2]=1.0;iob(L);E=a+144|0;b=L+4|0;d=L+8|0;e=0;while(1){c[h>>2]=e;if(e>>>0>=(c[E>>2]|0)>>>0)break;f=c[b>>2]|0;if((f|0)==(c[d>>2]|0)){n=0;da(997,L|0,h|0);z=n;n=0;if(z&1){H=7;break}}else{c[f>>2]=e;c[b>>2]=(c[b>>2]|0)+4}e=e+1|0}if((H|0)==7){N=sa()|0;P()|0;Htb(L);wda(K);Ea(N|0)}r=M+4|0;s=M+12|0;t=M+16|0;c[M>>2]=0;c[M+4>>2]=0;c[M+8>>2]=0;c[M+12>>2]=0;g[t>>2]=1.0;c[N>>2]=0;u=N+4|0;c[u>>2]=0;v=N+8|0;c[v>>2]=0;n=0;ea(141,N|0,a+52|0,L|0);z=n;n=0;do if(z&1){b=sa()|0;P()|0;H=19}else{w=J+4|0;x=J+8|0;y=M+8|0;z=G+4|0;b=0;a:while(1){d=c[u>>2]|0;if((c[N>>2]|0)==(d|0)){H=80;break}qWa(J,d+-16|0);e=c[u>>2]|0;d=0;while(1){if((d|0)==-1)break;q=d+-1|0;acb(e+(q<<4)|0);d=q}c[u>>2]=e+-16;c[C>>2]=c[J>>2];n=0;d=U(127,K|0,C|0)|0;q=n;n=0;if(q&1){H=20;break}n=0;ea(142,w|0,d|0,M|0);q=n;n=0;if(q&1){H=20;break}if((c[w>>2]|0)==(c[x>>2]|0))acb(J);else{p=c[C>>2]|0;iob(G);q=c[x>>2]|0;o=c[w>>2]|0;while(1){if((o|0)==(q|0))break;m=c[o>>2]|0;c[A>>2]=m;d=zI(p,m)|0;b:do if(!d){n=0;da(560,G|0,m|0);m=n;n=0;if(m&1){H=63;break a}}else if(!(c[d+12>>2]|0)){h=c[r>>2]|0;l=(h|0)==0;c:do if(!l){f=h+-1|0;k=(h&f|0)==0;if(!k)if(m>>>0>>0)b=m;else b=(m>>>0)%(h>>>0)|0;else b=m&f;d=c[(c[M>>2]|0)+(b<<2)>>2]|0;if(d)while(1){d=c[d>>2]|0;if(!d)break c;e=c[d+4>>2]|0;if((e|0)!=(m|0)){do if(k)e=e&f;else{if(e>>>0>>0)break;e=(e>>>0)%(h>>>0)|0}while(0);if((e|0)!=(b|0))break c}if((c[d+8>>2]|0)==(m|0))break b}}while(0);n=0;fa(109,D|0,M|0,m|0,A|0);k=n;n=0;if(k&1){H=63;break a}i=+(((c[s>>2]|0)+1|0)>>>0);j=+g[t>>2];if(j*+(h>>>0)>>0>2){d=(h&h+-1|0)==0;H=46}else{d=0;H=46}}else if(l){d=0;b=0;H=46}do if((H|0)==46){H=0;l=b|(d^1)&1;k=~~+I(+(i/j))>>>0;n=0;da(1089,M|0,(l>>>0>>0?k:l)|0);l=n;n=0;if(l&1){H=51;break a}b=c[r>>2]|0;d=b+-1|0;if(!(b&d)){h=b;b=m&d;break}if(m>>>0>>0){h=b;b=m}else{h=b;b=(m>>>0)%(b>>>0)|0}}while(0);d=c[(c[M>>2]|0)+(b<<2)>>2]|0;if(!d){d=c[D>>2]|0;c[d>>2]=c[y>>2];f=d;c[y>>2]=f;c[(c[M>>2]|0)+(b<<2)>>2]=y;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=h+-1|0;do if(!(h&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(h>>>0)|0}while(0);c[(c[M>>2]|0)+(d<<2)>>2]=f}}else{m=c[D>>2]|0;c[m>>2]=c[d>>2];c[d>>2]=m}c[s>>2]=(c[s>>2]|0)+1;c[D>>2]=0}while(0);o=o+4|0}d:do if((c[G>>2]|0)!=(c[z>>2]|0)){d=c[C>>2]|0;f=c[d+24>>2]|0;d=c[d+20>>2]|0;while(1){h=d;if((f|0)==(h|0))break d;d=c[d>>2]|0;c[B>>2]=d;e=c[u>>2]|0;if(e>>>0>=(c[v>>2]|0)>>>0){n=0;ea(141,N|0,B|0,G|0);q=n;n=0;if(q&1){H=62;break a}}else{c[e>>2]=d;n=0;da(1090,e+4|0,G|0);q=n;n=0;if(q&1){H=62;break a}c[u>>2]=(c[u>>2]|0)+16}d=h+4|0}}while(0);Htb(G);acb(J)}}if((H|0)==20){b=sa()|0;P()|0}else if((H|0)==51){b=sa()|0;P()|0;d=c[D>>2]|0;c[D>>2]=0;if(!d)H=65;else{RCb(d);H=65}}else if((H|0)==62){b=sa()|0;P()|0;H=64}else if((H|0)==63){b=sa()|0;P()|0;H=64}else if((H|0)==80){b=a+140|0;d=0;while(1){if(d>>>0>=(c[E>>2]|0)>>>0){H=85;break}if((zI(M,d)|0)==0?(n=0,da(560,c[b>>2]|0,d|0),J=n,n=0,J&1):0){H=17;break}d=d+1|0}if((H|0)==17){b=sa()|0;P()|0;H=19;break}else if((H|0)==85){MCa(N);Pdb(M);Htb(L);wda(K);yb=F;return}}if((H|0)==64)H=65;if((H|0)==65)Htb(G);acb(J)}while(0);MCa(N);Pdb(M);N=b;Htb(L);wda(K);Ea(N|0)}function kf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;do switch(e|0){case 24:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=76;break}case 25:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=77;break}case 26:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=78;break}case 27:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=79;break}case 28:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=80;break}case 29:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=81;break}case 30:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=82;break}case 31:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=83;break}case 32:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=84;break}case 33:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=85;break}case 34:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=86;break}case 35:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=87;break}case 36:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=88;break}case 37:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=89;break}case 38:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=90;break}case 39:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=91;break}case 40:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=92;break}case 41:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=93;break}case 42:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=94;break}case 43:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=95;break}case 44:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=96;break}case 45:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=97;break}case 46:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=98;break}case 47:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=99;break}case 48:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=100;break}case 49:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=101;break}case 50:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=102;break}case 51:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=103;break}case 52:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=104;break}case 53:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=105;break}case 64:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=106;break}case 65:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=107;break}case 66:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=108;break}case 67:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=109;break}case 68:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=110;break}case 69:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=111;break}case 70:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=112;break}case 71:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=113;break}case 72:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=114;break}case 73:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=115;break}case 74:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=116;break}case 75:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=117;break}case 77:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=118;break}case 78:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=119;break}case 79:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=120;break}case 87:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=121;break}case 88:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=122;break}case 89:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=123;break}case 90:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=124;break}case 91:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=125;break}case 92:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=126;break}case 93:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=127;break}case 104:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=128;break}case 105:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=129;break}case 106:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=130;break}case 107:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=131;break}case 108:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=132;break}case 109:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=133;break}case 110:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=134;break}case 121:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=135;break}case 124:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=136;break}case 127:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=137;break}case 138:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=138;break}case 141:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=139;break}case 154:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=140;break}case 155:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=141;break}case 156:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=142;break}case 157:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=143;break}case 158:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=144;break}case 159:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=145;break}case 165:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=146;break}case 166:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=147;break}case 167:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=148;break}case 168:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=149;break}case 169:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=150;break}case 170:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=151;break}default:{d=0;return d|0}}while(0);if(a[b+12>>0]&1)BM(IWa(150620,112749)|0);f=rl(b)|0;c[e+16>>2]=f;b=rl(b)|0;c[e+12>>2]=b;g9(e);c[d>>2]=e;d=1;return d|0}function lf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;do switch(e<<24>>24){case 106:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=0;break}case 124:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=25;break}case -110:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=50;break}case -96:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=63;break}case 107:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=1;break}case 125:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=26;break}case -109:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=51;break}case -95:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=64;break}case 108:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=2;break}case 126:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=27;break}case -108:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=52;break}case -94:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=65;break}case 109:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=3;break}case 127:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=28;break}case 110:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=4;break}case -128:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=29;break}case 111:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=5;break}case -127:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=30;break}case 112:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=6;break}case -126:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=31;break}case 113:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=7;break}case -125:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=32;break}case 114:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=8;break}case -124:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=33;break}case 115:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=9;break}case -123:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=34;break}case 116:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=10;break}case -122:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=35;break}case 118:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=11;break}case -120:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=36;break}case 117:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=12;break}case -121:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=37;break}case 119:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=13;break}case -119:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=38;break}case 120:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=14;break}case -118:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=39;break}case -107:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=53;break}case -93:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=66;break}case -104:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=54;break}case -90:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=67;break}case -106:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=55;break}case -92:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=68;break}case -105:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=56;break}case -91:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=69;break}case 70:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=15;break}case 81:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=40;break}case 91:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=57;break}case 97:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=70;break}case 71:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=16;break}case 82:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=41;break}case 92:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=58;break}case 98:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=71;break}case 72:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=17;break}case 83:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=42;break}case 73:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=18;break}case 84:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=43;break}case 76:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=19;break}case 87:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=44;break}case 77:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=20;break}case 88:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=45;break}case 74:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=21;break}case 85:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=46;break}case 75:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=22;break}case 86:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=47;break}case 78:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=23;break}case 89:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=48;break}case 79:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=24;break}case 90:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=49;break}case 93:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=59;break}case 99:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=72;break}case 95:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=60;break}case 101:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=73;break}case 94:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=61;break}case 100:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=74;break}case 96:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=62;break}case 102:{e=uhb(c[b+4>>2]|0)|0;c[e+8>>2]=75;break}default:{d=0;return d|0}}while(0);if(a[b+12>>0]&1)BM(IWa(150620,112749)|0);f=rl(b)|0;c[e+16>>2]=f;b=rl(b)|0;c[e+12>>2]=b;g9(e);c[d>>2]=e;d=1;return d|0}function mf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0;G=yb;yb=yb+80|0;D=G+72|0;H=G+60|0;E=G+56|0;J=G+44|0;s=G+40|0;h=G+28|0;K=G+8|0;F=G+4|0;v=G;w=a+4|0;x=a+12|0;y=a+16|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[y>>2]=1.0;z=K+4|0;A=K+8|0;B=K+12|0;C=K+16|0;c[K>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;c[K+12>>2]=0;g[C>>2]=1.0;t=b+36|0;c[s>>2]=c[t>>2];b=pH(s,4)|0;n=0;fa(132,h|0,K|0,b|0,t|0);t=n;n=0;do if(!(t&1)){t=~~+I(+(+(((c[B>>2]|0)+1|0)>>>0)/+g[C>>2]))>>>0;n=0;da(3772,K|0,(t>>>0>1?t:1)|0);t=n;n=0;if(t&1){b=sa()|0;P()|0;d=c[h>>2]|0;c[h>>2]=0;if(!d)break;RCb(d);break}f=c[z>>2]|0;d=f+-1|0;if(f&d){if(b>>>0>=f>>>0)b=(b>>>0)%(f>>>0)|0}else b=b&d;d=c[(c[K>>2]|0)+(b<<2)>>2]|0;if(!d){t=K+8|0;d=c[h>>2]|0;c[d>>2]=c[t>>2];e=d;c[t>>2]=e;c[(c[K>>2]|0)+(b<<2)>>2]=t;if(c[d>>2]|0){b=c[(c[d>>2]|0)+4>>2]|0;d=f+-1|0;if(f&d){if(b>>>0>=f>>>0)b=(b>>>0)%(f>>>0)|0}else b=b&d;c[(c[K>>2]|0)+(b<<2)>>2]=e}}else{t=c[h>>2]|0;c[t>>2]=c[d>>2];c[d>>2]=t}b=(c[B>>2]|0)+1|0;c[B>>2]=b;c[h>>2]=0;s=K+8|0;t=a+8|0;d=0;o=0;a:while(1){if(!b){u=101;break}f=c[A>>2]|0;p=c[f+8>>2]|0;c[F>>2]=p;_6(K,f)|0;c[E>>2]=p;f=pH(E,4)|0;h=c[w>>2]|0;m=(h|0)==0;b:do if(!m){k=h+-1|0;l=(h&k|0)==0;if(!l)if(f>>>0>>0)d=f;else d=(f>>>0)%(h>>>0)|0;else d=f&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b)u=35;else while(1){b=c[b>>2]|0;if(!b){u=35;break b}e=c[b+4>>2]|0;if((e|0)!=(f|0)){if(!l){if(e>>>0>=h>>>0)e=(e>>>0)%(h>>>0)|0}else e=e&k;if((e|0)!=(d|0)){u=35;break b}}if((c[b+8>>2]|0)==(p|0)){f=d;break b}}}else u=35;while(0);if((u|0)==35){u=0;n=0;fa(132,J|0,a|0,f|0,F|0);r=n;n=0;if(r&1){u=97;break}i=+(((c[x>>2]|0)+1|0)>>>0);j=+g[y>>2];if(j*+(h>>>0)>>0>2){d=(h&h+-1|0)==0;u=40}else{d=0;u=40}}else if(m){d=0;b=0;u=40}else f=d;do if((u|0)==40){u=0;r=b|(d^1)&1;q=~~+I(+(i/j))>>>0;n=0;da(3772,a|0,(r>>>0>>0?q:r)|0);r=n;n=0;if(r&1){u=45;break a}b=c[w>>2]|0;d=b+-1|0;if(!(b&d)){h=b;f=f&d;break}if(f>>>0>>0)h=b;else{h=b;f=(f>>>0)%(b>>>0)|0}}while(0);b=c[(c[a>>2]|0)+(f<<2)>>2]|0;if(!b){b=c[J>>2]|0;c[b>>2]=c[t>>2];e=b;c[t>>2]=e;c[(c[a>>2]|0)+(f<<2)>>2]=t;if(c[b>>2]|0){b=c[(c[b>>2]|0)+4>>2]|0;d=h+-1|0;if(h&d){if(b>>>0>=h>>>0)b=(b>>>0)%(h>>>0)|0}else b=b&d;c[(c[a>>2]|0)+(b<<2)>>2]=e}}else{r=c[J>>2]|0;c[r>>2]=c[b>>2];c[b>>2]=r}c[x>>2]=(c[x>>2]|0)+1;c[J>>2]=0}r=c[p+40>>2]|0;b=o;d=c[p+36>>2]|0;while(1){q=d;if((r|0)==(q|0))break;d=c[d>>2]|0;c[v>>2]=d;m=d;c:do if(!(lC(a,v)|0)){c[D>>2]=d;p=pH(D,4)|0;k=c[z>>2]|0;o=(k|0)==0;d:do if(!o){h=k+-1|0;l=(k&h|0)==0;if(!l)if(p>>>0>>0)b=p;else b=(p>>>0)%(k>>>0)|0;else b=p&h;d=c[(c[K>>2]|0)+(b<<2)>>2]|0;if(d)while(1){d=c[d>>2]|0;if(!d)break d;e=c[d+4>>2]|0;if((e|0)!=(p|0)){do if(l)e=e&h;else{if(e>>>0>>0)break;e=(e>>>0)%(k>>>0)|0}while(0);if((e|0)!=(b|0))break d}if((c[d+8>>2]|0)==(m|0))break c}}while(0);n=0;fa(132,H|0,K|0,p|0,v|0);m=n;n=0;if(m&1){u=96;break a}i=+(((c[B>>2]|0)+1|0)>>>0);j=+g[C>>2];if(j*+(k>>>0)>>0>2){d=(k&k+-1|0)==0;u=80}else{d=0;u=80}}else if(o){d=0;b=0;u=80}do if((u|0)==80){u=0;o=b|(d^1)&1;m=~~+I(+(i/j))>>>0;n=0;da(3772,K|0,(o>>>0>>0?m:o)|0);o=n;n=0;if(o&1){u=85;break a}b=c[z>>2]|0;d=b+-1|0;if(!(b&d)){k=b;b=p&d;break}if(p>>>0>>0){k=b;b=p}else{k=b;b=(p>>>0)%(b>>>0)|0}}while(0);d=c[(c[K>>2]|0)+(b<<2)>>2]|0;if(!d){d=c[H>>2]|0;c[d>>2]=c[s>>2];h=d;c[s>>2]=h;c[(c[K>>2]|0)+(b<<2)>>2]=s;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=k+-1|0;do if(!(k&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(k>>>0)|0}while(0);c[(c[K>>2]|0)+(d<<2)>>2]=h}}else{p=c[H>>2]|0;c[p>>2]=c[d>>2];c[d>>2]=p}c[B>>2]=(c[B>>2]|0)+1;c[H>>2]=0}while(0);d=q+4|0}d=f;o=b;b=c[B>>2]|0}if((u|0)==45){b=sa()|0;P()|0;d=c[J>>2]|0;c[J>>2]=0;if(!d)break;RCb(d);break}else if((u|0)==85){b=sa()|0;P()|0;d=c[H>>2]|0;c[H>>2]=0;if(!d)break;RCb(d);break}else if((u|0)==96){b=sa()|0;P()|0;break}else if((u|0)==97){b=sa()|0;P()|0;break}else if((u|0)==101){Pdb(K);yb=G;return}}else{b=sa()|0;P()|0}while(0);Pdb(K);Pdb(a);Ea(b|0)}function nf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0;G=yb;yb=yb+80|0;D=G+72|0;H=G+60|0;E=G+56|0;J=G+44|0;s=G+40|0;h=G+28|0;K=G+8|0;F=G+4|0;v=G;w=a+4|0;x=a+12|0;y=a+16|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[y>>2]=1.0;z=K+4|0;A=K+8|0;B=K+12|0;C=K+16|0;c[K>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;c[K+12>>2]=0;g[C>>2]=1.0;t=b+36|0;c[s>>2]=c[t>>2];b=pH(s,4)|0;n=0;fa(101,h|0,K|0,b|0,t|0);t=n;n=0;do if(!(t&1)){t=~~+I(+(+(((c[B>>2]|0)+1|0)>>>0)/+g[C>>2]))>>>0;n=0;da(562,K|0,(t>>>0>1?t:1)|0);t=n;n=0;if(t&1){b=sa()|0;P()|0;d=c[h>>2]|0;c[h>>2]=0;if(!d)break;RCb(d);break}f=c[z>>2]|0;d=f+-1|0;if(f&d){if(b>>>0>=f>>>0)b=(b>>>0)%(f>>>0)|0}else b=b&d;d=c[(c[K>>2]|0)+(b<<2)>>2]|0;if(!d){t=K+8|0;d=c[h>>2]|0;c[d>>2]=c[t>>2];e=d;c[t>>2]=e;c[(c[K>>2]|0)+(b<<2)>>2]=t;if(c[d>>2]|0){b=c[(c[d>>2]|0)+4>>2]|0;d=f+-1|0;if(f&d){if(b>>>0>=f>>>0)b=(b>>>0)%(f>>>0)|0}else b=b&d;c[(c[K>>2]|0)+(b<<2)>>2]=e}}else{t=c[h>>2]|0;c[t>>2]=c[d>>2];c[d>>2]=t}b=(c[B>>2]|0)+1|0;c[B>>2]=b;c[h>>2]=0;s=K+8|0;t=a+8|0;d=0;o=0;a:while(1){if(!b){u=101;break}f=c[A>>2]|0;p=c[f+8>>2]|0;c[F>>2]=p;_6(K,f)|0;c[E>>2]=p;f=pH(E,4)|0;h=c[w>>2]|0;m=(h|0)==0;b:do if(!m){k=h+-1|0;l=(h&k|0)==0;if(!l)if(f>>>0>>0)d=f;else d=(f>>>0)%(h>>>0)|0;else d=f&k;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(!b)u=35;else while(1){b=c[b>>2]|0;if(!b){u=35;break b}e=c[b+4>>2]|0;if((e|0)!=(f|0)){if(!l){if(e>>>0>=h>>>0)e=(e>>>0)%(h>>>0)|0}else e=e&k;if((e|0)!=(d|0)){u=35;break b}}if((c[b+8>>2]|0)==(p|0)){f=d;break b}}}else u=35;while(0);if((u|0)==35){u=0;n=0;fa(101,J|0,a|0,f|0,F|0);r=n;n=0;if(r&1){u=97;break}i=+(((c[x>>2]|0)+1|0)>>>0);j=+g[y>>2];if(j*+(h>>>0)>>0>2){d=(h&h+-1|0)==0;u=40}else{d=0;u=40}}else if(m){d=0;b=0;u=40}else f=d;do if((u|0)==40){u=0;r=b|(d^1)&1;q=~~+I(+(i/j))>>>0;n=0;da(562,a|0,(r>>>0>>0?q:r)|0);r=n;n=0;if(r&1){u=45;break a}b=c[w>>2]|0;d=b+-1|0;if(!(b&d)){h=b;f=f&d;break}if(f>>>0>>0)h=b;else{h=b;f=(f>>>0)%(b>>>0)|0}}while(0);b=c[(c[a>>2]|0)+(f<<2)>>2]|0;if(!b){b=c[J>>2]|0;c[b>>2]=c[t>>2];e=b;c[t>>2]=e;c[(c[a>>2]|0)+(f<<2)>>2]=t;if(c[b>>2]|0){b=c[(c[b>>2]|0)+4>>2]|0;d=h+-1|0;if(h&d){if(b>>>0>=h>>>0)b=(b>>>0)%(h>>>0)|0}else b=b&d;c[(c[a>>2]|0)+(b<<2)>>2]=e}}else{r=c[J>>2]|0;c[r>>2]=c[b>>2];c[b>>2]=r}c[x>>2]=(c[x>>2]|0)+1;c[J>>2]=0}r=c[p+40>>2]|0;b=o;d=c[p+36>>2]|0;while(1){q=d;if((r|0)==(q|0))break;d=c[d>>2]|0;c[v>>2]=d;m=d;c:do if(!(lC(a,v)|0)){c[D>>2]=d;p=pH(D,4)|0;k=c[z>>2]|0;o=(k|0)==0;d:do if(!o){h=k+-1|0;l=(k&h|0)==0;if(!l)if(p>>>0>>0)b=p;else b=(p>>>0)%(k>>>0)|0;else b=p&h;d=c[(c[K>>2]|0)+(b<<2)>>2]|0;if(d)while(1){d=c[d>>2]|0;if(!d)break d;e=c[d+4>>2]|0;if((e|0)!=(p|0)){do if(l)e=e&h;else{if(e>>>0>>0)break;e=(e>>>0)%(k>>>0)|0}while(0);if((e|0)!=(b|0))break d}if((c[d+8>>2]|0)==(m|0))break c}}while(0);n=0;fa(101,H|0,K|0,p|0,v|0);m=n;n=0;if(m&1){u=96;break a}i=+(((c[B>>2]|0)+1|0)>>>0);j=+g[C>>2];if(j*+(k>>>0)>>0>2){d=(k&k+-1|0)==0;u=80}else{d=0;u=80}}else if(o){d=0;b=0;u=80}do if((u|0)==80){u=0;o=b|(d^1)&1;m=~~+I(+(i/j))>>>0;n=0;da(562,K|0,(o>>>0>>0?m:o)|0);o=n;n=0;if(o&1){u=85;break a}b=c[z>>2]|0;d=b+-1|0;if(!(b&d)){k=b;b=p&d;break}if(p>>>0>>0){k=b;b=p}else{k=b;b=(p>>>0)%(b>>>0)|0}}while(0);d=c[(c[K>>2]|0)+(b<<2)>>2]|0;if(!d){d=c[H>>2]|0;c[d>>2]=c[s>>2];h=d;c[s>>2]=h;c[(c[K>>2]|0)+(b<<2)>>2]=s;if(c[d>>2]|0){d=c[(c[d>>2]|0)+4>>2]|0;e=k+-1|0;do if(!(k&e))d=d&e;else{if(d>>>0>>0)break;d=(d>>>0)%(k>>>0)|0}while(0);c[(c[K>>2]|0)+(d<<2)>>2]=h}}else{p=c[H>>2]|0;c[p>>2]=c[d>>2];c[d>>2]=p}c[B>>2]=(c[B>>2]|0)+1;c[H>>2]=0}while(0);d=q+4|0}d=f;o=b;b=c[B>>2]|0}if((u|0)==45){b=sa()|0;P()|0;d=c[J>>2]|0;c[J>>2]=0;if(!d)break;RCb(d);break}else if((u|0)==85){b=sa()|0;P()|0;d=c[H>>2]|0;c[H>>2]=0;if(!d)break;RCb(d);break}else if((u|0)==96){b=sa()|0;P()|0;break}else if((u|0)==97){b=sa()|0;P()|0;break}else if((u|0)==101){Pdb(K);yb=G;return}}else{b=sa()|0;P()|0}while(0);Pdb(K);Pdb(a);Ea(b|0)}function of(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,o=0,p=0;l=yb;yb=yb+64|0;m=l+40|0;k=l+24|0;o=l+12|0;i=l;a:do if(((d-b|0)>3?(a[b>>0]|0)==68:0)?(a[b+1>>0]|0)==118:0){f=b+2|0;h=a[f>>0]|0;do if((h+-49&255)<9){g=M5(f,d)|0;if((g|0)==(d|0))break a;if((a[g>>0]|0)!=95)break a;j=g-f|0;h=g+1|0;if((h|0)==(d|0))break a;if((a[h>>0]|0)==112){b=g+2|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;T3(o,f,j);n=0;V(128,o|0,0,139978)|0;d=n;n=0;if(d&1){b=sa()|0;P()|0}else{c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];f=0;while(1){if((f|0)==3)break;c[o+(f<<2)>>2]=0;f=f+1|0}n=0;U(216,k|0,139976)|0;d=n;n=0;do if(d&1){b=sa()|0;P()|0}else{c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];f=0;while(1){if((f|0)==3)break;c[k+(f<<2)>>2]=0;f=f+1|0}X6(m,i);f=e+4|0;g=c[f>>2]|0;if(g>>>0>=(c[e+8>>2]|0)>>>0){n=0;da(4198,e|0,m|0);e=n;n=0;if(e&1){b=sa()|0;P()|0;J2a(m);Chb(i);break}}else{I6(g,m);c[f>>2]=(c[f>>2]|0)+24}J2a(m);Chb(i);Chb(k);Chb(o);break a}while(0);Chb(k)}Chb(o);break}else{i=cc(h,d,e)|0;if((i|0)==(h|0))break a;g=e+4|0;if((c[e>>2]|0)==(c[g>>2]|0))break a;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;T3(o,f,j);n=0;V(128,o|0,0,139967)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0}else{c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,k|0,139976)|0;e=n;n=0;do if(!(e&1)){c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];b=0;while(1){if((b|0)==3)break;c[k+(b<<2)>>2]=0;b=b+1|0}e=a[m+11>>0]|0;d=e<<24>>24<0;n=0;V(124,(c[g>>2]|0)+-24|0,(d?c[m>>2]|0:m)|0,(d?c[m+4>>2]|0:e&255)|0)|0;e=n;n=0;if(e&1){b=sa()|0;P()|0;Chb(m);break}else{Chb(m);Chb(k);Chb(o);b=i;break a}}else{b=sa()|0;P()|0}while(0);Chb(k)}Chb(o);break}}else{c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;g=0;while(1){if((g|0)==3)break;c[m+(g<<2)>>2]=0;g=g+1|0}do if(h<<24>>24!=95){n=0;i=V(132,f|0,d|0,e|0)|0;h=n;n=0;if(h&1){b=sa()|0;P()|0;g=84;break}if((i|0)!=(f|0)){h=e+4|0;f=c[h>>2]|0;if((c[e>>2]|0)==(f|0))g=83;else{n=0;da(4196,k|0,f+-24|0);g=n;n=0;if(g&1){b=sa()|0;P()|0;g=84;break}f=m+11|0;if((a[f>>0]|0)<0){Fsb(c[m>>2]|0,0);c[m+4>>2]=0}else{Fsb(m,0);a[f>>0]=0}Yw(m);c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];f=0;while(1){if((f|0)==3)break;c[k+(f<<2)>>2]=0;f=f+1|0}Chb(k);g=c[h>>2]|0;f=0;while(1){if((f|0)==-1)break;p=f+-1|0;J2a(g+(p*24|0)|0);f=p}c[h>>2]=g+-24;f=i;g=63}}else g=63}else g=63;while(0);b:do if((g|0)==63){c:do if(((f|0)!=(d|0)?(a[f>>0]|0)==95:0)?(j=f+1|0,(j|0)!=(d|0)):0){n=0;g=V(127,j|0,d|0,e|0)|0;p=n;n=0;if(p&1){b=sa()|0;P()|0;g=84;break b}if((g|0)!=(j|0)){f=e+4|0;if((c[e>>2]|0)==(c[f>>2]|0)){g=83;break b}n=0;ea(218,o|0,139967,m|0);p=n;n=0;if(p&1){b=sa()|0;P()|0}else{n=0;U(216,o|0,139976)|0;p=n;n=0;do if(!(p&1)){c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}p=a[k+11>>0]|0;e=p<<24>>24<0;n=0;V(124,(c[f>>2]|0)+-24|0,(e?c[k>>2]|0:k)|0,(e?c[k+4>>2]|0:p&255)|0)|0;p=n;n=0;if(p&1){b=sa()|0;P()|0;Chb(k);break}else{Chb(k);Chb(o);b=g;break c}}else{b=sa()|0;P()|0}while(0);Chb(o)}g=84;break b}}while(0);Chb(m);break a}while(0);if((g|0)==83){Chb(m);break a}else if((g|0)==84){Chb(m);break}}while(0);Ea(b|0)}while(0);yb=l;return b|0}function pf(a,b){a=a|0;b=b|0;do switch(b|0){case 0:{IWa(a,121959)|0;return}case 2:{IWa(a,121977)|0;return}case 4:{IWa(a,122202)|0;return}case 20:{IWa(a,122012)|0;return}case 1:{IWa(a,123611)|0;return}case 3:{IWa(a,123629)|0;return}case 5:{IWa(a,123929)|0;return}case 21:{IWa(a,123664)|0;return}case 6:{IWa(a,120146)|0;return}case 8:{IWa(a,119906)|0;return}case 10:{IWa(a,119922)|0;return}case 12:{IWa(a,120056)|0;return}case 14:{IWa(a,120201)|0;return}case 16:{IWa(a,120134)|0;return}case 18:{IWa(a,120174)|0;return}case 7:{IWa(a,120675)|0;return}case 9:{IWa(a,120450)|0;return}case 11:{IWa(a,120466)|0;return}case 13:{IWa(a,120585)|0;return}case 15:{IWa(a,120746)|0;return}case 17:{IWa(a,120663)|0;return}case 19:{IWa(a,120719)|0;return}case 22:{IWa(a,123716)|0;return}case 23:{IWa(a,123733)|0;return}case 24:{IWa(a,122493)|0;return}case 25:{IWa(a,122340)|0;return}case 26:{IWa(a,124079)|0;return}case 27:{IWa(a,122356)|0;return}case 28:{IWa(a,124095)|0;return}case 29:{IWa(a,122372)|0;return}case 30:{IWa(a,124111)|0;return}case 31:{IWa(a,122388)|0;return}case 32:{IWa(a,124127)|0;return}case 33:{IWa(a,122213)|0;return}case 34:{IWa(a,123940)|0;return}case 37:{IWa(a,119959)|0;return}case 38:{IWa(a,120503)|0;return}case 35:{IWa(a,119941)|0;return}case 36:{IWa(a,120485)|0;return}case 41:{IWa(a,119995)|0;return}case 42:{IWa(a,120539)|0;return}case 39:{IWa(a,119977)|0;return}case 40:{IWa(a,120521)|0;return}case 43:{IWa(a,120683)|0;return}case 44:{IWa(a,120026)|0;return}case 45:{IWa(a,120154)|0;return}case 46:{IWa(a,120699)|0;return}case 47:{IWa(a,122035)|0;return}case 48:{IWa(a,122020)|0;return}case 49:{IWa(a,123702)|0;return}case 50:{IWa(a,123672)|0;return}case 51:{IWa(a,123687)|0;return}case 52:{IWa(a,122404)|0;return}case 53:{IWa(a,122424)|0;return}case 54:{IWa(a,122444)|0;return}case 55:{IWa(a,122464)|0;return}case 56:{IWa(a,124143)|0;return}case 57:{IWa(a,124163)|0;return}case 58:{IWa(a,124183)|0;return}case 59:{IWa(a,124203)|0;return}case 60:{IWa(a,124735)|0;return}case 61:{IWa(a,121310)|0;return}case 62:{IWa(a,122752)|0;return}case 63:{IWa(a,124362)|0;return}case 64:{IWa(a,120417)|0;return}case 65:{IWa(a,120962)|0;return}case 66:{IWa(a,124890)|0;return}case 67:{IWa(a,124672)|0;return}case 68:{IWa(a,124499)|0;return}case 69:{IWa(a,124484)|0;return}case 70:{IWa(a,121247)|0;return}case 71:{IWa(a,121074)|0;return}case 72:{IWa(a,121059)|0;return}case 73:{IWa(a,122689)|0;return}case 74:{IWa(a,122539)|0;return}case 75:{IWa(a,122524)|0;return}case 76:{IWa(a,124299)|0;return}case 77:{IWa(a,124265)|0;return}case 78:{IWa(a,124250)|0;return}case 79:{IWa(a,120211)|0;return}case 80:{IWa(a,120388)|0;return}case 81:{IWa(a,120429)|0;return}case 82:{IWa(a,120756)|0;return}case 83:{IWa(a,120933)|0;return}case 84:{IWa(a,120974)|0;return}case 85:{IWa(a,122774)|0;return}case 86:{IWa(a,122798)|0;return}case 87:{IWa(a,124384)|0;return}case 88:{IWa(a,124408)|0;return}case 89:{IWa(a,120231)|0;return}case 90:{IWa(a,120253)|0;return}case 91:{IWa(a,120776)|0;return}case 92:{IWa(a,120798)|0;return}case 93:{ma(141129,97990,411,132100);break}default:return}while(0)}function qf(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,o=0,p=0,q=0,r=0;o=yb;yb=yb+96|0;p=o+72|0;q=o+48|0;l=o+36|0;h=o+24|0;k=o+12|0;j=o;do if(((((b|0)!=(d|0)?(a[b>>0]|0)==77:0)?(r=b+1|0,f=cc(r,d,e)|0,(f|0)!=(r|0)):0)?(m=cc(f,d,e)|0,(m|0)!=(f|0)):0)?(i=e+4|0,g=c[i>>2]|0,((g-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){I6(p,g+-24|0);d=c[i>>2]|0;b=0;while(1){if((b|0)==-1)break;r=b+-1|0;J2a(d+(r*24|0)|0);b=r}c[i>>2]=d+-24;I6(q,d+-48|0);g=p+12|0;a:do if((a[((a[g+11>>0]|0)<0?c[g>>2]|0:g)>>0]|0)==40){n=0;U(216,p|0,139929)|0;r=n;n=0;if(r&1){b=sa()|0;P()|0}else{c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];b=0;while(1){if((b|0)==3)break;c[p+(b<<2)>>2]=0;b=b+1|0}n=0;da(4196,j|0,q|0);r=n;n=0;if(r&1){b=sa()|0;P()|0}else{r=a[j+11>>0]|0;e=r<<24>>24<0;n=0;V(124,k|0,(e?c[j>>2]|0:j)|0,(e?c[j+4>>2]|0:r&255)|0)|0;r=n;n=0;do if(r&1){b=sa()|0;P()|0}else{c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];c[h+8>>2]=c[k+8>>2];b=0;while(1){if((b|0)==3)break;c[k+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,h|0,141351)|0;r=n;n=0;if(r&1){b=sa()|0;P()|0;Chb(h);break}c[l>>2]=c[h>>2];c[l+4>>2]=c[h+4>>2];c[l+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}b=c[i>>2]|0;f=b+-24|0;d=f+11|0;if((a[d>>0]|0)<0){Fsb(c[f>>2]|0,0);c[b+-20>>2]=0;b=f}else{Fsb(f,0);a[d>>0]=0;b=f}Yw(f);c[b>>2]=c[l>>2];c[b+4>>2]=c[l+4>>2];c[b+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}Chb(l);Chb(h);Chb(j);Chb(k);n=0;V(128,g|0,0,139927)|0;r=n;n=0;if(r&1){b=sa()|0;P()|0;d=81;break a}c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];c[l+8>>2]=c[g+8>>2];b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}b=c[i>>2]|0;f=b+-12|0;d=f+11|0;if((a[d>>0]|0)<0){Fsb(c[f>>2]|0,0);c[b+-8>>2]=0;b=f}else{Fsb(f,0);a[d>>0]=0;b=f}Yw(f);c[b>>2]=c[l>>2];c[b+4>>2]=c[l+4>>2];c[b+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}Chb(l);d=80;break a}while(0);Chb(j)}Chb(k)}d=81}else{n=0;U(216,p|0,139961)|0;r=n;n=0;if(r&1){b=sa()|0;P()|0}else{c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];b=0;while(1){if((b|0)==3)break;c[p+(b<<2)>>2]=0;b=b+1|0}n=0;da(4196,j|0,q|0);r=n;n=0;if(r&1){b=sa()|0;P()|0}else{r=a[j+11>>0]|0;e=r<<24>>24<0;n=0;V(124,k|0,(e?c[j>>2]|0:j)|0,(e?c[j+4>>2]|0:r&255)|0)|0;r=n;n=0;do if(r&1){b=sa()|0;P()|0}else{c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];c[h+8>>2]=c[k+8>>2];b=0;while(1){if((b|0)==3)break;c[k+(b<<2)>>2]=0;b=b+1|0}n=0;U(216,h|0,141351)|0;r=n;n=0;if(r&1){b=sa()|0;P()|0;Chb(h);break}c[l>>2]=c[h>>2];c[l+4>>2]=c[h+4>>2];c[l+8>>2]=c[h+8>>2];b=0;while(1){if((b|0)==3)break;c[h+(b<<2)>>2]=0;b=b+1|0}b=c[i>>2]|0;f=b+-24|0;d=f+11|0;if((a[d>>0]|0)<0){Fsb(c[f>>2]|0,0);c[b+-20>>2]=0;b=f}else{Fsb(f,0);a[d>>0]=0;b=f}Yw(f);c[b>>2]=c[l>>2];c[b+4>>2]=c[l+4>>2];c[b+8>>2]=c[l+8>>2];b=0;while(1){if((b|0)==3)break;c[l+(b<<2)>>2]=0;b=b+1|0}Chb(l);Chb(h);Chb(j);Chb(k);b=c[i>>2]|0;f=b+-12|0;d=f+11|0;if((a[d>>0]|0)<0){Fsb(c[f>>2]|0,0);c[b+-8>>2]=0;b=f}else{Fsb(f,0);a[d>>0]=0;b=f}Yw(f);c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];b=0;while(1){if((b|0)==3){d=80;break a}c[g+(b<<2)>>2]=0;b=b+1|0}}while(0);Chb(j)}Chb(k)}d=81}while(0);if((d|0)==80){J2a(q);J2a(p);b=m;break}else if((d|0)==81){J2a(q);J2a(p);Ea(b|0)}}while(0);yb=o;return b|0}function rf(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0;G=yb;yb=yb+496|0;x=G+488|0;B=G+476|0;K=G+280|0;L=G+216|0;J=G+196|0;y=G+192|0;C=G+180|0;z=G+160|0;H=G+32|0;F=G;D=IWa(150452,106822)|0;SEa(mpa(D,c[d+8>>2]|0)|0,10)|0;ds(K);D=WCb(c[b+36>>2]|0)|0;n=0;ea(182,K|0,d|0,D|0);D=n;n=0;do if(!(D&1)){if((jxa()|0)>1?(n=0,ca(542,K|0),D=n,n=0,D&1):0)break;n=0;da(1950,L|0,d|0);D=n;n=0;if(!(D&1)){n=0;ca(528,L|0);D=n;n=0;if(D&1){d=sa()|0;P()|0}else{u=J+4|0;v=J+12|0;w=J+16|0;c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;c[J+12>>2]=0;g[w>>2]=1.0;D=b+44|0;A=K+124|0;a:do if(!(a[D>>0]&1)){d=K+128|0;E=62}else{d=K+128|0;q=c[d>>2]|0;r=C+4|0;s=J+8|0;b=0;e=c[A>>2]|0;b:while(1){t=e;if((q|0)==(t|0)){E=62;break a}f=c[e>>2]|0;c[y>>2]=f;o=f;e=o+8|0;if(c[e>>2]|0){c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;c[z+16>>2]=0;Jeb(z);n=0;ga(12,C|0,z|0,c[e>>2]|0,K|0,L|0);p=n;n=0;if(p&1){E=19;break}jmb(z);if((jxa()|0)>1){n=0;e=U(59,150452,106836)|0;p=n;n=0;if(p&1){E=20;break}n=0;e=U(78,e|0,(c[r>>2]|0)-(c[C>>2]|0)>>2|0)|0;p=n;n=0;if(p&1){E=20;break}n=0;U(59,e|0,106856)|0;p=n;n=0;if(p&1){E=20;break}n=0;ea(183,o|0,150452,0);p=n;n=0;if(p&1){E=20;break}}c:do if((c[r>>2]|0)-(c[C>>2]|0)>>2>>>0>1){c[x>>2]=f;p=pH(x,4)|0;k=c[u>>2]|0;m=(k|0)==0;d:do if(!m){h=k+-1|0;l=(k&h|0)==0;do if(l)b=p&h;else{if(p>>>0>>0){b=p;break}b=(p>>>0)%(k>>>0)|0}while(0);e=c[(c[J>>2]|0)+(b<<2)>>2]|0;if(e)while(1){e=c[e>>2]|0;if(!e)break d;f=c[e+4>>2]|0;if((f|0)!=(p|0)){do if(l)f=f&h;else{if(f>>>0>>0)break;f=(f>>>0)%(k>>>0)|0}while(0);if((f|0)!=(b|0))break d}if((c[e+8>>2]|0)==(o|0))break c}}while(0);n=0;fa(129,B|0,J|0,p|0,y|0);o=n;n=0;if(o&1){E=20;break b}i=+(((c[v>>2]|0)+1|0)>>>0);j=+g[w>>2];do if(!(j*+(k>>>0)>>0<=2){e=0;E=44;break}e=(k&k+-1|0)==0;E=44}while(0);do if((E|0)==44){E=0;o=b|(e^1)&1;m=~~+I(+(i/j))>>>0;n=0;da(994,J|0,(o>>>0>>0?m:o)|0);o=n;n=0;if(o&1){E=49;break b}b=c[u>>2]|0;e=b+-1|0;if(!(b&e)){k=b;b=p&e;break}if(p>>>0>>0){k=b;b=p;break}k=b;b=(p>>>0)%(b>>>0)|0}while(0);e=c[(c[J>>2]|0)+(b<<2)>>2]|0;do if(!e){e=c[B>>2]|0;c[e>>2]=c[s>>2];h=e;c[s>>2]=h;c[(c[J>>2]|0)+(b<<2)>>2]=s;if(!(c[e>>2]|0))break;e=c[(c[e>>2]|0)+4>>2]|0;f=k+-1|0;do if(!(k&f))e=e&f;else{if(e>>>0>>0)break;e=(e>>>0)%(k>>>0)|0}while(0);c[(c[J>>2]|0)+(e<<2)>>2]=h}else{p=c[B>>2]|0;c[p>>2]=c[e>>2];c[e>>2]=p}while(0);c[v>>2]=(c[v>>2]|0)+1;c[B>>2]=0}while(0);Vob(C)}e=t+4|0}if((E|0)==19){d=sa()|0;P()|0;jmb(z);break}else if((E|0)==20){d=sa()|0;P()|0}else if((E|0)==49){d=sa()|0;P()|0;b=c[B>>2]|0;c[B>>2]=0;if(b)RCb(b)}Vob(C)}while(0);do if((E|0)==62){f=c[d>>2]|0;e=H+20|0;h=F+28|0;d=c[A>>2]|0;while(1){if((d|0)==(f|0)){E=77;break}b=c[d>>2]|0;if(lea(b)|0){n=0;ga(13,H|0,K|0,b|0,J|0,L|0);E=n;n=0;if(E&1){E=71;break}if(!(UBb(a[e>>0]|0)|0)){n=0;ea(184,F|0,K|0,H|0);E=n;n=0;if(E&1){E=72;break}if(a[D>>0]&1?a[h>>0]&1:0){E=70;break}Ikb(F)}t8(H)}d=d+4|0}if((E|0)==70){n=0;fa(75,106863,106895,674,108386);n=0;d=sa()|0;P()|0;Ikb(F)}else if((E|0)==71){d=sa()|0;P()|0;break}else if((E|0)==72){d=sa()|0;P()|0}else if((E|0)==77){Pdb(J);P2(L);pK(K);yb=G;return}t8(H)}while(0);Pdb(J)}P2(L);L=d;pK(K);Ea(L|0)}}while(0);L=sa()|0;P()|0;pK(K);Ea(L|0)}function sf(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;A=yb;yb=yb+208|0;B=A+136|0;C=A+116|0;D=A+96|0;o=A+92|0;p=A+88|0;q=A+84|0;r=A+80|0;z=A+16|0;t=A+12|0;s=A+8|0;v=A+4|0;w=A;x=a+48|0;if((c[a+44>>2]|0)==(c[x>>2]|0)){yb=A;return}k=a+32|0;Yz(B,WCb(c[k>>2]|0)|0);n=0;ca(528,B|0);y=n;n=0;if(y&1){E=sa()|0;P()|0;P2(B);Ea(E|0)}d=C+8|0;l=C+12|0;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;c[C+12>>2]=0;g[C+16>>2]=1.0;b=D+8|0;m=D+12|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;c[D+12>>2]=0;g[D+16>>2]=1.0;y=a+44|0;i=c[x>>2]|0;u=B+44|0;a=c[y>>2]|0;a:while(1){j=a;if((i|0)==(j|0)){E=49;break}a=c[a>>2]|0;c[o>>2]=a;n=0;a=S(244,c[a+12>>2]|0)|0;h=n;n=0;if(h&1){E=16;break}c[p>>2]=a;n=0;a=U(156,u|0,p|0)|0;h=n;n=0;if(h&1){E=16;break}h=a+12|0;b:do if(c[h>>2]|0){a=a+8|0;e=a;while(1){e=c[e>>2]|0;if(!e){E=25;break}f=c[e+8>>2]|0;c[q>>2]=f;if((c[f+8>>2]|0)!=(c[(c[p>>2]|0)+8>>2]|0)){E=11;break a}n=0;f=U(99,B|0,q|0)|0;F=n;n=0;if(F&1){E=15;break a}if((c[f+8>>2]|0)!=1)break;n=0;f=U(99,B|0,q|0)|0;F=n;n=0;if(F&1){E=15;break a}if((c[(c[f>>2]|0)+16>>2]|0)!=(c[p>>2]|0)){E=23;break a}}if((E|0)==25){E=0;while(1){a=c[a>>2]|0;if(!a)break;c[(c[a+8>>2]|0)+8>>2]=c[(c[o>>2]|0)+8>>2]}a=c[p>>2]|0;n=0;e=U(157,C|0,o|0)|0;F=n;n=0;if(F&1){E=16;break a}c[e>>2]=a;break}if(c[h>>2]|0){n=0;a=U(156,u|0,o|0)|0;F=n;n=0;if(F&1){E=16;break a}if(c[a+12>>2]|0){a=a+8|0;e=a;while(1){e=c[e>>2]|0;if(!e)break;F=c[e+8>>2]|0;c[r>>2]=F;if((c[F+8>>2]|0)!=(c[(c[o>>2]|0)+8>>2]|0)){E=36;break a}n=0;f=U(99,B|0,r|0)|0;F=n;n=0;if(F&1){E=14;break a}if((c[f+8>>2]|0)!=1)break b;n=0;f=U(99,B|0,r|0)|0;F=n;n=0;if(F&1){E=14;break a}if((c[(c[f>>2]|0)+16>>2]|0)!=(c[o>>2]|0)){E=41;break a}}while(1){a=c[a>>2]|0;if(!a)break;c[(c[a+8>>2]|0)+8>>2]=c[(c[p>>2]|0)+8>>2]}a=c[p>>2]|0;n=0;e=U(157,D|0,o|0)|0;F=n;n=0;if(F&1){E=16;break a}c[e>>2]=a}}}while(0);a=j+4|0}c:do if((E|0)==11){n=0;fa(75,87505,87544,113,87580);n=0;E=17}else if((E|0)==14){b=sa()|0;P()|0;E=18}else if((E|0)==15){b=sa()|0;P()|0;E=18}else if((E|0)==16){b=sa()|0;P()|0;E=18}else if((E|0)==23){n=0;fa(75,87595,87544,116,87580);n=0;E=17}else if((E|0)==36){n=0;fa(75,87649,87544,143,87580);n=0;E=17}else if((E|0)==41){n=0;fa(75,87685,87544,146,87580);n=0;E=17}else if((E|0)==49){d:do if(c[l>>2]|c[m>>2]|0){F=WCb(c[k>>2]|0)|0;n=0;da(1950,z|0,F|0);F=n;n=0;if(F&1){E=17;break c}n=0;ca(528,z|0);F=n;n=0;do if(!(F&1)){e:while(1){d=c[d>>2]|0;if(!d){E=71;break}a=d;h=c[a+8>>2]|0;c[t>>2]=c[a+12>>2];n=0;a=U(156,u|0,t|0)|0;F=n;n=0;if(F&1){E=66;break}a=a+8|0;e=a;while(1){e=c[e>>2]|0;if(!e)break;c[s>>2]=c[e+8>>2];n=0;f=U(99,z|0,s|0)|0;F=n;n=0;if(F&1){E=65;break e}if((c[f+8>>2]|0)!=1){E=60;break}if((c[(c[f>>2]|0)+16>>2]|0)!=(h|0)){E=60;break}}f:do if((E|0)==60){E=0;while(1){a=c[a>>2]|0;if(!a)break f;c[(c[a+8>>2]|0)+8>>2]=c[(c[t>>2]|0)+8>>2]}}while(0)}if((E|0)==65){b=sa()|0;P()|0;break}else if((E|0)==66){b=sa()|0;P()|0;break}else if((E|0)==71){g:while(1){b=c[b>>2]|0;if(!b){E=84;break}f=b;c[v>>2]=c[f+8>>2];f=c[f+12>>2]|0;n=0;d=U(156,u|0,v|0)|0;F=n;n=0;if(F&1){E=64;break}d=d+8|0;a=d;while(1){a=c[a>>2]|0;if(!a)break;c[w>>2]=c[a+8>>2];n=0;e=U(99,z|0,w|0)|0;F=n;n=0;if(F&1){E=63;break g}if((c[e+8>>2]|0)!=1){E=79;break}if((c[(c[e>>2]|0)+16>>2]|0)!=(f|0)){E=79;break}}h:do if((E|0)==79){E=0;while(1){d=c[d>>2]|0;if(!d)break h;c[(c[d+8>>2]|0)+8>>2]=c[(c[v>>2]|0)+8>>2]}}while(0)}if((E|0)==63){b=sa()|0;P()|0;break}else if((E|0)==64){b=sa()|0;P()|0;break}else if((E|0)==84){P2(z);break d}}}else{b=sa()|0;P()|0}while(0);P2(z);break c}while(0);e=c[x>>2]|0;b=c[y>>2]|0;while(1){if((b|0)==(e|0))break;d=(c[b>>2]|0)+12|0;n=0;a=S(244,c[d>>2]|0)|0;F=n;n=0;if(F&1){E=13;break}c[d>>2]=c[a+12>>2];b=b+4|0}if((E|0)==13){b=sa()|0;P()|0;E=18;break}Pdb(D);Pdb(C);P2(B);yb=A;return}while(0);if((E|0)==17){b=sa()|0;P()|0;E=18}Pdb(D);Pdb(C);F=b;P2(B);Ea(F|0)}function tf(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,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=yb;yb=yb+208|0;m=L+196|0;H=L+192|0;K=L+48|0;J=L+32|0;I=L+28|0;o=L+16|0;l=L+8|0;k=L;if((a[147448]|0)==0?mlb(147448)|0:0){F=RUa()|0;c[37326]=F}if((a[b+40>>0]&1)==0?!((a[b+20>>0]&1)==0&(c[37326]|0)==0):0){F=a[b+22>>0]<<1&2;BM(IWa(150620,94996)|0);j=b+8|0;k=c[j>>2]|0;h=b+12|0;i=c[h>>2]|0;E=0;e=k;while(1){if((i|0)==(e|0))break;f=c[e>>2]|0;g=a[f+4+11>>0]|0;if(g<<24>>24<0)f=c[f+8>>2]|0;else f=g&255;E=E>>>0>>0?f:E;e=e+4|0}if((c[37326]|0)>2){Zsb(m,95027);di(c[m>>2]|0,c[b>>2]|0);D=b;i=c[h>>2]|0;k=c[j>>2]|0}else D=b;m=K+64|0;o=K+8|0;r=K+12|0;s=K+4|0;t=K+64|0;u=K+136|0;v=K+140|0;w=K+8|0;C=K+12|0;x=K+44|0;y=K+56|0;z=K+60|0;B=b+36|0;p=0.0;a:while(1){l=k;if((i|0)==(l|0)){e=65;break}j=c[k>>2]|0;c[H>>2]=j;c[o>>2]=40176;c[K>>2]=31772;c[m>>2]=31792;c[s>>2]=0;Hoa(t,r);c[u>>2]=0;c[v>>2]=-1;c[K>>2]=40156;c[m>>2]=40196;c[o>>2]=40176;RKa(C);c[C>>2]=39800;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;e=0;while(1){if((e|0)==3)break;c[x+(e<<2)>>2]=0;e=e+1|0}k=j;c[y>>2]=0;c[z>>2]=24;if((c[37326]|0)==2?(n=0,da(2188,c[D>>2]|0,w|0),A=n,n=0,A&1):0){e=23;break}n=0;e=U(59,150620,95034)|0;A=n;n=0;if(A&1){e=23;break}A=k+4|0;n=0;e=U(61,e|0,A|0)|0;h=n;n=0;if(h&1){e=23;break}n=0;U(59,e|0,95064)|0;h=n;n=0;if(h&1){e=23;break}g=A+11|0;h=k+8|0;f=0;while(1){e=a[g>>0]|0;if(e<<24>>24<0)e=c[h>>2]|0;else e=e&255;if(f>>>0>=(E-e|0)>>>0)break;n=0;U(62,150620,32)|0;e=n;n=0;if(e&1){e=22;break a}f=f+1|0}f=bW()|0;g=P()|0;n=0;e=S(c[(c[j>>2]|0)+20>>2]|0,k|0)|0;j=n;n=0;if(j&1){e=23;break}if(e){n=0;ea(157,c[D>>2]|0,b|0,H|0);k=n;n=0;if(k&1){e=23;break}}else{n=0;da(2189,b|0,k|0);k=n;n=0;if(k&1){e=23;break}}e=bW()|0;e=Ndb(e|0,P()|0,f|0,g|0)|0;q=(+(e>>>0)+4294967296.0*+(P()|0))/1.0e9;n=0;e=T(1,150620,+q)|0;k=n;n=0;if(k&1){e=23;break}n=0;e=U(59,e|0,95069)|0;k=n;n=0;if(k&1){e=23;break}n=0;ca(497,e|0);k=n;n=0;if(k&1){e=23;break}p=p+q;n=0;U(59,150620,95079)|0;k=n;n=0;if(k&1){e=23;break}n=0;e=V(38,c[D>>2]|0,c[B>>2]|0,F|0)|0;k=n;n=0;if(k&1){e=23;break}if(!e){e=46;break}if((c[37326]|0)>2){n=0;da(230,I|0,A|0);A=n;n=0;if(A&1){e=23;break}n=0;da(2190,c[I>>2]|0,c[D>>2]|0);A=n;n=0;if(A&1){e=23;break}}c0a(K);k=l+4|0}b:do if((e|0)==22){d=sa()|0;P()|0;e=25}else if((e|0)==23){d=sa()|0;P()|0;e=25}else if((e|0)==46){n=0;ca(490,c[D>>2]|0);L=n;n=0;c:do if(!(L&1)){do if((c[37326]|0)<=1){n=0;d=U(59,150620,95108)|0;L=n;n=0;if(L&1)break c;n=0;d=U(61,d|0,A|0)|0;L=n;n=0;if(L&1)break c;n=0;U(59,d|0,95169)|0;L=n;n=0;if(L&1)break c}else{n=0;d=U(59,150620,95108)|0;L=n;n=0;if(L&1)break c;n=0;d=U(61,d|0,A|0)|0;L=n;n=0;if(L&1)break c;n=0;d=U(59,d|0,95120)|0;L=n;n=0;if(L&1)break c;n=0;da(75,J|0,C|0);L=n;n=0;if(L&1)break c;n=0;d=U(61,d|0,J|0)|0;L=n;n=0;if(!(L&1)?(n=0,U(59,d|0,127446)|0,L=n,n=0,!(L&1)):0){Chb(J);break}d=sa()|0;P()|0;Chb(J);break b}while(0);n=0;ba(6);n=0}while(0);d=sa()|0;P()|0;e=25}else if((e|0)==65){BM(IWa(_m(IWa(150620,95297)|0,p)|0,95069)|0);IWa(150620,95323)|0;if(uk(c[D>>2]|0,c[B>>2]|0,F)|0){yb=L;return}else{eeb(c[D>>2]|0);IWa(150620,95356)|0;Ta()}}while(0);c0a(K);L=d;Ea(L|0)}c[o>>2]=0;g=o+4|0;c[g>>2]=0;h=o+8|0;c[h>>2]=0;c[l>>2]=o;c[l+4>>2]=b;i=c[b+12>>2]|0;d=c[b+8>>2]|0;d:while(1){j=d;if((i|0)==(j|0)){e=80;break}f=c[d>>2]|0;c[k>>2]=f;d=f;n=0;e=S(c[(c[f>>2]|0)+20>>2]|0,d|0)|0;K=n;n=0;if(K&1){e=74;break}do if(e){d=c[g>>2]|0;if((d|0)==(c[h>>2]|0)){n=0;da(2191,o|0,k|0);K=n;n=0;if(K&1){e=74;break d}else break}else{c[d>>2]=f;c[g>>2]=(c[g>>2]|0)+4;break}}else{n=0;ca(532,l|0);K=n;n=0;if(K&1){e=74;break d}n=0;da(2189,b|0,d|0);K=n;n=0;if(K&1){e=74;break d}}while(0);d=j+4|0}do if((e|0)==74){d=sa()|0;P()|0}else if((e|0)==80){n=0;ca(532,l|0);b=n;n=0;if(b&1){d=sa()|0;P()|0;break}Vob(o);yb=L;return}while(0);Vob(o);L=d;Ea(L|0)}function uf(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0;J=yb;yb=yb+64|0;y=J+56|0;K=J+44|0;D=J+40|0;L=J+28|0;E=J+24|0;M=J+12|0;F=J+8|0;G=J+4|0;H=J;z=a+16|0;A=a+44|0;B=M+4|0;C=a+24|0;w=0;f=0;b=c[a+12>>2]|0;a:while(1){if((z|0)==(b|0)){x=104;break}d=c[b+16>>2]|0;u=iqb(d)|0;c[E>>2]=u;v=u;b:do if(!u){d=Leb(d)|0;c[G>>2]=d;d=S0(a,G)|0;t=d+4|0;e=f;d=c[d>>2]|0;while(1){if((t|0)==(d|0)){f=e;e=w;break b}c[H>>2]=c[d+16>>2];s=wl(A,H)|0;p=c[G>>2]|0;c[D>>2]=p;i=pH(D,4)|0;r=s+4|0;l=c[r>>2]|0;q=(l|0)==0;c:do if(!q){m=l+-1|0;o=(l&m|0)==0;if(!o)if(i>>>0>>0)e=i;else e=(i>>>0)%(l>>>0)|0;else e=i&m;f=c[(c[s>>2]|0)+(e<<2)>>2]|0;if(!f)x=65;else while(1){f=c[f>>2]|0;if(!f){x=65;break c}h=c[f+4>>2]|0;if((h|0)!=(i|0)){if(!o){if(h>>>0>=l>>>0)h=(h>>>0)%(l>>>0)|0}else h=h&m;if((h|0)!=(e|0)){x=65;break c}}if((c[f+8>>2]|0)==(p|0)){f=e;break c}}}else x=65;while(0);if((x|0)==65){x=0;Uja(L,s,i,G);m=s+12|0;j=+(((c[m>>2]|0)+1|0)>>>0);k=+g[s+16>>2];if(k*+(l>>>0)>>0>2){f=(l&l+-1|0)==0;x=69}else{f=0;x=69}}else if(q){f=0;e=0;x=69}else i=e;do if((x|0)==69){x=0;v=e|(f^1)&1;u=~~+I(+(j/k))>>>0;n=0;da(435,s|0,(v>>>0>>0?u:v)|0);v=n;n=0;if(v&1){x=74;break a}e=c[r>>2]|0;f=e+-1|0;if(!(e&f)){l=e;i=i&f;break}if(i>>>0>>0)l=e;else{l=e;i=(i>>>0)%(e>>>0)|0}}while(0);e=c[(c[s>>2]|0)+(i<<2)>>2]|0;if(!e){v=s+8|0;e=c[L>>2]|0;c[e>>2]=c[v>>2];h=e;c[v>>2]=h;c[(c[s>>2]|0)+(i<<2)>>2]=v;if(c[e>>2]|0){e=c[(c[e>>2]|0)+4>>2]|0;f=l+-1|0;if(l&f){if(e>>>0>=l>>>0)e=(e>>>0)%(l>>>0)|0}else e=e&f;c[(c[s>>2]|0)+(e<<2)>>2]=h}}else{v=c[L>>2]|0;c[v>>2]=c[e>>2];c[e>>2]=v}c[m>>2]=(c[m>>2]|0)+1;c[L>>2]=0;f=i}e=c[d+4>>2]|0;d:do if(!e)while(1){e=c[d+8>>2]|0;if((d|0)==(c[e>>2]|0)){d=e;break d}d=e}else{d=e;while(1){e=c[d>>2]|0;if(!e)break;d=e}}while(0);e=f}}else{v2(M,c[u+12>>2]|0);t=c[B>>2]|0;d=w;e=c[M>>2]|0;while(1){s=e;if((t|0)==(s|0))break;c[F>>2]=c[e>>2];n=0;r=U(102,C|0,F|0)|0;w=n;n=0;if(w&1){x=45;break a}c[y>>2]=v;q=pH(y,4)|0;p=r+4|0;l=c[p>>2]|0;o=(l|0)==0;e:do if(!o){i=l+-1|0;m=(l&i|0)==0;if(!m)if(q>>>0>>0)d=q;else d=(q>>>0)%(l>>>0)|0;else d=q&i;e=c[(c[r>>2]|0)+(d<<2)>>2]|0;if(!e)x=23;else while(1){e=c[e>>2]|0;if(!e){x=23;break e}h=c[e+4>>2]|0;if((h|0)!=(q|0)){if(!m){if(h>>>0>=l>>>0)h=(h>>>0)%(l>>>0)|0}else h=h&i;if((h|0)!=(d|0)){x=23;break e}}if((c[e+8>>2]|0)==(u|0))break e}}else x=23;while(0);if((x|0)==23){x=0;n=0;fa(99,K|0,r|0,q|0,E|0);w=n;n=0;if(w&1){x=45;break a}m=r+12|0;j=+(((c[m>>2]|0)+1|0)>>>0);k=+g[r+16>>2];if(k*+(l>>>0)>>0>2){e=(l&l+-1|0)==0;x=28}else{e=0;x=28}}else if(o){e=0;d=0;x=28}do if((x|0)==28){x=0;w=d|(e^1)&1;o=~~+I(+(j/k))>>>0;n=0;da(434,r|0,(w>>>0>>0?o:w)|0);w=n;n=0;if(w&1){x=33;break a}d=c[p>>2]|0;e=d+-1|0;if(!(d&e)){l=d;d=q&e;break}if(q>>>0>>0){l=d;d=q}else{l=d;d=(q>>>0)%(d>>>0)|0}}while(0);e=c[(c[r>>2]|0)+(d<<2)>>2]|0;if(!e){w=r+8|0;e=c[K>>2]|0;c[e>>2]=c[w>>2];i=e;c[w>>2]=i;c[(c[r>>2]|0)+(d<<2)>>2]=w;if(c[e>>2]|0){e=c[(c[e>>2]|0)+4>>2]|0;h=l+-1|0;if(l&h){if(e>>>0>=l>>>0)e=(e>>>0)%(l>>>0)|0}else e=e&h;c[(c[r>>2]|0)+(e<<2)>>2]=i}}else{w=c[K>>2]|0;c[w>>2]=c[e>>2];c[e>>2]=w}c[m>>2]=(c[m>>2]|0)+1;c[K>>2]=0}e=s+4|0}Htb(M);e=d}while(0);d=c[b+4>>2]|0;f:do if(!d)while(1){d=c[b+8>>2]|0;if((b|0)==(c[d>>2]|0)){b=d;break f}b=d}else{b=d;while(1){d=c[b>>2]|0;if(!d)break;b=d}}while(0);w=e}if((x|0)==33){b=sa()|0;P()|0;d=c[K>>2]|0;c[K>>2]=0;if(!d){L=b;Htb(M);Ea(L|0)}RCb(d);L=b;Htb(M);Ea(L|0)}else if((x|0)==45){L=sa()|0;P()|0;Htb(M);Ea(L|0)}else if((x|0)==74){b=sa()|0;P()|0;d=c[L>>2]|0;c[L>>2]=0;if(!d)Ea(b|0);RCb(d);Ea(b|0)}else if((x|0)==104){yb=J;return}} -function qBb(){Zsb(149556,134240);return}function rBb(){Zsb(149552,134247);return}function sBb(){Zsb(149548,134255);return}function tBb(){Zsb(149544,134260);return}function uBb(){Zsb(149540,134267);return}function vBb(){Zsb(149536,134274);return}function wBb(){Zsb(149532,134280);return}function xBb(){Zsb(149528,134285);return}function yBb(){Zsb(149524,134291);return}function zBb(){Zsb(149520,134298);return}function ABb(){Zsb(149516,134306);return}function BBb(){Zsb(149512,134318);return}function CBb(){Zsb(149508,134330);return}function DBb(){Zsb(149504,134343);return}function EBb(){G0a(149168);return}function FBb(){SAb();return}function GBb(a,b){a=a|0;b=b|0;return +(+$zb(a,b))}function HBb(a,b){a=a|0;b=b|0;return +(+aAb(a,b))}function IBb(){na(150272);return}function JBb(){Zsb(149500,134357);return}function KBb(){c[36978]=50488;return}function LBb(){c[36974]=50452;return}function MBb(a){a=a|0;c[a>>2]=50708;return}function NBb(a){a=a|0;return 136143}function OBb(a){a=a|0;return (a|0)==1|0}function PBb(a){a=a|0;return (a|0)==6|0}function QBb(){UAb();return}function RBb(){PAb();return}function SBb(a){a=a|0;return ((a|32)+-97|0)>>>0<26|0}function TBb(a){a=a|0;c[a>>2]=50848;return}function UBb(a){a=a|0;return (a&1)!=0|0}function VBb(a){a=a|0;return (a|0)==2|0}function WBb(a){a=a|0;return a+15&-16|0}function XBb(a,b){a=+a;b=+b;return +(+Gua(a,b))}function YBb(){return 1073741823}function ZBb(){return 2147483647}function _Bb(a){a=a|0;return 135598}function $Bb(a){a=a|0;return (a&1)==0|0}function aCb(a){a=a|0;return (a|0)==3|0}function bCb(a){a=a|0;return (a|0)==0|0}function cCb(a,b){a=+a;b=b|0;return +(+R1(a,b))}function dCb(){As();return}function eCb(a){a=a|0;return (a|0)!=0|0}function fCb(a){a=a|0;c[a>>2]=3;return}function gCb(b){b=b|0;a[b>>0]=0;return}function hCb(a){a=a|0;c[a>>2]=0;return}function iCb(){Csb();return}function jCb(a){a=a|0;return Cb[a&127]()|0}function kCb(a,b,c){a=a|0;b=b|0;c=c|0;N(17)}function lCb(a){a=a|0;Xjb(a);return}function mCb(){sCb();return}function nCb(a,b){a=+a;b=b|0;return +(+w1(a,b))}function oCb(a){a=a|0;return a+184|0}function pCb(){QAb();return}function qCb(a){a=a|0;return (a+-65|0)>>>0<26|0}function rCb(a){a=a|0;return (a+-48|0)>>>0<10|0}function sCb(){Mtb();return}function tCb(a){a=a|0;return a+8|0}function uCb(a){a=a|0;return a+16|0}function vCb(a){a=a|0;return 1}function wCb(a,b){a=+a;b=+b;return +(+Nl(a,b))}function xCb(a){a=a|0;return Ana(a)|0}function yCb(a){a=+a;return a%1.0==0.0|0}function zCb(){Sh();return}function ACb(a,b){a=a|0;b=b|0;N(4);return 0}function BCb(){dCb();return}function CCb(a){a=a|0;return 139524}function DCb(a){a=a|0;Qb[a&63]()}function ECb(a,b){a=a|0;b=+b;N(3);return 0}function FCb(a){a=a|0;return 139660}function GCb(a){a=a|0;return itb(a)|0}function HCb(a){a=a|0;return rCb(a)|0}function ICb(){wa()}function JCb(a,b){a=a|0;b=b|0;N(16)}function KCb(a){a=a|0;gb()}function LCb(a){a=a|0;la(a|0)}function MCb(a){a=a|0;return 0}function NCb(){qa()}function OCb(a){a=a|0;return mla(a)|0}function PCb(a){a=a|0;RCb(a);return}function QCb(a){a=a|0;yb=a}function RCb(a){a=a|0;wg(a);return}function SCb(a){a=a|0;return}function TCb(){Oa(149744);return}function UCb(){xa()}function VCb(a){a=a|0;N(2);return 0}function WCb(a){a=a|0;return a|0}function XCb(){Ca(149744);return}function YCb(a){a=+a;N(1);return 0}function ZCb(){return 126}function _Cb(){return 133}function $Cb(){return 125}function aDb(){return 132}function bDb(){return 123}function cDb(){return 130}function dDb(){return 122}function eDb(){return 129}function fDb(){return 54}function gDb(){return}function hDb(){return 124}function iDb(){return 139}function jDb(){return 136}function kDb(){return 131}function lDb(){return 147}function mDb(){return 141}function nDb(){return 127}function oDb(){return 137}function pDb(){return 134}function qDb(){return 148}function rDb(){return 142}function sDb(){return 150}function tDb(){return 144}function uDb(){return 151}function vDb(){return 145}function wDb(){return 103}function xDb(){return 102}function yDb(){return 101}function zDb(){return 100}function ADb(){return 105}function BDb(){return 104}function CDb(){return 149}function DDb(){return 143}function EDb(){return 121}function FDb(){return 138}function GDb(){return 135}function HDb(){return 128}function IDb(){return 146}function JDb(){return 140}function KDb(){return 67}function LDb(){return 83}function MDb(){return 80}function NDb(){return 113}function ODb(){return 107}function PDb(){return 114}function QDb(){return 108}function RDb(){return 79}function SDb(){return 99}function TDb(){return 89}function UDb(){return 78}function VDb(){return 98}function WDb(){return 88}function XDb(){return 116}function YDb(){return 110}function ZDb(){return 93}function _Db(){return 82}function $Db(){return 92}function aEb(){return 115}function bEb(){return 109}function cEb(){return 81}function dEb(){return 91}function eEb(){return 90}function fEb(){return 117}function gEb(){return 111}function hEb(){return 85}function iEb(){return 95}function jEb(){return 84}function kEb(){return 94}function lEb(){return 112}function mEb(){return 106}function nEb(){return yb|0}function oEb(a){a=a|0;N(15)}function pEb(){return 120}function qEb(){return 64}function rEb(){return 51}function sEb(){return 77}function tEb(){return 97}function uEb(){return 87}function vEb(){return 65}function wEb(){return 52}function xEb(){return 68}function yEb(){return 55}function zEb(){return 69}function AEb(){return 56}function BEb(){return 76}function CEb(){return 96}function DEb(){return 86}function EEb(){return 53}function FEb(){return 118}function GEb(){return 63}function HEb(){return 50}function IEb(){return 36}function JEb(){return 11}function KEb(){return 37}function LEb(){return 39}function MEb(){return 38}function NEb(){return 31}function OEb(){return 30}function PEb(){return 119}function QEb(){return 66}function REb(){return 71}function SEb(){return 58}function TEb(){return 72}function UEb(){return 59}function VEb(){return 73}function WEb(){return 60}function XEb(){return 74}function YEb(){return 61}function ZEb(){return 75}function _Eb(){return 62}function $Eb(){return 70}function aFb(){return 57}function bFb(){return 29}function cFb(){return 28}function dFb(){return 150272}function eFb(){return 34}function fFb(){return -1}function gFb(){return 26}function hFb(){return 35}function iFb(){return 10}function jFb(){return 17}function kFb(){return 19}function lFb(){return 27}function mFb(){return 43}function nFb(){return 42}function oFb(){return 45}function pFb(){return 44}function qFb(){return 47}function rFb(){return 22}function sFb(){return 46}function tFb(){return 49}function uFb(){return 24}function vFb(){return 48}function wFb(){return 23}function xFb(){return 32}function yFb(){return 25}function zFb(){return 46896}function AFb(){return 9}function BFb(){return 15}function CFb(){return 5}function DFb(){return 13}function EFb(){return 33}function FFb(){return 41}function GFb(){return 16}function HFb(){return 40}function IFb(){return 14}function JFb(){return 7}function KFb(){return 8}function LFb(){return 12}function MFb(){return 20}function NFb(){return 4}function OFb(){return 18}function PFb(){Ta()}function QFb(){return 21}function RFb(){return 3}function SFb(){return 6}function TFb(){N(0);return 0}function UFb(){return 0}function VFb(){return 2}function WFb(){return 1}function XFb(){N(14)} - -// EMSCRIPTEN_END_FUNCS -var Cb=[TFb,aia,Ria,Eia,Dia,Z2a,RWa,Fjb,lfb,D$a,E$a,h$a,Ohb,_Ea,OZa,D3a,P1a,DYa,upb,n_a,x1a,mVa,Zlb,Nkb,h1a,A$a,Sib,QZa,PZa,lWa,n4a,g0a,f0a,crb,mmb,Ykb,w6a,Yna,XXa,m_a,g$a,E_a,Ipb,tnb,Drb,GZa,o$a,U3a,R_a,oXa,RZa,f$a,b5a,l_a,fkb,nib,vZa,Y2a,e$a,w1a,sdb,aRa,fhb,Cfb,ggb,afb,Qdb,eqb,mob,Ujb,s2a,V8,j8,yJa,wKa,T2a,Q1a,sE,XU,Cab,bUa,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb,TFb];var Db=[YCb,ysb];var Eb=[VCb,MCb,MCb,w3,pAa,U8,vga,HVa,Zta,xba,tQa,vCb,cKa,vCb,MCb,sub,vCb,sJa,a6a,vgb,dAa,Uhb,vCb,nob,Akb,vCb,Lpb,vCb,Kpb,vCb,gpb,vCb,JIa,vCb,cTa,vCb,nmb,vCb,S$a,vCb,Dgb,vCb,Mrb,vCb,vBa,MCb,lnb,eoa,L2a,Fqa,s6a,i4a,$eb,vCb,Dhb,vCb,EQa,vCb,XEa,vCb,q0a,vCb,jlb,MCb,vCb,Upb,vCb,U_a,MCb,vCb,IIa,vCb,emb,Spa,Qbb,P5a,Olb,Zpb,Ina,dRa,Mhb,vCb,fpb,vCb,Gob,vCb,Cib,MCb,MCb,vCb,wab,vCb,Vlb,MCb,Imb,vCb,dob,vCb,enb,vCb,qSa,vCb,epb,vCb,srb,vCb,Jmb,vCb,veb,vCb,xeb,vCb,web,vCb,yeb,vCb,zeb,vCb,Qob,vCb,ksb,vCb,fob,MCb,vCb,eob,MCb,gbb,Bjb,v9a,Nib,MCb,QEa,vCb,Hsb,vCb,dsb,Mn,Im,z$a,gXa,Ukb,y$a,gXa,Tkb,x$a,gXa,Skb,vCb,edb,MCb,aXa,_Bb,Vub,MCb,MCb,Vub,HGa,NBb,Xub,gS,gS,lrb,asb,mrb,bsb,oqb,V4a,h4a,W4a,GCa,FCa,ECa,HCa,oqb,C4a,Y3a,D4a,lDa,kDa,jDa,mDa,Rzb,Rzb,MCb,Rzb,Rzb,MCb,Owb,Owb,MCb,Owb,Owb,MCb,MCb,MCb,Ezb,twa,MCb,jQa,Rub,Qub,Iub,zub,vCb,vCb,vCb,MCb,MCb,Ezb,yAb,KAb,CCb,Xub,FCb,uY,xaa,mla,cV,dWa,Mga,Mga,w$,ala,k0a,Oaa,Yga,Dba,Qab,nKa,lw,ufb,Peb,Gka,bza,Tfb,W_a,xU,Efb,tfb,cfb,Ffb,wdb,Leb,Keb,heb,feb,vfb,CEa,efb,hdb,ieb,Ldb,Adb,zdb,ydb,geb,Hdb,Deb,ffb,dfb,Veb,wfb,Kdb,gdb,Jdb,Idb,oU,Teb,xfb,Ueb,Qab,fD,bc,Raa,cWa,Dpb,ytb,Rta,Sx,Mcb,$Xa,Xeb,Rv,LV,qA,B_a,Cfa,Ija,gV,ifa,kib,Ekb,Era,Wea,nkb,m9,yA,Wsa,baa,JF,IF,oH,Nv,Yl,HF,Eu,Eeb,Lib,cib,Jhb,Wdb,fbb,Hgb,Ggb,mgb,kgb,shb,thb,Gfb,yfb,xdb,bkb,hB,Ct,St,ah,Bdb,GH,gi,xmb,kH,kH,u1,tgb,Ojb,wS,hvb,vvb,Oub,Vwb,Vwb,Vwb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb,VCb];var Fb=[ECb,_m];var Gb=[ACb,eI,Lq,eFa,Lya,abb,abb,p4a,p4a,o4a,o4a,EVa,EVa,VWa,UWa,FWa,EWa,DWa,CWa,BWa,AWa,z_a,A0a,YMa,SRa,csb,LYa,csb,UUa,ccb,m0a,z0a,MSa,c2a,lRa,m1a,uS,ko,l4a,k4a,j4a,Zrb,Zrb,Zrb,Zrb,Jw,sw,ux,lx,phb,ugb,Fzb,Pjb,Qjb,Bub,wtb,rrb,KJa,pIa,IWa,Ym,Wqa,SEa,Zm,wQ,a_,Thb,u7,G7,AZa,sQ,uQ,mG,Uea,uXa,zZa,Qu,lYa,Ym,O8,ht,Vr,mpa,bx,jka,ZH,vJa,c6,uv,O8,h7,zm,xu,O8,uXa,Opb,Cda,Wl,Maa,S0,GF,e6,xl,u2,GF,e6,X9,O8,e6,$r,qeb,kv,L6,UP,yK,kQ,JEa,om,vs,YM,D7,cj,mHa,Il,snb,Vl,bm,ll,GF,e6,DF,t7,O8,cCa,Ul,Ul,Tl,Gm,fH,Qt,D7a,fn,Lf,zn,pm,$l,Om,O8,O8,jgb,q5,Pc,_Wa,IZ,lMa,dm,wl,um,O8,O8,t7,Q6a,K$,im,jm,gQa,SEa,GF,e6,GF,e6,Qi,dk,CQ,Jm,u7,n4,J5a,WZ,WZ,tm,Gl,Wm,rm,GF,e6,Jlb,O8,O8,h7,h7,O8,YA,gk,O8,_l,rc,_l,rza,ofb,G7,mA,G7,oN,$db,pA,Pz,nM,iq,hq,yl,fy,xtb,yrb,nOa,IEa,NLa,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb,ACb];var Hb=[DAb,gnb,iS,yS,Y8,Un,QL,zlb,L8,Cba,cC,YK,nha,Ula,mw,nMa,gnb,MT,fU,ima,u8a,w9,v7,aLa,SKa,chb,chb,aIa,bIa,bnb,K7a,vMa,wMa,Xmb,UQ,Geb,Iz,zlb,uk,Vf,M_a,Oh,Rm,XP,uga,coa,wma,JR,mv,B8,Kha,Uo,G1a,Jc,a5,Uha,pVa,zMa,ch,gc,T9,ru,zA,Tt,dQ,Ic,yy,Ola,Ola,mh,tVa,T3a,rQ,VS,mi,dJ,iH,MG,IQa,N9,N9,jZa,SI,Tq,mQ,av,U2a,tH,pN,bYa,nE,ag,vda,zA,qVa,B1,Ph,Kq,_t,_v,Px,Lz,Npa,dz,QA,kf,Fj,U$,o8,o1,Ms,$u,H$,z4,Ts,lf,lg,Jq,Kv,es,Atb,Yr,ls,xO,yM,yf,qj,cc,IGa,a5,Nk,my,ac,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb,DAb];var Ib=[qub,MXa,qAa,ZFa,nBa,qYa,nF,zOa,hIa,nHa,Mia,On,Pw,Dj,Jna,kka,gJ,gE,rH,lt,ITa,ITa,zKa,rL,KE,jL,ITa,ITa,ITa,ITa,ITa,ITa,lF,xTa,l7,PD,NE,Gza,Nj,Jl,st,aga,PC,Tf,mn,qm,Ro,qub,qub,qub,qub,qub,qub,qub,qub,qub,qub,qub,qub,qub,qub,qub,qub,qub];var Jb=[xrb,Wn,Vn,Tn,Sn,xrb,xrb,xrb];var Kb=[Uqb,s8,Z9,Pp,cv,jv,Jy,_p,bv,fv,ty,Zdb,l2a,gU,a4,tJa,cta,Zdb,P6a,Zdb,b2a,rfa,bga,yH,Ut,JFa,JFa,Ew,Uqb,Uqb,Uqb,Uqb];var Lb=[xnb,sj,mj,xnb];var Mb=[Bmb,Zn,Yta,Xta,Cta,Dta,Dta,Bta,xsa,zsa,ysa,sg,Yn,Wta,Vta,zta,Ata,Ata,yta,usa,wsa,vsa,Sg,gw,hw,dw,fw,Tqa,R2,PS,OS,sU,hra,k2,NS,MS,rU,fk,ck,Gw,Ji,fm,Ei,li,bF,aF,Iva,tv,Bmb,Bmb,Bmb,Bmb,Bmb,Bmb,Bmb,Bmb,Bmb,Bmb,Bmb,Bmb,Bmb,Bmb,Bmb,Bmb];var Nb=[ikb,sH,MI,Vi,Oj,Wi,Wj,Zw,df,gn,Dt,Tpa,TA,dB,cB,S$,_ha,xg,Mg,ikb,ikb,ikb,ikb,ikb,ikb,ikb,ikb,ikb,ikb,ikb,ikb,ikb];var Ob=[khb,Mh,Hh,Oba,Rba,qq,rp,KWa,KWa,Hba,Nba,khb,khb,khb,khb,khb];var Pb=[c3a,jc,ic,c3a];var Qb=[XFb,ICb,QF,cqb,Epb,NCb,PFb,Apa,UCb,wlb,zba,Eib,Dib,_ib,Zib,dgb,cgb,Ufb,Vfb,vib,uib,r7a,q7a,p7a,o7a,ohb,nhb,mhb,lhb,O6a,N6a,M6a,L6a,c7a,b7a,a7a,$6a,xib,wib,mUa,Q3a,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb,XFb];var Rb=[oEb,v$a,Abb,W$a,X$a,aWa,ldb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,qlb,avb,Xjb,Myb,JXa,hub,gcb,l7a,Beb,s5a,c0a,bcb,_bb,$bb,x0a,y0a,Hlb,kkb,obb,pbb,Glb,jkb,mbb,nbb,tdb,vpb,SCb,PCb,Fgb,Ktb,Smb,gvb,SCb,KCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,t2a,Ksb,N4a,u5a,ntb,unb,$7,_tb,Ceb,t5a,oYa,Ztb,gcb,ebb,pPa,utb,gcb,Aab,bGa,Jtb,gcb,Pab,lCb,Nzb,_jb,kub,i1a,y1a,bFa,Fqb,gcb,I7a,lCb,Nzb,hmb,Urb,gcb,U8a,umb,Jsb,gcb,lab,lCb,Nzb,Xna,tvb,Mab,HZa,lCb,Nzb,Zkb,Enb,gcb,q6a,RL,Trb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,gcb,T8a,Hcb,$ub,Dnb,rvb,gcb,fcb,Llb,Eqb,gcb,H7a,gmb,Srb,gcb,S8a,fmb,Rrb,gcb,R8a,h7a,Dqb,idb,r6a,gcb,IZa,gFa,_ub,I0a,B4a,Pbb,PCb,$fb,r5a,Qmb,Itb,gcb,Oab,sgb,cpb,cbb,g_a,lCb,Nzb,$mb,Xtb,gcb,dbb,n6a,Wtb,gcb,R5a,c1a,svb,gcb,x6a,lCb,Nzb,lCb,Nzb,Amb,ttb,gcb,zab,q4a,dqb,SCb,PCb,SCb,PCb,gcb,P3a,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,CHa,stb,fdb,u2a,tmb,Isb,gcb,kab,G_a,iub,gcb,Y5a,lCb,Nzb,NAb,Ytb,NAb,Ytb,NAb,Ytb,lCb,Nzb,G3,tkb,iUa,JUa,RDa,Rpb,ybb,V_a,zmb,rtb,gcb,yab,lCb,Nzb,exa,arb,gcb,W7a,WEa,nsb,gcb,o9a,lCb,Nzb,kNa,trb,gcb,q8a,lCb,Nzb,imb,Vrb,gcb,V8a,BJa,qtb,gcb,xab,a8,Zub,SCb,PCb,a2a,PCb,njb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,_J,SCb,PCb,SCb,PCb,tya,Sub,lCb,Nzb,Wlb,brb,gcb,X7a,wL,Kmb,Hbb,EXa,yL,Mmb,Jbb,GXa,xL,Lmb,Ibb,FXa,zL,Nmb,Kbb,HXa,AL,Omb,Lbb,IXa,rnb,Kub,gcb,Mbb,GWa,ptb,v5a,N5a,Sjb,Rwb,pmb,psb,gcb,q9a,omb,osb,gcb,p9a,Elb,Sxb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,KHa,Gtb,gcb,Nab,wob,Rxb,gcb,xcb,ocb,Qwb,gcb,pcb,FO,lkb,u9a,Vjb,Rab,Sab,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,w$a,Bbb,Y$a,Z$a,VEa,urb,gcb,r8a,SCb,PCb,Ska,Fub,olb,inb,nlb,hnb,Hlb,kkb,obb,pbb,Glb,jkb,mbb,nbb,SCb,PCb,Pub,Hrb,hnb,inb,hnb,inb,SCb,PCb,Yib,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,xlb,Jjb,xlb,Jjb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,SCb,PCb,PCb,z1a,sob,s1,Ctb,Neb,Gub,tib,Utb,sib,Ttb,PCb,PCb,PCb,PCb,PCb,PCb,PCb,uxb,ltb,SCb,PCb,SCb,SCb,PCb,SCb,PCb,Job,Hub,lob,bub,Hub,Hub,Hub,bub,SCb,PCb,PCb,PCb,PCb,PCb,Pdb,Jya,tf,eeb,Klb,cm,Zha,Q_a,LCb,C2a,BM,Nhb,Y3,W4,y3,xw,Rfb,lI,X0a,zSa,pw,Ys,Xc,hv,mnb,Vca,Vca,qua,tn,pYa,_u,jW,ds,fu,Fc,qo,Bd,Oob,Ef,ZN,s4,uf,Zj,eZ,tc,hp,xG,t1,_Va,y9,Aha,Jfa,beb,Lrb,LHa,$K,cf,qK,OM,WRa,ov,UTa,cGa,SCb,fPa,Ve,hqa,Ve,hqa,mnb,du,nWa,ySa,kn,wn,Jqa,j0,Qq,jFa,TS,Eca,DGa,TTa,LCa,pU,Osa,Fkb,SCb,Jwa,wg,lo,Hua,Odb,Oha,pha,qXa,Tfa,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb,oEb];var Sb=[JCb,oAb,U9,gva,oxa,gsa,skb,skb,E4a,nDa,tHa,Ij,Js,Bpa,esa,K2a,dsa,z6a,Lpa,rlb,skb,a8a,d7a,Hz,W0a,V0a,U0a,oAb,cwa,dwa,E8,F8,GTa,GTa,GTa,mZa,Gdb,Gdb,GTa,GTa,GTa,mZa,Gdb,Gdb,GTa,GTa,GTa,lZa,Gdb,Gdb,GTa,GTa,GTa,lZa,Gdb,Gdb,oAb,oAb,qgb,SPa,HPa,pgb,sQa,iQa,s5,UE,UI,zkb,iA,Oz,z7,Wbb,uq,Rga,cs,hH,eD,Ao,c4,kc,aJ,eE,dpa,$qa,tsa,eW,$J,jN,f5,YD,r7,VQ,N1,_M,ve,Bva,Qwa,_va,Ava,iva,qDa,Fsa,l9a,Nza,o8a,m8a,oDa,zva,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,OBa,xAa,wAa,Ubb,jva,pDa,ncb,T6a,OL,I_,_M,_M,$J,Yka,Y6a,Gla,N_a,H1a,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,h$,I_,Od,QWa,b$a,dZa,PWa,LVa,hZa,sRa,l9a,NUa,o8a,YTa,eZa,VXa,_Ta,CQa,TSa,SSa,hSa,gSa,fSa,BQa,ZTa,PSa,OUa,RSa,QSa,WXa,UXa,OWa,NWa,gZa,Xab,fZa,ncb,T6a,Zsb,_M,$ha,pya,ycb,aq,_M,_C,Hwa,E2,Gna,_M,j$,SB,m4,OL,_M,_M,h5,n5a,Wla,_M,Qma,H0,I_,pt,Ds,pu,fS,cya,dg,T4,fka,Pea,po,R3,pt,Ds,E5a,OL,_M,OL,AP,fla,Me,vbb,Ycb,Rbb,ISa,cSa,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,IO,X4,tL,KI,vbb,Ycb,Rbb,rIa,HHa,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,IUa,aJ,_M,r$,pP,S3,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,Tz,_M,nH,Te,_4,C$,eva,J3,VG,_M,_M,_M,OL,$C,jt,cx,$N,dV,WR,qx,WA,gl,xUa,DK,_M,r4a,Ika,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,PR,VH,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,OL,OL,OL,sN,OL,OL,se,IBa,PDa,iCa,HBa,TAa,mCa,Axa,Lza,Kza,iza,gza,jCa,FBa,jza,axa,Dya,Cya,_xa,Zxa,Yxa,$wa,hza,zya,Mza,Bya,Aya,GBa,EBa,WAa,UAa,lCa,VAa,kCa,QCa,Xxa,CN,zN,xN,te,VCa,DEa,wDa,UCa,nCa,ADa,Eya,YAa,XAa,tAa,rAa,xDa,SCa,uAa,aya,xza,wza,$ya,_ya,Zya,$xa,sAa,tza,ZAa,vza,uza,TCa,RCa,qCa,oCa,zDa,pCa,yDa,WDa,Yya,ue,FDa,UEa,XDa,EDa,WCa,$Da,aza,KBa,JBa,aBa,_Aa,YDa,CDa,bBa,Gya,iAa,hAa,Bza,Aza,zza,Fya,$Aa,eAa,LBa,gAa,fAa,DDa,BDa,ZCa,XCa,_Da,YCa,ZDa,rEa,yza,fca,eva,x2,eva,Es,Hwa,wI,Cqa,jn,e9,rF,I_,OL,x0,yEa,qD,Rs,sx,MP,XV,GS,Hx,RA,cl,yUa,eL,_M,Y6a,Gla,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,PG,ew,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,YS,Lka,qv,EW,P6,cFa,uZa,ZV,Hqa,_O,De,fMa,oOa,IMa,eMa,uLa,MMa,nIa,tKa,sKa,OJa,MJa,JMa,cMa,PJa,VHa,$Ia,_Ia,GIa,FIa,EIa,UHa,NJa,XIa,uKa,ZIa,YIa,dMa,bMa,xLa,vLa,LMa,wLa,KMa,tNa,DIa,Oe,BTa,Ycb,$Ta,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,yP,uy,gO,VN,xe,vGa,Ycb,YGa,rPa,FFa,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,ze,hHa,Ycb,wHa,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,Ke,XQa,mSa,nRa,WQa,vQa,rRa,HMa,tPa,sPa,XOa,VOa,oRa,UQa,YOa,SLa,fOa,eOa,qNa,pNa,oNa,RLa,WOa,bOa,uPa,dOa,cOa,VQa,TQa,yQa,wQa,qRa,xQa,pRa,TRa,nNa,bia,Pe,AXa,Ycb,PYa,zXa,yWa,yYa,YQa,CUa,BUa,RTa,QTa,QYa,yXa,ATa,bSa,_Sa,ZSa,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,xXa,zWa,Wab,Ubb,kWa,xYa,ncb,PTa,m7,Y6a,Gla,cZa,t0a,Rbb,bZa,hYa,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,iYa,Tbb,ncb,$Sa,Ud,aZa,Ycb,Rbb,ubb,Vab,Vbb,u6a,PIa,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,Ol,_M,Qe,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,kVa,jVa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,zz,Td,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,dYa,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,OL,QH,OL,_M,VSa,OL,Y_,sC,OL,aG,fC,$J,I_,OL,OL,Jd,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,hha,Zka,v$,OL,$J,$J,I_,DL,Xd,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,Xma,Wma,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,OL,fnb,OL,hD,Ks,mx,xP,IV,vS,Dx,NA,al,yUa,_K,_M,Y6a,Gla,vbb,Ycb,Rbb,ubb,Vab,D_a,u6a,QPa,PPa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,OL,vja,Tc,rYa,j7,ibb,$Ua,fWa,_Ua,eUa,jWa,AOa,l9a,KTa,o8a,nTa,gWa,ZUa,aSa,sNa,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,YUa,gUa,fUa,iWa,dLa,hWa,ncb,FPa,FM,ke,Nva,bxa,gwa,Mva,mva,kwa,Rsa,wua,vua,fua,dua,hwa,Kva,gua,Bsa,Jta,Ita,hta,gta,fta,Asa,eua,Fta,xua,Hta,Gta,Lva,Jva,pva,nva,jwa,ova,iwa,Dwa,eta,r4a,Ika,mPa,ZQa,KPa,lPa,KOa,OPa,HKa,zNa,yNa,PMa,NMa,LPa,jPa,QMa,jKa,MLa,LLa,hLa,gLa,fLa,iKa,OMa,ILa,ANa,KLa,JLa,kPa,iPa,NOa,LOa,NPa,MOa,MPa,lQa,eLa,j1a,sxa,ud,vbb,Ycb,Rbb,ubb,Vab,SXa,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,Ad,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,Ega,Y6a,Gla,EPa,fRa,YPa,DPa,bPa,aQa,VKa,NNa,MNa,dNa,bNa,ZPa,BPa,eNa,rKa,aMa,$La,tLa,sLa,rLa,qKa,cNa,YLa,ONa,_La,ZLa,CPa,APa,ePa,cPa,$Pa,dPa,_Pa,AQa,qLa,gy,OL,$J,Fma,gd,vbb,Ycb,Rbb,ubb,Vab,Vbb,WKa,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,M1a,OL,OL,OL,td,xWa,$Za,OXa,wWa,yVa,RXa,kQa,OTa,NTa,BKa,AKa,PXa,uWa,fVa,DRa,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,vWa,tWa,BVa,zVa,QXa,AVa,Tbb,ncb,T6a,OL,Cpa,wba,$J,_M,Sja,v0a,$J,AM,$J,je,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,fwa,ewa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Uqa,Tbb,ncb,T6a,Pd,vbb,Ycb,Rbb,ubb,Vab,B0a,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,ld,vbb,Ycb,QVa,ubb,Vab,eWa,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,sd,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,MTa,LTa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,rd,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,NXa,sWa,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,Jka,zha,Yc,vbb,Ycb,Rbb,ubb,Vab,uBa,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,Eoa,PE,ZD,vbb,smb,Ycb,Rbb,ubb,Vab,Xab,T6a,FI,ZL,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Tbb,ncb,Rz,OL,Id,vbb,Ycb,NZa,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,O_a,Wga,Y6a,Gla,vbb,Ycb,rUa,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,kda,s2,_M,mN,pe,DBa,ODa,dCa,CBa,PAa,hCa,zxa,Iza,Hza,eza,cza,eCa,ABa,fza,_wa,yya,xya,Wxa,Vxa,Uxa,Zwa,dza,uya,Jza,wya,vya,BBa,zBa,SAa,QAa,gCa,RAa,fCa,PCa,Txa,reb,UC,hxa,ZP,QP,T7,A7,r4a,Ika,YVa,Ycb,Rbb,XVa,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,gPa,Xab,Tbb,ncb,T6a,r4a,Ika,vbb,Ycb,Rbb,cYa,YWa,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,gRa,Xab,Tbb,ncb,T6a,Kd,$Ya,Ycb,Rbb,_Ya,fYa,k_a,oSa,l9a,CXa,o8a,m8a,i_a,ZYa,lVa,JRa,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,YYa,AYa,gYa,j_a,tZa,Tbb,ncb,T6a,Yz,OL,$c,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,nSa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,id,zPa,eRa,TPa,yPa,ZOa,XPa,UKa,KNa,JNa,$Ma,ZMa,UPa,wPa,aNa,pKa,XLa,WLa,pLa,oLa,nLa,oKa,_Ma,TLa,LNa,VLa,ULa,xPa,vPa,aPa,_Oa,WPa,$Oa,VPa,zQa,mLa,N8,Rua,Rua,wj,jo,Uma,_M,_M,QOa,N0,Dca,oca,rC,NG,_M,EA,Fd,vbb,Ycb,Rbb,ubb,Vab,sZa,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,yCa,Zc,THa,gJa,iIa,SHa,xHa,mIa,GFa,_Ga,ZGa,yGa,wGa,jIa,QHa,zGa,uFa,nGa,mGa,UFa,TFa,SFa,tFa,xGa,jGa,$Ga,lGa,kGa,RHa,PHa,AHa,yHa,lIa,zHa,kIa,CIa,RFa,xM,Ncb,ie,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Hya,Wab,Ubb,Xab,Tbb,ncb,T6a,Je,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,DVa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,tca,DV,cA,di,_M,SL,nD,dla,rG,Fo,Eza,MB,uja,Y6a,Gla,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,AMa,iVa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,OL,zd,vbb,Ycb,Rbb,ubb,Vab,OYa,u6a,l9a,M8a,o8a,m8a,MZa,qZa,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,OL,cmb,fd,jNa,nPa,QNa,iNa,BMa,UNa,QIa,jLa,iLa,KKa,IKa,RNa,gNa,LKa,tIa,VJa,UJa,kJa,jJa,iJa,sIa,JKa,RJa,kLa,TJa,SJa,hNa,fNa,EMa,CMa,TNa,DMa,SNa,pOa,hJa,OL,OL,Xj,hx,pGa,kHa,c5,Ik,sV,_cb,i$a,RPa,Haa,me,vbb,Ycb,Rbb,ubb,Vab,QDa,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,i$,vU,OL,fC,I_,OL,OL,pt,Ds,BC,ms,Tw,TM,UT,gR,fx,tA,_k,yUa,DJ,_M,Y6a,Gla,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,n5,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,WP,Q$a,He,qha,Y6a,Gla,dUa,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,rM,he,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,ara,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,vbb,P_a,Rbb,ubb,Vab,Vbb,u6a,l9a,AUa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,Dd,vbb,Ycb,Rbb,ubb,Vab,rZa,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,Fga,nd,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,LWa,wVa,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,vVa,zUa,Wab,Ubb,Xab,Tbb,ncb,T6a,p1,AN,re,wEa,pFa,KEa,vEa,aEa,OEa,jAa,$Ca,_Ca,tCa,rCa,LEa,tEa,uCa,Dza,tBa,sBa,IAa,HAa,GAa,Cza,sCa,pBa,aDa,rBa,qBa,uEa,sEa,dEa,bEa,NEa,cEa,MEa,YEa,FAa,Hka,m5,dka,mRa,le,MBa,ZEa,Rbb,ubb,vAa,Vbb,u6a,l9a,bya,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,g5,f2,r4a,Ika,cDa,Ycb,Rbb,bDa,NBa,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,qe,tGa,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,OF,$h,u_a,cY,clb,_M,vbb,mYa,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,$aa,kva,OL,NG,Ce,vbb,Ycb,Rbb,ubb,Vab,Vbb,gOa,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,KP,Be,vbb,Ycb,Rbb,ubb,Vab,KVa,PNa,l9a,M8a,xRa,wRa,uVa,WUa,mTa,URa,OSa,NSa,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,rNa,ncb,T6a,pd,SVa,Ycb,iXa,RVa,aVa,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,cla,$J,vd,vbb,Ycb,Rbb,ubb,Vab,TXa,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,_M,D$,kN,oe,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,HDa,GDa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,Gd,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,hVa,gVa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,CF,pq,od,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,MWa,xVa,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,bea,Gea,ce,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,nqa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,jk,vbb,k2a,Ycb,Rbb,ubb,Vab,Xab,T6a,Vbb,u6a,Gpa,Fpa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Tbb,ncb,wC,on,nL,dH,WNa,bS,wu,ERa,Dn,Ycb,vSa,ubb,Vab,Xab,T6a,WF,Vbb,u6a,DOa,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,OIa,Tbb,ncb,Ge,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,BHa,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,dea,Iea,ee,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,nqa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,lk,vbb,k2a,Ycb,Rbb,ubb,Vab,Xab,T6a,Vbb,u6a,Gpa,Fpa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Tbb,ncb,yC,qn,oL,eH,YNa,dS,wu,GRa,Fn,Ycb,wSa,ubb,Vab,Xab,T6a,YF,Vbb,u6a,DOa,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,OIa,Tbb,ncb,cea,Hea,de,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,nqa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,kk,vbb,k2a,Ycb,Rbb,ubb,Vab,Xab,T6a,Vbb,u6a,Gpa,Fpa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Tbb,ncb,xC,pn,yV,iK,XNa,cS,wu,FRa,En,Ycb,Rbb,ubb,Vab,Xab,T6a,XF,Vbb,u6a,DOa,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,OIa,Tbb,ncb,eea,Jea,fe,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,nqa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,mk,vbb,k2a,Ycb,Rbb,ubb,Vab,Xab,T6a,Vbb,u6a,Gpa,Fpa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Tbb,ncb,zC,rn,zV,jK,ZNa,eS,wu,HRa,Gn,Ycb,Rbb,ubb,Vab,Xab,T6a,ZF,Vbb,u6a,DOa,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,OIa,Tbb,ncb,fea,Kea,ge,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,nqa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,nk,vbb,k2a,Ycb,Rbb,ubb,Vab,Xab,T6a,Vbb,u6a,Gpa,Fpa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Tbb,ncb,AC,em,AV,kK,_Na,sD,wu,IRa,Hn,Ycb,Rbb,ubb,Vab,Xab,T6a,_F,Vbb,u6a,EOa,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,OIa,Tbb,ncb,_x,yh,zFa,OL,OL,Md,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,OL,kP,we,lOa,bQa,FOa,kOa,uNa,JOa,wJa,hMa,gMa,ALa,yLa,GOa,iOa,BLa,bJa,GKa,FKa,hKa,gKa,fKa,aJa,zLa,CKa,iMa,EKa,DKa,jOa,hOa,xNa,vNa,IOa,wNa,HOa,hPa,eKa,OL,x0,qD,Is,tx,RP,cW,KS,Kx,XA,bl,yUa,hL,_M,Y6a,Gla,vbb,Ycb,Rbb,ubb,Vab,XYa,MUa,PG,ew,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,zi,Fv,yd,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,QC,xd,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,Zua,tca,U2,Hd,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,zYa,BXa,Wab,Ubb,Xab,Tbb,ncb,T6a,Rd,vbb,Ycb,Rbb,ubb,Vab,Vbb,u6a,l9a,BZa,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,Qd,P$a,M2a,B1a,ubb,Vab,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Y0a,Xab,Tbb,ncb,T6a,TDa,tca,wfa,goa,ZW,Jaa,qoa,TYa,tra,LO,uba,Fra,Ww,IP,e5a,Hk,Eq,_M,_M,km,fi,Wy,Co,Mu,np,Xp,Fx,JS,o9,r6,Jca,Iqa,VG,$z,sk,Mm,qN,NG,oY,u0a,F$a,fEa,_M,_M,Wla,Re,eu,No,r$a,aJ,T5,Hw,xfa,OL,HWa,Qla,Nf,C3a,oq,Bx,qF,l1,aea,Yd,Moa,Mpa,Xoa,Loa,voa,$oa,Oma,aoa,$na,Mna,Kna,Yoa,Joa,Nna,Cma,sna,rna,bna,ana,$ma,Bma,Lna,ona,boa,qna,pna,Koa,Ioa,yoa,woa,_oa,xoa,Zoa,npa,_ma,R5,yna,Pna,WVa,CZa,jXa,VVa,bVa,nXa,JPa,pTa,oTa,GSa,ESa,kXa,UVa,HSa,COa,CRa,BRa,LQa,KQa,JQa,BOa,FSa,yRa,qTa,ARa,zRa,tbb,TVa,eVa,cVa,mXa,dVa,lXa,ncb,T6a,$J,eQ,Ne,FZa,Ycb,C_a,EZa,BYa,Vbb,u6a,l9a,M8a,o8a,m8a,Sbb,sbb,p8a,l6a,y7a,x7a,W6a,V6a,U6a,k6a,n8a,u7a,m9a,w7a,v7a,tbb,rbb,Yab,Wab,Ubb,Xab,Tbb,ncb,T6a,sG,nG,sG,Yla,dkb,B3a,oQ,rWa,OVa,Xdb,PA,TN,d6,Fy,DG,rba,Oga,ZA,gD,vB,FMa,mna,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb,JCb];var Tb=[kCb,Fpb,Sha,Xkb,$ia,So,TV,d5a,ZWa,c5a,C$a,B$a,x$,Fpb,PUa,QUa,GUa,FUa,FQa,iha,rha,Bka,_ja,pka,Hc,zfa,ria,eg,gja,Rja,kt,Oda,Qj,aha,fja,yaa,qla,qia,eja,dja,bj,Zba,eka,oka,Wda,rk,Aka,Sfa,lha,ao,L0a,Zja,Fpb,Tda,koa,rga,Qja,kga,h8,K4,l5,s6,Mo,pba,sea,Yja,$Ba,Gia,Dja,OOa,Uia,Km,hja,Xja,MU,Hia,bfa,dfa,cfa,efa,ffa,bla,sha,Fja,Eja,AI,nka,Ila,yla,Via,Lhb,Epa,ira,xMa,pra,D8,pca,Lca,ng,$k,e4,m2a,KQ,z8,e2,Bo,cpa,Ora,upa,DX,Pra,gra,Gva,j6a,$Ja,Noa,tw,nz,DO,XK,Xu,bH,Wqb,KIa,LW,BW,SS,RGa,Gf,eo,VA,cy,uh,xz,rv,WYa,ln,rv,vx,nn,Qca,aw,aV,$E,m2,iG,pT,xm,Bi,Ci,vh,JG,JG,tp,v5,xca,Saa,nia,rB,qX,M3,AB,Bt,xz,qs,nA,bH,sl,Mw,eh,Xh,YZa,mcb,gpa,Nw,QZ,rj,CTa,CTa,CTa,CTa,CTa,PJ,no,mo,k6,b6,KR,UM,Uz,xz,sUa,_S,xz,Nz,Py,Zea,Rl,XI,fJ,qU,ax,xD,Cx,wB,Jp,bH,fA,gI,LH,LH,vG,uG,tG,CA,FW,wca,CM,NL,NR,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb,kCb];var Ub=[Uwb,lHa,Pca,rdb,Uca,xq,wi,jl,mWa,hRa,gca,zca,Oea,kea,vea,oba,ada,Kda,Yda,caa,eca,Jda,Lfa,$ca,Ida,Hda,S7,oea,uea,saa,Nea,Eba,qca,jea,jaa,Tba,Xda,Pba,U7,Eaa,iea,ida,Pda,sda,Lda,hea,kj,jda,Taa,Vaa,Uaa,Waa,Xaa,tfa,Aca,iX,Rda,Qda,tea,sga,cga,lM,tda,RRa,RRa,VDa,jEa,MDa,Yha,_N,Uja,Ac,X2,F2,Uja,hlb,hna,Jla,Opa,Qna,Tla,moa,ina,v6,zf,tt,Gs,fl,M$,Y4,V7,oE,Uja,$4a,Uja,lQ,FH,FH,GG,Uja,Xg,Uja,Uja,N$,FH,gG,OD,Uja,Uja,Uja,FN,Gj,Q1,Uja,l$,Sv,A3,nX,Yo,Uja,Uja,Uja,Uja,iE,nC,nC,nC,nC,nC,Uja,pL,Wh,Uja,Uja,ELa,Sv,pF,pr,_U,pF,Sv,Sv,hN,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,zZ,rea,YY,rx,l_,O_,_A,ev,o3,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb,Uwb];var Vb=[Osb,UN,lv,vl,DW,Hja,ija,Ala,Vka,lla,Uka,SM,PQ,Yj,Nh,Osb];var Wb=[kpb,sp,Ot,Mx,AIa,AIa,zu,tl,lta,Cca,Tx,Ffa,tia,Cn,kpb,kpb];var Xb=[Flb,Yfa,Afa,Bfa,lfa,el,zj,fh,yj,bh,Flb,Flb,Flb,Flb,Flb,Flb];var Yb=[zbb,hg,ig,Uf,Wf,zbb,zbb,zbb];var Zb=[SOa,Ri,Ki,SOa];return{_BinaryenAbsFloat32:KFb,_BinaryenAbsFloat64:AFb,_BinaryenAbsVecF32x4:RDb,_BinaryenAbsVecF64x2:_Db,_BinaryenAddExport:ipb,_BinaryenAddFloat32:HEb,_BinaryenAddFloat64:GEb,_BinaryenAddFunction:El,_BinaryenAddFunctionExport:CD,_BinaryenAddFunctionImport:qw,_BinaryenAddFunctionType:qi,_BinaryenAddGlobal:Sz,_BinaryenAddGlobalExport:FD,_BinaryenAddGlobalImport:uA,_BinaryenAddInt32:UFb,_BinaryenAddInt64:yFb,_BinaryenAddMemoryExport:ED,_BinaryenAddMemoryImport:YG,_BinaryenAddSatSVecI16x8:eDb,_BinaryenAddSatSVecI8x16:dDb,_BinaryenAddSatUVecI16x8:cDb,_BinaryenAddSatUVecI8x16:bDb,_BinaryenAddTableExport:GD,_BinaryenAddTableImport:vP,_BinaryenAddVecF32x4:JDb,_BinaryenAddVecF64x2:IDb,_BinaryenAddVecI16x8:HDb,_BinaryenAddVecI32x4:GDb,_BinaryenAddVecI64x2:FDb,_BinaryenAddVecI8x16:EDb,_BinaryenAllTrueVecI16x8:TEb,_BinaryenAllTrueVecI32x4:ZEb,_BinaryenAllTrueVecI64x2:UDb,_BinaryenAllTrueVecI8x16:zEb,_BinaryenAndInt32:JFb,_BinaryenAndInt64:xFb,_BinaryenAndVec128:FEb,_BinaryenAnyTrueVecI16x8:REb,_BinaryenAnyTrueVecI32x4:XEb,_BinaryenAnyTrueVecI64x2:sEb,_BinaryenAnyTrueVecI8x16:xEb,_BinaryenAtomicCmpxchg:I9,_BinaryenAtomicCmpxchgGetBytes:eY,_BinaryenAtomicCmpxchgGetExpected:dY,_BinaryenAtomicCmpxchgGetOffset:dW,_BinaryenAtomicCmpxchgGetPtr:QY,_BinaryenAtomicCmpxchgGetReplacement:PX,_BinaryenAtomicCmpxchgId:uFb,_BinaryenAtomicLoad:_fa,_BinaryenAtomicRMW:A9,_BinaryenAtomicRMWAdd:UFb,_BinaryenAtomicRMWAnd:VFb,_BinaryenAtomicRMWGetBytes:kZ,_BinaryenAtomicRMWGetOffset:CW,_BinaryenAtomicRMWGetOp:f_,_BinaryenAtomicRMWGetPtr:UZ,_BinaryenAtomicRMWGetValue:LZ,_BinaryenAtomicRMWId:wFb,_BinaryenAtomicRMWOr:RFb,_BinaryenAtomicRMWSub:WFb,_BinaryenAtomicRMWXchg:CFb,_BinaryenAtomicRMWXor:NFb,_BinaryenAtomicStore:Hca,_BinaryenAtomicWait:M7,_BinaryenAtomicWaitGetExpected:VY,_BinaryenAtomicWaitGetExpectedType:rY,_BinaryenAtomicWaitGetPtr:GZ,_BinaryenAtomicWaitGetTimeout:bZ,_BinaryenAtomicWaitId:yFb,_BinaryenAtomicWake:Mca,_BinaryenAtomicWakeGetPtr:FZ,_BinaryenAtomicWakeGetWakeCount:PY,_BinaryenAtomicWakeId:gFb,_BinaryenBinary:Cia,_BinaryenBinaryGetLeft:w_,_BinaryenBinaryGetOp:T_,_BinaryenBinaryGetRight:o_,_BinaryenBinaryId:GFb,_BinaryenBlock:Pt,_BinaryenBlockGetChild:mI,_BinaryenBlockGetName:JY,_BinaryenBlockGetNumChildren:sX,_BinaryenBlockId:WFb,_BinaryenBreak:i3,_BinaryenBreakGetCondition:e_,_BinaryenBreakGetName:zX,_BinaryenBreakGetValue:B_,_BinaryenBreakId:NFb,_BinaryenCall:iv,_BinaryenCallGetNumOperands:OX,_BinaryenCallGetOperand:xI,_BinaryenCallGetTarget:qY,_BinaryenCallId:SFb,_BinaryenCallIndirect:zt,_BinaryenCallIndirectGetNumOperands:NW,_BinaryenCallIndirectGetOperand:fI,_BinaryenCallIndirectGetTarget:n_,_BinaryenCallIndirectId:JFb,_BinaryenCeilFloat32:iFb,_BinaryenCeilFloat64:JEb,_BinaryenClzInt32:UFb,_BinaryenClzInt64:WFb,_BinaryenConst:QG,_BinaryenConstGetValueF32:nW,_BinaryenConstGetValueF64:mW,_BinaryenConstGetValueI32:GW,_BinaryenConstGetValueI64:KU,_BinaryenConstGetValueI64High:fV,_BinaryenConstGetValueI64Low:hV,_BinaryenConstId:IFb,_BinaryenConvertSInt32ToFloat32:hFb,_BinaryenConvertSInt32ToFloat64:IEb,_BinaryenConvertSInt64ToFloat32:LEb,_BinaryenConvertSInt64ToFloat64:HFb,_BinaryenConvertSVecI32x4ToVecF32x4:TDb,_BinaryenConvertSVecI64x2ToVecF64x2:dEb,_BinaryenConvertUInt32ToFloat32:KEb,_BinaryenConvertUInt32ToFloat64:MEb,_BinaryenConvertUInt64ToFloat32:FFb,_BinaryenConvertUInt64ToFloat64:nFb,_BinaryenConvertUVecI32x4ToVecF32x4:eEb,_BinaryenConvertUVecI64x2ToVecF64x2:$Db,_BinaryenCopySignFloat32:fDb,_BinaryenCopySignFloat64:KDb,_BinaryenCtzInt32:VFb,_BinaryenCtzInt64:RFb,_BinaryenCurrentMemory:UFb,_BinaryenDataDrop:cva,_BinaryenDataDropGetSegment:OZ,_BinaryenDataDropId:EFb,_BinaryenDemoteFloat64:pFb,_BinaryenDivFloat32:EEb,_BinaryenDivFloat64:QEb,_BinaryenDivSInt32:RFb,_BinaryenDivSInt64:cFb,_BinaryenDivUInt32:NFb,_BinaryenDivUInt64:bFb,_BinaryenDivVecF32x4:DDb,_BinaryenDivVecF64x2:CDb,_BinaryenDrop:KUa,_BinaryenDropGetValue:X_,_BinaryenDropId:OFb,_BinaryenEqFloat32:aFb,_BinaryenEqFloat64:$Eb,_BinaryenEqInt32:BFb,_BinaryenEqInt64:HFb,_BinaryenEqVecF32x4:mEb,_BinaryenEqVecF64x2:lEb,_BinaryenEqVecI16x8:DEb,_BinaryenEqVecI32x4:CEb,_BinaryenEqVecI8x16:BEb,_BinaryenEqZInt32:MFb,_BinaryenEqZInt64:QFb,_BinaryenExportGetKind:W_,_BinaryenExportGetName:EZ,_BinaryenExportGetValue:w5,_BinaryenExpressionGetId:h1,_BinaryenExpressionGetType:v_,_BinaryenExpressionPrint:_V,_BinaryenExtendS16Int32:vFb,_BinaryenExtendS16Int64:HEb,_BinaryenExtendS32Int64:rEb,_BinaryenExtendS8Int32:qFb,_BinaryenExtendS8Int64:tFb,_BinaryenExtendSInt32:rFb,_BinaryenExtendUInt32:wFb,_BinaryenExternalFunction:UFb,_BinaryenExternalGlobal:RFb,_BinaryenExternalMemory:VFb,_BinaryenExternalTable:WFb,_BinaryenExtractLaneSVecI16x8:VFb,_BinaryenExtractLaneSVecI8x16:UFb,_BinaryenExtractLaneUVecI16x8:RFb,_BinaryenExtractLaneUVecI8x16:WFb,_BinaryenExtractLaneVecF32x4:SFb,_BinaryenExtractLaneVecF64x2:JFb,_BinaryenExtractLaneVecI32x4:NFb,_BinaryenExtractLaneVecI64x2:CFb,_BinaryenFloat32:RFb,_BinaryenFloat64:NFb,_BinaryenFloorFloat32:LFb,_BinaryenFloorFloat64:DFb,_BinaryenFunctionGetBody:u_,_BinaryenFunctionGetName:t5,_BinaryenFunctionGetNumParams:q4,_BinaryenFunctionGetNumVars:t4,_BinaryenFunctionGetParam:DP,_BinaryenFunctionGetResult:k_,_BinaryenFunctionGetType:r5,_BinaryenFunctionGetVar:JP,_BinaryenFunctionImportGetBase:A_,_BinaryenFunctionImportGetModule:S_,_BinaryenFunctionOptimize:SC,_BinaryenFunctionRunPasses:io,_BinaryenFunctionSetDebugLocation:Sw,_BinaryenFunctionTypeGetName:OY,_BinaryenFunctionTypeGetNumParams:j4,_BinaryenFunctionTypeGetParam:uP,_BinaryenFunctionTypeGetResult:$Z,_BinaryenGeFloat32:_Eb,_BinaryenGeFloat64:ZEb,_BinaryenGeSInt32:wFb,_BinaryenGeSInt64:vFb,_BinaryenGeSVecI16x8:kEb,_BinaryenGeSVecI32x4:BDb,_BinaryenGeSVecI8x16:jEb,_BinaryenGeUInt32:uFb,_BinaryenGeUInt64:tFb,_BinaryenGeUVecI16x8:iEb,_BinaryenGeUVecI32x4:ADb,_BinaryenGeUVecI8x16:hEb,_BinaryenGeVecF32x4:gEb,_BinaryenGeVecF64x2:fEb,_BinaryenGetDebugInfo:_gb,_BinaryenGetFunction:G8,_BinaryenGetFunctionTypeBySignature:Lu,_BinaryenGetGlobal:Qea,_BinaryenGetGlobalGetName:RW,_BinaryenGetGlobalId:iFb,_BinaryenGetLocal:vRa,_BinaryenGetLocalGetIndex:_Z,_BinaryenGetLocalId:KFb,_BinaryenGetOptimizeLevel:Zgb,_BinaryenGetShrinkLevel:vhb,_BinaryenGlobalImportGetBase:R_,_BinaryenGrowMemory:WFb,_BinaryenGtFloat32:YEb,_BinaryenGtFloat64:XEb,_BinaryenGtSInt32:QFb,_BinaryenGtSInt64:sFb,_BinaryenGtSVecI16x8:eEb,_BinaryenGtSVecI32x4:zDb,_BinaryenGtSVecI8x16:MDb,_BinaryenGtUInt32:rFb,_BinaryenGtUInt64:qFb,_BinaryenGtUVecI16x8:dEb,_BinaryenGtUVecI32x4:yDb,_BinaryenGtUVecI8x16:cEb,_BinaryenGtVecF32x4:bEb,_BinaryenGtVecF64x2:aEb,_BinaryenHost:gv,_BinaryenHostGetNameOperand:YW,_BinaryenHostGetNumOperands:XW,_BinaryenHostGetOp:g$,_BinaryenHostGetOperand:vI,_BinaryenHostId:MFb,_BinaryenIf:Kta,_BinaryenIfGetCondition:u$,_BinaryenIfGetIfFalse:y$,_BinaryenIfGetIfTrue:B$,_BinaryenIfId:VFb,_BinaryenInt32:WFb,_BinaryenInt64:VFb,_BinaryenInvalidId:UFb,_BinaryenLeFloat32:WEb,_BinaryenLeFloat64:VEb,_BinaryenLeSInt32:kFb,_BinaryenLeSInt64:pFb,_BinaryenLeSVecI16x8:$Db,_BinaryenLeSVecI32x4:xDb,_BinaryenLeSVecI8x16:_Db,_BinaryenLeUInt32:MFb,_BinaryenLeUInt64:oFb,_BinaryenLeUVecI16x8:ZDb,_BinaryenLeUVecI32x4:wDb,_BinaryenLeUVecI8x16:LDb,_BinaryenLeVecF32x4:YDb,_BinaryenLeVecF64x2:XDb,_BinaryenLiteralFloat32:wpa,_BinaryenLiteralFloat32Bits:Iia,_BinaryenLiteralFloat64:vpa,_BinaryenLiteralFloat64Bits:Yea,_BinaryenLiteralInt32:vqa,_BinaryenLiteralInt64:ena,_BinaryenLiteralVec128:cqa,_BinaryenLoad:B5,_BinaryenLoadGetAlign:yX,_BinaryenLoadGetBytes:t_,_BinaryenLoadGetOffset:rX,_BinaryenLoadGetPtr:b$,_BinaryenLoadId:LFb,_BinaryenLoadIsAtomic:s_,_BinaryenLoadIsSigned:z_,_BinaryenLoop:g1,_BinaryenLoopGetBody:I$,_BinaryenLoopGetName:aZ,_BinaryenLoopId:RFb,_BinaryenLtFloat32:UEb,_BinaryenLtFloat64:TEb,_BinaryenLtSInt32:jFb,_BinaryenLtSInt64:nFb,_BinaryenLtSVecI16x8:WDb,_BinaryenLtSVecI32x4:VDb,_BinaryenLtSVecI8x16:UDb,_BinaryenLtUInt32:OFb,_BinaryenLtUInt64:mFb,_BinaryenLtUVecI16x8:TDb,_BinaryenLtUVecI32x4:SDb,_BinaryenLtUVecI8x16:RDb,_BinaryenLtVecF32x4:QDb,_BinaryenLtVecF64x2:PDb,_BinaryenMaxFloat32:AEb,_BinaryenMaxFloat64:zEb,_BinaryenMaxVecF32x4:vDb,_BinaryenMaxVecF64x2:uDb,_BinaryenMemoryCopy:Bia,_BinaryenMemoryCopyGetDest:DZ,_BinaryenMemoryCopyGetSize:vZ,_BinaryenMemoryCopyGetSource:jZ,_BinaryenMemoryCopyId:eFb,_BinaryenMemoryFill:Aia,_BinaryenMemoryFillGetDest:CZ,_BinaryenMemoryFillGetSize:uZ,_BinaryenMemoryFillGetValue:qZ,_BinaryenMemoryFillId:hFb,_BinaryenMemoryInit:Zfa,_BinaryenMemoryInitGetDest:tZ,_BinaryenMemoryInitGetOffset:iZ,_BinaryenMemoryInitGetSegment:hZ,_BinaryenMemoryInitGetSize:sZ,_BinaryenMemoryInitId:xFb,_BinaryenMinFloat32:yEb,_BinaryenMinFloat64:xEb,_BinaryenMinVecF32x4:tDb,_BinaryenMinVecF64x2:sDb,_BinaryenModuleAddDebugInfoFileName:Xx,_BinaryenModuleAllocateAndWrite:Lk,_BinaryenModuleAutoDrop:tM,_BinaryenModuleCreate:j_,_BinaryenModuleDispose:Bz,_BinaryenModuleGetDebugInfoFileName:d0,_BinaryenModuleInterpret:B3,_BinaryenModuleOptimize:sM,_BinaryenModuleParse:Au,_BinaryenModulePrint:O5a,_BinaryenModulePrintAsmjs:mC,_BinaryenModuleRead:yt,_BinaryenModuleRunPasses:ip,_BinaryenModuleValidate:Wra,_BinaryenModuleWrite:qza,_BinaryenModuleWriteWithSourceMap:cha,_BinaryenMulFloat32:wEb,_BinaryenMulFloat64:vEb,_BinaryenMulInt32:VFb,_BinaryenMulInt64:lFb,_BinaryenMulVecF32x4:rDb,_BinaryenMulVecF64x2:qDb,_BinaryenMulVecI16x8:pDb,_BinaryenMulVecI32x4:oDb,_BinaryenMulVecI8x16:nDb,_BinaryenNeFloat32:SEb,_BinaryenNeFloat64:REb,_BinaryenNeInt32:GFb,_BinaryenNeInt64:FFb,_BinaryenNeVecF32x4:ODb,_BinaryenNeVecF64x2:NDb,_BinaryenNeVecI16x8:uEb,_BinaryenNeVecI32x4:tEb,_BinaryenNeVecI8x16:sEb,_BinaryenNearestFloat32:GFb,_BinaryenNearestFloat64:jFb,_BinaryenNegFloat32:SFb,_BinaryenNegFloat64:JFb,_BinaryenNegVecF32x4:MDb,_BinaryenNegVecF64x2:LDb,_BinaryenNegVecI16x8:$Eb,_BinaryenNegVecI32x4:VEb,_BinaryenNegVecI64x2:BEb,_BinaryenNegVecI8x16:KDb,_BinaryenNone:UFb,_BinaryenNop:J6a,_BinaryenNopId:QFb,_BinaryenNotVec128:QEb,_BinaryenOrInt32:KFb,_BinaryenOrInt64:EFb,_BinaryenOrVec128:PEb,_BinaryenPopcntInt32:NFb,_BinaryenPopcntInt64:CFb,_BinaryenPromoteFloat32:mFb,_BinaryenReinterpretFloat32:EFb,_BinaryenReinterpretFloat64:eFb,_BinaryenReinterpretInt32:oFb,_BinaryenReinterpretInt64:sFb,_BinaryenRemSInt32:CFb,_BinaryenRemSInt64:OEb,_BinaryenRemUInt32:SFb,_BinaryenRemUInt64:NEb,_BinaryenRemoveExport:H9,_BinaryenRemoveFunction:u9,_BinaryenRemoveFunctionType:tO,_BinaryenRemoveGlobal:G9,_BinaryenReplaceLaneVecF32x4:NFb,_BinaryenReplaceLaneVecF64x2:CFb,_BinaryenReplaceLaneVecI16x8:WFb,_BinaryenReplaceLaneVecI32x4:VFb,_BinaryenReplaceLaneVecI64x2:RFb,_BinaryenReplaceLaneVecI8x16:UFb,_BinaryenReturn:nra,_BinaryenReturnGetValue:r_,_BinaryenReturnId:kFb,_BinaryenRotLInt32:DFb,_BinaryenRotLInt64:MEb,_BinaryenRotRInt32:IFb,_BinaryenRotRInt64:LEb,_BinaryenSIMDBitselect:Tha,_BinaryenSIMDBitselectGetCond:IY,_BinaryenSIMDBitselectGetLeft:NY,_BinaryenSIMDBitselectGetRight:BY,_BinaryenSIMDBitselectId:OEb,_BinaryenSIMDExtract:mha,_BinaryenSIMDExtractGetIndex:gZ,_BinaryenSIMDExtractGetOp:BZ,_BinaryenSIMDExtractGetVec:pZ,_BinaryenSIMDExtractId:lFb,_BinaryenSIMDReplace:Bda,_BinaryenSIMDReplaceGetIndex:fZ,_BinaryenSIMDReplaceGetOp:AZ,_BinaryenSIMDReplaceGetValue:$Y,_BinaryenSIMDReplaceGetVec:oZ,_BinaryenSIMDReplaceId:cFb,_BinaryenSIMDShift:uha,_BinaryenSIMDShiftGetOp:d_,_BinaryenSIMDShiftGetShift:KZ,_BinaryenSIMDShiftGetVec:TZ,_BinaryenSIMDShiftId:NEb,_BinaryenSIMDShuffle:aD,_BinaryenSIMDShuffleGetLeft:nZ,_BinaryenSIMDShuffleGetMask:MQ,_BinaryenSIMDShuffleGetRight:_Y,_BinaryenSIMDShuffleId:bFb,_BinaryenSelect:Tva,_BinaryenSelectGetCondition:SZ,_BinaryenSelectGetIfFalse:c_,_BinaryenSelectGetIfTrue:m_,_BinaryenSelectId:jFb,_BinaryenSetAPITracing:Kwa,_BinaryenSetDebugInfo:Rna,_BinaryenSetFunctionTable:vm,_BinaryenSetGlobal:Laa,_BinaryenSetGlobalGetName:QW,_BinaryenSetGlobalGetValue:JZ,_BinaryenSetGlobalId:JEb,_BinaryenSetLocal:rya,_BinaryenSetLocalGetIndex:ZZ,_BinaryenSetLocalGetValue:RZ,_BinaryenSetLocalId:AFb,_BinaryenSetLocalIsTee:FV,_BinaryenSetMemory:pi,_BinaryenSetOptimizeLevel:$za,_BinaryenSetShrinkLevel:DAa,_BinaryenSetStart:xX,_BinaryenShlInt32:iFb,_BinaryenShlInt64:hFb,_BinaryenShlVecI16x8:RFb,_BinaryenShlVecI32x4:SFb,_BinaryenShlVecI64x2:AFb,_BinaryenShlVecI8x16:UFb,_BinaryenShrSInt32:LFb,_BinaryenShrSInt64:KEb,_BinaryenShrSVecI16x8:NFb,_BinaryenShrSVecI32x4:JFb,_BinaryenShrSVecI64x2:iFb,_BinaryenShrSVecI8x16:WFb,_BinaryenShrUInt32:JEb,_BinaryenShrUInt64:IEb,_BinaryenShrUVecI16x8:CFb,_BinaryenShrUVecI32x4:KFb,_BinaryenShrUVecI64x2:JEb,_BinaryenShrUVecI8x16:VFb,_BinaryenSizeofLiteral:uFb,_BinaryenSplatVecF32x4:qEb,_BinaryenSplatVecF64x2:vEb,_BinaryenSplatVecI16x8:YEb,_BinaryenSplatVecI32x4:_Eb,_BinaryenSplatVecI64x2:GEb,_BinaryenSplatVecI8x16:WEb,_BinaryenSqrtFloat32:OFb,_BinaryenSqrtFloat64:kFb,_BinaryenSqrtVecF32x4:cEb,_BinaryenSqrtVecF64x2:jEb,_BinaryenStore:o7,_BinaryenStoreGetAlign:mX,_BinaryenStoreGetBytes:i_,_BinaryenStoreGetOffset:jX,_BinaryenStoreGetPtr:Q_,_BinaryenStoreGetValue:y_,_BinaryenStoreId:DFb,_BinaryenStoreIsAtomic:h_,_BinaryenSubFloat32:rEb,_BinaryenSubFloat64:qEb,_BinaryenSubInt32:WFb,_BinaryenSubInt64:gFb,_BinaryenSubSatSVecI16x8:aDb,_BinaryenSubSatSVecI8x16:$Cb,_BinaryenSubSatUVecI16x8:_Cb,_BinaryenSubSatUVecI8x16:ZCb,_BinaryenSubVecF32x4:mDb,_BinaryenSubVecF64x2:lDb,_BinaryenSubVecI16x8:kDb,_BinaryenSubVecI32x4:jDb,_BinaryenSubVecI64x2:iDb,_BinaryenSubVecI8x16:hDb,_BinaryenSwitch:Fu,_BinaryenSwitchGetCondition:P_,_BinaryenSwitchGetDefaultName:lX,_BinaryenSwitchGetName:JH,_BinaryenSwitchGetNumNames:EX,_BinaryenSwitchGetValue:f$,_BinaryenSwitchId:CFb,_BinaryenTeeLocal:qya,_BinaryenTruncFloat32:IFb,_BinaryenTruncFloat64:BFb,_BinaryenTruncSFloat32ToInt32:yFb,_BinaryenTruncSFloat32ToInt64:gFb,_BinaryenTruncSFloat64ToInt32:bFb,_BinaryenTruncSFloat64ToInt64:OEb,_BinaryenTruncSatSFloat32ToInt32:wEb,_BinaryenTruncSatSFloat32ToInt64:AEb,_BinaryenTruncSatSFloat64ToInt32:fDb,_BinaryenTruncSatSFloat64ToInt64:SEb,_BinaryenTruncSatSVecF32x4ToVecI32x4:hEb,_BinaryenTruncSatSVecF64x2ToVecI64x2:uEb,_BinaryenTruncSatUFloat32ToInt32:EEb,_BinaryenTruncSatUFloat32ToInt64:aFb,_BinaryenTruncSatUFloat64ToInt32:yEb,_BinaryenTruncSatUFloat64ToInt64:UEb,_BinaryenTruncSatUVecF32x4ToVecI32x4:DEb,_BinaryenTruncSatUVecF64x2ToVecI64x2:WDb,_BinaryenTruncUFloat32ToInt32:lFb,_BinaryenTruncUFloat32ToInt64:cFb,_BinaryenTruncUFloat64ToInt32:NEb,_BinaryenTruncUFloat64ToInt64:xFb,_BinaryenTypeAuto:fFb,_BinaryenTypeFloat32:RFb,_BinaryenTypeFloat64:NFb,_BinaryenTypeInt32:WFb,_BinaryenTypeInt64:VFb,_BinaryenTypeNone:UFb,_BinaryenTypeUnreachable:SFb,_BinaryenTypeVec128:CFb,_BinaryenUnary:jna,_BinaryenUnaryGetOp:a$,_BinaryenUnaryGetValue:x_,_BinaryenUnaryId:BFb,_BinaryenUndefined:fFb,_BinaryenUnreachable:z3a,_BinaryenUnreachableId:rFb,_BinaryenWrapInt64:uFb,_BinaryenXorInt32:AFb,_BinaryenXorInt64:eFb,_BinaryenXorVec128:pEb,__GLOBAL__I_000101:BCb,__GLOBAL__sub_I_InstrumentLocals_cpp:mKa,__GLOBAL__sub_I_InstrumentMemory_cpp:prb,__GLOBAL__sub_I_LogExecution_cpp:FBb,__GLOBAL__sub_I_Metrics_cpp:iCb,__GLOBAL__sub_I_OptimizeInstructions_cpp:S5a,__GLOBAL__sub_I_Precompute_cpp:RBb,__GLOBAL__sub_I_RelooperJumpThreading_cpp:Syb,__GLOBAL__sub_I_SSAify_cpp:mCb,__GLOBAL__sub_I_SafeHeap_cpp:amb,__GLOBAL__sub_I_TrapMode_cpp:Ngb,__GLOBAL__sub_I_binaryen_c_cpp:ula,__GLOBAL__sub_I_iostream_cpp:gDb,__GLOBAL__sub_I_optimizer_shared_cpp:H0a,__GLOBAL__sub_I_parser_cpp:Oo,__GLOBAL__sub_I_pass_cpp:pCb,__GLOBAL__sub_I_shared_constants_cpp:kq,__GLOBAL__sub_I_simple_ast_cpp:QBb,__GLOBAL__sub_I_threads_cpp:ckb,__GLOBAL__sub_I_wasm_cpp:EF,__GLOBAL__sub_I_wasm_emscripten_cpp:kTa,__ZSt18uncaught_exceptionv:Pzb,___cxa_can_catch:CCa,___cxa_demangle:jj,___cxa_is_pointer_type:xkb,___divdi3:m3,___emscripten_environ_constructor:IBb,___muldi3:BSa,___remdi3:VV,___udivdi3:znb,___uremdi3:jRa,__get_environ:dFb,_bitshift64Ashr:t$a,_bitshift64Lshr:U4a,_bitshift64Shl:X2a,_emscripten_replace_memory:Bb,_free:wg,_i64Add:Yeb,_i64Subtract:Ndb,_llvm_bswap_i32:mpb,_llvm_nearbyint_f32:isb,_llvm_nearbyint_f64:isb,_malloc:qc,_memcpy:Uv,_memmove:Pxa,_memset:LL,_pthread_cond_broadcast:MCb,_pthread_mutex_lock:MCb,_pthread_mutex_unlock:MCb,_sbrk:fna,_setThrew:Vqb,dynCall_i:jCb,dynCall_id:Twb,dynCall_ii:wub,dynCall_iid:Oqb,dynCall_iii:jpb,dynCall_iiii:vkb,dynCall_iiiii:Qfb,dynCall_iiiiid:lbb,dynCall_iiiiii:s8a,dynCall_iiiiiid:R3a,dynCall_iiiiiii:i2a,dynCall_iiiiiiii:_Xa,dynCall_iiiiiiiii:YRa,dynCall_iiiiiiiiiiii:qwa,dynCall_v:DCb,dynCall_vi:Wxb,dynCall_vii:jrb,dynCall_viii:Mlb,dynCall_viiii:Ahb,dynCall_viiiii:hcb,dynCall_viiiiii:T4a,dynCall_viiiiiii:x_a,dynCall_viiiiiiiiii:MFa,dynCall_viiiiiiiiiiiiiii:tga,establishStackSpace:Qvb,stackAlloc:kmb,stackRestore:QCb,stackSave:nEb}}) - - -// EMSCRIPTEN_END_ASM -(Gb,ic,buffer);a._BinaryenAbsFloat32=V._BinaryenAbsFloat32;a._BinaryenAbsFloat64=V._BinaryenAbsFloat64;a._BinaryenAbsVecF32x4=V._BinaryenAbsVecF32x4;a._BinaryenAbsVecF64x2=V._BinaryenAbsVecF64x2;a._BinaryenAddExport=V._BinaryenAddExport;a._BinaryenAddFloat32=V._BinaryenAddFloat32;a._BinaryenAddFloat64=V._BinaryenAddFloat64; -a._BinaryenAddFunction=V._BinaryenAddFunction;a._BinaryenAddFunctionExport=V._BinaryenAddFunctionExport;a._BinaryenAddFunctionImport=V._BinaryenAddFunctionImport;a._BinaryenAddFunctionType=V._BinaryenAddFunctionType;a._BinaryenAddGlobal=V._BinaryenAddGlobal;a._BinaryenAddGlobalExport=V._BinaryenAddGlobalExport;a._BinaryenAddGlobalImport=V._BinaryenAddGlobalImport;a._BinaryenAddInt32=V._BinaryenAddInt32;a._BinaryenAddInt64=V._BinaryenAddInt64;a._BinaryenAddMemoryExport=V._BinaryenAddMemoryExport; -a._BinaryenAddMemoryImport=V._BinaryenAddMemoryImport;a._BinaryenAddSatSVecI16x8=V._BinaryenAddSatSVecI16x8;a._BinaryenAddSatSVecI8x16=V._BinaryenAddSatSVecI8x16;a._BinaryenAddSatUVecI16x8=V._BinaryenAddSatUVecI16x8;a._BinaryenAddSatUVecI8x16=V._BinaryenAddSatUVecI8x16;a._BinaryenAddTableExport=V._BinaryenAddTableExport;a._BinaryenAddTableImport=V._BinaryenAddTableImport;a._BinaryenAddVecF32x4=V._BinaryenAddVecF32x4;a._BinaryenAddVecF64x2=V._BinaryenAddVecF64x2;a._BinaryenAddVecI16x8=V._BinaryenAddVecI16x8; -a._BinaryenAddVecI32x4=V._BinaryenAddVecI32x4;a._BinaryenAddVecI64x2=V._BinaryenAddVecI64x2;a._BinaryenAddVecI8x16=V._BinaryenAddVecI8x16;a._BinaryenAllTrueVecI16x8=V._BinaryenAllTrueVecI16x8;a._BinaryenAllTrueVecI32x4=V._BinaryenAllTrueVecI32x4;a._BinaryenAllTrueVecI64x2=V._BinaryenAllTrueVecI64x2;a._BinaryenAllTrueVecI8x16=V._BinaryenAllTrueVecI8x16;a._BinaryenAndInt32=V._BinaryenAndInt32;a._BinaryenAndInt64=V._BinaryenAndInt64;a._BinaryenAndVec128=V._BinaryenAndVec128; -a._BinaryenAnyTrueVecI16x8=V._BinaryenAnyTrueVecI16x8;a._BinaryenAnyTrueVecI32x4=V._BinaryenAnyTrueVecI32x4;a._BinaryenAnyTrueVecI64x2=V._BinaryenAnyTrueVecI64x2;a._BinaryenAnyTrueVecI8x16=V._BinaryenAnyTrueVecI8x16;a._BinaryenAtomicCmpxchg=V._BinaryenAtomicCmpxchg;a._BinaryenAtomicCmpxchgGetBytes=V._BinaryenAtomicCmpxchgGetBytes;a._BinaryenAtomicCmpxchgGetExpected=V._BinaryenAtomicCmpxchgGetExpected;a._BinaryenAtomicCmpxchgGetOffset=V._BinaryenAtomicCmpxchgGetOffset; -a._BinaryenAtomicCmpxchgGetPtr=V._BinaryenAtomicCmpxchgGetPtr;a._BinaryenAtomicCmpxchgGetReplacement=V._BinaryenAtomicCmpxchgGetReplacement;a._BinaryenAtomicCmpxchgId=V._BinaryenAtomicCmpxchgId;a._BinaryenAtomicLoad=V._BinaryenAtomicLoad;a._BinaryenAtomicRMW=V._BinaryenAtomicRMW;a._BinaryenAtomicRMWAdd=V._BinaryenAtomicRMWAdd;a._BinaryenAtomicRMWAnd=V._BinaryenAtomicRMWAnd;a._BinaryenAtomicRMWGetBytes=V._BinaryenAtomicRMWGetBytes;a._BinaryenAtomicRMWGetOffset=V._BinaryenAtomicRMWGetOffset; -a._BinaryenAtomicRMWGetOp=V._BinaryenAtomicRMWGetOp;a._BinaryenAtomicRMWGetPtr=V._BinaryenAtomicRMWGetPtr;a._BinaryenAtomicRMWGetValue=V._BinaryenAtomicRMWGetValue;a._BinaryenAtomicRMWId=V._BinaryenAtomicRMWId;a._BinaryenAtomicRMWOr=V._BinaryenAtomicRMWOr;a._BinaryenAtomicRMWSub=V._BinaryenAtomicRMWSub;a._BinaryenAtomicRMWXchg=V._BinaryenAtomicRMWXchg;a._BinaryenAtomicRMWXor=V._BinaryenAtomicRMWXor;a._BinaryenAtomicStore=V._BinaryenAtomicStore;a._BinaryenAtomicWait=V._BinaryenAtomicWait; -a._BinaryenAtomicWaitGetExpected=V._BinaryenAtomicWaitGetExpected;a._BinaryenAtomicWaitGetExpectedType=V._BinaryenAtomicWaitGetExpectedType;a._BinaryenAtomicWaitGetPtr=V._BinaryenAtomicWaitGetPtr;a._BinaryenAtomicWaitGetTimeout=V._BinaryenAtomicWaitGetTimeout;a._BinaryenAtomicWaitId=V._BinaryenAtomicWaitId;a._BinaryenAtomicWake=V._BinaryenAtomicWake;a._BinaryenAtomicWakeGetPtr=V._BinaryenAtomicWakeGetPtr;a._BinaryenAtomicWakeGetWakeCount=V._BinaryenAtomicWakeGetWakeCount;a._BinaryenAtomicWakeId=V._BinaryenAtomicWakeId; -a._BinaryenBinary=V._BinaryenBinary;a._BinaryenBinaryGetLeft=V._BinaryenBinaryGetLeft;a._BinaryenBinaryGetOp=V._BinaryenBinaryGetOp;a._BinaryenBinaryGetRight=V._BinaryenBinaryGetRight;a._BinaryenBinaryId=V._BinaryenBinaryId;a._BinaryenBlock=V._BinaryenBlock;a._BinaryenBlockGetChild=V._BinaryenBlockGetChild;a._BinaryenBlockGetName=V._BinaryenBlockGetName;a._BinaryenBlockGetNumChildren=V._BinaryenBlockGetNumChildren;a._BinaryenBlockId=V._BinaryenBlockId;a._BinaryenBreak=V._BinaryenBreak; -a._BinaryenBreakGetCondition=V._BinaryenBreakGetCondition;a._BinaryenBreakGetName=V._BinaryenBreakGetName;a._BinaryenBreakGetValue=V._BinaryenBreakGetValue;a._BinaryenBreakId=V._BinaryenBreakId;a._BinaryenCall=V._BinaryenCall;a._BinaryenCallGetNumOperands=V._BinaryenCallGetNumOperands;a._BinaryenCallGetOperand=V._BinaryenCallGetOperand;a._BinaryenCallGetTarget=V._BinaryenCallGetTarget;a._BinaryenCallId=V._BinaryenCallId;a._BinaryenCallIndirect=V._BinaryenCallIndirect; -a._BinaryenCallIndirectGetNumOperands=V._BinaryenCallIndirectGetNumOperands;a._BinaryenCallIndirectGetOperand=V._BinaryenCallIndirectGetOperand;a._BinaryenCallIndirectGetTarget=V._BinaryenCallIndirectGetTarget;a._BinaryenCallIndirectId=V._BinaryenCallIndirectId;a._BinaryenCeilFloat32=V._BinaryenCeilFloat32;a._BinaryenCeilFloat64=V._BinaryenCeilFloat64;a._BinaryenClzInt32=V._BinaryenClzInt32;a._BinaryenClzInt64=V._BinaryenClzInt64;a._BinaryenConst=V._BinaryenConst;a._BinaryenConstGetValueF32=V._BinaryenConstGetValueF32; -a._BinaryenConstGetValueF64=V._BinaryenConstGetValueF64;a._BinaryenConstGetValueI32=V._BinaryenConstGetValueI32;a._BinaryenConstGetValueI64=V._BinaryenConstGetValueI64;a._BinaryenConstGetValueI64High=V._BinaryenConstGetValueI64High;a._BinaryenConstGetValueI64Low=V._BinaryenConstGetValueI64Low;a._BinaryenConstId=V._BinaryenConstId;a._BinaryenConvertSInt32ToFloat32=V._BinaryenConvertSInt32ToFloat32;a._BinaryenConvertSInt32ToFloat64=V._BinaryenConvertSInt32ToFloat64; -a._BinaryenConvertSInt64ToFloat32=V._BinaryenConvertSInt64ToFloat32;a._BinaryenConvertSInt64ToFloat64=V._BinaryenConvertSInt64ToFloat64;a._BinaryenConvertSVecI32x4ToVecF32x4=V._BinaryenConvertSVecI32x4ToVecF32x4;a._BinaryenConvertSVecI64x2ToVecF64x2=V._BinaryenConvertSVecI64x2ToVecF64x2;a._BinaryenConvertUInt32ToFloat32=V._BinaryenConvertUInt32ToFloat32;a._BinaryenConvertUInt32ToFloat64=V._BinaryenConvertUInt32ToFloat64;a._BinaryenConvertUInt64ToFloat32=V._BinaryenConvertUInt64ToFloat32; -a._BinaryenConvertUInt64ToFloat64=V._BinaryenConvertUInt64ToFloat64;a._BinaryenConvertUVecI32x4ToVecF32x4=V._BinaryenConvertUVecI32x4ToVecF32x4;a._BinaryenConvertUVecI64x2ToVecF64x2=V._BinaryenConvertUVecI64x2ToVecF64x2;a._BinaryenCopySignFloat32=V._BinaryenCopySignFloat32;a._BinaryenCopySignFloat64=V._BinaryenCopySignFloat64;a._BinaryenCtzInt32=V._BinaryenCtzInt32;a._BinaryenCtzInt64=V._BinaryenCtzInt64;a._BinaryenCurrentMemory=V._BinaryenCurrentMemory;a._BinaryenDataDrop=V._BinaryenDataDrop; -a._BinaryenDataDropGetSegment=V._BinaryenDataDropGetSegment;a._BinaryenDataDropId=V._BinaryenDataDropId;a._BinaryenDemoteFloat64=V._BinaryenDemoteFloat64;a._BinaryenDivFloat32=V._BinaryenDivFloat32;a._BinaryenDivFloat64=V._BinaryenDivFloat64;a._BinaryenDivSInt32=V._BinaryenDivSInt32;a._BinaryenDivSInt64=V._BinaryenDivSInt64;a._BinaryenDivUInt32=V._BinaryenDivUInt32;a._BinaryenDivUInt64=V._BinaryenDivUInt64;a._BinaryenDivVecF32x4=V._BinaryenDivVecF32x4;a._BinaryenDivVecF64x2=V._BinaryenDivVecF64x2; -a._BinaryenDrop=V._BinaryenDrop;a._BinaryenDropGetValue=V._BinaryenDropGetValue;a._BinaryenDropId=V._BinaryenDropId;a._BinaryenEqFloat32=V._BinaryenEqFloat32;a._BinaryenEqFloat64=V._BinaryenEqFloat64;a._BinaryenEqInt32=V._BinaryenEqInt32;a._BinaryenEqInt64=V._BinaryenEqInt64;a._BinaryenEqVecF32x4=V._BinaryenEqVecF32x4;a._BinaryenEqVecF64x2=V._BinaryenEqVecF64x2;a._BinaryenEqVecI16x8=V._BinaryenEqVecI16x8;a._BinaryenEqVecI32x4=V._BinaryenEqVecI32x4;a._BinaryenEqVecI8x16=V._BinaryenEqVecI8x16; -a._BinaryenEqZInt32=V._BinaryenEqZInt32;a._BinaryenEqZInt64=V._BinaryenEqZInt64;a._BinaryenExportGetKind=V._BinaryenExportGetKind;a._BinaryenExportGetName=V._BinaryenExportGetName;a._BinaryenExportGetValue=V._BinaryenExportGetValue;a._BinaryenExpressionGetId=V._BinaryenExpressionGetId;a._BinaryenExpressionGetType=V._BinaryenExpressionGetType;a._BinaryenExpressionPrint=V._BinaryenExpressionPrint;a._BinaryenExtendS16Int32=V._BinaryenExtendS16Int32;a._BinaryenExtendS16Int64=V._BinaryenExtendS16Int64; -a._BinaryenExtendS32Int64=V._BinaryenExtendS32Int64;a._BinaryenExtendS8Int32=V._BinaryenExtendS8Int32;a._BinaryenExtendS8Int64=V._BinaryenExtendS8Int64;a._BinaryenExtendSInt32=V._BinaryenExtendSInt32;a._BinaryenExtendUInt32=V._BinaryenExtendUInt32;a._BinaryenExternalFunction=V._BinaryenExternalFunction;a._BinaryenExternalGlobal=V._BinaryenExternalGlobal;a._BinaryenExternalMemory=V._BinaryenExternalMemory;a._BinaryenExternalTable=V._BinaryenExternalTable;a._BinaryenExtractLaneSVecI16x8=V._BinaryenExtractLaneSVecI16x8; -a._BinaryenExtractLaneSVecI8x16=V._BinaryenExtractLaneSVecI8x16;a._BinaryenExtractLaneUVecI16x8=V._BinaryenExtractLaneUVecI16x8;a._BinaryenExtractLaneUVecI8x16=V._BinaryenExtractLaneUVecI8x16;a._BinaryenExtractLaneVecF32x4=V._BinaryenExtractLaneVecF32x4;a._BinaryenExtractLaneVecF64x2=V._BinaryenExtractLaneVecF64x2;a._BinaryenExtractLaneVecI32x4=V._BinaryenExtractLaneVecI32x4;a._BinaryenExtractLaneVecI64x2=V._BinaryenExtractLaneVecI64x2;a._BinaryenFloat32=V._BinaryenFloat32;a._BinaryenFloat64=V._BinaryenFloat64; -a._BinaryenFloorFloat32=V._BinaryenFloorFloat32;a._BinaryenFloorFloat64=V._BinaryenFloorFloat64;a._BinaryenFunctionGetBody=V._BinaryenFunctionGetBody;a._BinaryenFunctionGetName=V._BinaryenFunctionGetName;a._BinaryenFunctionGetNumParams=V._BinaryenFunctionGetNumParams;a._BinaryenFunctionGetNumVars=V._BinaryenFunctionGetNumVars;a._BinaryenFunctionGetParam=V._BinaryenFunctionGetParam;a._BinaryenFunctionGetResult=V._BinaryenFunctionGetResult;a._BinaryenFunctionGetType=V._BinaryenFunctionGetType; -a._BinaryenFunctionGetVar=V._BinaryenFunctionGetVar;a._BinaryenFunctionImportGetBase=V._BinaryenFunctionImportGetBase;a._BinaryenFunctionImportGetModule=V._BinaryenFunctionImportGetModule;a._BinaryenFunctionOptimize=V._BinaryenFunctionOptimize;a._BinaryenFunctionRunPasses=V._BinaryenFunctionRunPasses;a._BinaryenFunctionSetDebugLocation=V._BinaryenFunctionSetDebugLocation;a._BinaryenFunctionTypeGetName=V._BinaryenFunctionTypeGetName;a._BinaryenFunctionTypeGetNumParams=V._BinaryenFunctionTypeGetNumParams; -a._BinaryenFunctionTypeGetParam=V._BinaryenFunctionTypeGetParam;a._BinaryenFunctionTypeGetResult=V._BinaryenFunctionTypeGetResult;a._BinaryenGeFloat32=V._BinaryenGeFloat32;a._BinaryenGeFloat64=V._BinaryenGeFloat64;a._BinaryenGeSInt32=V._BinaryenGeSInt32;a._BinaryenGeSInt64=V._BinaryenGeSInt64;a._BinaryenGeSVecI16x8=V._BinaryenGeSVecI16x8;a._BinaryenGeSVecI32x4=V._BinaryenGeSVecI32x4;a._BinaryenGeSVecI8x16=V._BinaryenGeSVecI8x16;a._BinaryenGeUInt32=V._BinaryenGeUInt32;a._BinaryenGeUInt64=V._BinaryenGeUInt64; -a._BinaryenGeUVecI16x8=V._BinaryenGeUVecI16x8;a._BinaryenGeUVecI32x4=V._BinaryenGeUVecI32x4;a._BinaryenGeUVecI8x16=V._BinaryenGeUVecI8x16;a._BinaryenGeVecF32x4=V._BinaryenGeVecF32x4;a._BinaryenGeVecF64x2=V._BinaryenGeVecF64x2;a._BinaryenGetDebugInfo=V._BinaryenGetDebugInfo;a._BinaryenGetFunction=V._BinaryenGetFunction;a._BinaryenGetFunctionTypeBySignature=V._BinaryenGetFunctionTypeBySignature;a._BinaryenGetGlobal=V._BinaryenGetGlobal;a._BinaryenGetGlobalGetName=V._BinaryenGetGlobalGetName; -a._BinaryenGetGlobalId=V._BinaryenGetGlobalId;a._BinaryenGetLocal=V._BinaryenGetLocal;a._BinaryenGetLocalGetIndex=V._BinaryenGetLocalGetIndex;a._BinaryenGetLocalId=V._BinaryenGetLocalId;a._BinaryenGetOptimizeLevel=V._BinaryenGetOptimizeLevel;a._BinaryenGetShrinkLevel=V._BinaryenGetShrinkLevel;a._BinaryenGlobalImportGetBase=V._BinaryenGlobalImportGetBase;a._BinaryenGrowMemory=V._BinaryenGrowMemory;a._BinaryenGtFloat32=V._BinaryenGtFloat32;a._BinaryenGtFloat64=V._BinaryenGtFloat64; -a._BinaryenGtSInt32=V._BinaryenGtSInt32;a._BinaryenGtSInt64=V._BinaryenGtSInt64;a._BinaryenGtSVecI16x8=V._BinaryenGtSVecI16x8;a._BinaryenGtSVecI32x4=V._BinaryenGtSVecI32x4;a._BinaryenGtSVecI8x16=V._BinaryenGtSVecI8x16;a._BinaryenGtUInt32=V._BinaryenGtUInt32;a._BinaryenGtUInt64=V._BinaryenGtUInt64;a._BinaryenGtUVecI16x8=V._BinaryenGtUVecI16x8;a._BinaryenGtUVecI32x4=V._BinaryenGtUVecI32x4;a._BinaryenGtUVecI8x16=V._BinaryenGtUVecI8x16;a._BinaryenGtVecF32x4=V._BinaryenGtVecF32x4; -a._BinaryenGtVecF64x2=V._BinaryenGtVecF64x2;a._BinaryenHost=V._BinaryenHost;a._BinaryenHostGetNameOperand=V._BinaryenHostGetNameOperand;a._BinaryenHostGetNumOperands=V._BinaryenHostGetNumOperands;a._BinaryenHostGetOp=V._BinaryenHostGetOp;a._BinaryenHostGetOperand=V._BinaryenHostGetOperand;a._BinaryenHostId=V._BinaryenHostId;a._BinaryenIf=V._BinaryenIf;a._BinaryenIfGetCondition=V._BinaryenIfGetCondition;a._BinaryenIfGetIfFalse=V._BinaryenIfGetIfFalse;a._BinaryenIfGetIfTrue=V._BinaryenIfGetIfTrue; -a._BinaryenIfId=V._BinaryenIfId;a._BinaryenInt32=V._BinaryenInt32;a._BinaryenInt64=V._BinaryenInt64;a._BinaryenInvalidId=V._BinaryenInvalidId;a._BinaryenLeFloat32=V._BinaryenLeFloat32;a._BinaryenLeFloat64=V._BinaryenLeFloat64;a._BinaryenLeSInt32=V._BinaryenLeSInt32;a._BinaryenLeSInt64=V._BinaryenLeSInt64;a._BinaryenLeSVecI16x8=V._BinaryenLeSVecI16x8;a._BinaryenLeSVecI32x4=V._BinaryenLeSVecI32x4;a._BinaryenLeSVecI8x16=V._BinaryenLeSVecI8x16;a._BinaryenLeUInt32=V._BinaryenLeUInt32; -a._BinaryenLeUInt64=V._BinaryenLeUInt64;a._BinaryenLeUVecI16x8=V._BinaryenLeUVecI16x8;a._BinaryenLeUVecI32x4=V._BinaryenLeUVecI32x4;a._BinaryenLeUVecI8x16=V._BinaryenLeUVecI8x16;a._BinaryenLeVecF32x4=V._BinaryenLeVecF32x4;a._BinaryenLeVecF64x2=V._BinaryenLeVecF64x2;a._BinaryenLiteralFloat32=V._BinaryenLiteralFloat32;a._BinaryenLiteralFloat32Bits=V._BinaryenLiteralFloat32Bits;a._BinaryenLiteralFloat64=V._BinaryenLiteralFloat64;a._BinaryenLiteralFloat64Bits=V._BinaryenLiteralFloat64Bits; -a._BinaryenLiteralInt32=V._BinaryenLiteralInt32;a._BinaryenLiteralInt64=V._BinaryenLiteralInt64;a._BinaryenLiteralVec128=V._BinaryenLiteralVec128;a._BinaryenLoad=V._BinaryenLoad;a._BinaryenLoadGetAlign=V._BinaryenLoadGetAlign;a._BinaryenLoadGetBytes=V._BinaryenLoadGetBytes;a._BinaryenLoadGetOffset=V._BinaryenLoadGetOffset;a._BinaryenLoadGetPtr=V._BinaryenLoadGetPtr;a._BinaryenLoadId=V._BinaryenLoadId;a._BinaryenLoadIsAtomic=V._BinaryenLoadIsAtomic;a._BinaryenLoadIsSigned=V._BinaryenLoadIsSigned; -a._BinaryenLoop=V._BinaryenLoop;a._BinaryenLoopGetBody=V._BinaryenLoopGetBody;a._BinaryenLoopGetName=V._BinaryenLoopGetName;a._BinaryenLoopId=V._BinaryenLoopId;a._BinaryenLtFloat32=V._BinaryenLtFloat32;a._BinaryenLtFloat64=V._BinaryenLtFloat64;a._BinaryenLtSInt32=V._BinaryenLtSInt32;a._BinaryenLtSInt64=V._BinaryenLtSInt64;a._BinaryenLtSVecI16x8=V._BinaryenLtSVecI16x8;a._BinaryenLtSVecI32x4=V._BinaryenLtSVecI32x4;a._BinaryenLtSVecI8x16=V._BinaryenLtSVecI8x16;a._BinaryenLtUInt32=V._BinaryenLtUInt32; -a._BinaryenLtUInt64=V._BinaryenLtUInt64;a._BinaryenLtUVecI16x8=V._BinaryenLtUVecI16x8;a._BinaryenLtUVecI32x4=V._BinaryenLtUVecI32x4;a._BinaryenLtUVecI8x16=V._BinaryenLtUVecI8x16;a._BinaryenLtVecF32x4=V._BinaryenLtVecF32x4;a._BinaryenLtVecF64x2=V._BinaryenLtVecF64x2;a._BinaryenMaxFloat32=V._BinaryenMaxFloat32;a._BinaryenMaxFloat64=V._BinaryenMaxFloat64;a._BinaryenMaxVecF32x4=V._BinaryenMaxVecF32x4;a._BinaryenMaxVecF64x2=V._BinaryenMaxVecF64x2;a._BinaryenMemoryCopy=V._BinaryenMemoryCopy; -a._BinaryenMemoryCopyGetDest=V._BinaryenMemoryCopyGetDest;a._BinaryenMemoryCopyGetSize=V._BinaryenMemoryCopyGetSize;a._BinaryenMemoryCopyGetSource=V._BinaryenMemoryCopyGetSource;a._BinaryenMemoryCopyId=V._BinaryenMemoryCopyId;a._BinaryenMemoryFill=V._BinaryenMemoryFill;a._BinaryenMemoryFillGetDest=V._BinaryenMemoryFillGetDest;a._BinaryenMemoryFillGetSize=V._BinaryenMemoryFillGetSize;a._BinaryenMemoryFillGetValue=V._BinaryenMemoryFillGetValue;a._BinaryenMemoryFillId=V._BinaryenMemoryFillId; -a._BinaryenMemoryInit=V._BinaryenMemoryInit;a._BinaryenMemoryInitGetDest=V._BinaryenMemoryInitGetDest;a._BinaryenMemoryInitGetOffset=V._BinaryenMemoryInitGetOffset;a._BinaryenMemoryInitGetSegment=V._BinaryenMemoryInitGetSegment;a._BinaryenMemoryInitGetSize=V._BinaryenMemoryInitGetSize;a._BinaryenMemoryInitId=V._BinaryenMemoryInitId;a._BinaryenMinFloat32=V._BinaryenMinFloat32;a._BinaryenMinFloat64=V._BinaryenMinFloat64;a._BinaryenMinVecF32x4=V._BinaryenMinVecF32x4;a._BinaryenMinVecF64x2=V._BinaryenMinVecF64x2; -a._BinaryenModuleAddDebugInfoFileName=V._BinaryenModuleAddDebugInfoFileName;a._BinaryenModuleAllocateAndWrite=V._BinaryenModuleAllocateAndWrite;a._BinaryenModuleAutoDrop=V._BinaryenModuleAutoDrop;a._BinaryenModuleCreate=V._BinaryenModuleCreate;a._BinaryenModuleDispose=V._BinaryenModuleDispose;a._BinaryenModuleGetDebugInfoFileName=V._BinaryenModuleGetDebugInfoFileName;a._BinaryenModuleInterpret=V._BinaryenModuleInterpret;a._BinaryenModuleOptimize=V._BinaryenModuleOptimize;a._BinaryenModuleParse=V._BinaryenModuleParse; -a._BinaryenModulePrint=V._BinaryenModulePrint;a._BinaryenModulePrintAsmjs=V._BinaryenModulePrintAsmjs;a._BinaryenModuleRead=V._BinaryenModuleRead;a._BinaryenModuleRunPasses=V._BinaryenModuleRunPasses;a._BinaryenModuleValidate=V._BinaryenModuleValidate;a._BinaryenModuleWrite=V._BinaryenModuleWrite;a._BinaryenModuleWriteWithSourceMap=V._BinaryenModuleWriteWithSourceMap;a._BinaryenMulFloat32=V._BinaryenMulFloat32;a._BinaryenMulFloat64=V._BinaryenMulFloat64;a._BinaryenMulInt32=V._BinaryenMulInt32; -a._BinaryenMulInt64=V._BinaryenMulInt64;a._BinaryenMulVecF32x4=V._BinaryenMulVecF32x4;a._BinaryenMulVecF64x2=V._BinaryenMulVecF64x2;a._BinaryenMulVecI16x8=V._BinaryenMulVecI16x8;a._BinaryenMulVecI32x4=V._BinaryenMulVecI32x4;a._BinaryenMulVecI8x16=V._BinaryenMulVecI8x16;a._BinaryenNeFloat32=V._BinaryenNeFloat32;a._BinaryenNeFloat64=V._BinaryenNeFloat64;a._BinaryenNeInt32=V._BinaryenNeInt32;a._BinaryenNeInt64=V._BinaryenNeInt64;a._BinaryenNeVecF32x4=V._BinaryenNeVecF32x4;a._BinaryenNeVecF64x2=V._BinaryenNeVecF64x2; -a._BinaryenNeVecI16x8=V._BinaryenNeVecI16x8;a._BinaryenNeVecI32x4=V._BinaryenNeVecI32x4;a._BinaryenNeVecI8x16=V._BinaryenNeVecI8x16;a._BinaryenNearestFloat32=V._BinaryenNearestFloat32;a._BinaryenNearestFloat64=V._BinaryenNearestFloat64;a._BinaryenNegFloat32=V._BinaryenNegFloat32;a._BinaryenNegFloat64=V._BinaryenNegFloat64;a._BinaryenNegVecF32x4=V._BinaryenNegVecF32x4;a._BinaryenNegVecF64x2=V._BinaryenNegVecF64x2;a._BinaryenNegVecI16x8=V._BinaryenNegVecI16x8;a._BinaryenNegVecI32x4=V._BinaryenNegVecI32x4; -a._BinaryenNegVecI64x2=V._BinaryenNegVecI64x2;a._BinaryenNegVecI8x16=V._BinaryenNegVecI8x16;a._BinaryenNone=V._BinaryenNone;a._BinaryenNop=V._BinaryenNop;a._BinaryenNopId=V._BinaryenNopId;a._BinaryenNotVec128=V._BinaryenNotVec128;a._BinaryenOrInt32=V._BinaryenOrInt32;a._BinaryenOrInt64=V._BinaryenOrInt64;a._BinaryenOrVec128=V._BinaryenOrVec128;a._BinaryenPopcntInt32=V._BinaryenPopcntInt32;a._BinaryenPopcntInt64=V._BinaryenPopcntInt64;a._BinaryenPromoteFloat32=V._BinaryenPromoteFloat32; -a._BinaryenReinterpretFloat32=V._BinaryenReinterpretFloat32;a._BinaryenReinterpretFloat64=V._BinaryenReinterpretFloat64;a._BinaryenReinterpretInt32=V._BinaryenReinterpretInt32;a._BinaryenReinterpretInt64=V._BinaryenReinterpretInt64;a._BinaryenRemSInt32=V._BinaryenRemSInt32;a._BinaryenRemSInt64=V._BinaryenRemSInt64;a._BinaryenRemUInt32=V._BinaryenRemUInt32;a._BinaryenRemUInt64=V._BinaryenRemUInt64;a._BinaryenRemoveExport=V._BinaryenRemoveExport;a._BinaryenRemoveFunction=V._BinaryenRemoveFunction; -a._BinaryenRemoveFunctionType=V._BinaryenRemoveFunctionType;a._BinaryenRemoveGlobal=V._BinaryenRemoveGlobal;a._BinaryenReplaceLaneVecF32x4=V._BinaryenReplaceLaneVecF32x4;a._BinaryenReplaceLaneVecF64x2=V._BinaryenReplaceLaneVecF64x2;a._BinaryenReplaceLaneVecI16x8=V._BinaryenReplaceLaneVecI16x8;a._BinaryenReplaceLaneVecI32x4=V._BinaryenReplaceLaneVecI32x4;a._BinaryenReplaceLaneVecI64x2=V._BinaryenReplaceLaneVecI64x2;a._BinaryenReplaceLaneVecI8x16=V._BinaryenReplaceLaneVecI8x16;a._BinaryenReturn=V._BinaryenReturn; -a._BinaryenReturnGetValue=V._BinaryenReturnGetValue;a._BinaryenReturnId=V._BinaryenReturnId;a._BinaryenRotLInt32=V._BinaryenRotLInt32;a._BinaryenRotLInt64=V._BinaryenRotLInt64;a._BinaryenRotRInt32=V._BinaryenRotRInt32;a._BinaryenRotRInt64=V._BinaryenRotRInt64;a._BinaryenSIMDBitselect=V._BinaryenSIMDBitselect;a._BinaryenSIMDBitselectGetCond=V._BinaryenSIMDBitselectGetCond;a._BinaryenSIMDBitselectGetLeft=V._BinaryenSIMDBitselectGetLeft;a._BinaryenSIMDBitselectGetRight=V._BinaryenSIMDBitselectGetRight; -a._BinaryenSIMDBitselectId=V._BinaryenSIMDBitselectId;a._BinaryenSIMDExtract=V._BinaryenSIMDExtract;a._BinaryenSIMDExtractGetIndex=V._BinaryenSIMDExtractGetIndex;a._BinaryenSIMDExtractGetOp=V._BinaryenSIMDExtractGetOp;a._BinaryenSIMDExtractGetVec=V._BinaryenSIMDExtractGetVec;a._BinaryenSIMDExtractId=V._BinaryenSIMDExtractId;a._BinaryenSIMDReplace=V._BinaryenSIMDReplace;a._BinaryenSIMDReplaceGetIndex=V._BinaryenSIMDReplaceGetIndex;a._BinaryenSIMDReplaceGetOp=V._BinaryenSIMDReplaceGetOp; -a._BinaryenSIMDReplaceGetValue=V._BinaryenSIMDReplaceGetValue;a._BinaryenSIMDReplaceGetVec=V._BinaryenSIMDReplaceGetVec;a._BinaryenSIMDReplaceId=V._BinaryenSIMDReplaceId;a._BinaryenSIMDShift=V._BinaryenSIMDShift;a._BinaryenSIMDShiftGetOp=V._BinaryenSIMDShiftGetOp;a._BinaryenSIMDShiftGetShift=V._BinaryenSIMDShiftGetShift;a._BinaryenSIMDShiftGetVec=V._BinaryenSIMDShiftGetVec;a._BinaryenSIMDShiftId=V._BinaryenSIMDShiftId;a._BinaryenSIMDShuffle=V._BinaryenSIMDShuffle;a._BinaryenSIMDShuffleGetLeft=V._BinaryenSIMDShuffleGetLeft; -a._BinaryenSIMDShuffleGetMask=V._BinaryenSIMDShuffleGetMask;a._BinaryenSIMDShuffleGetRight=V._BinaryenSIMDShuffleGetRight;a._BinaryenSIMDShuffleId=V._BinaryenSIMDShuffleId;a._BinaryenSelect=V._BinaryenSelect;a._BinaryenSelectGetCondition=V._BinaryenSelectGetCondition;a._BinaryenSelectGetIfFalse=V._BinaryenSelectGetIfFalse;a._BinaryenSelectGetIfTrue=V._BinaryenSelectGetIfTrue;a._BinaryenSelectId=V._BinaryenSelectId;a._BinaryenSetAPITracing=V._BinaryenSetAPITracing;a._BinaryenSetDebugInfo=V._BinaryenSetDebugInfo; -a._BinaryenSetFunctionTable=V._BinaryenSetFunctionTable;a._BinaryenSetGlobal=V._BinaryenSetGlobal;a._BinaryenSetGlobalGetName=V._BinaryenSetGlobalGetName;a._BinaryenSetGlobalGetValue=V._BinaryenSetGlobalGetValue;a._BinaryenSetGlobalId=V._BinaryenSetGlobalId;a._BinaryenSetLocal=V._BinaryenSetLocal;a._BinaryenSetLocalGetIndex=V._BinaryenSetLocalGetIndex;a._BinaryenSetLocalGetValue=V._BinaryenSetLocalGetValue;a._BinaryenSetLocalId=V._BinaryenSetLocalId;a._BinaryenSetLocalIsTee=V._BinaryenSetLocalIsTee; -a._BinaryenSetMemory=V._BinaryenSetMemory;a._BinaryenSetOptimizeLevel=V._BinaryenSetOptimizeLevel;a._BinaryenSetShrinkLevel=V._BinaryenSetShrinkLevel;a._BinaryenSetStart=V._BinaryenSetStart;a._BinaryenShlInt32=V._BinaryenShlInt32;a._BinaryenShlInt64=V._BinaryenShlInt64;a._BinaryenShlVecI16x8=V._BinaryenShlVecI16x8;a._BinaryenShlVecI32x4=V._BinaryenShlVecI32x4;a._BinaryenShlVecI64x2=V._BinaryenShlVecI64x2;a._BinaryenShlVecI8x16=V._BinaryenShlVecI8x16;a._BinaryenShrSInt32=V._BinaryenShrSInt32; -a._BinaryenShrSInt64=V._BinaryenShrSInt64;a._BinaryenShrSVecI16x8=V._BinaryenShrSVecI16x8;a._BinaryenShrSVecI32x4=V._BinaryenShrSVecI32x4;a._BinaryenShrSVecI64x2=V._BinaryenShrSVecI64x2;a._BinaryenShrSVecI8x16=V._BinaryenShrSVecI8x16;a._BinaryenShrUInt32=V._BinaryenShrUInt32;a._BinaryenShrUInt64=V._BinaryenShrUInt64;a._BinaryenShrUVecI16x8=V._BinaryenShrUVecI16x8;a._BinaryenShrUVecI32x4=V._BinaryenShrUVecI32x4;a._BinaryenShrUVecI64x2=V._BinaryenShrUVecI64x2;a._BinaryenShrUVecI8x16=V._BinaryenShrUVecI8x16; -a._BinaryenSizeofLiteral=V._BinaryenSizeofLiteral;a._BinaryenSplatVecF32x4=V._BinaryenSplatVecF32x4;a._BinaryenSplatVecF64x2=V._BinaryenSplatVecF64x2;a._BinaryenSplatVecI16x8=V._BinaryenSplatVecI16x8;a._BinaryenSplatVecI32x4=V._BinaryenSplatVecI32x4;a._BinaryenSplatVecI64x2=V._BinaryenSplatVecI64x2;a._BinaryenSplatVecI8x16=V._BinaryenSplatVecI8x16;a._BinaryenSqrtFloat32=V._BinaryenSqrtFloat32;a._BinaryenSqrtFloat64=V._BinaryenSqrtFloat64;a._BinaryenSqrtVecF32x4=V._BinaryenSqrtVecF32x4; -a._BinaryenSqrtVecF64x2=V._BinaryenSqrtVecF64x2;a._BinaryenStore=V._BinaryenStore;a._BinaryenStoreGetAlign=V._BinaryenStoreGetAlign;a._BinaryenStoreGetBytes=V._BinaryenStoreGetBytes;a._BinaryenStoreGetOffset=V._BinaryenStoreGetOffset;a._BinaryenStoreGetPtr=V._BinaryenStoreGetPtr;a._BinaryenStoreGetValue=V._BinaryenStoreGetValue;a._BinaryenStoreId=V._BinaryenStoreId;a._BinaryenStoreIsAtomic=V._BinaryenStoreIsAtomic;a._BinaryenSubFloat32=V._BinaryenSubFloat32;a._BinaryenSubFloat64=V._BinaryenSubFloat64; -a._BinaryenSubInt32=V._BinaryenSubInt32;a._BinaryenSubInt64=V._BinaryenSubInt64;a._BinaryenSubSatSVecI16x8=V._BinaryenSubSatSVecI16x8;a._BinaryenSubSatSVecI8x16=V._BinaryenSubSatSVecI8x16;a._BinaryenSubSatUVecI16x8=V._BinaryenSubSatUVecI16x8;a._BinaryenSubSatUVecI8x16=V._BinaryenSubSatUVecI8x16;a._BinaryenSubVecF32x4=V._BinaryenSubVecF32x4;a._BinaryenSubVecF64x2=V._BinaryenSubVecF64x2;a._BinaryenSubVecI16x8=V._BinaryenSubVecI16x8;a._BinaryenSubVecI32x4=V._BinaryenSubVecI32x4; -a._BinaryenSubVecI64x2=V._BinaryenSubVecI64x2;a._BinaryenSubVecI8x16=V._BinaryenSubVecI8x16;a._BinaryenSwitch=V._BinaryenSwitch;a._BinaryenSwitchGetCondition=V._BinaryenSwitchGetCondition;a._BinaryenSwitchGetDefaultName=V._BinaryenSwitchGetDefaultName;a._BinaryenSwitchGetName=V._BinaryenSwitchGetName;a._BinaryenSwitchGetNumNames=V._BinaryenSwitchGetNumNames;a._BinaryenSwitchGetValue=V._BinaryenSwitchGetValue;a._BinaryenSwitchId=V._BinaryenSwitchId;a._BinaryenTeeLocal=V._BinaryenTeeLocal; -a._BinaryenTruncFloat32=V._BinaryenTruncFloat32;a._BinaryenTruncFloat64=V._BinaryenTruncFloat64;a._BinaryenTruncSFloat32ToInt32=V._BinaryenTruncSFloat32ToInt32;a._BinaryenTruncSFloat32ToInt64=V._BinaryenTruncSFloat32ToInt64;a._BinaryenTruncSFloat64ToInt32=V._BinaryenTruncSFloat64ToInt32;a._BinaryenTruncSFloat64ToInt64=V._BinaryenTruncSFloat64ToInt64;a._BinaryenTruncSatSFloat32ToInt32=V._BinaryenTruncSatSFloat32ToInt32;a._BinaryenTruncSatSFloat32ToInt64=V._BinaryenTruncSatSFloat32ToInt64; -a._BinaryenTruncSatSFloat64ToInt32=V._BinaryenTruncSatSFloat64ToInt32;a._BinaryenTruncSatSFloat64ToInt64=V._BinaryenTruncSatSFloat64ToInt64;a._BinaryenTruncSatSVecF32x4ToVecI32x4=V._BinaryenTruncSatSVecF32x4ToVecI32x4;a._BinaryenTruncSatSVecF64x2ToVecI64x2=V._BinaryenTruncSatSVecF64x2ToVecI64x2;a._BinaryenTruncSatUFloat32ToInt32=V._BinaryenTruncSatUFloat32ToInt32;a._BinaryenTruncSatUFloat32ToInt64=V._BinaryenTruncSatUFloat32ToInt64;a._BinaryenTruncSatUFloat64ToInt32=V._BinaryenTruncSatUFloat64ToInt32; -a._BinaryenTruncSatUFloat64ToInt64=V._BinaryenTruncSatUFloat64ToInt64;a._BinaryenTruncSatUVecF32x4ToVecI32x4=V._BinaryenTruncSatUVecF32x4ToVecI32x4;a._BinaryenTruncSatUVecF64x2ToVecI64x2=V._BinaryenTruncSatUVecF64x2ToVecI64x2;a._BinaryenTruncUFloat32ToInt32=V._BinaryenTruncUFloat32ToInt32;a._BinaryenTruncUFloat32ToInt64=V._BinaryenTruncUFloat32ToInt64;a._BinaryenTruncUFloat64ToInt32=V._BinaryenTruncUFloat64ToInt32;a._BinaryenTruncUFloat64ToInt64=V._BinaryenTruncUFloat64ToInt64; -a._BinaryenTypeAuto=V._BinaryenTypeAuto;a._BinaryenTypeFloat32=V._BinaryenTypeFloat32;a._BinaryenTypeFloat64=V._BinaryenTypeFloat64;a._BinaryenTypeInt32=V._BinaryenTypeInt32;a._BinaryenTypeInt64=V._BinaryenTypeInt64;a._BinaryenTypeNone=V._BinaryenTypeNone;a._BinaryenTypeUnreachable=V._BinaryenTypeUnreachable;a._BinaryenTypeVec128=V._BinaryenTypeVec128;a._BinaryenUnary=V._BinaryenUnary;a._BinaryenUnaryGetOp=V._BinaryenUnaryGetOp;a._BinaryenUnaryGetValue=V._BinaryenUnaryGetValue; -a._BinaryenUnaryId=V._BinaryenUnaryId;a._BinaryenUndefined=V._BinaryenUndefined;a._BinaryenUnreachable=V._BinaryenUnreachable;a._BinaryenUnreachableId=V._BinaryenUnreachableId;a._BinaryenWrapInt64=V._BinaryenWrapInt64;a._BinaryenXorInt32=V._BinaryenXorInt32;a._BinaryenXorInt64=V._BinaryenXorInt64;a._BinaryenXorVec128=V._BinaryenXorVec128; -var Ma=a.__GLOBAL__I_000101=V.__GLOBAL__I_000101,cb=a.__GLOBAL__sub_I_InstrumentLocals_cpp=V.__GLOBAL__sub_I_InstrumentLocals_cpp,bb=a.__GLOBAL__sub_I_InstrumentMemory_cpp=V.__GLOBAL__sub_I_InstrumentMemory_cpp,ab=a.__GLOBAL__sub_I_LogExecution_cpp=V.__GLOBAL__sub_I_LogExecution_cpp,$a=a.__GLOBAL__sub_I_Metrics_cpp=V.__GLOBAL__sub_I_Metrics_cpp,Za=a.__GLOBAL__sub_I_OptimizeInstructions_cpp=V.__GLOBAL__sub_I_OptimizeInstructions_cpp,Na=a.__GLOBAL__sub_I_Precompute_cpp=V.__GLOBAL__sub_I_Precompute_cpp, -Wa=a.__GLOBAL__sub_I_RelooperJumpThreading_cpp=V.__GLOBAL__sub_I_RelooperJumpThreading_cpp,Ua=a.__GLOBAL__sub_I_SSAify_cpp=V.__GLOBAL__sub_I_SSAify_cpp,Va=a.__GLOBAL__sub_I_SafeHeap_cpp=V.__GLOBAL__sub_I_SafeHeap_cpp,Ta=a.__GLOBAL__sub_I_TrapMode_cpp=V.__GLOBAL__sub_I_TrapMode_cpp,Xa=a.__GLOBAL__sub_I_binaryen_c_cpp=V.__GLOBAL__sub_I_binaryen_c_cpp,Oa=a.__GLOBAL__sub_I_iostream_cpp=V.__GLOBAL__sub_I_iostream_cpp,fb=a.__GLOBAL__sub_I_optimizer_shared_cpp=V.__GLOBAL__sub_I_optimizer_shared_cpp,eb=a.__GLOBAL__sub_I_parser_cpp= -V.__GLOBAL__sub_I_parser_cpp,Ya=a.__GLOBAL__sub_I_pass_cpp=V.__GLOBAL__sub_I_pass_cpp,gb=a.__GLOBAL__sub_I_shared_constants_cpp=V.__GLOBAL__sub_I_shared_constants_cpp,db=a.__GLOBAL__sub_I_simple_ast_cpp=V.__GLOBAL__sub_I_simple_ast_cpp,Sa=a.__GLOBAL__sub_I_threads_cpp=V.__GLOBAL__sub_I_threads_cpp,Qa=a.__GLOBAL__sub_I_wasm_cpp=V.__GLOBAL__sub_I_wasm_cpp,Ra=a.__GLOBAL__sub_I_wasm_emscripten_cpp=V.__GLOBAL__sub_I_wasm_emscripten_cpp,hc=a.__ZSt18uncaught_exceptionv=V.__ZSt18uncaught_exceptionv; -a.___cxa_can_catch=V.___cxa_can_catch;a.___cxa_demangle=V.___cxa_demangle;a.___cxa_is_pointer_type=V.___cxa_is_pointer_type;a.___divdi3=V.___divdi3;var Pa=a.___emscripten_environ_constructor=V.___emscripten_environ_constructor;a.___muldi3=V.___muldi3;a.___remdi3=V.___remdi3;a.___udivdi3=V.___udivdi3;a.___uremdi3=V.___uremdi3;a.__get_environ=V.__get_environ;a._bitshift64Ashr=V._bitshift64Ashr;a._bitshift64Lshr=V._bitshift64Lshr;a._bitshift64Shl=V._bitshift64Shl;a._emscripten_replace_memory=V._emscripten_replace_memory; -var J=a._free=V._free;a._i64Add=V._i64Add;a._i64Subtract=V._i64Subtract;a._llvm_bswap_i32=V._llvm_bswap_i32;a._llvm_nearbyint_f32=V._llvm_nearbyint_f32;a._llvm_nearbyint_f64=V._llvm_nearbyint_f64;var A=a._malloc=V._malloc;a._memcpy=V._memcpy;a._memmove=V._memmove;a._memset=V._memset;a._pthread_cond_broadcast=V._pthread_cond_broadcast;a._pthread_mutex_lock=V._pthread_mutex_lock;a._pthread_mutex_unlock=V._pthread_mutex_unlock;a._sbrk=V._sbrk;var U=a._setThrew=V._setThrew;a.establishStackSpace=V.establishStackSpace; -var pa=a.stackAlloc=V.stackAlloc,T=a.stackRestore=V.stackRestore,S=a.stackSave=V.stackSave,Hb=a.dynCall_i=V.dynCall_i,Ib=a.dynCall_id=V.dynCall_id,Jb=a.dynCall_ii=V.dynCall_ii,Kb=a.dynCall_iid=V.dynCall_iid,Lb=a.dynCall_iii=V.dynCall_iii,Mb=a.dynCall_iiii=V.dynCall_iiii,Nb=a.dynCall_iiiii=V.dynCall_iiiii,Rb=a.dynCall_iiiiid=V.dynCall_iiiiid,Sb=a.dynCall_iiiiii=V.dynCall_iiiiii;a.dynCall_iiiiiid=V.dynCall_iiiiiid; -var Tb=a.dynCall_iiiiiii=V.dynCall_iiiiiii,Ub=a.dynCall_iiiiiiii=V.dynCall_iiiiiiii,Vb=a.dynCall_iiiiiiiii=V.dynCall_iiiiiiiii,Wb=a.dynCall_iiiiiiiiiiii=V.dynCall_iiiiiiiiiiii,wb=a.dynCall_v=V.dynCall_v,Xb=a.dynCall_vi=V.dynCall_vi,Yb=a.dynCall_vii=V.dynCall_vii,Zb=a.dynCall_viii=V.dynCall_viii,$b=a.dynCall_viiii=V.dynCall_viiii,ac=a.dynCall_viiiii=V.dynCall_viiiii,bc=a.dynCall_viiiiii=V.dynCall_viiiiii,cc=a.dynCall_viiiiiii=V.dynCall_viiiiiii,dc=a.dynCall_viiiiiiiiii=V.dynCall_viiiiiiiiii,ec=a.dynCall_viiiiiiiiiiiiiii= -V.dynCall_viiiiiiiiiiiiiii;a.asm=V; -if(H){if(String.prototype.startsWith?!H.startsWith(La):0!==H.indexOf(La)){var jc=H;H=a.locateFile?a.locateFile(jc,p):p+jc}if(n||da){var kc=a.readBinary(H);C.set(kc,8)}else{F++;a.monitorRunDependencies&&a.monitorRunDependencies(F);var lc=function(c){c.byteLength&&(c=new Uint8Array(c));C.set(c,8);a.memoryInitializerRequest&&delete a.memoryInitializerRequest.response;F--;a.monitorRunDependencies&&a.monitorRunDependencies(F);0==F&&(null!==Ja&&(clearInterval(Ja),Ja=null),Ka&&(c=Ka,Ka=null,c()))},mc=function(){a.readAsync(H, -lc,function(){throw"could not load memory initializer "+H;})},nc=t(H);if(nc)lc(nc.buffer);else if(a.memoryInitializerRequest){var oc=function(){var c=a.memoryInitializerRequest,e=c.response;if(200!==c.status&&0!==c.status)if(e=t(a.memoryInitializerRequestURL))e=e.buffer;else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+c.status+", retrying "+H);mc();return}lc(e)};a.memoryInitializerRequest.response?setTimeout(oc,0):a.memoryInitializerRequest.addEventListener("load", -oc)}else mc()}}function ha(c){this.name="ExitStatus";this.message="Program terminated with exit("+c+")";this.status=c}ha.prototype=Error();ha.prototype.constructor=ha;Ka=function pc(){a.calledRun||qc();a.calledRun||(Ka=pc)}; -function qc(){function c(){if(!a.calledRun&&(a.calledRun=!0,!na)){Fa||(Fa=!0,ya(Ba));ya(Ca);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;){var c=a.postRun.shift();Ea.unshift(c)}ya(Ea)}}if(!(0>2]=c[g];return e}function rc(c){for(var e=pa(c.length),g=0;g>>2],e=wa[(g>>>2)+1],k=wa[(g>>>2)+2];try{var l=new Uint8Array(e);l.set(C.subarray(d,d+e));return"undefined"===typeof b?l:{binary:l,sourceMap:D(k)}}finally{J(d),k&&J(k)}})};e.interpret=function(){return a._BinaryenModuleInterpret(c)}; -e.addDebugInfoFileName=function(b){return W(function(){return a._BinaryenModuleAddDebugInfoFileName(c,X(b))})};e.getDebugInfoFileName=function(b){return D(a._BinaryenModuleGetDebugInfoFileName(c,b))};e.setDebugLocation=function(b,c,e,g,l){return a._BinaryenFunctionSetDebugLocation(b,c,e,g,l)};return e}a.wrapModule=sc; -a.Relooper=function(c){assert(c&&"object"===typeof c&&c.ptr&&c.block&&c["if"]);var e=a._RelooperCreate(c.ptr);this.ptr=e;this.addBlock=function(c){return a._RelooperAddBlock(e,c)};this.addBranch=function(c,b,d,e){return a._RelooperAddBranch(c,b,d,e)};this.addBlockWithSwitch=function(c,b){return a._RelooperAddBlockWithSwitch(e,c,b)};this.addBranchForSwitch=function(c,b,d,e){return W(function(){return a._RelooperAddBranchForSwitch(c,b,Y(d),d.length,e)})};this.renderAndDispose=function(c,b){return a._RelooperRenderAndDispose(e, -c,b)}};function Z(c,e,g){e=e(c);for(var b=Array(e),d=0;dk;k++)h[k]=B[b+k];return{id:e,type:g,left:a._BinaryenSIMDShuffleGetLeft(c),right:a._BinaryenSIMDShuffleGetRight(c),mask:h}});case a.SIMDBitselectId:return{id:e, -type:g,left:a._BinaryenSIMDBitselectGetLeft(c),right:a._BinaryenSIMDBitselectGetRight(c),cond:a._BinaryenSIMDBitselectGetCond(c)};case a.SIMDShiftId:return{id:e,type:g,op:a._BinaryenSIMDShiftGetOp(c),vec:a._BinaryenSIMDShiftGetVec(c),shift:a._BinaryenSIMDShiftGetShift(c)};case a.MemoryInitId:return{id:e,segment:a._BinaryenMemoryInitGetSegment(c),dest:a._BinaryenMemoryInitGetDest(c),offset:a._BinaryenMemoryInitGetOffset(c),size:a._BinaryenMemoryInitGetSize(c)};case a.DataDropId:return{id:e,segment:a._BinaryenDataDropGetSegment(c)}; -case a.MemoryCopyId:return{id:e,dest:a._BinaryenMemoryCopyGetDest(c),source:a._BinaryenMemoryCopyGetSource(c),size:a._BinaryenMemoryCopyGetSize(c)};case a.MemoryFillId:return{id:e,dest:a._BinaryenMemoryFillGetDest(c),value:a._BinaryenMemoryFillGetValue(c),size:a._BinaryenMemoryFillGetSize(c)};default:throw Error("unexpected id: "+e);}}; -a.getFunctionTypeInfo=function(c){return{name:D(a._BinaryenFunctionTypeGetName(c)),params:Z(c,a._BinaryenFunctionTypeGetNumParams,a._BinaryenFunctionTypeGetParam),result:a._BinaryenFunctionTypeGetResult(c)}}; -a.getFunctionInfo=function(c){return{name:D(a._BinaryenFunctionGetName(c)),module:D(a._BinaryenFunctionImportGetModule(c)),base:D(a._BinaryenFunctionImportGetBase(c)),type:D(a._BinaryenFunctionGetType(c)),params:Z(c,a._BinaryenFunctionGetNumParams,a._BinaryenFunctionGetParam),result:a._BinaryenFunctionGetResult(c),vars:Z(c,a._BinaryenFunctionGetNumVars,a._BinaryenFunctionGetVar),body:a._BinaryenFunctionGetBody(c)}}; -a.getGlobalInfo=function(c){return{name:D(a._BinaryenGlobalGetName(c)),module:D(a._BinaryenGlobalImportGetModule(c)),base:D(a._BinaryenGlobalImportGetBase(c)),type:D(a._BinaryenGlobalGetType(c))}};a.getExportInfo=function(c){return{kind:a._BinaryenExportGetKind(c),name:D(a._BinaryenExportGetName(c)),value:D(a._BinaryenExportGetValue(c))}};a.emitText=function(c){if("object"===typeof c)return c.Ca();var e=v,g="";v=function(b){g+=b+"\n"};a._BinaryenExpressionPrint(c);v=e;return g}; -a.readBinary=function(c){var e=oa(c,0);c=a._BinaryenModuleRead(e,c.length);J(e);return sc(c)};a.parseText=function(c){var e=A(c.length+1);ua(c,e);c=a._BinaryenModuleParse(e);J(e);return sc(c)};a.getOptimizeLevel=function(){return a._BinaryenGetOptimizeLevel()};a.setOptimizeLevel=function(c){return a._BinaryenSetOptimizeLevel(c)};a.getShrinkLevel=function(){return a._BinaryenGetShrinkLevel()};a.setShrinkLevel=function(c){return a._BinaryenSetShrinkLevel(c)};a.getDebugInfo=function(){return!!a._BinaryenGetDebugInfo()}; -a.setDebugInfo=function(c){return a._BinaryenSetDebugInfo(c)};a.setAPITracing=function(c){return a._BinaryenSetAPITracing(c)};a.exit=function(c){if(0!=c)throw Error("exiting due to error: "+c);}; - - - - return Binaryen; -} -)(typeof Binaryen === 'object' ? Binaryen : {}); -if (true) - module.exports = Binaryen; - else {} - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! processGlobal */ "./node_modules/browserfs/dist/shims/process.js"), "/", __webpack_require__(/*! bufferGlobal */ "./node_modules/browserfs/dist/shims/bufferGlobal.js"))) - -/***/ }), - -/***/ "./node_modules/bn.js/lib/bn.js": -/*!**************************************!*\ - !*** ./node_modules/bn.js/lib/bn.js ***! - \**************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) { - 'use strict'; - - // Utils - function assert (val, msg) { - if (!val) throw new Error(msg || 'Assertion failed'); - } - - // Could use `inherits` module, but don't want to move from single file - // architecture yet. - function inherits (ctor, superCtor) { - ctor.super_ = superCtor; - var TempCtor = function () {}; - TempCtor.prototype = superCtor.prototype; - ctor.prototype = new TempCtor(); - ctor.prototype.constructor = ctor; - } - - // BN - - function BN (number, base, endian) { - if (BN.isBN(number)) { - return number; - } - - this.negative = 0; - this.words = null; - this.length = 0; - - // Reduction context - this.red = null; - - if (number !== null) { - if (base === 'le' || base === 'be') { - endian = base; - base = 10; - } - - this._init(number || 0, base || 10, endian || 'be'); - } - } - if (typeof module === 'object') { - module.exports = BN; - } else { - exports.BN = BN; - } - - BN.BN = BN; - BN.wordSize = 26; - - var Buffer; - try { - Buffer = __webpack_require__(/*! buffer */ "./node_modules/browserfs/dist/shims/buffer.js").Buffer; - } catch (e) { - } - - BN.isBN = function isBN (num) { - if (num instanceof BN) { - return true; - } - - return num !== null && typeof num === 'object' && - num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); - }; - - BN.max = function max (left, right) { - if (left.cmp(right) > 0) return left; - return right; - }; - - BN.min = function min (left, right) { - if (left.cmp(right) < 0) return left; - return right; - }; - - BN.prototype._init = function init (number, base, endian) { - if (typeof number === 'number') { - return this._initNumber(number, base, endian); - } - - if (typeof number === 'object') { - return this._initArray(number, base, endian); - } - - if (base === 'hex') { - base = 16; - } - assert(base === (base | 0) && base >= 2 && base <= 36); - - number = number.toString().replace(/\s+/g, ''); - var start = 0; - if (number[0] === '-') { - start++; - } - - if (base === 16) { - this._parseHex(number, start); - } else { - this._parseBase(number, base, start); - } - - if (number[0] === '-') { - this.negative = 1; - } - - this.strip(); - - if (endian !== 'le') return; - - this._initArray(this.toArray(), base, endian); - }; - - BN.prototype._initNumber = function _initNumber (number, base, endian) { - if (number < 0) { - this.negative = 1; - number = -number; - } - if (number < 0x4000000) { - this.words = [ number & 0x3ffffff ]; - this.length = 1; - } else if (number < 0x10000000000000) { - this.words = [ - number & 0x3ffffff, - (number / 0x4000000) & 0x3ffffff - ]; - this.length = 2; - } else { - assert(number < 0x20000000000000); // 2 ^ 53 (unsafe) - this.words = [ - number & 0x3ffffff, - (number / 0x4000000) & 0x3ffffff, - 1 - ]; - this.length = 3; - } - - if (endian !== 'le') return; - - // Reverse the bytes - this._initArray(this.toArray(), base, endian); - }; - - BN.prototype._initArray = function _initArray (number, base, endian) { - // Perhaps a Uint8Array - assert(typeof number.length === 'number'); - if (number.length <= 0) { - this.words = [ 0 ]; - this.length = 1; - return this; - } - - this.length = Math.ceil(number.length / 3); - this.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - this.words[i] = 0; - } - - var j, w; - var off = 0; - if (endian === 'be') { - for (i = number.length - 1, j = 0; i >= 0; i -= 3) { - w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16); - this.words[j] |= (w << off) & 0x3ffffff; - this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; - off += 24; - if (off >= 26) { - off -= 26; - j++; - } - } - } else if (endian === 'le') { - for (i = 0, j = 0; i < number.length; i += 3) { - w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16); - this.words[j] |= (w << off) & 0x3ffffff; - this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; - off += 24; - if (off >= 26) { - off -= 26; - j++; - } - } - } - return this.strip(); - }; - - function parseHex (str, start, end) { - var r = 0; - var len = Math.min(str.length, end); - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48; - - r <<= 4; - - // 'a' - 'f' - if (c >= 49 && c <= 54) { - r |= c - 49 + 0xa; - - // 'A' - 'F' - } else if (c >= 17 && c <= 22) { - r |= c - 17 + 0xa; - - // '0' - '9' - } else { - r |= c & 0xf; - } - } - return r; - } - - BN.prototype._parseHex = function _parseHex (number, start) { - // Create possibly bigger array to ensure that it fits the number - this.length = Math.ceil((number.length - start) / 6); - this.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - this.words[i] = 0; - } - - var j, w; - // Scan 24-bit chunks and add them to the number - var off = 0; - for (i = number.length - 6, j = 0; i >= start; i -= 6) { - w = parseHex(number, i, i + 6); - this.words[j] |= (w << off) & 0x3ffffff; - // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb - this.words[j + 1] |= w >>> (26 - off) & 0x3fffff; - off += 24; - if (off >= 26) { - off -= 26; - j++; - } - } - if (i + 6 !== start) { - w = parseHex(number, start, i + 6); - this.words[j] |= (w << off) & 0x3ffffff; - this.words[j + 1] |= w >>> (26 - off) & 0x3fffff; - } - this.strip(); - }; - - function parseBase (str, start, end, mul) { - var r = 0; - var len = Math.min(str.length, end); - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48; - - r *= mul; - - // 'a' - if (c >= 49) { - r += c - 49 + 0xa; - - // 'A' - } else if (c >= 17) { - r += c - 17 + 0xa; - - // '0' - '9' - } else { - r += c; - } - } - return r; - } - - BN.prototype._parseBase = function _parseBase (number, base, start) { - // Initialize as zero - this.words = [ 0 ]; - this.length = 1; - - // Find length of limb in base - for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) { - limbLen++; - } - limbLen--; - limbPow = (limbPow / base) | 0; - - var total = number.length - start; - var mod = total % limbLen; - var end = Math.min(total, total - mod) + start; - - var word = 0; - for (var i = start; i < end; i += limbLen) { - word = parseBase(number, i, i + limbLen, base); - - this.imuln(limbPow); - if (this.words[0] + word < 0x4000000) { - this.words[0] += word; - } else { - this._iaddn(word); - } - } - - if (mod !== 0) { - var pow = 1; - word = parseBase(number, i, number.length, base); - - for (i = 0; i < mod; i++) { - pow *= base; - } - - this.imuln(pow); - if (this.words[0] + word < 0x4000000) { - this.words[0] += word; - } else { - this._iaddn(word); - } - } - }; - - BN.prototype.copy = function copy (dest) { - dest.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - dest.words[i] = this.words[i]; - } - dest.length = this.length; - dest.negative = this.negative; - dest.red = this.red; - }; - - BN.prototype.clone = function clone () { - var r = new BN(null); - this.copy(r); - return r; - }; - - BN.prototype._expand = function _expand (size) { - while (this.length < size) { - this.words[this.length++] = 0; - } - return this; - }; - - // Remove leading `0` from `this` - BN.prototype.strip = function strip () { - while (this.length > 1 && this.words[this.length - 1] === 0) { - this.length--; - } - return this._normSign(); - }; - - BN.prototype._normSign = function _normSign () { - // -0 = 0 - if (this.length === 1 && this.words[0] === 0) { - this.negative = 0; - } - return this; - }; - - BN.prototype.inspect = function inspect () { - return (this.red ? ''; - }; - - /* - - var zeros = []; - var groupSizes = []; - var groupBases = []; - - var s = ''; - var i = -1; - while (++i < BN.wordSize) { - zeros[i] = s; - s += '0'; - } - groupSizes[0] = 0; - groupSizes[1] = 0; - groupBases[0] = 0; - groupBases[1] = 0; - var base = 2 - 1; - while (++base < 36 + 1) { - var groupSize = 0; - var groupBase = 1; - while (groupBase < (1 << BN.wordSize) / base) { - groupBase *= base; - groupSize += 1; - } - groupSizes[base] = groupSize; - groupBases[base] = groupBase; - } - - */ - - var zeros = [ - '', - '0', - '00', - '000', - '0000', - '00000', - '000000', - '0000000', - '00000000', - '000000000', - '0000000000', - '00000000000', - '000000000000', - '0000000000000', - '00000000000000', - '000000000000000', - '0000000000000000', - '00000000000000000', - '000000000000000000', - '0000000000000000000', - '00000000000000000000', - '000000000000000000000', - '0000000000000000000000', - '00000000000000000000000', - '000000000000000000000000', - '0000000000000000000000000' - ]; - - var groupSizes = [ - 0, 0, - 25, 16, 12, 11, 10, 9, 8, - 8, 7, 7, 7, 7, 6, 6, - 6, 6, 6, 6, 6, 5, 5, - 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5 - ]; - - var groupBases = [ - 0, 0, - 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, - 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, - 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, - 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, - 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176 - ]; - - BN.prototype.toString = function toString (base, padding) { - base = base || 10; - padding = padding | 0 || 1; - - var out; - if (base === 16 || base === 'hex') { - out = ''; - var off = 0; - var carry = 0; - for (var i = 0; i < this.length; i++) { - var w = this.words[i]; - var word = (((w << off) | carry) & 0xffffff).toString(16); - carry = (w >>> (24 - off)) & 0xffffff; - if (carry !== 0 || i !== this.length - 1) { - out = zeros[6 - word.length] + word + out; - } else { - out = word + out; - } - off += 2; - if (off >= 26) { - off -= 26; - i--; - } - } - if (carry !== 0) { - out = carry.toString(16) + out; - } - while (out.length % padding !== 0) { - out = '0' + out; - } - if (this.negative !== 0) { - out = '-' + out; - } - return out; - } - - if (base === (base | 0) && base >= 2 && base <= 36) { - // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base)); - var groupSize = groupSizes[base]; - // var groupBase = Math.pow(base, groupSize); - var groupBase = groupBases[base]; - out = ''; - var c = this.clone(); - c.negative = 0; - while (!c.isZero()) { - var r = c.modn(groupBase).toString(base); - c = c.idivn(groupBase); - - if (!c.isZero()) { - out = zeros[groupSize - r.length] + r + out; - } else { - out = r + out; - } - } - if (this.isZero()) { - out = '0' + out; - } - while (out.length % padding !== 0) { - out = '0' + out; - } - if (this.negative !== 0) { - out = '-' + out; - } - return out; - } - - assert(false, 'Base should be between 2 and 36'); - }; - - BN.prototype.toNumber = function toNumber () { - var ret = this.words[0]; - if (this.length === 2) { - ret += this.words[1] * 0x4000000; - } else if (this.length === 3 && this.words[2] === 0x01) { - // NOTE: at this stage it is known that the top bit is set - ret += 0x10000000000000 + (this.words[1] * 0x4000000); - } else if (this.length > 2) { - assert(false, 'Number can only safely store up to 53 bits'); - } - return (this.negative !== 0) ? -ret : ret; - }; - - BN.prototype.toJSON = function toJSON () { - return this.toString(16); - }; - - BN.prototype.toBuffer = function toBuffer (endian, length) { - assert(typeof Buffer !== 'undefined'); - return this.toArrayLike(Buffer, endian, length); - }; - - BN.prototype.toArray = function toArray (endian, length) { - return this.toArrayLike(Array, endian, length); - }; - - BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) { - var byteLength = this.byteLength(); - var reqLength = length || Math.max(1, byteLength); - assert(byteLength <= reqLength, 'byte array longer than desired length'); - assert(reqLength > 0, 'Requested array length <= 0'); - - this.strip(); - var littleEndian = endian === 'le'; - var res = new ArrayType(reqLength); - - var b, i; - var q = this.clone(); - if (!littleEndian) { - // Assume big-endian - for (i = 0; i < reqLength - byteLength; i++) { - res[i] = 0; - } - - for (i = 0; !q.isZero(); i++) { - b = q.andln(0xff); - q.iushrn(8); - - res[reqLength - i - 1] = b; - } - } else { - for (i = 0; !q.isZero(); i++) { - b = q.andln(0xff); - q.iushrn(8); - - res[i] = b; - } - - for (; i < reqLength; i++) { - res[i] = 0; - } - } - - return res; - }; - - if (Math.clz32) { - BN.prototype._countBits = function _countBits (w) { - return 32 - Math.clz32(w); - }; - } else { - BN.prototype._countBits = function _countBits (w) { - var t = w; - var r = 0; - if (t >= 0x1000) { - r += 13; - t >>>= 13; - } - if (t >= 0x40) { - r += 7; - t >>>= 7; - } - if (t >= 0x8) { - r += 4; - t >>>= 4; - } - if (t >= 0x02) { - r += 2; - t >>>= 2; - } - return r + t; - }; - } - - BN.prototype._zeroBits = function _zeroBits (w) { - // Short-cut - if (w === 0) return 26; - - var t = w; - var r = 0; - if ((t & 0x1fff) === 0) { - r += 13; - t >>>= 13; - } - if ((t & 0x7f) === 0) { - r += 7; - t >>>= 7; - } - if ((t & 0xf) === 0) { - r += 4; - t >>>= 4; - } - if ((t & 0x3) === 0) { - r += 2; - t >>>= 2; - } - if ((t & 0x1) === 0) { - r++; - } - return r; - }; - - // Return number of used bits in a BN - BN.prototype.bitLength = function bitLength () { - var w = this.words[this.length - 1]; - var hi = this._countBits(w); - return (this.length - 1) * 26 + hi; - }; - - function toBitArray (num) { - var w = new Array(num.bitLength()); - - for (var bit = 0; bit < w.length; bit++) { - var off = (bit / 26) | 0; - var wbit = bit % 26; - - w[bit] = (num.words[off] & (1 << wbit)) >>> wbit; - } - - return w; - } - - // Number of trailing zero bits - BN.prototype.zeroBits = function zeroBits () { - if (this.isZero()) return 0; - - var r = 0; - for (var i = 0; i < this.length; i++) { - var b = this._zeroBits(this.words[i]); - r += b; - if (b !== 26) break; - } - return r; - }; - - BN.prototype.byteLength = function byteLength () { - return Math.ceil(this.bitLength() / 8); - }; - - BN.prototype.toTwos = function toTwos (width) { - if (this.negative !== 0) { - return this.abs().inotn(width).iaddn(1); - } - return this.clone(); - }; - - BN.prototype.fromTwos = function fromTwos (width) { - if (this.testn(width - 1)) { - return this.notn(width).iaddn(1).ineg(); - } - return this.clone(); - }; - - BN.prototype.isNeg = function isNeg () { - return this.negative !== 0; - }; - - // Return negative clone of `this` - BN.prototype.neg = function neg () { - return this.clone().ineg(); - }; - - BN.prototype.ineg = function ineg () { - if (!this.isZero()) { - this.negative ^= 1; - } - - return this; - }; - - // Or `num` with `this` in-place - BN.prototype.iuor = function iuor (num) { - while (this.length < num.length) { - this.words[this.length++] = 0; - } - - for (var i = 0; i < num.length; i++) { - this.words[i] = this.words[i] | num.words[i]; - } - - return this.strip(); - }; - - BN.prototype.ior = function ior (num) { - assert((this.negative | num.negative) === 0); - return this.iuor(num); - }; - - // Or `num` with `this` - BN.prototype.or = function or (num) { - if (this.length > num.length) return this.clone().ior(num); - return num.clone().ior(this); - }; - - BN.prototype.uor = function uor (num) { - if (this.length > num.length) return this.clone().iuor(num); - return num.clone().iuor(this); - }; - - // And `num` with `this` in-place - BN.prototype.iuand = function iuand (num) { - // b = min-length(num, this) - var b; - if (this.length > num.length) { - b = num; - } else { - b = this; - } - - for (var i = 0; i < b.length; i++) { - this.words[i] = this.words[i] & num.words[i]; - } - - this.length = b.length; - - return this.strip(); - }; - - BN.prototype.iand = function iand (num) { - assert((this.negative | num.negative) === 0); - return this.iuand(num); - }; - - // And `num` with `this` - BN.prototype.and = function and (num) { - if (this.length > num.length) return this.clone().iand(num); - return num.clone().iand(this); - }; - - BN.prototype.uand = function uand (num) { - if (this.length > num.length) return this.clone().iuand(num); - return num.clone().iuand(this); - }; - - // Xor `num` with `this` in-place - BN.prototype.iuxor = function iuxor (num) { - // a.length > b.length - var a; - var b; - if (this.length > num.length) { - a = this; - b = num; - } else { - a = num; - b = this; - } - - for (var i = 0; i < b.length; i++) { - this.words[i] = a.words[i] ^ b.words[i]; - } - - if (this !== a) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } - - this.length = a.length; - - return this.strip(); - }; - - BN.prototype.ixor = function ixor (num) { - assert((this.negative | num.negative) === 0); - return this.iuxor(num); - }; - - // Xor `num` with `this` - BN.prototype.xor = function xor (num) { - if (this.length > num.length) return this.clone().ixor(num); - return num.clone().ixor(this); - }; - - BN.prototype.uxor = function uxor (num) { - if (this.length > num.length) return this.clone().iuxor(num); - return num.clone().iuxor(this); - }; - - // Not ``this`` with ``width`` bitwidth - BN.prototype.inotn = function inotn (width) { - assert(typeof width === 'number' && width >= 0); - - var bytesNeeded = Math.ceil(width / 26) | 0; - var bitsLeft = width % 26; - - // Extend the buffer with leading zeroes - this._expand(bytesNeeded); - - if (bitsLeft > 0) { - bytesNeeded--; - } - - // Handle complete words - for (var i = 0; i < bytesNeeded; i++) { - this.words[i] = ~this.words[i] & 0x3ffffff; - } - - // Handle the residue - if (bitsLeft > 0) { - this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft)); - } - - // And remove leading zeroes - return this.strip(); - }; - - BN.prototype.notn = function notn (width) { - return this.clone().inotn(width); - }; - - // Set `bit` of `this` - BN.prototype.setn = function setn (bit, val) { - assert(typeof bit === 'number' && bit >= 0); - - var off = (bit / 26) | 0; - var wbit = bit % 26; - - this._expand(off + 1); - - if (val) { - this.words[off] = this.words[off] | (1 << wbit); - } else { - this.words[off] = this.words[off] & ~(1 << wbit); - } - - return this.strip(); - }; - - // Add `num` to `this` in-place - BN.prototype.iadd = function iadd (num) { - var r; - - // negative + positive - if (this.negative !== 0 && num.negative === 0) { - this.negative = 0; - r = this.isub(num); - this.negative ^= 1; - return this._normSign(); - - // positive + negative - } else if (this.negative === 0 && num.negative !== 0) { - num.negative = 0; - r = this.isub(num); - num.negative = 1; - return r._normSign(); - } - - // a.length > b.length - var a, b; - if (this.length > num.length) { - a = this; - b = num; - } else { - a = num; - b = this; - } - - var carry = 0; - for (var i = 0; i < b.length; i++) { - r = (a.words[i] | 0) + (b.words[i] | 0) + carry; - this.words[i] = r & 0x3ffffff; - carry = r >>> 26; - } - for (; carry !== 0 && i < a.length; i++) { - r = (a.words[i] | 0) + carry; - this.words[i] = r & 0x3ffffff; - carry = r >>> 26; - } - - this.length = a.length; - if (carry !== 0) { - this.words[this.length] = carry; - this.length++; - // Copy the rest of the words - } else if (a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } - - return this; - }; - - // Add `num` to `this` - BN.prototype.add = function add (num) { - var res; - if (num.negative !== 0 && this.negative === 0) { - num.negative = 0; - res = this.sub(num); - num.negative ^= 1; - return res; - } else if (num.negative === 0 && this.negative !== 0) { - this.negative = 0; - res = num.sub(this); - this.negative = 1; - return res; - } - - if (this.length > num.length) return this.clone().iadd(num); - - return num.clone().iadd(this); - }; - - // Subtract `num` from `this` in-place - BN.prototype.isub = function isub (num) { - // this - (-num) = this + num - if (num.negative !== 0) { - num.negative = 0; - var r = this.iadd(num); - num.negative = 1; - return r._normSign(); - - // -this - num = -(this + num) - } else if (this.negative !== 0) { - this.negative = 0; - this.iadd(num); - this.negative = 1; - return this._normSign(); - } - - // At this point both numbers are positive - var cmp = this.cmp(num); - - // Optimization - zeroify - if (cmp === 0) { - this.negative = 0; - this.length = 1; - this.words[0] = 0; - return this; - } - - // a > b - var a, b; - if (cmp > 0) { - a = this; - b = num; - } else { - a = num; - b = this; - } - - var carry = 0; - for (var i = 0; i < b.length; i++) { - r = (a.words[i] | 0) - (b.words[i] | 0) + carry; - carry = r >> 26; - this.words[i] = r & 0x3ffffff; - } - for (; carry !== 0 && i < a.length; i++) { - r = (a.words[i] | 0) + carry; - carry = r >> 26; - this.words[i] = r & 0x3ffffff; - } - - // Copy rest of the words - if (carry === 0 && i < a.length && a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } - - this.length = Math.max(this.length, i); - - if (a !== this) { - this.negative = 1; - } - - return this.strip(); - }; - - // Subtract `num` from `this` - BN.prototype.sub = function sub (num) { - return this.clone().isub(num); - }; - - function smallMulTo (self, num, out) { - out.negative = num.negative ^ self.negative; - var len = (self.length + num.length) | 0; - out.length = len; - len = (len - 1) | 0; - - // Peel one iteration (compiler can't do it, because of code complexity) - var a = self.words[0] | 0; - var b = num.words[0] | 0; - var r = a * b; - - var lo = r & 0x3ffffff; - var carry = (r / 0x4000000) | 0; - out.words[0] = lo; - - for (var k = 1; k < len; k++) { - // Sum all words with the same `i + j = k` and accumulate `ncarry`, - // note that ncarry could be >= 0x3ffffff - var ncarry = carry >>> 26; - var rword = carry & 0x3ffffff; - var maxJ = Math.min(k, num.length - 1); - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = (k - j) | 0; - a = self.words[i] | 0; - b = num.words[j] | 0; - r = a * b + rword; - ncarry += (r / 0x4000000) | 0; - rword = r & 0x3ffffff; - } - out.words[k] = rword | 0; - carry = ncarry | 0; - } - if (carry !== 0) { - out.words[k] = carry | 0; - } else { - out.length--; - } - - return out.strip(); - } - - // TODO(indutny): it may be reasonable to omit it for users who don't need - // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit - // multiplication (like elliptic secp256k1). - var comb10MulTo = function comb10MulTo (self, num, out) { - var a = self.words; - var b = num.words; - var o = out.words; - var c = 0; - var lo; - var mid; - var hi; - var a0 = a[0] | 0; - var al0 = a0 & 0x1fff; - var ah0 = a0 >>> 13; - var a1 = a[1] | 0; - var al1 = a1 & 0x1fff; - var ah1 = a1 >>> 13; - var a2 = a[2] | 0; - var al2 = a2 & 0x1fff; - var ah2 = a2 >>> 13; - var a3 = a[3] | 0; - var al3 = a3 & 0x1fff; - var ah3 = a3 >>> 13; - var a4 = a[4] | 0; - var al4 = a4 & 0x1fff; - var ah4 = a4 >>> 13; - var a5 = a[5] | 0; - var al5 = a5 & 0x1fff; - var ah5 = a5 >>> 13; - var a6 = a[6] | 0; - var al6 = a6 & 0x1fff; - var ah6 = a6 >>> 13; - var a7 = a[7] | 0; - var al7 = a7 & 0x1fff; - var ah7 = a7 >>> 13; - var a8 = a[8] | 0; - var al8 = a8 & 0x1fff; - var ah8 = a8 >>> 13; - var a9 = a[9] | 0; - var al9 = a9 & 0x1fff; - var ah9 = a9 >>> 13; - var b0 = b[0] | 0; - var bl0 = b0 & 0x1fff; - var bh0 = b0 >>> 13; - var b1 = b[1] | 0; - var bl1 = b1 & 0x1fff; - var bh1 = b1 >>> 13; - var b2 = b[2] | 0; - var bl2 = b2 & 0x1fff; - var bh2 = b2 >>> 13; - var b3 = b[3] | 0; - var bl3 = b3 & 0x1fff; - var bh3 = b3 >>> 13; - var b4 = b[4] | 0; - var bl4 = b4 & 0x1fff; - var bh4 = b4 >>> 13; - var b5 = b[5] | 0; - var bl5 = b5 & 0x1fff; - var bh5 = b5 >>> 13; - var b6 = b[6] | 0; - var bl6 = b6 & 0x1fff; - var bh6 = b6 >>> 13; - var b7 = b[7] | 0; - var bl7 = b7 & 0x1fff; - var bh7 = b7 >>> 13; - var b8 = b[8] | 0; - var bl8 = b8 & 0x1fff; - var bh8 = b8 >>> 13; - var b9 = b[9] | 0; - var bl9 = b9 & 0x1fff; - var bh9 = b9 >>> 13; - - out.negative = self.negative ^ num.negative; - out.length = 19; - /* k = 0 */ - lo = Math.imul(al0, bl0); - mid = Math.imul(al0, bh0); - mid = (mid + Math.imul(ah0, bl0)) | 0; - hi = Math.imul(ah0, bh0); - var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0; - w0 &= 0x3ffffff; - /* k = 1 */ - lo = Math.imul(al1, bl0); - mid = Math.imul(al1, bh0); - mid = (mid + Math.imul(ah1, bl0)) | 0; - hi = Math.imul(ah1, bh0); - lo = (lo + Math.imul(al0, bl1)) | 0; - mid = (mid + Math.imul(al0, bh1)) | 0; - mid = (mid + Math.imul(ah0, bl1)) | 0; - hi = (hi + Math.imul(ah0, bh1)) | 0; - var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0; - w1 &= 0x3ffffff; - /* k = 2 */ - lo = Math.imul(al2, bl0); - mid = Math.imul(al2, bh0); - mid = (mid + Math.imul(ah2, bl0)) | 0; - hi = Math.imul(ah2, bh0); - lo = (lo + Math.imul(al1, bl1)) | 0; - mid = (mid + Math.imul(al1, bh1)) | 0; - mid = (mid + Math.imul(ah1, bl1)) | 0; - hi = (hi + Math.imul(ah1, bh1)) | 0; - lo = (lo + Math.imul(al0, bl2)) | 0; - mid = (mid + Math.imul(al0, bh2)) | 0; - mid = (mid + Math.imul(ah0, bl2)) | 0; - hi = (hi + Math.imul(ah0, bh2)) | 0; - var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0; - w2 &= 0x3ffffff; - /* k = 3 */ - lo = Math.imul(al3, bl0); - mid = Math.imul(al3, bh0); - mid = (mid + Math.imul(ah3, bl0)) | 0; - hi = Math.imul(ah3, bh0); - lo = (lo + Math.imul(al2, bl1)) | 0; - mid = (mid + Math.imul(al2, bh1)) | 0; - mid = (mid + Math.imul(ah2, bl1)) | 0; - hi = (hi + Math.imul(ah2, bh1)) | 0; - lo = (lo + Math.imul(al1, bl2)) | 0; - mid = (mid + Math.imul(al1, bh2)) | 0; - mid = (mid + Math.imul(ah1, bl2)) | 0; - hi = (hi + Math.imul(ah1, bh2)) | 0; - lo = (lo + Math.imul(al0, bl3)) | 0; - mid = (mid + Math.imul(al0, bh3)) | 0; - mid = (mid + Math.imul(ah0, bl3)) | 0; - hi = (hi + Math.imul(ah0, bh3)) | 0; - var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0; - w3 &= 0x3ffffff; - /* k = 4 */ - lo = Math.imul(al4, bl0); - mid = Math.imul(al4, bh0); - mid = (mid + Math.imul(ah4, bl0)) | 0; - hi = Math.imul(ah4, bh0); - lo = (lo + Math.imul(al3, bl1)) | 0; - mid = (mid + Math.imul(al3, bh1)) | 0; - mid = (mid + Math.imul(ah3, bl1)) | 0; - hi = (hi + Math.imul(ah3, bh1)) | 0; - lo = (lo + Math.imul(al2, bl2)) | 0; - mid = (mid + Math.imul(al2, bh2)) | 0; - mid = (mid + Math.imul(ah2, bl2)) | 0; - hi = (hi + Math.imul(ah2, bh2)) | 0; - lo = (lo + Math.imul(al1, bl3)) | 0; - mid = (mid + Math.imul(al1, bh3)) | 0; - mid = (mid + Math.imul(ah1, bl3)) | 0; - hi = (hi + Math.imul(ah1, bh3)) | 0; - lo = (lo + Math.imul(al0, bl4)) | 0; - mid = (mid + Math.imul(al0, bh4)) | 0; - mid = (mid + Math.imul(ah0, bl4)) | 0; - hi = (hi + Math.imul(ah0, bh4)) | 0; - var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0; - w4 &= 0x3ffffff; - /* k = 5 */ - lo = Math.imul(al5, bl0); - mid = Math.imul(al5, bh0); - mid = (mid + Math.imul(ah5, bl0)) | 0; - hi = Math.imul(ah5, bh0); - lo = (lo + Math.imul(al4, bl1)) | 0; - mid = (mid + Math.imul(al4, bh1)) | 0; - mid = (mid + Math.imul(ah4, bl1)) | 0; - hi = (hi + Math.imul(ah4, bh1)) | 0; - lo = (lo + Math.imul(al3, bl2)) | 0; - mid = (mid + Math.imul(al3, bh2)) | 0; - mid = (mid + Math.imul(ah3, bl2)) | 0; - hi = (hi + Math.imul(ah3, bh2)) | 0; - lo = (lo + Math.imul(al2, bl3)) | 0; - mid = (mid + Math.imul(al2, bh3)) | 0; - mid = (mid + Math.imul(ah2, bl3)) | 0; - hi = (hi + Math.imul(ah2, bh3)) | 0; - lo = (lo + Math.imul(al1, bl4)) | 0; - mid = (mid + Math.imul(al1, bh4)) | 0; - mid = (mid + Math.imul(ah1, bl4)) | 0; - hi = (hi + Math.imul(ah1, bh4)) | 0; - lo = (lo + Math.imul(al0, bl5)) | 0; - mid = (mid + Math.imul(al0, bh5)) | 0; - mid = (mid + Math.imul(ah0, bl5)) | 0; - hi = (hi + Math.imul(ah0, bh5)) | 0; - var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0; - w5 &= 0x3ffffff; - /* k = 6 */ - lo = Math.imul(al6, bl0); - mid = Math.imul(al6, bh0); - mid = (mid + Math.imul(ah6, bl0)) | 0; - hi = Math.imul(ah6, bh0); - lo = (lo + Math.imul(al5, bl1)) | 0; - mid = (mid + Math.imul(al5, bh1)) | 0; - mid = (mid + Math.imul(ah5, bl1)) | 0; - hi = (hi + Math.imul(ah5, bh1)) | 0; - lo = (lo + Math.imul(al4, bl2)) | 0; - mid = (mid + Math.imul(al4, bh2)) | 0; - mid = (mid + Math.imul(ah4, bl2)) | 0; - hi = (hi + Math.imul(ah4, bh2)) | 0; - lo = (lo + Math.imul(al3, bl3)) | 0; - mid = (mid + Math.imul(al3, bh3)) | 0; - mid = (mid + Math.imul(ah3, bl3)) | 0; - hi = (hi + Math.imul(ah3, bh3)) | 0; - lo = (lo + Math.imul(al2, bl4)) | 0; - mid = (mid + Math.imul(al2, bh4)) | 0; - mid = (mid + Math.imul(ah2, bl4)) | 0; - hi = (hi + Math.imul(ah2, bh4)) | 0; - lo = (lo + Math.imul(al1, bl5)) | 0; - mid = (mid + Math.imul(al1, bh5)) | 0; - mid = (mid + Math.imul(ah1, bl5)) | 0; - hi = (hi + Math.imul(ah1, bh5)) | 0; - lo = (lo + Math.imul(al0, bl6)) | 0; - mid = (mid + Math.imul(al0, bh6)) | 0; - mid = (mid + Math.imul(ah0, bl6)) | 0; - hi = (hi + Math.imul(ah0, bh6)) | 0; - var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0; - w6 &= 0x3ffffff; - /* k = 7 */ - lo = Math.imul(al7, bl0); - mid = Math.imul(al7, bh0); - mid = (mid + Math.imul(ah7, bl0)) | 0; - hi = Math.imul(ah7, bh0); - lo = (lo + Math.imul(al6, bl1)) | 0; - mid = (mid + Math.imul(al6, bh1)) | 0; - mid = (mid + Math.imul(ah6, bl1)) | 0; - hi = (hi + Math.imul(ah6, bh1)) | 0; - lo = (lo + Math.imul(al5, bl2)) | 0; - mid = (mid + Math.imul(al5, bh2)) | 0; - mid = (mid + Math.imul(ah5, bl2)) | 0; - hi = (hi + Math.imul(ah5, bh2)) | 0; - lo = (lo + Math.imul(al4, bl3)) | 0; - mid = (mid + Math.imul(al4, bh3)) | 0; - mid = (mid + Math.imul(ah4, bl3)) | 0; - hi = (hi + Math.imul(ah4, bh3)) | 0; - lo = (lo + Math.imul(al3, bl4)) | 0; - mid = (mid + Math.imul(al3, bh4)) | 0; - mid = (mid + Math.imul(ah3, bl4)) | 0; - hi = (hi + Math.imul(ah3, bh4)) | 0; - lo = (lo + Math.imul(al2, bl5)) | 0; - mid = (mid + Math.imul(al2, bh5)) | 0; - mid = (mid + Math.imul(ah2, bl5)) | 0; - hi = (hi + Math.imul(ah2, bh5)) | 0; - lo = (lo + Math.imul(al1, bl6)) | 0; - mid = (mid + Math.imul(al1, bh6)) | 0; - mid = (mid + Math.imul(ah1, bl6)) | 0; - hi = (hi + Math.imul(ah1, bh6)) | 0; - lo = (lo + Math.imul(al0, bl7)) | 0; - mid = (mid + Math.imul(al0, bh7)) | 0; - mid = (mid + Math.imul(ah0, bl7)) | 0; - hi = (hi + Math.imul(ah0, bh7)) | 0; - var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0; - w7 &= 0x3ffffff; - /* k = 8 */ - lo = Math.imul(al8, bl0); - mid = Math.imul(al8, bh0); - mid = (mid + Math.imul(ah8, bl0)) | 0; - hi = Math.imul(ah8, bh0); - lo = (lo + Math.imul(al7, bl1)) | 0; - mid = (mid + Math.imul(al7, bh1)) | 0; - mid = (mid + Math.imul(ah7, bl1)) | 0; - hi = (hi + Math.imul(ah7, bh1)) | 0; - lo = (lo + Math.imul(al6, bl2)) | 0; - mid = (mid + Math.imul(al6, bh2)) | 0; - mid = (mid + Math.imul(ah6, bl2)) | 0; - hi = (hi + Math.imul(ah6, bh2)) | 0; - lo = (lo + Math.imul(al5, bl3)) | 0; - mid = (mid + Math.imul(al5, bh3)) | 0; - mid = (mid + Math.imul(ah5, bl3)) | 0; - hi = (hi + Math.imul(ah5, bh3)) | 0; - lo = (lo + Math.imul(al4, bl4)) | 0; - mid = (mid + Math.imul(al4, bh4)) | 0; - mid = (mid + Math.imul(ah4, bl4)) | 0; - hi = (hi + Math.imul(ah4, bh4)) | 0; - lo = (lo + Math.imul(al3, bl5)) | 0; - mid = (mid + Math.imul(al3, bh5)) | 0; - mid = (mid + Math.imul(ah3, bl5)) | 0; - hi = (hi + Math.imul(ah3, bh5)) | 0; - lo = (lo + Math.imul(al2, bl6)) | 0; - mid = (mid + Math.imul(al2, bh6)) | 0; - mid = (mid + Math.imul(ah2, bl6)) | 0; - hi = (hi + Math.imul(ah2, bh6)) | 0; - lo = (lo + Math.imul(al1, bl7)) | 0; - mid = (mid + Math.imul(al1, bh7)) | 0; - mid = (mid + Math.imul(ah1, bl7)) | 0; - hi = (hi + Math.imul(ah1, bh7)) | 0; - lo = (lo + Math.imul(al0, bl8)) | 0; - mid = (mid + Math.imul(al0, bh8)) | 0; - mid = (mid + Math.imul(ah0, bl8)) | 0; - hi = (hi + Math.imul(ah0, bh8)) | 0; - var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0; - w8 &= 0x3ffffff; - /* k = 9 */ - lo = Math.imul(al9, bl0); - mid = Math.imul(al9, bh0); - mid = (mid + Math.imul(ah9, bl0)) | 0; - hi = Math.imul(ah9, bh0); - lo = (lo + Math.imul(al8, bl1)) | 0; - mid = (mid + Math.imul(al8, bh1)) | 0; - mid = (mid + Math.imul(ah8, bl1)) | 0; - hi = (hi + Math.imul(ah8, bh1)) | 0; - lo = (lo + Math.imul(al7, bl2)) | 0; - mid = (mid + Math.imul(al7, bh2)) | 0; - mid = (mid + Math.imul(ah7, bl2)) | 0; - hi = (hi + Math.imul(ah7, bh2)) | 0; - lo = (lo + Math.imul(al6, bl3)) | 0; - mid = (mid + Math.imul(al6, bh3)) | 0; - mid = (mid + Math.imul(ah6, bl3)) | 0; - hi = (hi + Math.imul(ah6, bh3)) | 0; - lo = (lo + Math.imul(al5, bl4)) | 0; - mid = (mid + Math.imul(al5, bh4)) | 0; - mid = (mid + Math.imul(ah5, bl4)) | 0; - hi = (hi + Math.imul(ah5, bh4)) | 0; - lo = (lo + Math.imul(al4, bl5)) | 0; - mid = (mid + Math.imul(al4, bh5)) | 0; - mid = (mid + Math.imul(ah4, bl5)) | 0; - hi = (hi + Math.imul(ah4, bh5)) | 0; - lo = (lo + Math.imul(al3, bl6)) | 0; - mid = (mid + Math.imul(al3, bh6)) | 0; - mid = (mid + Math.imul(ah3, bl6)) | 0; - hi = (hi + Math.imul(ah3, bh6)) | 0; - lo = (lo + Math.imul(al2, bl7)) | 0; - mid = (mid + Math.imul(al2, bh7)) | 0; - mid = (mid + Math.imul(ah2, bl7)) | 0; - hi = (hi + Math.imul(ah2, bh7)) | 0; - lo = (lo + Math.imul(al1, bl8)) | 0; - mid = (mid + Math.imul(al1, bh8)) | 0; - mid = (mid + Math.imul(ah1, bl8)) | 0; - hi = (hi + Math.imul(ah1, bh8)) | 0; - lo = (lo + Math.imul(al0, bl9)) | 0; - mid = (mid + Math.imul(al0, bh9)) | 0; - mid = (mid + Math.imul(ah0, bl9)) | 0; - hi = (hi + Math.imul(ah0, bh9)) | 0; - var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0; - w9 &= 0x3ffffff; - /* k = 10 */ - lo = Math.imul(al9, bl1); - mid = Math.imul(al9, bh1); - mid = (mid + Math.imul(ah9, bl1)) | 0; - hi = Math.imul(ah9, bh1); - lo = (lo + Math.imul(al8, bl2)) | 0; - mid = (mid + Math.imul(al8, bh2)) | 0; - mid = (mid + Math.imul(ah8, bl2)) | 0; - hi = (hi + Math.imul(ah8, bh2)) | 0; - lo = (lo + Math.imul(al7, bl3)) | 0; - mid = (mid + Math.imul(al7, bh3)) | 0; - mid = (mid + Math.imul(ah7, bl3)) | 0; - hi = (hi + Math.imul(ah7, bh3)) | 0; - lo = (lo + Math.imul(al6, bl4)) | 0; - mid = (mid + Math.imul(al6, bh4)) | 0; - mid = (mid + Math.imul(ah6, bl4)) | 0; - hi = (hi + Math.imul(ah6, bh4)) | 0; - lo = (lo + Math.imul(al5, bl5)) | 0; - mid = (mid + Math.imul(al5, bh5)) | 0; - mid = (mid + Math.imul(ah5, bl5)) | 0; - hi = (hi + Math.imul(ah5, bh5)) | 0; - lo = (lo + Math.imul(al4, bl6)) | 0; - mid = (mid + Math.imul(al4, bh6)) | 0; - mid = (mid + Math.imul(ah4, bl6)) | 0; - hi = (hi + Math.imul(ah4, bh6)) | 0; - lo = (lo + Math.imul(al3, bl7)) | 0; - mid = (mid + Math.imul(al3, bh7)) | 0; - mid = (mid + Math.imul(ah3, bl7)) | 0; - hi = (hi + Math.imul(ah3, bh7)) | 0; - lo = (lo + Math.imul(al2, bl8)) | 0; - mid = (mid + Math.imul(al2, bh8)) | 0; - mid = (mid + Math.imul(ah2, bl8)) | 0; - hi = (hi + Math.imul(ah2, bh8)) | 0; - lo = (lo + Math.imul(al1, bl9)) | 0; - mid = (mid + Math.imul(al1, bh9)) | 0; - mid = (mid + Math.imul(ah1, bl9)) | 0; - hi = (hi + Math.imul(ah1, bh9)) | 0; - var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0; - w10 &= 0x3ffffff; - /* k = 11 */ - lo = Math.imul(al9, bl2); - mid = Math.imul(al9, bh2); - mid = (mid + Math.imul(ah9, bl2)) | 0; - hi = Math.imul(ah9, bh2); - lo = (lo + Math.imul(al8, bl3)) | 0; - mid = (mid + Math.imul(al8, bh3)) | 0; - mid = (mid + Math.imul(ah8, bl3)) | 0; - hi = (hi + Math.imul(ah8, bh3)) | 0; - lo = (lo + Math.imul(al7, bl4)) | 0; - mid = (mid + Math.imul(al7, bh4)) | 0; - mid = (mid + Math.imul(ah7, bl4)) | 0; - hi = (hi + Math.imul(ah7, bh4)) | 0; - lo = (lo + Math.imul(al6, bl5)) | 0; - mid = (mid + Math.imul(al6, bh5)) | 0; - mid = (mid + Math.imul(ah6, bl5)) | 0; - hi = (hi + Math.imul(ah6, bh5)) | 0; - lo = (lo + Math.imul(al5, bl6)) | 0; - mid = (mid + Math.imul(al5, bh6)) | 0; - mid = (mid + Math.imul(ah5, bl6)) | 0; - hi = (hi + Math.imul(ah5, bh6)) | 0; - lo = (lo + Math.imul(al4, bl7)) | 0; - mid = (mid + Math.imul(al4, bh7)) | 0; - mid = (mid + Math.imul(ah4, bl7)) | 0; - hi = (hi + Math.imul(ah4, bh7)) | 0; - lo = (lo + Math.imul(al3, bl8)) | 0; - mid = (mid + Math.imul(al3, bh8)) | 0; - mid = (mid + Math.imul(ah3, bl8)) | 0; - hi = (hi + Math.imul(ah3, bh8)) | 0; - lo = (lo + Math.imul(al2, bl9)) | 0; - mid = (mid + Math.imul(al2, bh9)) | 0; - mid = (mid + Math.imul(ah2, bl9)) | 0; - hi = (hi + Math.imul(ah2, bh9)) | 0; - var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0; - w11 &= 0x3ffffff; - /* k = 12 */ - lo = Math.imul(al9, bl3); - mid = Math.imul(al9, bh3); - mid = (mid + Math.imul(ah9, bl3)) | 0; - hi = Math.imul(ah9, bh3); - lo = (lo + Math.imul(al8, bl4)) | 0; - mid = (mid + Math.imul(al8, bh4)) | 0; - mid = (mid + Math.imul(ah8, bl4)) | 0; - hi = (hi + Math.imul(ah8, bh4)) | 0; - lo = (lo + Math.imul(al7, bl5)) | 0; - mid = (mid + Math.imul(al7, bh5)) | 0; - mid = (mid + Math.imul(ah7, bl5)) | 0; - hi = (hi + Math.imul(ah7, bh5)) | 0; - lo = (lo + Math.imul(al6, bl6)) | 0; - mid = (mid + Math.imul(al6, bh6)) | 0; - mid = (mid + Math.imul(ah6, bl6)) | 0; - hi = (hi + Math.imul(ah6, bh6)) | 0; - lo = (lo + Math.imul(al5, bl7)) | 0; - mid = (mid + Math.imul(al5, bh7)) | 0; - mid = (mid + Math.imul(ah5, bl7)) | 0; - hi = (hi + Math.imul(ah5, bh7)) | 0; - lo = (lo + Math.imul(al4, bl8)) | 0; - mid = (mid + Math.imul(al4, bh8)) | 0; - mid = (mid + Math.imul(ah4, bl8)) | 0; - hi = (hi + Math.imul(ah4, bh8)) | 0; - lo = (lo + Math.imul(al3, bl9)) | 0; - mid = (mid + Math.imul(al3, bh9)) | 0; - mid = (mid + Math.imul(ah3, bl9)) | 0; - hi = (hi + Math.imul(ah3, bh9)) | 0; - var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0; - w12 &= 0x3ffffff; - /* k = 13 */ - lo = Math.imul(al9, bl4); - mid = Math.imul(al9, bh4); - mid = (mid + Math.imul(ah9, bl4)) | 0; - hi = Math.imul(ah9, bh4); - lo = (lo + Math.imul(al8, bl5)) | 0; - mid = (mid + Math.imul(al8, bh5)) | 0; - mid = (mid + Math.imul(ah8, bl5)) | 0; - hi = (hi + Math.imul(ah8, bh5)) | 0; - lo = (lo + Math.imul(al7, bl6)) | 0; - mid = (mid + Math.imul(al7, bh6)) | 0; - mid = (mid + Math.imul(ah7, bl6)) | 0; - hi = (hi + Math.imul(ah7, bh6)) | 0; - lo = (lo + Math.imul(al6, bl7)) | 0; - mid = (mid + Math.imul(al6, bh7)) | 0; - mid = (mid + Math.imul(ah6, bl7)) | 0; - hi = (hi + Math.imul(ah6, bh7)) | 0; - lo = (lo + Math.imul(al5, bl8)) | 0; - mid = (mid + Math.imul(al5, bh8)) | 0; - mid = (mid + Math.imul(ah5, bl8)) | 0; - hi = (hi + Math.imul(ah5, bh8)) | 0; - lo = (lo + Math.imul(al4, bl9)) | 0; - mid = (mid + Math.imul(al4, bh9)) | 0; - mid = (mid + Math.imul(ah4, bl9)) | 0; - hi = (hi + Math.imul(ah4, bh9)) | 0; - var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0; - w13 &= 0x3ffffff; - /* k = 14 */ - lo = Math.imul(al9, bl5); - mid = Math.imul(al9, bh5); - mid = (mid + Math.imul(ah9, bl5)) | 0; - hi = Math.imul(ah9, bh5); - lo = (lo + Math.imul(al8, bl6)) | 0; - mid = (mid + Math.imul(al8, bh6)) | 0; - mid = (mid + Math.imul(ah8, bl6)) | 0; - hi = (hi + Math.imul(ah8, bh6)) | 0; - lo = (lo + Math.imul(al7, bl7)) | 0; - mid = (mid + Math.imul(al7, bh7)) | 0; - mid = (mid + Math.imul(ah7, bl7)) | 0; - hi = (hi + Math.imul(ah7, bh7)) | 0; - lo = (lo + Math.imul(al6, bl8)) | 0; - mid = (mid + Math.imul(al6, bh8)) | 0; - mid = (mid + Math.imul(ah6, bl8)) | 0; - hi = (hi + Math.imul(ah6, bh8)) | 0; - lo = (lo + Math.imul(al5, bl9)) | 0; - mid = (mid + Math.imul(al5, bh9)) | 0; - mid = (mid + Math.imul(ah5, bl9)) | 0; - hi = (hi + Math.imul(ah5, bh9)) | 0; - var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0; - w14 &= 0x3ffffff; - /* k = 15 */ - lo = Math.imul(al9, bl6); - mid = Math.imul(al9, bh6); - mid = (mid + Math.imul(ah9, bl6)) | 0; - hi = Math.imul(ah9, bh6); - lo = (lo + Math.imul(al8, bl7)) | 0; - mid = (mid + Math.imul(al8, bh7)) | 0; - mid = (mid + Math.imul(ah8, bl7)) | 0; - hi = (hi + Math.imul(ah8, bh7)) | 0; - lo = (lo + Math.imul(al7, bl8)) | 0; - mid = (mid + Math.imul(al7, bh8)) | 0; - mid = (mid + Math.imul(ah7, bl8)) | 0; - hi = (hi + Math.imul(ah7, bh8)) | 0; - lo = (lo + Math.imul(al6, bl9)) | 0; - mid = (mid + Math.imul(al6, bh9)) | 0; - mid = (mid + Math.imul(ah6, bl9)) | 0; - hi = (hi + Math.imul(ah6, bh9)) | 0; - var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0; - w15 &= 0x3ffffff; - /* k = 16 */ - lo = Math.imul(al9, bl7); - mid = Math.imul(al9, bh7); - mid = (mid + Math.imul(ah9, bl7)) | 0; - hi = Math.imul(ah9, bh7); - lo = (lo + Math.imul(al8, bl8)) | 0; - mid = (mid + Math.imul(al8, bh8)) | 0; - mid = (mid + Math.imul(ah8, bl8)) | 0; - hi = (hi + Math.imul(ah8, bh8)) | 0; - lo = (lo + Math.imul(al7, bl9)) | 0; - mid = (mid + Math.imul(al7, bh9)) | 0; - mid = (mid + Math.imul(ah7, bl9)) | 0; - hi = (hi + Math.imul(ah7, bh9)) | 0; - var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0; - w16 &= 0x3ffffff; - /* k = 17 */ - lo = Math.imul(al9, bl8); - mid = Math.imul(al9, bh8); - mid = (mid + Math.imul(ah9, bl8)) | 0; - hi = Math.imul(ah9, bh8); - lo = (lo + Math.imul(al8, bl9)) | 0; - mid = (mid + Math.imul(al8, bh9)) | 0; - mid = (mid + Math.imul(ah8, bl9)) | 0; - hi = (hi + Math.imul(ah8, bh9)) | 0; - var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0; - w17 &= 0x3ffffff; - /* k = 18 */ - lo = Math.imul(al9, bl9); - mid = Math.imul(al9, bh9); - mid = (mid + Math.imul(ah9, bl9)) | 0; - hi = Math.imul(ah9, bh9); - var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0; - w18 &= 0x3ffffff; - o[0] = w0; - o[1] = w1; - o[2] = w2; - o[3] = w3; - o[4] = w4; - o[5] = w5; - o[6] = w6; - o[7] = w7; - o[8] = w8; - o[9] = w9; - o[10] = w10; - o[11] = w11; - o[12] = w12; - o[13] = w13; - o[14] = w14; - o[15] = w15; - o[16] = w16; - o[17] = w17; - o[18] = w18; - if (c !== 0) { - o[19] = c; - out.length++; - } - return out; - }; - - // Polyfill comb - if (!Math.imul) { - comb10MulTo = smallMulTo; - } - - function bigMulTo (self, num, out) { - out.negative = num.negative ^ self.negative; - out.length = self.length + num.length; - - var carry = 0; - var hncarry = 0; - for (var k = 0; k < out.length - 1; k++) { - // Sum all words with the same `i + j = k` and accumulate `ncarry`, - // note that ncarry could be >= 0x3ffffff - var ncarry = hncarry; - hncarry = 0; - var rword = carry & 0x3ffffff; - var maxJ = Math.min(k, num.length - 1); - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = k - j; - var a = self.words[i] | 0; - var b = num.words[j] | 0; - var r = a * b; - - var lo = r & 0x3ffffff; - ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0; - lo = (lo + rword) | 0; - rword = lo & 0x3ffffff; - ncarry = (ncarry + (lo >>> 26)) | 0; - - hncarry += ncarry >>> 26; - ncarry &= 0x3ffffff; - } - out.words[k] = rword; - carry = ncarry; - ncarry = hncarry; - } - if (carry !== 0) { - out.words[k] = carry; - } else { - out.length--; - } - - return out.strip(); - } - - function jumboMulTo (self, num, out) { - var fftm = new FFTM(); - return fftm.mulp(self, num, out); - } - - BN.prototype.mulTo = function mulTo (num, out) { - var res; - var len = this.length + num.length; - if (this.length === 10 && num.length === 10) { - res = comb10MulTo(this, num, out); - } else if (len < 63) { - res = smallMulTo(this, num, out); - } else if (len < 1024) { - res = bigMulTo(this, num, out); - } else { - res = jumboMulTo(this, num, out); - } - - return res; - }; - - // Cooley-Tukey algorithm for FFT - // slightly revisited to rely on looping instead of recursion - - function FFTM (x, y) { - this.x = x; - this.y = y; - } - - FFTM.prototype.makeRBT = function makeRBT (N) { - var t = new Array(N); - var l = BN.prototype._countBits(N) - 1; - for (var i = 0; i < N; i++) { - t[i] = this.revBin(i, l, N); - } - - return t; - }; - - // Returns binary-reversed representation of `x` - FFTM.prototype.revBin = function revBin (x, l, N) { - if (x === 0 || x === N - 1) return x; - - var rb = 0; - for (var i = 0; i < l; i++) { - rb |= (x & 1) << (l - i - 1); - x >>= 1; - } - - return rb; - }; - - // Performs "tweedling" phase, therefore 'emulating' - // behaviour of the recursive algorithm - FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) { - for (var i = 0; i < N; i++) { - rtws[i] = rws[rbt[i]]; - itws[i] = iws[rbt[i]]; - } - }; - - FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) { - this.permute(rbt, rws, iws, rtws, itws, N); - - for (var s = 1; s < N; s <<= 1) { - var l = s << 1; - - var rtwdf = Math.cos(2 * Math.PI / l); - var itwdf = Math.sin(2 * Math.PI / l); - - for (var p = 0; p < N; p += l) { - var rtwdf_ = rtwdf; - var itwdf_ = itwdf; - - for (var j = 0; j < s; j++) { - var re = rtws[p + j]; - var ie = itws[p + j]; - - var ro = rtws[p + j + s]; - var io = itws[p + j + s]; - - var rx = rtwdf_ * ro - itwdf_ * io; - - io = rtwdf_ * io + itwdf_ * ro; - ro = rx; - - rtws[p + j] = re + ro; - itws[p + j] = ie + io; - - rtws[p + j + s] = re - ro; - itws[p + j + s] = ie - io; - - /* jshint maxdepth : false */ - if (j !== l) { - rx = rtwdf * rtwdf_ - itwdf * itwdf_; - - itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; - rtwdf_ = rx; - } - } - } - } - }; - - FFTM.prototype.guessLen13b = function guessLen13b (n, m) { - var N = Math.max(m, n) | 1; - var odd = N & 1; - var i = 0; - for (N = N / 2 | 0; N; N = N >>> 1) { - i++; - } - - return 1 << i + 1 + odd; - }; - - FFTM.prototype.conjugate = function conjugate (rws, iws, N) { - if (N <= 1) return; - - for (var i = 0; i < N / 2; i++) { - var t = rws[i]; - - rws[i] = rws[N - i - 1]; - rws[N - i - 1] = t; - - t = iws[i]; - - iws[i] = -iws[N - i - 1]; - iws[N - i - 1] = -t; - } - }; - - FFTM.prototype.normalize13b = function normalize13b (ws, N) { - var carry = 0; - for (var i = 0; i < N / 2; i++) { - var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + - Math.round(ws[2 * i] / N) + - carry; - - ws[i] = w & 0x3ffffff; - - if (w < 0x4000000) { - carry = 0; - } else { - carry = w / 0x4000000 | 0; - } - } - - return ws; - }; - - FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) { - var carry = 0; - for (var i = 0; i < len; i++) { - carry = carry + (ws[i] | 0); - - rws[2 * i] = carry & 0x1fff; carry = carry >>> 13; - rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13; - } - - // Pad with zeroes - for (i = 2 * len; i < N; ++i) { - rws[i] = 0; - } - - assert(carry === 0); - assert((carry & ~0x1fff) === 0); - }; - - FFTM.prototype.stub = function stub (N) { - var ph = new Array(N); - for (var i = 0; i < N; i++) { - ph[i] = 0; - } - - return ph; - }; - - FFTM.prototype.mulp = function mulp (x, y, out) { - var N = 2 * this.guessLen13b(x.length, y.length); - - var rbt = this.makeRBT(N); - - var _ = this.stub(N); - - var rws = new Array(N); - var rwst = new Array(N); - var iwst = new Array(N); - - var nrws = new Array(N); - var nrwst = new Array(N); - var niwst = new Array(N); - - var rmws = out.words; - rmws.length = N; - - this.convert13b(x.words, x.length, rws, N); - this.convert13b(y.words, y.length, nrws, N); - - this.transform(rws, _, rwst, iwst, N, rbt); - this.transform(nrws, _, nrwst, niwst, N, rbt); - - for (var i = 0; i < N; i++) { - var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; - iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; - rwst[i] = rx; - } - - this.conjugate(rwst, iwst, N); - this.transform(rwst, iwst, rmws, _, N, rbt); - this.conjugate(rmws, _, N); - this.normalize13b(rmws, N); - - out.negative = x.negative ^ y.negative; - out.length = x.length + y.length; - return out.strip(); - }; - - // Multiply `this` by `num` - BN.prototype.mul = function mul (num) { - var out = new BN(null); - out.words = new Array(this.length + num.length); - return this.mulTo(num, out); - }; - - // Multiply employing FFT - BN.prototype.mulf = function mulf (num) { - var out = new BN(null); - out.words = new Array(this.length + num.length); - return jumboMulTo(this, num, out); - }; - - // In-place Multiplication - BN.prototype.imul = function imul (num) { - return this.clone().mulTo(num, this); - }; - - BN.prototype.imuln = function imuln (num) { - assert(typeof num === 'number'); - assert(num < 0x4000000); - - // Carry - var carry = 0; - for (var i = 0; i < this.length; i++) { - var w = (this.words[i] | 0) * num; - var lo = (w & 0x3ffffff) + (carry & 0x3ffffff); - carry >>= 26; - carry += (w / 0x4000000) | 0; - // NOTE: lo is 27bit maximum - carry += lo >>> 26; - this.words[i] = lo & 0x3ffffff; - } - - if (carry !== 0) { - this.words[i] = carry; - this.length++; - } - - return this; - }; - - BN.prototype.muln = function muln (num) { - return this.clone().imuln(num); - }; - - // `this` * `this` - BN.prototype.sqr = function sqr () { - return this.mul(this); - }; - - // `this` * `this` in-place - BN.prototype.isqr = function isqr () { - return this.imul(this.clone()); - }; - - // Math.pow(`this`, `num`) - BN.prototype.pow = function pow (num) { - var w = toBitArray(num); - if (w.length === 0) return new BN(1); - - // Skip leading zeroes - var res = this; - for (var i = 0; i < w.length; i++, res = res.sqr()) { - if (w[i] !== 0) break; - } - - if (++i < w.length) { - for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { - if (w[i] === 0) continue; - - res = res.mul(q); - } - } - - return res; - }; - - // Shift-left in-place - BN.prototype.iushln = function iushln (bits) { - assert(typeof bits === 'number' && bits >= 0); - var r = bits % 26; - var s = (bits - r) / 26; - var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r); - var i; - - if (r !== 0) { - var carry = 0; - - for (i = 0; i < this.length; i++) { - var newCarry = this.words[i] & carryMask; - var c = ((this.words[i] | 0) - newCarry) << r; - this.words[i] = c | carry; - carry = newCarry >>> (26 - r); - } - - if (carry) { - this.words[i] = carry; - this.length++; - } - } - - if (s !== 0) { - for (i = this.length - 1; i >= 0; i--) { - this.words[i + s] = this.words[i]; - } - - for (i = 0; i < s; i++) { - this.words[i] = 0; - } - - this.length += s; - } - - return this.strip(); - }; - - BN.prototype.ishln = function ishln (bits) { - // TODO(indutny): implement me - assert(this.negative === 0); - return this.iushln(bits); - }; - - // Shift-right in-place - // NOTE: `hint` is a lowest bit before trailing zeroes - // NOTE: if `extended` is present - it will be filled with destroyed bits - BN.prototype.iushrn = function iushrn (bits, hint, extended) { - assert(typeof bits === 'number' && bits >= 0); - var h; - if (hint) { - h = (hint - (hint % 26)) / 26; - } else { - h = 0; - } - - var r = bits % 26; - var s = Math.min((bits - r) / 26, this.length); - var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); - var maskedWords = extended; - - h -= s; - h = Math.max(0, h); - - // Extended mode, copy masked part - if (maskedWords) { - for (var i = 0; i < s; i++) { - maskedWords.words[i] = this.words[i]; - } - maskedWords.length = s; - } - - if (s === 0) { - // No-op, we should not move anything at all - } else if (this.length > s) { - this.length -= s; - for (i = 0; i < this.length; i++) { - this.words[i] = this.words[i + s]; - } - } else { - this.words[0] = 0; - this.length = 1; - } - - var carry = 0; - for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { - var word = this.words[i] | 0; - this.words[i] = (carry << (26 - r)) | (word >>> r); - carry = word & mask; - } - - // Push carried bits as a mask - if (maskedWords && carry !== 0) { - maskedWords.words[maskedWords.length++] = carry; - } - - if (this.length === 0) { - this.words[0] = 0; - this.length = 1; - } - - return this.strip(); - }; - - BN.prototype.ishrn = function ishrn (bits, hint, extended) { - // TODO(indutny): implement me - assert(this.negative === 0); - return this.iushrn(bits, hint, extended); - }; - - // Shift-left - BN.prototype.shln = function shln (bits) { - return this.clone().ishln(bits); - }; - - BN.prototype.ushln = function ushln (bits) { - return this.clone().iushln(bits); - }; - - // Shift-right - BN.prototype.shrn = function shrn (bits) { - return this.clone().ishrn(bits); - }; - - BN.prototype.ushrn = function ushrn (bits) { - return this.clone().iushrn(bits); - }; - - // Test if n bit is set - BN.prototype.testn = function testn (bit) { - assert(typeof bit === 'number' && bit >= 0); - var r = bit % 26; - var s = (bit - r) / 26; - var q = 1 << r; - - // Fast case: bit is much higher than all existing words - if (this.length <= s) return false; - - // Check bit and return - var w = this.words[s]; - - return !!(w & q); - }; - - // Return only lowers bits of number (in-place) - BN.prototype.imaskn = function imaskn (bits) { - assert(typeof bits === 'number' && bits >= 0); - var r = bits % 26; - var s = (bits - r) / 26; - - assert(this.negative === 0, 'imaskn works only with positive numbers'); - - if (this.length <= s) { - return this; - } - - if (r !== 0) { - s++; - } - this.length = Math.min(s, this.length); - - if (r !== 0) { - var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); - this.words[this.length - 1] &= mask; - } - - return this.strip(); - }; - - // Return only lowers bits of number - BN.prototype.maskn = function maskn (bits) { - return this.clone().imaskn(bits); - }; - - // Add plain number `num` to `this` - BN.prototype.iaddn = function iaddn (num) { - assert(typeof num === 'number'); - assert(num < 0x4000000); - if (num < 0) return this.isubn(-num); - - // Possible sign change - if (this.negative !== 0) { - if (this.length === 1 && (this.words[0] | 0) < num) { - this.words[0] = num - (this.words[0] | 0); - this.negative = 0; - return this; - } - - this.negative = 0; - this.isubn(num); - this.negative = 1; - return this; - } - - // Add without checks - return this._iaddn(num); - }; - - BN.prototype._iaddn = function _iaddn (num) { - this.words[0] += num; - - // Carry - for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) { - this.words[i] -= 0x4000000; - if (i === this.length - 1) { - this.words[i + 1] = 1; - } else { - this.words[i + 1]++; - } - } - this.length = Math.max(this.length, i + 1); - - return this; - }; - - // Subtract plain number `num` from `this` - BN.prototype.isubn = function isubn (num) { - assert(typeof num === 'number'); - assert(num < 0x4000000); - if (num < 0) return this.iaddn(-num); - - if (this.negative !== 0) { - this.negative = 0; - this.iaddn(num); - this.negative = 1; - return this; - } - - this.words[0] -= num; - - if (this.length === 1 && this.words[0] < 0) { - this.words[0] = -this.words[0]; - this.negative = 1; - } else { - // Carry - for (var i = 0; i < this.length && this.words[i] < 0; i++) { - this.words[i] += 0x4000000; - this.words[i + 1] -= 1; - } - } - - return this.strip(); - }; - - BN.prototype.addn = function addn (num) { - return this.clone().iaddn(num); - }; - - BN.prototype.subn = function subn (num) { - return this.clone().isubn(num); - }; - - BN.prototype.iabs = function iabs () { - this.negative = 0; - - return this; - }; - - BN.prototype.abs = function abs () { - return this.clone().iabs(); - }; - - BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) { - var len = num.length + shift; - var i; - - this._expand(len); - - var w; - var carry = 0; - for (i = 0; i < num.length; i++) { - w = (this.words[i + shift] | 0) + carry; - var right = (num.words[i] | 0) * mul; - w -= right & 0x3ffffff; - carry = (w >> 26) - ((right / 0x4000000) | 0); - this.words[i + shift] = w & 0x3ffffff; - } - for (; i < this.length - shift; i++) { - w = (this.words[i + shift] | 0) + carry; - carry = w >> 26; - this.words[i + shift] = w & 0x3ffffff; - } - - if (carry === 0) return this.strip(); - - // Subtraction overflow - assert(carry === -1); - carry = 0; - for (i = 0; i < this.length; i++) { - w = -(this.words[i] | 0) + carry; - carry = w >> 26; - this.words[i] = w & 0x3ffffff; - } - this.negative = 1; - - return this.strip(); - }; - - BN.prototype._wordDiv = function _wordDiv (num, mode) { - var shift = this.length - num.length; - - var a = this.clone(); - var b = num; - - // Normalize - var bhi = b.words[b.length - 1] | 0; - var bhiBits = this._countBits(bhi); - shift = 26 - bhiBits; - if (shift !== 0) { - b = b.ushln(shift); - a.iushln(shift); - bhi = b.words[b.length - 1] | 0; - } - - // Initialize quotient - var m = a.length - b.length; - var q; - - if (mode !== 'mod') { - q = new BN(null); - q.length = m + 1; - q.words = new Array(q.length); - for (var i = 0; i < q.length; i++) { - q.words[i] = 0; - } - } - - var diff = a.clone()._ishlnsubmul(b, 1, m); - if (diff.negative === 0) { - a = diff; - if (q) { - q.words[m] = 1; - } - } - - for (var j = m - 1; j >= 0; j--) { - var qj = (a.words[b.length + j] | 0) * 0x4000000 + - (a.words[b.length + j - 1] | 0); - - // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max - // (0x7ffffff) - qj = Math.min((qj / bhi) | 0, 0x3ffffff); - - a._ishlnsubmul(b, qj, j); - while (a.negative !== 0) { - qj--; - a.negative = 0; - a._ishlnsubmul(b, 1, j); - if (!a.isZero()) { - a.negative ^= 1; - } - } - if (q) { - q.words[j] = qj; - } - } - if (q) { - q.strip(); - } - a.strip(); - - // Denormalize - if (mode !== 'div' && shift !== 0) { - a.iushrn(shift); - } - - return { - div: q || null, - mod: a - }; - }; - - // NOTE: 1) `mode` can be set to `mod` to request mod only, - // to `div` to request div only, or be absent to - // request both div & mod - // 2) `positive` is true if unsigned mod is requested - BN.prototype.divmod = function divmod (num, mode, positive) { - assert(!num.isZero()); - - if (this.isZero()) { - return { - div: new BN(0), - mod: new BN(0) - }; - } - - var div, mod, res; - if (this.negative !== 0 && num.negative === 0) { - res = this.neg().divmod(num, mode); - - if (mode !== 'mod') { - div = res.div.neg(); - } - - if (mode !== 'div') { - mod = res.mod.neg(); - if (positive && mod.negative !== 0) { - mod.iadd(num); - } - } - - return { - div: div, - mod: mod - }; - } - - if (this.negative === 0 && num.negative !== 0) { - res = this.divmod(num.neg(), mode); - - if (mode !== 'mod') { - div = res.div.neg(); - } - - return { - div: div, - mod: res.mod - }; - } - - if ((this.negative & num.negative) !== 0) { - res = this.neg().divmod(num.neg(), mode); - - if (mode !== 'div') { - mod = res.mod.neg(); - if (positive && mod.negative !== 0) { - mod.isub(num); - } - } - - return { - div: res.div, - mod: mod - }; - } - - // Both numbers are positive at this point - - // Strip both numbers to approximate shift value - if (num.length > this.length || this.cmp(num) < 0) { - return { - div: new BN(0), - mod: this - }; - } - - // Very short reduction - if (num.length === 1) { - if (mode === 'div') { - return { - div: this.divn(num.words[0]), - mod: null - }; - } - - if (mode === 'mod') { - return { - div: null, - mod: new BN(this.modn(num.words[0])) - }; - } - - return { - div: this.divn(num.words[0]), - mod: new BN(this.modn(num.words[0])) - }; - } - - return this._wordDiv(num, mode); - }; - - // Find `this` / `num` - BN.prototype.div = function div (num) { - return this.divmod(num, 'div', false).div; - }; - - // Find `this` % `num` - BN.prototype.mod = function mod (num) { - return this.divmod(num, 'mod', false).mod; - }; - - BN.prototype.umod = function umod (num) { - return this.divmod(num, 'mod', true).mod; - }; - - // Find Round(`this` / `num`) - BN.prototype.divRound = function divRound (num) { - var dm = this.divmod(num); - - // Fast case - exact division - if (dm.mod.isZero()) return dm.div; - - var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; - - var half = num.ushrn(1); - var r2 = num.andln(1); - var cmp = mod.cmp(half); - - // Round down - if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; - - // Round up - return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); - }; - - BN.prototype.modn = function modn (num) { - assert(num <= 0x3ffffff); - var p = (1 << 26) % num; - - var acc = 0; - for (var i = this.length - 1; i >= 0; i--) { - acc = (p * acc + (this.words[i] | 0)) % num; - } - - return acc; - }; - - // In-place division by number - BN.prototype.idivn = function idivn (num) { - assert(num <= 0x3ffffff); - - var carry = 0; - for (var i = this.length - 1; i >= 0; i--) { - var w = (this.words[i] | 0) + carry * 0x4000000; - this.words[i] = (w / num) | 0; - carry = w % num; - } - - return this.strip(); - }; - - BN.prototype.divn = function divn (num) { - return this.clone().idivn(num); - }; - - BN.prototype.egcd = function egcd (p) { - assert(p.negative === 0); - assert(!p.isZero()); - - var x = this; - var y = p.clone(); - - if (x.negative !== 0) { - x = x.umod(p); - } else { - x = x.clone(); - } - - // A * x + B * y = x - var A = new BN(1); - var B = new BN(0); - - // C * x + D * y = y - var C = new BN(0); - var D = new BN(1); - - var g = 0; - - while (x.isEven() && y.isEven()) { - x.iushrn(1); - y.iushrn(1); - ++g; - } - - var yp = y.clone(); - var xp = x.clone(); - - while (!x.isZero()) { - for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1); - if (i > 0) { - x.iushrn(i); - while (i-- > 0) { - if (A.isOdd() || B.isOdd()) { - A.iadd(yp); - B.isub(xp); - } - - A.iushrn(1); - B.iushrn(1); - } - } - - for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); - if (j > 0) { - y.iushrn(j); - while (j-- > 0) { - if (C.isOdd() || D.isOdd()) { - C.iadd(yp); - D.isub(xp); - } - - C.iushrn(1); - D.iushrn(1); - } - } - - if (x.cmp(y) >= 0) { - x.isub(y); - A.isub(C); - B.isub(D); - } else { - y.isub(x); - C.isub(A); - D.isub(B); - } - } - - return { - a: C, - b: D, - gcd: y.iushln(g) - }; - }; - - // This is reduced incarnation of the binary EEA - // above, designated to invert members of the - // _prime_ fields F(p) at a maximal speed - BN.prototype._invmp = function _invmp (p) { - assert(p.negative === 0); - assert(!p.isZero()); - - var a = this; - var b = p.clone(); - - if (a.negative !== 0) { - a = a.umod(p); - } else { - a = a.clone(); - } - - var x1 = new BN(1); - var x2 = new BN(0); - - var delta = b.clone(); - - while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { - for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1); - if (i > 0) { - a.iushrn(i); - while (i-- > 0) { - if (x1.isOdd()) { - x1.iadd(delta); - } - - x1.iushrn(1); - } - } - - for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); - if (j > 0) { - b.iushrn(j); - while (j-- > 0) { - if (x2.isOdd()) { - x2.iadd(delta); - } - - x2.iushrn(1); - } - } - - if (a.cmp(b) >= 0) { - a.isub(b); - x1.isub(x2); - } else { - b.isub(a); - x2.isub(x1); - } - } - - var res; - if (a.cmpn(1) === 0) { - res = x1; - } else { - res = x2; - } - - if (res.cmpn(0) < 0) { - res.iadd(p); - } - - return res; - }; - - BN.prototype.gcd = function gcd (num) { - if (this.isZero()) return num.abs(); - if (num.isZero()) return this.abs(); - - var a = this.clone(); - var b = num.clone(); - a.negative = 0; - b.negative = 0; - - // Remove common factor of two - for (var shift = 0; a.isEven() && b.isEven(); shift++) { - a.iushrn(1); - b.iushrn(1); - } - - do { - while (a.isEven()) { - a.iushrn(1); - } - while (b.isEven()) { - b.iushrn(1); - } - - var r = a.cmp(b); - if (r < 0) { - // Swap `a` and `b` to make `a` always bigger than `b` - var t = a; - a = b; - b = t; - } else if (r === 0 || b.cmpn(1) === 0) { - break; - } - - a.isub(b); - } while (true); - - return b.iushln(shift); - }; - - // Invert number in the field F(num) - BN.prototype.invm = function invm (num) { - return this.egcd(num).a.umod(num); - }; - - BN.prototype.isEven = function isEven () { - return (this.words[0] & 1) === 0; - }; - - BN.prototype.isOdd = function isOdd () { - return (this.words[0] & 1) === 1; - }; - - // And first word and num - BN.prototype.andln = function andln (num) { - return this.words[0] & num; - }; - - // Increment at the bit position in-line - BN.prototype.bincn = function bincn (bit) { - assert(typeof bit === 'number'); - var r = bit % 26; - var s = (bit - r) / 26; - var q = 1 << r; - - // Fast case: bit is much higher than all existing words - if (this.length <= s) { - this._expand(s + 1); - this.words[s] |= q; - return this; - } - - // Add bit and propagate, if needed - var carry = q; - for (var i = s; carry !== 0 && i < this.length; i++) { - var w = this.words[i] | 0; - w += carry; - carry = w >>> 26; - w &= 0x3ffffff; - this.words[i] = w; - } - if (carry !== 0) { - this.words[i] = carry; - this.length++; - } - return this; - }; - - BN.prototype.isZero = function isZero () { - return this.length === 1 && this.words[0] === 0; - }; - - BN.prototype.cmpn = function cmpn (num) { - var negative = num < 0; - - if (this.negative !== 0 && !negative) return -1; - if (this.negative === 0 && negative) return 1; - - this.strip(); - - var res; - if (this.length > 1) { - res = 1; - } else { - if (negative) { - num = -num; - } - - assert(num <= 0x3ffffff, 'Number is too big'); - - var w = this.words[0] | 0; - res = w === num ? 0 : w < num ? -1 : 1; - } - if (this.negative !== 0) return -res | 0; - return res; - }; - - // Compare two numbers and return: - // 1 - if `this` > `num` - // 0 - if `this` == `num` - // -1 - if `this` < `num` - BN.prototype.cmp = function cmp (num) { - if (this.negative !== 0 && num.negative === 0) return -1; - if (this.negative === 0 && num.negative !== 0) return 1; - - var res = this.ucmp(num); - if (this.negative !== 0) return -res | 0; - return res; - }; - - // Unsigned comparison - BN.prototype.ucmp = function ucmp (num) { - // At this point both numbers have the same sign - if (this.length > num.length) return 1; - if (this.length < num.length) return -1; - - var res = 0; - for (var i = this.length - 1; i >= 0; i--) { - var a = this.words[i] | 0; - var b = num.words[i] | 0; - - if (a === b) continue; - if (a < b) { - res = -1; - } else if (a > b) { - res = 1; - } - break; - } - return res; - }; - - BN.prototype.gtn = function gtn (num) { - return this.cmpn(num) === 1; - }; - - BN.prototype.gt = function gt (num) { - return this.cmp(num) === 1; - }; - - BN.prototype.gten = function gten (num) { - return this.cmpn(num) >= 0; - }; - - BN.prototype.gte = function gte (num) { - return this.cmp(num) >= 0; - }; - - BN.prototype.ltn = function ltn (num) { - return this.cmpn(num) === -1; - }; - - BN.prototype.lt = function lt (num) { - return this.cmp(num) === -1; - }; - - BN.prototype.lten = function lten (num) { - return this.cmpn(num) <= 0; - }; - - BN.prototype.lte = function lte (num) { - return this.cmp(num) <= 0; - }; - - BN.prototype.eqn = function eqn (num) { - return this.cmpn(num) === 0; - }; - - BN.prototype.eq = function eq (num) { - return this.cmp(num) === 0; - }; - - // - // A reduce context, could be using montgomery or something better, depending - // on the `m` itself. - // - BN.red = function red (num) { - return new Red(num); - }; - - BN.prototype.toRed = function toRed (ctx) { - assert(!this.red, 'Already a number in reduction context'); - assert(this.negative === 0, 'red works only with positives'); - return ctx.convertTo(this)._forceRed(ctx); - }; - - BN.prototype.fromRed = function fromRed () { - assert(this.red, 'fromRed works only with numbers in reduction context'); - return this.red.convertFrom(this); - }; - - BN.prototype._forceRed = function _forceRed (ctx) { - this.red = ctx; - return this; - }; - - BN.prototype.forceRed = function forceRed (ctx) { - assert(!this.red, 'Already a number in reduction context'); - return this._forceRed(ctx); - }; - - BN.prototype.redAdd = function redAdd (num) { - assert(this.red, 'redAdd works only with red numbers'); - return this.red.add(this, num); - }; - - BN.prototype.redIAdd = function redIAdd (num) { - assert(this.red, 'redIAdd works only with red numbers'); - return this.red.iadd(this, num); - }; - - BN.prototype.redSub = function redSub (num) { - assert(this.red, 'redSub works only with red numbers'); - return this.red.sub(this, num); - }; - - BN.prototype.redISub = function redISub (num) { - assert(this.red, 'redISub works only with red numbers'); - return this.red.isub(this, num); - }; - - BN.prototype.redShl = function redShl (num) { - assert(this.red, 'redShl works only with red numbers'); - return this.red.shl(this, num); - }; - - BN.prototype.redMul = function redMul (num) { - assert(this.red, 'redMul works only with red numbers'); - this.red._verify2(this, num); - return this.red.mul(this, num); - }; - - BN.prototype.redIMul = function redIMul (num) { - assert(this.red, 'redMul works only with red numbers'); - this.red._verify2(this, num); - return this.red.imul(this, num); - }; - - BN.prototype.redSqr = function redSqr () { - assert(this.red, 'redSqr works only with red numbers'); - this.red._verify1(this); - return this.red.sqr(this); - }; - - BN.prototype.redISqr = function redISqr () { - assert(this.red, 'redISqr works only with red numbers'); - this.red._verify1(this); - return this.red.isqr(this); - }; - - // Square root over p - BN.prototype.redSqrt = function redSqrt () { - assert(this.red, 'redSqrt works only with red numbers'); - this.red._verify1(this); - return this.red.sqrt(this); - }; - - BN.prototype.redInvm = function redInvm () { - assert(this.red, 'redInvm works only with red numbers'); - this.red._verify1(this); - return this.red.invm(this); - }; - - // Return negative clone of `this` % `red modulo` - BN.prototype.redNeg = function redNeg () { - assert(this.red, 'redNeg works only with red numbers'); - this.red._verify1(this); - return this.red.neg(this); - }; - - BN.prototype.redPow = function redPow (num) { - assert(this.red && !num.red, 'redPow(normalNum)'); - this.red._verify1(this); - return this.red.pow(this, num); - }; - - // Prime numbers with efficient reduction - var primes = { - k256: null, - p224: null, - p192: null, - p25519: null - }; - - // Pseudo-Mersenne prime - function MPrime (name, p) { - // P = 2 ^ N - K - this.name = name; - this.p = new BN(p, 16); - this.n = this.p.bitLength(); - this.k = new BN(1).iushln(this.n).isub(this.p); - - this.tmp = this._tmp(); - } - - MPrime.prototype._tmp = function _tmp () { - var tmp = new BN(null); - tmp.words = new Array(Math.ceil(this.n / 13)); - return tmp; - }; - - MPrime.prototype.ireduce = function ireduce (num) { - // Assumes that `num` is less than `P^2` - // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) - var r = num; - var rlen; - - do { - this.split(r, this.tmp); - r = this.imulK(r); - r = r.iadd(this.tmp); - rlen = r.bitLength(); - } while (rlen > this.n); - - var cmp = rlen < this.n ? -1 : r.ucmp(this.p); - if (cmp === 0) { - r.words[0] = 0; - r.length = 1; - } else if (cmp > 0) { - r.isub(this.p); - } else { - r.strip(); - } - - return r; - }; - - MPrime.prototype.split = function split (input, out) { - input.iushrn(this.n, 0, out); - }; - - MPrime.prototype.imulK = function imulK (num) { - return num.imul(this.k); - }; - - function K256 () { - MPrime.call( - this, - 'k256', - 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f'); - } - inherits(K256, MPrime); - - K256.prototype.split = function split (input, output) { - // 256 = 9 * 26 + 22 - var mask = 0x3fffff; - - var outLen = Math.min(input.length, 9); - for (var i = 0; i < outLen; i++) { - output.words[i] = input.words[i]; - } - output.length = outLen; - - if (input.length <= 9) { - input.words[0] = 0; - input.length = 1; - return; - } - - // Shift by 9 limbs - var prev = input.words[9]; - output.words[output.length++] = prev & mask; - - for (i = 10; i < input.length; i++) { - var next = input.words[i] | 0; - input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22); - prev = next; - } - prev >>>= 22; - input.words[i - 10] = prev; - if (prev === 0 && input.length > 10) { - input.length -= 10; - } else { - input.length -= 9; - } - }; - - K256.prototype.imulK = function imulK (num) { - // K = 0x1000003d1 = [ 0x40, 0x3d1 ] - num.words[num.length] = 0; - num.words[num.length + 1] = 0; - num.length += 2; - - // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 - var lo = 0; - for (var i = 0; i < num.length; i++) { - var w = num.words[i] | 0; - lo += w * 0x3d1; - num.words[i] = lo & 0x3ffffff; - lo = w * 0x40 + ((lo / 0x4000000) | 0); - } - - // Fast length reduction - if (num.words[num.length - 1] === 0) { - num.length--; - if (num.words[num.length - 1] === 0) { - num.length--; - } - } - return num; - }; - - function P224 () { - MPrime.call( - this, - 'p224', - 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001'); - } - inherits(P224, MPrime); - - function P192 () { - MPrime.call( - this, - 'p192', - 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff'); - } - inherits(P192, MPrime); - - function P25519 () { - // 2 ^ 255 - 19 - MPrime.call( - this, - '25519', - '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed'); - } - inherits(P25519, MPrime); - - P25519.prototype.imulK = function imulK (num) { - // K = 0x13 - var carry = 0; - for (var i = 0; i < num.length; i++) { - var hi = (num.words[i] | 0) * 0x13 + carry; - var lo = hi & 0x3ffffff; - hi >>>= 26; - - num.words[i] = lo; - carry = hi; - } - if (carry !== 0) { - num.words[num.length++] = carry; - } - return num; - }; - - // Exported mostly for testing purposes, use plain name instead - BN._prime = function prime (name) { - // Cached version of prime - if (primes[name]) return primes[name]; - - var prime; - if (name === 'k256') { - prime = new K256(); - } else if (name === 'p224') { - prime = new P224(); - } else if (name === 'p192') { - prime = new P192(); - } else if (name === 'p25519') { - prime = new P25519(); - } else { - throw new Error('Unknown prime ' + name); - } - primes[name] = prime; - - return prime; - }; - - // - // Base reduction engine - // - function Red (m) { - if (typeof m === 'string') { - var prime = BN._prime(m); - this.m = prime.p; - this.prime = prime; - } else { - assert(m.gtn(1), 'modulus must be greater than 1'); - this.m = m; - this.prime = null; - } - } - - Red.prototype._verify1 = function _verify1 (a) { - assert(a.negative === 0, 'red works only with positives'); - assert(a.red, 'red works only with red numbers'); - }; - - Red.prototype._verify2 = function _verify2 (a, b) { - assert((a.negative | b.negative) === 0, 'red works only with positives'); - assert(a.red && a.red === b.red, - 'red works only with red numbers'); - }; - - Red.prototype.imod = function imod (a) { - if (this.prime) return this.prime.ireduce(a)._forceRed(this); - return a.umod(this.m)._forceRed(this); - }; - - Red.prototype.neg = function neg (a) { - if (a.isZero()) { - return a.clone(); - } - - return this.m.sub(a)._forceRed(this); - }; - - Red.prototype.add = function add (a, b) { - this._verify2(a, b); - - var res = a.add(b); - if (res.cmp(this.m) >= 0) { - res.isub(this.m); - } - return res._forceRed(this); - }; - - Red.prototype.iadd = function iadd (a, b) { - this._verify2(a, b); - - var res = a.iadd(b); - if (res.cmp(this.m) >= 0) { - res.isub(this.m); - } - return res; - }; - - Red.prototype.sub = function sub (a, b) { - this._verify2(a, b); - - var res = a.sub(b); - if (res.cmpn(0) < 0) { - res.iadd(this.m); - } - return res._forceRed(this); - }; - - Red.prototype.isub = function isub (a, b) { - this._verify2(a, b); - - var res = a.isub(b); - if (res.cmpn(0) < 0) { - res.iadd(this.m); - } - return res; - }; - - Red.prototype.shl = function shl (a, num) { - this._verify1(a); - return this.imod(a.ushln(num)); - }; - - Red.prototype.imul = function imul (a, b) { - this._verify2(a, b); - return this.imod(a.imul(b)); - }; - - Red.prototype.mul = function mul (a, b) { - this._verify2(a, b); - return this.imod(a.mul(b)); - }; - - Red.prototype.isqr = function isqr (a) { - return this.imul(a, a.clone()); - }; - - Red.prototype.sqr = function sqr (a) { - return this.mul(a, a); - }; - - Red.prototype.sqrt = function sqrt (a) { - if (a.isZero()) return a.clone(); - - var mod3 = this.m.andln(3); - assert(mod3 % 2 === 1); - - // Fast case - if (mod3 === 3) { - var pow = this.m.add(new BN(1)).iushrn(2); - return this.pow(a, pow); - } - - // Tonelli-Shanks algorithm (Totally unoptimized and slow) - // - // Find Q and S, that Q * 2 ^ S = (P - 1) - var q = this.m.subn(1); - var s = 0; - while (!q.isZero() && q.andln(1) === 0) { - s++; - q.iushrn(1); - } - assert(!q.isZero()); - - var one = new BN(1).toRed(this); - var nOne = one.redNeg(); - - // Find quadratic non-residue - // NOTE: Max is such because of generalized Riemann hypothesis. - var lpow = this.m.subn(1).iushrn(1); - var z = this.m.bitLength(); - z = new BN(2 * z * z).toRed(this); - - while (this.pow(z, lpow).cmp(nOne) !== 0) { - z.redIAdd(nOne); - } - - var c = this.pow(z, q); - var r = this.pow(a, q.addn(1).iushrn(1)); - var t = this.pow(a, q); - var m = s; - while (t.cmp(one) !== 0) { - var tmp = t; - for (var i = 0; tmp.cmp(one) !== 0; i++) { - tmp = tmp.redSqr(); - } - assert(i < m); - var b = this.pow(c, new BN(1).iushln(m - i - 1)); - - r = r.redMul(b); - c = b.redSqr(); - t = t.redMul(c); - m = i; - } - - return r; - }; - - Red.prototype.invm = function invm (a) { - var inv = a._invmp(this.m); - if (inv.negative !== 0) { - inv.negative = 0; - return this.imod(inv).redNeg(); - } else { - return this.imod(inv); - } - }; - - Red.prototype.pow = function pow (a, num) { - if (num.isZero()) return new BN(1).toRed(this); - if (num.cmpn(1) === 0) return a.clone(); - - var windowSize = 4; - var wnd = new Array(1 << windowSize); - wnd[0] = new BN(1).toRed(this); - wnd[1] = a; - for (var i = 2; i < wnd.length; i++) { - wnd[i] = this.mul(wnd[i - 1], a); - } - - var res = wnd[0]; - var current = 0; - var currentLen = 0; - var start = num.bitLength() % 26; - if (start === 0) { - start = 26; - } - - for (i = num.length - 1; i >= 0; i--) { - var word = num.words[i]; - for (var j = start - 1; j >= 0; j--) { - var bit = (word >> j) & 1; - if (res !== wnd[0]) { - res = this.sqr(res); - } - - if (bit === 0 && current === 0) { - currentLen = 0; - continue; - } - - current <<= 1; - current |= bit; - currentLen++; - if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue; - - res = this.mul(res, wnd[current]); - currentLen = 0; - current = 0; - } - start = 26; - } - - return res; - }; - - Red.prototype.convertTo = function convertTo (num) { - var r = num.umod(this.m); - - return r === num ? r.clone() : r; - }; - - Red.prototype.convertFrom = function convertFrom (num) { - var res = num.clone(); - res.red = null; - return res; - }; - - // - // Montgomery method engine - // - - BN.mont = function mont (num) { - return new Mont(num); - }; - - function Mont (m) { - Red.call(this, m); - - this.shift = this.m.bitLength(); - if (this.shift % 26 !== 0) { - this.shift += 26 - (this.shift % 26); - } - - this.r = new BN(1).iushln(this.shift); - this.r2 = this.imod(this.r.sqr()); - this.rinv = this.r._invmp(this.m); - - this.minv = this.rinv.mul(this.r).isubn(1).div(this.m); - this.minv = this.minv.umod(this.r); - this.minv = this.r.sub(this.minv); - } - inherits(Mont, Red); - - Mont.prototype.convertTo = function convertTo (num) { - return this.imod(num.ushln(this.shift)); - }; - - Mont.prototype.convertFrom = function convertFrom (num) { - var r = this.imod(num.mul(this.rinv)); - r.red = null; - return r; - }; - - Mont.prototype.imul = function imul (a, b) { - if (a.isZero() || b.isZero()) { - a.words[0] = 0; - a.length = 1; - return a; - } - - var t = a.imul(b); - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); - var u = t.isub(c).iushrn(this.shift); - var res = u; - - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m); - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m); - } - - return res._forceRed(this); - }; - - Mont.prototype.mul = function mul (a, b) { - if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this); - - var t = a.mul(b); - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); - var u = t.isub(c).iushrn(this.shift); - var res = u; - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m); - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m); - } - - return res._forceRed(this); - }; - - Mont.prototype.invm = function invm (a) { - // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R - var res = this.imod(a._invmp(this.m).mul(this.r2)); - return res._forceRed(this); - }; -})( false || module, this); - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module))) - -/***/ }), - -/***/ "./node_modules/brorand/index.js": -/*!***************************************!*\ - !*** ./node_modules/brorand/index.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var r; - -module.exports = function rand(len) { - if (!r) - r = new Rand(null); - - return r.generate(len); -}; - -function Rand(rand) { - this.rand = rand; -} -module.exports.Rand = Rand; - -Rand.prototype.generate = function generate(len) { - return this._rand(len); -}; - -// Emulate crypto API using randy -Rand.prototype._rand = function _rand(n) { - if (this.rand.getBytes) - return this.rand.getBytes(n); - - var res = new Uint8Array(n); - for (var i = 0; i < res.length; i++) - res[i] = this.rand.getByte(); - return res; -}; - -if (typeof self === 'object') { - if (self.crypto && self.crypto.getRandomValues) { - // Modern browsers - Rand.prototype._rand = function _rand(n) { - var arr = new Uint8Array(n); - self.crypto.getRandomValues(arr); - return arr; - }; - } else if (self.msCrypto && self.msCrypto.getRandomValues) { - // IE - Rand.prototype._rand = function _rand(n) { - var arr = new Uint8Array(n); - self.msCrypto.getRandomValues(arr); - return arr; - }; - - // Safari's WebWorkers do not have `crypto` - } else if (typeof window === 'object') { - // Old junk - Rand.prototype._rand = function() { - throw new Error('Not implemented yet'); - }; - } -} else { - // Node.js or Web worker with no crypto support - try { - var crypto = __webpack_require__(/*! crypto */ 4); - if (typeof crypto.randomBytes !== 'function') - throw new Error('Not supported'); - - Rand.prototype._rand = function _rand(n) { - return crypto.randomBytes(n); - }; - } catch (e) { - } -} - - -/***/ }), - -/***/ "./node_modules/browserfs/dist/browserfs.js": -/*!**************************************************!*\ - !*** ./node_modules/browserfs/dist/browserfs.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["BrowserFS"] = factory(); - else - root["BrowserFS"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; -/******/ -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer, global, module, process) {'use strict'; - - Object.defineProperty(exports, '__esModule', { value: true }); - - var buffer = __webpack_require__(2); - var path = __webpack_require__(9); - - /** - * Standard libc error codes. Add more to this enum and ErrorStrings as they are - * needed. - * @url http://www.gnu.org/software/libc/manual/html_node/Error-Codes.html - */ - /** - * Standard libc error codes. Add more to this enum and ErrorStrings as they are - * needed. - * @url http://www.gnu.org/software/libc/manual/html_node/Error-Codes.html - */ var ErrorCode; - (function (ErrorCode) { - ErrorCode[ErrorCode["EPERM"] = 1] = "EPERM"; - ErrorCode[ErrorCode["ENOENT"] = 2] = "ENOENT"; - ErrorCode[ErrorCode["EIO"] = 5] = "EIO"; - ErrorCode[ErrorCode["EBADF"] = 9] = "EBADF"; - ErrorCode[ErrorCode["EACCES"] = 13] = "EACCES"; - ErrorCode[ErrorCode["EBUSY"] = 16] = "EBUSY"; - ErrorCode[ErrorCode["EEXIST"] = 17] = "EEXIST"; - ErrorCode[ErrorCode["ENOTDIR"] = 20] = "ENOTDIR"; - ErrorCode[ErrorCode["EISDIR"] = 21] = "EISDIR"; - ErrorCode[ErrorCode["EINVAL"] = 22] = "EINVAL"; - ErrorCode[ErrorCode["EFBIG"] = 27] = "EFBIG"; - ErrorCode[ErrorCode["ENOSPC"] = 28] = "ENOSPC"; - ErrorCode[ErrorCode["EROFS"] = 30] = "EROFS"; - ErrorCode[ErrorCode["ENOTEMPTY"] = 39] = "ENOTEMPTY"; - ErrorCode[ErrorCode["ENOTSUP"] = 95] = "ENOTSUP"; - })(ErrorCode || (ErrorCode = {})); - /* tslint:disable:variable-name */ - /** - * Strings associated with each error code. - * @hidden - */ - var ErrorStrings = {}; - ErrorStrings[ErrorCode.EPERM] = 'Operation not permitted.'; - ErrorStrings[ErrorCode.ENOENT] = 'No such file or directory.'; - ErrorStrings[ErrorCode.EIO] = 'Input/output error.'; - ErrorStrings[ErrorCode.EBADF] = 'Bad file descriptor.'; - ErrorStrings[ErrorCode.EACCES] = 'Permission denied.'; - ErrorStrings[ErrorCode.EBUSY] = 'Resource busy or locked.'; - ErrorStrings[ErrorCode.EEXIST] = 'File exists.'; - ErrorStrings[ErrorCode.ENOTDIR] = 'File is not a directory.'; - ErrorStrings[ErrorCode.EISDIR] = 'File is a directory.'; - ErrorStrings[ErrorCode.EINVAL] = 'Invalid argument.'; - ErrorStrings[ErrorCode.EFBIG] = 'File is too big.'; - ErrorStrings[ErrorCode.ENOSPC] = 'No space left on disk.'; - ErrorStrings[ErrorCode.EROFS] = 'Cannot modify a read-only file system.'; - ErrorStrings[ErrorCode.ENOTEMPTY] = 'Directory is not empty.'; - ErrorStrings[ErrorCode.ENOTSUP] = 'Operation is not supported.'; - /* tslint:enable:variable-name */ - /** - * Represents a BrowserFS error. Passed back to applications after a failed - * call to the BrowserFS API. - */ - var ApiError = (function (Error) { - function ApiError(type, message, path$$1) { - if ( message === void 0 ) message = ErrorStrings[type]; - - Error.call(this, message); - // Unsupported. - this.syscall = ""; - this.errno = type; - this.code = ErrorCode[type]; - this.path = path$$1; - this.stack = new Error().stack; - this.message = "Error: " + (this.code) + ": " + message + (this.path ? (", '" + (this.path) + "'") : ''); - } - - if ( Error ) ApiError.__proto__ = Error; - ApiError.prototype = Object.create( Error && Error.prototype ); - ApiError.prototype.constructor = ApiError; - ApiError.fromJSON = function fromJSON (json) { - var err = new ApiError(0); - err.errno = json.errno; - err.code = json.code; - err.path = json.path; - err.stack = json.stack; - err.message = json.message; - return err; - }; - /** - * Creates an ApiError object from a buffer. - */ - ApiError.fromBuffer = function fromBuffer (buffer$$1, i) { - if ( i === void 0 ) i = 0; - - return ApiError.fromJSON(JSON.parse(buffer$$1.toString('utf8', i + 4, i + 4 + buffer$$1.readUInt32LE(i)))); - }; - ApiError.FileError = function FileError (code, p) { - return new ApiError(code, ErrorStrings[code], p); - }; - ApiError.ENOENT = function ENOENT (path$$1) { - return this.FileError(ErrorCode.ENOENT, path$$1); - }; - ApiError.EEXIST = function EEXIST (path$$1) { - return this.FileError(ErrorCode.EEXIST, path$$1); - }; - ApiError.EISDIR = function EISDIR (path$$1) { - return this.FileError(ErrorCode.EISDIR, path$$1); - }; - ApiError.ENOTDIR = function ENOTDIR (path$$1) { - return this.FileError(ErrorCode.ENOTDIR, path$$1); - }; - ApiError.EPERM = function EPERM (path$$1) { - return this.FileError(ErrorCode.EPERM, path$$1); - }; - ApiError.ENOTEMPTY = function ENOTEMPTY (path$$1) { - return this.FileError(ErrorCode.ENOTEMPTY, path$$1); - }; - /** - * @return A friendly error message. - */ - ApiError.prototype.toString = function toString () { - return this.message; - }; - ApiError.prototype.toJSON = function toJSON () { - return { - errno: this.errno, - code: this.code, - path: this.path, - stack: this.stack, - message: this.message - }; - }; - /** - * Writes the API error into a buffer. - */ - ApiError.prototype.writeToBuffer = function writeToBuffer (buffer$$1, i) { - if ( buffer$$1 === void 0 ) buffer$$1 = Buffer.alloc(this.bufferSize()); - if ( i === void 0 ) i = 0; - - var bytesWritten = buffer$$1.write(JSON.stringify(this.toJSON()), i + 4); - buffer$$1.writeUInt32LE(bytesWritten, i); - return buffer$$1; - }; - /** - * The size of the API error in buffer-form in bytes. - */ - ApiError.prototype.bufferSize = function bufferSize () { - // 4 bytes for string length. - return 4 + Buffer.byteLength(JSON.stringify(this.toJSON())); - }; - - return ApiError; - }(Error)); - - - var api_error = Object.freeze({ - get ErrorCode () { return ErrorCode; }, - ErrorStrings: ErrorStrings, - ApiError: ApiError - }); - - var ActionType; - (function (ActionType) { - // Indicates that the code should not do anything. - ActionType[ActionType["NOP"] = 0] = "NOP"; - // Indicates that the code should throw an exception. - ActionType[ActionType["THROW_EXCEPTION"] = 1] = "THROW_EXCEPTION"; - // Indicates that the code should truncate the file, but only if it is a file. - ActionType[ActionType["TRUNCATE_FILE"] = 2] = "TRUNCATE_FILE"; - // Indicates that the code should create the file. - ActionType[ActionType["CREATE_FILE"] = 3] = "CREATE_FILE"; - })(ActionType || (ActionType = {})); - /** - * Represents one of the following file flags. A convenience object. - * - * * `'r'` - Open file for reading. An exception occurs if the file does not exist. - * * `'r+'` - Open file for reading and writing. An exception occurs if the file does not exist. - * * `'rs'` - Open file for reading in synchronous mode. Instructs the filesystem to not cache writes. - * * `'rs+'` - Open file for reading and writing, and opens the file in synchronous mode. - * * `'w'` - Open file for writing. The file is created (if it does not exist) or truncated (if it exists). - * * `'wx'` - Like 'w' but opens the file in exclusive mode. - * * `'w+'` - Open file for reading and writing. The file is created (if it does not exist) or truncated (if it exists). - * * `'wx+'` - Like 'w+' but opens the file in exclusive mode. - * * `'a'` - Open file for appending. The file is created if it does not exist. - * * `'ax'` - Like 'a' but opens the file in exclusive mode. - * * `'a+'` - Open file for reading and appending. The file is created if it does not exist. - * * `'ax+'` - Like 'a+' but opens the file in exclusive mode. - * - * Exclusive mode ensures that the file path is newly created. - */ - var FileFlag = function FileFlag(flagStr) { - this.flagStr = flagStr; - if (FileFlag.validFlagStrs.indexOf(flagStr) < 0) { - throw new ApiError(ErrorCode.EINVAL, "Invalid flag: " + flagStr); - } - }; - /** - * Get an object representing the given file flag. - * @param modeStr The string representing the flag - * @return The FileFlag object representing the flag - * @throw when the flag string is invalid - */ - FileFlag.getFileFlag = function getFileFlag (flagStr) { - // Check cache first. - if (FileFlag.flagCache.hasOwnProperty(flagStr)) { - return FileFlag.flagCache[flagStr]; - } - return FileFlag.flagCache[flagStr] = new FileFlag(flagStr); - }; - /** - * Get the underlying flag string for this flag. - */ - FileFlag.prototype.getFlagString = function getFlagString () { - return this.flagStr; - }; - /** - * Returns true if the file is readable. - */ - FileFlag.prototype.isReadable = function isReadable () { - return this.flagStr.indexOf('r') !== -1 || this.flagStr.indexOf('+') !== -1; - }; - /** - * Returns true if the file is writeable. - */ - FileFlag.prototype.isWriteable = function isWriteable () { - return this.flagStr.indexOf('w') !== -1 || this.flagStr.indexOf('a') !== -1 || this.flagStr.indexOf('+') !== -1; - }; - /** - * Returns true if the file mode should truncate. - */ - FileFlag.prototype.isTruncating = function isTruncating () { - return this.flagStr.indexOf('w') !== -1; - }; - /** - * Returns true if the file is appendable. - */ - FileFlag.prototype.isAppendable = function isAppendable () { - return this.flagStr.indexOf('a') !== -1; - }; - /** - * Returns true if the file is open in synchronous mode. - */ - FileFlag.prototype.isSynchronous = function isSynchronous () { - return this.flagStr.indexOf('s') !== -1; - }; - /** - * Returns true if the file is open in exclusive mode. - */ - FileFlag.prototype.isExclusive = function isExclusive () { - return this.flagStr.indexOf('x') !== -1; - }; - /** - * Returns one of the static fields on this object that indicates the - * appropriate response to the path existing. - */ - FileFlag.prototype.pathExistsAction = function pathExistsAction () { - if (this.isExclusive()) { - return ActionType.THROW_EXCEPTION; - } - else if (this.isTruncating()) { - return ActionType.TRUNCATE_FILE; - } - else { - return ActionType.NOP; - } - }; - /** - * Returns one of the static fields on this object that indicates the - * appropriate response to the path not existing. - */ - FileFlag.prototype.pathNotExistsAction = function pathNotExistsAction () { - if ((this.isWriteable() || this.isAppendable()) && this.flagStr !== 'r+') { - return ActionType.CREATE_FILE; - } - else { - return ActionType.THROW_EXCEPTION; - } - }; - // Contains cached FileMode instances. - FileFlag.flagCache = {}; - // Array of valid mode strings. - FileFlag.validFlagStrs = ['r', 'r+', 'rs', 'rs+', 'w', 'wx', 'w+', 'wx+', 'a', 'ax', 'a+', 'ax+']; - - /** - * Indicates the type of the given file. Applied to 'mode'. - */ - var FileType; - (function (FileType) { - FileType[FileType["FILE"] = 32768] = "FILE"; - FileType[FileType["DIRECTORY"] = 16384] = "DIRECTORY"; - FileType[FileType["SYMLINK"] = 40960] = "SYMLINK"; - })(FileType || (FileType = {})); - /** - * Emulation of Node's `fs.Stats` object. - * - * Attribute descriptions are from `man 2 stat' - * @see http://nodejs.org/api/fs.html#fs_class_fs_stats - * @see http://man7.org/linux/man-pages/man2/stat.2.html - */ - var Stats = function Stats(itemType, size, mode, atime, mtime, ctime) { - if ( atime === void 0 ) atime = new Date(); - if ( mtime === void 0 ) mtime = new Date(); - if ( ctime === void 0 ) ctime = new Date(); - - this.size = size; - this.atime = atime; - this.mtime = mtime; - this.ctime = ctime; - /** - * UNSUPPORTED ATTRIBUTES - * I assume no one is going to need these details, although we could fake - * appropriate values if need be. - */ - // ID of device containing file - this.dev = 0; - // inode number - this.ino = 0; - // device ID (if special file) - this.rdev = 0; - // number of hard links - this.nlink = 1; - // blocksize for file system I/O - this.blksize = 4096; - // @todo Maybe support these? atm, it's a one-user filesystem. - // user ID of owner - this.uid = 0; - // group ID of owner - this.gid = 0; - // time file was created (currently unsupported) - this.birthtime = new Date(0); - // XXX: Some file systems stash data on stats objects. - this.fileData = null; - if (!mode) { - switch (itemType) { - case FileType.FILE: - this.mode = 0x1a4; - break; - case FileType.DIRECTORY: - default: - this.mode = 0x1ff; - } - } - else { - this.mode = mode; - } - // number of 512B blocks allocated - this.blocks = Math.ceil(size / 512); - // Check if mode also includes top-most bits, which indicate the file's - // type. - if (this.mode < 0x1000) { - this.mode |= itemType; - } - }; - Stats.fromBuffer = function fromBuffer (buffer$$1) { - var size = buffer$$1.readUInt32LE(0), mode = buffer$$1.readUInt32LE(4), atime = buffer$$1.readDoubleLE(8), mtime = buffer$$1.readDoubleLE(16), ctime = buffer$$1.readDoubleLE(24); - return new Stats(mode & 0xF000, size, mode & 0xFFF, new Date(atime), new Date(mtime), new Date(ctime)); - }; - Stats.prototype.toBuffer = function toBuffer () { - var buffer$$1 = Buffer.alloc(32); - buffer$$1.writeUInt32LE(this.size, 0); - buffer$$1.writeUInt32LE(this.mode, 4); - buffer$$1.writeDoubleLE(this.atime.getTime(), 8); - buffer$$1.writeDoubleLE(this.mtime.getTime(), 16); - buffer$$1.writeDoubleLE(this.ctime.getTime(), 24); - return buffer$$1; - }; - /** - * **Nonstandard**: Clone the stats object. - * @return [BrowserFS.node.fs.Stats] - */ - Stats.prototype.clone = function clone () { - return new Stats(this.mode & 0xF000, this.size, this.mode & 0xFFF, this.atime, this.mtime, this.ctime); - }; - /** - * @return [Boolean] True if this item is a file. - */ - Stats.prototype.isFile = function isFile () { - return (this.mode & 0xF000) === FileType.FILE; - }; - /** - * @return [Boolean] True if this item is a directory. - */ - Stats.prototype.isDirectory = function isDirectory () { - return (this.mode & 0xF000) === FileType.DIRECTORY; - }; - /** - * @return [Boolean] True if this item is a symbolic link (only valid through lstat) - */ - Stats.prototype.isSymbolicLink = function isSymbolicLink () { - return (this.mode & 0xF000) === FileType.SYMLINK; - }; - /** - * Change the mode of the file. We use this helper function to prevent messing - * up the type of the file, which is encoded in mode. - */ - Stats.prototype.chmod = function chmod (mode) { - this.mode = (this.mode & 0xF000) | mode; - }; - // We don't support the following types of files. - Stats.prototype.isSocket = function isSocket () { - return false; - }; - Stats.prototype.isBlockDevice = function isBlockDevice () { - return false; - }; - Stats.prototype.isCharacterDevice = function isCharacterDevice () { - return false; - }; - Stats.prototype.isFIFO = function isFIFO () { - return false; - }; - - /** - * Wraps a callback function. Used for unit testing. Defaults to a NOP. - * @hidden - */ - var wrapCb = function (cb, numArgs) { - return cb; - }; - /** - * @hidden - */ - function assertRoot(fs) { - if (fs) { - return fs; - } - throw new ApiError(ErrorCode.EIO, "Initialize BrowserFS with a file system using BrowserFS.initialize(filesystem)"); - } - /** - * @hidden - */ - function normalizeMode(mode, def) { - switch (typeof mode) { - case 'number': - // (path, flag, mode, cb?) - return mode; - case 'string': - // (path, flag, modeString, cb?) - var trueMode = parseInt(mode, 8); - if (!isNaN(trueMode)) { - return trueMode; - } - // Invalid string. - return def; - default: - return def; - } - } - /** - * @hidden - */ - function normalizeTime(time) { - if (time instanceof Date) { - return time; - } - else if (typeof time === 'number') { - return new Date(time * 1000); - } - else { - throw new ApiError(ErrorCode.EINVAL, "Invalid time."); - } - } - /** - * @hidden - */ - function normalizePath(p) { - // Node doesn't allow null characters in paths. - if (p.indexOf('\u0000') >= 0) { - throw new ApiError(ErrorCode.EINVAL, 'Path must be a string without null bytes.'); - } - else if (p === '') { - throw new ApiError(ErrorCode.EINVAL, 'Path must not be empty.'); - } - return path.resolve(p); - } - /** - * @hidden - */ - function normalizeOptions(options, defEnc, defFlag, defMode) { - switch (typeof options) { - case 'object': - return { - encoding: typeof options['encoding'] !== 'undefined' ? options['encoding'] : defEnc, - flag: typeof options['flag'] !== 'undefined' ? options['flag'] : defFlag, - mode: normalizeMode(options['mode'], defMode) - }; - case 'string': - return { - encoding: options, - flag: defFlag, - mode: defMode - }; - default: - return { - encoding: defEnc, - flag: defFlag, - mode: defMode - }; - } - } - /** - * The default callback is a NOP. - * @hidden - * @private - */ - function nopCb() { - // NOP. - } - /** - * The node frontend to all filesystems. - * This layer handles: - * - * * Sanity checking inputs. - * * Normalizing paths. - * * Resetting stack depth for asynchronous operations which may not go through - * the browser by wrapping all input callbacks using `setImmediate`. - * * Performing the requested operation through the filesystem or the file - * descriptor, as appropriate. - * * Handling optional arguments and setting default arguments. - * @see http://nodejs.org/api/fs.html - */ - var FS = function FS() { - /* tslint:enable:variable-name */ - this.F_OK = 0; - this.R_OK = 4; - this.W_OK = 2; - this.X_OK = 1; - this.root = null; - this.fdMap = {}; - this.nextFd = 100; - }; - FS.prototype.initialize = function initialize (rootFS) { - if (!rootFS.constructor.isAvailable()) { - throw new ApiError(ErrorCode.EINVAL, 'Tried to instantiate BrowserFS with an unavailable file system.'); - } - return this.root = rootFS; - }; - /** - * converts Date or number to a fractional UNIX timestamp - * Grabbed from NodeJS sources (lib/fs.js) - */ - FS.prototype._toUnixTimestamp = function _toUnixTimestamp (time) { - if (typeof time === 'number') { - return time; - } - else if (time instanceof Date) { - return time.getTime() / 1000; - } - throw new Error("Cannot parse time: " + time); - }; - /** - * **NONSTANDARD**: Grab the FileSystem instance that backs this API. - * @return [BrowserFS.FileSystem | null] Returns null if the file system has - * not been initialized. - */ - FS.prototype.getRootFS = function getRootFS () { - if (this.root) { - return this.root; - } - else { - return null; - } - }; - // FILE OR DIRECTORY METHODS - /** - * Asynchronous rename. No arguments other than a possible exception are given - * to the completion callback. - * @param oldPath - * @param newPath - * @param callback - */ - FS.prototype.rename = function rename (oldPath, newPath, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - assertRoot(this.root).rename(normalizePath(oldPath), normalizePath(newPath), newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous rename. - * @param oldPath - * @param newPath - */ - FS.prototype.renameSync = function renameSync (oldPath, newPath) { - assertRoot(this.root).renameSync(normalizePath(oldPath), normalizePath(newPath)); - }; - /** - * Test whether or not the given path exists by checking with the file system. - * Then call the callback argument with either true or false. - * @example Sample invocation - * fs.exists('/etc/passwd', function (exists) { - * util.debug(exists ? "it's there" : "no passwd!"); - * }); - * @param path - * @param callback - */ - FS.prototype.exists = function exists (path$$1, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - return assertRoot(this.root).exists(normalizePath(path$$1), newCb); - } - catch (e) { - // Doesn't return an error. If something bad happens, we assume it just - // doesn't exist. - return newCb(false); - } - }; - /** - * Test whether or not the given path exists by checking with the file system. - * @param path - * @return [boolean] - */ - FS.prototype.existsSync = function existsSync (path$$1) { - try { - return assertRoot(this.root).existsSync(normalizePath(path$$1)); - } - catch (e) { - // Doesn't return an error. If something bad happens, we assume it just - // doesn't exist. - return false; - } - }; - /** - * Asynchronous `stat`. - * @param path - * @param callback - */ - FS.prototype.stat = function stat (path$$1, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 2); - try { - return assertRoot(this.root).stat(normalizePath(path$$1), false, newCb); - } - catch (e) { - return newCb(e); - } - }; - /** - * Synchronous `stat`. - * @param path - * @return [BrowserFS.node.fs.Stats] - */ - FS.prototype.statSync = function statSync (path$$1) { - return assertRoot(this.root).statSync(normalizePath(path$$1), false); - }; - /** - * Asynchronous `lstat`. - * `lstat()` is identical to `stat()`, except that if path is a symbolic link, - * then the link itself is stat-ed, not the file that it refers to. - * @param path - * @param callback - */ - FS.prototype.lstat = function lstat (path$$1, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 2); - try { - return assertRoot(this.root).stat(normalizePath(path$$1), true, newCb); - } - catch (e) { - return newCb(e); - } - }; - /** - * Synchronous `lstat`. - * `lstat()` is identical to `stat()`, except that if path is a symbolic link, - * then the link itself is stat-ed, not the file that it refers to. - * @param path - * @return [BrowserFS.node.fs.Stats] - */ - FS.prototype.lstatSync = function lstatSync (path$$1) { - return assertRoot(this.root).statSync(normalizePath(path$$1), true); - }; - FS.prototype.truncate = function truncate (path$$1, arg2, cb) { - if ( arg2 === void 0 ) arg2 = 0; - if ( cb === void 0 ) cb = nopCb; - - var len = 0; - if (typeof arg2 === 'function') { - cb = arg2; - } - else if (typeof arg2 === 'number') { - len = arg2; - } - var newCb = wrapCb(cb, 1); - try { - if (len < 0) { - throw new ApiError(ErrorCode.EINVAL); - } - return assertRoot(this.root).truncate(normalizePath(path$$1), len, newCb); - } - catch (e) { - return newCb(e); - } - }; - /** - * Synchronous `truncate`. - * @param path - * @param len - */ - FS.prototype.truncateSync = function truncateSync (path$$1, len) { - if ( len === void 0 ) len = 0; - - if (len < 0) { - throw new ApiError(ErrorCode.EINVAL); - } - return assertRoot(this.root).truncateSync(normalizePath(path$$1), len); - }; - /** - * Asynchronous `unlink`. - * @param path - * @param callback - */ - FS.prototype.unlink = function unlink (path$$1, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - return assertRoot(this.root).unlink(normalizePath(path$$1), newCb); - } - catch (e) { - return newCb(e); - } - }; - /** - * Synchronous `unlink`. - * @param path - */ - FS.prototype.unlinkSync = function unlinkSync (path$$1) { - return assertRoot(this.root).unlinkSync(normalizePath(path$$1)); - }; - FS.prototype.open = function open (path$$1, flag, arg2, cb) { - var this$1 = this; - if ( cb === void 0 ) cb = nopCb; - - var mode = normalizeMode(arg2, 0x1a4); - cb = typeof arg2 === 'function' ? arg2 : cb; - var newCb = wrapCb(cb, 2); - try { - assertRoot(this.root).open(normalizePath(path$$1), FileFlag.getFileFlag(flag), mode, function (e, file) { - if (file) { - newCb(e, this$1.getFdForFile(file)); - } - else { - newCb(e); - } - }); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous file open. - * @see http://www.manpagez.com/man/2/open/ - * @param path - * @param flags - * @param mode defaults to `0644` - * @return [BrowserFS.File] - */ - FS.prototype.openSync = function openSync (path$$1, flag, mode) { - if ( mode === void 0 ) mode = 0x1a4; - - return this.getFdForFile(assertRoot(this.root).openSync(normalizePath(path$$1), FileFlag.getFileFlag(flag), normalizeMode(mode, 0x1a4))); - }; - FS.prototype.readFile = function readFile (filename, arg2, cb) { - if ( arg2 === void 0 ) arg2 = {}; - if ( cb === void 0 ) cb = nopCb; - - var options = normalizeOptions(arg2, null, 'r', null); - cb = typeof arg2 === 'function' ? arg2 : cb; - var newCb = wrapCb(cb, 2); - try { - var flag = FileFlag.getFileFlag(options['flag']); - if (!flag.isReadable()) { - return newCb(new ApiError(ErrorCode.EINVAL, 'Flag passed to readFile must allow for reading.')); - } - return assertRoot(this.root).readFile(normalizePath(filename), options.encoding, flag, newCb); - } - catch (e) { - return newCb(e); - } - }; - FS.prototype.readFileSync = function readFileSync (filename, arg2) { - if ( arg2 === void 0 ) arg2 = {}; - - var options = normalizeOptions(arg2, null, 'r', null); - var flag = FileFlag.getFileFlag(options.flag); - if (!flag.isReadable()) { - throw new ApiError(ErrorCode.EINVAL, 'Flag passed to readFile must allow for reading.'); - } - return assertRoot(this.root).readFileSync(normalizePath(filename), options.encoding, flag); - }; - FS.prototype.writeFile = function writeFile (filename, data, arg3, cb) { - if ( arg3 === void 0 ) arg3 = {}; - if ( cb === void 0 ) cb = nopCb; - - var options = normalizeOptions(arg3, 'utf8', 'w', 0x1a4); - cb = typeof arg3 === 'function' ? arg3 : cb; - var newCb = wrapCb(cb, 1); - try { - var flag = FileFlag.getFileFlag(options.flag); - if (!flag.isWriteable()) { - return newCb(new ApiError(ErrorCode.EINVAL, 'Flag passed to writeFile must allow for writing.')); - } - return assertRoot(this.root).writeFile(normalizePath(filename), data, options.encoding, flag, options.mode, newCb); - } - catch (e) { - return newCb(e); - } - }; - FS.prototype.writeFileSync = function writeFileSync (filename, data, arg3) { - var options = normalizeOptions(arg3, 'utf8', 'w', 0x1a4); - var flag = FileFlag.getFileFlag(options.flag); - if (!flag.isWriteable()) { - throw new ApiError(ErrorCode.EINVAL, 'Flag passed to writeFile must allow for writing.'); - } - return assertRoot(this.root).writeFileSync(normalizePath(filename), data, options.encoding, flag, options.mode); - }; - FS.prototype.appendFile = function appendFile (filename, data, arg3, cb) { - if ( cb === void 0 ) cb = nopCb; - - var options = normalizeOptions(arg3, 'utf8', 'a', 0x1a4); - cb = typeof arg3 === 'function' ? arg3 : cb; - var newCb = wrapCb(cb, 1); - try { - var flag = FileFlag.getFileFlag(options.flag); - if (!flag.isAppendable()) { - return newCb(new ApiError(ErrorCode.EINVAL, 'Flag passed to appendFile must allow for appending.')); - } - assertRoot(this.root).appendFile(normalizePath(filename), data, options.encoding, flag, options.mode, newCb); - } - catch (e) { - newCb(e); - } - }; - FS.prototype.appendFileSync = function appendFileSync (filename, data, arg3) { - var options = normalizeOptions(arg3, 'utf8', 'a', 0x1a4); - var flag = FileFlag.getFileFlag(options.flag); - if (!flag.isAppendable()) { - throw new ApiError(ErrorCode.EINVAL, 'Flag passed to appendFile must allow for appending.'); - } - return assertRoot(this.root).appendFileSync(normalizePath(filename), data, options.encoding, flag, options.mode); - }; - // FILE DESCRIPTOR METHODS - /** - * Asynchronous `fstat`. - * `fstat()` is identical to `stat()`, except that the file to be stat-ed is - * specified by the file descriptor `fd`. - * @param fd - * @param callback - */ - FS.prototype.fstat = function fstat (fd, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 2); - try { - var file = this.fd2file(fd); - file.stat(newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `fstat`. - * `fstat()` is identical to `stat()`, except that the file to be stat-ed is - * specified by the file descriptor `fd`. - * @param fd - * @return [BrowserFS.node.fs.Stats] - */ - FS.prototype.fstatSync = function fstatSync (fd) { - return this.fd2file(fd).statSync(); - }; - /** - * Asynchronous close. - * @param fd - * @param callback - */ - FS.prototype.close = function close (fd, cb) { - var this$1 = this; - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - this.fd2file(fd).close(function (e) { - if (!e) { - this$1.closeFd(fd); - } - newCb(e); - }); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous close. - * @param fd - */ - FS.prototype.closeSync = function closeSync (fd) { - this.fd2file(fd).closeSync(); - this.closeFd(fd); - }; - FS.prototype.ftruncate = function ftruncate (fd, arg2, cb) { - if ( cb === void 0 ) cb = nopCb; - - var length = typeof arg2 === 'number' ? arg2 : 0; - cb = typeof arg2 === 'function' ? arg2 : cb; - var newCb = wrapCb(cb, 1); - try { - var file = this.fd2file(fd); - if (length < 0) { - throw new ApiError(ErrorCode.EINVAL); - } - file.truncate(length, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous ftruncate. - * @param fd - * @param len - */ - FS.prototype.ftruncateSync = function ftruncateSync (fd, len) { - if ( len === void 0 ) len = 0; - - var file = this.fd2file(fd); - if (len < 0) { - throw new ApiError(ErrorCode.EINVAL); - } - file.truncateSync(len); - }; - /** - * Asynchronous fsync. - * @param fd - * @param callback - */ - FS.prototype.fsync = function fsync (fd, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - this.fd2file(fd).sync(newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous fsync. - * @param fd - */ - FS.prototype.fsyncSync = function fsyncSync (fd) { - this.fd2file(fd).syncSync(); - }; - /** - * Asynchronous fdatasync. - * @param fd - * @param callback - */ - FS.prototype.fdatasync = function fdatasync (fd, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - this.fd2file(fd).datasync(newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous fdatasync. - * @param fd - */ - FS.prototype.fdatasyncSync = function fdatasyncSync (fd) { - this.fd2file(fd).datasyncSync(); - }; - FS.prototype.write = function write (fd, arg2, arg3, arg4, arg5, cb) { - if ( cb === void 0 ) cb = nopCb; - - var buffer$$1, offset, length, position = null; - if (typeof arg2 === 'string') { - // Signature 1: (fd, string, [position?, [encoding?]], cb?) - var encoding = 'utf8'; - switch (typeof arg3) { - case 'function': - // (fd, string, cb) - cb = arg3; - break; - case 'number': - // (fd, string, position, encoding?, cb?) - position = arg3; - encoding = typeof arg4 === 'string' ? arg4 : 'utf8'; - cb = typeof arg5 === 'function' ? arg5 : cb; - break; - default: - // ...try to find the callback and get out of here! - cb = typeof arg4 === 'function' ? arg4 : typeof arg5 === 'function' ? arg5 : cb; - return cb(new ApiError(ErrorCode.EINVAL, 'Invalid arguments.')); - } - buffer$$1 = Buffer.from(arg2, encoding); - offset = 0; - length = buffer$$1.length; - } - else { - // Signature 2: (fd, buffer, offset, length, position?, cb?) - buffer$$1 = arg2; - offset = arg3; - length = arg4; - position = typeof arg5 === 'number' ? arg5 : null; - cb = typeof arg5 === 'function' ? arg5 : cb; - } - var newCb = wrapCb(cb, 3); - try { - var file = this.fd2file(fd); - if (position === undefined || position === null) { - position = file.getPos(); - } - file.write(buffer$$1, offset, length, position, newCb); - } - catch (e) { - newCb(e); - } - }; - FS.prototype.writeSync = function writeSync (fd, arg2, arg3, arg4, arg5) { - var buffer$$1, offset = 0, length, position; - if (typeof arg2 === 'string') { - // Signature 1: (fd, string, [position?, [encoding?]]) - position = typeof arg3 === 'number' ? arg3 : null; - var encoding = typeof arg4 === 'string' ? arg4 : 'utf8'; - offset = 0; - buffer$$1 = Buffer.from(arg2, encoding); - length = buffer$$1.length; - } - else { - // Signature 2: (fd, buffer, offset, length, position?) - buffer$$1 = arg2; - offset = arg3; - length = arg4; - position = typeof arg5 === 'number' ? arg5 : null; - } - var file = this.fd2file(fd); - if (position === undefined || position === null) { - position = file.getPos(); - } - return file.writeSync(buffer$$1, offset, length, position); - }; - FS.prototype.read = function read (fd, arg2, arg3, arg4, arg5, cb) { - if ( cb === void 0 ) cb = nopCb; - - var position, offset, length, buffer$$1, newCb; - if (typeof arg2 === 'number') { - // legacy interface - // (fd, length, position, encoding, callback) - length = arg2; - position = arg3; - var encoding = arg4; - cb = typeof arg5 === 'function' ? arg5 : cb; - offset = 0; - buffer$$1 = Buffer.alloc(length); - // XXX: Inefficient. - // Wrap the cb so we shelter upper layers of the API from these - // shenanigans. - newCb = wrapCb(function (err, bytesRead, buf) { - if (err) { - return cb(err); - } - cb(err, buf.toString(encoding), bytesRead); - }, 3); - } - else { - buffer$$1 = arg2; - offset = arg3; - length = arg4; - position = arg5; - newCb = wrapCb(cb, 3); - } - try { - var file = this.fd2file(fd); - if (position === undefined || position === null) { - position = file.getPos(); - } - file.read(buffer$$1, offset, length, position, newCb); - } - catch (e) { - newCb(e); - } - }; - FS.prototype.readSync = function readSync (fd, arg2, arg3, arg4, arg5) { - var shenanigans = false; - var buffer$$1, offset, length, position, encoding = 'utf8'; - if (typeof arg2 === 'number') { - length = arg2; - position = arg3; - encoding = arg4; - offset = 0; - buffer$$1 = Buffer.alloc(length); - shenanigans = true; - } - else { - buffer$$1 = arg2; - offset = arg3; - length = arg4; - position = arg5; - } - var file = this.fd2file(fd); - if (position === undefined || position === null) { - position = file.getPos(); - } - var rv = file.readSync(buffer$$1, offset, length, position); - if (!shenanigans) { - return rv; - } - else { - return [buffer$$1.toString(encoding), rv]; - } - }; - /** - * Asynchronous `fchown`. - * @param fd - * @param uid - * @param gid - * @param callback - */ - FS.prototype.fchown = function fchown (fd, uid, gid, callback) { - if ( callback === void 0 ) callback = nopCb; - - var newCb = wrapCb(callback, 1); - try { - this.fd2file(fd).chown(uid, gid, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `fchown`. - * @param fd - * @param uid - * @param gid - */ - FS.prototype.fchownSync = function fchownSync (fd, uid, gid) { - this.fd2file(fd).chownSync(uid, gid); - }; - /** - * Asynchronous `fchmod`. - * @param fd - * @param mode - * @param callback - */ - FS.prototype.fchmod = function fchmod (fd, mode, cb) { - var newCb = wrapCb(cb, 1); - try { - var numMode = typeof mode === 'string' ? parseInt(mode, 8) : mode; - this.fd2file(fd).chmod(numMode, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `fchmod`. - * @param fd - * @param mode - */ - FS.prototype.fchmodSync = function fchmodSync (fd, mode) { - var numMode = typeof mode === 'string' ? parseInt(mode, 8) : mode; - this.fd2file(fd).chmodSync(numMode); - }; - /** - * Change the file timestamps of a file referenced by the supplied file - * descriptor. - * @param fd - * @param atime - * @param mtime - * @param callback - */ - FS.prototype.futimes = function futimes (fd, atime, mtime, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - var file = this.fd2file(fd); - if (typeof atime === 'number') { - atime = new Date(atime * 1000); - } - if (typeof mtime === 'number') { - mtime = new Date(mtime * 1000); - } - file.utimes(atime, mtime, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Change the file timestamps of a file referenced by the supplied file - * descriptor. - * @param fd - * @param atime - * @param mtime - */ - FS.prototype.futimesSync = function futimesSync (fd, atime, mtime) { - this.fd2file(fd).utimesSync(normalizeTime(atime), normalizeTime(mtime)); - }; - // DIRECTORY-ONLY METHODS - /** - * Asynchronous `rmdir`. - * @param path - * @param callback - */ - FS.prototype.rmdir = function rmdir (path$$1, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).rmdir(path$$1, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `rmdir`. - * @param path - */ - FS.prototype.rmdirSync = function rmdirSync (path$$1) { - path$$1 = normalizePath(path$$1); - return assertRoot(this.root).rmdirSync(path$$1); - }; - /** - * Asynchronous `mkdir`. - * @param path - * @param mode defaults to `0777` - * @param callback - */ - FS.prototype.mkdir = function mkdir (path$$1, mode, cb) { - if ( cb === void 0 ) cb = nopCb; - - if (typeof mode === 'function') { - cb = mode; - mode = 0x1ff; - } - var newCb = wrapCb(cb, 1); - try { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).mkdir(path$$1, mode, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `mkdir`. - * @param path - * @param mode defaults to `0777` - */ - FS.prototype.mkdirSync = function mkdirSync (path$$1, mode) { - assertRoot(this.root).mkdirSync(normalizePath(path$$1), normalizeMode(mode, 0x1ff)); - }; - /** - * Asynchronous `readdir`. Reads the contents of a directory. - * The callback gets two arguments `(err, files)` where `files` is an array of - * the names of the files in the directory excluding `'.'` and `'..'`. - * @param path - * @param callback - */ - FS.prototype.readdir = function readdir (path$$1, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 2); - try { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).readdir(path$$1, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `readdir`. Reads the contents of a directory. - * @param path - * @return [String[]] - */ - FS.prototype.readdirSync = function readdirSync (path$$1) { - path$$1 = normalizePath(path$$1); - return assertRoot(this.root).readdirSync(path$$1); - }; - // SYMLINK METHODS - /** - * Asynchronous `link`. - * @param srcpath - * @param dstpath - * @param callback - */ - FS.prototype.link = function link (srcpath, dstpath, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - srcpath = normalizePath(srcpath); - dstpath = normalizePath(dstpath); - assertRoot(this.root).link(srcpath, dstpath, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `link`. - * @param srcpath - * @param dstpath - */ - FS.prototype.linkSync = function linkSync (srcpath, dstpath) { - srcpath = normalizePath(srcpath); - dstpath = normalizePath(dstpath); - return assertRoot(this.root).linkSync(srcpath, dstpath); - }; - FS.prototype.symlink = function symlink (srcpath, dstpath, arg3, cb) { - if ( cb === void 0 ) cb = nopCb; - - var type = typeof arg3 === 'string' ? arg3 : 'file'; - cb = typeof arg3 === 'function' ? arg3 : cb; - var newCb = wrapCb(cb, 1); - try { - if (type !== 'file' && type !== 'dir') { - return newCb(new ApiError(ErrorCode.EINVAL, "Invalid type: " + type)); - } - srcpath = normalizePath(srcpath); - dstpath = normalizePath(dstpath); - assertRoot(this.root).symlink(srcpath, dstpath, type, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `symlink`. - * @param srcpath - * @param dstpath - * @param type can be either `'dir'` or `'file'` (default is `'file'`) - */ - FS.prototype.symlinkSync = function symlinkSync (srcpath, dstpath, type) { - if (!type) { - type = 'file'; - } - else if (type !== 'file' && type !== 'dir') { - throw new ApiError(ErrorCode.EINVAL, "Invalid type: " + type); - } - srcpath = normalizePath(srcpath); - dstpath = normalizePath(dstpath); - return assertRoot(this.root).symlinkSync(srcpath, dstpath, type); - }; - /** - * Asynchronous readlink. - * @param path - * @param callback - */ - FS.prototype.readlink = function readlink (path$$1, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 2); - try { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).readlink(path$$1, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous readlink. - * @param path - * @return [String] - */ - FS.prototype.readlinkSync = function readlinkSync (path$$1) { - path$$1 = normalizePath(path$$1); - return assertRoot(this.root).readlinkSync(path$$1); - }; - // PROPERTY OPERATIONS - /** - * Asynchronous `chown`. - * @param path - * @param uid - * @param gid - * @param callback - */ - FS.prototype.chown = function chown (path$$1, uid, gid, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).chown(path$$1, false, uid, gid, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `chown`. - * @param path - * @param uid - * @param gid - */ - FS.prototype.chownSync = function chownSync (path$$1, uid, gid) { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).chownSync(path$$1, false, uid, gid); - }; - /** - * Asynchronous `lchown`. - * @param path - * @param uid - * @param gid - * @param callback - */ - FS.prototype.lchown = function lchown (path$$1, uid, gid, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).chown(path$$1, true, uid, gid, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `lchown`. - * @param path - * @param uid - * @param gid - */ - FS.prototype.lchownSync = function lchownSync (path$$1, uid, gid) { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).chownSync(path$$1, true, uid, gid); - }; - /** - * Asynchronous `chmod`. - * @param path - * @param mode - * @param callback - */ - FS.prototype.chmod = function chmod (path$$1, mode, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - var numMode = normalizeMode(mode, -1); - if (numMode < 0) { - throw new ApiError(ErrorCode.EINVAL, "Invalid mode."); - } - assertRoot(this.root).chmod(normalizePath(path$$1), false, numMode, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `chmod`. - * @param path - * @param mode - */ - FS.prototype.chmodSync = function chmodSync (path$$1, mode) { - var numMode = normalizeMode(mode, -1); - if (numMode < 0) { - throw new ApiError(ErrorCode.EINVAL, "Invalid mode."); - } - path$$1 = normalizePath(path$$1); - assertRoot(this.root).chmodSync(path$$1, false, numMode); - }; - /** - * Asynchronous `lchmod`. - * @param path - * @param mode - * @param callback - */ - FS.prototype.lchmod = function lchmod (path$$1, mode, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - var numMode = normalizeMode(mode, -1); - if (numMode < 0) { - throw new ApiError(ErrorCode.EINVAL, "Invalid mode."); - } - assertRoot(this.root).chmod(normalizePath(path$$1), true, numMode, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `lchmod`. - * @param path - * @param mode - */ - FS.prototype.lchmodSync = function lchmodSync (path$$1, mode) { - var numMode = normalizeMode(mode, -1); - if (numMode < 1) { - throw new ApiError(ErrorCode.EINVAL, "Invalid mode."); - } - assertRoot(this.root).chmodSync(normalizePath(path$$1), true, numMode); - }; - /** - * Change file timestamps of the file referenced by the supplied path. - * @param path - * @param atime - * @param mtime - * @param callback - */ - FS.prototype.utimes = function utimes (path$$1, atime, mtime, cb) { - if ( cb === void 0 ) cb = nopCb; - - var newCb = wrapCb(cb, 1); - try { - assertRoot(this.root).utimes(normalizePath(path$$1), normalizeTime(atime), normalizeTime(mtime), newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Change file timestamps of the file referenced by the supplied path. - * @param path - * @param atime - * @param mtime - */ - FS.prototype.utimesSync = function utimesSync (path$$1, atime, mtime) { - assertRoot(this.root).utimesSync(normalizePath(path$$1), normalizeTime(atime), normalizeTime(mtime)); - }; - FS.prototype.realpath = function realpath (path$$1, arg2, cb) { - if ( cb === void 0 ) cb = nopCb; - - var cache = typeof (arg2) === 'object' ? arg2 : {}; - cb = typeof (arg2) === 'function' ? arg2 : nopCb; - var newCb = wrapCb(cb, 2); - try { - path$$1 = normalizePath(path$$1); - assertRoot(this.root).realpath(path$$1, cache, newCb); - } - catch (e) { - newCb(e); - } - }; - /** - * Synchronous `realpath`. - * @param path - * @param cache An object literal of mapped paths that can be used to - * force a specific path resolution or avoid additional `fs.stat` calls for - * known real paths. - * @return [String] - */ - FS.prototype.realpathSync = function realpathSync (path$$1, cache) { - if ( cache === void 0 ) cache = {}; - - path$$1 = normalizePath(path$$1); - return assertRoot(this.root).realpathSync(path$$1, cache); - }; - FS.prototype.watchFile = function watchFile (filename, arg2, listener) { - if ( listener === void 0 ) listener = nopCb; - - throw new ApiError(ErrorCode.ENOTSUP); - }; - FS.prototype.unwatchFile = function unwatchFile (filename, listener) { - if ( listener === void 0 ) listener = nopCb; - - throw new ApiError(ErrorCode.ENOTSUP); - }; - FS.prototype.watch = function watch (filename, arg2, listener) { - if ( listener === void 0 ) listener = nopCb; - - throw new ApiError(ErrorCode.ENOTSUP); - }; - FS.prototype.access = function access (path$$1, arg2, cb) { - if ( cb === void 0 ) cb = nopCb; - - throw new ApiError(ErrorCode.ENOTSUP); - }; - FS.prototype.accessSync = function accessSync (path$$1, mode) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - FS.prototype.createReadStream = function createReadStream (path$$1, options) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - FS.prototype.createWriteStream = function createWriteStream (path$$1, options) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - /** - * For unit testing. Passes all incoming callbacks to cbWrapper for wrapping. - */ - FS.prototype.wrapCallbacks = function wrapCallbacks (cbWrapper) { - wrapCb = cbWrapper; - }; - FS.prototype.getFdForFile = function getFdForFile (file) { - var fd = this.nextFd++; - this.fdMap[fd] = file; - return fd; - }; - FS.prototype.fd2file = function fd2file (fd) { - var rv = this.fdMap[fd]; - if (rv) { - return rv; - } - else { - throw new ApiError(ErrorCode.EBADF, 'Invalid file descriptor.'); - } - }; - FS.prototype.closeFd = function closeFd (fd) { - delete this.fdMap[fd]; - }; - - /* tslint:disable:variable-name */ - // Exported fs.Stats. - FS.Stats = Stats; - - // Manually export the individual public functions of fs. - // Required because some code will invoke functions off of the module. - // e.g.: - // let writeFile = fs.writeFile; - // writeFile(...) - /** - * @hidden - */ - var fs = new FS(); - /** - * @hidden - */ - var _fsMock = {}; - /** - * @hidden - */ - var fsProto = FS.prototype; - Object.keys(fsProto).forEach(function (key) { - if (typeof fs[key] === 'function') { - _fsMock[key] = function () { - return fs[key].apply(fs, arguments); - }; - } - else { - _fsMock[key] = fs[key]; - } - }); - _fsMock['changeFSModule'] = function (newFs) { - fs = newFs; - }; - _fsMock['getFSModule'] = function () { - return fs; - }; - _fsMock['FS'] = FS; - - /* - * Levenshtein distance, from the `js-levenshtein` NPM module. - * Copied here to avoid complexity of adding another CommonJS module dependency. - */ - function _min(d0, d1, d2, bx, ay) { - return d0 < d1 || d2 < d1 - ? d0 > d2 - ? d2 + 1 - : d0 + 1 - : bx === ay - ? d1 - : d1 + 1; - } - /** - * Calculates levenshtein distance. - * @param a - * @param b - */ - function levenshtein(a, b) { - if (a === b) { - return 0; - } - if (a.length > b.length) { - var tmp = a; - a = b; - b = tmp; - } - var la = a.length; - var lb = b.length; - while (la > 0 && (a.charCodeAt(la - 1) === b.charCodeAt(lb - 1))) { - la--; - lb--; - } - var offset = 0; - while (offset < la && (a.charCodeAt(offset) === b.charCodeAt(offset))) { - offset++; - } - la -= offset; - lb -= offset; - if (la === 0 || lb === 1) { - return lb; - } - var vector = new Array(la << 1); - for (var y = 0; y < la;) { - vector[la + y] = a.charCodeAt(offset + y); - vector[y] = ++y; - } - var x; - var d0; - var d1; - var d2; - var d3; - for (x = 0; (x + 3) < lb;) { - var bx0 = b.charCodeAt(offset + (d0 = x)); - var bx1 = b.charCodeAt(offset + (d1 = x + 1)); - var bx2 = b.charCodeAt(offset + (d2 = x + 2)); - var bx3 = b.charCodeAt(offset + (d3 = x + 3)); - var dd$1 = (x += 4); - for (var y$1 = 0; y$1 < la;) { - var ay = vector[la + y$1]; - var dy = vector[y$1]; - d0 = _min(dy, d0, d1, bx0, ay); - d1 = _min(d0, d1, d2, bx1, ay); - d2 = _min(d1, d2, d3, bx2, ay); - dd$1 = _min(d2, d3, dd$1, bx3, ay); - vector[y$1++] = dd$1; - d3 = d2; - d2 = d1; - d1 = d0; - d0 = dy; - } - } - var dd = 0; - for (; x < lb;) { - var bx0$1 = b.charCodeAt(offset + (d0 = x)); - dd = ++x; - for (var y$2 = 0; y$2 < la; y$2++) { - var dy$1 = vector[y$2]; - vector[y$2] = dd = dy$1 < d0 || dd < d0 - ? dy$1 > dd ? dd + 1 : dy$1 + 1 - : bx0$1 === vector[la + y$2] - ? d0 - : d0 + 1; - d0 = dy$1; - } - } - return dd; - } - - function deprecationMessage(print, fsName, opts) { - if (print) { - console.warn(("[" + fsName + "] Direct file system constructor usage is deprecated for this file system, and will be removed in the next major version. Please use the '" + fsName + ".Create(" + (JSON.stringify(opts)) + ", callback)' method instead. See https://github.com/jvilk/BrowserFS/issues/176 for more details.")); - } - } - /** - * Checks for any IE version, including IE11 which removed MSIE from the - * userAgent string. - * @hidden - */ - var isIE = typeof navigator !== "undefined" && !!(/(msie) ([\w.]+)/.exec(navigator.userAgent.toLowerCase()) || navigator.userAgent.indexOf('Trident') !== -1); - /** - * Check if we're in a web worker. - * @hidden - */ - var isWebWorker = typeof window === "undefined"; - /** - * Throws an exception. Called on code paths that should be impossible. - * @hidden - */ - function fail() { - throw new Error("BFS has reached an impossible code path; please file a bug."); - } - /** - * Synchronous recursive makedir. - * @hidden - */ - function mkdirpSync(p, mode, fs) { - if (!fs.existsSync(p)) { - mkdirpSync(path.dirname(p), mode, fs); - fs.mkdirSync(p, mode); - } - } - /** - * Converts a buffer into an array buffer. Attempts to do so in a - * zero-copy manner, e.g. the array references the same memory. - * @hidden - */ - function buffer2ArrayBuffer(buff) { - var u8 = buffer2Uint8array(buff), u8offset = u8.byteOffset, u8Len = u8.byteLength; - if (u8offset === 0 && u8Len === u8.buffer.byteLength) { - return u8.buffer; - } - else { - return u8.buffer.slice(u8offset, u8offset + u8Len); - } - } - /** - * Converts a buffer into a Uint8Array. Attempts to do so in a - * zero-copy manner, e.g. the array references the same memory. - * @hidden - */ - function buffer2Uint8array(buff) { - if (buff instanceof Uint8Array) { - // BFS & Node v4.0 buffers *are* Uint8Arrays. - return buff; - } - else { - // Uint8Arrays can be constructed from arrayish numbers. - // At this point, we assume this isn't a BFS array. - return new Uint8Array(buff); - } - } - /** - * Converts the given arrayish object into a Buffer. Attempts to - * be zero-copy. - * @hidden - */ - function arrayish2Buffer(arr) { - if (arr instanceof Buffer) { - return arr; - } - else if (arr instanceof Uint8Array) { - return uint8Array2Buffer(arr); - } - else { - return Buffer.from(arr); - } - } - /** - * Converts the given Uint8Array into a Buffer. Attempts to be zero-copy. - * @hidden - */ - function uint8Array2Buffer(u8) { - if (u8 instanceof Buffer) { - return u8; - } - else if (u8.byteOffset === 0 && u8.byteLength === u8.buffer.byteLength) { - return arrayBuffer2Buffer(u8.buffer); - } - else { - return Buffer.from(u8.buffer, u8.byteOffset, u8.byteLength); - } - } - /** - * Converts the given array buffer into a Buffer. Attempts to be - * zero-copy. - * @hidden - */ - function arrayBuffer2Buffer(ab) { - return Buffer.from(ab); - } - /** - * Copies a slice of the given buffer - * @hidden - */ - function copyingSlice(buff, start, end) { - if ( start === void 0 ) start = 0; - if ( end === void 0 ) end = buff.length; - - if (start < 0 || end < 0 || end > buff.length || start > end) { - throw new TypeError(("Invalid slice bounds on buffer of length " + (buff.length) + ": [" + start + ", " + end + "]")); - } - if (buff.length === 0) { - // Avoid s0 corner case in ArrayBuffer case. - return emptyBuffer(); - } - else { - var u8 = buffer2Uint8array(buff), s0 = buff[0], newS0 = (s0 + 1) % 0xFF; - buff[0] = newS0; - if (u8[0] === newS0) { - // Same memory. Revert & copy. - u8[0] = s0; - return uint8Array2Buffer(u8.slice(start, end)); - } - else { - // Revert. - buff[0] = s0; - return uint8Array2Buffer(u8.subarray(start, end)); - } - } - } - /** - * @hidden - */ - var emptyBuff = null; - /** - * Returns an empty buffer. - * @hidden - */ - function emptyBuffer() { - if (emptyBuff) { - return emptyBuff; - } - return emptyBuff = Buffer.alloc(0); - } - /** - * Option validator for a Buffer file system option. - * @hidden - */ - function bufferValidator(v, cb) { - if (Buffer.isBuffer(v)) { - cb(); - } - else { - cb(new ApiError(ErrorCode.EINVAL, "option must be a Buffer.")); - } - } - /** - * Checks that the given options object is valid for the file system options. - * @hidden - */ - function checkOptions(fsType, opts, cb) { - var optsInfo = fsType.Options; - var fsName = fsType.Name; - var pendingValidators = 0; - var callbackCalled = false; - var loopEnded = false; - function validatorCallback(e) { - if (!callbackCalled) { - if (e) { - callbackCalled = true; - cb(e); - } - pendingValidators--; - if (pendingValidators === 0 && loopEnded) { - cb(); - } - } - } - // Check for required options. - var loop = function ( optName ) { - if (optsInfo.hasOwnProperty(optName)) { - var opt = optsInfo[optName]; - var providedValue = opts[optName]; - if (providedValue === undefined || providedValue === null) { - if (!opt.optional) { - // Required option, not provided. - // Any incorrect options provided? Which ones are close to the provided one? - // (edit distance 5 === close) - var incorrectOptions = Object.keys(opts).filter(function (o) { return !(o in optsInfo); }).map(function (a) { - return { str: a, distance: levenshtein(optName, a) }; - }).filter(function (o) { return o.distance < 5; }).sort(function (a, b) { return a.distance - b.distance; }); - // Validators may be synchronous. - if (callbackCalled) { - return {}; - } - callbackCalled = true; - return { v: cb(new ApiError(ErrorCode.EINVAL, ("[" + fsName + "] Required option '" + optName + "' not provided." + (incorrectOptions.length > 0 ? (" You provided unrecognized option '" + (incorrectOptions[0].str) + "'; perhaps you meant to type '" + optName + "'.") : '') + "\nOption description: " + (opt.description)))) }; - } - // Else: Optional option, not provided. That is OK. - } - else { - // Option provided! Check type. - var typeMatches = false; - if (Array.isArray(opt.type)) { - typeMatches = opt.type.indexOf(typeof (providedValue)) !== -1; - } - else { - typeMatches = typeof (providedValue) === opt.type; - } - if (!typeMatches) { - // Validators may be synchronous. - if (callbackCalled) { - return {}; - } - callbackCalled = true; - return { v: cb(new ApiError(ErrorCode.EINVAL, ("[" + fsName + "] Value provided for option " + optName + " is not the proper type. Expected " + (Array.isArray(opt.type) ? ("one of {" + (opt.type.join(", ")) + "}") : opt.type) + ", but received " + (typeof (providedValue)) + "\nOption description: " + (opt.description)))) }; - } - else if (opt.validator) { - pendingValidators++; - opt.validator(providedValue, validatorCallback); - } - // Otherwise: All good! - } - } - }; - - for (var optName in optsInfo) { - var returned = loop( optName ); - - if ( returned ) return returned.v; - } - loopEnded = true; - if (pendingValidators === 0 && !callbackCalled) { - cb(); - } - } - - - var BFSUtils = Object.freeze({ - deprecationMessage: deprecationMessage, - isIE: isIE, - isWebWorker: isWebWorker, - fail: fail, - mkdirpSync: mkdirpSync, - buffer2ArrayBuffer: buffer2ArrayBuffer, - buffer2Uint8array: buffer2Uint8array, - arrayish2Buffer: arrayish2Buffer, - uint8Array2Buffer: uint8Array2Buffer, - arrayBuffer2Buffer: arrayBuffer2Buffer, - copyingSlice: copyingSlice, - emptyBuffer: emptyBuffer, - bufferValidator: bufferValidator, - checkOptions: checkOptions - }); - - var BFSEmscriptenStreamOps = function BFSEmscriptenStreamOps(fs) { - this.fs = fs; - this.nodefs = fs.getNodeFS(); - this.FS = fs.getFS(); - this.PATH = fs.getPATH(); - this.ERRNO_CODES = fs.getERRNO_CODES(); - }; - BFSEmscriptenStreamOps.prototype.open = function open (stream) { - var path$$1 = this.fs.realPath(stream.node); - var FS = this.FS; - try { - if (FS.isFile(stream.node.mode)) { - stream.nfd = this.nodefs.openSync(path$$1, this.fs.flagsToPermissionString(stream.flags)); - } - } - catch (e) { - if (!e.code) { - throw e; - } - throw new FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenStreamOps.prototype.close = function close (stream) { - var FS = this.FS; - try { - if (FS.isFile(stream.node.mode) && stream.nfd) { - this.nodefs.closeSync(stream.nfd); - } - } - catch (e) { - if (!e.code) { - throw e; - } - throw new FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenStreamOps.prototype.read = function read (stream, buffer$$1, offset, length, position) { - // Avoid copying overhead by reading directly into buffer. - try { - return this.nodefs.readSync(stream.nfd, uint8Array2Buffer(buffer$$1), offset, length, position); - } - catch (e) { - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenStreamOps.prototype.write = function write (stream, buffer$$1, offset, length, position) { - // Avoid copying overhead. - try { - return this.nodefs.writeSync(stream.nfd, uint8Array2Buffer(buffer$$1), offset, length, position); - } - catch (e) { - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenStreamOps.prototype.llseek = function llseek (stream, offset, whence) { - var position = offset; - if (whence === 1) { - position += stream.position; - } - else if (whence === 2) { - if (this.FS.isFile(stream.node.mode)) { - try { - var stat = this.nodefs.fstatSync(stream.nfd); - position += stat.size; - } - catch (e) { - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - } - } - if (position < 0) { - throw new this.FS.ErrnoError(this.ERRNO_CODES.EINVAL); - } - stream.position = position; - return position; - }; - var BFSEmscriptenNodeOps = function BFSEmscriptenNodeOps(fs) { - this.fs = fs; - this.nodefs = fs.getNodeFS(); - this.FS = fs.getFS(); - this.PATH = fs.getPATH(); - this.ERRNO_CODES = fs.getERRNO_CODES(); - }; - BFSEmscriptenNodeOps.prototype.getattr = function getattr (node) { - var path$$1 = this.fs.realPath(node); - var stat; - try { - stat = this.nodefs.lstatSync(path$$1); - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - 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 - }; - }; - BFSEmscriptenNodeOps.prototype.setattr = function setattr (node, attr) { - var path$$1 = this.fs.realPath(node); - try { - if (attr.mode !== undefined) { - this.nodefs.chmodSync(path$$1, attr.mode); - // update the common node structure mode as well - node.mode = attr.mode; - } - if (attr.timestamp !== undefined) { - var date = new Date(attr.timestamp); - this.nodefs.utimesSync(path$$1, date, date); - } - } - catch (e) { - if (!e.code) { - throw e; - } - // Ignore not supported errors. Emscripten does utimesSync when it - // writes files, but never really requires the value to be set. - if (e.code !== "ENOTSUP") { - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - } - if (attr.size !== undefined) { - try { - this.nodefs.truncateSync(path$$1, attr.size); - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - } - }; - BFSEmscriptenNodeOps.prototype.lookup = function lookup (parent, name) { - var path$$1 = this.PATH.join2(this.fs.realPath(parent), name); - var mode = this.fs.getMode(path$$1); - return this.fs.createNode(parent, name, mode); - }; - BFSEmscriptenNodeOps.prototype.mknod = function mknod (parent, name, mode, dev) { - var node = this.fs.createNode(parent, name, mode, dev); - // create the backing node for this in the fs root as well - var path$$1 = this.fs.realPath(node); - try { - if (this.FS.isDir(node.mode)) { - this.nodefs.mkdirSync(path$$1, node.mode); - } - else { - this.nodefs.writeFileSync(path$$1, '', { mode: node.mode }); - } - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - return node; - }; - BFSEmscriptenNodeOps.prototype.rename = function rename (oldNode, newDir, newName) { - var oldPath = this.fs.realPath(oldNode); - var newPath = this.PATH.join2(this.fs.realPath(newDir), newName); - try { - this.nodefs.renameSync(oldPath, newPath); - // This logic is missing from the original NodeFS, - // causing Emscripten's filesystem to think that the old file still exists. - oldNode.name = newName; - oldNode.parent = newDir; - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenNodeOps.prototype.unlink = function unlink (parent, name) { - var path$$1 = this.PATH.join2(this.fs.realPath(parent), name); - try { - this.nodefs.unlinkSync(path$$1); - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenNodeOps.prototype.rmdir = function rmdir (parent, name) { - var path$$1 = this.PATH.join2(this.fs.realPath(parent), name); - try { - this.nodefs.rmdirSync(path$$1); - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenNodeOps.prototype.readdir = function readdir (node) { - var path$$1 = this.fs.realPath(node); - try { - // Node does not list . and .. in directory listings, - // but Emscripten expects it. - var contents = this.nodefs.readdirSync(path$$1); - contents.push('.', '..'); - return contents; - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenNodeOps.prototype.symlink = function symlink (parent, newName, oldPath) { - var newPath = this.PATH.join2(this.fs.realPath(parent), newName); - try { - this.nodefs.symlinkSync(oldPath, newPath); - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - BFSEmscriptenNodeOps.prototype.readlink = function readlink (node) { - var path$$1 = this.fs.realPath(node); - try { - return this.nodefs.readlinkSync(path$$1); - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - }; - var BFSEmscriptenFS = function BFSEmscriptenFS(_FS, _PATH, _ERRNO_CODES, nodefs) { - if ( _FS === void 0 ) _FS = self['FS']; - if ( _PATH === void 0 ) _PATH = self['PATH']; - if ( _ERRNO_CODES === void 0 ) _ERRNO_CODES = self['ERRNO_CODES']; - if ( nodefs === void 0 ) nodefs = _fsMock; - - // This maps the integer permission modes from http://linux.die.net/man/3/open - // to node.js-specific file open permission strings at http://nodejs.org/api/fs.html#fs_fs_open_path_flags_mode_callback - this.flagsToPermissionStringMap = { - 0 /*O_RDONLY*/: 'r', - 1 /*O_WRONLY*/: 'r+', - 2 /*O_RDWR*/: 'r+', - 64 /*O_CREAT*/: 'r', - 65 /*O_WRONLY|O_CREAT*/: 'r+', - 66 /*O_RDWR|O_CREAT*/: 'r+', - 129 /*O_WRONLY|O_EXCL*/: 'rx+', - 193 /*O_WRONLY|O_CREAT|O_EXCL*/: 'rx+', - 514 /*O_RDWR|O_TRUNC*/: 'w+', - 577 /*O_WRONLY|O_CREAT|O_TRUNC*/: 'w', - 578 /*O_CREAT|O_RDWR|O_TRUNC*/: 'w+', - 705 /*O_WRONLY|O_CREAT|O_EXCL|O_TRUNC*/: 'wx', - 706 /*O_RDWR|O_CREAT|O_EXCL|O_TRUNC*/: 'wx+', - 1024 /*O_APPEND*/: 'a', - 1025 /*O_WRONLY|O_APPEND*/: 'a', - 1026 /*O_RDWR|O_APPEND*/: 'a+', - 1089 /*O_WRONLY|O_CREAT|O_APPEND*/: 'a', - 1090 /*O_RDWR|O_CREAT|O_APPEND*/: 'a+', - 1153 /*O_WRONLY|O_EXCL|O_APPEND*/: 'ax', - 1154 /*O_RDWR|O_EXCL|O_APPEND*/: 'ax+', - 1217 /*O_WRONLY|O_CREAT|O_EXCL|O_APPEND*/: 'ax', - 1218 /*O_RDWR|O_CREAT|O_EXCL|O_APPEND*/: 'ax+', - 4096 /*O_RDONLY|O_DSYNC*/: 'rs', - 4098 /*O_RDWR|O_DSYNC*/: 'rs+' - }; - this.nodefs = nodefs; - this.FS = _FS; - this.PATH = _PATH; - this.ERRNO_CODES = _ERRNO_CODES; - this.node_ops = new BFSEmscriptenNodeOps(this); - this.stream_ops = new BFSEmscriptenStreamOps(this); - }; - BFSEmscriptenFS.prototype.mount = function mount (m) { - return this.createNode(null, '/', this.getMode(m.opts.root), 0); - }; - BFSEmscriptenFS.prototype.createNode = function createNode (parent, name, mode, dev) { - var FS = this.FS; - if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { - throw new FS.ErrnoError(this.ERRNO_CODES.EINVAL); - } - var node = FS.createNode(parent, name, mode); - node.node_ops = this.node_ops; - node.stream_ops = this.stream_ops; - return node; - }; - BFSEmscriptenFS.prototype.getMode = function getMode (path$$1) { - var stat; - try { - stat = this.nodefs.lstatSync(path$$1); - } - catch (e) { - if (!e.code) { - throw e; - } - throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); - } - return stat.mode; - }; - BFSEmscriptenFS.prototype.realPath = function realPath (node) { - var parts = []; - while (node.parent !== node) { - parts.push(node.name); - node = node.parent; - } - parts.push(node.mount.opts.root); - parts.reverse(); - return this.PATH.join.apply(null, parts); - }; - BFSEmscriptenFS.prototype.flagsToPermissionString = function flagsToPermissionString (flags) { - var parsedFlags = (typeof flags === "string") ? parseInt(flags, 10) : flags; - parsedFlags &= 0x1FFF; - if (parsedFlags in this.flagsToPermissionStringMap) { - return this.flagsToPermissionStringMap[parsedFlags]; - } - else { - return flags; - } - }; - BFSEmscriptenFS.prototype.getNodeFS = function getNodeFS () { - return this.nodefs; - }; - BFSEmscriptenFS.prototype.getFS = function getFS () { - return this.FS; - }; - BFSEmscriptenFS.prototype.getPATH = function getPATH () { - return this.PATH; - }; - BFSEmscriptenFS.prototype.getERRNO_CODES = function getERRNO_CODES () { - return this.ERRNO_CODES; - }; - - /** - * Basic filesystem class. Most filesystems should extend this class, as it - * provides default implementations for a handful of methods. - */ - var BaseFileSystem = function BaseFileSystem () {}; - - BaseFileSystem.prototype.supportsLinks = function supportsLinks () { - return false; - }; - BaseFileSystem.prototype.diskSpace = function diskSpace (p, cb) { - cb(0, 0); - }; - /** - * Opens the file at path p with the given flag. The file must exist. - * @param p The path to open. - * @param flag The flag to use when opening the file. - */ - BaseFileSystem.prototype.openFile = function openFile (p, flag, cb) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - /** - * Create the file at path p with the given mode. Then, open it with the given - * flag. - */ - BaseFileSystem.prototype.createFile = function createFile (p, flag, mode, cb) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.open = function open (p, flag, mode, cb) { - var this$1 = this; - - var mustBeFile = function (e, stats) { - if (e) { - // File does not exist. - switch (flag.pathNotExistsAction()) { - case ActionType.CREATE_FILE: - // Ensure parent exists. - return this$1.stat(path.dirname(p), false, function (e, parentStats) { - if (e) { - cb(e); - } - else if (parentStats && !parentStats.isDirectory()) { - cb(ApiError.ENOTDIR(path.dirname(p))); - } - else { - this$1.createFile(p, flag, mode, cb); - } - }); - case ActionType.THROW_EXCEPTION: - return cb(ApiError.ENOENT(p)); - default: - return cb(new ApiError(ErrorCode.EINVAL, 'Invalid FileFlag object.')); - } - } - else { - // File exists. - if (stats && stats.isDirectory()) { - return cb(ApiError.EISDIR(p)); - } - switch (flag.pathExistsAction()) { - case ActionType.THROW_EXCEPTION: - return cb(ApiError.EEXIST(p)); - case ActionType.TRUNCATE_FILE: - // NOTE: In a previous implementation, we deleted the file and - // re-created it. However, this created a race condition if another - // asynchronous request was trying to read the file, as the file - // would not exist for a small period of time. - return this$1.openFile(p, flag, function (e, fd) { - if (e) { - cb(e); - } - else if (fd) { - fd.truncate(0, function () { - fd.sync(function () { - cb(null, fd); - }); - }); - } - else { - fail(); - } - }); - case ActionType.NOP: - return this$1.openFile(p, flag, cb); - default: - return cb(new ApiError(ErrorCode.EINVAL, 'Invalid FileFlag object.')); - } - } - }; - this.stat(p, false, mustBeFile); - }; - BaseFileSystem.prototype.rename = function rename (oldPath, newPath, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.renameSync = function renameSync (oldPath, newPath) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.stat = function stat (p, isLstat, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.statSync = function statSync (p, isLstat) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - /** - * Opens the file at path p with the given flag. The file must exist. - * @param p The path to open. - * @param flag The flag to use when opening the file. - * @return A File object corresponding to the opened file. - */ - BaseFileSystem.prototype.openFileSync = function openFileSync (p, flag, mode) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - /** - * Create the file at path p with the given mode. Then, open it with the given - * flag. - */ - BaseFileSystem.prototype.createFileSync = function createFileSync (p, flag, mode) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.openSync = function openSync (p, flag, mode) { - // Check if the path exists, and is a file. - var stats; - try { - stats = this.statSync(p, false); - } - catch (e) { - // File does not exist. - switch (flag.pathNotExistsAction()) { - case ActionType.CREATE_FILE: - // Ensure parent exists. - var parentStats = this.statSync(path.dirname(p), false); - if (!parentStats.isDirectory()) { - throw ApiError.ENOTDIR(path.dirname(p)); - } - return this.createFileSync(p, flag, mode); - case ActionType.THROW_EXCEPTION: - throw ApiError.ENOENT(p); - default: - throw new ApiError(ErrorCode.EINVAL, 'Invalid FileFlag object.'); - } - } - // File exists. - if (stats.isDirectory()) { - throw ApiError.EISDIR(p); - } - switch (flag.pathExistsAction()) { - case ActionType.THROW_EXCEPTION: - throw ApiError.EEXIST(p); - case ActionType.TRUNCATE_FILE: - // Delete file. - this.unlinkSync(p); - // Create file. Use the same mode as the old file. - // Node itself modifies the ctime when this occurs, so this action - // will preserve that behavior if the underlying file system - // supports those properties. - return this.createFileSync(p, flag, stats.mode); - case ActionType.NOP: - return this.openFileSync(p, flag, mode); - default: - throw new ApiError(ErrorCode.EINVAL, 'Invalid FileFlag object.'); - } - }; - BaseFileSystem.prototype.unlink = function unlink (p, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.unlinkSync = function unlinkSync (p) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.rmdir = function rmdir (p, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.rmdirSync = function rmdirSync (p) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.mkdir = function mkdir (p, mode, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.mkdirSync = function mkdirSync (p, mode) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.readdir = function readdir (p, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.readdirSync = function readdirSync (p) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.exists = function exists (p, cb) { - this.stat(p, null, function (err) { - cb(!err); - }); - }; - BaseFileSystem.prototype.existsSync = function existsSync (p) { - try { - this.statSync(p, true); - return true; - } - catch (e) { - return false; - } - }; - BaseFileSystem.prototype.realpath = function realpath (p, cache, cb) { - if (this.supportsLinks()) { - // The path could contain symlinks. Split up the path, - // resolve any symlinks, return the resolved string. - var splitPath = p.split(path.sep); - // TODO: Simpler to just pass through file, find sep and such. - for (var i = 0; i < splitPath.length; i++) { - var addPaths = splitPath.slice(0, i + 1); - splitPath[i] = path.join.apply(null, addPaths); - } - } - else { - // No symlinks. We just need to verify that it exists. - this.exists(p, function (doesExist) { - if (doesExist) { - cb(null, p); - } - else { - cb(ApiError.ENOENT(p)); - } - }); - } - }; - BaseFileSystem.prototype.realpathSync = function realpathSync (p, cache) { - if (this.supportsLinks()) { - // The path could contain symlinks. Split up the path, - // resolve any symlinks, return the resolved string. - var splitPath = p.split(path.sep); - // TODO: Simpler to just pass through file, find sep and such. - for (var i = 0; i < splitPath.length; i++) { - var addPaths = splitPath.slice(0, i + 1); - splitPath[i] = path.join.apply(path, addPaths); - } - return splitPath.join(path.sep); - } - else { - // No symlinks. We just need to verify that it exists. - if (this.existsSync(p)) { - return p; - } - else { - throw ApiError.ENOENT(p); - } - } - }; - BaseFileSystem.prototype.truncate = function truncate (p, len, cb) { - this.open(p, FileFlag.getFileFlag('r+'), 0x1a4, (function (er, fd) { - if (er) { - return cb(er); - } - fd.truncate(len, (function (er) { - fd.close((function (er2) { - cb(er || er2); - })); - })); - })); - }; - BaseFileSystem.prototype.truncateSync = function truncateSync (p, len) { - var fd = this.openSync(p, FileFlag.getFileFlag('r+'), 0x1a4); - // Need to safely close FD, regardless of whether or not truncate succeeds. - try { - fd.truncateSync(len); - } - catch (e) { - throw e; - } - finally { - fd.closeSync(); - } - }; - BaseFileSystem.prototype.readFile = function readFile (fname, encoding, flag, cb) { - // Wrap cb in file closing code. - var oldCb = cb; - // Get file. - this.open(fname, flag, 0x1a4, function (err, fd) { - if (err) { - return cb(err); - } - cb = function (err, arg) { - fd.close(function (err2) { - if (!err) { - err = err2; - } - return oldCb(err, arg); - }); - }; - fd.stat(function (err, stat) { - if (err) { - return cb(err); - } - // Allocate buffer. - var buf = Buffer.alloc(stat.size); - fd.read(buf, 0, stat.size, 0, function (err) { - if (err) { - return cb(err); - } - else if (encoding === null) { - return cb(err, buf); - } - try { - cb(null, buf.toString(encoding)); - } - catch (e) { - cb(e); - } - }); - }); - }); - }; - BaseFileSystem.prototype.readFileSync = function readFileSync (fname, encoding, flag) { - // Get file. - var fd = this.openSync(fname, flag, 0x1a4); - try { - var stat = fd.statSync(); - // Allocate buffer. - var buf = Buffer.alloc(stat.size); - fd.readSync(buf, 0, stat.size, 0); - fd.closeSync(); - if (encoding === null) { - return buf; - } - return buf.toString(encoding); - } - finally { - fd.closeSync(); - } - }; - BaseFileSystem.prototype.writeFile = function writeFile (fname, data, encoding, flag, mode, cb) { - // Wrap cb in file closing code. - var oldCb = cb; - // Get file. - this.open(fname, flag, 0x1a4, function (err, fd) { - if (err) { - return cb(err); - } - cb = function (err) { - fd.close(function (err2) { - oldCb(err ? err : err2); - }); - }; - try { - if (typeof data === 'string') { - data = Buffer.from(data, encoding); - } - } - catch (e) { - return cb(e); - } - // Write into file. - fd.write(data, 0, data.length, 0, cb); - }); - }; - BaseFileSystem.prototype.writeFileSync = function writeFileSync (fname, data, encoding, flag, mode) { - // Get file. - var fd = this.openSync(fname, flag, mode); - try { - if (typeof data === 'string') { - data = Buffer.from(data, encoding); - } - // Write into file. - fd.writeSync(data, 0, data.length, 0); - } - finally { - fd.closeSync(); - } - }; - BaseFileSystem.prototype.appendFile = function appendFile (fname, data, encoding, flag, mode, cb) { - // Wrap cb in file closing code. - var oldCb = cb; - this.open(fname, flag, mode, function (err, fd) { - if (err) { - return cb(err); - } - cb = function (err) { - fd.close(function (err2) { - oldCb(err ? err : err2); - }); - }; - if (typeof data === 'string') { - data = Buffer.from(data, encoding); - } - fd.write(data, 0, data.length, null, cb); - }); - }; - BaseFileSystem.prototype.appendFileSync = function appendFileSync (fname, data, encoding, flag, mode) { - var fd = this.openSync(fname, flag, mode); - try { - if (typeof data === 'string') { - data = Buffer.from(data, encoding); - } - fd.writeSync(data, 0, data.length, null); - } - finally { - fd.closeSync(); - } - }; - BaseFileSystem.prototype.chmod = function chmod (p, isLchmod, mode, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.chmodSync = function chmodSync (p, isLchmod, mode) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.chown = function chown (p, isLchown, uid, gid, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.chownSync = function chownSync (p, isLchown, uid, gid) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.utimes = function utimes (p, atime, mtime, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.utimesSync = function utimesSync (p, atime, mtime) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.link = function link (srcpath, dstpath, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.linkSync = function linkSync (srcpath, dstpath) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.symlink = function symlink (srcpath, dstpath, type, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.symlinkSync = function symlinkSync (srcpath, dstpath, type) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFileSystem.prototype.readlink = function readlink (p, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFileSystem.prototype.readlinkSync = function readlinkSync (p) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - /** - * Implements the asynchronous API in terms of the synchronous API. - * @class SynchronousFileSystem - */ - var SynchronousFileSystem = (function (BaseFileSystem) { - function SynchronousFileSystem () { - BaseFileSystem.apply(this, arguments); - } - - if ( BaseFileSystem ) SynchronousFileSystem.__proto__ = BaseFileSystem; - SynchronousFileSystem.prototype = Object.create( BaseFileSystem && BaseFileSystem.prototype ); - SynchronousFileSystem.prototype.constructor = SynchronousFileSystem; - - SynchronousFileSystem.prototype.supportsSynch = function supportsSynch () { - return true; - }; - SynchronousFileSystem.prototype.rename = function rename (oldPath, newPath, cb) { - try { - this.renameSync(oldPath, newPath); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.stat = function stat (p, isLstat, cb) { - try { - cb(null, this.statSync(p, isLstat)); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.open = function open (p, flags, mode, cb) { - try { - cb(null, this.openSync(p, flags, mode)); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.unlink = function unlink (p, cb) { - try { - this.unlinkSync(p); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.rmdir = function rmdir (p, cb) { - try { - this.rmdirSync(p); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.mkdir = function mkdir (p, mode, cb) { - try { - this.mkdirSync(p, mode); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.readdir = function readdir (p, cb) { - try { - cb(null, this.readdirSync(p)); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.chmod = function chmod (p, isLchmod, mode, cb) { - try { - this.chmodSync(p, isLchmod, mode); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.chown = function chown (p, isLchown, uid, gid, cb) { - try { - this.chownSync(p, isLchown, uid, gid); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.utimes = function utimes (p, atime, mtime, cb) { - try { - this.utimesSync(p, atime, mtime); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.link = function link (srcpath, dstpath, cb) { - try { - this.linkSync(srcpath, dstpath); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.symlink = function symlink (srcpath, dstpath, type, cb) { - try { - this.symlinkSync(srcpath, dstpath, type); - cb(); - } - catch (e) { - cb(e); - } - }; - SynchronousFileSystem.prototype.readlink = function readlink (p, cb) { - try { - cb(null, this.readlinkSync(p)); - } - catch (e) { - cb(e); - } - }; - - return SynchronousFileSystem; - }(BaseFileSystem)); - - /** - * Base class that contains shared implementations of functions for the file - * object. - */ - var BaseFile = function BaseFile () {}; - - BaseFile.prototype.sync = function sync (cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFile.prototype.syncSync = function syncSync () { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFile.prototype.datasync = function datasync (cb) { - this.sync(cb); - }; - BaseFile.prototype.datasyncSync = function datasyncSync () { - return this.syncSync(); - }; - BaseFile.prototype.chown = function chown (uid, gid, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFile.prototype.chownSync = function chownSync (uid, gid) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFile.prototype.chmod = function chmod (mode, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFile.prototype.chmodSync = function chmodSync (mode) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - BaseFile.prototype.utimes = function utimes (atime, mtime, cb) { - cb(new ApiError(ErrorCode.ENOTSUP)); - }; - BaseFile.prototype.utimesSync = function utimesSync (atime, mtime) { - throw new ApiError(ErrorCode.ENOTSUP); - }; - - /** - * An implementation of the File interface that operates on a file that is - * completely in-memory. PreloadFiles are backed by a Buffer. - * - * This is also an abstract class, as it lacks an implementation of 'sync' and - * 'close'. Each filesystem that wishes to use this file representation must - * extend this class and implement those two methods. - * @todo 'close' lever that disables functionality once closed. - */ - var PreloadFile = (function (BaseFile$$1) { - function PreloadFile(_fs, _path, _flag, _stat, contents) { - BaseFile$$1.call(this); - this._pos = 0; - this._dirty = false; - this._fs = _fs; - this._path = _path; - this._flag = _flag; - this._stat = _stat; - if (contents) { - this._buffer = contents; - } - else { - // Empty buffer. It'll expand once we write stuff to it. - this._buffer = emptyBuffer(); - } - // Note: This invariant is *not* maintained once the file starts getting - // modified. - // Note: Only actually matters if file is readable, as writeable modes may - // truncate/append to file. - if (this._stat.size !== this._buffer.length && this._flag.isReadable()) { - throw new Error(("Invalid buffer: Buffer is " + (this._buffer.length) + " long, yet Stats object specifies that file is " + (this._stat.size) + " long.")); - } - } - - if ( BaseFile$$1 ) PreloadFile.__proto__ = BaseFile$$1; - PreloadFile.prototype = Object.create( BaseFile$$1 && BaseFile$$1.prototype ); - PreloadFile.prototype.constructor = PreloadFile; - /** - * NONSTANDARD: Get the underlying buffer for this file. !!DO NOT MUTATE!! Will mess up dirty tracking. - */ - PreloadFile.prototype.getBuffer = function getBuffer () { - return this._buffer; - }; - /** - * NONSTANDARD: Get underlying stats for this file. !!DO NOT MUTATE!! - */ - PreloadFile.prototype.getStats = function getStats () { - return this._stat; - }; - PreloadFile.prototype.getFlag = function getFlag () { - return this._flag; - }; - /** - * Get the path to this file. - * @return [String] The path to the file. - */ - PreloadFile.prototype.getPath = function getPath () { - return this._path; - }; - /** - * Get the current file position. - * - * We emulate the following bug mentioned in the Node documentation: - * > On Linux, positional writes don't work when the file is opened in append - * mode. The kernel ignores the position argument and always appends the data - * to the end of the file. - * @return [Number] The current file position. - */ - PreloadFile.prototype.getPos = function getPos () { - if (this._flag.isAppendable()) { - return this._stat.size; - } - return this._pos; - }; - /** - * Advance the current file position by the indicated number of positions. - * @param [Number] delta - */ - PreloadFile.prototype.advancePos = function advancePos (delta) { - return this._pos += delta; - }; - /** - * Set the file position. - * @param [Number] newPos - */ - PreloadFile.prototype.setPos = function setPos (newPos) { - return this._pos = newPos; - }; - /** - * **Core**: Asynchronous sync. Must be implemented by subclasses of this - * class. - * @param [Function(BrowserFS.ApiError)] cb - */ - PreloadFile.prototype.sync = function sync (cb) { - try { - this.syncSync(); - cb(); - } - catch (e) { - cb(e); - } - }; - /** - * **Core**: Synchronous sync. - */ - PreloadFile.prototype.syncSync = function syncSync () { - throw new ApiError(ErrorCode.ENOTSUP); - }; - /** - * **Core**: Asynchronous close. Must be implemented by subclasses of this - * class. - * @param [Function(BrowserFS.ApiError)] cb - */ - PreloadFile.prototype.close = function close (cb) { - try { - this.closeSync(); - cb(); - } - catch (e) { - cb(e); - } - }; - /** - * **Core**: Synchronous close. - */ - PreloadFile.prototype.closeSync = function closeSync () { - throw new ApiError(ErrorCode.ENOTSUP); - }; - /** - * Asynchronous `stat`. - * @param [Function(BrowserFS.ApiError, BrowserFS.node.fs.Stats)] cb - */ - PreloadFile.prototype.stat = function stat (cb) { - try { - cb(null, this._stat.clone()); - } - catch (e) { - cb(e); - } - }; - /** - * Synchronous `stat`. - */ - PreloadFile.prototype.statSync = function statSync () { - return this._stat.clone(); - }; - /** - * Asynchronous truncate. - * @param [Number] len - * @param [Function(BrowserFS.ApiError)] cb - */ - PreloadFile.prototype.truncate = function truncate (len, cb) { - try { - this.truncateSync(len); - if (this._flag.isSynchronous() && !_fsMock.getRootFS().supportsSynch()) { - this.sync(cb); - } - cb(); - } - catch (e) { - return cb(e); - } - }; - /** - * Synchronous truncate. - * @param [Number] len - */ - PreloadFile.prototype.truncateSync = function truncateSync (len) { - this._dirty = true; - if (!this._flag.isWriteable()) { - throw new ApiError(ErrorCode.EPERM, 'File not opened with a writeable mode.'); - } - this._stat.mtime = new Date(); - if (len > this._buffer.length) { - var buf = Buffer.alloc(len - this._buffer.length, 0); - // Write will set @_stat.size for us. - this.writeSync(buf, 0, buf.length, this._buffer.length); - if (this._flag.isSynchronous() && _fsMock.getRootFS().supportsSynch()) { - this.syncSync(); - } - return; - } - this._stat.size = len; - // Truncate buffer to 'len'. - var newBuff = Buffer.alloc(len); - this._buffer.copy(newBuff, 0, 0, len); - this._buffer = newBuff; - if (this._flag.isSynchronous() && _fsMock.getRootFS().supportsSynch()) { - this.syncSync(); - } - }; - /** - * Write buffer to the file. - * Note that it is unsafe to use fs.write multiple times on the same file - * without waiting for the callback. - * @param [BrowserFS.node.Buffer] buffer Buffer containing the data to write to - * the file. - * @param [Number] offset Offset in the buffer to start reading data from. - * @param [Number] length The amount of bytes to write to the file. - * @param [Number] position Offset from the beginning of the file where this - * data should be written. If position is null, the data will be written at - * the current position. - * @param [Function(BrowserFS.ApiError, Number, BrowserFS.node.Buffer)] - * cb The number specifies the number of bytes written into the file. - */ - PreloadFile.prototype.write = function write (buffer$$1, offset, length, position, cb) { - try { - cb(null, this.writeSync(buffer$$1, offset, length, position), buffer$$1); - } - catch (e) { - cb(e); - } - }; - /** - * Write buffer to the file. - * Note that it is unsafe to use fs.writeSync multiple times on the same file - * without waiting for the callback. - * @param [BrowserFS.node.Buffer] buffer Buffer containing the data to write to - * the file. - * @param [Number] offset Offset in the buffer to start reading data from. - * @param [Number] length The amount of bytes to write to the file. - * @param [Number] position Offset from the beginning of the file where this - * data should be written. If position is null, the data will be written at - * the current position. - * @return [Number] - */ - PreloadFile.prototype.writeSync = function writeSync (buffer$$1, offset, length, position) { - this._dirty = true; - if (position === undefined || position === null) { - position = this.getPos(); - } - if (!this._flag.isWriteable()) { - throw new ApiError(ErrorCode.EPERM, 'File not opened with a writeable mode.'); - } - var endFp = position + length; - if (endFp > this._stat.size) { - this._stat.size = endFp; - if (endFp > this._buffer.length) { - // Extend the buffer! - var newBuff = Buffer.alloc(endFp); - this._buffer.copy(newBuff); - this._buffer = newBuff; - } - } - var len = buffer$$1.copy(this._buffer, position, offset, offset + length); - this._stat.mtime = new Date(); - if (this._flag.isSynchronous()) { - this.syncSync(); - return len; - } - this.setPos(position + len); - return len; - }; - /** - * Read data from the file. - * @param [BrowserFS.node.Buffer] buffer The buffer that the data will be - * written to. - * @param [Number] offset The offset within the buffer where writing will - * start. - * @param [Number] length An integer specifying the number of bytes to read. - * @param [Number] position An integer specifying where to begin reading from - * in the file. If position is null, data will be read from the current file - * position. - * @param [Function(BrowserFS.ApiError, Number, BrowserFS.node.Buffer)] cb The - * number is the number of bytes read - */ - PreloadFile.prototype.read = function read (buffer$$1, offset, length, position, cb) { - try { - cb(null, this.readSync(buffer$$1, offset, length, position), buffer$$1); - } - catch (e) { - cb(e); - } - }; - /** - * Read data from the file. - * @param [BrowserFS.node.Buffer] buffer The buffer that the data will be - * written to. - * @param [Number] offset The offset within the buffer where writing will - * start. - * @param [Number] length An integer specifying the number of bytes to read. - * @param [Number] position An integer specifying where to begin reading from - * in the file. If position is null, data will be read from the current file - * position. - * @return [Number] - */ - PreloadFile.prototype.readSync = function readSync (buffer$$1, offset, length, position) { - if (!this._flag.isReadable()) { - throw new ApiError(ErrorCode.EPERM, 'File not opened with a readable mode.'); - } - if (position === undefined || position === null) { - position = this.getPos(); - } - var endRead = position + length; - if (endRead > this._stat.size) { - length = this._stat.size - position; - } - var rv = this._buffer.copy(buffer$$1, offset, position, position + length); - this._stat.atime = new Date(); - this._pos = position + length; - return rv; - }; - /** - * Asynchronous `fchmod`. - * @param [Number|String] mode - * @param [Function(BrowserFS.ApiError)] cb - */ - PreloadFile.prototype.chmod = function chmod (mode, cb) { - try { - this.chmodSync(mode); - cb(); - } - catch (e) { - cb(e); - } - }; - /** - * Asynchronous `fchmod`. - * @param [Number] mode - */ - PreloadFile.prototype.chmodSync = function chmodSync (mode) { - if (!this._fs.supportsProps()) { - throw new ApiError(ErrorCode.ENOTSUP); - } - this._dirty = true; - this._stat.chmod(mode); - this.syncSync(); - }; - PreloadFile.prototype.isDirty = function isDirty () { - return this._dirty; - }; - /** - * Resets the dirty bit. Should only be called after a sync has completed successfully. - */ - PreloadFile.prototype.resetDirty = function resetDirty () { - this._dirty = false; - }; - - return PreloadFile; - }(BaseFile)); - - /** - * File class for the InMemory and XHR file systems. - * Doesn't sync to anything, so it works nicely for memory-only files. - */ - var NoSyncFile = (function (PreloadFile) { - function NoSyncFile(_fs, _path, _flag, _stat, contents) { - PreloadFile.call(this, _fs, _path, _flag, _stat, contents); - } - - if ( PreloadFile ) NoSyncFile.__proto__ = PreloadFile; - NoSyncFile.prototype = Object.create( PreloadFile && PreloadFile.prototype ); - NoSyncFile.prototype.constructor = NoSyncFile; - /** - * Asynchronous sync. Doesn't do anything, simply calls the cb. - * @param [Function(BrowserFS.ApiError)] cb - */ - NoSyncFile.prototype.sync = function sync (cb) { - cb(); - }; - /** - * Synchronous sync. Doesn't do anything. - */ - NoSyncFile.prototype.syncSync = function syncSync () { - // NOP. - }; - /** - * Asynchronous close. Doesn't do anything, simply calls the cb. - * @param [Function(BrowserFS.ApiError)] cb - */ - NoSyncFile.prototype.close = function close (cb) { - cb(); - }; - /** - * Synchronous close. Doesn't do anything. - */ - NoSyncFile.prototype.closeSync = function closeSync () { - // NOP. - }; - - return NoSyncFile; - }(PreloadFile)); - - /** - * We define our own file to interpose on syncSync() for mirroring purposes. - */ - var MirrorFile = (function (PreloadFile$$1) { - function MirrorFile(fs, path$$1, flag, stat, data) { - PreloadFile$$1.call(this, fs, path$$1, flag, stat, data); - } - - if ( PreloadFile$$1 ) MirrorFile.__proto__ = PreloadFile$$1; - MirrorFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype ); - MirrorFile.prototype.constructor = MirrorFile; - MirrorFile.prototype.syncSync = function syncSync () { - if (this.isDirty()) { - this._fs._syncSync(this); - this.resetDirty(); - } - }; - MirrorFile.prototype.closeSync = function closeSync () { - this.syncSync(); - }; - - return MirrorFile; - }(PreloadFile)); - /** - * AsyncMirrorFS mirrors a synchronous filesystem into an asynchronous filesystem - * by: - * - * * Performing operations over the in-memory copy, while asynchronously pipelining them - * to the backing store. - * * During application loading, the contents of the async file system can be reloaded into - * the synchronous store, if desired. - * - * The two stores will be kept in sync. The most common use-case is to pair a synchronous - * in-memory filesystem with an asynchronous backing store. - * - * Example: Mirroring an IndexedDB file system to an in memory file system. Now, you can use - * IndexedDB synchronously. - * - * ```javascript - * BrowserFS.configure({ - * fs: "AsyncMirror", - * options: { - * sync: { fs: "InMemory" }, - * async: { fs: "IndexedDB" } - * } - * }, function(e) { - * // BrowserFS is initialized and ready-to-use! - * }); - * ``` - * - * Or, alternatively: - * - * ```javascript - * BrowserFS.FileSystem.IndexedDB.Create(function(e, idbfs) { - * BrowserFS.FileSystem.InMemory.Create(function(e, inMemory) { - * BrowserFS.FileSystem.AsyncMirror({ - * sync: inMemory, async: idbfs - * }, function(e, mirrored) { - * BrowserFS.initialize(mirrored); - * }); - * }); - * }); - * ``` - */ - var AsyncMirror = (function (SynchronousFileSystem$$1) { - function AsyncMirror(sync, async, deprecateMsg) { - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - SynchronousFileSystem$$1.call(this); - /** - * Queue of pending asynchronous operations. - */ - this._queue = []; - this._queueRunning = false; - this._isInitialized = false; - this._initializeCallbacks = []; - this._sync = sync; - this._async = async; - if (!sync.supportsSynch()) { - throw new Error("The first argument to AsyncMirror needs to be a synchronous file system."); - } - deprecationMessage(deprecateMsg, AsyncMirror.Name, { sync: "sync file system instance", async: "async file system instance" }); - } - - if ( SynchronousFileSystem$$1 ) AsyncMirror.__proto__ = SynchronousFileSystem$$1; - AsyncMirror.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype ); - AsyncMirror.prototype.constructor = AsyncMirror; - /** - * Constructs and initializes an AsyncMirror file system with the given options. - */ - AsyncMirror.Create = function Create (opts, cb) { - try { - var fs = new AsyncMirror(opts.sync, opts.async, false); - fs.initialize(function (e) { - if (e) { - cb(e); - } - else { - cb(null, fs); - } - }, false); - } - catch (e) { - cb(e); - } - }; - AsyncMirror.isAvailable = function isAvailable () { - return true; - }; - AsyncMirror.prototype.getName = function getName () { - return AsyncMirror.Name; - }; - AsyncMirror.prototype._syncSync = function _syncSync (fd) { - this._sync.writeFileSync(fd.getPath(), fd.getBuffer(), null, FileFlag.getFileFlag('w'), fd.getStats().mode); - this.enqueueOp({ - apiMethod: 'writeFile', - arguments: [fd.getPath(), fd.getBuffer(), null, fd.getFlag(), fd.getStats().mode] - }); - }; - /** - * Called once to load up files from async storage into sync storage. - */ - AsyncMirror.prototype.initialize = function initialize (userCb, deprecateMsg) { - var this$1 = this; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - if (deprecateMsg) { - console.warn("[AsyncMirror] AsyncMirror.initialize() is deprecated and will be removed in the next major version. Please use 'AsyncMirror.Create({ sync: (sync file system instance), async: (async file system instance)}, cb)' to create and initialize AsyncMirror instances."); - } - var callbacks = this._initializeCallbacks; - var end = function (e) { - this$1._isInitialized = !e; - this$1._initializeCallbacks = []; - callbacks.forEach(function (cb) { return cb(e); }); - }; - if (!this._isInitialized) { - // First call triggers initialization, the rest wait. - if (callbacks.push(userCb) === 1) { - var copyDirectory = function (p, mode, cb) { - if (p !== '/') { - this$1._sync.mkdirSync(p, mode); - } - this$1._async.readdir(p, function (err, files) { - var i = 0; - // NOTE: This function must not be in a lexically nested statement, - // such as an if or while statement. Safari refuses to run the - // script since it is undefined behavior. - function copyNextFile(err) { - if (err) { - cb(err); - } - else if (i < files.length) { - copyItem(path.join(p, files[i]), copyNextFile); - i++; - } - else { - cb(); - } - } - if (err) { - cb(err); - } - else { - copyNextFile(); - } - }); - }, copyFile = function (p, mode, cb) { - this$1._async.readFile(p, null, FileFlag.getFileFlag('r'), function (err, data) { - if (err) { - cb(err); - } - else { - try { - this$1._sync.writeFileSync(p, data, null, FileFlag.getFileFlag('w'), mode); - } - catch (e) { - err = e; - } - finally { - cb(err); - } - } - }); - }, copyItem = function (p, cb) { - this$1._async.stat(p, false, function (err, stats) { - if (err) { - cb(err); - } - else if (stats.isDirectory()) { - copyDirectory(p, stats.mode, cb); - } - else { - copyFile(p, stats.mode, cb); - } - }); - }; - copyDirectory('/', 0, end); - } - } - else { - userCb(); - } - }; - AsyncMirror.prototype.isReadOnly = function isReadOnly () { return false; }; - AsyncMirror.prototype.supportsSynch = function supportsSynch () { return true; }; - AsyncMirror.prototype.supportsLinks = function supportsLinks () { return false; }; - AsyncMirror.prototype.supportsProps = function supportsProps () { return this._sync.supportsProps() && this._async.supportsProps(); }; - AsyncMirror.prototype.renameSync = function renameSync (oldPath, newPath) { - this.checkInitialized(); - this._sync.renameSync(oldPath, newPath); - this.enqueueOp({ - apiMethod: 'rename', - arguments: [oldPath, newPath] - }); - }; - AsyncMirror.prototype.statSync = function statSync (p, isLstat) { - this.checkInitialized(); - return this._sync.statSync(p, isLstat); - }; - AsyncMirror.prototype.openSync = function openSync (p, flag, mode) { - this.checkInitialized(); - // Sanity check: Is this open/close permitted? - var fd = this._sync.openSync(p, flag, mode); - fd.closeSync(); - return new MirrorFile(this, p, flag, this._sync.statSync(p, false), this._sync.readFileSync(p, null, FileFlag.getFileFlag('r'))); - }; - AsyncMirror.prototype.unlinkSync = function unlinkSync (p) { - this.checkInitialized(); - this._sync.unlinkSync(p); - this.enqueueOp({ - apiMethod: 'unlink', - arguments: [p] - }); - }; - AsyncMirror.prototype.rmdirSync = function rmdirSync (p) { - this.checkInitialized(); - this._sync.rmdirSync(p); - this.enqueueOp({ - apiMethod: 'rmdir', - arguments: [p] - }); - }; - AsyncMirror.prototype.mkdirSync = function mkdirSync (p, mode) { - this.checkInitialized(); - this._sync.mkdirSync(p, mode); - this.enqueueOp({ - apiMethod: 'mkdir', - arguments: [p, mode] - }); - }; - AsyncMirror.prototype.readdirSync = function readdirSync (p) { - this.checkInitialized(); - return this._sync.readdirSync(p); - }; - AsyncMirror.prototype.existsSync = function existsSync (p) { - this.checkInitialized(); - return this._sync.existsSync(p); - }; - AsyncMirror.prototype.chmodSync = function chmodSync (p, isLchmod, mode) { - this.checkInitialized(); - this._sync.chmodSync(p, isLchmod, mode); - this.enqueueOp({ - apiMethod: 'chmod', - arguments: [p, isLchmod, mode] - }); - }; - AsyncMirror.prototype.chownSync = function chownSync (p, isLchown, uid, gid) { - this.checkInitialized(); - this._sync.chownSync(p, isLchown, uid, gid); - this.enqueueOp({ - apiMethod: 'chown', - arguments: [p, isLchown, uid, gid] - }); - }; - AsyncMirror.prototype.utimesSync = function utimesSync (p, atime, mtime) { - this.checkInitialized(); - this._sync.utimesSync(p, atime, mtime); - this.enqueueOp({ - apiMethod: 'utimes', - arguments: [p, atime, mtime] - }); - }; - AsyncMirror.prototype.checkInitialized = function checkInitialized () { - if (!this._isInitialized) { - throw new ApiError(ErrorCode.EPERM, "AsyncMirrorFS is not initialized. Please initialize AsyncMirrorFS using its initialize() method before using it."); - } - }; - AsyncMirror.prototype.enqueueOp = function enqueueOp (op) { - var this$1 = this; - - this._queue.push(op); - if (!this._queueRunning) { - this._queueRunning = true; - var doNextOp = function (err) { - if (err) { - console.error(("WARNING: File system has desynchronized. Received following error: " + err + "\n$")); - } - if (this$1._queue.length > 0) { - var op = this$1._queue.shift(), args = op.arguments; - args.push(doNextOp); - this$1._async[op.apiMethod].apply(this$1._async, args); - } - else { - this$1._queueRunning = false; - } - }; - doNextOp(); - } - }; - - return AsyncMirror; - }(SynchronousFileSystem)); - - AsyncMirror.Name = "AsyncMirror"; - AsyncMirror.Options = { - sync: { - type: "object", - description: "The synchronous file system to mirror the asynchronous file system to." - }, - async: { - type: "object", - description: "The asynchronous file system to mirror." - } - }; - - /** - * A faster alternative to `Function#apply`, this function invokes `func` - * with the `this` binding of `thisArg` and the arguments of `args`. - * - * @private - * @param {Function} func The function to invoke. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} args The arguments to invoke `func` with. - * @returns {*} Returns the result of `func`. - */ - function apply(func, thisArg, args) { - switch (args.length) { - case 0: return func.call(thisArg); - case 1: return func.call(thisArg, args[0]); - case 2: return func.call(thisArg, args[0], args[1]); - case 3: return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); - } - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeMax = Math.max; - - /** - * A specialized version of `baseRest` which transforms the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @param {Function} transform The rest array transform. - * @returns {Function} Returns the new function. - */ - function overRest$1(func, start, transform) { - start = nativeMax(start === undefined ? (func.length - 1) : start, 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); - - while (++index < length) { - array[index] = args[start + index]; - } - index = -1; - var otherArgs = Array(start + 1); - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = transform(array); - return apply(func, this, otherArgs); - }; - } - - /** - * This method returns the first argument it receives. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Util - * @param {*} value Any value. - * @returns {*} Returns `value`. - * @example - * - * var object = { 'a': 1 }; - * - * console.log(_.identity(object) === object); - * // => true - */ - function identity(value) { - return value; - } - - // Lodash rest function without function.toString() - // remappings - function rest(func, start) { - return overRest$1(func, start, identity); - } - - var initialParams = function (fn) { - return rest(function (args/*..., callback*/) { - var callback = args.pop(); - fn.call(this, args, callback); - }); - }; - - function applyEach$1(eachfn) { - return rest(function(fns, args) { - var go = initialParams(function(args, callback) { - var that = this; - return eachfn(fns, function (fn, cb) { - fn.apply(that, args.concat(cb)); - }, callback); - }); - if (args.length) { - return go.apply(this, args); - } - else { - return go; - } - }); - } - - /** Detect free variable `global` from Node.js. */ - var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; - - /** Detect free variable `self`. */ - var freeSelf = typeof self == 'object' && self && self.Object === Object && self; - - /** Used as a reference to the global object. */ - var root = freeGlobal || freeSelf || Function('return this')(); - - /** Built-in value references. */ - var Symbol$1 = root.Symbol; - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - var nativeObjectToString = objectProto.toString; - - /** Built-in value references. */ - var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined; - - /** - * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the raw `toStringTag`. - */ - function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag$1), - tag = value[symToStringTag$1]; - - try { - value[symToStringTag$1] = undefined; - var unmasked = true; - } catch (e) {} - - var result = nativeObjectToString.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag$1] = tag; - } else { - delete value[symToStringTag$1]; - } - } - return result; - } - - /** Used for built-in method references. */ - var objectProto$1 = Object.prototype; - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - var nativeObjectToString$1 = objectProto$1.toString; - - /** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ - function objectToString(value) { - return nativeObjectToString$1.call(value); - } - - /** `Object#toString` result references. */ - var nullTag = '[object Null]'; - var undefinedTag = '[object Undefined]'; - - /** Built-in value references. */ - var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : undefined; - - /** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - function baseGetTag(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; - } - return (symToStringTag && symToStringTag in Object(value)) - ? getRawTag(value) - : objectToString(value); - } - - /** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ - function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); - } - - /** `Object#toString` result references. */ - var asyncTag = '[object AsyncFunction]'; - var funcTag = '[object Function]'; - var genTag = '[object GeneratorFunction]'; - var proxyTag = '[object Proxy]'; - - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - if (!isObject(value)) { - return false; - } - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 9 which returns 'object' for typed arrays and other constructors. - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; - } - - /** Used as references for various `Number` constants. */ - var MAX_SAFE_INTEGER = 9007199254740991; - - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ - function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ - function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); - } - - // A temporary value used to identify if the loop should be broken. - // See #1064, #1293 - var breakLoop = {}; - - /** - * This method returns `undefined`. - * - * @static - * @memberOf _ - * @since 2.3.0 - * @category Util - * @example - * - * _.times(2, _.noop); - * // => [undefined, undefined] - */ - function noop() { - // No operation performed. - } - - function once(fn) { - return function () { - if (fn === null) { return; } - var callFn = fn; - fn = null; - callFn.apply(this, arguments); - }; - } - - var iteratorSymbol = typeof Symbol === 'function' && Symbol.iterator; - - var getIterator = function (coll) { - return iteratorSymbol && coll[iteratorSymbol] && coll[iteratorSymbol](); - }; - - /** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ - function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); - - while (++index < n) { - result[index] = iteratee(index); - } - return result; - } - - /** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ - function isObjectLike(value) { - return value != null && typeof value == 'object'; - } - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]'; - - /** - * The base implementation of `_.isArguments`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - */ - function baseIsArguments(value) { - return isObjectLike(value) && baseGetTag(value) == argsTag; - } - - /** Used for built-in method references. */ - var objectProto$3 = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty$2 = objectProto$3.hasOwnProperty; - - /** Built-in value references. */ - var propertyIsEnumerable = objectProto$3.propertyIsEnumerable; - - /** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { - return isObjectLike(value) && hasOwnProperty$2.call(value, 'callee') && - !propertyIsEnumerable.call(value, 'callee'); - }; - - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ - var isArray = Array.isArray; - - /** - * This method returns `false`. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {boolean} Returns `false`. - * @example - * - * _.times(2, _.stubFalse); - * // => [false, false] - */ - function stubFalse() { - return false; - } - - /** Detect free variable `exports`. */ - var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports; - - /** Built-in value references. */ - var Buffer$1 = moduleExports ? root.Buffer : undefined; - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeIsBuffer = Buffer$1 ? Buffer$1.isBuffer : undefined; - - /** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ - var isBuffer = nativeIsBuffer || stubFalse; - - /** Used as references for various `Number` constants. */ - var MAX_SAFE_INTEGER$1 = 9007199254740991; - - /** Used to detect unsigned integer values. */ - var reIsUint = /^(?:0|[1-9]\d*)$/; - - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex(value, length) { - length = length == null ? MAX_SAFE_INTEGER$1 : length; - return !!length && - (typeof value == 'number' || reIsUint.test(value)) && - (value > -1 && value % 1 == 0 && value < length); - } - - /** `Object#toString` result references. */ - var argsTag$1 = '[object Arguments]'; - var arrayTag = '[object Array]'; - var boolTag = '[object Boolean]'; - var dateTag = '[object Date]'; - var errorTag = '[object Error]'; - var funcTag$1 = '[object Function]'; - var mapTag = '[object Map]'; - var numberTag = '[object Number]'; - var objectTag = '[object Object]'; - var regexpTag = '[object RegExp]'; - var setTag = '[object Set]'; - var stringTag = '[object String]'; - var weakMapTag = '[object WeakMap]'; - - var arrayBufferTag = '[object ArrayBuffer]'; - var dataViewTag = '[object DataView]'; - var float32Tag = '[object Float32Array]'; - var float64Tag = '[object Float64Array]'; - var int8Tag = '[object Int8Array]'; - var int16Tag = '[object Int16Array]'; - var int32Tag = '[object Int32Array]'; - var uint8Tag = '[object Uint8Array]'; - var uint8ClampedTag = '[object Uint8ClampedArray]'; - var uint16Tag = '[object Uint16Array]'; - var uint32Tag = '[object Uint32Array]'; - - /** Used to identify `toStringTag` values of typed arrays. */ - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = - typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = - typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = - typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = - typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag$1] = typedArrayTags[arrayTag] = - typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = - typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = - typedArrayTags[errorTag] = typedArrayTags[funcTag$1] = - typedArrayTags[mapTag] = typedArrayTags[numberTag] = - typedArrayTags[objectTag] = typedArrayTags[regexpTag] = - typedArrayTags[setTag] = typedArrayTags[stringTag] = - typedArrayTags[weakMapTag] = false; - - /** - * The base implementation of `_.isTypedArray` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - */ - function baseIsTypedArray(value) { - return isObjectLike(value) && - isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; - } - - /** - * The base implementation of `_.unary` without support for storing metadata. - * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - */ - function baseUnary(func) { - return function(value) { - return func(value); - }; - } - - /** Detect free variable `exports`. */ - var freeExports$1 = typeof exports == 'object' && exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule$1 = freeExports$1 && typeof module == 'object' && module && !module.nodeType && module; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1; - - /** Detect free variable `process` from Node.js. */ - var freeProcess = moduleExports$1 && freeGlobal.process; - - /** Used to access faster Node.js helpers. */ - var nodeUtil = (function() { - try { - return freeProcess && freeProcess.binding && freeProcess.binding('util'); - } catch (e) {} - }()); - - /* Node.js helper references. */ - var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; - - /** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ - var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; - - /** Used for built-in method references. */ - var objectProto$2 = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty$1 = objectProto$2.hasOwnProperty; - - /** - * Creates an array of the enumerable property names of the array-like `value`. - * - * @private - * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. - */ - function arrayLikeKeys(value, inherited) { - var isArr = isArray(value), - isArg = !isArr && isArguments(value), - isBuff = !isArr && !isArg && isBuffer(value), - isType = !isArr && !isArg && !isBuff && isTypedArray(value), - skipIndexes = isArr || isArg || isBuff || isType, - result = skipIndexes ? baseTimes(value.length, String) : [], - length = result.length; - - for (var key in value) { - if ((inherited || hasOwnProperty$1.call(value, key)) && - !(skipIndexes && ( - // Safari 9 has enumerable `arguments.length` in strict mode. - key == 'length' || - // Node.js 0.10 has enumerable non-index properties on buffers. - (isBuff && (key == 'offset' || key == 'parent')) || - // PhantomJS 2 has enumerable non-index properties on typed arrays. - (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || - // Skip index properties. - isIndex(key, length) - ))) { - result.push(key); - } - } - return result; - } - - /** Used for built-in method references. */ - var objectProto$5 = Object.prototype; - - /** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ - function isPrototype(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$5; - - return value === proto; - } - - /** - * Creates a unary function that invokes `func` with its argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ - function overArg(func, transform) { - return function(arg) { - return func(transform(arg)); - }; - } - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeKeys = overArg(Object.keys, Object); - - /** Used for built-in method references. */ - var objectProto$4 = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty$3 = objectProto$4.hasOwnProperty; - - /** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } - var result = []; - for (var key in Object(object)) { - if (hasOwnProperty$3.call(object, key) && key != 'constructor') { - result.push(key); - } - } - return result; - } - - /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ - function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); - } - - function createArrayIterator(coll) { - var i = -1; - var len = coll.length; - return function next() { - return ++i < len ? {value: coll[i], key: i} : null; - } - } - - function createES2015Iterator(iterator) { - var i = -1; - return function next() { - var item = iterator.next(); - if (item.done) - { return null; } - i++; - return {value: item.value, key: i}; - } - } - - function createObjectIterator(obj) { - var okeys = keys(obj); - var i = -1; - var len = okeys.length; - return function next() { - var key = okeys[++i]; - return i < len ? {value: obj[key], key: key} : null; - }; - } - - function iterator(coll) { - if (isArrayLike(coll)) { - return createArrayIterator(coll); - } - - var iterator = getIterator(coll); - return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll); - } - - function onlyOnce(fn) { - return function() { - if (fn === null) { throw new Error("Callback was already called."); } - var callFn = fn; - fn = null; - callFn.apply(this, arguments); - }; - } - - function _eachOfLimit(limit) { - return function (obj, iteratee, callback) { - callback = once(callback || noop); - if (limit <= 0 || !obj) { - return callback(null); - } - var nextElem = iterator(obj); - var done = false; - var running = 0; - - function iterateeCallback(err, value) { - running -= 1; - if (err) { - done = true; - callback(err); - } - else if (value === breakLoop || (done && running <= 0)) { - done = true; - return callback(null); - } - else { - replenish(); - } - } - - function replenish () { - while (running < limit && !done) { - var elem = nextElem(); - if (elem === null) { - done = true; - if (running <= 0) { - callback(null); - } - return; - } - running += 1; - iteratee(elem.value, elem.key, onlyOnce(iterateeCallback)); - } - } - - replenish(); - }; - } - - /** - * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a - * time. - * - * @name eachOfLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.eachOf]{@link module:Collections.eachOf} - * @alias forEachOfLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A function to apply to each - * item in `coll`. The `key` is the item's key, or index in the case of an - * array. The iteratee is passed a `callback(err)` which must be called once it - * has completed. If no error has occurred, the callback should be run without - * arguments or with an explicit `null` argument. Invoked with - * (item, key, callback). - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - */ - function eachOfLimit(coll, limit, iteratee, callback) { - _eachOfLimit(limit)(coll, iteratee, callback); - } - - function doLimit(fn, limit) { - return function (iterable, iteratee, callback) { - return fn(iterable, limit, iteratee, callback); - }; - } - - // eachOf implementation optimized for array-likes - function eachOfArrayLike(coll, iteratee, callback) { - callback = once(callback || noop); - var index = 0, - completed = 0, - length = coll.length; - if (length === 0) { - callback(null); - } - - function iteratorCallback(err, value) { - if (err) { - callback(err); - } else if ((++completed === length) || value === breakLoop) { - callback(null); - } - } - - for (; index < length; index++) { - iteratee(coll[index], index, onlyOnce(iteratorCallback)); - } - } - - // a generic version of eachOf which can handle array, object, and iterator cases. - var eachOfGeneric = doLimit(eachOfLimit, Infinity); - - /** - * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument - * to the iteratee. - * - * @name eachOf - * @static - * @memberOf module:Collections - * @method - * @alias forEachOf - * @category Collection - * @see [async.each]{@link module:Collections.each} - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each - * item in `coll`. The `key` is the item's key, or index in the case of an - * array. The iteratee is passed a `callback(err)` which must be called once it - * has completed. If no error has occurred, the callback should be run without - * arguments or with an explicit `null` argument. Invoked with - * (item, key, callback). - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - * @example - * - * var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"}; - * var configs = {}; - * - * async.forEachOf(obj, function (value, key, callback) { - * fs.readFile(__dirname + value, "utf8", function (err, data) { - * if (err) return callback(err); - * try { - * configs[key] = JSON.parse(data); - * } catch (e) { - * return callback(e); - * } - * callback(); - * }); - * }, function (err) { - * if (err) console.error(err.message); - * // configs is now a map of JSON data - * doSomethingWith(configs); - * }); - */ - var eachOf = function(coll, iteratee, callback) { - var eachOfImplementation = isArrayLike(coll) ? eachOfArrayLike : eachOfGeneric; - eachOfImplementation(coll, iteratee, callback); - }; - - function doParallel(fn) { - return function (obj, iteratee, callback) { - return fn(eachOf, obj, iteratee, callback); - }; - } - - function _asyncMap(eachfn, arr, iteratee, callback) { - callback = callback || noop; - arr = arr || []; - var results = []; - var counter = 0; - - eachfn(arr, function (value, _, callback) { - var index = counter++; - iteratee(value, function (err, v) { - results[index] = v; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - - /** - * Produces a new collection of values by mapping each value in `coll` through - * the `iteratee` function. The `iteratee` is called with an item from `coll` - * and a callback for when it has finished processing. Each of these callback - * takes 2 arguments: an `error`, and the transformed item from `coll`. If - * `iteratee` passes an error to its callback, the main `callback` (for the - * `map` function) is immediately called with the error. - * - * Note, that since this function applies the `iteratee` to each item in - * parallel, there is no guarantee that the `iteratee` functions will complete - * in order. However, the results array will be in the same order as the - * original `coll`. - * - * If `map` is passed an Object, the results will be an Array. The results - * will roughly be in the order of the original Objects' keys (but this can - * vary across JavaScript engines) - * - * @name map - * @static - * @memberOf module:Collections - * @method - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a - * transformed item. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Results is an Array of the - * transformed items from the `coll`. Invoked with (err, results). - * @example - * - * async.map(['file1','file2','file3'], fs.stat, function(err, results) { - * // results is now an array of stats for each file - * }); - */ - var map = doParallel(_asyncMap); - - /** - * Applies the provided arguments to each function in the array, calling - * `callback` after all functions have completed. If you only provide the first - * argument, `fns`, then it will return a function which lets you pass in the - * arguments as if it were a single function call. If more arguments are - * provided, `callback` is required while `args` is still optional. - * - * @name applyEach - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Array|Iterable|Object} fns - A collection of asynchronous functions - * to all call with the same arguments - * @param {...*} [args] - any number of separate arguments to pass to the - * function. - * @param {Function} [callback] - the final argument should be the callback, - * called when all functions have completed processing. - * @returns {Function} - If only the first argument, `fns`, is provided, it will - * return a function which lets you pass in the arguments as if it were a single - * function call. The signature is `(..args, callback)`. If invoked with any - * arguments, `callback` is required. - * @example - * - * async.applyEach([enableSearch, updateSchema], 'bucket', callback); - * - * // partial application example: - * async.each( - * buckets, - * async.applyEach([enableSearch, updateSchema]), - * callback - * ); - */ - applyEach$1(map); - - function doParallelLimit(fn) { - return function (obj, limit, iteratee, callback) { - return fn(_eachOfLimit(limit), obj, iteratee, callback); - }; - } - - /** - * The same as [`map`]{@link module:Collections.map} but runs a maximum of `limit` async operations at a time. - * - * @name mapLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.map]{@link module:Collections.map} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a transformed - * item. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Results is an array of the - * transformed items from the `coll`. Invoked with (err, results). - */ - var mapLimit = doParallelLimit(_asyncMap); - - /** - * The same as [`map`]{@link module:Collections.map} but runs only a single async operation at a time. - * - * @name mapSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.map]{@link module:Collections.map} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a - * transformed item. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Results is an array of the - * transformed items from the `coll`. Invoked with (err, results). - */ - var mapSeries = doLimit(mapLimit, 1); - - /** - * The same as [`applyEach`]{@link module:ControlFlow.applyEach} but runs only a single async operation at a time. - * - * @name applyEachSeries - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.applyEach]{@link module:ControlFlow.applyEach} - * @category Control Flow - * @param {Array|Iterable|Object} fns - A collection of asynchronous functions to all - * call with the same arguments - * @param {...*} [args] - any number of separate arguments to pass to the - * function. - * @param {Function} [callback] - the final argument should be the callback, - * called when all functions have completed processing. - * @returns {Function} - If only the first argument is provided, it will return - * a function which lets you pass in the arguments as if it were a single - * function call. - */ - applyEach$1(mapSeries); - - /** - * Creates a continuation function with some arguments already applied. - * - * Useful as a shorthand when combined with other control flow functions. Any - * arguments passed to the returned function are added to the arguments - * originally passed to apply. - * - * @name apply - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} function - The function you want to eventually apply all - * arguments to. Invokes with (arguments...). - * @param {...*} arguments... - Any number of arguments to automatically apply - * when the continuation is called. - * @example - * - * // using apply - * async.parallel([ - * async.apply(fs.writeFile, 'testfile1', 'test1'), - * async.apply(fs.writeFile, 'testfile2', 'test2') - * ]); - * - * - * // the same process without using apply - * async.parallel([ - * function(callback) { - * fs.writeFile('testfile1', 'test1', callback); - * }, - * function(callback) { - * fs.writeFile('testfile2', 'test2', callback); - * } - * ]); - * - * // It's possible to pass any number of additional arguments when calling the - * // continuation: - * - * node> var fn = async.apply(sys.puts, 'one'); - * node> fn('two', 'three'); - * one - * two - * three - */ - rest(function(fn, args) { - return rest(function(callArgs) { - return fn.apply(null, args.concat(callArgs)); - }); - }); - - /** - * A specialized version of `_.forEach` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEach(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; - } - - /** - * Creates a base function for methods like `_.forIn` and `_.forOwn`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; - - while (length--) { - var key = props[fromRight ? length : ++index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - - /** - * The base implementation of `baseForOwn` which iterates over `object` - * properties returned by `keysFunc` and invokes `iteratee` for each property. - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseFor = createBaseFor(); - - /** - * The base implementation of `_.forOwn` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwn(object, iteratee) { - return object && baseFor(object, iteratee, keys); - } - - /** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); - - while ((fromRight ? index-- : ++index < length)) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.isNaN` without support for number objects. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - */ - function baseIsNaN(value) { - return value !== value; - } - - /** - * A specialized version of `_.indexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOf(array, value, fromIndex) { - return value === value - ? strictIndexOf(array, value, fromIndex) - : baseFindIndex(array, baseIsNaN, fromIndex); - } - - /** - * Determines the best order for running the functions in `tasks`, based on - * their requirements. Each function can optionally depend on other functions - * being completed first, and each function is run as soon as its requirements - * are satisfied. - * - * If any of the functions pass an error to their callback, the `auto` sequence - * will stop. Further tasks will not execute (so any other functions depending - * on it will not run), and the main `callback` is immediately called with the - * error. - * - * Functions also receive an object containing the results of functions which - * have completed so far as the first argument, if they have dependencies. If a - * task function has no dependencies, it will only be passed a callback. - * - * @name auto - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Object} tasks - An object. Each of its properties is either a - * function or an array of requirements, with the function itself the last item - * in the array. The object's key of a property serves as the name of the task - * defined by that property, i.e. can be used when specifying requirements for - * other tasks. The function receives one or two arguments: - * * a `results` object, containing the results of the previously executed - * functions, only passed if the task has any dependencies, - * * a `callback(err, result)` function, which must be called when finished, - * passing an `error` (which can be `null`) and the result of the function's - * execution. - * @param {number} [concurrency=Infinity] - An optional `integer` for - * determining the maximum number of tasks that can be run in parallel. By - * default, as many as possible. - * @param {Function} [callback] - An optional callback which is called when all - * the tasks have been completed. It receives the `err` argument if any `tasks` - * pass an error to their callback. Results are always returned; however, if an - * error occurs, no further `tasks` will be performed, and the results object - * will only contain partial results. Invoked with (err, results). - * @returns undefined - * @example - * - * async.auto({ - * // this function will just be passed a callback - * readData: async.apply(fs.readFile, 'data.txt', 'utf-8'), - * showData: ['readData', function(results, cb) { - * // results.readData is the file's contents - * // ... - * }] - * }, callback); - * - * async.auto({ - * get_data: function(callback) { - * console.log('in get_data'); - * // async code to get some data - * callback(null, 'data', 'converted to array'); - * }, - * make_folder: function(callback) { - * console.log('in make_folder'); - * // async code to create a directory to store a file in - * // this is run at the same time as getting the data - * callback(null, 'folder'); - * }, - * write_file: ['get_data', 'make_folder', function(results, callback) { - * console.log('in write_file', JSON.stringify(results)); - * // once there is some data and the directory exists, - * // write the data to a file in the directory - * callback(null, 'filename'); - * }], - * email_link: ['write_file', function(results, callback) { - * console.log('in email_link', JSON.stringify(results)); - * // once the file is written let's email a link to it... - * // results.write_file contains the filename returned by write_file. - * callback(null, {'file':results.write_file, 'email':'user@example.com'}); - * }] - * }, function(err, results) { - * console.log('err = ', err); - * console.log('results = ', results); - * }); - */ - - /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - - /** - * The base implementation of `_.slice` without an iteratee call guard. - * - * @private - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - - /** - * Converts an ASCII `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - - /** Used to compose unicode character classes. */ - - /** Used to compose unicode character classes. */ - var rsAstralRange$1 = '\\ud800-\\udfff'; - var rsComboMarksRange$1 = '\\u0300-\\u036f'; - var reComboHalfMarksRange$1 = '\\ufe20-\\ufe2f'; - var rsComboSymbolsRange$1 = '\\u20d0-\\u20ff'; - var rsComboRange$1 = rsComboMarksRange$1 + reComboHalfMarksRange$1 + rsComboSymbolsRange$1; - var rsVarRange$1 = '\\ufe0e\\ufe0f'; - - /** Used to compose unicode capture groups. */ - var rsAstral = '[' + rsAstralRange$1 + ']'; - var rsCombo = '[' + rsComboRange$1 + ']'; - var rsFitz = '\\ud83c[\\udffb-\\udfff]'; - var rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')'; - var rsNonAstral = '[^' + rsAstralRange$1 + ']'; - var rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}'; - var rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]'; - var rsZWJ$1 = '\\u200d'; - - /** Used to compose unicode regexes. */ - var reOptMod = rsModifier + '?'; - var rsOptVar = '[' + rsVarRange$1 + ']?'; - var rsOptJoin = '(?:' + rsZWJ$1 + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*'; - var rsSeq = rsOptVar + reOptMod + rsOptJoin; - var rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; - - var hasSetImmediate = typeof setImmediate === 'function' && setImmediate; - var hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function'; - - function fallback(fn) { - setTimeout(fn, 0); - } - - function wrap(defer) { - return rest(function (fn, args) { - defer(function () { - fn.apply(null, args); - }); - }); - } - - var _defer; - - if (hasSetImmediate) { - _defer = setImmediate; - } else if (hasNextTick) { - _defer = process.nextTick; - } else { - _defer = fallback; - } - - wrap(_defer); - - // Simple doubly linked list (https://en.wikipedia.org/wiki/Doubly_linked_list) implementation - // used for queues. This implementation assumes that the node provided by the user can be modified - // to adjust the next and last properties. We implement only the minimal functionality - // for queue support. - - /** - * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time. - * - * @name eachOfSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.eachOf]{@link module:Collections.eachOf} - * @alias forEachOfSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. The - * `key` is the item's key, or index in the case of an array. The iteratee is - * passed a `callback(err)` which must be called once it has completed. If no - * error has occurred, the callback should be run without arguments or with an - * explicit `null` argument. Invoked with (item, key, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Invoked with (err). - */ - var eachOfSeries = doLimit(eachOfLimit, 1); - - /** - * Reduces `coll` into a single value using an async `iteratee` to return each - * successive step. `memo` is the initial state of the reduction. This function - * only operates in series. - * - * For performance reasons, it may make sense to split a call to this function - * into a parallel map, and then use the normal `Array.prototype.reduce` on the - * results. This function is for situations where each step in the reduction - * needs to be async; if you can get the data before reducing it, then it's - * probably a good idea to do so. - * - * @name reduce - * @static - * @memberOf module:Collections - * @method - * @alias inject - * @alias foldl - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {*} memo - The initial state of the reduction. - * @param {Function} iteratee - A function applied to each item in the - * array to produce the next step in the reduction. The `iteratee` is passed a - * `callback(err, reduction)` which accepts an optional error as its first - * argument, and the state of the reduction as the second. If an error is - * passed to the callback, the reduction is stopped and the main `callback` is - * immediately called with the error. Invoked with (memo, item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result is the reduced value. Invoked with - * (err, result). - * @example - * - * async.reduce([1,2,3], 0, function(memo, item, callback) { - * // pointless async: - * process.nextTick(function() { - * callback(null, memo + item) - * }); - * }, function(err, result) { - * // result is now equal to the last value of memo, which is 6 - * }); - */ - function reduce(coll, memo, iteratee, callback) { - callback = once(callback || noop); - eachOfSeries(coll, function(x, i, callback) { - iteratee(memo, x, function(err, v) { - memo = v; - callback(err); - }); - }, function(err) { - callback(err, memo); - }); - } - - /** - * Version of the compose function that is more natural to read. Each function - * consumes the return value of the previous function. It is the equivalent of - * [compose]{@link module:ControlFlow.compose} with the arguments reversed. - * - * Each function is executed with the `this` binding of the composed function. - * - * @name seq - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.compose]{@link module:ControlFlow.compose} - * @category Control Flow - * @param {...Function} functions - the asynchronous functions to compose - * @returns {Function} a function that composes the `functions` in order - * @example - * - * // Requires lodash (or underscore), express3 and dresende's orm2. - * // Part of an app, that fetches cats of the logged user. - * // This example uses `seq` function to avoid overnesting and error - * // handling clutter. - * app.get('/cats', function(request, response) { - * var User = request.models.User; - * async.seq( - * _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) - * function(user, fn) { - * user.getCats(fn); // 'getCats' has signature (callback(err, data)) - * } - * )(req.session.user_id, function (err, cats) { - * if (err) { - * console.error(err); - * response.json({ status: 'error', message: err.message }); - * } else { - * response.json({ status: 'ok', message: 'Cats found', data: cats }); - * } - * }); - * }); - */ - var seq = rest(function seq(functions) { - return rest(function(args) { - var that = this; - - var cb = args[args.length - 1]; - if (typeof cb == 'function') { - args.pop(); - } else { - cb = noop; - } - - reduce(functions, args, function(newargs, fn, cb) { - fn.apply(that, newargs.concat(rest(function(err, nextargs) { - cb(err, nextargs); - }))); - }, - function(err, results) { - cb.apply(that, [err].concat(results)); - }); - }); - }); - - /** - * Creates a function which is a composition of the passed asynchronous - * functions. Each function consumes the return value of the function that - * follows. Composing functions `f()`, `g()`, and `h()` would produce the result - * of `f(g(h()))`, only this version uses callbacks to obtain the return values. - * - * Each function is executed with the `this` binding of the composed function. - * - * @name compose - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {...Function} functions - the asynchronous functions to compose - * @returns {Function} an asynchronous function that is the composed - * asynchronous `functions` - * @example - * - * function add1(n, callback) { - * setTimeout(function () { - * callback(null, n + 1); - * }, 10); - * } - * - * function mul3(n, callback) { - * setTimeout(function () { - * callback(null, n * 3); - * }, 10); - * } - * - * var add1mul3 = async.compose(mul3, add1); - * add1mul3(4, function (err, result) { - * // result now equals 15 - * }); - */ - rest(function(args) { - return seq.apply(null, args.reverse()); - }); - - /** - * Applies `iteratee` to each item in `coll`, concatenating the results. Returns - * the concatenated list. The `iteratee`s are called in parallel, and the - * results are concatenated as they return. There is no guarantee that the - * results array will be returned in the original order of `coll` passed to the - * `iteratee` function. - * - * @name concat - * @static - * @memberOf module:Collections - * @method - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, results)` which must be called once - * it has completed with an error (which can be `null`) and an array of results. - * Invoked with (item, callback). - * @param {Function} [callback(err)] - A callback which is called after all the - * `iteratee` functions have finished, or an error occurs. Results is an array - * containing the concatenated results of the `iteratee` function. Invoked with - * (err, results). - * @example - * - * async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files) { - * // files is now a list of filenames that exist in the 3 directories - * }); - */ - - /** - * The same as [`concat`]{@link module:Collections.concat} but runs only a single async operation at a time. - * - * @name concatSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.concat]{@link module:Collections.concat} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, results)` which must be called once - * it has completed with an error (which can be `null`) and an array of results. - * Invoked with (item, callback). - * @param {Function} [callback(err)] - A callback which is called after all the - * `iteratee` functions have finished, or an error occurs. Results is an array - * containing the concatenated results of the `iteratee` function. Invoked with - * (err, results). - */ - - /** - * Returns a function that when called, calls-back with the values provided. - * Useful as the first function in a [`waterfall`]{@link module:ControlFlow.waterfall}, or for plugging values in to - * [`auto`]{@link module:ControlFlow.auto}. - * - * @name constant - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {...*} arguments... - Any number of arguments to automatically invoke - * callback with. - * @returns {Function} Returns a function that when invoked, automatically - * invokes the callback with the previous given arguments. - * @example - * - * async.waterfall([ - * async.constant(42), - * function (value, next) { - * // value === 42 - * }, - * //... - * ], callback); - * - * async.waterfall([ - * async.constant(filename, "utf8"), - * fs.readFile, - * function (fileData, next) { - * //... - * } - * //... - * ], callback); - * - * async.auto({ - * hostname: async.constant("https://server.net/"), - * port: findFreePort, - * launchServer: ["hostname", "port", function (options, cb) { - * startServer(options, cb); - * }], - * //... - * }, callback); - */ - rest(function(values) { - var args = [null].concat(values); - return initialParams(function (ignoredArgs, callback) { - return callback.apply(this, args); - }); - }); - - /** - * Returns the first value in `coll` that passes an async truth test. The - * `iteratee` is applied in parallel, meaning the first iteratee to return - * `true` will fire the detect `callback` with that result. That means the - * result might not be the first item in the original `coll` (in terms of order) - * that passes the test. - - * If order within the original `coll` is important, then look at - * [`detectSeries`]{@link module:Collections.detectSeries}. - * - * @name detect - * @static - * @memberOf module:Collections - * @method - * @alias find - * @category Collections - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The iteratee is passed a `callback(err, truthValue)` which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the `iteratee` functions have finished. - * Result will be the first item in the array that passes the truth test - * (iteratee) or the value `undefined` if none passed. Invoked with - * (err, result). - * @example - * - * async.detect(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, result) { - * // result now equals the first file in the list that exists - * }); - */ - - /** - * The same as [`detect`]{@link module:Collections.detect} but runs a maximum of `limit` async operations at a - * time. - * - * @name detectLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.detect]{@link module:Collections.detect} - * @alias findLimit - * @category Collections - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The iteratee is passed a `callback(err, truthValue)` which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the `iteratee` functions have finished. - * Result will be the first item in the array that passes the truth test - * (iteratee) or the value `undefined` if none passed. Invoked with - * (err, result). - */ - - /** - * The same as [`detect`]{@link module:Collections.detect} but runs only a single async operation at a time. - * - * @name detectSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.detect]{@link module:Collections.detect} - * @alias findSeries - * @category Collections - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The iteratee is passed a `callback(err, truthValue)` which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the `iteratee` functions have finished. - * Result will be the first item in the array that passes the truth test - * (iteratee) or the value `undefined` if none passed. Invoked with - * (err, result). - */ - - function consoleFunc(name) { - return rest(function (fn, args) { - fn.apply(null, args.concat(rest(function (err, args) { - if (typeof console === 'object') { - if (err) { - if (console.error) { - console.error(err); - } - } - else if (console[name]) { - arrayEach(args, function (x) { - console[name](x); - }); - } - } - }))); - }); - } - - /** - * Logs the result of an `async` function to the `console` using `console.dir` - * to display the properties of the resulting object. Only works in Node.js or - * in browsers that support `console.dir` and `console.error` (such as FF and - * Chrome). If multiple arguments are returned from the async function, - * `console.dir` is called on each argument in order. - * - * @name dir - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} function - The function you want to eventually apply all - * arguments to. - * @param {...*} arguments... - Any number of arguments to apply to the function. - * @example - * - * // in a module - * var hello = function(name, callback) { - * setTimeout(function() { - * callback(null, {hello: name}); - * }, 1000); - * }; - * - * // in the node repl - * node> async.dir(hello, 'world'); - * {hello: 'world'} - */ - consoleFunc('dir'); - - function _withoutIndex(iteratee) { - return function (value, index, callback) { - return iteratee(value, callback); - }; - } - - /** - * Applies the function `iteratee` to each item in `coll`, in parallel. - * The `iteratee` is called with an item from the list, and a callback for when - * it has finished. If the `iteratee` passes an error to its `callback`, the - * main `callback` (for the `each` function) is immediately called with the - * error. - * - * Note, that since this function applies `iteratee` to each item in parallel, - * there is no guarantee that the iteratee functions will complete in order. - * - * @name each - * @static - * @memberOf module:Collections - * @method - * @alias forEach - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item - * in `coll`. The iteratee is passed a `callback(err)` which must be called once - * it has completed. If no error has occurred, the `callback` should be run - * without arguments or with an explicit `null` argument. The array index is not - * passed to the iteratee. Invoked with (item, callback). If you need the index, - * use `eachOf`. - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - * @example - * - * // assuming openFiles is an array of file names and saveFile is a function - * // to save the modified contents of that file: - * - * async.each(openFiles, saveFile, function(err){ - * // if any of the saves produced an error, err would equal that error - * }); - * - * // assuming openFiles is an array of file names - * async.each(openFiles, function(file, callback) { - * - * // Perform operation on file here. - * console.log('Processing file ' + file); - * - * if( file.length > 32 ) { - * console.log('This file name is too long'); - * callback('File name too long'); - * } else { - * // Do work to process file here - * console.log('File processed'); - * callback(); - * } - * }, function(err) { - * // if any of the file processing produced an error, err would equal that error - * if( err ) { - * // One of the iterations produced an error. - * // All processing will now stop. - * console.log('A file failed to process'); - * } else { - * console.log('All files have been processed successfully'); - * } - * }); - */ - function eachLimit(coll, iteratee, callback) { - eachOf(coll, _withoutIndex(iteratee), callback); - } - - /** - * The same as [`each`]{@link module:Collections.each} but runs only a single async operation at a time. - * - * @name eachSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.each]{@link module:Collections.each} - * @alias forEachSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each - * item in `coll`. The iteratee is passed a `callback(err)` which must be called - * once it has completed. If no error has occurred, the `callback` should be run - * without arguments or with an explicit `null` argument. The array index is - * not passed to the iteratee. Invoked with (item, callback). If you need the - * index, use `eachOfSeries`. - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - */ - - /** - * Returns `true` if every element in `coll` satisfies an async test. If any - * iteratee call returns `false`, the main `callback` is immediately called. - * - * @name every - * @static - * @memberOf module:Collections - * @method - * @alias all - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the - * collection in parallel. The iteratee is passed a `callback(err, truthValue)` - * which must be called with a boolean argument once it has completed. Invoked - * with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result will be either `true` or `false` - * depending on the values of the async tests. Invoked with (err, result). - * @example - * - * async.every(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, result) { - * // if result is true then every file exists - * }); - */ - - /** - * The same as [`every`]{@link module:Collections.every} but runs a maximum of `limit` async operations at a time. - * - * @name everyLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.every]{@link module:Collections.every} - * @alias allLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in the - * collection in parallel. The iteratee is passed a `callback(err, truthValue)` - * which must be called with a boolean argument once it has completed. Invoked - * with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result will be either `true` or `false` - * depending on the values of the async tests. Invoked with (err, result). - */ - - /** - * The same as [`every`]{@link module:Collections.every} but runs only a single async operation at a time. - * - * @name everySeries - * @static - * @memberOf module:Collections - * @method - * @see [async.every]{@link module:Collections.every} - * @alias allSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the - * collection in parallel. The iteratee is passed a `callback(err, truthValue)` - * which must be called with a boolean argument once it has completed. Invoked - * with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result will be either `true` or `false` - * depending on the values of the async tests. Invoked with (err, result). - */ - - /** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ - - /** - * Returns a new array of all the values in `coll` which pass an async truth - * test. This operation is performed in parallel, but the results array will be - * in the same order as the original. - * - * @name filter - * @static - * @memberOf module:Collections - * @method - * @alias select - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - * @example - * - * async.filter(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, results) { - * // results now equals an array of the existing files - * }); - */ - - /** - * The same as [`filter`]{@link module:Collections.filter} but runs a maximum of `limit` async operations at a - * time. - * - * @name filterLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.filter]{@link module:Collections.filter} - * @alias selectLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - */ - - /** - * The same as [`filter`]{@link module:Collections.filter} but runs only a single async operation at a time. - * - * @name filterSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.filter]{@link module:Collections.filter} - * @alias selectSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results) - */ - - /** - * Logs the result of an `async` function to the `console`. Only works in - * Node.js or in browsers that support `console.log` and `console.error` (such - * as FF and Chrome). If multiple arguments are returned from the async - * function, `console.log` is called on each argument in order. - * - * @name log - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} function - The function you want to eventually apply all - * arguments to. - * @param {...*} arguments... - Any number of arguments to apply to the function. - * @example - * - * // in a module - * var hello = function(name, callback) { - * setTimeout(function() { - * callback(null, 'hello ' + name); - * }, 1000); - * }; - * - * // in the node repl - * node> async.log(hello, 'world'); - * 'hello world' - */ - consoleFunc('log'); - - /** - * A relative of [`map`]{@link module:Collections.map}, designed for use with objects. - * - * Produces a new Object by mapping each value of `obj` through the `iteratee` - * function. The `iteratee` is called each `value` and `key` from `obj` and a - * callback for when it has finished processing. Each of these callbacks takes - * two arguments: an `error`, and the transformed item from `obj`. If `iteratee` - * passes an error to its callback, the main `callback` (for the `mapValues` - * function) is immediately called with the error. - * - * Note, the order of the keys in the result is not guaranteed. The keys will - * be roughly in the order they complete, (but this is very engine-specific) - * - * @name mapValues - * @static - * @memberOf module:Collections - * @method - * @category Collection - * @param {Object} obj - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each value and key in - * `coll`. The iteratee is passed a `callback(err, transformed)` which must be - * called once it has completed with an error (which can be `null`) and a - * transformed value. Invoked with (value, key, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. `result` is a new object consisting - * of each key from `obj`, with each transformed value on the right-hand side. - * Invoked with (err, result). - * @example - * - * async.mapValues({ - * f1: 'file1', - * f2: 'file2', - * f3: 'file3' - * }, function (file, key, callback) { - * fs.stat(file, callback); - * }, function(err, result) { - * // result is now a map of stats for each file, e.g. - * // { - * // f1: [stats for file1], - * // f2: [stats for file2], - * // f3: [stats for file3] - * // } - * }); - */ - - /** - * The same as [`mapValues`]{@link module:Collections.mapValues} but runs only a single async operation at a time. - * - * @name mapValuesSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.mapValues]{@link module:Collections.mapValues} - * @category Collection - * @param {Object} obj - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each value in `obj`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a - * transformed value. Invoked with (value, key, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. `result` is a new object consisting - * of each key from `obj`, with each transformed value on the right-hand side. - * Invoked with (err, result). - */ - - /** - * Calls `callback` on a later loop around the event loop. In Node.js this just - * calls `setImmediate`. In the browser it will use `setImmediate` if - * available, otherwise `setTimeout(callback, 0)`, which means other higher - * priority events may precede the execution of `callback`. - * - * This is used internally for browser-compatibility purposes. - * - * @name nextTick - * @static - * @memberOf module:Utils - * @method - * @alias setImmediate - * @category Util - * @param {Function} callback - The function to call on a later loop around - * the event loop. Invoked with (args...). - * @param {...*} args... - any number of additional arguments to pass to the - * callback on the next tick. - * @example - * - * var call_order = []; - * async.nextTick(function() { - * call_order.push('two'); - * // call_order now equals ['one','two'] - * }); - * call_order.push('one'); - * - * async.setImmediate(function (a, b, c) { - * // a, b, and c equal 1, 2, and 3 - * }, 1, 2, 3); - */ - var _defer$1; - - if (hasNextTick) { - _defer$1 = process.nextTick; - } else if (hasSetImmediate) { - _defer$1 = setImmediate; - } else { - _defer$1 = fallback; - } - - wrap(_defer$1); - - /** - * Calls `callback` on a later loop around the event loop. In Node.js this just - * calls `setImmediate`. In the browser it will use `setImmediate` if - * available, otherwise `setTimeout(callback, 0)`, which means other higher - * priority events may precede the execution of `callback`. - * - * This is used internally for browser-compatibility purposes. - * - * @name setImmediate - * @static - * @memberOf module:Utils - * @method - * @alias nextTick - * @category Util - * @param {Function} callback - The function to call on a later loop around - * the event loop. Invoked with (args...). - * @param {...*} args... - any number of additional arguments to pass to the - * callback on the next tick. - * @example - * - * var call_order = []; - * async.nextTick(function() { - * call_order.push('two'); - * // call_order now equals ['one','two'] - * }); - * call_order.push('one'); - * - * async.setImmediate(function (a, b, c) { - * // a, b, and c equal 1, 2, and 3 - * }, 1, 2, 3); - */ - - /** - * A queue of tasks for the worker function to complete. - * @typedef {Object} QueueObject - * @memberOf module:ControlFlow - * @property {Function} length - a function returning the number of items - * waiting to be processed. Invoke with `queue.length()`. - * @property {boolean} started - a boolean indicating whether or not any - * items have been pushed and processed by the queue. - * @property {Function} running - a function returning the number of items - * currently being processed. Invoke with `queue.running()`. - * @property {Function} workersList - a function returning the array of items - * currently being processed. Invoke with `queue.workersList()`. - * @property {Function} idle - a function returning false if there are items - * waiting or being processed, or true if not. Invoke with `queue.idle()`. - * @property {number} concurrency - an integer for determining how many `worker` - * functions should be run in parallel. This property can be changed after a - * `queue` is created to alter the concurrency on-the-fly. - * @property {Function} push - add a new task to the `queue`. Calls `callback` - * once the `worker` has finished processing the task. Instead of a single task, - * a `tasks` array can be submitted. The respective callback is used for every - * task in the list. Invoke with `queue.push(task, [callback])`, - * @property {Function} unshift - add a new task to the front of the `queue`. - * Invoke with `queue.unshift(task, [callback])`. - * @property {Function} saturated - a callback that is called when the number of - * running workers hits the `concurrency` limit, and further tasks will be - * queued. - * @property {Function} unsaturated - a callback that is called when the number - * of running workers is less than the `concurrency` & `buffer` limits, and - * further tasks will not be queued. - * @property {number} buffer - A minimum threshold buffer in order to say that - * the `queue` is `unsaturated`. - * @property {Function} empty - a callback that is called when the last item - * from the `queue` is given to a `worker`. - * @property {Function} drain - a callback that is called when the last item - * from the `queue` has returned from the `worker`. - * @property {Function} error - a callback that is called when a task errors. - * Has the signature `function(error, task)`. - * @property {boolean} paused - a boolean for determining whether the queue is - * in a paused state. - * @property {Function} pause - a function that pauses the processing of tasks - * until `resume()` is called. Invoke with `queue.pause()`. - * @property {Function} resume - a function that resumes the processing of - * queued tasks when the queue is paused. Invoke with `queue.resume()`. - * @property {Function} kill - a function that removes the `drain` callback and - * empties remaining tasks from the queue forcing it to go idle. Invoke with `queue.kill()`. - */ - - /** - * Creates a `queue` object with the specified `concurrency`. Tasks added to the - * `queue` are processed in parallel (up to the `concurrency` limit). If all - * `worker`s are in progress, the task is queued until one becomes available. - * Once a `worker` completes a `task`, that `task`'s callback is called. - * - * @name queue - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Function} worker - An asynchronous function for processing a queued - * task, which must call its `callback(err)` argument when finished, with an - * optional `error` as an argument. If you want to handle errors from an - * individual task, pass a callback to `q.push()`. Invoked with - * (task, callback). - * @param {number} [concurrency=1] - An `integer` for determining how many - * `worker` functions should be run in parallel. If omitted, the concurrency - * defaults to `1`. If the concurrency is `0`, an error is thrown. - * @returns {module:ControlFlow.QueueObject} A queue object to manage the tasks. Callbacks can - * attached as certain properties to listen for specific events during the - * lifecycle of the queue. - * @example - * - * // create a queue object with concurrency 2 - * var q = async.queue(function(task, callback) { - * console.log('hello ' + task.name); - * callback(); - * }, 2); - * - * // assign a callback - * q.drain = function() { - * console.log('all items have been processed'); - * }; - * - * // add some items to the queue - * q.push({name: 'foo'}, function(err) { - * console.log('finished processing foo'); - * }); - * q.push({name: 'bar'}, function (err) { - * console.log('finished processing bar'); - * }); - * - * // add some items to the queue (batch-wise) - * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) { - * console.log('finished processing item'); - * }); - * - * // add some items to the front of the queue - * q.unshift({name: 'bar'}, function (err) { - * console.log('finished processing bar'); - * }); - */ - - /** - * The same as [async.queue]{@link module:ControlFlow.queue} only tasks are assigned a priority and - * completed in ascending priority order. - * - * @name priorityQueue - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.queue]{@link module:ControlFlow.queue} - * @category Control Flow - * @param {Function} worker - An asynchronous function for processing a queued - * task, which must call its `callback(err)` argument when finished, with an - * optional `error` as an argument. If you want to handle errors from an - * individual task, pass a callback to `q.push()`. Invoked with - * (task, callback). - * @param {number} concurrency - An `integer` for determining how many `worker` - * functions should be run in parallel. If omitted, the concurrency defaults to - * `1`. If the concurrency is `0`, an error is thrown. - * @returns {module:ControlFlow.QueueObject} A priorityQueue object to manage the tasks. There are two - * differences between `queue` and `priorityQueue` objects: - * * `push(task, priority, [callback])` - `priority` should be a number. If an - * array of `tasks` is given, all tasks will be assigned the same priority. - * * The `unshift` method was removed. - */ - - /** - * The opposite of [`filter`]{@link module:Collections.filter}. Removes values that pass an `async` truth test. - * - * @name reject - * @static - * @memberOf module:Collections - * @method - * @see [async.filter]{@link module:Collections.filter} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - * @example - * - * async.reject(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, results) { - * // results now equals an array of missing files - * createFiles(results); - * }); - */ - - /** - * The same as [`reject`]{@link module:Collections.reject} but runs a maximum of `limit` async operations at a - * time. - * - * @name rejectLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.reject]{@link module:Collections.reject} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - */ - - /** - * The same as [`reject`]{@link module:Collections.reject} but runs only a single async operation at a time. - * - * @name rejectSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.reject]{@link module:Collections.reject} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - */ - - /** - * Creates a function that returns `value`. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Util - * @param {*} value The value to return from the new function. - * @returns {Function} Returns the new constant function. - * @example - * - * var objects = _.times(2, _.constant({ 'a': 1 })); - * - * console.log(objects); - * // => [{ 'a': 1 }, { 'a': 1 }] - * - * console.log(objects[0] === objects[1]); - * // => true - */ - - /** - * A close relative of [`retry`]{@link module:ControlFlow.retry}. This method wraps a task and makes it - * retryable, rather than immediately calling it with retries. - * - * @name retryable - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.retry]{@link module:ControlFlow.retry} - * @category Control Flow - * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional - * options, exactly the same as from `retry` - * @param {Function} task - the asynchronous function to wrap - * @returns {Functions} The wrapped function, which when invoked, will retry on - * an error, based on the parameters specified in `opts`. - * @example - * - * async.auto({ - * dep1: async.retryable(3, getFromFlakyService), - * process: ["dep1", async.retryable(3, function (results, cb) { - * maybeProcessData(results.dep1, cb); - * })] - * }, callback); - */ - - /** - * Returns `true` if at least one element in the `coll` satisfies an async test. - * If any iteratee call returns `true`, the main `callback` is immediately - * called. - * - * @name some - * @static - * @memberOf module:Collections - * @method - * @alias any - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the array - * in parallel. The iteratee is passed a `callback(err, truthValue)` which must - * be called with a boolean argument once it has completed. Invoked with - * (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the iteratee functions have finished. - * Result will be either `true` or `false` depending on the values of the async - * tests. Invoked with (err, result). - * @example - * - * async.some(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, result) { - * // if result is true then at least one of the files exists - * }); - */ - - /** - * The same as [`some`]{@link module:Collections.some} but runs a maximum of `limit` async operations at a time. - * - * @name someLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.some]{@link module:Collections.some} - * @alias anyLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in the array - * in parallel. The iteratee is passed a `callback(err, truthValue)` which must - * be called with a boolean argument once it has completed. Invoked with - * (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the iteratee functions have finished. - * Result will be either `true` or `false` depending on the values of the async - * tests. Invoked with (err, result). - */ - - /** - * The same as [`some`]{@link module:Collections.some} but runs only a single async operation at a time. - * - * @name someSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.some]{@link module:Collections.some} - * @alias anySeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the array - * in parallel. The iteratee is passed a `callback(err, truthValue)` which must - * be called with a boolean argument once it has completed. Invoked with - * (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the iteratee functions have finished. - * Result will be either `true` or `false` depending on the values of the async - * tests. Invoked with (err, result). - */ - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeCeil = Math.ceil; - var nativeMax$1 = Math.max; - - /** - * Calls the `iteratee` function `n` times, and accumulates results in the same - * manner you would use with [map]{@link module:Collections.map}. - * - * @name times - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.map]{@link module:Collections.map} - * @category Control Flow - * @param {number} n - The number of times to run the function. - * @param {Function} iteratee - The function to call `n` times. Invoked with the - * iteration index and a callback (n, next). - * @param {Function} callback - see {@link module:Collections.map}. - * @example - * - * // Pretend this is some complicated async factory - * var createUser = function(id, callback) { - * callback(null, { - * id: 'user' + id - * }); - * }; - * - * // generate 5 users - * async.times(5, function(n, next) { - * createUser(n, function(err, user) { - * next(err, user); - * }); - * }, function(err, users) { - * // we should now have 5 users - * }); - */ - - /** - * The same as [times]{@link module:ControlFlow.times} but runs only a single async operation at a time. - * - * @name timesSeries - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.times]{@link module:ControlFlow.times} - * @category Control Flow - * @param {number} n - The number of times to run the function. - * @param {Function} iteratee - The function to call `n` times. Invoked with the - * iteration index and a callback (n, next). - * @param {Function} callback - see {@link module:Collections.map}. - */ - - /** - * Undoes a [memoize]{@link module:Utils.memoize}d function, reverting it to the original, - * unmemoized form. Handy for testing. - * - * @name unmemoize - * @static - * @memberOf module:Utils - * @method - * @see [async.memoize]{@link module:Utils.memoize} - * @category Util - * @param {Function} fn - the memoized function - * @returns {Function} a function that calls the original unmemoized function - */ - - /** - * Runs the `tasks` array of functions in series, each passing their results to - * the next in the array. However, if any of the `tasks` pass an error to their - * own callback, the next function is not executed, and the main `callback` is - * immediately called with the error. - * - * @name waterfall - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Array} tasks - An array of functions to run, each function is passed - * a `callback(err, result1, result2, ...)` it must call on completion. The - * first argument is an error (which can be `null`) and any further arguments - * will be passed as arguments in order to the next task. - * @param {Function} [callback] - An optional callback to run once all the - * functions have completed. This will be passed the results of the last task's - * callback. Invoked with (err, [results]). - * @returns undefined - * @example - * - * async.waterfall([ - * function(callback) { - * callback(null, 'one', 'two'); - * }, - * function(arg1, arg2, callback) { - * // arg1 now equals 'one' and arg2 now equals 'two' - * callback(null, 'three'); - * }, - * function(arg1, callback) { - * // arg1 now equals 'three' - * callback(null, 'done'); - * } - * ], function (err, result) { - * // result now equals 'done' - * }); - * - * // Or, with named functions: - * async.waterfall([ - * myFirstFunction, - * mySecondFunction, - * myLastFunction, - * ], function (err, result) { - * // result now equals 'done' - * }); - * function myFirstFunction(callback) { - * callback(null, 'one', 'two'); - * } - * function mySecondFunction(arg1, arg2, callback) { - * // arg1 now equals 'one' and arg2 now equals 'two' - * callback(null, 'three'); - * } - * function myLastFunction(arg1, callback) { - * // arg1 now equals 'three' - * callback(null, 'done'); - * } - */ - - /** - * Async is a utility module which provides straight-forward, powerful functions - * for working with asynchronous JavaScript. Although originally designed for - * use with [Node.js](http://nodejs.org) and installable via - * `npm install --save async`, it can also be used directly in the browser. - * @module async - */ - - /** - * A collection of `async` functions for manipulating collections, such as - * arrays and objects. - * @module Collections - */ - - /** - * A collection of `async` functions for controlling the flow through a script. - * @module ControlFlow - */ - - /** - * A collection of `async` utility functions. - * @module Utils - */ - - /** - * @hidden - */ - var errorCodeLookup; - /** - * Lazily construct error code lookup, since DropboxJS might be loaded *after* BrowserFS (or not at all!) - * @hidden - */ - function constructErrorCodeLookup() { - if (errorCodeLookup) { - return; - } - errorCodeLookup = {}; - // This indicates a network transmission error on modern browsers. Internet Explorer might cause this code to be reported on some API server errors. - errorCodeLookup[Dropbox.ApiError.NETWORK_ERROR] = ErrorCode.EIO; - // This happens when the contentHash parameter passed to a Dropbox.Client#readdir or Dropbox.Client#stat matches the most recent content, so the API call response is omitted, to save bandwidth. - // errorCodeLookup[Dropbox.ApiError.NO_CONTENT]; - // The error property on {Dropbox.ApiError#response} should indicate which input parameter is invalid and why. - errorCodeLookup[Dropbox.ApiError.INVALID_PARAM] = ErrorCode.EINVAL; - // The OAuth token used for the request will never become valid again, so the user should be re-authenticated. - errorCodeLookup[Dropbox.ApiError.INVALID_TOKEN] = ErrorCode.EPERM; - // This indicates a bug in dropbox.js and should never occur under normal circumstances. - // ^ Actually, that's false. This occurs when you try to move folders to themselves, or move a file over another file. - errorCodeLookup[Dropbox.ApiError.OAUTH_ERROR] = ErrorCode.EPERM; - // This happens when trying to read from a non-existing file, readdir a non-existing directory, write a file into a non-existing directory, etc. - errorCodeLookup[Dropbox.ApiError.NOT_FOUND] = ErrorCode.ENOENT; - // This indicates a bug in dropbox.js and should never occur under normal circumstances. - errorCodeLookup[Dropbox.ApiError.INVALID_METHOD] = ErrorCode.EINVAL; - // This happens when a Dropbox.Client#readdir or Dropbox.Client#stat call would return more than a maximum amount of directory entries. - errorCodeLookup[Dropbox.ApiError.NOT_ACCEPTABLE] = ErrorCode.EINVAL; - // This is used by some backend methods to indicate that the client needs to download server-side changes and perform conflict resolution. Under normal usage, errors with this code should never surface to the code using dropbox.js. - errorCodeLookup[Dropbox.ApiError.CONFLICT] = ErrorCode.EINVAL; - // Status value indicating that the application is making too many requests. - errorCodeLookup[Dropbox.ApiError.RATE_LIMITED] = ErrorCode.EBUSY; - // The request should be retried after some time. - errorCodeLookup[Dropbox.ApiError.SERVER_ERROR] = ErrorCode.EBUSY; - // Status value indicating that the user's Dropbox is over its storage quota. - errorCodeLookup[Dropbox.ApiError.OVER_QUOTA] = ErrorCode.ENOSPC; - } - /** - * @hidden - */ - function isFileInfo(cache) { - return cache && cache.stat.isFile; - } - /** - * @hidden - */ - function isDirInfo(cache) { - return cache && cache.stat.isFolder; - } - /** - * @hidden - */ - function isArrayBuffer(ab) { - // Accept null / undefined, too. - return ab === null || ab === undefined || (typeof (ab) === 'object' && typeof (ab['byteLength']) === 'number'); - } - /** - * Wraps a Dropbox client and caches operations. - * @hidden - */ - var CachedDropboxClient = function CachedDropboxClient(client) { - this._cache = {}; - this._client = client; - }; - CachedDropboxClient.prototype.readdir = function readdir (p, cb) { - var this$1 = this; - - var cacheInfo = this.getCachedDirInfo(p); - this._wrap(function (interceptCb) { - if (cacheInfo !== null && cacheInfo.contents) { - this$1._client.readdir(p, { - contentHash: cacheInfo.stat.contentHash - }, interceptCb); - } - else { - this$1._client.readdir(p, interceptCb); - } - }, function (err, filenames, stat, folderEntries) { - if (err) { - if (err.status === Dropbox.ApiError.NO_CONTENT && cacheInfo !== null) { - cb(null, cacheInfo.contents.slice(0)); - } - else { - cb(err); - } - } - else { - this$1.updateCachedDirInfo(p, stat, filenames.slice(0)); - folderEntries.forEach(function (entry) { - this$1.updateCachedInfo(path.join(p, entry.name), entry); - }); - cb(null, filenames); - } - }); - }; - CachedDropboxClient.prototype.remove = function remove (p, cb) { - var this$1 = this; - - this._wrap(function (interceptCb) { - this$1._client.remove(p, interceptCb); - }, function (err, stat) { - if (!err) { - this$1.updateCachedInfo(p, stat); - } - cb(err); - }); - }; - CachedDropboxClient.prototype.move = function move (src, dest, cb) { - var this$1 = this; - - this._wrap(function (interceptCb) { - this$1._client.move(src, dest, interceptCb); - }, function (err, stat) { - if (!err) { - this$1.deleteCachedInfo(src); - this$1.updateCachedInfo(dest, stat); - } - cb(err); - }); - }; - CachedDropboxClient.prototype.stat = function stat (p, cb) { - var this$1 = this; - - this._wrap(function (interceptCb) { - this$1._client.stat(p, interceptCb); - }, function (err, stat) { - if (!err) { - this$1.updateCachedInfo(p, stat); - } - cb(err, stat); - }); - }; - CachedDropboxClient.prototype.readFile = function readFile (p, cb) { - var this$1 = this; - - var cacheInfo = this.getCachedFileInfo(p); - if (cacheInfo !== null && cacheInfo.contents !== null) { - // Try to use cached info; issue a stat to see if contents are up-to-date. - this.stat(p, function (error, stat) { - if (error) { - cb(error); - } - else if (stat.contentHash === cacheInfo.stat.contentHash) { - // No file changes. - cb(error, cacheInfo.contents.slice(0), cacheInfo.stat); - } - else { - // File changes; rerun to trigger actual readFile. - this$1.readFile(p, cb); - } - }); - } - else { - this._wrap(function (interceptCb) { - this$1._client.readFile(p, { arrayBuffer: true }, interceptCb); - }, function (err, contents, stat) { - if (!err) { - this$1.updateCachedInfo(p, stat, contents.slice(0)); - } - cb(err, contents, stat); - }); - } - }; - CachedDropboxClient.prototype.writeFile = function writeFile (p, contents, cb) { - var this$1 = this; - - this._wrap(function (interceptCb) { - this$1._client.writeFile(p, contents, interceptCb); - }, function (err, stat) { - if (!err) { - this$1.updateCachedInfo(p, stat, contents.slice(0)); - } - cb(err, stat); - }); - }; - CachedDropboxClient.prototype.mkdir = function mkdir (p, cb) { - var this$1 = this; - - this._wrap(function (interceptCb) { - this$1._client.mkdir(p, interceptCb); - }, function (err, stat) { - if (!err) { - this$1.updateCachedInfo(p, stat, []); - } - cb(err); - }); - }; - /** - * Wraps an operation such that we retry a failed operation 3 times. - * Necessary to deal with Dropbox rate limiting. - * - * @param performOp Function that performs the operation. Will be called up to three times. - * @param cb Called when the operation succeeds, fails in a non-temporary manner, or fails three times. - */ - CachedDropboxClient.prototype._wrap = function _wrap (performOp, cb) { - var numRun = 0; - var interceptCb = function (error) { - // Timeout duration, in seconds. - var timeoutDuration = 2; - if (error && 3 > (++numRun)) { - switch (error.status) { - case Dropbox.ApiError.SERVER_ERROR: - case Dropbox.ApiError.NETWORK_ERROR: - case Dropbox.ApiError.RATE_LIMITED: - setTimeout(function () { - performOp(interceptCb); - }, timeoutDuration * 1000); - break; - default: - cb.apply(null, arguments); - break; - } - } - else { - cb.apply(null, arguments); - } - }; - performOp(interceptCb); - }; - CachedDropboxClient.prototype.getCachedInfo = function getCachedInfo (p) { - return this._cache[p.toLowerCase()]; - }; - CachedDropboxClient.prototype.putCachedInfo = function putCachedInfo (p, cache) { - this._cache[p.toLowerCase()] = cache; - }; - CachedDropboxClient.prototype.deleteCachedInfo = function deleteCachedInfo (p) { - delete this._cache[p.toLowerCase()]; - }; - CachedDropboxClient.prototype.getCachedDirInfo = function getCachedDirInfo (p) { - var info = this.getCachedInfo(p); - if (isDirInfo(info)) { - return info; - } - else { - return null; - } - }; - CachedDropboxClient.prototype.getCachedFileInfo = function getCachedFileInfo (p) { - var info = this.getCachedInfo(p); - if (isFileInfo(info)) { - return info; - } - else { - return null; - } - }; - CachedDropboxClient.prototype.updateCachedDirInfo = function updateCachedDirInfo (p, stat, contents) { - if ( contents === void 0 ) contents = null; - - var cachedInfo = this.getCachedInfo(p); - // Dropbox uses the *contentHash* property for directories. - // Ignore stat objects w/o a contentHash defined; those actually exist!!! - // (Example: readdir returns an array of stat objs; stat objs for dirs in that context have no contentHash) - if (stat.contentHash !== null && (cachedInfo === undefined || cachedInfo.stat.contentHash !== stat.contentHash)) { - this.putCachedInfo(p, { - stat: stat, - contents: contents - }); - } - }; - CachedDropboxClient.prototype.updateCachedFileInfo = function updateCachedFileInfo (p, stat, contents) { - if ( contents === void 0 ) contents = null; - - var cachedInfo = this.getCachedInfo(p); - // Dropbox uses the *versionTag* property for files. - // Ignore stat objects w/o a versionTag defined. - if (stat.versionTag !== null && (cachedInfo === undefined || cachedInfo.stat.versionTag !== stat.versionTag)) { - this.putCachedInfo(p, { - stat: stat, - contents: contents - }); - } - }; - CachedDropboxClient.prototype.updateCachedInfo = function updateCachedInfo (p, stat, contents) { - if ( contents === void 0 ) contents = null; - - if (stat.isFile && isArrayBuffer(contents)) { - this.updateCachedFileInfo(p, stat, contents); - } - else if (stat.isFolder && Array.isArray(contents)) { - this.updateCachedDirInfo(p, stat, contents); - } - }; - var DropboxFile = (function (PreloadFile$$1) { - function DropboxFile(_fs, _path, _flag, _stat, contents) { - PreloadFile$$1.call(this, _fs, _path, _flag, _stat, contents); - } - - if ( PreloadFile$$1 ) DropboxFile.__proto__ = PreloadFile$$1; - DropboxFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype ); - DropboxFile.prototype.constructor = DropboxFile; - DropboxFile.prototype.sync = function sync (cb) { - var this$1 = this; - - if (this.isDirty()) { - var buffer$$1 = this.getBuffer(), arrayBuffer = buffer2ArrayBuffer(buffer$$1); - this._fs._writeFileStrict(this.getPath(), arrayBuffer, function (e) { - if (!e) { - this$1.resetDirty(); - } - cb(e); - }); - } - else { - cb(); - } - }; - DropboxFile.prototype.close = function close (cb) { - this.sync(cb); - }; - - return DropboxFile; - }(PreloadFile)); - /** - * A read/write file system backed by Dropbox cloud storage. - * - * Uses the Dropbox V1 API. - * - * NOTE: You must use the v0.10 version of the [Dropbox JavaScript SDK](https://www.npmjs.com/package/dropbox). - */ - var DropboxFileSystem = (function (BaseFileSystem$$1) { - function DropboxFileSystem(client, deprecateMsg) { - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - BaseFileSystem$$1.call(this); - this._client = new CachedDropboxClient(client); - deprecationMessage(deprecateMsg, DropboxFileSystem.Name, { client: "authenticated dropbox client instance" }); - constructErrorCodeLookup(); - } - - if ( BaseFileSystem$$1 ) DropboxFileSystem.__proto__ = BaseFileSystem$$1; - DropboxFileSystem.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - DropboxFileSystem.prototype.constructor = DropboxFileSystem; - /** - * Creates a new DropboxFileSystem instance with the given options. - * Must be given an *authenticated* DropboxJS client from the old v0.10 version of the Dropbox JS SDK. - */ - DropboxFileSystem.Create = function Create (opts, cb) { - cb(null, new DropboxFileSystem(opts.client, false)); - }; - DropboxFileSystem.isAvailable = function isAvailable () { - // Checks if the Dropbox library is loaded. - return typeof Dropbox !== 'undefined'; - }; - DropboxFileSystem.prototype.getName = function getName () { - return DropboxFileSystem.Name; - }; - DropboxFileSystem.prototype.isReadOnly = function isReadOnly () { - return false; - }; - // Dropbox doesn't support symlinks, properties, or synchronous calls - DropboxFileSystem.prototype.supportsSymlinks = function supportsSymlinks () { - return false; - }; - DropboxFileSystem.prototype.supportsProps = function supportsProps () { - return false; - }; - DropboxFileSystem.prototype.supportsSynch = function supportsSynch () { - return false; - }; - DropboxFileSystem.prototype.empty = function empty (mainCb) { - var this$1 = this; - - this._client.readdir('/', function (error, files) { - if (error) { - mainCb(this$1.convert(error, '/')); - } - else { - var deleteFile = function (file, cb) { - var p = path.join('/', file); - this$1._client.remove(p, function (err) { - cb(err ? this$1.convert(err, p) : null); - }); - }; - var finished = function (err) { - if (err) { - mainCb(err); - } - else { - mainCb(); - } - }; - // XXX: typing is to get around overly-restrictive ErrorCallback typing. - eachLimit(files, deleteFile, finished); - } - }); - }; - DropboxFileSystem.prototype.rename = function rename (oldPath, newPath, cb) { - var this$1 = this; - - this._client.move(oldPath, newPath, function (error) { - if (error) { - // the move is permitted if newPath is a file. - // Check if this is the case, and remove if so. - this$1._client.stat(newPath, function (error2, stat) { - if (error2 || stat.isFolder) { - var missingPath = error.response.error.indexOf(oldPath) > -1 ? oldPath : newPath; - cb(this$1.convert(error, missingPath)); - } - else { - // Delete file, repeat rename. - this$1._client.remove(newPath, function (error2) { - if (error2) { - cb(this$1.convert(error2, newPath)); - } - else { - this$1.rename(oldPath, newPath, cb); - } - }); - } - }); - } - else { - cb(); - } - }); - }; - DropboxFileSystem.prototype.stat = function stat (path$$1, isLstat, cb) { - var this$1 = this; - - // Ignore lstat case -- Dropbox doesn't support symlinks - // Stat the file - this._client.stat(path$$1, function (error, stat) { - if (error) { - cb(this$1.convert(error, path$$1)); - } - else if (stat && stat.isRemoved) { - // Dropbox keeps track of deleted files, so if a file has existed in the - // past but doesn't any longer, you wont get an error - cb(ApiError.FileError(ErrorCode.ENOENT, path$$1)); - } - else { - var stats = new Stats(this$1._statType(stat), stat.size); - return cb(null, stats); - } - }); - }; - DropboxFileSystem.prototype.open = function open (path$$1, flags, mode, cb) { - var this$1 = this; - - // Try and get the file's contents - this._client.readFile(path$$1, function (error, content, dbStat) { - if (error) { - // If the file's being opened for reading and doesn't exist, return an - // error - if (flags.isReadable()) { - cb(this$1.convert(error, path$$1)); - } - else { - switch (error.status) { - // If it's being opened for writing or appending, create it so that - // it can be written to - case Dropbox.ApiError.NOT_FOUND: - var ab = new ArrayBuffer(0); - return this$1._writeFileStrict(path$$1, ab, function (error2, stat) { - if (error2) { - cb(error2); - } - else { - var file = this$1._makeFile(path$$1, flags, stat, arrayBuffer2Buffer(ab)); - cb(null, file); - } - }); - default: - return cb(this$1.convert(error, path$$1)); - } - } - } - else { - // No error - var buffer$$1; - // Dropbox.js seems to set `content` to `null` rather than to an empty - // buffer when reading an empty file. Not sure why this is. - if (content === null) { - buffer$$1 = emptyBuffer(); - } - else { - buffer$$1 = arrayBuffer2Buffer(content); - } - var file = this$1._makeFile(path$$1, flags, dbStat, buffer$$1); - return cb(null, file); - } - }); - }; - DropboxFileSystem.prototype._writeFileStrict = function _writeFileStrict (p, data, cb) { - var this$1 = this; - - var parent = path.dirname(p); - this.stat(parent, false, function (error, stat) { - if (error) { - cb(ApiError.FileError(ErrorCode.ENOENT, parent)); - } - else { - this$1._client.writeFile(p, data, function (error2, stat) { - if (error2) { - cb(this$1.convert(error2, p)); - } - else { - cb(null, stat); - } - }); - } - }); - }; - /** - * Private - * Returns a BrowserFS object representing the type of a Dropbox.js stat object - */ - DropboxFileSystem.prototype._statType = function _statType (stat) { - return stat.isFile ? FileType.FILE : FileType.DIRECTORY; - }; - /** - * Private - * Returns a BrowserFS object representing a File, created from the data - * returned by calls to the Dropbox API. - */ - DropboxFileSystem.prototype._makeFile = function _makeFile (path$$1, flag, stat, buffer$$1) { - var type = this._statType(stat); - var stats = new Stats(type, stat.size); - return new DropboxFile(this, path$$1, flag, stats, buffer$$1); - }; - /** - * Private - * Delete a file or directory from Dropbox - * isFile should reflect which call was made to remove the it (`unlink` or - * `rmdir`). If this doesn't match what's actually at `path`, an error will be - * returned - */ - DropboxFileSystem.prototype._remove = function _remove (path$$1, cb, isFile) { - var this$1 = this; - - this._client.stat(path$$1, function (error, stat) { - if (error) { - cb(this$1.convert(error, path$$1)); - } - else { - if (stat.isFile && !isFile) { - cb(ApiError.FileError(ErrorCode.ENOTDIR, path$$1)); - } - else if (!stat.isFile && isFile) { - cb(ApiError.FileError(ErrorCode.EISDIR, path$$1)); - } - else { - this$1._client.remove(path$$1, function (error) { - if (error) { - cb(this$1.convert(error, path$$1)); - } - else { - cb(null); - } - }); - } - } - }); - }; - /** - * Delete a file - */ - DropboxFileSystem.prototype.unlink = function unlink (path$$1, cb) { - this._remove(path$$1, cb, true); - }; - /** - * Delete a directory - */ - DropboxFileSystem.prototype.rmdir = function rmdir (path$$1, cb) { - this._remove(path$$1, cb, false); - }; - /** - * Create a directory - */ - DropboxFileSystem.prototype.mkdir = function mkdir (p, mode, cb) { - var this$1 = this; - - // Dropbox.js' client.mkdir() behaves like `mkdir -p`, i.e. it creates a - // directory and all its ancestors if they don't exist. - // Node's fs.mkdir() behaves like `mkdir`, i.e. it throws an error if an attempt - // is made to create a directory without a parent. - // To handle this inconsistency, a check for the existence of `path`'s parent - // must be performed before it is created, and an error thrown if it does - // not exist - var parent = path.dirname(p); - this._client.stat(parent, function (error, stat) { - if (error) { - cb(this$1.convert(error, parent)); - } - else { - this$1._client.mkdir(p, function (error) { - if (error) { - cb(ApiError.FileError(ErrorCode.EEXIST, p)); - } - else { - cb(null); - } - }); - } - }); - }; - /** - * Get the names of the files in a directory - */ - DropboxFileSystem.prototype.readdir = function readdir (path$$1, cb) { - var this$1 = this; - - this._client.readdir(path$$1, function (error, files) { - if (error) { - return cb(this$1.convert(error)); - } - else { - return cb(null, files); - } - }); - }; - /** - * Converts a Dropbox-JS error into a BFS error. - */ - DropboxFileSystem.prototype.convert = function convert (err, path$$1) { - if ( path$$1 === void 0 ) path$$1 = null; - - var errorCode = errorCodeLookup[err.status]; - if (errorCode === undefined) { - errorCode = ErrorCode.EIO; - } - if (!path$$1) { - return new ApiError(errorCode); - } - else { - return ApiError.FileError(errorCode, path$$1); - } - }; - - return DropboxFileSystem; - }(BaseFileSystem)); - - DropboxFileSystem.Name = "Dropbox"; - DropboxFileSystem.Options = { - client: { - type: "object", - description: "An *authenticated* Dropbox client. Must be from the 0.10 JS SDK.", - validator: function (opt, cb) { - if (opt.isAuthenticated && opt.isAuthenticated()) { - cb(); - } - else { - cb(new ApiError(ErrorCode.EINVAL, "'client' option must be an authenticated Dropbox client from the v0.10 JS SDK.")); - } - } - } - }; - - /** - * @hidden - */ - function convertError(e, path$$1) { - if ( path$$1 === void 0 ) path$$1 = ''; - - var errno = e.errno; - var parent = e.node; - var paths = []; - while (parent) { - paths.unshift(parent.name); - if (parent === parent.parent) { - break; - } - parent = parent.parent; - } - return new ApiError(errno, ErrorStrings[errno], paths.length > 0 ? '/' + paths.join('/') : path$$1); - } - var EmscriptenFile = (function (BaseFile$$1) { - function EmscriptenFile(_fs, _FS, _path, _stream) { - BaseFile$$1.call(this); - this._fs = _fs; - this._FS = _FS; - this._path = _path; - this._stream = _stream; - } - - if ( BaseFile$$1 ) EmscriptenFile.__proto__ = BaseFile$$1; - EmscriptenFile.prototype = Object.create( BaseFile$$1 && BaseFile$$1.prototype ); - EmscriptenFile.prototype.constructor = EmscriptenFile; - EmscriptenFile.prototype.getPos = function getPos () { - return undefined; - }; - EmscriptenFile.prototype.close = function close (cb) { - var err = null; - try { - this.closeSync(); - } - catch (e) { - err = e; - } - finally { - cb(err); - } - }; - EmscriptenFile.prototype.closeSync = function closeSync () { - try { - this._FS.close(this._stream); - } - catch (e) { - throw convertError(e, this._path); - } - }; - EmscriptenFile.prototype.stat = function stat (cb) { - try { - cb(null, this.statSync()); - } - catch (e) { - cb(e); - } - }; - EmscriptenFile.prototype.statSync = function statSync () { - try { - return this._fs.statSync(this._path, false); - } - catch (e) { - throw convertError(e, this._path); - } - }; - EmscriptenFile.prototype.truncate = function truncate (len, cb) { - var err = null; - try { - this.truncateSync(len); - } - catch (e) { - err = e; - } - finally { - cb(err); - } - }; - EmscriptenFile.prototype.truncateSync = function truncateSync (len) { - try { - this._FS.ftruncate(this._stream.fd, len); - } - catch (e) { - throw convertError(e, this._path); - } - }; - EmscriptenFile.prototype.write = function write (buffer$$1, offset, length, position, cb) { - try { - cb(null, this.writeSync(buffer$$1, offset, length, position), buffer$$1); - } - catch (e) { - cb(e); - } - }; - EmscriptenFile.prototype.writeSync = function writeSync (buffer$$1, offset, length, position) { - try { - var u8 = buffer2Uint8array(buffer$$1); - // Emscripten is particular about what position is set to. - var emPosition = position === null ? undefined : position; - return this._FS.write(this._stream, u8, offset, length, emPosition); - } - catch (e) { - throw convertError(e, this._path); - } - }; - EmscriptenFile.prototype.read = function read (buffer$$1, offset, length, position, cb) { - try { - cb(null, this.readSync(buffer$$1, offset, length, position), buffer$$1); - } - catch (e) { - cb(e); - } - }; - EmscriptenFile.prototype.readSync = function readSync (buffer$$1, offset, length, position) { - try { - var u8 = buffer2Uint8array(buffer$$1); - // Emscripten is particular about what position is set to. - var emPosition = position === null ? undefined : position; - return this._FS.read(this._stream, u8, offset, length, emPosition); - } - catch (e) { - throw convertError(e, this._path); - } - }; - EmscriptenFile.prototype.sync = function sync (cb) { - // NOP. - cb(); - }; - EmscriptenFile.prototype.syncSync = function syncSync () { - // NOP. - }; - EmscriptenFile.prototype.chown = function chown (uid, gid, cb) { - var err = null; - try { - this.chownSync(uid, gid); - } - catch (e) { - err = e; - } - finally { - cb(err); - } - }; - EmscriptenFile.prototype.chownSync = function chownSync (uid, gid) { - try { - this._FS.fchown(this._stream.fd, uid, gid); - } - catch (e) { - throw convertError(e, this._path); - } - }; - EmscriptenFile.prototype.chmod = function chmod (mode, cb) { - var err = null; - try { - this.chmodSync(mode); - } - catch (e) { - err = e; - } - finally { - cb(err); - } - }; - EmscriptenFile.prototype.chmodSync = function chmodSync (mode) { - try { - this._FS.fchmod(this._stream.fd, mode); - } - catch (e) { - throw convertError(e, this._path); - } - }; - EmscriptenFile.prototype.utimes = function utimes (atime, mtime, cb) { - var err = null; - try { - this.utimesSync(atime, mtime); - } - catch (e) { - err = e; - } - finally { - cb(err); - } - }; - EmscriptenFile.prototype.utimesSync = function utimesSync (atime, mtime) { - this._fs.utimesSync(this._path, atime, mtime); - }; - - return EmscriptenFile; - }(BaseFile)); - /** - * Mounts an Emscripten file system into the BrowserFS file system. - */ - var EmscriptenFileSystem = (function (SynchronousFileSystem$$1) { - function EmscriptenFileSystem(_FS) { - SynchronousFileSystem$$1.call(this); - this._FS = _FS; - } - - if ( SynchronousFileSystem$$1 ) EmscriptenFileSystem.__proto__ = SynchronousFileSystem$$1; - EmscriptenFileSystem.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype ); - EmscriptenFileSystem.prototype.constructor = EmscriptenFileSystem; - /** - * Create an EmscriptenFileSystem instance with the given options. - */ - EmscriptenFileSystem.Create = function Create (opts, cb) { - cb(null, new EmscriptenFileSystem(opts.FS)); - }; - EmscriptenFileSystem.isAvailable = function isAvailable () { return true; }; - EmscriptenFileSystem.prototype.getName = function getName () { return this._FS.DB_NAME(); }; - EmscriptenFileSystem.prototype.isReadOnly = function isReadOnly () { return false; }; - EmscriptenFileSystem.prototype.supportsLinks = function supportsLinks () { return true; }; - EmscriptenFileSystem.prototype.supportsProps = function supportsProps () { return true; }; - EmscriptenFileSystem.prototype.supportsSynch = function supportsSynch () { return true; }; - EmscriptenFileSystem.prototype.renameSync = function renameSync (oldPath, newPath) { - try { - this._FS.rename(oldPath, newPath); - } - catch (e) { - if (e.errno === ErrorCode.ENOENT) { - throw convertError(e, this.existsSync(oldPath) ? newPath : oldPath); - } - else { - throw convertError(e); - } - } - }; - EmscriptenFileSystem.prototype.statSync = function statSync (p, isLstat) { - try { - var stats = isLstat ? this._FS.lstat(p) : this._FS.stat(p); - var itemType = this.modeToFileType(stats.mode); - return new Stats(itemType, stats.size, stats.mode, stats.atime, stats.mtime, stats.ctime); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.openSync = function openSync (p, flag, mode) { - try { - var stream = this._FS.open(p, flag.getFlagString(), mode); - if (this._FS.isDir(stream.node.mode)) { - this._FS.close(stream); - throw ApiError.EISDIR(p); - } - return new EmscriptenFile(this, this._FS, p, stream); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.unlinkSync = function unlinkSync (p) { - try { - this._FS.unlink(p); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.rmdirSync = function rmdirSync (p) { - try { - this._FS.rmdir(p); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.mkdirSync = function mkdirSync (p, mode) { - try { - this._FS.mkdir(p, mode); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.readdirSync = function readdirSync (p) { - try { - // Emscripten returns items for '.' and '..'. Node does not. - return this._FS.readdir(p).filter(function (p) { return p !== '.' && p !== '..'; }); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.truncateSync = function truncateSync (p, len) { - try { - this._FS.truncate(p, len); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.readFileSync = function readFileSync (p, encoding, flag) { - try { - var data = this._FS.readFile(p, { flags: flag.getFlagString() }); - var buff = uint8Array2Buffer(data); - if (encoding) { - return buff.toString(encoding); - } - else { - return buff; - } - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.writeFileSync = function writeFileSync (p, data, encoding, flag, mode) { - try { - if (encoding) { - data = Buffer.from(data, encoding); - } - var u8 = buffer2Uint8array(data); - this._FS.writeFile(p, u8, { flags: flag.getFlagString(), encoding: 'binary' }); - this._FS.chmod(p, mode); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.chmodSync = function chmodSync (p, isLchmod, mode) { - try { - isLchmod ? this._FS.lchmod(p, mode) : this._FS.chmod(p, mode); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.chownSync = function chownSync (p, isLchown, uid, gid) { - try { - isLchown ? this._FS.lchown(p, uid, gid) : this._FS.chown(p, uid, gid); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.symlinkSync = function symlinkSync (srcpath, dstpath, type) { - try { - this._FS.symlink(srcpath, dstpath); - } - catch (e) { - throw convertError(e); - } - }; - EmscriptenFileSystem.prototype.readlinkSync = function readlinkSync (p) { - try { - return this._FS.readlink(p); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.utimesSync = function utimesSync (p, atime, mtime) { - try { - this._FS.utime(p, atime.getTime(), mtime.getTime()); - } - catch (e) { - throw convertError(e, p); - } - }; - EmscriptenFileSystem.prototype.modeToFileType = function modeToFileType (mode) { - if (this._FS.isDir(mode)) { - return FileType.DIRECTORY; - } - else if (this._FS.isFile(mode)) { - return FileType.FILE; - } - else if (this._FS.isLink(mode)) { - return FileType.SYMLINK; - } - else { - throw ApiError.EPERM(("Invalid mode: " + mode)); - } - }; - - return EmscriptenFileSystem; - }(SynchronousFileSystem)); - - EmscriptenFileSystem.Name = "EmscriptenFileSystem"; - EmscriptenFileSystem.Options = { - FS: { - type: "object", - description: "The Emscripten file system to use (the `FS` variable)" - } - }; - - /** - * The FolderAdapter file system wraps a file system, and scopes all interactions to a subfolder of that file system. - * - * Example: Given a file system `foo` with folder `bar` and file `bar/baz`... - * - * ```javascript - * BrowserFS.configure({ - * fs: "FolderAdapter", - * options: { - * folder: "bar", - * wrapped: foo - * } - * }, function(e) { - * var fs = BrowserFS.BFSRequire('fs'); - * fs.readdirSync('/'); // ['baz'] - * }); - * ``` - */ - var FolderAdapter = (function (BaseFileSystem$$1) { - function FolderAdapter(folder, wrapped) { - BaseFileSystem$$1.call(this); - this._folder = folder; - this._wrapped = wrapped; - } - - if ( BaseFileSystem$$1 ) FolderAdapter.__proto__ = BaseFileSystem$$1; - FolderAdapter.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - FolderAdapter.prototype.constructor = FolderAdapter; - /** - * Creates a FolderAdapter instance with the given options. - */ - FolderAdapter.Create = function Create (opts, cb) { - cb(null, new FolderAdapter(opts.folder, opts.wrapped)); - }; - FolderAdapter.isAvailable = function isAvailable () { - return true; - }; - /** - * Initialize the file system. Ensures that the wrapped file system - * has the given folder. - */ - FolderAdapter.prototype.initialize = function initialize (cb) { - var this$1 = this; - - this._wrapped.exists(this._folder, function (exists) { - if (exists) { - cb(); - } - else if (this$1._wrapped.isReadOnly()) { - cb(ApiError.ENOENT(this$1._folder)); - } - else { - this$1._wrapped.mkdir(this$1._folder, 0x1ff, cb); - } - }); - }; - FolderAdapter.prototype.getName = function getName () { return this._wrapped.getName(); }; - FolderAdapter.prototype.isReadOnly = function isReadOnly () { return this._wrapped.isReadOnly(); }; - FolderAdapter.prototype.supportsProps = function supportsProps () { return this._wrapped.supportsProps(); }; - FolderAdapter.prototype.supportsSynch = function supportsSynch () { return this._wrapped.supportsSynch(); }; - FolderAdapter.prototype.supportsLinks = function supportsLinks () { return false; }; - - return FolderAdapter; - }(BaseFileSystem)); - - FolderAdapter.Name = "FolderAdapter"; - FolderAdapter.Options = { - folder: { - type: "string", - description: "The folder to use as the root directory" - }, - wrapped: { - type: "object", - description: "The file system to wrap" - } - }; - /** - * @hidden - */ - function translateError(folder, e) { - if (e !== null && typeof e === 'object') { - var err = e; - var p = err.path; - if (p) { - p = '/' + path.relative(folder, p); - err.message = err.message.replace(err.path, p); - err.path = p; - } - } - return e; - } - /** - * @hidden - */ - function wrapCallback(folder, cb) { - if (typeof cb === 'function') { - return function (err) { - if (arguments.length > 0) { - arguments[0] = translateError(folder, err); - } - cb.apply(null, arguments); - }; - } - else { - return cb; - } - } - /** - * @hidden - */ - function wrapFunction(name, wrapFirst, wrapSecond) { - if (name.slice(name.length - 4) !== 'Sync') { - // Async function. Translate error in callback. - return function () { - if (arguments.length > 0) { - if (wrapFirst) { - arguments[0] = path.join(this._folder, arguments[0]); - } - if (wrapSecond) { - arguments[1] = path.join(this._folder, arguments[1]); - } - arguments[arguments.length - 1] = wrapCallback(this._folder, arguments[arguments.length - 1]); - } - return this._wrapped[name].apply(this._wrapped, arguments); - }; - } - else { - // Sync function. Translate error in catch. - return function () { - try { - if (wrapFirst) { - arguments[0] = path.join(this._folder, arguments[0]); - } - if (wrapSecond) { - arguments[1] = path.join(this._folder, arguments[1]); - } - return this._wrapped[name].apply(this._wrapped, arguments); - } - catch (e) { - throw translateError(this._folder, e); - } - }; - } - } - // First argument is a path. - ['diskSpace', 'stat', 'statSync', 'open', 'openSync', 'unlink', 'unlinkSync', - 'rmdir', 'rmdirSync', 'mkdir', 'mkdirSync', 'readdir', 'readdirSync', 'exists', - 'existsSync', 'realpath', 'realpathSync', 'truncate', 'truncateSync', 'readFile', - 'readFileSync', 'writeFile', 'writeFileSync', 'appendFile', 'appendFileSync', - 'chmod', 'chmodSync', 'chown', 'chownSync', 'utimes', 'utimesSync', 'readlink', - 'readlinkSync'].forEach(function (name) { - FolderAdapter.prototype[name] = wrapFunction(name, true, false); - }); - // First and second arguments are paths. - ['rename', 'renameSync', 'link', 'linkSync', 'symlink', 'symlinkSync'].forEach(function (name) { - FolderAdapter.prototype[name] = wrapFunction(name, true, true); - }); - - /** - * @hidden - */ - var toExport; - if (typeof (window) !== 'undefined') { - toExport = window; - } - else if (typeof (self) !== 'undefined') { - toExport = self; - } - else { - toExport = global; - } - var global$1 = toExport; - - /** - * @hidden - */ - function isDirectoryEntry(entry) { - return entry.isDirectory; - } - /** - * @hidden - */ - var _getFS = global$1.webkitRequestFileSystem || global$1.requestFileSystem || null; - /** - * @hidden - */ - function _requestQuota(type, size, success, errorCallback) { - // We cast navigator and window to '' because everything here is - // nonstandard functionality, despite the fact that Chrome has the only - // implementation of the HTML5FS and is likely driving the standardization - // process. Thus, these objects defined off of navigator and window are not - // present in the DefinitelyTyped TypeScript typings for FileSystem. - if (typeof navigator['webkitPersistentStorage'] !== 'undefined') { - switch (type) { - case global$1.PERSISTENT: - navigator.webkitPersistentStorage.requestQuota(size, success, errorCallback); - break; - case global$1.TEMPORARY: - navigator.webkitTemporaryStorage.requestQuota(size, success, errorCallback); - break; - default: - errorCallback(new TypeError(("Invalid storage type: " + type))); - break; - } - } - else { - global$1.webkitStorageInfo.requestQuota(type, size, success, errorCallback); - } - } - /** - * @hidden - */ - function _toArray(list) { - return Array.prototype.slice.call(list || [], 0); - } - /** - * Converts the given DOMError into an appropriate ApiError. - * @url https://developer.mozilla.org/en-US/docs/Web/API/DOMError - * @hidden - */ - function convertError$1(err, p, expectedDir) { - switch (err.name) { - /* The user agent failed to create a file or directory due to the existence of a file or - directory with the same path. */ - case "PathExistsError": - return ApiError.EEXIST(p); - /* The operation failed because it would cause the application to exceed its storage quota. */ - case 'QuotaExceededError': - return ApiError.FileError(ErrorCode.ENOSPC, p); - /* A required file or directory could not be found at the time an operation was processed. */ - case 'NotFoundError': - return ApiError.ENOENT(p); - /* This is a security error code to be used in situations not covered by any other error codes. - - A required file was unsafe for access within a Web application - - Too many calls are being made on filesystem resources */ - case 'SecurityError': - return ApiError.FileError(ErrorCode.EACCES, p); - /* The modification requested was illegal. Examples of invalid modifications include moving a - directory into its own child, moving a file into its parent directory without changing its name, - or copying a directory to a path occupied by a file. */ - case 'InvalidModificationError': - return ApiError.FileError(ErrorCode.EPERM, p); - /* The user has attempted to look up a file or directory, but the Entry found is of the wrong type - [e.g. is a DirectoryEntry when the user requested a FileEntry]. */ - case 'TypeMismatchError': - return ApiError.FileError(expectedDir ? ErrorCode.ENOTDIR : ErrorCode.EISDIR, p); - /* A path or URL supplied to the API was malformed. */ - case "EncodingError": - /* An operation depended on state cached in an interface object, but that state that has changed - since it was read from disk. */ - case "InvalidStateError": - /* The user attempted to write to a file or directory which could not be modified due to the state - of the underlying filesystem. */ - case "NoModificationAllowedError": - default: - return ApiError.FileError(ErrorCode.EINVAL, p); - } - } - // A note about getFile and getDirectory options: - // These methods are called at numerous places in this file, and are passed - // some combination of these two options: - // - create: If true, the entry will be created if it doesn't exist. - // If false, an error will be thrown if it doesn't exist. - // - exclusive: If true, only create the entry if it doesn't already exist, - // and throw an error if it does. - var HTML5FSFile = (function (PreloadFile$$1) { - function HTML5FSFile(fs, entry, path$$1, flag, stat, contents) { - PreloadFile$$1.call(this, fs, path$$1, flag, stat, contents); - this._entry = entry; - } - - if ( PreloadFile$$1 ) HTML5FSFile.__proto__ = PreloadFile$$1; - HTML5FSFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype ); - HTML5FSFile.prototype.constructor = HTML5FSFile; - HTML5FSFile.prototype.sync = function sync (cb) { - var this$1 = this; - - if (!this.isDirty()) { - return cb(); - } - this._entry.createWriter(function (writer) { - var buffer$$1 = this$1.getBuffer(); - var blob = new Blob([buffer2ArrayBuffer(buffer$$1)]); - var length = blob.size; - writer.onwriteend = function (err) { - writer.onwriteend = null; - writer.onerror = null; - writer.truncate(length); - this$1.resetDirty(); - cb(); - }; - writer.onerror = function (err) { - cb(convertError$1(err, this$1.getPath(), false)); - }; - writer.write(blob); - }); - }; - HTML5FSFile.prototype.close = function close (cb) { - this.sync(cb); - }; - - return HTML5FSFile; - }(PreloadFile)); - /** - * A read-write filesystem backed by the HTML5 FileSystem API. - * - * As the HTML5 FileSystem is only implemented in Blink, this interface is - * only available in Chrome. - */ - var HTML5FS = (function (BaseFileSystem$$1) { - function HTML5FS(size, type, deprecateMsg) { - if ( size === void 0 ) size = 5; - if ( type === void 0 ) type = global$1.PERSISTENT; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - BaseFileSystem$$1.call(this); - // Convert MB to bytes. - this.size = 1024 * 1024 * size; - this.type = type; - deprecationMessage(deprecateMsg, HTML5FS.Name, { size: size, type: type }); - } - - if ( BaseFileSystem$$1 ) HTML5FS.__proto__ = BaseFileSystem$$1; - HTML5FS.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - HTML5FS.prototype.constructor = HTML5FS; - /** - * Creates an HTML5FS instance with the given options. - */ - HTML5FS.Create = function Create (opts, cb) { - var fs = new HTML5FS(opts.size, opts.type, false); - fs.allocate(function (e) { return e ? cb(e) : cb(null, fs); }, false); - }; - HTML5FS.isAvailable = function isAvailable () { - return !!_getFS; - }; - HTML5FS.prototype.getName = function getName () { - return HTML5FS.Name; - }; - HTML5FS.prototype.isReadOnly = function isReadOnly () { - return false; - }; - HTML5FS.prototype.supportsSymlinks = function supportsSymlinks () { - return false; - }; - HTML5FS.prototype.supportsProps = function supportsProps () { - return false; - }; - HTML5FS.prototype.supportsSynch = function supportsSynch () { - return false; - }; - /** - * **Deprecated. Please use Create() method instead to create and allocate an HTML5FS.** - * - * Requests a storage quota from the browser to back this FS. - * Must be called before file system can be used! - */ - HTML5FS.prototype.allocate = function allocate (cb, deprecateMsg) { - var this$1 = this; - if ( cb === void 0 ) cb = function () { }; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - if (deprecateMsg) { - console.warn(("[HTML5FS] HTML5FS.allocate() is deprecated and will be removed in the next major release. Please use 'HTML5FS.Create({type: " + (this.type) + ", size: " + (this.size) + "}, cb)' to create and allocate HTML5FS instances.")); - } - var success = function (fs) { - this$1.fs = fs; - cb(); - }; - var error = function (err) { - cb(convertError$1(err, "/", true)); - }; - if (this.type === global$1.PERSISTENT) { - _requestQuota(this.type, this.size, function (granted) { - _getFS(this$1.type, granted, success, error); - }, error); - } - else { - _getFS(this.type, this.size, success, error); - } - }; - /** - * Deletes everything in the FS. Used for testing. - * Karma clears the storage after you quit it but not between runs of the test - * suite, and the tests expect an empty FS every time. - */ - HTML5FS.prototype.empty = function empty (mainCb) { - // Get a list of all entries in the root directory to delete them - this._readdir('/', function (err, entries) { - if (err) { - console.error('Failed to empty FS'); - mainCb(err); - } - else { - // Called when every entry has been operated on - var finished = function (er) { - if (err) { - console.error("Failed to empty FS"); - mainCb(err); - } - else { - mainCb(); - } - }; - // Removes files and recursively removes directories - var deleteEntry = function (entry, cb) { - var succ = function () { - cb(); - }; - var error = function (err) { - cb(convertError$1(err, entry.fullPath, !entry.isDirectory)); - }; - if (isDirectoryEntry(entry)) { - entry.removeRecursively(succ, error); - } - else { - entry.remove(succ, error); - } - }; - // Loop through the entries and remove them, then call the callback - // when they're all finished. - eachLimit(entries, deleteEntry, finished); - } - }); - }; - HTML5FS.prototype.rename = function rename (oldPath, newPath, cb) { - var this$1 = this; - - var semaphore = 2; - var successCount = 0; - var root = this.fs.root; - var currentPath = oldPath; - var error = function (err) { - if (--semaphore <= 0) { - cb(convertError$1(err, currentPath, false)); - } - }; - var success = function (file) { - if (++successCount === 2) { - return cb(new ApiError(ErrorCode.EINVAL, "Something was identified as both a file and a directory. This should never happen.")); - } - // SPECIAL CASE: If newPath === oldPath, and the path exists, then - // this operation trivially succeeds. - if (oldPath === newPath) { - return cb(); - } - // Get the new parent directory. - currentPath = path.dirname(newPath); - root.getDirectory(currentPath, {}, function (parentDir) { - currentPath = path.basename(newPath); - file.moveTo(parentDir, currentPath, function (entry) { cb(); }, function (err) { - // SPECIAL CASE: If oldPath is a directory, and newPath is a - // file, rename should delete the file and perform the move. - if (file.isDirectory) { - currentPath = newPath; - // Unlink only works on files. Try to delete newPath. - this$1.unlink(newPath, function (e) { - if (e) { - // newPath is probably a directory. - error(err); - } - else { - // Recur, now that newPath doesn't exist. - this$1.rename(oldPath, newPath, cb); - } - }); - } - else { - error(err); - } - }); - }, error); - }; - // We don't know if oldPath is a *file* or a *directory*, and there's no - // way to stat items. So launch both requests, see which one succeeds. - root.getFile(oldPath, {}, success, error); - root.getDirectory(oldPath, {}, success, error); - }; - HTML5FS.prototype.stat = function stat (path$$1, isLstat, cb) { - var this$1 = this; - - // Throw an error if the entry doesn't exist, because then there's nothing - // to stat. - var opts = { - create: false - }; - // Called when the path has been successfully loaded as a file. - var loadAsFile = function (entry) { - var fileFromEntry = function (file) { - var stat = new Stats(FileType.FILE, file.size); - cb(null, stat); - }; - entry.file(fileFromEntry, failedToLoad); - }; - // Called when the path has been successfully loaded as a directory. - var loadAsDir = function (dir$$1) { - // Directory entry size can't be determined from the HTML5 FS API, and is - // implementation-dependant anyway, so a dummy value is used. - var size = 4096; - var stat = new Stats(FileType.DIRECTORY, size); - cb(null, stat); - }; - // Called when the path couldn't be opened as a directory or a file. - var failedToLoad = function (err) { - cb(convertError$1(err, path$$1, false /* Unknown / irrelevant */)); - }; - // Called when the path couldn't be opened as a file, but might still be a - // directory. - var failedToLoadAsFile = function () { - this$1.fs.root.getDirectory(path$$1, opts, loadAsDir, failedToLoad); - }; - // No method currently exists to determine whether a path refers to a - // directory or a file, so this implementation tries both and uses the first - // one that succeeds. - this.fs.root.getFile(path$$1, opts, loadAsFile, failedToLoadAsFile); - }; - HTML5FS.prototype.open = function open (p, flags, mode, cb) { - var this$1 = this; - - // XXX: err is a DOMError - var error = function (err) { - if (err.name === 'InvalidModificationError' && flags.isExclusive()) { - cb(ApiError.EEXIST(p)); - } - else { - cb(convertError$1(err, p, false)); - } - }; - this.fs.root.getFile(p, { - create: flags.pathNotExistsAction() === ActionType.CREATE_FILE, - exclusive: flags.isExclusive() - }, function (entry) { - // Try to fetch corresponding file. - entry.file(function (file) { - var reader = new FileReader(); - reader.onloadend = function (event) { - var bfsFile = this$1._makeFile(p, entry, flags, file, reader.result); - cb(null, bfsFile); - }; - reader.onerror = function (ev) { - error(reader.error); - }; - reader.readAsArrayBuffer(file); - }, error); - }, error); - }; - HTML5FS.prototype.unlink = function unlink (path$$1, cb) { - this._remove(path$$1, cb, true); - }; - HTML5FS.prototype.rmdir = function rmdir (path$$1, cb) { - var this$1 = this; - - // Check if directory is non-empty, first. - this.readdir(path$$1, function (e, files) { - if (e) { - cb(e); - } - else if (files.length > 0) { - cb(ApiError.ENOTEMPTY(path$$1)); - } - else { - this$1._remove(path$$1, cb, false); - } - }); - }; - HTML5FS.prototype.mkdir = function mkdir (path$$1, mode, cb) { - // Create the directory, but throw an error if it already exists, as per - // mkdir(1) - var opts = { - create: true, - exclusive: true - }; - var success = function (dir$$1) { - cb(); - }; - var error = function (err) { - cb(convertError$1(err, path$$1, true)); - }; - this.fs.root.getDirectory(path$$1, opts, success, error); - }; - /** - * Map _readdir's list of `FileEntry`s to their names and return that. - */ - HTML5FS.prototype.readdir = function readdir (path$$1, cb) { - this._readdir(path$$1, function (e, entries) { - if (entries) { - var rv = []; - for (var i = 0, list = entries; i < list.length; i += 1) { - var entry = list[i]; - - rv.push(entry.name); - } - cb(null, rv); - } - else { - return cb(e); - } - }); - }; - /** - * Returns a BrowserFS object representing a File. - */ - HTML5FS.prototype._makeFile = function _makeFile (path$$1, entry, flag, stat, data) { - if ( data === void 0 ) data = new ArrayBuffer(0); - - var stats = new Stats(FileType.FILE, stat.size); - var buffer$$1 = arrayBuffer2Buffer(data); - return new HTML5FSFile(this, entry, path$$1, flag, stats, buffer$$1); - }; - /** - * Returns an array of `FileEntry`s. Used internally by empty and readdir. - */ - HTML5FS.prototype._readdir = function _readdir (path$$1, cb) { - var error = function (err) { - cb(convertError$1(err, path$$1, true)); - }; - // Grab the requested directory. - this.fs.root.getDirectory(path$$1, { create: false }, function (dirEntry) { - var reader = dirEntry.createReader(); - var entries = []; - // Call the reader.readEntries() until no more results are returned. - var readEntries = function () { - reader.readEntries((function (results) { - if (results.length) { - entries = entries.concat(_toArray(results)); - readEntries(); - } - else { - cb(null, entries); - } - }), error); - }; - readEntries(); - }, error); - }; - /** - * Delete a file or directory from the file system - * isFile should reflect which call was made to remove the it (`unlink` or - * `rmdir`). If this doesn't match what's actually at `path`, an error will be - * returned - */ - HTML5FS.prototype._remove = function _remove (path$$1, cb, isFile) { - var success = function (entry) { - var succ = function () { - cb(); - }; - var err = function (err) { - cb(convertError$1(err, path$$1, !isFile)); - }; - entry.remove(succ, err); - }; - var error = function (err) { - cb(convertError$1(err, path$$1, !isFile)); - }; - // Deleting the entry, so don't create it - var opts = { - create: false - }; - if (isFile) { - this.fs.root.getFile(path$$1, opts, success, error); - } - else { - this.fs.root.getDirectory(path$$1, opts, success, error); - } - }; - - return HTML5FS; - }(BaseFileSystem)); - - HTML5FS.Name = "HTML5FS"; - HTML5FS.Options = { - size: { - type: "number", - optional: true, - description: "Storage quota to request, in megabytes. Allocated value may be less. Defaults to 5." - }, - type: { - type: "number", - optional: true, - description: "window.PERSISTENT or window.TEMPORARY. Defaults to PERSISTENT." - } - }; - - /** - * Generic inode definition that can easily be serialized. - */ - var Inode = function Inode(id, size, mode, atime, mtime, ctime) { - this.id = id; - this.size = size; - this.mode = mode; - this.atime = atime; - this.mtime = mtime; - this.ctime = ctime; - }; - /** - * Converts the buffer into an Inode. - */ - Inode.fromBuffer = function fromBuffer (buffer$$1) { - if (buffer$$1 === undefined) { - throw new Error("NO"); - } - return new Inode(buffer$$1.toString('ascii', 30), buffer$$1.readUInt32LE(0), buffer$$1.readUInt16LE(4), buffer$$1.readDoubleLE(6), buffer$$1.readDoubleLE(14), buffer$$1.readDoubleLE(22)); - }; - /** - * Handy function that converts the Inode to a Node Stats object. - */ - Inode.prototype.toStats = function toStats () { - return new Stats((this.mode & 0xF000) === FileType.DIRECTORY ? FileType.DIRECTORY : FileType.FILE, this.size, this.mode, new Date(this.atime), new Date(this.mtime), new Date(this.ctime)); - }; - /** - * Get the size of this Inode, in bytes. - */ - Inode.prototype.getSize = function getSize () { - // ASSUMPTION: ID is ASCII (1 byte per char). - return 30 + this.id.length; - }; - /** - * Writes the inode into the start of the buffer. - */ - Inode.prototype.toBuffer = function toBuffer (buff) { - if ( buff === void 0 ) buff = Buffer.alloc(this.getSize()); - - buff.writeUInt32LE(this.size, 0); - buff.writeUInt16LE(this.mode, 4); - buff.writeDoubleLE(this.atime, 6); - buff.writeDoubleLE(this.mtime, 14); - buff.writeDoubleLE(this.ctime, 22); - buff.write(this.id, 30, this.id.length, 'ascii'); - return buff; - }; - /** - * Updates the Inode using information from the stats object. Used by file - * systems at sync time, e.g.: - * - Program opens file and gets a File object. - * - Program mutates file. File object is responsible for maintaining - * metadata changes locally -- typically in a Stats object. - * - Program closes file. File object's metadata changes are synced with the - * file system. - * @return True if any changes have occurred. - */ - Inode.prototype.update = function update (stats) { - var hasChanged = false; - if (this.size !== stats.size) { - this.size = stats.size; - hasChanged = true; - } - if (this.mode !== stats.mode) { - this.mode = stats.mode; - hasChanged = true; - } - var atimeMs = stats.atime.getTime(); - if (this.atime !== atimeMs) { - this.atime = atimeMs; - hasChanged = true; - } - var mtimeMs = stats.mtime.getTime(); - if (this.mtime !== mtimeMs) { - this.mtime = mtimeMs; - hasChanged = true; - } - var ctimeMs = stats.ctime.getTime(); - if (this.ctime !== ctimeMs) { - this.ctime = ctimeMs; - hasChanged = true; - } - return hasChanged; - }; - // XXX: Copied from Stats. Should reconcile these two into something more - // compact. - /** - * @return [Boolean] True if this item is a file. - */ - Inode.prototype.isFile = function isFile () { - return (this.mode & 0xF000) === FileType.FILE; - }; - /** - * @return [Boolean] True if this item is a directory. - */ - Inode.prototype.isDirectory = function isDirectory () { - return (this.mode & 0xF000) === FileType.DIRECTORY; - }; - - /** - * @hidden - */ - var ROOT_NODE_ID = "/"; - /** - * @hidden - */ - var emptyDirNode = null; - /** - * Returns an empty directory node. - * @hidden - */ - function getEmptyDirNode() { - if (emptyDirNode) { - return emptyDirNode; - } - return emptyDirNode = Buffer.from("{}"); - } - /** - * Generates a random ID. - * @hidden - */ - function GenerateRandomID() { - // From http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { - var r = Math.random() * 16 | 0; - var v = c === 'x' ? r : (r & 0x3 | 0x8); - return v.toString(16); - }); - } - /** - * Helper function. Checks if 'e' is defined. If so, it triggers the callback - * with 'e' and returns false. Otherwise, returns true. - * @hidden - */ - function noError(e, cb) { - if (e) { - cb(e); - return false; - } - return true; - } - /** - * Helper function. Checks if 'e' is defined. If so, it aborts the transaction, - * triggers the callback with 'e', and returns false. Otherwise, returns true. - * @hidden - */ - function noErrorTx(e, tx, cb) { - if (e) { - tx.abort(function () { - cb(e); - }); - return false; - } - return true; - } - /** - * A simple RW transaction for simple synchronous key-value stores. - */ - var SimpleSyncRWTransaction = function SimpleSyncRWTransaction(store) { - this.store = store; - /** - * Stores data in the keys we modify prior to modifying them. - * Allows us to roll back commits. - */ - this.originalData = {}; - /** - * List of keys modified in this transaction, if any. - */ - this.modifiedKeys = []; - }; - SimpleSyncRWTransaction.prototype.get = function get (key) { - var val = this.store.get(key); - this.stashOldValue(key, val); - return val; - }; - SimpleSyncRWTransaction.prototype.put = function put (key, data, overwrite) { - this.markModified(key); - return this.store.put(key, data, overwrite); - }; - SimpleSyncRWTransaction.prototype.del = function del (key) { - this.markModified(key); - this.store.del(key); - }; - SimpleSyncRWTransaction.prototype.commit = function commit () { }; - SimpleSyncRWTransaction.prototype.abort = function abort () { - var this$1 = this; - - // Rollback old values. - for (var i = 0, list = this$1.modifiedKeys; i < list.length; i += 1) { - var key = list[i]; - - var value = this$1.originalData[key]; - if (!value) { - // Key didn't exist. - this$1.store.del(key); - } - else { - // Key existed. Store old value. - this$1.store.put(key, value, true); - } - } - }; - /** - * Stashes given key value pair into `originalData` if it doesn't already - * exist. Allows us to stash values the program is requesting anyway to - * prevent needless `get` requests if the program modifies the data later - * on during the transaction. - */ - SimpleSyncRWTransaction.prototype.stashOldValue = function stashOldValue (key, value) { - // Keep only the earliest value in the transaction. - if (!this.originalData.hasOwnProperty(key)) { - this.originalData[key] = value; - } - }; - /** - * Marks the given key as modified, and stashes its value if it has not been - * stashed already. - */ - SimpleSyncRWTransaction.prototype.markModified = function markModified (key) { - if (this.modifiedKeys.indexOf(key) === -1) { - this.modifiedKeys.push(key); - if (!this.originalData.hasOwnProperty(key)) { - this.originalData[key] = this.store.get(key); - } - } - }; - var SyncKeyValueFile = (function (PreloadFile$$1) { - function SyncKeyValueFile(_fs, _path, _flag, _stat, contents) { - PreloadFile$$1.call(this, _fs, _path, _flag, _stat, contents); - } - - if ( PreloadFile$$1 ) SyncKeyValueFile.__proto__ = PreloadFile$$1; - SyncKeyValueFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype ); - SyncKeyValueFile.prototype.constructor = SyncKeyValueFile; - SyncKeyValueFile.prototype.syncSync = function syncSync () { - if (this.isDirty()) { - this._fs._syncSync(this.getPath(), this.getBuffer(), this.getStats()); - this.resetDirty(); - } - }; - SyncKeyValueFile.prototype.closeSync = function closeSync () { - this.syncSync(); - }; - - return SyncKeyValueFile; - }(PreloadFile)); - /** - * A "Synchronous key-value file system". Stores data to/retrieves data from an - * underlying key-value store. - * - * We use a unique ID for each node in the file system. The root node has a - * fixed ID. - * @todo Introduce Node ID caching. - * @todo Check modes. - */ - var SyncKeyValueFileSystem = (function (SynchronousFileSystem$$1) { - function SyncKeyValueFileSystem(options) { - SynchronousFileSystem$$1.call(this); - this.store = options.store; - // INVARIANT: Ensure that the root exists. - this.makeRootDirectory(); - } - - if ( SynchronousFileSystem$$1 ) SyncKeyValueFileSystem.__proto__ = SynchronousFileSystem$$1; - SyncKeyValueFileSystem.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype ); - SyncKeyValueFileSystem.prototype.constructor = SyncKeyValueFileSystem; - SyncKeyValueFileSystem.isAvailable = function isAvailable () { return true; }; - - SyncKeyValueFileSystem.prototype.getName = function getName () { return this.store.name(); }; - SyncKeyValueFileSystem.prototype.isReadOnly = function isReadOnly () { return false; }; - SyncKeyValueFileSystem.prototype.supportsSymlinks = function supportsSymlinks () { return false; }; - SyncKeyValueFileSystem.prototype.supportsProps = function supportsProps () { return false; }; - SyncKeyValueFileSystem.prototype.supportsSynch = function supportsSynch () { return true; }; - /** - * Delete all contents stored in the file system. - */ - SyncKeyValueFileSystem.prototype.empty = function empty () { - this.store.clear(); - // INVARIANT: Root always exists. - this.makeRootDirectory(); - }; - SyncKeyValueFileSystem.prototype.renameSync = function renameSync (oldPath, newPath) { - var tx = this.store.beginTransaction('readwrite'), oldParent = path.dirname(oldPath), oldName = path.basename(oldPath), newParent = path.dirname(newPath), newName = path.basename(newPath), - // Remove oldPath from parent's directory listing. - oldDirNode = this.findINode(tx, oldParent), oldDirList = this.getDirListing(tx, oldParent, oldDirNode); - if (!oldDirList[oldName]) { - throw ApiError.ENOENT(oldPath); - } - var nodeId = oldDirList[oldName]; - delete oldDirList[oldName]; - // Invariant: Can't move a folder inside itself. - // This funny little hack ensures that the check passes only if oldPath - // is a subpath of newParent. We append '/' to avoid matching folders that - // are a substring of the bottom-most folder in the path. - if ((newParent + '/').indexOf(oldPath + '/') === 0) { - throw new ApiError(ErrorCode.EBUSY, oldParent); - } - // Add newPath to parent's directory listing. - var newDirNode, newDirList; - if (newParent === oldParent) { - // Prevent us from re-grabbing the same directory listing, which still - // contains oldName. - newDirNode = oldDirNode; - newDirList = oldDirList; - } - else { - newDirNode = this.findINode(tx, newParent); - newDirList = this.getDirListing(tx, newParent, newDirNode); - } - if (newDirList[newName]) { - // If it's a file, delete it. - var newNameNode = this.getINode(tx, newPath, newDirList[newName]); - if (newNameNode.isFile()) { - try { - tx.del(newNameNode.id); - tx.del(newDirList[newName]); - } - catch (e) { - tx.abort(); - throw e; - } - } - else { - // If it's a directory, throw a permissions error. - throw ApiError.EPERM(newPath); - } - } - newDirList[newName] = nodeId; - // Commit the two changed directory listings. - try { - tx.put(oldDirNode.id, Buffer.from(JSON.stringify(oldDirList)), true); - tx.put(newDirNode.id, Buffer.from(JSON.stringify(newDirList)), true); - } - catch (e) { - tx.abort(); - throw e; - } - tx.commit(); - }; - SyncKeyValueFileSystem.prototype.statSync = function statSync (p, isLstat) { - // Get the inode to the item, convert it into a Stats object. - return this.findINode(this.store.beginTransaction('readonly'), p).toStats(); - }; - SyncKeyValueFileSystem.prototype.createFileSync = function createFileSync (p, flag, mode) { - var tx = this.store.beginTransaction('readwrite'), data = emptyBuffer(), newFile = this.commitNewFile(tx, p, FileType.FILE, mode, data); - // Open the file. - return new SyncKeyValueFile(this, p, flag, newFile.toStats(), data); - }; - SyncKeyValueFileSystem.prototype.openFileSync = function openFileSync (p, flag) { - var tx = this.store.beginTransaction('readonly'), node = this.findINode(tx, p), data = tx.get(node.id); - if (data === undefined) { - throw ApiError.ENOENT(p); - } - return new SyncKeyValueFile(this, p, flag, node.toStats(), data); - }; - SyncKeyValueFileSystem.prototype.unlinkSync = function unlinkSync (p) { - this.removeEntry(p, false); - }; - SyncKeyValueFileSystem.prototype.rmdirSync = function rmdirSync (p) { - // Check first if directory is empty. - if (this.readdirSync(p).length > 0) { - throw ApiError.ENOTEMPTY(p); - } - else { - this.removeEntry(p, true); - } - }; - SyncKeyValueFileSystem.prototype.mkdirSync = function mkdirSync (p, mode) { - var tx = this.store.beginTransaction('readwrite'), data = Buffer.from('{}'); - this.commitNewFile(tx, p, FileType.DIRECTORY, mode, data); - }; - SyncKeyValueFileSystem.prototype.readdirSync = function readdirSync (p) { - var tx = this.store.beginTransaction('readonly'); - return Object.keys(this.getDirListing(tx, p, this.findINode(tx, p))); - }; - SyncKeyValueFileSystem.prototype._syncSync = function _syncSync (p, data, stats) { - // @todo Ensure mtime updates properly, and use that to determine if a data - // update is required. - var tx = this.store.beginTransaction('readwrite'), - // We use the _findInode helper because we actually need the INode id. - fileInodeId = this._findINode(tx, path.dirname(p), path.basename(p)), fileInode = this.getINode(tx, p, fileInodeId), inodeChanged = fileInode.update(stats); - try { - // Sync data. - tx.put(fileInode.id, data, true); - // Sync metadata. - if (inodeChanged) { - tx.put(fileInodeId, fileInode.toBuffer(), true); - } - } - catch (e) { - tx.abort(); - throw e; - } - tx.commit(); - }; - /** - * Checks if the root directory exists. Creates it if it doesn't. - */ - SyncKeyValueFileSystem.prototype.makeRootDirectory = function makeRootDirectory () { - var tx = this.store.beginTransaction('readwrite'); - if (tx.get(ROOT_NODE_ID) === undefined) { - // Create new inode. - var currTime = (new Date()).getTime(), - // Mode 0666 - dirInode = new Inode(GenerateRandomID(), 4096, 511 | FileType.DIRECTORY, currTime, currTime, currTime); - // If the root doesn't exist, the first random ID shouldn't exist, - // either. - tx.put(dirInode.id, getEmptyDirNode(), false); - tx.put(ROOT_NODE_ID, dirInode.toBuffer(), false); - tx.commit(); - } - }; - /** - * Helper function for findINode. - * @param parent The parent directory of the file we are attempting to find. - * @param filename The filename of the inode we are attempting to find, minus - * the parent. - * @return string The ID of the file's inode in the file system. - */ - SyncKeyValueFileSystem.prototype._findINode = function _findINode (tx, parent, filename) { - var this$1 = this; - - var readDirectory = function (inode) { - // Get the root's directory listing. - var dirList = this$1.getDirListing(tx, parent, inode); - // Get the file's ID. - if (dirList[filename]) { - return dirList[filename]; - } - else { - throw ApiError.ENOENT(path.resolve(parent, filename)); - } - }; - if (parent === '/') { - if (filename === '') { - // BASE CASE #1: Return the root's ID. - return ROOT_NODE_ID; - } - else { - // BASE CASE #2: Find the item in the root ndoe. - return readDirectory(this.getINode(tx, parent, ROOT_NODE_ID)); - } - } - else { - return readDirectory(this.getINode(tx, parent + path.sep + filename, this._findINode(tx, path.dirname(parent), path.basename(parent)))); - } - }; - /** - * Finds the Inode of the given path. - * @param p The path to look up. - * @return The Inode of the path p. - * @todo memoize/cache - */ - SyncKeyValueFileSystem.prototype.findINode = function findINode (tx, p) { - return this.getINode(tx, p, this._findINode(tx, path.dirname(p), path.basename(p))); - }; - /** - * Given the ID of a node, retrieves the corresponding Inode. - * @param tx The transaction to use. - * @param p The corresponding path to the file (used for error messages). - * @param id The ID to look up. - */ - SyncKeyValueFileSystem.prototype.getINode = function getINode (tx, p, id) { - var inode = tx.get(id); - if (inode === undefined) { - throw ApiError.ENOENT(p); - } - return Inode.fromBuffer(inode); - }; - /** - * Given the Inode of a directory, retrieves the corresponding directory - * listing. - */ - SyncKeyValueFileSystem.prototype.getDirListing = function getDirListing (tx, p, inode) { - if (!inode.isDirectory()) { - throw ApiError.ENOTDIR(p); - } - var data = tx.get(inode.id); - if (data === undefined) { - throw ApiError.ENOENT(p); - } - return JSON.parse(data.toString()); - }; - /** - * Creates a new node under a random ID. Retries 5 times before giving up in - * the exceedingly unlikely chance that we try to reuse a random GUID. - * @return The GUID that the data was stored under. - */ - SyncKeyValueFileSystem.prototype.addNewNode = function addNewNode (tx, data) { - var retries = 0; - var currId; - while (retries < 5) { - try { - currId = GenerateRandomID(); - tx.put(currId, data, false); - return currId; - } - catch (e) { - // Ignore and reroll. - } - } - throw new ApiError(ErrorCode.EIO, 'Unable to commit data to key-value store.'); - }; - /** - * Commits a new file (well, a FILE or a DIRECTORY) to the file system with - * the given mode. - * Note: This will commit the transaction. - * @param p The path to the new file. - * @param type The type of the new file. - * @param mode The mode to create the new file with. - * @param data The data to store at the file's data node. - * @return The Inode for the new file. - */ - SyncKeyValueFileSystem.prototype.commitNewFile = function commitNewFile (tx, p, type, mode, data) { - var parentDir = path.dirname(p), fname = path.basename(p), parentNode = this.findINode(tx, parentDir), dirListing = this.getDirListing(tx, parentDir, parentNode), currTime = (new Date()).getTime(); - // Invariant: The root always exists. - // If we don't check this prior to taking steps below, we will create a - // file with name '' in root should p == '/'. - if (p === '/') { - throw ApiError.EEXIST(p); - } - // Check if file already exists. - if (dirListing[fname]) { - throw ApiError.EEXIST(p); - } - var fileNode; - try { - // Commit data. - var dataId = this.addNewNode(tx, data); - fileNode = new Inode(dataId, data.length, mode | type, currTime, currTime, currTime); - // Commit file node. - var fileNodeId = this.addNewNode(tx, fileNode.toBuffer()); - // Update and commit parent directory listing. - dirListing[fname] = fileNodeId; - tx.put(parentNode.id, Buffer.from(JSON.stringify(dirListing)), true); - } - catch (e) { - tx.abort(); - throw e; - } - tx.commit(); - return fileNode; - }; - /** - * Remove all traces of the given path from the file system. - * @param p The path to remove from the file system. - * @param isDir Does the path belong to a directory, or a file? - * @todo Update mtime. - */ - SyncKeyValueFileSystem.prototype.removeEntry = function removeEntry (p, isDir) { - var tx = this.store.beginTransaction('readwrite'), parent = path.dirname(p), parentNode = this.findINode(tx, parent), parentListing = this.getDirListing(tx, parent, parentNode), fileName = path.basename(p); - if (!parentListing[fileName]) { - throw ApiError.ENOENT(p); - } - // Remove from directory listing of parent. - var fileNodeId = parentListing[fileName]; - delete parentListing[fileName]; - // Get file inode. - var fileNode = this.getINode(tx, p, fileNodeId); - if (!isDir && fileNode.isDirectory()) { - throw ApiError.EISDIR(p); - } - else if (isDir && !fileNode.isDirectory()) { - throw ApiError.ENOTDIR(p); - } - try { - // Delete data. - tx.del(fileNode.id); - // Delete node. - tx.del(fileNodeId); - // Update directory listing. - tx.put(parentNode.id, Buffer.from(JSON.stringify(parentListing)), true); - } - catch (e) { - tx.abort(); - throw e; - } - // Success. - tx.commit(); - }; - - return SyncKeyValueFileSystem; - }(SynchronousFileSystem)); - var AsyncKeyValueFile = (function (PreloadFile$$1) { - function AsyncKeyValueFile(_fs, _path, _flag, _stat, contents) { - PreloadFile$$1.call(this, _fs, _path, _flag, _stat, contents); - } - - if ( PreloadFile$$1 ) AsyncKeyValueFile.__proto__ = PreloadFile$$1; - AsyncKeyValueFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype ); - AsyncKeyValueFile.prototype.constructor = AsyncKeyValueFile; - AsyncKeyValueFile.prototype.sync = function sync (cb) { - var this$1 = this; - - if (this.isDirty()) { - this._fs._sync(this.getPath(), this.getBuffer(), this.getStats(), function (e) { - if (!e) { - this$1.resetDirty(); - } - cb(e); - }); - } - else { - cb(); - } - }; - AsyncKeyValueFile.prototype.close = function close (cb) { - this.sync(cb); - }; - - return AsyncKeyValueFile; - }(PreloadFile)); - /** - * An "Asynchronous key-value file system". Stores data to/retrieves data from - * an underlying asynchronous key-value store. - */ - var AsyncKeyValueFileSystem = (function (BaseFileSystem$$1) { - function AsyncKeyValueFileSystem () { - BaseFileSystem$$1.apply(this, arguments); - } - - if ( BaseFileSystem$$1 ) AsyncKeyValueFileSystem.__proto__ = BaseFileSystem$$1; - AsyncKeyValueFileSystem.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - AsyncKeyValueFileSystem.prototype.constructor = AsyncKeyValueFileSystem; - - AsyncKeyValueFileSystem.isAvailable = function isAvailable () { return true; }; - /** - * Initializes the file system. Typically called by subclasses' async - * constructors. - */ - AsyncKeyValueFileSystem.prototype.init = function init (store, cb) { - this.store = store; - // INVARIANT: Ensure that the root exists. - this.makeRootDirectory(cb); - }; - AsyncKeyValueFileSystem.prototype.getName = function getName () { return this.store.name(); }; - AsyncKeyValueFileSystem.prototype.isReadOnly = function isReadOnly () { return false; }; - AsyncKeyValueFileSystem.prototype.supportsSymlinks = function supportsSymlinks () { return false; }; - AsyncKeyValueFileSystem.prototype.supportsProps = function supportsProps () { return false; }; - AsyncKeyValueFileSystem.prototype.supportsSynch = function supportsSynch () { return false; }; - /** - * Delete all contents stored in the file system. - */ - AsyncKeyValueFileSystem.prototype.empty = function empty (cb) { - var this$1 = this; - - this.store.clear(function (e) { - if (noError(e, cb)) { - // INVARIANT: Root always exists. - this$1.makeRootDirectory(cb); - } - }); - }; - AsyncKeyValueFileSystem.prototype.rename = function rename (oldPath, newPath, cb) { - var this$1 = this; - - var tx = this.store.beginTransaction('readwrite'); - var oldParent = path.dirname(oldPath), oldName = path.basename(oldPath); - var newParent = path.dirname(newPath), newName = path.basename(newPath); - var inodes = {}; - var lists = {}; - var errorOccurred = false; - // Invariant: Can't move a folder inside itself. - // This funny little hack ensures that the check passes only if oldPath - // is a subpath of newParent. We append '/' to avoid matching folders that - // are a substring of the bottom-most folder in the path. - if ((newParent + '/').indexOf(oldPath + '/') === 0) { - return cb(new ApiError(ErrorCode.EBUSY, oldParent)); - } - /** - * Responsible for Phase 2 of the rename operation: Modifying and - * committing the directory listings. Called once we have successfully - * retrieved both the old and new parent's inodes and listings. - */ - var theOleSwitcharoo = function () { - // Sanity check: Ensure both paths are present, and no error has occurred. - if (errorOccurred || !lists.hasOwnProperty(oldParent) || !lists.hasOwnProperty(newParent)) { - return; - } - var oldParentList = lists[oldParent], oldParentINode = inodes[oldParent], newParentList = lists[newParent], newParentINode = inodes[newParent]; - // Delete file from old parent. - if (!oldParentList[oldName]) { - cb(ApiError.ENOENT(oldPath)); - } - else { - var fileId = oldParentList[oldName]; - delete oldParentList[oldName]; - // Finishes off the renaming process by adding the file to the new - // parent. - var completeRename = function () { - newParentList[newName] = fileId; - // Commit old parent's list. - tx.put(oldParentINode.id, Buffer.from(JSON.stringify(oldParentList)), true, function (e) { - if (noErrorTx(e, tx, cb)) { - if (oldParent === newParent) { - // DONE! - tx.commit(cb); - } - else { - // Commit new parent's list. - tx.put(newParentINode.id, Buffer.from(JSON.stringify(newParentList)), true, function (e) { - if (noErrorTx(e, tx, cb)) { - tx.commit(cb); - } - }); - } - } - }); - }; - if (newParentList[newName]) { - // 'newPath' already exists. Check if it's a file or a directory, and - // act accordingly. - this$1.getINode(tx, newPath, newParentList[newName], function (e, inode) { - if (noErrorTx(e, tx, cb)) { - if (inode.isFile()) { - // Delete the file and continue. - tx.del(inode.id, function (e) { - if (noErrorTx(e, tx, cb)) { - tx.del(newParentList[newName], function (e) { - if (noErrorTx(e, tx, cb)) { - completeRename(); - } - }); - } - }); - } - else { - // Can't overwrite a directory using rename. - tx.abort(function (e) { - cb(ApiError.EPERM(newPath)); - }); - } - } - }); - } - else { - completeRename(); - } - } - }; - /** - * Grabs a path's inode and directory listing, and shoves it into the - * inodes and lists hashes. - */ - var processInodeAndListings = function (p) { - this$1.findINodeAndDirListing(tx, p, function (e, node, dirList) { - if (e) { - if (!errorOccurred) { - errorOccurred = true; - tx.abort(function () { - cb(e); - }); - } - // If error has occurred already, just stop here. - } - else { - inodes[p] = node; - lists[p] = dirList; - theOleSwitcharoo(); - } - }); - }; - processInodeAndListings(oldParent); - if (oldParent !== newParent) { - processInodeAndListings(newParent); - } - }; - AsyncKeyValueFileSystem.prototype.stat = function stat (p, isLstat, cb) { - var tx = this.store.beginTransaction('readonly'); - this.findINode(tx, p, function (e, inode) { - if (noError(e, cb)) { - cb(null, inode.toStats()); - } - }); - }; - AsyncKeyValueFileSystem.prototype.createFile = function createFile (p, flag, mode, cb) { - var this$1 = this; - - var tx = this.store.beginTransaction('readwrite'), data = emptyBuffer(); - this.commitNewFile(tx, p, FileType.FILE, mode, data, function (e, newFile) { - if (noError(e, cb)) { - cb(null, new AsyncKeyValueFile(this$1, p, flag, newFile.toStats(), data)); - } - }); - }; - AsyncKeyValueFileSystem.prototype.openFile = function openFile (p, flag, cb) { - var this$1 = this; - - var tx = this.store.beginTransaction('readonly'); - // Step 1: Grab the file's inode. - this.findINode(tx, p, function (e, inode) { - if (noError(e, cb)) { - // Step 2: Grab the file's data. - tx.get(inode.id, function (e, data) { - if (noError(e, cb)) { - if (data === undefined) { - cb(ApiError.ENOENT(p)); - } - else { - cb(null, new AsyncKeyValueFile(this$1, p, flag, inode.toStats(), data)); - } - } - }); - } - }); - }; - AsyncKeyValueFileSystem.prototype.unlink = function unlink (p, cb) { - this.removeEntry(p, false, cb); - }; - AsyncKeyValueFileSystem.prototype.rmdir = function rmdir (p, cb) { - var this$1 = this; - - // Check first if directory is empty. - this.readdir(p, function (err, files) { - if (err) { - cb(err); - } - else if (files.length > 0) { - cb(ApiError.ENOTEMPTY(p)); - } - else { - this$1.removeEntry(p, true, cb); - } - }); - }; - AsyncKeyValueFileSystem.prototype.mkdir = function mkdir (p, mode, cb) { - var tx = this.store.beginTransaction('readwrite'), data = Buffer.from('{}'); - this.commitNewFile(tx, p, FileType.DIRECTORY, mode, data, cb); - }; - AsyncKeyValueFileSystem.prototype.readdir = function readdir (p, cb) { - var this$1 = this; - - var tx = this.store.beginTransaction('readonly'); - this.findINode(tx, p, function (e, inode) { - if (noError(e, cb)) { - this$1.getDirListing(tx, p, inode, function (e, dirListing) { - if (noError(e, cb)) { - cb(null, Object.keys(dirListing)); - } - }); - } - }); - }; - AsyncKeyValueFileSystem.prototype._sync = function _sync (p, data, stats, cb) { - var this$1 = this; - - // @todo Ensure mtime updates properly, and use that to determine if a data - // update is required. - var tx = this.store.beginTransaction('readwrite'); - // Step 1: Get the file node's ID. - this._findINode(tx, path.dirname(p), path.basename(p), function (e, fileInodeId) { - if (noErrorTx(e, tx, cb)) { - // Step 2: Get the file inode. - this$1.getINode(tx, p, fileInodeId, function (e, fileInode) { - if (noErrorTx(e, tx, cb)) { - var inodeChanged = fileInode.update(stats); - // Step 3: Sync the data. - tx.put(fileInode.id, data, true, function (e) { - if (noErrorTx(e, tx, cb)) { - // Step 4: Sync the metadata (if it changed)! - if (inodeChanged) { - tx.put(fileInodeId, fileInode.toBuffer(), true, function (e) { - if (noErrorTx(e, tx, cb)) { - tx.commit(cb); - } - }); - } - else { - // No need to sync metadata; return. - tx.commit(cb); - } - } - }); - } - }); - } - }); - }; - /** - * Checks if the root directory exists. Creates it if it doesn't. - */ - AsyncKeyValueFileSystem.prototype.makeRootDirectory = function makeRootDirectory (cb) { - var tx = this.store.beginTransaction('readwrite'); - tx.get(ROOT_NODE_ID, function (e, data) { - if (e || data === undefined) { - // Create new inode. - var currTime = (new Date()).getTime(), - // Mode 0666 - dirInode = new Inode(GenerateRandomID(), 4096, 511 | FileType.DIRECTORY, currTime, currTime, currTime); - // If the root doesn't exist, the first random ID shouldn't exist, - // either. - tx.put(dirInode.id, getEmptyDirNode(), false, function (e) { - if (noErrorTx(e, tx, cb)) { - tx.put(ROOT_NODE_ID, dirInode.toBuffer(), false, function (e) { - if (e) { - tx.abort(function () { cb(e); }); - } - else { - tx.commit(cb); - } - }); - } - }); - } - else { - // We're good. - tx.commit(cb); - } - }); - }; - /** - * Helper function for findINode. - * @param parent The parent directory of the file we are attempting to find. - * @param filename The filename of the inode we are attempting to find, minus - * the parent. - * @param cb Passed an error or the ID of the file's inode in the file system. - */ - AsyncKeyValueFileSystem.prototype._findINode = function _findINode (tx, parent, filename, cb) { - var this$1 = this; - - var handleDirectoryListings = function (e, inode, dirList) { - if (e) { - cb(e); - } - else if (dirList[filename]) { - cb(null, dirList[filename]); - } - else { - cb(ApiError.ENOENT(path.resolve(parent, filename))); - } - }; - if (parent === '/') { - if (filename === '') { - // BASE CASE #1: Return the root's ID. - cb(null, ROOT_NODE_ID); - } - else { - // BASE CASE #2: Find the item in the root node. - this.getINode(tx, parent, ROOT_NODE_ID, function (e, inode) { - if (noError(e, cb)) { - this$1.getDirListing(tx, parent, inode, function (e, dirList) { - // handle_directory_listings will handle e for us. - handleDirectoryListings(e, inode, dirList); - }); - } - }); - } - } - else { - // Get the parent directory's INode, and find the file in its directory - // listing. - this.findINodeAndDirListing(tx, parent, handleDirectoryListings); - } - }; - /** - * Finds the Inode of the given path. - * @param p The path to look up. - * @param cb Passed an error or the Inode of the path p. - * @todo memoize/cache - */ - AsyncKeyValueFileSystem.prototype.findINode = function findINode (tx, p, cb) { - var this$1 = this; - - this._findINode(tx, path.dirname(p), path.basename(p), function (e, id) { - if (noError(e, cb)) { - this$1.getINode(tx, p, id, cb); - } - }); - }; - /** - * Given the ID of a node, retrieves the corresponding Inode. - * @param tx The transaction to use. - * @param p The corresponding path to the file (used for error messages). - * @param id The ID to look up. - * @param cb Passed an error or the inode under the given id. - */ - AsyncKeyValueFileSystem.prototype.getINode = function getINode (tx, p, id, cb) { - tx.get(id, function (e, data) { - if (noError(e, cb)) { - if (data === undefined) { - cb(ApiError.ENOENT(p)); - } - else { - cb(null, Inode.fromBuffer(data)); - } - } - }); - }; - /** - * Given the Inode of a directory, retrieves the corresponding directory - * listing. - */ - AsyncKeyValueFileSystem.prototype.getDirListing = function getDirListing (tx, p, inode, cb) { - if (!inode.isDirectory()) { - cb(ApiError.ENOTDIR(p)); - } - else { - tx.get(inode.id, function (e, data) { - if (noError(e, cb)) { - try { - cb(null, JSON.parse(data.toString())); - } - catch (e) { - // Occurs when data is undefined, or corresponds to something other - // than a directory listing. The latter should never occur unless - // the file system is corrupted. - cb(ApiError.ENOENT(p)); - } - } - }); - } - }; - /** - * Given a path to a directory, retrieves the corresponding INode and - * directory listing. - */ - AsyncKeyValueFileSystem.prototype.findINodeAndDirListing = function findINodeAndDirListing (tx, p, cb) { - var this$1 = this; - - this.findINode(tx, p, function (e, inode) { - if (noError(e, cb)) { - this$1.getDirListing(tx, p, inode, function (e, listing) { - if (noError(e, cb)) { - cb(null, inode, listing); - } - }); - } - }); - }; - /** - * Adds a new node under a random ID. Retries 5 times before giving up in - * the exceedingly unlikely chance that we try to reuse a random GUID. - * @param cb Passed an error or the GUID that the data was stored under. - */ - AsyncKeyValueFileSystem.prototype.addNewNode = function addNewNode (tx, data, cb) { - var retries = 0, currId; - var reroll = function () { - if (++retries === 5) { - // Max retries hit. Return with an error. - cb(new ApiError(ErrorCode.EIO, 'Unable to commit data to key-value store.')); - } - else { - // Try again. - currId = GenerateRandomID(); - tx.put(currId, data, false, function (e, committed) { - if (e || !committed) { - reroll(); - } - else { - // Successfully stored under 'currId'. - cb(null, currId); - } - }); - } - }; - reroll(); - }; - /** - * Commits a new file (well, a FILE or a DIRECTORY) to the file system with - * the given mode. - * Note: This will commit the transaction. - * @param p The path to the new file. - * @param type The type of the new file. - * @param mode The mode to create the new file with. - * @param data The data to store at the file's data node. - * @param cb Passed an error or the Inode for the new file. - */ - AsyncKeyValueFileSystem.prototype.commitNewFile = function commitNewFile (tx, p, type, mode, data, cb) { - var this$1 = this; - - var parentDir = path.dirname(p), fname = path.basename(p), currTime = (new Date()).getTime(); - // Invariant: The root always exists. - // If we don't check this prior to taking steps below, we will create a - // file with name '' in root should p == '/'. - if (p === '/') { - return cb(ApiError.EEXIST(p)); - } - // Let's build a pyramid of code! - // Step 1: Get the parent directory's inode and directory listing - this.findINodeAndDirListing(tx, parentDir, function (e, parentNode, dirListing) { - if (noErrorTx(e, tx, cb)) { - if (dirListing[fname]) { - // File already exists. - tx.abort(function () { - cb(ApiError.EEXIST(p)); - }); - } - else { - // Step 2: Commit data to store. - this$1.addNewNode(tx, data, function (e, dataId) { - if (noErrorTx(e, tx, cb)) { - // Step 3: Commit the file's inode to the store. - var fileInode = new Inode(dataId, data.length, mode | type, currTime, currTime, currTime); - this$1.addNewNode(tx, fileInode.toBuffer(), function (e, fileInodeId) { - if (noErrorTx(e, tx, cb)) { - // Step 4: Update parent directory's listing. - dirListing[fname] = fileInodeId; - tx.put(parentNode.id, Buffer.from(JSON.stringify(dirListing)), true, function (e) { - if (noErrorTx(e, tx, cb)) { - // Step 5: Commit and return the new inode. - tx.commit(function (e) { - if (noErrorTx(e, tx, cb)) { - cb(null, fileInode); - } - }); - } - }); - } - }); - } - }); - } - } - }); - }; - /** - * Remove all traces of the given path from the file system. - * @param p The path to remove from the file system. - * @param isDir Does the path belong to a directory, or a file? - * @todo Update mtime. - */ - AsyncKeyValueFileSystem.prototype.removeEntry = function removeEntry (p, isDir, cb) { - var this$1 = this; - - var tx = this.store.beginTransaction('readwrite'), parent = path.dirname(p), fileName = path.basename(p); - // Step 1: Get parent directory's node and directory listing. - this.findINodeAndDirListing(tx, parent, function (e, parentNode, parentListing) { - if (noErrorTx(e, tx, cb)) { - if (!parentListing[fileName]) { - tx.abort(function () { - cb(ApiError.ENOENT(p)); - }); - } - else { - // Remove from directory listing of parent. - var fileNodeId = parentListing[fileName]; - delete parentListing[fileName]; - // Step 2: Get file inode. - this$1.getINode(tx, p, fileNodeId, function (e, fileNode) { - if (noErrorTx(e, tx, cb)) { - if (!isDir && fileNode.isDirectory()) { - tx.abort(function () { - cb(ApiError.EISDIR(p)); - }); - } - else if (isDir && !fileNode.isDirectory()) { - tx.abort(function () { - cb(ApiError.ENOTDIR(p)); - }); - } - else { - // Step 3: Delete data. - tx.del(fileNode.id, function (e) { - if (noErrorTx(e, tx, cb)) { - // Step 4: Delete node. - tx.del(fileNodeId, function (e) { - if (noErrorTx(e, tx, cb)) { - // Step 5: Update directory listing. - tx.put(parentNode.id, Buffer.from(JSON.stringify(parentListing)), true, function (e) { - if (noErrorTx(e, tx, cb)) { - tx.commit(cb); - } - }); - } - }); - } - }); - } - } - }); - } - } - }); - }; - - return AsyncKeyValueFileSystem; - }(BaseFileSystem)); - - /** - * A simple in-memory key-value store backed by a JavaScript object. - */ - var InMemoryStore = function InMemoryStore() { - this.store = {}; - }; - InMemoryStore.prototype.name = function name () { return InMemoryFileSystem.Name; }; - InMemoryStore.prototype.clear = function clear () { this.store = {}; }; - InMemoryStore.prototype.beginTransaction = function beginTransaction (type) { - return new SimpleSyncRWTransaction(this); - }; - InMemoryStore.prototype.get = function get (key) { - return this.store[key]; - }; - InMemoryStore.prototype.put = function put (key, data, overwrite) { - if (!overwrite && this.store.hasOwnProperty(key)) { - return false; - } - this.store[key] = data; - return true; - }; - InMemoryStore.prototype.del = function del (key) { - delete this.store[key]; - }; - /** - * A simple in-memory file system backed by an InMemoryStore. - * Files are not persisted across page loads. - */ - var InMemoryFileSystem = (function (SyncKeyValueFileSystem$$1) { - function InMemoryFileSystem() { - SyncKeyValueFileSystem$$1.call(this, { store: new InMemoryStore() }); - } - - if ( SyncKeyValueFileSystem$$1 ) InMemoryFileSystem.__proto__ = SyncKeyValueFileSystem$$1; - InMemoryFileSystem.prototype = Object.create( SyncKeyValueFileSystem$$1 && SyncKeyValueFileSystem$$1.prototype ); - InMemoryFileSystem.prototype.constructor = InMemoryFileSystem; - /** - * Creates an InMemoryFileSystem instance. - */ - InMemoryFileSystem.Create = function Create (options, cb) { - cb(null, new InMemoryFileSystem()); - }; - - return InMemoryFileSystem; - }(SyncKeyValueFileSystem)); - - InMemoryFileSystem.Name = "InMemory"; - InMemoryFileSystem.Options = {}; - - /** - * Get the indexedDB constructor for the current browser. - * @hidden - */ - var indexedDB = global$1.indexedDB || - global$1.mozIndexedDB || - global$1.webkitIndexedDB || - global$1.msIndexedDB; - /** - * Converts a DOMException or a DOMError from an IndexedDB event into a - * standardized BrowserFS API error. - * @hidden - */ - function convertError$2(e, message) { - if ( message === void 0 ) message = e.toString(); - - switch (e.name) { - case "NotFoundError": - return new ApiError(ErrorCode.ENOENT, message); - case "QuotaExceededError": - return new ApiError(ErrorCode.ENOSPC, message); - default: - // The rest do not seem to map cleanly to standard error codes. - return new ApiError(ErrorCode.EIO, message); - } - } - /** - * Produces a new onerror handler for IDB. Our errors are always fatal, so we - * handle them generically: Call the user-supplied callback with a translated - * version of the error, and let the error bubble up. - * @hidden - */ - function onErrorHandler(cb, code, message) { - if ( code === void 0 ) code = ErrorCode.EIO; - if ( message === void 0 ) message = null; - - return function (e) { - // Prevent the error from canceling the transaction. - e.preventDefault(); - cb(new ApiError(code, message !== null ? message : undefined)); - }; - } - /** - * @hidden - */ - var IndexedDBROTransaction = function IndexedDBROTransaction(tx, store) { - this.tx = tx; - this.store = store; - }; - IndexedDBROTransaction.prototype.get = function get (key, cb) { - try { - var r = this.store.get(key); - r.onerror = onErrorHandler(cb); - r.onsuccess = function (event) { - // IDB returns the value 'undefined' when you try to get keys that - // don't exist. The caller expects this behavior. - var result = event.target.result; - if (result === undefined) { - cb(null, result); - } - else { - // IDB data is stored as an ArrayBuffer - cb(null, arrayBuffer2Buffer(result)); - } - }; - } - catch (e) { - cb(convertError$2(e)); - } - }; - /** - * @hidden - */ - var IndexedDBRWTransaction = (function (IndexedDBROTransaction) { - function IndexedDBRWTransaction(tx, store) { - IndexedDBROTransaction.call(this, tx, store); - } - - if ( IndexedDBROTransaction ) IndexedDBRWTransaction.__proto__ = IndexedDBROTransaction; - IndexedDBRWTransaction.prototype = Object.create( IndexedDBROTransaction && IndexedDBROTransaction.prototype ); - IndexedDBRWTransaction.prototype.constructor = IndexedDBRWTransaction; - IndexedDBRWTransaction.prototype.put = function put (key, data, overwrite, cb) { - try { - var arraybuffer = buffer2ArrayBuffer(data); - var r; - if (overwrite) { - r = this.store.put(arraybuffer, key); - } - else { - // 'add' will never overwrite an existing key. - r = this.store.add(arraybuffer, key); - } - // XXX: NEED TO RETURN FALSE WHEN ADD HAS A KEY CONFLICT. NO ERROR. - r.onerror = onErrorHandler(cb); - r.onsuccess = function (event) { - cb(null, true); - }; - } - catch (e) { - cb(convertError$2(e)); - } - }; - IndexedDBRWTransaction.prototype.del = function del (key, cb) { - try { - // NOTE: IE8 has a bug with identifiers named 'delete' unless used as a string - // like this. - // http://stackoverflow.com/a/26479152 - var r = this.store['delete'](key); - r.onerror = onErrorHandler(cb); - r.onsuccess = function (event) { - cb(); - }; - } - catch (e) { - cb(convertError$2(e)); - } - }; - IndexedDBRWTransaction.prototype.commit = function commit (cb) { - // Return to the event loop to commit the transaction. - setTimeout(cb, 0); - }; - IndexedDBRWTransaction.prototype.abort = function abort (cb) { - var _e = null; - try { - this.tx.abort(); - } - catch (e) { - _e = convertError$2(e); - } - finally { - cb(_e); - } - }; - - return IndexedDBRWTransaction; - }(IndexedDBROTransaction)); - var IndexedDBStore = function IndexedDBStore(cb, storeName) { - var this$1 = this; - if ( storeName === void 0 ) storeName = 'browserfs'; - - this.storeName = storeName; - var openReq = indexedDB.open(this.storeName, 1); - openReq.onupgradeneeded = function (event) { - var db = event.target.result; - // Huh. This should never happen; we're at version 1. Why does another - // database exist? - if (db.objectStoreNames.contains(this$1.storeName)) { - db.deleteObjectStore(this$1.storeName); - } - db.createObjectStore(this$1.storeName); - }; - openReq.onsuccess = function (event) { - this$1.db = event.target.result; - cb(null, this$1); - }; - openReq.onerror = onErrorHandler(cb, ErrorCode.EACCES); - }; - IndexedDBStore.prototype.name = function name () { - return IndexedDBFileSystem.Name + " - " + this.storeName; - }; - IndexedDBStore.prototype.clear = function clear (cb) { - try { - var tx = this.db.transaction(this.storeName, 'readwrite'), objectStore = tx.objectStore(this.storeName), r = objectStore.clear(); - r.onsuccess = function (event) { - // Use setTimeout to commit transaction. - setTimeout(cb, 0); - }; - r.onerror = onErrorHandler(cb); - } - catch (e) { - cb(convertError$2(e)); - } - }; - IndexedDBStore.prototype.beginTransaction = function beginTransaction (type) { - if ( type === void 0 ) type = 'readonly'; - - var tx = this.db.transaction(this.storeName, type), objectStore = tx.objectStore(this.storeName); - if (type === 'readwrite') { - return new IndexedDBRWTransaction(tx, objectStore); - } - else if (type === 'readonly') { - return new IndexedDBROTransaction(tx, objectStore); - } - else { - throw new ApiError(ErrorCode.EINVAL, 'Invalid transaction type.'); - } - }; - /** - * A file system that uses the IndexedDB key value file system. - */ - var IndexedDBFileSystem = (function (AsyncKeyValueFileSystem$$1) { - function IndexedDBFileSystem(cb, storeName, deprecateMsg) { - var this$1 = this; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - AsyncKeyValueFileSystem$$1.call(this); - this.store = new IndexedDBStore(function (e) { - if (e) { - cb(e); - } - else { - this$1.init(this$1.store, function (e) { - cb(e, this$1); - }); - } - }, storeName); - deprecationMessage(deprecateMsg, IndexedDBFileSystem.Name, { storeName: storeName }); - } - - if ( AsyncKeyValueFileSystem$$1 ) IndexedDBFileSystem.__proto__ = AsyncKeyValueFileSystem$$1; - IndexedDBFileSystem.prototype = Object.create( AsyncKeyValueFileSystem$$1 && AsyncKeyValueFileSystem$$1.prototype ); - IndexedDBFileSystem.prototype.constructor = IndexedDBFileSystem; - /** - * Constructs an IndexedDB file system with the given options. - */ - IndexedDBFileSystem.Create = function Create (opts, cb) { - // tslint:disable-next-line:no-unused-new - new IndexedDBFileSystem(cb, opts.storeName, false); - // tslint:enable-next-line:no-unused-new - }; - IndexedDBFileSystem.isAvailable = function isAvailable () { - // In Safari's private browsing mode, indexedDB.open returns NULL. - // In Firefox, it throws an exception. - // In Chrome, it "just works", and clears the database when you leave the page. - // Untested: Opera, IE. - try { - return typeof indexedDB !== 'undefined' && null !== indexedDB.open("__browserfs_test__"); - } - catch (e) { - return false; - } - }; - - return IndexedDBFileSystem; - }(AsyncKeyValueFileSystem)); - - IndexedDBFileSystem.Name = "IndexedDB"; - IndexedDBFileSystem.Options = { - storeName: { - type: "string", - optional: true, - description: "The name of this file system. You can have multiple IndexedDB file systems operating at once, but each must have a different name." - } - }; - - /** - * Some versions of FF and all versions of IE do not support the full range of - * 16-bit numbers encoded as characters, as they enforce UTF-16 restrictions. - * @url http://stackoverflow.com/questions/11170716/are-there-any-characters-that-are-not-allowed-in-localstorage/11173673#11173673 - * @hidden - */ - var supportsBinaryString = false; - var binaryEncoding; - try { - global$1.localStorage.setItem("__test__", String.fromCharCode(0xD800)); - supportsBinaryString = global$1.localStorage.getItem("__test__") === String.fromCharCode(0xD800); - } - catch (e) { - // IE throws an exception. - supportsBinaryString = false; - } - binaryEncoding = supportsBinaryString ? 'binary_string' : 'binary_string_ie'; - if (!Buffer.isEncoding(binaryEncoding)) { - // Fallback for non BrowserFS implementations of buffer that lack a - // binary_string format. - binaryEncoding = "base64"; - } - /** - * A synchronous key-value store backed by localStorage. - */ - var LocalStorageStore = function LocalStorageStore () {}; - - LocalStorageStore.prototype.name = function name () { - return LocalStorageFileSystem.Name; - }; - LocalStorageStore.prototype.clear = function clear () { - global$1.localStorage.clear(); - }; - LocalStorageStore.prototype.beginTransaction = function beginTransaction (type) { - // No need to differentiate. - return new SimpleSyncRWTransaction(this); - }; - LocalStorageStore.prototype.get = function get (key) { - try { - var data = global$1.localStorage.getItem(key); - if (data !== null) { - return Buffer.from(data, binaryEncoding); - } - } - catch (e) { - // Do nothing. - } - // Key doesn't exist, or a failure occurred. - return undefined; - }; - LocalStorageStore.prototype.put = function put (key, data, overwrite) { - try { - if (!overwrite && global$1.localStorage.getItem(key) !== null) { - // Don't want to overwrite the key! - return false; - } - global$1.localStorage.setItem(key, data.toString(binaryEncoding)); - return true; - } - catch (e) { - throw new ApiError(ErrorCode.ENOSPC, "LocalStorage is full."); - } - }; - LocalStorageStore.prototype.del = function del (key) { - try { - global$1.localStorage.removeItem(key); - } - catch (e) { - throw new ApiError(ErrorCode.EIO, "Unable to delete key " + key + ": " + e); - } - }; - /** - * A synchronous file system backed by localStorage. Connects our - * LocalStorageStore to our SyncKeyValueFileSystem. - */ - var LocalStorageFileSystem = (function (SyncKeyValueFileSystem$$1) { - function LocalStorageFileSystem() { SyncKeyValueFileSystem$$1.call(this, { store: new LocalStorageStore() }); } - - if ( SyncKeyValueFileSystem$$1 ) LocalStorageFileSystem.__proto__ = SyncKeyValueFileSystem$$1; - LocalStorageFileSystem.prototype = Object.create( SyncKeyValueFileSystem$$1 && SyncKeyValueFileSystem$$1.prototype ); - LocalStorageFileSystem.prototype.constructor = LocalStorageFileSystem; - /** - * Creates a LocalStorageFileSystem instance. - */ - LocalStorageFileSystem.Create = function Create (options, cb) { - cb(null, new LocalStorageFileSystem()); - }; - LocalStorageFileSystem.isAvailable = function isAvailable () { - return typeof global$1.localStorage !== 'undefined'; - }; - - return LocalStorageFileSystem; - }(SyncKeyValueFileSystem)); - - LocalStorageFileSystem.Name = "LocalStorage"; - LocalStorageFileSystem.Options = {}; - - /** - * The MountableFileSystem allows you to mount multiple backend types or - * multiple instantiations of the same backend into a single file system tree. - * The file systems do not need to know about each other; all interactions are - * automatically facilitated through this interface. - * - * For example, if a file system is mounted at /mnt/blah, and a request came in - * for /mnt/blah/foo.txt, the file system would see a request for /foo.txt. - * - * You can mount file systems when you configure the file system: - * ```javascript - * BrowserFS.configure({ - * fs: "MountableFileSystem", - * options: { - * '/data': { fs: 'XmlHttpRequest', options: { index: "http://mysite.com/files/index.json" } }, - * '/home': { fs: 'LocalStorage' } - * } - * }, function(e) { - * - * }); - * ``` - * - * For advanced users, you can also mount file systems *after* MFS is constructed: - * ```javascript - * BrowserFS.FileSystem.XmlHttpRequest.Create({ - * index: "http://mysite.com/files/index.json" - * }, function(e, xhrfs) { - * BrowserFS.FileSystem.MountableFileSystem.Create({ - * '/data': xhrfs - * }, function(e, mfs) { - * BrowserFS.initialize(mfs); - * - * // Added after-the-fact... - * BrowserFS.FileSystem.LocalStorage.Create(function(e, lsfs) { - * mfs.mount('/home', lsfs); - * }); - * }); - * }); - * ``` - * - * Since MountableFileSystem simply proxies requests to mounted file systems, it supports all of the operations that the mounted file systems support. - * - * With no mounted file systems, `MountableFileSystem` acts as a simple `InMemory` filesystem. - */ - var MountableFileSystem = (function (BaseFileSystem$$1) { - function MountableFileSystem() { - BaseFileSystem$$1.call(this); - // Contains the list of mount points in mntMap, sorted by string length in decreasing order. - // Ensures that we scan the most specific mount points for a match first, which lets us - // nest mount points. - this.mountList = []; - this.mntMap = {}; - // The InMemory file system serves purely to provide directory listings for - // mounted file systems. - this.rootFs = new InMemoryFileSystem(); - } - - if ( BaseFileSystem$$1 ) MountableFileSystem.__proto__ = BaseFileSystem$$1; - MountableFileSystem.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - MountableFileSystem.prototype.constructor = MountableFileSystem; - /** - * Creates a MountableFileSystem instance with the given options. - */ - MountableFileSystem.Create = function Create (opts, cb) { - var fs = new MountableFileSystem(); - Object.keys(opts).forEach(function (mountPoint) { - fs.mount(mountPoint, opts[mountPoint]); - }); - cb(null, fs); - }; - MountableFileSystem.isAvailable = function isAvailable () { - return true; - }; - /** - * Mounts the file system at the given mount point. - */ - MountableFileSystem.prototype.mount = function mount (mountPoint, fs) { - if (mountPoint[0] !== '/') { - mountPoint = "/" + mountPoint; - } - mountPoint = path.resolve(mountPoint); - if (this.mntMap[mountPoint]) { - throw new ApiError(ErrorCode.EINVAL, "Mount point " + mountPoint + " is already taken."); - } - mkdirpSync(mountPoint, 0x1ff, this.rootFs); - this.mntMap[mountPoint] = fs; - this.mountList.push(mountPoint); - this.mountList = this.mountList.sort(function (a, b) { return b.length - a.length; }); - }; - MountableFileSystem.prototype.umount = function umount (mountPoint) { - var this$1 = this; - - if (mountPoint[0] !== '/') { - mountPoint = "/" + mountPoint; - } - mountPoint = path.resolve(mountPoint); - if (!this.mntMap[mountPoint]) { - throw new ApiError(ErrorCode.EINVAL, "Mount point " + mountPoint + " is already unmounted."); - } - delete this.mntMap[mountPoint]; - this.mountList.splice(this.mountList.indexOf(mountPoint), 1); - while (mountPoint !== '/') { - if (this$1.rootFs.readdirSync(mountPoint).length === 0) { - this$1.rootFs.rmdirSync(mountPoint); - mountPoint = path.dirname(mountPoint); - } - else { - break; - } - } - }; - /** - * Returns the file system that the path points to. - */ - MountableFileSystem.prototype._getFs = function _getFs (path$$1) { - var this$1 = this; - - var mountList = this.mountList, len = mountList.length; - for (var i = 0; i < len; i++) { - var mountPoint = mountList[i]; - // We know path is normalized, so it is a substring of the mount point. - if (mountPoint.length <= path$$1.length && path$$1.indexOf(mountPoint) === 0) { - path$$1 = path$$1.substr(mountPoint.length > 1 ? mountPoint.length : 0); - if (path$$1 === '') { - path$$1 = '/'; - } - return { fs: this$1.mntMap[mountPoint], path: path$$1 }; - } - } - // Query our root file system. - return { fs: this.rootFs, path: path$$1 }; - }; - // Global information methods - MountableFileSystem.prototype.getName = function getName () { - return MountableFileSystem.Name; - }; - MountableFileSystem.prototype.diskSpace = function diskSpace (path$$1, cb) { - cb(0, 0); - }; - MountableFileSystem.prototype.isReadOnly = function isReadOnly () { - return false; - }; - MountableFileSystem.prototype.supportsLinks = function supportsLinks () { - // I'm not ready for cross-FS links yet. - return false; - }; - MountableFileSystem.prototype.supportsProps = function supportsProps () { - return false; - }; - MountableFileSystem.prototype.supportsSynch = function supportsSynch () { - return true; - }; - /** - * Fixes up error messages so they mention the mounted file location relative - * to the MFS root, not to the particular FS's root. - * Mutates the input error, and returns it. - */ - MountableFileSystem.prototype.standardizeError = function standardizeError (err, path$$1, realPath) { - var index = err.message.indexOf(path$$1); - if (index !== -1) { - err.message = err.message.substr(0, index) + realPath + err.message.substr(index + path$$1.length); - err.path = realPath; - } - return err; - }; - // The following methods involve multiple file systems, and thus have custom - // logic. - // Note that we go through the Node API to use its robust default argument - // processing. - MountableFileSystem.prototype.rename = function rename (oldPath, newPath, cb) { - var this$1 = this; - - // Scenario 1: old and new are on same FS. - var fs1rv = this._getFs(oldPath); - var fs2rv = this._getFs(newPath); - if (fs1rv.fs === fs2rv.fs) { - return fs1rv.fs.rename(fs1rv.path, fs2rv.path, function (e) { - if (e) { - this$1.standardizeError(this$1.standardizeError(e, fs1rv.path, oldPath), fs2rv.path, newPath); - } - cb(e); - }); - } - // Scenario 2: Different file systems. - // Read old file, write new file, delete old file. - return _fsMock.readFile(oldPath, function (err, data) { - if (err) { - return cb(err); - } - _fsMock.writeFile(newPath, data, function (err) { - if (err) { - return cb(err); - } - _fsMock.unlink(oldPath, cb); - }); - }); - }; - MountableFileSystem.prototype.renameSync = function renameSync (oldPath, newPath) { - // Scenario 1: old and new are on same FS. - var fs1rv = this._getFs(oldPath); - var fs2rv = this._getFs(newPath); - if (fs1rv.fs === fs2rv.fs) { - try { - return fs1rv.fs.renameSync(fs1rv.path, fs2rv.path); - } - catch (e) { - this.standardizeError(this.standardizeError(e, fs1rv.path, oldPath), fs2rv.path, newPath); - throw e; - } - } - // Scenario 2: Different file systems. - var data = _fsMock.readFileSync(oldPath); - _fsMock.writeFileSync(newPath, data); - return _fsMock.unlinkSync(oldPath); - }; - MountableFileSystem.prototype.readdirSync = function readdirSync (p) { - var fsInfo = this._getFs(p); - // If null, rootfs did not have the directory - // (or the target FS is the root fs). - var rv = null; - // Mount points are all defined in the root FS. - // Ensure that we list those, too. - if (fsInfo.fs !== this.rootFs) { - try { - rv = this.rootFs.readdirSync(p); - } - catch (e) { - // Ignore. - } - } - try { - var rv2 = fsInfo.fs.readdirSync(fsInfo.path); - if (rv === null) { - return rv2; - } - else { - // Filter out duplicates. - return rv2.concat(rv.filter(function (val) { return rv2.indexOf(val) === -1; })); - } - } - catch (e) { - if (rv === null) { - throw this.standardizeError(e, fsInfo.path, p); - } - else { - // The root FS had something. - return rv; - } - } - }; - MountableFileSystem.prototype.readdir = function readdir (p, cb) { - var this$1 = this; - - var fsInfo = this._getFs(p); - fsInfo.fs.readdir(fsInfo.path, function (err, files) { - if (fsInfo.fs !== this$1.rootFs) { - try { - var rv = this$1.rootFs.readdirSync(p); - if (files) { - // Filter out duplicates. - files = files.concat(rv.filter(function (val) { return files.indexOf(val) === -1; })); - } - else { - files = rv; - } - } - catch (e) { - // Root FS and target FS did not have directory. - if (err) { - return cb(this$1.standardizeError(err, fsInfo.path, p)); - } - } - } - else if (err) { - // Root FS and target FS are the same, and did not have directory. - return cb(this$1.standardizeError(err, fsInfo.path, p)); - } - cb(null, files); - }); - }; - MountableFileSystem.prototype.rmdirSync = function rmdirSync (p) { - var fsInfo = this._getFs(p); - if (this._containsMountPt(p)) { - throw ApiError.ENOTEMPTY(p); - } - else { - try { - fsInfo.fs.rmdirSync(fsInfo.path); - } - catch (e) { - throw this.standardizeError(e, fsInfo.path, p); - } - } - }; - MountableFileSystem.prototype.rmdir = function rmdir (p, cb) { - var this$1 = this; - - var fsInfo = this._getFs(p); - if (this._containsMountPt(p)) { - cb(ApiError.ENOTEMPTY(p)); - } - else { - fsInfo.fs.rmdir(fsInfo.path, function (err) { - cb(err ? this$1.standardizeError(err, fsInfo.path, p) : null); - }); - } - }; - /** - * Returns true if the given path contains a mount point. - */ - MountableFileSystem.prototype._containsMountPt = function _containsMountPt (p) { - var mountPoints = this.mountList, len = mountPoints.length; - for (var i = 0; i < len; i++) { - var pt = mountPoints[i]; - if (pt.length >= p.length && pt.slice(0, p.length) === p) { - return true; - } - } - return false; - }; - - return MountableFileSystem; - }(BaseFileSystem)); - - MountableFileSystem.Name = "MountableFileSystem"; - MountableFileSystem.Options = {}; - /** - * Tricky: Define all of the functions that merely forward arguments to the - * relevant file system, or return/throw an error. - * Take advantage of the fact that the *first* argument is always the path, and - * the *last* is the callback function (if async). - * @todo Can use numArgs to make proxying more efficient. - * @hidden - */ - function defineFcn(name, isSync, numArgs) { - if (isSync) { - return function () { - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - var path$$1 = args[0]; - var rv = this._getFs(path$$1); - args[0] = rv.path; - try { - return rv.fs[name].apply(rv.fs, args); - } - catch (e) { - this.standardizeError(e, rv.path, path$$1); - throw e; - } - }; - } - else { - return function () { - var this$1 = this; - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - var path$$1 = args[0]; - var rv = this._getFs(path$$1); - args[0] = rv.path; - if (typeof args[args.length - 1] === 'function') { - var cb = args[args.length - 1]; - args[args.length - 1] = function () { - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - if (args.length > 0 && args[0] instanceof ApiError) { - this$1.standardizeError(args[0], rv.path, path$$1); - } - cb.apply(null, args); - }; - } - return rv.fs[name].apply(rv.fs, args); - }; - } - } - /** - * @hidden - */ - var fsCmdMap = [ - // 1 arg functions - ['exists', 'unlink', 'readlink'], - // 2 arg functions - ['stat', 'mkdir', 'realpath', 'truncate'], - // 3 arg functions - ['open', 'readFile', 'chmod', 'utimes'], - // 4 arg functions - ['chown'], - // 5 arg functions - ['writeFile', 'appendFile'] - ]; - for (var i = 0; i < fsCmdMap.length; i++) { - var cmds = fsCmdMap[i]; - for (var i$1 = 0, list = cmds; i$1 < list.length; i$1 += 1) { - var fnName = list[i$1]; - - MountableFileSystem.prototype[fnName] = defineFcn(fnName, false, i + 1); - MountableFileSystem.prototype[fnName + 'Sync'] = defineFcn(fnName + 'Sync', true, i + 1); - } - } - - /** - * @hidden - */ - var bfsSetImmediate; - if (typeof (setImmediate) !== "undefined") { - bfsSetImmediate = setImmediate; - } - else { - var gScope = global$1; - var timeouts = []; - var messageName = "zero-timeout-message"; - var canUsePostMessage = function () { - if (typeof gScope.importScripts !== 'undefined' || !gScope.postMessage) { - return false; - } - var postMessageIsAsync = true; - var oldOnMessage = gScope.onmessage; - gScope.onmessage = function () { - postMessageIsAsync = false; - }; - gScope.postMessage('', '*'); - gScope.onmessage = oldOnMessage; - return postMessageIsAsync; - }; - if (canUsePostMessage()) { - bfsSetImmediate = function (fn) { - timeouts.push(fn); - gScope.postMessage(messageName, "*"); - }; - var handleMessage = function (event) { - if (event.source === self && event.data === messageName) { - if (event.stopPropagation) { - event.stopPropagation(); - } - else { - event.cancelBubble = true; - } - if (timeouts.length > 0) { - var fn = timeouts.shift(); - return fn(); - } - } - }; - if (gScope.addEventListener) { - gScope.addEventListener('message', handleMessage, true); - } - else { - gScope.attachEvent('onmessage', handleMessage); - } - } - else if (gScope.MessageChannel) { - // WebWorker MessageChannel - var channel = new gScope.MessageChannel(); - channel.port1.onmessage = function (event) { - if (timeouts.length > 0) { - return timeouts.shift()(); - } - }; - bfsSetImmediate = function (fn) { - timeouts.push(fn); - channel.port2.postMessage(''); - }; - } - else { - bfsSetImmediate = function (fn) { - return setTimeout(fn, 0); - }; - } - } - var setImmediate$3 = bfsSetImmediate; - - /** - * Non-recursive mutex - * @hidden - */ - var Mutex = function Mutex() { - this._locked = false; - this._waiters = []; - }; - Mutex.prototype.lock = function lock (cb) { - if (this._locked) { - this._waiters.push(cb); - return; - } - this._locked = true; - cb(); - }; - Mutex.prototype.unlock = function unlock () { - if (!this._locked) { - throw new Error('unlock of a non-locked mutex'); - } - var next = this._waiters.shift(); - // don't unlock - we want to queue up next for the - // _end_ of the current task execution, but we don't - // want it to be called inline with whatever the - // current stack is. This way we still get the nice - // behavior that an unlock immediately followed by a - // lock won't cause starvation. - if (next) { - setImmediate$3(next); - return; - } - this._locked = false; - }; - Mutex.prototype.tryLock = function tryLock () { - if (this._locked) { - return false; - } - this._locked = true; - return true; - }; - Mutex.prototype.isLocked = function isLocked () { - return this._locked; - }; - - /** - * This class serializes access to an underlying async filesystem. - * For example, on an OverlayFS instance with an async lower - * directory operations like rename and rmdir may involve multiple - * requests involving both the upper and lower filesystems -- they - * are not executed in a single atomic step. OverlayFS uses this - * LockedFS to avoid having to reason about the correctness of - * multiple requests interleaving. - */ - var LockedFS = function LockedFS(fs) { - this._fs = fs; - this._mu = new Mutex(); - }; - LockedFS.prototype.getName = function getName () { - return 'LockedFS<' + this._fs.getName() + '>'; - }; - LockedFS.prototype.getFSUnlocked = function getFSUnlocked () { - return this._fs; - }; - LockedFS.prototype.initialize = function initialize (cb) { - // FIXME: check to see if FS supports initialization - this._fs.initialize(cb); - }; - LockedFS.prototype.diskSpace = function diskSpace (p, cb) { - // FIXME: should this lock? - this._fs.diskSpace(p, cb); - }; - LockedFS.prototype.isReadOnly = function isReadOnly () { - return this._fs.isReadOnly(); - }; - LockedFS.prototype.supportsLinks = function supportsLinks () { - return this._fs.supportsLinks(); - }; - LockedFS.prototype.supportsProps = function supportsProps () { - return this._fs.supportsProps(); - }; - LockedFS.prototype.supportsSynch = function supportsSynch () { - return this._fs.supportsSynch(); - }; - LockedFS.prototype.rename = function rename (oldPath, newPath, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.rename(oldPath, newPath, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.renameSync = function renameSync (oldPath, newPath) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.renameSync(oldPath, newPath); - }; - LockedFS.prototype.stat = function stat (p, isLstat, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.stat(p, isLstat, function (err, stat) { - this$1._mu.unlock(); - cb(err, stat); - }); - }); - }; - LockedFS.prototype.statSync = function statSync (p, isLstat) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.statSync(p, isLstat); - }; - LockedFS.prototype.open = function open (p, flag, mode, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.open(p, flag, mode, function (err, fd) { - this$1._mu.unlock(); - cb(err, fd); - }); - }); - }; - LockedFS.prototype.openSync = function openSync (p, flag, mode) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.openSync(p, flag, mode); - }; - LockedFS.prototype.unlink = function unlink (p, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.unlink(p, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.unlinkSync = function unlinkSync (p) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.unlinkSync(p); - }; - LockedFS.prototype.rmdir = function rmdir (p, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.rmdir(p, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.rmdirSync = function rmdirSync (p) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.rmdirSync(p); - }; - LockedFS.prototype.mkdir = function mkdir (p, mode, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.mkdir(p, mode, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.mkdirSync = function mkdirSync (p, mode) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.mkdirSync(p, mode); - }; - LockedFS.prototype.readdir = function readdir (p, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.readdir(p, function (err, files) { - this$1._mu.unlock(); - cb(err, files); - }); - }); - }; - LockedFS.prototype.readdirSync = function readdirSync (p) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.readdirSync(p); - }; - LockedFS.prototype.exists = function exists (p, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.exists(p, function (exists) { - this$1._mu.unlock(); - cb(exists); - }); - }); - }; - LockedFS.prototype.existsSync = function existsSync (p) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.existsSync(p); - }; - LockedFS.prototype.realpath = function realpath (p, cache, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.realpath(p, cache, function (err, resolvedPath) { - this$1._mu.unlock(); - cb(err, resolvedPath); - }); - }); - }; - LockedFS.prototype.realpathSync = function realpathSync (p, cache) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.realpathSync(p, cache); - }; - LockedFS.prototype.truncate = function truncate (p, len, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.truncate(p, len, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.truncateSync = function truncateSync (p, len) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.truncateSync(p, len); - }; - LockedFS.prototype.readFile = function readFile (fname, encoding, flag, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.readFile(fname, encoding, flag, function (err, data) { - this$1._mu.unlock(); - cb(err, data); - }); - }); - }; - LockedFS.prototype.readFileSync = function readFileSync (fname, encoding, flag) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.readFileSync(fname, encoding, flag); - }; - LockedFS.prototype.writeFile = function writeFile (fname, data, encoding, flag, mode, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.writeFile(fname, data, encoding, flag, mode, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.writeFileSync = function writeFileSync (fname, data, encoding, flag, mode) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.writeFileSync(fname, data, encoding, flag, mode); - }; - LockedFS.prototype.appendFile = function appendFile (fname, data, encoding, flag, mode, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.appendFile(fname, data, encoding, flag, mode, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.appendFileSync = function appendFileSync (fname, data, encoding, flag, mode) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.appendFileSync(fname, data, encoding, flag, mode); - }; - LockedFS.prototype.chmod = function chmod (p, isLchmod, mode, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.chmod(p, isLchmod, mode, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.chmodSync = function chmodSync (p, isLchmod, mode) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.chmodSync(p, isLchmod, mode); - }; - LockedFS.prototype.chown = function chown (p, isLchown, uid, gid, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.chown(p, isLchown, uid, gid, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.chownSync = function chownSync (p, isLchown, uid, gid) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.chownSync(p, isLchown, uid, gid); - }; - LockedFS.prototype.utimes = function utimes (p, atime, mtime, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.utimes(p, atime, mtime, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.utimesSync = function utimesSync (p, atime, mtime) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.utimesSync(p, atime, mtime); - }; - LockedFS.prototype.link = function link (srcpath, dstpath, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.link(srcpath, dstpath, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.linkSync = function linkSync (srcpath, dstpath) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.linkSync(srcpath, dstpath); - }; - LockedFS.prototype.symlink = function symlink (srcpath, dstpath, type, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.symlink(srcpath, dstpath, type, function (err) { - this$1._mu.unlock(); - cb(err); - }); - }); - }; - LockedFS.prototype.symlinkSync = function symlinkSync (srcpath, dstpath, type) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.symlinkSync(srcpath, dstpath, type); - }; - LockedFS.prototype.readlink = function readlink (p, cb) { - var this$1 = this; - - this._mu.lock(function () { - this$1._fs.readlink(p, function (err, linkString) { - this$1._mu.unlock(); - cb(err, linkString); - }); - }); - }; - LockedFS.prototype.readlinkSync = function readlinkSync (p) { - if (this._mu.isLocked()) { - throw new Error('invalid sync call'); - } - return this._fs.readlinkSync(p); - }; - - /** - * @hidden - */ - var deletionLogPath = '/.deletedFiles.log'; - /** - * Given a read-only mode, makes it writable. - * @hidden - */ - function makeModeWritable(mode) { - return 146 | mode; - } - /** - * @hidden - */ - function getFlag(f) { - return FileFlag.getFileFlag(f); - } - /** - * Overlays a RO file to make it writable. - */ - var OverlayFile = (function (PreloadFile$$1) { - function OverlayFile(fs, path$$1, flag, stats, data) { - PreloadFile$$1.call(this, fs, path$$1, flag, stats, data); - } - - if ( PreloadFile$$1 ) OverlayFile.__proto__ = PreloadFile$$1; - OverlayFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype ); - OverlayFile.prototype.constructor = OverlayFile; - OverlayFile.prototype.sync = function sync (cb) { - var this$1 = this; - - if (!this.isDirty()) { - cb(null); - return; - } - this._fs._syncAsync(this, function (err) { - this$1.resetDirty(); - cb(err); - }); - }; - OverlayFile.prototype.syncSync = function syncSync () { - if (this.isDirty()) { - this._fs._syncSync(this); - this.resetDirty(); - } - }; - OverlayFile.prototype.close = function close (cb) { - this.sync(cb); - }; - OverlayFile.prototype.closeSync = function closeSync () { - this.syncSync(); - }; - - return OverlayFile; - }(PreloadFile)); - /** - * *INTERNAL, DO NOT USE DIRECTLY!* - * - * Core OverlayFS class that contains no locking whatsoever. We wrap these objects - * in a LockedFS to prevent races. - */ - var UnlockedOverlayFS = (function (BaseFileSystem$$1) { - function UnlockedOverlayFS(writable, readable) { - BaseFileSystem$$1.call(this); - this._isInitialized = false; - this._initializeCallbacks = []; - this._deletedFiles = {}; - this._deleteLog = ''; - // If 'true', we have scheduled a delete log update. - this._deleteLogUpdatePending = false; - // If 'true', a delete log update is needed after the scheduled delete log - // update finishes. - this._deleteLogUpdateNeeded = false; - // If there was an error updating the delete log... - this._deleteLogError = null; - this._writable = writable; - this._readable = readable; - if (this._writable.isReadOnly()) { - throw new ApiError(ErrorCode.EINVAL, "Writable file system must be writable."); - } - } - - if ( BaseFileSystem$$1 ) UnlockedOverlayFS.__proto__ = BaseFileSystem$$1; - UnlockedOverlayFS.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - UnlockedOverlayFS.prototype.constructor = UnlockedOverlayFS; - UnlockedOverlayFS.isAvailable = function isAvailable () { - return true; - }; - UnlockedOverlayFS.prototype.getOverlayedFileSystems = function getOverlayedFileSystems () { - return { - readable: this._readable, - writable: this._writable - }; - }; - UnlockedOverlayFS.prototype._syncAsync = function _syncAsync (file, cb) { - var this$1 = this; - - this.createParentDirectoriesAsync(file.getPath(), function (err) { - if (err) { - return cb(err); - } - this$1._writable.writeFile(file.getPath(), file.getBuffer(), null, getFlag('w'), file.getStats().mode, cb); - }); - }; - UnlockedOverlayFS.prototype._syncSync = function _syncSync (file) { - this.createParentDirectories(file.getPath()); - this._writable.writeFileSync(file.getPath(), file.getBuffer(), null, getFlag('w'), file.getStats().mode); - }; - UnlockedOverlayFS.prototype.getName = function getName () { - return OverlayFS.Name; - }; - /** - * Called once to load up metadata stored on the writable file system. - */ - UnlockedOverlayFS.prototype.initialize = function initialize (cb) { - var this$1 = this; - - var callbackArray = this._initializeCallbacks; - var end = function (e) { - this$1._isInitialized = !e; - this$1._initializeCallbacks = []; - callbackArray.forEach((function (cb) { return cb(e); })); - }; - // if we're already initialized, immediately invoke the callback - if (this._isInitialized) { - return cb(); - } - callbackArray.push(cb); - // The first call to initialize initializes, the rest wait for it to complete. - if (callbackArray.length !== 1) { - return; - } - // Read deletion log, process into metadata. - this._writable.readFile(deletionLogPath, 'utf8', getFlag('r'), function (err, data) { - if (err) { - // ENOENT === Newly-instantiated file system, and thus empty log. - if (err.errno !== ErrorCode.ENOENT) { - return end(err); - } - } - else { - this$1._deleteLog = data; - } - this$1._reparseDeletionLog(); - end(); - }); - }; - UnlockedOverlayFS.prototype.isReadOnly = function isReadOnly () { return false; }; - UnlockedOverlayFS.prototype.supportsSynch = function supportsSynch () { return this._readable.supportsSynch() && this._writable.supportsSynch(); }; - UnlockedOverlayFS.prototype.supportsLinks = function supportsLinks () { return false; }; - UnlockedOverlayFS.prototype.supportsProps = function supportsProps () { return this._readable.supportsProps() && this._writable.supportsProps(); }; - UnlockedOverlayFS.prototype.getDeletionLog = function getDeletionLog () { - return this._deleteLog; - }; - UnlockedOverlayFS.prototype.restoreDeletionLog = function restoreDeletionLog (log) { - this._deleteLog = log; - this._reparseDeletionLog(); - this.updateLog(''); - }; - UnlockedOverlayFS.prototype.rename = function rename (oldPath, newPath, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb) || this.checkPathAsync(oldPath, cb) || this.checkPathAsync(newPath, cb)) { - return; - } - if (oldPath === deletionLogPath || newPath === deletionLogPath) { - return cb(ApiError.EPERM('Cannot rename deletion log.')); - } - // nothing to do if paths match - if (oldPath === newPath) { - return cb(); - } - this.stat(oldPath, false, function (oldErr, oldStats) { - if (oldErr) { - return cb(oldErr); - } - return this$1.stat(newPath, false, function (newErr, newStats) { - var self = this$1; - // precondition: both oldPath and newPath exist and are dirs. - // decreases: |files| - // Need to move *every file/folder* currently stored on - // readable to its new location on writable. - function copyDirContents(files) { - var file = files.shift(); - if (!file) { - return cb(); - } - var oldFile = path.resolve(oldPath, file); - var newFile = path.resolve(newPath, file); - // Recursion! Should work for any nested files / folders. - self.rename(oldFile, newFile, function (err) { - if (err) { - return cb(err); - } - copyDirContents(files); - }); - } - var mode = 511; - // from linux's rename(2) manpage: oldpath can specify a - // directory. In this case, newpath must either not exist, or - // it must specify an empty directory. - if (oldStats.isDirectory()) { - if (newErr) { - if (newErr.errno !== ErrorCode.ENOENT) { - return cb(newErr); - } - return this$1._writable.exists(oldPath, function (exists) { - // simple case - both old and new are on the writable layer - if (exists) { - return this$1._writable.rename(oldPath, newPath, cb); - } - this$1._writable.mkdir(newPath, mode, function (mkdirErr) { - if (mkdirErr) { - return cb(mkdirErr); - } - this$1._readable.readdir(oldPath, function (err, files) { - if (err) { - return cb(); - } - copyDirContents(files); - }); - }); - }); - } - mode = newStats.mode; - if (!newStats.isDirectory()) { - return cb(ApiError.ENOTDIR(newPath)); - } - this$1.readdir(newPath, function (readdirErr, files) { - if (files && files.length) { - return cb(ApiError.ENOTEMPTY(newPath)); - } - this$1._readable.readdir(oldPath, function (err, files) { - if (err) { - return cb(); - } - copyDirContents(files); - }); - }); - } - if (newStats && newStats.isDirectory()) { - return cb(ApiError.EISDIR(newPath)); - } - this$1.readFile(oldPath, null, getFlag('r'), function (err, data) { - if (err) { - return cb(err); - } - return this$1.writeFile(newPath, data, null, getFlag('w'), oldStats.mode, function (err) { - if (err) { - return cb(err); - } - return this$1.unlink(oldPath, cb); - }); - }); - }); - }); - }; - UnlockedOverlayFS.prototype.renameSync = function renameSync (oldPath, newPath) { - var this$1 = this; - - this.checkInitialized(); - this.checkPath(oldPath); - this.checkPath(newPath); - if (oldPath === deletionLogPath || newPath === deletionLogPath) { - throw ApiError.EPERM('Cannot rename deletion log.'); - } - // Write newPath using oldPath's contents, delete oldPath. - var oldStats = this.statSync(oldPath, false); - if (oldStats.isDirectory()) { - // Optimization: Don't bother moving if old === new. - if (oldPath === newPath) { - return; - } - var mode = 511; - if (this.existsSync(newPath)) { - var stats = this.statSync(newPath, false); - mode = stats.mode; - if (stats.isDirectory()) { - if (this.readdirSync(newPath).length > 0) { - throw ApiError.ENOTEMPTY(newPath); - } - } - else { - throw ApiError.ENOTDIR(newPath); - } - } - // Take care of writable first. Move any files there, or create an empty directory - // if it doesn't exist. - if (this._writable.existsSync(oldPath)) { - this._writable.renameSync(oldPath, newPath); - } - else if (!this._writable.existsSync(newPath)) { - this._writable.mkdirSync(newPath, mode); - } - // Need to move *every file/folder* currently stored on readable to its new location - // on writable. - if (this._readable.existsSync(oldPath)) { - this._readable.readdirSync(oldPath).forEach(function (name) { - // Recursion! Should work for any nested files / folders. - this$1.renameSync(path.resolve(oldPath, name), path.resolve(newPath, name)); - }); - } - } - else { - if (this.existsSync(newPath) && this.statSync(newPath, false).isDirectory()) { - throw ApiError.EISDIR(newPath); - } - this.writeFileSync(newPath, this.readFileSync(oldPath, null, getFlag('r')), null, getFlag('w'), oldStats.mode); - } - if (oldPath !== newPath && this.existsSync(oldPath)) { - this.unlinkSync(oldPath); - } - }; - UnlockedOverlayFS.prototype.stat = function stat (p, isLstat, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb)) { - return; - } - this._writable.stat(p, isLstat, function (err, stat) { - if (err && err.errno === ErrorCode.ENOENT) { - if (this$1._deletedFiles[p]) { - cb(ApiError.ENOENT(p)); - } - this$1._readable.stat(p, isLstat, function (err, stat) { - if (stat) { - // Make the oldStat's mode writable. Preserve the topmost - // part of the mode, which specifies if it is a file or a - // directory. - stat = stat.clone(); - stat.mode = makeModeWritable(stat.mode); - } - cb(err, stat); - }); - } - else { - cb(err, stat); - } - }); - }; - UnlockedOverlayFS.prototype.statSync = function statSync (p, isLstat) { - this.checkInitialized(); - try { - return this._writable.statSync(p, isLstat); - } - catch (e) { - if (this._deletedFiles[p]) { - throw ApiError.ENOENT(p); - } - var oldStat = this._readable.statSync(p, isLstat).clone(); - // Make the oldStat's mode writable. Preserve the topmost part of the - // mode, which specifies if it is a file or a directory. - oldStat.mode = makeModeWritable(oldStat.mode); - return oldStat; - } - }; - UnlockedOverlayFS.prototype.open = function open (p, flag, mode, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb) || this.checkPathAsync(p, cb)) { - return; - } - this.stat(p, false, function (err, stats) { - if (stats) { - switch (flag.pathExistsAction()) { - case ActionType.TRUNCATE_FILE: - return this$1.createParentDirectoriesAsync(p, function (err) { - if (err) { - return cb(err); - } - this$1._writable.open(p, flag, mode, cb); - }); - case ActionType.NOP: - return this$1._writable.exists(p, function (exists) { - if (exists) { - this$1._writable.open(p, flag, mode, cb); - } - else { - // at this point we know the stats object we got is from - // the readable FS. - stats = stats.clone(); - stats.mode = mode; - this$1._readable.readFile(p, null, getFlag('r'), function (readFileErr, data) { - if (readFileErr) { - return cb(readFileErr); - } - if (stats.size === -1) { - stats.size = data.length; - } - var f = new OverlayFile(this$1, p, flag, stats, data); - cb(null, f); - }); - } - }); - default: - return cb(ApiError.EEXIST(p)); - } - } - else { - switch (flag.pathNotExistsAction()) { - case ActionType.CREATE_FILE: - return this$1.createParentDirectoriesAsync(p, function (err) { - if (err) { - return cb(err); - } - return this$1._writable.open(p, flag, mode, cb); - }); - default: - return cb(ApiError.ENOENT(p)); - } - } - }); - }; - UnlockedOverlayFS.prototype.openSync = function openSync (p, flag, mode) { - this.checkInitialized(); - this.checkPath(p); - if (p === deletionLogPath) { - throw ApiError.EPERM('Cannot open deletion log.'); - } - if (this.existsSync(p)) { - switch (flag.pathExistsAction()) { - case ActionType.TRUNCATE_FILE: - this.createParentDirectories(p); - return this._writable.openSync(p, flag, mode); - case ActionType.NOP: - if (this._writable.existsSync(p)) { - return this._writable.openSync(p, flag, mode); - } - else { - // Create an OverlayFile. - var buf = this._readable.readFileSync(p, null, getFlag('r')); - var stats = this._readable.statSync(p, false).clone(); - stats.mode = mode; - return new OverlayFile(this, p, flag, stats, buf); - } - default: - throw ApiError.EEXIST(p); - } - } - else { - switch (flag.pathNotExistsAction()) { - case ActionType.CREATE_FILE: - this.createParentDirectories(p); - return this._writable.openSync(p, flag, mode); - default: - throw ApiError.ENOENT(p); - } - } - }; - UnlockedOverlayFS.prototype.unlink = function unlink (p, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb) || this.checkPathAsync(p, cb)) { - return; - } - this.exists(p, function (exists) { - if (!exists) { - return cb(ApiError.ENOENT(p)); - } - this$1._writable.exists(p, function (writableExists) { - if (writableExists) { - return this$1._writable.unlink(p, function (err) { - if (err) { - return cb(err); - } - this$1.exists(p, function (readableExists) { - if (readableExists) { - this$1.deletePath(p); - } - cb(null); - }); - }); - } - else { - // if this only exists on the readable FS, add it to the - // delete map. - this$1.deletePath(p); - cb(null); - } - }); - }); - }; - UnlockedOverlayFS.prototype.unlinkSync = function unlinkSync (p) { - this.checkInitialized(); - this.checkPath(p); - if (this.existsSync(p)) { - if (this._writable.existsSync(p)) { - this._writable.unlinkSync(p); - } - // if it still exists add to the delete log - if (this.existsSync(p)) { - this.deletePath(p); - } - } - else { - throw ApiError.ENOENT(p); - } - }; - UnlockedOverlayFS.prototype.rmdir = function rmdir (p, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb)) { - return; - } - var rmdirLower = function () { - this$1.readdir(p, function (err, files) { - if (err) { - return cb(err); - } - if (files.length) { - return cb(ApiError.ENOTEMPTY(p)); - } - this$1.deletePath(p); - cb(null); - }); - }; - this.exists(p, function (exists) { - if (!exists) { - return cb(ApiError.ENOENT(p)); - } - this$1._writable.exists(p, function (writableExists) { - if (writableExists) { - this$1._writable.rmdir(p, function (err) { - if (err) { - return cb(err); - } - this$1._readable.exists(p, function (readableExists) { - if (readableExists) { - rmdirLower(); - } - else { - cb(); - } - }); - }); - } - else { - rmdirLower(); - } - }); - }); - }; - UnlockedOverlayFS.prototype.rmdirSync = function rmdirSync (p) { - this.checkInitialized(); - if (this.existsSync(p)) { - if (this._writable.existsSync(p)) { - this._writable.rmdirSync(p); - } - if (this.existsSync(p)) { - // Check if directory is empty. - if (this.readdirSync(p).length > 0) { - throw ApiError.ENOTEMPTY(p); - } - else { - this.deletePath(p); - } - } - } - else { - throw ApiError.ENOENT(p); - } - }; - UnlockedOverlayFS.prototype.mkdir = function mkdir (p, mode, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb)) { - return; - } - this.exists(p, function (exists) { - if (exists) { - return cb(ApiError.EEXIST(p)); - } - // The below will throw should any of the parent directories - // fail to exist on _writable. - this$1.createParentDirectoriesAsync(p, function (err) { - if (err) { - return cb(err); - } - this$1._writable.mkdir(p, mode, cb); - }); - }); - }; - UnlockedOverlayFS.prototype.mkdirSync = function mkdirSync (p, mode) { - this.checkInitialized(); - if (this.existsSync(p)) { - throw ApiError.EEXIST(p); - } - else { - // The below will throw should any of the parent directories fail to exist - // on _writable. - this.createParentDirectories(p); - this._writable.mkdirSync(p, mode); - } - }; - UnlockedOverlayFS.prototype.readdir = function readdir (p, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb)) { - return; - } - this.stat(p, false, function (err, dirStats) { - if (err) { - return cb(err); - } - if (!dirStats.isDirectory()) { - return cb(ApiError.ENOTDIR(p)); - } - this$1._writable.readdir(p, function (err, wFiles) { - if (err && err.code !== 'ENOENT') { - return cb(err); - } - else if (err || !wFiles) { - wFiles = []; - } - this$1._readable.readdir(p, function (err, rFiles) { - // if the directory doesn't exist on the lower FS set rFiles - // here to simplify the following code. - if (err || !rFiles) { - rFiles = []; - } - // Readdir in both, check delete log on read-only file system's files, merge, return. - var seenMap = {}; - var filtered = wFiles.concat(rFiles.filter(function (fPath) { return !this$1._deletedFiles[(p + "/" + fPath)]; })).filter(function (fPath) { - // Remove duplicates. - var result = !seenMap[fPath]; - seenMap[fPath] = true; - return result; - }); - cb(null, filtered); - }); - }); - }); - }; - UnlockedOverlayFS.prototype.readdirSync = function readdirSync (p) { - var this$1 = this; - - this.checkInitialized(); - var dirStats = this.statSync(p, false); - if (!dirStats.isDirectory()) { - throw ApiError.ENOTDIR(p); - } - // Readdir in both, check delete log on RO file system's listing, merge, return. - var contents = []; - try { - contents = contents.concat(this._writable.readdirSync(p)); - } - catch (e) { - // NOP. - } - try { - contents = contents.concat(this._readable.readdirSync(p).filter(function (fPath) { return !this$1._deletedFiles[(p + "/" + fPath)]; })); - } - catch (e) { - // NOP. - } - var seenMap = {}; - return contents.filter(function (fileP) { - var result = !seenMap[fileP]; - seenMap[fileP] = true; - return result; - }); - }; - UnlockedOverlayFS.prototype.exists = function exists (p, cb) { - var this$1 = this; - - // Cannot pass an error back to callback, so throw an exception instead - // if not initialized. - this.checkInitialized(); - this._writable.exists(p, function (existsWritable) { - if (existsWritable) { - return cb(true); - } - this$1._readable.exists(p, function (existsReadable) { - cb(existsReadable && this$1._deletedFiles[p] !== true); - }); - }); - }; - UnlockedOverlayFS.prototype.existsSync = function existsSync (p) { - this.checkInitialized(); - return this._writable.existsSync(p) || (this._readable.existsSync(p) && this._deletedFiles[p] !== true); - }; - UnlockedOverlayFS.prototype.chmod = function chmod (p, isLchmod, mode, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb)) { - return; - } - this.operateOnWritableAsync(p, function (err) { - if (err) { - return cb(err); - } - else { - this$1._writable.chmod(p, isLchmod, mode, cb); - } - }); - }; - UnlockedOverlayFS.prototype.chmodSync = function chmodSync (p, isLchmod, mode) { - var this$1 = this; - - this.checkInitialized(); - this.operateOnWritable(p, function () { - this$1._writable.chmodSync(p, isLchmod, mode); - }); - }; - UnlockedOverlayFS.prototype.chown = function chown (p, isLchmod, uid, gid, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb)) { - return; - } - this.operateOnWritableAsync(p, function (err) { - if (err) { - return cb(err); - } - else { - this$1._writable.chown(p, isLchmod, uid, gid, cb); - } - }); - }; - UnlockedOverlayFS.prototype.chownSync = function chownSync (p, isLchown, uid, gid) { - var this$1 = this; - - this.checkInitialized(); - this.operateOnWritable(p, function () { - this$1._writable.chownSync(p, isLchown, uid, gid); - }); - }; - UnlockedOverlayFS.prototype.utimes = function utimes (p, atime, mtime, cb) { - var this$1 = this; - - if (!this.checkInitAsync(cb)) { - return; - } - this.operateOnWritableAsync(p, function (err) { - if (err) { - return cb(err); - } - else { - this$1._writable.utimes(p, atime, mtime, cb); - } - }); - }; - UnlockedOverlayFS.prototype.utimesSync = function utimesSync (p, atime, mtime) { - var this$1 = this; - - this.checkInitialized(); - this.operateOnWritable(p, function () { - this$1._writable.utimesSync(p, atime, mtime); - }); - }; - UnlockedOverlayFS.prototype.deletePath = function deletePath (p) { - this._deletedFiles[p] = true; - this.updateLog(("d" + p + "\n")); - }; - UnlockedOverlayFS.prototype.updateLog = function updateLog (addition) { - var this$1 = this; - - this._deleteLog += addition; - if (this._deleteLogUpdatePending) { - this._deleteLogUpdateNeeded = true; - } - else { - this._deleteLogUpdatePending = true; - this._writable.writeFile(deletionLogPath, this._deleteLog, 'utf8', FileFlag.getFileFlag('w'), 420, function (e) { - this$1._deleteLogUpdatePending = false; - if (e) { - this$1._deleteLogError = e; - } - else if (this$1._deleteLogUpdateNeeded) { - this$1._deleteLogUpdateNeeded = false; - this$1.updateLog(''); - } - }); - } - }; - UnlockedOverlayFS.prototype._reparseDeletionLog = function _reparseDeletionLog () { - var this$1 = this; - - this._deletedFiles = {}; - this._deleteLog.split('\n').forEach(function (path$$1) { - // If the log entry begins w/ 'd', it's a deletion. - this$1._deletedFiles[path$$1.slice(1)] = path$$1.slice(0, 1) === 'd'; - }); - }; - UnlockedOverlayFS.prototype.checkInitialized = function checkInitialized () { - if (!this._isInitialized) { - throw new ApiError(ErrorCode.EPERM, "OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it."); - } - else if (this._deleteLogError !== null) { - var e = this._deleteLogError; - this._deleteLogError = null; - throw e; - } - }; - UnlockedOverlayFS.prototype.checkInitAsync = function checkInitAsync (cb) { - if (!this._isInitialized) { - cb(new ApiError(ErrorCode.EPERM, "OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it.")); - return false; - } - else if (this._deleteLogError !== null) { - var e = this._deleteLogError; - this._deleteLogError = null; - cb(e); - return false; - } - return true; - }; - UnlockedOverlayFS.prototype.checkPath = function checkPath (p) { - if (p === deletionLogPath) { - throw ApiError.EPERM(p); - } - }; - UnlockedOverlayFS.prototype.checkPathAsync = function checkPathAsync (p, cb) { - if (p === deletionLogPath) { - cb(ApiError.EPERM(p)); - return true; - } - return false; - }; - UnlockedOverlayFS.prototype.createParentDirectoriesAsync = function createParentDirectoriesAsync (p, cb) { - var parent = path.dirname(p); - var toCreate = []; - var self = this; - this._writable.stat(parent, false, statDone); - function statDone(err, stat) { - if (err) { - toCreate.push(parent); - parent = path.dirname(parent); - self._writable.stat(parent, false, statDone); - } - else { - createParents(); - } - } - function createParents() { - if (!toCreate.length) { - return cb(); - } - var dir = toCreate.pop(); - self._readable.stat(dir, false, function (err, stats) { - // stop if we couldn't read the dir - if (!stats) { - return cb(); - } - self._writable.mkdir(dir, stats.mode, function (err) { - if (err) { - return cb(err); - } - createParents(); - }); - }); - } - }; - /** - * With the given path, create the needed parent directories on the writable storage - * should they not exist. Use modes from the read-only storage. - */ - UnlockedOverlayFS.prototype.createParentDirectories = function createParentDirectories (p) { - var this$1 = this; - - var parent = path.dirname(p), toCreate = []; - while (!this._writable.existsSync(parent)) { - toCreate.push(parent); - parent = path.dirname(parent); - } - toCreate = toCreate.reverse(); - toCreate.forEach(function (p) { - this$1._writable.mkdirSync(p, this$1.statSync(p, false).mode); - }); - }; - /** - * Helper function: - * - Ensures p is on writable before proceeding. Throws an error if it doesn't exist. - * - Calls f to perform operation on writable. - */ - UnlockedOverlayFS.prototype.operateOnWritable = function operateOnWritable (p, f) { - if (this.existsSync(p)) { - if (!this._writable.existsSync(p)) { - // File is on readable storage. Copy to writable storage before - // changing its mode. - this.copyToWritable(p); - } - f(); - } - else { - throw ApiError.ENOENT(p); - } - }; - UnlockedOverlayFS.prototype.operateOnWritableAsync = function operateOnWritableAsync (p, cb) { - var this$1 = this; - - this.exists(p, function (exists) { - if (!exists) { - return cb(ApiError.ENOENT(p)); - } - this$1._writable.exists(p, function (existsWritable) { - if (existsWritable) { - cb(); - } - else { - return this$1.copyToWritableAsync(p, cb); - } - }); - }); - }; - /** - * Copy from readable to writable storage. - * PRECONDITION: File does not exist on writable storage. - */ - UnlockedOverlayFS.prototype.copyToWritable = function copyToWritable (p) { - var pStats = this.statSync(p, false); - if (pStats.isDirectory()) { - this._writable.mkdirSync(p, pStats.mode); - } - else { - this.writeFileSync(p, this._readable.readFileSync(p, null, getFlag('r')), null, getFlag('w'), this.statSync(p, false).mode); - } - }; - UnlockedOverlayFS.prototype.copyToWritableAsync = function copyToWritableAsync (p, cb) { - var this$1 = this; - - this.stat(p, false, function (err, pStats) { - if (err) { - return cb(err); - } - if (pStats.isDirectory()) { - return this$1._writable.mkdir(p, pStats.mode, cb); - } - // need to copy file. - this$1._readable.readFile(p, null, getFlag('r'), function (err, data) { - if (err) { - return cb(err); - } - this$1.writeFile(p, data, null, getFlag('w'), pStats.mode, cb); - }); - }); - }; - - return UnlockedOverlayFS; - }(BaseFileSystem)); - /** - * OverlayFS makes a read-only filesystem writable by storing writes on a second, - * writable file system. Deletes are persisted via metadata stored on the writable - * file system. - */ - var OverlayFS = (function (LockedFS$$1) { - function OverlayFS(writable, readable, deprecateMsg) { - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - LockedFS$$1.call(this, new UnlockedOverlayFS(writable, readable)); - deprecationMessage(deprecateMsg, OverlayFS.Name, { readable: "readable file system", writable: "writable file system" }); - } - - if ( LockedFS$$1 ) OverlayFS.__proto__ = LockedFS$$1; - OverlayFS.prototype = Object.create( LockedFS$$1 && LockedFS$$1.prototype ); - OverlayFS.prototype.constructor = OverlayFS; - /** - * Constructs and initializes an OverlayFS instance with the given options. - */ - OverlayFS.Create = function Create (opts, cb) { - try { - var fs = new OverlayFS(opts.writable, opts.readable, false); - fs.initialize(function (e) { - cb(e, fs); - }, false); - } - catch (e) { - cb(e); - } - }; - OverlayFS.isAvailable = function isAvailable () { - return UnlockedOverlayFS.isAvailable(); - }; - /** - * **Deprecated. Please use OverlayFS.Create() to construct and initialize OverlayFS instances.** - */ - OverlayFS.prototype.initialize = function initialize (cb, deprecateMsg) { - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - if (deprecateMsg) { - console.warn("[OverlayFS] OverlayFS.initialize() is deprecated and will be removed in the next major release. Please use 'OverlayFS.Create({readable: readable file system instance, writable: writable file system instance}, cb)' to create and initialize OverlayFS instances."); - } - LockedFS$$1.prototype.initialize.call(this, cb); - }; - OverlayFS.prototype.getOverlayedFileSystems = function getOverlayedFileSystems () { - return LockedFS$$1.prototype.getFSUnlocked.call(this).getOverlayedFileSystems(); - }; - OverlayFS.prototype.unwrap = function unwrap () { - return LockedFS$$1.prototype.getFSUnlocked.call(this); - }; - - return OverlayFS; - }(LockedFS)); - - OverlayFS.Name = "OverlayFS"; - OverlayFS.Options = { - writable: { - type: "object", - description: "The file system to write modified files to." - }, - readable: { - type: "object", - description: "The file system that initially populates this file system." - } - }; - - /** - * @hidden - */ - var SpecialArgType; - (function (SpecialArgType) { - // Callback - SpecialArgType[SpecialArgType["CB"] = 0] = "CB"; - // File descriptor - SpecialArgType[SpecialArgType["FD"] = 1] = "FD"; - // API error - SpecialArgType[SpecialArgType["API_ERROR"] = 2] = "API_ERROR"; - // Stats object - SpecialArgType[SpecialArgType["STATS"] = 3] = "STATS"; - // Initial probe for file system information. - SpecialArgType[SpecialArgType["PROBE"] = 4] = "PROBE"; - // FileFlag object. - SpecialArgType[SpecialArgType["FILEFLAG"] = 5] = "FILEFLAG"; - // Buffer object. - SpecialArgType[SpecialArgType["BUFFER"] = 6] = "BUFFER"; - // Generic Error object. - SpecialArgType[SpecialArgType["ERROR"] = 7] = "ERROR"; - })(SpecialArgType || (SpecialArgType = {})); - /** - * Converts callback arguments into ICallbackArgument objects, and back - * again. - * @hidden - */ - var CallbackArgumentConverter = function CallbackArgumentConverter() { - this._callbacks = {}; - this._nextId = 0; - }; - CallbackArgumentConverter.prototype.toRemoteArg = function toRemoteArg (cb) { - var id = this._nextId++; - this._callbacks[id] = cb; - return { - type: SpecialArgType.CB, - id: id - }; - }; - CallbackArgumentConverter.prototype.toLocalArg = function toLocalArg (id) { - var cb = this._callbacks[id]; - delete this._callbacks[id]; - return cb; - }; - /** - * @hidden - */ - var FileDescriptorArgumentConverter = function FileDescriptorArgumentConverter() { - this._fileDescriptors = {}; - this._nextId = 0; - }; - FileDescriptorArgumentConverter.prototype.toRemoteArg = function toRemoteArg (fd, p, flag, cb) { - var id = this._nextId++; - var data; - var stat; - this._fileDescriptors[id] = fd; - // Extract needed information asynchronously. - fd.stat(function (err, stats) { - if (err) { - cb(err); - } - else { - stat = bufferToTransferrableObject(stats.toBuffer()); - // If it's a readable flag, we need to grab contents. - if (flag.isReadable()) { - fd.read(Buffer.alloc(stats.size), 0, stats.size, 0, function (err, bytesRead, buff) { - if (err) { - cb(err); - } - else { - data = bufferToTransferrableObject(buff); - cb(null, { - type: SpecialArgType.FD, - id: id, - data: data, - stat: stat, - path: p, - flag: flag.getFlagString() - }); - } - }); - } - else { - // File is not readable, which means writing to it will append or - // truncate/replace existing contents. Return an empty arraybuffer. - cb(null, { - type: SpecialArgType.FD, - id: id, - data: new ArrayBuffer(0), - stat: stat, - path: p, - flag: flag.getFlagString() - }); - } - } - }); - }; - FileDescriptorArgumentConverter.prototype.applyFdAPIRequest = function applyFdAPIRequest (request, cb) { - var this$1 = this; - - var fdArg = request.args[0]; - this._applyFdChanges(fdArg, function (err, fd) { - if (err) { - cb(err); - } - else { - // Apply method on now-changed file descriptor. - fd[request.method](function (e) { - if (request.method === 'close') { - delete this$1._fileDescriptors[fdArg.id]; - } - cb(e); - }); - } - }); - }; - FileDescriptorArgumentConverter.prototype._applyFdChanges = function _applyFdChanges (remoteFd, cb) { - var fd = this._fileDescriptors[remoteFd.id], data = transferrableObjectToBuffer(remoteFd.data), remoteStats = Stats.fromBuffer(transferrableObjectToBuffer(remoteFd.stat)); - // Write data if the file is writable. - var flag = FileFlag.getFileFlag(remoteFd.flag); - if (flag.isWriteable()) { - // Appendable: Write to end of file. - // Writeable: Replace entire contents of file. - fd.write(data, 0, data.length, flag.isAppendable() ? fd.getPos() : 0, function (e) { - function applyStatChanges() { - // Check if mode changed. - fd.stat(function (e, stats) { - if (e) { - cb(e); - } - else { - if (stats.mode !== remoteStats.mode) { - fd.chmod(remoteStats.mode, function (e) { - cb(e, fd); - }); - } - else { - cb(e, fd); - } - } - }); - } - if (e) { - cb(e); - } - else { - // If writeable & not appendable, we need to ensure file contents are - // identical to those from the remote FD. Thus, we truncate to the - // length of the remote file. - if (!flag.isAppendable()) { - fd.truncate(data.length, function () { - applyStatChanges(); - }); - } - else { - applyStatChanges(); - } - } - }); - } - else { - cb(null, fd); - } - }; - /** - * @hidden - */ - function apiErrorLocal2Remote(e) { - return { - type: SpecialArgType.API_ERROR, - errorData: bufferToTransferrableObject(e.writeToBuffer()) - }; - } - /** - * @hidden - */ - function apiErrorRemote2Local(e) { - return ApiError.fromBuffer(transferrableObjectToBuffer(e.errorData)); - } - /** - * @hidden - */ - function errorLocal2Remote(e) { - return { - type: SpecialArgType.ERROR, - name: e.name, - message: e.message, - stack: e.stack - }; - } - /** - * @hidden - */ - function errorRemote2Local(e) { - var cnstr = global$1[e.name]; - if (typeof (cnstr) !== 'function') { - cnstr = Error; - } - var err = new cnstr(e.message); - err.stack = e.stack; - return err; - } - /** - * @hidden - */ - function statsLocal2Remote(stats) { - return { - type: SpecialArgType.STATS, - statsData: bufferToTransferrableObject(stats.toBuffer()) - }; - } - /** - * @hidden - */ - function statsRemote2Local(stats) { - return Stats.fromBuffer(transferrableObjectToBuffer(stats.statsData)); - } - /** - * @hidden - */ - function fileFlagLocal2Remote(flag) { - return { - type: SpecialArgType.FILEFLAG, - flagStr: flag.getFlagString() - }; - } - /** - * @hidden - */ - function fileFlagRemote2Local(remoteFlag) { - return FileFlag.getFileFlag(remoteFlag.flagStr); - } - /** - * @hidden - */ - function bufferToTransferrableObject(buff) { - return buffer2ArrayBuffer(buff); - } - /** - * @hidden - */ - function transferrableObjectToBuffer(buff) { - return arrayBuffer2Buffer(buff); - } - /** - * @hidden - */ - function bufferLocal2Remote(buff) { - return { - type: SpecialArgType.BUFFER, - data: bufferToTransferrableObject(buff) - }; - } - /** - * @hidden - */ - function bufferRemote2Local(buffArg) { - return transferrableObjectToBuffer(buffArg.data); - } - /** - * @hidden - */ - function isAPIRequest(data) { - return data && typeof data === 'object' && data.hasOwnProperty('browserfsMessage') && data['browserfsMessage']; - } - /** - * @hidden - */ - function isAPIResponse(data) { - return data && typeof data === 'object' && data.hasOwnProperty('browserfsMessage') && data['browserfsMessage']; - } - /** - * Represents a remote file in a different worker/thread. - */ - var WorkerFile = (function (PreloadFile$$1) { - function WorkerFile(_fs, _path, _flag, _stat, remoteFdId, contents) { - PreloadFile$$1.call(this, _fs, _path, _flag, _stat, contents); - this._remoteFdId = remoteFdId; - } - - if ( PreloadFile$$1 ) WorkerFile.__proto__ = PreloadFile$$1; - WorkerFile.prototype = Object.create( PreloadFile$$1 && PreloadFile$$1.prototype ); - WorkerFile.prototype.constructor = WorkerFile; - WorkerFile.prototype.getRemoteFdId = function getRemoteFdId () { - return this._remoteFdId; - }; - /** - * @hidden - */ - WorkerFile.prototype.toRemoteArg = function toRemoteArg () { - return { - type: SpecialArgType.FD, - id: this._remoteFdId, - data: bufferToTransferrableObject(this.getBuffer()), - stat: bufferToTransferrableObject(this.getStats().toBuffer()), - path: this.getPath(), - flag: this.getFlag().getFlagString() - }; - }; - WorkerFile.prototype.sync = function sync (cb) { - this._syncClose('sync', cb); - }; - WorkerFile.prototype.close = function close (cb) { - this._syncClose('close', cb); - }; - WorkerFile.prototype._syncClose = function _syncClose (type, cb) { - var this$1 = this; - - if (this.isDirty()) { - this._fs.syncClose(type, this, function (e) { - if (!e) { - this$1.resetDirty(); - } - cb(e); - }); - } - else { - cb(); - } - }; - - return WorkerFile; - }(PreloadFile)); - /** - * WorkerFS lets you access a BrowserFS instance that is running in a different - * JavaScript context (e.g. access BrowserFS in one of your WebWorkers, or - * access BrowserFS running on the main page from a WebWorker). - * - * For example, to have a WebWorker access files in the main browser thread, - * do the following: - * - * MAIN BROWSER THREAD: - * - * ```javascript - * // Listen for remote file system requests. - * BrowserFS.FileSystem.WorkerFS.attachRemoteListener(webWorkerObject); - * ``` - * - * WEBWORKER THREAD: - * - * ```javascript - * // Set the remote file system as the root file system. - * BrowserFS.configure({ fs: "WorkerFS", options: { worker: self }}, function(e) { - * // Ready! - * }); - * ``` - * - * Note that synchronous operations are not permitted on the WorkerFS, regardless - * of the configuration option of the remote FS. - */ - var WorkerFS = (function (BaseFileSystem$$1) { - function WorkerFS(worker, deprecateMsg) { - var this$1 = this; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - BaseFileSystem$$1.call(this); - this._callbackConverter = new CallbackArgumentConverter(); - this._isInitialized = false; - this._isReadOnly = false; - this._supportLinks = false; - this._supportProps = false; - this._worker = worker; - deprecationMessage(deprecateMsg, WorkerFS.Name, { worker: "Web Worker instance" }); - this._worker.addEventListener('message', function (e) { - var resp = e.data; - if (isAPIResponse(resp)) { - var i; - var args = resp.args; - var fixedArgs = new Array(args.length); - // Dispatch event to correct id. - for (i = 0; i < fixedArgs.length; i++) { - fixedArgs[i] = this$1._argRemote2Local(args[i]); - } - this$1._callbackConverter.toLocalArg(resp.cbId).apply(null, fixedArgs); - } - }); - } - - if ( BaseFileSystem$$1 ) WorkerFS.__proto__ = BaseFileSystem$$1; - WorkerFS.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - WorkerFS.prototype.constructor = WorkerFS; - WorkerFS.Create = function Create (opts, cb) { - var fs = new WorkerFS(opts.worker, false); - fs.initialize(function () { - cb(null, fs); - }); - }; - WorkerFS.isAvailable = function isAvailable () { - return typeof (importScripts) !== 'undefined' || typeof (Worker) !== 'undefined'; - }; - /** - * Attaches a listener to the remote worker for file system requests. - */ - WorkerFS.attachRemoteListener = function attachRemoteListener (worker) { - var fdConverter = new FileDescriptorArgumentConverter(); - function argLocal2Remote(arg, requestArgs, cb) { - switch (typeof arg) { - case 'object': - if (arg instanceof Stats) { - cb(null, statsLocal2Remote(arg)); - } - else if (arg instanceof ApiError) { - cb(null, apiErrorLocal2Remote(arg)); - } - else if (arg instanceof BaseFile) { - // Pass in p and flags from original request. - cb(null, fdConverter.toRemoteArg(arg, requestArgs[0], requestArgs[1], cb)); - } - else if (arg instanceof FileFlag) { - cb(null, fileFlagLocal2Remote(arg)); - } - else if (arg instanceof Buffer) { - cb(null, bufferLocal2Remote(arg)); - } - else if (arg instanceof Error) { - cb(null, errorLocal2Remote(arg)); - } - else { - cb(null, arg); - } - break; - default: - cb(null, arg); - break; - } - } - function argRemote2Local(arg, fixedRequestArgs) { - if (!arg) { - return arg; - } - switch (typeof arg) { - case 'object': - if (typeof arg['type'] === 'number') { - var specialArg = arg; - switch (specialArg.type) { - case SpecialArgType.CB: - var cbId = arg.id; - return function () { - var arguments$1 = arguments; - - var i; - var fixedArgs = new Array(arguments.length); - var message, countdown = arguments.length; - function abortAndSendError(err) { - if (countdown > 0) { - countdown = -1; - message = { - browserfsMessage: true, - cbId: cbId, - args: [apiErrorLocal2Remote(err)] - }; - worker.postMessage(message); - } - } - for (i = 0; i < arguments.length; i++) { - // Capture i and argument. - (function (i, arg) { - argLocal2Remote(arg, fixedRequestArgs, function (err, fixedArg) { - fixedArgs[i] = fixedArg; - if (err) { - abortAndSendError(err); - } - else if (--countdown === 0) { - message = { - browserfsMessage: true, - cbId: cbId, - args: fixedArgs - }; - worker.postMessage(message); - } - }); - })(i, arguments$1[i]); - } - if (arguments.length === 0) { - message = { - browserfsMessage: true, - cbId: cbId, - args: fixedArgs - }; - worker.postMessage(message); - } - }; - case SpecialArgType.API_ERROR: - return apiErrorRemote2Local(specialArg); - case SpecialArgType.STATS: - return statsRemote2Local(specialArg); - case SpecialArgType.FILEFLAG: - return fileFlagRemote2Local(specialArg); - case SpecialArgType.BUFFER: - return bufferRemote2Local(specialArg); - case SpecialArgType.ERROR: - return errorRemote2Local(specialArg); - default: - // No idea what this is. - return arg; - } - } - else { - return arg; - } - default: - return arg; - } - } - worker.addEventListener('message', function (e) { - var request = e.data; - if (isAPIRequest(request)) { - var args = request.args, fixedArgs = new Array(args.length); - switch (request.method) { - case 'close': - case 'sync': - (function () { - // File descriptor-relative methods. - var remoteCb = args[1]; - fdConverter.applyFdAPIRequest(request, function (err) { - // Send response. - var response = { - browserfsMessage: true, - cbId: remoteCb.id, - args: err ? [apiErrorLocal2Remote(err)] : [] - }; - worker.postMessage(response); - }); - })(); - break; - case 'probe': - (function () { - var rootFs = _fsMock.getRootFS(), remoteCb = args[1], probeResponse = { - type: SpecialArgType.PROBE, - isReadOnly: rootFs.isReadOnly(), - supportsLinks: rootFs.supportsLinks(), - supportsProps: rootFs.supportsProps() - }, response = { - browserfsMessage: true, - cbId: remoteCb.id, - args: [probeResponse] - }; - worker.postMessage(response); - })(); - break; - default: - // File system methods. - for (var i = 0; i < args.length; i++) { - fixedArgs[i] = argRemote2Local(args[i], fixedArgs); - } - var rootFS = _fsMock.getRootFS(); - rootFS[request.method].apply(rootFS, fixedArgs); - break; - } - } - }); - }; - WorkerFS.prototype.getName = function getName () { - return WorkerFS.Name; - }; - /** - * **Deprecated. Please use WorkerFS.Create() method to construct and initialize WorkerFS instances.** - * - * Called once both local and remote sides are set up. - */ - WorkerFS.prototype.initialize = function initialize (cb) { - var this$1 = this; - - if (!this._isInitialized) { - var message = { - browserfsMessage: true, - method: 'probe', - args: [this._argLocal2Remote(emptyBuffer()), this._callbackConverter.toRemoteArg(function (probeResponse) { - this$1._isInitialized = true; - this$1._isReadOnly = probeResponse.isReadOnly; - this$1._supportLinks = probeResponse.supportsLinks; - this$1._supportProps = probeResponse.supportsProps; - cb(); - })] - }; - this._worker.postMessage(message); - } - else { - cb(); - } - }; - WorkerFS.prototype.isReadOnly = function isReadOnly () { return this._isReadOnly; }; - WorkerFS.prototype.supportsSynch = function supportsSynch () { return false; }; - WorkerFS.prototype.supportsLinks = function supportsLinks () { return this._supportLinks; }; - WorkerFS.prototype.supportsProps = function supportsProps () { return this._supportProps; }; - WorkerFS.prototype.rename = function rename (oldPath, newPath, cb) { - this._rpc('rename', arguments); - }; - WorkerFS.prototype.stat = function stat (p, isLstat, cb) { - this._rpc('stat', arguments); - }; - WorkerFS.prototype.open = function open (p, flag, mode, cb) { - this._rpc('open', arguments); - }; - WorkerFS.prototype.unlink = function unlink (p, cb) { - this._rpc('unlink', arguments); - }; - WorkerFS.prototype.rmdir = function rmdir (p, cb) { - this._rpc('rmdir', arguments); - }; - WorkerFS.prototype.mkdir = function mkdir (p, mode, cb) { - this._rpc('mkdir', arguments); - }; - WorkerFS.prototype.readdir = function readdir (p, cb) { - this._rpc('readdir', arguments); - }; - WorkerFS.prototype.exists = function exists (p, cb) { - this._rpc('exists', arguments); - }; - WorkerFS.prototype.realpath = function realpath (p, cache, cb) { - this._rpc('realpath', arguments); - }; - WorkerFS.prototype.truncate = function truncate (p, len, cb) { - this._rpc('truncate', arguments); - }; - WorkerFS.prototype.readFile = function readFile (fname, encoding, flag, cb) { - this._rpc('readFile', arguments); - }; - WorkerFS.prototype.writeFile = function writeFile (fname, data, encoding, flag, mode, cb) { - this._rpc('writeFile', arguments); - }; - WorkerFS.prototype.appendFile = function appendFile (fname, data, encoding, flag, mode, cb) { - this._rpc('appendFile', arguments); - }; - WorkerFS.prototype.chmod = function chmod (p, isLchmod, mode, cb) { - this._rpc('chmod', arguments); - }; - WorkerFS.prototype.chown = function chown (p, isLchown, uid, gid, cb) { - this._rpc('chown', arguments); - }; - WorkerFS.prototype.utimes = function utimes (p, atime, mtime, cb) { - this._rpc('utimes', arguments); - }; - WorkerFS.prototype.link = function link (srcpath, dstpath, cb) { - this._rpc('link', arguments); - }; - WorkerFS.prototype.symlink = function symlink (srcpath, dstpath, type, cb) { - this._rpc('symlink', arguments); - }; - WorkerFS.prototype.readlink = function readlink (p, cb) { - this._rpc('readlink', arguments); - }; - WorkerFS.prototype.syncClose = function syncClose (method, fd, cb) { - this._worker.postMessage({ - browserfsMessage: true, - method: method, - args: [fd.toRemoteArg(), this._callbackConverter.toRemoteArg(cb)] - }); - }; - WorkerFS.prototype._argRemote2Local = function _argRemote2Local (arg) { - if (!arg) { - return arg; - } - switch (typeof arg) { - case 'object': - if (typeof arg['type'] === 'number') { - var specialArg = arg; - switch (specialArg.type) { - case SpecialArgType.API_ERROR: - return apiErrorRemote2Local(specialArg); - case SpecialArgType.FD: - var fdArg = specialArg; - return new WorkerFile(this, fdArg.path, FileFlag.getFileFlag(fdArg.flag), Stats.fromBuffer(transferrableObjectToBuffer(fdArg.stat)), fdArg.id, transferrableObjectToBuffer(fdArg.data)); - case SpecialArgType.STATS: - return statsRemote2Local(specialArg); - case SpecialArgType.FILEFLAG: - return fileFlagRemote2Local(specialArg); - case SpecialArgType.BUFFER: - return bufferRemote2Local(specialArg); - case SpecialArgType.ERROR: - return errorRemote2Local(specialArg); - default: - return arg; - } - } - else { - return arg; - } - default: - return arg; - } - }; - WorkerFS.prototype._rpc = function _rpc (methodName, args) { - var this$1 = this; - - var fixedArgs = new Array(args.length); - for (var i = 0; i < args.length; i++) { - fixedArgs[i] = this$1._argLocal2Remote(args[i]); - } - var message = { - browserfsMessage: true, - method: methodName, - args: fixedArgs - }; - this._worker.postMessage(message); - }; - /** - * Converts a local argument into a remote argument. Public so WorkerFile objects can call it. - */ - WorkerFS.prototype._argLocal2Remote = function _argLocal2Remote (arg) { - if (!arg) { - return arg; - } - switch (typeof arg) { - case "object": - if (arg instanceof Stats) { - return statsLocal2Remote(arg); - } - else if (arg instanceof ApiError) { - return apiErrorLocal2Remote(arg); - } - else if (arg instanceof WorkerFile) { - return arg.toRemoteArg(); - } - else if (arg instanceof FileFlag) { - return fileFlagLocal2Remote(arg); - } - else if (arg instanceof Buffer) { - return bufferLocal2Remote(arg); - } - else if (arg instanceof Error) { - return errorLocal2Remote(arg); - } - else { - return "Unknown argument"; - } - case "function": - return this._callbackConverter.toRemoteArg(arg); - default: - return arg; - } - }; - - return WorkerFS; - }(BaseFileSystem)); - - WorkerFS.Name = "WorkerFS"; - WorkerFS.Options = { - worker: { - type: "object", - description: "The target worker that you want to connect to, or the current worker if in a worker context.", - validator: function (v, cb) { - // Check for a `postMessage` function. - if (v['postMessage']) { - cb(); - } - else { - cb(new ApiError(ErrorCode.EINVAL, "option must be a Web Worker instance.")); - } - } - } - }; - - /** - * Contains utility methods for performing a variety of tasks with - * XmlHttpRequest across browsers. - */ - function asyncDownloadFileModern(p, type, cb) { - var req = new XMLHttpRequest(); - req.open('GET', p, true); - var jsonSupported = true; - switch (type) { - case 'buffer': - req.responseType = 'arraybuffer'; - break; - case 'json': - // Some browsers don't support the JSON response type. - // They either reset responseType, or throw an exception. - // @see https://github.com/Modernizr/Modernizr/blob/master/src/testXhrType.js - try { - req.responseType = 'json'; - jsonSupported = req.responseType === 'json'; - } - catch (e) { - jsonSupported = false; - } - break; - default: - return cb(new ApiError(ErrorCode.EINVAL, "Invalid download type: " + type)); - } - req.onreadystatechange = function (e) { - if (req.readyState === 4) { - if (req.status === 200) { - switch (type) { - case 'buffer': - // XXX: WebKit-based browsers return *null* when XHRing an empty file. - return cb(null, req.response ? Buffer.from(req.response) : emptyBuffer()); - case 'json': - if (jsonSupported) { - return cb(null, req.response); - } - else { - return cb(null, JSON.parse(req.responseText)); - } - } - } - else { - return cb(new ApiError(req.status, "XHR error.")); - } - } - }; - req.send(); - } - function syncDownloadFileModern(p, type) { - var req = new XMLHttpRequest(); - req.open('GET', p, false); - // On most platforms, we cannot set the responseType of synchronous downloads. - // @todo Test for this; IE10 allows this, as do older versions of Chrome/FF. - var data = null; - var err = null; - // Classic hack to download binary data as a string. - req.overrideMimeType('text/plain; charset=x-user-defined'); - req.onreadystatechange = function (e) { - if (req.readyState === 4) { - if (req.status === 200) { - switch (type) { - case 'buffer': - // Convert the text into a buffer. - var text = req.responseText; - data = Buffer.alloc(text.length); - // Throw away the upper bits of each character. - for (var i = 0; i < text.length; i++) { - // This will automatically throw away the upper bit of each - // character for us. - data[i] = text.charCodeAt(i); - } - return; - case 'json': - data = JSON.parse(req.responseText); - return; - } - } - else { - err = new ApiError(req.status, "XHR error."); - return; - } - } - }; - req.send(); - if (err) { - throw err; - } - return data; - } - function syncDownloadFileIE10(p, type) { - var req = new XMLHttpRequest(); - req.open('GET', p, false); - switch (type) { - case 'buffer': - req.responseType = 'arraybuffer'; - break; - case 'json': - // IE10 does not support the JSON type. - break; - default: - throw new ApiError(ErrorCode.EINVAL, "Invalid download type: " + type); - } - var data; - var err; - req.onreadystatechange = function (e) { - if (req.readyState === 4) { - if (req.status === 200) { - switch (type) { - case 'buffer': - data = Buffer.from(req.response); - break; - case 'json': - data = JSON.parse(req.response); - break; - } - } - else { - err = new ApiError(req.status, "XHR error."); - } - } - }; - req.send(); - if (err) { - throw err; - } - return data; - } - /** - * @hidden - */ - function getFileSize(async, p, cb) { - var req = new XMLHttpRequest(); - req.open('HEAD', p, async); - req.onreadystatechange = function (e) { - if (req.readyState === 4) { - if (req.status === 200) { - try { - return cb(null, parseInt(req.getResponseHeader('Content-Length') || '-1', 10)); - } - catch (e) { - // In the event that the header isn't present or there is an error... - return cb(new ApiError(ErrorCode.EIO, "XHR HEAD error: Could not read content-length.")); - } - } - else { - return cb(new ApiError(req.status, "XHR HEAD error.")); - } - } - }; - req.send(); - } - /** - * Asynchronously download a file as a buffer or a JSON object. - * Note that the third function signature with a non-specialized type is - * invalid, but TypeScript requires it when you specialize string arguments to - * constants. - * @hidden - */ - var asyncDownloadFile = asyncDownloadFileModern; - /** - * Synchronously download a file as a buffer or a JSON object. - * Note that the third function signature with a non-specialized type is - * invalid, but TypeScript requires it when you specialize string arguments to - * constants. - * @hidden - */ - var syncDownloadFile = (isIE && typeof Blob !== 'undefined') ? syncDownloadFileIE10 : syncDownloadFileModern; - /** - * Synchronously retrieves the size of the given file in bytes. - * @hidden - */ - function getFileSizeSync(p) { - var rv = -1; - getFileSize(false, p, function (err, size) { - if (err) { - throw err; - } - rv = size; - }); - return rv; - } - /** - * Asynchronously retrieves the size of the given file in bytes. - * @hidden - */ - function getFileSizeAsync(p, cb) { - getFileSize(true, p, cb); - } - - /** - * A simple class for storing a filesystem index. Assumes that all paths passed - * to it are *absolute* paths. - * - * Can be used as a partial or a full index, although care must be taken if used - * for the former purpose, especially when directories are concerned. - */ - var FileIndex = function FileIndex() { - // _index is a single-level key,value store that maps *directory* paths to - // DirInodes. File information is only contained in DirInodes themselves. - this._index = {}; - // Create the root directory. - this.addPath('/', new DirInode()); - }; - /** - * Static method for constructing indices from a JSON listing. - * @param listing Directory listing generated by tools/XHRIndexer.coffee - * @return A new FileIndex object. - */ - FileIndex.fromListing = function fromListing (listing) { - var idx = new FileIndex(); - // Add a root DirNode. - var rootInode = new DirInode(); - idx._index['/'] = rootInode; - var queue = [['', listing, rootInode]]; - while (queue.length > 0) { - var inode = (void 0); - var next = queue.pop(); - var pwd = next[0]; - var tree = next[1]; - var parent = next[2]; - for (var node in tree) { - if (tree.hasOwnProperty(node)) { - var children = tree[node]; - var name = pwd + "/" + node; - if (children) { - idx._index[name] = inode = new DirInode(); - queue.push([name, children, inode]); - } - else { - // This inode doesn't have correct size information, noted with -1. - inode = new FileInode(new Stats(FileType.FILE, -1, 0x16D)); - } - if (parent) { - parent._ls[node] = inode; - } - } - } - } - return idx; - }; - /** - * Runs the given function over all files in the index. - */ - FileIndex.prototype.fileIterator = function fileIterator (cb) { - var this$1 = this; - - for (var path$$1 in this$1._index) { - if (this$1._index.hasOwnProperty(path$$1)) { - var dir = this$1._index[path$$1]; - var files = dir.getListing(); - for (var i = 0, list = files; i < list.length; i += 1) { - var file = list[i]; - - var item = dir.getItem(file); - if (isFileInode(item)) { - cb(item.getData()); - } - } - } - } - }; - /** - * Adds the given absolute path to the index if it is not already in the index. - * Creates any needed parent directories. - * @param path The path to add to the index. - * @param inode The inode for the - * path to add. - * @return 'True' if it was added or already exists, 'false' if there - * was an issue adding it (e.g. item in path is a file, item exists but is - * different). - * @todo If adding fails and implicitly creates directories, we do not clean up - * the new empty directories. - */ - FileIndex.prototype.addPath = function addPath (path$$1, inode) { - if (!inode) { - throw new Error('Inode must be specified'); - } - if (path$$1[0] !== '/') { - throw new Error('Path must be absolute, got: ' + path$$1); - } - // Check if it already exists. - if (this._index.hasOwnProperty(path$$1)) { - return this._index[path$$1] === inode; - } - var splitPath = this._split_path(path$$1); - var dirpath = splitPath[0]; - var itemname = splitPath[1]; - // Try to add to its parent directory first. - var parent = this._index[dirpath]; - if (parent === undefined && path$$1 !== '/') { - // Create parent. - parent = new DirInode(); - if (!this.addPath(dirpath, parent)) { - return false; - } - } - // Add myself to my parent. - if (path$$1 !== '/') { - if (!parent.addItem(itemname, inode)) { - return false; - } - } - // If I'm a directory, add myself to the index. - if (isDirInode(inode)) { - this._index[path$$1] = inode; - } - return true; - }; - /** - * Adds the given absolute path to the index if it is not already in the index. - * The path is added without special treatment (no joining of adjacent separators, etc). - * Creates any needed parent directories. - * @param path The path to add to the index. - * @param inode The inode for the - * path to add. - * @return 'True' if it was added or already exists, 'false' if there - * was an issue adding it (e.g. item in path is a file, item exists but is - * different). - * @todo If adding fails and implicitly creates directories, we do not clean up - * the new empty directories. - */ - FileIndex.prototype.addPathFast = function addPathFast (path$$1, inode) { - var itemNameMark = path$$1.lastIndexOf('/'); - var parentPath = itemNameMark === 0 ? "/" : path$$1.substring(0, itemNameMark); - var itemName = path$$1.substring(itemNameMark + 1); - // Try to add to its parent directory first. - var parent = this._index[parentPath]; - if (parent === undefined) { - // Create parent. - parent = new DirInode(); - this.addPathFast(parentPath, parent); - } - if (!parent.addItem(itemName, inode)) { - return false; - } - // If adding a directory, add to the index as well. - if (inode.isDir()) { - this._index[path$$1] = inode; - } - return true; - }; - /** - * Removes the given path. Can be a file or a directory. - * @return The removed item, - * or null if it did not exist. - */ - FileIndex.prototype.removePath = function removePath (path$$1) { - var this$1 = this; - - var splitPath = this._split_path(path$$1); - var dirpath = splitPath[0]; - var itemname = splitPath[1]; - // Try to remove it from its parent directory first. - var parent = this._index[dirpath]; - if (parent === undefined) { - return null; - } - // Remove myself from my parent. - var inode = parent.remItem(itemname); - if (inode === null) { - return null; - } - // If I'm a directory, remove myself from the index, and remove my children. - if (isDirInode(inode)) { - var children = inode.getListing(); - for (var i = 0, list = children; i < list.length; i += 1) { - var child = list[i]; - - this$1.removePath(path$$1 + '/' + child); - } - // Remove the directory from the index, unless it's the root. - if (path$$1 !== '/') { - delete this._index[path$$1]; - } - } - return inode; - }; - /** - * Retrieves the directory listing of the given path. - * @return An array of files in the given path, or 'null' if it does not exist. - */ - FileIndex.prototype.ls = function ls (path$$1) { - var item = this._index[path$$1]; - if (item === undefined) { - return null; - } - return item.getListing(); - }; - /** - * Returns the inode of the given item. - * @return Returns null if the item does not exist. - */ - FileIndex.prototype.getInode = function getInode (path$$1) { - var splitPath = this._split_path(path$$1); - var dirpath = splitPath[0]; - var itemname = splitPath[1]; - // Retrieve from its parent directory. - var parent = this._index[dirpath]; - if (parent === undefined) { - return null; - } - // Root case - if (dirpath === path$$1) { - return parent; - } - return parent.getItem(itemname); - }; - /** - * Split into a (directory path, item name) pair - */ - FileIndex.prototype._split_path = function _split_path (p) { - var dirpath = path.dirname(p); - var itemname = p.substr(dirpath.length + (dirpath === "/" ? 0 : 1)); - return [dirpath, itemname]; - }; - /** - * Inode for a file. Stores an arbitrary (filesystem-specific) data payload. - */ - var FileInode = function FileInode(data) { - this.data = data; - }; - FileInode.prototype.isFile = function isFile () { return true; }; - FileInode.prototype.isDir = function isDir () { return false; }; - FileInode.prototype.getData = function getData () { return this.data; }; - FileInode.prototype.setData = function setData (data) { this.data = data; }; - /** - * Inode for a directory. Currently only contains the directory listing. - */ - var DirInode = function DirInode(data) { - if ( data === void 0 ) data = null; - - this.data = data; - this._ls = {}; - }; - DirInode.prototype.isFile = function isFile () { - return false; - }; - DirInode.prototype.isDir = function isDir () { - return true; - }; - DirInode.prototype.getData = function getData () { return this.data; }; - /** - * Return a Stats object for this inode. - * @todo Should probably remove this at some point. This isn't the - * responsibility of the FileIndex. - */ - DirInode.prototype.getStats = function getStats () { - return new Stats(FileType.DIRECTORY, 4096, 0x16D); - }; - /** - * Returns the directory listing for this directory. Paths in the directory are - * relative to the directory's path. - * @return The directory listing for this directory. - */ - DirInode.prototype.getListing = function getListing () { - return Object.keys(this._ls); - }; - /** - * Returns the inode for the indicated item, or null if it does not exist. - * @param p Name of item in this directory. - */ - DirInode.prototype.getItem = function getItem (p) { - var item = this._ls[p]; - return item ? item : null; - }; - /** - * Add the given item to the directory listing. Note that the given inode is - * not copied, and will be mutated by the DirInode if it is a DirInode. - * @param p Item name to add to the directory listing. - * @param inode The inode for the - * item to add to the directory inode. - * @return True if it was added, false if it already existed. - */ - DirInode.prototype.addItem = function addItem (p, inode) { - if (p in this._ls) { - return false; - } - this._ls[p] = inode; - return true; - }; - /** - * Removes the given item from the directory listing. - * @param p Name of item to remove from the directory listing. - * @return Returns the item - * removed, or null if the item did not exist. - */ - DirInode.prototype.remItem = function remItem (p) { - var item = this._ls[p]; - if (item === undefined) { - return null; - } - delete this._ls[p]; - return item; - }; - /** - * @hidden - */ - function isFileInode(inode) { - return !!inode && inode.isFile(); - } - /** - * @hidden - */ - function isDirInode(inode) { - return !!inode && inode.isDir(); - } - - /** - * Try to convert the given buffer into a string, and pass it to the callback. - * Optimization that removes the needed try/catch into a helper function, as - * this is an uncommon case. - * @hidden - */ - function tryToString(buff, encoding, cb) { - try { - cb(null, buff.toString(encoding)); - } - catch (e) { - cb(e); - } - } - /** - * A simple filesystem backed by XMLHttpRequests. You must create a directory listing using the - * `make_xhrfs_index` tool provided by BrowserFS. - * - * If you install BrowserFS globally with `npm i -g browserfs`, you can generate a listing by - * running `make_xhrfs_index` in your terminal in the directory you would like to index: - * - * ``` - * make_xhrfs_index > index.json - * ``` - * - * Listings objects look like the following: - * - * ```json - * { - * "home": { - * "jvilk": { - * "someFile.txt": null, - * "someDir": { - * // Empty directory - * } - * } - * } - * } - * ``` - * - * *This example has the folder `/home/jvilk` with subfile `someFile.txt` and subfolder `someDir`.* - */ - var XmlHttpRequest = (function (BaseFileSystem$$1) { - function XmlHttpRequest(listingUrlOrObj, prefixUrl, deprecateMsg) { - if ( prefixUrl === void 0 ) prefixUrl = ''; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - BaseFileSystem$$1.call(this); - if (!listingUrlOrObj) { - listingUrlOrObj = 'index.json'; - } - // prefix_url must end in a directory separator. - if (prefixUrl.length > 0 && prefixUrl.charAt(prefixUrl.length - 1) !== '/') { - prefixUrl = prefixUrl + '/'; - } - this.prefixUrl = prefixUrl; - var listing = null; - if (typeof (listingUrlOrObj) === "string") { - listing = this._requestFileSync(listingUrlOrObj, 'json'); - if (!listing) { - throw new Error("Unable to find listing at URL: ${listingUrlOrObj}"); - } - } - else { - listing = listingUrlOrObj; - } - deprecationMessage(deprecateMsg, XmlHttpRequest.Name, { index: typeof (listingUrlOrObj) === "string" ? listingUrlOrObj : "file index as an object", baseUrl: prefixUrl }); - this._index = FileIndex.fromListing(listing); - } - - if ( BaseFileSystem$$1 ) XmlHttpRequest.__proto__ = BaseFileSystem$$1; - XmlHttpRequest.prototype = Object.create( BaseFileSystem$$1 && BaseFileSystem$$1.prototype ); - XmlHttpRequest.prototype.constructor = XmlHttpRequest; - /** - * Construct an XmlHttpRequest file system backend with the given options. - */ - XmlHttpRequest.Create = function Create (opts, cb) { - if (opts.index === undefined) { - opts.index = "index.json"; - } - if (typeof (opts.index) === "string") { - XmlHttpRequest.FromURL(opts.index, cb, opts.baseUrl, false); - } - else { - cb(null, new XmlHttpRequest(opts.index, opts.baseUrl, false)); - } - }; - XmlHttpRequest.isAvailable = function isAvailable () { - return typeof (XMLHttpRequest) !== "undefined" && XMLHttpRequest !== null; - }; - /** - * **Deprecated. Please use XmlHttpRequest.Create() method instead to construct XmlHttpRequest objects.** - * - * Constructs an XmlHttpRequest object using the directory listing at the given URL. - * Uses the base URL as the URL prefix for fetched files. - * @param cb Called when the file system has been instantiated, or if an error occurs. - */ - XmlHttpRequest.FromURL = function FromURL (url, cb, baseUrl, deprecateMsg) { - if ( baseUrl === void 0 ) baseUrl = url.slice(0, url.lastIndexOf('/') + 1); - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - if (deprecateMsg) { - console.warn(("[XmlHttpRequest] XmlHttpRequest.FromURL() is deprecated and will be removed in the next major release. Please use 'XmlHttpRequest.Create({ index: \"" + url + "\", baseUrl: \"" + baseUrl + "\" }, cb)' instead.")); - } - asyncDownloadFile(url, "json", function (e, data) { - if (e) { - cb(e); - } - else { - cb(null, new XmlHttpRequest(data, baseUrl, false)); - } - }); - }; - XmlHttpRequest.prototype.empty = function empty () { - this._index.fileIterator(function (file) { - file.fileData = null; - }); - }; - XmlHttpRequest.prototype.getName = function getName () { - return XmlHttpRequest.Name; - }; - XmlHttpRequest.prototype.diskSpace = function diskSpace (path$$1, cb) { - // Read-only file system. We could calculate the total space, but that's not - // important right now. - cb(0, 0); - }; - XmlHttpRequest.prototype.isReadOnly = function isReadOnly () { - return true; - }; - XmlHttpRequest.prototype.supportsLinks = function supportsLinks () { - return false; - }; - XmlHttpRequest.prototype.supportsProps = function supportsProps () { - return false; - }; - XmlHttpRequest.prototype.supportsSynch = function supportsSynch () { - return true; - }; - /** - * Special XHR function: Preload the given file into the index. - * @param [String] path - * @param [BrowserFS.Buffer] buffer - */ - XmlHttpRequest.prototype.preloadFile = function preloadFile (path$$1, buffer$$1) { - var inode = this._index.getInode(path$$1); - if (isFileInode(inode)) { - if (inode === null) { - throw ApiError.ENOENT(path$$1); - } - var stats = inode.getData(); - stats.size = buffer$$1.length; - stats.fileData = buffer$$1; - } - else { - throw ApiError.EISDIR(path$$1); - } - }; - XmlHttpRequest.prototype.stat = function stat (path$$1, isLstat, cb) { - var inode = this._index.getInode(path$$1); - if (inode === null) { - return cb(ApiError.ENOENT(path$$1)); - } - var stats; - if (isFileInode(inode)) { - stats = inode.getData(); - // At this point, a non-opened file will still have default stats from the listing. - if (stats.size < 0) { - this._requestFileSizeAsync(path$$1, function (e, size) { - if (e) { - return cb(e); - } - stats.size = size; - cb(null, stats.clone()); - }); - } - else { - cb(null, stats.clone()); - } - } - else if (isDirInode(inode)) { - stats = inode.getStats(); - cb(null, stats); - } - else { - cb(ApiError.FileError(ErrorCode.EINVAL, path$$1)); - } - }; - XmlHttpRequest.prototype.statSync = function statSync (path$$1, isLstat) { - var inode = this._index.getInode(path$$1); - if (inode === null) { - throw ApiError.ENOENT(path$$1); - } - var stats; - if (isFileInode(inode)) { - stats = inode.getData(); - // At this point, a non-opened file will still have default stats from the listing. - if (stats.size < 0) { - stats.size = this._requestFileSizeSync(path$$1); - } - } - else if (isDirInode(inode)) { - stats = inode.getStats(); - } - else { - throw ApiError.FileError(ErrorCode.EINVAL, path$$1); - } - return stats; - }; - XmlHttpRequest.prototype.open = function open (path$$1, flags, mode, cb) { - // INVARIANT: You can't write to files on this file system. - if (flags.isWriteable()) { - return cb(new ApiError(ErrorCode.EPERM, path$$1)); - } - var self = this; - // Check if the path exists, and is a file. - var inode = this._index.getInode(path$$1); - if (inode === null) { - return cb(ApiError.ENOENT(path$$1)); - } - if (isFileInode(inode)) { - var stats = inode.getData(); - switch (flags.pathExistsAction()) { - case ActionType.THROW_EXCEPTION: - case ActionType.TRUNCATE_FILE: - return cb(ApiError.EEXIST(path$$1)); - case ActionType.NOP: - // Use existing file contents. - // XXX: Uh, this maintains the previously-used flag. - if (stats.fileData) { - return cb(null, new NoSyncFile(self, path$$1, flags, stats.clone(), stats.fileData)); - } - // @todo be lazier about actually requesting the file - this._requestFileAsync(path$$1, 'buffer', function (err, buffer$$1) { - if (err) { - return cb(err); - } - // we don't initially have file sizes - stats.size = buffer$$1.length; - stats.fileData = buffer$$1; - return cb(null, new NoSyncFile(self, path$$1, flags, stats.clone(), buffer$$1)); - }); - break; - default: - return cb(new ApiError(ErrorCode.EINVAL, 'Invalid FileMode object.')); - } - } - else { - return cb(ApiError.EISDIR(path$$1)); - } - }; - XmlHttpRequest.prototype.openSync = function openSync (path$$1, flags, mode) { - // INVARIANT: You can't write to files on this file system. - if (flags.isWriteable()) { - throw new ApiError(ErrorCode.EPERM, path$$1); - } - // Check if the path exists, and is a file. - var inode = this._index.getInode(path$$1); - if (inode === null) { - throw ApiError.ENOENT(path$$1); - } - if (isFileInode(inode)) { - var stats = inode.getData(); - switch (flags.pathExistsAction()) { - case ActionType.THROW_EXCEPTION: - case ActionType.TRUNCATE_FILE: - throw ApiError.EEXIST(path$$1); - case ActionType.NOP: - // Use existing file contents. - // XXX: Uh, this maintains the previously-used flag. - if (stats.fileData) { - return new NoSyncFile(this, path$$1, flags, stats.clone(), stats.fileData); - } - // @todo be lazier about actually requesting the file - var buffer$$1 = this._requestFileSync(path$$1, 'buffer'); - // we don't initially have file sizes - stats.size = buffer$$1.length; - stats.fileData = buffer$$1; - return new NoSyncFile(this, path$$1, flags, stats.clone(), buffer$$1); - default: - throw new ApiError(ErrorCode.EINVAL, 'Invalid FileMode object.'); - } - } - else { - throw ApiError.EISDIR(path$$1); - } - }; - XmlHttpRequest.prototype.readdir = function readdir (path$$1, cb) { - try { - cb(null, this.readdirSync(path$$1)); - } - catch (e) { - cb(e); - } - }; - XmlHttpRequest.prototype.readdirSync = function readdirSync (path$$1) { - // Check if it exists. - var inode = this._index.getInode(path$$1); - if (inode === null) { - throw ApiError.ENOENT(path$$1); - } - else if (isDirInode(inode)) { - return inode.getListing(); - } - else { - throw ApiError.ENOTDIR(path$$1); - } - }; - /** - * We have the entire file as a buffer; optimize readFile. - */ - XmlHttpRequest.prototype.readFile = function readFile (fname, encoding, flag, cb) { - // Wrap cb in file closing code. - var oldCb = cb; - // Get file. - this.open(fname, flag, 0x1a4, function (err, fd) { - if (err) { - return cb(err); - } - cb = function (err, arg) { - fd.close(function (err2) { - if (!err) { - err = err2; - } - return oldCb(err, arg); - }); - }; - var fdCast = fd; - var fdBuff = fdCast.getBuffer(); - if (encoding === null) { - cb(err, copyingSlice(fdBuff)); - } - else { - tryToString(fdBuff, encoding, cb); - } - }); - }; - /** - * Specially-optimized readfile. - */ - XmlHttpRequest.prototype.readFileSync = function readFileSync (fname, encoding, flag) { - // Get file. - var fd = this.openSync(fname, flag, 0x1a4); - try { - var fdCast = fd; - var fdBuff = fdCast.getBuffer(); - if (encoding === null) { - return copyingSlice(fdBuff); - } - return fdBuff.toString(encoding); - } - finally { - fd.closeSync(); - } - }; - XmlHttpRequest.prototype.getXhrPath = function getXhrPath (filePath) { - if (filePath.charAt(0) === '/') { - filePath = filePath.slice(1); - } - return this.prefixUrl + filePath; - }; - XmlHttpRequest.prototype._requestFileAsync = function _requestFileAsync (p, type, cb) { - asyncDownloadFile(this.getXhrPath(p), type, cb); - }; - XmlHttpRequest.prototype._requestFileSync = function _requestFileSync (p, type) { - return syncDownloadFile(this.getXhrPath(p), type); - }; - /** - * Only requests the HEAD content, for the file size. - */ - XmlHttpRequest.prototype._requestFileSizeAsync = function _requestFileSizeAsync (path$$1, cb) { - getFileSizeAsync(this.getXhrPath(path$$1), cb); - }; - XmlHttpRequest.prototype._requestFileSizeSync = function _requestFileSizeSync (path$$1) { - return getFileSizeSync(this.getXhrPath(path$$1)); - }; - - return XmlHttpRequest; - }(BaseFileSystem)); - - XmlHttpRequest.Name = "XmlHttpRequest"; - XmlHttpRequest.Options = { - index: { - type: ["string", "object"], - optional: true, - description: "URL to a file index as a JSON file or the file index object itself, generated with the make_xhrfs_index script. Defaults to `index.json`." - }, - baseUrl: { - type: "string", - optional: true, - description: "Used as the URL prefix for fetched files. Default: Fetch files relative to the index." - } - }; - - /** - * (Nonstandard) String utility function for 8-bit ASCII with the extended - * character set. Unlike the ASCII above, we do not mask the high bits. - * - * Placed into a separate file so it can be used with other Buffer implementations. - * @see http://en.wikipedia.org/wiki/Extended_ASCII - */ - /** - * (Nonstandard) String utility function for 8-bit ASCII with the extended - * character set. Unlike the ASCII above, we do not mask the high bits. - * - * Placed into a separate file so it can be used with other Buffer implementations. - * @see http://en.wikipedia.org/wiki/Extended_ASCII - */ var ExtendedASCII = function ExtendedASCII () {}; - - ExtendedASCII.str2byte = function str2byte (str, buf) { - var length = str.length > buf.length ? buf.length : str.length; - for (var i = 0; i < length; i++) { - var charCode = str.charCodeAt(i); - if (charCode > 0x7F) { - // Check if extended ASCII. - var charIdx = ExtendedASCII.extendedChars.indexOf(str.charAt(i)); - if (charIdx > -1) { - charCode = charIdx + 0x80; - } - // Otherwise, keep it as-is. - } - buf[charCode] = i; - } - return length; - }; - ExtendedASCII.byte2str = function byte2str (buff) { - var chars = new Array(buff.length); - for (var i = 0; i < buff.length; i++) { - var charCode = buff[i]; - if (charCode > 0x7F) { - chars[i] = ExtendedASCII.extendedChars[charCode - 128]; - } - else { - chars[i] = String.fromCharCode(charCode); - } - } - return chars.join(''); - }; - ExtendedASCII.byteLength = function byteLength (str) { return str.length; }; - - ExtendedASCII.extendedChars = ['\u00C7', '\u00FC', '\u00E9', '\u00E2', '\u00E4', - '\u00E0', '\u00E5', '\u00E7', '\u00EA', '\u00EB', '\u00E8', '\u00EF', - '\u00EE', '\u00EC', '\u00C4', '\u00C5', '\u00C9', '\u00E6', '\u00C6', - '\u00F4', '\u00F6', '\u00F2', '\u00FB', '\u00F9', '\u00FF', '\u00D6', - '\u00DC', '\u00F8', '\u00A3', '\u00D8', '\u00D7', '\u0192', '\u00E1', - '\u00ED', '\u00F3', '\u00FA', '\u00F1', '\u00D1', '\u00AA', '\u00BA', - '\u00BF', '\u00AE', '\u00AC', '\u00BD', '\u00BC', '\u00A1', '\u00AB', - '\u00BB', '_', '_', '_', '\u00A6', '\u00A6', '\u00C1', '\u00C2', '\u00C0', - '\u00A9', '\u00A6', '\u00A6', '+', '+', '\u00A2', '\u00A5', '+', '+', '-', - '-', '+', '-', '+', '\u00E3', '\u00C3', '+', '+', '-', '-', '\u00A6', '-', - '+', '\u00A4', '\u00F0', '\u00D0', '\u00CA', '\u00CB', '\u00C8', 'i', - '\u00CD', '\u00CE', '\u00CF', '+', '+', '_', '_', '\u00A6', '\u00CC', '_', - '\u00D3', '\u00DF', '\u00D4', '\u00D2', '\u00F5', '\u00D5', '\u00B5', - '\u00FE', '\u00DE', '\u00DA', '\u00DB', '\u00D9', '\u00FD', '\u00DD', - '\u00AF', '\u00B4', '\u00AD', '\u00B1', '_', '\u00BE', '\u00B6', '\u00A7', - '\u00F7', '\u00B8', '\u00B0', '\u00A8', '\u00B7', '\u00B9', '\u00B3', - '\u00B2', '_', ' ']; - - /** - * @hidden - */ - var inflateRaw = __webpack_require__(31).inflateRaw; - /** - * Maps CompressionMethod => function that decompresses. - * @hidden - */ - var decompressionMethods = {}; - /** - * 4.4.2.2: Indicates the compatibiltiy of a file's external attributes. - */ - var ExternalFileAttributeType; - (function (ExternalFileAttributeType) { - ExternalFileAttributeType[ExternalFileAttributeType["MSDOS"] = 0] = "MSDOS"; - ExternalFileAttributeType[ExternalFileAttributeType["AMIGA"] = 1] = "AMIGA"; - ExternalFileAttributeType[ExternalFileAttributeType["OPENVMS"] = 2] = "OPENVMS"; - ExternalFileAttributeType[ExternalFileAttributeType["UNIX"] = 3] = "UNIX"; - ExternalFileAttributeType[ExternalFileAttributeType["VM_CMS"] = 4] = "VM_CMS"; - ExternalFileAttributeType[ExternalFileAttributeType["ATARI_ST"] = 5] = "ATARI_ST"; - ExternalFileAttributeType[ExternalFileAttributeType["OS2_HPFS"] = 6] = "OS2_HPFS"; - ExternalFileAttributeType[ExternalFileAttributeType["MAC"] = 7] = "MAC"; - ExternalFileAttributeType[ExternalFileAttributeType["Z_SYSTEM"] = 8] = "Z_SYSTEM"; - ExternalFileAttributeType[ExternalFileAttributeType["CP_M"] = 9] = "CP_M"; - ExternalFileAttributeType[ExternalFileAttributeType["NTFS"] = 10] = "NTFS"; - ExternalFileAttributeType[ExternalFileAttributeType["MVS"] = 11] = "MVS"; - ExternalFileAttributeType[ExternalFileAttributeType["VSE"] = 12] = "VSE"; - ExternalFileAttributeType[ExternalFileAttributeType["ACORN_RISC"] = 13] = "ACORN_RISC"; - ExternalFileAttributeType[ExternalFileAttributeType["VFAT"] = 14] = "VFAT"; - ExternalFileAttributeType[ExternalFileAttributeType["ALT_MVS"] = 15] = "ALT_MVS"; - ExternalFileAttributeType[ExternalFileAttributeType["BEOS"] = 16] = "BEOS"; - ExternalFileAttributeType[ExternalFileAttributeType["TANDEM"] = 17] = "TANDEM"; - ExternalFileAttributeType[ExternalFileAttributeType["OS_400"] = 18] = "OS_400"; - ExternalFileAttributeType[ExternalFileAttributeType["OSX"] = 19] = "OSX"; - })(ExternalFileAttributeType || (ExternalFileAttributeType = {})); - /** - * 4.4.5 - */ - var CompressionMethod; - (function (CompressionMethod) { - CompressionMethod[CompressionMethod["STORED"] = 0] = "STORED"; - CompressionMethod[CompressionMethod["SHRUNK"] = 1] = "SHRUNK"; - CompressionMethod[CompressionMethod["REDUCED_1"] = 2] = "REDUCED_1"; - CompressionMethod[CompressionMethod["REDUCED_2"] = 3] = "REDUCED_2"; - CompressionMethod[CompressionMethod["REDUCED_3"] = 4] = "REDUCED_3"; - CompressionMethod[CompressionMethod["REDUCED_4"] = 5] = "REDUCED_4"; - CompressionMethod[CompressionMethod["IMPLODE"] = 6] = "IMPLODE"; - CompressionMethod[CompressionMethod["DEFLATE"] = 8] = "DEFLATE"; - CompressionMethod[CompressionMethod["DEFLATE64"] = 9] = "DEFLATE64"; - CompressionMethod[CompressionMethod["TERSE_OLD"] = 10] = "TERSE_OLD"; - CompressionMethod[CompressionMethod["BZIP2"] = 12] = "BZIP2"; - CompressionMethod[CompressionMethod["LZMA"] = 14] = "LZMA"; - CompressionMethod[CompressionMethod["TERSE_NEW"] = 18] = "TERSE_NEW"; - CompressionMethod[CompressionMethod["LZ77"] = 19] = "LZ77"; - CompressionMethod[CompressionMethod["WAVPACK"] = 97] = "WAVPACK"; - CompressionMethod[CompressionMethod["PPMD"] = 98] = "PPMD"; // PPMd version I, Rev 1 - })(CompressionMethod || (CompressionMethod = {})); - /** - * Converts the input time and date in MS-DOS format into a JavaScript Date - * object. - * @hidden - */ - function msdos2date(time, date) { - // MS-DOS Date - // |0 0 0 0 0|0 0 0 0|0 0 0 0 0 0 0 - // D (1-31) M (1-23) Y (from 1980) - var day = date & 0x1F; - // JS date is 0-indexed, DOS is 1-indexed. - var month = ((date >> 5) & 0xF) - 1; - var year = (date >> 9) + 1980; - // MS DOS Time - // |0 0 0 0 0|0 0 0 0 0 0|0 0 0 0 0 - // Second Minute Hour - var second = time & 0x1F; - var minute = (time >> 5) & 0x3F; - var hour = time >> 11; - return new Date(year, month, day, hour, minute, second); - } - /** - * Safely returns the string from the buffer, even if it is 0 bytes long. - * (Normally, calling toString() on a buffer with start === end causes an - * exception). - * @hidden - */ - function safeToString(buff, useUTF8, start, length) { - if (length === 0) { - return ""; - } - else if (useUTF8) { - return buff.toString('utf8', start, start + length); - } - else { - return ExtendedASCII.byte2str(buff.slice(start, start + length)); - } - } - /* - 4.3.6 Overall .ZIP file format: - - [local file header 1] - [encryption header 1] - [file data 1] - [data descriptor 1] - . - . - . - [local file header n] - [encryption header n] - [file data n] - [data descriptor n] - [archive decryption header] - [archive extra data record] - [central directory header 1] - . - . - . - [central directory header n] - [zip64 end of central directory record] - [zip64 end of central directory locator] - [end of central directory record] - */ - /** - * 4.3.7 Local file header: - * - * local file header signature 4 bytes (0x04034b50) - * version needed to extract 2 bytes - * general purpose bit flag 2 bytes - * compression method 2 bytes - * last mod file time 2 bytes - * last mod file date 2 bytes - * crc-32 4 bytes - * compressed size 4 bytes - * uncompressed size 4 bytes - * file name length 2 bytes - * extra field length 2 bytes - * - * file name (variable size) - * extra field (variable size) - */ - var FileHeader = function FileHeader(data) { - this.data = data; - if (data.readUInt32LE(0) !== 0x04034b50) { - throw new ApiError(ErrorCode.EINVAL, "Invalid Zip file: Local file header has invalid signature: " + this.data.readUInt32LE(0)); - } - }; - FileHeader.prototype.versionNeeded = function versionNeeded () { return this.data.readUInt16LE(4); }; - FileHeader.prototype.flags = function flags () { return this.data.readUInt16LE(6); }; - FileHeader.prototype.compressionMethod = function compressionMethod () { return this.data.readUInt16LE(8); }; - FileHeader.prototype.lastModFileTime = function lastModFileTime () { - // Time and date is in MS-DOS format. - return msdos2date(this.data.readUInt16LE(10), this.data.readUInt16LE(12)); - }; - FileHeader.prototype.rawLastModFileTime = function rawLastModFileTime () { - return this.data.readUInt32LE(10); - }; - FileHeader.prototype.crc32 = function crc32 () { return this.data.readUInt32LE(14); }; - /** - * These two values are COMPLETELY USELESS. - * - * Section 4.4.9: - *If bit 3 of the general purpose bit flag is set, - *these fields are set to zero in the local header and the - *correct values are put in the data descriptor and - *in the central directory. - * - * So we'll just use the central directory's values. - */ - // public compressedSize(): number { return this.data.readUInt32LE(18); } - // public uncompressedSize(): number { return this.data.readUInt32LE(22); } - FileHeader.prototype.fileNameLength = function fileNameLength () { return this.data.readUInt16LE(26); }; - FileHeader.prototype.extraFieldLength = function extraFieldLength () { return this.data.readUInt16LE(28); }; - FileHeader.prototype.fileName = function fileName () { - return safeToString(this.data, this.useUTF8(), 30, this.fileNameLength()); - }; - FileHeader.prototype.extraField = function extraField () { - var start = 30 + this.fileNameLength(); - return this.data.slice(start, start + this.extraFieldLength()); - }; - FileHeader.prototype.totalSize = function totalSize () { return 30 + this.fileNameLength() + this.extraFieldLength(); }; - FileHeader.prototype.useUTF8 = function useUTF8 () { return (this.flags() & 0x800) === 0x800; }; - /** - * 4.3.8 File data - * - * Immediately following the local header for a file - * SHOULD be placed the compressed or stored data for the file. - * If the file is encrypted, the encryption header for the file - * SHOULD be placed after the local header and before the file - * data. The series of [local file header][encryption header] - * [file data][data descriptor] repeats for each file in the - * .ZIP archive. - * - * Zero-byte files, directories, and other file types that - * contain no content MUST not include file data. - */ - var FileData = function FileData(header, record, data) { - this.header = header; - this.record = record; - this.data = data; - }; - FileData.prototype.decompress = function decompress () { - // Check the compression - var compressionMethod = this.header.compressionMethod(); - var fcn = decompressionMethods[compressionMethod]; - if (fcn) { - return fcn(this.data, this.record.compressedSize(), this.record.uncompressedSize(), this.record.flag()); - } - else { - var name = CompressionMethod[compressionMethod]; - if (!name) { - name = "Unknown: " + compressionMethod; - } - throw new ApiError(ErrorCode.EINVAL, ("Invalid compression method on file '" + (this.header.fileName()) + "': " + name)); - } - }; - FileData.prototype.getHeader = function getHeader () { - return this.header; - }; - FileData.prototype.getRecord = function getRecord () { - return this.record; - }; - FileData.prototype.getRawData = function getRawData () { - return this.data; - }; - /** - * 4.3.9 Data descriptor: - * - * crc-32 4 bytes - * compressed size 4 bytes - * uncompressed size 4 bytes - */ - var DataDescriptor = function DataDescriptor(data) { - this.data = data; - }; - DataDescriptor.prototype.crc32 = function crc32 () { return this.data.readUInt32LE(0); }; - DataDescriptor.prototype.compressedSize = function compressedSize () { return this.data.readUInt32LE(4); }; - DataDescriptor.prototype.uncompressedSize = function uncompressedSize () { return this.data.readUInt32LE(8); }; - /* - ` 4.3.10 Archive decryption header: - - 4.3.10.1 The Archive Decryption Header is introduced in version 6.2 - of the ZIP format specification. This record exists in support - of the Central Directory Encryption Feature implemented as part of - the Strong Encryption Specification as described in this document. - When the Central Directory Structure is encrypted, this decryption - header MUST precede the encrypted data segment. - */ - /** - * 4.3.11 Archive extra data record: - * - * archive extra data signature 4 bytes (0x08064b50) - * extra field length 4 bytes - * extra field data (variable size) - * - * 4.3.11.1 The Archive Extra Data Record is introduced in version 6.2 - * of the ZIP format specification. This record MAY be used in support - * of the Central Directory Encryption Feature implemented as part of - * the Strong Encryption Specification as described in this document. - * When present, this record MUST immediately precede the central - * directory data structure. - */ - var ArchiveExtraDataRecord = function ArchiveExtraDataRecord(data) { - this.data = data; - if (this.data.readUInt32LE(0) !== 0x08064b50) { - throw new ApiError(ErrorCode.EINVAL, "Invalid archive extra data record signature: " + this.data.readUInt32LE(0)); - } - }; - ArchiveExtraDataRecord.prototype.length = function length () { return this.data.readUInt32LE(4); }; - ArchiveExtraDataRecord.prototype.extraFieldData = function extraFieldData () { return this.data.slice(8, 8 + this.length()); }; - /** - * 4.3.13 Digital signature: - * - * header signature 4 bytes (0x05054b50) - * size of data 2 bytes - * signature data (variable size) - * - * With the introduction of the Central Directory Encryption - * feature in version 6.2 of this specification, the Central - * Directory Structure MAY be stored both compressed and encrypted. - * Although not required, it is assumed when encrypting the - * Central Directory Structure, that it will be compressed - * for greater storage efficiency. Information on the - * Central Directory Encryption feature can be found in the section - * describing the Strong Encryption Specification. The Digital - * Signature record will be neither compressed nor encrypted. - */ - var DigitalSignature = function DigitalSignature(data) { - this.data = data; - if (this.data.readUInt32LE(0) !== 0x05054b50) { - throw new ApiError(ErrorCode.EINVAL, "Invalid digital signature signature: " + this.data.readUInt32LE(0)); - } - }; - DigitalSignature.prototype.size = function size () { return this.data.readUInt16LE(4); }; - DigitalSignature.prototype.signatureData = function signatureData () { return this.data.slice(6, 6 + this.size()); }; - /** - * 4.3.12 Central directory structure: - * - * central file header signature 4 bytes (0x02014b50) - * version made by 2 bytes - * version needed to extract 2 bytes - * general purpose bit flag 2 bytes - * compression method 2 bytes - * last mod file time 2 bytes - * last mod file date 2 bytes - * crc-32 4 bytes - * compressed size 4 bytes - * uncompressed size 4 bytes - * file name length 2 bytes - * extra field length 2 bytes - * file comment length 2 bytes - * disk number start 2 bytes - * internal file attributes 2 bytes - * external file attributes 4 bytes - * relative offset of local header 4 bytes - * - * file name (variable size) - * extra field (variable size) - * file comment (variable size) - */ - var CentralDirectory = function CentralDirectory(zipData, data) { - this.zipData = zipData; - this.data = data; - // Sanity check. - if (this.data.readUInt32LE(0) !== 0x02014b50) { - throw new ApiError(ErrorCode.EINVAL, ("Invalid Zip file: Central directory record has invalid signature: " + (this.data.readUInt32LE(0)))); - } - this._filename = this.produceFilename(); - }; - CentralDirectory.prototype.versionMadeBy = function versionMadeBy () { return this.data.readUInt16LE(4); }; - CentralDirectory.prototype.versionNeeded = function versionNeeded () { return this.data.readUInt16LE(6); }; - CentralDirectory.prototype.flag = function flag () { return this.data.readUInt16LE(8); }; - CentralDirectory.prototype.compressionMethod = function compressionMethod () { return this.data.readUInt16LE(10); }; - CentralDirectory.prototype.lastModFileTime = function lastModFileTime () { - // Time and date is in MS-DOS format. - return msdos2date(this.data.readUInt16LE(12), this.data.readUInt16LE(14)); - }; - CentralDirectory.prototype.rawLastModFileTime = function rawLastModFileTime () { - return this.data.readUInt32LE(12); - }; - CentralDirectory.prototype.crc32 = function crc32 () { return this.data.readUInt32LE(16); }; - CentralDirectory.prototype.compressedSize = function compressedSize () { return this.data.readUInt32LE(20); }; - CentralDirectory.prototype.uncompressedSize = function uncompressedSize () { return this.data.readUInt32LE(24); }; - CentralDirectory.prototype.fileNameLength = function fileNameLength () { return this.data.readUInt16LE(28); }; - CentralDirectory.prototype.extraFieldLength = function extraFieldLength () { return this.data.readUInt16LE(30); }; - CentralDirectory.prototype.fileCommentLength = function fileCommentLength () { return this.data.readUInt16LE(32); }; - CentralDirectory.prototype.diskNumberStart = function diskNumberStart () { return this.data.readUInt16LE(34); }; - CentralDirectory.prototype.internalAttributes = function internalAttributes () { return this.data.readUInt16LE(36); }; - CentralDirectory.prototype.externalAttributes = function externalAttributes () { return this.data.readUInt32LE(38); }; - CentralDirectory.prototype.headerRelativeOffset = function headerRelativeOffset () { return this.data.readUInt32LE(42); }; - CentralDirectory.prototype.produceFilename = function produceFilename () { - /* - 4.4.17.1 claims: - * All slashes are forward ('/') slashes. - * Filename doesn't begin with a slash. - * No drive letters or any nonsense like that. - * If filename is missing, the input came from standard input. - - Unfortunately, this isn't true in practice. Some Windows zip utilities use - a backslash here, but the correct Unix-style path in file headers. - - To avoid seeking all over the file to recover the known-good filenames - from file headers, we simply convert '/' to '\' here. - */ - var fileName = safeToString(this.data, this.useUTF8(), 46, this.fileNameLength()); - return fileName.replace(/\\/g, "/"); - }; - CentralDirectory.prototype.fileName = function fileName () { - return this._filename; - }; - CentralDirectory.prototype.rawFileName = function rawFileName () { - return this.data.slice(46, 46 + this.fileNameLength()); - }; - CentralDirectory.prototype.extraField = function extraField () { - var start = 44 + this.fileNameLength(); - return this.data.slice(start, start + this.extraFieldLength()); - }; - CentralDirectory.prototype.fileComment = function fileComment () { - var start = 46 + this.fileNameLength() + this.extraFieldLength(); - return safeToString(this.data, this.useUTF8(), start, this.fileCommentLength()); - }; - CentralDirectory.prototype.rawFileComment = function rawFileComment () { - var start = 46 + this.fileNameLength() + this.extraFieldLength(); - return this.data.slice(start, start + this.fileCommentLength()); - }; - CentralDirectory.prototype.totalSize = function totalSize () { - return 46 + this.fileNameLength() + this.extraFieldLength() + this.fileCommentLength(); - }; - CentralDirectory.prototype.isDirectory = function isDirectory () { - // NOTE: This assumes that the zip file implementation uses the lower byte - // of external attributes for DOS attributes for - // backwards-compatibility. This is not mandated, but appears to be - // commonplace. - // According to the spec, the layout of external attributes is - // platform-dependent. - // If that fails, we also check if the name of the file ends in '/', - // which is what Java's ZipFile implementation does. - var fileName = this.fileName(); - return (this.externalAttributes() & 0x10 ? true : false) || (fileName.charAt(fileName.length - 1) === '/'); - }; - CentralDirectory.prototype.isFile = function isFile () { return !this.isDirectory(); }; - CentralDirectory.prototype.useUTF8 = function useUTF8 () { return (this.flag() & 0x800) === 0x800; }; - CentralDirectory.prototype.isEncrypted = function isEncrypted () { return (this.flag() & 0x1) === 0x1; }; - CentralDirectory.prototype.getFileData = function getFileData () { - // Need to grab the header before we can figure out where the actual - // compressed data starts. - var start = this.headerRelativeOffset(); - var header = new FileHeader(this.zipData.slice(start)); - return new FileData(header, this, this.zipData.slice(start + header.totalSize())); - }; - CentralDirectory.prototype.getData = function getData () { - return this.getFileData().decompress(); - }; - CentralDirectory.prototype.getRawData = function getRawData () { - return this.getFileData().getRawData(); - }; - CentralDirectory.prototype.getStats = function getStats () { - return new Stats(FileType.FILE, this.uncompressedSize(), 0x16D, new Date(), this.lastModFileTime()); - }; - /** - * 4.3.16: end of central directory record - * end of central dir signature 4 bytes (0x06054b50) - * number of this disk 2 bytes - * number of the disk with the - * start of the central directory 2 bytes - * total number of entries in the - * central directory on this disk 2 bytes - * total number of entries in - * the central directory 2 bytes - * size of the central directory 4 bytes - * offset of start of central - * directory with respect to - * the starting disk number 4 bytes - * .ZIP file comment length 2 bytes - * .ZIP file comment (variable size) - */ - var EndOfCentralDirectory = function EndOfCentralDirectory(data) { - this.data = data; - if (this.data.readUInt32LE(0) !== 0x06054b50) { - throw new ApiError(ErrorCode.EINVAL, ("Invalid Zip file: End of central directory record has invalid signature: " + (this.data.readUInt32LE(0)))); - } - }; - EndOfCentralDirectory.prototype.diskNumber = function diskNumber () { return this.data.readUInt16LE(4); }; - EndOfCentralDirectory.prototype.cdDiskNumber = function cdDiskNumber () { return this.data.readUInt16LE(6); }; - EndOfCentralDirectory.prototype.cdDiskEntryCount = function cdDiskEntryCount () { return this.data.readUInt16LE(8); }; - EndOfCentralDirectory.prototype.cdTotalEntryCount = function cdTotalEntryCount () { return this.data.readUInt16LE(10); }; - EndOfCentralDirectory.prototype.cdSize = function cdSize () { return this.data.readUInt32LE(12); }; - EndOfCentralDirectory.prototype.cdOffset = function cdOffset () { return this.data.readUInt32LE(16); }; - EndOfCentralDirectory.prototype.cdZipCommentLength = function cdZipCommentLength () { return this.data.readUInt16LE(20); }; - EndOfCentralDirectory.prototype.cdZipComment = function cdZipComment () { - // Assuming UTF-8. The specification doesn't specify. - return safeToString(this.data, true, 22, this.cdZipCommentLength()); - }; - EndOfCentralDirectory.prototype.rawCdZipComment = function rawCdZipComment () { - return this.data.slice(22, 22 + this.cdZipCommentLength()); - }; - /** - * Contains the table of contents of a Zip file. - */ - var ZipTOC = function ZipTOC(index, directoryEntries, eocd, data) { - this.index = index; - this.directoryEntries = directoryEntries; - this.eocd = eocd; - this.data = data; - }; - /** - * Zip file-backed filesystem - * Implemented according to the standard: - * http://www.pkware.com/documents/casestudies/APPNOTE.TXT - * - * While there are a few zip libraries for JavaScript (e.g. JSZip and zip.js), - * they are not a good match for BrowserFS. In particular, these libraries - * perform a lot of unneeded data copying, and eagerly decompress every file - * in the zip file upon loading to check the CRC32. They also eagerly decode - * strings. Furthermore, these libraries duplicate functionality already present - * in BrowserFS (e.g. UTF-8 decoding and binary data manipulation). - * - * This filesystem takes advantage of BrowserFS's Buffer implementation, which - * efficiently represents the zip file in memory (in both ArrayBuffer-enabled - * browsers *and* non-ArrayBuffer browsers), and which can neatly be 'sliced' - * without copying data. Each struct defined in the standard is represented with - * a buffer slice pointing to an offset in the zip file, and has getters for - * each field. As we anticipate that this data will not be read often, we choose - * not to store each struct field in the JavaScript object; instead, to reduce - * memory consumption, we retrieve it directly from the binary data each time it - * is requested. - * - * When the filesystem is instantiated, we determine the directory structure - * of the zip file as quickly as possible. We lazily decompress and check the - * CRC32 of files. We do not cache decompressed files; if this is a desired - * feature, it is best implemented as a generic file system wrapper that can - * cache data from arbitrary file systems. - * - * For inflation, we use `pako`'s implementation: - * https://github.com/nodeca/pako - * - * Current limitations: - * * No encryption. - * * No ZIP64 support. - * * Read-only. - * Write support would require that we: - * - Keep track of changed/new files. - * - Compress changed files, and generate appropriate metadata for each. - * - Update file offsets for other files in the zip file. - * - Stream it out to a location. - * This isn't that bad, so we might do this at a later date. - */ - var ZipFS = (function (SynchronousFileSystem$$1) { - function ZipFS(input, name, deprecateMsg) { - if ( name === void 0 ) name = ''; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - SynchronousFileSystem$$1.call(this); - this.name = name; - this._index = new FileIndex(); - this._directoryEntries = []; - this._eocd = null; - deprecationMessage(deprecateMsg, ZipFS.Name, { zipData: "zip data as a Buffer", name: name }); - if (input instanceof ZipTOC) { - this._index = input.index; - this._directoryEntries = input.directoryEntries; - this._eocd = input.eocd; - this.data = input.data; - } - else { - this.data = input; - this.populateIndex(); - } - } - - if ( SynchronousFileSystem$$1 ) ZipFS.__proto__ = SynchronousFileSystem$$1; - ZipFS.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype ); - ZipFS.prototype.constructor = ZipFS; - /** - * Constructs a ZipFS instance with the given options. - */ - ZipFS.Create = function Create (opts, cb) { - try { - ZipFS.computeIndex(opts.zipData, function (zipTOC) { - var fs = new ZipFS(zipTOC, opts.name, false); - cb(null, fs); - }, false); - } - catch (e) { - cb(e); - } - }; - ZipFS.isAvailable = function isAvailable () { return true; }; - ZipFS.RegisterDecompressionMethod = function RegisterDecompressionMethod (m, fcn) { - decompressionMethods[m] = fcn; - }; - /** - * **Deprecated. Please use ZipFS.Create() method instead.** - */ - ZipFS.computeIndex = function computeIndex (data, cb, deprecateMsg) { - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - // TODO: Refactor to plumb errors through. Right now, they throw. - if (deprecateMsg) { - console.warn("[ZipFS] ZipFS.computeIndex is now deprecated, and will be removed in the next major release. Please update your code to use 'ZipFS.Create({ zipData: zip file as a Buffer}, cb)' instead."); - } - var index = new FileIndex(); - var eocd = ZipFS.getEOCD(data); - if (eocd.diskNumber() !== eocd.cdDiskNumber()) { - throw new ApiError(ErrorCode.EINVAL, "ZipFS does not support spanned zip files."); - } - var cdPtr = eocd.cdOffset(); - if (cdPtr === 0xFFFFFFFF) { - throw new ApiError(ErrorCode.EINVAL, "ZipFS does not support Zip64."); - } - var cdEnd = cdPtr + eocd.cdSize(); - ZipFS.computeIndexResponsive(data, index, cdPtr, cdEnd, cb, [], eocd); - }; - /** - * Locates the end of central directory record at the end of the file. - * Throws an exception if it cannot be found. - */ - ZipFS.getEOCD = function getEOCD (data) { - // Unfortunately, the comment is variable size and up to 64K in size. - // We assume that the magic signature does not appear in the comment, and - // in the bytes between the comment and the signature. Other ZIP - // implementations make this same assumption, since the alternative is to - // read thread every entry in the file to get to it. :( - // These are *negative* offsets from the end of the file. - var startOffset = 22; - var endOffset = Math.min(startOffset + 0xFFFF, data.length - 1); - // There's not even a byte alignment guarantee on the comment so we need to - // search byte by byte. *grumble grumble* - for (var i = startOffset; i < endOffset; i++) { - // Magic number: EOCD Signature - if (data.readUInt32LE(data.length - i) === 0x06054b50) { - return new EndOfCentralDirectory(data.slice(data.length - i)); - } - } - throw new ApiError(ErrorCode.EINVAL, "Invalid ZIP file: Could not locate End of Central Directory signature."); - }; - ZipFS.addToIndex = function addToIndex (cd, index) { - // Paths must be absolute, yet zip file paths are always relative to the - // zip root. So we append '/' and call it a day. - var filename = cd.fileName(); - if (filename.charAt(0) === '/') { - throw new Error("WHY IS THIS ABSOLUTE"); - } - // XXX: For the file index, strip the trailing '/'. - if (filename.charAt(filename.length - 1) === '/') { - filename = filename.substr(0, filename.length - 1); - } - if (cd.isDirectory()) { - index.addPathFast('/' + filename, new DirInode(cd)); - } - else { - index.addPathFast('/' + filename, new FileInode(cd)); - } - }; - ZipFS.computeIndexResponsive = function computeIndexResponsive (data, index, cdPtr, cdEnd, cb, cdEntries, eocd) { - if (cdPtr < cdEnd) { - var count = 0; - while (count++ < 200 && cdPtr < cdEnd) { - var cd = new CentralDirectory(data, data.slice(cdPtr)); - ZipFS.addToIndex(cd, index); - cdPtr += cd.totalSize(); - cdEntries.push(cd); - } - setImmediate$3(function () { - ZipFS.computeIndexResponsive(data, index, cdPtr, cdEnd, cb, cdEntries, eocd); - }); - } - else { - cb(new ZipTOC(index, cdEntries, eocd, data)); - } - }; - ZipFS.prototype.getName = function getName () { - return ZipFS.Name + (this.name !== '' ? (" " + (this.name)) : ''); - }; - /** - * Get the CentralDirectory object for the given path. - */ - ZipFS.prototype.getCentralDirectoryEntry = function getCentralDirectoryEntry (path$$1) { - var inode = this._index.getInode(path$$1); - if (inode === null) { - throw ApiError.ENOENT(path$$1); - } - if (isFileInode(inode)) { - return inode.getData(); - } - else if (isDirInode(inode)) { - return inode.getData(); - } - else { - // Should never occur. - throw ApiError.EPERM(("Invalid inode: " + inode)); - } - }; - ZipFS.prototype.getCentralDirectoryEntryAt = function getCentralDirectoryEntryAt (index) { - var dirEntry = this._directoryEntries[index]; - if (!dirEntry) { - throw new RangeError(("Invalid directory index: " + index + ".")); - } - return dirEntry; - }; - ZipFS.prototype.getNumberOfCentralDirectoryEntries = function getNumberOfCentralDirectoryEntries () { - return this._directoryEntries.length; - }; - ZipFS.prototype.getEndOfCentralDirectory = function getEndOfCentralDirectory () { - return this._eocd; - }; - ZipFS.prototype.diskSpace = function diskSpace (path$$1, cb) { - // Read-only file system. - cb(this.data.length, 0); - }; - ZipFS.prototype.isReadOnly = function isReadOnly () { - return true; - }; - ZipFS.prototype.supportsLinks = function supportsLinks () { - return false; - }; - ZipFS.prototype.supportsProps = function supportsProps () { - return false; - }; - ZipFS.prototype.supportsSynch = function supportsSynch () { - return true; - }; - ZipFS.prototype.statSync = function statSync (path$$1, isLstat) { - var inode = this._index.getInode(path$$1); - if (inode === null) { - throw ApiError.ENOENT(path$$1); - } - var stats; - if (isFileInode(inode)) { - stats = inode.getData().getStats(); - } - else if (isDirInode(inode)) { - stats = inode.getStats(); - } - else { - throw new ApiError(ErrorCode.EINVAL, "Invalid inode."); - } - return stats; - }; - ZipFS.prototype.openSync = function openSync (path$$1, flags, mode) { - // INVARIANT: Cannot write to RO file systems. - if (flags.isWriteable()) { - throw new ApiError(ErrorCode.EPERM, path$$1); - } - // Check if the path exists, and is a file. - var inode = this._index.getInode(path$$1); - if (!inode) { - throw ApiError.ENOENT(path$$1); - } - else if (isFileInode(inode)) { - var cdRecord = inode.getData(); - var stats = cdRecord.getStats(); - switch (flags.pathExistsAction()) { - case ActionType.THROW_EXCEPTION: - case ActionType.TRUNCATE_FILE: - throw ApiError.EEXIST(path$$1); - case ActionType.NOP: - return new NoSyncFile(this, path$$1, flags, stats, cdRecord.getData()); - default: - throw new ApiError(ErrorCode.EINVAL, 'Invalid FileMode object.'); - } - } - else { - throw ApiError.EISDIR(path$$1); - } - }; - ZipFS.prototype.readdirSync = function readdirSync (path$$1) { - // Check if it exists. - var inode = this._index.getInode(path$$1); - if (!inode) { - throw ApiError.ENOENT(path$$1); - } - else if (isDirInode(inode)) { - return inode.getListing(); - } - else { - throw ApiError.ENOTDIR(path$$1); - } - }; - /** - * Specially-optimized readfile. - */ - ZipFS.prototype.readFileSync = function readFileSync (fname, encoding, flag) { - // Get file. - var fd = this.openSync(fname, flag, 0x1a4); - try { - var fdCast = fd; - var fdBuff = fdCast.getBuffer(); - if (encoding === null) { - return copyingSlice(fdBuff); - } - return fdBuff.toString(encoding); - } - finally { - fd.closeSync(); - } - }; - ZipFS.prototype.populateIndex = function populateIndex () { - var this$1 = this; - - var eocd = this._eocd = ZipFS.getEOCD(this.data); - if (eocd.diskNumber() !== eocd.cdDiskNumber()) { - throw new ApiError(ErrorCode.EINVAL, "ZipFS does not support spanned zip files."); - } - var cdPtr = eocd.cdOffset(); - if (cdPtr === 0xFFFFFFFF) { - throw new ApiError(ErrorCode.EINVAL, "ZipFS does not support Zip64."); - } - var cdEnd = cdPtr + eocd.cdSize(); - while (cdPtr < cdEnd) { - var cd = new CentralDirectory(this$1.data, this$1.data.slice(cdPtr)); - cdPtr += cd.totalSize(); - ZipFS.addToIndex(cd, this$1._index); - this$1._directoryEntries.push(cd); - } - }; - - return ZipFS; - }(SynchronousFileSystem)); - - ZipFS.Name = "ZipFS"; - ZipFS.Options = { - zipData: { - type: "object", - description: "The zip file as a Buffer object.", - validator: bufferValidator - }, - name: { - type: "string", - optional: true, - description: "The name of the zip file (optional)." - } - }; - ZipFS.CompressionMethod = CompressionMethod; - ZipFS.RegisterDecompressionMethod(CompressionMethod.DEFLATE, function (data, compressedSize, uncompressedSize) { - return arrayish2Buffer(inflateRaw(data.slice(0, compressedSize), { chunkSize: uncompressedSize })); - }); - ZipFS.RegisterDecompressionMethod(CompressionMethod.STORED, function (data, compressedSize, uncompressedSize) { - return copyingSlice(data, 0, uncompressedSize); - }); - - /** - * @hidden - */ - var rockRidgeIdentifier = "IEEE_P1282"; - /** - * @hidden - */ - function getASCIIString(data, startIndex, length) { - return data.toString('ascii', startIndex, startIndex + length).trim(); - } - /** - * @hidden - */ - function getJolietString(data, startIndex, length) { - if (length === 1) { - // Special: Root, parent, current directory are still a single byte. - return String.fromCharCode(data[startIndex]); - } - // UTF16-BE, which isn't natively supported by NodeJS Buffers. - // Length should be even, but pessimistically floor just in case. - var pairs = Math.floor(length / 2); - var chars = new Array(pairs); - for (var i = 0; i < pairs; i++) { - var pos = startIndex + (i << 1); - chars[i] = String.fromCharCode(data[pos + 1] | (data[pos] << 8)); - } - return chars.join(''); - } - /** - * @hidden - */ - function getDate(data, startIndex) { - var year = parseInt(getASCIIString(data, startIndex, 4), 10); - var mon = parseInt(getASCIIString(data, startIndex + 4, 2), 10); - var day = parseInt(getASCIIString(data, startIndex + 6, 2), 10); - var hour = parseInt(getASCIIString(data, startIndex + 8, 2), 10); - var min = parseInt(getASCIIString(data, startIndex + 10, 2), 10); - var sec = parseInt(getASCIIString(data, startIndex + 12, 2), 10); - var hundrethsSec = parseInt(getASCIIString(data, startIndex + 14, 2), 10); - // Last is a time-zone offset, but JavaScript dates don't support time zones well. - return new Date(year, mon, day, hour, min, sec, hundrethsSec * 100); - } - /** - * @hidden - */ - function getShortFormDate(data, startIndex) { - var yearsSince1900 = data[startIndex]; - var month = data[startIndex + 1]; - var day = data[startIndex + 2]; - var hour = data[startIndex + 3]; - var minute = data[startIndex + 4]; - var second = data[startIndex + 5]; - // JavaScript's Date support isn't so great; ignore timezone. - // const offsetFromGMT = this._data[24]; - return new Date(yearsSince1900, month - 1, day, hour, minute, second); - } - /** - * @hidden - */ - function constructSystemUseEntry(bigData, i) { - var data = bigData.slice(i); - var sue = new SystemUseEntry(data); - switch (sue.signatureWord()) { - case 17221 /* CE */: - return new CEEntry(data); - case 20548 /* PD */: - return new PDEntry(data); - case 21328 /* SP */: - return new SPEntry(data); - case 21332 /* ST */: - return new STEntry(data); - case 17746 /* ER */: - return new EREntry(data); - case 17747 /* ES */: - return new ESEntry(data); - case 20568 /* PX */: - return new PXEntry(data); - case 20558 /* PN */: - return new PNEntry(data); - case 21324 /* SL */: - return new SLEntry(data); - case 20045 /* NM */: - return new NMEntry(data); - case 17228 /* CL */: - return new CLEntry(data); - case 20556 /* PL */: - return new PLEntry(data); - case 21061 /* RE */: - return new REEntry(data); - case 21574 /* TF */: - return new TFEntry(data); - case 21318 /* SF */: - return new SFEntry(data); - case 21074 /* RR */: - return new RREntry(data); - default: - return sue; - } - } - /** - * @hidden - */ - function constructSystemUseEntries(data, i, len, isoData) { - // If the remaining allocated space following the last recorded System Use Entry in a System - // Use field or Continuation Area is less than four bytes long, it cannot contain a System - // Use Entry and shall be ignored - len = len - 4; - var entries = new Array(); - while (i < len) { - var entry = constructSystemUseEntry(data, i); - var length = entry.length(); - if (length === 0) { - // Invalid SU section; prevent infinite loop. - return entries; - } - i += length; - if (entry instanceof STEntry) { - // ST indicates the end of entries. - break; - } - if (entry instanceof CEEntry) { - entries = entries.concat(entry.getEntries(isoData)); - } - else { - entries.push(entry); - } - } - return entries; - } - /** - * @hidden - */ - var VolumeDescriptor = function VolumeDescriptor(data) { - this._data = data; - }; - VolumeDescriptor.prototype.type = function type () { - return this._data[0]; - }; - VolumeDescriptor.prototype.standardIdentifier = function standardIdentifier () { - return getASCIIString(this._data, 1, 5); - }; - VolumeDescriptor.prototype.version = function version () { - return this._data[6]; - }; - VolumeDescriptor.prototype.data = function data () { - return this._data.slice(7, 2048); - }; - /** - * @hidden - */ - var PrimaryOrSupplementaryVolumeDescriptor = (function (VolumeDescriptor) { - function PrimaryOrSupplementaryVolumeDescriptor(data) { - VolumeDescriptor.call(this, data); - this._root = null; - } - - if ( VolumeDescriptor ) PrimaryOrSupplementaryVolumeDescriptor.__proto__ = VolumeDescriptor; - PrimaryOrSupplementaryVolumeDescriptor.prototype = Object.create( VolumeDescriptor && VolumeDescriptor.prototype ); - PrimaryOrSupplementaryVolumeDescriptor.prototype.constructor = PrimaryOrSupplementaryVolumeDescriptor; - PrimaryOrSupplementaryVolumeDescriptor.prototype.systemIdentifier = function systemIdentifier () { - return this._getString32(8); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeIdentifier = function volumeIdentifier () { - return this._getString32(40); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeSpaceSize = function volumeSpaceSize () { - return this._data.readUInt32LE(80); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeSetSize = function volumeSetSize () { - return this._data.readUInt16LE(120); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeSequenceNumber = function volumeSequenceNumber () { - return this._data.readUInt16LE(124); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.logicalBlockSize = function logicalBlockSize () { - return this._data.readUInt16LE(128); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.pathTableSize = function pathTableSize () { - return this._data.readUInt32LE(132); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.locationOfTypeLPathTable = function locationOfTypeLPathTable () { - return this._data.readUInt32LE(140); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.locationOfOptionalTypeLPathTable = function locationOfOptionalTypeLPathTable () { - return this._data.readUInt32LE(144); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.locationOfTypeMPathTable = function locationOfTypeMPathTable () { - return this._data.readUInt32BE(148); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.locationOfOptionalTypeMPathTable = function locationOfOptionalTypeMPathTable () { - return this._data.readUInt32BE(152); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.rootDirectoryEntry = function rootDirectoryEntry (isoData) { - if (this._root === null) { - this._root = this._constructRootDirectoryRecord(this._data.slice(156)); - this._root.rootCheckForRockRidge(isoData); - } - return this._root; - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeSetIdentifier = function volumeSetIdentifier () { - return this._getString(190, 128); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.publisherIdentifier = function publisherIdentifier () { - return this._getString(318, 128); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.dataPreparerIdentifier = function dataPreparerIdentifier () { - return this._getString(446, 128); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.applicationIdentifier = function applicationIdentifier () { - return this._getString(574, 128); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.copyrightFileIdentifier = function copyrightFileIdentifier () { - return this._getString(702, 38); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.abstractFileIdentifier = function abstractFileIdentifier () { - return this._getString(740, 36); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.bibliographicFileIdentifier = function bibliographicFileIdentifier () { - return this._getString(776, 37); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeCreationDate = function volumeCreationDate () { - return getDate(this._data, 813); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeModificationDate = function volumeModificationDate () { - return getDate(this._data, 830); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeExpirationDate = function volumeExpirationDate () { - return getDate(this._data, 847); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.volumeEffectiveDate = function volumeEffectiveDate () { - return getDate(this._data, 864); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.fileStructureVersion = function fileStructureVersion () { - return this._data[881]; - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.applicationUsed = function applicationUsed () { - return this._data.slice(883, 883 + 512); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype.reserved = function reserved () { - return this._data.slice(1395, 1395 + 653); - }; - PrimaryOrSupplementaryVolumeDescriptor.prototype._getString32 = function _getString32 (idx) { - return this._getString(idx, 32); - }; - - return PrimaryOrSupplementaryVolumeDescriptor; - }(VolumeDescriptor)); - /** - * @hidden - */ - var PrimaryVolumeDescriptor = (function (PrimaryOrSupplementaryVolumeDescriptor) { - function PrimaryVolumeDescriptor(data) { - PrimaryOrSupplementaryVolumeDescriptor.call(this, data); - if (this.type() !== 1 /* PrimaryVolumeDescriptor */) { - throw new ApiError(ErrorCode.EIO, "Invalid primary volume descriptor."); - } - } - - if ( PrimaryOrSupplementaryVolumeDescriptor ) PrimaryVolumeDescriptor.__proto__ = PrimaryOrSupplementaryVolumeDescriptor; - PrimaryVolumeDescriptor.prototype = Object.create( PrimaryOrSupplementaryVolumeDescriptor && PrimaryOrSupplementaryVolumeDescriptor.prototype ); - PrimaryVolumeDescriptor.prototype.constructor = PrimaryVolumeDescriptor; - PrimaryVolumeDescriptor.prototype.name = function name () { - return "ISO9660"; - }; - PrimaryVolumeDescriptor.prototype._constructRootDirectoryRecord = function _constructRootDirectoryRecord (data) { - return new ISODirectoryRecord(data, -1); - }; - PrimaryVolumeDescriptor.prototype._getString = function _getString (idx, len) { - return this._getString(idx, len); - }; - - return PrimaryVolumeDescriptor; - }(PrimaryOrSupplementaryVolumeDescriptor)); - /** - * @hidden - */ - var SupplementaryVolumeDescriptor = (function (PrimaryOrSupplementaryVolumeDescriptor) { - function SupplementaryVolumeDescriptor(data) { - PrimaryOrSupplementaryVolumeDescriptor.call(this, data); - if (this.type() !== 2 /* SupplementaryVolumeDescriptor */) { - throw new ApiError(ErrorCode.EIO, "Invalid supplementary volume descriptor."); - } - var escapeSequence = this.escapeSequence(); - var third = escapeSequence[2]; - // Third character identifies what 'level' of the UCS specification to follow. - // We ignore it. - if (escapeSequence[0] !== 0x25 || escapeSequence[1] !== 0x2F || - (third !== 0x40 && third !== 0x43 && third !== 0x45)) { - throw new ApiError(ErrorCode.EIO, ("Unrecognized escape sequence for SupplementaryVolumeDescriptor: " + (escapeSequence.toString()))); - } - } - - if ( PrimaryOrSupplementaryVolumeDescriptor ) SupplementaryVolumeDescriptor.__proto__ = PrimaryOrSupplementaryVolumeDescriptor; - SupplementaryVolumeDescriptor.prototype = Object.create( PrimaryOrSupplementaryVolumeDescriptor && PrimaryOrSupplementaryVolumeDescriptor.prototype ); - SupplementaryVolumeDescriptor.prototype.constructor = SupplementaryVolumeDescriptor; - SupplementaryVolumeDescriptor.prototype.name = function name () { - return "Joliet"; - }; - SupplementaryVolumeDescriptor.prototype.escapeSequence = function escapeSequence () { - return this._data.slice(88, 120); - }; - SupplementaryVolumeDescriptor.prototype._constructRootDirectoryRecord = function _constructRootDirectoryRecord (data) { - return new JolietDirectoryRecord(data, -1); - }; - SupplementaryVolumeDescriptor.prototype._getString = function _getString (idx, len) { - return getJolietString(this._data, idx, len); - }; - - return SupplementaryVolumeDescriptor; - }(PrimaryOrSupplementaryVolumeDescriptor)); - /** - * @hidden - */ - var DirectoryRecord = function DirectoryRecord(data, rockRidgeOffset) { - this._suEntries = null; - this._fileOrDir = null; - this._data = data; - this._rockRidgeOffset = rockRidgeOffset; - }; - DirectoryRecord.prototype.hasRockRidge = function hasRockRidge () { - return this._rockRidgeOffset > -1; - }; - DirectoryRecord.prototype.getRockRidgeOffset = function getRockRidgeOffset () { - return this._rockRidgeOffset; - }; - /** - * !!ONLY VALID ON ROOT NODE!! - * Checks if Rock Ridge is enabled, and sets the offset. - */ - DirectoryRecord.prototype.rootCheckForRockRidge = function rootCheckForRockRidge (isoData) { - var dir = this.getDirectory(isoData); - this._rockRidgeOffset = dir.getDotEntry(isoData)._getRockRidgeOffset(isoData); - if (this._rockRidgeOffset > -1) { - // Wipe out directory. Start over with RR knowledge. - this._fileOrDir = null; - } - }; - DirectoryRecord.prototype.length = function length () { - return this._data[0]; - }; - DirectoryRecord.prototype.extendedAttributeRecordLength = function extendedAttributeRecordLength () { - return this._data[1]; - }; - DirectoryRecord.prototype.lba = function lba () { - return this._data.readUInt32LE(2) * 2048; - }; - DirectoryRecord.prototype.dataLength = function dataLength () { - return this._data.readUInt32LE(10); - }; - DirectoryRecord.prototype.recordingDate = function recordingDate () { - return getShortFormDate(this._data, 18); - }; - DirectoryRecord.prototype.fileFlags = function fileFlags () { - return this._data[25]; - }; - DirectoryRecord.prototype.fileUnitSize = function fileUnitSize () { - return this._data[26]; - }; - DirectoryRecord.prototype.interleaveGapSize = function interleaveGapSize () { - return this._data[27]; - }; - DirectoryRecord.prototype.volumeSequenceNumber = function volumeSequenceNumber () { - return this._data.readUInt16LE(28); - }; - DirectoryRecord.prototype.identifier = function identifier () { - return this._getString(33, this._data[32]); - }; - DirectoryRecord.prototype.fileName = function fileName (isoData) { - if (this.hasRockRidge()) { - var fn = this._rockRidgeFilename(isoData); - if (fn !== null) { - return fn; - } - } - var ident = this.identifier(); - if (this.isDirectory(isoData)) { - return ident; - } - // Files: - // - MUST have 0x2E (.) separating the name from the extension - // - MUST have 0x3B (;) separating the file name and extension from the version - // Gets expanded to two-byte char in Unicode directory records. - var versionSeparator = ident.indexOf(';'); - if (versionSeparator === -1) { - // Some Joliet filenames lack the version separator, despite the standard - // specifying that it should be there. - return ident; - } - else if (ident[versionSeparator - 1] === '.') { - // Empty extension. Do not include '.' in the filename. - return ident.slice(0, versionSeparator - 1); - } - else { - // Include up to version separator. - return ident.slice(0, versionSeparator); - } - }; - DirectoryRecord.prototype.isDirectory = function isDirectory (isoData) { - var rv = !!(this.fileFlags() & 2 /* Directory */); - // If it lacks the Directory flag, it may still be a directory if we've exceeded the directory - // depth limit. Rock Ridge marks these as files and adds a special attribute. - if (!rv && this.hasRockRidge()) { - rv = this.getSUEntries(isoData).filter(function (e) { return e instanceof CLEntry; }).length > 0; - } - return rv; - }; - DirectoryRecord.prototype.isSymlink = function isSymlink (isoData) { - return this.hasRockRidge() && this.getSUEntries(isoData).filter(function (e) { return e instanceof SLEntry; }).length > 0; - }; - DirectoryRecord.prototype.getSymlinkPath = function getSymlinkPath (isoData) { - var p = ""; - var entries = this.getSUEntries(isoData); - var getStr = this._getGetString(); - for (var i = 0, list = entries; i < list.length; i += 1) { - var entry = list[i]; - - if (entry instanceof SLEntry) { - var components = entry.componentRecords(); - for (var i$1 = 0, list$1 = components; i$1 < list$1.length; i$1 += 1) { - var component = list$1[i$1]; - - var flags = component.flags(); - if (flags & 2 /* CURRENT */) { - p += "./"; - } - else if (flags & 4 /* PARENT */) { - p += "../"; - } - else if (flags & 8 /* ROOT */) { - p += "/"; - } - else { - p += component.content(getStr); - if (!(flags & 1 /* CONTINUE */)) { - p += '/'; - } - } - } - if (!entry.continueFlag()) { - // We are done with this link. - break; - } - } - } - if (p.length > 1 && p[p.length - 1] === '/') { - // Trim trailing '/'. - return p.slice(0, p.length - 1); - } - else { - return p; - } - }; - DirectoryRecord.prototype.getFile = function getFile (isoData) { - if (this.isDirectory(isoData)) { - throw new Error("Tried to get a File from a directory."); - } - if (this._fileOrDir === null) { - this._fileOrDir = isoData.slice(this.lba(), this.lba() + this.dataLength()); - } - return this._fileOrDir; - }; - DirectoryRecord.prototype.getDirectory = function getDirectory (isoData) { - if (!this.isDirectory(isoData)) { - throw new Error("Tried to get a Directory from a file."); - } - if (this._fileOrDir === null) { - this._fileOrDir = this._constructDirectory(isoData); - } - return this._fileOrDir; - }; - DirectoryRecord.prototype.getSUEntries = function getSUEntries (isoData) { - if (!this._suEntries) { - this._constructSUEntries(isoData); - } - return this._suEntries; - }; - DirectoryRecord.prototype._rockRidgeFilename = function _rockRidgeFilename (isoData) { - var nmEntries = this.getSUEntries(isoData).filter(function (e) { return e instanceof NMEntry; }); - if (nmEntries.length === 0 || nmEntries[0].flags() & (2 /* CURRENT */ | 4 /* PARENT */)) { - return null; - } - var str = ''; - var getString = this._getGetString(); - for (var i = 0, list = nmEntries; i < list.length; i += 1) { - var e = list[i]; - - str += e.name(getString); - if (!(e.flags() & 1 /* CONTINUE */)) { - break; - } - } - return str; - }; - DirectoryRecord.prototype._constructSUEntries = function _constructSUEntries (isoData) { - var i = 33 + this._data[32]; - if (i % 2 === 1) { - // Skip padding field. - i++; - } - i += this._rockRidgeOffset; - this._suEntries = constructSystemUseEntries(this._data, i, this.length(), isoData); - }; - /** - * !!ONLY VALID ON FIRST ENTRY OF ROOT DIRECTORY!! - * Returns -1 if rock ridge is not enabled. Otherwise, returns the offset - * at which system use fields begin. - */ - DirectoryRecord.prototype._getRockRidgeOffset = function _getRockRidgeOffset (isoData) { - // In the worst case, we get some garbage SU entries. - // Fudge offset to 0 before proceeding. - this._rockRidgeOffset = 0; - var suEntries = this.getSUEntries(isoData); - if (suEntries.length > 0) { - var spEntry = suEntries[0]; - if (spEntry instanceof SPEntry && spEntry.checkBytesPass()) { - // SUSP is in use. - for (var i = 1; i < suEntries.length; i++) { - var entry = suEntries[i]; - if (entry instanceof RREntry || (entry instanceof EREntry && entry.extensionIdentifier() === rockRidgeIdentifier)) { - // Rock Ridge is in use! - return spEntry.bytesSkipped(); - } - } - } - } - // Failed. - this._rockRidgeOffset = -1; - return -1; - }; - /** - * @hidden - */ - var ISODirectoryRecord = (function (DirectoryRecord) { - function ISODirectoryRecord(data, rockRidgeOffset) { - DirectoryRecord.call(this, data, rockRidgeOffset); - } - - if ( DirectoryRecord ) ISODirectoryRecord.__proto__ = DirectoryRecord; - ISODirectoryRecord.prototype = Object.create( DirectoryRecord && DirectoryRecord.prototype ); - ISODirectoryRecord.prototype.constructor = ISODirectoryRecord; - ISODirectoryRecord.prototype._getString = function _getString (i, len) { - return getASCIIString(this._data, i, len); - }; - ISODirectoryRecord.prototype._constructDirectory = function _constructDirectory (isoData) { - return new ISODirectory(this, isoData); - }; - ISODirectoryRecord.prototype._getGetString = function _getGetString () { - return getASCIIString; - }; - - return ISODirectoryRecord; - }(DirectoryRecord)); - /** - * @hidden - */ - var JolietDirectoryRecord = (function (DirectoryRecord) { - function JolietDirectoryRecord(data, rockRidgeOffset) { - DirectoryRecord.call(this, data, rockRidgeOffset); - } - - if ( DirectoryRecord ) JolietDirectoryRecord.__proto__ = DirectoryRecord; - JolietDirectoryRecord.prototype = Object.create( DirectoryRecord && DirectoryRecord.prototype ); - JolietDirectoryRecord.prototype.constructor = JolietDirectoryRecord; - JolietDirectoryRecord.prototype._getString = function _getString (i, len) { - return getJolietString(this._data, i, len); - }; - JolietDirectoryRecord.prototype._constructDirectory = function _constructDirectory (isoData) { - return new JolietDirectory(this, isoData); - }; - JolietDirectoryRecord.prototype._getGetString = function _getGetString () { - return getJolietString; - }; - - return JolietDirectoryRecord; - }(DirectoryRecord)); - /** - * @hidden - */ - var SystemUseEntry = function SystemUseEntry(data) { - this._data = data; - }; - SystemUseEntry.prototype.signatureWord = function signatureWord () { - return this._data.readUInt16BE(0); - }; - SystemUseEntry.prototype.signatureWordString = function signatureWordString () { - return getASCIIString(this._data, 0, 2); - }; - SystemUseEntry.prototype.length = function length () { - return this._data[2]; - }; - SystemUseEntry.prototype.suVersion = function suVersion () { - return this._data[3]; - }; - /** - * Continuation entry. - * @hidden - */ - var CEEntry = (function (SystemUseEntry) { - function CEEntry(data) { - SystemUseEntry.call(this, data); - this._entries = null; - } - - if ( SystemUseEntry ) CEEntry.__proto__ = SystemUseEntry; - CEEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - CEEntry.prototype.constructor = CEEntry; - /** - * Logical block address of the continuation area. - */ - CEEntry.prototype.continuationLba = function continuationLba () { - return this._data.readUInt32LE(4); - }; - /** - * Offset into the logical block. - */ - CEEntry.prototype.continuationLbaOffset = function continuationLbaOffset () { - return this._data.readUInt32LE(12); - }; - /** - * Length of the continuation area. - */ - CEEntry.prototype.continuationLength = function continuationLength () { - return this._data.readUInt32LE(20); - }; - CEEntry.prototype.getEntries = function getEntries (isoData) { - if (!this._entries) { - var start = this.continuationLba() * 2048 + this.continuationLbaOffset(); - this._entries = constructSystemUseEntries(isoData, start, this.continuationLength(), isoData); - } - return this._entries; - }; - - return CEEntry; - }(SystemUseEntry)); - /** - * Padding entry. - * @hidden - */ - var PDEntry = (function (SystemUseEntry) { - function PDEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) PDEntry.__proto__ = SystemUseEntry; - PDEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - PDEntry.prototype.constructor = PDEntry; - - return PDEntry; - }(SystemUseEntry)); - /** - * Identifies that SUSP is in-use. - * @hidden - */ - var SPEntry = (function (SystemUseEntry) { - function SPEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) SPEntry.__proto__ = SystemUseEntry; - SPEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - SPEntry.prototype.constructor = SPEntry; - SPEntry.prototype.checkBytesPass = function checkBytesPass () { - return this._data[4] === 0xBE && this._data[5] === 0xEF; - }; - SPEntry.prototype.bytesSkipped = function bytesSkipped () { - return this._data[6]; - }; - - return SPEntry; - }(SystemUseEntry)); - /** - * Identifies the end of the SUSP entries. - * @hidden - */ - var STEntry = (function (SystemUseEntry) { - function STEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) STEntry.__proto__ = SystemUseEntry; - STEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - STEntry.prototype.constructor = STEntry; - - return STEntry; - }(SystemUseEntry)); - /** - * Specifies system-specific extensions to SUSP. - * @hidden - */ - var EREntry = (function (SystemUseEntry) { - function EREntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) EREntry.__proto__ = SystemUseEntry; - EREntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - EREntry.prototype.constructor = EREntry; - EREntry.prototype.identifierLength = function identifierLength () { - return this._data[4]; - }; - EREntry.prototype.descriptorLength = function descriptorLength () { - return this._data[5]; - }; - EREntry.prototype.sourceLength = function sourceLength () { - return this._data[6]; - }; - EREntry.prototype.extensionVersion = function extensionVersion () { - return this._data[7]; - }; - EREntry.prototype.extensionIdentifier = function extensionIdentifier () { - return getASCIIString(this._data, 8, this.identifierLength()); - }; - EREntry.prototype.extensionDescriptor = function extensionDescriptor () { - return getASCIIString(this._data, 8 + this.identifierLength(), this.descriptorLength()); - }; - EREntry.prototype.extensionSource = function extensionSource () { - return getASCIIString(this._data, 8 + this.identifierLength() + this.descriptorLength(), this.sourceLength()); - }; - - return EREntry; - }(SystemUseEntry)); - /** - * @hidden - */ - var ESEntry = (function (SystemUseEntry) { - function ESEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) ESEntry.__proto__ = SystemUseEntry; - ESEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - ESEntry.prototype.constructor = ESEntry; - ESEntry.prototype.extensionSequence = function extensionSequence () { - return this._data[4]; - }; - - return ESEntry; - }(SystemUseEntry)); - /** - * RockRidge: Marks that RockRidge is in use [deprecated] - * @hidden - */ - var RREntry = (function (SystemUseEntry) { - function RREntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) RREntry.__proto__ = SystemUseEntry; - RREntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - RREntry.prototype.constructor = RREntry; - - return RREntry; - }(SystemUseEntry)); - /** - * RockRidge: Records POSIX file attributes. - * @hidden - */ - var PXEntry = (function (SystemUseEntry) { - function PXEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) PXEntry.__proto__ = SystemUseEntry; - PXEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - PXEntry.prototype.constructor = PXEntry; - PXEntry.prototype.mode = function mode () { - return this._data.readUInt32LE(4); - }; - PXEntry.prototype.fileLinks = function fileLinks () { - return this._data.readUInt32LE(12); - }; - PXEntry.prototype.uid = function uid () { - return this._data.readUInt32LE(20); - }; - PXEntry.prototype.gid = function gid () { - return this._data.readUInt32LE(28); - }; - PXEntry.prototype.inode = function inode () { - return this._data.readUInt32LE(36); - }; - - return PXEntry; - }(SystemUseEntry)); - /** - * RockRidge: Records POSIX device number. - * @hidden - */ - var PNEntry = (function (SystemUseEntry) { - function PNEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) PNEntry.__proto__ = SystemUseEntry; - PNEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - PNEntry.prototype.constructor = PNEntry; - PNEntry.prototype.devTHigh = function devTHigh () { - return this._data.readUInt32LE(4); - }; - PNEntry.prototype.devTLow = function devTLow () { - return this._data.readUInt32LE(12); - }; - - return PNEntry; - }(SystemUseEntry)); - /** - * RockRidge: Records symbolic link - * @hidden - */ - var SLEntry = (function (SystemUseEntry) { - function SLEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) SLEntry.__proto__ = SystemUseEntry; - SLEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - SLEntry.prototype.constructor = SLEntry; - SLEntry.prototype.flags = function flags () { - return this._data[4]; - }; - SLEntry.prototype.continueFlag = function continueFlag () { - return this.flags() & 0x1; - }; - SLEntry.prototype.componentRecords = function componentRecords () { - var this$1 = this; - - var records = new Array(); - var i = 5; - while (i < this.length()) { - var record = new SLComponentRecord(this$1._data.slice(i)); - records.push(record); - i += record.length(); - } - return records; - }; - - return SLEntry; - }(SystemUseEntry)); - /** - * @hidden - */ - var SLComponentRecord = function SLComponentRecord(data) { - this._data = data; - }; - SLComponentRecord.prototype.flags = function flags () { - return this._data[0]; - }; - SLComponentRecord.prototype.length = function length () { - return 2 + this.componentLength(); - }; - SLComponentRecord.prototype.componentLength = function componentLength () { - return this._data[1]; - }; - SLComponentRecord.prototype.content = function content (getString) { - return getString(this._data, 2, this.componentLength()); - }; - /** - * RockRidge: Records alternate file name - * @hidden - */ - var NMEntry = (function (SystemUseEntry) { - function NMEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) NMEntry.__proto__ = SystemUseEntry; - NMEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - NMEntry.prototype.constructor = NMEntry; - NMEntry.prototype.flags = function flags () { - return this._data[4]; - }; - NMEntry.prototype.name = function name (getString) { - return getString(this._data, 5, this.length() - 5); - }; - - return NMEntry; - }(SystemUseEntry)); - /** - * RockRidge: Records child link - * @hidden - */ - var CLEntry = (function (SystemUseEntry) { - function CLEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) CLEntry.__proto__ = SystemUseEntry; - CLEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - CLEntry.prototype.constructor = CLEntry; - CLEntry.prototype.childDirectoryLba = function childDirectoryLba () { - return this._data.readUInt32LE(4); - }; - - return CLEntry; - }(SystemUseEntry)); - /** - * RockRidge: Records parent link. - * @hidden - */ - var PLEntry = (function (SystemUseEntry) { - function PLEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) PLEntry.__proto__ = SystemUseEntry; - PLEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - PLEntry.prototype.constructor = PLEntry; - PLEntry.prototype.parentDirectoryLba = function parentDirectoryLba () { - return this._data.readUInt32LE(4); - }; - - return PLEntry; - }(SystemUseEntry)); - /** - * RockRidge: Records relocated directory. - * @hidden - */ - var REEntry = (function (SystemUseEntry) { - function REEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) REEntry.__proto__ = SystemUseEntry; - REEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - REEntry.prototype.constructor = REEntry; - - return REEntry; - }(SystemUseEntry)); - /** - * RockRidge: Records file timestamps - * @hidden - */ - var TFEntry = (function (SystemUseEntry) { - function TFEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) TFEntry.__proto__ = SystemUseEntry; - TFEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - TFEntry.prototype.constructor = TFEntry; - TFEntry.prototype.flags = function flags () { - return this._data[4]; - }; - TFEntry.prototype.creation = function creation () { - if (this.flags() & 1 /* CREATION */) { - if (this._longFormDates()) { - return getDate(this._data, 5); - } - else { - return getShortFormDate(this._data, 5); - } - } - else { - return null; - } - }; - TFEntry.prototype.modify = function modify () { - if (this.flags() & 2 /* MODIFY */) { - var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0; - if (this._longFormDates) { - return getDate(this._data, 5 + (previousDates * 17)); - } - else { - return getShortFormDate(this._data, 5 + (previousDates * 7)); - } - } - else { - return null; - } - }; - TFEntry.prototype.access = function access () { - if (this.flags() & 4 /* ACCESS */) { - var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0; - previousDates += (this.flags() & 2 /* MODIFY */) ? 1 : 0; - if (this._longFormDates) { - return getDate(this._data, 5 + (previousDates * 17)); - } - else { - return getShortFormDate(this._data, 5 + (previousDates * 7)); - } - } - else { - return null; - } - }; - TFEntry.prototype.backup = function backup () { - if (this.flags() & 16 /* BACKUP */) { - var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0; - previousDates += (this.flags() & 2 /* MODIFY */) ? 1 : 0; - previousDates += (this.flags() & 4 /* ACCESS */) ? 1 : 0; - if (this._longFormDates) { - return getDate(this._data, 5 + (previousDates * 17)); - } - else { - return getShortFormDate(this._data, 5 + (previousDates * 7)); - } - } - else { - return null; - } - }; - TFEntry.prototype.expiration = function expiration () { - if (this.flags() & 32 /* EXPIRATION */) { - var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0; - previousDates += (this.flags() & 2 /* MODIFY */) ? 1 : 0; - previousDates += (this.flags() & 4 /* ACCESS */) ? 1 : 0; - previousDates += (this.flags() & 16 /* BACKUP */) ? 1 : 0; - if (this._longFormDates) { - return getDate(this._data, 5 + (previousDates * 17)); - } - else { - return getShortFormDate(this._data, 5 + (previousDates * 7)); - } - } - else { - return null; - } - }; - TFEntry.prototype.effective = function effective () { - if (this.flags() & 64 /* EFFECTIVE */) { - var previousDates = (this.flags() & 1 /* CREATION */) ? 1 : 0; - previousDates += (this.flags() & 2 /* MODIFY */) ? 1 : 0; - previousDates += (this.flags() & 4 /* ACCESS */) ? 1 : 0; - previousDates += (this.flags() & 16 /* BACKUP */) ? 1 : 0; - previousDates += (this.flags() & 32 /* EXPIRATION */) ? 1 : 0; - if (this._longFormDates) { - return getDate(this._data, 5 + (previousDates * 17)); - } - else { - return getShortFormDate(this._data, 5 + (previousDates * 7)); - } - } - else { - return null; - } - }; - TFEntry.prototype._longFormDates = function _longFormDates () { - return !!(this.flags() && 128 /* LONG_FORM */); - }; - - return TFEntry; - }(SystemUseEntry)); - /** - * RockRidge: File data in sparse format. - * @hidden - */ - var SFEntry = (function (SystemUseEntry) { - function SFEntry(data) { - SystemUseEntry.call(this, data); - } - - if ( SystemUseEntry ) SFEntry.__proto__ = SystemUseEntry; - SFEntry.prototype = Object.create( SystemUseEntry && SystemUseEntry.prototype ); - SFEntry.prototype.constructor = SFEntry; - SFEntry.prototype.virtualSizeHigh = function virtualSizeHigh () { - return this._data.readUInt32LE(4); - }; - SFEntry.prototype.virtualSizeLow = function virtualSizeLow () { - return this._data.readUInt32LE(12); - }; - SFEntry.prototype.tableDepth = function tableDepth () { - return this._data[20]; - }; - - return SFEntry; - }(SystemUseEntry)); - /** - * @hidden - */ - var Directory = function Directory(record, isoData) { - var this$1 = this; - - this._fileList = []; - this._fileMap = {}; - this._record = record; - var i = record.lba(); - var iLimit = i + record.dataLength(); - if (!(record.fileFlags() & 2 /* Directory */)) { - // Must have a CL entry. - var cl = record.getSUEntries(isoData).filter(function (e) { return e instanceof CLEntry; })[0]; - i = cl.childDirectoryLba() * 2048; - iLimit = Infinity; - } - while (i < iLimit) { - var len = isoData[i]; - // Zero-padding between sectors. - // TODO: Could optimize this to seek to nearest-sector upon - // seeing a 0. - if (len === 0) { - i++; - continue; - } - var r = this$1._constructDirectoryRecord(isoData.slice(i)); - var fname = r.fileName(isoData); - // Skip '.' and '..' entries. - if (fname !== '\u0000' && fname !== '\u0001') { - // Skip relocated entries. - if (!r.hasRockRidge() || r.getSUEntries(isoData).filter(function (e) { return e instanceof REEntry; }).length === 0) { - this$1._fileMap[fname] = r; - this$1._fileList.push(fname); - } - } - else if (iLimit === Infinity) { - // First entry contains needed data. - iLimit = i + r.dataLength(); - } - i += r.length(); - } - }; - /** - * Get the record with the given name. - * Returns undefined if not present. - */ - Directory.prototype.getRecord = function getRecord (name) { - return this._fileMap[name]; - }; - Directory.prototype.getFileList = function getFileList () { - return this._fileList; - }; - Directory.prototype.getDotEntry = function getDotEntry (isoData) { - return this._constructDirectoryRecord(isoData.slice(this._record.lba())); - }; - /** - * @hidden - */ - var ISODirectory = (function (Directory) { - function ISODirectory(record, isoData) { - Directory.call(this, record, isoData); - } - - if ( Directory ) ISODirectory.__proto__ = Directory; - ISODirectory.prototype = Object.create( Directory && Directory.prototype ); - ISODirectory.prototype.constructor = ISODirectory; - ISODirectory.prototype._constructDirectoryRecord = function _constructDirectoryRecord (data) { - return new ISODirectoryRecord(data, this._record.getRockRidgeOffset()); - }; - - return ISODirectory; - }(Directory)); - /** - * @hidden - */ - var JolietDirectory = (function (Directory) { - function JolietDirectory(record, isoData) { - Directory.call(this, record, isoData); - } - - if ( Directory ) JolietDirectory.__proto__ = Directory; - JolietDirectory.prototype = Object.create( Directory && Directory.prototype ); - JolietDirectory.prototype.constructor = JolietDirectory; - JolietDirectory.prototype._constructDirectoryRecord = function _constructDirectoryRecord (data) { - return new JolietDirectoryRecord(data, this._record.getRockRidgeOffset()); - }; - - return JolietDirectory; - }(Directory)); - /** - * Mounts an ISO file as a read-only file system. - * - * Supports: - * * Vanilla ISO9660 ISOs - * * Microsoft Joliet and Rock Ridge extensions to the ISO9660 standard - */ - var IsoFS = (function (SynchronousFileSystem$$1) { - function IsoFS(data, name, deprecateMsg) { - var this$1 = this; - if ( name === void 0 ) name = ""; - if ( deprecateMsg === void 0 ) deprecateMsg = true; - - SynchronousFileSystem$$1.call(this); - this._data = data; - deprecationMessage(deprecateMsg, IsoFS.Name, { data: "ISO data as a Buffer", name: name }); - // Skip first 16 sectors. - var vdTerminatorFound = false; - var i = 16 * 2048; - var candidateVDs = new Array(); - while (!vdTerminatorFound) { - var slice = data.slice(i); - var vd = new VolumeDescriptor(slice); - switch (vd.type()) { - case 1 /* PrimaryVolumeDescriptor */: - candidateVDs.push(new PrimaryVolumeDescriptor(slice)); - break; - case 2 /* SupplementaryVolumeDescriptor */: - candidateVDs.push(new SupplementaryVolumeDescriptor(slice)); - break; - case 255 /* VolumeDescriptorSetTerminator */: - vdTerminatorFound = true; - break; - } - i += 2048; - } - if (candidateVDs.length === 0) { - throw new ApiError(ErrorCode.EIO, "Unable to find a suitable volume descriptor."); - } - candidateVDs.forEach(function (v) { - // Take an SVD over a PVD. - if (!this$1._pvd || this$1._pvd.type() !== 2 /* SupplementaryVolumeDescriptor */) { - this$1._pvd = v; - } - }); - this._root = this._pvd.rootDirectoryEntry(data); - this._name = name; - } - - if ( SynchronousFileSystem$$1 ) IsoFS.__proto__ = SynchronousFileSystem$$1; - IsoFS.prototype = Object.create( SynchronousFileSystem$$1 && SynchronousFileSystem$$1.prototype ); - IsoFS.prototype.constructor = IsoFS; - /** - * Creates an IsoFS instance with the given options. - */ - IsoFS.Create = function Create (opts, cb) { - var fs; - var e; - try { - fs = new IsoFS(opts.data, opts.name, false); - } - catch (e) { - e = e; - } - finally { - cb(e, fs); - } - }; - IsoFS.isAvailable = function isAvailable () { - return true; - }; - IsoFS.prototype.getName = function getName () { - var name = "IsoFS" + (this._name) + (this._pvd ? ("-" + (this._pvd.name())) : ''); - if (this._root && this._root.hasRockRidge()) { - name += "-RockRidge"; - } - return name; - }; - IsoFS.prototype.diskSpace = function diskSpace (path$$1, cb) { - // Read-only file system. - cb(this._data.length, 0); - }; - IsoFS.prototype.isReadOnly = function isReadOnly () { - return true; - }; - IsoFS.prototype.supportsLinks = function supportsLinks () { - return false; - }; - IsoFS.prototype.supportsProps = function supportsProps () { - return false; - }; - IsoFS.prototype.supportsSynch = function supportsSynch () { - return true; - }; - IsoFS.prototype.statSync = function statSync (p, isLstat) { - var record = this._getDirectoryRecord(p); - if (record === null) { - throw ApiError.ENOENT(p); - } - return this._getStats(p, record); - }; - IsoFS.prototype.openSync = function openSync (p, flags, mode) { - // INVARIANT: Cannot write to RO file systems. - if (flags.isWriteable()) { - throw new ApiError(ErrorCode.EPERM, p); - } - // Check if the path exists, and is a file. - var record = this._getDirectoryRecord(p); - if (!record) { - throw ApiError.ENOENT(p); - } - else if (record.isSymlink(this._data)) { - return this.openSync(path.resolve(p, record.getSymlinkPath(this._data)), flags, mode); - } - else if (!record.isDirectory(this._data)) { - var data = record.getFile(this._data); - var stats = this._getStats(p, record); - switch (flags.pathExistsAction()) { - case ActionType.THROW_EXCEPTION: - case ActionType.TRUNCATE_FILE: - throw ApiError.EEXIST(p); - case ActionType.NOP: - return new NoSyncFile(this, p, flags, stats, data); - default: - throw new ApiError(ErrorCode.EINVAL, 'Invalid FileMode object.'); - } - } - else { - throw ApiError.EISDIR(p); - } - }; - IsoFS.prototype.readdirSync = function readdirSync (path$$1) { - // Check if it exists. - var record = this._getDirectoryRecord(path$$1); - if (!record) { - throw ApiError.ENOENT(path$$1); - } - else if (record.isDirectory(this._data)) { - return record.getDirectory(this._data).getFileList().slice(0); - } - else { - throw ApiError.ENOTDIR(path$$1); - } - }; - /** - * Specially-optimized readfile. - */ - IsoFS.prototype.readFileSync = function readFileSync (fname, encoding, flag) { - // Get file. - var fd = this.openSync(fname, flag, 0x1a4); - try { - var fdCast = fd; - var fdBuff = fdCast.getBuffer(); - if (encoding === null) { - return copyingSlice(fdBuff); - } - return fdBuff.toString(encoding); - } - finally { - fd.closeSync(); - } - }; - IsoFS.prototype._getDirectoryRecord = function _getDirectoryRecord (path$$1) { - var this$1 = this; - - // Special case. - if (path$$1 === '/') { - return this._root; - } - var components = path$$1.split('/').slice(1); - var dir = this._root; - for (var i = 0, list = components; i < list.length; i += 1) { - var component = list[i]; - - if (dir.isDirectory(this$1._data)) { - dir = dir.getDirectory(this$1._data).getRecord(component); - if (!dir) { - return null; - } - } - else { - return null; - } - } - return dir; - }; - IsoFS.prototype._getStats = function _getStats (p, record) { - if (record.isSymlink(this._data)) { - var newP = path.resolve(p, record.getSymlinkPath(this._data)); - var dirRec = this._getDirectoryRecord(newP); - if (!dirRec) { - return null; - } - return this._getStats(newP, dirRec); - } - else { - var len = record.dataLength(); - var mode = 0x16D; - var date = record.recordingDate(); - var atime = date; - var mtime = date; - var ctime = date; - if (record.hasRockRidge()) { - var entries = record.getSUEntries(this._data); - for (var i = 0, list = entries; i < list.length; i += 1) { - var entry = list[i]; - - if (entry instanceof PXEntry) { - mode = entry.mode(); - } - else if (entry instanceof TFEntry) { - var flags = entry.flags(); - if (flags & 4 /* ACCESS */) { - atime = entry.access(); - } - if (flags & 2 /* MODIFY */) { - mtime = entry.modify(); - } - if (flags & 1 /* CREATION */) { - ctime = entry.creation(); - } - } - } - } - // Mask out writeable flags. This is a RO file system. - mode = mode & 0x16D; - return new Stats(record.isDirectory(this._data) ? FileType.DIRECTORY : FileType.FILE, len, mode, atime, mtime, ctime); - } - }; - - return IsoFS; - }(SynchronousFileSystem)); - - IsoFS.Name = "IsoFS"; - IsoFS.Options = { - data: { - type: "object", - description: "The ISO file in a buffer", - validator: bufferValidator - } - }; - - // Monkey-patch `Create` functions to check options before file system initialization. - [AsyncMirror, DropboxFileSystem, EmscriptenFileSystem, FolderAdapter, HTML5FS, InMemoryFileSystem, IndexedDBFileSystem, IsoFS, LocalStorageFileSystem, MountableFileSystem, OverlayFS, WorkerFS, XmlHttpRequest, ZipFS].forEach(function (fsType) { - var create = fsType.Create; - fsType.Create = function (opts, cb) { - var oneArg = typeof (opts) === "function"; - var normalizedCb = oneArg ? opts : cb; - var normalizedOpts = oneArg ? {} : opts; - function wrappedCb(e) { - if (e) { - normalizedCb(e); - } - else { - create.call(fsType, normalizedOpts, normalizedCb); - } - } - checkOptions(fsType, normalizedOpts, wrappedCb); - }; - }); - /** - * @hidden - */ - var Backends = { AsyncMirror: AsyncMirror, Dropbox: DropboxFileSystem, Emscripten: EmscriptenFileSystem, FolderAdapter: FolderAdapter, HTML5FS: HTML5FS, InMemory: InMemoryFileSystem, IndexedDB: IndexedDBFileSystem, IsoFS: IsoFS, LocalStorage: LocalStorageFileSystem, MountableFileSystem: MountableFileSystem, OverlayFS: OverlayFS, WorkerFS: WorkerFS, XmlHttpRequest: XmlHttpRequest, ZipFS: ZipFS }; - - /** - * BrowserFS's main module. This is exposed in the browser via the BrowserFS global. - * Due to limitations in typedoc, we document these functions in ./typedoc.ts. - */ - if (process['initializeTTYs']) { - process['initializeTTYs'](); - } - /** - * Installs BFSRequire as global `require`, a Node Buffer polyfill as the global `Buffer` variable, - * and a Node process polyfill as the global `process` variable. - */ - function install(obj) { - obj.Buffer = Buffer; - obj.process = process; - var oldRequire = obj.require ? obj.require : null; - // Monkey-patch require for Node-style code. - obj.require = function (arg) { - var rv = BFSRequire(arg); - if (!rv) { - return oldRequire.apply(null, Array.prototype.slice.call(arguments, 0)); - } - else { - return rv; - } - }; - } - /** - * @hidden - */ - function registerFileSystem(name, fs) { - Backends[name] = fs; - } - function BFSRequire(module) { - switch (module) { - case 'fs': - return _fsMock; - case 'path': - return path; - case 'buffer': - // The 'buffer' module has 'Buffer' as a property. - return buffer; - case 'process': - return process; - case 'bfs_utils': - return BFSUtils; - default: - return Backends[module]; - } - } - /** - * Initializes BrowserFS with the given root file system. - */ - function initialize(rootfs) { - return _fsMock.initialize(rootfs); - } - /** - * Creates a file system with the given configuration, and initializes BrowserFS with it. - * See the FileSystemConfiguration type for more info on the configuration object. - */ - function configure(config, cb) { - getFileSystem(config, function (e, fs) { - if (fs) { - initialize(fs); - cb(); - } - else { - cb(e); - } - }); - } - /** - * Retrieve a file system with the given configuration. - * @param config A FileSystemConfiguration object. See FileSystemConfiguration for details. - * @param cb Called when the file system is constructed, or when an error occurs. - */ - function getFileSystem(config, cb) { - var fsName = config['fs']; - if (!fsName) { - return cb(new ApiError(ErrorCode.EPERM, 'Missing "fs" property on configuration object.')); - } - var options = config['options']; - var waitCount = 0; - var called = false; - function finish() { - if (!called) { - called = true; - var fsc = Backends[fsName]; - if (!fsc) { - cb(new ApiError(ErrorCode.EPERM, ("File system " + fsName + " is not available in BrowserFS."))); - } - else { - fsc.Create(options, cb); - } - } - } - if (options !== null && typeof (options) === "object") { - var finishedIterating = false; - var props = Object.keys(options).filter(function (k) { return k !== 'fs'; }); - // Check recursively if other fields have 'fs' properties. - props.forEach(function (p) { - var d = options[p]; - if (d !== null && typeof (d) === "object" && d['fs']) { - waitCount++; - getFileSystem(d, function (e, fs) { - waitCount--; - if (e) { - if (called) { - return; - } - called = true; - cb(e); - } - else { - options[p] = fs; - if (waitCount === 0 && finishedIterating) { - finish(); - } - } - }); - } - }); - finishedIterating = true; - } - if (waitCount === 0) { - finish(); - } - } - - /** - * BrowserFS's main entry point. - * It installs all of the needed polyfills, and requires() the main module. - */ - // IE substr does not support negative indices - if ('ab'.substr(-1) !== 'b') { - String.prototype.substr = function (substr) { - return function (start, length) { - // did we get a negative start, calculate how much it is from the - // beginning of the string - if (start < 0) { - start = this.length + start; - } - // call the original function - return substr.call(this, start, length); - }; - }(String.prototype.substr); - } - // Polyfill for Uint8Array.prototype.slice. - // Safari and some other browsers do not define it. - if (typeof (ArrayBuffer) !== 'undefined' && typeof (Uint8Array) !== 'undefined') { - if (!Uint8Array.prototype['slice']) { - Uint8Array.prototype.slice = function (start, end) { - if ( start === void 0 ) start = 0; - if ( end === void 0 ) end = this.length; - - var self = this; - if (start < 0) { - start = this.length + start; - if (start < 0) { - start = 0; - } - } - if (end < 0) { - end = this.length + end; - if (end < 0) { - end = 0; - } - } - if (end < start) { - end = start; - } - return new Uint8Array(self.buffer, self.byteOffset + start, end - start); - }; - } - } - - exports.install = install; - exports.registerFileSystem = registerFileSystem; - exports.BFSRequire = BFSRequire; - exports.initialize = initialize; - exports.configure = configure; - exports.getFileSystem = getFileSystem; - exports.EmscriptenFS = BFSEmscriptenFS; - exports.FileSystem = Backends; - exports.Errors = api_error; - exports.setImmediate = setImmediate$3; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1), (function() { return this; }()), __webpack_require__(5)(module), __webpack_require__(6))) - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(2).Buffer; - - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer) {/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ - /* eslint-disable no-proto */ - - 'use strict' - - var base64 = __webpack_require__(3) - var ieee754 = __webpack_require__(4) - - exports.Buffer = Buffer - exports.SlowBuffer = SlowBuffer - exports.INSPECT_MAX_BYTES = 50 - - var K_MAX_LENGTH = 0x7fffffff - exports.kMaxLength = K_MAX_LENGTH - - /** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Print warning and recommend using `buffer` v4.x which has an Object - * implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * We report that the browser does not support typed arrays if the are not subclassable - * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` - * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support - * for __proto__ and has a buggy typed array implementation. - */ - Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() - - if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && - typeof console.error === 'function') { - console.error( - 'This browser lacks typed array (Uint8Array) support which is required by ' + - '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' - ) - } - - function typedArraySupport () { - // Can typed array instances can be augmented? - try { - var arr = new Uint8Array(1) - arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} - return arr.foo() === 42 - } catch (e) { - return false - } - } - - function createBuffer (length) { - if (length > K_MAX_LENGTH) { - throw new RangeError('Invalid typed array length') - } - // Return an augmented `Uint8Array` instance - var buf = new Uint8Array(length) - buf.__proto__ = Buffer.prototype - return buf - } - - /** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ - - function Buffer (arg, encodingOrOffset, length) { - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new Error( - 'If encoding is specified then the first argument must be a string' - ) - } - return allocUnsafe(arg) - } - return from(arg, encodingOrOffset, length) - } - - // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 - if (typeof Symbol !== 'undefined' && Symbol.species && - Buffer[Symbol.species] === Buffer) { - Object.defineProperty(Buffer, Symbol.species, { - value: null, - configurable: true, - enumerable: false, - writable: false - }) - } - - Buffer.poolSize = 8192 // not used by this implementation - - function from (value, encodingOrOffset, length) { - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number') - } - - if (isArrayBuffer(value)) { - return fromArrayBuffer(value, encodingOrOffset, length) - } - - if (typeof value === 'string') { - return fromString(value, encodingOrOffset) - } - - return fromObject(value) - } - - /** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ - Buffer.from = function (value, encodingOrOffset, length) { - return from(value, encodingOrOffset, length) - } - - // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: - // https://github.com/feross/buffer/pull/148 - Buffer.prototype.__proto__ = Uint8Array.prototype - Buffer.__proto__ = Uint8Array - - function assertSize (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be a number') - } else if (size < 0) { - throw new RangeError('"size" argument must not be negative') - } - } - - function alloc (size, fill, encoding) { - assertSize(size) - if (size <= 0) { - return createBuffer(size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpretted as a start offset. - return typeof encoding === 'string' - ? createBuffer(size).fill(fill, encoding) - : createBuffer(size).fill(fill) - } - return createBuffer(size) - } - - /** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ - Buffer.alloc = function (size, fill, encoding) { - return alloc(size, fill, encoding) - } - - function allocUnsafe (size) { - assertSize(size) - return createBuffer(size < 0 ? 0 : checked(size) | 0) - } - - /** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ - Buffer.allocUnsafe = function (size) { - return allocUnsafe(size) - } - /** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ - Buffer.allocUnsafeSlow = function (size) { - return allocUnsafe(size) - } - - function fromString (string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('"encoding" must be a valid string encoding') - } - - var length = byteLength(string, encoding) | 0 - var buf = createBuffer(length) - - var actual = buf.write(string, encoding) - - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - buf = buf.slice(0, actual) - } - - return buf - } - - function fromArrayLike (array) { - var length = array.length < 0 ? 0 : checked(array.length) | 0 - var buf = createBuffer(length) - for (var i = 0; i < length; i += 1) { - buf[i] = array[i] & 255 - } - return buf - } - - function fromArrayBuffer (array, byteOffset, length) { - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('\'offset\' is out of bounds') - } - - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('\'length\' is out of bounds') - } - - var buf - if (byteOffset === undefined && length === undefined) { - buf = new Uint8Array(array) - } else if (length === undefined) { - buf = new Uint8Array(array, byteOffset) - } else { - buf = new Uint8Array(array, byteOffset, length) - } - - // Return an augmented `Uint8Array` instance - buf.__proto__ = Buffer.prototype - return buf - } - - function fromObject (obj) { - if (Buffer.isBuffer(obj)) { - var len = checked(obj.length) | 0 - var buf = createBuffer(len) - - if (buf.length === 0) { - return buf - } - - obj.copy(buf, 0, 0, len) - return buf - } - - if (obj) { - if (isArrayBufferView(obj) || 'length' in obj) { - if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { - return createBuffer(0) - } - return fromArrayLike(obj) - } - - if (obj.type === 'Buffer' && Array.isArray(obj.data)) { - return fromArrayLike(obj.data) - } - } - - throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') - } - - function checked (length) { - // Note: cannot use `length < K_MAX_LENGTH` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= K_MAX_LENGTH) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') - } - return length | 0 - } - - function SlowBuffer (length) { - if (+length != length) { // eslint-disable-line eqeqeq - length = 0 - } - return Buffer.alloc(+length) - } - - Buffer.isBuffer = function isBuffer (b) { - return b != null && b._isBuffer === true - } - - Buffer.compare = function compare (a, b) { - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError('Arguments must be Buffers') - } - - if (a === b) return 0 - - var x = a.length - var y = b.length - - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i] - y = b[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - } - - Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } - } - - Buffer.concat = function concat (list, length) { - if (!Array.isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - - if (list.length === 0) { - return Buffer.alloc(0) - } - - var i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; ++i) { - length += list[i].length - } - } - - var buffer = Buffer.allocUnsafe(length) - var pos = 0 - for (i = 0; i < list.length; ++i) { - var buf = list[i] - if (!Buffer.isBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - buf.copy(buffer, pos) - pos += buf.length - } - return buffer - } - - function byteLength (string, encoding) { - if (Buffer.isBuffer(string)) { - return string.length - } - if (isArrayBufferView(string) || isArrayBuffer(string)) { - return string.byteLength - } - if (typeof string !== 'string') { - string = '' + string - } - - var len = string.length - if (len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - case undefined: - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) return utf8ToBytes(string).length // assume utf8 - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } - } - Buffer.byteLength = byteLength - - function slowToString (encoding, start, end) { - var loweredCase = false - - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. - - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0 - } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' - } - - if (end === undefined || end > this.length) { - end = this.length - } - - if (end <= 0) { - return '' - } - - // Force coersion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0 - start >>>= 0 - - if (end <= start) { - return '' - } - - if (!encoding) encoding = 'utf8' - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } - } - - // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) - // to detect a Buffer instance. It's not possible to use `instanceof Buffer` - // reliably in a browserify context because there could be multiple different - // copies of the 'buffer' package in use. This method works even for Buffer - // instances that were created from another copy of the `buffer` package. - // See: https://github.com/feross/buffer/issues/154 - Buffer.prototype._isBuffer = true - - function swap (b, n, m) { - var i = b[n] - b[n] = b[m] - b[m] = i - } - - Buffer.prototype.swap16 = function swap16 () { - var len = this.length - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (var i = 0; i < len; i += 2) { - swap(this, i, i + 1) - } - return this - } - - Buffer.prototype.swap32 = function swap32 () { - var len = this.length - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (var i = 0; i < len; i += 4) { - swap(this, i, i + 3) - swap(this, i + 1, i + 2) - } - return this - } - - Buffer.prototype.swap64 = function swap64 () { - var len = this.length - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (var i = 0; i < len; i += 8) { - swap(this, i, i + 7) - swap(this, i + 1, i + 6) - swap(this, i + 2, i + 5) - swap(this, i + 3, i + 4) - } - return this - } - - Buffer.prototype.toString = function toString () { - var length = this.length - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) - } - - Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 - } - - Buffer.prototype.inspect = function inspect () { - var str = '' - var max = exports.INSPECT_MAX_BYTES - if (this.length > 0) { - str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') - if (this.length > max) str += ' ... ' - } - return '' - } - - Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (!Buffer.isBuffer(target)) { - throw new TypeError('Argument must be a Buffer') - } - - if (start === undefined) { - start = 0 - } - if (end === undefined) { - end = target ? target.length : 0 - } - if (thisStart === undefined) { - thisStart = 0 - } - if (thisEnd === undefined) { - thisEnd = this.length - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0 - end >>>= 0 - thisStart >>>= 0 - thisEnd >>>= 0 - - if (this === target) return 0 - - var x = thisEnd - thisStart - var y = end - start - var len = Math.min(x, y) - - var thisCopy = this.slice(thisStart, thisEnd) - var targetCopy = target.slice(start, end) - - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i] - y = targetCopy[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - } - - // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, - // OR the last index of `val` in `buffer` at offset <= `byteOffset`. - // - // Arguments: - // - buffer - a Buffer to search - // - val - a string, Buffer, or number - // - byteOffset - an index into `buffer`; will be clamped to an int32 - // - encoding - an optional encoding, relevant is val is a string - // - dir - true for indexOf, false for lastIndexOf - function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset - byteOffset = 0 - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000 - } - byteOffset = +byteOffset // Coerce to Number. - if (numberIsNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1) - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1 - } else if (byteOffset < 0) { - if (dir) byteOffset = 0 - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer.from(val, encoding) - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (Buffer.isBuffer(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 - } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF // Search for a byte value [0-255] - if (typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } - } - return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') - } - - function arrayIndexOf (arr, val, byteOffset, encoding, dir) { - var indexSize = 1 - var arrLength = arr.length - var valLength = val.length - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase() - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2 - arrLength /= 2 - valLength /= 2 - byteOffset /= 2 - } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - - var i - if (dir) { - var foundIndex = -1 - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex - foundIndex = -1 - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength - for (i = byteOffset; i >= 0; i--) { - var found = true - for (var j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false - break - } - } - if (found) return i - } - } - - return -1 - } - - Buffer.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 - } - - Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) - } - - Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) - } - - function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - var remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining - } - } - - // must be an even number of digits - var strLen = string.length - if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') - - if (length > strLen / 2) { - length = strLen / 2 - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16) - if (numberIsNaN(parsed)) return i - buf[offset + i] = parsed - } - return i - } - - function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) - } - - function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) - } - - function latin1Write (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) - } - - function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) - } - - function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) - } - - Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset >>> 0 - if (isFinite(length)) { - length = length >>> 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - var remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - var loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'latin1': - case 'binary': - return latin1Write(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } - } - - Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } - } - - function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } - } - - function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - var res = [] - - var i = start - while (i < end) { - var firstByte = buf[i] - var codePoint = null - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1 - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF - } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) - } - - // Based on http://stackoverflow.com/a/22747272/680742, the browser with - // the lowest limit is Chrome, with 0x10000 args. - // We go 1 magnitude less, for safety - var MAX_ARGUMENTS_LENGTH = 0x1000 - - function decodeCodePointsArray (codePoints) { - var len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = '' - var i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res - } - - function asciiSlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret - } - - function latin1Slice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]) - } - return ret - } - - function hexSlice (buf, start, end) { - var len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - var out = '' - for (var i = start; i < end; ++i) { - out += toHex(buf[i]) - } - return out - } - - function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end) - var res = '' - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256)) - } - return res - } - - Buffer.prototype.slice = function slice (start, end) { - var len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - var newBuf = this.subarray(start, end) - // Return an augmented `Uint8Array` instance - newBuf.__proto__ = Buffer.prototype - return newBuf - } - - /* - * Need to make sure that buffer isn't trying to write out of bounds. - */ - function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') - } - - Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val - } - - Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - var val = this[offset + --byteLength] - var mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } - - return val - } - - Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] - } - - Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) - } - - Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] - } - - Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) - } - - Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) - } - - Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val - } - - Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var i = byteLength - var mul = 1 - var val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val - } - - Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) - } - - Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val - } - - Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val - } - - Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) - } - - Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) - } - - Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) - } - - Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) - } - - Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) - } - - Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) - } - - function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') - } - - Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var mul = 1 - var i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var i = byteLength - 1 - var mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - this[offset] = (value & 0xff) - return offset + 1 - } - - Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - return offset + 2 - } - - Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - return offset + 2 - } - - Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = (value & 0xff) - return offset + 4 - } - - Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - return offset + 4 - } - - Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - var limit = Math.pow(2, (8 * byteLength) - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = 0 - var mul = 1 - var sub = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - var limit = Math.pow(2, (8 * byteLength) - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = byteLength - 1 - var mul = 1 - var sub = 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (value < 0) value = 0xff + value + 1 - this[offset] = (value & 0xff) - return offset + 1 - } - - Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - return offset + 2 - } - - Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - return offset + 2 - } - - Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - return offset + 4 - } - - Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - return offset + 4 - } - - function checkIEEE754 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') - } - - function writeFloat (buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 - } - - Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) - } - - Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) - } - - function writeDouble (buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 - } - - Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) - } - - Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) - } - - // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) - Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - - var len = end - start - var i - - if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start] - } - } else if (len < 1000) { - // ascending copy from start - for (i = 0; i < len; ++i) { - target[i + targetStart] = this[i + start] - } - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, start + len), - targetStart - ) - } - - return len - } - - // Usage: - // buffer.fill(number[, offset[, end]]) - // buffer.fill(buffer[, offset[, end]]) - // buffer.fill(string[, offset[, end]][, encoding]) - Buffer.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start - start = 0 - end = this.length - } else if (typeof end === 'string') { - encoding = end - end = this.length - } - if (val.length === 1) { - var code = val.charCodeAt(0) - if (code < 256) { - val = code - } - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - } else if (typeof val === 'number') { - val = val & 255 - } - - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return this - } - - start = start >>> 0 - end = end === undefined ? this.length : end >>> 0 - - if (!val) val = 0 - - var i - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val - } - } else { - var bytes = Buffer.isBuffer(val) - ? val - : new Buffer(val, encoding) - var len = bytes.length - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len] - } - } - - return this - } - - // HELPER FUNCTIONS - // ================ - - var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g - - function base64clean (str) { - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = str.trim().replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str - } - - function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) - } - - function utf8ToBytes (string, units) { - units = units || Infinity - var codePoint - var length = string.length - var leadSurrogate = null - var bytes = [] - - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i) - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } - - // valid lead - leadSurrogate = codePoint - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - } - - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') - } - } - - return bytes - } - - function asciiToBytes (str) { - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray - } - - function utf16leToBytes (str, units) { - var c, hi, lo - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - - return byteArray - } - - function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) - } - - function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] - } - return i - } - - // ArrayBuffers from another context (i.e. an iframe) do not pass the `instanceof` check - // but they should be treated as valid. See: https://github.com/feross/buffer/issues/166 - function isArrayBuffer (obj) { - return obj instanceof ArrayBuffer || - (obj != null && obj.constructor != null && obj.constructor.name === 'ArrayBuffer' && - typeof obj.byteLength === 'number') - } - - // Node 0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView` - function isArrayBufferView (obj) { - return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj) - } - - function numberIsNaN (obj) { - return obj !== obj // eslint-disable-line no-self-compare - } - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) - -/***/ }, -/* 3 */ -/***/ function(module, exports) { - - 'use strict' - - exports.byteLength = byteLength - exports.toByteArray = toByteArray - exports.fromByteArray = fromByteArray - - var lookup = [] - var revLookup = [] - var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array - - var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' - for (var i = 0, len = code.length; i < len; ++i) { - lookup[i] = code[i] - revLookup[code.charCodeAt(i)] = i - } - - revLookup['-'.charCodeAt(0)] = 62 - revLookup['_'.charCodeAt(0)] = 63 - - function placeHoldersCount (b64) { - var len = b64.length - if (len % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // the number of equal signs (place holders) - // if there are two placeholders, than the two characters before it - // represent one byte - // if there is only one, then the three characters before it represent 2 bytes - // this is just a cheap hack to not do indexOf twice - return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0 - } - - function byteLength (b64) { - // base64 is 4/3 + up to two characters of the original data - return b64.length * 3 / 4 - placeHoldersCount(b64) - } - - function toByteArray (b64) { - var i, j, l, tmp, placeHolders, arr - var len = b64.length - placeHolders = placeHoldersCount(b64) - - arr = new Arr(len * 3 / 4 - placeHolders) - - // if there are placeholders, only get up to the last complete 4 chars - l = placeHolders > 0 ? len - 4 : len - - var L = 0 - - for (i = 0, j = 0; i < l; i += 4, j += 3) { - tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] - arr[L++] = (tmp >> 16) & 0xFF - arr[L++] = (tmp >> 8) & 0xFF - arr[L++] = tmp & 0xFF - } - - if (placeHolders === 2) { - tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) - arr[L++] = tmp & 0xFF - } else if (placeHolders === 1) { - tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) - arr[L++] = (tmp >> 8) & 0xFF - arr[L++] = tmp & 0xFF - } - - return arr - } - - function tripletToBase64 (num) { - return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] - } - - function encodeChunk (uint8, start, end) { - var tmp - var output = [] - for (var i = start; i < end; i += 3) { - tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) - output.push(tripletToBase64(tmp)) - } - return output.join('') - } - - function fromByteArray (uint8) { - var tmp - var len = uint8.length - var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes - var output = '' - var parts = [] - var maxChunkLength = 16383 // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) - } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1] - output += lookup[tmp >> 2] - output += lookup[(tmp << 4) & 0x3F] - output += '==' - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + (uint8[len - 1]) - output += lookup[tmp >> 10] - output += lookup[(tmp >> 4) & 0x3F] - output += lookup[(tmp << 2) & 0x3F] - output += '=' - } - - parts.push(output) - - return parts.join('') - } - - -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - exports.read = function (buffer, offset, isLE, mLen, nBytes) { - var e, m - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var nBits = -7 - var i = isLE ? (nBytes - 1) : 0 - var d = isLE ? -1 : 1 - var s = buffer[offset + i] - - i += d - - e = s & ((1 << (-nBits)) - 1) - s >>= (-nBits) - nBits += eLen - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1) - e >>= (-nBits) - nBits += mLen - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen) - e = e - eBias - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) - } - - exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) - var i = isLE ? 0 : (nBytes - 1) - var d = isLE ? 1 : -1 - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 - - value = Math.abs(value) - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0 - e = eMax - } else { - e = Math.floor(Math.log(value) / Math.LN2) - if (value * (c = Math.pow(2, -e)) < 1) { - e-- - c *= 2 - } - if (e + eBias >= 1) { - value += rt / c - } else { - value += rt * Math.pow(2, 1 - eBias) - } - if (value * c >= 2) { - e++ - c /= 2 - } - - if (e + eBias >= eMax) { - m = 0 - e = eMax - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen) - e = e + eBias - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) - e = 0 - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m - eLen += mLen - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128 - } - - -/***/ }, -/* 5 */ -/***/ function(module, exports) { - - module.exports = function(module) { - if(!module.webpackPolyfill) { - module.deprecate = function() {}; - module.paths = []; - // module.parent = undefined by default - module.children = []; - module.webpackPolyfill = 1; - } - return module; - } - - -/***/ }, -/* 6 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var Process = __webpack_require__(7); - var process = new Process(), processProxy = {}; - function defineKey(key) { - if (processProxy[key]) { - // Probably a builtin Object property we don't care about. - return; - } - if (typeof process[key] === 'function') { - processProxy[key] = function () { - return process[key].apply(process, arguments); - }; - } - else { - processProxy[key] = process[key]; - } - } - for (var key in process) { - // Don't check if process.hasOwnProperty; we want to also expose objects - // up the prototype hierarchy. - defineKey(key); - } - // Special key: Ensure we update public-facing values of stdin/stdout/stderr. - processProxy.initializeTTYs = function () { - if (process.stdin === null) { - process.initializeTTYs(); - processProxy.stdin = process.stdin; - processProxy.stdout = process.stdout; - processProxy.stderr = process.stderr; - } - }; - process.nextTick(function () { - processProxy.initializeTTYs(); - }); - module.exports = processProxy; - - -/***/ }, -/* 7 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(__dirname) {"use strict"; - var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - var events = __webpack_require__(8); - // Path depends on process. Avoid a circular reference by dynamically including path when we need it. - var path = null; - var Item = (function () { - function Item(fun, array) { - this.fun = fun; - this.array = array; - } - Item.prototype.run = function () { - this.fun.apply(null, this.array); - }; - return Item; - }()); - /** - * Contains a queue of Items for process.nextTick. - * Inspired by node-process: https://github.com/defunctzombie/node-process - */ - var NextTickQueue = (function () { - function NextTickQueue() { - this._queue = []; - this._draining = false; - // Used/assigned by the drainQueue function. - this._currentQueue = null; - this._queueIndex = -1; - } - NextTickQueue.prototype.push = function (item) { - var _this = this; - if (this._queue.push(item) === 1 && !this._draining) { - setTimeout(function () { return _this._drainQueue(); }, 0); - } - }; - NextTickQueue.prototype._cleanUpNextTick = function () { - this._draining = false; - if (this._currentQueue && this._currentQueue.length) { - this._queue = this._currentQueue.concat(this._queue); - } - else { - this._queueIndex = -1; - } - if (this._queue.length) { - this._drainQueue(); - } - }; - NextTickQueue.prototype._drainQueue = function () { - var _this = this; - if (this._draining) { - return; - } - // If an Item throws an unhandled exception, this function will clean things up. - var timeout = setTimeout(function () { return _this._cleanUpNextTick(); }); - this._draining = true; - var len = this._queue.length; - while (len) { - this._currentQueue = this._queue; - this._queue = []; - while (++this._queueIndex < len) { - if (this._currentQueue) { - this._currentQueue[this._queueIndex].run(); - } - } - this._queueIndex = -1; - len = this._queue.length; - } - this._currentQueue = null; - this._draining = false; - clearTimeout(timeout); - }; - return NextTickQueue; - }()); - /** - * Partial implementation of Node's `process` module. - * We implement the portions that are relevant for the filesystem. - * @see http://nodejs.org/api/process.html - * @class - */ - var Process = (function (_super) { - __extends(Process, _super); - function Process() { - _super.apply(this, arguments); - this.startTime = Date.now(); - this._cwd = '/'; - /** - * Returns what platform you are running on. - * @return [String] - */ - this.platform = 'browser'; - this.argv = []; - this.execArgv = []; - this.stdout = null; - this.stderr = null; - this.stdin = null; - this.domain = null; - this._queue = new NextTickQueue(); - this.execPath = __dirname; - this.env = {}; - this.exitCode = 0; - this._gid = 1; - this._uid = 1; - this.version = 'v5.0'; - this.versions = { - http_parser: '0.0', - node: '5.0', - v8: '0.0', - uv: '0.0', - zlib: '0.0', - ares: '0.0', - icu: '0.0', - modules: '0', - openssl: '0.0' - }; - this.config = { - target_defaults: { cflags: [], - default_configuration: 'Release', - defines: [], - include_dirs: [], - libraries: [] }, - variables: { clang: 0, - host_arch: 'x32', - node_install_npm: false, - node_install_waf: false, - node_prefix: '', - node_shared_cares: false, - node_shared_http_parser: false, - node_shared_libuv: false, - node_shared_zlib: false, - node_shared_v8: false, - node_use_dtrace: false, - node_use_etw: false, - node_use_openssl: false, - node_shared_openssl: false, - strict_aliasing: false, - target_arch: 'x32', - v8_use_snapshot: false, - v8_no_strict_aliasing: 0, - visibility: '' } }; - this.pid = (Math.random() * 1000) | 0; - this.title = 'node'; - this.arch = 'x32'; - this._mask = 18; - // Undefined in main thread. Worker-only. - this.connected = undefined; - } - /** - * Changes the current working directory. - * - * **Note**: BrowserFS does not validate that the directory actually exists. - * - * @example Usage example - * console.log('Starting directory: ' + process.cwd()); - * process.chdir('/tmp'); - * console.log('New directory: ' + process.cwd()); - * @param [String] dir The directory to change to. - */ - Process.prototype.chdir = function (dir) { - // XXX: Circular dependency hack. - if (path === null) { - path = __webpack_require__(9); - } - this._cwd = path.resolve(dir); - }; - /** - * Returns the current working directory. - * @example Usage example - * console.log('Current directory: ' + process.cwd()); - * @return [String] The current working directory. - */ - Process.prototype.cwd = function () { - return this._cwd; - }; - /** - * Number of seconds BrowserFS has been running. - * @return [Number] - */ - Process.prototype.uptime = function () { - return ((Date.now() - this.startTime) / 1000) | 0; - }; - Process.prototype.nextTick = function (fun) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - this._queue.push(new Item(fun, args)); - }; - Process.prototype.abort = function () { - this.emit('abort'); - }; - Process.prototype.exit = function (code) { - this.exitCode = code; - this.emit('exit', [code]); - }; - Process.prototype.getgid = function () { - return this._gid; - }; - Process.prototype.setgid = function (gid) { - if (typeof gid === 'number') { - this._gid = gid; - } - else { - this._gid = 1; - } - }; - Process.prototype.getuid = function () { - return this._uid; - }; - Process.prototype.setuid = function (uid) { - if (typeof uid === 'number') { - this._uid = uid; - } - else { - this._uid = 1; - } - }; - Process.prototype.kill = function (pid, signal) { - this.emit('kill', [pid, signal]); - }; - Process.prototype.memoryUsage = function () { - return { rss: 0, heapTotal: 0, heapUsed: 0 }; - }; - Process.prototype.umask = function (mask) { - if (mask === void 0) { mask = this._mask; } - var oldMask = this._mask; - this._mask = mask; - this.emit('umask', [mask]); - return oldMask; - }; - Process.prototype.hrtime = function () { - var timeinfo; - if (typeof performance !== 'undefined') { - timeinfo = performance.now(); - } - else if (Date['now']) { - timeinfo = Date.now(); - } - else { - timeinfo = (new Date()).getTime(); - } - var secs = (timeinfo / 1000) | 0; - timeinfo -= secs * 1000; - timeinfo = (timeinfo * 1000000) | 0; - return [secs, timeinfo]; - }; - /** - * [BFS only] Initialize the TTY devices. - */ - Process.prototype.initializeTTYs = function () { - // Guard against multiple invocations. - if (this.stdout === null) { - var TTY = __webpack_require__(10); - this.stdout = new TTY(); - this.stderr = new TTY(); - this.stdin = new TTY(); - } - }; - /** - * Worker-only function; irrelevant here. - */ - Process.prototype.disconnect = function () { - }; - return Process; - }(events.EventEmitter)); - module.exports = Process; - - /* WEBPACK VAR INJECTION */}.call(exports, "/")) - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - // Copyright Joyent, Inc. and other Node contributors. - // - // 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. - - function EventEmitter() { - this._events = this._events || {}; - this._maxListeners = this._maxListeners || undefined; - } - module.exports = EventEmitter; - - // Backwards-compat with node 0.10.x - EventEmitter.EventEmitter = EventEmitter; - - EventEmitter.prototype._events = undefined; - EventEmitter.prototype._maxListeners = undefined; - - // By default EventEmitters will print a warning if more than 10 listeners are - // added to it. This is a useful default which helps finding memory leaks. - EventEmitter.defaultMaxListeners = 10; - - // Obviously not all Emitters should be limited to 10. This function allows - // that to be increased. Set to zero for unlimited. - EventEmitter.prototype.setMaxListeners = function(n) { - if (!isNumber(n) || n < 0 || isNaN(n)) - throw TypeError('n must be a positive number'); - this._maxListeners = n; - return this; - }; - - EventEmitter.prototype.emit = function(type) { - var er, handler, len, args, i, listeners; - - if (!this._events) - this._events = {}; - - // If there is no 'error' event listener then throw. - if (type === 'error') { - if (!this._events.error || - (isObject(this._events.error) && !this._events.error.length)) { - er = arguments[1]; - if (er instanceof Error) { - throw er; // Unhandled 'error' event - } else { - // At least give some kind of context to the user - var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); - err.context = er; - throw err; - } - } - } - - handler = this._events[type]; - - if (isUndefined(handler)) - return false; - - if (isFunction(handler)) { - switch (arguments.length) { - // fast cases - case 1: - handler.call(this); - break; - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; - // slower - default: - args = Array.prototype.slice.call(arguments, 1); - handler.apply(this, args); - } - } else if (isObject(handler)) { - args = Array.prototype.slice.call(arguments, 1); - listeners = handler.slice(); - len = listeners.length; - for (i = 0; i < len; i++) - listeners[i].apply(this, args); - } - - return true; - }; - - EventEmitter.prototype.addListener = function(type, listener) { - var m; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events) - this._events = {}; - - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (this._events.newListener) - this.emit('newListener', type, - isFunction(listener.listener) ? - listener.listener : listener); - - if (!this._events[type]) - // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - else if (isObject(this._events[type])) - // If we've already got an array, just append. - this._events[type].push(listener); - else - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - - // Check for listener leak - if (isObject(this._events[type]) && !this._events[type].warned) { - if (!isUndefined(this._maxListeners)) { - m = this._maxListeners; - } else { - m = EventEmitter.defaultMaxListeners; - } - - if (m && m > 0 && this._events[type].length > m) { - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - if (typeof console.trace === 'function') { - // not supported in IE 10 - console.trace(); - } - } - } - - return this; - }; - - EventEmitter.prototype.on = EventEmitter.prototype.addListener; - - EventEmitter.prototype.once = function(type, listener) { - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - var fired = false; - - function g() { - this.removeListener(type, g); - - if (!fired) { - fired = true; - listener.apply(this, arguments); - } - } - - g.listener = listener; - this.on(type, g); - - return this; - }; - - // emits a 'removeListener' event iff the listener was removed - EventEmitter.prototype.removeListener = function(type, listener) { - var list, position, length, i; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events || !this._events[type]) - return this; - - list = this._events[type]; - length = list.length; - position = -1; - - if (list === listener || - (isFunction(list.listener) && list.listener === listener)) { - delete this._events[type]; - if (this._events.removeListener) - this.emit('removeListener', type, listener); - - } else if (isObject(list)) { - for (i = length; i-- > 0;) { - if (list[i] === listener || - (list[i].listener && list[i].listener === listener)) { - position = i; - break; - } - } - - if (position < 0) - return this; - - if (list.length === 1) { - list.length = 0; - delete this._events[type]; - } else { - list.splice(position, 1); - } - - if (this._events.removeListener) - this.emit('removeListener', type, listener); - } - - return this; - }; - - EventEmitter.prototype.removeAllListeners = function(type) { - var key, listeners; - - if (!this._events) - return this; - - // not listening for removeListener, no need to emit - if (!this._events.removeListener) { - if (arguments.length === 0) - this._events = {}; - else if (this._events[type]) - delete this._events[type]; - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - for (key in this._events) { - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = {}; - return this; - } - - listeners = this._events[type]; - - if (isFunction(listeners)) { - this.removeListener(type, listeners); - } else if (listeners) { - // LIFO order - while (listeners.length) - this.removeListener(type, listeners[listeners.length - 1]); - } - delete this._events[type]; - - return this; - }; - - EventEmitter.prototype.listeners = function(type) { - var ret; - if (!this._events || !this._events[type]) - ret = []; - else if (isFunction(this._events[type])) - ret = [this._events[type]]; - else - ret = this._events[type].slice(); - return ret; - }; - - EventEmitter.prototype.listenerCount = function(type) { - if (this._events) { - var evlistener = this._events[type]; - - if (isFunction(evlistener)) - return 1; - else if (evlistener) - return evlistener.length; - } - return 0; - }; - - EventEmitter.listenerCount = function(emitter, type) { - return emitter.listenerCount(type); - }; - - function isFunction(arg) { - return typeof arg === 'function'; - } - - function isNumber(arg) { - return typeof arg === 'number'; - } - - function isObject(arg) { - return typeof arg === 'object' && arg !== null; - } - - function isUndefined(arg) { - return arg === void 0; - } - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {"use strict"; - // Split a filename into [root, dir, basename, ext], unix version - // 'root' is just a slash, or nothing. - var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - function posixSplitPath(filename) { - var out = splitPathRe.exec(filename); - out.shift(); - return out; - } - /** - * Emulates Node's `path` module. This module contains utilities for handling and - * transforming file paths. **All** of these methods perform only string - * transformations. The file system is not consulted to check whether paths are - * valid. - * @see http://nodejs.org/api/path.html - * @class - */ - var path = (function () { - function path() { - } - /** - * Normalize a string path, taking care of '..' and '.' parts. - * - * When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used. - * @example Usage example - * path.normalize('/foo/bar//baz/asdf/quux/..') - * // returns - * '/foo/bar/baz/asdf' - * @param [String] p The path to normalize. - * @return [String] - */ - path.normalize = function (p) { - // Special case: '' -> '.' - if (p === '') { - p = '.'; - } - // It's very important to know if the path is relative or not, since it - // changes how we process .. and reconstruct the split string. - var absolute = p.charAt(0) === path.sep; - // Remove repeated //s - p = path._removeDuplicateSeps(p); - // Try to remove as many '../' as possible, and remove '.' completely. - var components = p.split(path.sep); - var goodComponents = []; - for (var idx = 0; idx < components.length; idx++) { - var c = components[idx]; - if (c === '.') { - continue; - } - else if (c === '..' && (absolute || (!absolute && goodComponents.length > 0 && goodComponents[0] !== '..'))) { - // In the absolute case: Path is relative to root, so we may pop even if - // goodComponents is empty (e.g. /../ => /) - // In the relative case: We're getting rid of a directory that preceded - // it (e.g. /foo/../bar -> /bar) - goodComponents.pop(); - } - else { - goodComponents.push(c); - } - } - // Add in '.' when it's a relative path with no other nonempty components. - // Possible results: '.' and './' (input: [''] or []) - // @todo Can probably simplify this logic. - if (!absolute && goodComponents.length < 2) { - switch (goodComponents.length) { - case 1: - if (goodComponents[0] === '') { - goodComponents.unshift('.'); - } - break; - default: - goodComponents.push('.'); - } - } - p = goodComponents.join(path.sep); - if (absolute && p.charAt(0) !== path.sep) { - p = path.sep + p; - } - return p; - }; - /** - * Join all arguments together and normalize the resulting path. - * - * Arguments must be strings. - * @example Usage - * path.join('/foo', 'bar', 'baz/asdf', 'quux', '..') - * // returns - * '/foo/bar/baz/asdf' - * - * path.join('foo', {}, 'bar') - * // throws exception - * TypeError: Arguments to path.join must be strings - * @param [String,...] paths Each component of the path - * @return [String] - */ - path.join = function () { - var paths = []; - for (var _i = 0; _i < arguments.length; _i++) { - paths[_i - 0] = arguments[_i]; - } - // Required: Prune any non-strings from the path. I also prune empty segments - // so we can do a simple join of the array. - var processed = []; - for (var i = 0; i < paths.length; i++) { - var segment = paths[i]; - if (typeof segment !== 'string') { - throw new TypeError("Invalid argument type to path.join: " + (typeof segment)); - } - else if (segment !== '') { - processed.push(segment); - } - } - return path.normalize(processed.join(path.sep)); - }; - /** - * Resolves to to an absolute path. - * - * If to isn't already absolute from arguments are prepended in right to left - * order, until an absolute path is found. If after using all from paths still - * no absolute path is found, the current working directory is used as well. - * The resulting path is normalized, and trailing slashes are removed unless - * the path gets resolved to the root directory. Non-string arguments are - * ignored. - * - * Another way to think of it is as a sequence of cd commands in a shell. - * - * path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile') - * - * Is similar to: - * - * cd foo/bar - * cd /tmp/file/ - * cd .. - * cd a/../subfile - * pwd - * - * The difference is that the different paths don't need to exist and may also - * be files. - * @example Usage example - * path.resolve('/foo/bar', './baz') - * // returns - * '/foo/bar/baz' - * - * path.resolve('/foo/bar', '/tmp/file/') - * // returns - * '/tmp/file' - * - * path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif') - * // if currently in /home/myself/node, it returns - * '/home/myself/node/wwwroot/static_files/gif/image.gif' - * @param [String,...] paths - * @return [String] - */ - path.resolve = function () { - var paths = []; - for (var _i = 0; _i < arguments.length; _i++) { - paths[_i - 0] = arguments[_i]; - } - // Monitor for invalid paths, throw out empty paths, and look for the *last* - // absolute path that we see. - var processed = []; - for (var i = 0; i < paths.length; i++) { - var p = paths[i]; - if (typeof p !== 'string') { - throw new TypeError("Invalid argument type to path.join: " + (typeof p)); - } - else if (p !== '') { - // Remove anything that has occurred before this absolute path, as it - // doesn't matter. - if (p.charAt(0) === path.sep) { - processed = []; - } - processed.push(p); - } - } - // Special: Remove trailing slash unless it's the root - var resolved = path.normalize(processed.join(path.sep)); - if (resolved.length > 1 && resolved.charAt(resolved.length - 1) === path.sep) { - return resolved.substr(0, resolved.length - 1); - } - // Special: If it doesn't start with '/', it's relative and we need to append - // the current directory. - if (resolved.charAt(0) !== path.sep) { - // Remove ./, since we're going to append the current directory. - if (resolved.charAt(0) === '.' && (resolved.length === 1 || resolved.charAt(1) === path.sep)) { - resolved = resolved.length === 1 ? '' : resolved.substr(2); - } - // Append the current directory, which *must* be an absolute path. - var cwd = process.cwd(); - if (resolved !== '') { - // cwd will never end in a /... unless it's the root. - resolved = this.normalize(cwd + (cwd !== '/' ? path.sep : '') + resolved); - } - else { - resolved = cwd; - } - } - return resolved; - }; - /** - * Solve the relative path from from to to. - * - * At times we have two absolute paths, and we need to derive the relative path - * from one to the other. This is actually the reverse transform of - * path.resolve, which means we see that: - * - * path.resolve(from, path.relative(from, to)) == path.resolve(to) - * - * @example Usage example - * path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb') - * // returns - * '..\\..\\impl\\bbb' - * - * path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb') - * // returns - * '../../impl/bbb' - * @param [String] from - * @param [String] to - * @return [String] - */ - path.relative = function (from, to) { - var i; - // Alright. Let's resolve these two to absolute paths and remove any - // weirdness. - from = path.resolve(from); - to = path.resolve(to); - var fromSegs = from.split(path.sep); - var toSegs = to.split(path.sep); - // Remove the first segment on both, as it's '' (both are absolute paths) - toSegs.shift(); - fromSegs.shift(); - // There are two segments to this path: - // * Going *up* the directory hierarchy with '..' - // * Going *down* the directory hierarchy with foo/baz/bat. - var upCount = 0; - var downSegs = []; - // Figure out how many things in 'from' are shared with 'to'. - for (i = 0; i < fromSegs.length; i++) { - var seg = fromSegs[i]; - if (seg === toSegs[i]) { - continue; - } - // The rest of 'from', including the current element, indicates how many - // directories we need to go up. - upCount = fromSegs.length - i; - break; - } - // The rest of 'to' indicates where we need to change to. We place this - // outside of the loop, as toSegs.length may be greater than fromSegs.length. - downSegs = toSegs.slice(i); - // Special case: If 'from' is '/' - if (fromSegs.length === 1 && fromSegs[0] === '') { - upCount = 0; - } - // upCount can't be greater than the number of fromSegs - // (cd .. from / is still /) - if (upCount > fromSegs.length) { - upCount = fromSegs.length; - } - // Create the final string! - var rv = ''; - for (i = 0; i < upCount; i++) { - rv += '../'; - } - rv += downSegs.join(path.sep); - // Special case: Remove trailing '/'. Happens if it's all up and no down. - if (rv.length > 1 && rv.charAt(rv.length - 1) === path.sep) { - rv = rv.substr(0, rv.length - 1); - } - return rv; - }; - /** - * Return the directory name of a path. Similar to the Unix `dirname` command. - * - * Note that BrowserFS does not validate if the path is actually a valid - * directory. - * @example Usage example - * path.dirname('/foo/bar/baz/asdf/quux') - * // returns - * '/foo/bar/baz/asdf' - * @param [String] p The path to get the directory name of. - * @return [String] - */ - path.dirname = function (p) { - // We get rid of //, but we don't modify anything else (e.g. any extraneous . - // and ../ are kept intact) - p = path._removeDuplicateSeps(p); - var absolute = p.charAt(0) === path.sep; - var sections = p.split(path.sep); - // Do 1 if it's /foo/bar, 2 if it's /foo/bar/ - if (sections.pop() === '' && sections.length > 0) { - sections.pop(); - } - // # of sections needs to be > 1 if absolute, since the first section is '' for '/'. - // If not absolute, the first section is the first part of the path, and is OK - // to return. - if (sections.length > 1 || (sections.length === 1 && !absolute)) { - return sections.join(path.sep); - } - else if (absolute) { - return path.sep; - } - else { - return '.'; - } - }; - /** - * Return the last portion of a path. Similar to the Unix basename command. - * @example Usage example - * path.basename('/foo/bar/baz/asdf/quux.html') - * // returns - * 'quux.html' - * - * path.basename('/foo/bar/baz/asdf/quux.html', '.html') - * // returns - * 'quux' - * @param [String] p - * @param [String?] ext - * @return [String] - */ - path.basename = function (p, ext) { - if (ext === void 0) { ext = ""; } - // Special case: Normalize will modify this to '.' - if (p === '') { - return p; - } - // Normalize the string first to remove any weirdness. - p = path.normalize(p); - // Get the last part of the string. - var sections = p.split(path.sep); - var lastPart = sections[sections.length - 1]; - // Special case: If it's empty, then we have a string like so: foo/ - // Meaning, 'foo' is guaranteed to be a directory. - if (lastPart === '' && sections.length > 1) { - return sections[sections.length - 2]; - } - // Remove the extension, if need be. - if (ext.length > 0) { - var lastPartExt = lastPart.substr(lastPart.length - ext.length); - if (lastPartExt === ext) { - return lastPart.substr(0, lastPart.length - ext.length); - } - } - return lastPart; - }; - /** - * Return the extension of the path, from the last '.' to end of string in the - * last portion of the path. If there is no '.' in the last portion of the path - * or the first character of it is '.', then it returns an empty string. - * @example Usage example - * path.extname('index.html') - * // returns - * '.html' - * - * path.extname('index.') - * // returns - * '.' - * - * path.extname('index') - * // returns - * '' - * @param [String] p - * @return [String] - */ - path.extname = function (p) { - p = path.normalize(p); - var sections = p.split(path.sep); - p = sections.pop(); - // Special case: foo/file.ext/ should return '.ext' - if (p === '' && sections.length > 0) { - p = sections.pop(); - } - if (p === '..') { - return ''; - } - var i = p.lastIndexOf('.'); - if (i === -1 || i === 0) { - return ''; - } - return p.substr(i); - }; - /** - * Checks if the given path is an absolute path. - * - * Despite not being documented, this is a tested part of Node's path API. - * @param [String] p - * @return [Boolean] True if the path appears to be an absolute path. - */ - path.isAbsolute = function (p) { - return p.length > 0 && p.charAt(0) === path.sep; - }; - /** - * Unknown. Undocumented. - */ - path._makeLong = function (p) { - return p; - }; - /** - * Returns an object from a path string. - */ - path.parse = function (p) { - var allParts = posixSplitPath(p); - return { - root: allParts[0], - dir: allParts[0] + allParts[1].slice(0, -1), - base: allParts[2], - ext: allParts[3], - name: allParts[2].slice(0, allParts[2].length - allParts[3].length) - }; - }; - path.format = function (pathObject) { - if (pathObject === null || typeof pathObject !== 'object') { - throw new TypeError("Parameter 'pathObject' must be an object, not " + typeof pathObject); - } - var root = pathObject.root || ''; - if (typeof root !== 'string') { - throw new TypeError("'pathObject.root' must be a string or undefined, not " + - typeof pathObject.root); - } - var dir = pathObject.dir ? pathObject.dir + path.sep : ''; - var base = pathObject.base || ''; - return dir + base; - }; - path._removeDuplicateSeps = function (p) { - p = p.replace(this._replaceRegex, this.sep); - return p; - }; - // The platform-specific file separator. BrowserFS uses `/`. - path.sep = '/'; - path._replaceRegex = new RegExp("//+", 'g'); - // The platform-specific path delimiter. BrowserFS uses `:`. - path.delimiter = ':'; - path.posix = path; - // XXX: Typing hack. We don't actually support win32. - path.win32 = path; - return path; - }()); - var _ = path; - module.exports = path; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6))) - -/***/ }, -/* 10 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer) {"use strict"; - var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - var stream = __webpack_require__(11); - var TTY = (function (_super) { - __extends(TTY, _super); - function TTY() { - _super.call(this); - this.isRaw = false; - this.columns = 80; - this.rows = 120; - this.isTTY = true; - this._bufferedWrites = []; - this._waitingForWrites = false; - } - /** - * Toggle raw mode. - */ - TTY.prototype.setRawMode = function (mode) { - if (this.isRaw !== mode) { - this.isRaw = mode; - // [BFS] TTY implementations can use this to change their event emitting - // patterns. - this.emit('modeChange'); - } - }; - /** - * [BFS] Update the number of columns available on the terminal. - */ - TTY.prototype.changeColumns = function (columns) { - if (columns !== this.columns) { - this.columns = columns; - // Resize event. - this.emit('resize'); - } - }; - /** - * [BFS] Update the number of rows available on the terminal. - */ - TTY.prototype.changeRows = function (rows) { - if (rows !== this.rows) { - this.rows = rows; - // Resize event. - this.emit('resize'); - } - }; - /** - * Returns 'true' if the given object is a TTY. - */ - TTY.isatty = function (fd) { - return fd && fd instanceof TTY; - }; - TTY.prototype._write = function (chunk, encoding, cb) { - var error; - try { - var data; - if (typeof (chunk) === 'string') { - data = new Buffer(chunk, encoding); - } - else { - data = chunk; - } - this._bufferedWrites.push(data); - if (this._waitingForWrites) { - this._read(1024); - } - } - catch (e) { - error = e; - } - finally { - cb(error); - } - }; - TTY.prototype._read = function (size) { - // Size is advisory -- we can ignore it. - if (this._bufferedWrites.length === 0) { - this._waitingForWrites = true; - } - else { - while (this._bufferedWrites.length > 0) { - this._waitingForWrites = this.push(this._bufferedWrites.shift()); - if (!this._waitingForWrites) { - break; - } - } - } - }; - return TTY; - }(stream.Duplex)); - module.exports = TTY; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) - -/***/ }, -/* 11 */ -/***/ function(module, exports, __webpack_require__) { - - // Copyright Joyent, Inc. and other Node contributors. - // - // 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. - - module.exports = Stream; - - var EE = __webpack_require__(8).EventEmitter; - var inherits = __webpack_require__(12); - - inherits(Stream, EE); - Stream.Readable = __webpack_require__(13); - Stream.Writable = __webpack_require__(27); - Stream.Duplex = __webpack_require__(28); - Stream.Transform = __webpack_require__(29); - Stream.PassThrough = __webpack_require__(30); - - // Backwards-compat with node 0.4.x - Stream.Stream = Stream; - - - - // old-style streams. Note that the pipe method (the only relevant - // part of this class) is overridden in the Readable class. - - function Stream() { - EE.call(this); - } - - Stream.prototype.pipe = function(dest, options) { - var source = this; - - function ondata(chunk) { - if (dest.writable) { - if (false === dest.write(chunk) && source.pause) { - source.pause(); - } - } - } - - source.on('data', ondata); - - function ondrain() { - if (source.readable && source.resume) { - source.resume(); - } - } - - dest.on('drain', ondrain); - - // If the 'end' option is not supplied, dest.end() will be called when - // source gets the 'end' or 'close' events. Only dest.end() once. - if (!dest._isStdio && (!options || options.end !== false)) { - source.on('end', onend); - source.on('close', onclose); - } - - var didOnEnd = false; - function onend() { - if (didOnEnd) return; - didOnEnd = true; - - dest.end(); - } - - - function onclose() { - if (didOnEnd) return; - didOnEnd = true; - - if (typeof dest.destroy === 'function') dest.destroy(); - } - - // don't leave dangling pipes when there are errors. - function onerror(er) { - cleanup(); - if (EE.listenerCount(this, 'error') === 0) { - throw er; // Unhandled stream error in pipe. - } - } - - source.on('error', onerror); - dest.on('error', onerror); - - // remove all the event listeners that were added. - function cleanup() { - source.removeListener('data', ondata); - dest.removeListener('drain', ondrain); - - source.removeListener('end', onend); - source.removeListener('close', onclose); - - source.removeListener('error', onerror); - dest.removeListener('error', onerror); - - source.removeListener('end', cleanup); - source.removeListener('close', cleanup); - - dest.removeListener('close', cleanup); - } - - source.on('end', cleanup); - source.on('close', cleanup); - - dest.on('close', cleanup); - - dest.emit('pipe', source); - - // Allow for unix-like usage: A.pipe(B).pipe(C) - return dest; - }; - - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; - } else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } - } - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {var Stream = (function (){ - try { - return __webpack_require__(11); // hack to fix a circular dependency issue when used with browserify - } catch(_){} - }()); - exports = module.exports = __webpack_require__(14); - exports.Stream = Stream || exports; - exports.Readable = exports; - exports.Writable = __webpack_require__(22); - exports.Duplex = __webpack_require__(21); - exports.Transform = __webpack_require__(25); - exports.PassThrough = __webpack_require__(26); - - if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) { - module.exports = Stream; - } - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6))) - -/***/ }, -/* 14 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {'use strict'; - - module.exports = Readable; - - /**/ - var processNextTick = __webpack_require__(15); - /**/ - - /**/ - var isArray = __webpack_require__(16); - /**/ - - /**/ - var Duplex; - /**/ - - Readable.ReadableState = ReadableState; - - /**/ - var EE = __webpack_require__(8).EventEmitter; - - var EElistenerCount = function (emitter, type) { - return emitter.listeners(type).length; - }; - /**/ - - /**/ - var Stream; - (function () { - try { - Stream = __webpack_require__(11); - } catch (_) {} finally { - if (!Stream) Stream = __webpack_require__(8).EventEmitter; - } - })(); - /**/ - - var Buffer = __webpack_require__(2).Buffer; - /**/ - var bufferShim = __webpack_require__(17); - /**/ - - /**/ - var util = __webpack_require__(18); - util.inherits = __webpack_require__(12); - /**/ - - /**/ - var debugUtil = __webpack_require__(19); - var debug = void 0; - if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); - } else { - debug = function () {}; - } - /**/ - - var BufferList = __webpack_require__(20); - var StringDecoder; - - util.inherits(Readable, Stream); - - function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') { - return emitter.prependListener(event, fn); - } else { - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; - } - } - - function ReadableState(options, stream) { - Duplex = Duplex || __webpack_require__(21); - - options = options || {}; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~~this.highWaterMark; - - // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // when piping, we only care about 'readable' events that happen - // after read()ing all the bytes and not getting any pushback. - this.ranOut = false; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = __webpack_require__(24).StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } - } - - function Readable(options) { - Duplex = Duplex || __webpack_require__(21); - - if (!(this instanceof Readable)) return new Readable(options); - - this._readableState = new ReadableState(options, this); - - // legacy - this.readable = true; - - if (options && typeof options.read === 'function') this._read = options.read; - - Stream.call(this); - } - - // Manually shove something into the read() buffer. - // This returns true if the highWaterMark has not been hit yet, - // similar to how Writable.write() returns true if you should - // write() some more. - Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - - if (!state.objectMode && typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = bufferShim.from(chunk, encoding); - encoding = ''; - } - } - - return readableAddChunk(this, state, chunk, encoding, false); - }; - - // Unshift should *always* be something directly out of read() - Readable.prototype.unshift = function (chunk) { - var state = this._readableState; - return readableAddChunk(this, state, chunk, '', true); - }; - - Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; - }; - - function readableAddChunk(stream, state, chunk, encoding, addToFront) { - var er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (state.ended && !addToFront) { - var e = new Error('stream.push() after EOF'); - stream.emit('error', e); - } else if (state.endEmitted && addToFront) { - var _e = new Error('stream.unshift() after end event'); - stream.emit('error', _e); - } else { - var skipAdd; - if (state.decoder && !addToFront && !encoding) { - chunk = state.decoder.write(chunk); - skipAdd = !state.objectMode && chunk.length === 0; - } - - if (!addToFront) state.reading = false; - - // Don't add to the buffer if we've decoded to an empty string chunk and - // we're not in object mode - if (!skipAdd) { - // if we want the data now, just emit it. - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - - if (state.needReadable) emitReadable(stream); - } - } - - maybeReadMore(stream, state); - } - } else if (!addToFront) { - state.reading = false; - } - - return needMoreData(state); - } - - // if it's past the high water mark, we can push in some more. - // Also, if we have no data yet, we can stand some - // more bytes. This is to work around cases where hwm=0, - // such as the repl. Also, if the push() triggered a - // readable event, and the user called read(largeNumber) such that - // needReadable was set, then we ought to push more, so that another - // 'readable' event will be triggered. - function needMoreData(state) { - return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); - } - - // backwards compatibility. - Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = __webpack_require__(24).StringDecoder; - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; - }; - - // Don't raise the hwm > 8MB - var MAX_HWM = 0x800000; - function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; - } - - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } - // If we're asking for more than the current hwm, then raise the hwm. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; - // Don't have enough - if (!state.ended) { - state.needReadable = true; - return 0; - } - return state.length; - } - - // you can override either this method, or the async _read(n) below. - Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - - if (n !== 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); - } - - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - - if (ret === null) { - state.needReadable = true; - n = 0; - } else { - state.length -= n; - } - - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) endReadable(this); - } - - if (ret !== null) this.emit('data', ret); - - return ret; - }; - - function chunkInvalid(state, chunk) { - var er = null; - if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; - } - - function onEofChunk(stream, state) { - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); - } - - // Don't emit readable right away in sync mode, because this can trigger - // another read() call => stack overflow. This way, it might trigger - // a nextTick recursion warning, but that's not so bad. - function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); - } - } - - function emitReadable_(stream) { - debug('emit readable'); - stream.emit('readable'); - flow(stream); - } - - // at this point, the user has presumably seen the 'readable' event, - // and called read() to consume some data. that may have triggered - // in turn another _read(n) call, in which case reading = true if - // it's in progress. - // However, if we're not ended, or reading, and the length < hwm, - // then go ahead and try to read some more preemptively. - function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - processNextTick(maybeReadMore_, stream, state); - } - } - - function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break;else len = state.length; - } - state.readingMore = false; - } - - // abstract method. to be overridden in specific implementation classes. - // call cb(er, data) where data is <= n in length. - // for virtual (non-string, non-buffer) streams, "length" is somewhat - // arbitrary, and perhaps not very meaningful. - Readable.prototype._read = function (n) { - this.emit('error', new Error('_read() is not implemented')); - }; - - Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - - var endFn = doEnd ? onend : cleanup; - if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); - - dest.on('unpipe', onunpipe); - function onunpipe(readable) { - debug('onunpipe'); - if (readable === src) { - cleanup(); - } - } - - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', cleanup); - src.removeListener('data', ondata); - - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - - // If the user pushes more data while we're writing to dest then we'll end up - // in ondata again. However, we only want to increase awaitDrain once because - // dest will only emit one 'drain' event for the multiple writes. - // => Introduce a guard on increasing awaitDrain. - var increasedAwaitDrain = false; - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - increasedAwaitDrain = false; - var ret = dest.write(chunk); - if (false === ret && !increasedAwaitDrain) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; - increasedAwaitDrain = true; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); - } - - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - - return dest; - }; - - function pipeOnDrain(src) { - return function () { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; - } - - Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this); - }return this; - } - - // try to find the right one. - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - - dest.emit('unpipe', this); - - return this; - }; - - // set up data events if they are asked for - // Ensure readable listeners eventually get something - Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - - if (ev === 'data') { - // Start flowing on next tick if stream isn't explicitly paused - if (this._readableState.flowing !== false) this.resume(); - } else if (ev === 'readable') { - var state = this._readableState; - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.emittedReadable = false; - if (!state.reading) { - processNextTick(nReadingNextTick, this); - } else if (state.length) { - emitReadable(this, state); - } - } - } - - return res; - }; - Readable.prototype.addListener = Readable.prototype.on; - - function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); - } - - // pause() and resume() are remnants of the legacy readable stream API - // If the user uses them, then switch into old mode. - Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - state.flowing = true; - resume(this, state); - } - return this; - }; - - function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - processNextTick(resume_, stream, state); - } - } - - function resume_(stream, state) { - if (!state.reading) { - debug('resume read 0'); - stream.read(0); - } - - state.resumeScheduled = false; - state.awaitDrain = 0; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); - } - - Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; - }; - - function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null) {} - } - - // wrap an old-style stream as the async data source. - // This is *not* part of the readable stream interface. - // It is an ugly unfortunate mess of history. - Readable.prototype.wrap = function (stream) { - var state = this._readableState; - var paused = false; - - var self = this; - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) self.push(chunk); - } - - self.push(null); - }); - - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - - var ret = self.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function (method) { - return function () { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - var events = ['error', 'close', 'destroy', 'pause', 'resume']; - forEach(events, function (ev) { - stream.on(ev, self.emit.bind(self, ev)); - }); - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - self._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - - return self; - }; - - // exposed for testing purposes only. - Readable._fromList = fromList; - - // Pluck off n bytes from an array of buffers. - // Length is the combined lengths of all the buffers in the list. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = fromListPartial(n, state.buffer, state.decoder); - } - - return ret; - } - - // Extracts only enough buffered data to satisfy the amount requested. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function fromListPartial(n, list, hasStrings) { - var ret; - if (n < list.head.data.length) { - // slice is the same for buffers and strings - ret = list.head.data.slice(0, n); - list.head.data = list.head.data.slice(n); - } else if (n === list.head.data.length) { - // first chunk is a perfect match - ret = list.shift(); - } else { - // result spans more than one buffer - ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); - } - return ret; - } - - // Copies a specified amount of characters from the list of buffered data - // chunks. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function copyFromBufferString(n, list) { - var p = list.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = str.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; - } - - // Copies a specified amount of bytes from the list of buffered data chunks. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function copyFromBuffer(n, list) { - var ret = bufferShim.allocUnsafe(n); - var p = list.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = buf.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; - } - - function endReadable(stream) { - var state = stream._readableState; - - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); - - if (!state.endEmitted) { - state.ended = true; - processNextTick(endReadableNT, state, stream); - } - } - - function endReadableNT(state, stream) { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } - } - - function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } - } - - function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; - } - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6))) - -/***/ }, -/* 15 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {'use strict'; - - if (!process.version || - process.version.indexOf('v0.') === 0 || - process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { - module.exports = nextTick; - } else { - module.exports = process.nextTick; - } - - function nextTick(fn, arg1, arg2, arg3) { - if (typeof fn !== 'function') { - throw new TypeError('"callback" argument must be a function'); - } - var len = arguments.length; - var args, i; - switch (len) { - case 0: - case 1: - return process.nextTick(fn); - case 2: - return process.nextTick(function afterTickOne() { - fn.call(null, arg1); - }); - case 3: - return process.nextTick(function afterTickTwo() { - fn.call(null, arg1, arg2); - }); - case 4: - return process.nextTick(function afterTickThree() { - fn.call(null, arg1, arg2, arg3); - }); - default: - args = new Array(len - 1); - i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - return process.nextTick(function afterTick() { - fn.apply(null, args); - }); - } - } - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6))) - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; - }; - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(global) {'use strict'; - - var buffer = __webpack_require__(2); - var Buffer = buffer.Buffer; - var SlowBuffer = buffer.SlowBuffer; - var MAX_LEN = buffer.kMaxLength || 2147483647; - exports.alloc = function alloc(size, fill, encoding) { - if (typeof Buffer.alloc === 'function') { - return Buffer.alloc(size, fill, encoding); - } - if (typeof encoding === 'number') { - throw new TypeError('encoding must not be number'); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size > MAX_LEN) { - throw new RangeError('size is too large'); - } - var enc = encoding; - var _fill = fill; - if (_fill === undefined) { - enc = undefined; - _fill = 0; - } - var buf = new Buffer(size); - if (typeof _fill === 'string') { - var fillBuf = new Buffer(_fill, enc); - var flen = fillBuf.length; - var i = -1; - while (++i < size) { - buf[i] = fillBuf[i % flen]; - } - } else { - buf.fill(_fill); - } - return buf; - } - exports.allocUnsafe = function allocUnsafe(size) { - if (typeof Buffer.allocUnsafe === 'function') { - return Buffer.allocUnsafe(size); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size > MAX_LEN) { - throw new RangeError('size is too large'); - } - return new Buffer(size); - } - exports.from = function from(value, encodingOrOffset, length) { - if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) { - return Buffer.from(value, encodingOrOffset, length); - } - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number'); - } - if (typeof value === 'string') { - return new Buffer(value, encodingOrOffset); - } - if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { - var offset = encodingOrOffset; - if (arguments.length === 1) { - return new Buffer(value); - } - if (typeof offset === 'undefined') { - offset = 0; - } - var len = length; - if (typeof len === 'undefined') { - len = value.byteLength - offset; - } - if (offset >= value.byteLength) { - throw new RangeError('\'offset\' is out of bounds'); - } - if (len > value.byteLength - offset) { - throw new RangeError('\'length\' is out of bounds'); - } - return new Buffer(value.slice(offset, offset + len)); - } - if (Buffer.isBuffer(value)) { - var out = new Buffer(value.length); - value.copy(out, 0, 0, value.length); - return out; - } - if (value) { - if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) { - return new Buffer(value); - } - if (value.type === 'Buffer' && Array.isArray(value.data)) { - return new Buffer(value.data); - } - } - - throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.'); - } - exports.allocUnsafeSlow = function allocUnsafeSlow(size) { - if (typeof Buffer.allocUnsafeSlow === 'function') { - return Buffer.allocUnsafeSlow(size); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size >= MAX_LEN) { - throw new RangeError('size is too large'); - } - return new SlowBuffer(size); - } - - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) - -/***/ }, -/* 18 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors. - // - // 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. - - // NOTE: These type checking functions intentionally don't use `instanceof` - // because it is fragile and can be easily faked with `Object.create()`. - - function isArray(arg) { - if (Array.isArray) { - return Array.isArray(arg); - } - return objectToString(arg) === '[object Array]'; - } - exports.isArray = isArray; - - function isBoolean(arg) { - return typeof arg === 'boolean'; - } - exports.isBoolean = isBoolean; - - function isNull(arg) { - return arg === null; - } - exports.isNull = isNull; - - function isNullOrUndefined(arg) { - return arg == null; - } - exports.isNullOrUndefined = isNullOrUndefined; - - function isNumber(arg) { - return typeof arg === 'number'; - } - exports.isNumber = isNumber; - - function isString(arg) { - return typeof arg === 'string'; - } - exports.isString = isString; - - function isSymbol(arg) { - return typeof arg === 'symbol'; - } - exports.isSymbol = isSymbol; - - function isUndefined(arg) { - return arg === void 0; - } - exports.isUndefined = isUndefined; - - function isRegExp(re) { - return objectToString(re) === '[object RegExp]'; - } - exports.isRegExp = isRegExp; - - function isObject(arg) { - return typeof arg === 'object' && arg !== null; - } - exports.isObject = isObject; - - function isDate(d) { - return objectToString(d) === '[object Date]'; - } - exports.isDate = isDate; - - function isError(e) { - return (objectToString(e) === '[object Error]' || e instanceof Error); - } - exports.isError = isError; - - function isFunction(arg) { - return typeof arg === 'function'; - } - exports.isFunction = isFunction; - - function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; - } - exports.isPrimitive = isPrimitive; - - exports.isBuffer = Buffer.isBuffer; - - function objectToString(o) { - return Object.prototype.toString.call(o); - } - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - /* (ignored) */ - -/***/ }, -/* 20 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var Buffer = __webpack_require__(2).Buffer; - /**/ - var bufferShim = __webpack_require__(17); - /**/ - - module.exports = BufferList; - - function BufferList() { - this.head = null; - this.tail = null; - this.length = 0; - } - - BufferList.prototype.push = function (v) { - var entry = { data: v, next: null }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; - }; - - BufferList.prototype.unshift = function (v) { - var entry = { data: v, next: this.head }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - }; - - BufferList.prototype.shift = function () { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; - }; - - BufferList.prototype.clear = function () { - this.head = this.tail = null; - this.length = 0; - }; - - BufferList.prototype.join = function (s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) { - ret += s + p.data; - }return ret; - }; - - BufferList.prototype.concat = function (n) { - if (this.length === 0) return bufferShim.alloc(0); - if (this.length === 1) return this.head.data; - var ret = bufferShim.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - p.data.copy(ret, i); - i += p.data.length; - p = p.next; - } - return ret; - }; - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - // a duplex stream is just a stream that is both readable and writable. - // Since JS doesn't have multiple prototypal inheritance, this class - // prototypally inherits from Readable, and then parasitically from - // Writable. - - 'use strict'; - - /**/ - - var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - keys.push(key); - }return keys; - }; - /**/ - - module.exports = Duplex; - - /**/ - var processNextTick = __webpack_require__(15); - /**/ - - /**/ - var util = __webpack_require__(18); - util.inherits = __webpack_require__(12); - /**/ - - var Readable = __webpack_require__(14); - var Writable = __webpack_require__(22); - - util.inherits(Duplex, Readable); - - var keys = objectKeys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; - } - - function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - - Readable.call(this, options); - Writable.call(this, options); - - if (options && options.readable === false) this.readable = false; - - if (options && options.writable === false) this.writable = false; - - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; - - this.once('end', onend); - } - - // the no-half-open enforcer - function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - processNextTick(onEndNT, this); - } - - function onEndNT(self) { - self.end(); - } - - function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } - } - -/***/ }, -/* 22 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {// A bit simpler than readable streams. - // Implement an async ._write(chunk, encoding, cb), and it'll handle all - // the drain event emission and buffering. - - 'use strict'; - - module.exports = Writable; - - /**/ - var processNextTick = __webpack_require__(15); - /**/ - - /**/ - var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; - /**/ - - /**/ - var Duplex; - /**/ - - Writable.WritableState = WritableState; - - /**/ - var util = __webpack_require__(18); - util.inherits = __webpack_require__(12); - /**/ - - /**/ - var internalUtil = { - deprecate: __webpack_require__(23) - }; - /**/ - - /**/ - var Stream; - (function () { - try { - Stream = __webpack_require__(11); - } catch (_) {} finally { - if (!Stream) Stream = __webpack_require__(8).EventEmitter; - } - })(); - /**/ - - var Buffer = __webpack_require__(2).Buffer; - /**/ - var bufferShim = __webpack_require__(17); - /**/ - - util.inherits(Writable, Stream); - - function nop() {} - - function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; - } - - function WritableState(options, stream) { - Duplex = Duplex || __webpack_require__(21); - - options = options || {}; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~~this.highWaterMark; - - // drain event flag. - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // count buffered requests - this.bufferedRequestCount = 0; - - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); - } - - WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; - }; - - (function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function () { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.') - }); - } catch (_) {} - })(); - - // Test _writableState for inheritance to account for Duplex streams, - // whose prototype chain only points to Readable. - var realHasInstance; - if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function (object) { - if (realHasInstance.call(this, object)) return true; - - return object && object._writableState instanceof WritableState; - } - }); - } else { - realHasInstance = function (object) { - return object instanceof this; - }; - } - - function Writable(options) { - Duplex = Duplex || __webpack_require__(21); - - // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { - return new Writable(options); - } - - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - if (options) { - if (typeof options.write === 'function') this._write = options.write; - - if (typeof options.writev === 'function') this._writev = options.writev; - } - - Stream.call(this); - } - - // Otherwise people can pipe Writable streams, which is just wrong. - Writable.prototype.pipe = function () { - this.emit('error', new Error('Cannot pipe, not readable')); - }; - - function writeAfterEnd(stream, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - processNextTick(cb, er); - } - - // Checks that a user-supplied chunk is valid, especially for the particular - // mode the stream is in. Currently this means that `null` is never accepted - // and undefined/non-string values are only allowed in object mode. - function validChunk(stream, state, chunk, cb) { - var valid = true; - var er = false; - - if (chunk === null) { - er = new TypeError('May not write null values to stream'); - } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - if (er) { - stream.emit('error', er); - processNextTick(cb, er); - valid = false; - } - return valid; - } - - Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - var isBuf = Buffer.isBuffer(chunk); - - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - - if (typeof cb !== 'function') cb = nop; - - if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); - } - - return ret; - }; - - Writable.prototype.cork = function () { - var state = this._writableState; - - state.corked++; - }; - - Writable.prototype.uncork = function () { - var state = this._writableState; - - if (state.corked) { - state.corked--; - - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } - }; - - Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); - this._writableState.defaultEncoding = encoding; - return this; - }; - - function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = bufferShim.from(chunk, encoding); - } - return chunk; - } - - // if we're already writing something, then just put this - // in the queue, and wait our turn. Otherwise, call _write - // If we return false, then we need a drain event, so set that flag. - function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - chunk = decodeChunk(state, chunk, encoding); - if (Buffer.isBuffer(chunk)) encoding = 'buffer'; - } - var len = state.objectMode ? 1 : chunk.length; - - state.length += len; - - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = new WriteReq(chunk, encoding, cb); - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - - return ret; - } - - function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; - } - - function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - if (sync) processNextTick(cb, er);else cb(er); - - stream._writableState.errorEmitted = true; - stream.emit('error', er); - } - - function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; - } - - function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - - onwriteStateUpdate(state); - - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state); - - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - - if (sync) { - /**/ - asyncWrite(afterWrite, stream, state, finished, cb); - /**/ - } else { - afterWrite(stream, state, finished, cb); - } - } - } - - function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); - } - - // Must force callback to be called on nextTick, so that we don't - // emit 'drain' before the write() consumer gets the 'false' return - // value, and has a chance to attach a 'drain' listener. - function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } - } - - // if there's something in the buffer waiting, then process it - function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - - var count = 0; - while (entry) { - buffer[count] = entry; - entry = entry.next; - count += 1; - } - - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - - if (entry === null) state.lastBufferedRequest = null; - } - - state.bufferedRequestCount = 0; - state.bufferedRequest = entry; - state.bufferProcessing = false; - } - - Writable.prototype._write = function (chunk, encoding, cb) { - cb(new Error('_write() is not implemented')); - }; - - Writable.prototype._writev = null; - - Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); - }; - - function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; - } - - function prefinish(stream, state) { - if (!state.prefinished) { - state.prefinished = true; - stream.emit('prefinish'); - } - } - - function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - if (state.pendingcb === 0) { - prefinish(stream, state); - state.finished = true; - stream.emit('finish'); - } else { - prefinish(stream, state); - } - } - return need; - } - - function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) processNextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; - } - - // It seems a linked list but it is not - // there will be only 2 of these for each stream - function CorkedRequest(state) { - var _this = this; - - this.next = null; - this.entry = null; - this.finish = function (err) { - var entry = _this.entry; - _this.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = _this; - } else { - state.corkedRequestsFree = _this; - } - }; - } - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6))) - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - /* WEBPACK VAR INJECTION */(function(global) { - /** - * Module exports. - */ - - module.exports = deprecate; - - /** - * Mark that a method should not be used. - * Returns a modified function which warns once by default. - * - * If `localStorage.noDeprecation = true` is set, then it is a no-op. - * - * If `localStorage.throwDeprecation = true` is set, then deprecated functions - * will throw an Error when invoked. - * - * If `localStorage.traceDeprecation = true` is set, then deprecated functions - * will invoke `console.trace()` instead of `console.error()`. - * - * @param {Function} fn - the function to deprecate - * @param {String} msg - the string to print to the console when `fn` is invoked - * @returns {Function} a new "deprecated" version of `fn` - * @api public - */ - - function deprecate (fn, msg) { - if (config('noDeprecation')) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg); - } else if (config('traceDeprecation')) { - console.trace(msg); - } else { - console.warn(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; - } - - /** - * Checks `localStorage` for boolean values for the given `name`. - * - * @param {String} name - * @returns {Boolean} - * @api private - */ - - function config (name) { - // accessing global.localStorage can trigger a DOMException in sandboxed iframes - try { - if (!global.localStorage) return false; - } catch (_) { - return false; - } - var val = global.localStorage[name]; - if (null == val) return false; - return String(val).toLowerCase() === 'true'; - } - - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) - -/***/ }, -/* 24 */ -/***/ function(module, exports, __webpack_require__) { - - // Copyright Joyent, Inc. and other Node contributors. - // - // 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. - - var Buffer = __webpack_require__(2).Buffer; - - var isBufferEncoding = Buffer.isEncoding - || function(encoding) { - switch (encoding && encoding.toLowerCase()) { - case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true; - default: return false; - } - } - - - function assertEncoding(encoding) { - if (encoding && !isBufferEncoding(encoding)) { - throw new Error('Unknown encoding: ' + encoding); - } - } - - // StringDecoder provides an interface for efficiently splitting a series of - // buffers into a series of JS strings without breaking apart multi-byte - // characters. CESU-8 is handled as part of the UTF-8 encoding. - // - // @TODO Handling all encodings inside a single object makes it very difficult - // to reason about this code, so it should be split up in the future. - // @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code - // points as used by CESU-8. - var StringDecoder = exports.StringDecoder = function(encoding) { - this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); - assertEncoding(encoding); - switch (this.encoding) { - case 'utf8': - // CESU-8 represents each of Surrogate Pair by 3-bytes - this.surrogateSize = 3; - break; - case 'ucs2': - case 'utf16le': - // UTF-16 represents each of Surrogate Pair by 2-bytes - this.surrogateSize = 2; - this.detectIncompleteChar = utf16DetectIncompleteChar; - break; - case 'base64': - // Base-64 stores 3 bytes in 4 chars, and pads the remainder. - this.surrogateSize = 3; - this.detectIncompleteChar = base64DetectIncompleteChar; - break; - default: - this.write = passThroughWrite; - return; - } - - // Enough space to store all bytes of a single character. UTF-8 needs 4 - // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). - this.charBuffer = new Buffer(6); - // Number of bytes received for the current incomplete multi-byte character. - this.charReceived = 0; - // Number of bytes expected for the current incomplete multi-byte character. - this.charLength = 0; - }; - - - // write decodes the given buffer and returns it as JS string that is - // guaranteed to not contain any partial multi-byte characters. Any partial - // character found at the end of the buffer is buffered up, and will be - // returned when calling write again with the remaining bytes. - // - // Note: Converting a Buffer containing an orphan surrogate to a String - // currently works, but converting a String to a Buffer (via `new Buffer`, or - // Buffer#write) will replace incomplete surrogates with the unicode - // replacement character. See https://codereview.chromium.org/121173009/ . - StringDecoder.prototype.write = function(buffer) { - var charStr = ''; - // if our last write ended with an incomplete multibyte character - while (this.charLength) { - // determine how many remaining bytes this buffer has to offer for this char - var available = (buffer.length >= this.charLength - this.charReceived) ? - this.charLength - this.charReceived : - buffer.length; - - // add the new bytes to the char buffer - buffer.copy(this.charBuffer, this.charReceived, 0, available); - this.charReceived += available; - - if (this.charReceived < this.charLength) { - // still not enough chars in this buffer? wait for more ... - return ''; - } - - // remove bytes belonging to the current character from the buffer - buffer = buffer.slice(available, buffer.length); - - // get the character that was split - charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); - - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - var charCode = charStr.charCodeAt(charStr.length - 1); - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - this.charLength += this.surrogateSize; - charStr = ''; - continue; - } - this.charReceived = this.charLength = 0; - - // if there are no more bytes in this buffer, just emit our char - if (buffer.length === 0) { - return charStr; - } - break; - } - - // determine and set charLength / charReceived - this.detectIncompleteChar(buffer); - - var end = buffer.length; - if (this.charLength) { - // buffer the incomplete character bytes we got - buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end); - end -= this.charReceived; - } - - charStr += buffer.toString(this.encoding, 0, end); - - var end = charStr.length - 1; - var charCode = charStr.charCodeAt(end); - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - var size = this.surrogateSize; - this.charLength += size; - this.charReceived += size; - this.charBuffer.copy(this.charBuffer, size, 0, size); - buffer.copy(this.charBuffer, 0, 0, size); - return charStr.substring(0, end); - } - - // or just emit the charStr - return charStr; - }; - - // detectIncompleteChar determines if there is an incomplete UTF-8 character at - // the end of the given buffer. If so, it sets this.charLength to the byte - // length that character, and sets this.charReceived to the number of bytes - // that are available for this character. - StringDecoder.prototype.detectIncompleteChar = function(buffer) { - // determine how many bytes we have to check at the end of this buffer - var i = (buffer.length >= 3) ? 3 : buffer.length; - - // Figure out if one of the last i bytes of our buffer announces an - // incomplete char. - for (; i > 0; i--) { - var c = buffer[buffer.length - i]; - - // See http://en.wikipedia.org/wiki/UTF-8#Description - - // 110XXXXX - if (i == 1 && c >> 5 == 0x06) { - this.charLength = 2; - break; - } - - // 1110XXXX - if (i <= 2 && c >> 4 == 0x0E) { - this.charLength = 3; - break; - } - - // 11110XXX - if (i <= 3 && c >> 3 == 0x1E) { - this.charLength = 4; - break; - } - } - this.charReceived = i; - }; - - StringDecoder.prototype.end = function(buffer) { - var res = ''; - if (buffer && buffer.length) - res = this.write(buffer); - - if (this.charReceived) { - var cr = this.charReceived; - var buf = this.charBuffer; - var enc = this.encoding; - res += buf.slice(0, cr).toString(enc); - } - - return res; - }; - - function passThroughWrite(buffer) { - return buffer.toString(this.encoding); - } - - function utf16DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 2; - this.charLength = this.charReceived ? 2 : 0; - } - - function base64DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 3; - this.charLength = this.charReceived ? 3 : 0; - } - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - // a transform stream is a readable/writable stream where you do - // something with the data. Sometimes it's called a "filter", - // but that's not a great name for it, since that implies a thing where - // some bits pass through, and others are simply ignored. (That would - // be a valid example of a transform, of course.) - // - // While the output is causally related to the input, it's not a - // necessarily symmetric or synchronous transformation. For example, - // a zlib stream might take multiple plain-text writes(), and then - // emit a single compressed chunk some time in the future. - // - // Here's how this works: - // - // The Transform stream has all the aspects of the readable and writable - // stream classes. When you write(chunk), that calls _write(chunk,cb) - // internally, and returns false if there's a lot of pending writes - // buffered up. When you call read(), that calls _read(n) until - // there's enough pending readable data buffered up. - // - // In a transform stream, the written data is placed in a buffer. When - // _read(n) is called, it transforms the queued up data, calling the - // buffered _write cb's as it consumes chunks. If consuming a single - // written chunk would result in multiple output chunks, then the first - // outputted bit calls the readcb, and subsequent chunks just go into - // the read buffer, and will cause it to emit 'readable' if necessary. - // - // This way, back-pressure is actually determined by the reading side, - // since _read has to be called to start processing a new chunk. However, - // a pathological inflate type of transform can cause excessive buffering - // here. For example, imagine a stream where every byte of input is - // interpreted as an integer from 0-255, and then results in that many - // bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in - // 1kb of data being output. In this case, you could write a very small - // amount of input, and end up with a very large amount of output. In - // such a pathological inflating mechanism, there'd be no way to tell - // the system to stop doing the transform. A single 4MB write could - // cause the system to run out of memory. - // - // However, even in such a pathological case, only a single written chunk - // would be consumed, and then the rest would wait (un-transformed) until - // the results of the previous transformed chunk were consumed. - - 'use strict'; - - module.exports = Transform; - - var Duplex = __webpack_require__(21); - - /**/ - var util = __webpack_require__(18); - util.inherits = __webpack_require__(12); - /**/ - - util.inherits(Transform, Duplex); - - function TransformState(stream) { - this.afterTransform = function (er, data) { - return afterTransform(stream, er, data); - }; - - this.needTransform = false; - this.transforming = false; - this.writecb = null; - this.writechunk = null; - this.writeencoding = null; - } - - function afterTransform(stream, er, data) { - var ts = stream._transformState; - ts.transforming = false; - - var cb = ts.writecb; - - if (!cb) return stream.emit('error', new Error('no writecb in Transform class')); - - ts.writechunk = null; - ts.writecb = null; - - if (data !== null && data !== undefined) stream.push(data); - - cb(er); - - var rs = stream._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - stream._read(rs.highWaterMark); - } - } - - function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - - Duplex.call(this, options); - - this._transformState = new TransformState(this); - - var stream = this; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - - if (typeof options.flush === 'function') this._flush = options.flush; - } - - // When the writable side finishes, then flush out anything remaining. - this.once('prefinish', function () { - if (typeof this._flush === 'function') this._flush(function (er, data) { - done(stream, er, data); - });else done(stream); - }); - } - - Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); - }; - - // This is the part where you do stuff! - // override this function in implementation classes. - // 'chunk' is an input chunk. - // - // Call `push(newChunk)` to pass along transformed output - // to the readable side. You may call 'push' zero or more times. - // - // Call `cb(err)` when you are done with this chunk. If you pass - // an error, then that'll put the hurt on the whole operation. If you - // never call cb(), then you'll never get another chunk. - Transform.prototype._transform = function (chunk, encoding, cb) { - throw new Error('_transform() is not implemented'); - }; - - Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } - }; - - // Doesn't matter what the args are here. - // _transform does all the work. - // That we got here means that the readable side wants more data. - Transform.prototype._read = function (n) { - var ts = this._transformState; - - if (ts.writechunk !== null && ts.writecb && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } - }; - - function done(stream, er, data) { - if (er) return stream.emit('error', er); - - if (data !== null && data !== undefined) stream.push(data); - - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - var ws = stream._writableState; - var ts = stream._transformState; - - if (ws.length) throw new Error('Calling transform done when ws.length != 0'); - - if (ts.transforming) throw new Error('Calling transform done when still transforming'); - - return stream.push(null); - } - -/***/ }, -/* 26 */ -/***/ function(module, exports, __webpack_require__) { - - // a passthrough stream. - // basically just the most minimal sort of Transform stream. - // Every written chunk gets output as-is. - - 'use strict'; - - module.exports = PassThrough; - - var Transform = __webpack_require__(25); - - /**/ - var util = __webpack_require__(18); - util.inherits = __webpack_require__(12); - /**/ - - util.inherits(PassThrough, Transform); - - function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - - Transform.call(this, options); - } - - PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); - }; - -/***/ }, -/* 27 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(22) - - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(21) - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(25) - - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(26) - - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - - var zlib_inflate = __webpack_require__(32); - var utils = __webpack_require__(33); - var strings = __webpack_require__(38); - var c = __webpack_require__(39); - var msg = __webpack_require__(40); - var ZStream = __webpack_require__(41); - var GZheader = __webpack_require__(42); - - var toString = Object.prototype.toString; - - /** - * class Inflate - * - * Generic JS-style wrapper for zlib calls. If you don't need - * streaming behaviour - use more simple functions: [[inflate]] - * and [[inflateRaw]]. - **/ - - /* internal - * inflate.chunks -> Array - * - * Chunks of output data, if [[Inflate#onData]] not overriden. - **/ - - /** - * Inflate.result -> Uint8Array|Array|String - * - * Uncompressed result, generated by default [[Inflate#onData]] - * and [[Inflate#onEnd]] handlers. Filled after you push last chunk - * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you - * push a chunk with explicit flush (call [[Inflate#push]] with - * `Z_SYNC_FLUSH` param). - **/ - - /** - * Inflate.err -> Number - * - * Error code after inflate finished. 0 (Z_OK) on success. - * Should be checked if broken data possible. - **/ - - /** - * Inflate.msg -> String - * - * Error message, if [[Inflate.err]] != 0 - **/ - - - /** - * new Inflate(options) - * - options (Object): zlib inflate options. - * - * Creates new inflator instance with specified params. Throws exception - * on bad params. Supported options: - * - * - `windowBits` - * - `dictionary` - * - * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) - * for more information on these. - * - * Additional options, for internal needs: - * - * - `chunkSize` - size of generated data chunks (16K by default) - * - `raw` (Boolean) - do raw inflate - * - `to` (String) - if equal to 'string', then result will be converted - * from utf8 to utf16 (javascript) string. When string output requested, - * chunk length can differ from `chunkSize`, depending on content. - * - * By default, when no options set, autodetect deflate/gzip data format via - * wrapper header. - * - * ##### Example: - * - * ```javascript - * var pako = require('pako') - * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9]) - * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]); - * - * var inflate = new pako.Inflate({ level: 3}); - * - * inflate.push(chunk1, false); - * inflate.push(chunk2, true); // true -> last chunk - * - * if (inflate.err) { throw new Error(inflate.err); } - * - * console.log(inflate.result); - * ``` - **/ - function Inflate(options) { - if (!(this instanceof Inflate)) return new Inflate(options); - - this.options = utils.assign({ - chunkSize: 16384, - windowBits: 0, - to: '' - }, options || {}); - - var opt = this.options; - - // Force window size for `raw` data, if not set directly, - // because we have no header for autodetect. - if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) { - opt.windowBits = -opt.windowBits; - if (opt.windowBits === 0) { opt.windowBits = -15; } - } - - // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate - if ((opt.windowBits >= 0) && (opt.windowBits < 16) && - !(options && options.windowBits)) { - opt.windowBits += 32; - } - - // Gzip header has no info about windows size, we can do autodetect only - // for deflate. So, if window size not set, force it to max when gzip possible - if ((opt.windowBits > 15) && (opt.windowBits < 48)) { - // bit 3 (16) -> gzipped data - // bit 4 (32) -> autodetect gzip/deflate - if ((opt.windowBits & 15) === 0) { - opt.windowBits |= 15; - } - } - - this.err = 0; // error code, if happens (0 = Z_OK) - this.msg = ''; // error message - this.ended = false; // used to avoid multiple onEnd() calls - this.chunks = []; // chunks of compressed data - - this.strm = new ZStream(); - this.strm.avail_out = 0; - - var status = zlib_inflate.inflateInit2( - this.strm, - opt.windowBits - ); - - if (status !== c.Z_OK) { - throw new Error(msg[status]); - } - - this.header = new GZheader(); - - zlib_inflate.inflateGetHeader(this.strm, this.header); - } - - /** - * Inflate#push(data[, mode]) -> Boolean - * - data (Uint8Array|Array|ArrayBuffer|String): input data - * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes. - * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH. - * - * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with - * new output chunks. Returns `true` on success. The last data block must have - * mode Z_FINISH (or `true`). That will flush internal pending buffers and call - * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you - * can use mode Z_SYNC_FLUSH, keeping the decompression context. - * - * On fail call [[Inflate#onEnd]] with error code and return false. - * - * We strongly recommend to use `Uint8Array` on input for best speed (output - * format is detected automatically). Also, don't skip last param and always - * use the same type in your code (boolean or number). That will improve JS speed. - * - * For regular `Array`-s make sure all elements are [0..255]. - * - * ##### Example - * - * ```javascript - * push(chunk, false); // push one of data chunks - * ... - * push(chunk, true); // push last chunk - * ``` - **/ - Inflate.prototype.push = function (data, mode) { - var strm = this.strm; - var chunkSize = this.options.chunkSize; - var dictionary = this.options.dictionary; - var status, _mode; - var next_out_utf8, tail, utf8str; - var dict; - - // Flag to properly process Z_BUF_ERROR on testing inflate call - // when we check that all output data was flushed. - var allowBufError = false; - - if (this.ended) { return false; } - _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH); - - // Convert data if needed - if (typeof data === 'string') { - // Only binary strings can be decompressed on practice - strm.input = strings.binstring2buf(data); - } else if (toString.call(data) === '[object ArrayBuffer]') { - strm.input = new Uint8Array(data); - } else { - strm.input = data; - } - - strm.next_in = 0; - strm.avail_in = strm.input.length; - - do { - if (strm.avail_out === 0) { - strm.output = new utils.Buf8(chunkSize); - strm.next_out = 0; - strm.avail_out = chunkSize; - } - - status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */ - - if (status === c.Z_NEED_DICT && dictionary) { - // Convert data if needed - if (typeof dictionary === 'string') { - dict = strings.string2buf(dictionary); - } else if (toString.call(dictionary) === '[object ArrayBuffer]') { - dict = new Uint8Array(dictionary); - } else { - dict = dictionary; - } - - status = zlib_inflate.inflateSetDictionary(this.strm, dict); - - } - - if (status === c.Z_BUF_ERROR && allowBufError === true) { - status = c.Z_OK; - allowBufError = false; - } - - if (status !== c.Z_STREAM_END && status !== c.Z_OK) { - this.onEnd(status); - this.ended = true; - return false; - } - - if (strm.next_out) { - if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) { - - if (this.options.to === 'string') { - - next_out_utf8 = strings.utf8border(strm.output, strm.next_out); - - tail = strm.next_out - next_out_utf8; - utf8str = strings.buf2string(strm.output, next_out_utf8); - - // move tail - strm.next_out = tail; - strm.avail_out = chunkSize - tail; - if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); } - - this.onData(utf8str); - - } else { - this.onData(utils.shrinkBuf(strm.output, strm.next_out)); - } - } - } - - // When no more input data, we should check that internal inflate buffers - // are flushed. The only way to do it when avail_out = 0 - run one more - // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR. - // Here we set flag to process this error properly. - // - // NOTE. Deflate does not return error in this case and does not needs such - // logic. - if (strm.avail_in === 0 && strm.avail_out === 0) { - allowBufError = true; - } - - } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END); - - if (status === c.Z_STREAM_END) { - _mode = c.Z_FINISH; - } - - // Finalize on the last chunk. - if (_mode === c.Z_FINISH) { - status = zlib_inflate.inflateEnd(this.strm); - this.onEnd(status); - this.ended = true; - return status === c.Z_OK; - } - - // callback interim results if Z_SYNC_FLUSH. - if (_mode === c.Z_SYNC_FLUSH) { - this.onEnd(c.Z_OK); - strm.avail_out = 0; - return true; - } - - return true; - }; - - - /** - * Inflate#onData(chunk) -> Void - * - chunk (Uint8Array|Array|String): ouput data. Type of array depends - * on js engine support. When string output requested, each chunk - * will be string. - * - * By default, stores data blocks in `chunks[]` property and glue - * those in `onEnd`. Override this handler, if you need another behaviour. - **/ - Inflate.prototype.onData = function (chunk) { - this.chunks.push(chunk); - }; - - - /** - * Inflate#onEnd(status) -> Void - * - status (Number): inflate status. 0 (Z_OK) on success, - * other if not. - * - * Called either after you tell inflate that the input stream is - * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH) - * or if an error happened. By default - join collected chunks, - * free memory and fill `results` / `err` properties. - **/ - Inflate.prototype.onEnd = function (status) { - // On success - join - if (status === c.Z_OK) { - if (this.options.to === 'string') { - // Glue & convert here, until we teach pako to send - // utf8 alligned strings to onData - this.result = this.chunks.join(''); - } else { - this.result = utils.flattenChunks(this.chunks); - } - } - this.chunks = []; - this.err = status; - this.msg = this.strm.msg; - }; - - - /** - * inflate(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to decompress. - * - options (Object): zlib inflate options. - * - * Decompress `data` with inflate/ungzip and `options`. Autodetect - * format via wrapper header by default. That's why we don't provide - * separate `ungzip` method. - * - * Supported options are: - * - * - windowBits - * - * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) - * for more information. - * - * Sugar (options): - * - * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify - * negative windowBits implicitly. - * - `to` (String) - if equal to 'string', then result will be converted - * from utf8 to utf16 (javascript) string. When string output requested, - * chunk length can differ from `chunkSize`, depending on content. - * - * - * ##### Example: - * - * ```javascript - * var pako = require('pako') - * , input = pako.deflate([1,2,3,4,5,6,7,8,9]) - * , output; - * - * try { - * output = pako.inflate(input); - * } catch (err) - * console.log(err); - * } - * ``` - **/ - function inflate(input, options) { - var inflator = new Inflate(options); - - inflator.push(input, true); - - // That will never happens, if you don't cheat with options :) - if (inflator.err) { throw inflator.msg || msg[inflator.err]; } - - return inflator.result; - } - - - /** - * inflateRaw(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to decompress. - * - options (Object): zlib inflate options. - * - * The same as [[inflate]], but creates raw data, without wrapper - * (header and adler32 crc). - **/ - function inflateRaw(input, options) { - options = options || {}; - options.raw = true; - return inflate(input, options); - } - - - /** - * ungzip(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to decompress. - * - options (Object): zlib inflate options. - * - * Just shortcut to [[inflate]], because it autodetects format - * by header.content. Done for convenience. - **/ - - - exports.Inflate = Inflate; - exports.inflate = inflate; - exports.inflateRaw = inflateRaw; - exports.ungzip = inflate; - - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - - var utils = __webpack_require__(33); - var adler32 = __webpack_require__(34); - var crc32 = __webpack_require__(35); - var inflate_fast = __webpack_require__(36); - var inflate_table = __webpack_require__(37); - - var CODES = 0; - var LENS = 1; - var DISTS = 2; - - /* Public constants ==========================================================*/ - /* ===========================================================================*/ - - - /* Allowed flush values; see deflate() and inflate() below for details */ - //var Z_NO_FLUSH = 0; - //var Z_PARTIAL_FLUSH = 1; - //var Z_SYNC_FLUSH = 2; - //var Z_FULL_FLUSH = 3; - var Z_FINISH = 4; - var Z_BLOCK = 5; - var Z_TREES = 6; - - - /* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ - var Z_OK = 0; - var Z_STREAM_END = 1; - var Z_NEED_DICT = 2; - //var Z_ERRNO = -1; - var Z_STREAM_ERROR = -2; - var Z_DATA_ERROR = -3; - var Z_MEM_ERROR = -4; - var Z_BUF_ERROR = -5; - //var Z_VERSION_ERROR = -6; - - /* The deflate compression method */ - var Z_DEFLATED = 8; - - - /* STATES ====================================================================*/ - /* ===========================================================================*/ - - - var HEAD = 1; /* i: waiting for magic header */ - var FLAGS = 2; /* i: waiting for method and flags (gzip) */ - var TIME = 3; /* i: waiting for modification time (gzip) */ - var OS = 4; /* i: waiting for extra flags and operating system (gzip) */ - var EXLEN = 5; /* i: waiting for extra length (gzip) */ - var EXTRA = 6; /* i: waiting for extra bytes (gzip) */ - var NAME = 7; /* i: waiting for end of file name (gzip) */ - var COMMENT = 8; /* i: waiting for end of comment (gzip) */ - var HCRC = 9; /* i: waiting for header crc (gzip) */ - var DICTID = 10; /* i: waiting for dictionary check value */ - var DICT = 11; /* waiting for inflateSetDictionary() call */ - var TYPE = 12; /* i: waiting for type bits, including last-flag bit */ - var TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */ - var STORED = 14; /* i: waiting for stored size (length and complement) */ - var COPY_ = 15; /* i/o: same as COPY below, but only first time in */ - var COPY = 16; /* i/o: waiting for input or output to copy stored block */ - var TABLE = 17; /* i: waiting for dynamic block table lengths */ - var LENLENS = 18; /* i: waiting for code length code lengths */ - var CODELENS = 19; /* i: waiting for length/lit and distance code lengths */ - var LEN_ = 20; /* i: same as LEN below, but only first time in */ - var LEN = 21; /* i: waiting for length/lit/eob code */ - var LENEXT = 22; /* i: waiting for length extra bits */ - var DIST = 23; /* i: waiting for distance code */ - var DISTEXT = 24; /* i: waiting for distance extra bits */ - var MATCH = 25; /* o: waiting for output space to copy string */ - var LIT = 26; /* o: waiting for output space to write literal */ - var CHECK = 27; /* i: waiting for 32-bit check value */ - var LENGTH = 28; /* i: waiting for 32-bit length (gzip) */ - var DONE = 29; /* finished check, done -- remain here until reset */ - var BAD = 30; /* got a data error -- remain here until reset */ - var MEM = 31; /* got an inflate() memory error -- remain here until reset */ - var SYNC = 32; /* looking for synchronization bytes to restart inflate() */ - - /* ===========================================================================*/ - - - - var ENOUGH_LENS = 852; - var ENOUGH_DISTS = 592; - //var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); - - var MAX_WBITS = 15; - /* 32K LZ77 window */ - var DEF_WBITS = MAX_WBITS; - - - function zswap32(q) { - return (((q >>> 24) & 0xff) + - ((q >>> 8) & 0xff00) + - ((q & 0xff00) << 8) + - ((q & 0xff) << 24)); - } - - - function InflateState() { - this.mode = 0; /* current inflate mode */ - this.last = false; /* true if processing last block */ - this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */ - this.havedict = false; /* true if dictionary provided */ - this.flags = 0; /* gzip header method and flags (0 if zlib) */ - this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */ - this.check = 0; /* protected copy of check value */ - this.total = 0; /* protected copy of output count */ - // TODO: may be {} - this.head = null; /* where to save gzip header information */ - - /* sliding window */ - this.wbits = 0; /* log base 2 of requested window size */ - this.wsize = 0; /* window size or zero if not using window */ - this.whave = 0; /* valid bytes in the window */ - this.wnext = 0; /* window write index */ - this.window = null; /* allocated sliding window, if needed */ - - /* bit accumulator */ - this.hold = 0; /* input bit accumulator */ - this.bits = 0; /* number of bits in "in" */ - - /* for string and stored block copying */ - this.length = 0; /* literal or length of data to copy */ - this.offset = 0; /* distance back to copy string from */ - - /* for table and code decoding */ - this.extra = 0; /* extra bits needed */ - - /* fixed and dynamic code tables */ - this.lencode = null; /* starting table for length/literal codes */ - this.distcode = null; /* starting table for distance codes */ - this.lenbits = 0; /* index bits for lencode */ - this.distbits = 0; /* index bits for distcode */ - - /* dynamic table building */ - this.ncode = 0; /* number of code length code lengths */ - this.nlen = 0; /* number of length code lengths */ - this.ndist = 0; /* number of distance code lengths */ - this.have = 0; /* number of code lengths in lens[] */ - this.next = null; /* next available space in codes[] */ - - this.lens = new utils.Buf16(320); /* temporary storage for code lengths */ - this.work = new utils.Buf16(288); /* work area for code table building */ - - /* - because we don't have pointers in js, we use lencode and distcode directly - as buffers so we don't need codes - */ - //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */ - this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */ - this.distdyn = null; /* dynamic table for distance codes (JS specific) */ - this.sane = 0; /* if false, allow invalid distance too far */ - this.back = 0; /* bits back of last unprocessed length/lit */ - this.was = 0; /* initial length of match */ - } - - function inflateResetKeep(strm) { - var state; - - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - strm.total_in = strm.total_out = state.total = 0; - strm.msg = ''; /*Z_NULL*/ - if (state.wrap) { /* to support ill-conceived Java test suite */ - strm.adler = state.wrap & 1; - } - state.mode = HEAD; - state.last = 0; - state.havedict = 0; - state.dmax = 32768; - state.head = null/*Z_NULL*/; - state.hold = 0; - state.bits = 0; - //state.lencode = state.distcode = state.next = state.codes; - state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS); - state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS); - - state.sane = 1; - state.back = -1; - //Tracev((stderr, "inflate: reset\n")); - return Z_OK; - } - - function inflateReset(strm) { - var state; - - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - state.wsize = 0; - state.whave = 0; - state.wnext = 0; - return inflateResetKeep(strm); - - } - - function inflateReset2(strm, windowBits) { - var wrap; - var state; - - /* get the state */ - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - - /* extract wrap request from windowBits parameter */ - if (windowBits < 0) { - wrap = 0; - windowBits = -windowBits; - } - else { - wrap = (windowBits >> 4) + 1; - if (windowBits < 48) { - windowBits &= 15; - } - } - - /* set number of window bits, free window if different */ - if (windowBits && (windowBits < 8 || windowBits > 15)) { - return Z_STREAM_ERROR; - } - if (state.window !== null && state.wbits !== windowBits) { - state.window = null; - } - - /* update state and reset the rest of it */ - state.wrap = wrap; - state.wbits = windowBits; - return inflateReset(strm); - } - - function inflateInit2(strm, windowBits) { - var ret; - var state; - - if (!strm) { return Z_STREAM_ERROR; } - //strm.msg = Z_NULL; /* in case we return an error */ - - state = new InflateState(); - - //if (state === Z_NULL) return Z_MEM_ERROR; - //Tracev((stderr, "inflate: allocated\n")); - strm.state = state; - state.window = null/*Z_NULL*/; - ret = inflateReset2(strm, windowBits); - if (ret !== Z_OK) { - strm.state = null/*Z_NULL*/; - } - return ret; - } - - function inflateInit(strm) { - return inflateInit2(strm, DEF_WBITS); - } - - - /* - Return state with length and distance decoding tables and index sizes set to - fixed code decoding. Normally this returns fixed tables from inffixed.h. - If BUILDFIXED is defined, then instead this routine builds the tables the - first time it's called, and returns those tables the first time and - thereafter. This reduces the size of the code by about 2K bytes, in - exchange for a little execution time. However, BUILDFIXED should not be - used for threaded applications, since the rewriting of the tables and virgin - may not be thread-safe. - */ - var virgin = true; - - var lenfix, distfix; // We have no pointers in JS, so keep tables separate - - function fixedtables(state) { - /* build fixed huffman tables if first call (may not be thread safe) */ - if (virgin) { - var sym; - - lenfix = new utils.Buf32(512); - distfix = new utils.Buf32(32); - - /* literal/length table */ - sym = 0; - while (sym < 144) { state.lens[sym++] = 8; } - while (sym < 256) { state.lens[sym++] = 9; } - while (sym < 280) { state.lens[sym++] = 7; } - while (sym < 288) { state.lens[sym++] = 8; } - - inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); - - /* distance table */ - sym = 0; - while (sym < 32) { state.lens[sym++] = 5; } - - inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); - - /* do this just once */ - virgin = false; - } - - state.lencode = lenfix; - state.lenbits = 9; - state.distcode = distfix; - state.distbits = 5; - } - - - /* - Update the window with the last wsize (normally 32K) bytes written before - returning. If window does not exist yet, create it. This is only called - when a window is already in use, or when output has been written during this - inflate call, but the end of the deflate stream has not been reached yet. - It is also called to create a window for dictionary data when a dictionary - is loaded. - - Providing output buffers larger than 32K to inflate() should provide a speed - advantage, since only the last 32K of output is copied to the sliding window - upon return from inflate(), and since all distances after the first 32K of - output will fall in the output data, making match copies simpler and faster. - The advantage may be dependent on the size of the processor's data caches. - */ - function updatewindow(strm, src, end, copy) { - var dist; - var state = strm.state; - - /* if it hasn't been done already, allocate space for the window */ - if (state.window === null) { - state.wsize = 1 << state.wbits; - state.wnext = 0; - state.whave = 0; - - state.window = new utils.Buf8(state.wsize); - } - - /* copy state->wsize or less output bytes into the circular window */ - if (copy >= state.wsize) { - utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0); - state.wnext = 0; - state.whave = state.wsize; - } - else { - dist = state.wsize - state.wnext; - if (dist > copy) { - dist = copy; - } - //zmemcpy(state->window + state->wnext, end - copy, dist); - utils.arraySet(state.window, src, end - copy, dist, state.wnext); - copy -= dist; - if (copy) { - //zmemcpy(state->window, end - copy, copy); - utils.arraySet(state.window, src, end - copy, copy, 0); - state.wnext = copy; - state.whave = state.wsize; - } - else { - state.wnext += dist; - if (state.wnext === state.wsize) { state.wnext = 0; } - if (state.whave < state.wsize) { state.whave += dist; } - } - } - return 0; - } - - function inflate(strm, flush) { - var state; - var input, output; // input/output buffers - var next; /* next input INDEX */ - var put; /* next output INDEX */ - var have, left; /* available input and output */ - var hold; /* bit buffer */ - var bits; /* bits in bit buffer */ - var _in, _out; /* save starting available input and output */ - var copy; /* number of stored or match bytes to copy */ - var from; /* where to copy match bytes from */ - var from_source; - var here = 0; /* current decoding table entry */ - var here_bits, here_op, here_val; // paked "here" denormalized (JS specific) - //var last; /* parent table entry */ - var last_bits, last_op, last_val; // paked "last" denormalized (JS specific) - var len; /* length to copy for repeats, bits to drop */ - var ret; /* return code */ - var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */ - var opts; - - var n; // temporary var for NEED_BITS - - var order = /* permutation of code lengths */ - [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]; - - - if (!strm || !strm.state || !strm.output || - (!strm.input && strm.avail_in !== 0)) { - return Z_STREAM_ERROR; - } - - state = strm.state; - if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */ - - - //--- LOAD() --- - put = strm.next_out; - output = strm.output; - left = strm.avail_out; - next = strm.next_in; - input = strm.input; - have = strm.avail_in; - hold = state.hold; - bits = state.bits; - //--- - - _in = have; - _out = left; - ret = Z_OK; - - inf_leave: // goto emulation - for (;;) { - switch (state.mode) { - case HEAD: - if (state.wrap === 0) { - state.mode = TYPEDO; - break; - } - //=== NEEDBITS(16); - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */ - state.check = 0/*crc32(0L, Z_NULL, 0)*/; - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = FLAGS; - break; - } - state.flags = 0; /* expect zlib header */ - if (state.head) { - state.head.done = false; - } - if (!(state.wrap & 1) || /* check if zlib header allowed */ - (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) { - strm.msg = 'incorrect header check'; - state.mode = BAD; - break; - } - if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) { - strm.msg = 'unknown compression method'; - state.mode = BAD; - break; - } - //--- DROPBITS(4) ---// - hold >>>= 4; - bits -= 4; - //---// - len = (hold & 0x0f)/*BITS(4)*/ + 8; - if (state.wbits === 0) { - state.wbits = len; - } - else if (len > state.wbits) { - strm.msg = 'invalid window size'; - state.mode = BAD; - break; - } - state.dmax = 1 << len; - //Tracev((stderr, "inflate: zlib header ok\n")); - strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; - state.mode = hold & 0x200 ? DICTID : TYPE; - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - break; - case FLAGS: - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.flags = hold; - if ((state.flags & 0xff) !== Z_DEFLATED) { - strm.msg = 'unknown compression method'; - state.mode = BAD; - break; - } - if (state.flags & 0xe000) { - strm.msg = 'unknown header flags set'; - state.mode = BAD; - break; - } - if (state.head) { - state.head.text = ((hold >> 8) & 1); - } - if (state.flags & 0x0200) { - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = TIME; - /* falls through */ - case TIME: - //=== NEEDBITS(32); */ - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if (state.head) { - state.head.time = hold; - } - if (state.flags & 0x0200) { - //=== CRC4(state.check, hold) - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - hbuf[2] = (hold >>> 16) & 0xff; - hbuf[3] = (hold >>> 24) & 0xff; - state.check = crc32(state.check, hbuf, 4, 0); - //=== - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = OS; - /* falls through */ - case OS: - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if (state.head) { - state.head.xflags = (hold & 0xff); - state.head.os = (hold >> 8); - } - if (state.flags & 0x0200) { - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = EXLEN; - /* falls through */ - case EXLEN: - if (state.flags & 0x0400) { - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.length = hold; - if (state.head) { - state.head.extra_len = hold; - } - if (state.flags & 0x0200) { - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - } - else if (state.head) { - state.head.extra = null/*Z_NULL*/; - } - state.mode = EXTRA; - /* falls through */ - case EXTRA: - if (state.flags & 0x0400) { - copy = state.length; - if (copy > have) { copy = have; } - if (copy) { - if (state.head) { - len = state.head.extra_len - state.length; - if (!state.head.extra) { - // Use untyped array for more conveniend processing later - state.head.extra = new Array(state.head.extra_len); - } - utils.arraySet( - state.head.extra, - input, - next, - // extra field is limited to 65536 bytes - // - no need for additional size check - copy, - /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/ - len - ); - //zmemcpy(state.head.extra + len, next, - // len + copy > state.head.extra_max ? - // state.head.extra_max - len : copy); - } - if (state.flags & 0x0200) { - state.check = crc32(state.check, input, copy, next); - } - have -= copy; - next += copy; - state.length -= copy; - } - if (state.length) { break inf_leave; } - } - state.length = 0; - state.mode = NAME; - /* falls through */ - case NAME: - if (state.flags & 0x0800) { - if (have === 0) { break inf_leave; } - copy = 0; - do { - // TODO: 2 or 1 bytes? - len = input[next + copy++]; - /* use constant limit because in js we should not preallocate memory */ - if (state.head && len && - (state.length < 65536 /*state.head.name_max*/)) { - state.head.name += String.fromCharCode(len); - } - } while (len && copy < have); - - if (state.flags & 0x0200) { - state.check = crc32(state.check, input, copy, next); - } - have -= copy; - next += copy; - if (len) { break inf_leave; } - } - else if (state.head) { - state.head.name = null; - } - state.length = 0; - state.mode = COMMENT; - /* falls through */ - case COMMENT: - if (state.flags & 0x1000) { - if (have === 0) { break inf_leave; } - copy = 0; - do { - len = input[next + copy++]; - /* use constant limit because in js we should not preallocate memory */ - if (state.head && len && - (state.length < 65536 /*state.head.comm_max*/)) { - state.head.comment += String.fromCharCode(len); - } - } while (len && copy < have); - if (state.flags & 0x0200) { - state.check = crc32(state.check, input, copy, next); - } - have -= copy; - next += copy; - if (len) { break inf_leave; } - } - else if (state.head) { - state.head.comment = null; - } - state.mode = HCRC; - /* falls through */ - case HCRC: - if (state.flags & 0x0200) { - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if (hold !== (state.check & 0xffff)) { - strm.msg = 'header crc mismatch'; - state.mode = BAD; - break; - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - } - if (state.head) { - state.head.hcrc = ((state.flags >> 9) & 1); - state.head.done = true; - } - strm.adler = state.check = 0; - state.mode = TYPE; - break; - case DICTID: - //=== NEEDBITS(32); */ - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - strm.adler = state.check = zswap32(hold); - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = DICT; - /* falls through */ - case DICT: - if (state.havedict === 0) { - //--- RESTORE() --- - strm.next_out = put; - strm.avail_out = left; - strm.next_in = next; - strm.avail_in = have; - state.hold = hold; - state.bits = bits; - //--- - return Z_NEED_DICT; - } - strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; - state.mode = TYPE; - /* falls through */ - case TYPE: - if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; } - /* falls through */ - case TYPEDO: - if (state.last) { - //--- BYTEBITS() ---// - hold >>>= bits & 7; - bits -= bits & 7; - //---// - state.mode = CHECK; - break; - } - //=== NEEDBITS(3); */ - while (bits < 3) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.last = (hold & 0x01)/*BITS(1)*/; - //--- DROPBITS(1) ---// - hold >>>= 1; - bits -= 1; - //---// - - switch ((hold & 0x03)/*BITS(2)*/) { - case 0: /* stored block */ - //Tracev((stderr, "inflate: stored block%s\n", - // state.last ? " (last)" : "")); - state.mode = STORED; - break; - case 1: /* fixed block */ - fixedtables(state); - //Tracev((stderr, "inflate: fixed codes block%s\n", - // state.last ? " (last)" : "")); - state.mode = LEN_; /* decode codes */ - if (flush === Z_TREES) { - //--- DROPBITS(2) ---// - hold >>>= 2; - bits -= 2; - //---// - break inf_leave; - } - break; - case 2: /* dynamic block */ - //Tracev((stderr, "inflate: dynamic codes block%s\n", - // state.last ? " (last)" : "")); - state.mode = TABLE; - break; - case 3: - strm.msg = 'invalid block type'; - state.mode = BAD; - } - //--- DROPBITS(2) ---// - hold >>>= 2; - bits -= 2; - //---// - break; - case STORED: - //--- BYTEBITS() ---// /* go to byte boundary */ - hold >>>= bits & 7; - bits -= bits & 7; - //---// - //=== NEEDBITS(32); */ - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) { - strm.msg = 'invalid stored block lengths'; - state.mode = BAD; - break; - } - state.length = hold & 0xffff; - //Tracev((stderr, "inflate: stored length %u\n", - // state.length)); - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = COPY_; - if (flush === Z_TREES) { break inf_leave; } - /* falls through */ - case COPY_: - state.mode = COPY; - /* falls through */ - case COPY: - copy = state.length; - if (copy) { - if (copy > have) { copy = have; } - if (copy > left) { copy = left; } - if (copy === 0) { break inf_leave; } - //--- zmemcpy(put, next, copy); --- - utils.arraySet(output, input, next, copy, put); - //---// - have -= copy; - next += copy; - left -= copy; - put += copy; - state.length -= copy; - break; - } - //Tracev((stderr, "inflate: stored end\n")); - state.mode = TYPE; - break; - case TABLE: - //=== NEEDBITS(14); */ - while (bits < 14) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257; - //--- DROPBITS(5) ---// - hold >>>= 5; - bits -= 5; - //---// - state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1; - //--- DROPBITS(5) ---// - hold >>>= 5; - bits -= 5; - //---// - state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4; - //--- DROPBITS(4) ---// - hold >>>= 4; - bits -= 4; - //---// - //#ifndef PKZIP_BUG_WORKAROUND - if (state.nlen > 286 || state.ndist > 30) { - strm.msg = 'too many length or distance symbols'; - state.mode = BAD; - break; - } - //#endif - //Tracev((stderr, "inflate: table sizes ok\n")); - state.have = 0; - state.mode = LENLENS; - /* falls through */ - case LENLENS: - while (state.have < state.ncode) { - //=== NEEDBITS(3); - while (bits < 3) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.lens[order[state.have++]] = (hold & 0x07);//BITS(3); - //--- DROPBITS(3) ---// - hold >>>= 3; - bits -= 3; - //---// - } - while (state.have < 19) { - state.lens[order[state.have++]] = 0; - } - // We have separate tables & no pointers. 2 commented lines below not needed. - //state.next = state.codes; - //state.lencode = state.next; - // Switch to use dynamic table - state.lencode = state.lendyn; - state.lenbits = 7; - - opts = { bits: state.lenbits }; - ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); - state.lenbits = opts.bits; - - if (ret) { - strm.msg = 'invalid code lengths set'; - state.mode = BAD; - break; - } - //Tracev((stderr, "inflate: code lengths ok\n")); - state.have = 0; - state.mode = CODELENS; - /* falls through */ - case CODELENS: - while (state.have < state.nlen + state.ndist) { - for (;;) { - here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/ - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - if (here_val < 16) { - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - state.lens[state.have++] = here_val; - } - else { - if (here_val === 16) { - //=== NEEDBITS(here.bits + 2); - n = here_bits + 2; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - if (state.have === 0) { - strm.msg = 'invalid bit length repeat'; - state.mode = BAD; - break; - } - len = state.lens[state.have - 1]; - copy = 3 + (hold & 0x03);//BITS(2); - //--- DROPBITS(2) ---// - hold >>>= 2; - bits -= 2; - //---// - } - else if (here_val === 17) { - //=== NEEDBITS(here.bits + 3); - n = here_bits + 3; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - len = 0; - copy = 3 + (hold & 0x07);//BITS(3); - //--- DROPBITS(3) ---// - hold >>>= 3; - bits -= 3; - //---// - } - else { - //=== NEEDBITS(here.bits + 7); - n = here_bits + 7; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - len = 0; - copy = 11 + (hold & 0x7f);//BITS(7); - //--- DROPBITS(7) ---// - hold >>>= 7; - bits -= 7; - //---// - } - if (state.have + copy > state.nlen + state.ndist) { - strm.msg = 'invalid bit length repeat'; - state.mode = BAD; - break; - } - while (copy--) { - state.lens[state.have++] = len; - } - } - } - - /* handle error breaks in while */ - if (state.mode === BAD) { break; } - - /* check for end-of-block code (better have one) */ - if (state.lens[256] === 0) { - strm.msg = 'invalid code -- missing end-of-block'; - state.mode = BAD; - break; - } - - /* build code tables -- note: do not change the lenbits or distbits - values here (9 and 6) without reading the comments in inftrees.h - concerning the ENOUGH constants, which depend on those values */ - state.lenbits = 9; - - opts = { bits: state.lenbits }; - ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); - // We have separate tables & no pointers. 2 commented lines below not needed. - // state.next_index = opts.table_index; - state.lenbits = opts.bits; - // state.lencode = state.next; - - if (ret) { - strm.msg = 'invalid literal/lengths set'; - state.mode = BAD; - break; - } - - state.distbits = 6; - //state.distcode.copy(state.codes); - // Switch to use dynamic table - state.distcode = state.distdyn; - opts = { bits: state.distbits }; - ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); - // We have separate tables & no pointers. 2 commented lines below not needed. - // state.next_index = opts.table_index; - state.distbits = opts.bits; - // state.distcode = state.next; - - if (ret) { - strm.msg = 'invalid distances set'; - state.mode = BAD; - break; - } - //Tracev((stderr, 'inflate: codes ok\n')); - state.mode = LEN_; - if (flush === Z_TREES) { break inf_leave; } - /* falls through */ - case LEN_: - state.mode = LEN; - /* falls through */ - case LEN: - if (have >= 6 && left >= 258) { - //--- RESTORE() --- - strm.next_out = put; - strm.avail_out = left; - strm.next_in = next; - strm.avail_in = have; - state.hold = hold; - state.bits = bits; - //--- - inflate_fast(strm, _out); - //--- LOAD() --- - put = strm.next_out; - output = strm.output; - left = strm.avail_out; - next = strm.next_in; - input = strm.input; - have = strm.avail_in; - hold = state.hold; - bits = state.bits; - //--- - - if (state.mode === TYPE) { - state.back = -1; - } - break; - } - state.back = 0; - for (;;) { - here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/ - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if (here_bits <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - if (here_op && (here_op & 0xf0) === 0) { - last_bits = here_bits; - last_op = here_op; - last_val = here_val; - for (;;) { - here = state.lencode[last_val + - ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)]; - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((last_bits + here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - //--- DROPBITS(last.bits) ---// - hold >>>= last_bits; - bits -= last_bits; - //---// - state.back += last_bits; - } - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - state.back += here_bits; - state.length = here_val; - if (here_op === 0) { - //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - // "inflate: literal '%c'\n" : - // "inflate: literal 0x%02x\n", here.val)); - state.mode = LIT; - break; - } - if (here_op & 32) { - //Tracevv((stderr, "inflate: end of block\n")); - state.back = -1; - state.mode = TYPE; - break; - } - if (here_op & 64) { - strm.msg = 'invalid literal/length code'; - state.mode = BAD; - break; - } - state.extra = here_op & 15; - state.mode = LENEXT; - /* falls through */ - case LENEXT: - if (state.extra) { - //=== NEEDBITS(state.extra); - n = state.extra; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/; - //--- DROPBITS(state.extra) ---// - hold >>>= state.extra; - bits -= state.extra; - //---// - state.back += state.extra; - } - //Tracevv((stderr, "inflate: length %u\n", state.length)); - state.was = state.length; - state.mode = DIST; - /* falls through */ - case DIST: - for (;;) { - here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/ - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - if ((here_op & 0xf0) === 0) { - last_bits = here_bits; - last_op = here_op; - last_val = here_val; - for (;;) { - here = state.distcode[last_val + - ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)]; - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((last_bits + here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - //--- DROPBITS(last.bits) ---// - hold >>>= last_bits; - bits -= last_bits; - //---// - state.back += last_bits; - } - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - state.back += here_bits; - if (here_op & 64) { - strm.msg = 'invalid distance code'; - state.mode = BAD; - break; - } - state.offset = here_val; - state.extra = (here_op) & 15; - state.mode = DISTEXT; - /* falls through */ - case DISTEXT: - if (state.extra) { - //=== NEEDBITS(state.extra); - n = state.extra; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/; - //--- DROPBITS(state.extra) ---// - hold >>>= state.extra; - bits -= state.extra; - //---// - state.back += state.extra; - } - //#ifdef INFLATE_STRICT - if (state.offset > state.dmax) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break; - } - //#endif - //Tracevv((stderr, "inflate: distance %u\n", state.offset)); - state.mode = MATCH; - /* falls through */ - case MATCH: - if (left === 0) { break inf_leave; } - copy = _out - left; - if (state.offset > copy) { /* copy from window */ - copy = state.offset - copy; - if (copy > state.whave) { - if (state.sane) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break; - } - // (!) This block is disabled in zlib defailts, - // don't enable it for binary compatibility - //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR - // Trace((stderr, "inflate.c too far\n")); - // copy -= state.whave; - // if (copy > state.length) { copy = state.length; } - // if (copy > left) { copy = left; } - // left -= copy; - // state.length -= copy; - // do { - // output[put++] = 0; - // } while (--copy); - // if (state.length === 0) { state.mode = LEN; } - // break; - //#endif - } - if (copy > state.wnext) { - copy -= state.wnext; - from = state.wsize - copy; - } - else { - from = state.wnext - copy; - } - if (copy > state.length) { copy = state.length; } - from_source = state.window; - } - else { /* copy from output */ - from_source = output; - from = put - state.offset; - copy = state.length; - } - if (copy > left) { copy = left; } - left -= copy; - state.length -= copy; - do { - output[put++] = from_source[from++]; - } while (--copy); - if (state.length === 0) { state.mode = LEN; } - break; - case LIT: - if (left === 0) { break inf_leave; } - output[put++] = state.length; - left--; - state.mode = LEN; - break; - case CHECK: - if (state.wrap) { - //=== NEEDBITS(32); - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - // Use '|' insdead of '+' to make sure that result is signed - hold |= input[next++] << bits; - bits += 8; - } - //===// - _out -= left; - strm.total_out += _out; - state.total += _out; - if (_out) { - strm.adler = state.check = - /*UPDATE(state.check, put - _out, _out);*/ - (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out)); - - } - _out = left; - // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too - if ((state.flags ? hold : zswap32(hold)) !== state.check) { - strm.msg = 'incorrect data check'; - state.mode = BAD; - break; - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - //Tracev((stderr, "inflate: check matches trailer\n")); - } - state.mode = LENGTH; - /* falls through */ - case LENGTH: - if (state.wrap && state.flags) { - //=== NEEDBITS(32); - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if (hold !== (state.total & 0xffffffff)) { - strm.msg = 'incorrect length check'; - state.mode = BAD; - break; - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - //Tracev((stderr, "inflate: length matches trailer\n")); - } - state.mode = DONE; - /* falls through */ - case DONE: - ret = Z_STREAM_END; - break inf_leave; - case BAD: - ret = Z_DATA_ERROR; - break inf_leave; - case MEM: - return Z_MEM_ERROR; - case SYNC: - /* falls through */ - default: - return Z_STREAM_ERROR; - } - } - - // inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave" - - /* - Return from inflate(), updating the total counts and the check value. - If there was no progress during the inflate() call, return a buffer - error. Call updatewindow() to create and/or update the window state. - Note: a memory error from inflate() is non-recoverable. - */ - - //--- RESTORE() --- - strm.next_out = put; - strm.avail_out = left; - strm.next_in = next; - strm.avail_in = have; - state.hold = hold; - state.bits = bits; - //--- - - if (state.wsize || (_out !== strm.avail_out && state.mode < BAD && - (state.mode < CHECK || flush !== Z_FINISH))) { - if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) { - state.mode = MEM; - return Z_MEM_ERROR; - } - } - _in -= strm.avail_in; - _out -= strm.avail_out; - strm.total_in += _in; - strm.total_out += _out; - state.total += _out; - if (state.wrap && _out) { - strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/ - (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out)); - } - strm.data_type = state.bits + (state.last ? 64 : 0) + - (state.mode === TYPE ? 128 : 0) + - (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); - if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) { - ret = Z_BUF_ERROR; - } - return ret; - } - - function inflateEnd(strm) { - - if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) { - return Z_STREAM_ERROR; - } - - var state = strm.state; - if (state.window) { - state.window = null; - } - strm.state = null; - return Z_OK; - } - - function inflateGetHeader(strm, head) { - var state; - - /* check state */ - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; } - - /* save header structure */ - state.head = head; - head.done = false; - return Z_OK; - } - - function inflateSetDictionary(strm, dictionary) { - var dictLength = dictionary.length; - - var state; - var dictid; - var ret; - - /* check state */ - if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; } - state = strm.state; - - if (state.wrap !== 0 && state.mode !== DICT) { - return Z_STREAM_ERROR; - } - - /* check for correct dictionary identifier */ - if (state.mode === DICT) { - dictid = 1; /* adler32(0, null, 0)*/ - /* dictid = adler32(dictid, dictionary, dictLength); */ - dictid = adler32(dictid, dictionary, dictLength, 0); - if (dictid !== state.check) { - return Z_DATA_ERROR; - } - } - /* copy dictionary to window using updatewindow(), which will amend the - existing dictionary if appropriate */ - ret = updatewindow(strm, dictionary, dictLength, dictLength); - if (ret) { - state.mode = MEM; - return Z_MEM_ERROR; - } - state.havedict = 1; - // Tracev((stderr, "inflate: dictionary set\n")); - return Z_OK; - } - - exports.inflateReset = inflateReset; - exports.inflateReset2 = inflateReset2; - exports.inflateResetKeep = inflateResetKeep; - exports.inflateInit = inflateInit; - exports.inflateInit2 = inflateInit2; - exports.inflate = inflate; - exports.inflateEnd = inflateEnd; - exports.inflateGetHeader = inflateGetHeader; - exports.inflateSetDictionary = inflateSetDictionary; - exports.inflateInfo = 'pako inflate (from Nodeca project)'; - - /* Not implemented - exports.inflateCopy = inflateCopy; - exports.inflateGetDictionary = inflateGetDictionary; - exports.inflateMark = inflateMark; - exports.inflatePrime = inflatePrime; - exports.inflateSync = inflateSync; - exports.inflateSyncPoint = inflateSyncPoint; - exports.inflateUndermine = inflateUndermine; - */ - - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - 'use strict'; - - - var TYPED_OK = (typeof Uint8Array !== 'undefined') && - (typeof Uint16Array !== 'undefined') && - (typeof Int32Array !== 'undefined'); - - - exports.assign = function (obj /*from1, from2, from3, ...*/) { - var sources = Array.prototype.slice.call(arguments, 1); - while (sources.length) { - var source = sources.shift(); - if (!source) { continue; } - - if (typeof source !== 'object') { - throw new TypeError(source + 'must be non-object'); - } - - for (var p in source) { - if (source.hasOwnProperty(p)) { - obj[p] = source[p]; - } - } - } - - return obj; - }; - - - // reduce buffer size, avoiding mem copy - exports.shrinkBuf = function (buf, size) { - if (buf.length === size) { return buf; } - if (buf.subarray) { return buf.subarray(0, size); } - buf.length = size; - return buf; - }; - - - var fnTyped = { - arraySet: function (dest, src, src_offs, len, dest_offs) { - if (src.subarray && dest.subarray) { - dest.set(src.subarray(src_offs, src_offs + len), dest_offs); - return; - } - // Fallback to ordinary array - for (var i = 0; i < len; i++) { - dest[dest_offs + i] = src[src_offs + i]; - } - }, - // Join array of chunks to single array. - flattenChunks: function (chunks) { - var i, l, len, pos, chunk, result; - - // calculate data length - len = 0; - for (i = 0, l = chunks.length; i < l; i++) { - len += chunks[i].length; - } - - // join chunks - result = new Uint8Array(len); - pos = 0; - for (i = 0, l = chunks.length; i < l; i++) { - chunk = chunks[i]; - result.set(chunk, pos); - pos += chunk.length; - } - - return result; - } - }; - - var fnUntyped = { - arraySet: function (dest, src, src_offs, len, dest_offs) { - for (var i = 0; i < len; i++) { - dest[dest_offs + i] = src[src_offs + i]; - } - }, - // Join array of chunks to single array. - flattenChunks: function (chunks) { - return [].concat.apply([], chunks); - } - }; - - - // Enable/Disable typed arrays use, for testing - // - exports.setTyped = function (on) { - if (on) { - exports.Buf8 = Uint8Array; - exports.Buf16 = Uint16Array; - exports.Buf32 = Int32Array; - exports.assign(exports, fnTyped); - } else { - exports.Buf8 = Array; - exports.Buf16 = Array; - exports.Buf32 = Array; - exports.assign(exports, fnUntyped); - } - }; - - exports.setTyped(TYPED_OK); - - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - 'use strict'; - - // Note: adler32 takes 12% for level 0 and 2% for level 6. - // It doesn't worth to make additional optimizationa as in original. - // Small size is preferable. - - function adler32(adler, buf, len, pos) { - var s1 = (adler & 0xffff) |0, - s2 = ((adler >>> 16) & 0xffff) |0, - n = 0; - - while (len !== 0) { - // Set limit ~ twice less than 5552, to keep - // s2 in 31-bits, because we force signed ints. - // in other case %= will fail. - n = len > 2000 ? 2000 : len; - len -= n; - - do { - s1 = (s1 + buf[pos++]) |0; - s2 = (s2 + s1) |0; - } while (--n); - - s1 %= 65521; - s2 %= 65521; - } - - return (s1 | (s2 << 16)) |0; - } - - - module.exports = adler32; - - -/***/ }, -/* 35 */ -/***/ function(module, exports) { - - 'use strict'; - - // Note: we can't get significant speed boost here. - // So write code to minimize size - no pregenerated tables - // and array tools dependencies. - - - // Use ordinary array, since untyped makes no boost here - function makeTable() { - var c, table = []; - - for (var n = 0; n < 256; n++) { - c = n; - for (var k = 0; k < 8; k++) { - c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); - } - table[n] = c; - } - - return table; - } - - // Create table on load. Just 255 signed longs. Not a problem. - var crcTable = makeTable(); - - - function crc32(crc, buf, len, pos) { - var t = crcTable, - end = pos + len; - - crc ^= -1; - - for (var i = pos; i < end; i++) { - crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; - } - - return (crc ^ (-1)); // >>> 0; - } - - - module.exports = crc32; - - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - 'use strict'; - - // See state defs from inflate.js - var BAD = 30; /* got a data error -- remain here until reset */ - var TYPE = 12; /* i: waiting for type bits, including last-flag bit */ - - /* - Decode literal, length, and distance codes and write out the resulting - literal and match bytes until either not enough input or output is - available, an end-of-block is encountered, or a data error is encountered. - When large enough input and output buffers are supplied to inflate(), for - example, a 16K input buffer and a 64K output buffer, more than 95% of the - inflate execution time is spent in this routine. - - Entry assumptions: - - state.mode === LEN - strm.avail_in >= 6 - strm.avail_out >= 258 - start >= strm.avail_out - state.bits < 8 - - On return, state.mode is one of: - - LEN -- ran out of enough output space or enough available input - TYPE -- reached end of block code, inflate() to interpret next block - BAD -- error in block data - - Notes: - - - The maximum input bits used by a length/distance pair is 15 bits for the - length code, 5 bits for the length extra, 15 bits for the distance code, - and 13 bits for the distance extra. This totals 48 bits, or six bytes. - Therefore if strm.avail_in >= 6, then there is enough input to avoid - checking for available input while decoding. - - - The maximum bytes that a single length/distance pair can output is 258 - bytes, which is the maximum length that can be coded. inflate_fast() - requires strm.avail_out >= 258 for each loop to avoid checking for - output space. - */ - module.exports = function inflate_fast(strm, start) { - var state; - var _in; /* local strm.input */ - var last; /* have enough input while in < last */ - var _out; /* local strm.output */ - var beg; /* inflate()'s initial strm.output */ - var end; /* while out < end, enough space available */ - //#ifdef INFLATE_STRICT - var dmax; /* maximum distance from zlib header */ - //#endif - var wsize; /* window size or zero if not using window */ - var whave; /* valid bytes in the window */ - var wnext; /* window write index */ - // Use `s_window` instead `window`, avoid conflict with instrumentation tools - var s_window; /* allocated sliding window, if wsize != 0 */ - var hold; /* local strm.hold */ - var bits; /* local strm.bits */ - var lcode; /* local strm.lencode */ - var dcode; /* local strm.distcode */ - var lmask; /* mask for first level of length codes */ - var dmask; /* mask for first level of distance codes */ - var here; /* retrieved table entry */ - var op; /* code bits, operation, extra bits, or */ - /* window position, window bytes to copy */ - var len; /* match length, unused bytes */ - var dist; /* match distance */ - var from; /* where to copy match from */ - var from_source; - - - var input, output; // JS specific, because we have no pointers - - /* copy state to local variables */ - state = strm.state; - //here = state.here; - _in = strm.next_in; - input = strm.input; - last = _in + (strm.avail_in - 5); - _out = strm.next_out; - output = strm.output; - beg = _out - (start - strm.avail_out); - end = _out + (strm.avail_out - 257); - //#ifdef INFLATE_STRICT - dmax = state.dmax; - //#endif - wsize = state.wsize; - whave = state.whave; - wnext = state.wnext; - s_window = state.window; - hold = state.hold; - bits = state.bits; - lcode = state.lencode; - dcode = state.distcode; - lmask = (1 << state.lenbits) - 1; - dmask = (1 << state.distbits) - 1; - - - /* decode literals and length/distances until end-of-block or not enough - input data or output space */ - - top: - do { - if (bits < 15) { - hold += input[_in++] << bits; - bits += 8; - hold += input[_in++] << bits; - bits += 8; - } - - here = lcode[hold & lmask]; - - dolen: - for (;;) { // Goto emulation - op = here >>> 24/*here.bits*/; - hold >>>= op; - bits -= op; - op = (here >>> 16) & 0xff/*here.op*/; - if (op === 0) { /* literal */ - //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - // "inflate: literal '%c'\n" : - // "inflate: literal 0x%02x\n", here.val)); - output[_out++] = here & 0xffff/*here.val*/; - } - else if (op & 16) { /* length base */ - len = here & 0xffff/*here.val*/; - op &= 15; /* number of extra bits */ - if (op) { - if (bits < op) { - hold += input[_in++] << bits; - bits += 8; - } - len += hold & ((1 << op) - 1); - hold >>>= op; - bits -= op; - } - //Tracevv((stderr, "inflate: length %u\n", len)); - if (bits < 15) { - hold += input[_in++] << bits; - bits += 8; - hold += input[_in++] << bits; - bits += 8; - } - here = dcode[hold & dmask]; - - dodist: - for (;;) { // goto emulation - op = here >>> 24/*here.bits*/; - hold >>>= op; - bits -= op; - op = (here >>> 16) & 0xff/*here.op*/; - - if (op & 16) { /* distance base */ - dist = here & 0xffff/*here.val*/; - op &= 15; /* number of extra bits */ - if (bits < op) { - hold += input[_in++] << bits; - bits += 8; - if (bits < op) { - hold += input[_in++] << bits; - bits += 8; - } - } - dist += hold & ((1 << op) - 1); - //#ifdef INFLATE_STRICT - if (dist > dmax) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break top; - } - //#endif - hold >>>= op; - bits -= op; - //Tracevv((stderr, "inflate: distance %u\n", dist)); - op = _out - beg; /* max distance in output */ - if (dist > op) { /* see if copy from window */ - op = dist - op; /* distance back in window */ - if (op > whave) { - if (state.sane) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break top; - } - - // (!) This block is disabled in zlib defailts, - // don't enable it for binary compatibility - //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR - // if (len <= op - whave) { - // do { - // output[_out++] = 0; - // } while (--len); - // continue top; - // } - // len -= op - whave; - // do { - // output[_out++] = 0; - // } while (--op > whave); - // if (op === 0) { - // from = _out - dist; - // do { - // output[_out++] = output[from++]; - // } while (--len); - // continue top; - // } - //#endif - } - from = 0; // window index - from_source = s_window; - if (wnext === 0) { /* very common case */ - from += wsize - op; - if (op < len) { /* some from window */ - len -= op; - do { - output[_out++] = s_window[from++]; - } while (--op); - from = _out - dist; /* rest from output */ - from_source = output; - } - } - else if (wnext < op) { /* wrap around window */ - from += wsize + wnext - op; - op -= wnext; - if (op < len) { /* some from end of window */ - len -= op; - do { - output[_out++] = s_window[from++]; - } while (--op); - from = 0; - if (wnext < len) { /* some from start of window */ - op = wnext; - len -= op; - do { - output[_out++] = s_window[from++]; - } while (--op); - from = _out - dist; /* rest from output */ - from_source = output; - } - } - } - else { /* contiguous in window */ - from += wnext - op; - if (op < len) { /* some from window */ - len -= op; - do { - output[_out++] = s_window[from++]; - } while (--op); - from = _out - dist; /* rest from output */ - from_source = output; - } - } - while (len > 2) { - output[_out++] = from_source[from++]; - output[_out++] = from_source[from++]; - output[_out++] = from_source[from++]; - len -= 3; - } - if (len) { - output[_out++] = from_source[from++]; - if (len > 1) { - output[_out++] = from_source[from++]; - } - } - } - else { - from = _out - dist; /* copy direct from output */ - do { /* minimum length is three */ - output[_out++] = output[from++]; - output[_out++] = output[from++]; - output[_out++] = output[from++]; - len -= 3; - } while (len > 2); - if (len) { - output[_out++] = output[from++]; - if (len > 1) { - output[_out++] = output[from++]; - } - } - } - } - else if ((op & 64) === 0) { /* 2nd level distance code */ - here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; - continue dodist; - } - else { - strm.msg = 'invalid distance code'; - state.mode = BAD; - break top; - } - - break; // need to emulate goto via "continue" - } - } - else if ((op & 64) === 0) { /* 2nd level length code */ - here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; - continue dolen; - } - else if (op & 32) { /* end-of-block */ - //Tracevv((stderr, "inflate: end of block\n")); - state.mode = TYPE; - break top; - } - else { - strm.msg = 'invalid literal/length code'; - state.mode = BAD; - break top; - } - - break; // need to emulate goto via "continue" - } - } while (_in < last && _out < end); - - /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ - len = bits >> 3; - _in -= len; - bits -= len << 3; - hold &= (1 << bits) - 1; - - /* update state and return */ - strm.next_in = _in; - strm.next_out = _out; - strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last)); - strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end)); - state.hold = hold; - state.bits = bits; - return; - }; - - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - - var utils = __webpack_require__(33); - - var MAXBITS = 15; - var ENOUGH_LENS = 852; - var ENOUGH_DISTS = 592; - //var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); - - var CODES = 0; - var LENS = 1; - var DISTS = 2; - - var lbase = [ /* Length codes 257..285 base */ - 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, - 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 - ]; - - var lext = [ /* Length codes 257..285 extra */ - 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, - 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78 - ]; - - var dbase = [ /* Distance codes 0..29 base */ - 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, - 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, - 8193, 12289, 16385, 24577, 0, 0 - ]; - - var dext = [ /* Distance codes 0..29 extra */ - 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, - 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, - 28, 28, 29, 29, 64, 64 - ]; - - module.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) - { - var bits = opts.bits; - //here = opts.here; /* table entry for duplication */ - - var len = 0; /* a code's length in bits */ - var sym = 0; /* index of code symbols */ - var min = 0, max = 0; /* minimum and maximum code lengths */ - var root = 0; /* number of index bits for root table */ - var curr = 0; /* number of index bits for current table */ - var drop = 0; /* code bits to drop for sub-table */ - var left = 0; /* number of prefix codes available */ - var used = 0; /* code entries in table used */ - var huff = 0; /* Huffman code */ - var incr; /* for incrementing code, index */ - var fill; /* index for replicating entries */ - var low; /* low bits for current root entry */ - var mask; /* mask for low root bits */ - var next; /* next available space in table */ - var base = null; /* base value table to use */ - var base_index = 0; - // var shoextra; /* extra bits table to use */ - var end; /* use base and extra for symbol > end */ - var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */ - var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */ - var extra = null; - var extra_index = 0; - - var here_bits, here_op, here_val; - - /* - Process a set of code lengths to create a canonical Huffman code. The - code lengths are lens[0..codes-1]. Each length corresponds to the - symbols 0..codes-1. The Huffman code is generated by first sorting the - symbols by length from short to long, and retaining the symbol order - for codes with equal lengths. Then the code starts with all zero bits - for the first code of the shortest length, and the codes are integer - increments for the same length, and zeros are appended as the length - increases. For the deflate format, these bits are stored backwards - from their more natural integer increment ordering, and so when the - decoding tables are built in the large loop below, the integer codes - are incremented backwards. - - This routine assumes, but does not check, that all of the entries in - lens[] are in the range 0..MAXBITS. The caller must assure this. - 1..MAXBITS is interpreted as that code length. zero means that that - symbol does not occur in this code. - - The codes are sorted by computing a count of codes for each length, - creating from that a table of starting indices for each length in the - sorted table, and then entering the symbols in order in the sorted - table. The sorted table is work[], with that space being provided by - the caller. - - The length counts are used for other purposes as well, i.e. finding - the minimum and maximum length codes, determining if there are any - codes at all, checking for a valid set of lengths, and looking ahead - at length counts to determine sub-table sizes when building the - decoding tables. - */ - - /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ - for (len = 0; len <= MAXBITS; len++) { - count[len] = 0; - } - for (sym = 0; sym < codes; sym++) { - count[lens[lens_index + sym]]++; - } - - /* bound code lengths, force root to be within code lengths */ - root = bits; - for (max = MAXBITS; max >= 1; max--) { - if (count[max] !== 0) { break; } - } - if (root > max) { - root = max; - } - if (max === 0) { /* no symbols to code at all */ - //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */ - //table.bits[opts.table_index] = 1; //here.bits = (var char)1; - //table.val[opts.table_index++] = 0; //here.val = (var short)0; - table[table_index++] = (1 << 24) | (64 << 16) | 0; - - - //table.op[opts.table_index] = 64; - //table.bits[opts.table_index] = 1; - //table.val[opts.table_index++] = 0; - table[table_index++] = (1 << 24) | (64 << 16) | 0; - - opts.bits = 1; - return 0; /* no symbols, but wait for decoding to report error */ - } - for (min = 1; min < max; min++) { - if (count[min] !== 0) { break; } - } - if (root < min) { - root = min; - } - - /* check for an over-subscribed or incomplete set of lengths */ - left = 1; - for (len = 1; len <= MAXBITS; len++) { - left <<= 1; - left -= count[len]; - if (left < 0) { - return -1; - } /* over-subscribed */ - } - if (left > 0 && (type === CODES || max !== 1)) { - return -1; /* incomplete set */ - } - - /* generate offsets into symbol table for each length for sorting */ - offs[1] = 0; - for (len = 1; len < MAXBITS; len++) { - offs[len + 1] = offs[len] + count[len]; - } - - /* sort symbols by length, by symbol order within each length */ - for (sym = 0; sym < codes; sym++) { - if (lens[lens_index + sym] !== 0) { - work[offs[lens[lens_index + sym]]++] = sym; - } - } - - /* - Create and fill in decoding tables. In this loop, the table being - filled is at next and has curr index bits. The code being used is huff - with length len. That code is converted to an index by dropping drop - bits off of the bottom. For codes where len is less than drop + curr, - those top drop + curr - len bits are incremented through all values to - fill the table with replicated entries. - - root is the number of index bits for the root table. When len exceeds - root, sub-tables are created pointed to by the root entry with an index - of the low root bits of huff. This is saved in low to check for when a - new sub-table should be started. drop is zero when the root table is - being filled, and drop is root when sub-tables are being filled. - - When a new sub-table is needed, it is necessary to look ahead in the - code lengths to determine what size sub-table is needed. The length - counts are used for this, and so count[] is decremented as codes are - entered in the tables. - - used keeps track of how many table entries have been allocated from the - provided *table space. It is checked for LENS and DIST tables against - the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in - the initial root table size constants. See the comments in inftrees.h - for more information. - - sym increments through all symbols, and the loop terminates when - all codes of length max, i.e. all codes, have been processed. This - routine permits incomplete codes, so another loop after this one fills - in the rest of the decoding tables with invalid code markers. - */ - - /* set up for code type */ - // poor man optimization - use if-else instead of switch, - // to avoid deopts in old v8 - if (type === CODES) { - base = extra = work; /* dummy value--not used */ - end = 19; - - } else if (type === LENS) { - base = lbase; - base_index -= 257; - extra = lext; - extra_index -= 257; - end = 256; - - } else { /* DISTS */ - base = dbase; - extra = dext; - end = -1; - } - - /* initialize opts for loop */ - huff = 0; /* starting code */ - sym = 0; /* starting code symbol */ - len = min; /* starting code length */ - next = table_index; /* current table to fill in */ - curr = root; /* current table index bits */ - drop = 0; /* current bits to drop from code for index */ - low = -1; /* trigger new sub-table when len > root */ - used = 1 << root; /* use root table entries */ - mask = used - 1; /* mask for comparing low */ - - /* check available table space */ - if ((type === LENS && used > ENOUGH_LENS) || - (type === DISTS && used > ENOUGH_DISTS)) { - return 1; - } - - /* process all codes and make table entries */ - for (;;) { - /* create table entry */ - here_bits = len - drop; - if (work[sym] < end) { - here_op = 0; - here_val = work[sym]; - } - else if (work[sym] > end) { - here_op = extra[extra_index + work[sym]]; - here_val = base[base_index + work[sym]]; - } - else { - here_op = 32 + 64; /* end of block */ - here_val = 0; - } - - /* replicate for those indices with low len bits equal to huff */ - incr = 1 << (len - drop); - fill = 1 << curr; - min = fill; /* save offset to next table */ - do { - fill -= incr; - table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0; - } while (fill !== 0); - - /* backwards increment the len-bit code huff */ - incr = 1 << (len - 1); - while (huff & incr) { - incr >>= 1; - } - if (incr !== 0) { - huff &= incr - 1; - huff += incr; - } else { - huff = 0; - } - - /* go to next symbol, update count, len */ - sym++; - if (--count[len] === 0) { - if (len === max) { break; } - len = lens[lens_index + work[sym]]; - } - - /* create new sub-table if needed */ - if (len > root && (huff & mask) !== low) { - /* if first time, transition to sub-tables */ - if (drop === 0) { - drop = root; - } - - /* increment past last table */ - next += min; /* here min is 1 << curr */ - - /* determine length of next table */ - curr = len - drop; - left = 1 << curr; - while (curr + drop < max) { - left -= count[curr + drop]; - if (left <= 0) { break; } - curr++; - left <<= 1; - } - - /* check for enough space */ - used += 1 << curr; - if ((type === LENS && used > ENOUGH_LENS) || - (type === DISTS && used > ENOUGH_DISTS)) { - return 1; - } - - /* point entry in root table to sub-table */ - low = huff & mask; - /*table.op[low] = curr; - table.bits[low] = root; - table.val[low] = next - opts.table_index;*/ - table[low] = (root << 24) | (curr << 16) | (next - table_index) |0; - } - } - - /* fill in remaining table entry if code is incomplete (guaranteed to have - at most one remaining entry, since if the code is incomplete, the - maximum code length that was allowed to get this far is one bit) */ - if (huff !== 0) { - //table.op[next + huff] = 64; /* invalid code marker */ - //table.bits[next + huff] = len - drop; - //table.val[next + huff] = 0; - table[next + huff] = ((len - drop) << 24) | (64 << 16) |0; - } - - /* set return parameters */ - //opts.table_index += used; - opts.bits = root; - return 0; - }; - - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - // String encode/decode helpers - 'use strict'; - - - var utils = __webpack_require__(33); - - - // Quick check if we can use fast array to bin string conversion - // - // - apply(Array) can fail on Android 2.2 - // - apply(Uint8Array) can fail on iOS 5.1 Safary - // - var STR_APPLY_OK = true; - var STR_APPLY_UIA_OK = true; - - try { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; } - try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; } - - - // Table with utf8 lengths (calculated by first byte of sequence) - // Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS, - // because max possible codepoint is 0x10ffff - var _utf8len = new utils.Buf8(256); - for (var q = 0; q < 256; q++) { - _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1); - } - _utf8len[254] = _utf8len[254] = 1; // Invalid sequence start - - - // convert string to array (typed, when possible) - exports.string2buf = function (str) { - var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; - - // count binary size - for (m_pos = 0; m_pos < str_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) { - c2 = str.charCodeAt(m_pos + 1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; - } - } - buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; - } - - // allocate buffer - buf = new utils.Buf8(buf_len); - - // convert - for (i = 0, m_pos = 0; i < buf_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) { - c2 = str.charCodeAt(m_pos + 1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; - } - } - if (c < 0x80) { - /* one byte */ - buf[i++] = c; - } else if (c < 0x800) { - /* two bytes */ - buf[i++] = 0xC0 | (c >>> 6); - buf[i++] = 0x80 | (c & 0x3f); - } else if (c < 0x10000) { - /* three bytes */ - buf[i++] = 0xE0 | (c >>> 12); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } else { - /* four bytes */ - buf[i++] = 0xf0 | (c >>> 18); - buf[i++] = 0x80 | (c >>> 12 & 0x3f); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } - } - - return buf; - }; - - // Helper (used in 2 places) - function buf2binstring(buf, len) { - // use fallback for big arrays to avoid stack overflow - if (len < 65537) { - if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) { - return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); - } - } - - var result = ''; - for (var i = 0; i < len; i++) { - result += String.fromCharCode(buf[i]); - } - return result; - } - - - // Convert byte array to binary string - exports.buf2binstring = function (buf) { - return buf2binstring(buf, buf.length); - }; - - - // Convert binary string (typed, when possible) - exports.binstring2buf = function (str) { - var buf = new utils.Buf8(str.length); - for (var i = 0, len = buf.length; i < len; i++) { - buf[i] = str.charCodeAt(i); - } - return buf; - }; - - - // convert array to string - exports.buf2string = function (buf, max) { - var i, out, c, c_len; - var len = max || buf.length; - - // Reserve max possible length (2 words per char) - // NB: by unknown reasons, Array is significantly faster for - // String.fromCharCode.apply than Uint16Array. - var utf16buf = new Array(len * 2); - - for (out = 0, i = 0; i < len;) { - c = buf[i++]; - // quick process ascii - if (c < 0x80) { utf16buf[out++] = c; continue; } - - c_len = _utf8len[c]; - // skip 5 & 6 byte codes - if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; } - - // apply mask on first byte - c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; - // join the rest - while (c_len > 1 && i < len) { - c = (c << 6) | (buf[i++] & 0x3f); - c_len--; - } - - // terminated by end of string? - if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } - - if (c < 0x10000) { - utf16buf[out++] = c; - } else { - c -= 0x10000; - utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); - utf16buf[out++] = 0xdc00 | (c & 0x3ff); - } - } - - return buf2binstring(utf16buf, out); - }; - - - // Calculate max possible position in utf8 buffer, - // that will not break sequence. If that's not possible - // - (very small limits) return max size as is. - // - // buf[] - utf8 bytes array - // max - length limit (mandatory); - exports.utf8border = function (buf, max) { - var pos; - - max = max || buf.length; - if (max > buf.length) { max = buf.length; } - - // go back from last position, until start of sequence found - pos = max - 1; - while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } - - // Fuckup - very small and broken sequence, - // return max, because we should return something anyway. - if (pos < 0) { return max; } - - // If we came to start of buffer - that means vuffer is too small, - // return max too. - if (pos === 0) { return max; } - - return (pos + _utf8len[buf[pos]] > max) ? pos : max; - }; - - -/***/ }, -/* 39 */ -/***/ function(module, exports) { - - 'use strict'; - - - module.exports = { - - /* Allowed flush values; see deflate() and inflate() below for details */ - Z_NO_FLUSH: 0, - Z_PARTIAL_FLUSH: 1, - Z_SYNC_FLUSH: 2, - Z_FULL_FLUSH: 3, - Z_FINISH: 4, - Z_BLOCK: 5, - Z_TREES: 6, - - /* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ - Z_OK: 0, - Z_STREAM_END: 1, - Z_NEED_DICT: 2, - Z_ERRNO: -1, - Z_STREAM_ERROR: -2, - Z_DATA_ERROR: -3, - //Z_MEM_ERROR: -4, - Z_BUF_ERROR: -5, - //Z_VERSION_ERROR: -6, - - /* compression levels */ - Z_NO_COMPRESSION: 0, - Z_BEST_SPEED: 1, - Z_BEST_COMPRESSION: 9, - Z_DEFAULT_COMPRESSION: -1, - - - Z_FILTERED: 1, - Z_HUFFMAN_ONLY: 2, - Z_RLE: 3, - Z_FIXED: 4, - Z_DEFAULT_STRATEGY: 0, - - /* Possible values of the data_type field (though see inflate()) */ - Z_BINARY: 0, - Z_TEXT: 1, - //Z_ASCII: 1, // = Z_TEXT (deprecated) - Z_UNKNOWN: 2, - - /* The deflate compression method */ - Z_DEFLATED: 8 - //Z_NULL: null // Use -1 or null inline, depending on var type - }; - - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - 'use strict'; - - module.exports = { - 2: 'need dictionary', /* Z_NEED_DICT 2 */ - 1: 'stream end', /* Z_STREAM_END 1 */ - 0: '', /* Z_OK 0 */ - '-1': 'file error', /* Z_ERRNO (-1) */ - '-2': 'stream error', /* Z_STREAM_ERROR (-2) */ - '-3': 'data error', /* Z_DATA_ERROR (-3) */ - '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */ - '-5': 'buffer error', /* Z_BUF_ERROR (-5) */ - '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */ - }; - - -/***/ }, -/* 41 */ -/***/ function(module, exports) { - - 'use strict'; - - - function ZStream() { - /* next input byte */ - this.input = null; // JS specific, because we have no pointers - this.next_in = 0; - /* number of bytes available at input */ - this.avail_in = 0; - /* total number of input bytes read so far */ - this.total_in = 0; - /* next output byte should be put there */ - this.output = null; // JS specific, because we have no pointers - this.next_out = 0; - /* remaining free space at output */ - this.avail_out = 0; - /* total number of bytes output so far */ - this.total_out = 0; - /* last error message, NULL if no error */ - this.msg = ''/*Z_NULL*/; - /* not visible by applications */ - this.state = null; - /* best guess about the data type: binary or text */ - this.data_type = 2/*Z_UNKNOWN*/; - /* adler32 value of the uncompressed data */ - this.adler = 0; - } - - module.exports = ZStream; - - -/***/ }, -/* 42 */ -/***/ function(module, exports) { - - 'use strict'; - - - function GZheader() { - /* true if compressed data believed to be text */ - this.text = 0; - /* modification time */ - this.time = 0; - /* extra flags (not used when writing a gzip file) */ - this.xflags = 0; - /* operating system */ - this.os = 0; - /* pointer to extra field or Z_NULL if none */ - this.extra = null; - /* extra field length (valid if extra != Z_NULL) */ - this.extra_len = 0; // Actually, we don't need it in JS, - // but leave for few code modifications - - // - // Setup limits is not necessary because in js we should not preallocate memory - // for inflate use constant limit in 65536 bytes - // - - /* space at extra (only when reading header) */ - // this.extra_max = 0; - /* pointer to zero-terminated file name or Z_NULL */ - this.name = ''; - /* space at name (only when reading header) */ - // this.name_max = 0; - /* pointer to zero-terminated comment or Z_NULL */ - this.comment = ''; - /* space at comment (only when reading header) */ - // this.comm_max = 0; - /* true if there was or will be a header crc */ - this.hcrc = 0; - /* true when done reading gzip header (not used when writing a gzip file) */ - this.done = false; - } - - module.exports = GZheader; - - -/***/ } -/******/ ]) -}); -; -//# sourceMappingURL=browserfs.js.map - -/***/ }), - -/***/ "./node_modules/browserfs/dist/shims/buffer.js": -/*!*****************************************************!*\ - !*** ./node_modules/browserfs/dist/shims/buffer.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(BrowserFS) {module.exports = BrowserFS.BFSRequire('buffer'); - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bfsGlobal */ "./node_modules/browserfs/dist/browserfs.js"))) - -/***/ }), - -/***/ "./node_modules/browserfs/dist/shims/bufferGlobal.js": -/*!***********************************************************!*\ - !*** ./node_modules/browserfs/dist/shims/bufferGlobal.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(BrowserFS) {module.exports = BrowserFS.BFSRequire('buffer').Buffer; - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bfsGlobal */ "./node_modules/browserfs/dist/browserfs.js"))) - -/***/ }), - -/***/ "./node_modules/browserfs/dist/shims/fs.js": -/*!*************************************************!*\ - !*** ./node_modules/browserfs/dist/shims/fs.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(BrowserFS) {module.exports = BrowserFS.BFSRequire('fs'); - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bfsGlobal */ "./node_modules/browserfs/dist/browserfs.js"))) - -/***/ }), - -/***/ "./node_modules/browserfs/dist/shims/path.js": -/*!***************************************************!*\ - !*** ./node_modules/browserfs/dist/shims/path.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(BrowserFS) {module.exports = BrowserFS.BFSRequire('path'); - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bfsGlobal */ "./node_modules/browserfs/dist/browserfs.js"))) - -/***/ }), - -/***/ "./node_modules/browserfs/dist/shims/process.js": -/*!******************************************************!*\ - !*** ./node_modules/browserfs/dist/shims/process.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(BrowserFS) {module.exports = BrowserFS.BFSRequire('process'); - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bfsGlobal */ "./node_modules/browserfs/dist/browserfs.js"))) - -/***/ }), - -/***/ "./node_modules/browserify-aes/aes.js": -/*!********************************************!*\ - !*** ./node_modules/browserify-aes/aes.js ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// based on the aes implimentation in triple sec -// https://github.com/keybase/triplesec -// which is in turn based on the one from crypto-js -// https://code.google.com/p/crypto-js/ - -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer - -function asUInt32Array (buf) { - if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf) - - var len = (buf.length / 4) | 0 - var out = new Array(len) - - for (var i = 0; i < len; i++) { - out[i] = buf.readUInt32BE(i * 4) - } - - return out -} - -function scrubVec (v) { - for (var i = 0; i < v.length; v++) { - v[i] = 0 - } -} - -function cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) { - var SUB_MIX0 = SUB_MIX[0] - var SUB_MIX1 = SUB_MIX[1] - var SUB_MIX2 = SUB_MIX[2] - var SUB_MIX3 = SUB_MIX[3] - - var s0 = M[0] ^ keySchedule[0] - var s1 = M[1] ^ keySchedule[1] - var s2 = M[2] ^ keySchedule[2] - var s3 = M[3] ^ keySchedule[3] - var t0, t1, t2, t3 - var ksRow = 4 - - for (var round = 1; round < nRounds; round++) { - t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++] - t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++] - t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++] - t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++] - s0 = t0 - s1 = t1 - s2 = t2 - s3 = t3 - } - - t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++] - t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++] - t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++] - t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++] - t0 = t0 >>> 0 - t1 = t1 >>> 0 - t2 = t2 >>> 0 - t3 = t3 >>> 0 - - return [t0, t1, t2, t3] -} - -// AES constants -var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36] -var G = (function () { - // Compute double table - var d = new Array(256) - for (var j = 0; j < 256; j++) { - if (j < 128) { - d[j] = j << 1 - } else { - d[j] = (j << 1) ^ 0x11b - } - } - - var SBOX = [] - var INV_SBOX = [] - var SUB_MIX = [[], [], [], []] - var INV_SUB_MIX = [[], [], [], []] - - // Walk GF(2^8) - var x = 0 - var xi = 0 - for (var i = 0; i < 256; ++i) { - // Compute sbox - var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4) - sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63 - SBOX[x] = sx - INV_SBOX[sx] = x - - // Compute multiplication - var x2 = d[x] - var x4 = d[x2] - var x8 = d[x4] - - // Compute sub bytes, mix columns tables - var t = (d[sx] * 0x101) ^ (sx * 0x1010100) - SUB_MIX[0][x] = (t << 24) | (t >>> 8) - SUB_MIX[1][x] = (t << 16) | (t >>> 16) - SUB_MIX[2][x] = (t << 8) | (t >>> 24) - SUB_MIX[3][x] = t - - // Compute inv sub bytes, inv mix columns tables - t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100) - INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8) - INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16) - INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24) - INV_SUB_MIX[3][sx] = t - - if (x === 0) { - x = xi = 1 - } else { - x = x2 ^ d[d[d[x8 ^ x2]]] - xi ^= d[d[xi]] - } - } - - return { - SBOX: SBOX, - INV_SBOX: INV_SBOX, - SUB_MIX: SUB_MIX, - INV_SUB_MIX: INV_SUB_MIX - } -})() - -function AES (key) { - this._key = asUInt32Array(key) - this._reset() -} - -AES.blockSize = 4 * 4 -AES.keySize = 256 / 8 -AES.prototype.blockSize = AES.blockSize -AES.prototype.keySize = AES.keySize -AES.prototype._reset = function () { - var keyWords = this._key - var keySize = keyWords.length - var nRounds = keySize + 6 - var ksRows = (nRounds + 1) * 4 - - var keySchedule = [] - for (var k = 0; k < keySize; k++) { - keySchedule[k] = keyWords[k] - } - - for (k = keySize; k < ksRows; k++) { - var t = keySchedule[k - 1] - - if (k % keySize === 0) { - t = (t << 8) | (t >>> 24) - t = - (G.SBOX[t >>> 24] << 24) | - (G.SBOX[(t >>> 16) & 0xff] << 16) | - (G.SBOX[(t >>> 8) & 0xff] << 8) | - (G.SBOX[t & 0xff]) - - t ^= RCON[(k / keySize) | 0] << 24 - } else if (keySize > 6 && k % keySize === 4) { - t = - (G.SBOX[t >>> 24] << 24) | - (G.SBOX[(t >>> 16) & 0xff] << 16) | - (G.SBOX[(t >>> 8) & 0xff] << 8) | - (G.SBOX[t & 0xff]) - } - - keySchedule[k] = keySchedule[k - keySize] ^ t - } - - var invKeySchedule = [] - for (var ik = 0; ik < ksRows; ik++) { - var ksR = ksRows - ik - var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)] - - if (ik < 4 || ksR <= 4) { - invKeySchedule[ik] = tt - } else { - invKeySchedule[ik] = - G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^ - G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^ - G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^ - G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]] - } - } - - this._nRounds = nRounds - this._keySchedule = keySchedule - this._invKeySchedule = invKeySchedule -} - -AES.prototype.encryptBlockRaw = function (M) { - M = asUInt32Array(M) - return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds) -} - -AES.prototype.encryptBlock = function (M) { - var out = this.encryptBlockRaw(M) - var buf = Buffer.allocUnsafe(16) - buf.writeUInt32BE(out[0], 0) - buf.writeUInt32BE(out[1], 4) - buf.writeUInt32BE(out[2], 8) - buf.writeUInt32BE(out[3], 12) - return buf -} - -AES.prototype.decryptBlock = function (M) { - M = asUInt32Array(M) - - // swap - var m1 = M[1] - M[1] = M[3] - M[3] = m1 - - var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds) - var buf = Buffer.allocUnsafe(16) - buf.writeUInt32BE(out[0], 0) - buf.writeUInt32BE(out[3], 4) - buf.writeUInt32BE(out[2], 8) - buf.writeUInt32BE(out[1], 12) - return buf -} - -AES.prototype.scrub = function () { - scrubVec(this._keySchedule) - scrubVec(this._invKeySchedule) - scrubVec(this._key) -} - -module.exports.AES = AES - - -/***/ }), - -/***/ "./node_modules/browserify-aes/authCipher.js": -/*!***************************************************!*\ - !*** ./node_modules/browserify-aes/authCipher.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") -var GHASH = __webpack_require__(/*! ./ghash */ "./node_modules/browserify-aes/ghash.js") -var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") -var incr32 = __webpack_require__(/*! ./incr32 */ "./node_modules/browserify-aes/incr32.js") - -function xorTest (a, b) { - var out = 0 - if (a.length !== b.length) out++ - - var len = Math.min(a.length, b.length) - for (var i = 0; i < len; ++i) { - out += (a[i] ^ b[i]) - } - - return out -} - -function calcIv (self, iv, ck) { - if (iv.length === 12) { - self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])]) - return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])]) - } - var ghash = new GHASH(ck) - var len = iv.length - var toPad = len % 16 - ghash.update(iv) - if (toPad) { - toPad = 16 - toPad - ghash.update(Buffer.alloc(toPad, 0)) - } - ghash.update(Buffer.alloc(8, 0)) - var ivBits = len * 8 - var tail = Buffer.alloc(8) - tail.writeUIntBE(ivBits, 0, 8) - ghash.update(tail) - self._finID = ghash.state - var out = Buffer.from(self._finID) - incr32(out) - return out -} -function StreamCipher (mode, key, iv, decrypt) { - Transform.call(this) - - var h = Buffer.alloc(4, 0) - - this._cipher = new aes.AES(key) - var ck = this._cipher.encryptBlock(h) - this._ghash = new GHASH(ck) - iv = calcIv(this, iv, ck) - - this._prev = Buffer.from(iv) - this._cache = Buffer.allocUnsafe(0) - this._secCache = Buffer.allocUnsafe(0) - this._decrypt = decrypt - this._alen = 0 - this._len = 0 - this._mode = mode - - this._authTag = null - this._called = false -} - -inherits(StreamCipher, Transform) - -StreamCipher.prototype._update = function (chunk) { - if (!this._called && this._alen) { - var rump = 16 - (this._alen % 16) - if (rump < 16) { - rump = Buffer.alloc(rump, 0) - this._ghash.update(rump) - } - } - - this._called = true - var out = this._mode.encrypt(this, chunk) - if (this._decrypt) { - this._ghash.update(chunk) - } else { - this._ghash.update(out) - } - this._len += chunk.length - return out -} - -StreamCipher.prototype._final = function () { - if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data') - - var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID)) - if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data') - - this._authTag = tag - this._cipher.scrub() -} - -StreamCipher.prototype.getAuthTag = function getAuthTag () { - if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state') - - return this._authTag -} - -StreamCipher.prototype.setAuthTag = function setAuthTag (tag) { - if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state') - - this._authTag = tag -} - -StreamCipher.prototype.setAAD = function setAAD (buf) { - if (this._called) throw new Error('Attempting to set AAD in unsupported state') - - this._ghash.update(buf) - this._alen += buf.length -} - -module.exports = StreamCipher - - -/***/ }), - -/***/ "./node_modules/browserify-aes/browser.js": -/*!************************************************!*\ - !*** ./node_modules/browserify-aes/browser.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var ciphers = __webpack_require__(/*! ./encrypter */ "./node_modules/browserify-aes/encrypter.js") -var deciphers = __webpack_require__(/*! ./decrypter */ "./node_modules/browserify-aes/decrypter.js") -var modes = __webpack_require__(/*! ./modes/list.json */ "./node_modules/browserify-aes/modes/list.json") - -function getCiphers () { - return Object.keys(modes) -} - -exports.createCipher = exports.Cipher = ciphers.createCipher -exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv -exports.createDecipher = exports.Decipher = deciphers.createDecipher -exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv -exports.listCiphers = exports.getCiphers = getCiphers - - -/***/ }), - -/***/ "./node_modules/browserify-aes/decrypter.js": -/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/decrypter.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var AuthCipher = __webpack_require__(/*! ./authCipher */ "./node_modules/browserify-aes/authCipher.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -var MODES = __webpack_require__(/*! ./modes */ "./node_modules/browserify-aes/modes/index.js") -var StreamCipher = __webpack_require__(/*! ./streamCipher */ "./node_modules/browserify-aes/streamCipher.js") -var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") -var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") -var ebtk = __webpack_require__(/*! evp_bytestokey */ "./node_modules/evp_bytestokey/index.js") -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") - -function Decipher (mode, key, iv) { - Transform.call(this) - - this._cache = new Splitter() - this._last = void 0 - this._cipher = new aes.AES(key) - this._prev = Buffer.from(iv) - this._mode = mode - this._autopadding = true -} - -inherits(Decipher, Transform) - -Decipher.prototype._update = function (data) { - this._cache.add(data) - var chunk - var thing - var out = [] - while ((chunk = this._cache.get(this._autopadding))) { - thing = this._mode.decrypt(this, chunk) - out.push(thing) - } - return Buffer.concat(out) -} - -Decipher.prototype._final = function () { - var chunk = this._cache.flush() - if (this._autopadding) { - return unpad(this._mode.decrypt(this, chunk)) - } else if (chunk) { - throw new Error('data not multiple of block length') - } -} - -Decipher.prototype.setAutoPadding = function (setTo) { - this._autopadding = !!setTo - return this -} - -function Splitter () { - this.cache = Buffer.allocUnsafe(0) -} - -Splitter.prototype.add = function (data) { - this.cache = Buffer.concat([this.cache, data]) -} - -Splitter.prototype.get = function (autoPadding) { - var out - if (autoPadding) { - if (this.cache.length > 16) { - out = this.cache.slice(0, 16) - this.cache = this.cache.slice(16) - return out - } - } else { - if (this.cache.length >= 16) { - out = this.cache.slice(0, 16) - this.cache = this.cache.slice(16) - return out - } - } - - return null -} - -Splitter.prototype.flush = function () { - if (this.cache.length) return this.cache -} - -function unpad (last) { - var padded = last[15] - if (padded < 1 || padded > 16) { - throw new Error('unable to decrypt data') - } - var i = -1 - while (++i < padded) { - if (last[(i + (16 - padded))] !== padded) { - throw new Error('unable to decrypt data') - } - } - if (padded === 16) return - - return last.slice(0, 16 - padded) -} - -function createDecipheriv (suite, password, iv) { - var config = MODES[suite.toLowerCase()] - if (!config) throw new TypeError('invalid suite type') - - if (typeof iv === 'string') iv = Buffer.from(iv) - if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length) - - if (typeof password === 'string') password = Buffer.from(password) - if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length) - - if (config.type === 'stream') { - return new StreamCipher(config.module, password, iv, true) - } else if (config.type === 'auth') { - return new AuthCipher(config.module, password, iv, true) - } - - return new Decipher(config.module, password, iv) -} - -function createDecipher (suite, password) { - var config = MODES[suite.toLowerCase()] - if (!config) throw new TypeError('invalid suite type') - - var keys = ebtk(password, false, config.key, config.iv) - return createDecipheriv(suite, keys.key, keys.iv) -} - -exports.createDecipher = createDecipher -exports.createDecipheriv = createDecipheriv - - -/***/ }), - -/***/ "./node_modules/browserify-aes/encrypter.js": -/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/encrypter.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var MODES = __webpack_require__(/*! ./modes */ "./node_modules/browserify-aes/modes/index.js") -var AuthCipher = __webpack_require__(/*! ./authCipher */ "./node_modules/browserify-aes/authCipher.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -var StreamCipher = __webpack_require__(/*! ./streamCipher */ "./node_modules/browserify-aes/streamCipher.js") -var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") -var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") -var ebtk = __webpack_require__(/*! evp_bytestokey */ "./node_modules/evp_bytestokey/index.js") -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") - -function Cipher (mode, key, iv) { - Transform.call(this) - - this._cache = new Splitter() - this._cipher = new aes.AES(key) - this._prev = Buffer.from(iv) - this._mode = mode - this._autopadding = true -} - -inherits(Cipher, Transform) - -Cipher.prototype._update = function (data) { - this._cache.add(data) - var chunk - var thing - var out = [] - - while ((chunk = this._cache.get())) { - thing = this._mode.encrypt(this, chunk) - out.push(thing) - } - - return Buffer.concat(out) -} - -var PADDING = Buffer.alloc(16, 0x10) - -Cipher.prototype._final = function () { - var chunk = this._cache.flush() - if (this._autopadding) { - chunk = this._mode.encrypt(this, chunk) - this._cipher.scrub() - return chunk - } - - if (!chunk.equals(PADDING)) { - this._cipher.scrub() - throw new Error('data not multiple of block length') - } -} - -Cipher.prototype.setAutoPadding = function (setTo) { - this._autopadding = !!setTo - return this -} - -function Splitter () { - this.cache = Buffer.allocUnsafe(0) -} - -Splitter.prototype.add = function (data) { - this.cache = Buffer.concat([this.cache, data]) -} - -Splitter.prototype.get = function () { - if (this.cache.length > 15) { - var out = this.cache.slice(0, 16) - this.cache = this.cache.slice(16) - return out - } - return null -} - -Splitter.prototype.flush = function () { - var len = 16 - this.cache.length - var padBuff = Buffer.allocUnsafe(len) - - var i = -1 - while (++i < len) { - padBuff.writeUInt8(len, i) - } - - return Buffer.concat([this.cache, padBuff]) -} - -function createCipheriv (suite, password, iv) { - var config = MODES[suite.toLowerCase()] - if (!config) throw new TypeError('invalid suite type') - - if (typeof password === 'string') password = Buffer.from(password) - if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length) - - if (typeof iv === 'string') iv = Buffer.from(iv) - if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length) - - if (config.type === 'stream') { - return new StreamCipher(config.module, password, iv) - } else if (config.type === 'auth') { - return new AuthCipher(config.module, password, iv) - } - - return new Cipher(config.module, password, iv) -} - -function createCipher (suite, password) { - var config = MODES[suite.toLowerCase()] - if (!config) throw new TypeError('invalid suite type') - - var keys = ebtk(password, false, config.key, config.iv) - return createCipheriv(suite, keys.key, keys.iv) -} - -exports.createCipheriv = createCipheriv -exports.createCipher = createCipher - - -/***/ }), - -/***/ "./node_modules/browserify-aes/ghash.js": -/*!**********************************************!*\ - !*** ./node_modules/browserify-aes/ghash.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -var ZEROES = Buffer.alloc(16, 0) - -function toArray (buf) { - return [ - buf.readUInt32BE(0), - buf.readUInt32BE(4), - buf.readUInt32BE(8), - buf.readUInt32BE(12) - ] -} - -function fromArray (out) { - var buf = Buffer.allocUnsafe(16) - buf.writeUInt32BE(out[0] >>> 0, 0) - buf.writeUInt32BE(out[1] >>> 0, 4) - buf.writeUInt32BE(out[2] >>> 0, 8) - buf.writeUInt32BE(out[3] >>> 0, 12) - return buf -} - -function GHASH (key) { - this.h = key - this.state = Buffer.alloc(16, 0) - this.cache = Buffer.allocUnsafe(0) -} - -// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html -// by Juho Vähä-Herttua -GHASH.prototype.ghash = function (block) { - var i = -1 - while (++i < block.length) { - this.state[i] ^= block[i] - } - this._multiply() -} - -GHASH.prototype._multiply = function () { - var Vi = toArray(this.h) - var Zi = [0, 0, 0, 0] - var j, xi, lsbVi - var i = -1 - while (++i < 128) { - xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0 - if (xi) { - // Z_i+1 = Z_i ^ V_i - Zi[0] ^= Vi[0] - Zi[1] ^= Vi[1] - Zi[2] ^= Vi[2] - Zi[3] ^= Vi[3] - } - - // Store the value of LSB(V_i) - lsbVi = (Vi[3] & 1) !== 0 - - // V_i+1 = V_i >> 1 - for (j = 3; j > 0; j--) { - Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31) - } - Vi[0] = Vi[0] >>> 1 - - // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R - if (lsbVi) { - Vi[0] = Vi[0] ^ (0xe1 << 24) - } - } - this.state = fromArray(Zi) -} - -GHASH.prototype.update = function (buf) { - this.cache = Buffer.concat([this.cache, buf]) - var chunk - while (this.cache.length >= 16) { - chunk = this.cache.slice(0, 16) - this.cache = this.cache.slice(16) - this.ghash(chunk) - } -} - -GHASH.prototype.final = function (abl, bl) { - if (this.cache.length) { - this.ghash(Buffer.concat([this.cache, ZEROES], 16)) - } - - this.ghash(fromArray([0, abl, 0, bl])) - return this.state -} - -module.exports = GHASH - - -/***/ }), - -/***/ "./node_modules/browserify-aes/incr32.js": -/*!***********************************************!*\ - !*** ./node_modules/browserify-aes/incr32.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -function incr32 (iv) { - var len = iv.length - var item - while (len--) { - item = iv.readUInt8(len) - if (item === 255) { - iv.writeUInt8(0, len) - } else { - item++ - iv.writeUInt8(item, len) - break - } - } -} -module.exports = incr32 - - -/***/ }), - -/***/ "./node_modules/browserify-aes/modes/cbc.js": -/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/cbc.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") - -exports.encrypt = function (self, block) { - var data = xor(block, self._prev) - - self._prev = self._cipher.encryptBlock(data) - return self._prev -} - -exports.decrypt = function (self, block) { - var pad = self._prev - - self._prev = block - var out = self._cipher.decryptBlock(block) - - return xor(out, pad) -} - - -/***/ }), - -/***/ "./node_modules/browserify-aes/modes/cfb.js": -/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/cfb.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") - -function encryptStart (self, data, decrypt) { - var len = data.length - var out = xor(data, self._cache) - self._cache = self._cache.slice(len) - self._prev = Buffer.concat([self._prev, decrypt ? data : out]) - return out -} - -exports.encrypt = function (self, data, decrypt) { - var out = Buffer.allocUnsafe(0) - var len - - while (data.length) { - if (self._cache.length === 0) { - self._cache = self._cipher.encryptBlock(self._prev) - self._prev = Buffer.allocUnsafe(0) - } - - if (self._cache.length <= data.length) { - len = self._cache.length - out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)]) - data = data.slice(len) - } else { - out = Buffer.concat([out, encryptStart(self, data, decrypt)]) - break - } - } - - return out -} - - -/***/ }), - -/***/ "./node_modules/browserify-aes/modes/cfb1.js": -/*!***************************************************!*\ - !*** ./node_modules/browserify-aes/modes/cfb1.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer - -function encryptByte (self, byteParam, decrypt) { - var pad - var i = -1 - var len = 8 - var out = 0 - var bit, value - while (++i < len) { - pad = self._cipher.encryptBlock(self._prev) - bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0 - value = pad[0] ^ bit - out += ((value & 0x80) >> (i % 8)) - self._prev = shiftIn(self._prev, decrypt ? bit : value) - } - return out -} - -function shiftIn (buffer, value) { - var len = buffer.length - var i = -1 - var out = Buffer.allocUnsafe(buffer.length) - buffer = Buffer.concat([buffer, Buffer.from([value])]) - - while (++i < len) { - out[i] = buffer[i] << 1 | buffer[i + 1] >> (7) - } - - return out -} - -exports.encrypt = function (self, chunk, decrypt) { - var len = chunk.length - var out = Buffer.allocUnsafe(len) - var i = -1 - - while (++i < len) { - out[i] = encryptByte(self, chunk[i], decrypt) - } - - return out -} - - -/***/ }), - -/***/ "./node_modules/browserify-aes/modes/cfb8.js": -/*!***************************************************!*\ - !*** ./node_modules/browserify-aes/modes/cfb8.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer - -function encryptByte (self, byteParam, decrypt) { - var pad = self._cipher.encryptBlock(self._prev) - var out = pad[0] ^ byteParam - - self._prev = Buffer.concat([ - self._prev.slice(1), - Buffer.from([decrypt ? byteParam : out]) - ]) - - return out -} - -exports.encrypt = function (self, chunk, decrypt) { - var len = chunk.length - var out = Buffer.allocUnsafe(len) - var i = -1 - - while (++i < len) { - out[i] = encryptByte(self, chunk[i], decrypt) - } - - return out -} - - -/***/ }), - -/***/ "./node_modules/browserify-aes/modes/ctr.js": -/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/ctr.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -var incr32 = __webpack_require__(/*! ../incr32 */ "./node_modules/browserify-aes/incr32.js") - -function getBlock (self) { - var out = self._cipher.encryptBlockRaw(self._prev) - incr32(self._prev) - return out -} - -var blockSize = 16 -exports.encrypt = function (self, chunk) { - var chunkNum = Math.ceil(chunk.length / blockSize) - var start = self._cache.length - self._cache = Buffer.concat([ - self._cache, - Buffer.allocUnsafe(chunkNum * blockSize) - ]) - for (var i = 0; i < chunkNum; i++) { - var out = getBlock(self) - var offset = start + i * blockSize - self._cache.writeUInt32BE(out[0], offset + 0) - self._cache.writeUInt32BE(out[1], offset + 4) - self._cache.writeUInt32BE(out[2], offset + 8) - self._cache.writeUInt32BE(out[3], offset + 12) - } - var pad = self._cache.slice(0, chunk.length) - self._cache = self._cache.slice(chunk.length) - return xor(chunk, pad) -} - - -/***/ }), - -/***/ "./node_modules/browserify-aes/modes/ecb.js": -/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/ecb.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -exports.encrypt = function (self, block) { - return self._cipher.encryptBlock(block) -} - -exports.decrypt = function (self, block) { - return self._cipher.decryptBlock(block) -} - - -/***/ }), - -/***/ "./node_modules/browserify-aes/modes/index.js": -/*!****************************************************!*\ - !*** ./node_modules/browserify-aes/modes/index.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var modeModules = { - ECB: __webpack_require__(/*! ./ecb */ "./node_modules/browserify-aes/modes/ecb.js"), - CBC: __webpack_require__(/*! ./cbc */ "./node_modules/browserify-aes/modes/cbc.js"), - CFB: __webpack_require__(/*! ./cfb */ "./node_modules/browserify-aes/modes/cfb.js"), - CFB8: __webpack_require__(/*! ./cfb8 */ "./node_modules/browserify-aes/modes/cfb8.js"), - CFB1: __webpack_require__(/*! ./cfb1 */ "./node_modules/browserify-aes/modes/cfb1.js"), - OFB: __webpack_require__(/*! ./ofb */ "./node_modules/browserify-aes/modes/ofb.js"), - CTR: __webpack_require__(/*! ./ctr */ "./node_modules/browserify-aes/modes/ctr.js"), - GCM: __webpack_require__(/*! ./ctr */ "./node_modules/browserify-aes/modes/ctr.js") -} - -var modes = __webpack_require__(/*! ./list.json */ "./node_modules/browserify-aes/modes/list.json") - -for (var key in modes) { - modes[key].module = modeModules[modes[key].mode] -} - -module.exports = modes - - -/***/ }), - -/***/ "./node_modules/browserify-aes/modes/list.json": -/*!*****************************************************!*\ - !*** ./node_modules/browserify-aes/modes/list.json ***! - \*****************************************************/ -/*! exports provided: aes-128-ecb, aes-192-ecb, aes-256-ecb, aes-128-cbc, aes-192-cbc, aes-256-cbc, aes128, aes192, aes256, aes-128-cfb, aes-192-cfb, aes-256-cfb, aes-128-cfb8, aes-192-cfb8, aes-256-cfb8, aes-128-cfb1, aes-192-cfb1, aes-256-cfb1, aes-128-ofb, aes-192-ofb, aes-256-ofb, aes-128-ctr, aes-192-ctr, aes-256-ctr, aes-128-gcm, aes-192-gcm, aes-256-gcm, default */ -/***/ (function(module) { - -module.exports = {"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}; - -/***/ }), - -/***/ "./node_modules/browserify-aes/modes/ofb.js": -/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/ofb.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") - -function getBlock (self) { - self._prev = self._cipher.encryptBlock(self._prev) - return self._prev -} - -exports.encrypt = function (self, chunk) { - while (self._cache.length < chunk.length) { - self._cache = Buffer.concat([self._cache, getBlock(self)]) - } - - var pad = self._cache.slice(0, chunk.length) - self._cache = self._cache.slice(chunk.length) - return xor(chunk, pad) -} - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bufferGlobal */ "./node_modules/browserfs/dist/shims/bufferGlobal.js"))) - -/***/ }), - -/***/ "./node_modules/browserify-aes/streamCipher.js": -/*!*****************************************************!*\ - !*** ./node_modules/browserify-aes/streamCipher.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") - -function StreamCipher (mode, key, iv, decrypt) { - Transform.call(this) - - this._cipher = new aes.AES(key) - this._prev = Buffer.from(iv) - this._cache = Buffer.allocUnsafe(0) - this._secCache = Buffer.allocUnsafe(0) - this._decrypt = decrypt - this._mode = mode -} - -inherits(StreamCipher, Transform) - -StreamCipher.prototype._update = function (chunk) { - return this._mode.encrypt(this, chunk, this._decrypt) -} - -StreamCipher.prototype._final = function () { - this._cipher.scrub() -} - -module.exports = StreamCipher - - -/***/ }), - -/***/ "./node_modules/browserify-cipher/browser.js": -/*!***************************************************!*\ - !*** ./node_modules/browserify-cipher/browser.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var DES = __webpack_require__(/*! browserify-des */ "./node_modules/browserify-des/index.js") -var aes = __webpack_require__(/*! browserify-aes/browser */ "./node_modules/browserify-aes/browser.js") -var aesModes = __webpack_require__(/*! browserify-aes/modes */ "./node_modules/browserify-aes/modes/index.js") -var desModes = __webpack_require__(/*! browserify-des/modes */ "./node_modules/browserify-des/modes.js") -var ebtk = __webpack_require__(/*! evp_bytestokey */ "./node_modules/evp_bytestokey/index.js") - -function createCipher (suite, password) { - suite = suite.toLowerCase() - - var keyLen, ivLen - if (aesModes[suite]) { - keyLen = aesModes[suite].key - ivLen = aesModes[suite].iv - } else if (desModes[suite]) { - keyLen = desModes[suite].key * 8 - ivLen = desModes[suite].iv - } else { - throw new TypeError('invalid suite type') - } - - var keys = ebtk(password, false, keyLen, ivLen) - return createCipheriv(suite, keys.key, keys.iv) -} - -function createDecipher (suite, password) { - suite = suite.toLowerCase() - - var keyLen, ivLen - if (aesModes[suite]) { - keyLen = aesModes[suite].key - ivLen = aesModes[suite].iv - } else if (desModes[suite]) { - keyLen = desModes[suite].key * 8 - ivLen = desModes[suite].iv - } else { - throw new TypeError('invalid suite type') - } - - var keys = ebtk(password, false, keyLen, ivLen) - return createDecipheriv(suite, keys.key, keys.iv) -} - -function createCipheriv (suite, key, iv) { - suite = suite.toLowerCase() - if (aesModes[suite]) return aes.createCipheriv(suite, key, iv) - if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite }) - - throw new TypeError('invalid suite type') -} - -function createDecipheriv (suite, key, iv) { - suite = suite.toLowerCase() - if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv) - if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true }) - - throw new TypeError('invalid suite type') -} - -function getCiphers () { - return Object.keys(desModes).concat(aes.getCiphers()) -} - -exports.createCipher = exports.Cipher = createCipher -exports.createCipheriv = exports.Cipheriv = createCipheriv -exports.createDecipher = exports.Decipher = createDecipher -exports.createDecipheriv = exports.Decipheriv = createDecipheriv -exports.listCiphers = exports.getCiphers = getCiphers - - -/***/ }), - -/***/ "./node_modules/browserify-des/index.js": -/*!**********************************************!*\ - !*** ./node_modules/browserify-des/index.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var CipherBase = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") -var des = __webpack_require__(/*! des.js */ "./node_modules/des.js/lib/des.js") -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer - -var modes = { - 'des-ede3-cbc': des.CBC.instantiate(des.EDE), - 'des-ede3': des.EDE, - 'des-ede-cbc': des.CBC.instantiate(des.EDE), - 'des-ede': des.EDE, - 'des-cbc': des.CBC.instantiate(des.DES), - 'des-ecb': des.DES -} -modes.des = modes['des-cbc'] -modes.des3 = modes['des-ede3-cbc'] -module.exports = DES -inherits(DES, CipherBase) -function DES (opts) { - CipherBase.call(this) - var modeName = opts.mode.toLowerCase() - var mode = modes[modeName] - var type - if (opts.decrypt) { - type = 'decrypt' - } else { - type = 'encrypt' - } - var key = opts.key - if (!Buffer.isBuffer(key)) { - key = Buffer.from(key) - } - if (modeName === 'des-ede' || modeName === 'des-ede-cbc') { - key = Buffer.concat([key, key.slice(0, 8)]) - } - var iv = opts.iv - if (!Buffer.isBuffer(iv)) { - iv = Buffer.from(iv) - } - this._des = mode.create({ - key: key, - iv: iv, - type: type - }) -} -DES.prototype._update = function (data) { - return Buffer.from(this._des.update(data)) -} -DES.prototype._final = function () { - return Buffer.from(this._des.final()) -} - - -/***/ }), - -/***/ "./node_modules/browserify-des/modes.js": -/*!**********************************************!*\ - !*** ./node_modules/browserify-des/modes.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -exports['des-ecb'] = { - key: 8, - iv: 0 -} -exports['des-cbc'] = exports.des = { - key: 8, - iv: 8 -} -exports['des-ede3-cbc'] = exports.des3 = { - key: 24, - iv: 8 -} -exports['des-ede3'] = { - key: 24, - iv: 0 -} -exports['des-ede-cbc'] = { - key: 16, - iv: 8 -} -exports['des-ede'] = { - key: 16, - iv: 0 -} - - -/***/ }), - -/***/ "./node_modules/browserify-rsa/index.js": -/*!**********************************************!*\ - !*** ./node_modules/browserify-rsa/index.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {var bn = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); -var randomBytes = __webpack_require__(/*! randombytes */ "./node_modules/randombytes/browser.js"); -module.exports = crt; -function blind(priv) { - var r = getr(priv); - var blinder = r.toRed(bn.mont(priv.modulus)) - .redPow(new bn(priv.publicExponent)).fromRed(); - return { - blinder: blinder, - unblinder:r.invm(priv.modulus) - }; -} -function crt(msg, priv) { - var blinds = blind(priv); - var len = priv.modulus.byteLength(); - var mod = bn.mont(priv.modulus); - var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus); - var c1 = blinded.toRed(bn.mont(priv.prime1)); - var c2 = blinded.toRed(bn.mont(priv.prime2)); - var qinv = priv.coefficient; - var p = priv.prime1; - var q = priv.prime2; - var m1 = c1.redPow(priv.exponent1); - var m2 = c2.redPow(priv.exponent2); - m1 = m1.fromRed(); - m2 = m2.fromRed(); - var h = m1.isub(m2).imul(qinv).umod(p); - h.imul(q); - m2.iadd(h); - return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len)); -} -crt.getr = getr; -function getr(priv) { - var len = priv.modulus.byteLength(); - var r = new bn(randomBytes(len)); - while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) { - r = new bn(randomBytes(len)); - } - return r; -} - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bufferGlobal */ "./node_modules/browserfs/dist/shims/bufferGlobal.js"))) - -/***/ }), - -/***/ "./node_modules/browserify-sign/algos.js": -/*!***********************************************!*\ - !*** ./node_modules/browserify-sign/algos.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! ./browser/algorithms.json */ "./node_modules/browserify-sign/browser/algorithms.json") - - -/***/ }), - -/***/ "./node_modules/browserify-sign/browser/algorithms.json": -/*!**************************************************************!*\ - !*** ./node_modules/browserify-sign/browser/algorithms.json ***! - \**************************************************************/ -/*! exports provided: sha224WithRSAEncryption, RSA-SHA224, sha256WithRSAEncryption, RSA-SHA256, sha384WithRSAEncryption, RSA-SHA384, sha512WithRSAEncryption, RSA-SHA512, RSA-SHA1, ecdsa-with-SHA1, sha256, sha224, sha384, sha512, DSA-SHA, DSA-SHA1, DSA, DSA-WITH-SHA224, DSA-SHA224, DSA-WITH-SHA256, DSA-SHA256, DSA-WITH-SHA384, DSA-SHA384, DSA-WITH-SHA512, DSA-SHA512, DSA-RIPEMD160, ripemd160WithRSA, RSA-RIPEMD160, md5WithRSAEncryption, RSA-MD5, default */ -/***/ (function(module) { - -module.exports = {"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}; - -/***/ }), - -/***/ "./node_modules/browserify-sign/browser/curves.json": -/*!**********************************************************!*\ - !*** ./node_modules/browserify-sign/browser/curves.json ***! - \**********************************************************/ -/*! exports provided: 1.3.132.0.10, 1.3.132.0.33, 1.2.840.10045.3.1.1, 1.2.840.10045.3.1.7, 1.3.132.0.34, 1.3.132.0.35, default */ -/***/ (function(module) { - -module.exports = {"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}; - -/***/ }), - -/***/ "./node_modules/browserify-sign/browser/index.js": -/*!*******************************************************!*\ - !*** ./node_modules/browserify-sign/browser/index.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {var createHash = __webpack_require__(/*! create-hash */ "./node_modules/create-hash/browser.js") -var stream = __webpack_require__(/*! stream */ "./node_modules/stream-browserify/index.js") -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") -var sign = __webpack_require__(/*! ./sign */ "./node_modules/browserify-sign/browser/sign.js") -var verify = __webpack_require__(/*! ./verify */ "./node_modules/browserify-sign/browser/verify.js") - -var algorithms = __webpack_require__(/*! ./algorithms.json */ "./node_modules/browserify-sign/browser/algorithms.json") -Object.keys(algorithms).forEach(function (key) { - algorithms[key].id = new Buffer(algorithms[key].id, 'hex') - algorithms[key.toLowerCase()] = algorithms[key] -}) - -function Sign (algorithm) { - stream.Writable.call(this) - - var data = algorithms[algorithm] - if (!data) throw new Error('Unknown message digest') - - this._hashType = data.hash - this._hash = createHash(data.hash) - this._tag = data.id - this._signType = data.sign -} -inherits(Sign, stream.Writable) - -Sign.prototype._write = function _write (data, _, done) { - this._hash.update(data) - done() -} - -Sign.prototype.update = function update (data, enc) { - if (typeof data === 'string') data = new Buffer(data, enc) - - this._hash.update(data) - return this -} - -Sign.prototype.sign = function signMethod (key, enc) { - this.end() - var hash = this._hash.digest() - var sig = sign(hash, key, this._hashType, this._signType, this._tag) - - return enc ? sig.toString(enc) : sig -} - -function Verify (algorithm) { - stream.Writable.call(this) - - var data = algorithms[algorithm] - if (!data) throw new Error('Unknown message digest') - - this._hash = createHash(data.hash) - this._tag = data.id - this._signType = data.sign -} -inherits(Verify, stream.Writable) - -Verify.prototype._write = function _write (data, _, done) { - this._hash.update(data) - done() -} - -Verify.prototype.update = function update (data, enc) { - if (typeof data === 'string') data = new Buffer(data, enc) - - this._hash.update(data) - return this -} - -Verify.prototype.verify = function verifyMethod (key, sig, enc) { - if (typeof sig === 'string') sig = new Buffer(sig, enc) - - this.end() - var hash = this._hash.digest() - return verify(sig, hash, key, this._signType, this._tag) -} - -function createSign (algorithm) { - return new Sign(algorithm) -} - -function createVerify (algorithm) { - return new Verify(algorithm) -} - -module.exports = { - Sign: createSign, - Verify: createVerify, - createSign: createSign, - createVerify: createVerify -} - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bufferGlobal */ "./node_modules/browserfs/dist/shims/bufferGlobal.js"))) - -/***/ }), - -/***/ "./node_modules/browserify-sign/browser/sign.js": -/*!******************************************************!*\ - !*** ./node_modules/browserify-sign/browser/sign.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js -var createHmac = __webpack_require__(/*! create-hmac */ "./node_modules/create-hmac/browser.js") -var crt = __webpack_require__(/*! browserify-rsa */ "./node_modules/browserify-rsa/index.js") -var EC = __webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js").ec -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js") -var parseKeys = __webpack_require__(/*! parse-asn1 */ "./node_modules/parse-asn1/index.js") -var curves = __webpack_require__(/*! ./curves.json */ "./node_modules/browserify-sign/browser/curves.json") - -function sign (hash, key, hashType, signType, tag) { - var priv = parseKeys(key) - if (priv.curve) { - // rsa keys can be interpreted as ecdsa ones in openssl - if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type') - return ecSign(hash, priv) - } else if (priv.type === 'dsa') { - if (signType !== 'dsa') throw new Error('wrong private key type') - return dsaSign(hash, priv, hashType) - } else { - if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type') - } - hash = Buffer.concat([tag, hash]) - var len = priv.modulus.byteLength() - var pad = [ 0, 1 ] - while (hash.length + pad.length + 1 < len) pad.push(0xff) - pad.push(0x00) - var i = -1 - while (++i < hash.length) pad.push(hash[i]) - - var out = crt(pad, priv) - return out -} - -function ecSign (hash, priv) { - var curveId = curves[priv.curve.join('.')] - if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.')) - - var curve = new EC(curveId) - var key = curve.keyFromPrivate(priv.privateKey) - var out = key.sign(hash) - - return new Buffer(out.toDER()) -} - -function dsaSign (hash, priv, algo) { - var x = priv.params.priv_key - var p = priv.params.p - var q = priv.params.q - var g = priv.params.g - var r = new BN(0) - var k - var H = bits2int(hash, q).mod(q) - var s = false - var kv = getKey(x, q, hash, algo) - while (s === false) { - k = makeKey(q, kv, algo) - r = makeR(g, k, p, q) - s = k.invm(q).imul(H.add(x.mul(r))).mod(q) - if (s.cmpn(0) === 0) { - s = false - r = new BN(0) - } - } - return toDER(r, s) -} - -function toDER (r, s) { - r = r.toArray() - s = s.toArray() - - // Pad values - if (r[0] & 0x80) r = [ 0 ].concat(r) - if (s[0] & 0x80) s = [ 0 ].concat(s) - - var total = r.length + s.length + 4 - var res = [ 0x30, total, 0x02, r.length ] - res = res.concat(r, [ 0x02, s.length ], s) - return new Buffer(res) -} - -function getKey (x, q, hash, algo) { - x = new Buffer(x.toArray()) - if (x.length < q.byteLength()) { - var zeros = new Buffer(q.byteLength() - x.length) - zeros.fill(0) - x = Buffer.concat([ zeros, x ]) - } - var hlen = hash.length - var hbits = bits2octets(hash, q) - var v = new Buffer(hlen) - v.fill(1) - var k = new Buffer(hlen) - k.fill(0) - k = createHmac(algo, k).update(v).update(new Buffer([ 0 ])).update(x).update(hbits).digest() - v = createHmac(algo, k).update(v).digest() - k = createHmac(algo, k).update(v).update(new Buffer([ 1 ])).update(x).update(hbits).digest() - v = createHmac(algo, k).update(v).digest() - return { k: k, v: v } -} - -function bits2int (obits, q) { - var bits = new BN(obits) - var shift = (obits.length << 3) - q.bitLength() - if (shift > 0) bits.ishrn(shift) - return bits -} - -function bits2octets (bits, q) { - bits = bits2int(bits, q) - bits = bits.mod(q) - var out = new Buffer(bits.toArray()) - if (out.length < q.byteLength()) { - var zeros = new Buffer(q.byteLength() - out.length) - zeros.fill(0) - out = Buffer.concat([ zeros, out ]) - } - return out -} - -function makeKey (q, kv, algo) { - var t - var k - - do { - t = new Buffer(0) - - while (t.length * 8 < q.bitLength()) { - kv.v = createHmac(algo, kv.k).update(kv.v).digest() - t = Buffer.concat([ t, kv.v ]) - } - - k = bits2int(t, q) - kv.k = createHmac(algo, kv.k).update(kv.v).update(new Buffer([ 0 ])).digest() - kv.v = createHmac(algo, kv.k).update(kv.v).digest() - } while (k.cmp(q) !== -1) - - return k -} - -function makeR (g, k, p, q) { - return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q) -} - -module.exports = sign -module.exports.getKey = getKey -module.exports.makeKey = makeKey - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bufferGlobal */ "./node_modules/browserfs/dist/shims/bufferGlobal.js"))) - -/***/ }), - -/***/ "./node_modules/browserify-sign/browser/verify.js": -/*!********************************************************!*\ - !*** ./node_modules/browserify-sign/browser/verify.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js") -var EC = __webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js").ec -var parseKeys = __webpack_require__(/*! parse-asn1 */ "./node_modules/parse-asn1/index.js") -var curves = __webpack_require__(/*! ./curves.json */ "./node_modules/browserify-sign/browser/curves.json") - -function verify (sig, hash, key, signType, tag) { - var pub = parseKeys(key) - if (pub.type === 'ec') { - // rsa keys can be interpreted as ecdsa ones in openssl - if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type') - return ecVerify(sig, hash, pub) - } else if (pub.type === 'dsa') { - if (signType !== 'dsa') throw new Error('wrong public key type') - return dsaVerify(sig, hash, pub) - } else { - if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type') - } - hash = Buffer.concat([tag, hash]) - var len = pub.modulus.byteLength() - var pad = [ 1 ] - var padNum = 0 - while (hash.length + pad.length + 2 < len) { - pad.push(0xff) - padNum++ - } - pad.push(0x00) - var i = -1 - while (++i < hash.length) { - pad.push(hash[i]) - } - pad = new Buffer(pad) - var red = BN.mont(pub.modulus) - sig = new BN(sig).toRed(red) - - sig = sig.redPow(new BN(pub.publicExponent)) - sig = new Buffer(sig.fromRed().toArray()) - var out = padNum < 8 ? 1 : 0 - len = Math.min(sig.length, pad.length) - if (sig.length !== pad.length) out = 1 - - i = -1 - while (++i < len) out |= sig[i] ^ pad[i] - return out === 0 -} - -function ecVerify (sig, hash, pub) { - var curveId = curves[pub.data.algorithm.curve.join('.')] - if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')) - - var curve = new EC(curveId) - var pubkey = pub.data.subjectPrivateKey.data - - return curve.verify(hash, sig, pubkey) -} - -function dsaVerify (sig, hash, pub) { - var p = pub.data.p - var q = pub.data.q - var g = pub.data.g - var y = pub.data.pub_key - var unpacked = parseKeys.signature.decode(sig, 'der') - var s = unpacked.s - var r = unpacked.r - checkValue(s, q) - checkValue(r, q) - var montp = BN.mont(p) - var w = s.invm(q) - var v = g.toRed(montp) - .redPow(new BN(hash).mul(w).mod(q)) - .fromRed() - .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()) - .mod(p) - .mod(q) - return v.cmp(r) === 0 -} - -function checkValue (b, q) { - if (b.cmpn(0) <= 0) throw new Error('invalid sig') - if (b.cmp(q) >= q) throw new Error('invalid sig') -} - -module.exports = verify - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bufferGlobal */ "./node_modules/browserfs/dist/shims/bufferGlobal.js"))) - -/***/ }), - -/***/ "./node_modules/buffer-from/index.js": -/*!*******************************************!*\ - !*** ./node_modules/buffer-from/index.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {var toString = Object.prototype.toString - -var isModern = ( - typeof Buffer.alloc === 'function' && - typeof Buffer.allocUnsafe === 'function' && - typeof Buffer.from === 'function' -) - -function isArrayBuffer (input) { - return toString.call(input).slice(8, -1) === 'ArrayBuffer' -} - -function fromArrayBuffer (obj, byteOffset, length) { - byteOffset >>>= 0 - - var maxLength = obj.byteLength - byteOffset - - if (maxLength < 0) { - throw new RangeError("'offset' is out of bounds") - } - - if (length === undefined) { - length = maxLength - } else { - length >>>= 0 - - if (length > maxLength) { - throw new RangeError("'length' is out of bounds") - } - } - - return isModern - ? Buffer.from(obj.slice(byteOffset, byteOffset + length)) - : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length))) -} - -function fromString (string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('"encoding" must be a valid string encoding') - } - - return isModern - ? Buffer.from(string, encoding) - : new Buffer(string, encoding) -} - -function bufferFrom (value, encodingOrOffset, length) { - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number') - } - - if (isArrayBuffer(value)) { - return fromArrayBuffer(value, encodingOrOffset, length) - } - - if (typeof value === 'string') { - return fromString(value, encodingOrOffset) - } - - return isModern - ? Buffer.from(value) - : new Buffer(value) -} - -module.exports = bufferFrom - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bufferGlobal */ "./node_modules/browserfs/dist/shims/bufferGlobal.js"))) - -/***/ }), - -/***/ "./node_modules/buffer-xor/index.js": -/*!******************************************!*\ - !*** ./node_modules/buffer-xor/index.js ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {module.exports = function xor (a, b) { - var length = Math.min(a.length, b.length) - var buffer = new Buffer(length) - - for (var i = 0; i < length; ++i) { - buffer[i] = a[i] ^ b[i] - } - - return buffer -} - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bufferGlobal */ "./node_modules/browserfs/dist/shims/bufferGlobal.js"))) - -/***/ }), - -/***/ "./node_modules/cipher-base/index.js": -/*!*******************************************!*\ - !*** ./node_modules/cipher-base/index.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -var Transform = __webpack_require__(/*! stream */ "./node_modules/stream-browserify/index.js").Transform -var StringDecoder = __webpack_require__(/*! string_decoder */ "./node_modules/string_decoder/lib/string_decoder.js").StringDecoder -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") - -function CipherBase (hashMode) { - Transform.call(this) - this.hashMode = typeof hashMode === 'string' - if (this.hashMode) { - this[hashMode] = this._finalOrDigest - } else { - this.final = this._finalOrDigest - } - if (this._final) { - this.__final = this._final - this._final = null - } - this._decoder = null - this._encoding = null -} -inherits(CipherBase, Transform) - -CipherBase.prototype.update = function (data, inputEnc, outputEnc) { - if (typeof data === 'string') { - data = Buffer.from(data, inputEnc) - } - - var outData = this._update(data) - if (this.hashMode) return this - - if (outputEnc) { - outData = this._toString(outData, outputEnc) - } - - return outData -} - -CipherBase.prototype.setAutoPadding = function () {} -CipherBase.prototype.getAuthTag = function () { - throw new Error('trying to get auth tag in unsupported state') -} - -CipherBase.prototype.setAuthTag = function () { - throw new Error('trying to set auth tag in unsupported state') -} - -CipherBase.prototype.setAAD = function () { - throw new Error('trying to set aad in unsupported state') -} - -CipherBase.prototype._transform = function (data, _, next) { - var err - try { - if (this.hashMode) { - this._update(data) - } else { - this.push(this._update(data)) - } - } catch (e) { - err = e - } finally { - next(err) - } -} -CipherBase.prototype._flush = function (done) { - var err - try { - this.push(this.__final()) - } catch (e) { - err = e - } - - done(err) -} -CipherBase.prototype._finalOrDigest = function (outputEnc) { - var outData = this.__final() || Buffer.alloc(0) - if (outputEnc) { - outData = this._toString(outData, outputEnc, true) - } - return outData -} - -CipherBase.prototype._toString = function (value, enc, fin) { - if (!this._decoder) { - this._decoder = new StringDecoder(enc) - this._encoding = enc - } - - if (this._encoding !== enc) throw new Error('can\'t switch encodings') - - var out = this._decoder.write(value) - if (fin) { - out += this._decoder.end() - } - - return out -} - -module.exports = CipherBase - - -/***/ }), - -/***/ "./node_modules/core-util-is/lib/util.js": -/*!***********************************************!*\ - !*** ./node_modules/core-util-is/lib/util.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. - -function isArray(arg) { - if (Array.isArray) { - return Array.isArray(arg); - } - return objectToString(arg) === '[object Array]'; -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = Buffer.isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bufferGlobal */ "./node_modules/browserfs/dist/shims/bufferGlobal.js"))) - -/***/ }), - -/***/ "./node_modules/create-ecdh/browser.js": -/*!*********************************************!*\ - !*** ./node_modules/create-ecdh/browser.js ***! - \*********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {var elliptic = __webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js") -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js") - -module.exports = function createECDH (curve) { - return new ECDH(curve) -} - -var aliases = { - secp256k1: { - name: 'secp256k1', - byteLength: 32 - }, - secp224r1: { - name: 'p224', - byteLength: 28 - }, - prime256v1: { - name: 'p256', - byteLength: 32 - }, - prime192v1: { - name: 'p192', - byteLength: 24 - }, - ed25519: { - name: 'ed25519', - byteLength: 32 - }, - secp384r1: { - name: 'p384', - byteLength: 48 - }, - secp521r1: { - name: 'p521', - byteLength: 66 - } -} - -aliases.p224 = aliases.secp224r1 -aliases.p256 = aliases.secp256r1 = aliases.prime256v1 -aliases.p192 = aliases.secp192r1 = aliases.prime192v1 -aliases.p384 = aliases.secp384r1 -aliases.p521 = aliases.secp521r1 - -function ECDH (curve) { - this.curveType = aliases[curve] - if (!this.curveType) { - this.curveType = { - name: curve - } - } - this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap - this.keys = void 0 -} - -ECDH.prototype.generateKeys = function (enc, format) { - this.keys = this.curve.genKeyPair() - return this.getPublicKey(enc, format) -} - -ECDH.prototype.computeSecret = function (other, inenc, enc) { - inenc = inenc || 'utf8' - if (!Buffer.isBuffer(other)) { - other = new Buffer(other, inenc) - } - var otherPub = this.curve.keyFromPublic(other).getPublic() - var out = otherPub.mul(this.keys.getPrivate()).getX() - return formatReturnValue(out, enc, this.curveType.byteLength) -} - -ECDH.prototype.getPublicKey = function (enc, format) { - var key = this.keys.getPublic(format === 'compressed', true) - if (format === 'hybrid') { - if (key[key.length - 1] % 2) { - key[0] = 7 - } else { - key[0] = 6 - } - } - return formatReturnValue(key, enc) -} - -ECDH.prototype.getPrivateKey = function (enc) { - return formatReturnValue(this.keys.getPrivate(), enc) -} - -ECDH.prototype.setPublicKey = function (pub, enc) { - enc = enc || 'utf8' - if (!Buffer.isBuffer(pub)) { - pub = new Buffer(pub, enc) - } - this.keys._importPublic(pub) - return this -} - -ECDH.prototype.setPrivateKey = function (priv, enc) { - enc = enc || 'utf8' - if (!Buffer.isBuffer(priv)) { - priv = new Buffer(priv, enc) - } - - var _priv = new BN(priv) - _priv = _priv.toString(16) - this.keys = this.curve.genKeyPair() - this.keys._importPrivate(_priv) - return this -} - -function formatReturnValue (bn, enc, len) { - if (!Array.isArray(bn)) { - bn = bn.toArray() - } - var buf = new Buffer(bn) - if (len && buf.length < len) { - var zeros = new Buffer(len - buf.length) - zeros.fill(0) - buf = Buffer.concat([zeros, buf]) - } - if (!enc) { - return buf - } else { - return buf.toString(enc) - } -} - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bufferGlobal */ "./node_modules/browserfs/dist/shims/bufferGlobal.js"))) - -/***/ }), - -/***/ "./node_modules/create-hash/browser.js": -/*!*********************************************!*\ - !*** ./node_modules/create-hash/browser.js ***! - \*********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") -var MD5 = __webpack_require__(/*! md5.js */ "./node_modules/md5.js/index.js") -var RIPEMD160 = __webpack_require__(/*! ripemd160 */ "./node_modules/ripemd160/index.js") -var sha = __webpack_require__(/*! sha.js */ "./node_modules/sha.js/index.js") -var Base = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") - -function Hash (hash) { - Base.call(this, 'digest') - - this._hash = hash -} - -inherits(Hash, Base) - -Hash.prototype._update = function (data) { - this._hash.update(data) -} - -Hash.prototype._final = function () { - return this._hash.digest() -} - -module.exports = function createHash (alg) { - alg = alg.toLowerCase() - if (alg === 'md5') return new MD5() - if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160() - - return new Hash(sha(alg)) -} - - -/***/ }), - -/***/ "./node_modules/create-hash/md5.js": -/*!*****************************************!*\ - !*** ./node_modules/create-hash/md5.js ***! - \*****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var MD5 = __webpack_require__(/*! md5.js */ "./node_modules/md5.js/index.js") - -module.exports = function (buffer) { - return new MD5().update(buffer).digest() -} - - -/***/ }), - -/***/ "./node_modules/create-hmac/browser.js": -/*!*********************************************!*\ - !*** ./node_modules/create-hmac/browser.js ***! - \*********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") -var Legacy = __webpack_require__(/*! ./legacy */ "./node_modules/create-hmac/legacy.js") -var Base = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -var md5 = __webpack_require__(/*! create-hash/md5 */ "./node_modules/create-hash/md5.js") -var RIPEMD160 = __webpack_require__(/*! ripemd160 */ "./node_modules/ripemd160/index.js") - -var sha = __webpack_require__(/*! sha.js */ "./node_modules/sha.js/index.js") - -var ZEROS = Buffer.alloc(128) - -function Hmac (alg, key) { - Base.call(this, 'digest') - if (typeof key === 'string') { - key = Buffer.from(key) - } - - var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64 - - this._alg = alg - this._key = key - if (key.length > blocksize) { - var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg) - key = hash.update(key).digest() - } else if (key.length < blocksize) { - key = Buffer.concat([key, ZEROS], blocksize) - } - - var ipad = this._ipad = Buffer.allocUnsafe(blocksize) - var opad = this._opad = Buffer.allocUnsafe(blocksize) - - for (var i = 0; i < blocksize; i++) { - ipad[i] = key[i] ^ 0x36 - opad[i] = key[i] ^ 0x5C - } - this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg) - this._hash.update(ipad) -} - -inherits(Hmac, Base) - -Hmac.prototype._update = function (data) { - this._hash.update(data) -} - -Hmac.prototype._final = function () { - var h = this._hash.digest() - var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg) - return hash.update(this._opad).update(h).digest() -} - -module.exports = function createHmac (alg, key) { - alg = alg.toLowerCase() - if (alg === 'rmd160' || alg === 'ripemd160') { - return new Hmac('rmd160', key) - } - if (alg === 'md5') { - return new Legacy(md5, key) - } - return new Hmac(alg, key) -} - - -/***/ }), - -/***/ "./node_modules/create-hmac/legacy.js": -/*!********************************************!*\ - !*** ./node_modules/create-hmac/legacy.js ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer - -var Base = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") - -var ZEROS = Buffer.alloc(128) -var blocksize = 64 - -function Hmac (alg, key) { - Base.call(this, 'digest') - if (typeof key === 'string') { - key = Buffer.from(key) - } - - this._alg = alg - this._key = key - - if (key.length > blocksize) { - key = alg(key) - } else if (key.length < blocksize) { - key = Buffer.concat([key, ZEROS], blocksize) - } - - var ipad = this._ipad = Buffer.allocUnsafe(blocksize) - var opad = this._opad = Buffer.allocUnsafe(blocksize) - - for (var i = 0; i < blocksize; i++) { - ipad[i] = key[i] ^ 0x36 - opad[i] = key[i] ^ 0x5C - } - - this._hash = [ipad] -} - -inherits(Hmac, Base) - -Hmac.prototype._update = function (data) { - this._hash.push(data) -} - -Hmac.prototype._final = function () { - var h = this._alg(Buffer.concat(this._hash)) - return this._alg(Buffer.concat([this._opad, h])) -} -module.exports = Hmac - - -/***/ }), - -/***/ "./node_modules/crypto-browserify/index.js": -/*!*************************************************!*\ - !*** ./node_modules/crypto-browserify/index.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = __webpack_require__(/*! randombytes */ "./node_modules/randombytes/browser.js") -exports.createHash = exports.Hash = __webpack_require__(/*! create-hash */ "./node_modules/create-hash/browser.js") -exports.createHmac = exports.Hmac = __webpack_require__(/*! create-hmac */ "./node_modules/create-hmac/browser.js") - -var algos = __webpack_require__(/*! browserify-sign/algos */ "./node_modules/browserify-sign/algos.js") -var algoKeys = Object.keys(algos) -var hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys) -exports.getHashes = function () { - return hashes -} - -var p = __webpack_require__(/*! pbkdf2 */ "./node_modules/pbkdf2/browser.js") -exports.pbkdf2 = p.pbkdf2 -exports.pbkdf2Sync = p.pbkdf2Sync - -var aes = __webpack_require__(/*! browserify-cipher */ "./node_modules/browserify-cipher/browser.js") - -exports.Cipher = aes.Cipher -exports.createCipher = aes.createCipher -exports.Cipheriv = aes.Cipheriv -exports.createCipheriv = aes.createCipheriv -exports.Decipher = aes.Decipher -exports.createDecipher = aes.createDecipher -exports.Decipheriv = aes.Decipheriv -exports.createDecipheriv = aes.createDecipheriv -exports.getCiphers = aes.getCiphers -exports.listCiphers = aes.listCiphers - -var dh = __webpack_require__(/*! diffie-hellman */ "./node_modules/diffie-hellman/browser.js") - -exports.DiffieHellmanGroup = dh.DiffieHellmanGroup -exports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup -exports.getDiffieHellman = dh.getDiffieHellman -exports.createDiffieHellman = dh.createDiffieHellman -exports.DiffieHellman = dh.DiffieHellman - -var sign = __webpack_require__(/*! browserify-sign */ "./node_modules/browserify-sign/browser/index.js") - -exports.createSign = sign.createSign -exports.Sign = sign.Sign -exports.createVerify = sign.createVerify -exports.Verify = sign.Verify - -exports.createECDH = __webpack_require__(/*! create-ecdh */ "./node_modules/create-ecdh/browser.js") - -var publicEncrypt = __webpack_require__(/*! public-encrypt */ "./node_modules/public-encrypt/browser.js") - -exports.publicEncrypt = publicEncrypt.publicEncrypt -exports.privateEncrypt = publicEncrypt.privateEncrypt -exports.publicDecrypt = publicEncrypt.publicDecrypt -exports.privateDecrypt = publicEncrypt.privateDecrypt - -// the least I can do is make error messages for the rest of the node.js/crypto api. -// ;[ -// 'createCredentials' -// ].forEach(function (name) { -// exports[name] = function () { -// throw new Error([ -// 'sorry, ' + name + ' is not implemented yet', -// 'we accept pull requests', -// 'https://github.com/crypto-browserify/crypto-browserify' -// ].join('\n')) -// } -// }) - -var rf = __webpack_require__(/*! randomfill */ "./node_modules/randomfill/browser.js") - -exports.randomFill = rf.randomFill -exports.randomFillSync = rf.randomFillSync - -exports.createCredentials = function () { - throw new Error([ - 'sorry, createCredentials is not implemented yet', - 'we accept pull requests', - 'https://github.com/crypto-browserify/crypto-browserify' - ].join('\n')) -} - -exports.constants = { - 'DH_CHECK_P_NOT_SAFE_PRIME': 2, - 'DH_CHECK_P_NOT_PRIME': 1, - 'DH_UNABLE_TO_CHECK_GENERATOR': 4, - 'DH_NOT_SUITABLE_GENERATOR': 8, - 'NPN_ENABLED': 1, - 'ALPN_ENABLED': 1, - 'RSA_PKCS1_PADDING': 1, - 'RSA_SSLV23_PADDING': 2, - 'RSA_NO_PADDING': 3, - 'RSA_PKCS1_OAEP_PADDING': 4, - 'RSA_X931_PADDING': 5, - 'RSA_PKCS1_PSS_PADDING': 6, - 'POINT_CONVERSION_COMPRESSED': 2, - 'POINT_CONVERSION_UNCOMPRESSED': 4, - 'POINT_CONVERSION_HYBRID': 6 -} - - -/***/ }), - -/***/ "./node_modules/des.js/lib/des.js": -/*!****************************************!*\ - !*** ./node_modules/des.js/lib/des.js ***! - \****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.utils = __webpack_require__(/*! ./des/utils */ "./node_modules/des.js/lib/des/utils.js"); -exports.Cipher = __webpack_require__(/*! ./des/cipher */ "./node_modules/des.js/lib/des/cipher.js"); -exports.DES = __webpack_require__(/*! ./des/des */ "./node_modules/des.js/lib/des/des.js"); -exports.CBC = __webpack_require__(/*! ./des/cbc */ "./node_modules/des.js/lib/des/cbc.js"); -exports.EDE = __webpack_require__(/*! ./des/ede */ "./node_modules/des.js/lib/des/ede.js"); - - -/***/ }), - -/***/ "./node_modules/des.js/lib/des/cbc.js": -/*!********************************************!*\ - !*** ./node_modules/des.js/lib/des/cbc.js ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); - -var proto = {}; - -function CBCState(iv) { - assert.equal(iv.length, 8, 'Invalid IV length'); - - this.iv = new Array(8); - for (var i = 0; i < this.iv.length; i++) - this.iv[i] = iv[i]; -} - -function instantiate(Base) { - function CBC(options) { - Base.call(this, options); - this._cbcInit(); - } - inherits(CBC, Base); - - var keys = Object.keys(proto); - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - CBC.prototype[key] = proto[key]; - } - - CBC.create = function create(options) { - return new CBC(options); - }; - - return CBC; -} - -exports.instantiate = instantiate; - -proto._cbcInit = function _cbcInit() { - var state = new CBCState(this.options.iv); - this._cbcState = state; -}; - -proto._update = function _update(inp, inOff, out, outOff) { - var state = this._cbcState; - var superProto = this.constructor.super_.prototype; - - var iv = state.iv; - if (this.type === 'encrypt') { - for (var i = 0; i < this.blockSize; i++) - iv[i] ^= inp[inOff + i]; - - superProto._update.call(this, iv, 0, out, outOff); - - for (var i = 0; i < this.blockSize; i++) - iv[i] = out[outOff + i]; - } else { - superProto._update.call(this, inp, inOff, out, outOff); - - for (var i = 0; i < this.blockSize; i++) - out[outOff + i] ^= iv[i]; - - for (var i = 0; i < this.blockSize; i++) - iv[i] = inp[inOff + i]; - } -}; - - -/***/ }), - -/***/ "./node_modules/des.js/lib/des/cipher.js": -/*!***********************************************!*\ - !*** ./node_modules/des.js/lib/des/cipher.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); - -function Cipher(options) { - this.options = options; - - this.type = this.options.type; - this.blockSize = 8; - this._init(); - - this.buffer = new Array(this.blockSize); - this.bufferOff = 0; -} -module.exports = Cipher; - -Cipher.prototype._init = function _init() { - // Might be overrided -}; - -Cipher.prototype.update = function update(data) { - if (data.length === 0) - return []; - - if (this.type === 'decrypt') - return this._updateDecrypt(data); - else - return this._updateEncrypt(data); -}; - -Cipher.prototype._buffer = function _buffer(data, off) { - // Append data to buffer - var min = Math.min(this.buffer.length - this.bufferOff, data.length - off); - for (var i = 0; i < min; i++) - this.buffer[this.bufferOff + i] = data[off + i]; - this.bufferOff += min; - - // Shift next - return min; -}; - -Cipher.prototype._flushBuffer = function _flushBuffer(out, off) { - this._update(this.buffer, 0, out, off); - this.bufferOff = 0; - return this.blockSize; -}; - -Cipher.prototype._updateEncrypt = function _updateEncrypt(data) { - var inputOff = 0; - var outputOff = 0; - - var count = ((this.bufferOff + data.length) / this.blockSize) | 0; - var out = new Array(count * this.blockSize); - - if (this.bufferOff !== 0) { - inputOff += this._buffer(data, inputOff); - - if (this.bufferOff === this.buffer.length) - outputOff += this._flushBuffer(out, outputOff); - } - - // Write blocks - var max = data.length - ((data.length - inputOff) % this.blockSize); - for (; inputOff < max; inputOff += this.blockSize) { - this._update(data, inputOff, out, outputOff); - outputOff += this.blockSize; - } - - // Queue rest - for (; inputOff < data.length; inputOff++, this.bufferOff++) - this.buffer[this.bufferOff] = data[inputOff]; - - return out; -}; - -Cipher.prototype._updateDecrypt = function _updateDecrypt(data) { - var inputOff = 0; - var outputOff = 0; - - var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1; - var out = new Array(count * this.blockSize); - - // TODO(indutny): optimize it, this is far from optimal - for (; count > 0; count--) { - inputOff += this._buffer(data, inputOff); - outputOff += this._flushBuffer(out, outputOff); - } - - // Buffer rest of the input - inputOff += this._buffer(data, inputOff); - - return out; -}; - -Cipher.prototype.final = function final(buffer) { - var first; - if (buffer) - first = this.update(buffer); - - var last; - if (this.type === 'encrypt') - last = this._finalEncrypt(); - else - last = this._finalDecrypt(); - - if (first) - return first.concat(last); - else - return last; -}; - -Cipher.prototype._pad = function _pad(buffer, off) { - if (off === 0) - return false; - - while (off < buffer.length) - buffer[off++] = 0; - - return true; -}; - -Cipher.prototype._finalEncrypt = function _finalEncrypt() { - if (!this._pad(this.buffer, this.bufferOff)) - return []; - - var out = new Array(this.blockSize); - this._update(this.buffer, 0, out, 0); - return out; -}; - -Cipher.prototype._unpad = function _unpad(buffer) { - return buffer; -}; - -Cipher.prototype._finalDecrypt = function _finalDecrypt() { - assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt'); - var out = new Array(this.blockSize); - this._flushBuffer(out, 0); - - return this._unpad(out); -}; - - -/***/ }), - -/***/ "./node_modules/des.js/lib/des/des.js": -/*!********************************************!*\ - !*** ./node_modules/des.js/lib/des/des.js ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); - -var des = __webpack_require__(/*! ../des */ "./node_modules/des.js/lib/des.js"); -var utils = des.utils; -var Cipher = des.Cipher; - -function DESState() { - this.tmp = new Array(2); - this.keys = null; -} - -function DES(options) { - Cipher.call(this, options); - - var state = new DESState(); - this._desState = state; - - this.deriveKeys(state, options.key); -} -inherits(DES, Cipher); -module.exports = DES; - -DES.create = function create(options) { - return new DES(options); -}; - -var shiftTable = [ - 1, 1, 2, 2, 2, 2, 2, 2, - 1, 2, 2, 2, 2, 2, 2, 1 -]; - -DES.prototype.deriveKeys = function deriveKeys(state, key) { - state.keys = new Array(16 * 2); - - assert.equal(key.length, this.blockSize, 'Invalid key length'); - - var kL = utils.readUInt32BE(key, 0); - var kR = utils.readUInt32BE(key, 4); - - utils.pc1(kL, kR, state.tmp, 0); - kL = state.tmp[0]; - kR = state.tmp[1]; - for (var i = 0; i < state.keys.length; i += 2) { - var shift = shiftTable[i >>> 1]; - kL = utils.r28shl(kL, shift); - kR = utils.r28shl(kR, shift); - utils.pc2(kL, kR, state.keys, i); - } -}; - -DES.prototype._update = function _update(inp, inOff, out, outOff) { - var state = this._desState; - - var l = utils.readUInt32BE(inp, inOff); - var r = utils.readUInt32BE(inp, inOff + 4); - - // Initial Permutation - utils.ip(l, r, state.tmp, 0); - l = state.tmp[0]; - r = state.tmp[1]; - - if (this.type === 'encrypt') - this._encrypt(state, l, r, state.tmp, 0); - else - this._decrypt(state, l, r, state.tmp, 0); - - l = state.tmp[0]; - r = state.tmp[1]; - - utils.writeUInt32BE(out, l, outOff); - utils.writeUInt32BE(out, r, outOff + 4); -}; - -DES.prototype._pad = function _pad(buffer, off) { - var value = buffer.length - off; - for (var i = off; i < buffer.length; i++) - buffer[i] = value; - - return true; -}; - -DES.prototype._unpad = function _unpad(buffer) { - var pad = buffer[buffer.length - 1]; - for (var i = buffer.length - pad; i < buffer.length; i++) - assert.equal(buffer[i], pad); - - return buffer.slice(0, buffer.length - pad); -}; - -DES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) { - var l = lStart; - var r = rStart; - - // Apply f() x16 times - for (var i = 0; i < state.keys.length; i += 2) { - var keyL = state.keys[i]; - var keyR = state.keys[i + 1]; - - // f(r, k) - utils.expand(r, state.tmp, 0); - - keyL ^= state.tmp[0]; - keyR ^= state.tmp[1]; - var s = utils.substitute(keyL, keyR); - var f = utils.permute(s); - - var t = r; - r = (l ^ f) >>> 0; - l = t; - } - - // Reverse Initial Permutation - utils.rip(r, l, out, off); -}; - -DES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) { - var l = rStart; - var r = lStart; - - // Apply f() x16 times - for (var i = state.keys.length - 2; i >= 0; i -= 2) { - var keyL = state.keys[i]; - var keyR = state.keys[i + 1]; - - // f(r, k) - utils.expand(l, state.tmp, 0); - - keyL ^= state.tmp[0]; - keyR ^= state.tmp[1]; - var s = utils.substitute(keyL, keyR); - var f = utils.permute(s); - - var t = l; - l = (r ^ f) >>> 0; - r = t; - } - - // Reverse Initial Permutation - utils.rip(l, r, out, off); -}; - - -/***/ }), - -/***/ "./node_modules/des.js/lib/des/ede.js": -/*!********************************************!*\ - !*** ./node_modules/des.js/lib/des/ede.js ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); - -var des = __webpack_require__(/*! ../des */ "./node_modules/des.js/lib/des.js"); -var Cipher = des.Cipher; -var DES = des.DES; - -function EDEState(type, key) { - assert.equal(key.length, 24, 'Invalid key length'); - - var k1 = key.slice(0, 8); - var k2 = key.slice(8, 16); - var k3 = key.slice(16, 24); - - if (type === 'encrypt') { - this.ciphers = [ - DES.create({ type: 'encrypt', key: k1 }), - DES.create({ type: 'decrypt', key: k2 }), - DES.create({ type: 'encrypt', key: k3 }) - ]; - } else { - this.ciphers = [ - DES.create({ type: 'decrypt', key: k3 }), - DES.create({ type: 'encrypt', key: k2 }), - DES.create({ type: 'decrypt', key: k1 }) - ]; - } -} - -function EDE(options) { - Cipher.call(this, options); - - var state = new EDEState(this.type, this.options.key); - this._edeState = state; -} -inherits(EDE, Cipher); - -module.exports = EDE; - -EDE.create = function create(options) { - return new EDE(options); -}; - -EDE.prototype._update = function _update(inp, inOff, out, outOff) { - var state = this._edeState; - - state.ciphers[0]._update(inp, inOff, out, outOff); - state.ciphers[1]._update(out, outOff, out, outOff); - state.ciphers[2]._update(out, outOff, out, outOff); -}; - -EDE.prototype._pad = DES.prototype._pad; -EDE.prototype._unpad = DES.prototype._unpad; - - -/***/ }), - -/***/ "./node_modules/des.js/lib/des/utils.js": -/*!**********************************************!*\ - !*** ./node_modules/des.js/lib/des/utils.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.readUInt32BE = function readUInt32BE(bytes, off) { - var res = (bytes[0 + off] << 24) | - (bytes[1 + off] << 16) | - (bytes[2 + off] << 8) | - bytes[3 + off]; - return res >>> 0; -}; - -exports.writeUInt32BE = function writeUInt32BE(bytes, value, off) { - bytes[0 + off] = value >>> 24; - bytes[1 + off] = (value >>> 16) & 0xff; - bytes[2 + off] = (value >>> 8) & 0xff; - bytes[3 + off] = value & 0xff; -}; - -exports.ip = function ip(inL, inR, out, off) { - var outL = 0; - var outR = 0; - - for (var i = 6; i >= 0; i -= 2) { - for (var j = 0; j <= 24; j += 8) { - outL <<= 1; - outL |= (inR >>> (j + i)) & 1; - } - for (var j = 0; j <= 24; j += 8) { - outL <<= 1; - outL |= (inL >>> (j + i)) & 1; - } - } - - for (var i = 6; i >= 0; i -= 2) { - for (var j = 1; j <= 25; j += 8) { - outR <<= 1; - outR |= (inR >>> (j + i)) & 1; - } - for (var j = 1; j <= 25; j += 8) { - outR <<= 1; - outR |= (inL >>> (j + i)) & 1; - } - } - - out[off + 0] = outL >>> 0; - out[off + 1] = outR >>> 0; -}; - -exports.rip = function rip(inL, inR, out, off) { - var outL = 0; - var outR = 0; - - for (var i = 0; i < 4; i++) { - for (var j = 24; j >= 0; j -= 8) { - outL <<= 1; - outL |= (inR >>> (j + i)) & 1; - outL <<= 1; - outL |= (inL >>> (j + i)) & 1; - } - } - for (var i = 4; i < 8; i++) { - for (var j = 24; j >= 0; j -= 8) { - outR <<= 1; - outR |= (inR >>> (j + i)) & 1; - outR <<= 1; - outR |= (inL >>> (j + i)) & 1; - } - } - - out[off + 0] = outL >>> 0; - out[off + 1] = outR >>> 0; -}; - -exports.pc1 = function pc1(inL, inR, out, off) { - var outL = 0; - var outR = 0; - - // 7, 15, 23, 31, 39, 47, 55, 63 - // 6, 14, 22, 30, 39, 47, 55, 63 - // 5, 13, 21, 29, 39, 47, 55, 63 - // 4, 12, 20, 28 - for (var i = 7; i >= 5; i--) { - for (var j = 0; j <= 24; j += 8) { - outL <<= 1; - outL |= (inR >> (j + i)) & 1; - } - for (var j = 0; j <= 24; j += 8) { - outL <<= 1; - outL |= (inL >> (j + i)) & 1; - } - } - for (var j = 0; j <= 24; j += 8) { - outL <<= 1; - outL |= (inR >> (j + i)) & 1; - } - - // 1, 9, 17, 25, 33, 41, 49, 57 - // 2, 10, 18, 26, 34, 42, 50, 58 - // 3, 11, 19, 27, 35, 43, 51, 59 - // 36, 44, 52, 60 - for (var i = 1; i <= 3; i++) { - for (var j = 0; j <= 24; j += 8) { - outR <<= 1; - outR |= (inR >> (j + i)) & 1; - } - for (var j = 0; j <= 24; j += 8) { - outR <<= 1; - outR |= (inL >> (j + i)) & 1; - } - } - for (var j = 0; j <= 24; j += 8) { - outR <<= 1; - outR |= (inL >> (j + i)) & 1; - } - - out[off + 0] = outL >>> 0; - out[off + 1] = outR >>> 0; -}; - -exports.r28shl = function r28shl(num, shift) { - return ((num << shift) & 0xfffffff) | (num >>> (28 - shift)); -}; - -var pc2table = [ - // inL => outL - 14, 11, 17, 4, 27, 23, 25, 0, - 13, 22, 7, 18, 5, 9, 16, 24, - 2, 20, 12, 21, 1, 8, 15, 26, - - // inR => outR - 15, 4, 25, 19, 9, 1, 26, 16, - 5, 11, 23, 8, 12, 7, 17, 0, - 22, 3, 10, 14, 6, 20, 27, 24 -]; - -exports.pc2 = function pc2(inL, inR, out, off) { - var outL = 0; - var outR = 0; - - var len = pc2table.length >>> 1; - for (var i = 0; i < len; i++) { - outL <<= 1; - outL |= (inL >>> pc2table[i]) & 0x1; - } - for (var i = len; i < pc2table.length; i++) { - outR <<= 1; - outR |= (inR >>> pc2table[i]) & 0x1; - } - - out[off + 0] = outL >>> 0; - out[off + 1] = outR >>> 0; -}; - -exports.expand = function expand(r, out, off) { - var outL = 0; - var outR = 0; - - outL = ((r & 1) << 5) | (r >>> 27); - for (var i = 23; i >= 15; i -= 4) { - outL <<= 6; - outL |= (r >>> i) & 0x3f; - } - for (var i = 11; i >= 3; i -= 4) { - outR |= (r >>> i) & 0x3f; - outR <<= 6; - } - outR |= ((r & 0x1f) << 1) | (r >>> 31); - - out[off + 0] = outL >>> 0; - out[off + 1] = outR >>> 0; -}; - -var sTable = [ - 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, - 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, - 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, - 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, - - 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, - 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, - 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, - 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, - - 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, - 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, - 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, - 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, - - 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, - 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, - 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, - 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, - - 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, - 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, - 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, - 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, - - 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, - 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, - 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, - 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, - - 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, - 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, - 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, - 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, - - 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, - 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, - 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, - 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11 -]; - -exports.substitute = function substitute(inL, inR) { - var out = 0; - for (var i = 0; i < 4; i++) { - var b = (inL >>> (18 - i * 6)) & 0x3f; - var sb = sTable[i * 0x40 + b]; - - out <<= 4; - out |= sb; - } - for (var i = 0; i < 4; i++) { - var b = (inR >>> (18 - i * 6)) & 0x3f; - var sb = sTable[4 * 0x40 + i * 0x40 + b]; - - out <<= 4; - out |= sb; - } - return out >>> 0; -}; - -var permuteTable = [ - 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, - 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7 -]; - -exports.permute = function permute(num) { - var out = 0; - for (var i = 0; i < permuteTable.length; i++) { - out <<= 1; - out |= (num >>> permuteTable[i]) & 0x1; - } - return out >>> 0; -}; - -exports.padSplit = function padSplit(num, size, group) { - var str = num.toString(2); - while (str.length < size) - str = '0' + str; - - var out = []; - for (var i = 0; i < size; i += group) - out.push(str.slice(i, i + group)); - return out.join(' '); -}; - - -/***/ }), - -/***/ "./node_modules/diffie-hellman/browser.js": -/*!************************************************!*\ - !*** ./node_modules/diffie-hellman/browser.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {var generatePrime = __webpack_require__(/*! ./lib/generatePrime */ "./node_modules/diffie-hellman/lib/generatePrime.js") -var primes = __webpack_require__(/*! ./lib/primes.json */ "./node_modules/diffie-hellman/lib/primes.json") - -var DH = __webpack_require__(/*! ./lib/dh */ "./node_modules/diffie-hellman/lib/dh.js") - -function getDiffieHellman (mod) { - var prime = new Buffer(primes[mod].prime, 'hex') - var gen = new Buffer(primes[mod].gen, 'hex') - - return new DH(prime, gen) -} - -var ENCODINGS = { - 'binary': true, 'hex': true, 'base64': true -} - -function createDiffieHellman (prime, enc, generator, genc) { - if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) { - return createDiffieHellman(prime, 'binary', enc, generator) - } - - enc = enc || 'binary' - genc = genc || 'binary' - generator = generator || new Buffer([2]) - - if (!Buffer.isBuffer(generator)) { - generator = new Buffer(generator, genc) - } - - if (typeof prime === 'number') { - return new DH(generatePrime(prime, generator), generator, true) - } - - if (!Buffer.isBuffer(prime)) { - prime = new Buffer(prime, enc) - } - - return new DH(prime, generator, true) -} - -exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman -exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bufferGlobal */ "./node_modules/browserfs/dist/shims/bufferGlobal.js"))) - -/***/ }), - -/***/ "./node_modules/diffie-hellman/lib/dh.js": -/*!***********************************************!*\ - !*** ./node_modules/diffie-hellman/lib/dh.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); -var MillerRabin = __webpack_require__(/*! miller-rabin */ "./node_modules/miller-rabin/lib/mr.js"); -var millerRabin = new MillerRabin(); -var TWENTYFOUR = new BN(24); -var ELEVEN = new BN(11); -var TEN = new BN(10); -var THREE = new BN(3); -var SEVEN = new BN(7); -var primes = __webpack_require__(/*! ./generatePrime */ "./node_modules/diffie-hellman/lib/generatePrime.js"); -var randomBytes = __webpack_require__(/*! randombytes */ "./node_modules/randombytes/browser.js"); -module.exports = DH; - -function setPublicKey(pub, enc) { - enc = enc || 'utf8'; - if (!Buffer.isBuffer(pub)) { - pub = new Buffer(pub, enc); - } - this._pub = new BN(pub); - return this; -} - -function setPrivateKey(priv, enc) { - enc = enc || 'utf8'; - if (!Buffer.isBuffer(priv)) { - priv = new Buffer(priv, enc); - } - this._priv = new BN(priv); - return this; -} - -var primeCache = {}; -function checkPrime(prime, generator) { - var gen = generator.toString('hex'); - var hex = [gen, prime.toString(16)].join('_'); - if (hex in primeCache) { - return primeCache[hex]; - } - var error = 0; - - if (prime.isEven() || - !primes.simpleSieve || - !primes.fermatTest(prime) || - !millerRabin.test(prime)) { - //not a prime so +1 - error += 1; - - if (gen === '02' || gen === '05') { - // we'd be able to check the generator - // it would fail so +8 - error += 8; - } else { - //we wouldn't be able to test the generator - // so +4 - error += 4; - } - primeCache[hex] = error; - return error; - } - if (!millerRabin.test(prime.shrn(1))) { - //not a safe prime - error += 2; - } - var rem; - switch (gen) { - case '02': - if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) { - // unsuidable generator - error += 8; - } - break; - case '05': - rem = prime.mod(TEN); - if (rem.cmp(THREE) && rem.cmp(SEVEN)) { - // prime mod 10 needs to equal 3 or 7 - error += 8; - } - break; - default: - error += 4; - } - primeCache[hex] = error; - return error; -} - -function DH(prime, generator, malleable) { - this.setGenerator(generator); - this.__prime = new BN(prime); - this._prime = BN.mont(this.__prime); - this._primeLen = prime.length; - this._pub = undefined; - this._priv = undefined; - this._primeCode = undefined; - if (malleable) { - this.setPublicKey = setPublicKey; - this.setPrivateKey = setPrivateKey; - } else { - this._primeCode = 8; - } -} -Object.defineProperty(DH.prototype, 'verifyError', { - enumerable: true, - get: function () { - if (typeof this._primeCode !== 'number') { - this._primeCode = checkPrime(this.__prime, this.__gen); - } - return this._primeCode; - } -}); -DH.prototype.generateKeys = function () { - if (!this._priv) { - this._priv = new BN(randomBytes(this._primeLen)); - } - this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed(); - return this.getPublicKey(); -}; - -DH.prototype.computeSecret = function (other) { - other = new BN(other); - other = other.toRed(this._prime); - var secret = other.redPow(this._priv).fromRed(); - var out = new Buffer(secret.toArray()); - var prime = this.getPrime(); - if (out.length < prime.length) { - var front = new Buffer(prime.length - out.length); - front.fill(0); - out = Buffer.concat([front, out]); - } - return out; -}; - -DH.prototype.getPublicKey = function getPublicKey(enc) { - return formatReturnValue(this._pub, enc); -}; - -DH.prototype.getPrivateKey = function getPrivateKey(enc) { - return formatReturnValue(this._priv, enc); -}; - -DH.prototype.getPrime = function (enc) { - return formatReturnValue(this.__prime, enc); -}; - -DH.prototype.getGenerator = function (enc) { - return formatReturnValue(this._gen, enc); -}; - -DH.prototype.setGenerator = function (gen, enc) { - enc = enc || 'utf8'; - if (!Buffer.isBuffer(gen)) { - gen = new Buffer(gen, enc); - } - this.__gen = gen; - this._gen = new BN(gen); - return this; -}; - -function formatReturnValue(bn, enc) { - var buf = new Buffer(bn.toArray()); - if (!enc) { - return buf; - } else { - return buf.toString(enc); - } -} - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bufferGlobal */ "./node_modules/browserfs/dist/shims/bufferGlobal.js"))) - -/***/ }), - -/***/ "./node_modules/diffie-hellman/lib/generatePrime.js": -/*!**********************************************************!*\ - !*** ./node_modules/diffie-hellman/lib/generatePrime.js ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var randomBytes = __webpack_require__(/*! randombytes */ "./node_modules/randombytes/browser.js"); -module.exports = findPrime; -findPrime.simpleSieve = simpleSieve; -findPrime.fermatTest = fermatTest; -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); -var TWENTYFOUR = new BN(24); -var MillerRabin = __webpack_require__(/*! miller-rabin */ "./node_modules/miller-rabin/lib/mr.js"); -var millerRabin = new MillerRabin(); -var ONE = new BN(1); -var TWO = new BN(2); -var FIVE = new BN(5); -var SIXTEEN = new BN(16); -var EIGHT = new BN(8); -var TEN = new BN(10); -var THREE = new BN(3); -var SEVEN = new BN(7); -var ELEVEN = new BN(11); -var FOUR = new BN(4); -var TWELVE = new BN(12); -var primes = null; - -function _getPrimes() { - if (primes !== null) - return primes; - - var limit = 0x100000; - var res = []; - res[0] = 2; - for (var i = 1, k = 3; k < limit; k += 2) { - var sqrt = Math.ceil(Math.sqrt(k)); - for (var j = 0; j < i && res[j] <= sqrt; j++) - if (k % res[j] === 0) - break; - - if (i !== j && res[j] <= sqrt) - continue; - - res[i++] = k; - } - primes = res; - return res; -} - -function simpleSieve(p) { - var primes = _getPrimes(); - - for (var i = 0; i < primes.length; i++) - if (p.modn(primes[i]) === 0) { - if (p.cmpn(primes[i]) === 0) { - return true; - } else { - return false; - } - } - - return true; -} - -function fermatTest(p) { - var red = BN.mont(p); - return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0; -} - -function findPrime(bits, gen) { - if (bits < 16) { - // this is what openssl does - if (gen === 2 || gen === 5) { - return new BN([0x8c, 0x7b]); - } else { - return new BN([0x8c, 0x27]); - } - } - gen = new BN(gen); - - var num, n2; - - while (true) { - num = new BN(randomBytes(Math.ceil(bits / 8))); - while (num.bitLength() > bits) { - num.ishrn(1); - } - if (num.isEven()) { - num.iadd(ONE); - } - if (!num.testn(1)) { - num.iadd(TWO); - } - if (!gen.cmp(TWO)) { - while (num.mod(TWENTYFOUR).cmp(ELEVEN)) { - num.iadd(FOUR); - } - } else if (!gen.cmp(FIVE)) { - while (num.mod(TEN).cmp(THREE)) { - num.iadd(FOUR); - } - } - n2 = num.shrn(1); - if (simpleSieve(n2) && simpleSieve(num) && - fermatTest(n2) && fermatTest(num) && - millerRabin.test(n2) && millerRabin.test(num)) { - return num; - } - } - -} - - -/***/ }), - -/***/ "./node_modules/diffie-hellman/lib/primes.json": -/*!*****************************************************!*\ - !*** ./node_modules/diffie-hellman/lib/primes.json ***! - \*****************************************************/ -/*! exports provided: modp1, modp2, modp5, modp14, modp15, modp16, modp17, modp18, default */ -/***/ (function(module) { - -module.exports = {"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}; - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic.js": -/*!***********************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var elliptic = exports; - -elliptic.version = __webpack_require__(/*! ../package.json */ "./node_modules/elliptic/package.json").version; -elliptic.utils = __webpack_require__(/*! ./elliptic/utils */ "./node_modules/elliptic/lib/elliptic/utils.js"); -elliptic.rand = __webpack_require__(/*! brorand */ "./node_modules/brorand/index.js"); -elliptic.curve = __webpack_require__(/*! ./elliptic/curve */ "./node_modules/elliptic/lib/elliptic/curve/index.js"); -elliptic.curves = __webpack_require__(/*! ./elliptic/curves */ "./node_modules/elliptic/lib/elliptic/curves.js"); - -// Protocols -elliptic.ec = __webpack_require__(/*! ./elliptic/ec */ "./node_modules/elliptic/lib/elliptic/ec/index.js"); -elliptic.eddsa = __webpack_require__(/*! ./elliptic/eddsa */ "./node_modules/elliptic/lib/elliptic/eddsa/index.js"); - - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic/curve/base.js": -/*!**********************************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic/curve/base.js ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); -var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); -var utils = elliptic.utils; -var getNAF = utils.getNAF; -var getJSF = utils.getJSF; -var assert = utils.assert; - -function BaseCurve(type, conf) { - this.type = type; - this.p = new BN(conf.p, 16); - - // Use Montgomery, when there is no fast reduction for the prime - this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p); - - // Useful for many curves - this.zero = new BN(0).toRed(this.red); - this.one = new BN(1).toRed(this.red); - this.two = new BN(2).toRed(this.red); - - // Curve configuration, optional - this.n = conf.n && new BN(conf.n, 16); - this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed); - - // Temporary arrays - this._wnafT1 = new Array(4); - this._wnafT2 = new Array(4); - this._wnafT3 = new Array(4); - this._wnafT4 = new Array(4); - - // Generalized Greg Maxwell's trick - var adjustCount = this.n && this.p.div(this.n); - if (!adjustCount || adjustCount.cmpn(100) > 0) { - this.redN = null; - } else { - this._maxwellTrick = true; - this.redN = this.n.toRed(this.red); - } -} -module.exports = BaseCurve; - -BaseCurve.prototype.point = function point() { - throw new Error('Not implemented'); -}; - -BaseCurve.prototype.validate = function validate() { - throw new Error('Not implemented'); -}; - -BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) { - assert(p.precomputed); - var doubles = p._getDoubles(); - - var naf = getNAF(k, 1); - var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1); - I /= 3; - - // Translate into more windowed form - var repr = []; - for (var j = 0; j < naf.length; j += doubles.step) { - var nafW = 0; - for (var k = j + doubles.step - 1; k >= j; k--) - nafW = (nafW << 1) + naf[k]; - repr.push(nafW); - } - - var a = this.jpoint(null, null, null); - var b = this.jpoint(null, null, null); - for (var i = I; i > 0; i--) { - for (var j = 0; j < repr.length; j++) { - var nafW = repr[j]; - if (nafW === i) - b = b.mixedAdd(doubles.points[j]); - else if (nafW === -i) - b = b.mixedAdd(doubles.points[j].neg()); - } - a = a.add(b); - } - return a.toP(); -}; - -BaseCurve.prototype._wnafMul = function _wnafMul(p, k) { - var w = 4; - - // Precompute window - var nafPoints = p._getNAFPoints(w); - w = nafPoints.wnd; - var wnd = nafPoints.points; - - // Get NAF form - var naf = getNAF(k, w); - - // Add `this`*(N+1) for every w-NAF index - var acc = this.jpoint(null, null, null); - for (var i = naf.length - 1; i >= 0; i--) { - // Count zeroes - for (var k = 0; i >= 0 && naf[i] === 0; i--) - k++; - if (i >= 0) - k++; - acc = acc.dblp(k); - - if (i < 0) - break; - var z = naf[i]; - assert(z !== 0); - if (p.type === 'affine') { - // J +- P - if (z > 0) - acc = acc.mixedAdd(wnd[(z - 1) >> 1]); - else - acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg()); - } else { - // J +- J - if (z > 0) - acc = acc.add(wnd[(z - 1) >> 1]); - else - acc = acc.add(wnd[(-z - 1) >> 1].neg()); - } - } - return p.type === 'affine' ? acc.toP() : acc; -}; - -BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, - points, - coeffs, - len, - jacobianResult) { - var wndWidth = this._wnafT1; - var wnd = this._wnafT2; - var naf = this._wnafT3; - - // Fill all arrays - var max = 0; - for (var i = 0; i < len; i++) { - var p = points[i]; - var nafPoints = p._getNAFPoints(defW); - wndWidth[i] = nafPoints.wnd; - wnd[i] = nafPoints.points; - } - - // Comb small window NAFs - for (var i = len - 1; i >= 1; i -= 2) { - var a = i - 1; - var b = i; - if (wndWidth[a] !== 1 || wndWidth[b] !== 1) { - naf[a] = getNAF(coeffs[a], wndWidth[a]); - naf[b] = getNAF(coeffs[b], wndWidth[b]); - max = Math.max(naf[a].length, max); - max = Math.max(naf[b].length, max); - continue; - } - - var comb = [ - points[a], /* 1 */ - null, /* 3 */ - null, /* 5 */ - points[b] /* 7 */ - ]; - - // Try to avoid Projective points, if possible - if (points[a].y.cmp(points[b].y) === 0) { - comb[1] = points[a].add(points[b]); - comb[2] = points[a].toJ().mixedAdd(points[b].neg()); - } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) { - comb[1] = points[a].toJ().mixedAdd(points[b]); - comb[2] = points[a].add(points[b].neg()); - } else { - comb[1] = points[a].toJ().mixedAdd(points[b]); - comb[2] = points[a].toJ().mixedAdd(points[b].neg()); - } - - var index = [ - -3, /* -1 -1 */ - -1, /* -1 0 */ - -5, /* -1 1 */ - -7, /* 0 -1 */ - 0, /* 0 0 */ - 7, /* 0 1 */ - 5, /* 1 -1 */ - 1, /* 1 0 */ - 3 /* 1 1 */ - ]; - - var jsf = getJSF(coeffs[a], coeffs[b]); - max = Math.max(jsf[0].length, max); - naf[a] = new Array(max); - naf[b] = new Array(max); - for (var j = 0; j < max; j++) { - var ja = jsf[0][j] | 0; - var jb = jsf[1][j] | 0; - - naf[a][j] = index[(ja + 1) * 3 + (jb + 1)]; - naf[b][j] = 0; - wnd[a] = comb; - } - } - - var acc = this.jpoint(null, null, null); - var tmp = this._wnafT4; - for (var i = max; i >= 0; i--) { - var k = 0; - - while (i >= 0) { - var zero = true; - for (var j = 0; j < len; j++) { - tmp[j] = naf[j][i] | 0; - if (tmp[j] !== 0) - zero = false; - } - if (!zero) - break; - k++; - i--; - } - if (i >= 0) - k++; - acc = acc.dblp(k); - if (i < 0) - break; - - for (var j = 0; j < len; j++) { - var z = tmp[j]; - var p; - if (z === 0) - continue; - else if (z > 0) - p = wnd[j][(z - 1) >> 1]; - else if (z < 0) - p = wnd[j][(-z - 1) >> 1].neg(); - - if (p.type === 'affine') - acc = acc.mixedAdd(p); - else - acc = acc.add(p); - } - } - // Zeroify references - for (var i = 0; i < len; i++) - wnd[i] = null; - - if (jacobianResult) - return acc; - else - return acc.toP(); -}; - -function BasePoint(curve, type) { - this.curve = curve; - this.type = type; - this.precomputed = null; -} -BaseCurve.BasePoint = BasePoint; - -BasePoint.prototype.eq = function eq(/*other*/) { - throw new Error('Not implemented'); -}; - -BasePoint.prototype.validate = function validate() { - return this.curve.validate(this); -}; - -BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) { - bytes = utils.toArray(bytes, enc); - - var len = this.p.byteLength(); - - // uncompressed, hybrid-odd, hybrid-even - if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) && - bytes.length - 1 === 2 * len) { - if (bytes[0] === 0x06) - assert(bytes[bytes.length - 1] % 2 === 0); - else if (bytes[0] === 0x07) - assert(bytes[bytes.length - 1] % 2 === 1); - - var res = this.point(bytes.slice(1, 1 + len), - bytes.slice(1 + len, 1 + 2 * len)); - - return res; - } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) && - bytes.length - 1 === len) { - return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03); - } - throw new Error('Unknown point format'); -}; - -BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) { - return this.encode(enc, true); -}; - -BasePoint.prototype._encode = function _encode(compact) { - var len = this.curve.p.byteLength(); - var x = this.getX().toArray('be', len); - - if (compact) - return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x); - - return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ; -}; - -BasePoint.prototype.encode = function encode(enc, compact) { - return utils.encode(this._encode(compact), enc); -}; - -BasePoint.prototype.precompute = function precompute(power) { - if (this.precomputed) - return this; - - var precomputed = { - doubles: null, - naf: null, - beta: null - }; - precomputed.naf = this._getNAFPoints(8); - precomputed.doubles = this._getDoubles(4, power); - precomputed.beta = this._getBeta(); - this.precomputed = precomputed; - - return this; -}; - -BasePoint.prototype._hasDoubles = function _hasDoubles(k) { - if (!this.precomputed) - return false; - - var doubles = this.precomputed.doubles; - if (!doubles) - return false; - - return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step); -}; - -BasePoint.prototype._getDoubles = function _getDoubles(step, power) { - if (this.precomputed && this.precomputed.doubles) - return this.precomputed.doubles; - - var doubles = [ this ]; - var acc = this; - for (var i = 0; i < power; i += step) { - for (var j = 0; j < step; j++) - acc = acc.dbl(); - doubles.push(acc); - } - return { - step: step, - points: doubles - }; -}; - -BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) { - if (this.precomputed && this.precomputed.naf) - return this.precomputed.naf; - - var res = [ this ]; - var max = (1 << wnd) - 1; - var dbl = max === 1 ? null : this.dbl(); - for (var i = 1; i < max; i++) - res[i] = res[i - 1].add(dbl); - return { - wnd: wnd, - points: res - }; -}; - -BasePoint.prototype._getBeta = function _getBeta() { - return null; -}; - -BasePoint.prototype.dblp = function dblp(k) { - var r = this; - for (var i = 0; i < k; i++) - r = r.dbl(); - return r; -}; - - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic/curve/edwards.js": -/*!*************************************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic/curve/edwards.js ***! - \*************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var curve = __webpack_require__(/*! ../curve */ "./node_modules/elliptic/lib/elliptic/curve/index.js"); -var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); -var Base = curve.base; - -var assert = elliptic.utils.assert; - -function EdwardsCurve(conf) { - // NOTE: Important as we are creating point in Base.call() - this.twisted = (conf.a | 0) !== 1; - this.mOneA = this.twisted && (conf.a | 0) === -1; - this.extended = this.mOneA; - - Base.call(this, 'edwards', conf); - - this.a = new BN(conf.a, 16).umod(this.red.m); - this.a = this.a.toRed(this.red); - this.c = new BN(conf.c, 16).toRed(this.red); - this.c2 = this.c.redSqr(); - this.d = new BN(conf.d, 16).toRed(this.red); - this.dd = this.d.redAdd(this.d); - - assert(!this.twisted || this.c.fromRed().cmpn(1) === 0); - this.oneC = (conf.c | 0) === 1; -} -inherits(EdwardsCurve, Base); -module.exports = EdwardsCurve; - -EdwardsCurve.prototype._mulA = function _mulA(num) { - if (this.mOneA) - return num.redNeg(); - else - return this.a.redMul(num); -}; - -EdwardsCurve.prototype._mulC = function _mulC(num) { - if (this.oneC) - return num; - else - return this.c.redMul(num); -}; - -// Just for compatibility with Short curve -EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) { - return this.point(x, y, z, t); -}; - -EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) { - x = new BN(x, 16); - if (!x.red) - x = x.toRed(this.red); - - var x2 = x.redSqr(); - var rhs = this.c2.redSub(this.a.redMul(x2)); - var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2)); - - var y2 = rhs.redMul(lhs.redInvm()); - var y = y2.redSqrt(); - if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) - throw new Error('invalid point'); - - var isOdd = y.fromRed().isOdd(); - if (odd && !isOdd || !odd && isOdd) - y = y.redNeg(); - - return this.point(x, y); -}; - -EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) { - y = new BN(y, 16); - if (!y.red) - y = y.toRed(this.red); - - // x^2 = (y^2 - c^2) / (c^2 d y^2 - a) - var y2 = y.redSqr(); - var lhs = y2.redSub(this.c2); - var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a); - var x2 = lhs.redMul(rhs.redInvm()); - - if (x2.cmp(this.zero) === 0) { - if (odd) - throw new Error('invalid point'); - else - return this.point(this.zero, y); - } - - var x = x2.redSqrt(); - if (x.redSqr().redSub(x2).cmp(this.zero) !== 0) - throw new Error('invalid point'); - - if (x.fromRed().isOdd() !== odd) - x = x.redNeg(); - - return this.point(x, y); -}; - -EdwardsCurve.prototype.validate = function validate(point) { - if (point.isInfinity()) - return true; - - // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2) - point.normalize(); - - var x2 = point.x.redSqr(); - var y2 = point.y.redSqr(); - var lhs = x2.redMul(this.a).redAdd(y2); - var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2))); - - return lhs.cmp(rhs) === 0; -}; - -function Point(curve, x, y, z, t) { - Base.BasePoint.call(this, curve, 'projective'); - if (x === null && y === null && z === null) { - this.x = this.curve.zero; - this.y = this.curve.one; - this.z = this.curve.one; - this.t = this.curve.zero; - this.zOne = true; - } else { - this.x = new BN(x, 16); - this.y = new BN(y, 16); - this.z = z ? new BN(z, 16) : this.curve.one; - this.t = t && new BN(t, 16); - if (!this.x.red) - this.x = this.x.toRed(this.curve.red); - if (!this.y.red) - this.y = this.y.toRed(this.curve.red); - if (!this.z.red) - this.z = this.z.toRed(this.curve.red); - if (this.t && !this.t.red) - this.t = this.t.toRed(this.curve.red); - this.zOne = this.z === this.curve.one; - - // Use extended coordinates - if (this.curve.extended && !this.t) { - this.t = this.x.redMul(this.y); - if (!this.zOne) - this.t = this.t.redMul(this.z.redInvm()); - } - } -} -inherits(Point, Base.BasePoint); - -EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) { - return Point.fromJSON(this, obj); -}; - -EdwardsCurve.prototype.point = function point(x, y, z, t) { - return new Point(this, x, y, z, t); -}; - -Point.fromJSON = function fromJSON(curve, obj) { - return new Point(curve, obj[0], obj[1], obj[2]); -}; - -Point.prototype.inspect = function inspect() { - if (this.isInfinity()) - return ''; - return ''; -}; - -Point.prototype.isInfinity = function isInfinity() { - // XXX This code assumes that zero is always zero in red - return this.x.cmpn(0) === 0 && - (this.y.cmp(this.z) === 0 || - (this.zOne && this.y.cmp(this.curve.c) === 0)); -}; - -Point.prototype._extDbl = function _extDbl() { - // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html - // #doubling-dbl-2008-hwcd - // 4M + 4S - - // A = X1^2 - var a = this.x.redSqr(); - // B = Y1^2 - var b = this.y.redSqr(); - // C = 2 * Z1^2 - var c = this.z.redSqr(); - c = c.redIAdd(c); - // D = a * A - var d = this.curve._mulA(a); - // E = (X1 + Y1)^2 - A - B - var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b); - // G = D + B - var g = d.redAdd(b); - // F = G - C - var f = g.redSub(c); - // H = D - B - var h = d.redSub(b); - // X3 = E * F - var nx = e.redMul(f); - // Y3 = G * H - var ny = g.redMul(h); - // T3 = E * H - var nt = e.redMul(h); - // Z3 = F * G - var nz = f.redMul(g); - return this.curve.point(nx, ny, nz, nt); -}; - -Point.prototype._projDbl = function _projDbl() { - // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html - // #doubling-dbl-2008-bbjlp - // #doubling-dbl-2007-bl - // and others - // Generally 3M + 4S or 2M + 4S - - // B = (X1 + Y1)^2 - var b = this.x.redAdd(this.y).redSqr(); - // C = X1^2 - var c = this.x.redSqr(); - // D = Y1^2 - var d = this.y.redSqr(); - - var nx; - var ny; - var nz; - if (this.curve.twisted) { - // E = a * C - var e = this.curve._mulA(c); - // F = E + D - var f = e.redAdd(d); - if (this.zOne) { - // X3 = (B - C - D) * (F - 2) - nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)); - // Y3 = F * (E - D) - ny = f.redMul(e.redSub(d)); - // Z3 = F^2 - 2 * F - nz = f.redSqr().redSub(f).redSub(f); - } else { - // H = Z1^2 - var h = this.z.redSqr(); - // J = F - 2 * H - var j = f.redSub(h).redISub(h); - // X3 = (B-C-D)*J - nx = b.redSub(c).redISub(d).redMul(j); - // Y3 = F * (E - D) - ny = f.redMul(e.redSub(d)); - // Z3 = F * J - nz = f.redMul(j); - } - } else { - // E = C + D - var e = c.redAdd(d); - // H = (c * Z1)^2 - var h = this.curve._mulC(this.z).redSqr(); - // J = E - 2 * H - var j = e.redSub(h).redSub(h); - // X3 = c * (B - E) * J - nx = this.curve._mulC(b.redISub(e)).redMul(j); - // Y3 = c * E * (C - D) - ny = this.curve._mulC(e).redMul(c.redISub(d)); - // Z3 = E * J - nz = e.redMul(j); - } - return this.curve.point(nx, ny, nz); -}; - -Point.prototype.dbl = function dbl() { - if (this.isInfinity()) - return this; - - // Double in extended coordinates - if (this.curve.extended) - return this._extDbl(); - else - return this._projDbl(); -}; - -Point.prototype._extAdd = function _extAdd(p) { - // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html - // #addition-add-2008-hwcd-3 - // 8M - - // A = (Y1 - X1) * (Y2 - X2) - var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x)); - // B = (Y1 + X1) * (Y2 + X2) - var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)); - // C = T1 * k * T2 - var c = this.t.redMul(this.curve.dd).redMul(p.t); - // D = Z1 * 2 * Z2 - var d = this.z.redMul(p.z.redAdd(p.z)); - // E = B - A - var e = b.redSub(a); - // F = D - C - var f = d.redSub(c); - // G = D + C - var g = d.redAdd(c); - // H = B + A - var h = b.redAdd(a); - // X3 = E * F - var nx = e.redMul(f); - // Y3 = G * H - var ny = g.redMul(h); - // T3 = E * H - var nt = e.redMul(h); - // Z3 = F * G - var nz = f.redMul(g); - return this.curve.point(nx, ny, nz, nt); -}; - -Point.prototype._projAdd = function _projAdd(p) { - // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html - // #addition-add-2008-bbjlp - // #addition-add-2007-bl - // 10M + 1S - - // A = Z1 * Z2 - var a = this.z.redMul(p.z); - // B = A^2 - var b = a.redSqr(); - // C = X1 * X2 - var c = this.x.redMul(p.x); - // D = Y1 * Y2 - var d = this.y.redMul(p.y); - // E = d * C * D - var e = this.curve.d.redMul(c).redMul(d); - // F = B - E - var f = b.redSub(e); - // G = B + E - var g = b.redAdd(e); - // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D) - var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d); - var nx = a.redMul(f).redMul(tmp); - var ny; - var nz; - if (this.curve.twisted) { - // Y3 = A * G * (D - a * C) - ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c))); - // Z3 = F * G - nz = f.redMul(g); - } else { - // Y3 = A * G * (D - C) - ny = a.redMul(g).redMul(d.redSub(c)); - // Z3 = c * F * G - nz = this.curve._mulC(f).redMul(g); - } - return this.curve.point(nx, ny, nz); -}; - -Point.prototype.add = function add(p) { - if (this.isInfinity()) - return p; - if (p.isInfinity()) - return this; - - if (this.curve.extended) - return this._extAdd(p); - else - return this._projAdd(p); -}; - -Point.prototype.mul = function mul(k) { - if (this._hasDoubles(k)) - return this.curve._fixedNafMul(this, k); - else - return this.curve._wnafMul(this, k); -}; - -Point.prototype.mulAdd = function mulAdd(k1, p, k2) { - return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false); -}; - -Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) { - return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true); -}; - -Point.prototype.normalize = function normalize() { - if (this.zOne) - return this; - - // Normalize coordinates - var zi = this.z.redInvm(); - this.x = this.x.redMul(zi); - this.y = this.y.redMul(zi); - if (this.t) - this.t = this.t.redMul(zi); - this.z = this.curve.one; - this.zOne = true; - return this; -}; - -Point.prototype.neg = function neg() { - return this.curve.point(this.x.redNeg(), - this.y, - this.z, - this.t && this.t.redNeg()); -}; - -Point.prototype.getX = function getX() { - this.normalize(); - return this.x.fromRed(); -}; - -Point.prototype.getY = function getY() { - this.normalize(); - return this.y.fromRed(); -}; - -Point.prototype.eq = function eq(other) { - return this === other || - this.getX().cmp(other.getX()) === 0 && - this.getY().cmp(other.getY()) === 0; -}; - -Point.prototype.eqXToP = function eqXToP(x) { - var rx = x.toRed(this.curve.red).redMul(this.z); - if (this.x.cmp(rx) === 0) - return true; - - var xc = x.clone(); - var t = this.curve.redN.redMul(this.z); - for (;;) { - xc.iadd(this.curve.n); - if (xc.cmp(this.curve.p) >= 0) - return false; - - rx.redIAdd(t); - if (this.x.cmp(rx) === 0) - return true; - } -}; - -// Compatibility with BaseCurve -Point.prototype.toP = Point.prototype.normalize; -Point.prototype.mixedAdd = Point.prototype.add; - - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic/curve/index.js": -/*!***********************************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic/curve/index.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var curve = exports; - -curve.base = __webpack_require__(/*! ./base */ "./node_modules/elliptic/lib/elliptic/curve/base.js"); -curve.short = __webpack_require__(/*! ./short */ "./node_modules/elliptic/lib/elliptic/curve/short.js"); -curve.mont = __webpack_require__(/*! ./mont */ "./node_modules/elliptic/lib/elliptic/curve/mont.js"); -curve.edwards = __webpack_require__(/*! ./edwards */ "./node_modules/elliptic/lib/elliptic/curve/edwards.js"); - - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic/curve/mont.js": -/*!**********************************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic/curve/mont.js ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var curve = __webpack_require__(/*! ../curve */ "./node_modules/elliptic/lib/elliptic/curve/index.js"); -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); -var Base = curve.base; - -var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); -var utils = elliptic.utils; - -function MontCurve(conf) { - Base.call(this, 'mont', conf); - - this.a = new BN(conf.a, 16).toRed(this.red); - this.b = new BN(conf.b, 16).toRed(this.red); - this.i4 = new BN(4).toRed(this.red).redInvm(); - this.two = new BN(2).toRed(this.red); - this.a24 = this.i4.redMul(this.a.redAdd(this.two)); -} -inherits(MontCurve, Base); -module.exports = MontCurve; - -MontCurve.prototype.validate = function validate(point) { - var x = point.normalize().x; - var x2 = x.redSqr(); - var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x); - var y = rhs.redSqrt(); - - return y.redSqr().cmp(rhs) === 0; -}; - -function Point(curve, x, z) { - Base.BasePoint.call(this, curve, 'projective'); - if (x === null && z === null) { - this.x = this.curve.one; - this.z = this.curve.zero; - } else { - this.x = new BN(x, 16); - this.z = new BN(z, 16); - if (!this.x.red) - this.x = this.x.toRed(this.curve.red); - if (!this.z.red) - this.z = this.z.toRed(this.curve.red); - } -} -inherits(Point, Base.BasePoint); - -MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) { - return this.point(utils.toArray(bytes, enc), 1); -}; - -MontCurve.prototype.point = function point(x, z) { - return new Point(this, x, z); -}; - -MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) { - return Point.fromJSON(this, obj); -}; - -Point.prototype.precompute = function precompute() { - // No-op -}; - -Point.prototype._encode = function _encode() { - return this.getX().toArray('be', this.curve.p.byteLength()); -}; - -Point.fromJSON = function fromJSON(curve, obj) { - return new Point(curve, obj[0], obj[1] || curve.one); -}; - -Point.prototype.inspect = function inspect() { - if (this.isInfinity()) - return ''; - return ''; -}; - -Point.prototype.isInfinity = function isInfinity() { - // XXX This code assumes that zero is always zero in red - return this.z.cmpn(0) === 0; -}; - -Point.prototype.dbl = function dbl() { - // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3 - // 2M + 2S + 4A - - // A = X1 + Z1 - var a = this.x.redAdd(this.z); - // AA = A^2 - var aa = a.redSqr(); - // B = X1 - Z1 - var b = this.x.redSub(this.z); - // BB = B^2 - var bb = b.redSqr(); - // C = AA - BB - var c = aa.redSub(bb); - // X3 = AA * BB - var nx = aa.redMul(bb); - // Z3 = C * (BB + A24 * C) - var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c))); - return this.curve.point(nx, nz); -}; - -Point.prototype.add = function add() { - throw new Error('Not supported on Montgomery curve'); -}; - -Point.prototype.diffAdd = function diffAdd(p, diff) { - // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3 - // 4M + 2S + 6A - - // A = X2 + Z2 - var a = this.x.redAdd(this.z); - // B = X2 - Z2 - var b = this.x.redSub(this.z); - // C = X3 + Z3 - var c = p.x.redAdd(p.z); - // D = X3 - Z3 - var d = p.x.redSub(p.z); - // DA = D * A - var da = d.redMul(a); - // CB = C * B - var cb = c.redMul(b); - // X5 = Z1 * (DA + CB)^2 - var nx = diff.z.redMul(da.redAdd(cb).redSqr()); - // Z5 = X1 * (DA - CB)^2 - var nz = diff.x.redMul(da.redISub(cb).redSqr()); - return this.curve.point(nx, nz); -}; - -Point.prototype.mul = function mul(k) { - var t = k.clone(); - var a = this; // (N / 2) * Q + Q - var b = this.curve.point(null, null); // (N / 2) * Q - var c = this; // Q - - for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1)) - bits.push(t.andln(1)); - - for (var i = bits.length - 1; i >= 0; i--) { - if (bits[i] === 0) { - // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q - a = a.diffAdd(b, c); - // N * Q = 2 * ((N / 2) * Q + Q)) - b = b.dbl(); - } else { - // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q) - b = a.diffAdd(b, c); - // N * Q + Q = 2 * ((N / 2) * Q + Q) - a = a.dbl(); - } - } - return b; -}; - -Point.prototype.mulAdd = function mulAdd() { - throw new Error('Not supported on Montgomery curve'); -}; - -Point.prototype.jumlAdd = function jumlAdd() { - throw new Error('Not supported on Montgomery curve'); -}; - -Point.prototype.eq = function eq(other) { - return this.getX().cmp(other.getX()) === 0; -}; - -Point.prototype.normalize = function normalize() { - this.x = this.x.redMul(this.z.redInvm()); - this.z = this.curve.one; - return this; -}; - -Point.prototype.getX = function getX() { - // Normalize coordinates - this.normalize(); - - return this.x.fromRed(); -}; - - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic/curve/short.js": -/*!***********************************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic/curve/short.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var curve = __webpack_require__(/*! ../curve */ "./node_modules/elliptic/lib/elliptic/curve/index.js"); -var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); -var Base = curve.base; - -var assert = elliptic.utils.assert; - -function ShortCurve(conf) { - Base.call(this, 'short', conf); - - this.a = new BN(conf.a, 16).toRed(this.red); - this.b = new BN(conf.b, 16).toRed(this.red); - this.tinv = this.two.redInvm(); - - this.zeroA = this.a.fromRed().cmpn(0) === 0; - this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0; - - // If the curve is endomorphic, precalculate beta and lambda - this.endo = this._getEndomorphism(conf); - this._endoWnafT1 = new Array(4); - this._endoWnafT2 = new Array(4); -} -inherits(ShortCurve, Base); -module.exports = ShortCurve; - -ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) { - // No efficient endomorphism - if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) - return; - - // Compute beta and lambda, that lambda * P = (beta * Px; Py) - var beta; - var lambda; - if (conf.beta) { - beta = new BN(conf.beta, 16).toRed(this.red); - } else { - var betas = this._getEndoRoots(this.p); - // Choose the smallest beta - beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1]; - beta = beta.toRed(this.red); - } - if (conf.lambda) { - lambda = new BN(conf.lambda, 16); - } else { - // Choose the lambda that is matching selected beta - var lambdas = this._getEndoRoots(this.n); - if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) { - lambda = lambdas[0]; - } else { - lambda = lambdas[1]; - assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0); - } - } - - // Get basis vectors, used for balanced length-two representation - var basis; - if (conf.basis) { - basis = conf.basis.map(function(vec) { - return { - a: new BN(vec.a, 16), - b: new BN(vec.b, 16) - }; - }); - } else { - basis = this._getEndoBasis(lambda); - } - - return { - beta: beta, - lambda: lambda, - basis: basis - }; -}; - -ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) { - // Find roots of for x^2 + x + 1 in F - // Root = (-1 +- Sqrt(-3)) / 2 - // - var red = num === this.p ? this.red : BN.mont(num); - var tinv = new BN(2).toRed(red).redInvm(); - var ntinv = tinv.redNeg(); - - var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv); - - var l1 = ntinv.redAdd(s).fromRed(); - var l2 = ntinv.redSub(s).fromRed(); - return [ l1, l2 ]; -}; - -ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) { - // aprxSqrt >= sqrt(this.n) - var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)); - - // 3.74 - // Run EGCD, until r(L + 1) < aprxSqrt - var u = lambda; - var v = this.n.clone(); - var x1 = new BN(1); - var y1 = new BN(0); - var x2 = new BN(0); - var y2 = new BN(1); - - // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n) - var a0; - var b0; - // First vector - var a1; - var b1; - // Second vector - var a2; - var b2; - - var prevR; - var i = 0; - var r; - var x; - while (u.cmpn(0) !== 0) { - var q = v.div(u); - r = v.sub(q.mul(u)); - x = x2.sub(q.mul(x1)); - var y = y2.sub(q.mul(y1)); - - if (!a1 && r.cmp(aprxSqrt) < 0) { - a0 = prevR.neg(); - b0 = x1; - a1 = r.neg(); - b1 = x; - } else if (a1 && ++i === 2) { - break; - } - prevR = r; - - v = u; - u = r; - x2 = x1; - x1 = x; - y2 = y1; - y1 = y; - } - a2 = r.neg(); - b2 = x; - - var len1 = a1.sqr().add(b1.sqr()); - var len2 = a2.sqr().add(b2.sqr()); - if (len2.cmp(len1) >= 0) { - a2 = a0; - b2 = b0; - } - - // Normalize signs - if (a1.negative) { - a1 = a1.neg(); - b1 = b1.neg(); - } - if (a2.negative) { - a2 = a2.neg(); - b2 = b2.neg(); - } - - return [ - { a: a1, b: b1 }, - { a: a2, b: b2 } - ]; -}; - -ShortCurve.prototype._endoSplit = function _endoSplit(k) { - var basis = this.endo.basis; - var v1 = basis[0]; - var v2 = basis[1]; - - var c1 = v2.b.mul(k).divRound(this.n); - var c2 = v1.b.neg().mul(k).divRound(this.n); - - var p1 = c1.mul(v1.a); - var p2 = c2.mul(v2.a); - var q1 = c1.mul(v1.b); - var q2 = c2.mul(v2.b); - - // Calculate answer - var k1 = k.sub(p1).sub(p2); - var k2 = q1.add(q2).neg(); - return { k1: k1, k2: k2 }; -}; - -ShortCurve.prototype.pointFromX = function pointFromX(x, odd) { - x = new BN(x, 16); - if (!x.red) - x = x.toRed(this.red); - - var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b); - var y = y2.redSqrt(); - if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) - throw new Error('invalid point'); - - // XXX Is there any way to tell if the number is odd without converting it - // to non-red form? - var isOdd = y.fromRed().isOdd(); - if (odd && !isOdd || !odd && isOdd) - y = y.redNeg(); - - return this.point(x, y); -}; - -ShortCurve.prototype.validate = function validate(point) { - if (point.inf) - return true; - - var x = point.x; - var y = point.y; - - var ax = this.a.redMul(x); - var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b); - return y.redSqr().redISub(rhs).cmpn(0) === 0; -}; - -ShortCurve.prototype._endoWnafMulAdd = - function _endoWnafMulAdd(points, coeffs, jacobianResult) { - var npoints = this._endoWnafT1; - var ncoeffs = this._endoWnafT2; - for (var i = 0; i < points.length; i++) { - var split = this._endoSplit(coeffs[i]); - var p = points[i]; - var beta = p._getBeta(); - - if (split.k1.negative) { - split.k1.ineg(); - p = p.neg(true); - } - if (split.k2.negative) { - split.k2.ineg(); - beta = beta.neg(true); - } - - npoints[i * 2] = p; - npoints[i * 2 + 1] = beta; - ncoeffs[i * 2] = split.k1; - ncoeffs[i * 2 + 1] = split.k2; - } - var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult); - - // Clean-up references to points and coefficients - for (var j = 0; j < i * 2; j++) { - npoints[j] = null; - ncoeffs[j] = null; - } - return res; -}; - -function Point(curve, x, y, isRed) { - Base.BasePoint.call(this, curve, 'affine'); - if (x === null && y === null) { - this.x = null; - this.y = null; - this.inf = true; - } else { - this.x = new BN(x, 16); - this.y = new BN(y, 16); - // Force redgomery representation when loading from JSON - if (isRed) { - this.x.forceRed(this.curve.red); - this.y.forceRed(this.curve.red); - } - if (!this.x.red) - this.x = this.x.toRed(this.curve.red); - if (!this.y.red) - this.y = this.y.toRed(this.curve.red); - this.inf = false; - } -} -inherits(Point, Base.BasePoint); - -ShortCurve.prototype.point = function point(x, y, isRed) { - return new Point(this, x, y, isRed); -}; - -ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) { - return Point.fromJSON(this, obj, red); -}; - -Point.prototype._getBeta = function _getBeta() { - if (!this.curve.endo) - return; - - var pre = this.precomputed; - if (pre && pre.beta) - return pre.beta; - - var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y); - if (pre) { - var curve = this.curve; - var endoMul = function(p) { - return curve.point(p.x.redMul(curve.endo.beta), p.y); - }; - pre.beta = beta; - beta.precomputed = { - beta: null, - naf: pre.naf && { - wnd: pre.naf.wnd, - points: pre.naf.points.map(endoMul) - }, - doubles: pre.doubles && { - step: pre.doubles.step, - points: pre.doubles.points.map(endoMul) - } - }; - } - return beta; -}; - -Point.prototype.toJSON = function toJSON() { - if (!this.precomputed) - return [ this.x, this.y ]; - - return [ this.x, this.y, this.precomputed && { - doubles: this.precomputed.doubles && { - step: this.precomputed.doubles.step, - points: this.precomputed.doubles.points.slice(1) - }, - naf: this.precomputed.naf && { - wnd: this.precomputed.naf.wnd, - points: this.precomputed.naf.points.slice(1) - } - } ]; -}; - -Point.fromJSON = function fromJSON(curve, obj, red) { - if (typeof obj === 'string') - obj = JSON.parse(obj); - var res = curve.point(obj[0], obj[1], red); - if (!obj[2]) - return res; - - function obj2point(obj) { - return curve.point(obj[0], obj[1], red); - } - - var pre = obj[2]; - res.precomputed = { - beta: null, - doubles: pre.doubles && { - step: pre.doubles.step, - points: [ res ].concat(pre.doubles.points.map(obj2point)) - }, - naf: pre.naf && { - wnd: pre.naf.wnd, - points: [ res ].concat(pre.naf.points.map(obj2point)) - } - }; - return res; -}; - -Point.prototype.inspect = function inspect() { - if (this.isInfinity()) - return ''; - return ''; -}; - -Point.prototype.isInfinity = function isInfinity() { - return this.inf; -}; - -Point.prototype.add = function add(p) { - // O + P = P - if (this.inf) - return p; - - // P + O = P - if (p.inf) - return this; - - // P + P = 2P - if (this.eq(p)) - return this.dbl(); - - // P + (-P) = O - if (this.neg().eq(p)) - return this.curve.point(null, null); - - // P + Q = O - if (this.x.cmp(p.x) === 0) - return this.curve.point(null, null); - - var c = this.y.redSub(p.y); - if (c.cmpn(0) !== 0) - c = c.redMul(this.x.redSub(p.x).redInvm()); - var nx = c.redSqr().redISub(this.x).redISub(p.x); - var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); - return this.curve.point(nx, ny); -}; - -Point.prototype.dbl = function dbl() { - if (this.inf) - return this; - - // 2P = O - var ys1 = this.y.redAdd(this.y); - if (ys1.cmpn(0) === 0) - return this.curve.point(null, null); - - var a = this.curve.a; - - var x2 = this.x.redSqr(); - var dyinv = ys1.redInvm(); - var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv); - - var nx = c.redSqr().redISub(this.x.redAdd(this.x)); - var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); - return this.curve.point(nx, ny); -}; - -Point.prototype.getX = function getX() { - return this.x.fromRed(); -}; - -Point.prototype.getY = function getY() { - return this.y.fromRed(); -}; - -Point.prototype.mul = function mul(k) { - k = new BN(k, 16); - - if (this._hasDoubles(k)) - return this.curve._fixedNafMul(this, k); - else if (this.curve.endo) - return this.curve._endoWnafMulAdd([ this ], [ k ]); - else - return this.curve._wnafMul(this, k); -}; - -Point.prototype.mulAdd = function mulAdd(k1, p2, k2) { - var points = [ this, p2 ]; - var coeffs = [ k1, k2 ]; - if (this.curve.endo) - return this.curve._endoWnafMulAdd(points, coeffs); - else - return this.curve._wnafMulAdd(1, points, coeffs, 2); -}; - -Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) { - var points = [ this, p2 ]; - var coeffs = [ k1, k2 ]; - if (this.curve.endo) - return this.curve._endoWnafMulAdd(points, coeffs, true); - else - return this.curve._wnafMulAdd(1, points, coeffs, 2, true); -}; - -Point.prototype.eq = function eq(p) { - return this === p || - this.inf === p.inf && - (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0); -}; - -Point.prototype.neg = function neg(_precompute) { - if (this.inf) - return this; - - var res = this.curve.point(this.x, this.y.redNeg()); - if (_precompute && this.precomputed) { - var pre = this.precomputed; - var negate = function(p) { - return p.neg(); - }; - res.precomputed = { - naf: pre.naf && { - wnd: pre.naf.wnd, - points: pre.naf.points.map(negate) - }, - doubles: pre.doubles && { - step: pre.doubles.step, - points: pre.doubles.points.map(negate) - } - }; - } - return res; -}; - -Point.prototype.toJ = function toJ() { - if (this.inf) - return this.curve.jpoint(null, null, null); - - var res = this.curve.jpoint(this.x, this.y, this.curve.one); - return res; -}; - -function JPoint(curve, x, y, z) { - Base.BasePoint.call(this, curve, 'jacobian'); - if (x === null && y === null && z === null) { - this.x = this.curve.one; - this.y = this.curve.one; - this.z = new BN(0); - } else { - this.x = new BN(x, 16); - this.y = new BN(y, 16); - this.z = new BN(z, 16); - } - if (!this.x.red) - this.x = this.x.toRed(this.curve.red); - if (!this.y.red) - this.y = this.y.toRed(this.curve.red); - if (!this.z.red) - this.z = this.z.toRed(this.curve.red); - - this.zOne = this.z === this.curve.one; -} -inherits(JPoint, Base.BasePoint); - -ShortCurve.prototype.jpoint = function jpoint(x, y, z) { - return new JPoint(this, x, y, z); -}; - -JPoint.prototype.toP = function toP() { - if (this.isInfinity()) - return this.curve.point(null, null); - - var zinv = this.z.redInvm(); - var zinv2 = zinv.redSqr(); - var ax = this.x.redMul(zinv2); - var ay = this.y.redMul(zinv2).redMul(zinv); - - return this.curve.point(ax, ay); -}; - -JPoint.prototype.neg = function neg() { - return this.curve.jpoint(this.x, this.y.redNeg(), this.z); -}; - -JPoint.prototype.add = function add(p) { - // O + P = P - if (this.isInfinity()) - return p; - - // P + O = P - if (p.isInfinity()) - return this; - - // 12M + 4S + 7A - var pz2 = p.z.redSqr(); - var z2 = this.z.redSqr(); - var u1 = this.x.redMul(pz2); - var u2 = p.x.redMul(z2); - var s1 = this.y.redMul(pz2.redMul(p.z)); - var s2 = p.y.redMul(z2.redMul(this.z)); - - var h = u1.redSub(u2); - var r = s1.redSub(s2); - if (h.cmpn(0) === 0) { - if (r.cmpn(0) !== 0) - return this.curve.jpoint(null, null, null); - else - return this.dbl(); - } - - var h2 = h.redSqr(); - var h3 = h2.redMul(h); - var v = u1.redMul(h2); - - var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v); - var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); - var nz = this.z.redMul(p.z).redMul(h); - - return this.curve.jpoint(nx, ny, nz); -}; - -JPoint.prototype.mixedAdd = function mixedAdd(p) { - // O + P = P - if (this.isInfinity()) - return p.toJ(); - - // P + O = P - if (p.isInfinity()) - return this; - - // 8M + 3S + 7A - var z2 = this.z.redSqr(); - var u1 = this.x; - var u2 = p.x.redMul(z2); - var s1 = this.y; - var s2 = p.y.redMul(z2).redMul(this.z); - - var h = u1.redSub(u2); - var r = s1.redSub(s2); - if (h.cmpn(0) === 0) { - if (r.cmpn(0) !== 0) - return this.curve.jpoint(null, null, null); - else - return this.dbl(); - } - - var h2 = h.redSqr(); - var h3 = h2.redMul(h); - var v = u1.redMul(h2); - - var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v); - var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); - var nz = this.z.redMul(h); - - return this.curve.jpoint(nx, ny, nz); -}; - -JPoint.prototype.dblp = function dblp(pow) { - if (pow === 0) - return this; - if (this.isInfinity()) - return this; - if (!pow) - return this.dbl(); - - if (this.curve.zeroA || this.curve.threeA) { - var r = this; - for (var i = 0; i < pow; i++) - r = r.dbl(); - return r; - } - - // 1M + 2S + 1A + N * (4S + 5M + 8A) - // N = 1 => 6M + 6S + 9A - var a = this.curve.a; - var tinv = this.curve.tinv; - - var jx = this.x; - var jy = this.y; - var jz = this.z; - var jz4 = jz.redSqr().redSqr(); - - // Reuse results - var jyd = jy.redAdd(jy); - for (var i = 0; i < pow; i++) { - var jx2 = jx.redSqr(); - var jyd2 = jyd.redSqr(); - var jyd4 = jyd2.redSqr(); - var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); - - var t1 = jx.redMul(jyd2); - var nx = c.redSqr().redISub(t1.redAdd(t1)); - var t2 = t1.redISub(nx); - var dny = c.redMul(t2); - dny = dny.redIAdd(dny).redISub(jyd4); - var nz = jyd.redMul(jz); - if (i + 1 < pow) - jz4 = jz4.redMul(jyd4); - - jx = nx; - jz = nz; - jyd = dny; - } - - return this.curve.jpoint(jx, jyd.redMul(tinv), jz); -}; - -JPoint.prototype.dbl = function dbl() { - if (this.isInfinity()) - return this; - - if (this.curve.zeroA) - return this._zeroDbl(); - else if (this.curve.threeA) - return this._threeDbl(); - else - return this._dbl(); -}; - -JPoint.prototype._zeroDbl = function _zeroDbl() { - var nx; - var ny; - var nz; - // Z = 1 - if (this.zOne) { - // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html - // #doubling-mdbl-2007-bl - // 1M + 5S + 14A - - // XX = X1^2 - var xx = this.x.redSqr(); - // YY = Y1^2 - var yy = this.y.redSqr(); - // YYYY = YY^2 - var yyyy = yy.redSqr(); - // S = 2 * ((X1 + YY)^2 - XX - YYYY) - var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); - s = s.redIAdd(s); - // M = 3 * XX + a; a = 0 - var m = xx.redAdd(xx).redIAdd(xx); - // T = M ^ 2 - 2*S - var t = m.redSqr().redISub(s).redISub(s); - - // 8 * YYYY - var yyyy8 = yyyy.redIAdd(yyyy); - yyyy8 = yyyy8.redIAdd(yyyy8); - yyyy8 = yyyy8.redIAdd(yyyy8); - - // X3 = T - nx = t; - // Y3 = M * (S - T) - 8 * YYYY - ny = m.redMul(s.redISub(t)).redISub(yyyy8); - // Z3 = 2*Y1 - nz = this.y.redAdd(this.y); - } else { - // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html - // #doubling-dbl-2009-l - // 2M + 5S + 13A - - // A = X1^2 - var a = this.x.redSqr(); - // B = Y1^2 - var b = this.y.redSqr(); - // C = B^2 - var c = b.redSqr(); - // D = 2 * ((X1 + B)^2 - A - C) - var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c); - d = d.redIAdd(d); - // E = 3 * A - var e = a.redAdd(a).redIAdd(a); - // F = E^2 - var f = e.redSqr(); - - // 8 * C - var c8 = c.redIAdd(c); - c8 = c8.redIAdd(c8); - c8 = c8.redIAdd(c8); - - // X3 = F - 2 * D - nx = f.redISub(d).redISub(d); - // Y3 = E * (D - X3) - 8 * C - ny = e.redMul(d.redISub(nx)).redISub(c8); - // Z3 = 2 * Y1 * Z1 - nz = this.y.redMul(this.z); - nz = nz.redIAdd(nz); - } - - return this.curve.jpoint(nx, ny, nz); -}; - -JPoint.prototype._threeDbl = function _threeDbl() { - var nx; - var ny; - var nz; - // Z = 1 - if (this.zOne) { - // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html - // #doubling-mdbl-2007-bl - // 1M + 5S + 15A - - // XX = X1^2 - var xx = this.x.redSqr(); - // YY = Y1^2 - var yy = this.y.redSqr(); - // YYYY = YY^2 - var yyyy = yy.redSqr(); - // S = 2 * ((X1 + YY)^2 - XX - YYYY) - var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); - s = s.redIAdd(s); - // M = 3 * XX + a - var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a); - // T = M^2 - 2 * S - var t = m.redSqr().redISub(s).redISub(s); - // X3 = T - nx = t; - // Y3 = M * (S - T) - 8 * YYYY - var yyyy8 = yyyy.redIAdd(yyyy); - yyyy8 = yyyy8.redIAdd(yyyy8); - yyyy8 = yyyy8.redIAdd(yyyy8); - ny = m.redMul(s.redISub(t)).redISub(yyyy8); - // Z3 = 2 * Y1 - nz = this.y.redAdd(this.y); - } else { - // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b - // 3M + 5S - - // delta = Z1^2 - var delta = this.z.redSqr(); - // gamma = Y1^2 - var gamma = this.y.redSqr(); - // beta = X1 * gamma - var beta = this.x.redMul(gamma); - // alpha = 3 * (X1 - delta) * (X1 + delta) - var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta)); - alpha = alpha.redAdd(alpha).redIAdd(alpha); - // X3 = alpha^2 - 8 * beta - var beta4 = beta.redIAdd(beta); - beta4 = beta4.redIAdd(beta4); - var beta8 = beta4.redAdd(beta4); - nx = alpha.redSqr().redISub(beta8); - // Z3 = (Y1 + Z1)^2 - gamma - delta - nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta); - // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2 - var ggamma8 = gamma.redSqr(); - ggamma8 = ggamma8.redIAdd(ggamma8); - ggamma8 = ggamma8.redIAdd(ggamma8); - ggamma8 = ggamma8.redIAdd(ggamma8); - ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8); - } - - return this.curve.jpoint(nx, ny, nz); -}; - -JPoint.prototype._dbl = function _dbl() { - var a = this.curve.a; - - // 4M + 6S + 10A - var jx = this.x; - var jy = this.y; - var jz = this.z; - var jz4 = jz.redSqr().redSqr(); - - var jx2 = jx.redSqr(); - var jy2 = jy.redSqr(); - - var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); - - var jxd4 = jx.redAdd(jx); - jxd4 = jxd4.redIAdd(jxd4); - var t1 = jxd4.redMul(jy2); - var nx = c.redSqr().redISub(t1.redAdd(t1)); - var t2 = t1.redISub(nx); - - var jyd8 = jy2.redSqr(); - jyd8 = jyd8.redIAdd(jyd8); - jyd8 = jyd8.redIAdd(jyd8); - jyd8 = jyd8.redIAdd(jyd8); - var ny = c.redMul(t2).redISub(jyd8); - var nz = jy.redAdd(jy).redMul(jz); - - return this.curve.jpoint(nx, ny, nz); -}; - -JPoint.prototype.trpl = function trpl() { - if (!this.curve.zeroA) - return this.dbl().add(this); - - // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl - // 5M + 10S + ... - - // XX = X1^2 - var xx = this.x.redSqr(); - // YY = Y1^2 - var yy = this.y.redSqr(); - // ZZ = Z1^2 - var zz = this.z.redSqr(); - // YYYY = YY^2 - var yyyy = yy.redSqr(); - // M = 3 * XX + a * ZZ2; a = 0 - var m = xx.redAdd(xx).redIAdd(xx); - // MM = M^2 - var mm = m.redSqr(); - // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM - var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); - e = e.redIAdd(e); - e = e.redAdd(e).redIAdd(e); - e = e.redISub(mm); - // EE = E^2 - var ee = e.redSqr(); - // T = 16*YYYY - var t = yyyy.redIAdd(yyyy); - t = t.redIAdd(t); - t = t.redIAdd(t); - t = t.redIAdd(t); - // U = (M + E)^2 - MM - EE - T - var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t); - // X3 = 4 * (X1 * EE - 4 * YY * U) - var yyu4 = yy.redMul(u); - yyu4 = yyu4.redIAdd(yyu4); - yyu4 = yyu4.redIAdd(yyu4); - var nx = this.x.redMul(ee).redISub(yyu4); - nx = nx.redIAdd(nx); - nx = nx.redIAdd(nx); - // Y3 = 8 * Y1 * (U * (T - U) - E * EE) - var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee))); - ny = ny.redIAdd(ny); - ny = ny.redIAdd(ny); - ny = ny.redIAdd(ny); - // Z3 = (Z1 + E)^2 - ZZ - EE - var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee); - - return this.curve.jpoint(nx, ny, nz); -}; - -JPoint.prototype.mul = function mul(k, kbase) { - k = new BN(k, kbase); - - return this.curve._wnafMul(this, k); -}; - -JPoint.prototype.eq = function eq(p) { - if (p.type === 'affine') - return this.eq(p.toJ()); - - if (this === p) - return true; - - // x1 * z2^2 == x2 * z1^2 - var z2 = this.z.redSqr(); - var pz2 = p.z.redSqr(); - if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) - return false; - - // y1 * z2^3 == y2 * z1^3 - var z3 = z2.redMul(this.z); - var pz3 = pz2.redMul(p.z); - return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0; -}; - -JPoint.prototype.eqXToP = function eqXToP(x) { - var zs = this.z.redSqr(); - var rx = x.toRed(this.curve.red).redMul(zs); - if (this.x.cmp(rx) === 0) - return true; - - var xc = x.clone(); - var t = this.curve.redN.redMul(zs); - for (;;) { - xc.iadd(this.curve.n); - if (xc.cmp(this.curve.p) >= 0) - return false; - - rx.redIAdd(t); - if (this.x.cmp(rx) === 0) - return true; - } -}; - -JPoint.prototype.inspect = function inspect() { - if (this.isInfinity()) - return ''; - return ''; -}; - -JPoint.prototype.isInfinity = function isInfinity() { - // XXX This code assumes that zero is always zero in red - return this.z.cmpn(0) === 0; -}; - - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic/curves.js": -/*!******************************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic/curves.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var curves = exports; - -var hash = __webpack_require__(/*! hash.js */ "./node_modules/hash.js/lib/hash.js"); -var elliptic = __webpack_require__(/*! ../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); - -var assert = elliptic.utils.assert; - -function PresetCurve(options) { - if (options.type === 'short') - this.curve = new elliptic.curve.short(options); - else if (options.type === 'edwards') - this.curve = new elliptic.curve.edwards(options); - else - this.curve = new elliptic.curve.mont(options); - this.g = this.curve.g; - this.n = this.curve.n; - this.hash = options.hash; - - assert(this.g.validate(), 'Invalid curve'); - assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O'); -} -curves.PresetCurve = PresetCurve; - -function defineCurve(name, options) { - Object.defineProperty(curves, name, { - configurable: true, - enumerable: true, - get: function() { - var curve = new PresetCurve(options); - Object.defineProperty(curves, name, { - configurable: true, - enumerable: true, - value: curve - }); - return curve; - } - }); -} - -defineCurve('p192', { - type: 'short', - prime: 'p192', - p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff', - a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc', - b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1', - n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831', - hash: hash.sha256, - gRed: false, - g: [ - '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012', - '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811' - ] -}); - -defineCurve('p224', { - type: 'short', - prime: 'p224', - p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001', - a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe', - b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4', - n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d', - hash: hash.sha256, - gRed: false, - g: [ - 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21', - 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34' - ] -}); - -defineCurve('p256', { - type: 'short', - prime: null, - p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff', - a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc', - b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b', - n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551', - hash: hash.sha256, - gRed: false, - g: [ - '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296', - '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5' - ] -}); - -defineCurve('p384', { - type: 'short', - prime: null, - p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + - 'fffffffe ffffffff 00000000 00000000 ffffffff', - a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + - 'fffffffe ffffffff 00000000 00000000 fffffffc', - b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' + - '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef', - n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' + - 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973', - hash: hash.sha384, - gRed: false, - g: [ - 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' + - '5502f25d bf55296c 3a545e38 72760ab7', - '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' + - '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f' - ] -}); - -defineCurve('p521', { - type: 'short', - prime: null, - p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + - 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + - 'ffffffff ffffffff ffffffff ffffffff ffffffff', - a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + - 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + - 'ffffffff ffffffff ffffffff ffffffff fffffffc', - b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' + - '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' + - '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00', - n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + - 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' + - 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409', - hash: hash.sha512, - gRed: false, - g: [ - '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' + - '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' + - 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66', - '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' + - '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' + - '3fad0761 353c7086 a272c240 88be9476 9fd16650' - ] -}); - -defineCurve('curve25519', { - type: 'mont', - prime: 'p25519', - p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', - a: '76d06', - b: '1', - n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', - hash: hash.sha256, - gRed: false, - g: [ - '9' - ] -}); - -defineCurve('ed25519', { - type: 'edwards', - prime: 'p25519', - p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', - a: '-1', - c: '1', - // -121665 * (121666^(-1)) (mod P) - d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3', - n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', - hash: hash.sha256, - gRed: false, - g: [ - '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a', - - // 4/5 - '6666666666666666666666666666666666666666666666666666666666666658' - ] -}); - -var pre; -try { - pre = __webpack_require__(/*! ./precomputed/secp256k1 */ "./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js"); -} catch (e) { - pre = undefined; -} - -defineCurve('secp256k1', { - type: 'short', - prime: 'k256', - p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f', - a: '0', - b: '7', - n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141', - h: '1', - hash: hash.sha256, - - // Precomputed endomorphism - beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee', - lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72', - basis: [ - { - a: '3086d221a7d46bcde86c90e49284eb15', - b: '-e4437ed6010e88286f547fa90abfe4c3' - }, - { - a: '114ca50f7a8e2f3f657c1108d9d44cfd8', - b: '3086d221a7d46bcde86c90e49284eb15' - } - ], - - gRed: false, - g: [ - '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', - '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', - pre - ] -}); - - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic/ec/index.js": -/*!********************************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic/ec/index.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); -var HmacDRBG = __webpack_require__(/*! hmac-drbg */ "./node_modules/hmac-drbg/lib/hmac-drbg.js"); -var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); -var utils = elliptic.utils; -var assert = utils.assert; - -var KeyPair = __webpack_require__(/*! ./key */ "./node_modules/elliptic/lib/elliptic/ec/key.js"); -var Signature = __webpack_require__(/*! ./signature */ "./node_modules/elliptic/lib/elliptic/ec/signature.js"); - -function EC(options) { - if (!(this instanceof EC)) - return new EC(options); - - // Shortcut `elliptic.ec(curve-name)` - if (typeof options === 'string') { - assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options); - - options = elliptic.curves[options]; - } - - // Shortcut for `elliptic.ec(elliptic.curves.curveName)` - if (options instanceof elliptic.curves.PresetCurve) - options = { curve: options }; - - this.curve = options.curve.curve; - this.n = this.curve.n; - this.nh = this.n.ushrn(1); - this.g = this.curve.g; - - // Point on curve - this.g = options.curve.g; - this.g.precompute(options.curve.n.bitLength() + 1); - - // Hash for function for DRBG - this.hash = options.hash || options.curve.hash; -} -module.exports = EC; - -EC.prototype.keyPair = function keyPair(options) { - return new KeyPair(this, options); -}; - -EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) { - return KeyPair.fromPrivate(this, priv, enc); -}; - -EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) { - return KeyPair.fromPublic(this, pub, enc); -}; - -EC.prototype.genKeyPair = function genKeyPair(options) { - if (!options) - options = {}; - - // Instantiate Hmac_DRBG - var drbg = new HmacDRBG({ - hash: this.hash, - pers: options.pers, - persEnc: options.persEnc || 'utf8', - entropy: options.entropy || elliptic.rand(this.hash.hmacStrength), - entropyEnc: options.entropy && options.entropyEnc || 'utf8', - nonce: this.n.toArray() - }); - - var bytes = this.n.byteLength(); - var ns2 = this.n.sub(new BN(2)); - do { - var priv = new BN(drbg.generate(bytes)); - if (priv.cmp(ns2) > 0) - continue; - - priv.iaddn(1); - return this.keyFromPrivate(priv); - } while (true); -}; - -EC.prototype._truncateToN = function truncateToN(msg, truncOnly) { - var delta = msg.byteLength() * 8 - this.n.bitLength(); - if (delta > 0) - msg = msg.ushrn(delta); - if (!truncOnly && msg.cmp(this.n) >= 0) - return msg.sub(this.n); - else - return msg; -}; - -EC.prototype.sign = function sign(msg, key, enc, options) { - if (typeof enc === 'object') { - options = enc; - enc = null; - } - if (!options) - options = {}; - - key = this.keyFromPrivate(key, enc); - msg = this._truncateToN(new BN(msg, 16)); - - // Zero-extend key to provide enough entropy - var bytes = this.n.byteLength(); - var bkey = key.getPrivate().toArray('be', bytes); - - // Zero-extend nonce to have the same byte size as N - var nonce = msg.toArray('be', bytes); - - // Instantiate Hmac_DRBG - var drbg = new HmacDRBG({ - hash: this.hash, - entropy: bkey, - nonce: nonce, - pers: options.pers, - persEnc: options.persEnc || 'utf8' - }); - - // Number of bytes to generate - var ns1 = this.n.sub(new BN(1)); - - for (var iter = 0; true; iter++) { - var k = options.k ? - options.k(iter) : - new BN(drbg.generate(this.n.byteLength())); - k = this._truncateToN(k, true); - if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) - continue; - - var kp = this.g.mul(k); - if (kp.isInfinity()) - continue; - - var kpX = kp.getX(); - var r = kpX.umod(this.n); - if (r.cmpn(0) === 0) - continue; - - var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg)); - s = s.umod(this.n); - if (s.cmpn(0) === 0) - continue; - - var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | - (kpX.cmp(r) !== 0 ? 2 : 0); - - // Use complement of `s`, if it is > `n / 2` - if (options.canonical && s.cmp(this.nh) > 0) { - s = this.n.sub(s); - recoveryParam ^= 1; - } - - return new Signature({ r: r, s: s, recoveryParam: recoveryParam }); - } -}; - -EC.prototype.verify = function verify(msg, signature, key, enc) { - msg = this._truncateToN(new BN(msg, 16)); - key = this.keyFromPublic(key, enc); - signature = new Signature(signature, 'hex'); - - // Perform primitive values validation - var r = signature.r; - var s = signature.s; - if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0) - return false; - if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) - return false; - - // Validate signature - var sinv = s.invm(this.n); - var u1 = sinv.mul(msg).umod(this.n); - var u2 = sinv.mul(r).umod(this.n); - - if (!this.curve._maxwellTrick) { - var p = this.g.mulAdd(u1, key.getPublic(), u2); - if (p.isInfinity()) - return false; - - return p.getX().umod(this.n).cmp(r) === 0; - } - - // NOTE: Greg Maxwell's trick, inspired by: - // https://git.io/vad3K - - var p = this.g.jmulAdd(u1, key.getPublic(), u2); - if (p.isInfinity()) - return false; - - // Compare `p.x` of Jacobian point with `r`, - // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the - // inverse of `p.z^2` - return p.eqXToP(r); -}; - -EC.prototype.recoverPubKey = function(msg, signature, j, enc) { - assert((3 & j) === j, 'The recovery param is more than two bits'); - signature = new Signature(signature, enc); - - var n = this.n; - var e = new BN(msg); - var r = signature.r; - var s = signature.s; - - // A set LSB signifies that the y-coordinate is odd - var isYOdd = j & 1; - var isSecondKey = j >> 1; - if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) - throw new Error('Unable to find sencond key candinate'); - - // 1.1. Let x = r + jn. - if (isSecondKey) - r = this.curve.pointFromX(r.add(this.curve.n), isYOdd); - else - r = this.curve.pointFromX(r, isYOdd); - - var rInv = signature.r.invm(n); - var s1 = n.sub(e).mul(rInv).umod(n); - var s2 = s.mul(rInv).umod(n); - - // 1.6.1 Compute Q = r^-1 (sR - eG) - // Q = r^-1 (sR + -eG) - return this.g.mulAdd(s1, r, s2); -}; - -EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) { - signature = new Signature(signature, enc); - if (signature.recoveryParam !== null) - return signature.recoveryParam; - - for (var i = 0; i < 4; i++) { - var Qprime; - try { - Qprime = this.recoverPubKey(e, signature, i); - } catch (e) { - continue; - } - - if (Qprime.eq(Q)) - return i; - } - throw new Error('Unable to find valid recovery factor'); -}; - - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic/ec/key.js": -/*!******************************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic/ec/key.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); -var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); -var utils = elliptic.utils; -var assert = utils.assert; - -function KeyPair(ec, options) { - this.ec = ec; - this.priv = null; - this.pub = null; - - // KeyPair(ec, { priv: ..., pub: ... }) - if (options.priv) - this._importPrivate(options.priv, options.privEnc); - if (options.pub) - this._importPublic(options.pub, options.pubEnc); -} -module.exports = KeyPair; - -KeyPair.fromPublic = function fromPublic(ec, pub, enc) { - if (pub instanceof KeyPair) - return pub; - - return new KeyPair(ec, { - pub: pub, - pubEnc: enc - }); -}; - -KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) { - if (priv instanceof KeyPair) - return priv; - - return new KeyPair(ec, { - priv: priv, - privEnc: enc - }); -}; - -KeyPair.prototype.validate = function validate() { - var pub = this.getPublic(); - - if (pub.isInfinity()) - return { result: false, reason: 'Invalid public key' }; - if (!pub.validate()) - return { result: false, reason: 'Public key is not a point' }; - if (!pub.mul(this.ec.curve.n).isInfinity()) - return { result: false, reason: 'Public key * N != O' }; - - return { result: true, reason: null }; -}; - -KeyPair.prototype.getPublic = function getPublic(compact, enc) { - // compact is optional argument - if (typeof compact === 'string') { - enc = compact; - compact = null; - } - - if (!this.pub) - this.pub = this.ec.g.mul(this.priv); - - if (!enc) - return this.pub; - - return this.pub.encode(enc, compact); -}; - -KeyPair.prototype.getPrivate = function getPrivate(enc) { - if (enc === 'hex') - return this.priv.toString(16, 2); - else - return this.priv; -}; - -KeyPair.prototype._importPrivate = function _importPrivate(key, enc) { - this.priv = new BN(key, enc || 16); - - // Ensure that the priv won't be bigger than n, otherwise we may fail - // in fixed multiplication method - this.priv = this.priv.umod(this.ec.curve.n); -}; - -KeyPair.prototype._importPublic = function _importPublic(key, enc) { - if (key.x || key.y) { - // Montgomery points only have an `x` coordinate. - // Weierstrass/Edwards points on the other hand have both `x` and - // `y` coordinates. - if (this.ec.curve.type === 'mont') { - assert(key.x, 'Need x coordinate'); - } else if (this.ec.curve.type === 'short' || - this.ec.curve.type === 'edwards') { - assert(key.x && key.y, 'Need both x and y coordinate'); - } - this.pub = this.ec.curve.point(key.x, key.y); - return; - } - this.pub = this.ec.curve.decodePoint(key, enc); -}; - -// ECDH -KeyPair.prototype.derive = function derive(pub) { - return pub.mul(this.priv).getX(); -}; - -// ECDSA -KeyPair.prototype.sign = function sign(msg, enc, options) { - return this.ec.sign(msg, this, enc, options); -}; - -KeyPair.prototype.verify = function verify(msg, signature) { - return this.ec.verify(msg, signature, this); -}; - -KeyPair.prototype.inspect = function inspect() { - return ''; -}; - - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic/ec/signature.js": -/*!************************************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic/ec/signature.js ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); - -var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); -var utils = elliptic.utils; -var assert = utils.assert; - -function Signature(options, enc) { - if (options instanceof Signature) - return options; - - if (this._importDER(options, enc)) - return; - - assert(options.r && options.s, 'Signature without r or s'); - this.r = new BN(options.r, 16); - this.s = new BN(options.s, 16); - if (options.recoveryParam === undefined) - this.recoveryParam = null; - else - this.recoveryParam = options.recoveryParam; -} -module.exports = Signature; - -function Position() { - this.place = 0; -} - -function getLength(buf, p) { - var initial = buf[p.place++]; - if (!(initial & 0x80)) { - return initial; - } - var octetLen = initial & 0xf; - var val = 0; - for (var i = 0, off = p.place; i < octetLen; i++, off++) { - val <<= 8; - val |= buf[off]; - } - p.place = off; - return val; -} - -function rmPadding(buf) { - var i = 0; - var len = buf.length - 1; - while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) { - i++; - } - if (i === 0) { - return buf; - } - return buf.slice(i); -} - -Signature.prototype._importDER = function _importDER(data, enc) { - data = utils.toArray(data, enc); - var p = new Position(); - if (data[p.place++] !== 0x30) { - return false; - } - var len = getLength(data, p); - if ((len + p.place) !== data.length) { - return false; - } - if (data[p.place++] !== 0x02) { - return false; - } - var rlen = getLength(data, p); - var r = data.slice(p.place, rlen + p.place); - p.place += rlen; - if (data[p.place++] !== 0x02) { - return false; - } - var slen = getLength(data, p); - if (data.length !== slen + p.place) { - return false; - } - var s = data.slice(p.place, slen + p.place); - if (r[0] === 0 && (r[1] & 0x80)) { - r = r.slice(1); - } - if (s[0] === 0 && (s[1] & 0x80)) { - s = s.slice(1); - } - - this.r = new BN(r); - this.s = new BN(s); - this.recoveryParam = null; - - return true; -}; - -function constructLength(arr, len) { - if (len < 0x80) { - arr.push(len); - return; - } - var octets = 1 + (Math.log(len) / Math.LN2 >>> 3); - arr.push(octets | 0x80); - while (--octets) { - arr.push((len >>> (octets << 3)) & 0xff); - } - arr.push(len); -} - -Signature.prototype.toDER = function toDER(enc) { - var r = this.r.toArray(); - var s = this.s.toArray(); - - // Pad values - if (r[0] & 0x80) - r = [ 0 ].concat(r); - // Pad values - if (s[0] & 0x80) - s = [ 0 ].concat(s); - - r = rmPadding(r); - s = rmPadding(s); - - while (!s[0] && !(s[1] & 0x80)) { - s = s.slice(1); - } - var arr = [ 0x02 ]; - constructLength(arr, r.length); - arr = arr.concat(r); - arr.push(0x02); - constructLength(arr, s.length); - var backHalf = arr.concat(s); - var res = [ 0x30 ]; - constructLength(res, backHalf.length); - res = res.concat(backHalf); - return utils.encode(res, enc); -}; - - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic/eddsa/index.js": -/*!***********************************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic/eddsa/index.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var hash = __webpack_require__(/*! hash.js */ "./node_modules/hash.js/lib/hash.js"); -var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); -var utils = elliptic.utils; -var assert = utils.assert; -var parseBytes = utils.parseBytes; -var KeyPair = __webpack_require__(/*! ./key */ "./node_modules/elliptic/lib/elliptic/eddsa/key.js"); -var Signature = __webpack_require__(/*! ./signature */ "./node_modules/elliptic/lib/elliptic/eddsa/signature.js"); - -function EDDSA(curve) { - assert(curve === 'ed25519', 'only tested with ed25519 so far'); - - if (!(this instanceof EDDSA)) - return new EDDSA(curve); - - var curve = elliptic.curves[curve].curve; - this.curve = curve; - this.g = curve.g; - this.g.precompute(curve.n.bitLength() + 1); - - this.pointClass = curve.point().constructor; - this.encodingLength = Math.ceil(curve.n.bitLength() / 8); - this.hash = hash.sha512; -} - -module.exports = EDDSA; - -/** -* @param {Array|String} message - message bytes -* @param {Array|String|KeyPair} secret - secret bytes or a keypair -* @returns {Signature} - signature -*/ -EDDSA.prototype.sign = function sign(message, secret) { - message = parseBytes(message); - var key = this.keyFromSecret(secret); - var r = this.hashInt(key.messagePrefix(), message); - var R = this.g.mul(r); - var Rencoded = this.encodePoint(R); - var s_ = this.hashInt(Rencoded, key.pubBytes(), message) - .mul(key.priv()); - var S = r.add(s_).umod(this.curve.n); - return this.makeSignature({ R: R, S: S, Rencoded: Rencoded }); -}; - -/** -* @param {Array} message - message bytes -* @param {Array|String|Signature} sig - sig bytes -* @param {Array|String|Point|KeyPair} pub - public key -* @returns {Boolean} - true if public key matches sig of message -*/ -EDDSA.prototype.verify = function verify(message, sig, pub) { - message = parseBytes(message); - sig = this.makeSignature(sig); - var key = this.keyFromPublic(pub); - var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message); - var SG = this.g.mul(sig.S()); - var RplusAh = sig.R().add(key.pub().mul(h)); - return RplusAh.eq(SG); -}; - -EDDSA.prototype.hashInt = function hashInt() { - var hash = this.hash(); - for (var i = 0; i < arguments.length; i++) - hash.update(arguments[i]); - return utils.intFromLE(hash.digest()).umod(this.curve.n); -}; - -EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) { - return KeyPair.fromPublic(this, pub); -}; - -EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) { - return KeyPair.fromSecret(this, secret); -}; - -EDDSA.prototype.makeSignature = function makeSignature(sig) { - if (sig instanceof Signature) - return sig; - return new Signature(this, sig); -}; - -/** -* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2 -* -* EDDSA defines methods for encoding and decoding points and integers. These are -* helper convenience methods, that pass along to utility functions implied -* parameters. -* -*/ -EDDSA.prototype.encodePoint = function encodePoint(point) { - var enc = point.getY().toArray('le', this.encodingLength); - enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0; - return enc; -}; - -EDDSA.prototype.decodePoint = function decodePoint(bytes) { - bytes = utils.parseBytes(bytes); - - var lastIx = bytes.length - 1; - var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80); - var xIsOdd = (bytes[lastIx] & 0x80) !== 0; - - var y = utils.intFromLE(normed); - return this.curve.pointFromY(y, xIsOdd); -}; - -EDDSA.prototype.encodeInt = function encodeInt(num) { - return num.toArray('le', this.encodingLength); -}; - -EDDSA.prototype.decodeInt = function decodeInt(bytes) { - return utils.intFromLE(bytes); -}; - -EDDSA.prototype.isPoint = function isPoint(val) { - return val instanceof this.pointClass; -}; - - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic/eddsa/key.js": -/*!*********************************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic/eddsa/key.js ***! - \*********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); -var utils = elliptic.utils; -var assert = utils.assert; -var parseBytes = utils.parseBytes; -var cachedProperty = utils.cachedProperty; - -/** -* @param {EDDSA} eddsa - instance -* @param {Object} params - public/private key parameters -* -* @param {Array} [params.secret] - secret seed bytes -* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms) -* @param {Array} [params.pub] - public key point encoded as bytes -* -*/ -function KeyPair(eddsa, params) { - this.eddsa = eddsa; - this._secret = parseBytes(params.secret); - if (eddsa.isPoint(params.pub)) - this._pub = params.pub; - else - this._pubBytes = parseBytes(params.pub); -} - -KeyPair.fromPublic = function fromPublic(eddsa, pub) { - if (pub instanceof KeyPair) - return pub; - return new KeyPair(eddsa, { pub: pub }); -}; - -KeyPair.fromSecret = function fromSecret(eddsa, secret) { - if (secret instanceof KeyPair) - return secret; - return new KeyPair(eddsa, { secret: secret }); -}; - -KeyPair.prototype.secret = function secret() { - return this._secret; -}; - -cachedProperty(KeyPair, 'pubBytes', function pubBytes() { - return this.eddsa.encodePoint(this.pub()); -}); - -cachedProperty(KeyPair, 'pub', function pub() { - if (this._pubBytes) - return this.eddsa.decodePoint(this._pubBytes); - return this.eddsa.g.mul(this.priv()); -}); - -cachedProperty(KeyPair, 'privBytes', function privBytes() { - var eddsa = this.eddsa; - var hash = this.hash(); - var lastIx = eddsa.encodingLength - 1; - - var a = hash.slice(0, eddsa.encodingLength); - a[0] &= 248; - a[lastIx] &= 127; - a[lastIx] |= 64; - - return a; -}); - -cachedProperty(KeyPair, 'priv', function priv() { - return this.eddsa.decodeInt(this.privBytes()); -}); - -cachedProperty(KeyPair, 'hash', function hash() { - return this.eddsa.hash().update(this.secret()).digest(); -}); - -cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() { - return this.hash().slice(this.eddsa.encodingLength); -}); - -KeyPair.prototype.sign = function sign(message) { - assert(this._secret, 'KeyPair can only verify'); - return this.eddsa.sign(message, this); -}; - -KeyPair.prototype.verify = function verify(message, sig) { - return this.eddsa.verify(message, sig, this); -}; - -KeyPair.prototype.getSecret = function getSecret(enc) { - assert(this._secret, 'KeyPair is public only'); - return utils.encode(this.secret(), enc); -}; - -KeyPair.prototype.getPublic = function getPublic(enc) { - return utils.encode(this.pubBytes(), enc); -}; - -module.exports = KeyPair; - - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic/eddsa/signature.js": -/*!***************************************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic/eddsa/signature.js ***! - \***************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); -var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); -var utils = elliptic.utils; -var assert = utils.assert; -var cachedProperty = utils.cachedProperty; -var parseBytes = utils.parseBytes; - -/** -* @param {EDDSA} eddsa - eddsa instance -* @param {Array|Object} sig - -* @param {Array|Point} [sig.R] - R point as Point or bytes -* @param {Array|bn} [sig.S] - S scalar as bn or bytes -* @param {Array} [sig.Rencoded] - R point encoded -* @param {Array} [sig.Sencoded] - S scalar encoded -*/ -function Signature(eddsa, sig) { - this.eddsa = eddsa; - - if (typeof sig !== 'object') - sig = parseBytes(sig); - - if (Array.isArray(sig)) { - sig = { - R: sig.slice(0, eddsa.encodingLength), - S: sig.slice(eddsa.encodingLength) - }; - } - - assert(sig.R && sig.S, 'Signature without R or S'); - - if (eddsa.isPoint(sig.R)) - this._R = sig.R; - if (sig.S instanceof BN) - this._S = sig.S; - - this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded; - this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded; -} - -cachedProperty(Signature, 'S', function S() { - return this.eddsa.decodeInt(this.Sencoded()); -}); - -cachedProperty(Signature, 'R', function R() { - return this.eddsa.decodePoint(this.Rencoded()); -}); - -cachedProperty(Signature, 'Rencoded', function Rencoded() { - return this.eddsa.encodePoint(this.R()); -}); - -cachedProperty(Signature, 'Sencoded', function Sencoded() { - return this.eddsa.encodeInt(this.S()); -}); - -Signature.prototype.toBytes = function toBytes() { - return this.Rencoded().concat(this.Sencoded()); -}; - -Signature.prototype.toHex = function toHex() { - return utils.encode(this.toBytes(), 'hex').toUpperCase(); -}; - -module.exports = Signature; - - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js": -/*!*********************************************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js ***! - \*********************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = { - doubles: { - step: 4, - points: [ - [ - 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a', - 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821' - ], - [ - '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508', - '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf' - ], - [ - '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739', - 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695' - ], - [ - '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640', - '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9' - ], - [ - '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c', - '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36' - ], - [ - '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda', - '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f' - ], - [ - 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa', - '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999' - ], - [ - '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0', - 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09' - ], - [ - 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d', - '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d' - ], - [ - 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d', - 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088' - ], - [ - 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1', - '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d' - ], - [ - '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0', - '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8' - ], - [ - '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047', - '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a' - ], - [ - '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862', - '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453' - ], - [ - '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7', - '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160' - ], - [ - '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd', - '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0' - ], - [ - '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83', - '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6' - ], - [ - '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a', - '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589' - ], - [ - '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8', - 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17' - ], - [ - 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d', - '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda' - ], - [ - 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725', - '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd' - ], - [ - '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754', - '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2' - ], - [ - '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c', - '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6' - ], - [ - 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6', - '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f' - ], - [ - '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39', - 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01' - ], - [ - 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891', - '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3' - ], - [ - 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b', - 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f' - ], - [ - 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03', - '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7' - ], - [ - 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d', - 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78' - ], - [ - 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070', - '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1' - ], - [ - '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4', - 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150' - ], - [ - '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da', - '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82' - ], - [ - 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11', - '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc' - ], - [ - '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e', - 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b' - ], - [ - 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41', - '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51' - ], - [ - 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef', - '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45' - ], - [ - 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8', - 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120' - ], - [ - '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d', - '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84' - ], - [ - '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96', - '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d' - ], - [ - '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd', - 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d' - ], - [ - '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5', - '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8' - ], - [ - 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266', - '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8' - ], - [ - '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71', - '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac' - ], - [ - '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac', - 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f' - ], - [ - '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751', - '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962' - ], - [ - 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e', - '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907' - ], - [ - '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241', - 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec' - ], - [ - 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3', - 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d' - ], - [ - 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f', - '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414' - ], - [ - '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19', - 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd' - ], - [ - '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be', - 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0' - ], - [ - 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9', - '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811' - ], - [ - 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2', - '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1' - ], - [ - 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13', - '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c' - ], - [ - '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c', - 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73' - ], - [ - '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba', - '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd' - ], - [ - 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151', - 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405' - ], - [ - '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073', - 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589' - ], - [ - '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458', - '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e' - ], - [ - '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b', - '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27' - ], - [ - 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366', - 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1' - ], - [ - '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa', - '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482' - ], - [ - '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0', - '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945' - ], - [ - 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787', - '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573' - ], - [ - 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e', - 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82' - ] - ] - }, - naf: { - wnd: 7, - points: [ - [ - 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9', - '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672' - ], - [ - '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4', - 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6' - ], - [ - '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc', - '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da' - ], - [ - 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe', - 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37' - ], - [ - '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb', - 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b' - ], - [ - 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8', - 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81' - ], - [ - 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e', - '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58' - ], - [ - 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34', - '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77' - ], - [ - '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c', - '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a' - ], - [ - '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5', - '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c' - ], - [ - '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f', - '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67' - ], - [ - '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714', - '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402' - ], - [ - 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729', - 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55' - ], - [ - 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db', - '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482' - ], - [ - '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4', - 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82' - ], - [ - '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5', - 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396' - ], - [ - '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479', - '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49' - ], - [ - '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d', - '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf' - ], - [ - '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f', - '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a' - ], - [ - '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb', - 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7' - ], - [ - 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9', - 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933' - ], - [ - '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963', - '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a' - ], - [ - '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74', - '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6' - ], - [ - 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530', - 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37' - ], - [ - '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b', - '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e' - ], - [ - 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247', - 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6' - ], - [ - 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1', - 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476' - ], - [ - '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120', - '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40' - ], - [ - '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435', - '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61' - ], - [ - '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18', - '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683' - ], - [ - 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8', - '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5' - ], - [ - '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb', - '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b' - ], - [ - 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f', - '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417' - ], - [ - '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143', - 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868' - ], - [ - '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba', - 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a' - ], - [ - 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45', - 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6' - ], - [ - '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a', - '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996' - ], - [ - '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e', - 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e' - ], - [ - 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8', - 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d' - ], - [ - '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c', - '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2' - ], - [ - '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519', - 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e' - ], - [ - '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab', - '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437' - ], - [ - '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca', - 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311' - ], - [ - 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf', - '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4' - ], - [ - '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610', - '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575' - ], - [ - '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4', - 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d' - ], - [ - '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c', - 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d' - ], - [ - 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940', - 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629' - ], - [ - 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980', - 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06' - ], - [ - '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3', - '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374' - ], - [ - '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf', - '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee' - ], - [ - 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63', - '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1' - ], - [ - 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448', - 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b' - ], - [ - '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf', - '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661' - ], - [ - '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5', - '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6' - ], - [ - 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6', - '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e' - ], - [ - '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5', - '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d' - ], - [ - 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99', - 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc' - ], - [ - '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51', - 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4' - ], - [ - '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5', - '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c' - ], - [ - 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5', - '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b' - ], - [ - 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997', - '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913' - ], - [ - '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881', - '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154' - ], - [ - '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5', - '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865' - ], - [ - '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66', - 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc' - ], - [ - '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726', - 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224' - ], - [ - '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede', - '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e' - ], - [ - '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94', - '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6' - ], - [ - '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31', - '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511' - ], - [ - '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51', - 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b' - ], - [ - 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252', - 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2' - ], - [ - '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5', - 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c' - ], - [ - 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b', - '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3' - ], - [ - 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4', - '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d' - ], - [ - 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f', - '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700' - ], - [ - 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889', - '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4' - ], - [ - '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246', - 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196' - ], - [ - '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984', - '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4' - ], - [ - '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a', - 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257' - ], - [ - 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030', - 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13' - ], - [ - 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197', - '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096' - ], - [ - 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593', - 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38' - ], - [ - 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef', - '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f' - ], - [ - '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38', - '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448' - ], - [ - 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a', - '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a' - ], - [ - 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111', - '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4' - ], - [ - '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502', - '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437' - ], - [ - '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea', - 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7' - ], - [ - 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26', - '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d' - ], - [ - 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986', - '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a' - ], - [ - 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e', - '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54' - ], - [ - '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4', - '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77' - ], - [ - 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda', - 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517' - ], - [ - '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859', - 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10' - ], - [ - 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f', - 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125' - ], - [ - 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c', - '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e' - ], - [ - '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942', - 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1' - ], - [ - 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a', - '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2' - ], - [ - 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80', - '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423' - ], - [ - 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d', - '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8' - ], - [ - '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1', - 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758' - ], - [ - '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63', - 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375' - ], - [ - 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352', - '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d' - ], - [ - '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193', - 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec' - ], - [ - '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00', - '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0' - ], - [ - '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58', - 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c' - ], - [ - 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7', - 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4' - ], - [ - '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8', - 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f' - ], - [ - '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e', - '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649' - ], - [ - '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d', - 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826' - ], - [ - '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b', - '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5' - ], - [ - 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f', - 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87' - ], - [ - '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6', - '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b' - ], - [ - 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297', - '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc' - ], - [ - '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a', - '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c' - ], - [ - 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c', - 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f' - ], - [ - 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52', - '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a' - ], - [ - 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb', - 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46' - ], - [ - '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065', - 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f' - ], - [ - '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917', - '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03' - ], - [ - '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9', - 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08' - ], - [ - '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3', - '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8' - ], - [ - '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57', - '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373' - ], - [ - '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66', - 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3' - ], - [ - '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8', - '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8' - ], - [ - '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721', - '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1' - ], - [ - '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180', - '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9' - ] - ] - } -}; - - -/***/ }), - -/***/ "./node_modules/elliptic/lib/elliptic/utils.js": -/*!*****************************************************!*\ - !*** ./node_modules/elliptic/lib/elliptic/utils.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = exports; -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); -var minAssert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); -var minUtils = __webpack_require__(/*! minimalistic-crypto-utils */ "./node_modules/minimalistic-crypto-utils/lib/utils.js"); - -utils.assert = minAssert; -utils.toArray = minUtils.toArray; -utils.zero2 = minUtils.zero2; -utils.toHex = minUtils.toHex; -utils.encode = minUtils.encode; - -// Represent num in a w-NAF form -function getNAF(num, w) { - var naf = []; - var ws = 1 << (w + 1); - var k = num.clone(); - while (k.cmpn(1) >= 0) { - var z; - if (k.isOdd()) { - var mod = k.andln(ws - 1); - if (mod > (ws >> 1) - 1) - z = (ws >> 1) - mod; - else - z = mod; - k.isubn(z); - } else { - z = 0; - } - naf.push(z); - - // Optimization, shift by word if possible - var shift = (k.cmpn(0) !== 0 && k.andln(ws - 1) === 0) ? (w + 1) : 1; - for (var i = 1; i < shift; i++) - naf.push(0); - k.iushrn(shift); - } - - return naf; -} -utils.getNAF = getNAF; - -// Represent k1, k2 in a Joint Sparse Form -function getJSF(k1, k2) { - var jsf = [ - [], - [] - ]; - - k1 = k1.clone(); - k2 = k2.clone(); - var d1 = 0; - var d2 = 0; - while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) { - - // First phase - var m14 = (k1.andln(3) + d1) & 3; - var m24 = (k2.andln(3) + d2) & 3; - if (m14 === 3) - m14 = -1; - if (m24 === 3) - m24 = -1; - var u1; - if ((m14 & 1) === 0) { - u1 = 0; - } else { - var m8 = (k1.andln(7) + d1) & 7; - if ((m8 === 3 || m8 === 5) && m24 === 2) - u1 = -m14; - else - u1 = m14; - } - jsf[0].push(u1); - - var u2; - if ((m24 & 1) === 0) { - u2 = 0; - } else { - var m8 = (k2.andln(7) + d2) & 7; - if ((m8 === 3 || m8 === 5) && m14 === 2) - u2 = -m24; - else - u2 = m24; - } - jsf[1].push(u2); - - // Second phase - if (2 * d1 === u1 + 1) - d1 = 1 - d1; - if (2 * d2 === u2 + 1) - d2 = 1 - d2; - k1.iushrn(1); - k2.iushrn(1); - } - - return jsf; -} -utils.getJSF = getJSF; - -function cachedProperty(obj, name, computer) { - var key = '_' + name; - obj.prototype[name] = function cachedProperty() { - return this[key] !== undefined ? this[key] : - this[key] = computer.call(this); - }; -} -utils.cachedProperty = cachedProperty; - -function parseBytes(bytes) { - return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') : - bytes; -} -utils.parseBytes = parseBytes; - -function intFromLE(bytes) { - return new BN(bytes, 'hex', 'le'); -} -utils.intFromLE = intFromLE; - - - -/***/ }), - -/***/ "./node_modules/elliptic/package.json": -/*!********************************************!*\ - !*** ./node_modules/elliptic/package.json ***! - \********************************************/ -/*! exports provided: _from, _id, _inBundle, _integrity, _location, _phantomChildren, _requested, _requiredBy, _resolved, _shasum, _spec, _where, author, bugs, bundleDependencies, dependencies, deprecated, description, devDependencies, files, homepage, keywords, license, main, name, repository, scripts, version, default */ -/***/ (function(module) { - -module.exports = {"_from":"elliptic@^6.0.0","_id":"elliptic@6.4.1","_inBundle":false,"_integrity":"sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==","_location":"/elliptic","_phantomChildren":{},"_requested":{"type":"range","registry":true,"raw":"elliptic@^6.0.0","name":"elliptic","escapedName":"elliptic","rawSpec":"^6.0.0","saveSpec":null,"fetchSpec":"^6.0.0"},"_requiredBy":["/browserify-sign","/create-ecdh"],"_resolved":"https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz","_shasum":"c2d0b7776911b86722c632c3c06c60f2f819939a","_spec":"elliptic@^6.0.0","_where":"/Users/willem/Research/wasmos/node_modules/browserify-sign","author":{"name":"Fedor Indutny","email":"fedor@indutny.com"},"bugs":{"url":"https://github.com/indutny/elliptic/issues"},"bundleDependencies":false,"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"},"deprecated":false,"description":"EC cryptography","devDependencies":{"brfs":"^1.4.3","coveralls":"^2.11.3","grunt":"^0.4.5","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^8.6.2","istanbul":"^0.4.2","jscs":"^2.9.0","jshint":"^2.6.0","mocha":"^2.1.0"},"files":["lib"],"homepage":"https://github.com/indutny/elliptic","keywords":["EC","Elliptic","curve","Cryptography"],"license":"MIT","main":"lib/elliptic.js","name":"elliptic","repository":{"type":"git","url":"git+ssh://git@github.com/indutny/elliptic.git"},"scripts":{"jscs":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","jshint":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","lint":"npm run jscs && npm run jshint","test":"npm run lint && npm run unit","unit":"istanbul test _mocha --reporter=spec test/index.js","version":"grunt dist && git add dist/"},"version":"6.4.1"}; - -/***/ }), - -/***/ "./node_modules/events/events.js": -/*!***************************************!*\ - !*** ./node_modules/events/events.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - - - -var R = typeof Reflect === 'object' ? Reflect : null -var ReflectApply = R && typeof R.apply === 'function' - ? R.apply - : function ReflectApply(target, receiver, args) { - return Function.prototype.apply.call(target, receiver, args); - } - -var ReflectOwnKeys -if (R && typeof R.ownKeys === 'function') { - ReflectOwnKeys = R.ownKeys -} else if (Object.getOwnPropertySymbols) { - ReflectOwnKeys = function ReflectOwnKeys(target) { - return Object.getOwnPropertyNames(target) - .concat(Object.getOwnPropertySymbols(target)); - }; -} else { - ReflectOwnKeys = function ReflectOwnKeys(target) { - return Object.getOwnPropertyNames(target); - }; -} - -function ProcessEmitWarning(warning) { - if (console && console.warn) console.warn(warning); -} - -var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) { - return value !== value; -} - -function EventEmitter() { - EventEmitter.init.call(this); -} -module.exports = EventEmitter; - -// Backwards-compat with node 0.10.x -EventEmitter.EventEmitter = EventEmitter; - -EventEmitter.prototype._events = undefined; -EventEmitter.prototype._eventsCount = 0; -EventEmitter.prototype._maxListeners = undefined; - -// By default EventEmitters will print a warning if more than 10 listeners are -// added to it. This is a useful default which helps finding memory leaks. -var defaultMaxListeners = 10; - -Object.defineProperty(EventEmitter, 'defaultMaxListeners', { - enumerable: true, - get: function() { - return defaultMaxListeners; - }, - set: function(arg) { - if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) { - throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.'); - } - defaultMaxListeners = arg; - } -}); - -EventEmitter.init = function() { - - if (this._events === undefined || - this._events === Object.getPrototypeOf(this)._events) { - this._events = Object.create(null); - this._eventsCount = 0; - } - - this._maxListeners = this._maxListeners || undefined; -}; - -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. -EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) { - if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) { - throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.'); - } - this._maxListeners = n; - return this; -}; - -function $getMaxListeners(that) { - if (that._maxListeners === undefined) - return EventEmitter.defaultMaxListeners; - return that._maxListeners; -} - -EventEmitter.prototype.getMaxListeners = function getMaxListeners() { - return $getMaxListeners(this); -}; - -EventEmitter.prototype.emit = function emit(type) { - var args = []; - for (var i = 1; i < arguments.length; i++) args.push(arguments[i]); - var doError = (type === 'error'); - - var events = this._events; - if (events !== undefined) - doError = (doError && events.error === undefined); - else if (!doError) - return false; - - // If there is no 'error' event listener then throw. - if (doError) { - var er; - if (args.length > 0) - er = args[0]; - if (er instanceof Error) { - // Note: The comments on the `throw` lines are intentional, they show - // up in Node's output if this results in an unhandled exception. - throw er; // Unhandled 'error' event - } - // At least give some kind of context to the user - var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : '')); - err.context = er; - throw err; // Unhandled 'error' event - } - - var handler = events[type]; - - if (handler === undefined) - return false; - - if (typeof handler === 'function') { - ReflectApply(handler, this, args); - } else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - ReflectApply(listeners[i], this, args); - } - - return true; -}; - -function _addListener(target, type, listener, prepend) { - var m; - var events; - var existing; - - if (typeof listener !== 'function') { - throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener); - } - - events = target._events; - if (events === undefined) { - events = target._events = Object.create(null); - target._eventsCount = 0; - } else { - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (events.newListener !== undefined) { - target.emit('newListener', type, - listener.listener ? listener.listener : listener); - - // Re-assign `events` because a newListener handler could have caused the - // this._events to be assigned to a new object - events = target._events; - } - existing = events[type]; - } - - if (existing === undefined) { - // Optimize the case of one listener. Don't need the extra array object. - existing = events[type] = listener; - ++target._eventsCount; - } else { - if (typeof existing === 'function') { - // Adding the second element, need to change to array. - existing = events[type] = - prepend ? [listener, existing] : [existing, listener]; - // If we've already got an array, just append. - } else if (prepend) { - existing.unshift(listener); - } else { - existing.push(listener); - } - - // Check for listener leak - m = $getMaxListeners(target); - if (m > 0 && existing.length > m && !existing.warned) { - existing.warned = true; - // No error code for this since it is a Warning - // eslint-disable-next-line no-restricted-syntax - var w = new Error('Possible EventEmitter memory leak detected. ' + - existing.length + ' ' + String(type) + ' listeners ' + - 'added. Use emitter.setMaxListeners() to ' + - 'increase limit'); - w.name = 'MaxListenersExceededWarning'; - w.emitter = target; - w.type = type; - w.count = existing.length; - ProcessEmitWarning(w); - } - } - - return target; -} - -EventEmitter.prototype.addListener = function addListener(type, listener) { - return _addListener(this, type, listener, false); -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.prependListener = - function prependListener(type, listener) { - return _addListener(this, type, listener, true); - }; - -function onceWrapper() { - var args = []; - for (var i = 0; i < arguments.length; i++) args.push(arguments[i]); - if (!this.fired) { - this.target.removeListener(this.type, this.wrapFn); - this.fired = true; - ReflectApply(this.listener, this.target, args); - } -} - -function _onceWrap(target, type, listener) { - var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener }; - var wrapped = onceWrapper.bind(state); - wrapped.listener = listener; - state.wrapFn = wrapped; - return wrapped; -} - -EventEmitter.prototype.once = function once(type, listener) { - if (typeof listener !== 'function') { - throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener); - } - this.on(type, _onceWrap(this, type, listener)); - return this; -}; - -EventEmitter.prototype.prependOnceListener = - function prependOnceListener(type, listener) { - if (typeof listener !== 'function') { - throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener); - } - this.prependListener(type, _onceWrap(this, type, listener)); - return this; - }; - -// Emits a 'removeListener' event if and only if the listener was removed. -EventEmitter.prototype.removeListener = - function removeListener(type, listener) { - var list, events, position, i, originalListener; - - if (typeof listener !== 'function') { - throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener); - } - - events = this._events; - if (events === undefined) - return this; - - list = events[type]; - if (list === undefined) - return this; - - if (list === listener || list.listener === listener) { - if (--this._eventsCount === 0) - this._events = Object.create(null); - else { - delete events[type]; - if (events.removeListener) - this.emit('removeListener', type, list.listener || listener); - } - } else if (typeof list !== 'function') { - position = -1; - - for (i = list.length - 1; i >= 0; i--) { - if (list[i] === listener || list[i].listener === listener) { - originalListener = list[i].listener; - position = i; - break; - } - } - - if (position < 0) - return this; - - if (position === 0) - list.shift(); - else { - spliceOne(list, position); - } - - if (list.length === 1) - events[type] = list[0]; - - if (events.removeListener !== undefined) - this.emit('removeListener', type, originalListener || listener); - } - - return this; - }; - -EventEmitter.prototype.off = EventEmitter.prototype.removeListener; - -EventEmitter.prototype.removeAllListeners = - function removeAllListeners(type) { - var listeners, events, i; - - events = this._events; - if (events === undefined) - return this; - - // not listening for removeListener, no need to emit - if (events.removeListener === undefined) { - if (arguments.length === 0) { - this._events = Object.create(null); - this._eventsCount = 0; - } else if (events[type] !== undefined) { - if (--this._eventsCount === 0) - this._events = Object.create(null); - else - delete events[type]; - } - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - var keys = Object.keys(events); - var key; - for (i = 0; i < keys.length; ++i) { - key = keys[i]; - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = Object.create(null); - this._eventsCount = 0; - return this; - } - - listeners = events[type]; - - if (typeof listeners === 'function') { - this.removeListener(type, listeners); - } else if (listeners !== undefined) { - // LIFO order - for (i = listeners.length - 1; i >= 0; i--) { - this.removeListener(type, listeners[i]); - } - } - - return this; - }; - -function _listeners(target, type, unwrap) { - var events = target._events; - - if (events === undefined) - return []; - - var evlistener = events[type]; - if (evlistener === undefined) - return []; - - if (typeof evlistener === 'function') - return unwrap ? [evlistener.listener || evlistener] : [evlistener]; - - return unwrap ? - unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length); -} - -EventEmitter.prototype.listeners = function listeners(type) { - return _listeners(this, type, true); -}; - -EventEmitter.prototype.rawListeners = function rawListeners(type) { - return _listeners(this, type, false); -}; - -EventEmitter.listenerCount = function(emitter, type) { - if (typeof emitter.listenerCount === 'function') { - return emitter.listenerCount(type); - } else { - return listenerCount.call(emitter, type); - } -}; - -EventEmitter.prototype.listenerCount = listenerCount; -function listenerCount(type) { - var events = this._events; - - if (events !== undefined) { - var evlistener = events[type]; - - if (typeof evlistener === 'function') { - return 1; - } else if (evlistener !== undefined) { - return evlistener.length; - } - } - - return 0; -} - -EventEmitter.prototype.eventNames = function eventNames() { - return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : []; -}; - -function arrayClone(arr, n) { - var copy = new Array(n); - for (var i = 0; i < n; ++i) - copy[i] = arr[i]; - return copy; -} - -function spliceOne(list, index) { - for (; index + 1 < list.length; index++) - list[index] = list[index + 1]; - list.pop(); -} - -function unwrapListeners(arr) { - var ret = new Array(arr.length); - for (var i = 0; i < ret.length; ++i) { - ret[i] = arr[i].listener || arr[i]; - } - return ret; -} - - -/***/ }), - -/***/ "./node_modules/evp_bytestokey/index.js": -/*!**********************************************!*\ - !*** ./node_modules/evp_bytestokey/index.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -var MD5 = __webpack_require__(/*! md5.js */ "./node_modules/md5.js/index.js") - -/* eslint-disable camelcase */ -function EVP_BytesToKey (password, salt, keyBits, ivLen) { - if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary') - if (salt) { - if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary') - if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length') - } - - var keyLen = keyBits / 8 - var key = Buffer.alloc(keyLen) - var iv = Buffer.alloc(ivLen || 0) - var tmp = Buffer.alloc(0) - - while (keyLen > 0 || ivLen > 0) { - var hash = new MD5() - hash.update(tmp) - hash.update(password) - if (salt) hash.update(salt) - tmp = hash.digest() - - var used = 0 - - if (keyLen > 0) { - var keyStart = key.length - keyLen - used = Math.min(keyLen, tmp.length) - tmp.copy(key, keyStart, 0, used) - keyLen -= used - } - - if (used < tmp.length && ivLen > 0) { - var ivStart = iv.length - ivLen - var length = Math.min(ivLen, tmp.length - used) - tmp.copy(iv, ivStart, used, used + length) - ivLen -= length - } - } - - tmp.fill(0) - return { key: key, iv: iv } -} - -module.exports = EVP_BytesToKey - - -/***/ }), - -/***/ "./node_modules/hash-base/index.js": -/*!*****************************************!*\ - !*** ./node_modules/hash-base/index.js ***! - \*****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -var Transform = __webpack_require__(/*! stream */ "./node_modules/stream-browserify/index.js").Transform -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") - -function throwIfNotStringOrBuffer (val, prefix) { - if (!Buffer.isBuffer(val) && typeof val !== 'string') { - throw new TypeError(prefix + ' must be a string or a buffer') - } -} - -function HashBase (blockSize) { - Transform.call(this) - - this._block = Buffer.allocUnsafe(blockSize) - this._blockSize = blockSize - this._blockOffset = 0 - this._length = [0, 0, 0, 0] - - this._finalized = false -} - -inherits(HashBase, Transform) - -HashBase.prototype._transform = function (chunk, encoding, callback) { - var error = null - try { - this.update(chunk, encoding) - } catch (err) { - error = err - } - - callback(error) -} - -HashBase.prototype._flush = function (callback) { - var error = null - try { - this.push(this.digest()) - } catch (err) { - error = err - } - - callback(error) -} - -HashBase.prototype.update = function (data, encoding) { - throwIfNotStringOrBuffer(data, 'Data') - if (this._finalized) throw new Error('Digest already called') - if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding) - - // consume data - var block = this._block - var offset = 0 - while (this._blockOffset + data.length - offset >= this._blockSize) { - for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++] - this._update() - this._blockOffset = 0 - } - while (offset < data.length) block[this._blockOffset++] = data[offset++] - - // update length - for (var j = 0, carry = data.length * 8; carry > 0; ++j) { - this._length[j] += carry - carry = (this._length[j] / 0x0100000000) | 0 - if (carry > 0) this._length[j] -= 0x0100000000 * carry - } - - return this -} - -HashBase.prototype._update = function () { - throw new Error('_update is not implemented') -} - -HashBase.prototype.digest = function (encoding) { - if (this._finalized) throw new Error('Digest already called') - this._finalized = true - - var digest = this._digest() - if (encoding !== undefined) digest = digest.toString(encoding) - - // reset state - this._block.fill(0) - this._blockOffset = 0 - for (var i = 0; i < 4; ++i) this._length[i] = 0 - - return digest -} - -HashBase.prototype._digest = function () { - throw new Error('_digest is not implemented') -} - -module.exports = HashBase - - -/***/ }), - -/***/ "./node_modules/hash.js/lib/hash.js": -/*!******************************************!*\ - !*** ./node_modules/hash.js/lib/hash.js ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var hash = exports; - -hash.utils = __webpack_require__(/*! ./hash/utils */ "./node_modules/hash.js/lib/hash/utils.js"); -hash.common = __webpack_require__(/*! ./hash/common */ "./node_modules/hash.js/lib/hash/common.js"); -hash.sha = __webpack_require__(/*! ./hash/sha */ "./node_modules/hash.js/lib/hash/sha.js"); -hash.ripemd = __webpack_require__(/*! ./hash/ripemd */ "./node_modules/hash.js/lib/hash/ripemd.js"); -hash.hmac = __webpack_require__(/*! ./hash/hmac */ "./node_modules/hash.js/lib/hash/hmac.js"); - -// Proxy hash functions to the main object -hash.sha1 = hash.sha.sha1; -hash.sha256 = hash.sha.sha256; -hash.sha224 = hash.sha.sha224; -hash.sha384 = hash.sha.sha384; -hash.sha512 = hash.sha.sha512; -hash.ripemd160 = hash.ripemd.ripemd160; - - -/***/ }), - -/***/ "./node_modules/hash.js/lib/hash/common.js": -/*!*************************************************!*\ - !*** ./node_modules/hash.js/lib/hash/common.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ./utils */ "./node_modules/hash.js/lib/hash/utils.js"); -var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); - -function BlockHash() { - this.pending = null; - this.pendingTotal = 0; - this.blockSize = this.constructor.blockSize; - this.outSize = this.constructor.outSize; - this.hmacStrength = this.constructor.hmacStrength; - this.padLength = this.constructor.padLength / 8; - this.endian = 'big'; - - this._delta8 = this.blockSize / 8; - this._delta32 = this.blockSize / 32; -} -exports.BlockHash = BlockHash; - -BlockHash.prototype.update = function update(msg, enc) { - // Convert message to array, pad it, and join into 32bit blocks - msg = utils.toArray(msg, enc); - if (!this.pending) - this.pending = msg; - else - this.pending = this.pending.concat(msg); - this.pendingTotal += msg.length; - - // Enough data, try updating - if (this.pending.length >= this._delta8) { - msg = this.pending; - - // Process pending data in blocks - var r = msg.length % this._delta8; - this.pending = msg.slice(msg.length - r, msg.length); - if (this.pending.length === 0) - this.pending = null; - - msg = utils.join32(msg, 0, msg.length - r, this.endian); - for (var i = 0; i < msg.length; i += this._delta32) - this._update(msg, i, i + this._delta32); - } - - return this; -}; - -BlockHash.prototype.digest = function digest(enc) { - this.update(this._pad()); - assert(this.pending === null); - - return this._digest(enc); -}; - -BlockHash.prototype._pad = function pad() { - var len = this.pendingTotal; - var bytes = this._delta8; - var k = bytes - ((len + this.padLength) % bytes); - var res = new Array(k + this.padLength); - res[0] = 0x80; - for (var i = 1; i < k; i++) - res[i] = 0; - - // Append length - len <<= 3; - if (this.endian === 'big') { - for (var t = 8; t < this.padLength; t++) - res[i++] = 0; - - res[i++] = 0; - res[i++] = 0; - res[i++] = 0; - res[i++] = 0; - res[i++] = (len >>> 24) & 0xff; - res[i++] = (len >>> 16) & 0xff; - res[i++] = (len >>> 8) & 0xff; - res[i++] = len & 0xff; - } else { - res[i++] = len & 0xff; - res[i++] = (len >>> 8) & 0xff; - res[i++] = (len >>> 16) & 0xff; - res[i++] = (len >>> 24) & 0xff; - res[i++] = 0; - res[i++] = 0; - res[i++] = 0; - res[i++] = 0; - - for (t = 8; t < this.padLength; t++) - res[i++] = 0; - } - - return res; -}; - - -/***/ }), - -/***/ "./node_modules/hash.js/lib/hash/hmac.js": -/*!***********************************************!*\ - !*** ./node_modules/hash.js/lib/hash/hmac.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ./utils */ "./node_modules/hash.js/lib/hash/utils.js"); -var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); - -function Hmac(hash, key, enc) { - if (!(this instanceof Hmac)) - return new Hmac(hash, key, enc); - this.Hash = hash; - this.blockSize = hash.blockSize / 8; - this.outSize = hash.outSize / 8; - this.inner = null; - this.outer = null; - - this._init(utils.toArray(key, enc)); -} -module.exports = Hmac; - -Hmac.prototype._init = function init(key) { - // Shorten key, if needed - if (key.length > this.blockSize) - key = new this.Hash().update(key).digest(); - assert(key.length <= this.blockSize); - - // Add padding to key - for (var i = key.length; i < this.blockSize; i++) - key.push(0); - - for (i = 0; i < key.length; i++) - key[i] ^= 0x36; - this.inner = new this.Hash().update(key); - - // 0x36 ^ 0x5c = 0x6a - for (i = 0; i < key.length; i++) - key[i] ^= 0x6a; - this.outer = new this.Hash().update(key); -}; - -Hmac.prototype.update = function update(msg, enc) { - this.inner.update(msg, enc); - return this; -}; - -Hmac.prototype.digest = function digest(enc) { - this.outer.update(this.inner.digest()); - return this.outer.digest(enc); -}; - - -/***/ }), - -/***/ "./node_modules/hash.js/lib/hash/ripemd.js": -/*!*************************************************!*\ - !*** ./node_modules/hash.js/lib/hash/ripemd.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ./utils */ "./node_modules/hash.js/lib/hash/utils.js"); -var common = __webpack_require__(/*! ./common */ "./node_modules/hash.js/lib/hash/common.js"); - -var rotl32 = utils.rotl32; -var sum32 = utils.sum32; -var sum32_3 = utils.sum32_3; -var sum32_4 = utils.sum32_4; -var BlockHash = common.BlockHash; - -function RIPEMD160() { - if (!(this instanceof RIPEMD160)) - return new RIPEMD160(); - - BlockHash.call(this); - - this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ]; - this.endian = 'little'; -} -utils.inherits(RIPEMD160, BlockHash); -exports.ripemd160 = RIPEMD160; - -RIPEMD160.blockSize = 512; -RIPEMD160.outSize = 160; -RIPEMD160.hmacStrength = 192; -RIPEMD160.padLength = 64; - -RIPEMD160.prototype._update = function update(msg, start) { - var A = this.h[0]; - var B = this.h[1]; - var C = this.h[2]; - var D = this.h[3]; - var E = this.h[4]; - var Ah = A; - var Bh = B; - var Ch = C; - var Dh = D; - var Eh = E; - for (var j = 0; j < 80; j++) { - var T = sum32( - rotl32( - sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)), - s[j]), - E); - A = E; - E = D; - D = rotl32(C, 10); - C = B; - B = T; - T = sum32( - rotl32( - sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)), - sh[j]), - Eh); - Ah = Eh; - Eh = Dh; - Dh = rotl32(Ch, 10); - Ch = Bh; - Bh = T; - } - T = sum32_3(this.h[1], C, Dh); - this.h[1] = sum32_3(this.h[2], D, Eh); - this.h[2] = sum32_3(this.h[3], E, Ah); - this.h[3] = sum32_3(this.h[4], A, Bh); - this.h[4] = sum32_3(this.h[0], B, Ch); - this.h[0] = T; -}; - -RIPEMD160.prototype._digest = function digest(enc) { - if (enc === 'hex') - return utils.toHex32(this.h, 'little'); - else - return utils.split32(this.h, 'little'); -}; - -function f(j, x, y, z) { - if (j <= 15) - return x ^ y ^ z; - else if (j <= 31) - return (x & y) | ((~x) & z); - else if (j <= 47) - return (x | (~y)) ^ z; - else if (j <= 63) - return (x & z) | (y & (~z)); - else - return x ^ (y | (~z)); -} - -function K(j) { - if (j <= 15) - return 0x00000000; - else if (j <= 31) - return 0x5a827999; - else if (j <= 47) - return 0x6ed9eba1; - else if (j <= 63) - return 0x8f1bbcdc; - else - return 0xa953fd4e; -} - -function Kh(j) { - if (j <= 15) - return 0x50a28be6; - else if (j <= 31) - return 0x5c4dd124; - else if (j <= 47) - return 0x6d703ef3; - else if (j <= 63) - return 0x7a6d76e9; - else - return 0x00000000; -} - -var r = [ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, - 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, - 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, - 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 -]; - -var rh = [ - 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, - 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, - 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, - 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, - 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 -]; - -var s = [ - 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, - 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, - 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, - 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, - 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 -]; - -var sh = [ - 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, - 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, - 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, - 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, - 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 -]; - - -/***/ }), - -/***/ "./node_modules/hash.js/lib/hash/sha.js": -/*!**********************************************!*\ - !*** ./node_modules/hash.js/lib/hash/sha.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.sha1 = __webpack_require__(/*! ./sha/1 */ "./node_modules/hash.js/lib/hash/sha/1.js"); -exports.sha224 = __webpack_require__(/*! ./sha/224 */ "./node_modules/hash.js/lib/hash/sha/224.js"); -exports.sha256 = __webpack_require__(/*! ./sha/256 */ "./node_modules/hash.js/lib/hash/sha/256.js"); -exports.sha384 = __webpack_require__(/*! ./sha/384 */ "./node_modules/hash.js/lib/hash/sha/384.js"); -exports.sha512 = __webpack_require__(/*! ./sha/512 */ "./node_modules/hash.js/lib/hash/sha/512.js"); - - -/***/ }), - -/***/ "./node_modules/hash.js/lib/hash/sha/1.js": -/*!************************************************!*\ - !*** ./node_modules/hash.js/lib/hash/sha/1.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ../utils */ "./node_modules/hash.js/lib/hash/utils.js"); -var common = __webpack_require__(/*! ../common */ "./node_modules/hash.js/lib/hash/common.js"); -var shaCommon = __webpack_require__(/*! ./common */ "./node_modules/hash.js/lib/hash/sha/common.js"); - -var rotl32 = utils.rotl32; -var sum32 = utils.sum32; -var sum32_5 = utils.sum32_5; -var ft_1 = shaCommon.ft_1; -var BlockHash = common.BlockHash; - -var sha1_K = [ - 0x5A827999, 0x6ED9EBA1, - 0x8F1BBCDC, 0xCA62C1D6 -]; - -function SHA1() { - if (!(this instanceof SHA1)) - return new SHA1(); - - BlockHash.call(this); - this.h = [ - 0x67452301, 0xefcdab89, 0x98badcfe, - 0x10325476, 0xc3d2e1f0 ]; - this.W = new Array(80); -} - -utils.inherits(SHA1, BlockHash); -module.exports = SHA1; - -SHA1.blockSize = 512; -SHA1.outSize = 160; -SHA1.hmacStrength = 80; -SHA1.padLength = 64; - -SHA1.prototype._update = function _update(msg, start) { - var W = this.W; - - for (var i = 0; i < 16; i++) - W[i] = msg[start + i]; - - for(; i < W.length; i++) - W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1); - - var a = this.h[0]; - var b = this.h[1]; - var c = this.h[2]; - var d = this.h[3]; - var e = this.h[4]; - - for (i = 0; i < W.length; i++) { - var s = ~~(i / 20); - var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]); - e = d; - d = c; - c = rotl32(b, 30); - b = a; - a = t; - } - - this.h[0] = sum32(this.h[0], a); - this.h[1] = sum32(this.h[1], b); - this.h[2] = sum32(this.h[2], c); - this.h[3] = sum32(this.h[3], d); - this.h[4] = sum32(this.h[4], e); -}; - -SHA1.prototype._digest = function digest(enc) { - if (enc === 'hex') - return utils.toHex32(this.h, 'big'); - else - return utils.split32(this.h, 'big'); -}; - - -/***/ }), - -/***/ "./node_modules/hash.js/lib/hash/sha/224.js": -/*!**************************************************!*\ - !*** ./node_modules/hash.js/lib/hash/sha/224.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ../utils */ "./node_modules/hash.js/lib/hash/utils.js"); -var SHA256 = __webpack_require__(/*! ./256 */ "./node_modules/hash.js/lib/hash/sha/256.js"); - -function SHA224() { - if (!(this instanceof SHA224)) - return new SHA224(); - - SHA256.call(this); - this.h = [ - 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, - 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ]; -} -utils.inherits(SHA224, SHA256); -module.exports = SHA224; - -SHA224.blockSize = 512; -SHA224.outSize = 224; -SHA224.hmacStrength = 192; -SHA224.padLength = 64; - -SHA224.prototype._digest = function digest(enc) { - // Just truncate output - if (enc === 'hex') - return utils.toHex32(this.h.slice(0, 7), 'big'); - else - return utils.split32(this.h.slice(0, 7), 'big'); -}; - - - -/***/ }), - -/***/ "./node_modules/hash.js/lib/hash/sha/256.js": -/*!**************************************************!*\ - !*** ./node_modules/hash.js/lib/hash/sha/256.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ../utils */ "./node_modules/hash.js/lib/hash/utils.js"); -var common = __webpack_require__(/*! ../common */ "./node_modules/hash.js/lib/hash/common.js"); -var shaCommon = __webpack_require__(/*! ./common */ "./node_modules/hash.js/lib/hash/sha/common.js"); -var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); - -var sum32 = utils.sum32; -var sum32_4 = utils.sum32_4; -var sum32_5 = utils.sum32_5; -var ch32 = shaCommon.ch32; -var maj32 = shaCommon.maj32; -var s0_256 = shaCommon.s0_256; -var s1_256 = shaCommon.s1_256; -var g0_256 = shaCommon.g0_256; -var g1_256 = shaCommon.g1_256; - -var BlockHash = common.BlockHash; - -var sha256_K = [ - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, - 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, - 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, - 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, - 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, - 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, - 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, - 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, - 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 -]; - -function SHA256() { - if (!(this instanceof SHA256)) - return new SHA256(); - - BlockHash.call(this); - this.h = [ - 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, - 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 - ]; - this.k = sha256_K; - this.W = new Array(64); -} -utils.inherits(SHA256, BlockHash); -module.exports = SHA256; - -SHA256.blockSize = 512; -SHA256.outSize = 256; -SHA256.hmacStrength = 192; -SHA256.padLength = 64; - -SHA256.prototype._update = function _update(msg, start) { - var W = this.W; - - for (var i = 0; i < 16; i++) - W[i] = msg[start + i]; - for (; i < W.length; i++) - W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]); - - var a = this.h[0]; - var b = this.h[1]; - var c = this.h[2]; - var d = this.h[3]; - var e = this.h[4]; - var f = this.h[5]; - var g = this.h[6]; - var h = this.h[7]; - - assert(this.k.length === W.length); - for (i = 0; i < W.length; i++) { - var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]); - var T2 = sum32(s0_256(a), maj32(a, b, c)); - h = g; - g = f; - f = e; - e = sum32(d, T1); - d = c; - c = b; - b = a; - a = sum32(T1, T2); - } - - this.h[0] = sum32(this.h[0], a); - this.h[1] = sum32(this.h[1], b); - this.h[2] = sum32(this.h[2], c); - this.h[3] = sum32(this.h[3], d); - this.h[4] = sum32(this.h[4], e); - this.h[5] = sum32(this.h[5], f); - this.h[6] = sum32(this.h[6], g); - this.h[7] = sum32(this.h[7], h); -}; - -SHA256.prototype._digest = function digest(enc) { - if (enc === 'hex') - return utils.toHex32(this.h, 'big'); - else - return utils.split32(this.h, 'big'); -}; - - -/***/ }), - -/***/ "./node_modules/hash.js/lib/hash/sha/384.js": -/*!**************************************************!*\ - !*** ./node_modules/hash.js/lib/hash/sha/384.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ../utils */ "./node_modules/hash.js/lib/hash/utils.js"); - -var SHA512 = __webpack_require__(/*! ./512 */ "./node_modules/hash.js/lib/hash/sha/512.js"); - -function SHA384() { - if (!(this instanceof SHA384)) - return new SHA384(); - - SHA512.call(this); - this.h = [ - 0xcbbb9d5d, 0xc1059ed8, - 0x629a292a, 0x367cd507, - 0x9159015a, 0x3070dd17, - 0x152fecd8, 0xf70e5939, - 0x67332667, 0xffc00b31, - 0x8eb44a87, 0x68581511, - 0xdb0c2e0d, 0x64f98fa7, - 0x47b5481d, 0xbefa4fa4 ]; -} -utils.inherits(SHA384, SHA512); -module.exports = SHA384; - -SHA384.blockSize = 1024; -SHA384.outSize = 384; -SHA384.hmacStrength = 192; -SHA384.padLength = 128; - -SHA384.prototype._digest = function digest(enc) { - if (enc === 'hex') - return utils.toHex32(this.h.slice(0, 12), 'big'); - else - return utils.split32(this.h.slice(0, 12), 'big'); -}; - - -/***/ }), - -/***/ "./node_modules/hash.js/lib/hash/sha/512.js": -/*!**************************************************!*\ - !*** ./node_modules/hash.js/lib/hash/sha/512.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ../utils */ "./node_modules/hash.js/lib/hash/utils.js"); -var common = __webpack_require__(/*! ../common */ "./node_modules/hash.js/lib/hash/common.js"); -var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); - -var rotr64_hi = utils.rotr64_hi; -var rotr64_lo = utils.rotr64_lo; -var shr64_hi = utils.shr64_hi; -var shr64_lo = utils.shr64_lo; -var sum64 = utils.sum64; -var sum64_hi = utils.sum64_hi; -var sum64_lo = utils.sum64_lo; -var sum64_4_hi = utils.sum64_4_hi; -var sum64_4_lo = utils.sum64_4_lo; -var sum64_5_hi = utils.sum64_5_hi; -var sum64_5_lo = utils.sum64_5_lo; - -var BlockHash = common.BlockHash; - -var sha512_K = [ - 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, - 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, - 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, - 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, - 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, - 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, - 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, - 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, - 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, - 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, - 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, - 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, - 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, - 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, - 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, - 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, - 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, - 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, - 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, - 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, - 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, - 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, - 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, - 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, - 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, - 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, - 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, - 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, - 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, - 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, - 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, - 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, - 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, - 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, - 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, - 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, - 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, - 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, - 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, - 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817 -]; - -function SHA512() { - if (!(this instanceof SHA512)) - return new SHA512(); - - BlockHash.call(this); - this.h = [ - 0x6a09e667, 0xf3bcc908, - 0xbb67ae85, 0x84caa73b, - 0x3c6ef372, 0xfe94f82b, - 0xa54ff53a, 0x5f1d36f1, - 0x510e527f, 0xade682d1, - 0x9b05688c, 0x2b3e6c1f, - 0x1f83d9ab, 0xfb41bd6b, - 0x5be0cd19, 0x137e2179 ]; - this.k = sha512_K; - this.W = new Array(160); -} -utils.inherits(SHA512, BlockHash); -module.exports = SHA512; - -SHA512.blockSize = 1024; -SHA512.outSize = 512; -SHA512.hmacStrength = 192; -SHA512.padLength = 128; - -SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) { - var W = this.W; - - // 32 x 32bit words - for (var i = 0; i < 32; i++) - W[i] = msg[start + i]; - for (; i < W.length; i += 2) { - var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2 - var c0_lo = g1_512_lo(W[i - 4], W[i - 3]); - var c1_hi = W[i - 14]; // i - 7 - var c1_lo = W[i - 13]; - var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15 - var c2_lo = g0_512_lo(W[i - 30], W[i - 29]); - var c3_hi = W[i - 32]; // i - 16 - var c3_lo = W[i - 31]; - - W[i] = sum64_4_hi( - c0_hi, c0_lo, - c1_hi, c1_lo, - c2_hi, c2_lo, - c3_hi, c3_lo); - W[i + 1] = sum64_4_lo( - c0_hi, c0_lo, - c1_hi, c1_lo, - c2_hi, c2_lo, - c3_hi, c3_lo); - } -}; - -SHA512.prototype._update = function _update(msg, start) { - this._prepareBlock(msg, start); - - var W = this.W; - - var ah = this.h[0]; - var al = this.h[1]; - var bh = this.h[2]; - var bl = this.h[3]; - var ch = this.h[4]; - var cl = this.h[5]; - var dh = this.h[6]; - var dl = this.h[7]; - var eh = this.h[8]; - var el = this.h[9]; - var fh = this.h[10]; - var fl = this.h[11]; - var gh = this.h[12]; - var gl = this.h[13]; - var hh = this.h[14]; - var hl = this.h[15]; - - assert(this.k.length === W.length); - for (var i = 0; i < W.length; i += 2) { - var c0_hi = hh; - var c0_lo = hl; - var c1_hi = s1_512_hi(eh, el); - var c1_lo = s1_512_lo(eh, el); - var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl); - var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl); - var c3_hi = this.k[i]; - var c3_lo = this.k[i + 1]; - var c4_hi = W[i]; - var c4_lo = W[i + 1]; - - var T1_hi = sum64_5_hi( - c0_hi, c0_lo, - c1_hi, c1_lo, - c2_hi, c2_lo, - c3_hi, c3_lo, - c4_hi, c4_lo); - var T1_lo = sum64_5_lo( - c0_hi, c0_lo, - c1_hi, c1_lo, - c2_hi, c2_lo, - c3_hi, c3_lo, - c4_hi, c4_lo); - - c0_hi = s0_512_hi(ah, al); - c0_lo = s0_512_lo(ah, al); - c1_hi = maj64_hi(ah, al, bh, bl, ch, cl); - c1_lo = maj64_lo(ah, al, bh, bl, ch, cl); - - var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo); - var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo); - - hh = gh; - hl = gl; - - gh = fh; - gl = fl; - - fh = eh; - fl = el; - - eh = sum64_hi(dh, dl, T1_hi, T1_lo); - el = sum64_lo(dl, dl, T1_hi, T1_lo); - - dh = ch; - dl = cl; - - ch = bh; - cl = bl; - - bh = ah; - bl = al; - - ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo); - al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo); - } - - sum64(this.h, 0, ah, al); - sum64(this.h, 2, bh, bl); - sum64(this.h, 4, ch, cl); - sum64(this.h, 6, dh, dl); - sum64(this.h, 8, eh, el); - sum64(this.h, 10, fh, fl); - sum64(this.h, 12, gh, gl); - sum64(this.h, 14, hh, hl); -}; - -SHA512.prototype._digest = function digest(enc) { - if (enc === 'hex') - return utils.toHex32(this.h, 'big'); - else - return utils.split32(this.h, 'big'); -}; - -function ch64_hi(xh, xl, yh, yl, zh) { - var r = (xh & yh) ^ ((~xh) & zh); - if (r < 0) - r += 0x100000000; - return r; -} - -function ch64_lo(xh, xl, yh, yl, zh, zl) { - var r = (xl & yl) ^ ((~xl) & zl); - if (r < 0) - r += 0x100000000; - return r; -} - -function maj64_hi(xh, xl, yh, yl, zh) { - var r = (xh & yh) ^ (xh & zh) ^ (yh & zh); - if (r < 0) - r += 0x100000000; - return r; -} - -function maj64_lo(xh, xl, yh, yl, zh, zl) { - var r = (xl & yl) ^ (xl & zl) ^ (yl & zl); - if (r < 0) - r += 0x100000000; - return r; -} - -function s0_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 28); - var c1_hi = rotr64_hi(xl, xh, 2); // 34 - var c2_hi = rotr64_hi(xl, xh, 7); // 39 - - var r = c0_hi ^ c1_hi ^ c2_hi; - if (r < 0) - r += 0x100000000; - return r; -} - -function s0_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 28); - var c1_lo = rotr64_lo(xl, xh, 2); // 34 - var c2_lo = rotr64_lo(xl, xh, 7); // 39 - - var r = c0_lo ^ c1_lo ^ c2_lo; - if (r < 0) - r += 0x100000000; - return r; -} - -function s1_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 14); - var c1_hi = rotr64_hi(xh, xl, 18); - var c2_hi = rotr64_hi(xl, xh, 9); // 41 - - var r = c0_hi ^ c1_hi ^ c2_hi; - if (r < 0) - r += 0x100000000; - return r; -} - -function s1_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 14); - var c1_lo = rotr64_lo(xh, xl, 18); - var c2_lo = rotr64_lo(xl, xh, 9); // 41 - - var r = c0_lo ^ c1_lo ^ c2_lo; - if (r < 0) - r += 0x100000000; - return r; -} - -function g0_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 1); - var c1_hi = rotr64_hi(xh, xl, 8); - var c2_hi = shr64_hi(xh, xl, 7); - - var r = c0_hi ^ c1_hi ^ c2_hi; - if (r < 0) - r += 0x100000000; - return r; -} - -function g0_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 1); - var c1_lo = rotr64_lo(xh, xl, 8); - var c2_lo = shr64_lo(xh, xl, 7); - - var r = c0_lo ^ c1_lo ^ c2_lo; - if (r < 0) - r += 0x100000000; - return r; -} - -function g1_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 19); - var c1_hi = rotr64_hi(xl, xh, 29); // 61 - var c2_hi = shr64_hi(xh, xl, 6); - - var r = c0_hi ^ c1_hi ^ c2_hi; - if (r < 0) - r += 0x100000000; - return r; -} - -function g1_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 19); - var c1_lo = rotr64_lo(xl, xh, 29); // 61 - var c2_lo = shr64_lo(xh, xl, 6); - - var r = c0_lo ^ c1_lo ^ c2_lo; - if (r < 0) - r += 0x100000000; - return r; -} - - -/***/ }), - -/***/ "./node_modules/hash.js/lib/hash/sha/common.js": -/*!*****************************************************!*\ - !*** ./node_modules/hash.js/lib/hash/sha/common.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ../utils */ "./node_modules/hash.js/lib/hash/utils.js"); -var rotr32 = utils.rotr32; - -function ft_1(s, x, y, z) { - if (s === 0) - return ch32(x, y, z); - if (s === 1 || s === 3) - return p32(x, y, z); - if (s === 2) - return maj32(x, y, z); -} -exports.ft_1 = ft_1; - -function ch32(x, y, z) { - return (x & y) ^ ((~x) & z); -} -exports.ch32 = ch32; - -function maj32(x, y, z) { - return (x & y) ^ (x & z) ^ (y & z); -} -exports.maj32 = maj32; - -function p32(x, y, z) { - return x ^ y ^ z; -} -exports.p32 = p32; - -function s0_256(x) { - return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22); -} -exports.s0_256 = s0_256; - -function s1_256(x) { - return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25); -} -exports.s1_256 = s1_256; - -function g0_256(x) { - return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3); -} -exports.g0_256 = g0_256; - -function g1_256(x) { - return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10); -} -exports.g1_256 = g1_256; - - -/***/ }), - -/***/ "./node_modules/hash.js/lib/hash/utils.js": -/*!************************************************!*\ - !*** ./node_modules/hash.js/lib/hash/utils.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); - -exports.inherits = inherits; - -function isSurrogatePair(msg, i) { - if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) { - return false; - } - if (i < 0 || i + 1 >= msg.length) { - return false; - } - return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00; -} - -function toArray(msg, enc) { - if (Array.isArray(msg)) - return msg.slice(); - if (!msg) - return []; - var res = []; - if (typeof msg === 'string') { - if (!enc) { - // Inspired by stringToUtf8ByteArray() in closure-library by Google - // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143 - // Apache License 2.0 - // https://github.com/google/closure-library/blob/master/LICENSE - var p = 0; - for (var i = 0; i < msg.length; i++) { - var c = msg.charCodeAt(i); - if (c < 128) { - res[p++] = c; - } else if (c < 2048) { - res[p++] = (c >> 6) | 192; - res[p++] = (c & 63) | 128; - } else if (isSurrogatePair(msg, i)) { - c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF); - res[p++] = (c >> 18) | 240; - res[p++] = ((c >> 12) & 63) | 128; - res[p++] = ((c >> 6) & 63) | 128; - res[p++] = (c & 63) | 128; - } else { - res[p++] = (c >> 12) | 224; - res[p++] = ((c >> 6) & 63) | 128; - res[p++] = (c & 63) | 128; - } - } - } else if (enc === 'hex') { - msg = msg.replace(/[^a-z0-9]+/ig, ''); - if (msg.length % 2 !== 0) - msg = '0' + msg; - for (i = 0; i < msg.length; i += 2) - res.push(parseInt(msg[i] + msg[i + 1], 16)); - } - } else { - for (i = 0; i < msg.length; i++) - res[i] = msg[i] | 0; - } - return res; -} -exports.toArray = toArray; - -function toHex(msg) { - var res = ''; - for (var i = 0; i < msg.length; i++) - res += zero2(msg[i].toString(16)); - return res; -} -exports.toHex = toHex; - -function htonl(w) { - var res = (w >>> 24) | - ((w >>> 8) & 0xff00) | - ((w << 8) & 0xff0000) | - ((w & 0xff) << 24); - return res >>> 0; -} -exports.htonl = htonl; - -function toHex32(msg, endian) { - var res = ''; - for (var i = 0; i < msg.length; i++) { - var w = msg[i]; - if (endian === 'little') - w = htonl(w); - res += zero8(w.toString(16)); - } - return res; -} -exports.toHex32 = toHex32; - -function zero2(word) { - if (word.length === 1) - return '0' + word; - else - return word; -} -exports.zero2 = zero2; - -function zero8(word) { - if (word.length === 7) - return '0' + word; - else if (word.length === 6) - return '00' + word; - else if (word.length === 5) - return '000' + word; - else if (word.length === 4) - return '0000' + word; - else if (word.length === 3) - return '00000' + word; - else if (word.length === 2) - return '000000' + word; - else if (word.length === 1) - return '0000000' + word; - else - return word; -} -exports.zero8 = zero8; - -function join32(msg, start, end, endian) { - var len = end - start; - assert(len % 4 === 0); - var res = new Array(len / 4); - for (var i = 0, k = start; i < res.length; i++, k += 4) { - var w; - if (endian === 'big') - w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3]; - else - w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k]; - res[i] = w >>> 0; - } - return res; -} -exports.join32 = join32; - -function split32(msg, endian) { - var res = new Array(msg.length * 4); - for (var i = 0, k = 0; i < msg.length; i++, k += 4) { - var m = msg[i]; - if (endian === 'big') { - res[k] = m >>> 24; - res[k + 1] = (m >>> 16) & 0xff; - res[k + 2] = (m >>> 8) & 0xff; - res[k + 3] = m & 0xff; - } else { - res[k + 3] = m >>> 24; - res[k + 2] = (m >>> 16) & 0xff; - res[k + 1] = (m >>> 8) & 0xff; - res[k] = m & 0xff; - } - } - return res; -} -exports.split32 = split32; - -function rotr32(w, b) { - return (w >>> b) | (w << (32 - b)); -} -exports.rotr32 = rotr32; - -function rotl32(w, b) { - return (w << b) | (w >>> (32 - b)); -} -exports.rotl32 = rotl32; - -function sum32(a, b) { - return (a + b) >>> 0; -} -exports.sum32 = sum32; - -function sum32_3(a, b, c) { - return (a + b + c) >>> 0; -} -exports.sum32_3 = sum32_3; - -function sum32_4(a, b, c, d) { - return (a + b + c + d) >>> 0; -} -exports.sum32_4 = sum32_4; - -function sum32_5(a, b, c, d, e) { - return (a + b + c + d + e) >>> 0; -} -exports.sum32_5 = sum32_5; - -function sum64(buf, pos, ah, al) { - var bh = buf[pos]; - var bl = buf[pos + 1]; - - var lo = (al + bl) >>> 0; - var hi = (lo < al ? 1 : 0) + ah + bh; - buf[pos] = hi >>> 0; - buf[pos + 1] = lo; -} -exports.sum64 = sum64; - -function sum64_hi(ah, al, bh, bl) { - var lo = (al + bl) >>> 0; - var hi = (lo < al ? 1 : 0) + ah + bh; - return hi >>> 0; -} -exports.sum64_hi = sum64_hi; - -function sum64_lo(ah, al, bh, bl) { - var lo = al + bl; - return lo >>> 0; -} -exports.sum64_lo = sum64_lo; - -function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) { - var carry = 0; - var lo = al; - lo = (lo + bl) >>> 0; - carry += lo < al ? 1 : 0; - lo = (lo + cl) >>> 0; - carry += lo < cl ? 1 : 0; - lo = (lo + dl) >>> 0; - carry += lo < dl ? 1 : 0; - - var hi = ah + bh + ch + dh + carry; - return hi >>> 0; -} -exports.sum64_4_hi = sum64_4_hi; - -function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) { - var lo = al + bl + cl + dl; - return lo >>> 0; -} -exports.sum64_4_lo = sum64_4_lo; - -function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { - var carry = 0; - var lo = al; - lo = (lo + bl) >>> 0; - carry += lo < al ? 1 : 0; - lo = (lo + cl) >>> 0; - carry += lo < cl ? 1 : 0; - lo = (lo + dl) >>> 0; - carry += lo < dl ? 1 : 0; - lo = (lo + el) >>> 0; - carry += lo < el ? 1 : 0; - - var hi = ah + bh + ch + dh + eh + carry; - return hi >>> 0; -} -exports.sum64_5_hi = sum64_5_hi; - -function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { - var lo = al + bl + cl + dl + el; - - return lo >>> 0; -} -exports.sum64_5_lo = sum64_5_lo; - -function rotr64_hi(ah, al, num) { - var r = (al << (32 - num)) | (ah >>> num); - return r >>> 0; -} -exports.rotr64_hi = rotr64_hi; - -function rotr64_lo(ah, al, num) { - var r = (ah << (32 - num)) | (al >>> num); - return r >>> 0; -} -exports.rotr64_lo = rotr64_lo; - -function shr64_hi(ah, al, num) { - return ah >>> num; -} -exports.shr64_hi = shr64_hi; - -function shr64_lo(ah, al, num) { - var r = (ah << (32 - num)) | (al >>> num); - return r >>> 0; -} -exports.shr64_lo = shr64_lo; - - -/***/ }), - -/***/ "./node_modules/hmac-drbg/lib/hmac-drbg.js": -/*!*************************************************!*\ - !*** ./node_modules/hmac-drbg/lib/hmac-drbg.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var hash = __webpack_require__(/*! hash.js */ "./node_modules/hash.js/lib/hash.js"); -var utils = __webpack_require__(/*! minimalistic-crypto-utils */ "./node_modules/minimalistic-crypto-utils/lib/utils.js"); -var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); - -function HmacDRBG(options) { - if (!(this instanceof HmacDRBG)) - return new HmacDRBG(options); - this.hash = options.hash; - this.predResist = !!options.predResist; - - this.outLen = this.hash.outSize; - this.minEntropy = options.minEntropy || this.hash.hmacStrength; - - this._reseed = null; - this.reseedInterval = null; - this.K = null; - this.V = null; - - var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex'); - var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex'); - var pers = utils.toArray(options.pers, options.persEnc || 'hex'); - assert(entropy.length >= (this.minEntropy / 8), - 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits'); - this._init(entropy, nonce, pers); -} -module.exports = HmacDRBG; - -HmacDRBG.prototype._init = function init(entropy, nonce, pers) { - var seed = entropy.concat(nonce).concat(pers); - - this.K = new Array(this.outLen / 8); - this.V = new Array(this.outLen / 8); - for (var i = 0; i < this.V.length; i++) { - this.K[i] = 0x00; - this.V[i] = 0x01; - } - - this._update(seed); - this._reseed = 1; - this.reseedInterval = 0x1000000000000; // 2^48 -}; - -HmacDRBG.prototype._hmac = function hmac() { - return new hash.hmac(this.hash, this.K); -}; - -HmacDRBG.prototype._update = function update(seed) { - var kmac = this._hmac() - .update(this.V) - .update([ 0x00 ]); - if (seed) - kmac = kmac.update(seed); - this.K = kmac.digest(); - this.V = this._hmac().update(this.V).digest(); - if (!seed) - return; - - this.K = this._hmac() - .update(this.V) - .update([ 0x01 ]) - .update(seed) - .digest(); - this.V = this._hmac().update(this.V).digest(); -}; - -HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) { - // Optional entropy enc - if (typeof entropyEnc !== 'string') { - addEnc = add; - add = entropyEnc; - entropyEnc = null; - } - - entropy = utils.toArray(entropy, entropyEnc); - add = utils.toArray(add, addEnc); - - assert(entropy.length >= (this.minEntropy / 8), - 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits'); - - this._update(entropy.concat(add || [])); - this._reseed = 1; -}; - -HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) { - if (this._reseed > this.reseedInterval) - throw new Error('Reseed is required'); - - // Optional encoding - if (typeof enc !== 'string') { - addEnc = add; - add = enc; - enc = null; - } - - // Optional additional data - if (add) { - add = utils.toArray(add, addEnc || 'hex'); - this._update(add); - } - - var temp = []; - while (temp.length < len) { - this.V = this._hmac().update(this.V).digest(); - temp = temp.concat(this.V); - } - - var res = temp.slice(0, len); - this._update(add); - this._reseed++; - return utils.encode(res, enc); -}; - - -/***/ }), - -/***/ "./node_modules/indexof/index.js": -/*!***************************************!*\ - !*** ./node_modules/indexof/index.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - - -var indexOf = [].indexOf; - -module.exports = function(arr, obj){ - if (indexOf) return arr.indexOf(obj); - for (var i = 0; i < arr.length; ++i) { - if (arr[i] === obj) return i; - } - return -1; -}; - -/***/ }), - -/***/ "./node_modules/inherits/inherits_browser.js": -/*!***************************************************!*\ - !*** ./node_modules/inherits/inherits_browser.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} - - -/***/ }), - -/***/ "./node_modules/isarray/index.js": -/*!***************************************!*\ - !*** ./node_modules/isarray/index.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; -}; - - -/***/ }), - -/***/ "./node_modules/md5.js/index.js": -/*!**************************************!*\ - !*** ./node_modules/md5.js/index.js ***! - \**************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") -var HashBase = __webpack_require__(/*! hash-base */ "./node_modules/hash-base/index.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer - -var ARRAY16 = new Array(16) - -function MD5 () { - HashBase.call(this, 64) - - // state - this._a = 0x67452301 - this._b = 0xefcdab89 - this._c = 0x98badcfe - this._d = 0x10325476 -} - -inherits(MD5, HashBase) - -MD5.prototype._update = function () { - var M = ARRAY16 - for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4) - - var a = this._a - var b = this._b - var c = this._c - var d = this._d - - a = fnF(a, b, c, d, M[0], 0xd76aa478, 7) - d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12) - c = fnF(c, d, a, b, M[2], 0x242070db, 17) - b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22) - a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7) - d = fnF(d, a, b, c, M[5], 0x4787c62a, 12) - c = fnF(c, d, a, b, M[6], 0xa8304613, 17) - b = fnF(b, c, d, a, M[7], 0xfd469501, 22) - a = fnF(a, b, c, d, M[8], 0x698098d8, 7) - d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12) - c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17) - b = fnF(b, c, d, a, M[11], 0x895cd7be, 22) - a = fnF(a, b, c, d, M[12], 0x6b901122, 7) - d = fnF(d, a, b, c, M[13], 0xfd987193, 12) - c = fnF(c, d, a, b, M[14], 0xa679438e, 17) - b = fnF(b, c, d, a, M[15], 0x49b40821, 22) - - a = fnG(a, b, c, d, M[1], 0xf61e2562, 5) - d = fnG(d, a, b, c, M[6], 0xc040b340, 9) - c = fnG(c, d, a, b, M[11], 0x265e5a51, 14) - b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20) - a = fnG(a, b, c, d, M[5], 0xd62f105d, 5) - d = fnG(d, a, b, c, M[10], 0x02441453, 9) - c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14) - b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20) - a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5) - d = fnG(d, a, b, c, M[14], 0xc33707d6, 9) - c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14) - b = fnG(b, c, d, a, M[8], 0x455a14ed, 20) - a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5) - d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9) - c = fnG(c, d, a, b, M[7], 0x676f02d9, 14) - b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20) - - a = fnH(a, b, c, d, M[5], 0xfffa3942, 4) - d = fnH(d, a, b, c, M[8], 0x8771f681, 11) - c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16) - b = fnH(b, c, d, a, M[14], 0xfde5380c, 23) - a = fnH(a, b, c, d, M[1], 0xa4beea44, 4) - d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11) - c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16) - b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23) - a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4) - d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11) - c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16) - b = fnH(b, c, d, a, M[6], 0x04881d05, 23) - a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4) - d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11) - c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16) - b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23) - - a = fnI(a, b, c, d, M[0], 0xf4292244, 6) - d = fnI(d, a, b, c, M[7], 0x432aff97, 10) - c = fnI(c, d, a, b, M[14], 0xab9423a7, 15) - b = fnI(b, c, d, a, M[5], 0xfc93a039, 21) - a = fnI(a, b, c, d, M[12], 0x655b59c3, 6) - d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10) - c = fnI(c, d, a, b, M[10], 0xffeff47d, 15) - b = fnI(b, c, d, a, M[1], 0x85845dd1, 21) - a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6) - d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10) - c = fnI(c, d, a, b, M[6], 0xa3014314, 15) - b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21) - a = fnI(a, b, c, d, M[4], 0xf7537e82, 6) - d = fnI(d, a, b, c, M[11], 0xbd3af235, 10) - c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15) - b = fnI(b, c, d, a, M[9], 0xeb86d391, 21) - - this._a = (this._a + a) | 0 - this._b = (this._b + b) | 0 - this._c = (this._c + c) | 0 - this._d = (this._d + d) | 0 -} - -MD5.prototype._digest = function () { - // create padding and handle blocks - this._block[this._blockOffset++] = 0x80 - if (this._blockOffset > 56) { - this._block.fill(0, this._blockOffset, 64) - this._update() - this._blockOffset = 0 - } - - this._block.fill(0, this._blockOffset, 56) - this._block.writeUInt32LE(this._length[0], 56) - this._block.writeUInt32LE(this._length[1], 60) - this._update() - - // produce result - var buffer = Buffer.allocUnsafe(16) - buffer.writeInt32LE(this._a, 0) - buffer.writeInt32LE(this._b, 4) - buffer.writeInt32LE(this._c, 8) - buffer.writeInt32LE(this._d, 12) - return buffer -} - -function rotl (x, n) { - return (x << n) | (x >>> (32 - n)) -} - -function fnF (a, b, c, d, m, k, s) { - return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0 -} - -function fnG (a, b, c, d, m, k, s) { - return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0 -} - -function fnH (a, b, c, d, m, k, s) { - return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0 -} - -function fnI (a, b, c, d, m, k, s) { - return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0 -} - -module.exports = MD5 - - -/***/ }), - -/***/ "./node_modules/miller-rabin/lib/mr.js": -/*!*********************************************!*\ - !*** ./node_modules/miller-rabin/lib/mr.js ***! - \*********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var bn = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); -var brorand = __webpack_require__(/*! brorand */ "./node_modules/brorand/index.js"); - -function MillerRabin(rand) { - this.rand = rand || new brorand.Rand(); -} -module.exports = MillerRabin; - -MillerRabin.create = function create(rand) { - return new MillerRabin(rand); -}; - -MillerRabin.prototype._randbelow = function _randbelow(n) { - var len = n.bitLength(); - var min_bytes = Math.ceil(len / 8); - - // Generage random bytes until a number less than n is found. - // This ensures that 0..n-1 have an equal probability of being selected. - do - var a = new bn(this.rand.generate(min_bytes)); - while (a.cmp(n) >= 0); - - return a; -}; - -MillerRabin.prototype._randrange = function _randrange(start, stop) { - // Generate a random number greater than or equal to start and less than stop. - var size = stop.sub(start); - return start.add(this._randbelow(size)); -}; - -MillerRabin.prototype.test = function test(n, k, cb) { - var len = n.bitLength(); - var red = bn.mont(n); - var rone = new bn(1).toRed(red); - - if (!k) - k = Math.max(1, (len / 48) | 0); - - // Find d and s, (n - 1) = (2 ^ s) * d; - var n1 = n.subn(1); - for (var s = 0; !n1.testn(s); s++) {} - var d = n.shrn(s); - - var rn1 = n1.toRed(red); - - var prime = true; - for (; k > 0; k--) { - var a = this._randrange(new bn(2), n1); - if (cb) - cb(a); - - var x = a.toRed(red).redPow(d); - if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) - continue; - - for (var i = 1; i < s; i++) { - x = x.redSqr(); - - if (x.cmp(rone) === 0) - return false; - if (x.cmp(rn1) === 0) - break; - } - - if (i === s) - return false; - } - - return prime; -}; - -MillerRabin.prototype.getDivisor = function getDivisor(n, k) { - var len = n.bitLength(); - var red = bn.mont(n); - var rone = new bn(1).toRed(red); - - if (!k) - k = Math.max(1, (len / 48) | 0); - - // Find d and s, (n - 1) = (2 ^ s) * d; - var n1 = n.subn(1); - for (var s = 0; !n1.testn(s); s++) {} - var d = n.shrn(s); - - var rn1 = n1.toRed(red); - - for (; k > 0; k--) { - var a = this._randrange(new bn(2), n1); - - var g = n.gcd(a); - if (g.cmpn(1) !== 0) - return g; - - var x = a.toRed(red).redPow(d); - if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) - continue; - - for (var i = 1; i < s; i++) { - x = x.redSqr(); - - if (x.cmp(rone) === 0) - return x.fromRed().subn(1).gcd(n); - if (x.cmp(rn1) === 0) - break; - } - - if (i === s) { - x = x.redSqr(); - return x.fromRed().subn(1).gcd(n); - } - } - - return false; -}; - - -/***/ }), - -/***/ "./node_modules/minimalistic-assert/index.js": -/*!***************************************************!*\ - !*** ./node_modules/minimalistic-assert/index.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = assert; - -function assert(val, msg) { - if (!val) - throw new Error(msg || 'Assertion failed'); -} - -assert.equal = function assertEqual(l, r, msg) { - if (l != r) - throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r)); -}; - - -/***/ }), - -/***/ "./node_modules/minimalistic-crypto-utils/lib/utils.js": -/*!*************************************************************!*\ - !*** ./node_modules/minimalistic-crypto-utils/lib/utils.js ***! - \*************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = exports; - -function toArray(msg, enc) { - if (Array.isArray(msg)) - return msg.slice(); - if (!msg) - return []; - var res = []; - if (typeof msg !== 'string') { - for (var i = 0; i < msg.length; i++) - res[i] = msg[i] | 0; - return res; - } - if (enc === 'hex') { - msg = msg.replace(/[^a-z0-9]+/ig, ''); - if (msg.length % 2 !== 0) - msg = '0' + msg; - for (var i = 0; i < msg.length; i += 2) - res.push(parseInt(msg[i] + msg[i + 1], 16)); - } else { - for (var i = 0; i < msg.length; i++) { - var c = msg.charCodeAt(i); - var hi = c >> 8; - var lo = c & 0xff; - if (hi) - res.push(hi, lo); - else - res.push(lo); - } - } - return res; -} -utils.toArray = toArray; - -function zero2(word) { - if (word.length === 1) - return '0' + word; - else - return word; -} -utils.zero2 = zero2; - -function toHex(msg) { - var res = ''; - for (var i = 0; i < msg.length; i++) - res += zero2(msg[i].toString(16)); - return res; -} -utils.toHex = toHex; - -utils.encode = function encode(arr, enc) { - if (enc === 'hex') - return toHex(arr); - else - return arr; -}; - - -/***/ }), - -/***/ "./node_modules/parse-asn1/aesid.json": -/*!********************************************!*\ - !*** ./node_modules/parse-asn1/aesid.json ***! - \********************************************/ -/*! exports provided: 2.16.840.1.101.3.4.1.1, 2.16.840.1.101.3.4.1.2, 2.16.840.1.101.3.4.1.3, 2.16.840.1.101.3.4.1.4, 2.16.840.1.101.3.4.1.21, 2.16.840.1.101.3.4.1.22, 2.16.840.1.101.3.4.1.23, 2.16.840.1.101.3.4.1.24, 2.16.840.1.101.3.4.1.41, 2.16.840.1.101.3.4.1.42, 2.16.840.1.101.3.4.1.43, 2.16.840.1.101.3.4.1.44, default */ -/***/ (function(module) { - -module.exports = {"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}; - -/***/ }), - -/***/ "./node_modules/parse-asn1/asn1.js": -/*!*****************************************!*\ - !*** ./node_modules/parse-asn1/asn1.js ***! - \*****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js -// Fedor, you are amazing. - - -var asn1 = __webpack_require__(/*! asn1.js */ "./node_modules/asn1.js/lib/asn1.js") - -exports.certificate = __webpack_require__(/*! ./certificate */ "./node_modules/parse-asn1/certificate.js") - -var RSAPrivateKey = asn1.define('RSAPrivateKey', function () { - this.seq().obj( - this.key('version').int(), - this.key('modulus').int(), - this.key('publicExponent').int(), - this.key('privateExponent').int(), - this.key('prime1').int(), - this.key('prime2').int(), - this.key('exponent1').int(), - this.key('exponent2').int(), - this.key('coefficient').int() - ) -}) -exports.RSAPrivateKey = RSAPrivateKey - -var RSAPublicKey = asn1.define('RSAPublicKey', function () { - this.seq().obj( - this.key('modulus').int(), - this.key('publicExponent').int() - ) -}) -exports.RSAPublicKey = RSAPublicKey - -var PublicKey = asn1.define('SubjectPublicKeyInfo', function () { - this.seq().obj( - this.key('algorithm').use(AlgorithmIdentifier), - this.key('subjectPublicKey').bitstr() - ) -}) -exports.PublicKey = PublicKey - -var AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () { - this.seq().obj( - this.key('algorithm').objid(), - this.key('none').null_().optional(), - this.key('curve').objid().optional(), - this.key('params').seq().obj( - this.key('p').int(), - this.key('q').int(), - this.key('g').int() - ).optional() - ) -}) - -var PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () { - this.seq().obj( - this.key('version').int(), - this.key('algorithm').use(AlgorithmIdentifier), - this.key('subjectPrivateKey').octstr() - ) -}) -exports.PrivateKey = PrivateKeyInfo -var EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () { - this.seq().obj( - this.key('algorithm').seq().obj( - this.key('id').objid(), - this.key('decrypt').seq().obj( - this.key('kde').seq().obj( - this.key('id').objid(), - this.key('kdeparams').seq().obj( - this.key('salt').octstr(), - this.key('iters').int() - ) - ), - this.key('cipher').seq().obj( - this.key('algo').objid(), - this.key('iv').octstr() - ) - ) - ), - this.key('subjectPrivateKey').octstr() - ) -}) - -exports.EncryptedPrivateKey = EncryptedPrivateKeyInfo - -var DSAPrivateKey = asn1.define('DSAPrivateKey', function () { - this.seq().obj( - this.key('version').int(), - this.key('p').int(), - this.key('q').int(), - this.key('g').int(), - this.key('pub_key').int(), - this.key('priv_key').int() - ) -}) -exports.DSAPrivateKey = DSAPrivateKey - -exports.DSAparam = asn1.define('DSAparam', function () { - this.int() -}) - -var ECPrivateKey = asn1.define('ECPrivateKey', function () { - this.seq().obj( - this.key('version').int(), - this.key('privateKey').octstr(), - this.key('parameters').optional().explicit(0).use(ECParameters), - this.key('publicKey').optional().explicit(1).bitstr() - ) -}) -exports.ECPrivateKey = ECPrivateKey - -var ECParameters = asn1.define('ECParameters', function () { - this.choice({ - namedCurve: this.objid() - }) -}) - -exports.signature = asn1.define('signature', function () { - this.seq().obj( - this.key('r').int(), - this.key('s').int() - ) -}) - - -/***/ }), - -/***/ "./node_modules/parse-asn1/certificate.js": -/*!************************************************!*\ - !*** ./node_modules/parse-asn1/certificate.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js -// thanks to @Rantanen - - - -var asn = __webpack_require__(/*! asn1.js */ "./node_modules/asn1.js/lib/asn1.js") - -var Time = asn.define('Time', function () { - this.choice({ - utcTime: this.utctime(), - generalTime: this.gentime() - }) -}) - -var AttributeTypeValue = asn.define('AttributeTypeValue', function () { - this.seq().obj( - this.key('type').objid(), - this.key('value').any() - ) -}) - -var AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () { - this.seq().obj( - this.key('algorithm').objid(), - this.key('parameters').optional(), - this.key('curve').objid().optional() - ) -}) - -var SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () { - this.seq().obj( - this.key('algorithm').use(AlgorithmIdentifier), - this.key('subjectPublicKey').bitstr() - ) -}) - -var RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () { - this.setof(AttributeTypeValue) -}) - -var RDNSequence = asn.define('RDNSequence', function () { - this.seqof(RelativeDistinguishedName) -}) - -var Name = asn.define('Name', function () { - this.choice({ - rdnSequence: this.use(RDNSequence) - }) -}) - -var Validity = asn.define('Validity', function () { - this.seq().obj( - this.key('notBefore').use(Time), - this.key('notAfter').use(Time) - ) -}) - -var Extension = asn.define('Extension', function () { - this.seq().obj( - this.key('extnID').objid(), - this.key('critical').bool().def(false), - this.key('extnValue').octstr() - ) -}) - -var TBSCertificate = asn.define('TBSCertificate', function () { - this.seq().obj( - this.key('version').explicit(0).int().optional(), - this.key('serialNumber').int(), - this.key('signature').use(AlgorithmIdentifier), - this.key('issuer').use(Name), - this.key('validity').use(Validity), - this.key('subject').use(Name), - this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo), - this.key('issuerUniqueID').implicit(1).bitstr().optional(), - this.key('subjectUniqueID').implicit(2).bitstr().optional(), - this.key('extensions').explicit(3).seqof(Extension).optional() - ) -}) - -var X509Certificate = asn.define('X509Certificate', function () { - this.seq().obj( - this.key('tbsCertificate').use(TBSCertificate), - this.key('signatureAlgorithm').use(AlgorithmIdentifier), - this.key('signatureValue').bitstr() - ) -}) - -module.exports = X509Certificate - - -/***/ }), - -/***/ "./node_modules/parse-asn1/fixProc.js": -/*!********************************************!*\ - !*** ./node_modules/parse-asn1/fixProc.js ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// adapted from https://github.com/apatil/pemstrip -var findProc = /Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r\+\/\=]+)[\n\r]+/m -var startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m -var fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r\+\/\=]+)-----END \1-----$/m -var evp = __webpack_require__(/*! evp_bytestokey */ "./node_modules/evp_bytestokey/index.js") -var ciphers = __webpack_require__(/*! browserify-aes */ "./node_modules/browserify-aes/browser.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -module.exports = function (okey, password) { - var key = okey.toString() - var match = key.match(findProc) - var decrypted - if (!match) { - var match2 = key.match(fullRegex) - decrypted = new Buffer(match2[2].replace(/[\r\n]/g, ''), 'base64') - } else { - var suite = 'aes' + match[1] - var iv = Buffer.from(match[2], 'hex') - var cipherText = Buffer.from(match[3].replace(/[\r\n]/g, ''), 'base64') - var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key - var out = [] - var cipher = ciphers.createDecipheriv(suite, cipherKey, iv) - out.push(cipher.update(cipherText)) - out.push(cipher.final()) - decrypted = Buffer.concat(out) - } - var tag = key.match(startRegex)[1] - return { - tag: tag, - data: decrypted - } -} - - -/***/ }), - -/***/ "./node_modules/parse-asn1/index.js": -/*!******************************************!*\ - !*** ./node_modules/parse-asn1/index.js ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var asn1 = __webpack_require__(/*! ./asn1 */ "./node_modules/parse-asn1/asn1.js") -var aesid = __webpack_require__(/*! ./aesid.json */ "./node_modules/parse-asn1/aesid.json") -var fixProc = __webpack_require__(/*! ./fixProc */ "./node_modules/parse-asn1/fixProc.js") -var ciphers = __webpack_require__(/*! browserify-aes */ "./node_modules/browserify-aes/browser.js") -var compat = __webpack_require__(/*! pbkdf2 */ "./node_modules/pbkdf2/browser.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -module.exports = parseKeys - -function parseKeys (buffer) { - var password - if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) { - password = buffer.passphrase - buffer = buffer.key - } - if (typeof buffer === 'string') { - buffer = Buffer.from(buffer) - } - - var stripped = fixProc(buffer, password) - - var type = stripped.tag - var data = stripped.data - var subtype, ndata - switch (type) { - case 'CERTIFICATE': - ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo - // falls through - case 'PUBLIC KEY': - if (!ndata) { - ndata = asn1.PublicKey.decode(data, 'der') - } - subtype = ndata.algorithm.algorithm.join('.') - switch (subtype) { - case '1.2.840.113549.1.1.1': - return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der') - case '1.2.840.10045.2.1': - ndata.subjectPrivateKey = ndata.subjectPublicKey - return { - type: 'ec', - data: ndata - } - case '1.2.840.10040.4.1': - ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der') - return { - type: 'dsa', - data: ndata.algorithm.params - } - default: throw new Error('unknown key id ' + subtype) - } - throw new Error('unknown key type ' + type) - case 'ENCRYPTED PRIVATE KEY': - data = asn1.EncryptedPrivateKey.decode(data, 'der') - data = decrypt(data, password) - // falls through - case 'PRIVATE KEY': - ndata = asn1.PrivateKey.decode(data, 'der') - subtype = ndata.algorithm.algorithm.join('.') - switch (subtype) { - case '1.2.840.113549.1.1.1': - return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der') - case '1.2.840.10045.2.1': - return { - curve: ndata.algorithm.curve, - privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey - } - case '1.2.840.10040.4.1': - ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der') - return { - type: 'dsa', - params: ndata.algorithm.params - } - default: throw new Error('unknown key id ' + subtype) - } - throw new Error('unknown key type ' + type) - case 'RSA PUBLIC KEY': - return asn1.RSAPublicKey.decode(data, 'der') - case 'RSA PRIVATE KEY': - return asn1.RSAPrivateKey.decode(data, 'der') - case 'DSA PRIVATE KEY': - return { - type: 'dsa', - params: asn1.DSAPrivateKey.decode(data, 'der') - } - case 'EC PRIVATE KEY': - data = asn1.ECPrivateKey.decode(data, 'der') - return { - curve: data.parameters.value, - privateKey: data.privateKey - } - default: throw new Error('unknown key type ' + type) - } -} -parseKeys.signature = asn1.signature -function decrypt (data, password) { - var salt = data.algorithm.decrypt.kde.kdeparams.salt - var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10) - var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')] - var iv = data.algorithm.decrypt.cipher.iv - var cipherText = data.subjectPrivateKey - var keylen = parseInt(algo.split('-')[1], 10) / 8 - var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1') - var cipher = ciphers.createDecipheriv(algo, key, iv) - var out = [] - out.push(cipher.update(cipherText)) - out.push(cipher.final()) - return Buffer.concat(out) -} - - -/***/ }), - -/***/ "./node_modules/pbkdf2/browser.js": -/*!****************************************!*\ - !*** ./node_modules/pbkdf2/browser.js ***! - \****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -exports.pbkdf2 = __webpack_require__(/*! ./lib/async */ "./node_modules/pbkdf2/lib/async.js") -exports.pbkdf2Sync = __webpack_require__(/*! ./lib/sync */ "./node_modules/pbkdf2/lib/sync-browser.js") - - -/***/ }), - -/***/ "./node_modules/pbkdf2/lib/async.js": -/*!******************************************!*\ - !*** ./node_modules/pbkdf2/lib/async.js ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global, process) {var checkParameters = __webpack_require__(/*! ./precondition */ "./node_modules/pbkdf2/lib/precondition.js") -var defaultEncoding = __webpack_require__(/*! ./default-encoding */ "./node_modules/pbkdf2/lib/default-encoding.js") -var sync = __webpack_require__(/*! ./sync */ "./node_modules/pbkdf2/lib/sync-browser.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer - -var ZERO_BUF -var subtle = global.crypto && global.crypto.subtle -var toBrowser = { - 'sha': 'SHA-1', - 'sha-1': 'SHA-1', - 'sha1': 'SHA-1', - 'sha256': 'SHA-256', - 'sha-256': 'SHA-256', - 'sha384': 'SHA-384', - 'sha-384': 'SHA-384', - 'sha-512': 'SHA-512', - 'sha512': 'SHA-512' -} -var checks = [] -function checkNative (algo) { - if (global.process && !global.process.browser) { - return Promise.resolve(false) - } - if (!subtle || !subtle.importKey || !subtle.deriveBits) { - return Promise.resolve(false) - } - if (checks[algo] !== undefined) { - return checks[algo] - } - ZERO_BUF = ZERO_BUF || Buffer.alloc(8) - var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo) - .then(function () { - return true - }).catch(function () { - return false - }) - checks[algo] = prom - return prom -} - -function browserPbkdf2 (password, salt, iterations, length, algo) { - return subtle.importKey( - 'raw', password, {name: 'PBKDF2'}, false, ['deriveBits'] - ).then(function (key) { - return subtle.deriveBits({ - name: 'PBKDF2', - salt: salt, - iterations: iterations, - hash: { - name: algo - } - }, key, length << 3) - }).then(function (res) { - return Buffer.from(res) - }) -} - -function resolvePromise (promise, callback) { - promise.then(function (out) { - process.nextTick(function () { - callback(null, out) - }) - }, function (e) { - process.nextTick(function () { - callback(e) - }) - }) -} -module.exports = function (password, salt, iterations, keylen, digest, callback) { - if (typeof digest === 'function') { - callback = digest - digest = undefined - } - - digest = digest || 'sha1' - var algo = toBrowser[digest.toLowerCase()] - - if (!algo || typeof global.Promise !== 'function') { - return process.nextTick(function () { - var out - try { - out = sync(password, salt, iterations, keylen, digest) - } catch (e) { - return callback(e) - } - callback(null, out) - }) - } - - checkParameters(password, salt, iterations, keylen) - if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2') - if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding) - if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding) - - resolvePromise(checkNative(algo).then(function (resp) { - if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo) - - return sync(password, salt, iterations, keylen, digest) - }), callback) -} - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! processGlobal */ "./node_modules/browserfs/dist/shims/process.js"))) - -/***/ }), - -/***/ "./node_modules/pbkdf2/lib/default-encoding.js": -/*!*****************************************************!*\ - !*** ./node_modules/pbkdf2/lib/default-encoding.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(process) {var defaultEncoding -/* istanbul ignore next */ -if (process.browser) { - defaultEncoding = 'utf-8' -} else { - var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10) - - defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary' -} -module.exports = defaultEncoding - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! processGlobal */ "./node_modules/browserfs/dist/shims/process.js"))) - -/***/ }), - -/***/ "./node_modules/pbkdf2/lib/precondition.js": -/*!*************************************************!*\ - !*** ./node_modules/pbkdf2/lib/precondition.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs - -function checkBuffer (buf, name) { - if (typeof buf !== 'string' && !Buffer.isBuffer(buf)) { - throw new TypeError(name + ' must be a buffer or string') - } -} - -module.exports = function (password, salt, iterations, keylen) { - checkBuffer(password, 'Password') - checkBuffer(salt, 'Salt') - - if (typeof iterations !== 'number') { - throw new TypeError('Iterations not a number') - } - - if (iterations < 0) { - throw new TypeError('Bad iterations') - } - - if (typeof keylen !== 'number') { - throw new TypeError('Key length not a number') - } - - if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */ - throw new TypeError('Bad key length') - } -} - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! bufferGlobal */ "./node_modules/browserfs/dist/shims/bufferGlobal.js"))) - -/***/ }), - -/***/ "./node_modules/pbkdf2/lib/sync-browser.js": -/*!*************************************************!*\ - !*** ./node_modules/pbkdf2/lib/sync-browser.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var md5 = __webpack_require__(/*! create-hash/md5 */ "./node_modules/create-hash/md5.js") -var RIPEMD160 = __webpack_require__(/*! ripemd160 */ "./node_modules/ripemd160/index.js") -var sha = __webpack_require__(/*! sha.js */ "./node_modules/sha.js/index.js") - -var checkParameters = __webpack_require__(/*! ./precondition */ "./node_modules/pbkdf2/lib/precondition.js") -var defaultEncoding = __webpack_require__(/*! ./default-encoding */ "./node_modules/pbkdf2/lib/default-encoding.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -var ZEROS = Buffer.alloc(128) -var sizes = { - md5: 16, - sha1: 20, - sha224: 28, - sha256: 32, - sha384: 48, - sha512: 64, - rmd160: 20, - ripemd160: 20 -} - -function Hmac (alg, key, saltLen) { - var hash = getDigest(alg) - var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64 - - if (key.length > blocksize) { - key = hash(key) - } else if (key.length < blocksize) { - key = Buffer.concat([key, ZEROS], blocksize) - } - - var ipad = Buffer.allocUnsafe(blocksize + sizes[alg]) - var opad = Buffer.allocUnsafe(blocksize + sizes[alg]) - for (var i = 0; i < blocksize; i++) { - ipad[i] = key[i] ^ 0x36 - opad[i] = key[i] ^ 0x5C - } - - var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4) - ipad.copy(ipad1, 0, 0, blocksize) - this.ipad1 = ipad1 - this.ipad2 = ipad - this.opad = opad - this.alg = alg - this.blocksize = blocksize - this.hash = hash - this.size = sizes[alg] -} - -Hmac.prototype.run = function (data, ipad) { - data.copy(ipad, this.blocksize) - var h = this.hash(ipad) - h.copy(this.opad, this.blocksize) - return this.hash(this.opad) -} - -function getDigest (alg) { - function shaFunc (data) { - return sha(alg).update(data).digest() - } - function rmd160Func (data) { - return new RIPEMD160().update(data).digest() - } - - if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func - if (alg === 'md5') return md5 - return shaFunc -} - -function pbkdf2 (password, salt, iterations, keylen, digest) { - checkParameters(password, salt, iterations, keylen) - - if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding) - if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding) - - digest = digest || 'sha1' - - var hmac = new Hmac(digest, password, salt.length) - - var DK = Buffer.allocUnsafe(keylen) - var block1 = Buffer.allocUnsafe(salt.length + 4) - salt.copy(block1, 0, 0, salt.length) - - var destPos = 0 - var hLen = sizes[digest] - var l = Math.ceil(keylen / hLen) - - for (var i = 1; i <= l; i++) { - block1.writeUInt32BE(i, salt.length) - - var T = hmac.run(block1, hmac.ipad1) - var U = T - - for (var j = 1; j < iterations; j++) { - U = hmac.run(U, hmac.ipad2) - for (var k = 0; k < hLen; k++) T[k] ^= U[k] - } - - T.copy(DK, destPos) - destPos += hLen - } - - return DK -} - -module.exports = pbkdf2 - - -/***/ }), - -/***/ "./node_modules/process-nextick-args/index.js": -/*!****************************************************!*\ - !*** ./node_modules/process-nextick-args/index.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -if (!process.version || - process.version.indexOf('v0.') === 0 || - process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { - module.exports = { nextTick: nextTick }; -} else { - module.exports = process -} - -function nextTick(fn, arg1, arg2, arg3) { - if (typeof fn !== 'function') { - throw new TypeError('"callback" argument must be a function'); - } - var len = arguments.length; - var args, i; - switch (len) { - case 0: - case 1: - return process.nextTick(fn); - case 2: - return process.nextTick(function afterTickOne() { - fn.call(null, arg1); - }); - case 3: - return process.nextTick(function afterTickTwo() { - fn.call(null, arg1, arg2); - }); - case 4: - return process.nextTick(function afterTickThree() { - fn.call(null, arg1, arg2, arg3); - }); - default: - args = new Array(len - 1); - i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - return process.nextTick(function afterTick() { - fn.apply(null, args); - }); - } -} - - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! processGlobal */ "./node_modules/browserfs/dist/shims/process.js"))) - -/***/ }), - -/***/ "./node_modules/public-encrypt/browser.js": -/*!************************************************!*\ - !*** ./node_modules/public-encrypt/browser.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -exports.publicEncrypt = __webpack_require__(/*! ./publicEncrypt */ "./node_modules/public-encrypt/publicEncrypt.js") -exports.privateDecrypt = __webpack_require__(/*! ./privateDecrypt */ "./node_modules/public-encrypt/privateDecrypt.js") - -exports.privateEncrypt = function privateEncrypt (key, buf) { - return exports.publicEncrypt(key, buf, true) -} - -exports.publicDecrypt = function publicDecrypt (key, buf) { - return exports.privateDecrypt(key, buf, true) -} - - -/***/ }), - -/***/ "./node_modules/public-encrypt/mgf.js": -/*!********************************************!*\ - !*** ./node_modules/public-encrypt/mgf.js ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var createHash = __webpack_require__(/*! create-hash */ "./node_modules/create-hash/browser.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer - -module.exports = function (seed, len) { - var t = Buffer.alloc(0) - var i = 0 - var c - while (t.length < len) { - c = i2ops(i++) - t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()]) - } - return t.slice(0, len) -} - -function i2ops (c) { - var out = Buffer.allocUnsafe(4) - out.writeUInt32BE(c, 0) - return out -} - - -/***/ }), - -/***/ "./node_modules/public-encrypt/privateDecrypt.js": -/*!*******************************************************!*\ - !*** ./node_modules/public-encrypt/privateDecrypt.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var parseKeys = __webpack_require__(/*! parse-asn1 */ "./node_modules/parse-asn1/index.js") -var mgf = __webpack_require__(/*! ./mgf */ "./node_modules/public-encrypt/mgf.js") -var xor = __webpack_require__(/*! ./xor */ "./node_modules/public-encrypt/xor.js") -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js") -var crt = __webpack_require__(/*! browserify-rsa */ "./node_modules/browserify-rsa/index.js") -var createHash = __webpack_require__(/*! create-hash */ "./node_modules/create-hash/browser.js") -var withPublic = __webpack_require__(/*! ./withPublic */ "./node_modules/public-encrypt/withPublic.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer - -module.exports = function privateDecrypt (privateKey, enc, reverse) { - var padding - if (privateKey.padding) { - padding = privateKey.padding - } else if (reverse) { - padding = 1 - } else { - padding = 4 - } - - var key = parseKeys(privateKey) - var k = key.modulus.byteLength() - if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) { - throw new Error('decryption error') - } - var msg - if (reverse) { - msg = withPublic(new BN(enc), key) - } else { - msg = crt(enc, key) - } - var zBuffer = Buffer.alloc(k - msg.length) - msg = Buffer.concat([zBuffer, msg], k) - if (padding === 4) { - return oaep(key, msg) - } else if (padding === 1) { - return pkcs1(key, msg, reverse) - } else if (padding === 3) { - return msg - } else { - throw new Error('unknown padding') - } -} - -function oaep (key, msg) { - var k = key.modulus.byteLength() - var iHash = createHash('sha1').update(Buffer.alloc(0)).digest() - var hLen = iHash.length - if (msg[0] !== 0) { - throw new Error('decryption error') - } - var maskedSeed = msg.slice(1, hLen + 1) - var maskedDb = msg.slice(hLen + 1) - var seed = xor(maskedSeed, mgf(maskedDb, hLen)) - var db = xor(maskedDb, mgf(seed, k - hLen - 1)) - if (compare(iHash, db.slice(0, hLen))) { - throw new Error('decryption error') - } - var i = hLen - while (db[i] === 0) { - i++ - } - if (db[i++] !== 1) { - throw new Error('decryption error') - } - return db.slice(i) -} - -function pkcs1 (key, msg, reverse) { - var p1 = msg.slice(0, 2) - var i = 2 - var status = 0 - while (msg[i++] !== 0) { - if (i >= msg.length) { - status++ - break - } - } - var ps = msg.slice(2, i - 1) - - if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) { - status++ - } - if (ps.length < 8) { - status++ - } - if (status) { - throw new Error('decryption error') - } - return msg.slice(i) -} -function compare (a, b) { - a = Buffer.from(a) - b = Buffer.from(b) - var dif = 0 - var len = a.length - if (a.length !== b.length) { - dif++ - len = Math.min(a.length, b.length) - } - var i = -1 - while (++i < len) { - dif += (a[i] ^ b[i]) - } - return dif -} - - -/***/ }), - -/***/ "./node_modules/public-encrypt/publicEncrypt.js": -/*!******************************************************!*\ - !*** ./node_modules/public-encrypt/publicEncrypt.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var parseKeys = __webpack_require__(/*! parse-asn1 */ "./node_modules/parse-asn1/index.js") -var randomBytes = __webpack_require__(/*! randombytes */ "./node_modules/randombytes/browser.js") -var createHash = __webpack_require__(/*! create-hash */ "./node_modules/create-hash/browser.js") -var mgf = __webpack_require__(/*! ./mgf */ "./node_modules/public-encrypt/mgf.js") -var xor = __webpack_require__(/*! ./xor */ "./node_modules/public-encrypt/xor.js") -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js") -var withPublic = __webpack_require__(/*! ./withPublic */ "./node_modules/public-encrypt/withPublic.js") -var crt = __webpack_require__(/*! browserify-rsa */ "./node_modules/browserify-rsa/index.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer - -module.exports = function publicEncrypt (publicKey, msg, reverse) { - var padding - if (publicKey.padding) { - padding = publicKey.padding - } else if (reverse) { - padding = 1 - } else { - padding = 4 - } - var key = parseKeys(publicKey) - var paddedMsg - if (padding === 4) { - paddedMsg = oaep(key, msg) - } else if (padding === 1) { - paddedMsg = pkcs1(key, msg, reverse) - } else if (padding === 3) { - paddedMsg = new BN(msg) - if (paddedMsg.cmp(key.modulus) >= 0) { - throw new Error('data too long for modulus') - } - } else { - throw new Error('unknown padding') - } - if (reverse) { - return crt(paddedMsg, key) - } else { - return withPublic(paddedMsg, key) - } -} - -function oaep (key, msg) { - var k = key.modulus.byteLength() - var mLen = msg.length - var iHash = createHash('sha1').update(Buffer.alloc(0)).digest() - var hLen = iHash.length - var hLen2 = 2 * hLen - if (mLen > k - hLen2 - 2) { - throw new Error('message too long') - } - var ps = Buffer.alloc(k - mLen - hLen2 - 2) - var dblen = k - hLen - 1 - var seed = randomBytes(hLen) - var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen)) - var maskedSeed = xor(seed, mgf(maskedDb, hLen)) - return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k)) -} -function pkcs1 (key, msg, reverse) { - var mLen = msg.length - var k = key.modulus.byteLength() - if (mLen > k - 11) { - throw new Error('message too long') - } - var ps - if (reverse) { - ps = Buffer.alloc(k - mLen - 3, 0xff) - } else { - ps = nonZero(k - mLen - 3) - } - return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k)) -} -function nonZero (len) { - var out = Buffer.allocUnsafe(len) - var i = 0 - var cache = randomBytes(len * 2) - var cur = 0 - var num - while (i < len) { - if (cur === cache.length) { - cache = randomBytes(len * 2) - cur = 0 - } - num = cache[cur++] - if (num) { - out[i++] = num - } - } - return out -} - - -/***/ }), - -/***/ "./node_modules/public-encrypt/withPublic.js": -/*!***************************************************!*\ - !*** ./node_modules/public-encrypt/withPublic.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js") -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer - -function withPublic (paddedMsg, key) { - return Buffer.from(paddedMsg - .toRed(BN.mont(key.modulus)) - .redPow(new BN(key.publicExponent)) - .fromRed() - .toArray()) -} - -module.exports = withPublic - - -/***/ }), - -/***/ "./node_modules/public-encrypt/xor.js": -/*!********************************************!*\ - !*** ./node_modules/public-encrypt/xor.js ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = function xor (a, b) { - var len = a.length - var i = -1 - while (++i < len) { - a[i] ^= b[i] - } - return a -} - - -/***/ }), - -/***/ "./node_modules/randombytes/browser.js": -/*!*********************************************!*\ - !*** ./node_modules/randombytes/browser.js ***! - \*********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global, process) { - -// limit of Crypto.getRandomValues() -// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues -var MAX_BYTES = 65536 - -// Node supports requesting up to this number of bytes -// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48 -var MAX_UINT32 = 4294967295 - -function oldBrowser () { - throw new Error('Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11') -} - -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer -var crypto = global.crypto || global.msCrypto - -if (crypto && crypto.getRandomValues) { - module.exports = randomBytes -} else { - module.exports = oldBrowser -} - -function randomBytes (size, cb) { - // phantomjs needs to throw - if (size > MAX_UINT32) throw new RangeError('requested too many random bytes') - - var bytes = Buffer.allocUnsafe(size) - - if (size > 0) { // getRandomValues fails on IE if size == 0 - if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues - // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues - for (var generated = 0; generated < size; generated += MAX_BYTES) { - // buffer.slice automatically checks if the end is past the end of - // the buffer so we don't have to here - crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES)) - } - } else { - crypto.getRandomValues(bytes) - } - } - - if (typeof cb === 'function') { - return process.nextTick(function () { - cb(null, bytes) - }) - } - - return bytes -} - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! processGlobal */ "./node_modules/browserfs/dist/shims/process.js"))) - -/***/ }), - -/***/ "./node_modules/randomfill/browser.js": -/*!********************************************!*\ - !*** ./node_modules/randomfill/browser.js ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global, process) { - -function oldBrowser () { - throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11') -} -var safeBuffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js") -var randombytes = __webpack_require__(/*! randombytes */ "./node_modules/randombytes/browser.js") -var Buffer = safeBuffer.Buffer -var kBufferMaxLength = safeBuffer.kMaxLength -var crypto = global.crypto || global.msCrypto -var kMaxUint32 = Math.pow(2, 32) - 1 -function assertOffset (offset, length) { - if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare - throw new TypeError('offset must be a number') - } - - if (offset > kMaxUint32 || offset < 0) { - throw new TypeError('offset must be a uint32') - } - - if (offset > kBufferMaxLength || offset > length) { - throw new RangeError('offset out of range') - } -} - -function assertSize (size, offset, length) { - if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare - throw new TypeError('size must be a number') - } - - if (size > kMaxUint32 || size < 0) { - throw new TypeError('size must be a uint32') - } - - if (size + offset > length || size > kBufferMaxLength) { - throw new RangeError('buffer too small') - } -} -if ((crypto && crypto.getRandomValues) || !process.browser) { - exports.randomFill = randomFill - exports.randomFillSync = randomFillSync -} else { - exports.randomFill = oldBrowser - exports.randomFillSync = oldBrowser -} -function randomFill (buf, offset, size, cb) { - if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) { - throw new TypeError('"buf" argument must be a Buffer or Uint8Array') - } - - if (typeof offset === 'function') { - cb = offset - offset = 0 - size = buf.length - } else if (typeof size === 'function') { - cb = size - size = buf.length - offset - } else if (typeof cb !== 'function') { - throw new TypeError('"cb" argument must be a function') - } - assertOffset(offset, buf.length) - assertSize(size, offset, buf.length) - return actualFill(buf, offset, size, cb) -} - -function actualFill (buf, offset, size, cb) { - if (process.browser) { - var ourBuf = buf.buffer - var uint = new Uint8Array(ourBuf, offset, size) - crypto.getRandomValues(uint) - if (cb) { - process.nextTick(function () { - cb(null, buf) - }) - return - } - return buf - } - if (cb) { - randombytes(size, function (err, bytes) { - if (err) { - return cb(err) - } - bytes.copy(buf, offset) - cb(null, buf) - }) - return - } - var bytes = randombytes(size) - bytes.copy(buf, offset) - return buf -} -function randomFillSync (buf, offset, size) { - if (typeof offset === 'undefined') { - offset = 0 - } - if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) { - throw new TypeError('"buf" argument must be a Buffer or Uint8Array') - } - - assertOffset(offset, buf.length) - - if (size === undefined) size = buf.length - offset - - assertSize(size, offset, buf.length) - - return actualFill(buf, offset, size) -} - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! processGlobal */ "./node_modules/browserfs/dist/shims/process.js"))) - -/***/ }), - -/***/ "./node_modules/readable-stream/duplex-browser.js": -/*!********************************************************!*\ - !*** ./node_modules/readable-stream/duplex-browser.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ "./node_modules/readable-stream/lib/_stream_duplex.js"); - - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/_stream_duplex.js": -/*!************************************************************!*\ - !*** ./node_modules/readable-stream/lib/_stream_duplex.js ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - - - -/**/ - -var pna = __webpack_require__(/*! process-nextick-args */ "./node_modules/process-nextick-args/index.js"); -/**/ - -/**/ -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - keys.push(key); - }return keys; -}; -/**/ - -module.exports = Duplex; - -/**/ -var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"); -util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); -/**/ - -var Readable = __webpack_require__(/*! ./_stream_readable */ "./node_modules/readable-stream/lib/_stream_readable.js"); -var Writable = __webpack_require__(/*! ./_stream_writable */ "./node_modules/readable-stream/lib/_stream_writable.js"); - -util.inherits(Duplex, Readable); - -{ - // avoid scope creep, the keys array can then be collected - var keys = objectKeys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; - } -} - -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - - Readable.call(this, options); - Writable.call(this, options); - - if (options && options.readable === false) this.readable = false; - - if (options && options.writable === false) this.writable = false; - - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; - - this.once('end', onend); -} - -Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function () { - return this._writableState.highWaterMark; - } -}); - -// the no-half-open enforcer -function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - pna.nextTick(onEndNT, this); -} - -function onEndNT(self) { - self.end(); -} - -Object.defineProperty(Duplex.prototype, 'destroyed', { - get: function () { - if (this._readableState === undefined || this._writableState === undefined) { - return false; - } - return this._readableState.destroyed && this._writableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (this._readableState === undefined || this._writableState === undefined) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - this._writableState.destroyed = value; - } -}); - -Duplex.prototype._destroy = function (err, cb) { - this.push(null); - this.end(); - - pna.nextTick(cb, err); -}; - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/_stream_passthrough.js": -/*!*****************************************************************!*\ - !*** ./node_modules/readable-stream/lib/_stream_passthrough.js ***! - \*****************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. - - - -module.exports = PassThrough; - -var Transform = __webpack_require__(/*! ./_stream_transform */ "./node_modules/readable-stream/lib/_stream_transform.js"); - -/**/ -var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"); -util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); -/**/ - -util.inherits(PassThrough, Transform); - -function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - - Transform.call(this, options); -} - -PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); -}; - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/_stream_readable.js": -/*!**************************************************************!*\ - !*** ./node_modules/readable-stream/lib/_stream_readable.js ***! - \**************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - - - -/**/ - -var pna = __webpack_require__(/*! process-nextick-args */ "./node_modules/process-nextick-args/index.js"); -/**/ - -module.exports = Readable; - -/**/ -var isArray = __webpack_require__(/*! isarray */ "./node_modules/isarray/index.js"); -/**/ - -/**/ -var Duplex; -/**/ - -Readable.ReadableState = ReadableState; - -/**/ -var EE = __webpack_require__(/*! events */ "./node_modules/events/events.js").EventEmitter; - -var EElistenerCount = function (emitter, type) { - return emitter.listeners(type).length; -}; -/**/ - -/**/ -var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/readable-stream/lib/internal/streams/stream-browser.js"); -/**/ - -/**/ - -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer; -var OurUint8Array = global.Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} - -/**/ - -/**/ -var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"); -util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); -/**/ - -/**/ -var debugUtil = __webpack_require__(/*! util */ 2); -var debug = void 0; -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function () {}; -} -/**/ - -var BufferList = __webpack_require__(/*! ./internal/streams/BufferList */ "./node_modules/readable-stream/lib/internal/streams/BufferList.js"); -var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/readable-stream/lib/internal/streams/destroy.js"); -var StringDecoder; - -util.inherits(Readable, Stream); - -var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; - -function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); - - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; -} - -function ReadableState(options, stream) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/readable-stream/lib/_stream_duplex.js"); - - options = options || {}; - - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. - var isDuplex = stream instanceof Duplex; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var readableHwm = options.readableHighWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - - if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; - - // cast to ints. - this.highWaterMark = Math.floor(this.highWaterMark); - - // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the event 'readable'/'data' is emitted - // immediately, or on a later tick. We set this to true at first, because - // any actions that shouldn't happen until "later" should generally also - // not happen before the first read call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - - // has it been destroyed - this.destroyed = false; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ "./node_modules/string_decoder/lib/string_decoder.js").StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} - -function Readable(options) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/readable-stream/lib/_stream_duplex.js"); - - if (!(this instanceof Readable)) return new Readable(options); - - this._readableState = new ReadableState(options, this); - - // legacy - this.readable = true; - - if (options) { - if (typeof options.read === 'function') this._read = options.read; - - if (typeof options.destroy === 'function') this._destroy = options.destroy; - } - - Stream.call(this); -} - -Object.defineProperty(Readable.prototype, 'destroyed', { - get: function () { - if (this._readableState === undefined) { - return false; - } - return this._readableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._readableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - } -}); - -Readable.prototype.destroy = destroyImpl.destroy; -Readable.prototype._undestroy = destroyImpl.undestroy; -Readable.prototype._destroy = function (err, cb) { - this.push(null); - cb(err); -}; - -// Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - var skipChunkCheck; - - if (!state.objectMode) { - if (typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding); - encoding = ''; - } - skipChunkCheck = true; - } - } else { - skipChunkCheck = true; - } - - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; - -// Unshift should *always* be something directly out of read() -Readable.prototype.unshift = function (chunk) { - return readableAddChunk(this, chunk, null, true, false); -}; - -function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { - var state = stream._readableState; - if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else { - var er; - if (!skipChunkCheck) er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { - chunk = _uint8ArrayToBuffer(chunk); - } - - if (addToFront) { - if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); - } else if (state.ended) { - stream.emit('error', new Error('stream.push() after EOF')); - } else { - state.reading = false; - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); - if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); - } else { - addChunk(stream, state, chunk, false); - } - } - } else if (!addToFront) { - state.reading = false; - } - } - - return needMoreData(state); -} - -function addChunk(stream, state, chunk, addToFront) { - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - - if (state.needReadable) emitReadable(stream); - } - maybeReadMore(stream, state); -} - -function chunkInvalid(state, chunk) { - var er; - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; -} - -// if it's past the high water mark, we can push in some more. -// Also, if we have no data yet, we can stand some -// more bytes. This is to work around cases where hwm=0, -// such as the repl. Also, if the push() triggered a -// readable event, and the user called read(largeNumber) such that -// needReadable was set, then we ought to push more, so that another -// 'readable' event will be triggered. -function needMoreData(state) { - return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); -} - -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; - -// backwards compatibility. -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ "./node_modules/string_decoder/lib/string_decoder.js").StringDecoder; - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; -}; - -// Don't raise the hwm > 8MB -var MAX_HWM = 0x800000; -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; -} - -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } - // If we're asking for more than the current hwm, then raise the hwm. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; - // Don't have enough - if (!state.ended) { - state.needReadable = true; - return 0; - } - return state.length; -} - -// you can override either this method, or the async _read(n) below. -Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - - if (n !== 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); - } - - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - - if (ret === null) { - state.needReadable = true; - n = 0; - } else { - state.length -= n; - } - - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) endReadable(this); - } - - if (ret !== null) this.emit('data', ret); - - return ret; -}; - -function onEofChunk(stream, state) { - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); -} - -// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream); - } -} - -function emitReadable_(stream) { - debug('emit readable'); - stream.emit('readable'); - flow(stream); -} - -// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - pna.nextTick(maybeReadMore_, stream, state); - } -} - -function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break;else len = state.length; - } - state.readingMore = false; -} - -// abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. -Readable.prototype._read = function (n) { - this.emit('error', new Error('_read() is not implemented')); -}; - -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - - var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn); - - dest.on('unpipe', onunpipe); - function onunpipe(readable, unpipeInfo) { - debug('onunpipe'); - if (readable === src) { - if (unpipeInfo && unpipeInfo.hasUnpiped === false) { - unpipeInfo.hasUnpiped = true; - cleanup(); - } - } - } - - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', unpipe); - src.removeListener('data', ondata); - - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - - // If the user pushes more data while we're writing to dest then we'll end up - // in ondata again. However, we only want to increase awaitDrain once because - // dest will only emit one 'drain' event for the multiple writes. - // => Introduce a guard on increasing awaitDrain. - var increasedAwaitDrain = false; - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - increasedAwaitDrain = false; - var ret = dest.write(chunk); - if (false === ret && !increasedAwaitDrain) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; - increasedAwaitDrain = true; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); - } - - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - - return dest; -}; - -function pipeOnDrain(src) { - return function () { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; -} - -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - var unpipeInfo = { hasUnpiped: false }; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this, unpipeInfo); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, unpipeInfo); - }return this; - } - - // try to find the right one. - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - - dest.emit('unpipe', this, unpipeInfo); - - return this; -}; - -// set up data events if they are asked for -// Ensure readable listeners eventually get something -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - - if (ev === 'data') { - // Start flowing on next tick if stream isn't explicitly paused - if (this._readableState.flowing !== false) this.resume(); - } else if (ev === 'readable') { - var state = this._readableState; - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.emittedReadable = false; - if (!state.reading) { - pna.nextTick(nReadingNextTick, this); - } else if (state.length) { - emitReadable(this); - } - } - } - - return res; -}; -Readable.prototype.addListener = Readable.prototype.on; - -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} - -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - state.flowing = true; - resume(this, state); - } - return this; -}; - -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - pna.nextTick(resume_, stream, state); - } -} - -function resume_(stream, state) { - if (!state.reading) { - debug('resume read 0'); - stream.read(0); - } - - state.resumeScheduled = false; - state.awaitDrain = 0; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} - -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; -}; - -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null) {} -} - -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function (stream) { - var _this = this; - - var state = this._readableState; - var paused = false; - - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) _this.push(chunk); - } - - _this.push(null); - }); - - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - - var ret = _this.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function (method) { - return function () { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); - } - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - this._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - - return this; -}; - -Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function () { - return this._readableState.highWaterMark; - } -}); - -// exposed for testing purposes only. -Readable._fromList = fromList; - -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = fromListPartial(n, state.buffer, state.decoder); - } - - return ret; -} - -// Extracts only enough buffered data to satisfy the amount requested. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromListPartial(n, list, hasStrings) { - var ret; - if (n < list.head.data.length) { - // slice is the same for buffers and strings - ret = list.head.data.slice(0, n); - list.head.data = list.head.data.slice(n); - } else if (n === list.head.data.length) { - // first chunk is a perfect match - ret = list.shift(); - } else { - // result spans more than one buffer - ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); - } - return ret; -} - -// Copies a specified amount of characters from the list of buffered data -// chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBufferString(n, list) { - var p = list.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = str.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; -} - -// Copies a specified amount of bytes from the list of buffered data chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBuffer(n, list) { - var ret = Buffer.allocUnsafe(n); - var p = list.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = buf.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; -} - -function endReadable(stream) { - var state = stream._readableState; - - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); - - if (!state.endEmitted) { - state.ended = true; - pna.nextTick(endReadableNT, state, stream); - } -} - -function endReadableNT(state, stream) { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } -} - -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; -} -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! processGlobal */ "./node_modules/browserfs/dist/shims/process.js"))) - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/_stream_transform.js": -/*!***************************************************************!*\ - !*** ./node_modules/readable-stream/lib/_stream_transform.js ***! - \***************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. - - - -module.exports = Transform; - -var Duplex = __webpack_require__(/*! ./_stream_duplex */ "./node_modules/readable-stream/lib/_stream_duplex.js"); - -/**/ -var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"); -util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); -/**/ - -util.inherits(Transform, Duplex); - -function afterTransform(er, data) { - var ts = this._transformState; - ts.transforming = false; - - var cb = ts.writecb; - - if (!cb) { - return this.emit('error', new Error('write callback called multiple times')); - } - - ts.writechunk = null; - ts.writecb = null; - - if (data != null) // single equals check for both `null` and `undefined` - this.push(data); - - cb(er); - - var rs = this._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - this._read(rs.highWaterMark); - } -} - -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - - Duplex.call(this, options); - - this._transformState = { - afterTransform: afterTransform.bind(this), - needTransform: false, - transforming: false, - writecb: null, - writechunk: null, - writeencoding: null - }; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - - if (typeof options.flush === 'function') this._flush = options.flush; - } - - // When the writable side finishes, then flush out anything remaining. - this.on('prefinish', prefinish); -} - -function prefinish() { - var _this = this; - - if (typeof this._flush === 'function') { - this._flush(function (er, data) { - done(_this, er, data); - }); - } else { - done(this, null, null); - } -} - -Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); -}; - -// This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. -Transform.prototype._transform = function (chunk, encoding, cb) { - throw new Error('_transform() is not implemented'); -}; - -Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } -}; - -// Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. -Transform.prototype._read = function (n) { - var ts = this._transformState; - - if (ts.writechunk !== null && ts.writecb && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } -}; - -Transform.prototype._destroy = function (err, cb) { - var _this2 = this; - - Duplex.prototype._destroy.call(this, err, function (err2) { - cb(err2); - _this2.emit('close'); - }); -}; - -function done(stream, er, data) { - if (er) return stream.emit('error', er); - - if (data != null) // single equals check for both `null` and `undefined` - stream.push(data); - - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0'); - - if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming'); - - return stream.push(null); -} - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/_stream_writable.js": -/*!**************************************************************!*\ - !*** ./node_modules/readable-stream/lib/_stream_writable.js ***! - \**************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. - - - -/**/ - -var pna = __webpack_require__(/*! process-nextick-args */ "./node_modules/process-nextick-args/index.js"); -/**/ - -module.exports = Writable; - -/* */ -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} - -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; - - this.next = null; - this.entry = null; - this.finish = function () { - onCorkedFinish(_this, state); - }; -} -/* */ - -/**/ -var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; -/**/ - -/**/ -var Duplex; -/**/ - -Writable.WritableState = WritableState; - -/**/ -var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"); -util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); -/**/ - -/**/ -var internalUtil = { - deprecate: __webpack_require__(/*! util-deprecate */ "./node_modules/util-deprecate/browser.js") -}; -/**/ - -/**/ -var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/readable-stream/lib/internal/streams/stream-browser.js"); -/**/ - -/**/ - -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer; -var OurUint8Array = global.Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} - -/**/ - -var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/readable-stream/lib/internal/streams/destroy.js"); - -util.inherits(Writable, Stream); - -function nop() {} - -function WritableState(options, stream) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/readable-stream/lib/_stream_duplex.js"); - - options = options || {}; - - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. - var isDuplex = stream instanceof Duplex; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - var hwm = options.highWaterMark; - var writableHwm = options.writableHighWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - - if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; - - // cast to ints. - this.highWaterMark = Math.floor(this.highWaterMark); - - // if _final has been called - this.finalCalled = false; - - // drain event flag. - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // has it been destroyed - this.destroyed = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // count buffered requests - this.bufferedRequestCount = 0; - - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); -} - -WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; -}; - -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function () { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') - }); - } catch (_) {} -})(); - -// Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. -var realHasInstance; -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function (object) { - if (realHasInstance.call(this, object)) return true; - if (this !== Writable) return false; - - return object && object._writableState instanceof WritableState; - } - }); -} else { - realHasInstance = function (object) { - return object instanceof this; - }; -} - -function Writable(options) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/readable-stream/lib/_stream_duplex.js"); - - // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { - return new Writable(options); - } - - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - if (options) { - if (typeof options.write === 'function') this._write = options.write; - - if (typeof options.writev === 'function') this._writev = options.writev; - - if (typeof options.destroy === 'function') this._destroy = options.destroy; - - if (typeof options.final === 'function') this._final = options.final; - } - - Stream.call(this); -} - -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function () { - this.emit('error', new Error('Cannot pipe, not readable')); -}; - -function writeAfterEnd(stream, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - pna.nextTick(cb, er); -} - -// Checks that a user-supplied chunk is valid, especially for the particular -// mode the stream is in. Currently this means that `null` is never accepted -// and undefined/non-string values are only allowed in object mode. -function validChunk(stream, state, chunk, cb) { - var valid = true; - var er = false; - - if (chunk === null) { - er = new TypeError('May not write null values to stream'); - } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - if (er) { - stream.emit('error', er); - pna.nextTick(cb, er); - valid = false; - } - return valid; -} - -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - var isBuf = !state.objectMode && _isUint8Array(chunk); - - if (isBuf && !Buffer.isBuffer(chunk)) { - chunk = _uint8ArrayToBuffer(chunk); - } - - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - - if (typeof cb !== 'function') cb = nop; - - if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); - } - - return ret; -}; - -Writable.prototype.cork = function () { - var state = this._writableState; - - state.corked++; -}; - -Writable.prototype.uncork = function () { - var state = this._writableState; - - if (state.corked) { - state.corked--; - - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; - -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); - this._writableState.defaultEncoding = encoding; - return this; -}; - -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); - } - return chunk; -} - -Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function () { - return this._writableState.highWaterMark; - } -}); - -// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { - isBuf = true; - encoding = 'buffer'; - chunk = newChunk; - } - } - var len = state.objectMode ? 1 : chunk.length; - - state.length += len; - - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - }; - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - - return ret; -} - -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} - -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - - if (sync) { - // defer the callback if we are being called synchronously - // to avoid piling up things on the stack - pna.nextTick(cb, er); - // this can emit finish, and it will always happen - // after error - pna.nextTick(finishMaybe, stream, state); - stream._writableState.errorEmitted = true; - stream.emit('error', er); - } else { - // the caller expect this to happen before if - // it is async - cb(er); - stream._writableState.errorEmitted = true; - stream.emit('error', er); - // this can emit finish, but finish must - // always follow error - finishMaybe(stream, state); - } -} - -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} - -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - - onwriteStateUpdate(state); - - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state); - - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - - if (sync) { - /**/ - asyncWrite(afterWrite, stream, state, finished, cb); - /**/ - } else { - afterWrite(stream, state, finished, cb); - } - } -} - -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} - -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - - var count = 0; - var allBuffers = true; - while (entry) { - buffer[count] = entry; - if (!entry.isBuf) allBuffers = false; - entry = entry.next; - count += 1; - } - buffer.allBuffers = allBuffers; - - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } - state.bufferedRequestCount = 0; - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - state.bufferedRequestCount--; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - - if (entry === null) state.lastBufferedRequest = null; - } - - state.bufferedRequest = entry; - state.bufferProcessing = false; -} - -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new Error('_write() is not implemented')); -}; - -Writable.prototype._writev = null; - -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); -}; - -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} -function callFinal(stream, state) { - stream._final(function (err) { - state.pendingcb--; - if (err) { - stream.emit('error', err); - } - state.prefinished = true; - stream.emit('prefinish'); - finishMaybe(stream, state); - }); -} -function prefinish(stream, state) { - if (!state.prefinished && !state.finalCalled) { - if (typeof stream._final === 'function') { - state.pendingcb++; - state.finalCalled = true; - pna.nextTick(callFinal, stream, state); - } else { - state.prefinished = true; - stream.emit('prefinish'); - } - } -} - -function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - prefinish(stream, state); - if (state.pendingcb === 0) { - state.finished = true; - stream.emit('finish'); - } - } - return need; -} - -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) pna.nextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; -} - -function onCorkedFinish(corkReq, state, err) { - var entry = corkReq.entry; - corkReq.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = corkReq; - } else { - state.corkedRequestsFree = corkReq; - } -} - -Object.defineProperty(Writable.prototype, 'destroyed', { - get: function () { - if (this._writableState === undefined) { - return false; - } - return this._writableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._writableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._writableState.destroyed = value; - } -}); - -Writable.prototype.destroy = destroyImpl.destroy; -Writable.prototype._undestroy = destroyImpl.undestroy; -Writable.prototype._destroy = function (err, cb) { - this.end(); - cb(err); -}; -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! processGlobal */ "./node_modules/browserfs/dist/shims/process.js"), __webpack_require__(/*! ./../../timers-browserify/main.js */ "./node_modules/timers-browserify/main.js").setImmediate, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/internal/streams/BufferList.js": -/*!*************************************************************************!*\ - !*** ./node_modules/readable-stream/lib/internal/streams/BufferList.js ***! - \*************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer; -var util = __webpack_require__(/*! util */ 3); - -function copyBuffer(src, target, offset) { - src.copy(target, offset); -} - -module.exports = function () { - function BufferList() { - _classCallCheck(this, BufferList); - - this.head = null; - this.tail = null; - this.length = 0; - } - - BufferList.prototype.push = function push(v) { - var entry = { data: v, next: null }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; - }; - - BufferList.prototype.unshift = function unshift(v) { - var entry = { data: v, next: this.head }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - }; - - BufferList.prototype.shift = function shift() { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; - }; - - BufferList.prototype.clear = function clear() { - this.head = this.tail = null; - this.length = 0; - }; - - BufferList.prototype.join = function join(s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) { - ret += s + p.data; - }return ret; - }; - - BufferList.prototype.concat = function concat(n) { - if (this.length === 0) return Buffer.alloc(0); - if (this.length === 1) return this.head.data; - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - copyBuffer(p.data, ret, i); - i += p.data.length; - p = p.next; - } - return ret; - }; - - return BufferList; -}(); - -if (util && util.inspect && util.inspect.custom) { - module.exports.prototype[util.inspect.custom] = function () { - var obj = util.inspect({ length: this.length }); - return this.constructor.name + ' ' + obj; - }; -} - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/internal/streams/destroy.js": -/*!**********************************************************************!*\ - !*** ./node_modules/readable-stream/lib/internal/streams/destroy.js ***! - \**********************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/**/ - -var pna = __webpack_require__(/*! process-nextick-args */ "./node_modules/process-nextick-args/index.js"); -/**/ - -// undocumented cb() API, needed for core, not for public API -function destroy(err, cb) { - var _this = this; - - var readableDestroyed = this._readableState && this._readableState.destroyed; - var writableDestroyed = this._writableState && this._writableState.destroyed; - - if (readableDestroyed || writableDestroyed) { - if (cb) { - cb(err); - } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { - pna.nextTick(emitErrorNT, this, err); - } - return this; - } - - // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks - - if (this._readableState) { - this._readableState.destroyed = true; - } - - // if this is a duplex stream mark the writable part as destroyed as well - if (this._writableState) { - this._writableState.destroyed = true; - } - - this._destroy(err || null, function (err) { - if (!cb && err) { - pna.nextTick(emitErrorNT, _this, err); - if (_this._writableState) { - _this._writableState.errorEmitted = true; - } - } else if (cb) { - cb(err); - } - }); - - return this; -} - -function undestroy() { - if (this._readableState) { - this._readableState.destroyed = false; - this._readableState.reading = false; - this._readableState.ended = false; - this._readableState.endEmitted = false; - } - - if (this._writableState) { - this._writableState.destroyed = false; - this._writableState.ended = false; - this._writableState.ending = false; - this._writableState.finished = false; - this._writableState.errorEmitted = false; - } -} - -function emitErrorNT(self, err) { - self.emit('error', err); -} - -module.exports = { - destroy: destroy, - undestroy: undestroy -}; - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/internal/streams/stream-browser.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/readable-stream/lib/internal/streams/stream-browser.js ***! - \*****************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! events */ "./node_modules/events/events.js").EventEmitter; - - -/***/ }), - -/***/ "./node_modules/readable-stream/passthrough.js": -/*!*****************************************************!*\ - !*** ./node_modules/readable-stream/passthrough.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! ./readable */ "./node_modules/readable-stream/readable-browser.js").PassThrough - - -/***/ }), - -/***/ "./node_modules/readable-stream/readable-browser.js": -/*!**********************************************************!*\ - !*** ./node_modules/readable-stream/readable-browser.js ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ "./node_modules/readable-stream/lib/_stream_readable.js"); -exports.Stream = exports; -exports.Readable = exports; -exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ "./node_modules/readable-stream/lib/_stream_writable.js"); -exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ "./node_modules/readable-stream/lib/_stream_duplex.js"); -exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ "./node_modules/readable-stream/lib/_stream_transform.js"); -exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ "./node_modules/readable-stream/lib/_stream_passthrough.js"); - - -/***/ }), - -/***/ "./node_modules/readable-stream/transform.js": -/*!***************************************************!*\ - !*** ./node_modules/readable-stream/transform.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! ./readable */ "./node_modules/readable-stream/readable-browser.js").Transform - - -/***/ }), - -/***/ "./node_modules/readable-stream/writable-browser.js": -/*!**********************************************************!*\ - !*** ./node_modules/readable-stream/writable-browser.js ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! ./lib/_stream_writable.js */ "./node_modules/readable-stream/lib/_stream_writable.js"); - - -/***/ }), - -/***/ "./node_modules/ripemd160/index.js": -/*!*****************************************!*\ - !*** ./node_modules/ripemd160/index.js ***! - \*****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var Buffer = __webpack_require__(/*! buffer */ "./node_modules/browserfs/dist/shims/buffer.js").Buffer -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") -var HashBase = __webpack_require__(/*! hash-base */ "./node_modules/hash-base/index.js") - -var ARRAY16 = new Array(16) - -var zl = [ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, - 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, - 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, - 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 -] - -var zr = [ - 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, - 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, - 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, - 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, - 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 -] - -var sl = [ - 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, - 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, - 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, - 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, - 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 -] - -var sr = [ - 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, - 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, - 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, - 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, - 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 -] - -var hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e] -var hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000] - -function RIPEMD160 () { - HashBase.call(this, 64) - - // state - this._a = 0x67452301 - this._b = 0xefcdab89 - this._c = 0x98badcfe - this._d = 0x10325476 - this._e = 0xc3d2e1f0 -} - -inherits(RIPEMD160, HashBase) - -RIPEMD160.prototype._update = function () { - var words = ARRAY16 - for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4) - - var al = this._a | 0 - var bl = this._b | 0 - var cl = this._c | 0 - var dl = this._d | 0 - var el = this._e | 0 - - var ar = this._a | 0 - var br = this._b | 0 - var cr = this._c | 0 - var dr = this._d | 0 - var er = this._e | 0 - - // computation - for (var i = 0; i < 80; i += 1) { - var tl - var tr - if (i < 16) { - tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i]) - tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i]) - } else if (i < 32) { - tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i]) - tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i]) - } else if (i < 48) { - tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i]) - tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i]) - } else if (i < 64) { - tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i]) - tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i]) - } else { // if (i<80) { - tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i]) - tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i]) - } - - al = el - el = dl - dl = rotl(cl, 10) - cl = bl - bl = tl - - ar = er - er = dr - dr = rotl(cr, 10) - cr = br - br = tr - } - - // update state - var t = (this._b + cl + dr) | 0 - this._b = (this._c + dl + er) | 0 - this._c = (this._d + el + ar) | 0 - this._d = (this._e + al + br) | 0 - this._e = (this._a + bl + cr) | 0 - this._a = t -} - -RIPEMD160.prototype._digest = function () { - // create padding and handle blocks - this._block[this._blockOffset++] = 0x80 - if (this._blockOffset > 56) { - this._block.fill(0, this._blockOffset, 64) - this._update() - this._blockOffset = 0 - } - - this._block.fill(0, this._blockOffset, 56) - this._block.writeUInt32LE(this._length[0], 56) - this._block.writeUInt32LE(this._length[1], 60) - this._update() - - // produce result - var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20) - buffer.writeInt32LE(this._a, 0) - buffer.writeInt32LE(this._b, 4) - buffer.writeInt32LE(this._c, 8) - buffer.writeInt32LE(this._d, 12) - buffer.writeInt32LE(this._e, 16) - return buffer -} - -function rotl (x, n) { - return (x << n) | (x >>> (32 - n)) -} - -function fn1 (a, b, c, d, e, m, k, s) { - return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0 -} - -function fn2 (a, b, c, d, e, m, k, s) { - return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0 -} - -function fn3 (a, b, c, d, e, m, k, s) { - return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0 -} - -function fn4 (a, b, c, d, e, m, k, s) { - return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0 -} - -function fn5 (a, b, c, d, e, m, k, s) { - return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0 -} - -module.exports = RIPEMD160 - - -/***/ }), - -/***/ "./node_modules/safe-buffer/index.js": -/*!*******************************************!*\ - !*** ./node_modules/safe-buffer/index.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* eslint-disable node/no-deprecated-api */ -var buffer = __webpack_require__(/*! buffer */ "./node_modules/browserfs/dist/shims/buffer.js") -var Buffer = buffer.Buffer - -// alternative to using Object.keys for old browsers -function copyProps (src, dst) { - for (var key in src) { - dst[key] = src[key] - } -} -if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { - module.exports = buffer -} else { - // Copy properties from require('buffer') - copyProps(buffer, exports) - exports.Buffer = SafeBuffer -} - -function SafeBuffer (arg, encodingOrOffset, length) { - return Buffer(arg, encodingOrOffset, length) -} - -// Copy static methods from Buffer -copyProps(Buffer, SafeBuffer) - -SafeBuffer.from = function (arg, encodingOrOffset, length) { - if (typeof arg === 'number') { - throw new TypeError('Argument must not be a number') - } - return Buffer(arg, encodingOrOffset, length) -} - -SafeBuffer.alloc = function (size, fill, encoding) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - var buf = Buffer(size) - if (fill !== undefined) { - if (typeof encoding === 'string') { - buf.fill(fill, encoding) - } else { - buf.fill(fill) - } - } else { - buf.fill(0) - } - return buf -} - -SafeBuffer.allocUnsafe = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return Buffer(size) -} - -SafeBuffer.allocUnsafeSlow = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return buffer.SlowBuffer(size) -} - - -/***/ }), - -/***/ "./node_modules/setimmediate/setImmediate.js": -/*!***************************************************!*\ - !*** ./node_modules/setimmediate/setImmediate.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) { - "use strict"; - - if (global.setImmediate) { - return; - } - - var nextHandle = 1; // Spec says greater than zero - var tasksByHandle = {}; - var currentlyRunningATask = false; - var doc = global.document; - var registerImmediate; - - function setImmediate(callback) { - // Callback can either be a function or a string - if (typeof callback !== "function") { - callback = new Function("" + callback); - } - // Copy function arguments - var args = new Array(arguments.length - 1); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i + 1]; - } - // Store and register the task - var task = { callback: callback, args: args }; - tasksByHandle[nextHandle] = task; - registerImmediate(nextHandle); - return nextHandle++; - } - - function clearImmediate(handle) { - delete tasksByHandle[handle]; - } - - function run(task) { - var callback = task.callback; - var args = task.args; - switch (args.length) { - case 0: - callback(); - break; - case 1: - callback(args[0]); - break; - case 2: - callback(args[0], args[1]); - break; - case 3: - callback(args[0], args[1], args[2]); - break; - default: - callback.apply(undefined, args); - break; - } - } - - function runIfPresent(handle) { - // From the spec: "Wait until any invocations of this algorithm started before this one have completed." - // So if we're currently running a task, we'll need to delay this invocation. - if (currentlyRunningATask) { - // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a - // "too much recursion" error. - setTimeout(runIfPresent, 0, handle); - } else { - var task = tasksByHandle[handle]; - if (task) { - currentlyRunningATask = true; - try { - run(task); - } finally { - clearImmediate(handle); - currentlyRunningATask = false; - } - } - } - } - - function installNextTickImplementation() { - registerImmediate = function(handle) { - process.nextTick(function () { runIfPresent(handle); }); - }; - } - - function canUsePostMessage() { - // The test against `importScripts` prevents this implementation from being installed inside a web worker, - // where `global.postMessage` means something completely different and can't be used for this purpose. - if (global.postMessage && !global.importScripts) { - var postMessageIsAsynchronous = true; - var oldOnMessage = global.onmessage; - global.onmessage = function() { - postMessageIsAsynchronous = false; - }; - global.postMessage("", "*"); - global.onmessage = oldOnMessage; - return postMessageIsAsynchronous; - } - } - - function installPostMessageImplementation() { - // Installs an event handler on `global` for the `message` event: see - // * https://developer.mozilla.org/en/DOM/window.postMessage - // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages - - var messagePrefix = "setImmediate$" + Math.random() + "$"; - var onGlobalMessage = function(event) { - if (event.source === global && - typeof event.data === "string" && - event.data.indexOf(messagePrefix) === 0) { - runIfPresent(+event.data.slice(messagePrefix.length)); - } - }; - - if (global.addEventListener) { - global.addEventListener("message", onGlobalMessage, false); - } else { - global.attachEvent("onmessage", onGlobalMessage); - } - - registerImmediate = function(handle) { - global.postMessage(messagePrefix + handle, "*"); - }; - } - - function installMessageChannelImplementation() { - var channel = new MessageChannel(); - channel.port1.onmessage = function(event) { - var handle = event.data; - runIfPresent(handle); - }; - - registerImmediate = function(handle) { - channel.port2.postMessage(handle); - }; - } - - function installReadyStateChangeImplementation() { - var html = doc.documentElement; - registerImmediate = function(handle) { - // Create a