diff --git a/.eslintignore b/.eslintignore
index 65b9ea36c..7ddb8ccfe 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -26,3 +26,8 @@ test/blanket_mocha.js
# TypeScript generated files
ts/**/*.js
+
+# Libloki specific files
+libloki/test/components.js
+libloki/mnemonic.js
+libloki/sc_reduce32.js
diff --git a/.eslintrc.js b/.eslintrc.js
index 9bc431d91..34ab52aaa 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -39,6 +39,9 @@ module.exports = {
// consistently place operators at end of line except ternaries
'operator-linebreak': 'error',
+ // Use LF to stay consistent
+ 'linebreak-style': ['error', 'unix'],
+
quotes: [
'error',
'single',
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..b83a209d5
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,10 @@
+* text=auto
+*.js text eol=lf
+*.ts text eol=lf
+*.tsx text eol=lf
+*.scss text eol=lf
+*.json text eol=lf
+*.css text eol=lf
+*.html text eol=lf
+*.yaml text eol=lf
+*.yml text eol=lf
diff --git a/.prettierignore b/.prettierignore
index c75a6c5ce..50862cc2d 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -19,6 +19,10 @@ ts/protobuf/*.js
stylesheets/manifest.css
ts/util/lint/exceptions.json
+# Libloki specific files
+libloki/test/test.js
+libloki/test/components.js
+
# Third-party files
node_modules/**
components/**
diff --git a/.travis.yml b/.travis.yml
index 74ba422ca..9de89d951 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,6 +9,7 @@ install:
- travis_wait 30 yarn install --frozen-lockfile --network-timeout 1000000
script:
- yarn generate
+ - yarn lint-windows
- yarn test
env:
global:
@@ -35,3 +36,9 @@ matrix:
cache: false
env:
- YARN_GPG=no
+ before_install:
+ - cd ../..
+ - mv $TRAVIS_REPO_SLUG _old
+ - git config --global core.autocrlf false
+ - git clone --depth=50 _old $TRAVIS_REPO_SLUG
+ - cd $TRAVIS_REPO_SLUG
diff --git a/Gruntfile.js b/Gruntfile.js
index 8921a0d79..49aa631b0 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -181,7 +181,7 @@ module.exports = grunt => {
tasks: ['sass'],
},
transpile: {
- files: ['./ts/**/*.ts','./ts/**/*.tsx'],
+ files: ['./ts/**/*.ts', './ts/**/*.tsx'],
tasks: ['exec:transpile'],
},
},
@@ -491,7 +491,11 @@ module.exports = grunt => {
'locale-patch',
]);
grunt.registerTask('dev', ['default', 'watch']);
- grunt.registerTask('test', ['unit-tests', 'lib-unit-tests', 'loki-unit-tests']);
+ grunt.registerTask('test', [
+ 'unit-tests',
+ 'lib-unit-tests',
+ 'loki-unit-tests',
+ ]);
grunt.registerTask('date', ['gitinfo', 'getExpireTime']);
grunt.registerTask('default', [
'exec:build-protobuf',
diff --git a/_locales/en/messages.json b/_locales/en/messages.json
index adf54dd88..cb2a0c8c0 100644
--- a/_locales/en/messages.json
+++ b/_locales/en/messages.json
@@ -1084,11 +1084,13 @@
"description": "Title of the Message TTL setting"
},
"messageTTLSettingDescription": {
- "message": "Time to live (how long the recipient will have to collect their messages)",
+ "message":
+ "Time to live (how long the recipient will have to collect their messages)",
"description": "Description of the time to live setting"
},
"messageTTLSettingWarning": {
- "message": "Warning! Lowering the TTL could result in messages being lost if the recipient doesn't collect them in time!",
+ "message":
+ "Warning! Lowering the TTL could result in messages being lost if the recipient doesn't collect them in time!",
"description": "Warning for the time to live setting"
},
"notificationSettingsDialog": {
@@ -1629,23 +1631,28 @@
},
"friendRequestPending": {
"message": "Friend request",
- "description": "Shown in the conversation history when the user sends or recieves a friend request"
+ "description":
+ "Shown in the conversation history when the user sends or recieves a friend request"
},
"friendRequestAccepted": {
"message": "Friend request accepted",
- "description": "Shown in the conversation history when the user accepts a friend request"
+ "description":
+ "Shown in the conversation history when the user accepts a friend request"
},
"friendRequestDeclined": {
"message": "Friend request declined",
- "description": "Shown in the conversation history when the user declines a friend request"
+ "description":
+ "Shown in the conversation history when the user declines a friend request"
},
"friendRequestExpired": {
"message": "Friend request expired",
- "description": "Shown in the conversation history when the users friend request expires"
+ "description":
+ "Shown in the conversation history when the users friend request expires"
},
"friendRequestNotificationTitle": {
"message": "Friend request",
- "description": "Shown in a notification title when receiving a friend request"
+ "description":
+ "Shown in a notification title when receiving a friend request"
},
"friendRequestNotificationMessage": {
"message": "$name$ sent you a friend request",
@@ -1660,7 +1667,8 @@
},
"friendRequestAcceptedNotificationTitle": {
"message": "Friend request accepted",
- "description": "Shown in a notification title when friend request was accepted by the other user"
+ "description":
+ "Shown in a notification title when friend request was accepted by the other user"
},
"friendRequestAcceptedNotificationMessage": {
"message": "$name$ accepted your friend request",
@@ -1681,7 +1689,8 @@
},
"settingsUnblockHeader": {
"message": "Blocked Users",
- "description": "Shown in the settings page as the heading for the blocked user settings"
+ "description":
+ "Shown in the settings page as the heading for the blocked user settings"
},
"editProfileTitle": {
"message": "Change your own display name",
@@ -1694,7 +1703,8 @@
"copyPublicKey": {
"message": "Copy public key",
- "description": "Button action that the user can click to copy their public keys"
+ "description":
+ "Button action that the user can click to copy their public keys"
},
"copiedPublicKey": {
"message": "Copied public key",
@@ -1702,21 +1712,25 @@
},
"editDisplayName": {
"message": "Edit display name",
- "description": "Button action that the user can click to edit their display name"
+ "description":
+ "Button action that the user can click to edit their display name"
},
"showSeed": {
"message": "Show seed",
- "description": "Button action that the user can click to view their unique seed"
+ "description":
+ "Button action that the user can click to view their unique seed"
},
"copiedMnemonic": {
"message": "Copied seed to clipboard",
- "description": "A toast message telling the user that the mnemonic seed was copied"
+ "description":
+ "A toast message telling the user that the mnemonic seed was copied"
},
"passwordViewTitle": {
"message": "Type in your password",
- "description": "The title shown when user needs to type in a password to unlock the messenger"
+ "description":
+ "The title shown when user needs to type in a password to unlock the messenger"
},
"unlock": {
"message": "Unlock"
@@ -1765,15 +1779,18 @@
},
"passwordLengthError": {
"message": "Password must be between 6 and 50 characters long",
- "description": "Error string shown to the user when password doesn't meet length criteria"
+ "description":
+ "Error string shown to the user when password doesn't meet length criteria"
},
"passwordTypeError": {
"message": "Password must be a string",
- "description": "Error string shown to the user when password is not a string"
+ "description":
+ "Error string shown to the user when password is not a string"
},
"passwordCharacterError": {
"message": "Password must only contain letters, numbers and symbols",
- "description": "Error string shown to the user when password contains an invalid character"
+ "description":
+ "Error string shown to the user when password contains an invalid character"
},
"change": {
"message": "Change"
@@ -1784,5 +1801,4 @@
"remove": {
"message": "Remove"
}
-
}
diff --git a/app/password_util.js b/app/password_util.js
index def0b90bb..49a774f55 100644
--- a/app/password_util.js
+++ b/app/password_util.js
@@ -6,8 +6,9 @@ const ERRORS = {
CHARACTER: 'Password must only contain letters, numbers and symbols',
};
-const generateHash = (phrase) => phrase && sha512(phrase.trim());
-const matchesHash = (phrase, hash) => phrase && sha512(phrase.trim()) === hash.trim();
+const generateHash = phrase => phrase && sha512(phrase.trim());
+const matchesHash = (phrase, hash) =>
+ phrase && sha512(phrase.trim()) === hash.trim();
const validatePassword = (phrase, i18n) => {
if (!phrase || typeof phrase !== 'string') {
@@ -20,13 +21,13 @@ const validatePassword = (phrase, i18n) => {
}
// Restrict characters to letters, numbers and symbols
- const characterRegex = /^[a-zA-Z0-9-!()._`~@#$%^&*+=[\]{}|<>,;: ]+$/
+ const characterRegex = /^[a-zA-Z0-9-!()._`~@#$%^&*+=[\]{}|<>,;: ]+$/;
if (!characterRegex.test(trimmed)) {
return i18n ? i18n('passwordCharacterError') : ERRORS.CHARACTER;
}
return null;
-}
+};
module.exports = {
generateHash,
diff --git a/app/profile_images.js b/app/profile_images.js
index d416894a2..339f80fed 100644
--- a/app/profile_images.js
+++ b/app/profile_images.js
@@ -15,8 +15,7 @@ const hasImage = pubKey => fs.existsSync(getImagePath(pubKey));
const getImagePath = pubKey => `${PATH}/${pubKey}.png`;
const getOrCreateImagePath = pubKey => {
// If the image doesn't exist then create it
- if (!hasImage(pubKey))
- return generateImage(pubKey);
+ if (!hasImage(pubKey)) return generateImage(pubKey);
return getImagePath(pubKey);
};
@@ -25,10 +24,11 @@ const removeImage = pubKey => {
if (hasImage(pubKey)) {
fs.unlinkSync(getImagePath(pubKey));
}
-}
+};
const removeImagesNotInArray = pubKeyArray => {
- fs.readdirSync(PATH)
+ fs
+ .readdirSync(PATH)
// Get all files that end with png
.filter(file => file.includes('.png'))
// Strip the extension
@@ -37,7 +37,7 @@ const removeImagesNotInArray = pubKeyArray => {
.filter(i => !pubKeyArray.includes(i))
// Remove them
.forEach(i => removeImage(i));
-}
+};
const generateImage = pubKey => {
const imagePath = getImagePath(pubKey);
@@ -52,8 +52,8 @@ const generateImage = pubKey => {
background: [0, 0, 0, 0],
}).toString();
fs.writeFileSync(imagePath, png, 'base64');
- return imagePath
-}
+ return imagePath;
+};
module.exports = {
generateImage,
diff --git a/app/sql.js b/app/sql.js
index 2134db456..8f8122cc9 100644
--- a/app/sql.js
+++ b/app/sql.js
@@ -724,9 +724,12 @@ async function getPreKeyById(id) {
return getById(PRE_KEYS_TABLE, id);
}
async function getPreKeyByRecipient(recipient) {
- const row = await db.get(`SELECT * FROM ${PRE_KEYS_TABLE} WHERE recipient = $recipient;`, {
- $recipient: recipient,
- });
+ const row = await db.get(
+ `SELECT * FROM ${PRE_KEYS_TABLE} WHERE recipient = $recipient;`,
+ {
+ $recipient: recipient,
+ }
+ );
if (!row) {
return null;
@@ -769,9 +772,12 @@ async function getContactPreKeyById(id) {
return getById(CONTACT_PRE_KEYS_TABLE, id);
}
async function getContactPreKeyByIdentityKey(key) {
- const row = await db.get(`SELECT * FROM ${CONTACT_PRE_KEYS_TABLE} WHERE identityKeyString = $identityKeyString ORDER BY keyId DESC LIMIT 1;`, {
- $identityKeyString: key,
- });
+ const row = await db.get(
+ `SELECT * FROM ${CONTACT_PRE_KEYS_TABLE} WHERE identityKeyString = $identityKeyString ORDER BY keyId DESC LIMIT 1;`,
+ {
+ $identityKeyString: key,
+ }
+ );
if (!row) {
return null;
@@ -792,9 +798,12 @@ async function bulkAddContactPreKeys(array) {
return bulkAdd(CONTACT_PRE_KEYS_TABLE, array);
}
async function removeContactPreKeyByIdentityKey(key) {
- await db.run(`DELETE FROM ${CONTACT_PRE_KEYS_TABLE} WHERE identityKeyString = $identityKeyString;`, {
- $identityKeyString: key,
- });
+ await db.run(
+ `DELETE FROM ${CONTACT_PRE_KEYS_TABLE} WHERE identityKeyString = $identityKeyString;`,
+ {
+ $identityKeyString: key,
+ }
+ );
}
async function removeAllContactPreKeys() {
return removeAllFromTable(CONTACT_PRE_KEYS_TABLE);
@@ -825,9 +834,12 @@ async function getContactSignedPreKeyById(id) {
return getById(CONTACT_SIGNED_PRE_KEYS_TABLE, id);
}
async function getContactSignedPreKeyByIdentityKey(key) {
- const row = await db.get(`SELECT * FROM ${CONTACT_SIGNED_PRE_KEYS_TABLE} WHERE identityKeyString = $identityKeyString;`, {
- $identityKeyString: key,
- });
+ const row = await db.get(
+ `SELECT * FROM ${CONTACT_SIGNED_PRE_KEYS_TABLE} WHERE identityKeyString = $identityKeyString;`,
+ {
+ $identityKeyString: key,
+ }
+ );
if (!row) {
return null;
@@ -847,9 +859,12 @@ async function bulkAddContactSignedPreKeys(array) {
return bulkAdd(CONTACT_SIGNED_PRE_KEYS_TABLE, array);
}
async function removeContactSignedPreKeyByIdentityKey(key) {
- await db.run(`DELETE FROM ${CONTACT_SIGNED_PRE_KEYS_TABLE} WHERE identityKeyString = $identityKeyString;`, {
- $identityKeyString: key,
- });
+ await db.run(
+ `DELETE FROM ${CONTACT_SIGNED_PRE_KEYS_TABLE} WHERE identityKeyString = $identityKeyString;`,
+ {
+ $identityKeyString: key,
+ }
+ );
}
async function removeAllContactSignedPreKeys() {
return removeAllFromTable(CONTACT_SIGNED_PRE_KEYS_TABLE);
@@ -1049,8 +1064,16 @@ async function getConversationCount() {
}
async function saveConversation(data) {
- // eslint-disable-next-line camelcase
- const { id, active_at, type, members, name, friendRequestStatus, profileName } = data;
+ const {
+ id,
+ // eslint-disable-next-line camelcase
+ active_at,
+ type,
+ members,
+ name,
+ friendRequestStatus,
+ profileName,
+ } = data;
await db.run(
`INSERT INTO conversations (
@@ -1105,8 +1128,16 @@ async function saveConversations(arrayOfConversations) {
}
async function updateConversation(data) {
- // eslint-disable-next-line camelcase
- const { id, active_at, type, members, name, friendRequestStatus, profileName } = data;
+ const {
+ id,
+ // eslint-disable-next-line camelcase
+ active_at,
+ type,
+ members,
+ name,
+ friendRequestStatus,
+ profileName,
+ } = data;
await db.run(
`UPDATE conversations SET
@@ -1366,10 +1397,7 @@ async function saveSeenMessageHashes(arrayOfHashes) {
}
async function saveSeenMessageHash(data) {
- const {
- expiresAt,
- hash,
- } = data;
+ const { expiresAt, hash } = data;
await db.run(
`INSERT INTO seenMessages (
expiresAt,
@@ -1377,7 +1405,8 @@ async function saveSeenMessageHash(data) {
) values (
$expiresAt,
$hash
- );`, {
+ );`,
+ {
$expiresAt: expiresAt,
$hash: hash,
}
@@ -1489,7 +1518,8 @@ async function getMessagesByConversation(
conversationId,
{ limit = 100, receivedAt = Number.MAX_VALUE, type = '%' } = {}
) {
- const rows = await db.all(`
+ const rows = await db.all(
+ `
SELECT json FROM messages WHERE
conversationId = $conversationId AND
received_at < $received_at AND
@@ -1522,7 +1552,9 @@ async function getMessagesBySentAt(sentAt) {
async function getSeenMessagesByHashList(hashes) {
const rows = await db.all(
- `SELECT * FROM seenMessages WHERE hash IN ( ${hashes.map(() => '?').join(', ')} );`,
+ `SELECT * FROM seenMessages WHERE hash IN ( ${hashes
+ .map(() => '?')
+ .join(', ')} );`,
hashes
);
diff --git a/js/background.js b/js/background.js
index f266fb6c8..f086a83e5 100644
--- a/js/background.js
+++ b/js/background.js
@@ -12,7 +12,7 @@
*/
// eslint-disable-next-line func-names
-(async function () {
+(async function() {
'use strict';
// Globally disable drag and drop
@@ -240,12 +240,11 @@
setMessageTTL: value => {
// Make sure the ttl is between a given range and is valid
const intValue = parseInt(value, 10);
- const ttl = Number.isNaN(intValue) ? 24 : intValue;
+ const ttl = Number.isNaN(intValue) ? 24 : intValue;
storage.put('message-ttl', ttl);
},
- getReadReceiptSetting: () =>
- storage.get('read-receipt-setting'),
+ getReadReceiptSetting: () => storage.get('read-receipt-setting'),
setReadReceiptSetting: value =>
storage.put('read-receipt-setting', value),
getNotificationSetting: () =>
@@ -331,12 +330,19 @@
window.log.info('Cleanup: starting...');
const results = await Promise.all([
- window.Signal.Data.getOutgoingWithoutExpiresAt({ MessageCollection: Whisper.MessageCollection }),
- window.Signal.Data.getAllUnsentMessages({ MessageCollection: Whisper.MessageCollection }),
+ window.Signal.Data.getOutgoingWithoutExpiresAt({
+ MessageCollection: Whisper.MessageCollection,
+ }),
+ window.Signal.Data.getAllUnsentMessages({
+ MessageCollection: Whisper.MessageCollection,
+ }),
]);
// Combine the models
- const messagesForCleanup = results.reduce((array, current) => array.concat(current.toArray()), []);
+ const messagesForCleanup = results.reduce(
+ (array, current) => array.concat(current.toArray()),
+ []
+ );
window.log.info(
`Cleanup: Found ${messagesForCleanup.length} messages for cleanup`
@@ -350,7 +356,10 @@
);
// Make sure we only target outgoing messages
- if (message.isFriendRequest() && message.get('direction') === 'incoming') {
+ if (
+ message.isFriendRequest() &&
+ message.get('direction') === 'incoming'
+ ) {
return;
}
@@ -392,7 +401,7 @@
let isMigrationWithIndexComplete = false;
window.log.info(
`Starting background data migration. Target version: ${
- Message.CURRENT_SCHEMA_VERSION
+ Message.CURRENT_SCHEMA_VERSION
}`
);
idleDetector.on('idle', async () => {
@@ -589,7 +598,7 @@
title: window.i18n('editProfileTitle'),
message: window.i18n('editProfileDisplayNameWarning'),
nickname: displayName,
- onOk: async (newName) => {
+ onOk: async newName => {
await storage.setProfileName(newName);
// Update the conversation if we have it
@@ -599,7 +608,7 @@
conversation.setProfile(newProfile);
}
},
- })
+ });
}
});
@@ -1346,7 +1355,7 @@
type: 'friend-request',
friendStatus: 'pending',
direction: 'incoming',
- }
+ };
}
const message = new Whisper.Message(messageData);
@@ -1371,7 +1380,7 @@
} catch (error) {
window.log.error(
`Failed to send delivery receipt to ${data.source} for message ${
- data.timestamp
+ data.timestamp
}:`,
error && error.stack ? error.stack : error
);
diff --git a/js/blocked_number_controller.js b/js/blocked_number_controller.js
index 7f4b3792c..918a21749 100644
--- a/js/blocked_number_controller.js
+++ b/js/blocked_number_controller.js
@@ -21,7 +21,9 @@
window.log.info('BlockedNumberController: starting initial fetch');
if (!storage) {
- throw new Error('BlockedNumberController: Could not load blocked numbers');
+ throw new Error(
+ 'BlockedNumberController: Could not load blocked numbers'
+ );
}
// Add the numbers to the collection
@@ -40,8 +42,7 @@
storage.addBlockedNumber(number);
// Make sure we don't add duplicates
- if (blockedNumbers.getModel(number))
- return;
+ if (blockedNumbers.getModel(number)) return;
blockedNumbers.add({ number });
},
diff --git a/js/conversation_controller.js b/js/conversation_controller.js
index 3abe9561a..feaa2e1eb 100644
--- a/js/conversation_controller.js
+++ b/js/conversation_controller.js
@@ -80,9 +80,16 @@
const contactCollection = new (Backbone.Collection.extend({
initialize() {
- this.on('change:timestamp change:name change:number change:profileName', this.sort);
+ this.on(
+ 'change:timestamp change:name change:number change:profileName',
+ this.sort
+ );
- this.listenTo(conversations, 'add change:active_at change:friendRequestStatus', this.addActive);
+ this.listenTo(
+ conversations,
+ 'add change:active_at change:friendRequestStatus',
+ this.addActive
+ );
this.listenTo(conversations, 'reset', () => this.reset([]));
this.collator = new Intl.Collator();
@@ -193,7 +200,9 @@
return conversation;
};
- conversation.initialPromise = create().then(() => conversation.updateProfileAvatar());
+ conversation.initialPromise = create().then(() =>
+ conversation.updateProfileAvatar()
+ );
return conversation;
},
@@ -265,7 +274,9 @@
await Promise.all(promises);
// Remove any unused images
- window.profileImages.removeImagesNotInArray(conversations.map(c => c.id));
+ window.profileImages.removeImagesNotInArray(
+ conversations.map(c => c.id)
+ );
window.log.info('ConversationController: done with initial fetch');
} catch (error) {
diff --git a/js/logging.js b/js/logging.js
index f93073362..e2fec0d44 100644
--- a/js/logging.js
+++ b/js/logging.js
@@ -54,7 +54,7 @@ if (window.console) {
console._log = console.log;
console.log = log;
console._trace = console.trace;
- console._debug = console.debug
+ console._debug = console.debug;
console._info = console.info;
console._warn = console.warn;
console._error = console.error;
@@ -101,7 +101,7 @@ function fetch() {
}
const publish = debuglogs.upload;
-const development = (window.getEnvironment() !== 'production');
+const development = window.getEnvironment() !== 'production';
// A modern logging interface for the browser
diff --git a/js/models/blockedNumbers.js b/js/models/blockedNumbers.js
index f61716d68..b4604c2fc 100644
--- a/js/models/blockedNumbers.js
+++ b/js/models/blockedNumbers.js
@@ -89,5 +89,4 @@
return this.models.find(m => m.get('number') === number);
},
});
-
})();
diff --git a/js/models/conversations.js b/js/models/conversations.js
index 2e3b70b7e..82035aef9 100644
--- a/js/models/conversations.js
+++ b/js/models/conversations.js
@@ -11,7 +11,7 @@
/* eslint-disable more/no-then */
// eslint-disable-next-line func-names
-(function () {
+(function() {
'use strict';
window.Whisper = window.Whisper || {};
@@ -35,6 +35,7 @@
upgradeMessageSchema,
loadAttachmentData,
getAbsoluteAttachmentPath,
+ // eslint-disable-next-line no-unused-vars
writeNewAttachmentData,
deleteAttachmentData,
} = window.Signal.Migrations;
@@ -323,7 +324,9 @@
if (this.id !== pubKey) return;
// Go through our messages and find the one that we need to update
- const messages = this.messageCollection.models.filter(m => m.get('sent_at') === timestamp);
+ const messages = this.messageCollection.models.filter(
+ m => m.get('sent_at') === timestamp
+ );
await Promise.all(messages.map(m => m.setCalculatingPoW()));
},
@@ -372,8 +375,7 @@
// Get the pending friend requests that match the direction
// If no direction is supplied then return all pending friend requests
return messages.models.filter(m => {
- if (m.get('friendStatus') !== 'pending')
- return false;
+ if (m.get('friendStatus') !== 'pending') return false;
return direction === null || m.get('direction') === direction;
});
},
@@ -462,7 +464,7 @@
if (!this.isPrivate()) {
throw new Error(
'You cannot verify a group conversation. ' +
- 'You must verify individual contacts.'
+ 'You must verify individual contacts.'
);
}
@@ -547,18 +549,27 @@
},
isPendingFriendRequest() {
const status = this.get('friendRequestStatus');
- return status === FriendRequestStatusEnum.requestSent ||
+ return (
+ status === FriendRequestStatusEnum.requestSent ||
status === FriendRequestStatusEnum.requestReceived ||
- status === FriendRequestStatusEnum.pendingSend;
+ status === FriendRequestStatusEnum.pendingSend
+ );
},
hasSentFriendRequest() {
- return this.get('friendRequestStatus') === FriendRequestStatusEnum.requestSent;
+ return (
+ this.get('friendRequestStatus') === FriendRequestStatusEnum.requestSent
+ );
},
hasReceivedFriendRequest() {
- return this.get('friendRequestStatus') === FriendRequestStatusEnum.requestReceived;
+ return (
+ this.get('friendRequestStatus') ===
+ FriendRequestStatusEnum.requestReceived
+ );
},
isFriend() {
- return this.get('friendRequestStatus') === FriendRequestStatusEnum.friends;
+ return (
+ this.get('friendRequestStatus') === FriendRequestStatusEnum.friends
+ );
},
updateTextInputState() {
switch (this.get('friendRequestStatus')) {
@@ -582,8 +593,7 @@
},
async setFriendRequestStatus(newStatus) {
// Ensure that the new status is a valid FriendStatusEnum value
- if (!(newStatus in Object.values(FriendRequestStatusEnum)))
- return;
+ if (!(newStatus in Object.values(FriendRequestStatusEnum))) return;
if (this.get('friendRequestStatus') !== newStatus) {
this.set({ friendRequestStatus: newStatus });
await window.Signal.Data.updateConversation(this.id, this.attributes, {
@@ -610,7 +620,9 @@
);
},
async resetPendingSend() {
- if (this.get('friendRequestStatus') === FriendRequestStatusEnum.pendingSend) {
+ if (
+ this.get('friendRequestStatus') === FriendRequestStatusEnum.pendingSend
+ ) {
await this.setFriendRequestStatus(FriendRequestStatusEnum.none);
}
},
@@ -645,8 +657,7 @@
},
async onFriendRequestTimeout() {
// Unset the timer
- if (this.unlockTimer)
- clearTimeout(this.unlockTimer);
+ if (this.unlockTimer) clearTimeout(this.unlockTimer);
this.unlockTimer = null;
@@ -745,7 +756,7 @@
if (!this.isPrivate()) {
throw new Error(
'You cannot set a group conversation as trusted. ' +
- 'You must set individual contacts as trusted.'
+ 'You must set individual contacts as trusted.'
);
}
@@ -1055,9 +1066,9 @@
fileName: fileName || null,
thumbnail: thumbnail
? {
- ...(await loadAttachmentData(thumbnail)),
- objectUrl: getAbsoluteAttachmentPath(thumbnail.path),
- }
+ ...(await loadAttachmentData(thumbnail)),
+ objectUrl: getAbsoluteAttachmentPath(thumbnail.path),
+ }
: null,
};
})
@@ -1067,8 +1078,7 @@
async sendMessage(body, attachments, quote) {
// Input should be blocked if there is a pending friend request
- if (this.isPendingFriendRequest())
- return;
+ if (this.isPendingFriendRequest()) return;
this.clearTypingTimers();
@@ -1108,7 +1118,9 @@
});
} else {
// Check if we have sent a friend request
- const outgoingRequests = await this.getPendingFriendRequests('outgoing');
+ const outgoingRequests = await this.getPendingFriendRequests(
+ 'outgoing'
+ );
if (outgoingRequests.length > 0) {
// Check if the requests have errored, if so then remove them
// and send the new request if possible
@@ -1128,7 +1140,9 @@
// because one of them was sent successfully
if (friendRequestSent) return null;
}
- await this.setFriendRequestStatus(FriendRequestStatusEnum.pendingSend);
+ await this.setFriendRequestStatus(
+ FriendRequestStatusEnum.pendingSend
+ );
// Send the friend request!
messageWithSchema = await upgradeMessageSchema({
@@ -1213,7 +1227,7 @@
options
)
)
- )
+ );
});
return true;
@@ -1375,8 +1389,8 @@
accessKey && sealedSender === SEALED_SENDER.ENABLED
? accessKey
: window.Signal.Crypto.arrayBufferToBase64(
- window.Signal.Crypto.getRandomBytes(16)
- ),
+ window.Signal.Crypto.getRandomBytes(16)
+ ),
},
};
},
@@ -1533,8 +1547,7 @@
},
async setSessionResetStatus(newStatus) {
// Ensure that the new status is a valid SessionResetEnum value
- if (!(newStatus in Object.values(SessionResetEnum)))
- return;
+ if (!(newStatus in Object.values(SessionResetEnum))) return;
if (this.get('sessionResetStatus') !== newStatus) {
this.set({ sessionResetStatus: newStatus });
await window.Signal.Data.updateConversation(this.id, this.attributes, {
@@ -1553,7 +1566,9 @@
},
isSessionResetReceived() {
- return this.get('sessionResetStatus') === SessionResetEnum.request_received;
+ return (
+ this.get('sessionResetStatus') === SessionResetEnum.request_received
+ );
},
isSessionResetOngoing() {
@@ -1585,7 +1600,10 @@
// send empty message to confirm that we have adopted the new session
await window.libloki.api.sendEmptyMessage(this.id);
}
- await this.createAndStoreEndSessionMessage({ type: 'incoming', endSessionType: 'done' });
+ await this.createAndStoreEndSessionMessage({
+ type: 'incoming',
+ endSessionType: 'done',
+ });
await this.setSessionResetStatus(SessionResetEnum.none);
},
@@ -1594,13 +1612,22 @@
// Only create a new message if *we* initiated the session reset.
// On the receiver side, the actual message containing the END_SESSION flag
// will ensure the "session reset" message will be added to their conversation.
- if (this.get('sessionResetStatus') !== SessionResetEnum.request_received) {
+ if (
+ this.get('sessionResetStatus') !== SessionResetEnum.request_received
+ ) {
await this.onSessionResetInitiated();
- const message = await this.createAndStoreEndSessionMessage({ type: 'outgoing', endSessionType: 'ongoing' });
+ const message = await this.createAndStoreEndSessionMessage({
+ type: 'outgoing',
+ endSessionType: 'ongoing',
+ });
const options = this.getSendOptions();
await message.send(
this.wrapSend(
- textsecure.messaging.resetSession(this.id, message.get('sent_at'), options)
+ textsecure.messaging.resetSession(
+ this.id,
+ message.get('sent_at'),
+ options
+ )
)
);
if (message.hasErrors()) {
@@ -1700,7 +1727,7 @@
} else {
window.log.warn(
'Marked a message as read in the database, but ' +
- 'it was not in messageCollection.'
+ 'it was not in messageCollection.'
);
}
@@ -2063,7 +2090,8 @@
const color = this.getColor();
const avatar = this.get('avatar') || this.get('profileAvatar');
- const url = avatar && avatar.path ? getAbsoluteAttachmentPath(avatar.path) : avatar;
+ const url =
+ avatar && avatar.path ? getAbsoluteAttachmentPath(avatar.path) : avatar;
if (url) {
return { url, color };
@@ -2091,7 +2119,7 @@
notify(message) {
if (message.isFriendRequest()) {
if (this.hasSentFriendRequest())
- return this.notifyFriendRequest(message.get('source'), 'accepted')
+ return this.notifyFriendRequest(message.get('source'), 'accepted');
return this.notifyFriendRequest(message.get('source'), 'requested');
}
if (!message.isIncoming()) return Promise.resolve();
@@ -2127,8 +2155,7 @@
// Notification for friend request received
async notifyFriendRequest(source, type) {
// Data validation
- if (!source)
- throw new Error('Invalid source');
+ if (!source) throw new Error('Invalid source');
if (!['accepted', 'requested'].includes(type))
throw new Error('Type must be accepted or requested.');
diff --git a/js/models/messages.js b/js/models/messages.js
index 6f919391d..57e3786e7 100644
--- a/js/models/messages.js
+++ b/js/models/messages.js
@@ -12,7 +12,7 @@
/* eslint-disable more/no-then */
// eslint-disable-next-line func-names
-(function () {
+(function() {
'use strict';
window.Whisper = window.Whisper || {};
@@ -202,8 +202,7 @@
getNotificationText() {
const description = this.getDescription();
if (description) {
- if (this.isFriendRequest())
- return `Friend Request: ${description}`;
+ if (this.isFriendRequest()) return `Friend Request: ${description}`;
return description;
}
if (this.get('attachments').length > 0) {
@@ -364,7 +363,7 @@
onBlockUser,
onUnblockUser,
onRetrySend,
- }
+ };
},
findContact(phoneNumber) {
return ConversationController.get(phoneNumber);
@@ -444,7 +443,8 @@
// Handle friend request statuses
const isFriendRequest = this.isFriendRequest();
- const isOutgoingFriendRequest = isFriendRequest && this.get('direction') === 'outgoing';
+ const isOutgoingFriendRequest =
+ isFriendRequest && this.get('direction') === 'outgoing';
const isOutgoing = this.isOutgoing() || isOutgoingFriendRequest;
// Only return the status on outgoing messages
@@ -562,8 +562,8 @@
contact.number && contact.number[0] && contact.number[0].value;
const onSendMessage = firstNumber
? () => {
- this.trigger('open-conversation', firstNumber);
- }
+ this.trigger('open-conversation', firstNumber);
+ }
: null;
const onClick = async () => {
// First let's be sure that the signal account check is complete.
@@ -602,8 +602,8 @@
!path && !objectUrl
? null
: Object.assign({}, attachment.thumbnail || {}, {
- objectUrl: path || objectUrl,
- });
+ objectUrl: path || objectUrl,
+ });
return Object.assign({}, attachment, {
isVoiceMessage: Signal.Types.Attachment.isVoiceMessage(attachment),
@@ -670,15 +670,15 @@
url: getAbsoluteAttachmentPath(path),
screenshot: screenshot
? {
- ...screenshot,
- url: getAbsoluteAttachmentPath(screenshot.path),
- }
+ ...screenshot,
+ url: getAbsoluteAttachmentPath(screenshot.path),
+ }
: null,
thumbnail: thumbnail
? {
- ...thumbnail,
- url: getAbsoluteAttachmentPath(thumbnail.path),
- }
+ ...thumbnail,
+ url: getAbsoluteAttachmentPath(thumbnail.path),
+ }
: null,
};
},
@@ -1143,7 +1143,7 @@
errors = errors.concat(this.get('errors') || []);
if (this.isEndSession) {
- this.set({ endSessionType: 'failed'});
+ this.set({ endSessionType: 'failed' });
}
this.set({ errors });
@@ -1407,7 +1407,9 @@
autoAccept = true;
message.set({ friendStatus: 'accepted' });
await conversation.onFriendRequestAccepted();
- window.libloki.api.sendFriendRequestAccepted(message.get('source'));
+ window.libloki.api.sendFriendRequestAccepted(
+ message.get('source')
+ );
} else if (!conversation.isFriend()) {
await conversation.onFriendRequestReceived();
}
@@ -1445,7 +1447,7 @@
if (previousUnread !== message.get('unread')) {
window.log.warn(
'Caught race condition on new message read state! ' +
- 'Manually starting timers.'
+ 'Manually starting timers.'
);
// We call markRead() even though the message is already
// marked read because we need to start expiration
@@ -1464,8 +1466,7 @@
// Need to do this here because the conversation has already changed states
if (autoAccept)
await conversation.notifyFriendRequest(source, 'accepted');
- else
- await conversation.notify(message);
+ else await conversation.notify(message);
}
confirm();
diff --git a/js/models/profile.js b/js/models/profile.js
index c20d49bbb..6a92504d4 100644
--- a/js/models/profile.js
+++ b/js/models/profile.js
@@ -14,9 +14,9 @@
storage.getLocalProfile = () => {
const profile = storage.get(PROFILE_ID, null);
return profile;
- }
+ };
- storage.setProfileName = async (newName) => {
+ storage.setProfileName = async newName => {
if (typeof newName !== 'string' && newName !== null) {
throw Error('Name must be a string!');
}
@@ -33,13 +33,13 @@
} else {
newProfile.name = {
displayName: trimmed,
- }
+ };
}
await storage.saveLocalProfile(newProfile);
- }
+ };
- storage.saveLocalProfile = async (profile) => {
+ storage.saveLocalProfile = async profile => {
const storedProfile = storage.get(PROFILE_ID, null);
// Only store the profile if we have a different object
@@ -49,10 +49,10 @@
window.log.info('saving local profile ', profile);
await storage.put(PROFILE_ID, profile);
- }
+ };
storage.removeLocalProfile = async () => {
window.log.info('removing local profile');
await storage.remove(PROFILE_ID);
- }
+ };
})();
diff --git a/js/modules/data.js b/js/modules/data.js
index 9a1d34649..510fe0c48 100644
--- a/js/modules/data.js
+++ b/js/modules/data.js
@@ -573,7 +573,6 @@ async function removeAllContactSignedPreKeys() {
await channels.removeAllContactSignedPreKeys();
}
-
// Items
const ITEM_KEYS = {
@@ -690,7 +689,7 @@ async function saveConversations(data) {
}
async function getConversationById(id, { Conversation }) {
- const rawData = await channels.getConversationById(id)
+ const rawData = await channels.getConversationById(id);
const data = setifyProperty(rawData, 'swarmNodes');
return new Conversation(data);
}
@@ -725,8 +724,9 @@ async function _removeConversations(ids) {
}
async function getAllConversations({ ConversationCollection }) {
- const conversations = (await channels.getAllConversations())
- .map(c => setifyProperty(c, 'swarmNodes'));
+ const conversations = (await channels.getAllConversations()).map(c =>
+ setifyProperty(c, 'swarmNodes')
+ );
const collection = new ConversationCollection();
collection.add(conversations);
@@ -739,8 +739,9 @@ async function getAllConversationIds() {
}
async function getAllPrivateConversations({ ConversationCollection }) {
- const conversations = (await channels.getAllPrivateConversations())
- .map(c => setifyProperty(c, 'swarmNodes'));
+ const conversations = (await channels.getAllPrivateConversations()).map(c =>
+ setifyProperty(c, 'swarmNodes')
+ );
const collection = new ConversationCollection();
collection.add(conversations);
@@ -748,8 +749,9 @@ async function getAllPrivateConversations({ ConversationCollection }) {
}
async function getAllGroupsInvolvingId(id, { ConversationCollection }) {
- const conversations = (await channels.getAllGroupsInvolvingId(id))
- .map(c => setifyProperty(c, 'swarmNodes'));
+ const conversations = (await channels.getAllGroupsInvolvingId(id)).map(c =>
+ setifyProperty(c, 'swarmNodes')
+ );
const collection = new ConversationCollection();
collection.add(conversations);
@@ -757,8 +759,9 @@ async function getAllGroupsInvolvingId(id, { ConversationCollection }) {
}
async function searchConversations(query, { ConversationCollection }) {
- const conversations = (await channels.searchConversations(query))
- .map(c => setifyProperty(c, 'swarmNodes'));
+ const conversations = (await channels.searchConversations(query)).map(c =>
+ setifyProperty(c, 'swarmNodes')
+ );
const collection = new ConversationCollection();
collection.add(conversations);
@@ -905,9 +908,7 @@ async function getMessagesByConversation(
return new MessageCollection(messages);
}
-async function getSeenMessagesByHashList(
- hashes
-) {
+async function getSeenMessagesByHashList(hashes) {
const seenMessages = await channels.getSeenMessagesByHashList(hashes);
return seenMessages;
}
diff --git a/js/modules/loki_message_api.js b/js/modules/loki_message_api.js
index dbeb50dd7..1a3a47c54 100644
--- a/js/modules/loki_message_api.js
+++ b/js/modules/loki_message_api.js
@@ -4,21 +4,18 @@
const fetch = require('node-fetch');
// eslint-disable-next-line
-const invert = p => new Promise((res, rej) => p.then(rej, res));
+const invert = p => new Promise((res, rej) => p.then(rej, res));
const firstOf = ps => invert(Promise.all(ps.map(invert)));
// Will be raised (to 3?) when we get more nodes
const MINIMUM_SUCCESSFUL_REQUESTS = 2;
class LokiMessageAPI {
-
constructor({ messageServerPort }) {
- this.messageServerPort = messageServerPort
- ? `:${messageServerPort}`
- : '';
+ this.messageServerPort = messageServerPort ? `:${messageServerPort}` : '';
}
async sendMessage(pubKey, data, messageTimeStamp, ttl) {
- const swarmNodes = await window.LokiSnodeAPI.getSwarmNodesByPubkey(pubKey)
+ const swarmNodes = await window.LokiSnodeAPI.getSwarmNodesByPubkey(pubKey);
if (!swarmNodes || swarmNodes.size === 0) {
throw Error('No swarm nodes to query!');
}
@@ -33,7 +30,14 @@ class LokiMessageAPI {
timestamp: messageTimeStamp,
});
const development = window.getEnvironment() !== 'production';
- nonce = await callWorker('calcPoW', timestamp, ttl, pubKey, data64, development);
+ nonce = await callWorker(
+ 'calcPoW',
+ timestamp,
+ ttl,
+ pubKey,
+ data64,
+ development
+ );
} catch (err) {
// Something went horribly wrong
throw err;
@@ -84,14 +88,19 @@ class LokiMessageAPI {
if (response.status >= 0 && response.status < 400) {
return result;
}
- log.error(options.type, options.url, response.status, 'Error sending message');
+ log.error(
+ options.type,
+ options.url,
+ response.status,
+ 'Error sending message'
+ );
throw HTTPError('sendMessage: error response', response.status, result);
});
try {
// TODO: Possibly change this to require more than a single response?
const result = await firstOf(requests);
return result;
- } catch(err) {
+ } catch (err) {
throw err;
}
}
@@ -128,7 +137,12 @@ class LokiMessageAPI {
} catch (e) {
// TODO: Maybe we shouldn't immediately delete?
// And differentiate between different connectivity issues
- log.error(options.type, options.url, 0, `Error retrieving messages from ${nodeUrl}`);
+ log.error(
+ options.type,
+ options.url,
+ 0,
+ `Error retrieving messages from ${nodeUrl}`
+ );
window.LokiSnodeAPI.unreachableNode(ourKey, nodeUrl);
return;
}
@@ -155,7 +169,7 @@ class LokiMessageAPI {
}
// Handle error from snode
log.error(options.type, options.url, response.status, 'Error');
- }
+ };
while (completedRequests < MINIMUM_SUCCESSFUL_REQUESTS) {
const remainingRequests = MINIMUM_SUCCESSFUL_REQUESTS - completedRequests;
diff --git a/js/modules/loki_snode_api.js b/js/modules/loki_snode_api.js
index d4e0d1553..80b999909 100644
--- a/js/modules/loki_snode_api.js
+++ b/js/modules/loki_snode_api.js
@@ -8,15 +8,12 @@ const dns = require('dns');
const MINIMUM_SWARM_NODES = 1;
class LokiSnodeAPI {
-
constructor({ url, swarmServerPort }) {
if (!is.string(url)) {
throw new Error('WebAPI.initialize: Invalid server url');
}
this.url = url;
- this.swarmServerPort = swarmServerPort
- ? `:${swarmServerPort}`
- : '';
+ this.swarmServerPort = swarmServerPort ? `:${swarmServerPort}` : '';
this.swarmsPendingReplenish = {};
this.ourSwarmNodes = {};
}
@@ -25,7 +22,7 @@ class LokiSnodeAPI {
/* resolve random snode */
return new Promise((resolve, reject) => {
dns.resolveCname(this.url, (err, address) => {
- if(err) {
+ if (err) {
reject(err);
} else {
resolve(address[0]);
@@ -43,9 +40,13 @@ class LokiSnodeAPI {
const swarmNodes = conversation.get('swarmNodes');
if (swarmNodes.delete(nodeUrl)) {
conversation.set({ swarmNodes });
- await window.Signal.Data.updateConversation(conversation.id, conversation.attributes, {
- Conversation: Whisper.Conversation,
- });
+ await window.Signal.Data.updateConversation(
+ conversation.id,
+ conversation.attributes,
+ {
+ Conversation: Whisper.Conversation,
+ }
+ );
}
}
@@ -53,7 +54,7 @@ class LokiSnodeAPI {
if (!this.ourSwarmNodes[nodeUrl]) {
this.ourSwarmNodes[nodeUrl] = {
lastHash: hash,
- }
+ };
} else {
this.ourSwarmNodes[nodeUrl].lastHash = hash;
}
@@ -69,7 +70,7 @@ class LokiSnodeAPI {
const ourKey = window.textsecure.storage.user.getNumber();
const nodeAddresses = await window.LokiSnodeAPI.getSwarmNodes(ourKey);
if (!nodeAddresses || nodeAddresses.length === 0) {
- throw Error('Could not load our swarm')
+ throw Error('Could not load our swarm');
}
nodeAddresses.forEach(url => {
@@ -91,8 +92,8 @@ class LokiSnodeAPI {
async replenishSwarm(pubKey) {
const conversation = window.ConversationController.get(pubKey);
if (!(pubKey in this.swarmsPendingReplenish)) {
- this.swarmsPendingReplenish[pubKey] = new Promise(async (resolve) => {
- let newSwarmNodes
+ this.swarmsPendingReplenish[pubKey] = new Promise(async resolve => {
+ let newSwarmNodes;
try {
newSwarmNodes = new Set(await this.getSwarmNodes(pubKey));
} catch (e) {
@@ -100,9 +101,13 @@ class LokiSnodeAPI {
newSwarmNodes = new Set([]);
}
conversation.set({ swarmNodes: newSwarmNodes });
- await window.Signal.Data.updateConversation(conversation.id, conversation.attributes, {
- Conversation: Whisper.Conversation,
- });
+ await window.Signal.Data.updateConversation(
+ conversation.id,
+ conversation.attributes,
+ {
+ Conversation: Whisper.Conversation,
+ }
+ );
resolve(newSwarmNodes);
});
}
@@ -129,7 +134,7 @@ class LokiSnodeAPI {
params: {
pubkey: pubKey,
},
- }
+ };
const fetchOptions = {
method: options.type,
@@ -144,7 +149,12 @@ class LokiSnodeAPI {
try {
response = await fetch(options.url, fetchOptions);
} catch (e) {
- log.error(options.type, options.url, 0, `Error getting swarm nodes for ${pubKey}`);
+ log.error(
+ options.type,
+ options.url,
+ 0,
+ `Error getting swarm nodes for ${pubKey}`
+ );
throw HTTPError('fetch error', 0, e.toString());
}
@@ -163,7 +173,12 @@ class LokiSnodeAPI {
if (response.status >= 0 && response.status < 400) {
return result.nodes;
}
- log.error(options.type, options.url, response.status, `Error getting swarm nodes for ${pubKey}`);
+ log.error(
+ options.type,
+ options.url,
+ response.status,
+ `Error getting swarm nodes for ${pubKey}`
+ );
throw HTTPError('sendMessage: error response', response.status, result);
}
}
diff --git a/js/modules/util_worker_interface.js b/js/modules/util_worker_interface.js
index 79306516b..82fafcc74 100644
--- a/js/modules/util_worker_interface.js
+++ b/js/modules/util_worker_interface.js
@@ -9,7 +9,7 @@ class TimedOutError extends Error {
if (typeof Error.captureStackTrace === 'function') {
Error.captureStackTrace(this, this.constructor);
} else {
- this.stack = (new Error(message)).stack;
+ this.stack = new Error(message).stack;
}
}
}
@@ -46,7 +46,7 @@ class WorkerInterface {
};
}
- _makeJob (fnName) {
+ _makeJob(fnName) {
this._jobCounter += 1;
const id = this._jobCounter;
@@ -59,7 +59,7 @@ class WorkerInterface {
};
return id;
- };
+ }
_updateJob(id, data) {
const { resolve, reject } = data;
@@ -85,7 +85,7 @@ class WorkerInterface {
return reject(error);
},
};
- };
+ }
_removeJob(id) {
if (this._DEBUG) {
@@ -97,7 +97,7 @@ class WorkerInterface {
_getJob(id) {
return this._jobs[id];
- };
+ }
callWorker(fnName, ...args) {
const jobId = this._makeJob(fnName);
@@ -112,11 +112,14 @@ class WorkerInterface {
});
setTimeout(
- () => reject(new TimedOutError(`Worker job ${jobId} (${fnName}) timed out`)),
+ () =>
+ reject(
+ new TimedOutError(`Worker job ${jobId} (${fnName}) timed out`)
+ ),
this.timeout
);
});
- };
+ }
}
module.exports = {
diff --git a/js/notifications.js b/js/notifications.js
index 5295b2a96..f7f46324f 100644
--- a/js/notifications.js
+++ b/js/notifications.js
@@ -87,14 +87,18 @@
let iconUrl;
// The number of notifications excluding friend request
- const messagesNotificationCount = this.models.filter(n => !n.get('isFriendRequest')).length;
+ const messagesNotificationCount = this.models.filter(
+ n => !n.get('isFriendRequest')
+ ).length;
// NOTE: i18n has more complex rules for pluralization than just
// distinguishing between zero (0) and other (non-zero),
// e.g. Russian:
// http://docs.translatehouse.org/projects/localization-guide/en/latest/l10n/pluralforms.html
const newMessageCountLabel = `${messagesNotificationCount} ${
- messagesNotificationCount === 1 ? i18n('newMessage') : i18n('newMessages')
+ messagesNotificationCount === 1
+ ? i18n('newMessage')
+ : i18n('newMessages')
}`;
const last = this.last().toJSON();
diff --git a/js/signal_protocol_store.js b/js/signal_protocol_store.js
index 76f001aa6..be56da563 100644
--- a/js/signal_protocol_store.js
+++ b/js/signal_protocol_store.js
@@ -1,5 +1,14 @@
-/* global
- dcodeIO, Backbone, _, libsignal, textsecure, ConversationController, stringObject, BlockedNumberController */
+/*
+ global
+ dcodeIO,
+ Backbone,
+ _,
+ libsignal,
+ textsecure,
+ ConversationController,
+ stringObject,
+ BlockedNumberController
+*/
/* eslint-disable no-proto */
@@ -187,7 +196,10 @@
const key = await window.Signal.Data.getPreKeyByRecipient(contactPubKey);
if (key) {
- window.log.info('Successfully fetched prekey for recipient:', contactPubKey);
+ window.log.info(
+ 'Successfully fetched prekey for recipient:',
+ contactPubKey
+ );
return {
pubKey: key.publicKey,
privKey: key.privateKey,
diff --git a/js/util_worker_tasks.js b/js/util_worker_tasks.js
index a1310e706..446ee7da8 100644
--- a/js/util_worker_tasks.js
+++ b/js/util_worker_tasks.js
@@ -41,6 +41,24 @@ function stringToArrayBufferBase64(string) {
function arrayBufferToStringBase64(arrayBuffer) {
return dcodeIO.ByteBuffer.wrap(arrayBuffer).toString('base64');
}
-function calcPoW(timestamp, ttl, pubKey, data, development, nonceTrials = undefined, increment = 1, startNonce = 0) {
- return pow.calcPoW(timestamp, ttl, pubKey, data, development, nonceTrials, increment, startNonce);
+function calcPoW(
+ timestamp,
+ ttl,
+ pubKey,
+ data,
+ development,
+ nonceTrials = undefined,
+ increment = 1,
+ startNonce = 0
+) {
+ return pow.calcPoW(
+ timestamp,
+ ttl,
+ pubKey,
+ data,
+ development,
+ nonceTrials,
+ increment,
+ startNonce
+ );
}
diff --git a/js/views/blocked_number_view.js b/js/views/blocked_number_view.js
index 51f53dd03..3b8696355 100644
--- a/js/views/blocked_number_view.js
+++ b/js/views/blocked_number_view.js
@@ -8,87 +8,89 @@
// eslint-disable-next-line func-names
(function() {
- 'use strict';
+ 'use strict';
- window.Whisper = window.Whisper || {};
+ window.Whisper = window.Whisper || {};
- Whisper.BlockedNumberView = Whisper.View.extend({
- templateName: 'blockedUserSettings',
- className: 'blockedUserSettings',
- events: {
- 'click .unblock-button': 'onUnblock',
- },
- initialize() {
- storage.onready(() => {
- BlockedNumberController.refresh();
- this.collection = getBlockedNumbers();
- this.listView = new Whisper.BlockedNumberListView({
- collection: this.collection,
- });
-
- this.listView.render();
- this.blockedUserSettings = this.$('.blocked-user-settings');
- this.blockedUserSettings.prepend(this.listView.el);
+ Whisper.BlockedNumberView = Whisper.View.extend({
+ templateName: 'blockedUserSettings',
+ className: 'blockedUserSettings',
+ events: {
+ 'click .unblock-button': 'onUnblock',
+ },
+ initialize() {
+ storage.onready(() => {
+ BlockedNumberController.refresh();
+ this.collection = getBlockedNumbers();
+ this.listView = new Whisper.BlockedNumberListView({
+ collection: this.collection,
});
- },
- render_attributes() {
- return {
- blockedHeader: i18n('settingsUnblockHeader'),
- unblockMessage: i18n('unblockUser'),
- };
- },
- onUnblock() {
- const number = this.$('select option:selected').val();
- if (!number) return;
- if (BlockedNumberController.isBlocked(number)) {
- BlockedNumberController.unblock(number);
- window.onUnblockNumber(number);
- this.listView.collection.remove(this.listView.collection.where({ number }));
- }
- },
- });
+ this.listView.render();
+ this.blockedUserSettings = this.$('.blocked-user-settings');
+ this.blockedUserSettings.prepend(this.listView.el);
+ });
+ },
+ render_attributes() {
+ return {
+ blockedHeader: i18n('settingsUnblockHeader'),
+ unblockMessage: i18n('unblockUser'),
+ };
+ },
+ onUnblock() {
+ const number = this.$('select option:selected').val();
+ if (!number) return;
+ if (BlockedNumberController.isBlocked(number)) {
+ BlockedNumberController.unblock(number);
+ window.onUnblockNumber(number);
+ this.listView.collection.remove(
+ this.listView.collection.where({ number })
+ );
+ }
+ },
+ });
Whisper.BlockedNumberListView = Whisper.View.extend({
- tagName: 'select',
- initialize(options) {
- this.options = options || {};
- this.listenTo(this.collection, 'add', this.addOne);
- this.listenTo(this.collection, 'reset', this.addAll);
- this.listenTo(this.collection, 'remove', this.addAll);
- },
- addOne(model) {
- const number = model.get('number');
- if (number) {
- this.$el.append(``);
- }
- },
- addAll() {
- this.$el.html('');
- this.collection.each(this.addOne, this);
- },
- truncate(string, limit) {
- // Make sure an element and number of items to truncate is provided
- if (!string || !limit) return string;
+ tagName: 'select',
+ initialize(options) {
+ this.options = options || {};
+ this.listenTo(this.collection, 'add', this.addOne);
+ this.listenTo(this.collection, 'reset', this.addAll);
+ this.listenTo(this.collection, 'remove', this.addAll);
+ },
+ addOne(model) {
+ const number = model.get('number');
+ if (number) {
+ this.$el.append(
+ ``
+ );
+ }
+ },
+ addAll() {
+ this.$el.html('');
+ this.collection.each(this.addOne, this);
+ },
+ truncate(string, limit) {
+ // Make sure an element and number of items to truncate is provided
+ if (!string || !limit) return string;
- // Get the inner content of the element
- let content = string.trim();
+ // Get the inner content of the element
+ let content = string.trim();
- // Convert the content into an array of words
- // Remove any words above the limit
- content = content.slice(0, limit);
+ // Convert the content into an array of words
+ // Remove any words above the limit
+ content = content.slice(0, limit);
- // Convert the array of words back into a string
- // If there's content to add after it, add it
- if (string.length > limit)
- content = `${content}...`;
+ // Convert the array of words back into a string
+ // If there's content to add after it, add it
+ if (string.length > limit) content = `${content}...`;
- return content;
- },
- render() {
- this.addAll();
- return this;
- },
- });
- })();
+ return content;
+ },
+ render() {
+ this.addAll();
+ return this;
+ },
+ });
+})();
diff --git a/js/views/conversation_list_item_view.js b/js/views/conversation_list_item_view.js
index b4142c392..ff6eb7bf1 100644
--- a/js/views/conversation_list_item_view.js
+++ b/js/views/conversation_list_item_view.js
@@ -42,8 +42,7 @@
props,
});
- const update = () =>
- this.childView.update(this.getProps());
+ const update = () => this.childView.update(this.getProps());
this.listenTo(this.model, 'change', update);
@@ -54,14 +53,16 @@
});
// list of conversations, showing user/group and last message sent
- Whisper.ConversationContactListItemView = Whisper.ConversationListItemView.extend({
- getProps() {
- // We don't want to show a timestamp or a message
- const props = this.model.getPropsForListItem();
- delete props.lastMessage;
- delete props.lastUpdated;
+ Whisper.ConversationContactListItemView = Whisper.ConversationListItemView.extend(
+ {
+ getProps() {
+ // We don't want to show a timestamp or a message
+ const props = this.model.getPropsForListItem();
+ delete props.lastMessage;
+ delete props.lastUpdated;
- return props;
- },
- });
+ return props;
+ },
+ }
+ );
})();
diff --git a/js/views/conversation_search_view.js b/js/views/conversation_search_view.js
index eb1d3a398..234f8f739 100644
--- a/js/views/conversation_search_view.js
+++ b/js/views/conversation_search_view.js
@@ -21,7 +21,10 @@
},
render_attributes() {
// Show the appropriate message based on model validity
- const message = this.model && this.model.isValid() ? i18n('startConversation') : i18n('invalidNumberError');
+ const message =
+ this.model && this.model.isValid()
+ ? i18n('startConversation')
+ : i18n('invalidNumberError');
return {
number: message,
title: this.model.getNumber(),
@@ -70,7 +73,6 @@
filterContacts() {
const query = this.$input.val().trim();
if (query.length) {
-
// Update the contact model
this.new_contact_view.model.set('id', query);
this.new_contact_view.render().$el.hide();
diff --git a/js/views/conversation_view.js b/js/views/conversation_view.js
index ecbc57969..b4588e3de 100644
--- a/js/views/conversation_view.js
+++ b/js/views/conversation_view.js
@@ -13,7 +13,7 @@
*/
// eslint-disable-next-line func-names
-(function () {
+(function() {
'use strict';
window.Whisper = window.Whisper || {};
@@ -321,8 +321,7 @@
},
onChangePlaceholder(type) {
- if (!this.$messageField)
- return;
+ if (!this.$messageField) return;
let placeholder;
switch (type) {
case 'friend-request':
@@ -1623,10 +1622,15 @@
}
const input = this.$messageField;
- const inputMessage = window.Signal.Emoji.replaceColons(input.val()).trim();
+ const inputMessage = window.Signal.Emoji.replaceColons(
+ input.val()
+ ).trim();
// Limit the message to 2000 characters
- const message = inputMessage.substring(0, Math.min(2000, inputMessage.length));
+ const message = inputMessage.substring(
+ 0,
+ Math.min(2000, inputMessage.length)
+ );
try {
if (!message.length && !this.fileInput.hasFiles()) {
diff --git a/js/views/inbox_view.js b/js/views/inbox_view.js
index 922a992aa..3df51ffcf 100644
--- a/js/views/inbox_view.js
+++ b/js/views/inbox_view.js
@@ -150,11 +150,7 @@
);
// Listen to any conversation remove
- this.listenTo(
- inboxCollection,
- 'remove',
- this.closeConversation
- );
+ this.listenTo(inboxCollection, 'remove', this.closeConversation);
// Friends
const contactCollection = getContactCollection();
@@ -335,8 +331,14 @@
},
updateInboxSectionUnread() {
const $section = this.$('.section-conversations-unread-counter');
- const models = (this.inboxListView.collection && this.inboxListView.collection.models) || [];
- const unreadCount = models.reduce((count, m) => count + Math.max(0, m.get('unreadCount')), 0);
+ const models =
+ (this.inboxListView.collection &&
+ this.inboxListView.collection.models) ||
+ [];
+ const unreadCount = models.reduce(
+ (count, m) => count + Math.max(0, m.get('unreadCount')),
+ 0
+ );
$section.text(unreadCount);
if (unreadCount > 0) {
$section.show();
@@ -350,7 +352,7 @@
getMainHeaderItems() {
return [
this._mainHeaderItem('copyPublicKey', () => {
- const ourNumber = textsecure.storage.user.getNumber();
+ const ourNumber = textsecure.storage.user.getNumber();
clipboard.writeText(ourNumber);
this.showToastMessageInGutter(i18n('copiedPublicKey'));
@@ -367,17 +369,18 @@
const hasPassword = await Signal.Data.getPasswordHash();
const items = this.getMainHeaderItems();
- const showPasswordDialog = (type, resolve) => Whisper.events.trigger('showPasswordDialog', {
- type,
- resolve,
- });
+ const showPasswordDialog = (type, resolve) =>
+ Whisper.events.trigger('showPasswordDialog', {
+ type,
+ resolve,
+ });
- const passwordItem = (textKey, type) => this._mainHeaderItem(
- textKey,
- () => showPasswordDialog(type, () => {
- this.showToastMessageInGutter(i18n(`${textKey}Success`));
- })
- );
+ const passwordItem = (textKey, type) =>
+ this._mainHeaderItem(textKey, () =>
+ showPasswordDialog(type, () => {
+ this.showToastMessageInGutter(i18n(`${textKey}Success`));
+ })
+ );
if (hasPassword) {
items.push(
@@ -385,9 +388,7 @@
passwordItem('removePassword', 'remove')
);
} else {
- items.push(
- passwordItem('setPassword', 'set')
- );
+ items.push(passwordItem('setPassword', 'set'));
}
this.mainHeaderView.updateItems(items);
diff --git a/js/views/main_header_view.js b/js/views/main_header_view.js
index 77da0632e..7a7470e12 100644
--- a/js/views/main_header_view.js
+++ b/js/views/main_header_view.js
@@ -2,59 +2,61 @@
// eslint-disable-next-line func-names
(function() {
- 'use strict';
+ 'use strict';
- window.Whisper = window.Whisper || {};
+ window.Whisper = window.Whisper || {};
- Whisper.MainHeaderView = Whisper.View.extend({
- templateName: 'main-header-placeholder',
- events: {
- 'click .main-header-title-wrapper': 'onClick',
- 'click .edit-name': 'onEditProfile',
- 'click .copy-key': 'onCopyKey',
- },
- initialize(options) {
- this.ourNumber = textsecure.storage.user.getNumber();
- const me = ConversationController.getOrCreate(this.ourNumber, 'private');
+ Whisper.MainHeaderView = Whisper.View.extend({
+ templateName: 'main-header-placeholder',
+ events: {
+ 'click .main-header-title-wrapper': 'onClick',
+ 'click .edit-name': 'onEditProfile',
+ 'click .copy-key': 'onCopyKey',
+ },
+ initialize(options) {
+ this.ourNumber = textsecure.storage.user.getNumber();
+ const me = ConversationController.getOrCreate(this.ourNumber, 'private');
- this.mainHeaderView = new Whisper.ReactWrapperView({
- className: 'main-header-wrapper',
- Component: Signal.Components.MainHeader,
- props: me.format(),
- });
- const update = () => this.mainHeaderView.update(me.format());
- this.listenTo(me, 'change', update);
+ this.mainHeaderView = new Whisper.ReactWrapperView({
+ className: 'main-header-wrapper',
+ Component: Signal.Components.MainHeader,
+ props: me.format(),
+ });
+ const update = () => this.mainHeaderView.update(me.format());
+ this.listenTo(me, 'change', update);
- this.render();
- this.$('.main-header-title-wrapper').prepend(this.mainHeaderView.el);
+ this.render();
+ this.$('.main-header-title-wrapper').prepend(this.mainHeaderView.el);
- this.$toggle = this.$('.main-header-content-toggle');
- this.$content = this.$('.main-header-content-wrapper');
- this.$content.hide();
+ this.$toggle = this.$('.main-header-content-toggle');
+ this.$content = this.$('.main-header-content-wrapper');
+ this.$content.hide();
- this.updateItems(options.items);
- },
- updateItems(items) {
- this.$content.html('');
- (items || []).forEach(item => {
- // Add the item
- this.$content.append(`
${item.text}
`);
+ this.updateItems(options.items);
+ },
+ updateItems(items) {
+ this.$content.html('');
+ (items || []).forEach(item => {
+ // Add the item
+ this.$content.append(
+ `${item.text}
`
+ );
- // Register its callback
- if (item.onClick) {
- this.$(`#${item.id}`).click(item.onClick);
- }
- });
- },
- render_attributes() {
- return {
- items: this.items,
- };
- },
- onClick() {
- // Toggle section visibility
- this.$content.slideToggle('fast');
- this.$toggle.toggleClass('main-header-content-toggle-visible');
- },
- });
- })();
+ // Register its callback
+ if (item.onClick) {
+ this.$(`#${item.id}`).click(item.onClick);
+ }
+ });
+ },
+ render_attributes() {
+ return {
+ items: this.items,
+ };
+ },
+ onClick() {
+ // Toggle section visibility
+ this.$content.slideToggle('fast');
+ this.$toggle.toggleClass('main-header-content-toggle-visible');
+ },
+ });
+})();
diff --git a/js/views/password_dialog_view.js b/js/views/password_dialog_view.js
index d919da1d2..57d2afa00 100644
--- a/js/views/password_dialog_view.js
+++ b/js/views/password_dialog_view.js
@@ -50,10 +50,13 @@
const password = this.$('#password').val();
const passwordConfirmation = this.$('#password-confirmation').val();
- const pairValidation = this.validatePasswordPair(password, passwordConfirmation);
+ const pairValidation = this.validatePasswordPair(
+ password,
+ passwordConfirmation
+ );
const hashValidation = await this.validatePasswordHash(password);
- return (pairValidation || hashValidation);
+ return pairValidation || hashValidation;
},
async validatePasswordHash(password) {
// Check if the password matches the hash we have stored
@@ -65,15 +68,20 @@
},
validatePasswordPair(password, passwordConfirmation) {
if (!_.isEmpty(password)) {
-
// Check if the password is first valid
- const passwordValidation = passwordUtil.validatePassword(password, i18n);
+ const passwordValidation = passwordUtil.validatePassword(
+ password,
+ i18n
+ );
if (passwordValidation) {
return passwordValidation;
}
// Check if the confirmation password is the same
- if (!passwordConfirmation || password.trim() !== passwordConfirmation.trim()) {
+ if (
+ !passwordConfirmation ||
+ password.trim() !== passwordConfirmation.trim()
+ ) {
return i18n('passwordsDoNotMatch');
}
}
@@ -161,8 +169,11 @@
const oldPassword = this.$('#old-password').val();
// Validate the old password
- if (!_.isEmpty(oldPassword) ) {
- const oldPasswordValidation = passwordUtil.validatePassword(oldPassword, i18n);
+ if (!_.isEmpty(oldPassword)) {
+ const oldPasswordValidation = passwordUtil.validatePassword(
+ oldPassword,
+ i18n
+ );
if (oldPasswordValidation) {
return oldPasswordValidation;
}
@@ -173,7 +184,10 @@
const password = this.$('#new-password').val();
const passwordConfirmation = this.$('#new-password-confirmation').val();
- const pairValidation = this.validatePasswordPair(password, passwordConfirmation);
+ const pairValidation = this.validatePasswordPair(
+ password,
+ passwordConfirmation
+ );
const hashValidation = await this.validatePasswordHash(oldPassword);
return pairValidation || hashValidation;
@@ -189,7 +203,6 @@
});
Whisper.getPasswordDialogView = (type, resolve, reject) => {
-
// This is a differently styled dialog
if (type === 'change') {
return new ChangePasswordDialogView({
@@ -201,7 +214,8 @@
}
// Set and Remove is basically the same UI
- const title = type === 'remove' ? i18n('removePassword') : i18n('setPassword');
+ const title =
+ type === 'remove' ? i18n('removePassword') : i18n('setPassword');
const okTitle = type === 'remove' ? i18n('remove') : i18n('set');
return new PasswordDialogView({
title,
diff --git a/js/views/password_view.js b/js/views/password_view.js
index 71a941d6c..7fcdc8278 100644
--- a/js/views/password_view.js
+++ b/js/views/password_view.js
@@ -38,5 +38,4 @@
this.$('.error').text(string);
},
});
-
})();
diff --git a/js/views/standalone_registration_view.js b/js/views/standalone_registration_view.js
index 5a9599aac..e82306c1d 100644
--- a/js/views/standalone_registration_view.js
+++ b/js/views/standalone_registration_view.js
@@ -1,4 +1,4 @@
-/* global Whisper, $, getAccountManager, textsecure, i18n, passwordUtil, ConversationController */
+/* global Whisper, $, getAccountManager, textsecure, i18n, passwordUtil */
/* eslint-disable more/no-then */
@@ -102,7 +102,7 @@
async onGenerateMnemonic() {
const language = this.$('#mnemonic-display-language').val();
const mnemonic = await this.accountManager.generateMnemonic(language);
- this.$('#mnemonic-display').text(mnemonic)
+ this.$('#mnemonic-display').text(mnemonic);
},
onCopyMnemonic() {
window.clipboard.writeText(this.$('#mnemonic-display').text());
@@ -178,8 +178,12 @@
$target.toggleClass('section-toggle-visible');
// Hide the other sections
- this.$('.section-toggle').not($target).removeClass('section-toggle-visible')
- this.$('.section-content').not($next).slideUp('fast');
+ this.$('.section-toggle')
+ .not($target)
+ .removeClass('section-toggle-visible');
+ this.$('.section-content')
+ .not($next)
+ .slideUp('fast');
},
onPasswordChange() {
const input = this.$passwordInput.val();
@@ -193,7 +197,9 @@
},
validatePassword() {
const input = this.trim(this.$passwordInput.val());
- const confirmationInput = this.trim(this.$passwordConfirmationInput.val());
+ const confirmationInput = this.trim(
+ this.$passwordConfirmationInput.val()
+ );
// If user hasn't set a value then skip
if (!input && !confirmationInput) {
@@ -206,7 +212,7 @@
}
if (input !== confirmationInput) {
- return 'Password don\'t match';
+ return "Password don't match";
}
return null;
@@ -222,7 +228,6 @@
this.$passwordInputError.text(passwordValidation);
this.$passwordInputError.show();
-
} else {
this.$passwordInput.removeClass('error-input');
this.$passwordConfirmationInput.removeClass('error-input');
@@ -232,7 +237,9 @@
// Show green box around inputs that match
const input = this.trim(this.$passwordInput.val());
- const confirmationInput = this.trim(this.$passwordConfirmationInput.val());
+ const confirmationInput = this.trim(
+ this.$passwordConfirmationInput.val()
+ );
if (input && input === confirmationInput) {
this.$passwordInput.addClass('match-input');
this.$passwordConfirmationInput.addClass('match-input');
diff --git a/js/views/toast_view.js b/js/views/toast_view.js
index 599e65370..9d4d0b6ea 100644
--- a/js/views/toast_view.js
+++ b/js/views/toast_view.js
@@ -36,5 +36,5 @@
render_attributes() {
return { toastMessage: this.message };
},
- })
+ });
})();
diff --git a/libloki/api.js b/libloki/api.js
index b714e2cb5..80dda5b6b 100644
--- a/libloki/api.js
+++ b/libloki/api.js
@@ -1,7 +1,7 @@
/* global window, textsecure, log */
// eslint-disable-next-line func-names
-(function () {
+(function() {
window.libloki = window.libloki || {};
async function sendFriendRequestAccepted(pubKey) {
diff --git a/libloki/crypto.js b/libloki/crypto.js
index 1042f59c2..8500a237d 100644
--- a/libloki/crypto.js
+++ b/libloki/crypto.js
@@ -1,15 +1,14 @@
/* global window, libsignal, textsecure, StringView */
// eslint-disable-next-line func-names
-(function () {
+(function() {
window.libloki = window.libloki || {};
- class FallBackDecryptionError extends Error { }
+ class FallBackDecryptionError extends Error {}
const IV_LENGTH = 16;
class FallBackSessionCipher {
-
constructor(address) {
this.identityKeyString = address.getName();
this.pubKey = StringView.hexToArrayBuffer(address.getName());
@@ -18,10 +17,19 @@
async encrypt(plaintext) {
const myKeyPair = await textsecure.storage.protocol.getIdentityKeyPair();
const myPrivateKey = myKeyPair.privKey;
- const symmetricKey = libsignal.Curve.calculateAgreement(this.pubKey, myPrivateKey);
+ const symmetricKey = libsignal.Curve.calculateAgreement(
+ this.pubKey,
+ myPrivateKey
+ );
const iv = libsignal.crypto.getRandomBytes(IV_LENGTH);
- const ciphertext = await libsignal.crypto.encrypt(symmetricKey, plaintext, iv);
- const ivAndCiphertext = new Uint8Array(iv.byteLength + ciphertext.byteLength);
+ const ciphertext = await libsignal.crypto.encrypt(
+ symmetricKey,
+ plaintext,
+ iv
+ );
+ const ivAndCiphertext = new Uint8Array(
+ iv.byteLength + ciphertext.byteLength
+ );
ivAndCiphertext.set(new Uint8Array(iv));
ivAndCiphertext.set(new Uint8Array(ciphertext), iv.byteLength);
return {
@@ -36,12 +44,18 @@
const cipherText = ivAndCiphertext.slice(IV_LENGTH);
const myKeyPair = await textsecure.storage.protocol.getIdentityKeyPair();
const myPrivateKey = myKeyPair.privKey;
- const symmetricKey = libsignal.Curve.calculateAgreement(this.pubKey, myPrivateKey);
+ const symmetricKey = libsignal.Curve.calculateAgreement(
+ this.pubKey,
+ myPrivateKey
+ );
try {
return await libsignal.crypto.decrypt(symmetricKey, cipherText, iv);
- }
- catch (e) {
- throw new FallBackDecryptionError(`Could not decrypt message from ${this.identityKeyString} using FallBack encryption.`);
+ } catch (e) {
+ throw new FallBackDecryptionError(
+ `Could not decrypt message from ${
+ this.identityKeyString
+ } using FallBack encryption.`
+ );
}
}
}
diff --git a/libloki/proof-of-work.js b/libloki/proof-of-work.js
index a1f01502e..3901f13e9 100644
--- a/libloki/proof-of-work.js
+++ b/libloki/proof-of-work.js
@@ -15,7 +15,7 @@ const pow = {
newNonce[idx] = sum % 256;
increment = Math.floor(sum / 256);
idx -= 1;
- } while(increment > 0 && idx >= 0);
+ } while (increment > 0 && idx >= 0);
return newNonce;
},
@@ -36,10 +36,7 @@ const pow = {
n = NONCE_LEN - (idx + 1);
// 256 ** n is the value of one bit in arr[idx], modulus to carry over
// (bigInt / 256**n) % 256;
- const denominator = JSBI.exponentiate(
- JSBI.BigInt('256'),
- JSBI.BigInt(n)
- );
+ const denominator = JSBI.exponentiate(JSBI.BigInt('256'), JSBI.BigInt(n));
const fraction = JSBI.divide(bigInt, denominator);
const uint8Val = JSBI.remainder(fraction, JSBI.BigInt(256));
arr[idx] = JSBI.toNumber(uint8Val);
@@ -60,7 +57,16 @@ const pow = {
},
// Return nonce that hashes together with payload lower than the target
- async calcPoW(timestamp, ttl, pubKey, data, development = false, _nonceTrials = null, increment = 1, startNonce = 0) {
+ async calcPoW(
+ timestamp,
+ ttl,
+ pubKey,
+ data,
+ development = false,
+ _nonceTrials = null,
+ increment = 1,
+ startNonce = 0
+ ) {
const payload = new Uint8Array(
dcodeIO.ByteBuffer.wrap(
timestamp.toString() + ttl.toString() + pubKey + data,
@@ -68,7 +74,8 @@ const pow = {
).toArrayBuffer()
);
- const nonceTrials = _nonceTrials || (development ? DEV_NONCE_TRIALS : PROD_NONCE_TRIALS);
+ const nonceTrials =
+ _nonceTrials || (development ? DEV_NONCE_TRIALS : PROD_NONCE_TRIALS);
const target = pow.calcTarget(ttl, payload.length, nonceTrials);
let nonce = new Uint8Array(NONCE_LEN);
@@ -98,25 +105,16 @@ const pow = {
calcTarget(ttl, payloadLen, nonceTrials = PROD_NONCE_TRIALS) {
// payloadLength + NONCE_LEN
- const totalLen = JSBI.add(
- JSBI.BigInt(payloadLen),
- JSBI.BigInt(NONCE_LEN)
- );
+ const totalLen = JSBI.add(JSBI.BigInt(payloadLen), JSBI.BigInt(NONCE_LEN));
// ttl * totalLen
- const ttlMult = JSBI.multiply(
- JSBI.BigInt(ttl),
- JSBI.BigInt(totalLen)
- );
+ const ttlMult = JSBI.multiply(JSBI.BigInt(ttl), JSBI.BigInt(totalLen));
// 2^16 - 1
const two16 = JSBI.subtract(
JSBI.exponentiate(JSBI.BigInt(2), JSBI.BigInt(16)), // 2^16
JSBI.BigInt(1)
);
// ttlMult / two16
- const innerFrac = JSBI.divide(
- ttlMult,
- two16
- );
+ const innerFrac = JSBI.divide(ttlMult, two16);
// totalLen + innerFrac
const lenPlusInnerFrac = JSBI.add(totalLen, innerFrac);
// nonceTrials * lenPlusInnerFrac
diff --git a/libloki/sc_reduce32.js b/libloki/sc_reduce32.js
index 1a08a2ca1..51a174cec 100644
--- a/libloki/sc_reduce32.js
+++ b/libloki/sc_reduce32.js
@@ -52,7 +52,9 @@ var ENVIRONMENT_IS_NODE = true;
var ENVIRONMENT_IS_SHELL = false;
if (Module['ENVIRONMENT']) {
- throw new Error('Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)');
+ throw new Error(
+ 'Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)'
+ );
}
// Three configurations we can be running in:
@@ -72,7 +74,10 @@ function locateFile(path) {
if (ENVIRONMENT_IS_NODE) {
scriptDirectory = __dirname + '/';
- if (!(typeof process === 'object' && typeof require === 'function')) throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)');
+ if (!(typeof process === 'object' && typeof require === 'function'))
+ throw new Error(
+ 'not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'
+ );
// Expose functionality in the same simple way that the shells work
// Note that we pollute the global namespace here, otherwise we break in node
@@ -124,9 +129,10 @@ if (ENVIRONMENT_IS_NODE) {
process['exit'](status);
};
- Module['inspect'] = function () { return '[Emscripten Module object]'; };
-} else
-{
+ Module['inspect'] = function() {
+ return '[Emscripten Module object]';
+ };
+} else {
throw new Error('environment detection error');
}
@@ -136,8 +142,18 @@ if (ENVIRONMENT_IS_NODE) {
// console.log is checked first, as 'print' on the web will open a print dialogue
// printErr is preferable to console.warn (works better in shells)
// bind(console) is necessary to fix IE/Edge closed dev tools panel behavior.
-var out = Module['print'] || (typeof console !== 'undefined' ? console.log.bind(console) : (typeof print !== 'undefined' ? print : null));
-var err = Module['printErr'] || (typeof printErr !== 'undefined' ? printErr : ((typeof console !== 'undefined' && console.warn.bind(console)) || out));
+var out =
+ Module['print'] ||
+ (typeof console !== 'undefined'
+ ? console.log.bind(console)
+ : typeof print !== 'undefined'
+ ? print
+ : null);
+var err =
+ Module['printErr'] ||
+ (typeof printErr !== 'undefined'
+ ? printErr
+ : (typeof console !== 'undefined' && console.warn.bind(console)) || out);
// Merge back in the overrides
for (key in moduleOverrides) {
@@ -150,12 +166,22 @@ for (key in moduleOverrides) {
moduleOverrides = undefined;
// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message
-assert(typeof Module['memoryInitializerPrefixURL'] === 'undefined', 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead');
-assert(typeof Module['pthreadMainPrefixURL'] === 'undefined', 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead');
-assert(typeof Module['cdInitializerPrefixURL'] === 'undefined', 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead');
-assert(typeof Module['filePackagePrefixURL'] === 'undefined', 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead');
-
-
+assert(
+ typeof Module['memoryInitializerPrefixURL'] === 'undefined',
+ 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead'
+);
+assert(
+ typeof Module['pthreadMainPrefixURL'] === 'undefined',
+ 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead'
+);
+assert(
+ typeof Module['cdInitializerPrefixURL'] === 'undefined',
+ 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead'
+);
+assert(
+ typeof Module['filePackagePrefixURL'] === 'undefined',
+ 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead'
+);
// Copyright 2017 The Emscripten Authors. All rights reserved.
// Emscripten is available under two separate licenses, the MIT license and the
@@ -169,26 +195,31 @@ var STACK_ALIGN = 16;
// stack management, and other functionality that is provided by the compiled code,
// should not be used before it is ready
stackSave = stackRestore = stackAlloc = setTempRet0 = getTempRet0 = function() {
- abort('cannot use the stack before compiled code is ready to run, and has provided stack access');
+ abort(
+ 'cannot use the stack before compiled code is ready to run, and has provided stack access'
+ );
};
function staticAlloc(size) {
assert(!staticSealed);
var ret = STATICTOP;
STATICTOP = (STATICTOP + size + 15) & -16;
- assert(STATICTOP < TOTAL_MEMORY, 'not enough memory for static allocation - increase TOTAL_MEMORY');
+ assert(
+ STATICTOP < TOTAL_MEMORY,
+ 'not enough memory for static allocation - increase TOTAL_MEMORY'
+ );
return ret;
}
function dynamicAlloc(size) {
assert(DYNAMICTOP_PTR);
- var ret = HEAP32[DYNAMICTOP_PTR>>2];
+ var ret = HEAP32[DYNAMICTOP_PTR >> 2];
var end = (ret + size + 15) & -16;
- HEAP32[DYNAMICTOP_PTR>>2] = end;
+ HEAP32[DYNAMICTOP_PTR >> 2] = end;
if (end >= TOTAL_MEMORY) {
var success = enlargeMemory();
if (!success) {
- HEAP32[DYNAMICTOP_PTR>>2] = ret;
+ HEAP32[DYNAMICTOP_PTR >> 2] = ret;
return 0;
}
}
@@ -197,20 +228,27 @@ function dynamicAlloc(size) {
function alignMemory(size, factor) {
if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default
- var ret = size = Math.ceil(size / factor) * factor;
+ var ret = (size = Math.ceil(size / factor) * factor);
return ret;
}
function getNativeTypeSize(type) {
switch (type) {
- case 'i1': case 'i8': return 1;
- case 'i16': return 2;
- case 'i32': return 4;
- case 'i64': return 8;
- case 'float': return 4;
- case 'double': return 8;
+ case 'i1':
+ case 'i8':
+ return 1;
+ case 'i16':
+ return 2;
+ case 'i32':
+ return 4;
+ case 'i64':
+ return 8;
+ case 'float':
+ return 4;
+ case 'double':
+ return 8;
default: {
- if (type[type.length-1] === '*') {
+ if (type[type.length - 1] === '*') {
return 4; // A pointer
} else if (type[0] === 'i') {
var bits = parseInt(type.substr(1));
@@ -231,24 +269,25 @@ function warnOnce(text) {
}
}
-var asm2wasmImports = { // special asm2wasm imports
- "f64-rem": function(x, y) {
- return x % y;
- },
- "debugger": function() {
- debugger;
- }
+var asm2wasmImports = {
+ // special asm2wasm imports
+ 'f64-rem': function(x, y) {
+ return x % y;
+ },
+ debugger: function() {
+ debugger;
+ },
};
-
-
var jsCallStartIndex = 1;
var functionPointers = new Array(0);
// 'sig' parameter is only used on LLVM wasm backend
function addFunction(func, sig) {
if (typeof sig === 'undefined') {
- err('warning: addFunction(): You should provide a wasm function signature string as a second argument. This is not necessary for asm.js and asm2wasm, but is required for the LLVM wasm backend, so it is recommended for full portability.');
+ err(
+ 'warning: addFunction(): You should provide a wasm function signature string as a second argument. This is not necessary for asm.js and asm2wasm, but is required for the LLVM wasm backend, so it is recommended for full portability.'
+ );
}
var base = 0;
for (var i = base; i < base + 0; i++) {
@@ -261,7 +300,7 @@ function addFunction(func, sig) {
}
function removeFunction(index) {
- functionPointers[index-jsCallStartIndex] = null;
+ functionPointers[index - jsCallStartIndex] = null;
}
var funcWrappers = {};
@@ -293,24 +332,30 @@ function getFuncWrapper(func, sig) {
return sigCache[func];
}
-
function makeBigInt(low, high, unsigned) {
- return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0));
+ return unsigned
+ ? +(low >>> 0) + +(high >>> 0) * 4294967296.0
+ : +(low >>> 0) + +(high | 0) * 4294967296.0;
}
function dynCall(sig, ptr, args) {
if (args && args.length) {
- assert(args.length == sig.length-1);
- assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\'');
+ assert(args.length == sig.length - 1);
+ assert(
+ 'dynCall_' + sig in Module,
+ "bad function pointer type - no table for sig '" + sig + "'"
+ );
return Module['dynCall_' + sig].apply(null, [ptr].concat(args));
} else {
assert(sig.length == 1);
- assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\'');
+ assert(
+ 'dynCall_' + sig in Module,
+ "bad function pointer type - no table for sig '" + sig + "'"
+ );
return Module['dynCall_' + sig].call(null, ptr);
}
}
-
function getCompilerSetting(name) {
throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for getCompilerSetting or emscripten_get_compiler_setting to work';
}
@@ -321,9 +366,21 @@ var Runtime = {
// can minimize any period of breakage.
dynCall: dynCall, // for SDL2 port
// helpful errors
- getTempRet0: function() { abort('getTempRet0() is now a top-level function, after removing the Runtime object. Remove "Runtime."') },
- staticAlloc: function() { abort('staticAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."') },
- stackAlloc: function() { abort('stackAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."') },
+ getTempRet0: function() {
+ abort(
+ 'getTempRet0() is now a top-level function, after removing the Runtime object. Remove "Runtime."'
+ );
+ },
+ staticAlloc: function() {
+ abort(
+ 'staticAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."'
+ );
+ },
+ stackAlloc: function() {
+ abort(
+ 'stackAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."'
+ );
+ },
};
// The address globals begin at. Very low in memory, for code size and optimization opportunities.
@@ -332,7 +389,6 @@ var Runtime = {
// Then 'dynamic' memory for sbrk.
var GLOBAL_BASE = 8;
-
// === Preamble library stuff ===
// Documentation for the public APIs defined in this file must be updated in:
@@ -343,8 +399,6 @@ var GLOBAL_BASE = 8;
// An online HTML version (which may be of a different version of Emscripten)
// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html
-
-
//========================================
// Runtime essentials
//========================================
@@ -370,7 +424,10 @@ var globalScope = this;
// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)
function getCFunc(ident) {
var func = Module['_' + ident]; // closure exported function
- assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported');
+ assert(
+ func,
+ 'Cannot call unknown function ' + ident + ', make sure it is exported'
+ );
return func;
}
@@ -378,36 +435,37 @@ var JSfuncs = {
// Helpers for cwrap -- it can't refer to Runtime directly because it might
// be renamed by closure, instead it calls JSfuncs['stackSave'].body to find
// out what the minified function name is.
- 'stackSave': function() {
- stackSave()
+ stackSave: function() {
+ stackSave();
},
- 'stackRestore': function() {
- stackRestore()
+ stackRestore: function() {
+ stackRestore();
},
// type conversion from js to c
- 'arrayToC' : function(arr) {
+ arrayToC: function(arr) {
var ret = stackAlloc(arr.length);
writeArrayToMemory(arr, ret);
return ret;
},
- 'stringToC' : function(str) {
+ stringToC: function(str) {
var ret = 0;
- if (str !== null && str !== undefined && str !== 0) { // null string
+ if (str !== null && str !== undefined && str !== 0) {
+ // null string
// at most 4 bytes per UTF-8 code point, +1 for the trailing '\0'
var len = (str.length << 2) + 1;
ret = stackAlloc(len);
stringToUTF8(str, ret, len);
}
return ret;
- }
+ },
};
// For fast lookup of conversion functions
var toC = {
- 'string': JSfuncs['stringToC'], 'array': JSfuncs['arrayToC']
+ string: JSfuncs['stringToC'],
+ array: JSfuncs['arrayToC'],
};
-
// C calling interface.
function ccall(ident, returnType, argTypes, args, opts) {
function convertReturnValue(ret) {
@@ -440,39 +498,76 @@ function ccall(ident, returnType, argTypes, args, opts) {
function cwrap(ident, returnType, argTypes, opts) {
return function() {
return ccall(ident, returnType, argTypes, arguments, opts);
- }
+ };
}
/** @type {function(number, number, string, boolean=)} */
function setValue(ptr, value, type, noSafe) {
type = type || 'i8';
- if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
- switch(type) {
- case 'i1': HEAP8[((ptr)>>0)]=value; break;
- case 'i8': HEAP8[((ptr)>>0)]=value; break;
- case 'i16': HEAP16[((ptr)>>1)]=value; break;
- case 'i32': HEAP32[((ptr)>>2)]=value; break;
- case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;
- case 'float': HEAPF32[((ptr)>>2)]=value; break;
- case 'double': HEAPF64[((ptr)>>3)]=value; break;
- default: abort('invalid type for setValue: ' + type);
- }
+ if (type.charAt(type.length - 1) === '*') type = 'i32'; // pointers are 32-bit
+ switch (type) {
+ case 'i1':
+ HEAP8[ptr >> 0] = value;
+ break;
+ case 'i8':
+ HEAP8[ptr >> 0] = value;
+ break;
+ case 'i16':
+ HEAP16[ptr >> 1] = value;
+ break;
+ case 'i32':
+ HEAP32[ptr >> 2] = value;
+ break;
+ case 'i64':
+ (tempI64 = [
+ value >>> 0,
+ ((tempDouble = value),
+ +Math_abs(tempDouble) >= 1.0
+ ? tempDouble > 0.0
+ ? (Math_min(+Math_floor(tempDouble / 4294967296.0), 4294967295.0) |
+ 0) >>>
+ 0
+ : ~~+Math_ceil(
+ (tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0
+ ) >>> 0
+ : 0),
+ ]),
+ (HEAP32[ptr >> 2] = tempI64[0]),
+ (HEAP32[(ptr + 4) >> 2] = tempI64[1]);
+ break;
+ case 'float':
+ HEAPF32[ptr >> 2] = value;
+ break;
+ case 'double':
+ HEAPF64[ptr >> 3] = value;
+ break;
+ default:
+ abort('invalid type for setValue: ' + type);
+ }
}
/** @type {function(number, string, boolean=)} */
function getValue(ptr, type, noSafe) {
type = type || 'i8';
- if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
- switch(type) {
- case 'i1': return HEAP8[((ptr)>>0)];
- case 'i8': return HEAP8[((ptr)>>0)];
- case 'i16': return HEAP16[((ptr)>>1)];
- case 'i32': return HEAP32[((ptr)>>2)];
- case 'i64': return HEAP32[((ptr)>>2)];
- case 'float': return HEAPF32[((ptr)>>2)];
- case 'double': return HEAPF64[((ptr)>>3)];
- default: abort('invalid type for getValue: ' + type);
- }
+ if (type.charAt(type.length - 1) === '*') type = 'i32'; // pointers are 32-bit
+ switch (type) {
+ case 'i1':
+ return HEAP8[ptr >> 0];
+ case 'i8':
+ return HEAP8[ptr >> 0];
+ case 'i16':
+ return HEAP16[ptr >> 1];
+ case 'i32':
+ return HEAP32[ptr >> 2];
+ case 'i64':
+ return HEAP32[ptr >> 2];
+ case 'float':
+ return HEAPF32[ptr >> 2];
+ case 'double':
+ return HEAPF64[ptr >> 3];
+ default:
+ abort('invalid type for getValue: ' + type);
+ }
return null;
}
@@ -512,7 +607,14 @@ function allocate(slab, types, allocator, ptr) {
if (allocator == ALLOC_NONE) {
ret = ptr;
} else {
- ret = [typeof _malloc === 'function' ? _malloc : staticAlloc, stackAlloc, staticAlloc, dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));
+ ret = [
+ typeof _malloc === 'function' ? _malloc : staticAlloc,
+ stackAlloc,
+ staticAlloc,
+ dynamicAlloc,
+ ][allocator === undefined ? ALLOC_STATIC : allocator](
+ Math.max(size, singleType ? 1 : types.length)
+ );
}
if (zeroinit) {
@@ -521,11 +623,11 @@ function allocate(slab, types, allocator, ptr) {
assert((ret & 3) == 0);
stop = ret + (size & ~3);
for (; ptr < stop; ptr += 4) {
- HEAP32[((ptr)>>2)]=0;
+ HEAP32[ptr >> 2] = 0;
}
stop = ret + size;
while (ptr < stop) {
- HEAP8[((ptr++)>>0)]=0;
+ HEAP8[ptr++ >> 0] = 0;
}
return ret;
}
@@ -539,7 +641,10 @@ function allocate(slab, types, allocator, ptr) {
return ret;
}
- var i = 0, type, typeSize, previousType;
+ var i = 0,
+ type,
+ typeSize,
+ previousType;
while (i < size) {
var curr = slab[i];
@@ -552,7 +657,7 @@ function allocate(slab, types, allocator, ptr) {
if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later
- setValue(ret+i, curr, type);
+ setValue(ret + i, curr, type);
// no need to look up size unless type changes, so cache it
if (previousType !== type) {
@@ -581,7 +686,7 @@ function Pointer_stringify(ptr, length) {
var i = 0;
while (1) {
assert(ptr + i < TOTAL_MEMORY);
- t = HEAPU8[(((ptr)+(i))>>0)];
+ t = HEAPU8[(ptr + i) >> 0];
hasUtf |= t;
if (t == 0 && !length) break;
i++;
@@ -595,7 +700,10 @@ function Pointer_stringify(ptr, length) {
var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack
var curr;
while (length > 0) {
- curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)));
+ curr = String.fromCharCode.apply(
+ String,
+ HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))
+ );
ret = ret ? ret + curr : curr;
ptr += MAX_CHUNK;
length -= MAX_CHUNK;
@@ -611,7 +719,7 @@ function Pointer_stringify(ptr, length) {
function AsciiToString(ptr) {
var str = '';
while (1) {
- var ch = HEAP8[((ptr++)>>0)];
+ var ch = HEAP8[ptr++ >> 0];
if (!ch) return str;
str += String.fromCharCode(ch);
}
@@ -627,7 +735,8 @@ function stringToAscii(str, outPtr) {
// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns
// a copy of that string as a Javascript String object.
-var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;
+var UTF8Decoder =
+ typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;
function UTF8ArrayToString(u8Array, idx) {
var endPtr = idx;
// TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.
@@ -647,23 +756,35 @@ function UTF8ArrayToString(u8Array, idx) {
// https://tools.ietf.org/html/rfc3629
u0 = u8Array[idx++];
if (!u0) return str;
- if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }
+ if (!(u0 & 0x80)) {
+ str += String.fromCharCode(u0);
+ continue;
+ }
u1 = u8Array[idx++] & 63;
- if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }
+ if ((u0 & 0xe0) == 0xc0) {
+ str += String.fromCharCode(((u0 & 31) << 6) | u1);
+ continue;
+ }
u2 = u8Array[idx++] & 63;
- if ((u0 & 0xF0) == 0xE0) {
+ if ((u0 & 0xf0) == 0xe0) {
u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
} else {
u3 = u8Array[idx++] & 63;
- if ((u0 & 0xF8) == 0xF0) {
+ if ((u0 & 0xf8) == 0xf0) {
u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3;
} else {
u4 = u8Array[idx++] & 63;
- if ((u0 & 0xFC) == 0xF8) {
+ if ((u0 & 0xfc) == 0xf8) {
u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4;
} else {
u5 = u8Array[idx++] & 63;
- u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5;
+ u0 =
+ ((u0 & 1) << 30) |
+ (u1 << 24) |
+ (u2 << 18) |
+ (u3 << 12) |
+ (u4 << 6) |
+ u5;
}
}
}
@@ -671,7 +792,7 @@ function UTF8ArrayToString(u8Array, idx) {
str += String.fromCharCode(u0);
} else {
var ch = u0 - 0x10000;
- str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
+ str += String.fromCharCode(0xd800 | (ch >> 10), 0xdc00 | (ch & 0x3ff));
}
}
}
@@ -681,7 +802,7 @@ function UTF8ArrayToString(u8Array, idx) {
// a copy of that string as a Javascript String object.
function UTF8ToString(ptr) {
- return UTF8ArrayToString(HEAPU8,ptr);
+ return UTF8ArrayToString(HEAPU8, ptr);
}
// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx',
@@ -698,7 +819,8 @@ function UTF8ToString(ptr) {
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {
- if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.
+ if (!(maxBytesToWrite > 0))
+ // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.
return 0;
var startIdx = outIdx;
@@ -708,38 +830,38 @@ function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {
// See http://unicode.org/faq/utf_bom.html#utf16-3
// For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629
var u = str.charCodeAt(i); // possibly a lead surrogate
- if (u >= 0xD800 && u <= 0xDFFF) {
+ if (u >= 0xd800 && u <= 0xdfff) {
var u1 = str.charCodeAt(++i);
- u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF);
+ u = (0x10000 + ((u & 0x3ff) << 10)) | (u1 & 0x3ff);
}
- if (u <= 0x7F) {
+ if (u <= 0x7f) {
if (outIdx >= endIdx) break;
outU8Array[outIdx++] = u;
- } else if (u <= 0x7FF) {
+ } else if (u <= 0x7ff) {
if (outIdx + 1 >= endIdx) break;
- outU8Array[outIdx++] = 0xC0 | (u >> 6);
+ outU8Array[outIdx++] = 0xc0 | (u >> 6);
outU8Array[outIdx++] = 0x80 | (u & 63);
- } else if (u <= 0xFFFF) {
+ } else if (u <= 0xffff) {
if (outIdx + 2 >= endIdx) break;
- outU8Array[outIdx++] = 0xE0 | (u >> 12);
+ outU8Array[outIdx++] = 0xe0 | (u >> 12);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
- } else if (u <= 0x1FFFFF) {
+ } else if (u <= 0x1fffff) {
if (outIdx + 3 >= endIdx) break;
- outU8Array[outIdx++] = 0xF0 | (u >> 18);
+ outU8Array[outIdx++] = 0xf0 | (u >> 18);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
- } else if (u <= 0x3FFFFFF) {
+ } else if (u <= 0x3ffffff) {
if (outIdx + 4 >= endIdx) break;
- outU8Array[outIdx++] = 0xF8 | (u >> 24);
+ outU8Array[outIdx++] = 0xf8 | (u >> 24);
outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else {
if (outIdx + 5 >= endIdx) break;
- outU8Array[outIdx++] = 0xFC | (u >> 30);
+ outU8Array[outIdx++] = 0xfc | (u >> 30);
outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
@@ -758,8 +880,11 @@ function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF8(str, outPtr, maxBytesToWrite) {
- assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
- return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite);
+ assert(
+ typeof maxBytesToWrite == 'number',
+ 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'
+ );
+ return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
}
// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.
@@ -770,16 +895,17 @@ function lengthBytesUTF8(str) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.
// See http://unicode.org/faq/utf_bom.html#utf16-3
var u = str.charCodeAt(i); // possibly a lead surrogate
- if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);
- if (u <= 0x7F) {
+ if (u >= 0xd800 && u <= 0xdfff)
+ u = (0x10000 + ((u & 0x3ff) << 10)) | (str.charCodeAt(++i) & 0x3ff);
+ if (u <= 0x7f) {
++len;
- } else if (u <= 0x7FF) {
+ } else if (u <= 0x7ff) {
len += 2;
- } else if (u <= 0xFFFF) {
+ } else if (u <= 0xffff) {
len += 3;
- } else if (u <= 0x1FFFFF) {
+ } else if (u <= 0x1fffff) {
len += 4;
- } else if (u <= 0x3FFFFFF) {
+ } else if (u <= 0x3ffffff) {
len += 5;
} else {
len += 6;
@@ -791,9 +917,13 @@ function lengthBytesUTF8(str) {
// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns
// a copy of that string as a Javascript String object.
-var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined;
+var UTF16Decoder =
+ typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined;
function UTF16ToString(ptr) {
- assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!');
+ assert(
+ ptr % 2 == 0,
+ 'Pointer passed to UTF16ToString must be aligned to two bytes!'
+ );
var endPtr = ptr;
// TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.
// Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.
@@ -808,7 +938,7 @@ function UTF16ToString(ptr) {
var str = '';
while (1) {
- var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];
+ var codeUnit = HEAP16[(ptr + i * 2) >> 1];
if (codeUnit == 0) return str;
++i;
// fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.
@@ -829,48 +959,57 @@ function UTF16ToString(ptr) {
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF16(str, outPtr, maxBytesToWrite) {
- assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!');
- assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
+ assert(
+ outPtr % 2 == 0,
+ 'Pointer passed to stringToUTF16 must be aligned to two bytes!'
+ );
+ assert(
+ typeof maxBytesToWrite == 'number',
+ 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'
+ );
// Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.
if (maxBytesToWrite === undefined) {
- maxBytesToWrite = 0x7FFFFFFF;
+ maxBytesToWrite = 0x7fffffff;
}
if (maxBytesToWrite < 2) return 0;
maxBytesToWrite -= 2; // Null terminator.
var startPtr = outPtr;
- var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length;
+ var numCharsToWrite =
+ maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;
for (var i = 0; i < numCharsToWrite; ++i) {
// charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.
var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
- HEAP16[((outPtr)>>1)]=codeUnit;
+ HEAP16[outPtr >> 1] = codeUnit;
outPtr += 2;
}
// Null-terminate the pointer to the HEAP.
- HEAP16[((outPtr)>>1)]=0;
+ HEAP16[outPtr >> 1] = 0;
return outPtr - startPtr;
}
// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.
function lengthBytesUTF16(str) {
- return str.length*2;
+ return str.length * 2;
}
function UTF32ToString(ptr) {
- assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!');
+ assert(
+ ptr % 4 == 0,
+ 'Pointer passed to UTF32ToString must be aligned to four bytes!'
+ );
var i = 0;
var str = '';
while (1) {
- var utf32 = HEAP32[(((ptr)+(i*4))>>2)];
- if (utf32 == 0)
- return str;
+ var utf32 = HEAP32[(ptr + i * 4) >> 2];
+ if (utf32 == 0) return str;
++i;
// Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.
// See http://unicode.org/faq/utf_bom.html#utf16-3
if (utf32 >= 0x10000) {
var ch = utf32 - 0x10000;
- str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
+ str += String.fromCharCode(0xd800 | (ch >> 10), 0xdc00 | (ch & 0x3ff));
} else {
str += String.fromCharCode(utf32);
}
@@ -889,11 +1028,17 @@ function UTF32ToString(ptr) {
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF32(str, outPtr, maxBytesToWrite) {
- assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!');
- assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
+ assert(
+ outPtr % 4 == 0,
+ 'Pointer passed to stringToUTF32 must be aligned to four bytes!'
+ );
+ assert(
+ typeof maxBytesToWrite == 'number',
+ 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'
+ );
// Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.
if (maxBytesToWrite === undefined) {
- maxBytesToWrite = 0x7FFFFFFF;
+ maxBytesToWrite = 0x7fffffff;
}
if (maxBytesToWrite < 4) return 0;
var startPtr = outPtr;
@@ -902,16 +1047,17 @@ function stringToUTF32(str, outPtr, maxBytesToWrite) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
// See http://unicode.org/faq/utf_bom.html#utf16-3
var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
- if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {
+ if (codeUnit >= 0xd800 && codeUnit <= 0xdfff) {
var trailSurrogate = str.charCodeAt(++i);
- codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);
+ codeUnit =
+ (0x10000 + ((codeUnit & 0x3ff) << 10)) | (trailSurrogate & 0x3ff);
}
- HEAP32[((outPtr)>>2)]=codeUnit;
+ HEAP32[outPtr >> 2] = codeUnit;
outPtr += 4;
if (outPtr + 4 > endPtr) break;
}
// Null-terminate the pointer to the HEAP.
- HEAP32[((outPtr)>>2)]=0;
+ HEAP32[outPtr >> 2] = 0;
return outPtr - startPtr;
}
@@ -923,7 +1069,7 @@ function lengthBytesUTF32(str) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
// See http://unicode.org/faq/utf_bom.html#utf16-3
var codeUnit = str.charCodeAt(i);
- if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate.
+ if (codeUnit >= 0xd800 && codeUnit <= 0xdfff) ++i; // possibly a lead surrogate, so skip over the tail surrogate.
len += 4;
}
@@ -948,18 +1094,18 @@ function allocateUTF8OnStack(str) {
}
function demangle(func) {
- warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling');
+ warnOnce(
+ 'warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'
+ );
return func;
}
function demangleAll(text) {
- var regex =
- /__Z[\w\d_]+/g;
- return text.replace(regex,
- function(x) {
- var y = demangle(x);
- return x === y ? x : (y + ' [' + x + ']');
- });
+ var regex = /__Z[\w\d_]+/g;
+ return text.replace(regex, function(x) {
+ var y = demangle(x);
+ return x === y ? x : y + ' [' + x + ']';
+ });
}
function jsStackTrace() {
@@ -969,7 +1115,7 @@ function jsStackTrace() {
// so try that as a special-case.
try {
throw new Error(0);
- } catch(e) {
+ } catch (e) {
err = e;
}
if (!err.stack) {
@@ -994,29 +1140,29 @@ var MIN_TOTAL_MEMORY = 16777216;
function alignUp(x, multiple) {
if (x % multiple > 0) {
- x += multiple - (x % multiple);
+ x += multiple - x % multiple;
}
return x;
}
var HEAP,
-/** @type {ArrayBuffer} */
+ /** @type {ArrayBuffer} */
buffer,
-/** @type {Int8Array} */
+ /** @type {Int8Array} */
HEAP8,
-/** @type {Uint8Array} */
+ /** @type {Uint8Array} */
HEAPU8,
-/** @type {Int16Array} */
+ /** @type {Int16Array} */
HEAP16,
-/** @type {Uint16Array} */
+ /** @type {Uint16Array} */
HEAPU16,
-/** @type {Int32Array} */
+ /** @type {Int32Array} */
HEAP32,
-/** @type {Uint32Array} */
+ /** @type {Uint32Array} */
HEAPU32,
-/** @type {Float32Array} */
+ /** @type {Float32Array} */
HEAPF32,
-/** @type {Float64Array} */
+ /** @type {Float64Array} */
HEAPF64;
function updateGlobalBuffer(buf) {
@@ -1038,55 +1184,86 @@ var STATIC_BASE, STATICTOP, staticSealed; // static area
var STACK_BASE, STACKTOP, STACK_MAX; // stack area
var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk
- STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0;
- staticSealed = false;
-
+STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0;
+staticSealed = false;
// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode.
function writeStackCookie() {
assert((STACK_MAX & 3) == 0);
- HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467;
- HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE;
+ HEAPU32[(STACK_MAX >> 2) - 1] = 0x02135467;
+ HEAPU32[(STACK_MAX >> 2) - 2] = 0x89bacdfe;
}
function checkStackCookie() {
- if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) {
- abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16));
+ if (
+ HEAPU32[(STACK_MAX >> 2) - 1] != 0x02135467 ||
+ HEAPU32[(STACK_MAX >> 2) - 2] != 0x89bacdfe
+ ) {
+ abort(
+ 'Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' +
+ HEAPU32[(STACK_MAX >> 2) - 2].toString(16) +
+ ' ' +
+ HEAPU32[(STACK_MAX >> 2) - 1].toString(16)
+ );
}
// Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own.
- if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!';
+ if (HEAP32[0] !== 0x63736d65 /* 'emsc' */)
+ throw 'Runtime error: The application has corrupted its heap memory area (address zero)!';
}
function abortStackOverflow(allocSize) {
- abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - stackSave() + allocSize) + ' bytes available!');
+ abort(
+ 'Stack overflow! Attempted to allocate ' +
+ allocSize +
+ ' bytes on the stack, but stack has only ' +
+ (STACK_MAX - stackSave() + allocSize) +
+ ' bytes available!'
+ );
}
-
function abortOnCannotGrowMemory() {
- abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which 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 ');
+ abort(
+ 'Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' +
+ TOTAL_MEMORY +
+ ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '
+ );
}
-
function enlargeMemory() {
abortOnCannotGrowMemory();
}
-
var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;
var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216;
-if (TOTAL_MEMORY < TOTAL_STACK) err('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')');
+if (TOTAL_MEMORY < TOTAL_STACK)
+ err(
+ 'TOTAL_MEMORY should be larger than TOTAL_STACK, was ' +
+ TOTAL_MEMORY +
+ '! (TOTAL_STACK=' +
+ TOTAL_STACK +
+ ')'
+ );
// Initialize the runtime's memory
// check for full engine support (use string 'subarray' to avoid closure compiler confusion)
-assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined,
- 'JS engine does not provide full typed array support');
-
-
+assert(
+ typeof Int32Array !== 'undefined' &&
+ typeof Float64Array !== 'undefined' &&
+ Int32Array.prototype.subarray !== undefined &&
+ Int32Array.prototype.set !== undefined,
+ 'JS engine does not provide full typed array support'
+);
// Use a provided buffer, if there is one, or else allocate a new one
if (Module['buffer']) {
buffer = Module['buffer'];
- assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength);
+ assert(
+ buffer.byteLength === TOTAL_MEMORY,
+ 'provided buffer should be ' +
+ TOTAL_MEMORY +
+ ' bytes, but it is ' +
+ buffer.byteLength
+ );
} else {
// Use a WebAssembly memory where available
{
@@ -1097,18 +1274,18 @@ if (Module['buffer']) {
}
updateGlobalBufferViews();
-
function getTotalMemory() {
return TOTAL_MEMORY;
}
// Endianness check (note: assumes compiler arch was little-endian)
- HEAP32[0] = 0x63736d65; /* 'emsc' */
+HEAP32[0] = 0x63736d65; /* 'emsc' */
HEAP16[1] = 0x6373;
-if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!';
+if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63)
+ throw 'Runtime error: expected the system to be little-endian!';
function callRuntimeCallbacks(callbacks) {
- while(callbacks.length > 0) {
+ while (callbacks.length > 0) {
var callback = callbacks.shift();
if (typeof callback == 'function') {
callback();
@@ -1127,20 +1304,20 @@ function callRuntimeCallbacks(callbacks) {
}
}
-var __ATPRERUN__ = []; // functions called before the runtime is initialized
-var __ATINIT__ = []; // functions called during startup
-var __ATMAIN__ = []; // functions called when main() is to be run
-var __ATEXIT__ = []; // functions called during shutdown
+var __ATPRERUN__ = []; // functions called before the runtime is initialized
+var __ATINIT__ = []; // functions called during startup
+var __ATMAIN__ = []; // functions called when main() is to be run
+var __ATEXIT__ = []; // functions called during shutdown
var __ATPOSTRUN__ = []; // functions called after the main() is called
var runtimeInitialized = false;
var runtimeExited = false;
-
function preRun() {
// compatibility - merge in anything from Module['preRun'] at this time
if (Module['preRun']) {
- if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
+ if (typeof Module['preRun'] == 'function')
+ Module['preRun'] = [Module['preRun']];
while (Module['preRun'].length) {
addOnPreRun(Module['preRun'].shift());
}
@@ -1170,7 +1347,8 @@ function postRun() {
checkStackCookie();
// compatibility - merge in anything from Module['postRun'] at this time
if (Module['postRun']) {
- if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];
+ if (typeof Module['postRun'] == 'function')
+ Module['postRun'] = [Module['postRun']];
while (Module['postRun'].length) {
addOnPostRun(Module['postRun'].shift());
}
@@ -1204,7 +1382,9 @@ function addOnPostRun(cb) {
// to be secure from out of bounds writes.
/** @deprecated */
function writeStringToMemory(string, buffer, dontAddNull) {
- warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!');
+ warnOnce(
+ 'writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'
+ );
var /** @type {number} */ lastChar, /** @type {number} */ end;
if (dontAddNull) {
@@ -1219,41 +1399,51 @@ function writeStringToMemory(string, buffer, dontAddNull) {
}
function writeArrayToMemory(array, buffer) {
- assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)')
+ assert(
+ array.length >= 0,
+ 'writeArrayToMemory array must have a length (should be an array or typed array)'
+ );
HEAP8.set(array, buffer);
}
function writeAsciiToMemory(str, buffer, dontAddNull) {
for (var i = 0; i < str.length; ++i) {
- assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff);
- HEAP8[((buffer++)>>0)]=str.charCodeAt(i);
+ assert((str.charCodeAt(i) === str.charCodeAt(i)) & 0xff);
+ HEAP8[buffer++ >> 0] = str.charCodeAt(i);
}
// Null-terminate the pointer to the HEAP.
- if (!dontAddNull) HEAP8[((buffer)>>0)]=0;
+ if (!dontAddNull) HEAP8[buffer >> 0] = 0;
}
function unSign(value, bits, ignore) {
if (value >= 0) {
return value;
}
- return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
- : Math.pow(2, bits) + value;
+ return bits <= 32
+ ? 2 * Math.abs(1 << (bits - 1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
+ : Math.pow(2, bits) + value;
}
function reSign(value, bits, ignore) {
if (value <= 0) {
return value;
}
- var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
- : Math.pow(2, bits-1);
- if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that
- // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
- // TODO: In i64 mode 1, resign the two parts separately and safely
- value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
+ var half =
+ bits <= 32
+ ? Math.abs(1 << (bits - 1)) // abs is needed if bits == 32
+ : Math.pow(2, bits - 1);
+ if (value >= half && (bits <= 32 || value > half)) {
+ // for huge values, we can hit the precision limit and always get true here. so don't do that
+ // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
+ // TODO: In i64 mode 1, resign the two parts separately and safely
+ value = -2 * half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
}
return value;
}
-assert(Math['imul'] && Math['fround'] && Math['clz32'] && Math['trunc'], 'this is a legacy browser, build with LEGACY_VM_SUPPORT');
+assert(
+ Math['imul'] && Math['fround'] && Math['clz32'] && Math['trunc'],
+ 'this is a legacy browser, build with LEGACY_VM_SUPPORT'
+);
var Math_abs = Math.abs;
var Math_cos = Math.cos;
@@ -1356,36 +1546,52 @@ function removeRunDependency(id) {
}
}
-Module["preloadedImages"] = {}; // maps url to image data
-Module["preloadedAudios"] = {}; // maps url to audio data
-
-
+Module['preloadedImages'] = {}; // maps url to image data
+Module['preloadedAudios'] = {}; // maps url to audio data
var memoryInitializer = null;
-
-
var /* show errors on likely calls to FS when it was not included */ FS = {
error: function() {
- abort('Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -s FORCE_FILESYSTEM=1');
+ abort(
+ 'Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -s FORCE_FILESYSTEM=1'
+ );
+ },
+ init: function() {
+ FS.error();
+ },
+ createDataFile: function() {
+ FS.error();
+ },
+ createPreloadedFile: function() {
+ FS.error();
+ },
+ createLazyFile: function() {
+ FS.error();
+ },
+ open: function() {
+ FS.error();
+ },
+ mkdev: function() {
+ FS.error();
+ },
+ registerDevice: function() {
+ FS.error();
+ },
+ analyzePath: function() {
+ FS.error();
+ },
+ loadFilesFromDB: function() {
+ FS.error();
},
- init: function() { FS.error() },
- createDataFile: function() { FS.error() },
- createPreloadedFile: function() { FS.error() },
- createLazyFile: function() { FS.error() },
- open: function() { FS.error() },
- mkdev: function() { FS.error() },
- registerDevice: function() { FS.error() },
- analyzePath: function() { FS.error() },
- loadFilesFromDB: function() { FS.error() },
- ErrnoError: function ErrnoError() { FS.error() },
+ ErrnoError: function ErrnoError() {
+ FS.error();
+ },
};
Module['FS_createDataFile'] = FS.createDataFile;
Module['FS_createPreloadedFile'] = FS.createPreloadedFile;
-
-
// Copyright 2017 The Emscripten Authors. All rights reserved.
// Emscripten is available under two separate licenses, the MIT license and the
// University of Illinois/NCSA Open Source License. Both these licenses can be
@@ -1396,197 +1602,186 @@ var dataURIPrefix = 'data:application/octet-stream;base64,';
// Indicates whether filename is a base64 data URI.
function isDataURI(filename) {
- return String.prototype.startsWith ?
- filename.startsWith(dataURIPrefix) :
- filename.indexOf(dataURIPrefix) === 0;
+ return String.prototype.startsWith
+ ? filename.startsWith(dataURIPrefix)
+ : filename.indexOf(dataURIPrefix) === 0;
}
-
-
-
-
// === Body ===
var ASM_CONSTS = [];
-
-
-
-
STATIC_BASE = GLOBAL_BASE;
STATICTOP = STATIC_BASE + 1696;
-/* global initializers */ __ATINIT__.push();
-
-
-memoryInitializer = "data:application/octet-stream;base64,AAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAJgAAAAABAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAK/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA==";
-
-
-
+/* global initializers */ __ATINIT__.push();
+memoryInitializer =
+ 'data:application/octet-stream;base64,AAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAJgAAAAABAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAK/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA==';
/* no memory initializer */
-var tempDoublePtr = STATICTOP; STATICTOP += 16;
+var tempDoublePtr = STATICTOP;
+STATICTOP += 16;
assert(tempDoublePtr % 8 == 0);
-function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much
+function copyTempFloat(ptr) {
+ // functions, because inlining this code increases code size too much
HEAP8[tempDoublePtr] = HEAP8[ptr];
- HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
+ HEAP8[tempDoublePtr + 1] = HEAP8[ptr + 1];
- HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
-
- HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
+ HEAP8[tempDoublePtr + 2] = HEAP8[ptr + 2];
+ HEAP8[tempDoublePtr + 3] = HEAP8[ptr + 3];
}
function copyTempDouble(ptr) {
-
HEAP8[tempDoublePtr] = HEAP8[ptr];
- HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
+ HEAP8[tempDoublePtr + 1] = HEAP8[ptr + 1];
- HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
+ HEAP8[tempDoublePtr + 2] = HEAP8[ptr + 2];
- HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
+ HEAP8[tempDoublePtr + 3] = HEAP8[ptr + 3];
- HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];
+ HEAP8[tempDoublePtr + 4] = HEAP8[ptr + 4];
- HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];
+ HEAP8[tempDoublePtr + 5] = HEAP8[ptr + 5];
- HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];
-
- HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];
+ HEAP8[tempDoublePtr + 6] = HEAP8[ptr + 6];
+ HEAP8[tempDoublePtr + 7] = HEAP8[ptr + 7];
}
// {{PRE_LIBRARY}}
+function ___lock() {}
- function ___lock() {}
-
-
-
-
-
- var SYSCALLS={buffers:[null,[],[]],printChar:function (stream, curr) {
- var buffer = SYSCALLS.buffers[stream];
- assert(buffer);
- if (curr === 0 || curr === 10) {
- (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));
- buffer.length = 0;
- } else {
- buffer.push(curr);
- }
- },varargs:0,get:function (varargs) {
- SYSCALLS.varargs += 4;
- var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];
- return ret;
- },getStr:function () {
- var ret = Pointer_stringify(SYSCALLS.get());
- return ret;
- },get64:function () {
- var low = SYSCALLS.get(), high = SYSCALLS.get();
- if (low >= 0) assert(high === 0);
- else assert(high === -1);
- return low;
- },getZero:function () {
- assert(SYSCALLS.get() === 0);
- }};function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs;
+var SYSCALLS = {
+ buffers: [null, [], []],
+ printChar: function(stream, curr) {
+ var buffer = SYSCALLS.buffers[stream];
+ assert(buffer);
+ if (curr === 0 || curr === 10) {
+ (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));
+ buffer.length = 0;
+ } else {
+ buffer.push(curr);
+ }
+ },
+ varargs: 0,
+ get: function(varargs) {
+ SYSCALLS.varargs += 4;
+ var ret = HEAP32[(SYSCALLS.varargs - 4) >> 2];
+ return ret;
+ },
+ getStr: function() {
+ var ret = Pointer_stringify(SYSCALLS.get());
+ return ret;
+ },
+ get64: function() {
+ var low = SYSCALLS.get(),
+ high = SYSCALLS.get();
+ if (low >= 0) assert(high === 0);
+ else assert(high === -1);
+ return low;
+ },
+ getZero: function() {
+ assert(SYSCALLS.get() === 0);
+ },
+};
+function ___syscall140(which, varargs) {
+ SYSCALLS.varargs = varargs;
try {
- // llseek
- var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get();
- // NOTE: offset_high is unused - Emscripten's off_t is 32-bit
- var offset = offset_low;
- FS.llseek(stream, offset, whence);
- HEAP32[((result)>>2)]=stream.position;
- if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state
- return 0;
- } catch (e) {
+ // llseek
+ var stream = SYSCALLS.getStreamFromFD(),
+ offset_high = SYSCALLS.get(),
+ offset_low = SYSCALLS.get(),
+ result = SYSCALLS.get(),
+ whence = SYSCALLS.get();
+ // NOTE: offset_high is unused - Emscripten's off_t is 32-bit
+ var offset = offset_low;
+ FS.llseek(stream, offset, whence);
+ HEAP32[result >> 2] = stream.position;
+ if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state
+ return 0;
+ } catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
- }
+}
-
- function flush_NO_FILESYSTEM() {
- // flush anything remaining in the buffers during shutdown
- var fflush = Module["_fflush"];
- if (fflush) fflush(0);
- var buffers = SYSCALLS.buffers;
- if (buffers[1].length) SYSCALLS.printChar(1, 10);
- if (buffers[2].length) SYSCALLS.printChar(2, 10);
- }function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs;
+function flush_NO_FILESYSTEM() {
+ // flush anything remaining in the buffers during shutdown
+ var fflush = Module['_fflush'];
+ if (fflush) fflush(0);
+ var buffers = SYSCALLS.buffers;
+ if (buffers[1].length) SYSCALLS.printChar(1, 10);
+ if (buffers[2].length) SYSCALLS.printChar(2, 10);
+}
+function ___syscall146(which, varargs) {
+ SYSCALLS.varargs = varargs;
try {
- // writev
- // hack to support printf in FILESYSTEM=0
- var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();
- var ret = 0;
- for (var i = 0; i < iovcnt; i++) {
- var ptr = HEAP32[(((iov)+(i*8))>>2)];
- var len = HEAP32[(((iov)+(i*8 + 4))>>2)];
- for (var j = 0; j < len; j++) {
- SYSCALLS.printChar(stream, HEAPU8[ptr+j]);
- }
- ret += len;
+ // writev
+ // hack to support printf in FILESYSTEM=0
+ var stream = SYSCALLS.get(),
+ iov = SYSCALLS.get(),
+ iovcnt = SYSCALLS.get();
+ var ret = 0;
+ for (var i = 0; i < iovcnt; i++) {
+ var ptr = HEAP32[(iov + i * 8) >> 2];
+ var len = HEAP32[(iov + (i * 8 + 4)) >> 2];
+ for (var j = 0; j < len; j++) {
+ SYSCALLS.printChar(stream, HEAPU8[ptr + j]);
}
- return ret;
- } catch (e) {
+ ret += len;
+ }
+ return ret;
+ } catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
- }
+}
- function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;
+function ___syscall54(which, varargs) {
+ SYSCALLS.varargs = varargs;
try {
- // ioctl
- return 0;
- } catch (e) {
+ // ioctl
+ return 0;
+ } catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
- }
+}
- function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs;
+function ___syscall6(which, varargs) {
+ SYSCALLS.varargs = varargs;
try {
- // close
- var stream = SYSCALLS.getStreamFromFD();
- FS.close(stream);
- return 0;
- } catch (e) {
+ // close
+ var stream = SYSCALLS.getStreamFromFD();
+ FS.close(stream);
+ return 0;
+ } catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
- }
+}
- function ___unlock() {}
+function ___unlock() {}
-
+function _emscripten_memcpy_big(dest, src, num) {
+ HEAPU8.set(HEAPU8.subarray(src, src + num), dest);
+ return dest;
+}
-
-
-
-
-
-
-
-
-
- function _emscripten_memcpy_big(dest, src, num) {
- HEAPU8.set(HEAPU8.subarray(src, src+num), dest);
- return dest;
- }
-
-
-
-
- function ___setErrNo(value) {
- if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;
- else err('failed to set errno from JS');
- return value;
- }
+function ___setErrNo(value) {
+ if (Module['___errno_location'])
+ HEAP32[Module['___errno_location']() >> 2] = value;
+ else err('failed to set errno from JS');
+ return value;
+}
DYNAMICTOP_PTR = staticAlloc(4);
STACK_BASE = STACKTOP = alignMemory(STATICTOP);
@@ -1595,11 +1790,11 @@ STACK_MAX = STACK_BASE + TOTAL_STACK;
DYNAMIC_BASE = alignMemory(STACK_MAX);
-HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE;
+HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE;
staticSealed = true; // seal the static portion of memory
-assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack");
+assert(DYNAMIC_BASE < TOTAL_MEMORY, 'TOTAL_MEMORY not big enough for stack');
var ASSERTIONS = true;
@@ -1610,7 +1805,7 @@ var ASSERTIONS = true;
/** @type {function(string, boolean=, number=)} */
function intArrayFromString(stringy, dontAddNull, length) {
- var len = length > 0 ? length : lengthBytesUTF8(stringy)+1;
+ var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;
var u8array = new Array(len);
var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
if (dontAddNull) u8array.length = numBytesWritten;
@@ -1621,18 +1816,26 @@ function intArrayToString(array) {
var ret = [];
for (var i = 0; i < array.length; i++) {
var chr = array[i];
- if (chr > 0xFF) {
+ if (chr > 0xff) {
if (ASSERTIONS) {
- assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.');
+ assert(
+ false,
+ 'Character code ' +
+ chr +
+ ' (' +
+ String.fromCharCode(chr) +
+ ') at offset ' +
+ i +
+ ' not in 0x00-0xFF.'
+ );
}
- chr &= 0xFF;
+ chr &= 0xff;
}
ret.push(String.fromCharCode(chr));
}
return ret.join('');
}
-
// Copied from https://github.com/strophe/strophejs/blob/e06d027/src/polyfills.js#L149
// This code was written by Tyler Akins and has been placed in the
@@ -1643,36 +1846,40 @@ function intArrayToString(array) {
* Decodes a base64 string.
* @param {String} input The string to decode.
*/
-var decodeBase64 = typeof atob === 'function' ? atob : function (input) {
- var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
+var decodeBase64 =
+ typeof atob === 'function'
+ ? atob
+ : function(input) {
+ var keyStr =
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
- var output = '';
- var chr1, chr2, chr3;
- var enc1, enc2, enc3, enc4;
- var i = 0;
- // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
- input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
- do {
- enc1 = keyStr.indexOf(input.charAt(i++));
- enc2 = keyStr.indexOf(input.charAt(i++));
- enc3 = keyStr.indexOf(input.charAt(i++));
- enc4 = keyStr.indexOf(input.charAt(i++));
+ var output = '';
+ var chr1, chr2, chr3;
+ var enc1, enc2, enc3, enc4;
+ var i = 0;
+ // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
+ input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
+ do {
+ enc1 = keyStr.indexOf(input.charAt(i++));
+ enc2 = keyStr.indexOf(input.charAt(i++));
+ enc3 = keyStr.indexOf(input.charAt(i++));
+ enc4 = keyStr.indexOf(input.charAt(i++));
- chr1 = (enc1 << 2) | (enc2 >> 4);
- chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
- chr3 = ((enc3 & 3) << 6) | enc4;
+ chr1 = (enc1 << 2) | (enc2 >> 4);
+ chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
+ chr3 = ((enc3 & 3) << 6) | enc4;
- output = output + String.fromCharCode(chr1);
+ output = output + String.fromCharCode(chr1);
- if (enc3 !== 64) {
- output = output + String.fromCharCode(chr2);
- }
- if (enc4 !== 64) {
- output = output + String.fromCharCode(chr3);
- }
- } while (i < input.length);
- return output;
-};
+ if (enc3 !== 64) {
+ output = output + String.fromCharCode(chr2);
+ }
+ if (enc4 !== 64) {
+ output = output + String.fromCharCode(chr3);
+ }
+ } while (i < input.length);
+ return output;
+ };
// Converts a string of base64 into a byte array.
// Throws error on invalid input.
@@ -1690,7 +1897,7 @@ function intArrayFromBase64(s) {
try {
var decoded = decodeBase64(s);
var bytes = new Uint8Array(decoded.length);
- for (var i = 0 ; i < decoded.length ; ++i) {
+ for (var i = 0; i < decoded.length; ++i) {
bytes[i] = decoded.charCodeAt(i);
}
return bytes;
@@ -1709,41 +1916,86 @@ function tryParseAsDataURI(filename) {
return intArrayFromBase64(filename.slice(dataURIPrefix.length));
}
+function nullFunc_ii(x) {
+ err(
+ "Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"
+ );
+ err('Build with ASSERTIONS=2 for more info.');
+ abort(x);
+}
+function nullFunc_iiii(x) {
+ err(
+ "Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"
+ );
+ err('Build with ASSERTIONS=2 for more info.');
+ abort(x);
+}
-function nullFunc_ii(x) { err("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); err("Build with ASSERTIONS=2 for more info.");abort(x) }
-
-function nullFunc_iiii(x) { err("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); err("Build with ASSERTIONS=2 for more info.");abort(x) }
-
-function invoke_ii(index,a1) {
+function invoke_ii(index, a1) {
var sp = stackSave();
try {
- return Module["dynCall_ii"](index,a1);
- } catch(e) {
+ return Module['dynCall_ii'](index, a1);
+ } catch (e) {
stackRestore(sp);
if (typeof e !== 'number' && e !== 'longjmp') throw e;
- Module["setThrew"](1, 0);
+ Module['setThrew'](1, 0);
}
}
-function invoke_iiii(index,a1,a2,a3) {
+function invoke_iiii(index, a1, a2, a3) {
var sp = stackSave();
try {
- return Module["dynCall_iiii"](index,a1,a2,a3);
- } catch(e) {
+ return Module['dynCall_iiii'](index, a1, a2, a3);
+ } catch (e) {
stackRestore(sp);
if (typeof e !== 'number' && e !== 'longjmp') throw e;
- Module["setThrew"](1, 0);
+ Module['setThrew'](1, 0);
}
}
-Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity };
+Module.asmGlobalArg = {
+ Math: Math,
+ Int8Array: Int8Array,
+ Int16Array: Int16Array,
+ Int32Array: Int32Array,
+ Uint8Array: Uint8Array,
+ Uint16Array: Uint16Array,
+ Uint32Array: Uint32Array,
+ Float32Array: Float32Array,
+ Float64Array: Float64Array,
+ NaN: NaN,
+ Infinity: Infinity,
+};
-Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_ii": nullFunc_ii, "nullFunc_iiii": nullFunc_iiii, "invoke_ii": invoke_ii, "invoke_iiii": invoke_iiii, "___lock": ___lock, "___setErrNo": ___setErrNo, "___syscall140": ___syscall140, "___syscall146": ___syscall146, "___syscall54": ___syscall54, "___syscall6": ___syscall6, "___unlock": ___unlock, "_emscripten_memcpy_big": _emscripten_memcpy_big, "flush_NO_FILESYSTEM": flush_NO_FILESYSTEM, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX };
+Module.asmLibraryArg = {
+ abort: abort,
+ assert: assert,
+ enlargeMemory: enlargeMemory,
+ getTotalMemory: getTotalMemory,
+ abortOnCannotGrowMemory: abortOnCannotGrowMemory,
+ abortStackOverflow: abortStackOverflow,
+ nullFunc_ii: nullFunc_ii,
+ nullFunc_iiii: nullFunc_iiii,
+ invoke_ii: invoke_ii,
+ invoke_iiii: invoke_iiii,
+ ___lock: ___lock,
+ ___setErrNo: ___setErrNo,
+ ___syscall140: ___syscall140,
+ ___syscall146: ___syscall146,
+ ___syscall54: ___syscall54,
+ ___syscall6: ___syscall6,
+ ___unlock: ___unlock,
+ _emscripten_memcpy_big: _emscripten_memcpy_big,
+ flush_NO_FILESYSTEM: flush_NO_FILESYSTEM,
+ DYNAMICTOP_PTR: DYNAMICTOP_PTR,
+ tempDoublePtr: tempDoublePtr,
+ STACKTOP: STACKTOP,
+ STACK_MAX: STACK_MAX,
+};
// EMSCRIPTEN_START_ASM
-var asm = (/** @suppress {uselessCode} */ function(global, env, buffer) {
-'almost asm';
-
+var asm = /** @suppress {uselessCode} */ (function(global, env, buffer) {
+ 'almost asm';
var HEAP8 = new global.Int8Array(buffer);
var HEAP16 = new global.Int16Array(buffer);
@@ -1754,6743 +2006,11581 @@ var asm = (/** @suppress {uselessCode} */ function(global, env, buffer) {
var HEAPF32 = new global.Float32Array(buffer);
var HEAPF64 = new global.Float64Array(buffer);
- var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0;
- var tempDoublePtr=env.tempDoublePtr|0;
- var STACKTOP=env.STACKTOP|0;
- var STACK_MAX=env.STACK_MAX|0;
+ var DYNAMICTOP_PTR = env.DYNAMICTOP_PTR | 0;
+ var tempDoublePtr = env.tempDoublePtr | 0;
+ var STACKTOP = env.STACKTOP | 0;
+ var STACK_MAX = env.STACK_MAX | 0;
var __THREW__ = 0;
var threwValue = 0;
var setjmpId = 0;
var undef = 0;
- var nan = global.NaN, inf = global.Infinity;
- var tempInt = 0, tempBigInt = 0, tempBigIntS = 0, tempValue = 0, tempDouble = 0.0;
-var tempRet0 = 0;
+ var nan = global.NaN,
+ inf = global.Infinity;
+ var tempInt = 0,
+ tempBigInt = 0,
+ tempBigIntS = 0,
+ tempValue = 0,
+ tempDouble = 0.0;
+ var tempRet0 = 0;
- var Math_floor=global.Math.floor;
- var Math_abs=global.Math.abs;
- var Math_sqrt=global.Math.sqrt;
- var Math_pow=global.Math.pow;
- var Math_cos=global.Math.cos;
- var Math_sin=global.Math.sin;
- var Math_tan=global.Math.tan;
- var Math_acos=global.Math.acos;
- var Math_asin=global.Math.asin;
- var Math_atan=global.Math.atan;
- var Math_atan2=global.Math.atan2;
- var Math_exp=global.Math.exp;
- var Math_log=global.Math.log;
- var Math_ceil=global.Math.ceil;
- var Math_imul=global.Math.imul;
- var Math_min=global.Math.min;
- var Math_max=global.Math.max;
- var Math_clz32=global.Math.clz32;
- var abort=env.abort;
- var assert=env.assert;
- var enlargeMemory=env.enlargeMemory;
- var getTotalMemory=env.getTotalMemory;
- var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory;
- var abortStackOverflow=env.abortStackOverflow;
- var nullFunc_ii=env.nullFunc_ii;
- var nullFunc_iiii=env.nullFunc_iiii;
- var invoke_ii=env.invoke_ii;
- var invoke_iiii=env.invoke_iiii;
- var ___lock=env.___lock;
- var ___setErrNo=env.___setErrNo;
- var ___syscall140=env.___syscall140;
- var ___syscall146=env.___syscall146;
- var ___syscall54=env.___syscall54;
- var ___syscall6=env.___syscall6;
- var ___unlock=env.___unlock;
- var _emscripten_memcpy_big=env._emscripten_memcpy_big;
- var flush_NO_FILESYSTEM=env.flush_NO_FILESYSTEM;
+ var Math_floor = global.Math.floor;
+ var Math_abs = global.Math.abs;
+ var Math_sqrt = global.Math.sqrt;
+ var Math_pow = global.Math.pow;
+ var Math_cos = global.Math.cos;
+ var Math_sin = global.Math.sin;
+ var Math_tan = global.Math.tan;
+ var Math_acos = global.Math.acos;
+ var Math_asin = global.Math.asin;
+ var Math_atan = global.Math.atan;
+ var Math_atan2 = global.Math.atan2;
+ var Math_exp = global.Math.exp;
+ var Math_log = global.Math.log;
+ var Math_ceil = global.Math.ceil;
+ var Math_imul = global.Math.imul;
+ var Math_min = global.Math.min;
+ var Math_max = global.Math.max;
+ var Math_clz32 = global.Math.clz32;
+ var abort = env.abort;
+ var assert = env.assert;
+ var enlargeMemory = env.enlargeMemory;
+ var getTotalMemory = env.getTotalMemory;
+ var abortOnCannotGrowMemory = env.abortOnCannotGrowMemory;
+ var abortStackOverflow = env.abortStackOverflow;
+ var nullFunc_ii = env.nullFunc_ii;
+ var nullFunc_iiii = env.nullFunc_iiii;
+ var invoke_ii = env.invoke_ii;
+ var invoke_iiii = env.invoke_iiii;
+ var ___lock = env.___lock;
+ var ___setErrNo = env.___setErrNo;
+ var ___syscall140 = env.___syscall140;
+ var ___syscall146 = env.___syscall146;
+ var ___syscall54 = env.___syscall54;
+ var ___syscall6 = env.___syscall6;
+ var ___unlock = env.___unlock;
+ var _emscripten_memcpy_big = env._emscripten_memcpy_big;
+ var flush_NO_FILESYSTEM = env.flush_NO_FILESYSTEM;
var tempFloat = 0.0;
-// EMSCRIPTEN_START_FUNCS
+ // EMSCRIPTEN_START_FUNCS
-function stackAlloc(size) {
- size = size|0;
- var ret = 0;
- ret = STACKTOP;
- STACKTOP = (STACKTOP + size)|0;
- STACKTOP = (STACKTOP + 15)&-16;
- if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0);
+ function stackAlloc(size) {
+ size = size | 0;
+ var ret = 0;
+ ret = STACKTOP;
+ STACKTOP = (STACKTOP + size) | 0;
+ STACKTOP = (STACKTOP + 15) & -16;
+ if ((STACKTOP | 0) >= (STACK_MAX | 0)) abortStackOverflow(size | 0);
- return ret|0;
-}
-function stackSave() {
- return STACKTOP|0;
-}
-function stackRestore(top) {
- top = top|0;
- STACKTOP = top;
-}
-function establishStackSpace(stackBase, stackMax) {
- stackBase = stackBase|0;
- stackMax = stackMax|0;
- STACKTOP = stackBase;
- STACK_MAX = stackMax;
-}
-function setThrew(threw, value) {
- threw = threw|0;
- value = value|0;
- if ((__THREW__|0) == 0) {
- __THREW__ = threw;
- threwValue = value;
+ return ret | 0;
+ }
+ function stackSave() {
+ return STACKTOP | 0;
+ }
+ function stackRestore(top) {
+ top = top | 0;
+ STACKTOP = top;
+ }
+ function establishStackSpace(stackBase, stackMax) {
+ stackBase = stackBase | 0;
+ stackMax = stackMax | 0;
+ STACKTOP = stackBase;
+ STACK_MAX = stackMax;
+ }
+ function setThrew(threw, value) {
+ threw = threw | 0;
+ value = value | 0;
+ if ((__THREW__ | 0) == 0) {
+ __THREW__ = threw;
+ threwValue = value;
+ }
}
-}
-function setTempRet0(value) {
- value = value|0;
- tempRet0 = value;
-}
-function getTempRet0() {
- return tempRet0|0;
-}
+ function setTempRet0(value) {
+ value = value | 0;
+ tempRet0 = value;
+ }
+ function getTempRet0() {
+ return tempRet0 | 0;
+ }
-function _load_3($0) {
- $0 = $0|0;
- var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
- var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
- var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
- $2 = sp;
- $1 = $0;
- $3 = $1;
- $4 = HEAP8[$3>>0]|0;
- $5 = $4&255;
- $6 = $2;
- $7 = $6;
- HEAP32[$7>>2] = $5;
- $8 = (($6) + 4)|0;
- $9 = $8;
- HEAP32[$9>>2] = 0;
- $10 = $1;
- $11 = ((($10)) + 1|0);
- $12 = HEAP8[$11>>0]|0;
- $13 = $12&255;
- $14 = (_bitshift64Shl(($13|0),0,8)|0);
- $15 = tempRet0;
- $16 = $2;
- $17 = $16;
- $18 = HEAP32[$17>>2]|0;
- $19 = (($16) + 4)|0;
- $20 = $19;
- $21 = HEAP32[$20>>2]|0;
- $22 = $18 | $14;
- $23 = $21 | $15;
- $24 = $2;
- $25 = $24;
- HEAP32[$25>>2] = $22;
- $26 = (($24) + 4)|0;
- $27 = $26;
- HEAP32[$27>>2] = $23;
- $28 = $1;
- $29 = ((($28)) + 2|0);
- $30 = HEAP8[$29>>0]|0;
- $31 = $30&255;
- $32 = (_bitshift64Shl(($31|0),0,16)|0);
- $33 = tempRet0;
- $34 = $2;
- $35 = $34;
- $36 = HEAP32[$35>>2]|0;
- $37 = (($34) + 4)|0;
- $38 = $37;
- $39 = HEAP32[$38>>2]|0;
- $40 = $36 | $32;
- $41 = $39 | $33;
- $42 = $2;
- $43 = $42;
- HEAP32[$43>>2] = $40;
- $44 = (($42) + 4)|0;
- $45 = $44;
- HEAP32[$45>>2] = $41;
- $46 = $2;
- $47 = $46;
- $48 = HEAP32[$47>>2]|0;
- $49 = (($46) + 4)|0;
- $50 = $49;
- $51 = HEAP32[$50>>2]|0;
- tempRet0 = ($51);
- STACKTOP = sp;return ($48|0);
-}
-function _load_4($0) {
- $0 = $0|0;
- var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
- var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
- var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
- var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
- $2 = sp;
- $1 = $0;
- $3 = $1;
- $4 = HEAP8[$3>>0]|0;
- $5 = $4&255;
- $6 = $2;
- $7 = $6;
- HEAP32[$7>>2] = $5;
- $8 = (($6) + 4)|0;
- $9 = $8;
- HEAP32[$9>>2] = 0;
- $10 = $1;
- $11 = ((($10)) + 1|0);
- $12 = HEAP8[$11>>0]|0;
- $13 = $12&255;
- $14 = (_bitshift64Shl(($13|0),0,8)|0);
- $15 = tempRet0;
- $16 = $2;
- $17 = $16;
- $18 = HEAP32[$17>>2]|0;
- $19 = (($16) + 4)|0;
- $20 = $19;
- $21 = HEAP32[$20>>2]|0;
- $22 = $18 | $14;
- $23 = $21 | $15;
- $24 = $2;
- $25 = $24;
- HEAP32[$25>>2] = $22;
- $26 = (($24) + 4)|0;
- $27 = $26;
- HEAP32[$27>>2] = $23;
- $28 = $1;
- $29 = ((($28)) + 2|0);
- $30 = HEAP8[$29>>0]|0;
- $31 = $30&255;
- $32 = (_bitshift64Shl(($31|0),0,16)|0);
- $33 = tempRet0;
- $34 = $2;
- $35 = $34;
- $36 = HEAP32[$35>>2]|0;
- $37 = (($34) + 4)|0;
- $38 = $37;
- $39 = HEAP32[$38>>2]|0;
- $40 = $36 | $32;
- $41 = $39 | $33;
- $42 = $2;
- $43 = $42;
- HEAP32[$43>>2] = $40;
- $44 = (($42) + 4)|0;
- $45 = $44;
- HEAP32[$45>>2] = $41;
- $46 = $1;
- $47 = ((($46)) + 3|0);
- $48 = HEAP8[$47>>0]|0;
- $49 = $48&255;
- $50 = (_bitshift64Shl(($49|0),0,24)|0);
- $51 = tempRet0;
- $52 = $2;
- $53 = $52;
- $54 = HEAP32[$53>>2]|0;
- $55 = (($52) + 4)|0;
- $56 = $55;
- $57 = HEAP32[$56>>2]|0;
- $58 = $54 | $50;
- $59 = $57 | $51;
- $60 = $2;
- $61 = $60;
- HEAP32[$61>>2] = $58;
- $62 = (($60) + 4)|0;
- $63 = $62;
- HEAP32[$63>>2] = $59;
- $64 = $2;
- $65 = $64;
- $66 = HEAP32[$65>>2]|0;
- $67 = (($64) + 4)|0;
- $68 = $67;
- $69 = HEAP32[$68>>2]|0;
- tempRet0 = ($69);
- STACKTOP = sp;return ($66|0);
-}
-function _sc_reduce32($0) {
- $0 = $0|0;
- var $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0;
- var $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0;
- var $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0;
- var $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0, $107 = 0;
- var $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0, $1088 = 0;
- var $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0, $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0, $1105 = 0;
- var $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0, $1123 = 0;
- var $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0, $1141 = 0;
- var $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0, $116 = 0;
- var $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0, $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0, $1178 = 0;
- var $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0, $1196 = 0;
- var $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0, $1213 = 0;
- var $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0, $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0, $1231 = 0;
- var $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0, $125 = 0;
- var $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0, $1268 = 0;
- var $1269 = 0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, $1280 = 0, $1281 = 0, $1282 = 0, $1283 = 0, $1284 = 0, $1285 = 0, $1286 = 0;
- var $1287 = 0, $1288 = 0, $1289 = 0, $129 = 0, $1290 = 0, $1291 = 0, $1292 = 0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0, $1303 = 0;
- var $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0, $131 = 0, $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0, $132 = 0, $1320 = 0, $1321 = 0;
- var $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $1328 = 0, $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0, $134 = 0;
- var $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1345 = 0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0, $1350 = 0, $1351 = 0, $1352 = 0, $1353 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0, $1358 = 0;
- var $1359 = 0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0, $137 = 0, $1370 = 0, $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0, $1376 = 0;
- var $1377 = 0, $1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, $1389 = 0, $139 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0, $1394 = 0;
- var $1395 = 0, $1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 0, $140 = 0, $1400 = 0, $1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, $1406 = 0, $1407 = 0, $1408 = 0, $1409 = 0, $141 = 0, $1410 = 0, $1411 = 0;
- var $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $1424 = 0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0, $143 = 0;
- var $1430 = 0, $1431 = 0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0, $1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0, $1448 = 0;
- var $1449 = 0, $145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, $1460 = 0, $1461 = 0, $1462 = 0, $1463 = 0, $1464 = 0, $1465 = 0, $1466 = 0;
- var $1467 = 0, $1468 = 0, $1469 = 0, $147 = 0, $1470 = 0, $1471 = 0, $1472 = 0, $1473 = 0, $1474 = 0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0, $1479 = 0, $148 = 0, $1480 = 0, $1481 = 0, $1482 = 0, $1483 = 0, $1484 = 0;
- var $1485 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, $1492 = 0, $1493 = 0, $1494 = 0, $1495 = 0, $1496 = 0, $1497 = 0, $1498 = 0, $1499 = 0, $15 = 0, $150 = 0, $1500 = 0, $1501 = 0;
- var $1502 = 0, $1503 = 0, $1504 = 0, $1505 = 0, $1506 = 0, $1507 = 0, $1508 = 0, $1509 = 0, $151 = 0, $1510 = 0, $1511 = 0, $1512 = 0, $1513 = 0, $1514 = 0, $1515 = 0, $1516 = 0, $1517 = 0, $1518 = 0, $1519 = 0, $152 = 0;
- var $1520 = 0, $1521 = 0, $1522 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1526 = 0, $1527 = 0, $1528 = 0, $1529 = 0, $153 = 0, $1530 = 0, $1531 = 0, $1532 = 0, $1533 = 0, $1534 = 0, $1535 = 0, $1536 = 0, $1537 = 0, $1538 = 0;
- var $1539 = 0, $154 = 0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0, $1544 = 0, $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, $1549 = 0, $155 = 0, $1550 = 0, $1551 = 0, $1552 = 0, $1553 = 0, $1554 = 0, $1555 = 0, $1556 = 0;
- var $1557 = 0, $1558 = 0, $1559 = 0, $156 = 0, $1560 = 0, $1561 = 0, $1562 = 0, $1563 = 0, $1564 = 0, $1565 = 0, $1566 = 0, $1567 = 0, $1568 = 0, $1569 = 0, $157 = 0, $1570 = 0, $1571 = 0, $1572 = 0, $1573 = 0, $1574 = 0;
- var $1575 = 0, $1576 = 0, $1577 = 0, $1578 = 0, $1579 = 0, $158 = 0, $1580 = 0, $1581 = 0, $1582 = 0, $1583 = 0, $1584 = 0, $1585 = 0, $1586 = 0, $1587 = 0, $1588 = 0, $1589 = 0, $159 = 0, $1590 = 0, $1591 = 0, $1592 = 0;
- var $1593 = 0, $1594 = 0, $1595 = 0, $1596 = 0, $1597 = 0, $1598 = 0, $1599 = 0, $16 = 0, $160 = 0, $1600 = 0, $1601 = 0, $1602 = 0, $1603 = 0, $1604 = 0, $1605 = 0, $1606 = 0, $1607 = 0, $1608 = 0, $1609 = 0, $161 = 0;
- var $1610 = 0, $1611 = 0, $1612 = 0, $1613 = 0, $1614 = 0, $1615 = 0, $1616 = 0, $1617 = 0, $1618 = 0, $1619 = 0, $162 = 0, $1620 = 0, $1621 = 0, $1622 = 0, $1623 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0, $1628 = 0;
- var $1629 = 0, $163 = 0, $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 0, $1634 = 0, $1635 = 0, $1636 = 0, $1637 = 0, $1638 = 0, $1639 = 0, $164 = 0, $1640 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0, $1646 = 0;
- var $1647 = 0, $1648 = 0, $1649 = 0, $165 = 0, $1650 = 0, $1651 = 0, $1652 = 0, $1653 = 0, $1654 = 0, $1655 = 0, $1656 = 0, $1657 = 0, $1658 = 0, $1659 = 0, $166 = 0, $1660 = 0, $1661 = 0, $1662 = 0, $1663 = 0, $1664 = 0;
- var $1665 = 0, $1666 = 0, $1667 = 0, $1668 = 0, $1669 = 0, $167 = 0, $1670 = 0, $1671 = 0, $1672 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, $1677 = 0, $1678 = 0, $1679 = 0, $168 = 0, $1680 = 0, $1681 = 0, $1682 = 0;
- var $1683 = 0, $1684 = 0, $1685 = 0, $1686 = 0, $1687 = 0, $1688 = 0, $1689 = 0, $169 = 0, $1690 = 0, $1691 = 0, $1692 = 0, $1693 = 0, $1694 = 0, $1695 = 0, $1696 = 0, $1697 = 0, $1698 = 0, $1699 = 0, $17 = 0, $170 = 0;
- var $1700 = 0, $1701 = 0, $1702 = 0, $1703 = 0, $1704 = 0, $1705 = 0, $1706 = 0, $1707 = 0, $1708 = 0, $1709 = 0, $171 = 0, $1710 = 0, $1711 = 0, $1712 = 0, $1713 = 0, $1714 = 0, $1715 = 0, $1716 = 0, $1717 = 0, $1718 = 0;
- var $1719 = 0, $172 = 0, $1720 = 0, $1721 = 0, $1722 = 0, $1723 = 0, $1724 = 0, $1725 = 0, $1726 = 0, $1727 = 0, $1728 = 0, $1729 = 0, $173 = 0, $1730 = 0, $1731 = 0, $1732 = 0, $1733 = 0, $1734 = 0, $1735 = 0, $1736 = 0;
- var $1737 = 0, $1738 = 0, $1739 = 0, $174 = 0, $1740 = 0, $1741 = 0, $1742 = 0, $1743 = 0, $1744 = 0, $1745 = 0, $1746 = 0, $1747 = 0, $1748 = 0, $1749 = 0, $175 = 0, $1750 = 0, $1751 = 0, $1752 = 0, $1753 = 0, $1754 = 0;
- var $1755 = 0, $1756 = 0, $1757 = 0, $1758 = 0, $1759 = 0, $176 = 0, $1760 = 0, $1761 = 0, $1762 = 0, $1763 = 0, $1764 = 0, $1765 = 0, $1766 = 0, $1767 = 0, $1768 = 0, $1769 = 0, $177 = 0, $1770 = 0, $1771 = 0, $1772 = 0;
- var $1773 = 0, $1774 = 0, $1775 = 0, $1776 = 0, $1777 = 0, $1778 = 0, $1779 = 0, $178 = 0, $1780 = 0, $1781 = 0, $1782 = 0, $1783 = 0, $1784 = 0, $1785 = 0, $1786 = 0, $1787 = 0, $1788 = 0, $1789 = 0, $179 = 0, $1790 = 0;
- var $1791 = 0, $1792 = 0, $1793 = 0, $1794 = 0, $1795 = 0, $1796 = 0, $1797 = 0, $1798 = 0, $1799 = 0, $18 = 0, $180 = 0, $1800 = 0, $1801 = 0, $1802 = 0, $1803 = 0, $1804 = 0, $1805 = 0, $1806 = 0, $1807 = 0, $1808 = 0;
- var $1809 = 0, $181 = 0, $1810 = 0, $1811 = 0, $1812 = 0, $1813 = 0, $1814 = 0, $1815 = 0, $1816 = 0, $1817 = 0, $1818 = 0, $1819 = 0, $182 = 0, $1820 = 0, $1821 = 0, $1822 = 0, $1823 = 0, $1824 = 0, $1825 = 0, $1826 = 0;
- var $1827 = 0, $1828 = 0, $1829 = 0, $183 = 0, $1830 = 0, $1831 = 0, $1832 = 0, $1833 = 0, $1834 = 0, $1835 = 0, $1836 = 0, $1837 = 0, $1838 = 0, $1839 = 0, $184 = 0, $1840 = 0, $1841 = 0, $1842 = 0, $1843 = 0, $1844 = 0;
- var $1845 = 0, $1846 = 0, $1847 = 0, $1848 = 0, $1849 = 0, $185 = 0, $1850 = 0, $1851 = 0, $1852 = 0, $1853 = 0, $1854 = 0, $1855 = 0, $1856 = 0, $1857 = 0, $1858 = 0, $1859 = 0, $186 = 0, $1860 = 0, $1861 = 0, $1862 = 0;
- var $1863 = 0, $1864 = 0, $1865 = 0, $1866 = 0, $1867 = 0, $1868 = 0, $1869 = 0, $187 = 0, $1870 = 0, $1871 = 0, $1872 = 0, $1873 = 0, $1874 = 0, $1875 = 0, $1876 = 0, $1877 = 0, $1878 = 0, $1879 = 0, $188 = 0, $1880 = 0;
- var $1881 = 0, $1882 = 0, $1883 = 0, $1884 = 0, $1885 = 0, $1886 = 0, $1887 = 0, $1888 = 0, $1889 = 0, $189 = 0, $1890 = 0, $1891 = 0, $1892 = 0, $1893 = 0, $1894 = 0, $1895 = 0, $1896 = 0, $1897 = 0, $1898 = 0, $1899 = 0;
- var $19 = 0, $190 = 0, $1900 = 0, $1901 = 0, $1902 = 0, $1903 = 0, $1904 = 0, $1905 = 0, $1906 = 0, $1907 = 0, $1908 = 0, $1909 = 0, $191 = 0, $1910 = 0, $1911 = 0, $1912 = 0, $1913 = 0, $1914 = 0, $1915 = 0, $1916 = 0;
- var $1917 = 0, $1918 = 0, $1919 = 0, $192 = 0, $1920 = 0, $1921 = 0, $1922 = 0, $1923 = 0, $1924 = 0, $1925 = 0, $1926 = 0, $1927 = 0, $1928 = 0, $1929 = 0, $193 = 0, $1930 = 0, $1931 = 0, $1932 = 0, $1933 = 0, $1934 = 0;
- var $1935 = 0, $1936 = 0, $1937 = 0, $1938 = 0, $1939 = 0, $194 = 0, $1940 = 0, $1941 = 0, $1942 = 0, $1943 = 0, $1944 = 0, $1945 = 0, $1946 = 0, $1947 = 0, $1948 = 0, $1949 = 0, $195 = 0, $1950 = 0, $1951 = 0, $1952 = 0;
- var $1953 = 0, $1954 = 0, $1955 = 0, $1956 = 0, $1957 = 0, $1958 = 0, $1959 = 0, $196 = 0, $1960 = 0, $1961 = 0, $1962 = 0, $1963 = 0, $1964 = 0, $1965 = 0, $1966 = 0, $1967 = 0, $1968 = 0, $1969 = 0, $197 = 0, $1970 = 0;
- var $1971 = 0, $1972 = 0, $1973 = 0, $1974 = 0, $1975 = 0, $1976 = 0, $1977 = 0, $1978 = 0, $1979 = 0, $198 = 0, $1980 = 0, $1981 = 0, $1982 = 0, $1983 = 0, $1984 = 0, $1985 = 0, $1986 = 0, $1987 = 0, $1988 = 0, $1989 = 0;
- var $199 = 0, $1990 = 0, $1991 = 0, $1992 = 0, $1993 = 0, $1994 = 0, $1995 = 0, $1996 = 0, $1997 = 0, $1998 = 0, $1999 = 0, $2 = 0, $20 = 0, $200 = 0, $2000 = 0, $2001 = 0, $2002 = 0, $2003 = 0, $2004 = 0, $2005 = 0;
- var $2006 = 0, $2007 = 0, $2008 = 0, $2009 = 0, $201 = 0, $2010 = 0, $2011 = 0, $2012 = 0, $2013 = 0, $2014 = 0, $2015 = 0, $2016 = 0, $2017 = 0, $2018 = 0, $2019 = 0, $202 = 0, $2020 = 0, $2021 = 0, $2022 = 0, $2023 = 0;
- var $2024 = 0, $2025 = 0, $2026 = 0, $2027 = 0, $2028 = 0, $2029 = 0, $203 = 0, $2030 = 0, $2031 = 0, $2032 = 0, $2033 = 0, $2034 = 0, $2035 = 0, $2036 = 0, $2037 = 0, $2038 = 0, $2039 = 0, $204 = 0, $2040 = 0, $2041 = 0;
- var $2042 = 0, $2043 = 0, $2044 = 0, $2045 = 0, $2046 = 0, $2047 = 0, $2048 = 0, $2049 = 0, $205 = 0, $2050 = 0, $2051 = 0, $2052 = 0, $2053 = 0, $2054 = 0, $2055 = 0, $2056 = 0, $2057 = 0, $2058 = 0, $2059 = 0, $206 = 0;
- var $2060 = 0, $2061 = 0, $2062 = 0, $2063 = 0, $2064 = 0, $2065 = 0, $2066 = 0, $2067 = 0, $2068 = 0, $2069 = 0, $207 = 0, $2070 = 0, $2071 = 0, $2072 = 0, $2073 = 0, $2074 = 0, $2075 = 0, $2076 = 0, $2077 = 0, $2078 = 0;
- var $2079 = 0, $208 = 0, $2080 = 0, $2081 = 0, $2082 = 0, $2083 = 0, $2084 = 0, $2085 = 0, $2086 = 0, $2087 = 0, $2088 = 0, $2089 = 0, $209 = 0, $2090 = 0, $2091 = 0, $2092 = 0, $2093 = 0, $2094 = 0, $2095 = 0, $2096 = 0;
- var $2097 = 0, $2098 = 0, $2099 = 0, $21 = 0, $210 = 0, $2100 = 0, $2101 = 0, $2102 = 0, $2103 = 0, $2104 = 0, $2105 = 0, $2106 = 0, $2107 = 0, $2108 = 0, $2109 = 0, $211 = 0, $2110 = 0, $2111 = 0, $2112 = 0, $2113 = 0;
- var $2114 = 0, $2115 = 0, $2116 = 0, $2117 = 0, $2118 = 0, $2119 = 0, $212 = 0, $2120 = 0, $2121 = 0, $2122 = 0, $2123 = 0, $2124 = 0, $2125 = 0, $2126 = 0, $2127 = 0, $2128 = 0, $2129 = 0, $213 = 0, $2130 = 0, $2131 = 0;
- var $2132 = 0, $2133 = 0, $2134 = 0, $2135 = 0, $2136 = 0, $2137 = 0, $2138 = 0, $2139 = 0, $214 = 0, $2140 = 0, $2141 = 0, $2142 = 0, $2143 = 0, $2144 = 0, $2145 = 0, $2146 = 0, $2147 = 0, $2148 = 0, $2149 = 0, $215 = 0;
- var $2150 = 0, $2151 = 0, $2152 = 0, $2153 = 0, $2154 = 0, $2155 = 0, $2156 = 0, $2157 = 0, $2158 = 0, $2159 = 0, $216 = 0, $2160 = 0, $2161 = 0, $2162 = 0, $2163 = 0, $2164 = 0, $2165 = 0, $2166 = 0, $2167 = 0, $2168 = 0;
- var $2169 = 0, $217 = 0, $2170 = 0, $2171 = 0, $2172 = 0, $2173 = 0, $2174 = 0, $2175 = 0, $2176 = 0, $2177 = 0, $2178 = 0, $2179 = 0, $218 = 0, $2180 = 0, $2181 = 0, $2182 = 0, $2183 = 0, $2184 = 0, $2185 = 0, $2186 = 0;
- var $2187 = 0, $2188 = 0, $2189 = 0, $219 = 0, $2190 = 0, $2191 = 0, $2192 = 0, $2193 = 0, $2194 = 0, $2195 = 0, $2196 = 0, $2197 = 0, $2198 = 0, $2199 = 0, $22 = 0, $220 = 0, $2200 = 0, $2201 = 0, $2202 = 0, $2203 = 0;
- var $2204 = 0, $2205 = 0, $2206 = 0, $2207 = 0, $2208 = 0, $2209 = 0, $221 = 0, $2210 = 0, $2211 = 0, $2212 = 0, $2213 = 0, $2214 = 0, $2215 = 0, $2216 = 0, $2217 = 0, $2218 = 0, $2219 = 0, $222 = 0, $2220 = 0, $2221 = 0;
- var $2222 = 0, $2223 = 0, $2224 = 0, $2225 = 0, $2226 = 0, $2227 = 0, $2228 = 0, $2229 = 0, $223 = 0, $2230 = 0, $2231 = 0, $2232 = 0, $2233 = 0, $2234 = 0, $2235 = 0, $2236 = 0, $2237 = 0, $2238 = 0, $2239 = 0, $224 = 0;
- var $2240 = 0, $2241 = 0, $2242 = 0, $2243 = 0, $2244 = 0, $2245 = 0, $2246 = 0, $2247 = 0, $2248 = 0, $2249 = 0, $225 = 0, $2250 = 0, $2251 = 0, $2252 = 0, $2253 = 0, $2254 = 0, $2255 = 0, $2256 = 0, $2257 = 0, $2258 = 0;
- var $2259 = 0, $226 = 0, $2260 = 0, $2261 = 0, $2262 = 0, $2263 = 0, $2264 = 0, $2265 = 0, $2266 = 0, $2267 = 0, $2268 = 0, $2269 = 0, $227 = 0, $2270 = 0, $2271 = 0, $2272 = 0, $2273 = 0, $2274 = 0, $2275 = 0, $2276 = 0;
- var $2277 = 0, $2278 = 0, $2279 = 0, $228 = 0, $2280 = 0, $2281 = 0, $2282 = 0, $2283 = 0, $2284 = 0, $2285 = 0, $2286 = 0, $2287 = 0, $2288 = 0, $2289 = 0, $229 = 0, $2290 = 0, $2291 = 0, $2292 = 0, $2293 = 0, $2294 = 0;
- var $2295 = 0, $2296 = 0, $2297 = 0, $2298 = 0, $2299 = 0, $23 = 0, $230 = 0, $2300 = 0, $2301 = 0, $2302 = 0, $2303 = 0, $2304 = 0, $2305 = 0, $2306 = 0, $2307 = 0, $2308 = 0, $2309 = 0, $231 = 0, $2310 = 0, $2311 = 0;
- var $2312 = 0, $2313 = 0, $2314 = 0, $2315 = 0, $2316 = 0, $2317 = 0, $2318 = 0, $2319 = 0, $232 = 0, $2320 = 0, $2321 = 0, $2322 = 0, $2323 = 0, $2324 = 0, $2325 = 0, $2326 = 0, $2327 = 0, $2328 = 0, $2329 = 0, $233 = 0;
- var $2330 = 0, $2331 = 0, $2332 = 0, $2333 = 0, $2334 = 0, $2335 = 0, $2336 = 0, $2337 = 0, $2338 = 0, $2339 = 0, $234 = 0, $2340 = 0, $2341 = 0, $2342 = 0, $2343 = 0, $2344 = 0, $2345 = 0, $2346 = 0, $2347 = 0, $2348 = 0;
- var $2349 = 0, $235 = 0, $2350 = 0, $2351 = 0, $2352 = 0, $2353 = 0, $2354 = 0, $2355 = 0, $2356 = 0, $2357 = 0, $2358 = 0, $2359 = 0, $236 = 0, $2360 = 0, $2361 = 0, $2362 = 0, $2363 = 0, $2364 = 0, $2365 = 0, $2366 = 0;
- var $2367 = 0, $2368 = 0, $2369 = 0, $237 = 0, $2370 = 0, $2371 = 0, $2372 = 0, $2373 = 0, $2374 = 0, $2375 = 0, $2376 = 0, $2377 = 0, $2378 = 0, $2379 = 0, $238 = 0, $2380 = 0, $2381 = 0, $2382 = 0, $2383 = 0, $2384 = 0;
- var $2385 = 0, $2386 = 0, $2387 = 0, $2388 = 0, $2389 = 0, $239 = 0, $2390 = 0, $2391 = 0, $2392 = 0, $2393 = 0, $2394 = 0, $2395 = 0, $2396 = 0, $2397 = 0, $2398 = 0, $2399 = 0, $24 = 0, $240 = 0, $2400 = 0, $2401 = 0;
- var $2402 = 0, $2403 = 0, $2404 = 0, $2405 = 0, $2406 = 0, $2407 = 0, $2408 = 0, $2409 = 0, $241 = 0, $2410 = 0, $2411 = 0, $2412 = 0, $2413 = 0, $2414 = 0, $2415 = 0, $2416 = 0, $2417 = 0, $2418 = 0, $2419 = 0, $242 = 0;
- var $2420 = 0, $2421 = 0, $2422 = 0, $2423 = 0, $2424 = 0, $2425 = 0, $2426 = 0, $2427 = 0, $2428 = 0, $2429 = 0, $243 = 0, $2430 = 0, $2431 = 0, $2432 = 0, $2433 = 0, $2434 = 0, $2435 = 0, $2436 = 0, $2437 = 0, $2438 = 0;
- var $2439 = 0, $244 = 0, $2440 = 0, $2441 = 0, $2442 = 0, $2443 = 0, $2444 = 0, $2445 = 0, $2446 = 0, $2447 = 0, $2448 = 0, $2449 = 0, $245 = 0, $2450 = 0, $2451 = 0, $2452 = 0, $2453 = 0, $2454 = 0, $2455 = 0, $2456 = 0;
- var $2457 = 0, $2458 = 0, $2459 = 0, $246 = 0, $2460 = 0, $2461 = 0, $2462 = 0, $2463 = 0, $2464 = 0, $2465 = 0, $2466 = 0, $2467 = 0, $2468 = 0, $2469 = 0, $247 = 0, $2470 = 0, $2471 = 0, $2472 = 0, $2473 = 0, $2474 = 0;
- var $2475 = 0, $2476 = 0, $2477 = 0, $2478 = 0, $2479 = 0, $248 = 0, $2480 = 0, $2481 = 0, $2482 = 0, $2483 = 0, $2484 = 0, $2485 = 0, $2486 = 0, $2487 = 0, $2488 = 0, $2489 = 0, $249 = 0, $2490 = 0, $2491 = 0, $2492 = 0;
- var $2493 = 0, $2494 = 0, $2495 = 0, $2496 = 0, $2497 = 0, $2498 = 0, $2499 = 0, $25 = 0, $250 = 0, $2500 = 0, $2501 = 0, $2502 = 0, $2503 = 0, $2504 = 0, $2505 = 0, $2506 = 0, $2507 = 0, $2508 = 0, $2509 = 0, $251 = 0;
- var $2510 = 0, $2511 = 0, $2512 = 0, $2513 = 0, $2514 = 0, $2515 = 0, $2516 = 0, $2517 = 0, $2518 = 0, $2519 = 0, $252 = 0, $2520 = 0, $2521 = 0, $2522 = 0, $2523 = 0, $2524 = 0, $2525 = 0, $2526 = 0, $2527 = 0, $2528 = 0;
- var $2529 = 0, $253 = 0, $2530 = 0, $2531 = 0, $2532 = 0, $2533 = 0, $2534 = 0, $2535 = 0, $2536 = 0, $2537 = 0, $2538 = 0, $2539 = 0, $254 = 0, $2540 = 0, $2541 = 0, $2542 = 0, $2543 = 0, $2544 = 0, $2545 = 0, $2546 = 0;
- var $2547 = 0, $2548 = 0, $2549 = 0, $255 = 0, $2550 = 0, $2551 = 0, $2552 = 0, $2553 = 0, $2554 = 0, $2555 = 0, $2556 = 0, $2557 = 0, $2558 = 0, $2559 = 0, $256 = 0, $2560 = 0, $2561 = 0, $2562 = 0, $2563 = 0, $2564 = 0;
- var $2565 = 0, $2566 = 0, $2567 = 0, $2568 = 0, $2569 = 0, $257 = 0, $2570 = 0, $2571 = 0, $2572 = 0, $2573 = 0, $2574 = 0, $2575 = 0, $2576 = 0, $2577 = 0, $2578 = 0, $2579 = 0, $258 = 0, $2580 = 0, $2581 = 0, $2582 = 0;
- var $2583 = 0, $2584 = 0, $2585 = 0, $2586 = 0, $2587 = 0, $2588 = 0, $2589 = 0, $259 = 0, $2590 = 0, $2591 = 0, $2592 = 0, $2593 = 0, $2594 = 0, $2595 = 0, $2596 = 0, $2597 = 0, $2598 = 0, $2599 = 0, $26 = 0, $260 = 0;
- var $2600 = 0, $2601 = 0, $2602 = 0, $2603 = 0, $2604 = 0, $2605 = 0, $2606 = 0, $2607 = 0, $2608 = 0, $2609 = 0, $261 = 0, $2610 = 0, $2611 = 0, $2612 = 0, $2613 = 0, $2614 = 0, $2615 = 0, $262 = 0, $263 = 0, $264 = 0;
- var $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0;
- var $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0;
- var $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0;
- var $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0;
- var $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0;
- var $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0;
- var $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0;
- var $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0;
- var $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0;
- var $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0;
- var $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0;
- var $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0;
- var $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0;
- var $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0;
- var $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0;
- var $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0;
- var $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0;
- var $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0;
- var $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0;
- var $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0;
- var $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0;
- var $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0;
- var $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0;
- var $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0;
- var $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0;
- var $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0;
- var $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0;
- var $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0;
- var $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0;
- var $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0;
- var $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0;
- var $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0;
- var $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0;
- var $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0;
- var $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0;
- var $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0;
- var $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0;
- var $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0;
- var $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0;
- var $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0;
- var $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(208|0);
- $2 = sp + 192|0;
- $3 = sp + 184|0;
- $4 = sp + 176|0;
- $5 = sp + 168|0;
- $6 = sp + 160|0;
- $7 = sp + 152|0;
- $8 = sp + 144|0;
- $9 = sp + 136|0;
- $10 = sp + 128|0;
- $11 = sp + 120|0;
- $12 = sp + 112|0;
- $13 = sp + 104|0;
- $14 = sp + 96|0;
- $15 = sp + 88|0;
- $16 = sp + 80|0;
- $17 = sp + 72|0;
- $18 = sp + 64|0;
- $19 = sp + 56|0;
- $20 = sp + 48|0;
- $21 = sp + 40|0;
- $22 = sp + 32|0;
- $23 = sp + 24|0;
- $24 = sp + 16|0;
- $25 = sp + 8|0;
- $26 = sp;
- $1 = $0;
- $27 = $1;
- $28 = (_load_3($27)|0);
- $29 = tempRet0;
- $30 = 2097151 & $28;
- $31 = $2;
- $32 = $31;
- HEAP32[$32>>2] = $30;
- $33 = (($31) + 4)|0;
- $34 = $33;
- HEAP32[$34>>2] = 0;
- $35 = $1;
- $36 = ((($35)) + 2|0);
- $37 = (_load_4($36)|0);
- $38 = tempRet0;
- $39 = (_bitshift64Lshr(($37|0),($38|0),5)|0);
- $40 = tempRet0;
- $41 = 2097151 & $39;
- $42 = $3;
- $43 = $42;
- HEAP32[$43>>2] = $41;
- $44 = (($42) + 4)|0;
- $45 = $44;
- HEAP32[$45>>2] = 0;
- $46 = $1;
- $47 = ((($46)) + 5|0);
- $48 = (_load_3($47)|0);
- $49 = tempRet0;
- $50 = (_bitshift64Lshr(($48|0),($49|0),2)|0);
- $51 = tempRet0;
- $52 = 2097151 & $50;
- $53 = $4;
- $54 = $53;
- HEAP32[$54>>2] = $52;
- $55 = (($53) + 4)|0;
- $56 = $55;
- HEAP32[$56>>2] = 0;
- $57 = $1;
- $58 = ((($57)) + 7|0);
- $59 = (_load_4($58)|0);
- $60 = tempRet0;
- $61 = (_bitshift64Lshr(($59|0),($60|0),7)|0);
- $62 = tempRet0;
- $63 = 2097151 & $61;
- $64 = $5;
- $65 = $64;
- HEAP32[$65>>2] = $63;
- $66 = (($64) + 4)|0;
- $67 = $66;
- HEAP32[$67>>2] = 0;
- $68 = $1;
- $69 = ((($68)) + 10|0);
- $70 = (_load_4($69)|0);
- $71 = tempRet0;
- $72 = (_bitshift64Lshr(($70|0),($71|0),4)|0);
- $73 = tempRet0;
- $74 = 2097151 & $72;
- $75 = $6;
- $76 = $75;
- HEAP32[$76>>2] = $74;
- $77 = (($75) + 4)|0;
- $78 = $77;
- HEAP32[$78>>2] = 0;
- $79 = $1;
- $80 = ((($79)) + 13|0);
- $81 = (_load_3($80)|0);
- $82 = tempRet0;
- $83 = (_bitshift64Lshr(($81|0),($82|0),1)|0);
- $84 = tempRet0;
- $85 = 2097151 & $83;
- $86 = $7;
- $87 = $86;
- HEAP32[$87>>2] = $85;
- $88 = (($86) + 4)|0;
- $89 = $88;
- HEAP32[$89>>2] = 0;
- $90 = $1;
- $91 = ((($90)) + 15|0);
- $92 = (_load_4($91)|0);
- $93 = tempRet0;
- $94 = (_bitshift64Lshr(($92|0),($93|0),6)|0);
- $95 = tempRet0;
- $96 = 2097151 & $94;
- $97 = $8;
- $98 = $97;
- HEAP32[$98>>2] = $96;
- $99 = (($97) + 4)|0;
- $100 = $99;
- HEAP32[$100>>2] = 0;
- $101 = $1;
- $102 = ((($101)) + 18|0);
- $103 = (_load_3($102)|0);
- $104 = tempRet0;
- $105 = (_bitshift64Lshr(($103|0),($104|0),3)|0);
- $106 = tempRet0;
- $107 = 2097151 & $105;
- $108 = $9;
- $109 = $108;
- HEAP32[$109>>2] = $107;
- $110 = (($108) + 4)|0;
- $111 = $110;
- HEAP32[$111>>2] = 0;
- $112 = $1;
- $113 = ((($112)) + 21|0);
- $114 = (_load_3($113)|0);
- $115 = tempRet0;
- $116 = 2097151 & $114;
- $117 = $10;
- $118 = $117;
- HEAP32[$118>>2] = $116;
- $119 = (($117) + 4)|0;
- $120 = $119;
- HEAP32[$120>>2] = 0;
- $121 = $1;
- $122 = ((($121)) + 23|0);
- $123 = (_load_4($122)|0);
- $124 = tempRet0;
- $125 = (_bitshift64Lshr(($123|0),($124|0),5)|0);
- $126 = tempRet0;
- $127 = 2097151 & $125;
- $128 = $11;
- $129 = $128;
- HEAP32[$129>>2] = $127;
- $130 = (($128) + 4)|0;
- $131 = $130;
- HEAP32[$131>>2] = 0;
- $132 = $1;
- $133 = ((($132)) + 26|0);
- $134 = (_load_3($133)|0);
- $135 = tempRet0;
- $136 = (_bitshift64Lshr(($134|0),($135|0),2)|0);
- $137 = tempRet0;
- $138 = 2097151 & $136;
- $139 = $12;
- $140 = $139;
- HEAP32[$140>>2] = $138;
- $141 = (($139) + 4)|0;
- $142 = $141;
- HEAP32[$142>>2] = 0;
- $143 = $1;
- $144 = ((($143)) + 28|0);
- $145 = (_load_4($144)|0);
- $146 = tempRet0;
- $147 = (_bitshift64Lshr(($145|0),($146|0),7)|0);
- $148 = tempRet0;
- $149 = $13;
- $150 = $149;
- HEAP32[$150>>2] = $147;
- $151 = (($149) + 4)|0;
- $152 = $151;
- HEAP32[$152>>2] = $148;
- $153 = $14;
- $154 = $153;
- HEAP32[$154>>2] = 0;
- $155 = (($153) + 4)|0;
- $156 = $155;
- HEAP32[$156>>2] = 0;
- $157 = $2;
- $158 = $157;
- $159 = HEAP32[$158>>2]|0;
- $160 = (($157) + 4)|0;
- $161 = $160;
- $162 = HEAP32[$161>>2]|0;
- $163 = (_i64Add(($159|0),($162|0),1048576,0)|0);
- $164 = tempRet0;
- $165 = (_bitshift64Ashr(($163|0),($164|0),21)|0);
- $166 = tempRet0;
- $167 = $15;
- $168 = $167;
- HEAP32[$168>>2] = $165;
- $169 = (($167) + 4)|0;
- $170 = $169;
- HEAP32[$170>>2] = $166;
- $171 = $15;
- $172 = $171;
- $173 = HEAP32[$172>>2]|0;
- $174 = (($171) + 4)|0;
- $175 = $174;
- $176 = HEAP32[$175>>2]|0;
- $177 = $3;
- $178 = $177;
- $179 = HEAP32[$178>>2]|0;
- $180 = (($177) + 4)|0;
- $181 = $180;
- $182 = HEAP32[$181>>2]|0;
- $183 = (_i64Add(($179|0),($182|0),($173|0),($176|0))|0);
- $184 = tempRet0;
- $185 = $3;
- $186 = $185;
- HEAP32[$186>>2] = $183;
- $187 = (($185) + 4)|0;
- $188 = $187;
- HEAP32[$188>>2] = $184;
- $189 = $15;
- $190 = $189;
- $191 = HEAP32[$190>>2]|0;
- $192 = (($189) + 4)|0;
- $193 = $192;
- $194 = HEAP32[$193>>2]|0;
- $195 = (_bitshift64Shl(($191|0),($194|0),21)|0);
- $196 = tempRet0;
- $197 = $2;
- $198 = $197;
- $199 = HEAP32[$198>>2]|0;
- $200 = (($197) + 4)|0;
- $201 = $200;
- $202 = HEAP32[$201>>2]|0;
- $203 = (_i64Subtract(($199|0),($202|0),($195|0),($196|0))|0);
- $204 = tempRet0;
- $205 = $2;
- $206 = $205;
- HEAP32[$206>>2] = $203;
- $207 = (($205) + 4)|0;
- $208 = $207;
- HEAP32[$208>>2] = $204;
- $209 = $4;
- $210 = $209;
- $211 = HEAP32[$210>>2]|0;
- $212 = (($209) + 4)|0;
- $213 = $212;
- $214 = HEAP32[$213>>2]|0;
- $215 = (_i64Add(($211|0),($214|0),1048576,0)|0);
- $216 = tempRet0;
- $217 = (_bitshift64Ashr(($215|0),($216|0),21)|0);
- $218 = tempRet0;
- $219 = $17;
- $220 = $219;
- HEAP32[$220>>2] = $217;
- $221 = (($219) + 4)|0;
- $222 = $221;
- HEAP32[$222>>2] = $218;
- $223 = $17;
- $224 = $223;
- $225 = HEAP32[$224>>2]|0;
- $226 = (($223) + 4)|0;
- $227 = $226;
- $228 = HEAP32[$227>>2]|0;
- $229 = $5;
- $230 = $229;
- $231 = HEAP32[$230>>2]|0;
- $232 = (($229) + 4)|0;
- $233 = $232;
- $234 = HEAP32[$233>>2]|0;
- $235 = (_i64Add(($231|0),($234|0),($225|0),($228|0))|0);
- $236 = tempRet0;
- $237 = $5;
- $238 = $237;
- HEAP32[$238>>2] = $235;
- $239 = (($237) + 4)|0;
- $240 = $239;
- HEAP32[$240>>2] = $236;
- $241 = $17;
- $242 = $241;
- $243 = HEAP32[$242>>2]|0;
- $244 = (($241) + 4)|0;
- $245 = $244;
- $246 = HEAP32[$245>>2]|0;
- $247 = (_bitshift64Shl(($243|0),($246|0),21)|0);
- $248 = tempRet0;
- $249 = $4;
- $250 = $249;
- $251 = HEAP32[$250>>2]|0;
- $252 = (($249) + 4)|0;
- $253 = $252;
- $254 = HEAP32[$253>>2]|0;
- $255 = (_i64Subtract(($251|0),($254|0),($247|0),($248|0))|0);
- $256 = tempRet0;
- $257 = $4;
- $258 = $257;
- HEAP32[$258>>2] = $255;
- $259 = (($257) + 4)|0;
- $260 = $259;
- HEAP32[$260>>2] = $256;
- $261 = $6;
- $262 = $261;
- $263 = HEAP32[$262>>2]|0;
- $264 = (($261) + 4)|0;
- $265 = $264;
- $266 = HEAP32[$265>>2]|0;
- $267 = (_i64Add(($263|0),($266|0),1048576,0)|0);
- $268 = tempRet0;
- $269 = (_bitshift64Ashr(($267|0),($268|0),21)|0);
- $270 = tempRet0;
- $271 = $19;
- $272 = $271;
- HEAP32[$272>>2] = $269;
- $273 = (($271) + 4)|0;
- $274 = $273;
- HEAP32[$274>>2] = $270;
- $275 = $19;
- $276 = $275;
- $277 = HEAP32[$276>>2]|0;
- $278 = (($275) + 4)|0;
- $279 = $278;
- $280 = HEAP32[$279>>2]|0;
- $281 = $7;
- $282 = $281;
- $283 = HEAP32[$282>>2]|0;
- $284 = (($281) + 4)|0;
- $285 = $284;
- $286 = HEAP32[$285>>2]|0;
- $287 = (_i64Add(($283|0),($286|0),($277|0),($280|0))|0);
- $288 = tempRet0;
- $289 = $7;
- $290 = $289;
- HEAP32[$290>>2] = $287;
- $291 = (($289) + 4)|0;
- $292 = $291;
- HEAP32[$292>>2] = $288;
- $293 = $19;
- $294 = $293;
- $295 = HEAP32[$294>>2]|0;
- $296 = (($293) + 4)|0;
- $297 = $296;
- $298 = HEAP32[$297>>2]|0;
- $299 = (_bitshift64Shl(($295|0),($298|0),21)|0);
- $300 = tempRet0;
- $301 = $6;
- $302 = $301;
- $303 = HEAP32[$302>>2]|0;
- $304 = (($301) + 4)|0;
- $305 = $304;
- $306 = HEAP32[$305>>2]|0;
- $307 = (_i64Subtract(($303|0),($306|0),($299|0),($300|0))|0);
- $308 = tempRet0;
- $309 = $6;
- $310 = $309;
- HEAP32[$310>>2] = $307;
- $311 = (($309) + 4)|0;
- $312 = $311;
- HEAP32[$312>>2] = $308;
- $313 = $8;
- $314 = $313;
- $315 = HEAP32[$314>>2]|0;
- $316 = (($313) + 4)|0;
- $317 = $316;
- $318 = HEAP32[$317>>2]|0;
- $319 = (_i64Add(($315|0),($318|0),1048576,0)|0);
- $320 = tempRet0;
- $321 = (_bitshift64Ashr(($319|0),($320|0),21)|0);
- $322 = tempRet0;
- $323 = $21;
- $324 = $323;
- HEAP32[$324>>2] = $321;
- $325 = (($323) + 4)|0;
- $326 = $325;
- HEAP32[$326>>2] = $322;
- $327 = $21;
- $328 = $327;
- $329 = HEAP32[$328>>2]|0;
- $330 = (($327) + 4)|0;
- $331 = $330;
- $332 = HEAP32[$331>>2]|0;
- $333 = $9;
- $334 = $333;
- $335 = HEAP32[$334>>2]|0;
- $336 = (($333) + 4)|0;
- $337 = $336;
- $338 = HEAP32[$337>>2]|0;
- $339 = (_i64Add(($335|0),($338|0),($329|0),($332|0))|0);
- $340 = tempRet0;
- $341 = $9;
- $342 = $341;
- HEAP32[$342>>2] = $339;
- $343 = (($341) + 4)|0;
- $344 = $343;
- HEAP32[$344>>2] = $340;
- $345 = $21;
- $346 = $345;
- $347 = HEAP32[$346>>2]|0;
- $348 = (($345) + 4)|0;
- $349 = $348;
- $350 = HEAP32[$349>>2]|0;
- $351 = (_bitshift64Shl(($347|0),($350|0),21)|0);
- $352 = tempRet0;
- $353 = $8;
- $354 = $353;
- $355 = HEAP32[$354>>2]|0;
- $356 = (($353) + 4)|0;
- $357 = $356;
- $358 = HEAP32[$357>>2]|0;
- $359 = (_i64Subtract(($355|0),($358|0),($351|0),($352|0))|0);
- $360 = tempRet0;
- $361 = $8;
- $362 = $361;
- HEAP32[$362>>2] = $359;
- $363 = (($361) + 4)|0;
- $364 = $363;
- HEAP32[$364>>2] = $360;
- $365 = $10;
- $366 = $365;
- $367 = HEAP32[$366>>2]|0;
- $368 = (($365) + 4)|0;
- $369 = $368;
- $370 = HEAP32[$369>>2]|0;
- $371 = (_i64Add(($367|0),($370|0),1048576,0)|0);
- $372 = tempRet0;
- $373 = (_bitshift64Ashr(($371|0),($372|0),21)|0);
- $374 = tempRet0;
- $375 = $23;
- $376 = $375;
- HEAP32[$376>>2] = $373;
- $377 = (($375) + 4)|0;
- $378 = $377;
- HEAP32[$378>>2] = $374;
- $379 = $23;
- $380 = $379;
- $381 = HEAP32[$380>>2]|0;
- $382 = (($379) + 4)|0;
- $383 = $382;
- $384 = HEAP32[$383>>2]|0;
- $385 = $11;
- $386 = $385;
- $387 = HEAP32[$386>>2]|0;
- $388 = (($385) + 4)|0;
- $389 = $388;
- $390 = HEAP32[$389>>2]|0;
- $391 = (_i64Add(($387|0),($390|0),($381|0),($384|0))|0);
- $392 = tempRet0;
- $393 = $11;
- $394 = $393;
- HEAP32[$394>>2] = $391;
- $395 = (($393) + 4)|0;
- $396 = $395;
- HEAP32[$396>>2] = $392;
- $397 = $23;
- $398 = $397;
- $399 = HEAP32[$398>>2]|0;
- $400 = (($397) + 4)|0;
- $401 = $400;
- $402 = HEAP32[$401>>2]|0;
- $403 = (_bitshift64Shl(($399|0),($402|0),21)|0);
- $404 = tempRet0;
- $405 = $10;
- $406 = $405;
- $407 = HEAP32[$406>>2]|0;
- $408 = (($405) + 4)|0;
- $409 = $408;
- $410 = HEAP32[$409>>2]|0;
- $411 = (_i64Subtract(($407|0),($410|0),($403|0),($404|0))|0);
- $412 = tempRet0;
- $413 = $10;
- $414 = $413;
- HEAP32[$414>>2] = $411;
- $415 = (($413) + 4)|0;
- $416 = $415;
- HEAP32[$416>>2] = $412;
- $417 = $12;
- $418 = $417;
- $419 = HEAP32[$418>>2]|0;
- $420 = (($417) + 4)|0;
- $421 = $420;
- $422 = HEAP32[$421>>2]|0;
- $423 = (_i64Add(($419|0),($422|0),1048576,0)|0);
- $424 = tempRet0;
- $425 = (_bitshift64Ashr(($423|0),($424|0),21)|0);
- $426 = tempRet0;
- $427 = $25;
- $428 = $427;
- HEAP32[$428>>2] = $425;
- $429 = (($427) + 4)|0;
- $430 = $429;
- HEAP32[$430>>2] = $426;
- $431 = $25;
- $432 = $431;
- $433 = HEAP32[$432>>2]|0;
- $434 = (($431) + 4)|0;
- $435 = $434;
- $436 = HEAP32[$435>>2]|0;
- $437 = $13;
- $438 = $437;
- $439 = HEAP32[$438>>2]|0;
- $440 = (($437) + 4)|0;
- $441 = $440;
- $442 = HEAP32[$441>>2]|0;
- $443 = (_i64Add(($439|0),($442|0),($433|0),($436|0))|0);
- $444 = tempRet0;
- $445 = $13;
- $446 = $445;
- HEAP32[$446>>2] = $443;
- $447 = (($445) + 4)|0;
- $448 = $447;
- HEAP32[$448>>2] = $444;
- $449 = $25;
- $450 = $449;
- $451 = HEAP32[$450>>2]|0;
- $452 = (($449) + 4)|0;
- $453 = $452;
- $454 = HEAP32[$453>>2]|0;
- $455 = (_bitshift64Shl(($451|0),($454|0),21)|0);
- $456 = tempRet0;
- $457 = $12;
- $458 = $457;
- $459 = HEAP32[$458>>2]|0;
- $460 = (($457) + 4)|0;
- $461 = $460;
- $462 = HEAP32[$461>>2]|0;
- $463 = (_i64Subtract(($459|0),($462|0),($455|0),($456|0))|0);
- $464 = tempRet0;
- $465 = $12;
- $466 = $465;
- HEAP32[$466>>2] = $463;
- $467 = (($465) + 4)|0;
- $468 = $467;
- HEAP32[$468>>2] = $464;
- $469 = $3;
- $470 = $469;
- $471 = HEAP32[$470>>2]|0;
- $472 = (($469) + 4)|0;
- $473 = $472;
- $474 = HEAP32[$473>>2]|0;
- $475 = (_i64Add(($471|0),($474|0),1048576,0)|0);
- $476 = tempRet0;
- $477 = (_bitshift64Ashr(($475|0),($476|0),21)|0);
- $478 = tempRet0;
- $479 = $16;
- $480 = $479;
- HEAP32[$480>>2] = $477;
- $481 = (($479) + 4)|0;
- $482 = $481;
- HEAP32[$482>>2] = $478;
- $483 = $16;
- $484 = $483;
- $485 = HEAP32[$484>>2]|0;
- $486 = (($483) + 4)|0;
- $487 = $486;
- $488 = HEAP32[$487>>2]|0;
- $489 = $4;
- $490 = $489;
- $491 = HEAP32[$490>>2]|0;
- $492 = (($489) + 4)|0;
- $493 = $492;
- $494 = HEAP32[$493>>2]|0;
- $495 = (_i64Add(($491|0),($494|0),($485|0),($488|0))|0);
- $496 = tempRet0;
- $497 = $4;
- $498 = $497;
- HEAP32[$498>>2] = $495;
- $499 = (($497) + 4)|0;
- $500 = $499;
- HEAP32[$500>>2] = $496;
- $501 = $16;
- $502 = $501;
- $503 = HEAP32[$502>>2]|0;
- $504 = (($501) + 4)|0;
- $505 = $504;
- $506 = HEAP32[$505>>2]|0;
- $507 = (_bitshift64Shl(($503|0),($506|0),21)|0);
- $508 = tempRet0;
- $509 = $3;
- $510 = $509;
- $511 = HEAP32[$510>>2]|0;
- $512 = (($509) + 4)|0;
- $513 = $512;
- $514 = HEAP32[$513>>2]|0;
- $515 = (_i64Subtract(($511|0),($514|0),($507|0),($508|0))|0);
- $516 = tempRet0;
- $517 = $3;
- $518 = $517;
- HEAP32[$518>>2] = $515;
- $519 = (($517) + 4)|0;
- $520 = $519;
- HEAP32[$520>>2] = $516;
- $521 = $5;
- $522 = $521;
- $523 = HEAP32[$522>>2]|0;
- $524 = (($521) + 4)|0;
- $525 = $524;
- $526 = HEAP32[$525>>2]|0;
- $527 = (_i64Add(($523|0),($526|0),1048576,0)|0);
- $528 = tempRet0;
- $529 = (_bitshift64Ashr(($527|0),($528|0),21)|0);
- $530 = tempRet0;
- $531 = $18;
- $532 = $531;
- HEAP32[$532>>2] = $529;
- $533 = (($531) + 4)|0;
- $534 = $533;
- HEAP32[$534>>2] = $530;
- $535 = $18;
- $536 = $535;
- $537 = HEAP32[$536>>2]|0;
- $538 = (($535) + 4)|0;
- $539 = $538;
- $540 = HEAP32[$539>>2]|0;
- $541 = $6;
- $542 = $541;
- $543 = HEAP32[$542>>2]|0;
- $544 = (($541) + 4)|0;
- $545 = $544;
- $546 = HEAP32[$545>>2]|0;
- $547 = (_i64Add(($543|0),($546|0),($537|0),($540|0))|0);
- $548 = tempRet0;
- $549 = $6;
- $550 = $549;
- HEAP32[$550>>2] = $547;
- $551 = (($549) + 4)|0;
- $552 = $551;
- HEAP32[$552>>2] = $548;
- $553 = $18;
- $554 = $553;
- $555 = HEAP32[$554>>2]|0;
- $556 = (($553) + 4)|0;
- $557 = $556;
- $558 = HEAP32[$557>>2]|0;
- $559 = (_bitshift64Shl(($555|0),($558|0),21)|0);
- $560 = tempRet0;
- $561 = $5;
- $562 = $561;
- $563 = HEAP32[$562>>2]|0;
- $564 = (($561) + 4)|0;
- $565 = $564;
- $566 = HEAP32[$565>>2]|0;
- $567 = (_i64Subtract(($563|0),($566|0),($559|0),($560|0))|0);
- $568 = tempRet0;
- $569 = $5;
- $570 = $569;
- HEAP32[$570>>2] = $567;
- $571 = (($569) + 4)|0;
- $572 = $571;
- HEAP32[$572>>2] = $568;
- $573 = $7;
- $574 = $573;
- $575 = HEAP32[$574>>2]|0;
- $576 = (($573) + 4)|0;
- $577 = $576;
- $578 = HEAP32[$577>>2]|0;
- $579 = (_i64Add(($575|0),($578|0),1048576,0)|0);
- $580 = tempRet0;
- $581 = (_bitshift64Ashr(($579|0),($580|0),21)|0);
- $582 = tempRet0;
- $583 = $20;
- $584 = $583;
- HEAP32[$584>>2] = $581;
- $585 = (($583) + 4)|0;
- $586 = $585;
- HEAP32[$586>>2] = $582;
- $587 = $20;
- $588 = $587;
- $589 = HEAP32[$588>>2]|0;
- $590 = (($587) + 4)|0;
- $591 = $590;
- $592 = HEAP32[$591>>2]|0;
- $593 = $8;
- $594 = $593;
- $595 = HEAP32[$594>>2]|0;
- $596 = (($593) + 4)|0;
- $597 = $596;
- $598 = HEAP32[$597>>2]|0;
- $599 = (_i64Add(($595|0),($598|0),($589|0),($592|0))|0);
- $600 = tempRet0;
- $601 = $8;
- $602 = $601;
- HEAP32[$602>>2] = $599;
- $603 = (($601) + 4)|0;
- $604 = $603;
- HEAP32[$604>>2] = $600;
- $605 = $20;
- $606 = $605;
- $607 = HEAP32[$606>>2]|0;
- $608 = (($605) + 4)|0;
- $609 = $608;
- $610 = HEAP32[$609>>2]|0;
- $611 = (_bitshift64Shl(($607|0),($610|0),21)|0);
- $612 = tempRet0;
- $613 = $7;
- $614 = $613;
- $615 = HEAP32[$614>>2]|0;
- $616 = (($613) + 4)|0;
- $617 = $616;
- $618 = HEAP32[$617>>2]|0;
- $619 = (_i64Subtract(($615|0),($618|0),($611|0),($612|0))|0);
- $620 = tempRet0;
- $621 = $7;
- $622 = $621;
- HEAP32[$622>>2] = $619;
- $623 = (($621) + 4)|0;
- $624 = $623;
- HEAP32[$624>>2] = $620;
- $625 = $9;
- $626 = $625;
- $627 = HEAP32[$626>>2]|0;
- $628 = (($625) + 4)|0;
- $629 = $628;
- $630 = HEAP32[$629>>2]|0;
- $631 = (_i64Add(($627|0),($630|0),1048576,0)|0);
- $632 = tempRet0;
- $633 = (_bitshift64Ashr(($631|0),($632|0),21)|0);
- $634 = tempRet0;
- $635 = $22;
- $636 = $635;
- HEAP32[$636>>2] = $633;
- $637 = (($635) + 4)|0;
- $638 = $637;
- HEAP32[$638>>2] = $634;
- $639 = $22;
- $640 = $639;
- $641 = HEAP32[$640>>2]|0;
- $642 = (($639) + 4)|0;
- $643 = $642;
- $644 = HEAP32[$643>>2]|0;
- $645 = $10;
- $646 = $645;
- $647 = HEAP32[$646>>2]|0;
- $648 = (($645) + 4)|0;
- $649 = $648;
- $650 = HEAP32[$649>>2]|0;
- $651 = (_i64Add(($647|0),($650|0),($641|0),($644|0))|0);
- $652 = tempRet0;
- $653 = $10;
- $654 = $653;
- HEAP32[$654>>2] = $651;
- $655 = (($653) + 4)|0;
- $656 = $655;
- HEAP32[$656>>2] = $652;
- $657 = $22;
- $658 = $657;
- $659 = HEAP32[$658>>2]|0;
- $660 = (($657) + 4)|0;
- $661 = $660;
- $662 = HEAP32[$661>>2]|0;
- $663 = (_bitshift64Shl(($659|0),($662|0),21)|0);
- $664 = tempRet0;
- $665 = $9;
- $666 = $665;
- $667 = HEAP32[$666>>2]|0;
- $668 = (($665) + 4)|0;
- $669 = $668;
- $670 = HEAP32[$669>>2]|0;
- $671 = (_i64Subtract(($667|0),($670|0),($663|0),($664|0))|0);
- $672 = tempRet0;
- $673 = $9;
- $674 = $673;
- HEAP32[$674>>2] = $671;
- $675 = (($673) + 4)|0;
- $676 = $675;
- HEAP32[$676>>2] = $672;
- $677 = $11;
- $678 = $677;
- $679 = HEAP32[$678>>2]|0;
- $680 = (($677) + 4)|0;
- $681 = $680;
- $682 = HEAP32[$681>>2]|0;
- $683 = (_i64Add(($679|0),($682|0),1048576,0)|0);
- $684 = tempRet0;
- $685 = (_bitshift64Ashr(($683|0),($684|0),21)|0);
- $686 = tempRet0;
- $687 = $24;
- $688 = $687;
- HEAP32[$688>>2] = $685;
- $689 = (($687) + 4)|0;
- $690 = $689;
- HEAP32[$690>>2] = $686;
- $691 = $24;
- $692 = $691;
- $693 = HEAP32[$692>>2]|0;
- $694 = (($691) + 4)|0;
- $695 = $694;
- $696 = HEAP32[$695>>2]|0;
- $697 = $12;
- $698 = $697;
- $699 = HEAP32[$698>>2]|0;
- $700 = (($697) + 4)|0;
- $701 = $700;
- $702 = HEAP32[$701>>2]|0;
- $703 = (_i64Add(($699|0),($702|0),($693|0),($696|0))|0);
- $704 = tempRet0;
- $705 = $12;
- $706 = $705;
- HEAP32[$706>>2] = $703;
- $707 = (($705) + 4)|0;
- $708 = $707;
- HEAP32[$708>>2] = $704;
- $709 = $24;
- $710 = $709;
- $711 = HEAP32[$710>>2]|0;
- $712 = (($709) + 4)|0;
- $713 = $712;
- $714 = HEAP32[$713>>2]|0;
- $715 = (_bitshift64Shl(($711|0),($714|0),21)|0);
- $716 = tempRet0;
- $717 = $11;
- $718 = $717;
- $719 = HEAP32[$718>>2]|0;
- $720 = (($717) + 4)|0;
- $721 = $720;
- $722 = HEAP32[$721>>2]|0;
- $723 = (_i64Subtract(($719|0),($722|0),($715|0),($716|0))|0);
- $724 = tempRet0;
- $725 = $11;
- $726 = $725;
- HEAP32[$726>>2] = $723;
- $727 = (($725) + 4)|0;
- $728 = $727;
- HEAP32[$728>>2] = $724;
- $729 = $13;
- $730 = $729;
- $731 = HEAP32[$730>>2]|0;
- $732 = (($729) + 4)|0;
- $733 = $732;
- $734 = HEAP32[$733>>2]|0;
- $735 = (_i64Add(($731|0),($734|0),1048576,0)|0);
- $736 = tempRet0;
- $737 = (_bitshift64Ashr(($735|0),($736|0),21)|0);
- $738 = tempRet0;
- $739 = $26;
- $740 = $739;
- HEAP32[$740>>2] = $737;
- $741 = (($739) + 4)|0;
- $742 = $741;
- HEAP32[$742>>2] = $738;
- $743 = $26;
- $744 = $743;
- $745 = HEAP32[$744>>2]|0;
- $746 = (($743) + 4)|0;
- $747 = $746;
- $748 = HEAP32[$747>>2]|0;
- $749 = $14;
- $750 = $749;
- $751 = HEAP32[$750>>2]|0;
- $752 = (($749) + 4)|0;
- $753 = $752;
- $754 = HEAP32[$753>>2]|0;
- $755 = (_i64Add(($751|0),($754|0),($745|0),($748|0))|0);
- $756 = tempRet0;
- $757 = $14;
- $758 = $757;
- HEAP32[$758>>2] = $755;
- $759 = (($757) + 4)|0;
- $760 = $759;
- HEAP32[$760>>2] = $756;
- $761 = $26;
- $762 = $761;
- $763 = HEAP32[$762>>2]|0;
- $764 = (($761) + 4)|0;
- $765 = $764;
- $766 = HEAP32[$765>>2]|0;
- $767 = (_bitshift64Shl(($763|0),($766|0),21)|0);
- $768 = tempRet0;
- $769 = $13;
- $770 = $769;
- $771 = HEAP32[$770>>2]|0;
- $772 = (($769) + 4)|0;
- $773 = $772;
- $774 = HEAP32[$773>>2]|0;
- $775 = (_i64Subtract(($771|0),($774|0),($767|0),($768|0))|0);
- $776 = tempRet0;
- $777 = $13;
- $778 = $777;
- HEAP32[$778>>2] = $775;
- $779 = (($777) + 4)|0;
- $780 = $779;
- HEAP32[$780>>2] = $776;
- $781 = $14;
- $782 = $781;
- $783 = HEAP32[$782>>2]|0;
- $784 = (($781) + 4)|0;
- $785 = $784;
- $786 = HEAP32[$785>>2]|0;
- $787 = (___muldi3(($783|0),($786|0),666643,0)|0);
- $788 = tempRet0;
- $789 = $2;
- $790 = $789;
- $791 = HEAP32[$790>>2]|0;
- $792 = (($789) + 4)|0;
- $793 = $792;
- $794 = HEAP32[$793>>2]|0;
- $795 = (_i64Add(($791|0),($794|0),($787|0),($788|0))|0);
- $796 = tempRet0;
- $797 = $2;
- $798 = $797;
- HEAP32[$798>>2] = $795;
- $799 = (($797) + 4)|0;
- $800 = $799;
- HEAP32[$800>>2] = $796;
- $801 = $14;
- $802 = $801;
- $803 = HEAP32[$802>>2]|0;
- $804 = (($801) + 4)|0;
- $805 = $804;
- $806 = HEAP32[$805>>2]|0;
- $807 = (___muldi3(($803|0),($806|0),470296,0)|0);
- $808 = tempRet0;
- $809 = $3;
- $810 = $809;
- $811 = HEAP32[$810>>2]|0;
- $812 = (($809) + 4)|0;
- $813 = $812;
- $814 = HEAP32[$813>>2]|0;
- $815 = (_i64Add(($811|0),($814|0),($807|0),($808|0))|0);
- $816 = tempRet0;
- $817 = $3;
- $818 = $817;
- HEAP32[$818>>2] = $815;
- $819 = (($817) + 4)|0;
- $820 = $819;
- HEAP32[$820>>2] = $816;
- $821 = $14;
- $822 = $821;
- $823 = HEAP32[$822>>2]|0;
- $824 = (($821) + 4)|0;
- $825 = $824;
- $826 = HEAP32[$825>>2]|0;
- $827 = (___muldi3(($823|0),($826|0),654183,0)|0);
- $828 = tempRet0;
- $829 = $4;
- $830 = $829;
- $831 = HEAP32[$830>>2]|0;
- $832 = (($829) + 4)|0;
- $833 = $832;
- $834 = HEAP32[$833>>2]|0;
- $835 = (_i64Add(($831|0),($834|0),($827|0),($828|0))|0);
- $836 = tempRet0;
- $837 = $4;
- $838 = $837;
- HEAP32[$838>>2] = $835;
- $839 = (($837) + 4)|0;
- $840 = $839;
- HEAP32[$840>>2] = $836;
- $841 = $14;
- $842 = $841;
- $843 = HEAP32[$842>>2]|0;
- $844 = (($841) + 4)|0;
- $845 = $844;
- $846 = HEAP32[$845>>2]|0;
- $847 = (___muldi3(($843|0),($846|0),997805,0)|0);
- $848 = tempRet0;
- $849 = $5;
- $850 = $849;
- $851 = HEAP32[$850>>2]|0;
- $852 = (($849) + 4)|0;
- $853 = $852;
- $854 = HEAP32[$853>>2]|0;
- $855 = (_i64Subtract(($851|0),($854|0),($847|0),($848|0))|0);
- $856 = tempRet0;
- $857 = $5;
- $858 = $857;
- HEAP32[$858>>2] = $855;
- $859 = (($857) + 4)|0;
- $860 = $859;
- HEAP32[$860>>2] = $856;
- $861 = $14;
- $862 = $861;
- $863 = HEAP32[$862>>2]|0;
- $864 = (($861) + 4)|0;
- $865 = $864;
- $866 = HEAP32[$865>>2]|0;
- $867 = (___muldi3(($863|0),($866|0),136657,0)|0);
- $868 = tempRet0;
- $869 = $6;
- $870 = $869;
- $871 = HEAP32[$870>>2]|0;
- $872 = (($869) + 4)|0;
- $873 = $872;
- $874 = HEAP32[$873>>2]|0;
- $875 = (_i64Add(($871|0),($874|0),($867|0),($868|0))|0);
- $876 = tempRet0;
- $877 = $6;
- $878 = $877;
- HEAP32[$878>>2] = $875;
- $879 = (($877) + 4)|0;
- $880 = $879;
- HEAP32[$880>>2] = $876;
- $881 = $14;
- $882 = $881;
- $883 = HEAP32[$882>>2]|0;
- $884 = (($881) + 4)|0;
- $885 = $884;
- $886 = HEAP32[$885>>2]|0;
- $887 = (___muldi3(($883|0),($886|0),683901,0)|0);
- $888 = tempRet0;
- $889 = $7;
- $890 = $889;
- $891 = HEAP32[$890>>2]|0;
- $892 = (($889) + 4)|0;
- $893 = $892;
- $894 = HEAP32[$893>>2]|0;
- $895 = (_i64Subtract(($891|0),($894|0),($887|0),($888|0))|0);
- $896 = tempRet0;
- $897 = $7;
- $898 = $897;
- HEAP32[$898>>2] = $895;
- $899 = (($897) + 4)|0;
- $900 = $899;
- HEAP32[$900>>2] = $896;
- $901 = $14;
- $902 = $901;
- HEAP32[$902>>2] = 0;
- $903 = (($901) + 4)|0;
- $904 = $903;
- HEAP32[$904>>2] = 0;
- $905 = $2;
- $906 = $905;
- $907 = HEAP32[$906>>2]|0;
- $908 = (($905) + 4)|0;
- $909 = $908;
- $910 = HEAP32[$909>>2]|0;
- $911 = (_bitshift64Ashr(($907|0),($910|0),21)|0);
- $912 = tempRet0;
- $913 = $15;
- $914 = $913;
- HEAP32[$914>>2] = $911;
- $915 = (($913) + 4)|0;
- $916 = $915;
- HEAP32[$916>>2] = $912;
- $917 = $15;
- $918 = $917;
- $919 = HEAP32[$918>>2]|0;
- $920 = (($917) + 4)|0;
- $921 = $920;
- $922 = HEAP32[$921>>2]|0;
- $923 = $3;
- $924 = $923;
- $925 = HEAP32[$924>>2]|0;
- $926 = (($923) + 4)|0;
- $927 = $926;
- $928 = HEAP32[$927>>2]|0;
- $929 = (_i64Add(($925|0),($928|0),($919|0),($922|0))|0);
- $930 = tempRet0;
- $931 = $3;
- $932 = $931;
- HEAP32[$932>>2] = $929;
- $933 = (($931) + 4)|0;
- $934 = $933;
- HEAP32[$934>>2] = $930;
- $935 = $15;
- $936 = $935;
- $937 = HEAP32[$936>>2]|0;
- $938 = (($935) + 4)|0;
- $939 = $938;
- $940 = HEAP32[$939>>2]|0;
- $941 = (_bitshift64Shl(($937|0),($940|0),21)|0);
- $942 = tempRet0;
- $943 = $2;
- $944 = $943;
- $945 = HEAP32[$944>>2]|0;
- $946 = (($943) + 4)|0;
- $947 = $946;
- $948 = HEAP32[$947>>2]|0;
- $949 = (_i64Subtract(($945|0),($948|0),($941|0),($942|0))|0);
- $950 = tempRet0;
- $951 = $2;
- $952 = $951;
- HEAP32[$952>>2] = $949;
- $953 = (($951) + 4)|0;
- $954 = $953;
- HEAP32[$954>>2] = $950;
- $955 = $3;
- $956 = $955;
- $957 = HEAP32[$956>>2]|0;
- $958 = (($955) + 4)|0;
- $959 = $958;
- $960 = HEAP32[$959>>2]|0;
- $961 = (_bitshift64Ashr(($957|0),($960|0),21)|0);
- $962 = tempRet0;
- $963 = $16;
- $964 = $963;
- HEAP32[$964>>2] = $961;
- $965 = (($963) + 4)|0;
- $966 = $965;
- HEAP32[$966>>2] = $962;
- $967 = $16;
- $968 = $967;
- $969 = HEAP32[$968>>2]|0;
- $970 = (($967) + 4)|0;
- $971 = $970;
- $972 = HEAP32[$971>>2]|0;
- $973 = $4;
- $974 = $973;
- $975 = HEAP32[$974>>2]|0;
- $976 = (($973) + 4)|0;
- $977 = $976;
- $978 = HEAP32[$977>>2]|0;
- $979 = (_i64Add(($975|0),($978|0),($969|0),($972|0))|0);
- $980 = tempRet0;
- $981 = $4;
- $982 = $981;
- HEAP32[$982>>2] = $979;
- $983 = (($981) + 4)|0;
- $984 = $983;
- HEAP32[$984>>2] = $980;
- $985 = $16;
- $986 = $985;
- $987 = HEAP32[$986>>2]|0;
- $988 = (($985) + 4)|0;
- $989 = $988;
- $990 = HEAP32[$989>>2]|0;
- $991 = (_bitshift64Shl(($987|0),($990|0),21)|0);
- $992 = tempRet0;
- $993 = $3;
- $994 = $993;
- $995 = HEAP32[$994>>2]|0;
- $996 = (($993) + 4)|0;
- $997 = $996;
- $998 = HEAP32[$997>>2]|0;
- $999 = (_i64Subtract(($995|0),($998|0),($991|0),($992|0))|0);
- $1000 = tempRet0;
- $1001 = $3;
- $1002 = $1001;
- HEAP32[$1002>>2] = $999;
- $1003 = (($1001) + 4)|0;
- $1004 = $1003;
- HEAP32[$1004>>2] = $1000;
- $1005 = $4;
- $1006 = $1005;
- $1007 = HEAP32[$1006>>2]|0;
- $1008 = (($1005) + 4)|0;
- $1009 = $1008;
- $1010 = HEAP32[$1009>>2]|0;
- $1011 = (_bitshift64Ashr(($1007|0),($1010|0),21)|0);
- $1012 = tempRet0;
- $1013 = $17;
- $1014 = $1013;
- HEAP32[$1014>>2] = $1011;
- $1015 = (($1013) + 4)|0;
- $1016 = $1015;
- HEAP32[$1016>>2] = $1012;
- $1017 = $17;
- $1018 = $1017;
- $1019 = HEAP32[$1018>>2]|0;
- $1020 = (($1017) + 4)|0;
- $1021 = $1020;
- $1022 = HEAP32[$1021>>2]|0;
- $1023 = $5;
- $1024 = $1023;
- $1025 = HEAP32[$1024>>2]|0;
- $1026 = (($1023) + 4)|0;
- $1027 = $1026;
- $1028 = HEAP32[$1027>>2]|0;
- $1029 = (_i64Add(($1025|0),($1028|0),($1019|0),($1022|0))|0);
- $1030 = tempRet0;
- $1031 = $5;
- $1032 = $1031;
- HEAP32[$1032>>2] = $1029;
- $1033 = (($1031) + 4)|0;
- $1034 = $1033;
- HEAP32[$1034>>2] = $1030;
- $1035 = $17;
- $1036 = $1035;
- $1037 = HEAP32[$1036>>2]|0;
- $1038 = (($1035) + 4)|0;
- $1039 = $1038;
- $1040 = HEAP32[$1039>>2]|0;
- $1041 = (_bitshift64Shl(($1037|0),($1040|0),21)|0);
- $1042 = tempRet0;
- $1043 = $4;
- $1044 = $1043;
- $1045 = HEAP32[$1044>>2]|0;
- $1046 = (($1043) + 4)|0;
- $1047 = $1046;
- $1048 = HEAP32[$1047>>2]|0;
- $1049 = (_i64Subtract(($1045|0),($1048|0),($1041|0),($1042|0))|0);
- $1050 = tempRet0;
- $1051 = $4;
- $1052 = $1051;
- HEAP32[$1052>>2] = $1049;
- $1053 = (($1051) + 4)|0;
- $1054 = $1053;
- HEAP32[$1054>>2] = $1050;
- $1055 = $5;
- $1056 = $1055;
- $1057 = HEAP32[$1056>>2]|0;
- $1058 = (($1055) + 4)|0;
- $1059 = $1058;
- $1060 = HEAP32[$1059>>2]|0;
- $1061 = (_bitshift64Ashr(($1057|0),($1060|0),21)|0);
- $1062 = tempRet0;
- $1063 = $18;
- $1064 = $1063;
- HEAP32[$1064>>2] = $1061;
- $1065 = (($1063) + 4)|0;
- $1066 = $1065;
- HEAP32[$1066>>2] = $1062;
- $1067 = $18;
- $1068 = $1067;
- $1069 = HEAP32[$1068>>2]|0;
- $1070 = (($1067) + 4)|0;
- $1071 = $1070;
- $1072 = HEAP32[$1071>>2]|0;
- $1073 = $6;
- $1074 = $1073;
- $1075 = HEAP32[$1074>>2]|0;
- $1076 = (($1073) + 4)|0;
- $1077 = $1076;
- $1078 = HEAP32[$1077>>2]|0;
- $1079 = (_i64Add(($1075|0),($1078|0),($1069|0),($1072|0))|0);
- $1080 = tempRet0;
- $1081 = $6;
- $1082 = $1081;
- HEAP32[$1082>>2] = $1079;
- $1083 = (($1081) + 4)|0;
- $1084 = $1083;
- HEAP32[$1084>>2] = $1080;
- $1085 = $18;
- $1086 = $1085;
- $1087 = HEAP32[$1086>>2]|0;
- $1088 = (($1085) + 4)|0;
- $1089 = $1088;
- $1090 = HEAP32[$1089>>2]|0;
- $1091 = (_bitshift64Shl(($1087|0),($1090|0),21)|0);
- $1092 = tempRet0;
- $1093 = $5;
- $1094 = $1093;
- $1095 = HEAP32[$1094>>2]|0;
- $1096 = (($1093) + 4)|0;
- $1097 = $1096;
- $1098 = HEAP32[$1097>>2]|0;
- $1099 = (_i64Subtract(($1095|0),($1098|0),($1091|0),($1092|0))|0);
- $1100 = tempRet0;
- $1101 = $5;
- $1102 = $1101;
- HEAP32[$1102>>2] = $1099;
- $1103 = (($1101) + 4)|0;
- $1104 = $1103;
- HEAP32[$1104>>2] = $1100;
- $1105 = $6;
- $1106 = $1105;
- $1107 = HEAP32[$1106>>2]|0;
- $1108 = (($1105) + 4)|0;
- $1109 = $1108;
- $1110 = HEAP32[$1109>>2]|0;
- $1111 = (_bitshift64Ashr(($1107|0),($1110|0),21)|0);
- $1112 = tempRet0;
- $1113 = $19;
- $1114 = $1113;
- HEAP32[$1114>>2] = $1111;
- $1115 = (($1113) + 4)|0;
- $1116 = $1115;
- HEAP32[$1116>>2] = $1112;
- $1117 = $19;
- $1118 = $1117;
- $1119 = HEAP32[$1118>>2]|0;
- $1120 = (($1117) + 4)|0;
- $1121 = $1120;
- $1122 = HEAP32[$1121>>2]|0;
- $1123 = $7;
- $1124 = $1123;
- $1125 = HEAP32[$1124>>2]|0;
- $1126 = (($1123) + 4)|0;
- $1127 = $1126;
- $1128 = HEAP32[$1127>>2]|0;
- $1129 = (_i64Add(($1125|0),($1128|0),($1119|0),($1122|0))|0);
- $1130 = tempRet0;
- $1131 = $7;
- $1132 = $1131;
- HEAP32[$1132>>2] = $1129;
- $1133 = (($1131) + 4)|0;
- $1134 = $1133;
- HEAP32[$1134>>2] = $1130;
- $1135 = $19;
- $1136 = $1135;
- $1137 = HEAP32[$1136>>2]|0;
- $1138 = (($1135) + 4)|0;
- $1139 = $1138;
- $1140 = HEAP32[$1139>>2]|0;
- $1141 = (_bitshift64Shl(($1137|0),($1140|0),21)|0);
- $1142 = tempRet0;
- $1143 = $6;
- $1144 = $1143;
- $1145 = HEAP32[$1144>>2]|0;
- $1146 = (($1143) + 4)|0;
- $1147 = $1146;
- $1148 = HEAP32[$1147>>2]|0;
- $1149 = (_i64Subtract(($1145|0),($1148|0),($1141|0),($1142|0))|0);
- $1150 = tempRet0;
- $1151 = $6;
- $1152 = $1151;
- HEAP32[$1152>>2] = $1149;
- $1153 = (($1151) + 4)|0;
- $1154 = $1153;
- HEAP32[$1154>>2] = $1150;
- $1155 = $7;
- $1156 = $1155;
- $1157 = HEAP32[$1156>>2]|0;
- $1158 = (($1155) + 4)|0;
- $1159 = $1158;
- $1160 = HEAP32[$1159>>2]|0;
- $1161 = (_bitshift64Ashr(($1157|0),($1160|0),21)|0);
- $1162 = tempRet0;
- $1163 = $20;
- $1164 = $1163;
- HEAP32[$1164>>2] = $1161;
- $1165 = (($1163) + 4)|0;
- $1166 = $1165;
- HEAP32[$1166>>2] = $1162;
- $1167 = $20;
- $1168 = $1167;
- $1169 = HEAP32[$1168>>2]|0;
- $1170 = (($1167) + 4)|0;
- $1171 = $1170;
- $1172 = HEAP32[$1171>>2]|0;
- $1173 = $8;
- $1174 = $1173;
- $1175 = HEAP32[$1174>>2]|0;
- $1176 = (($1173) + 4)|0;
- $1177 = $1176;
- $1178 = HEAP32[$1177>>2]|0;
- $1179 = (_i64Add(($1175|0),($1178|0),($1169|0),($1172|0))|0);
- $1180 = tempRet0;
- $1181 = $8;
- $1182 = $1181;
- HEAP32[$1182>>2] = $1179;
- $1183 = (($1181) + 4)|0;
- $1184 = $1183;
- HEAP32[$1184>>2] = $1180;
- $1185 = $20;
- $1186 = $1185;
- $1187 = HEAP32[$1186>>2]|0;
- $1188 = (($1185) + 4)|0;
- $1189 = $1188;
- $1190 = HEAP32[$1189>>2]|0;
- $1191 = (_bitshift64Shl(($1187|0),($1190|0),21)|0);
- $1192 = tempRet0;
- $1193 = $7;
- $1194 = $1193;
- $1195 = HEAP32[$1194>>2]|0;
- $1196 = (($1193) + 4)|0;
- $1197 = $1196;
- $1198 = HEAP32[$1197>>2]|0;
- $1199 = (_i64Subtract(($1195|0),($1198|0),($1191|0),($1192|0))|0);
- $1200 = tempRet0;
- $1201 = $7;
- $1202 = $1201;
- HEAP32[$1202>>2] = $1199;
- $1203 = (($1201) + 4)|0;
- $1204 = $1203;
- HEAP32[$1204>>2] = $1200;
- $1205 = $8;
- $1206 = $1205;
- $1207 = HEAP32[$1206>>2]|0;
- $1208 = (($1205) + 4)|0;
- $1209 = $1208;
- $1210 = HEAP32[$1209>>2]|0;
- $1211 = (_bitshift64Ashr(($1207|0),($1210|0),21)|0);
- $1212 = tempRet0;
- $1213 = $21;
- $1214 = $1213;
- HEAP32[$1214>>2] = $1211;
- $1215 = (($1213) + 4)|0;
- $1216 = $1215;
- HEAP32[$1216>>2] = $1212;
- $1217 = $21;
- $1218 = $1217;
- $1219 = HEAP32[$1218>>2]|0;
- $1220 = (($1217) + 4)|0;
- $1221 = $1220;
- $1222 = HEAP32[$1221>>2]|0;
- $1223 = $9;
- $1224 = $1223;
- $1225 = HEAP32[$1224>>2]|0;
- $1226 = (($1223) + 4)|0;
- $1227 = $1226;
- $1228 = HEAP32[$1227>>2]|0;
- $1229 = (_i64Add(($1225|0),($1228|0),($1219|0),($1222|0))|0);
- $1230 = tempRet0;
- $1231 = $9;
- $1232 = $1231;
- HEAP32[$1232>>2] = $1229;
- $1233 = (($1231) + 4)|0;
- $1234 = $1233;
- HEAP32[$1234>>2] = $1230;
- $1235 = $21;
- $1236 = $1235;
- $1237 = HEAP32[$1236>>2]|0;
- $1238 = (($1235) + 4)|0;
- $1239 = $1238;
- $1240 = HEAP32[$1239>>2]|0;
- $1241 = (_bitshift64Shl(($1237|0),($1240|0),21)|0);
- $1242 = tempRet0;
- $1243 = $8;
- $1244 = $1243;
- $1245 = HEAP32[$1244>>2]|0;
- $1246 = (($1243) + 4)|0;
- $1247 = $1246;
- $1248 = HEAP32[$1247>>2]|0;
- $1249 = (_i64Subtract(($1245|0),($1248|0),($1241|0),($1242|0))|0);
- $1250 = tempRet0;
- $1251 = $8;
- $1252 = $1251;
- HEAP32[$1252>>2] = $1249;
- $1253 = (($1251) + 4)|0;
- $1254 = $1253;
- HEAP32[$1254>>2] = $1250;
- $1255 = $9;
- $1256 = $1255;
- $1257 = HEAP32[$1256>>2]|0;
- $1258 = (($1255) + 4)|0;
- $1259 = $1258;
- $1260 = HEAP32[$1259>>2]|0;
- $1261 = (_bitshift64Ashr(($1257|0),($1260|0),21)|0);
- $1262 = tempRet0;
- $1263 = $22;
- $1264 = $1263;
- HEAP32[$1264>>2] = $1261;
- $1265 = (($1263) + 4)|0;
- $1266 = $1265;
- HEAP32[$1266>>2] = $1262;
- $1267 = $22;
- $1268 = $1267;
- $1269 = HEAP32[$1268>>2]|0;
- $1270 = (($1267) + 4)|0;
- $1271 = $1270;
- $1272 = HEAP32[$1271>>2]|0;
- $1273 = $10;
- $1274 = $1273;
- $1275 = HEAP32[$1274>>2]|0;
- $1276 = (($1273) + 4)|0;
- $1277 = $1276;
- $1278 = HEAP32[$1277>>2]|0;
- $1279 = (_i64Add(($1275|0),($1278|0),($1269|0),($1272|0))|0);
- $1280 = tempRet0;
- $1281 = $10;
- $1282 = $1281;
- HEAP32[$1282>>2] = $1279;
- $1283 = (($1281) + 4)|0;
- $1284 = $1283;
- HEAP32[$1284>>2] = $1280;
- $1285 = $22;
- $1286 = $1285;
- $1287 = HEAP32[$1286>>2]|0;
- $1288 = (($1285) + 4)|0;
- $1289 = $1288;
- $1290 = HEAP32[$1289>>2]|0;
- $1291 = (_bitshift64Shl(($1287|0),($1290|0),21)|0);
- $1292 = tempRet0;
- $1293 = $9;
- $1294 = $1293;
- $1295 = HEAP32[$1294>>2]|0;
- $1296 = (($1293) + 4)|0;
- $1297 = $1296;
- $1298 = HEAP32[$1297>>2]|0;
- $1299 = (_i64Subtract(($1295|0),($1298|0),($1291|0),($1292|0))|0);
- $1300 = tempRet0;
- $1301 = $9;
- $1302 = $1301;
- HEAP32[$1302>>2] = $1299;
- $1303 = (($1301) + 4)|0;
- $1304 = $1303;
- HEAP32[$1304>>2] = $1300;
- $1305 = $10;
- $1306 = $1305;
- $1307 = HEAP32[$1306>>2]|0;
- $1308 = (($1305) + 4)|0;
- $1309 = $1308;
- $1310 = HEAP32[$1309>>2]|0;
- $1311 = (_bitshift64Ashr(($1307|0),($1310|0),21)|0);
- $1312 = tempRet0;
- $1313 = $23;
- $1314 = $1313;
- HEAP32[$1314>>2] = $1311;
- $1315 = (($1313) + 4)|0;
- $1316 = $1315;
- HEAP32[$1316>>2] = $1312;
- $1317 = $23;
- $1318 = $1317;
- $1319 = HEAP32[$1318>>2]|0;
- $1320 = (($1317) + 4)|0;
- $1321 = $1320;
- $1322 = HEAP32[$1321>>2]|0;
- $1323 = $11;
- $1324 = $1323;
- $1325 = HEAP32[$1324>>2]|0;
- $1326 = (($1323) + 4)|0;
- $1327 = $1326;
- $1328 = HEAP32[$1327>>2]|0;
- $1329 = (_i64Add(($1325|0),($1328|0),($1319|0),($1322|0))|0);
- $1330 = tempRet0;
- $1331 = $11;
- $1332 = $1331;
- HEAP32[$1332>>2] = $1329;
- $1333 = (($1331) + 4)|0;
- $1334 = $1333;
- HEAP32[$1334>>2] = $1330;
- $1335 = $23;
- $1336 = $1335;
- $1337 = HEAP32[$1336>>2]|0;
- $1338 = (($1335) + 4)|0;
- $1339 = $1338;
- $1340 = HEAP32[$1339>>2]|0;
- $1341 = (_bitshift64Shl(($1337|0),($1340|0),21)|0);
- $1342 = tempRet0;
- $1343 = $10;
- $1344 = $1343;
- $1345 = HEAP32[$1344>>2]|0;
- $1346 = (($1343) + 4)|0;
- $1347 = $1346;
- $1348 = HEAP32[$1347>>2]|0;
- $1349 = (_i64Subtract(($1345|0),($1348|0),($1341|0),($1342|0))|0);
- $1350 = tempRet0;
- $1351 = $10;
- $1352 = $1351;
- HEAP32[$1352>>2] = $1349;
- $1353 = (($1351) + 4)|0;
- $1354 = $1353;
- HEAP32[$1354>>2] = $1350;
- $1355 = $11;
- $1356 = $1355;
- $1357 = HEAP32[$1356>>2]|0;
- $1358 = (($1355) + 4)|0;
- $1359 = $1358;
- $1360 = HEAP32[$1359>>2]|0;
- $1361 = (_bitshift64Ashr(($1357|0),($1360|0),21)|0);
- $1362 = tempRet0;
- $1363 = $24;
- $1364 = $1363;
- HEAP32[$1364>>2] = $1361;
- $1365 = (($1363) + 4)|0;
- $1366 = $1365;
- HEAP32[$1366>>2] = $1362;
- $1367 = $24;
- $1368 = $1367;
- $1369 = HEAP32[$1368>>2]|0;
- $1370 = (($1367) + 4)|0;
- $1371 = $1370;
- $1372 = HEAP32[$1371>>2]|0;
- $1373 = $12;
- $1374 = $1373;
- $1375 = HEAP32[$1374>>2]|0;
- $1376 = (($1373) + 4)|0;
- $1377 = $1376;
- $1378 = HEAP32[$1377>>2]|0;
- $1379 = (_i64Add(($1375|0),($1378|0),($1369|0),($1372|0))|0);
- $1380 = tempRet0;
- $1381 = $12;
- $1382 = $1381;
- HEAP32[$1382>>2] = $1379;
- $1383 = (($1381) + 4)|0;
- $1384 = $1383;
- HEAP32[$1384>>2] = $1380;
- $1385 = $24;
- $1386 = $1385;
- $1387 = HEAP32[$1386>>2]|0;
- $1388 = (($1385) + 4)|0;
- $1389 = $1388;
- $1390 = HEAP32[$1389>>2]|0;
- $1391 = (_bitshift64Shl(($1387|0),($1390|0),21)|0);
- $1392 = tempRet0;
- $1393 = $11;
- $1394 = $1393;
- $1395 = HEAP32[$1394>>2]|0;
- $1396 = (($1393) + 4)|0;
- $1397 = $1396;
- $1398 = HEAP32[$1397>>2]|0;
- $1399 = (_i64Subtract(($1395|0),($1398|0),($1391|0),($1392|0))|0);
- $1400 = tempRet0;
- $1401 = $11;
- $1402 = $1401;
- HEAP32[$1402>>2] = $1399;
- $1403 = (($1401) + 4)|0;
- $1404 = $1403;
- HEAP32[$1404>>2] = $1400;
- $1405 = $12;
- $1406 = $1405;
- $1407 = HEAP32[$1406>>2]|0;
- $1408 = (($1405) + 4)|0;
- $1409 = $1408;
- $1410 = HEAP32[$1409>>2]|0;
- $1411 = (_bitshift64Ashr(($1407|0),($1410|0),21)|0);
- $1412 = tempRet0;
- $1413 = $25;
- $1414 = $1413;
- HEAP32[$1414>>2] = $1411;
- $1415 = (($1413) + 4)|0;
- $1416 = $1415;
- HEAP32[$1416>>2] = $1412;
- $1417 = $25;
- $1418 = $1417;
- $1419 = HEAP32[$1418>>2]|0;
- $1420 = (($1417) + 4)|0;
- $1421 = $1420;
- $1422 = HEAP32[$1421>>2]|0;
- $1423 = $13;
- $1424 = $1423;
- $1425 = HEAP32[$1424>>2]|0;
- $1426 = (($1423) + 4)|0;
- $1427 = $1426;
- $1428 = HEAP32[$1427>>2]|0;
- $1429 = (_i64Add(($1425|0),($1428|0),($1419|0),($1422|0))|0);
- $1430 = tempRet0;
- $1431 = $13;
- $1432 = $1431;
- HEAP32[$1432>>2] = $1429;
- $1433 = (($1431) + 4)|0;
- $1434 = $1433;
- HEAP32[$1434>>2] = $1430;
- $1435 = $25;
- $1436 = $1435;
- $1437 = HEAP32[$1436>>2]|0;
- $1438 = (($1435) + 4)|0;
- $1439 = $1438;
- $1440 = HEAP32[$1439>>2]|0;
- $1441 = (_bitshift64Shl(($1437|0),($1440|0),21)|0);
- $1442 = tempRet0;
- $1443 = $12;
- $1444 = $1443;
- $1445 = HEAP32[$1444>>2]|0;
- $1446 = (($1443) + 4)|0;
- $1447 = $1446;
- $1448 = HEAP32[$1447>>2]|0;
- $1449 = (_i64Subtract(($1445|0),($1448|0),($1441|0),($1442|0))|0);
- $1450 = tempRet0;
- $1451 = $12;
- $1452 = $1451;
- HEAP32[$1452>>2] = $1449;
- $1453 = (($1451) + 4)|0;
- $1454 = $1453;
- HEAP32[$1454>>2] = $1450;
- $1455 = $13;
- $1456 = $1455;
- $1457 = HEAP32[$1456>>2]|0;
- $1458 = (($1455) + 4)|0;
- $1459 = $1458;
- $1460 = HEAP32[$1459>>2]|0;
- $1461 = (_bitshift64Ashr(($1457|0),($1460|0),21)|0);
- $1462 = tempRet0;
- $1463 = $26;
- $1464 = $1463;
- HEAP32[$1464>>2] = $1461;
- $1465 = (($1463) + 4)|0;
- $1466 = $1465;
- HEAP32[$1466>>2] = $1462;
- $1467 = $26;
- $1468 = $1467;
- $1469 = HEAP32[$1468>>2]|0;
- $1470 = (($1467) + 4)|0;
- $1471 = $1470;
- $1472 = HEAP32[$1471>>2]|0;
- $1473 = $14;
- $1474 = $1473;
- $1475 = HEAP32[$1474>>2]|0;
- $1476 = (($1473) + 4)|0;
- $1477 = $1476;
- $1478 = HEAP32[$1477>>2]|0;
- $1479 = (_i64Add(($1475|0),($1478|0),($1469|0),($1472|0))|0);
- $1480 = tempRet0;
- $1481 = $14;
- $1482 = $1481;
- HEAP32[$1482>>2] = $1479;
- $1483 = (($1481) + 4)|0;
- $1484 = $1483;
- HEAP32[$1484>>2] = $1480;
- $1485 = $26;
- $1486 = $1485;
- $1487 = HEAP32[$1486>>2]|0;
- $1488 = (($1485) + 4)|0;
- $1489 = $1488;
- $1490 = HEAP32[$1489>>2]|0;
- $1491 = (_bitshift64Shl(($1487|0),($1490|0),21)|0);
- $1492 = tempRet0;
- $1493 = $13;
- $1494 = $1493;
- $1495 = HEAP32[$1494>>2]|0;
- $1496 = (($1493) + 4)|0;
- $1497 = $1496;
- $1498 = HEAP32[$1497>>2]|0;
- $1499 = (_i64Subtract(($1495|0),($1498|0),($1491|0),($1492|0))|0);
- $1500 = tempRet0;
- $1501 = $13;
- $1502 = $1501;
- HEAP32[$1502>>2] = $1499;
- $1503 = (($1501) + 4)|0;
- $1504 = $1503;
- HEAP32[$1504>>2] = $1500;
- $1505 = $14;
- $1506 = $1505;
- $1507 = HEAP32[$1506>>2]|0;
- $1508 = (($1505) + 4)|0;
- $1509 = $1508;
- $1510 = HEAP32[$1509>>2]|0;
- $1511 = (___muldi3(($1507|0),($1510|0),666643,0)|0);
- $1512 = tempRet0;
- $1513 = $2;
- $1514 = $1513;
- $1515 = HEAP32[$1514>>2]|0;
- $1516 = (($1513) + 4)|0;
- $1517 = $1516;
- $1518 = HEAP32[$1517>>2]|0;
- $1519 = (_i64Add(($1515|0),($1518|0),($1511|0),($1512|0))|0);
- $1520 = tempRet0;
- $1521 = $2;
- $1522 = $1521;
- HEAP32[$1522>>2] = $1519;
- $1523 = (($1521) + 4)|0;
- $1524 = $1523;
- HEAP32[$1524>>2] = $1520;
- $1525 = $14;
- $1526 = $1525;
- $1527 = HEAP32[$1526>>2]|0;
- $1528 = (($1525) + 4)|0;
- $1529 = $1528;
- $1530 = HEAP32[$1529>>2]|0;
- $1531 = (___muldi3(($1527|0),($1530|0),470296,0)|0);
- $1532 = tempRet0;
- $1533 = $3;
- $1534 = $1533;
- $1535 = HEAP32[$1534>>2]|0;
- $1536 = (($1533) + 4)|0;
- $1537 = $1536;
- $1538 = HEAP32[$1537>>2]|0;
- $1539 = (_i64Add(($1535|0),($1538|0),($1531|0),($1532|0))|0);
- $1540 = tempRet0;
- $1541 = $3;
- $1542 = $1541;
- HEAP32[$1542>>2] = $1539;
- $1543 = (($1541) + 4)|0;
- $1544 = $1543;
- HEAP32[$1544>>2] = $1540;
- $1545 = $14;
- $1546 = $1545;
- $1547 = HEAP32[$1546>>2]|0;
- $1548 = (($1545) + 4)|0;
- $1549 = $1548;
- $1550 = HEAP32[$1549>>2]|0;
- $1551 = (___muldi3(($1547|0),($1550|0),654183,0)|0);
- $1552 = tempRet0;
- $1553 = $4;
- $1554 = $1553;
- $1555 = HEAP32[$1554>>2]|0;
- $1556 = (($1553) + 4)|0;
- $1557 = $1556;
- $1558 = HEAP32[$1557>>2]|0;
- $1559 = (_i64Add(($1555|0),($1558|0),($1551|0),($1552|0))|0);
- $1560 = tempRet0;
- $1561 = $4;
- $1562 = $1561;
- HEAP32[$1562>>2] = $1559;
- $1563 = (($1561) + 4)|0;
- $1564 = $1563;
- HEAP32[$1564>>2] = $1560;
- $1565 = $14;
- $1566 = $1565;
- $1567 = HEAP32[$1566>>2]|0;
- $1568 = (($1565) + 4)|0;
- $1569 = $1568;
- $1570 = HEAP32[$1569>>2]|0;
- $1571 = (___muldi3(($1567|0),($1570|0),997805,0)|0);
- $1572 = tempRet0;
- $1573 = $5;
- $1574 = $1573;
- $1575 = HEAP32[$1574>>2]|0;
- $1576 = (($1573) + 4)|0;
- $1577 = $1576;
- $1578 = HEAP32[$1577>>2]|0;
- $1579 = (_i64Subtract(($1575|0),($1578|0),($1571|0),($1572|0))|0);
- $1580 = tempRet0;
- $1581 = $5;
- $1582 = $1581;
- HEAP32[$1582>>2] = $1579;
- $1583 = (($1581) + 4)|0;
- $1584 = $1583;
- HEAP32[$1584>>2] = $1580;
- $1585 = $14;
- $1586 = $1585;
- $1587 = HEAP32[$1586>>2]|0;
- $1588 = (($1585) + 4)|0;
- $1589 = $1588;
- $1590 = HEAP32[$1589>>2]|0;
- $1591 = (___muldi3(($1587|0),($1590|0),136657,0)|0);
- $1592 = tempRet0;
- $1593 = $6;
- $1594 = $1593;
- $1595 = HEAP32[$1594>>2]|0;
- $1596 = (($1593) + 4)|0;
- $1597 = $1596;
- $1598 = HEAP32[$1597>>2]|0;
- $1599 = (_i64Add(($1595|0),($1598|0),($1591|0),($1592|0))|0);
- $1600 = tempRet0;
- $1601 = $6;
- $1602 = $1601;
- HEAP32[$1602>>2] = $1599;
- $1603 = (($1601) + 4)|0;
- $1604 = $1603;
- HEAP32[$1604>>2] = $1600;
- $1605 = $14;
- $1606 = $1605;
- $1607 = HEAP32[$1606>>2]|0;
- $1608 = (($1605) + 4)|0;
- $1609 = $1608;
- $1610 = HEAP32[$1609>>2]|0;
- $1611 = (___muldi3(($1607|0),($1610|0),683901,0)|0);
- $1612 = tempRet0;
- $1613 = $7;
- $1614 = $1613;
- $1615 = HEAP32[$1614>>2]|0;
- $1616 = (($1613) + 4)|0;
- $1617 = $1616;
- $1618 = HEAP32[$1617>>2]|0;
- $1619 = (_i64Subtract(($1615|0),($1618|0),($1611|0),($1612|0))|0);
- $1620 = tempRet0;
- $1621 = $7;
- $1622 = $1621;
- HEAP32[$1622>>2] = $1619;
- $1623 = (($1621) + 4)|0;
- $1624 = $1623;
- HEAP32[$1624>>2] = $1620;
- $1625 = $2;
- $1626 = $1625;
- $1627 = HEAP32[$1626>>2]|0;
- $1628 = (($1625) + 4)|0;
- $1629 = $1628;
- $1630 = HEAP32[$1629>>2]|0;
- $1631 = (_bitshift64Ashr(($1627|0),($1630|0),21)|0);
- $1632 = tempRet0;
- $1633 = $15;
- $1634 = $1633;
- HEAP32[$1634>>2] = $1631;
- $1635 = (($1633) + 4)|0;
- $1636 = $1635;
- HEAP32[$1636>>2] = $1632;
- $1637 = $15;
- $1638 = $1637;
- $1639 = HEAP32[$1638>>2]|0;
- $1640 = (($1637) + 4)|0;
- $1641 = $1640;
- $1642 = HEAP32[$1641>>2]|0;
- $1643 = $3;
- $1644 = $1643;
- $1645 = HEAP32[$1644>>2]|0;
- $1646 = (($1643) + 4)|0;
- $1647 = $1646;
- $1648 = HEAP32[$1647>>2]|0;
- $1649 = (_i64Add(($1645|0),($1648|0),($1639|0),($1642|0))|0);
- $1650 = tempRet0;
- $1651 = $3;
- $1652 = $1651;
- HEAP32[$1652>>2] = $1649;
- $1653 = (($1651) + 4)|0;
- $1654 = $1653;
- HEAP32[$1654>>2] = $1650;
- $1655 = $15;
- $1656 = $1655;
- $1657 = HEAP32[$1656>>2]|0;
- $1658 = (($1655) + 4)|0;
- $1659 = $1658;
- $1660 = HEAP32[$1659>>2]|0;
- $1661 = (_bitshift64Shl(($1657|0),($1660|0),21)|0);
- $1662 = tempRet0;
- $1663 = $2;
- $1664 = $1663;
- $1665 = HEAP32[$1664>>2]|0;
- $1666 = (($1663) + 4)|0;
- $1667 = $1666;
- $1668 = HEAP32[$1667>>2]|0;
- $1669 = (_i64Subtract(($1665|0),($1668|0),($1661|0),($1662|0))|0);
- $1670 = tempRet0;
- $1671 = $2;
- $1672 = $1671;
- HEAP32[$1672>>2] = $1669;
- $1673 = (($1671) + 4)|0;
- $1674 = $1673;
- HEAP32[$1674>>2] = $1670;
- $1675 = $3;
- $1676 = $1675;
- $1677 = HEAP32[$1676>>2]|0;
- $1678 = (($1675) + 4)|0;
- $1679 = $1678;
- $1680 = HEAP32[$1679>>2]|0;
- $1681 = (_bitshift64Ashr(($1677|0),($1680|0),21)|0);
- $1682 = tempRet0;
- $1683 = $16;
- $1684 = $1683;
- HEAP32[$1684>>2] = $1681;
- $1685 = (($1683) + 4)|0;
- $1686 = $1685;
- HEAP32[$1686>>2] = $1682;
- $1687 = $16;
- $1688 = $1687;
- $1689 = HEAP32[$1688>>2]|0;
- $1690 = (($1687) + 4)|0;
- $1691 = $1690;
- $1692 = HEAP32[$1691>>2]|0;
- $1693 = $4;
- $1694 = $1693;
- $1695 = HEAP32[$1694>>2]|0;
- $1696 = (($1693) + 4)|0;
- $1697 = $1696;
- $1698 = HEAP32[$1697>>2]|0;
- $1699 = (_i64Add(($1695|0),($1698|0),($1689|0),($1692|0))|0);
- $1700 = tempRet0;
- $1701 = $4;
- $1702 = $1701;
- HEAP32[$1702>>2] = $1699;
- $1703 = (($1701) + 4)|0;
- $1704 = $1703;
- HEAP32[$1704>>2] = $1700;
- $1705 = $16;
- $1706 = $1705;
- $1707 = HEAP32[$1706>>2]|0;
- $1708 = (($1705) + 4)|0;
- $1709 = $1708;
- $1710 = HEAP32[$1709>>2]|0;
- $1711 = (_bitshift64Shl(($1707|0),($1710|0),21)|0);
- $1712 = tempRet0;
- $1713 = $3;
- $1714 = $1713;
- $1715 = HEAP32[$1714>>2]|0;
- $1716 = (($1713) + 4)|0;
- $1717 = $1716;
- $1718 = HEAP32[$1717>>2]|0;
- $1719 = (_i64Subtract(($1715|0),($1718|0),($1711|0),($1712|0))|0);
- $1720 = tempRet0;
- $1721 = $3;
- $1722 = $1721;
- HEAP32[$1722>>2] = $1719;
- $1723 = (($1721) + 4)|0;
- $1724 = $1723;
- HEAP32[$1724>>2] = $1720;
- $1725 = $4;
- $1726 = $1725;
- $1727 = HEAP32[$1726>>2]|0;
- $1728 = (($1725) + 4)|0;
- $1729 = $1728;
- $1730 = HEAP32[$1729>>2]|0;
- $1731 = (_bitshift64Ashr(($1727|0),($1730|0),21)|0);
- $1732 = tempRet0;
- $1733 = $17;
- $1734 = $1733;
- HEAP32[$1734>>2] = $1731;
- $1735 = (($1733) + 4)|0;
- $1736 = $1735;
- HEAP32[$1736>>2] = $1732;
- $1737 = $17;
- $1738 = $1737;
- $1739 = HEAP32[$1738>>2]|0;
- $1740 = (($1737) + 4)|0;
- $1741 = $1740;
- $1742 = HEAP32[$1741>>2]|0;
- $1743 = $5;
- $1744 = $1743;
- $1745 = HEAP32[$1744>>2]|0;
- $1746 = (($1743) + 4)|0;
- $1747 = $1746;
- $1748 = HEAP32[$1747>>2]|0;
- $1749 = (_i64Add(($1745|0),($1748|0),($1739|0),($1742|0))|0);
- $1750 = tempRet0;
- $1751 = $5;
- $1752 = $1751;
- HEAP32[$1752>>2] = $1749;
- $1753 = (($1751) + 4)|0;
- $1754 = $1753;
- HEAP32[$1754>>2] = $1750;
- $1755 = $17;
- $1756 = $1755;
- $1757 = HEAP32[$1756>>2]|0;
- $1758 = (($1755) + 4)|0;
- $1759 = $1758;
- $1760 = HEAP32[$1759>>2]|0;
- $1761 = (_bitshift64Shl(($1757|0),($1760|0),21)|0);
- $1762 = tempRet0;
- $1763 = $4;
- $1764 = $1763;
- $1765 = HEAP32[$1764>>2]|0;
- $1766 = (($1763) + 4)|0;
- $1767 = $1766;
- $1768 = HEAP32[$1767>>2]|0;
- $1769 = (_i64Subtract(($1765|0),($1768|0),($1761|0),($1762|0))|0);
- $1770 = tempRet0;
- $1771 = $4;
- $1772 = $1771;
- HEAP32[$1772>>2] = $1769;
- $1773 = (($1771) + 4)|0;
- $1774 = $1773;
- HEAP32[$1774>>2] = $1770;
- $1775 = $5;
- $1776 = $1775;
- $1777 = HEAP32[$1776>>2]|0;
- $1778 = (($1775) + 4)|0;
- $1779 = $1778;
- $1780 = HEAP32[$1779>>2]|0;
- $1781 = (_bitshift64Ashr(($1777|0),($1780|0),21)|0);
- $1782 = tempRet0;
- $1783 = $18;
- $1784 = $1783;
- HEAP32[$1784>>2] = $1781;
- $1785 = (($1783) + 4)|0;
- $1786 = $1785;
- HEAP32[$1786>>2] = $1782;
- $1787 = $18;
- $1788 = $1787;
- $1789 = HEAP32[$1788>>2]|0;
- $1790 = (($1787) + 4)|0;
- $1791 = $1790;
- $1792 = HEAP32[$1791>>2]|0;
- $1793 = $6;
- $1794 = $1793;
- $1795 = HEAP32[$1794>>2]|0;
- $1796 = (($1793) + 4)|0;
- $1797 = $1796;
- $1798 = HEAP32[$1797>>2]|0;
- $1799 = (_i64Add(($1795|0),($1798|0),($1789|0),($1792|0))|0);
- $1800 = tempRet0;
- $1801 = $6;
- $1802 = $1801;
- HEAP32[$1802>>2] = $1799;
- $1803 = (($1801) + 4)|0;
- $1804 = $1803;
- HEAP32[$1804>>2] = $1800;
- $1805 = $18;
- $1806 = $1805;
- $1807 = HEAP32[$1806>>2]|0;
- $1808 = (($1805) + 4)|0;
- $1809 = $1808;
- $1810 = HEAP32[$1809>>2]|0;
- $1811 = (_bitshift64Shl(($1807|0),($1810|0),21)|0);
- $1812 = tempRet0;
- $1813 = $5;
- $1814 = $1813;
- $1815 = HEAP32[$1814>>2]|0;
- $1816 = (($1813) + 4)|0;
- $1817 = $1816;
- $1818 = HEAP32[$1817>>2]|0;
- $1819 = (_i64Subtract(($1815|0),($1818|0),($1811|0),($1812|0))|0);
- $1820 = tempRet0;
- $1821 = $5;
- $1822 = $1821;
- HEAP32[$1822>>2] = $1819;
- $1823 = (($1821) + 4)|0;
- $1824 = $1823;
- HEAP32[$1824>>2] = $1820;
- $1825 = $6;
- $1826 = $1825;
- $1827 = HEAP32[$1826>>2]|0;
- $1828 = (($1825) + 4)|0;
- $1829 = $1828;
- $1830 = HEAP32[$1829>>2]|0;
- $1831 = (_bitshift64Ashr(($1827|0),($1830|0),21)|0);
- $1832 = tempRet0;
- $1833 = $19;
- $1834 = $1833;
- HEAP32[$1834>>2] = $1831;
- $1835 = (($1833) + 4)|0;
- $1836 = $1835;
- HEAP32[$1836>>2] = $1832;
- $1837 = $19;
- $1838 = $1837;
- $1839 = HEAP32[$1838>>2]|0;
- $1840 = (($1837) + 4)|0;
- $1841 = $1840;
- $1842 = HEAP32[$1841>>2]|0;
- $1843 = $7;
- $1844 = $1843;
- $1845 = HEAP32[$1844>>2]|0;
- $1846 = (($1843) + 4)|0;
- $1847 = $1846;
- $1848 = HEAP32[$1847>>2]|0;
- $1849 = (_i64Add(($1845|0),($1848|0),($1839|0),($1842|0))|0);
- $1850 = tempRet0;
- $1851 = $7;
- $1852 = $1851;
- HEAP32[$1852>>2] = $1849;
- $1853 = (($1851) + 4)|0;
- $1854 = $1853;
- HEAP32[$1854>>2] = $1850;
- $1855 = $19;
- $1856 = $1855;
- $1857 = HEAP32[$1856>>2]|0;
- $1858 = (($1855) + 4)|0;
- $1859 = $1858;
- $1860 = HEAP32[$1859>>2]|0;
- $1861 = (_bitshift64Shl(($1857|0),($1860|0),21)|0);
- $1862 = tempRet0;
- $1863 = $6;
- $1864 = $1863;
- $1865 = HEAP32[$1864>>2]|0;
- $1866 = (($1863) + 4)|0;
- $1867 = $1866;
- $1868 = HEAP32[$1867>>2]|0;
- $1869 = (_i64Subtract(($1865|0),($1868|0),($1861|0),($1862|0))|0);
- $1870 = tempRet0;
- $1871 = $6;
- $1872 = $1871;
- HEAP32[$1872>>2] = $1869;
- $1873 = (($1871) + 4)|0;
- $1874 = $1873;
- HEAP32[$1874>>2] = $1870;
- $1875 = $7;
- $1876 = $1875;
- $1877 = HEAP32[$1876>>2]|0;
- $1878 = (($1875) + 4)|0;
- $1879 = $1878;
- $1880 = HEAP32[$1879>>2]|0;
- $1881 = (_bitshift64Ashr(($1877|0),($1880|0),21)|0);
- $1882 = tempRet0;
- $1883 = $20;
- $1884 = $1883;
- HEAP32[$1884>>2] = $1881;
- $1885 = (($1883) + 4)|0;
- $1886 = $1885;
- HEAP32[$1886>>2] = $1882;
- $1887 = $20;
- $1888 = $1887;
- $1889 = HEAP32[$1888>>2]|0;
- $1890 = (($1887) + 4)|0;
- $1891 = $1890;
- $1892 = HEAP32[$1891>>2]|0;
- $1893 = $8;
- $1894 = $1893;
- $1895 = HEAP32[$1894>>2]|0;
- $1896 = (($1893) + 4)|0;
- $1897 = $1896;
- $1898 = HEAP32[$1897>>2]|0;
- $1899 = (_i64Add(($1895|0),($1898|0),($1889|0),($1892|0))|0);
- $1900 = tempRet0;
- $1901 = $8;
- $1902 = $1901;
- HEAP32[$1902>>2] = $1899;
- $1903 = (($1901) + 4)|0;
- $1904 = $1903;
- HEAP32[$1904>>2] = $1900;
- $1905 = $20;
- $1906 = $1905;
- $1907 = HEAP32[$1906>>2]|0;
- $1908 = (($1905) + 4)|0;
- $1909 = $1908;
- $1910 = HEAP32[$1909>>2]|0;
- $1911 = (_bitshift64Shl(($1907|0),($1910|0),21)|0);
- $1912 = tempRet0;
- $1913 = $7;
- $1914 = $1913;
- $1915 = HEAP32[$1914>>2]|0;
- $1916 = (($1913) + 4)|0;
- $1917 = $1916;
- $1918 = HEAP32[$1917>>2]|0;
- $1919 = (_i64Subtract(($1915|0),($1918|0),($1911|0),($1912|0))|0);
- $1920 = tempRet0;
- $1921 = $7;
- $1922 = $1921;
- HEAP32[$1922>>2] = $1919;
- $1923 = (($1921) + 4)|0;
- $1924 = $1923;
- HEAP32[$1924>>2] = $1920;
- $1925 = $8;
- $1926 = $1925;
- $1927 = HEAP32[$1926>>2]|0;
- $1928 = (($1925) + 4)|0;
- $1929 = $1928;
- $1930 = HEAP32[$1929>>2]|0;
- $1931 = (_bitshift64Ashr(($1927|0),($1930|0),21)|0);
- $1932 = tempRet0;
- $1933 = $21;
- $1934 = $1933;
- HEAP32[$1934>>2] = $1931;
- $1935 = (($1933) + 4)|0;
- $1936 = $1935;
- HEAP32[$1936>>2] = $1932;
- $1937 = $21;
- $1938 = $1937;
- $1939 = HEAP32[$1938>>2]|0;
- $1940 = (($1937) + 4)|0;
- $1941 = $1940;
- $1942 = HEAP32[$1941>>2]|0;
- $1943 = $9;
- $1944 = $1943;
- $1945 = HEAP32[$1944>>2]|0;
- $1946 = (($1943) + 4)|0;
- $1947 = $1946;
- $1948 = HEAP32[$1947>>2]|0;
- $1949 = (_i64Add(($1945|0),($1948|0),($1939|0),($1942|0))|0);
- $1950 = tempRet0;
- $1951 = $9;
- $1952 = $1951;
- HEAP32[$1952>>2] = $1949;
- $1953 = (($1951) + 4)|0;
- $1954 = $1953;
- HEAP32[$1954>>2] = $1950;
- $1955 = $21;
- $1956 = $1955;
- $1957 = HEAP32[$1956>>2]|0;
- $1958 = (($1955) + 4)|0;
- $1959 = $1958;
- $1960 = HEAP32[$1959>>2]|0;
- $1961 = (_bitshift64Shl(($1957|0),($1960|0),21)|0);
- $1962 = tempRet0;
- $1963 = $8;
- $1964 = $1963;
- $1965 = HEAP32[$1964>>2]|0;
- $1966 = (($1963) + 4)|0;
- $1967 = $1966;
- $1968 = HEAP32[$1967>>2]|0;
- $1969 = (_i64Subtract(($1965|0),($1968|0),($1961|0),($1962|0))|0);
- $1970 = tempRet0;
- $1971 = $8;
- $1972 = $1971;
- HEAP32[$1972>>2] = $1969;
- $1973 = (($1971) + 4)|0;
- $1974 = $1973;
- HEAP32[$1974>>2] = $1970;
- $1975 = $9;
- $1976 = $1975;
- $1977 = HEAP32[$1976>>2]|0;
- $1978 = (($1975) + 4)|0;
- $1979 = $1978;
- $1980 = HEAP32[$1979>>2]|0;
- $1981 = (_bitshift64Ashr(($1977|0),($1980|0),21)|0);
- $1982 = tempRet0;
- $1983 = $22;
- $1984 = $1983;
- HEAP32[$1984>>2] = $1981;
- $1985 = (($1983) + 4)|0;
- $1986 = $1985;
- HEAP32[$1986>>2] = $1982;
- $1987 = $22;
- $1988 = $1987;
- $1989 = HEAP32[$1988>>2]|0;
- $1990 = (($1987) + 4)|0;
- $1991 = $1990;
- $1992 = HEAP32[$1991>>2]|0;
- $1993 = $10;
- $1994 = $1993;
- $1995 = HEAP32[$1994>>2]|0;
- $1996 = (($1993) + 4)|0;
- $1997 = $1996;
- $1998 = HEAP32[$1997>>2]|0;
- $1999 = (_i64Add(($1995|0),($1998|0),($1989|0),($1992|0))|0);
- $2000 = tempRet0;
- $2001 = $10;
- $2002 = $2001;
- HEAP32[$2002>>2] = $1999;
- $2003 = (($2001) + 4)|0;
- $2004 = $2003;
- HEAP32[$2004>>2] = $2000;
- $2005 = $22;
- $2006 = $2005;
- $2007 = HEAP32[$2006>>2]|0;
- $2008 = (($2005) + 4)|0;
- $2009 = $2008;
- $2010 = HEAP32[$2009>>2]|0;
- $2011 = (_bitshift64Shl(($2007|0),($2010|0),21)|0);
- $2012 = tempRet0;
- $2013 = $9;
- $2014 = $2013;
- $2015 = HEAP32[$2014>>2]|0;
- $2016 = (($2013) + 4)|0;
- $2017 = $2016;
- $2018 = HEAP32[$2017>>2]|0;
- $2019 = (_i64Subtract(($2015|0),($2018|0),($2011|0),($2012|0))|0);
- $2020 = tempRet0;
- $2021 = $9;
- $2022 = $2021;
- HEAP32[$2022>>2] = $2019;
- $2023 = (($2021) + 4)|0;
- $2024 = $2023;
- HEAP32[$2024>>2] = $2020;
- $2025 = $10;
- $2026 = $2025;
- $2027 = HEAP32[$2026>>2]|0;
- $2028 = (($2025) + 4)|0;
- $2029 = $2028;
- $2030 = HEAP32[$2029>>2]|0;
- $2031 = (_bitshift64Ashr(($2027|0),($2030|0),21)|0);
- $2032 = tempRet0;
- $2033 = $23;
- $2034 = $2033;
- HEAP32[$2034>>2] = $2031;
- $2035 = (($2033) + 4)|0;
- $2036 = $2035;
- HEAP32[$2036>>2] = $2032;
- $2037 = $23;
- $2038 = $2037;
- $2039 = HEAP32[$2038>>2]|0;
- $2040 = (($2037) + 4)|0;
- $2041 = $2040;
- $2042 = HEAP32[$2041>>2]|0;
- $2043 = $11;
- $2044 = $2043;
- $2045 = HEAP32[$2044>>2]|0;
- $2046 = (($2043) + 4)|0;
- $2047 = $2046;
- $2048 = HEAP32[$2047>>2]|0;
- $2049 = (_i64Add(($2045|0),($2048|0),($2039|0),($2042|0))|0);
- $2050 = tempRet0;
- $2051 = $11;
- $2052 = $2051;
- HEAP32[$2052>>2] = $2049;
- $2053 = (($2051) + 4)|0;
- $2054 = $2053;
- HEAP32[$2054>>2] = $2050;
- $2055 = $23;
- $2056 = $2055;
- $2057 = HEAP32[$2056>>2]|0;
- $2058 = (($2055) + 4)|0;
- $2059 = $2058;
- $2060 = HEAP32[$2059>>2]|0;
- $2061 = (_bitshift64Shl(($2057|0),($2060|0),21)|0);
- $2062 = tempRet0;
- $2063 = $10;
- $2064 = $2063;
- $2065 = HEAP32[$2064>>2]|0;
- $2066 = (($2063) + 4)|0;
- $2067 = $2066;
- $2068 = HEAP32[$2067>>2]|0;
- $2069 = (_i64Subtract(($2065|0),($2068|0),($2061|0),($2062|0))|0);
- $2070 = tempRet0;
- $2071 = $10;
- $2072 = $2071;
- HEAP32[$2072>>2] = $2069;
- $2073 = (($2071) + 4)|0;
- $2074 = $2073;
- HEAP32[$2074>>2] = $2070;
- $2075 = $11;
- $2076 = $2075;
- $2077 = HEAP32[$2076>>2]|0;
- $2078 = (($2075) + 4)|0;
- $2079 = $2078;
- $2080 = HEAP32[$2079>>2]|0;
- $2081 = (_bitshift64Ashr(($2077|0),($2080|0),21)|0);
- $2082 = tempRet0;
- $2083 = $24;
- $2084 = $2083;
- HEAP32[$2084>>2] = $2081;
- $2085 = (($2083) + 4)|0;
- $2086 = $2085;
- HEAP32[$2086>>2] = $2082;
- $2087 = $24;
- $2088 = $2087;
- $2089 = HEAP32[$2088>>2]|0;
- $2090 = (($2087) + 4)|0;
- $2091 = $2090;
- $2092 = HEAP32[$2091>>2]|0;
- $2093 = $12;
- $2094 = $2093;
- $2095 = HEAP32[$2094>>2]|0;
- $2096 = (($2093) + 4)|0;
- $2097 = $2096;
- $2098 = HEAP32[$2097>>2]|0;
- $2099 = (_i64Add(($2095|0),($2098|0),($2089|0),($2092|0))|0);
- $2100 = tempRet0;
- $2101 = $12;
- $2102 = $2101;
- HEAP32[$2102>>2] = $2099;
- $2103 = (($2101) + 4)|0;
- $2104 = $2103;
- HEAP32[$2104>>2] = $2100;
- $2105 = $24;
- $2106 = $2105;
- $2107 = HEAP32[$2106>>2]|0;
- $2108 = (($2105) + 4)|0;
- $2109 = $2108;
- $2110 = HEAP32[$2109>>2]|0;
- $2111 = (_bitshift64Shl(($2107|0),($2110|0),21)|0);
- $2112 = tempRet0;
- $2113 = $11;
- $2114 = $2113;
- $2115 = HEAP32[$2114>>2]|0;
- $2116 = (($2113) + 4)|0;
- $2117 = $2116;
- $2118 = HEAP32[$2117>>2]|0;
- $2119 = (_i64Subtract(($2115|0),($2118|0),($2111|0),($2112|0))|0);
- $2120 = tempRet0;
- $2121 = $11;
- $2122 = $2121;
- HEAP32[$2122>>2] = $2119;
- $2123 = (($2121) + 4)|0;
- $2124 = $2123;
- HEAP32[$2124>>2] = $2120;
- $2125 = $12;
- $2126 = $2125;
- $2127 = HEAP32[$2126>>2]|0;
- $2128 = (($2125) + 4)|0;
- $2129 = $2128;
- $2130 = HEAP32[$2129>>2]|0;
- $2131 = (_bitshift64Ashr(($2127|0),($2130|0),21)|0);
- $2132 = tempRet0;
- $2133 = $25;
- $2134 = $2133;
- HEAP32[$2134>>2] = $2131;
- $2135 = (($2133) + 4)|0;
- $2136 = $2135;
- HEAP32[$2136>>2] = $2132;
- $2137 = $25;
- $2138 = $2137;
- $2139 = HEAP32[$2138>>2]|0;
- $2140 = (($2137) + 4)|0;
- $2141 = $2140;
- $2142 = HEAP32[$2141>>2]|0;
- $2143 = $13;
- $2144 = $2143;
- $2145 = HEAP32[$2144>>2]|0;
- $2146 = (($2143) + 4)|0;
- $2147 = $2146;
- $2148 = HEAP32[$2147>>2]|0;
- $2149 = (_i64Add(($2145|0),($2148|0),($2139|0),($2142|0))|0);
- $2150 = tempRet0;
- $2151 = $13;
- $2152 = $2151;
- HEAP32[$2152>>2] = $2149;
- $2153 = (($2151) + 4)|0;
- $2154 = $2153;
- HEAP32[$2154>>2] = $2150;
- $2155 = $25;
- $2156 = $2155;
- $2157 = HEAP32[$2156>>2]|0;
- $2158 = (($2155) + 4)|0;
- $2159 = $2158;
- $2160 = HEAP32[$2159>>2]|0;
- $2161 = (_bitshift64Shl(($2157|0),($2160|0),21)|0);
- $2162 = tempRet0;
- $2163 = $12;
- $2164 = $2163;
- $2165 = HEAP32[$2164>>2]|0;
- $2166 = (($2163) + 4)|0;
- $2167 = $2166;
- $2168 = HEAP32[$2167>>2]|0;
- $2169 = (_i64Subtract(($2165|0),($2168|0),($2161|0),($2162|0))|0);
- $2170 = tempRet0;
- $2171 = $12;
- $2172 = $2171;
- HEAP32[$2172>>2] = $2169;
- $2173 = (($2171) + 4)|0;
- $2174 = $2173;
- HEAP32[$2174>>2] = $2170;
- $2175 = $2;
- $2176 = $2175;
- $2177 = HEAP32[$2176>>2]|0;
- $2178 = (($2175) + 4)|0;
- $2179 = $2178;
- $2180 = HEAP32[$2179>>2]|0;
- $2181 = (_bitshift64Ashr(($2177|0),($2180|0),0)|0);
- $2182 = tempRet0;
- $2183 = $2181&255;
- $2184 = $1;
- HEAP8[$2184>>0] = $2183;
- $2185 = $2;
- $2186 = $2185;
- $2187 = HEAP32[$2186>>2]|0;
- $2188 = (($2185) + 4)|0;
- $2189 = $2188;
- $2190 = HEAP32[$2189>>2]|0;
- $2191 = (_bitshift64Ashr(($2187|0),($2190|0),8)|0);
- $2192 = tempRet0;
- $2193 = $2191&255;
- $2194 = $1;
- $2195 = ((($2194)) + 1|0);
- HEAP8[$2195>>0] = $2193;
- $2196 = $2;
- $2197 = $2196;
- $2198 = HEAP32[$2197>>2]|0;
- $2199 = (($2196) + 4)|0;
- $2200 = $2199;
- $2201 = HEAP32[$2200>>2]|0;
- $2202 = (_bitshift64Ashr(($2198|0),($2201|0),16)|0);
- $2203 = tempRet0;
- $2204 = $3;
- $2205 = $2204;
- $2206 = HEAP32[$2205>>2]|0;
- $2207 = (($2204) + 4)|0;
- $2208 = $2207;
- $2209 = HEAP32[$2208>>2]|0;
- $2210 = (_bitshift64Shl(($2206|0),($2209|0),5)|0);
- $2211 = tempRet0;
- $2212 = $2202 | $2210;
- $2203 | $2211;
- $2213 = $2212&255;
- $2214 = $1;
- $2215 = ((($2214)) + 2|0);
- HEAP8[$2215>>0] = $2213;
- $2216 = $3;
- $2217 = $2216;
- $2218 = HEAP32[$2217>>2]|0;
- $2219 = (($2216) + 4)|0;
- $2220 = $2219;
- $2221 = HEAP32[$2220>>2]|0;
- $2222 = (_bitshift64Ashr(($2218|0),($2221|0),3)|0);
- $2223 = tempRet0;
- $2224 = $2222&255;
- $2225 = $1;
- $2226 = ((($2225)) + 3|0);
- HEAP8[$2226>>0] = $2224;
- $2227 = $3;
- $2228 = $2227;
- $2229 = HEAP32[$2228>>2]|0;
- $2230 = (($2227) + 4)|0;
- $2231 = $2230;
- $2232 = HEAP32[$2231>>2]|0;
- $2233 = (_bitshift64Ashr(($2229|0),($2232|0),11)|0);
- $2234 = tempRet0;
- $2235 = $2233&255;
- $2236 = $1;
- $2237 = ((($2236)) + 4|0);
- HEAP8[$2237>>0] = $2235;
- $2238 = $3;
- $2239 = $2238;
- $2240 = HEAP32[$2239>>2]|0;
- $2241 = (($2238) + 4)|0;
- $2242 = $2241;
- $2243 = HEAP32[$2242>>2]|0;
- $2244 = (_bitshift64Ashr(($2240|0),($2243|0),19)|0);
- $2245 = tempRet0;
- $2246 = $4;
- $2247 = $2246;
- $2248 = HEAP32[$2247>>2]|0;
- $2249 = (($2246) + 4)|0;
- $2250 = $2249;
- $2251 = HEAP32[$2250>>2]|0;
- $2252 = (_bitshift64Shl(($2248|0),($2251|0),2)|0);
- $2253 = tempRet0;
- $2254 = $2244 | $2252;
- $2245 | $2253;
- $2255 = $2254&255;
- $2256 = $1;
- $2257 = ((($2256)) + 5|0);
- HEAP8[$2257>>0] = $2255;
- $2258 = $4;
- $2259 = $2258;
- $2260 = HEAP32[$2259>>2]|0;
- $2261 = (($2258) + 4)|0;
- $2262 = $2261;
- $2263 = HEAP32[$2262>>2]|0;
- $2264 = (_bitshift64Ashr(($2260|0),($2263|0),6)|0);
- $2265 = tempRet0;
- $2266 = $2264&255;
- $2267 = $1;
- $2268 = ((($2267)) + 6|0);
- HEAP8[$2268>>0] = $2266;
- $2269 = $4;
- $2270 = $2269;
- $2271 = HEAP32[$2270>>2]|0;
- $2272 = (($2269) + 4)|0;
- $2273 = $2272;
- $2274 = HEAP32[$2273>>2]|0;
- $2275 = (_bitshift64Ashr(($2271|0),($2274|0),14)|0);
- $2276 = tempRet0;
- $2277 = $5;
- $2278 = $2277;
- $2279 = HEAP32[$2278>>2]|0;
- $2280 = (($2277) + 4)|0;
- $2281 = $2280;
- $2282 = HEAP32[$2281>>2]|0;
- $2283 = (_bitshift64Shl(($2279|0),($2282|0),7)|0);
- $2284 = tempRet0;
- $2285 = $2275 | $2283;
- $2276 | $2284;
- $2286 = $2285&255;
- $2287 = $1;
- $2288 = ((($2287)) + 7|0);
- HEAP8[$2288>>0] = $2286;
- $2289 = $5;
- $2290 = $2289;
- $2291 = HEAP32[$2290>>2]|0;
- $2292 = (($2289) + 4)|0;
- $2293 = $2292;
- $2294 = HEAP32[$2293>>2]|0;
- $2295 = (_bitshift64Ashr(($2291|0),($2294|0),1)|0);
- $2296 = tempRet0;
- $2297 = $2295&255;
- $2298 = $1;
- $2299 = ((($2298)) + 8|0);
- HEAP8[$2299>>0] = $2297;
- $2300 = $5;
- $2301 = $2300;
- $2302 = HEAP32[$2301>>2]|0;
- $2303 = (($2300) + 4)|0;
- $2304 = $2303;
- $2305 = HEAP32[$2304>>2]|0;
- $2306 = (_bitshift64Ashr(($2302|0),($2305|0),9)|0);
- $2307 = tempRet0;
- $2308 = $2306&255;
- $2309 = $1;
- $2310 = ((($2309)) + 9|0);
- HEAP8[$2310>>0] = $2308;
- $2311 = $5;
- $2312 = $2311;
- $2313 = HEAP32[$2312>>2]|0;
- $2314 = (($2311) + 4)|0;
- $2315 = $2314;
- $2316 = HEAP32[$2315>>2]|0;
- $2317 = (_bitshift64Ashr(($2313|0),($2316|0),17)|0);
- $2318 = tempRet0;
- $2319 = $6;
- $2320 = $2319;
- $2321 = HEAP32[$2320>>2]|0;
- $2322 = (($2319) + 4)|0;
- $2323 = $2322;
- $2324 = HEAP32[$2323>>2]|0;
- $2325 = (_bitshift64Shl(($2321|0),($2324|0),4)|0);
- $2326 = tempRet0;
- $2327 = $2317 | $2325;
- $2318 | $2326;
- $2328 = $2327&255;
- $2329 = $1;
- $2330 = ((($2329)) + 10|0);
- HEAP8[$2330>>0] = $2328;
- $2331 = $6;
- $2332 = $2331;
- $2333 = HEAP32[$2332>>2]|0;
- $2334 = (($2331) + 4)|0;
- $2335 = $2334;
- $2336 = HEAP32[$2335>>2]|0;
- $2337 = (_bitshift64Ashr(($2333|0),($2336|0),4)|0);
- $2338 = tempRet0;
- $2339 = $2337&255;
- $2340 = $1;
- $2341 = ((($2340)) + 11|0);
- HEAP8[$2341>>0] = $2339;
- $2342 = $6;
- $2343 = $2342;
- $2344 = HEAP32[$2343>>2]|0;
- $2345 = (($2342) + 4)|0;
- $2346 = $2345;
- $2347 = HEAP32[$2346>>2]|0;
- $2348 = (_bitshift64Ashr(($2344|0),($2347|0),12)|0);
- $2349 = tempRet0;
- $2350 = $2348&255;
- $2351 = $1;
- $2352 = ((($2351)) + 12|0);
- HEAP8[$2352>>0] = $2350;
- $2353 = $6;
- $2354 = $2353;
- $2355 = HEAP32[$2354>>2]|0;
- $2356 = (($2353) + 4)|0;
- $2357 = $2356;
- $2358 = HEAP32[$2357>>2]|0;
- $2359 = (_bitshift64Ashr(($2355|0),($2358|0),20)|0);
- $2360 = tempRet0;
- $2361 = $7;
- $2362 = $2361;
- $2363 = HEAP32[$2362>>2]|0;
- $2364 = (($2361) + 4)|0;
- $2365 = $2364;
- $2366 = HEAP32[$2365>>2]|0;
- $2367 = (_bitshift64Shl(($2363|0),($2366|0),1)|0);
- $2368 = tempRet0;
- $2369 = $2359 | $2367;
- $2360 | $2368;
- $2370 = $2369&255;
- $2371 = $1;
- $2372 = ((($2371)) + 13|0);
- HEAP8[$2372>>0] = $2370;
- $2373 = $7;
- $2374 = $2373;
- $2375 = HEAP32[$2374>>2]|0;
- $2376 = (($2373) + 4)|0;
- $2377 = $2376;
- $2378 = HEAP32[$2377>>2]|0;
- $2379 = (_bitshift64Ashr(($2375|0),($2378|0),7)|0);
- $2380 = tempRet0;
- $2381 = $2379&255;
- $2382 = $1;
- $2383 = ((($2382)) + 14|0);
- HEAP8[$2383>>0] = $2381;
- $2384 = $7;
- $2385 = $2384;
- $2386 = HEAP32[$2385>>2]|0;
- $2387 = (($2384) + 4)|0;
- $2388 = $2387;
- $2389 = HEAP32[$2388>>2]|0;
- $2390 = (_bitshift64Ashr(($2386|0),($2389|0),15)|0);
- $2391 = tempRet0;
- $2392 = $8;
- $2393 = $2392;
- $2394 = HEAP32[$2393>>2]|0;
- $2395 = (($2392) + 4)|0;
- $2396 = $2395;
- $2397 = HEAP32[$2396>>2]|0;
- $2398 = (_bitshift64Shl(($2394|0),($2397|0),6)|0);
- $2399 = tempRet0;
- $2400 = $2390 | $2398;
- $2391 | $2399;
- $2401 = $2400&255;
- $2402 = $1;
- $2403 = ((($2402)) + 15|0);
- HEAP8[$2403>>0] = $2401;
- $2404 = $8;
- $2405 = $2404;
- $2406 = HEAP32[$2405>>2]|0;
- $2407 = (($2404) + 4)|0;
- $2408 = $2407;
- $2409 = HEAP32[$2408>>2]|0;
- $2410 = (_bitshift64Ashr(($2406|0),($2409|0),2)|0);
- $2411 = tempRet0;
- $2412 = $2410&255;
- $2413 = $1;
- $2414 = ((($2413)) + 16|0);
- HEAP8[$2414>>0] = $2412;
- $2415 = $8;
- $2416 = $2415;
- $2417 = HEAP32[$2416>>2]|0;
- $2418 = (($2415) + 4)|0;
- $2419 = $2418;
- $2420 = HEAP32[$2419>>2]|0;
- $2421 = (_bitshift64Ashr(($2417|0),($2420|0),10)|0);
- $2422 = tempRet0;
- $2423 = $2421&255;
- $2424 = $1;
- $2425 = ((($2424)) + 17|0);
- HEAP8[$2425>>0] = $2423;
- $2426 = $8;
- $2427 = $2426;
- $2428 = HEAP32[$2427>>2]|0;
- $2429 = (($2426) + 4)|0;
- $2430 = $2429;
- $2431 = HEAP32[$2430>>2]|0;
- $2432 = (_bitshift64Ashr(($2428|0),($2431|0),18)|0);
- $2433 = tempRet0;
- $2434 = $9;
- $2435 = $2434;
- $2436 = HEAP32[$2435>>2]|0;
- $2437 = (($2434) + 4)|0;
- $2438 = $2437;
- $2439 = HEAP32[$2438>>2]|0;
- $2440 = (_bitshift64Shl(($2436|0),($2439|0),3)|0);
- $2441 = tempRet0;
- $2442 = $2432 | $2440;
- $2433 | $2441;
- $2443 = $2442&255;
- $2444 = $1;
- $2445 = ((($2444)) + 18|0);
- HEAP8[$2445>>0] = $2443;
- $2446 = $9;
- $2447 = $2446;
- $2448 = HEAP32[$2447>>2]|0;
- $2449 = (($2446) + 4)|0;
- $2450 = $2449;
- $2451 = HEAP32[$2450>>2]|0;
- $2452 = (_bitshift64Ashr(($2448|0),($2451|0),5)|0);
- $2453 = tempRet0;
- $2454 = $2452&255;
- $2455 = $1;
- $2456 = ((($2455)) + 19|0);
- HEAP8[$2456>>0] = $2454;
- $2457 = $9;
- $2458 = $2457;
- $2459 = HEAP32[$2458>>2]|0;
- $2460 = (($2457) + 4)|0;
- $2461 = $2460;
- $2462 = HEAP32[$2461>>2]|0;
- $2463 = (_bitshift64Ashr(($2459|0),($2462|0),13)|0);
- $2464 = tempRet0;
- $2465 = $2463&255;
- $2466 = $1;
- $2467 = ((($2466)) + 20|0);
- HEAP8[$2467>>0] = $2465;
- $2468 = $10;
- $2469 = $2468;
- $2470 = HEAP32[$2469>>2]|0;
- $2471 = (($2468) + 4)|0;
- $2472 = $2471;
- $2473 = HEAP32[$2472>>2]|0;
- $2474 = (_bitshift64Ashr(($2470|0),($2473|0),0)|0);
- $2475 = tempRet0;
- $2476 = $2474&255;
- $2477 = $1;
- $2478 = ((($2477)) + 21|0);
- HEAP8[$2478>>0] = $2476;
- $2479 = $10;
- $2480 = $2479;
- $2481 = HEAP32[$2480>>2]|0;
- $2482 = (($2479) + 4)|0;
- $2483 = $2482;
- $2484 = HEAP32[$2483>>2]|0;
- $2485 = (_bitshift64Ashr(($2481|0),($2484|0),8)|0);
- $2486 = tempRet0;
- $2487 = $2485&255;
- $2488 = $1;
- $2489 = ((($2488)) + 22|0);
- HEAP8[$2489>>0] = $2487;
- $2490 = $10;
- $2491 = $2490;
- $2492 = HEAP32[$2491>>2]|0;
- $2493 = (($2490) + 4)|0;
- $2494 = $2493;
- $2495 = HEAP32[$2494>>2]|0;
- $2496 = (_bitshift64Ashr(($2492|0),($2495|0),16)|0);
- $2497 = tempRet0;
- $2498 = $11;
- $2499 = $2498;
- $2500 = HEAP32[$2499>>2]|0;
- $2501 = (($2498) + 4)|0;
- $2502 = $2501;
- $2503 = HEAP32[$2502>>2]|0;
- $2504 = (_bitshift64Shl(($2500|0),($2503|0),5)|0);
- $2505 = tempRet0;
- $2506 = $2496 | $2504;
- $2497 | $2505;
- $2507 = $2506&255;
- $2508 = $1;
- $2509 = ((($2508)) + 23|0);
- HEAP8[$2509>>0] = $2507;
- $2510 = $11;
- $2511 = $2510;
- $2512 = HEAP32[$2511>>2]|0;
- $2513 = (($2510) + 4)|0;
- $2514 = $2513;
- $2515 = HEAP32[$2514>>2]|0;
- $2516 = (_bitshift64Ashr(($2512|0),($2515|0),3)|0);
- $2517 = tempRet0;
- $2518 = $2516&255;
- $2519 = $1;
- $2520 = ((($2519)) + 24|0);
- HEAP8[$2520>>0] = $2518;
- $2521 = $11;
- $2522 = $2521;
- $2523 = HEAP32[$2522>>2]|0;
- $2524 = (($2521) + 4)|0;
- $2525 = $2524;
- $2526 = HEAP32[$2525>>2]|0;
- $2527 = (_bitshift64Ashr(($2523|0),($2526|0),11)|0);
- $2528 = tempRet0;
- $2529 = $2527&255;
- $2530 = $1;
- $2531 = ((($2530)) + 25|0);
- HEAP8[$2531>>0] = $2529;
- $2532 = $11;
- $2533 = $2532;
- $2534 = HEAP32[$2533>>2]|0;
- $2535 = (($2532) + 4)|0;
- $2536 = $2535;
- $2537 = HEAP32[$2536>>2]|0;
- $2538 = (_bitshift64Ashr(($2534|0),($2537|0),19)|0);
- $2539 = tempRet0;
- $2540 = $12;
- $2541 = $2540;
- $2542 = HEAP32[$2541>>2]|0;
- $2543 = (($2540) + 4)|0;
- $2544 = $2543;
- $2545 = HEAP32[$2544>>2]|0;
- $2546 = (_bitshift64Shl(($2542|0),($2545|0),2)|0);
- $2547 = tempRet0;
- $2548 = $2538 | $2546;
- $2539 | $2547;
- $2549 = $2548&255;
- $2550 = $1;
- $2551 = ((($2550)) + 26|0);
- HEAP8[$2551>>0] = $2549;
- $2552 = $12;
- $2553 = $2552;
- $2554 = HEAP32[$2553>>2]|0;
- $2555 = (($2552) + 4)|0;
- $2556 = $2555;
- $2557 = HEAP32[$2556>>2]|0;
- $2558 = (_bitshift64Ashr(($2554|0),($2557|0),6)|0);
- $2559 = tempRet0;
- $2560 = $2558&255;
- $2561 = $1;
- $2562 = ((($2561)) + 27|0);
- HEAP8[$2562>>0] = $2560;
- $2563 = $12;
- $2564 = $2563;
- $2565 = HEAP32[$2564>>2]|0;
- $2566 = (($2563) + 4)|0;
- $2567 = $2566;
- $2568 = HEAP32[$2567>>2]|0;
- $2569 = (_bitshift64Ashr(($2565|0),($2568|0),14)|0);
- $2570 = tempRet0;
- $2571 = $13;
- $2572 = $2571;
- $2573 = HEAP32[$2572>>2]|0;
- $2574 = (($2571) + 4)|0;
- $2575 = $2574;
- $2576 = HEAP32[$2575>>2]|0;
- $2577 = (_bitshift64Shl(($2573|0),($2576|0),7)|0);
- $2578 = tempRet0;
- $2579 = $2569 | $2577;
- $2570 | $2578;
- $2580 = $2579&255;
- $2581 = $1;
- $2582 = ((($2581)) + 28|0);
- HEAP8[$2582>>0] = $2580;
- $2583 = $13;
- $2584 = $2583;
- $2585 = HEAP32[$2584>>2]|0;
- $2586 = (($2583) + 4)|0;
- $2587 = $2586;
- $2588 = HEAP32[$2587>>2]|0;
- $2589 = (_bitshift64Ashr(($2585|0),($2588|0),1)|0);
- $2590 = tempRet0;
- $2591 = $2589&255;
- $2592 = $1;
- $2593 = ((($2592)) + 29|0);
- HEAP8[$2593>>0] = $2591;
- $2594 = $13;
- $2595 = $2594;
- $2596 = HEAP32[$2595>>2]|0;
- $2597 = (($2594) + 4)|0;
- $2598 = $2597;
- $2599 = HEAP32[$2598>>2]|0;
- $2600 = (_bitshift64Ashr(($2596|0),($2599|0),9)|0);
- $2601 = tempRet0;
- $2602 = $2600&255;
- $2603 = $1;
- $2604 = ((($2603)) + 30|0);
- HEAP8[$2604>>0] = $2602;
- $2605 = $13;
- $2606 = $2605;
- $2607 = HEAP32[$2606>>2]|0;
- $2608 = (($2605) + 4)|0;
- $2609 = $2608;
- $2610 = HEAP32[$2609>>2]|0;
- $2611 = (_bitshift64Ashr(($2607|0),($2610|0),17)|0);
- $2612 = tempRet0;
- $2613 = $2611&255;
- $2614 = $1;
- $2615 = ((($2614)) + 31|0);
- HEAP8[$2615>>0] = $2613;
- STACKTOP = sp;return;
-}
-function _malloc($0) {
- $0 = $0|0;
- var $$0 = 0, $$0$i = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i20$i = 0, $$0169$i = 0, $$0170$i = 0, $$0171$i = 0, $$0192 = 0, $$0194 = 0, $$02014$i$i = 0, $$0202$lcssa$i$i = 0, $$02023$i$i = 0, $$0206$i$i = 0, $$0207$i$i = 0, $$024372$i = 0, $$0259$i$i = 0, $$02604$i$i = 0, $$0261$lcssa$i$i = 0, $$02613$i$i = 0;
- var $$0267$i$i = 0, $$0268$i$i = 0, $$0318$i = 0, $$032012$i = 0, $$0321$lcssa$i = 0, $$032111$i = 0, $$0323$i = 0, $$0329$i = 0, $$0335$i = 0, $$0336$i = 0, $$0338$i = 0, $$0339$i = 0, $$0344$i = 0, $$1174$i = 0, $$1174$i$be = 0, $$1174$i$ph = 0, $$1176$i = 0, $$1176$i$be = 0, $$1176$i$ph = 0, $$124471$i = 0;
- var $$1263$i$i = 0, $$1263$i$i$be = 0, $$1263$i$i$ph = 0, $$1265$i$i = 0, $$1265$i$i$be = 0, $$1265$i$i$ph = 0, $$1319$i = 0, $$1324$i = 0, $$1340$i = 0, $$1346$i = 0, $$1346$i$be = 0, $$1346$i$ph = 0, $$1350$i = 0, $$1350$i$be = 0, $$1350$i$ph = 0, $$2234243136$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2331$i = 0, $$3$i = 0;
- var $$3$i$i = 0, $$3$i198 = 0, $$3$i198211 = 0, $$3326$i = 0, $$3348$i = 0, $$4$lcssa$i = 0, $$415$i = 0, $$415$i$ph = 0, $$4236$i = 0, $$4327$lcssa$i = 0, $$432714$i = 0, $$432714$i$ph = 0, $$4333$i = 0, $$533413$i = 0, $$533413$i$ph = 0, $$723947$i = 0, $$748$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0;
- var $$pre$i16$i = 0, $$pre$i195 = 0, $$pre$i204 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i17$iZ2D = 0, $$pre$phi$i205Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phiZ2D = 0, $$sink = 0, $$sink320 = 0, $$sink321 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0;
- var $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0;
- var $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0;
- var $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0;
- var $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0;
- var $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0;
- var $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0;
- var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0;
- var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0;
- var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0;
- var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0;
- var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0;
- var $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0;
- var $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0;
- var $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0;
- var $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0;
- var $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0;
- var $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0;
- var $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0;
- var $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0;
- var $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0;
- var $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0;
- var $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0;
- var $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0;
- var $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0;
- var $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0;
- var $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0;
- var $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0;
- var $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0;
- var $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0;
- var $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0;
- var $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0;
- var $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0;
- var $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0;
- var $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0;
- var $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0;
- var $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0;
- var $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0;
- var $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0;
- var $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0;
- var $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0;
- var $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0;
- var $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0;
- var $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0;
- var $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0;
- var $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0;
- var $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0;
- var $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0;
- var $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0;
- var $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $99 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i203 = 0, $not$$i = 0, $or$cond$i = 0, $or$cond$i199 = 0, $or$cond1$i = 0, $or$cond1$i197 = 0, $or$cond11$i = 0, $or$cond2$i = 0;
- var $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond6$i = 0, $or$cond7$i = 0, $or$cond8$i = 0, $or$cond8$not$i = 0, $spec$select$i = 0, $spec$select$i201 = 0, $spec$select1$i = 0, $spec$select2$i = 0, $spec$select4$i = 0, $spec$select49$i = 0, $spec$select9$i = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
- $1 = sp;
- $2 = ($0>>>0)<(245);
- do {
- if ($2) {
- $3 = ($0>>>0)<(11);
- $4 = (($0) + 11)|0;
- $5 = $4 & -8;
- $6 = $3 ? 16 : $5;
- $7 = $6 >>> 3;
- $8 = HEAP32[296]|0;
- $9 = $8 >>> $7;
- $10 = $9 & 3;
- $11 = ($10|0)==(0);
- if (!($11)) {
- $12 = $9 & 1;
- $13 = $12 ^ 1;
- $14 = (($13) + ($7))|0;
- $15 = $14 << 1;
- $16 = (1224 + ($15<<2)|0);
- $17 = ((($16)) + 8|0);
- $18 = HEAP32[$17>>2]|0;
- $19 = ((($18)) + 8|0);
- $20 = HEAP32[$19>>2]|0;
- $21 = ($20|0)==($16|0);
- if ($21) {
- $22 = 1 << $14;
- $23 = $22 ^ -1;
- $24 = $8 & $23;
- HEAP32[296] = $24;
- } else {
- $25 = ((($20)) + 12|0);
- HEAP32[$25>>2] = $16;
- HEAP32[$17>>2] = $20;
- }
- $26 = $14 << 3;
- $27 = $26 | 3;
- $28 = ((($18)) + 4|0);
- HEAP32[$28>>2] = $27;
- $29 = (($18) + ($26)|0);
- $30 = ((($29)) + 4|0);
- $31 = HEAP32[$30>>2]|0;
- $32 = $31 | 1;
- HEAP32[$30>>2] = $32;
- $$0 = $19;
- STACKTOP = sp;return ($$0|0);
- }
- $33 = HEAP32[(1192)>>2]|0;
- $34 = ($6>>>0)>($33>>>0);
- if ($34) {
- $35 = ($9|0)==(0);
- if (!($35)) {
- $36 = $9 << $7;
- $37 = 2 << $7;
- $38 = (0 - ($37))|0;
- $39 = $37 | $38;
- $40 = $36 & $39;
- $41 = (0 - ($40))|0;
- $42 = $40 & $41;
- $43 = (($42) + -1)|0;
- $44 = $43 >>> 12;
- $45 = $44 & 16;
- $46 = $43 >>> $45;
- $47 = $46 >>> 5;
- $48 = $47 & 8;
- $49 = $48 | $45;
- $50 = $46 >>> $48;
- $51 = $50 >>> 2;
- $52 = $51 & 4;
- $53 = $49 | $52;
- $54 = $50 >>> $52;
- $55 = $54 >>> 1;
- $56 = $55 & 2;
- $57 = $53 | $56;
- $58 = $54 >>> $56;
- $59 = $58 >>> 1;
- $60 = $59 & 1;
- $61 = $57 | $60;
- $62 = $58 >>> $60;
- $63 = (($61) + ($62))|0;
- $64 = $63 << 1;
- $65 = (1224 + ($64<<2)|0);
- $66 = ((($65)) + 8|0);
- $67 = HEAP32[$66>>2]|0;
- $68 = ((($67)) + 8|0);
- $69 = HEAP32[$68>>2]|0;
- $70 = ($69|0)==($65|0);
- if ($70) {
- $71 = 1 << $63;
- $72 = $71 ^ -1;
- $73 = $8 & $72;
- HEAP32[296] = $73;
- $90 = $73;
- } else {
- $74 = ((($69)) + 12|0);
- HEAP32[$74>>2] = $65;
- HEAP32[$66>>2] = $69;
- $90 = $8;
- }
- $75 = $63 << 3;
- $76 = (($75) - ($6))|0;
- $77 = $6 | 3;
- $78 = ((($67)) + 4|0);
- HEAP32[$78>>2] = $77;
- $79 = (($67) + ($6)|0);
- $80 = $76 | 1;
- $81 = ((($79)) + 4|0);
- HEAP32[$81>>2] = $80;
- $82 = (($67) + ($75)|0);
- HEAP32[$82>>2] = $76;
- $83 = ($33|0)==(0);
- if (!($83)) {
- $84 = HEAP32[(1204)>>2]|0;
- $85 = $33 >>> 3;
- $86 = $85 << 1;
- $87 = (1224 + ($86<<2)|0);
- $88 = 1 << $85;
- $89 = $90 & $88;
- $91 = ($89|0)==(0);
- if ($91) {
- $92 = $90 | $88;
- HEAP32[296] = $92;
- $$pre = ((($87)) + 8|0);
- $$0194 = $87;$$pre$phiZ2D = $$pre;
- } else {
- $93 = ((($87)) + 8|0);
- $94 = HEAP32[$93>>2]|0;
- $$0194 = $94;$$pre$phiZ2D = $93;
- }
- HEAP32[$$pre$phiZ2D>>2] = $84;
- $95 = ((($$0194)) + 12|0);
- HEAP32[$95>>2] = $84;
- $96 = ((($84)) + 8|0);
- HEAP32[$96>>2] = $$0194;
- $97 = ((($84)) + 12|0);
- HEAP32[$97>>2] = $87;
- }
- HEAP32[(1192)>>2] = $76;
- HEAP32[(1204)>>2] = $79;
- $$0 = $68;
- STACKTOP = sp;return ($$0|0);
- }
- $98 = HEAP32[(1188)>>2]|0;
- $99 = ($98|0)==(0);
- if ($99) {
- $$0192 = $6;
- } else {
- $100 = (0 - ($98))|0;
- $101 = $98 & $100;
- $102 = (($101) + -1)|0;
- $103 = $102 >>> 12;
- $104 = $103 & 16;
- $105 = $102 >>> $104;
- $106 = $105 >>> 5;
- $107 = $106 & 8;
- $108 = $107 | $104;
- $109 = $105 >>> $107;
- $110 = $109 >>> 2;
- $111 = $110 & 4;
- $112 = $108 | $111;
- $113 = $109 >>> $111;
- $114 = $113 >>> 1;
- $115 = $114 & 2;
- $116 = $112 | $115;
- $117 = $113 >>> $115;
- $118 = $117 >>> 1;
- $119 = $118 & 1;
- $120 = $116 | $119;
- $121 = $117 >>> $119;
- $122 = (($120) + ($121))|0;
- $123 = (1488 + ($122<<2)|0);
- $124 = HEAP32[$123>>2]|0;
- $125 = ((($124)) + 4|0);
- $126 = HEAP32[$125>>2]|0;
- $127 = $126 & -8;
- $128 = (($127) - ($6))|0;
- $$0169$i = $124;$$0170$i = $124;$$0171$i = $128;
- while(1) {
- $129 = ((($$0169$i)) + 16|0);
- $130 = HEAP32[$129>>2]|0;
- $131 = ($130|0)==(0|0);
- if ($131) {
- $132 = ((($$0169$i)) + 20|0);
- $133 = HEAP32[$132>>2]|0;
- $134 = ($133|0)==(0|0);
- if ($134) {
- break;
- } else {
- $136 = $133;
- }
- } else {
- $136 = $130;
- }
- $135 = ((($136)) + 4|0);
- $137 = HEAP32[$135>>2]|0;
- $138 = $137 & -8;
- $139 = (($138) - ($6))|0;
- $140 = ($139>>>0)<($$0171$i>>>0);
- $spec$select$i = $140 ? $139 : $$0171$i;
- $spec$select1$i = $140 ? $136 : $$0170$i;
- $$0169$i = $136;$$0170$i = $spec$select1$i;$$0171$i = $spec$select$i;
- }
- $141 = (($$0170$i) + ($6)|0);
- $142 = ($141>>>0)>($$0170$i>>>0);
- if ($142) {
- $143 = ((($$0170$i)) + 24|0);
- $144 = HEAP32[$143>>2]|0;
- $145 = ((($$0170$i)) + 12|0);
- $146 = HEAP32[$145>>2]|0;
- $147 = ($146|0)==($$0170$i|0);
- do {
- if ($147) {
- $152 = ((($$0170$i)) + 20|0);
- $153 = HEAP32[$152>>2]|0;
- $154 = ($153|0)==(0|0);
- if ($154) {
- $155 = ((($$0170$i)) + 16|0);
- $156 = HEAP32[$155>>2]|0;
- $157 = ($156|0)==(0|0);
- if ($157) {
- $$3$i = 0;
- break;
- } else {
- $$1174$i$ph = $156;$$1176$i$ph = $155;
- }
- } else {
- $$1174$i$ph = $153;$$1176$i$ph = $152;
- }
- $$1174$i = $$1174$i$ph;$$1176$i = $$1176$i$ph;
- while(1) {
- $158 = ((($$1174$i)) + 20|0);
- $159 = HEAP32[$158>>2]|0;
- $160 = ($159|0)==(0|0);
- if ($160) {
- $161 = ((($$1174$i)) + 16|0);
- $162 = HEAP32[$161>>2]|0;
- $163 = ($162|0)==(0|0);
- if ($163) {
- break;
- } else {
- $$1174$i$be = $162;$$1176$i$be = $161;
- }
- } else {
- $$1174$i$be = $159;$$1176$i$be = $158;
- }
- $$1174$i = $$1174$i$be;$$1176$i = $$1176$i$be;
- }
- HEAP32[$$1176$i>>2] = 0;
- $$3$i = $$1174$i;
- } else {
- $148 = ((($$0170$i)) + 8|0);
- $149 = HEAP32[$148>>2]|0;
- $150 = ((($149)) + 12|0);
- HEAP32[$150>>2] = $146;
- $151 = ((($146)) + 8|0);
- HEAP32[$151>>2] = $149;
- $$3$i = $146;
- }
- } while(0);
- $164 = ($144|0)==(0|0);
- do {
- if (!($164)) {
- $165 = ((($$0170$i)) + 28|0);
- $166 = HEAP32[$165>>2]|0;
- $167 = (1488 + ($166<<2)|0);
- $168 = HEAP32[$167>>2]|0;
- $169 = ($$0170$i|0)==($168|0);
- if ($169) {
- HEAP32[$167>>2] = $$3$i;
- $cond$i = ($$3$i|0)==(0|0);
- if ($cond$i) {
- $170 = 1 << $166;
- $171 = $170 ^ -1;
- $172 = $98 & $171;
- HEAP32[(1188)>>2] = $172;
- break;
- }
- } else {
- $173 = ((($144)) + 16|0);
- $174 = HEAP32[$173>>2]|0;
- $175 = ($174|0)==($$0170$i|0);
- $176 = ((($144)) + 20|0);
- $$sink = $175 ? $173 : $176;
- HEAP32[$$sink>>2] = $$3$i;
- $177 = ($$3$i|0)==(0|0);
- if ($177) {
- break;
- }
- }
- $178 = ((($$3$i)) + 24|0);
- HEAP32[$178>>2] = $144;
- $179 = ((($$0170$i)) + 16|0);
- $180 = HEAP32[$179>>2]|0;
- $181 = ($180|0)==(0|0);
- if (!($181)) {
- $182 = ((($$3$i)) + 16|0);
- HEAP32[$182>>2] = $180;
- $183 = ((($180)) + 24|0);
- HEAP32[$183>>2] = $$3$i;
- }
- $184 = ((($$0170$i)) + 20|0);
- $185 = HEAP32[$184>>2]|0;
- $186 = ($185|0)==(0|0);
- if (!($186)) {
- $187 = ((($$3$i)) + 20|0);
- HEAP32[$187>>2] = $185;
- $188 = ((($185)) + 24|0);
- HEAP32[$188>>2] = $$3$i;
- }
- }
- } while(0);
- $189 = ($$0171$i>>>0)<(16);
- if ($189) {
- $190 = (($$0171$i) + ($6))|0;
- $191 = $190 | 3;
- $192 = ((($$0170$i)) + 4|0);
- HEAP32[$192>>2] = $191;
- $193 = (($$0170$i) + ($190)|0);
- $194 = ((($193)) + 4|0);
- $195 = HEAP32[$194>>2]|0;
- $196 = $195 | 1;
- HEAP32[$194>>2] = $196;
- } else {
- $197 = $6 | 3;
- $198 = ((($$0170$i)) + 4|0);
- HEAP32[$198>>2] = $197;
- $199 = $$0171$i | 1;
- $200 = ((($141)) + 4|0);
- HEAP32[$200>>2] = $199;
- $201 = (($141) + ($$0171$i)|0);
- HEAP32[$201>>2] = $$0171$i;
- $202 = ($33|0)==(0);
- if (!($202)) {
- $203 = HEAP32[(1204)>>2]|0;
- $204 = $33 >>> 3;
- $205 = $204 << 1;
- $206 = (1224 + ($205<<2)|0);
- $207 = 1 << $204;
- $208 = $207 & $8;
- $209 = ($208|0)==(0);
- if ($209) {
- $210 = $207 | $8;
- HEAP32[296] = $210;
- $$pre$i = ((($206)) + 8|0);
- $$0$i = $206;$$pre$phi$iZ2D = $$pre$i;
- } else {
- $211 = ((($206)) + 8|0);
- $212 = HEAP32[$211>>2]|0;
- $$0$i = $212;$$pre$phi$iZ2D = $211;
- }
- HEAP32[$$pre$phi$iZ2D>>2] = $203;
- $213 = ((($$0$i)) + 12|0);
- HEAP32[$213>>2] = $203;
- $214 = ((($203)) + 8|0);
- HEAP32[$214>>2] = $$0$i;
- $215 = ((($203)) + 12|0);
- HEAP32[$215>>2] = $206;
- }
- HEAP32[(1192)>>2] = $$0171$i;
- HEAP32[(1204)>>2] = $141;
- }
- $216 = ((($$0170$i)) + 8|0);
- $$0 = $216;
- STACKTOP = sp;return ($$0|0);
- } else {
- $$0192 = $6;
- }
- }
- } else {
- $$0192 = $6;
- }
- } else {
- $217 = ($0>>>0)>(4294967231);
- if ($217) {
- $$0192 = -1;
- } else {
- $218 = (($0) + 11)|0;
- $219 = $218 & -8;
- $220 = HEAP32[(1188)>>2]|0;
- $221 = ($220|0)==(0);
- if ($221) {
- $$0192 = $219;
- } else {
- $222 = (0 - ($219))|0;
- $223 = $218 >>> 8;
- $224 = ($223|0)==(0);
- if ($224) {
- $$0335$i = 0;
- } else {
- $225 = ($219>>>0)>(16777215);
- if ($225) {
- $$0335$i = 31;
- } else {
- $226 = (($223) + 1048320)|0;
- $227 = $226 >>> 16;
- $228 = $227 & 8;
- $229 = $223 << $228;
- $230 = (($229) + 520192)|0;
- $231 = $230 >>> 16;
- $232 = $231 & 4;
- $233 = $232 | $228;
- $234 = $229 << $232;
- $235 = (($234) + 245760)|0;
- $236 = $235 >>> 16;
- $237 = $236 & 2;
- $238 = $233 | $237;
- $239 = (14 - ($238))|0;
- $240 = $234 << $237;
- $241 = $240 >>> 15;
- $242 = (($239) + ($241))|0;
- $243 = $242 << 1;
- $244 = (($242) + 7)|0;
- $245 = $219 >>> $244;
- $246 = $245 & 1;
- $247 = $246 | $243;
- $$0335$i = $247;
- }
- }
- $248 = (1488 + ($$0335$i<<2)|0);
- $249 = HEAP32[$248>>2]|0;
- $250 = ($249|0)==(0|0);
- L79: do {
- if ($250) {
- $$2331$i = 0;$$3$i198 = 0;$$3326$i = $222;
- label = 61;
- } else {
- $251 = ($$0335$i|0)==(31);
- $252 = $$0335$i >>> 1;
- $253 = (25 - ($252))|0;
- $254 = $251 ? 0 : $253;
- $255 = $219 << $254;
- $$0318$i = 0;$$0323$i = $222;$$0329$i = $249;$$0336$i = $255;$$0339$i = 0;
- while(1) {
- $256 = ((($$0329$i)) + 4|0);
- $257 = HEAP32[$256>>2]|0;
- $258 = $257 & -8;
- $259 = (($258) - ($219))|0;
- $260 = ($259>>>0)<($$0323$i>>>0);
- if ($260) {
- $261 = ($259|0)==(0);
- if ($261) {
- $$415$i$ph = $$0329$i;$$432714$i$ph = 0;$$533413$i$ph = $$0329$i;
- label = 65;
- break L79;
- } else {
- $$1319$i = $$0329$i;$$1324$i = $259;
- }
- } else {
- $$1319$i = $$0318$i;$$1324$i = $$0323$i;
- }
- $262 = ((($$0329$i)) + 20|0);
- $263 = HEAP32[$262>>2]|0;
- $264 = $$0336$i >>> 31;
- $265 = (((($$0329$i)) + 16|0) + ($264<<2)|0);
- $266 = HEAP32[$265>>2]|0;
- $267 = ($263|0)==(0|0);
- $268 = ($263|0)==($266|0);
- $or$cond1$i197 = $267 | $268;
- $$1340$i = $or$cond1$i197 ? $$0339$i : $263;
- $269 = ($266|0)==(0|0);
- $spec$select4$i = $$0336$i << 1;
- if ($269) {
- $$2331$i = $$1340$i;$$3$i198 = $$1319$i;$$3326$i = $$1324$i;
- label = 61;
- break;
- } else {
- $$0318$i = $$1319$i;$$0323$i = $$1324$i;$$0329$i = $266;$$0336$i = $spec$select4$i;$$0339$i = $$1340$i;
- }
- }
- }
- } while(0);
- if ((label|0) == 61) {
- $270 = ($$2331$i|0)==(0|0);
- $271 = ($$3$i198|0)==(0|0);
- $or$cond$i199 = $270 & $271;
- if ($or$cond$i199) {
- $272 = 2 << $$0335$i;
- $273 = (0 - ($272))|0;
- $274 = $272 | $273;
- $275 = $274 & $220;
- $276 = ($275|0)==(0);
- if ($276) {
- $$0192 = $219;
- break;
- }
- $277 = (0 - ($275))|0;
- $278 = $275 & $277;
- $279 = (($278) + -1)|0;
- $280 = $279 >>> 12;
- $281 = $280 & 16;
- $282 = $279 >>> $281;
- $283 = $282 >>> 5;
- $284 = $283 & 8;
- $285 = $284 | $281;
- $286 = $282 >>> $284;
- $287 = $286 >>> 2;
- $288 = $287 & 4;
- $289 = $285 | $288;
- $290 = $286 >>> $288;
- $291 = $290 >>> 1;
- $292 = $291 & 2;
- $293 = $289 | $292;
- $294 = $290 >>> $292;
- $295 = $294 >>> 1;
- $296 = $295 & 1;
- $297 = $293 | $296;
- $298 = $294 >>> $296;
- $299 = (($297) + ($298))|0;
- $300 = (1488 + ($299<<2)|0);
- $301 = HEAP32[$300>>2]|0;
- $$3$i198211 = 0;$$4333$i = $301;
- } else {
- $$3$i198211 = $$3$i198;$$4333$i = $$2331$i;
- }
- $302 = ($$4333$i|0)==(0|0);
- if ($302) {
- $$4$lcssa$i = $$3$i198211;$$4327$lcssa$i = $$3326$i;
- } else {
- $$415$i$ph = $$3$i198211;$$432714$i$ph = $$3326$i;$$533413$i$ph = $$4333$i;
- label = 65;
- }
- }
- if ((label|0) == 65) {
- $$415$i = $$415$i$ph;$$432714$i = $$432714$i$ph;$$533413$i = $$533413$i$ph;
- while(1) {
- $303 = ((($$533413$i)) + 4|0);
- $304 = HEAP32[$303>>2]|0;
- $305 = $304 & -8;
- $306 = (($305) - ($219))|0;
- $307 = ($306>>>0)<($$432714$i>>>0);
- $spec$select$i201 = $307 ? $306 : $$432714$i;
- $spec$select2$i = $307 ? $$533413$i : $$415$i;
- $308 = ((($$533413$i)) + 16|0);
- $309 = HEAP32[$308>>2]|0;
- $310 = ($309|0)==(0|0);
- if ($310) {
- $311 = ((($$533413$i)) + 20|0);
- $312 = HEAP32[$311>>2]|0;
- $314 = $312;
- } else {
- $314 = $309;
- }
- $313 = ($314|0)==(0|0);
- if ($313) {
- $$4$lcssa$i = $spec$select2$i;$$4327$lcssa$i = $spec$select$i201;
- break;
- } else {
- $$415$i = $spec$select2$i;$$432714$i = $spec$select$i201;$$533413$i = $314;
- }
- }
- }
- $315 = ($$4$lcssa$i|0)==(0|0);
- if ($315) {
- $$0192 = $219;
- } else {
- $316 = HEAP32[(1192)>>2]|0;
- $317 = (($316) - ($219))|0;
- $318 = ($$4327$lcssa$i>>>0)<($317>>>0);
- if ($318) {
- $319 = (($$4$lcssa$i) + ($219)|0);
- $320 = ($319>>>0)>($$4$lcssa$i>>>0);
- if ($320) {
- $321 = ((($$4$lcssa$i)) + 24|0);
- $322 = HEAP32[$321>>2]|0;
- $323 = ((($$4$lcssa$i)) + 12|0);
- $324 = HEAP32[$323>>2]|0;
- $325 = ($324|0)==($$4$lcssa$i|0);
- do {
- if ($325) {
- $330 = ((($$4$lcssa$i)) + 20|0);
- $331 = HEAP32[$330>>2]|0;
- $332 = ($331|0)==(0|0);
- if ($332) {
- $333 = ((($$4$lcssa$i)) + 16|0);
- $334 = HEAP32[$333>>2]|0;
- $335 = ($334|0)==(0|0);
- if ($335) {
- $$3348$i = 0;
- break;
- } else {
- $$1346$i$ph = $334;$$1350$i$ph = $333;
- }
- } else {
- $$1346$i$ph = $331;$$1350$i$ph = $330;
- }
- $$1346$i = $$1346$i$ph;$$1350$i = $$1350$i$ph;
- while(1) {
- $336 = ((($$1346$i)) + 20|0);
- $337 = HEAP32[$336>>2]|0;
- $338 = ($337|0)==(0|0);
- if ($338) {
- $339 = ((($$1346$i)) + 16|0);
- $340 = HEAP32[$339>>2]|0;
- $341 = ($340|0)==(0|0);
- if ($341) {
- break;
- } else {
- $$1346$i$be = $340;$$1350$i$be = $339;
- }
- } else {
- $$1346$i$be = $337;$$1350$i$be = $336;
- }
- $$1346$i = $$1346$i$be;$$1350$i = $$1350$i$be;
- }
- HEAP32[$$1350$i>>2] = 0;
- $$3348$i = $$1346$i;
- } else {
- $326 = ((($$4$lcssa$i)) + 8|0);
- $327 = HEAP32[$326>>2]|0;
- $328 = ((($327)) + 12|0);
- HEAP32[$328>>2] = $324;
- $329 = ((($324)) + 8|0);
- HEAP32[$329>>2] = $327;
- $$3348$i = $324;
- }
- } while(0);
- $342 = ($322|0)==(0|0);
- do {
- if ($342) {
- $425 = $220;
- } else {
- $343 = ((($$4$lcssa$i)) + 28|0);
- $344 = HEAP32[$343>>2]|0;
- $345 = (1488 + ($344<<2)|0);
- $346 = HEAP32[$345>>2]|0;
- $347 = ($$4$lcssa$i|0)==($346|0);
- if ($347) {
- HEAP32[$345>>2] = $$3348$i;
- $cond$i203 = ($$3348$i|0)==(0|0);
- if ($cond$i203) {
- $348 = 1 << $344;
- $349 = $348 ^ -1;
- $350 = $220 & $349;
- HEAP32[(1188)>>2] = $350;
- $425 = $350;
- break;
- }
- } else {
- $351 = ((($322)) + 16|0);
- $352 = HEAP32[$351>>2]|0;
- $353 = ($352|0)==($$4$lcssa$i|0);
- $354 = ((($322)) + 20|0);
- $$sink320 = $353 ? $351 : $354;
- HEAP32[$$sink320>>2] = $$3348$i;
- $355 = ($$3348$i|0)==(0|0);
- if ($355) {
- $425 = $220;
- break;
- }
- }
- $356 = ((($$3348$i)) + 24|0);
- HEAP32[$356>>2] = $322;
- $357 = ((($$4$lcssa$i)) + 16|0);
- $358 = HEAP32[$357>>2]|0;
- $359 = ($358|0)==(0|0);
- if (!($359)) {
- $360 = ((($$3348$i)) + 16|0);
- HEAP32[$360>>2] = $358;
- $361 = ((($358)) + 24|0);
- HEAP32[$361>>2] = $$3348$i;
- }
- $362 = ((($$4$lcssa$i)) + 20|0);
- $363 = HEAP32[$362>>2]|0;
- $364 = ($363|0)==(0|0);
- if ($364) {
- $425 = $220;
- } else {
- $365 = ((($$3348$i)) + 20|0);
- HEAP32[$365>>2] = $363;
- $366 = ((($363)) + 24|0);
- HEAP32[$366>>2] = $$3348$i;
- $425 = $220;
- }
- }
- } while(0);
- $367 = ($$4327$lcssa$i>>>0)<(16);
- L128: do {
- if ($367) {
- $368 = (($$4327$lcssa$i) + ($219))|0;
- $369 = $368 | 3;
- $370 = ((($$4$lcssa$i)) + 4|0);
- HEAP32[$370>>2] = $369;
- $371 = (($$4$lcssa$i) + ($368)|0);
- $372 = ((($371)) + 4|0);
- $373 = HEAP32[$372>>2]|0;
- $374 = $373 | 1;
- HEAP32[$372>>2] = $374;
- } else {
- $375 = $219 | 3;
- $376 = ((($$4$lcssa$i)) + 4|0);
- HEAP32[$376>>2] = $375;
- $377 = $$4327$lcssa$i | 1;
- $378 = ((($319)) + 4|0);
- HEAP32[$378>>2] = $377;
- $379 = (($319) + ($$4327$lcssa$i)|0);
- HEAP32[$379>>2] = $$4327$lcssa$i;
- $380 = $$4327$lcssa$i >>> 3;
- $381 = ($$4327$lcssa$i>>>0)<(256);
- if ($381) {
- $382 = $380 << 1;
- $383 = (1224 + ($382<<2)|0);
- $384 = HEAP32[296]|0;
- $385 = 1 << $380;
- $386 = $384 & $385;
- $387 = ($386|0)==(0);
- if ($387) {
- $388 = $384 | $385;
- HEAP32[296] = $388;
- $$pre$i204 = ((($383)) + 8|0);
- $$0344$i = $383;$$pre$phi$i205Z2D = $$pre$i204;
- } else {
- $389 = ((($383)) + 8|0);
- $390 = HEAP32[$389>>2]|0;
- $$0344$i = $390;$$pre$phi$i205Z2D = $389;
- }
- HEAP32[$$pre$phi$i205Z2D>>2] = $319;
- $391 = ((($$0344$i)) + 12|0);
- HEAP32[$391>>2] = $319;
- $392 = ((($319)) + 8|0);
- HEAP32[$392>>2] = $$0344$i;
- $393 = ((($319)) + 12|0);
- HEAP32[$393>>2] = $383;
- break;
- }
- $394 = $$4327$lcssa$i >>> 8;
- $395 = ($394|0)==(0);
- if ($395) {
- $$0338$i = 0;
- } else {
- $396 = ($$4327$lcssa$i>>>0)>(16777215);
- if ($396) {
- $$0338$i = 31;
- } else {
- $397 = (($394) + 1048320)|0;
- $398 = $397 >>> 16;
- $399 = $398 & 8;
- $400 = $394 << $399;
- $401 = (($400) + 520192)|0;
- $402 = $401 >>> 16;
- $403 = $402 & 4;
- $404 = $403 | $399;
- $405 = $400 << $403;
- $406 = (($405) + 245760)|0;
- $407 = $406 >>> 16;
- $408 = $407 & 2;
- $409 = $404 | $408;
- $410 = (14 - ($409))|0;
- $411 = $405 << $408;
- $412 = $411 >>> 15;
- $413 = (($410) + ($412))|0;
- $414 = $413 << 1;
- $415 = (($413) + 7)|0;
- $416 = $$4327$lcssa$i >>> $415;
- $417 = $416 & 1;
- $418 = $417 | $414;
- $$0338$i = $418;
- }
- }
- $419 = (1488 + ($$0338$i<<2)|0);
- $420 = ((($319)) + 28|0);
- HEAP32[$420>>2] = $$0338$i;
- $421 = ((($319)) + 16|0);
- $422 = ((($421)) + 4|0);
- HEAP32[$422>>2] = 0;
- HEAP32[$421>>2] = 0;
- $423 = 1 << $$0338$i;
- $424 = $425 & $423;
- $426 = ($424|0)==(0);
- if ($426) {
- $427 = $425 | $423;
- HEAP32[(1188)>>2] = $427;
- HEAP32[$419>>2] = $319;
- $428 = ((($319)) + 24|0);
- HEAP32[$428>>2] = $419;
- $429 = ((($319)) + 12|0);
- HEAP32[$429>>2] = $319;
- $430 = ((($319)) + 8|0);
- HEAP32[$430>>2] = $319;
- break;
- }
- $431 = HEAP32[$419>>2]|0;
- $432 = ((($431)) + 4|0);
- $433 = HEAP32[$432>>2]|0;
- $434 = $433 & -8;
- $435 = ($434|0)==($$4327$lcssa$i|0);
- L145: do {
- if ($435) {
- $$0321$lcssa$i = $431;
- } else {
- $436 = ($$0338$i|0)==(31);
- $437 = $$0338$i >>> 1;
- $438 = (25 - ($437))|0;
- $439 = $436 ? 0 : $438;
- $440 = $$4327$lcssa$i << $439;
- $$032012$i = $440;$$032111$i = $431;
- while(1) {
- $447 = $$032012$i >>> 31;
- $448 = (((($$032111$i)) + 16|0) + ($447<<2)|0);
- $443 = HEAP32[$448>>2]|0;
- $449 = ($443|0)==(0|0);
- if ($449) {
- break;
- }
- $441 = $$032012$i << 1;
- $442 = ((($443)) + 4|0);
- $444 = HEAP32[$442>>2]|0;
- $445 = $444 & -8;
- $446 = ($445|0)==($$4327$lcssa$i|0);
- if ($446) {
- $$0321$lcssa$i = $443;
- break L145;
- } else {
- $$032012$i = $441;$$032111$i = $443;
- }
- }
- HEAP32[$448>>2] = $319;
- $450 = ((($319)) + 24|0);
- HEAP32[$450>>2] = $$032111$i;
- $451 = ((($319)) + 12|0);
- HEAP32[$451>>2] = $319;
- $452 = ((($319)) + 8|0);
- HEAP32[$452>>2] = $319;
- break L128;
- }
- } while(0);
- $453 = ((($$0321$lcssa$i)) + 8|0);
- $454 = HEAP32[$453>>2]|0;
- $455 = ((($454)) + 12|0);
- HEAP32[$455>>2] = $319;
- HEAP32[$453>>2] = $319;
- $456 = ((($319)) + 8|0);
- HEAP32[$456>>2] = $454;
- $457 = ((($319)) + 12|0);
- HEAP32[$457>>2] = $$0321$lcssa$i;
- $458 = ((($319)) + 24|0);
- HEAP32[$458>>2] = 0;
- }
- } while(0);
- $459 = ((($$4$lcssa$i)) + 8|0);
- $$0 = $459;
- STACKTOP = sp;return ($$0|0);
- } else {
- $$0192 = $219;
- }
- } else {
- $$0192 = $219;
- }
- }
- }
- }
+ function _load_3($0) {
+ $0 = $0 | 0;
+ var $1 = 0,
+ $10 = 0,
+ $11 = 0,
+ $12 = 0,
+ $13 = 0,
+ $14 = 0,
+ $15 = 0,
+ $16 = 0,
+ $17 = 0,
+ $18 = 0,
+ $19 = 0,
+ $2 = 0,
+ $20 = 0,
+ $21 = 0,
+ $22 = 0,
+ $23 = 0,
+ $24 = 0,
+ $25 = 0,
+ $26 = 0,
+ $27 = 0;
+ var $28 = 0,
+ $29 = 0,
+ $3 = 0,
+ $30 = 0,
+ $31 = 0,
+ $32 = 0,
+ $33 = 0,
+ $34 = 0,
+ $35 = 0,
+ $36 = 0,
+ $37 = 0,
+ $38 = 0,
+ $39 = 0,
+ $4 = 0,
+ $40 = 0,
+ $41 = 0,
+ $42 = 0,
+ $43 = 0,
+ $44 = 0,
+ $45 = 0;
+ var $46 = 0,
+ $47 = 0,
+ $48 = 0,
+ $49 = 0,
+ $5 = 0,
+ $50 = 0,
+ $51 = 0,
+ $6 = 0,
+ $7 = 0,
+ $8 = 0,
+ $9 = 0,
+ label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ STACKTOP = (STACKTOP + 16) | 0;
+ if ((STACKTOP | 0) >= (STACK_MAX | 0)) abortStackOverflow(16 | 0);
+ $2 = sp;
+ $1 = $0;
+ $3 = $1;
+ $4 = HEAP8[$3 >> 0] | 0;
+ $5 = $4 & 255;
+ $6 = $2;
+ $7 = $6;
+ HEAP32[$7 >> 2] = $5;
+ $8 = ($6 + 4) | 0;
+ $9 = $8;
+ HEAP32[$9 >> 2] = 0;
+ $10 = $1;
+ $11 = ($10 + 1) | 0;
+ $12 = HEAP8[$11 >> 0] | 0;
+ $13 = $12 & 255;
+ $14 = _bitshift64Shl($13 | 0, 0, 8) | 0;
+ $15 = tempRet0;
+ $16 = $2;
+ $17 = $16;
+ $18 = HEAP32[$17 >> 2] | 0;
+ $19 = ($16 + 4) | 0;
+ $20 = $19;
+ $21 = HEAP32[$20 >> 2] | 0;
+ $22 = $18 | $14;
+ $23 = $21 | $15;
+ $24 = $2;
+ $25 = $24;
+ HEAP32[$25 >> 2] = $22;
+ $26 = ($24 + 4) | 0;
+ $27 = $26;
+ HEAP32[$27 >> 2] = $23;
+ $28 = $1;
+ $29 = ($28 + 2) | 0;
+ $30 = HEAP8[$29 >> 0] | 0;
+ $31 = $30 & 255;
+ $32 = _bitshift64Shl($31 | 0, 0, 16) | 0;
+ $33 = tempRet0;
+ $34 = $2;
+ $35 = $34;
+ $36 = HEAP32[$35 >> 2] | 0;
+ $37 = ($34 + 4) | 0;
+ $38 = $37;
+ $39 = HEAP32[$38 >> 2] | 0;
+ $40 = $36 | $32;
+ $41 = $39 | $33;
+ $42 = $2;
+ $43 = $42;
+ HEAP32[$43 >> 2] = $40;
+ $44 = ($42 + 4) | 0;
+ $45 = $44;
+ HEAP32[$45 >> 2] = $41;
+ $46 = $2;
+ $47 = $46;
+ $48 = HEAP32[$47 >> 2] | 0;
+ $49 = ($46 + 4) | 0;
+ $50 = $49;
+ $51 = HEAP32[$50 >> 2] | 0;
+ tempRet0 = $51;
+ STACKTOP = sp;
+ return $48 | 0;
}
- } while(0);
- $460 = HEAP32[(1192)>>2]|0;
- $461 = ($460>>>0)<($$0192>>>0);
- if (!($461)) {
- $462 = (($460) - ($$0192))|0;
- $463 = HEAP32[(1204)>>2]|0;
- $464 = ($462>>>0)>(15);
- if ($464) {
- $465 = (($463) + ($$0192)|0);
- HEAP32[(1204)>>2] = $465;
- HEAP32[(1192)>>2] = $462;
- $466 = $462 | 1;
- $467 = ((($465)) + 4|0);
- HEAP32[$467>>2] = $466;
- $468 = (($463) + ($460)|0);
- HEAP32[$468>>2] = $462;
- $469 = $$0192 | 3;
- $470 = ((($463)) + 4|0);
- HEAP32[$470>>2] = $469;
- } else {
- HEAP32[(1192)>>2] = 0;
- HEAP32[(1204)>>2] = 0;
- $471 = $460 | 3;
- $472 = ((($463)) + 4|0);
- HEAP32[$472>>2] = $471;
- $473 = (($463) + ($460)|0);
- $474 = ((($473)) + 4|0);
- $475 = HEAP32[$474>>2]|0;
- $476 = $475 | 1;
- HEAP32[$474>>2] = $476;
+ function _load_4($0) {
+ $0 = $0 | 0;
+ var $1 = 0,
+ $10 = 0,
+ $11 = 0,
+ $12 = 0,
+ $13 = 0,
+ $14 = 0,
+ $15 = 0,
+ $16 = 0,
+ $17 = 0,
+ $18 = 0,
+ $19 = 0,
+ $2 = 0,
+ $20 = 0,
+ $21 = 0,
+ $22 = 0,
+ $23 = 0,
+ $24 = 0,
+ $25 = 0,
+ $26 = 0,
+ $27 = 0;
+ var $28 = 0,
+ $29 = 0,
+ $3 = 0,
+ $30 = 0,
+ $31 = 0,
+ $32 = 0,
+ $33 = 0,
+ $34 = 0,
+ $35 = 0,
+ $36 = 0,
+ $37 = 0,
+ $38 = 0,
+ $39 = 0,
+ $4 = 0,
+ $40 = 0,
+ $41 = 0,
+ $42 = 0,
+ $43 = 0,
+ $44 = 0,
+ $45 = 0;
+ var $46 = 0,
+ $47 = 0,
+ $48 = 0,
+ $49 = 0,
+ $5 = 0,
+ $50 = 0,
+ $51 = 0,
+ $52 = 0,
+ $53 = 0,
+ $54 = 0,
+ $55 = 0,
+ $56 = 0,
+ $57 = 0,
+ $58 = 0,
+ $59 = 0,
+ $6 = 0,
+ $60 = 0,
+ $61 = 0,
+ $62 = 0,
+ $63 = 0;
+ var $64 = 0,
+ $65 = 0,
+ $66 = 0,
+ $67 = 0,
+ $68 = 0,
+ $69 = 0,
+ $7 = 0,
+ $8 = 0,
+ $9 = 0,
+ label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ STACKTOP = (STACKTOP + 16) | 0;
+ if ((STACKTOP | 0) >= (STACK_MAX | 0)) abortStackOverflow(16 | 0);
+ $2 = sp;
+ $1 = $0;
+ $3 = $1;
+ $4 = HEAP8[$3 >> 0] | 0;
+ $5 = $4 & 255;
+ $6 = $2;
+ $7 = $6;
+ HEAP32[$7 >> 2] = $5;
+ $8 = ($6 + 4) | 0;
+ $9 = $8;
+ HEAP32[$9 >> 2] = 0;
+ $10 = $1;
+ $11 = ($10 + 1) | 0;
+ $12 = HEAP8[$11 >> 0] | 0;
+ $13 = $12 & 255;
+ $14 = _bitshift64Shl($13 | 0, 0, 8) | 0;
+ $15 = tempRet0;
+ $16 = $2;
+ $17 = $16;
+ $18 = HEAP32[$17 >> 2] | 0;
+ $19 = ($16 + 4) | 0;
+ $20 = $19;
+ $21 = HEAP32[$20 >> 2] | 0;
+ $22 = $18 | $14;
+ $23 = $21 | $15;
+ $24 = $2;
+ $25 = $24;
+ HEAP32[$25 >> 2] = $22;
+ $26 = ($24 + 4) | 0;
+ $27 = $26;
+ HEAP32[$27 >> 2] = $23;
+ $28 = $1;
+ $29 = ($28 + 2) | 0;
+ $30 = HEAP8[$29 >> 0] | 0;
+ $31 = $30 & 255;
+ $32 = _bitshift64Shl($31 | 0, 0, 16) | 0;
+ $33 = tempRet0;
+ $34 = $2;
+ $35 = $34;
+ $36 = HEAP32[$35 >> 2] | 0;
+ $37 = ($34 + 4) | 0;
+ $38 = $37;
+ $39 = HEAP32[$38 >> 2] | 0;
+ $40 = $36 | $32;
+ $41 = $39 | $33;
+ $42 = $2;
+ $43 = $42;
+ HEAP32[$43 >> 2] = $40;
+ $44 = ($42 + 4) | 0;
+ $45 = $44;
+ HEAP32[$45 >> 2] = $41;
+ $46 = $1;
+ $47 = ($46 + 3) | 0;
+ $48 = HEAP8[$47 >> 0] | 0;
+ $49 = $48 & 255;
+ $50 = _bitshift64Shl($49 | 0, 0, 24) | 0;
+ $51 = tempRet0;
+ $52 = $2;
+ $53 = $52;
+ $54 = HEAP32[$53 >> 2] | 0;
+ $55 = ($52 + 4) | 0;
+ $56 = $55;
+ $57 = HEAP32[$56 >> 2] | 0;
+ $58 = $54 | $50;
+ $59 = $57 | $51;
+ $60 = $2;
+ $61 = $60;
+ HEAP32[$61 >> 2] = $58;
+ $62 = ($60 + 4) | 0;
+ $63 = $62;
+ HEAP32[$63 >> 2] = $59;
+ $64 = $2;
+ $65 = $64;
+ $66 = HEAP32[$65 >> 2] | 0;
+ $67 = ($64 + 4) | 0;
+ $68 = $67;
+ $69 = HEAP32[$68 >> 2] | 0;
+ tempRet0 = $69;
+ STACKTOP = sp;
+ return $66 | 0;
}
- $477 = ((($463)) + 8|0);
- $$0 = $477;
- STACKTOP = sp;return ($$0|0);
- }
- $478 = HEAP32[(1196)>>2]|0;
- $479 = ($478>>>0)>($$0192>>>0);
- if ($479) {
- $480 = (($478) - ($$0192))|0;
- HEAP32[(1196)>>2] = $480;
- $481 = HEAP32[(1208)>>2]|0;
- $482 = (($481) + ($$0192)|0);
- HEAP32[(1208)>>2] = $482;
- $483 = $480 | 1;
- $484 = ((($482)) + 4|0);
- HEAP32[$484>>2] = $483;
- $485 = $$0192 | 3;
- $486 = ((($481)) + 4|0);
- HEAP32[$486>>2] = $485;
- $487 = ((($481)) + 8|0);
- $$0 = $487;
- STACKTOP = sp;return ($$0|0);
- }
- $488 = HEAP32[414]|0;
- $489 = ($488|0)==(0);
- if ($489) {
- HEAP32[(1664)>>2] = 4096;
- HEAP32[(1660)>>2] = 4096;
- HEAP32[(1668)>>2] = -1;
- HEAP32[(1672)>>2] = -1;
- HEAP32[(1676)>>2] = 0;
- HEAP32[(1628)>>2] = 0;
- $490 = $1;
- $491 = $490 & -16;
- $492 = $491 ^ 1431655768;
- HEAP32[414] = $492;
- $496 = 4096;
- } else {
- $$pre$i195 = HEAP32[(1664)>>2]|0;
- $496 = $$pre$i195;
- }
- $493 = (($$0192) + 48)|0;
- $494 = (($$0192) + 47)|0;
- $495 = (($496) + ($494))|0;
- $497 = (0 - ($496))|0;
- $498 = $495 & $497;
- $499 = ($498>>>0)>($$0192>>>0);
- if (!($499)) {
- $$0 = 0;
- STACKTOP = sp;return ($$0|0);
- }
- $500 = HEAP32[(1624)>>2]|0;
- $501 = ($500|0)==(0);
- if (!($501)) {
- $502 = HEAP32[(1616)>>2]|0;
- $503 = (($502) + ($498))|0;
- $504 = ($503>>>0)<=($502>>>0);
- $505 = ($503>>>0)>($500>>>0);
- $or$cond1$i = $504 | $505;
- if ($or$cond1$i) {
- $$0 = 0;
- STACKTOP = sp;return ($$0|0);
- }
- }
- $506 = HEAP32[(1628)>>2]|0;
- $507 = $506 & 4;
- $508 = ($507|0)==(0);
- L178: do {
- if ($508) {
- $509 = HEAP32[(1208)>>2]|0;
- $510 = ($509|0)==(0|0);
- L180: do {
- if ($510) {
- label = 128;
- } else {
- $$0$i20$i = (1632);
- while(1) {
- $511 = HEAP32[$$0$i20$i>>2]|0;
- $512 = ($511>>>0)>($509>>>0);
- if (!($512)) {
- $513 = ((($$0$i20$i)) + 4|0);
- $514 = HEAP32[$513>>2]|0;
- $515 = (($511) + ($514)|0);
- $516 = ($515>>>0)>($509>>>0);
- if ($516) {
- break;
- }
- }
- $517 = ((($$0$i20$i)) + 8|0);
- $518 = HEAP32[$517>>2]|0;
- $519 = ($518|0)==(0|0);
- if ($519) {
- label = 128;
- break L180;
- } else {
- $$0$i20$i = $518;
- }
- }
- $542 = (($495) - ($478))|0;
- $543 = $542 & $497;
- $544 = ($543>>>0)<(2147483647);
- if ($544) {
- $545 = ((($$0$i20$i)) + 4|0);
- $546 = (_sbrk(($543|0))|0);
- $547 = HEAP32[$$0$i20$i>>2]|0;
- $548 = HEAP32[$545>>2]|0;
- $549 = (($547) + ($548)|0);
- $550 = ($546|0)==($549|0);
- if ($550) {
- $551 = ($546|0)==((-1)|0);
- if ($551) {
- $$2234243136$i = $543;
- } else {
- $$723947$i = $543;$$748$i = $546;
- label = 145;
- break L178;
- }
- } else {
- $$2247$ph$i = $546;$$2253$ph$i = $543;
- label = 136;
- }
- } else {
- $$2234243136$i = 0;
- }
- }
- } while(0);
- do {
- if ((label|0) == 128) {
- $520 = (_sbrk(0)|0);
- $521 = ($520|0)==((-1)|0);
- if ($521) {
- $$2234243136$i = 0;
- } else {
- $522 = $520;
- $523 = HEAP32[(1660)>>2]|0;
- $524 = (($523) + -1)|0;
- $525 = $524 & $522;
- $526 = ($525|0)==(0);
- $527 = (($524) + ($522))|0;
- $528 = (0 - ($523))|0;
- $529 = $527 & $528;
- $530 = (($529) - ($522))|0;
- $531 = $526 ? 0 : $530;
- $spec$select49$i = (($531) + ($498))|0;
- $532 = HEAP32[(1616)>>2]|0;
- $533 = (($spec$select49$i) + ($532))|0;
- $534 = ($spec$select49$i>>>0)>($$0192>>>0);
- $535 = ($spec$select49$i>>>0)<(2147483647);
- $or$cond$i = $534 & $535;
- if ($or$cond$i) {
- $536 = HEAP32[(1624)>>2]|0;
- $537 = ($536|0)==(0);
- if (!($537)) {
- $538 = ($533>>>0)<=($532>>>0);
- $539 = ($533>>>0)>($536>>>0);
- $or$cond2$i = $538 | $539;
- if ($or$cond2$i) {
- $$2234243136$i = 0;
- break;
- }
- }
- $540 = (_sbrk(($spec$select49$i|0))|0);
- $541 = ($540|0)==($520|0);
- if ($541) {
- $$723947$i = $spec$select49$i;$$748$i = $520;
- label = 145;
- break L178;
- } else {
- $$2247$ph$i = $540;$$2253$ph$i = $spec$select49$i;
- label = 136;
- }
- } else {
- $$2234243136$i = 0;
- }
- }
- }
- } while(0);
- do {
- if ((label|0) == 136) {
- $552 = (0 - ($$2253$ph$i))|0;
- $553 = ($$2247$ph$i|0)!=((-1)|0);
- $554 = ($$2253$ph$i>>>0)<(2147483647);
- $or$cond7$i = $554 & $553;
- $555 = ($493>>>0)>($$2253$ph$i>>>0);
- $or$cond6$i = $555 & $or$cond7$i;
- if (!($or$cond6$i)) {
- $565 = ($$2247$ph$i|0)==((-1)|0);
- if ($565) {
- $$2234243136$i = 0;
- break;
- } else {
- $$723947$i = $$2253$ph$i;$$748$i = $$2247$ph$i;
- label = 145;
- break L178;
- }
- }
- $556 = HEAP32[(1664)>>2]|0;
- $557 = (($494) - ($$2253$ph$i))|0;
- $558 = (($557) + ($556))|0;
- $559 = (0 - ($556))|0;
- $560 = $558 & $559;
- $561 = ($560>>>0)<(2147483647);
- if (!($561)) {
- $$723947$i = $$2253$ph$i;$$748$i = $$2247$ph$i;
- label = 145;
- break L178;
- }
- $562 = (_sbrk(($560|0))|0);
- $563 = ($562|0)==((-1)|0);
- if ($563) {
- (_sbrk(($552|0))|0);
- $$2234243136$i = 0;
- break;
- } else {
- $564 = (($560) + ($$2253$ph$i))|0;
- $$723947$i = $564;$$748$i = $$2247$ph$i;
- label = 145;
- break L178;
- }
- }
- } while(0);
- $566 = HEAP32[(1628)>>2]|0;
- $567 = $566 | 4;
- HEAP32[(1628)>>2] = $567;
- $$4236$i = $$2234243136$i;
- label = 143;
- } else {
- $$4236$i = 0;
- label = 143;
- }
- } while(0);
- if ((label|0) == 143) {
- $568 = ($498>>>0)<(2147483647);
- if ($568) {
- $569 = (_sbrk(($498|0))|0);
- $570 = (_sbrk(0)|0);
- $571 = ($569|0)!=((-1)|0);
- $572 = ($570|0)!=((-1)|0);
- $or$cond5$i = $571 & $572;
- $573 = ($569>>>0)<($570>>>0);
- $or$cond8$i = $573 & $or$cond5$i;
- $574 = $570;
- $575 = $569;
- $576 = (($574) - ($575))|0;
- $577 = (($$0192) + 40)|0;
- $578 = ($576>>>0)>($577>>>0);
- $spec$select9$i = $578 ? $576 : $$4236$i;
- $or$cond8$not$i = $or$cond8$i ^ 1;
- $579 = ($569|0)==((-1)|0);
- $not$$i = $578 ^ 1;
- $580 = $579 | $not$$i;
- $or$cond50$i = $580 | $or$cond8$not$i;
- if (!($or$cond50$i)) {
- $$723947$i = $spec$select9$i;$$748$i = $569;
- label = 145;
- }
- }
- }
- if ((label|0) == 145) {
- $581 = HEAP32[(1616)>>2]|0;
- $582 = (($581) + ($$723947$i))|0;
- HEAP32[(1616)>>2] = $582;
- $583 = HEAP32[(1620)>>2]|0;
- $584 = ($582>>>0)>($583>>>0);
- if ($584) {
- HEAP32[(1620)>>2] = $582;
- }
- $585 = HEAP32[(1208)>>2]|0;
- $586 = ($585|0)==(0|0);
- L215: do {
- if ($586) {
- $587 = HEAP32[(1200)>>2]|0;
- $588 = ($587|0)==(0|0);
- $589 = ($$748$i>>>0)<($587>>>0);
- $or$cond11$i = $588 | $589;
- if ($or$cond11$i) {
- HEAP32[(1200)>>2] = $$748$i;
- }
- HEAP32[(1632)>>2] = $$748$i;
- HEAP32[(1636)>>2] = $$723947$i;
- HEAP32[(1644)>>2] = 0;
- $590 = HEAP32[414]|0;
- HEAP32[(1220)>>2] = $590;
- HEAP32[(1216)>>2] = -1;
- HEAP32[(1236)>>2] = (1224);
- HEAP32[(1232)>>2] = (1224);
- HEAP32[(1244)>>2] = (1232);
- HEAP32[(1240)>>2] = (1232);
- HEAP32[(1252)>>2] = (1240);
- HEAP32[(1248)>>2] = (1240);
- HEAP32[(1260)>>2] = (1248);
- HEAP32[(1256)>>2] = (1248);
- HEAP32[(1268)>>2] = (1256);
- HEAP32[(1264)>>2] = (1256);
- HEAP32[(1276)>>2] = (1264);
- HEAP32[(1272)>>2] = (1264);
- HEAP32[(1284)>>2] = (1272);
- HEAP32[(1280)>>2] = (1272);
- HEAP32[(1292)>>2] = (1280);
- HEAP32[(1288)>>2] = (1280);
- HEAP32[(1300)>>2] = (1288);
- HEAP32[(1296)>>2] = (1288);
- HEAP32[(1308)>>2] = (1296);
- HEAP32[(1304)>>2] = (1296);
- HEAP32[(1316)>>2] = (1304);
- HEAP32[(1312)>>2] = (1304);
- HEAP32[(1324)>>2] = (1312);
- HEAP32[(1320)>>2] = (1312);
- HEAP32[(1332)>>2] = (1320);
- HEAP32[(1328)>>2] = (1320);
- HEAP32[(1340)>>2] = (1328);
- HEAP32[(1336)>>2] = (1328);
- HEAP32[(1348)>>2] = (1336);
- HEAP32[(1344)>>2] = (1336);
- HEAP32[(1356)>>2] = (1344);
- HEAP32[(1352)>>2] = (1344);
- HEAP32[(1364)>>2] = (1352);
- HEAP32[(1360)>>2] = (1352);
- HEAP32[(1372)>>2] = (1360);
- HEAP32[(1368)>>2] = (1360);
- HEAP32[(1380)>>2] = (1368);
- HEAP32[(1376)>>2] = (1368);
- HEAP32[(1388)>>2] = (1376);
- HEAP32[(1384)>>2] = (1376);
- HEAP32[(1396)>>2] = (1384);
- HEAP32[(1392)>>2] = (1384);
- HEAP32[(1404)>>2] = (1392);
- HEAP32[(1400)>>2] = (1392);
- HEAP32[(1412)>>2] = (1400);
- HEAP32[(1408)>>2] = (1400);
- HEAP32[(1420)>>2] = (1408);
- HEAP32[(1416)>>2] = (1408);
- HEAP32[(1428)>>2] = (1416);
- HEAP32[(1424)>>2] = (1416);
- HEAP32[(1436)>>2] = (1424);
- HEAP32[(1432)>>2] = (1424);
- HEAP32[(1444)>>2] = (1432);
- HEAP32[(1440)>>2] = (1432);
- HEAP32[(1452)>>2] = (1440);
- HEAP32[(1448)>>2] = (1440);
- HEAP32[(1460)>>2] = (1448);
- HEAP32[(1456)>>2] = (1448);
- HEAP32[(1468)>>2] = (1456);
- HEAP32[(1464)>>2] = (1456);
- HEAP32[(1476)>>2] = (1464);
- HEAP32[(1472)>>2] = (1464);
- HEAP32[(1484)>>2] = (1472);
- HEAP32[(1480)>>2] = (1472);
- $591 = (($$723947$i) + -40)|0;
- $592 = ((($$748$i)) + 8|0);
- $593 = $592;
- $594 = $593 & 7;
- $595 = ($594|0)==(0);
- $596 = (0 - ($593))|0;
- $597 = $596 & 7;
- $598 = $595 ? 0 : $597;
- $599 = (($$748$i) + ($598)|0);
- $600 = (($591) - ($598))|0;
- HEAP32[(1208)>>2] = $599;
- HEAP32[(1196)>>2] = $600;
- $601 = $600 | 1;
- $602 = ((($599)) + 4|0);
- HEAP32[$602>>2] = $601;
- $603 = (($$748$i) + ($591)|0);
- $604 = ((($603)) + 4|0);
- HEAP32[$604>>2] = 40;
- $605 = HEAP32[(1672)>>2]|0;
- HEAP32[(1212)>>2] = $605;
- } else {
- $$024372$i = (1632);
- while(1) {
- $606 = HEAP32[$$024372$i>>2]|0;
- $607 = ((($$024372$i)) + 4|0);
- $608 = HEAP32[$607>>2]|0;
- $609 = (($606) + ($608)|0);
- $610 = ($$748$i|0)==($609|0);
- if ($610) {
- label = 154;
- break;
- }
- $611 = ((($$024372$i)) + 8|0);
- $612 = HEAP32[$611>>2]|0;
- $613 = ($612|0)==(0|0);
- if ($613) {
- break;
- } else {
- $$024372$i = $612;
- }
- }
- if ((label|0) == 154) {
- $614 = ((($$024372$i)) + 4|0);
- $615 = ((($$024372$i)) + 12|0);
- $616 = HEAP32[$615>>2]|0;
- $617 = $616 & 8;
- $618 = ($617|0)==(0);
- if ($618) {
- $619 = ($606>>>0)<=($585>>>0);
- $620 = ($$748$i>>>0)>($585>>>0);
- $or$cond51$i = $620 & $619;
- if ($or$cond51$i) {
- $621 = (($608) + ($$723947$i))|0;
- HEAP32[$614>>2] = $621;
- $622 = HEAP32[(1196)>>2]|0;
- $623 = (($622) + ($$723947$i))|0;
- $624 = ((($585)) + 8|0);
- $625 = $624;
- $626 = $625 & 7;
- $627 = ($626|0)==(0);
- $628 = (0 - ($625))|0;
- $629 = $628 & 7;
- $630 = $627 ? 0 : $629;
- $631 = (($585) + ($630)|0);
- $632 = (($623) - ($630))|0;
- HEAP32[(1208)>>2] = $631;
- HEAP32[(1196)>>2] = $632;
- $633 = $632 | 1;
- $634 = ((($631)) + 4|0);
- HEAP32[$634>>2] = $633;
- $635 = (($585) + ($623)|0);
- $636 = ((($635)) + 4|0);
- HEAP32[$636>>2] = 40;
- $637 = HEAP32[(1672)>>2]|0;
- HEAP32[(1212)>>2] = $637;
- break;
- }
- }
- }
- $638 = HEAP32[(1200)>>2]|0;
- $639 = ($$748$i>>>0)<($638>>>0);
- if ($639) {
- HEAP32[(1200)>>2] = $$748$i;
- }
- $640 = (($$748$i) + ($$723947$i)|0);
- $$124471$i = (1632);
- while(1) {
- $641 = HEAP32[$$124471$i>>2]|0;
- $642 = ($641|0)==($640|0);
- if ($642) {
- label = 162;
- break;
- }
- $643 = ((($$124471$i)) + 8|0);
- $644 = HEAP32[$643>>2]|0;
- $645 = ($644|0)==(0|0);
- if ($645) {
- break;
- } else {
- $$124471$i = $644;
- }
- }
- if ((label|0) == 162) {
- $646 = ((($$124471$i)) + 12|0);
- $647 = HEAP32[$646>>2]|0;
- $648 = $647 & 8;
- $649 = ($648|0)==(0);
- if ($649) {
- HEAP32[$$124471$i>>2] = $$748$i;
- $650 = ((($$124471$i)) + 4|0);
- $651 = HEAP32[$650>>2]|0;
- $652 = (($651) + ($$723947$i))|0;
- HEAP32[$650>>2] = $652;
- $653 = ((($$748$i)) + 8|0);
- $654 = $653;
- $655 = $654 & 7;
- $656 = ($655|0)==(0);
- $657 = (0 - ($654))|0;
- $658 = $657 & 7;
- $659 = $656 ? 0 : $658;
- $660 = (($$748$i) + ($659)|0);
- $661 = ((($640)) + 8|0);
- $662 = $661;
- $663 = $662 & 7;
- $664 = ($663|0)==(0);
- $665 = (0 - ($662))|0;
- $666 = $665 & 7;
- $667 = $664 ? 0 : $666;
- $668 = (($640) + ($667)|0);
- $669 = $668;
- $670 = $660;
- $671 = (($669) - ($670))|0;
- $672 = (($660) + ($$0192)|0);
- $673 = (($671) - ($$0192))|0;
- $674 = $$0192 | 3;
- $675 = ((($660)) + 4|0);
- HEAP32[$675>>2] = $674;
- $676 = ($585|0)==($668|0);
- L238: do {
- if ($676) {
- $677 = HEAP32[(1196)>>2]|0;
- $678 = (($677) + ($673))|0;
- HEAP32[(1196)>>2] = $678;
- HEAP32[(1208)>>2] = $672;
- $679 = $678 | 1;
- $680 = ((($672)) + 4|0);
- HEAP32[$680>>2] = $679;
- } else {
- $681 = HEAP32[(1204)>>2]|0;
- $682 = ($681|0)==($668|0);
- if ($682) {
- $683 = HEAP32[(1192)>>2]|0;
- $684 = (($683) + ($673))|0;
- HEAP32[(1192)>>2] = $684;
- HEAP32[(1204)>>2] = $672;
- $685 = $684 | 1;
- $686 = ((($672)) + 4|0);
- HEAP32[$686>>2] = $685;
- $687 = (($672) + ($684)|0);
- HEAP32[$687>>2] = $684;
- break;
- }
- $688 = ((($668)) + 4|0);
- $689 = HEAP32[$688>>2]|0;
- $690 = $689 & 3;
- $691 = ($690|0)==(1);
- if ($691) {
- $692 = $689 & -8;
- $693 = $689 >>> 3;
- $694 = ($689>>>0)<(256);
- L246: do {
- if ($694) {
- $695 = ((($668)) + 8|0);
- $696 = HEAP32[$695>>2]|0;
- $697 = ((($668)) + 12|0);
- $698 = HEAP32[$697>>2]|0;
- $699 = ($698|0)==($696|0);
- if ($699) {
- $700 = 1 << $693;
- $701 = $700 ^ -1;
- $702 = HEAP32[296]|0;
- $703 = $702 & $701;
- HEAP32[296] = $703;
- break;
- } else {
- $704 = ((($696)) + 12|0);
- HEAP32[$704>>2] = $698;
- $705 = ((($698)) + 8|0);
- HEAP32[$705>>2] = $696;
- break;
- }
- } else {
- $706 = ((($668)) + 24|0);
- $707 = HEAP32[$706>>2]|0;
- $708 = ((($668)) + 12|0);
- $709 = HEAP32[$708>>2]|0;
- $710 = ($709|0)==($668|0);
- do {
- if ($710) {
- $715 = ((($668)) + 16|0);
- $716 = ((($715)) + 4|0);
- $717 = HEAP32[$716>>2]|0;
- $718 = ($717|0)==(0|0);
- if ($718) {
- $719 = HEAP32[$715>>2]|0;
- $720 = ($719|0)==(0|0);
- if ($720) {
- $$3$i$i = 0;
- break;
- } else {
- $$1263$i$i$ph = $719;$$1265$i$i$ph = $715;
- }
- } else {
- $$1263$i$i$ph = $717;$$1265$i$i$ph = $716;
- }
- $$1263$i$i = $$1263$i$i$ph;$$1265$i$i = $$1265$i$i$ph;
- while(1) {
- $721 = ((($$1263$i$i)) + 20|0);
- $722 = HEAP32[$721>>2]|0;
- $723 = ($722|0)==(0|0);
- if ($723) {
- $724 = ((($$1263$i$i)) + 16|0);
- $725 = HEAP32[$724>>2]|0;
- $726 = ($725|0)==(0|0);
- if ($726) {
- break;
- } else {
- $$1263$i$i$be = $725;$$1265$i$i$be = $724;
- }
- } else {
- $$1263$i$i$be = $722;$$1265$i$i$be = $721;
- }
- $$1263$i$i = $$1263$i$i$be;$$1265$i$i = $$1265$i$i$be;
- }
- HEAP32[$$1265$i$i>>2] = 0;
- $$3$i$i = $$1263$i$i;
- } else {
- $711 = ((($668)) + 8|0);
- $712 = HEAP32[$711>>2]|0;
- $713 = ((($712)) + 12|0);
- HEAP32[$713>>2] = $709;
- $714 = ((($709)) + 8|0);
- HEAP32[$714>>2] = $712;
- $$3$i$i = $709;
- }
- } while(0);
- $727 = ($707|0)==(0|0);
- if ($727) {
- break;
- }
- $728 = ((($668)) + 28|0);
- $729 = HEAP32[$728>>2]|0;
- $730 = (1488 + ($729<<2)|0);
- $731 = HEAP32[$730>>2]|0;
- $732 = ($731|0)==($668|0);
- do {
- if ($732) {
- HEAP32[$730>>2] = $$3$i$i;
- $cond$i$i = ($$3$i$i|0)==(0|0);
- if (!($cond$i$i)) {
- break;
- }
- $733 = 1 << $729;
- $734 = $733 ^ -1;
- $735 = HEAP32[(1188)>>2]|0;
- $736 = $735 & $734;
- HEAP32[(1188)>>2] = $736;
- break L246;
- } else {
- $737 = ((($707)) + 16|0);
- $738 = HEAP32[$737>>2]|0;
- $739 = ($738|0)==($668|0);
- $740 = ((($707)) + 20|0);
- $$sink321 = $739 ? $737 : $740;
- HEAP32[$$sink321>>2] = $$3$i$i;
- $741 = ($$3$i$i|0)==(0|0);
- if ($741) {
- break L246;
- }
- }
- } while(0);
- $742 = ((($$3$i$i)) + 24|0);
- HEAP32[$742>>2] = $707;
- $743 = ((($668)) + 16|0);
- $744 = HEAP32[$743>>2]|0;
- $745 = ($744|0)==(0|0);
- if (!($745)) {
- $746 = ((($$3$i$i)) + 16|0);
- HEAP32[$746>>2] = $744;
- $747 = ((($744)) + 24|0);
- HEAP32[$747>>2] = $$3$i$i;
- }
- $748 = ((($743)) + 4|0);
- $749 = HEAP32[$748>>2]|0;
- $750 = ($749|0)==(0|0);
- if ($750) {
- break;
- }
- $751 = ((($$3$i$i)) + 20|0);
- HEAP32[$751>>2] = $749;
- $752 = ((($749)) + 24|0);
- HEAP32[$752>>2] = $$3$i$i;
- }
- } while(0);
- $753 = (($668) + ($692)|0);
- $754 = (($692) + ($673))|0;
- $$0$i$i = $753;$$0259$i$i = $754;
- } else {
- $$0$i$i = $668;$$0259$i$i = $673;
- }
- $755 = ((($$0$i$i)) + 4|0);
- $756 = HEAP32[$755>>2]|0;
- $757 = $756 & -2;
- HEAP32[$755>>2] = $757;
- $758 = $$0259$i$i | 1;
- $759 = ((($672)) + 4|0);
- HEAP32[$759>>2] = $758;
- $760 = (($672) + ($$0259$i$i)|0);
- HEAP32[$760>>2] = $$0259$i$i;
- $761 = $$0259$i$i >>> 3;
- $762 = ($$0259$i$i>>>0)<(256);
- if ($762) {
- $763 = $761 << 1;
- $764 = (1224 + ($763<<2)|0);
- $765 = HEAP32[296]|0;
- $766 = 1 << $761;
- $767 = $765 & $766;
- $768 = ($767|0)==(0);
- if ($768) {
- $769 = $765 | $766;
- HEAP32[296] = $769;
- $$pre$i16$i = ((($764)) + 8|0);
- $$0267$i$i = $764;$$pre$phi$i17$iZ2D = $$pre$i16$i;
- } else {
- $770 = ((($764)) + 8|0);
- $771 = HEAP32[$770>>2]|0;
- $$0267$i$i = $771;$$pre$phi$i17$iZ2D = $770;
- }
- HEAP32[$$pre$phi$i17$iZ2D>>2] = $672;
- $772 = ((($$0267$i$i)) + 12|0);
- HEAP32[$772>>2] = $672;
- $773 = ((($672)) + 8|0);
- HEAP32[$773>>2] = $$0267$i$i;
- $774 = ((($672)) + 12|0);
- HEAP32[$774>>2] = $764;
- break;
- }
- $775 = $$0259$i$i >>> 8;
- $776 = ($775|0)==(0);
- do {
- if ($776) {
- $$0268$i$i = 0;
- } else {
- $777 = ($$0259$i$i>>>0)>(16777215);
- if ($777) {
- $$0268$i$i = 31;
- break;
- }
- $778 = (($775) + 1048320)|0;
- $779 = $778 >>> 16;
- $780 = $779 & 8;
- $781 = $775 << $780;
- $782 = (($781) + 520192)|0;
- $783 = $782 >>> 16;
- $784 = $783 & 4;
- $785 = $784 | $780;
- $786 = $781 << $784;
- $787 = (($786) + 245760)|0;
- $788 = $787 >>> 16;
- $789 = $788 & 2;
- $790 = $785 | $789;
- $791 = (14 - ($790))|0;
- $792 = $786 << $789;
- $793 = $792 >>> 15;
- $794 = (($791) + ($793))|0;
- $795 = $794 << 1;
- $796 = (($794) + 7)|0;
- $797 = $$0259$i$i >>> $796;
- $798 = $797 & 1;
- $799 = $798 | $795;
- $$0268$i$i = $799;
- }
- } while(0);
- $800 = (1488 + ($$0268$i$i<<2)|0);
- $801 = ((($672)) + 28|0);
- HEAP32[$801>>2] = $$0268$i$i;
- $802 = ((($672)) + 16|0);
- $803 = ((($802)) + 4|0);
- HEAP32[$803>>2] = 0;
- HEAP32[$802>>2] = 0;
- $804 = HEAP32[(1188)>>2]|0;
- $805 = 1 << $$0268$i$i;
- $806 = $804 & $805;
- $807 = ($806|0)==(0);
- if ($807) {
- $808 = $804 | $805;
- HEAP32[(1188)>>2] = $808;
- HEAP32[$800>>2] = $672;
- $809 = ((($672)) + 24|0);
- HEAP32[$809>>2] = $800;
- $810 = ((($672)) + 12|0);
- HEAP32[$810>>2] = $672;
- $811 = ((($672)) + 8|0);
- HEAP32[$811>>2] = $672;
- break;
- }
- $812 = HEAP32[$800>>2]|0;
- $813 = ((($812)) + 4|0);
- $814 = HEAP32[$813>>2]|0;
- $815 = $814 & -8;
- $816 = ($815|0)==($$0259$i$i|0);
- L291: do {
- if ($816) {
- $$0261$lcssa$i$i = $812;
- } else {
- $817 = ($$0268$i$i|0)==(31);
- $818 = $$0268$i$i >>> 1;
- $819 = (25 - ($818))|0;
- $820 = $817 ? 0 : $819;
- $821 = $$0259$i$i << $820;
- $$02604$i$i = $821;$$02613$i$i = $812;
- while(1) {
- $828 = $$02604$i$i >>> 31;
- $829 = (((($$02613$i$i)) + 16|0) + ($828<<2)|0);
- $824 = HEAP32[$829>>2]|0;
- $830 = ($824|0)==(0|0);
- if ($830) {
- break;
- }
- $822 = $$02604$i$i << 1;
- $823 = ((($824)) + 4|0);
- $825 = HEAP32[$823>>2]|0;
- $826 = $825 & -8;
- $827 = ($826|0)==($$0259$i$i|0);
- if ($827) {
- $$0261$lcssa$i$i = $824;
- break L291;
- } else {
- $$02604$i$i = $822;$$02613$i$i = $824;
- }
- }
- HEAP32[$829>>2] = $672;
- $831 = ((($672)) + 24|0);
- HEAP32[$831>>2] = $$02613$i$i;
- $832 = ((($672)) + 12|0);
- HEAP32[$832>>2] = $672;
- $833 = ((($672)) + 8|0);
- HEAP32[$833>>2] = $672;
- break L238;
- }
- } while(0);
- $834 = ((($$0261$lcssa$i$i)) + 8|0);
- $835 = HEAP32[$834>>2]|0;
- $836 = ((($835)) + 12|0);
- HEAP32[$836>>2] = $672;
- HEAP32[$834>>2] = $672;
- $837 = ((($672)) + 8|0);
- HEAP32[$837>>2] = $835;
- $838 = ((($672)) + 12|0);
- HEAP32[$838>>2] = $$0261$lcssa$i$i;
- $839 = ((($672)) + 24|0);
- HEAP32[$839>>2] = 0;
- }
- } while(0);
- $968 = ((($660)) + 8|0);
- $$0 = $968;
- STACKTOP = sp;return ($$0|0);
- }
- }
- $$0$i$i$i = (1632);
- while(1) {
- $840 = HEAP32[$$0$i$i$i>>2]|0;
- $841 = ($840>>>0)>($585>>>0);
- if (!($841)) {
- $842 = ((($$0$i$i$i)) + 4|0);
- $843 = HEAP32[$842>>2]|0;
- $844 = (($840) + ($843)|0);
- $845 = ($844>>>0)>($585>>>0);
- if ($845) {
- break;
- }
- }
- $846 = ((($$0$i$i$i)) + 8|0);
- $847 = HEAP32[$846>>2]|0;
- $$0$i$i$i = $847;
- }
- $848 = ((($844)) + -47|0);
- $849 = ((($848)) + 8|0);
+ function _sc_reduce32($0) {
+ $0 = $0 | 0;
+ var $1 = 0,
+ $10 = 0,
+ $100 = 0,
+ $1000 = 0,
+ $1001 = 0,
+ $1002 = 0,
+ $1003 = 0,
+ $1004 = 0,
+ $1005 = 0,
+ $1006 = 0,
+ $1007 = 0,
+ $1008 = 0,
+ $1009 = 0,
+ $101 = 0,
+ $1010 = 0,
+ $1011 = 0,
+ $1012 = 0,
+ $1013 = 0,
+ $1014 = 0,
+ $1015 = 0;
+ var $1016 = 0,
+ $1017 = 0,
+ $1018 = 0,
+ $1019 = 0,
+ $102 = 0,
+ $1020 = 0,
+ $1021 = 0,
+ $1022 = 0,
+ $1023 = 0,
+ $1024 = 0,
+ $1025 = 0,
+ $1026 = 0,
+ $1027 = 0,
+ $1028 = 0,
+ $1029 = 0,
+ $103 = 0,
+ $1030 = 0,
+ $1031 = 0,
+ $1032 = 0,
+ $1033 = 0;
+ var $1034 = 0,
+ $1035 = 0,
+ $1036 = 0,
+ $1037 = 0,
+ $1038 = 0,
+ $1039 = 0,
+ $104 = 0,
+ $1040 = 0,
+ $1041 = 0,
+ $1042 = 0,
+ $1043 = 0,
+ $1044 = 0,
+ $1045 = 0,
+ $1046 = 0,
+ $1047 = 0,
+ $1048 = 0,
+ $1049 = 0,
+ $105 = 0,
+ $1050 = 0,
+ $1051 = 0;
+ var $1052 = 0,
+ $1053 = 0,
+ $1054 = 0,
+ $1055 = 0,
+ $1056 = 0,
+ $1057 = 0,
+ $1058 = 0,
+ $1059 = 0,
+ $106 = 0,
+ $1060 = 0,
+ $1061 = 0,
+ $1062 = 0,
+ $1063 = 0,
+ $1064 = 0,
+ $1065 = 0,
+ $1066 = 0,
+ $1067 = 0,
+ $1068 = 0,
+ $1069 = 0,
+ $107 = 0;
+ var $1070 = 0,
+ $1071 = 0,
+ $1072 = 0,
+ $1073 = 0,
+ $1074 = 0,
+ $1075 = 0,
+ $1076 = 0,
+ $1077 = 0,
+ $1078 = 0,
+ $1079 = 0,
+ $108 = 0,
+ $1080 = 0,
+ $1081 = 0,
+ $1082 = 0,
+ $1083 = 0,
+ $1084 = 0,
+ $1085 = 0,
+ $1086 = 0,
+ $1087 = 0,
+ $1088 = 0;
+ var $1089 = 0,
+ $109 = 0,
+ $1090 = 0,
+ $1091 = 0,
+ $1092 = 0,
+ $1093 = 0,
+ $1094 = 0,
+ $1095 = 0,
+ $1096 = 0,
+ $1097 = 0,
+ $1098 = 0,
+ $1099 = 0,
+ $11 = 0,
+ $110 = 0,
+ $1100 = 0,
+ $1101 = 0,
+ $1102 = 0,
+ $1103 = 0,
+ $1104 = 0,
+ $1105 = 0;
+ var $1106 = 0,
+ $1107 = 0,
+ $1108 = 0,
+ $1109 = 0,
+ $111 = 0,
+ $1110 = 0,
+ $1111 = 0,
+ $1112 = 0,
+ $1113 = 0,
+ $1114 = 0,
+ $1115 = 0,
+ $1116 = 0,
+ $1117 = 0,
+ $1118 = 0,
+ $1119 = 0,
+ $112 = 0,
+ $1120 = 0,
+ $1121 = 0,
+ $1122 = 0,
+ $1123 = 0;
+ var $1124 = 0,
+ $1125 = 0,
+ $1126 = 0,
+ $1127 = 0,
+ $1128 = 0,
+ $1129 = 0,
+ $113 = 0,
+ $1130 = 0,
+ $1131 = 0,
+ $1132 = 0,
+ $1133 = 0,
+ $1134 = 0,
+ $1135 = 0,
+ $1136 = 0,
+ $1137 = 0,
+ $1138 = 0,
+ $1139 = 0,
+ $114 = 0,
+ $1140 = 0,
+ $1141 = 0;
+ var $1142 = 0,
+ $1143 = 0,
+ $1144 = 0,
+ $1145 = 0,
+ $1146 = 0,
+ $1147 = 0,
+ $1148 = 0,
+ $1149 = 0,
+ $115 = 0,
+ $1150 = 0,
+ $1151 = 0,
+ $1152 = 0,
+ $1153 = 0,
+ $1154 = 0,
+ $1155 = 0,
+ $1156 = 0,
+ $1157 = 0,
+ $1158 = 0,
+ $1159 = 0,
+ $116 = 0;
+ var $1160 = 0,
+ $1161 = 0,
+ $1162 = 0,
+ $1163 = 0,
+ $1164 = 0,
+ $1165 = 0,
+ $1166 = 0,
+ $1167 = 0,
+ $1168 = 0,
+ $1169 = 0,
+ $117 = 0,
+ $1170 = 0,
+ $1171 = 0,
+ $1172 = 0,
+ $1173 = 0,
+ $1174 = 0,
+ $1175 = 0,
+ $1176 = 0,
+ $1177 = 0,
+ $1178 = 0;
+ var $1179 = 0,
+ $118 = 0,
+ $1180 = 0,
+ $1181 = 0,
+ $1182 = 0,
+ $1183 = 0,
+ $1184 = 0,
+ $1185 = 0,
+ $1186 = 0,
+ $1187 = 0,
+ $1188 = 0,
+ $1189 = 0,
+ $119 = 0,
+ $1190 = 0,
+ $1191 = 0,
+ $1192 = 0,
+ $1193 = 0,
+ $1194 = 0,
+ $1195 = 0,
+ $1196 = 0;
+ var $1197 = 0,
+ $1198 = 0,
+ $1199 = 0,
+ $12 = 0,
+ $120 = 0,
+ $1200 = 0,
+ $1201 = 0,
+ $1202 = 0,
+ $1203 = 0,
+ $1204 = 0,
+ $1205 = 0,
+ $1206 = 0,
+ $1207 = 0,
+ $1208 = 0,
+ $1209 = 0,
+ $121 = 0,
+ $1210 = 0,
+ $1211 = 0,
+ $1212 = 0,
+ $1213 = 0;
+ var $1214 = 0,
+ $1215 = 0,
+ $1216 = 0,
+ $1217 = 0,
+ $1218 = 0,
+ $1219 = 0,
+ $122 = 0,
+ $1220 = 0,
+ $1221 = 0,
+ $1222 = 0,
+ $1223 = 0,
+ $1224 = 0,
+ $1225 = 0,
+ $1226 = 0,
+ $1227 = 0,
+ $1228 = 0,
+ $1229 = 0,
+ $123 = 0,
+ $1230 = 0,
+ $1231 = 0;
+ var $1232 = 0,
+ $1233 = 0,
+ $1234 = 0,
+ $1235 = 0,
+ $1236 = 0,
+ $1237 = 0,
+ $1238 = 0,
+ $1239 = 0,
+ $124 = 0,
+ $1240 = 0,
+ $1241 = 0,
+ $1242 = 0,
+ $1243 = 0,
+ $1244 = 0,
+ $1245 = 0,
+ $1246 = 0,
+ $1247 = 0,
+ $1248 = 0,
+ $1249 = 0,
+ $125 = 0;
+ var $1250 = 0,
+ $1251 = 0,
+ $1252 = 0,
+ $1253 = 0,
+ $1254 = 0,
+ $1255 = 0,
+ $1256 = 0,
+ $1257 = 0,
+ $1258 = 0,
+ $1259 = 0,
+ $126 = 0,
+ $1260 = 0,
+ $1261 = 0,
+ $1262 = 0,
+ $1263 = 0,
+ $1264 = 0,
+ $1265 = 0,
+ $1266 = 0,
+ $1267 = 0,
+ $1268 = 0;
+ var $1269 = 0,
+ $127 = 0,
+ $1270 = 0,
+ $1271 = 0,
+ $1272 = 0,
+ $1273 = 0,
+ $1274 = 0,
+ $1275 = 0,
+ $1276 = 0,
+ $1277 = 0,
+ $1278 = 0,
+ $1279 = 0,
+ $128 = 0,
+ $1280 = 0,
+ $1281 = 0,
+ $1282 = 0,
+ $1283 = 0,
+ $1284 = 0,
+ $1285 = 0,
+ $1286 = 0;
+ var $1287 = 0,
+ $1288 = 0,
+ $1289 = 0,
+ $129 = 0,
+ $1290 = 0,
+ $1291 = 0,
+ $1292 = 0,
+ $1293 = 0,
+ $1294 = 0,
+ $1295 = 0,
+ $1296 = 0,
+ $1297 = 0,
+ $1298 = 0,
+ $1299 = 0,
+ $13 = 0,
+ $130 = 0,
+ $1300 = 0,
+ $1301 = 0,
+ $1302 = 0,
+ $1303 = 0;
+ var $1304 = 0,
+ $1305 = 0,
+ $1306 = 0,
+ $1307 = 0,
+ $1308 = 0,
+ $1309 = 0,
+ $131 = 0,
+ $1310 = 0,
+ $1311 = 0,
+ $1312 = 0,
+ $1313 = 0,
+ $1314 = 0,
+ $1315 = 0,
+ $1316 = 0,
+ $1317 = 0,
+ $1318 = 0,
+ $1319 = 0,
+ $132 = 0,
+ $1320 = 0,
+ $1321 = 0;
+ var $1322 = 0,
+ $1323 = 0,
+ $1324 = 0,
+ $1325 = 0,
+ $1326 = 0,
+ $1327 = 0,
+ $1328 = 0,
+ $1329 = 0,
+ $133 = 0,
+ $1330 = 0,
+ $1331 = 0,
+ $1332 = 0,
+ $1333 = 0,
+ $1334 = 0,
+ $1335 = 0,
+ $1336 = 0,
+ $1337 = 0,
+ $1338 = 0,
+ $1339 = 0,
+ $134 = 0;
+ var $1340 = 0,
+ $1341 = 0,
+ $1342 = 0,
+ $1343 = 0,
+ $1344 = 0,
+ $1345 = 0,
+ $1346 = 0,
+ $1347 = 0,
+ $1348 = 0,
+ $1349 = 0,
+ $135 = 0,
+ $1350 = 0,
+ $1351 = 0,
+ $1352 = 0,
+ $1353 = 0,
+ $1354 = 0,
+ $1355 = 0,
+ $1356 = 0,
+ $1357 = 0,
+ $1358 = 0;
+ var $1359 = 0,
+ $136 = 0,
+ $1360 = 0,
+ $1361 = 0,
+ $1362 = 0,
+ $1363 = 0,
+ $1364 = 0,
+ $1365 = 0,
+ $1366 = 0,
+ $1367 = 0,
+ $1368 = 0,
+ $1369 = 0,
+ $137 = 0,
+ $1370 = 0,
+ $1371 = 0,
+ $1372 = 0,
+ $1373 = 0,
+ $1374 = 0,
+ $1375 = 0,
+ $1376 = 0;
+ var $1377 = 0,
+ $1378 = 0,
+ $1379 = 0,
+ $138 = 0,
+ $1380 = 0,
+ $1381 = 0,
+ $1382 = 0,
+ $1383 = 0,
+ $1384 = 0,
+ $1385 = 0,
+ $1386 = 0,
+ $1387 = 0,
+ $1388 = 0,
+ $1389 = 0,
+ $139 = 0,
+ $1390 = 0,
+ $1391 = 0,
+ $1392 = 0,
+ $1393 = 0,
+ $1394 = 0;
+ var $1395 = 0,
+ $1396 = 0,
+ $1397 = 0,
+ $1398 = 0,
+ $1399 = 0,
+ $14 = 0,
+ $140 = 0,
+ $1400 = 0,
+ $1401 = 0,
+ $1402 = 0,
+ $1403 = 0,
+ $1404 = 0,
+ $1405 = 0,
+ $1406 = 0,
+ $1407 = 0,
+ $1408 = 0,
+ $1409 = 0,
+ $141 = 0,
+ $1410 = 0,
+ $1411 = 0;
+ var $1412 = 0,
+ $1413 = 0,
+ $1414 = 0,
+ $1415 = 0,
+ $1416 = 0,
+ $1417 = 0,
+ $1418 = 0,
+ $1419 = 0,
+ $142 = 0,
+ $1420 = 0,
+ $1421 = 0,
+ $1422 = 0,
+ $1423 = 0,
+ $1424 = 0,
+ $1425 = 0,
+ $1426 = 0,
+ $1427 = 0,
+ $1428 = 0,
+ $1429 = 0,
+ $143 = 0;
+ var $1430 = 0,
+ $1431 = 0,
+ $1432 = 0,
+ $1433 = 0,
+ $1434 = 0,
+ $1435 = 0,
+ $1436 = 0,
+ $1437 = 0,
+ $1438 = 0,
+ $1439 = 0,
+ $144 = 0,
+ $1440 = 0,
+ $1441 = 0,
+ $1442 = 0,
+ $1443 = 0,
+ $1444 = 0,
+ $1445 = 0,
+ $1446 = 0,
+ $1447 = 0,
+ $1448 = 0;
+ var $1449 = 0,
+ $145 = 0,
+ $1450 = 0,
+ $1451 = 0,
+ $1452 = 0,
+ $1453 = 0,
+ $1454 = 0,
+ $1455 = 0,
+ $1456 = 0,
+ $1457 = 0,
+ $1458 = 0,
+ $1459 = 0,
+ $146 = 0,
+ $1460 = 0,
+ $1461 = 0,
+ $1462 = 0,
+ $1463 = 0,
+ $1464 = 0,
+ $1465 = 0,
+ $1466 = 0;
+ var $1467 = 0,
+ $1468 = 0,
+ $1469 = 0,
+ $147 = 0,
+ $1470 = 0,
+ $1471 = 0,
+ $1472 = 0,
+ $1473 = 0,
+ $1474 = 0,
+ $1475 = 0,
+ $1476 = 0,
+ $1477 = 0,
+ $1478 = 0,
+ $1479 = 0,
+ $148 = 0,
+ $1480 = 0,
+ $1481 = 0,
+ $1482 = 0,
+ $1483 = 0,
+ $1484 = 0;
+ var $1485 = 0,
+ $1486 = 0,
+ $1487 = 0,
+ $1488 = 0,
+ $1489 = 0,
+ $149 = 0,
+ $1490 = 0,
+ $1491 = 0,
+ $1492 = 0,
+ $1493 = 0,
+ $1494 = 0,
+ $1495 = 0,
+ $1496 = 0,
+ $1497 = 0,
+ $1498 = 0,
+ $1499 = 0,
+ $15 = 0,
+ $150 = 0,
+ $1500 = 0,
+ $1501 = 0;
+ var $1502 = 0,
+ $1503 = 0,
+ $1504 = 0,
+ $1505 = 0,
+ $1506 = 0,
+ $1507 = 0,
+ $1508 = 0,
+ $1509 = 0,
+ $151 = 0,
+ $1510 = 0,
+ $1511 = 0,
+ $1512 = 0,
+ $1513 = 0,
+ $1514 = 0,
+ $1515 = 0,
+ $1516 = 0,
+ $1517 = 0,
+ $1518 = 0,
+ $1519 = 0,
+ $152 = 0;
+ var $1520 = 0,
+ $1521 = 0,
+ $1522 = 0,
+ $1523 = 0,
+ $1524 = 0,
+ $1525 = 0,
+ $1526 = 0,
+ $1527 = 0,
+ $1528 = 0,
+ $1529 = 0,
+ $153 = 0,
+ $1530 = 0,
+ $1531 = 0,
+ $1532 = 0,
+ $1533 = 0,
+ $1534 = 0,
+ $1535 = 0,
+ $1536 = 0,
+ $1537 = 0,
+ $1538 = 0;
+ var $1539 = 0,
+ $154 = 0,
+ $1540 = 0,
+ $1541 = 0,
+ $1542 = 0,
+ $1543 = 0,
+ $1544 = 0,
+ $1545 = 0,
+ $1546 = 0,
+ $1547 = 0,
+ $1548 = 0,
+ $1549 = 0,
+ $155 = 0,
+ $1550 = 0,
+ $1551 = 0,
+ $1552 = 0,
+ $1553 = 0,
+ $1554 = 0,
+ $1555 = 0,
+ $1556 = 0;
+ var $1557 = 0,
+ $1558 = 0,
+ $1559 = 0,
+ $156 = 0,
+ $1560 = 0,
+ $1561 = 0,
+ $1562 = 0,
+ $1563 = 0,
+ $1564 = 0,
+ $1565 = 0,
+ $1566 = 0,
+ $1567 = 0,
+ $1568 = 0,
+ $1569 = 0,
+ $157 = 0,
+ $1570 = 0,
+ $1571 = 0,
+ $1572 = 0,
+ $1573 = 0,
+ $1574 = 0;
+ var $1575 = 0,
+ $1576 = 0,
+ $1577 = 0,
+ $1578 = 0,
+ $1579 = 0,
+ $158 = 0,
+ $1580 = 0,
+ $1581 = 0,
+ $1582 = 0,
+ $1583 = 0,
+ $1584 = 0,
+ $1585 = 0,
+ $1586 = 0,
+ $1587 = 0,
+ $1588 = 0,
+ $1589 = 0,
+ $159 = 0,
+ $1590 = 0,
+ $1591 = 0,
+ $1592 = 0;
+ var $1593 = 0,
+ $1594 = 0,
+ $1595 = 0,
+ $1596 = 0,
+ $1597 = 0,
+ $1598 = 0,
+ $1599 = 0,
+ $16 = 0,
+ $160 = 0,
+ $1600 = 0,
+ $1601 = 0,
+ $1602 = 0,
+ $1603 = 0,
+ $1604 = 0,
+ $1605 = 0,
+ $1606 = 0,
+ $1607 = 0,
+ $1608 = 0,
+ $1609 = 0,
+ $161 = 0;
+ var $1610 = 0,
+ $1611 = 0,
+ $1612 = 0,
+ $1613 = 0,
+ $1614 = 0,
+ $1615 = 0,
+ $1616 = 0,
+ $1617 = 0,
+ $1618 = 0,
+ $1619 = 0,
+ $162 = 0,
+ $1620 = 0,
+ $1621 = 0,
+ $1622 = 0,
+ $1623 = 0,
+ $1624 = 0,
+ $1625 = 0,
+ $1626 = 0,
+ $1627 = 0,
+ $1628 = 0;
+ var $1629 = 0,
+ $163 = 0,
+ $1630 = 0,
+ $1631 = 0,
+ $1632 = 0,
+ $1633 = 0,
+ $1634 = 0,
+ $1635 = 0,
+ $1636 = 0,
+ $1637 = 0,
+ $1638 = 0,
+ $1639 = 0,
+ $164 = 0,
+ $1640 = 0,
+ $1641 = 0,
+ $1642 = 0,
+ $1643 = 0,
+ $1644 = 0,
+ $1645 = 0,
+ $1646 = 0;
+ var $1647 = 0,
+ $1648 = 0,
+ $1649 = 0,
+ $165 = 0,
+ $1650 = 0,
+ $1651 = 0,
+ $1652 = 0,
+ $1653 = 0,
+ $1654 = 0,
+ $1655 = 0,
+ $1656 = 0,
+ $1657 = 0,
+ $1658 = 0,
+ $1659 = 0,
+ $166 = 0,
+ $1660 = 0,
+ $1661 = 0,
+ $1662 = 0,
+ $1663 = 0,
+ $1664 = 0;
+ var $1665 = 0,
+ $1666 = 0,
+ $1667 = 0,
+ $1668 = 0,
+ $1669 = 0,
+ $167 = 0,
+ $1670 = 0,
+ $1671 = 0,
+ $1672 = 0,
+ $1673 = 0,
+ $1674 = 0,
+ $1675 = 0,
+ $1676 = 0,
+ $1677 = 0,
+ $1678 = 0,
+ $1679 = 0,
+ $168 = 0,
+ $1680 = 0,
+ $1681 = 0,
+ $1682 = 0;
+ var $1683 = 0,
+ $1684 = 0,
+ $1685 = 0,
+ $1686 = 0,
+ $1687 = 0,
+ $1688 = 0,
+ $1689 = 0,
+ $169 = 0,
+ $1690 = 0,
+ $1691 = 0,
+ $1692 = 0,
+ $1693 = 0,
+ $1694 = 0,
+ $1695 = 0,
+ $1696 = 0,
+ $1697 = 0,
+ $1698 = 0,
+ $1699 = 0,
+ $17 = 0,
+ $170 = 0;
+ var $1700 = 0,
+ $1701 = 0,
+ $1702 = 0,
+ $1703 = 0,
+ $1704 = 0,
+ $1705 = 0,
+ $1706 = 0,
+ $1707 = 0,
+ $1708 = 0,
+ $1709 = 0,
+ $171 = 0,
+ $1710 = 0,
+ $1711 = 0,
+ $1712 = 0,
+ $1713 = 0,
+ $1714 = 0,
+ $1715 = 0,
+ $1716 = 0,
+ $1717 = 0,
+ $1718 = 0;
+ var $1719 = 0,
+ $172 = 0,
+ $1720 = 0,
+ $1721 = 0,
+ $1722 = 0,
+ $1723 = 0,
+ $1724 = 0,
+ $1725 = 0,
+ $1726 = 0,
+ $1727 = 0,
+ $1728 = 0,
+ $1729 = 0,
+ $173 = 0,
+ $1730 = 0,
+ $1731 = 0,
+ $1732 = 0,
+ $1733 = 0,
+ $1734 = 0,
+ $1735 = 0,
+ $1736 = 0;
+ var $1737 = 0,
+ $1738 = 0,
+ $1739 = 0,
+ $174 = 0,
+ $1740 = 0,
+ $1741 = 0,
+ $1742 = 0,
+ $1743 = 0,
+ $1744 = 0,
+ $1745 = 0,
+ $1746 = 0,
+ $1747 = 0,
+ $1748 = 0,
+ $1749 = 0,
+ $175 = 0,
+ $1750 = 0,
+ $1751 = 0,
+ $1752 = 0,
+ $1753 = 0,
+ $1754 = 0;
+ var $1755 = 0,
+ $1756 = 0,
+ $1757 = 0,
+ $1758 = 0,
+ $1759 = 0,
+ $176 = 0,
+ $1760 = 0,
+ $1761 = 0,
+ $1762 = 0,
+ $1763 = 0,
+ $1764 = 0,
+ $1765 = 0,
+ $1766 = 0,
+ $1767 = 0,
+ $1768 = 0,
+ $1769 = 0,
+ $177 = 0,
+ $1770 = 0,
+ $1771 = 0,
+ $1772 = 0;
+ var $1773 = 0,
+ $1774 = 0,
+ $1775 = 0,
+ $1776 = 0,
+ $1777 = 0,
+ $1778 = 0,
+ $1779 = 0,
+ $178 = 0,
+ $1780 = 0,
+ $1781 = 0,
+ $1782 = 0,
+ $1783 = 0,
+ $1784 = 0,
+ $1785 = 0,
+ $1786 = 0,
+ $1787 = 0,
+ $1788 = 0,
+ $1789 = 0,
+ $179 = 0,
+ $1790 = 0;
+ var $1791 = 0,
+ $1792 = 0,
+ $1793 = 0,
+ $1794 = 0,
+ $1795 = 0,
+ $1796 = 0,
+ $1797 = 0,
+ $1798 = 0,
+ $1799 = 0,
+ $18 = 0,
+ $180 = 0,
+ $1800 = 0,
+ $1801 = 0,
+ $1802 = 0,
+ $1803 = 0,
+ $1804 = 0,
+ $1805 = 0,
+ $1806 = 0,
+ $1807 = 0,
+ $1808 = 0;
+ var $1809 = 0,
+ $181 = 0,
+ $1810 = 0,
+ $1811 = 0,
+ $1812 = 0,
+ $1813 = 0,
+ $1814 = 0,
+ $1815 = 0,
+ $1816 = 0,
+ $1817 = 0,
+ $1818 = 0,
+ $1819 = 0,
+ $182 = 0,
+ $1820 = 0,
+ $1821 = 0,
+ $1822 = 0,
+ $1823 = 0,
+ $1824 = 0,
+ $1825 = 0,
+ $1826 = 0;
+ var $1827 = 0,
+ $1828 = 0,
+ $1829 = 0,
+ $183 = 0,
+ $1830 = 0,
+ $1831 = 0,
+ $1832 = 0,
+ $1833 = 0,
+ $1834 = 0,
+ $1835 = 0,
+ $1836 = 0,
+ $1837 = 0,
+ $1838 = 0,
+ $1839 = 0,
+ $184 = 0,
+ $1840 = 0,
+ $1841 = 0,
+ $1842 = 0,
+ $1843 = 0,
+ $1844 = 0;
+ var $1845 = 0,
+ $1846 = 0,
+ $1847 = 0,
+ $1848 = 0,
+ $1849 = 0,
+ $185 = 0,
+ $1850 = 0,
+ $1851 = 0,
+ $1852 = 0,
+ $1853 = 0,
+ $1854 = 0,
+ $1855 = 0,
+ $1856 = 0,
+ $1857 = 0,
+ $1858 = 0,
+ $1859 = 0,
+ $186 = 0,
+ $1860 = 0,
+ $1861 = 0,
+ $1862 = 0;
+ var $1863 = 0,
+ $1864 = 0,
+ $1865 = 0,
+ $1866 = 0,
+ $1867 = 0,
+ $1868 = 0,
+ $1869 = 0,
+ $187 = 0,
+ $1870 = 0,
+ $1871 = 0,
+ $1872 = 0,
+ $1873 = 0,
+ $1874 = 0,
+ $1875 = 0,
+ $1876 = 0,
+ $1877 = 0,
+ $1878 = 0,
+ $1879 = 0,
+ $188 = 0,
+ $1880 = 0;
+ var $1881 = 0,
+ $1882 = 0,
+ $1883 = 0,
+ $1884 = 0,
+ $1885 = 0,
+ $1886 = 0,
+ $1887 = 0,
+ $1888 = 0,
+ $1889 = 0,
+ $189 = 0,
+ $1890 = 0,
+ $1891 = 0,
+ $1892 = 0,
+ $1893 = 0,
+ $1894 = 0,
+ $1895 = 0,
+ $1896 = 0,
+ $1897 = 0,
+ $1898 = 0,
+ $1899 = 0;
+ var $19 = 0,
+ $190 = 0,
+ $1900 = 0,
+ $1901 = 0,
+ $1902 = 0,
+ $1903 = 0,
+ $1904 = 0,
+ $1905 = 0,
+ $1906 = 0,
+ $1907 = 0,
+ $1908 = 0,
+ $1909 = 0,
+ $191 = 0,
+ $1910 = 0,
+ $1911 = 0,
+ $1912 = 0,
+ $1913 = 0,
+ $1914 = 0,
+ $1915 = 0,
+ $1916 = 0;
+ var $1917 = 0,
+ $1918 = 0,
+ $1919 = 0,
+ $192 = 0,
+ $1920 = 0,
+ $1921 = 0,
+ $1922 = 0,
+ $1923 = 0,
+ $1924 = 0,
+ $1925 = 0,
+ $1926 = 0,
+ $1927 = 0,
+ $1928 = 0,
+ $1929 = 0,
+ $193 = 0,
+ $1930 = 0,
+ $1931 = 0,
+ $1932 = 0,
+ $1933 = 0,
+ $1934 = 0;
+ var $1935 = 0,
+ $1936 = 0,
+ $1937 = 0,
+ $1938 = 0,
+ $1939 = 0,
+ $194 = 0,
+ $1940 = 0,
+ $1941 = 0,
+ $1942 = 0,
+ $1943 = 0,
+ $1944 = 0,
+ $1945 = 0,
+ $1946 = 0,
+ $1947 = 0,
+ $1948 = 0,
+ $1949 = 0,
+ $195 = 0,
+ $1950 = 0,
+ $1951 = 0,
+ $1952 = 0;
+ var $1953 = 0,
+ $1954 = 0,
+ $1955 = 0,
+ $1956 = 0,
+ $1957 = 0,
+ $1958 = 0,
+ $1959 = 0,
+ $196 = 0,
+ $1960 = 0,
+ $1961 = 0,
+ $1962 = 0,
+ $1963 = 0,
+ $1964 = 0,
+ $1965 = 0,
+ $1966 = 0,
+ $1967 = 0,
+ $1968 = 0,
+ $1969 = 0,
+ $197 = 0,
+ $1970 = 0;
+ var $1971 = 0,
+ $1972 = 0,
+ $1973 = 0,
+ $1974 = 0,
+ $1975 = 0,
+ $1976 = 0,
+ $1977 = 0,
+ $1978 = 0,
+ $1979 = 0,
+ $198 = 0,
+ $1980 = 0,
+ $1981 = 0,
+ $1982 = 0,
+ $1983 = 0,
+ $1984 = 0,
+ $1985 = 0,
+ $1986 = 0,
+ $1987 = 0,
+ $1988 = 0,
+ $1989 = 0;
+ var $199 = 0,
+ $1990 = 0,
+ $1991 = 0,
+ $1992 = 0,
+ $1993 = 0,
+ $1994 = 0,
+ $1995 = 0,
+ $1996 = 0,
+ $1997 = 0,
+ $1998 = 0,
+ $1999 = 0,
+ $2 = 0,
+ $20 = 0,
+ $200 = 0,
+ $2000 = 0,
+ $2001 = 0,
+ $2002 = 0,
+ $2003 = 0,
+ $2004 = 0,
+ $2005 = 0;
+ var $2006 = 0,
+ $2007 = 0,
+ $2008 = 0,
+ $2009 = 0,
+ $201 = 0,
+ $2010 = 0,
+ $2011 = 0,
+ $2012 = 0,
+ $2013 = 0,
+ $2014 = 0,
+ $2015 = 0,
+ $2016 = 0,
+ $2017 = 0,
+ $2018 = 0,
+ $2019 = 0,
+ $202 = 0,
+ $2020 = 0,
+ $2021 = 0,
+ $2022 = 0,
+ $2023 = 0;
+ var $2024 = 0,
+ $2025 = 0,
+ $2026 = 0,
+ $2027 = 0,
+ $2028 = 0,
+ $2029 = 0,
+ $203 = 0,
+ $2030 = 0,
+ $2031 = 0,
+ $2032 = 0,
+ $2033 = 0,
+ $2034 = 0,
+ $2035 = 0,
+ $2036 = 0,
+ $2037 = 0,
+ $2038 = 0,
+ $2039 = 0,
+ $204 = 0,
+ $2040 = 0,
+ $2041 = 0;
+ var $2042 = 0,
+ $2043 = 0,
+ $2044 = 0,
+ $2045 = 0,
+ $2046 = 0,
+ $2047 = 0,
+ $2048 = 0,
+ $2049 = 0,
+ $205 = 0,
+ $2050 = 0,
+ $2051 = 0,
+ $2052 = 0,
+ $2053 = 0,
+ $2054 = 0,
+ $2055 = 0,
+ $2056 = 0,
+ $2057 = 0,
+ $2058 = 0,
+ $2059 = 0,
+ $206 = 0;
+ var $2060 = 0,
+ $2061 = 0,
+ $2062 = 0,
+ $2063 = 0,
+ $2064 = 0,
+ $2065 = 0,
+ $2066 = 0,
+ $2067 = 0,
+ $2068 = 0,
+ $2069 = 0,
+ $207 = 0,
+ $2070 = 0,
+ $2071 = 0,
+ $2072 = 0,
+ $2073 = 0,
+ $2074 = 0,
+ $2075 = 0,
+ $2076 = 0,
+ $2077 = 0,
+ $2078 = 0;
+ var $2079 = 0,
+ $208 = 0,
+ $2080 = 0,
+ $2081 = 0,
+ $2082 = 0,
+ $2083 = 0,
+ $2084 = 0,
+ $2085 = 0,
+ $2086 = 0,
+ $2087 = 0,
+ $2088 = 0,
+ $2089 = 0,
+ $209 = 0,
+ $2090 = 0,
+ $2091 = 0,
+ $2092 = 0,
+ $2093 = 0,
+ $2094 = 0,
+ $2095 = 0,
+ $2096 = 0;
+ var $2097 = 0,
+ $2098 = 0,
+ $2099 = 0,
+ $21 = 0,
+ $210 = 0,
+ $2100 = 0,
+ $2101 = 0,
+ $2102 = 0,
+ $2103 = 0,
+ $2104 = 0,
+ $2105 = 0,
+ $2106 = 0,
+ $2107 = 0,
+ $2108 = 0,
+ $2109 = 0,
+ $211 = 0,
+ $2110 = 0,
+ $2111 = 0,
+ $2112 = 0,
+ $2113 = 0;
+ var $2114 = 0,
+ $2115 = 0,
+ $2116 = 0,
+ $2117 = 0,
+ $2118 = 0,
+ $2119 = 0,
+ $212 = 0,
+ $2120 = 0,
+ $2121 = 0,
+ $2122 = 0,
+ $2123 = 0,
+ $2124 = 0,
+ $2125 = 0,
+ $2126 = 0,
+ $2127 = 0,
+ $2128 = 0,
+ $2129 = 0,
+ $213 = 0,
+ $2130 = 0,
+ $2131 = 0;
+ var $2132 = 0,
+ $2133 = 0,
+ $2134 = 0,
+ $2135 = 0,
+ $2136 = 0,
+ $2137 = 0,
+ $2138 = 0,
+ $2139 = 0,
+ $214 = 0,
+ $2140 = 0,
+ $2141 = 0,
+ $2142 = 0,
+ $2143 = 0,
+ $2144 = 0,
+ $2145 = 0,
+ $2146 = 0,
+ $2147 = 0,
+ $2148 = 0,
+ $2149 = 0,
+ $215 = 0;
+ var $2150 = 0,
+ $2151 = 0,
+ $2152 = 0,
+ $2153 = 0,
+ $2154 = 0,
+ $2155 = 0,
+ $2156 = 0,
+ $2157 = 0,
+ $2158 = 0,
+ $2159 = 0,
+ $216 = 0,
+ $2160 = 0,
+ $2161 = 0,
+ $2162 = 0,
+ $2163 = 0,
+ $2164 = 0,
+ $2165 = 0,
+ $2166 = 0,
+ $2167 = 0,
+ $2168 = 0;
+ var $2169 = 0,
+ $217 = 0,
+ $2170 = 0,
+ $2171 = 0,
+ $2172 = 0,
+ $2173 = 0,
+ $2174 = 0,
+ $2175 = 0,
+ $2176 = 0,
+ $2177 = 0,
+ $2178 = 0,
+ $2179 = 0,
+ $218 = 0,
+ $2180 = 0,
+ $2181 = 0,
+ $2182 = 0,
+ $2183 = 0,
+ $2184 = 0,
+ $2185 = 0,
+ $2186 = 0;
+ var $2187 = 0,
+ $2188 = 0,
+ $2189 = 0,
+ $219 = 0,
+ $2190 = 0,
+ $2191 = 0,
+ $2192 = 0,
+ $2193 = 0,
+ $2194 = 0,
+ $2195 = 0,
+ $2196 = 0,
+ $2197 = 0,
+ $2198 = 0,
+ $2199 = 0,
+ $22 = 0,
+ $220 = 0,
+ $2200 = 0,
+ $2201 = 0,
+ $2202 = 0,
+ $2203 = 0;
+ var $2204 = 0,
+ $2205 = 0,
+ $2206 = 0,
+ $2207 = 0,
+ $2208 = 0,
+ $2209 = 0,
+ $221 = 0,
+ $2210 = 0,
+ $2211 = 0,
+ $2212 = 0,
+ $2213 = 0,
+ $2214 = 0,
+ $2215 = 0,
+ $2216 = 0,
+ $2217 = 0,
+ $2218 = 0,
+ $2219 = 0,
+ $222 = 0,
+ $2220 = 0,
+ $2221 = 0;
+ var $2222 = 0,
+ $2223 = 0,
+ $2224 = 0,
+ $2225 = 0,
+ $2226 = 0,
+ $2227 = 0,
+ $2228 = 0,
+ $2229 = 0,
+ $223 = 0,
+ $2230 = 0,
+ $2231 = 0,
+ $2232 = 0,
+ $2233 = 0,
+ $2234 = 0,
+ $2235 = 0,
+ $2236 = 0,
+ $2237 = 0,
+ $2238 = 0,
+ $2239 = 0,
+ $224 = 0;
+ var $2240 = 0,
+ $2241 = 0,
+ $2242 = 0,
+ $2243 = 0,
+ $2244 = 0,
+ $2245 = 0,
+ $2246 = 0,
+ $2247 = 0,
+ $2248 = 0,
+ $2249 = 0,
+ $225 = 0,
+ $2250 = 0,
+ $2251 = 0,
+ $2252 = 0,
+ $2253 = 0,
+ $2254 = 0,
+ $2255 = 0,
+ $2256 = 0,
+ $2257 = 0,
+ $2258 = 0;
+ var $2259 = 0,
+ $226 = 0,
+ $2260 = 0,
+ $2261 = 0,
+ $2262 = 0,
+ $2263 = 0,
+ $2264 = 0,
+ $2265 = 0,
+ $2266 = 0,
+ $2267 = 0,
+ $2268 = 0,
+ $2269 = 0,
+ $227 = 0,
+ $2270 = 0,
+ $2271 = 0,
+ $2272 = 0,
+ $2273 = 0,
+ $2274 = 0,
+ $2275 = 0,
+ $2276 = 0;
+ var $2277 = 0,
+ $2278 = 0,
+ $2279 = 0,
+ $228 = 0,
+ $2280 = 0,
+ $2281 = 0,
+ $2282 = 0,
+ $2283 = 0,
+ $2284 = 0,
+ $2285 = 0,
+ $2286 = 0,
+ $2287 = 0,
+ $2288 = 0,
+ $2289 = 0,
+ $229 = 0,
+ $2290 = 0,
+ $2291 = 0,
+ $2292 = 0,
+ $2293 = 0,
+ $2294 = 0;
+ var $2295 = 0,
+ $2296 = 0,
+ $2297 = 0,
+ $2298 = 0,
+ $2299 = 0,
+ $23 = 0,
+ $230 = 0,
+ $2300 = 0,
+ $2301 = 0,
+ $2302 = 0,
+ $2303 = 0,
+ $2304 = 0,
+ $2305 = 0,
+ $2306 = 0,
+ $2307 = 0,
+ $2308 = 0,
+ $2309 = 0,
+ $231 = 0,
+ $2310 = 0,
+ $2311 = 0;
+ var $2312 = 0,
+ $2313 = 0,
+ $2314 = 0,
+ $2315 = 0,
+ $2316 = 0,
+ $2317 = 0,
+ $2318 = 0,
+ $2319 = 0,
+ $232 = 0,
+ $2320 = 0,
+ $2321 = 0,
+ $2322 = 0,
+ $2323 = 0,
+ $2324 = 0,
+ $2325 = 0,
+ $2326 = 0,
+ $2327 = 0,
+ $2328 = 0,
+ $2329 = 0,
+ $233 = 0;
+ var $2330 = 0,
+ $2331 = 0,
+ $2332 = 0,
+ $2333 = 0,
+ $2334 = 0,
+ $2335 = 0,
+ $2336 = 0,
+ $2337 = 0,
+ $2338 = 0,
+ $2339 = 0,
+ $234 = 0,
+ $2340 = 0,
+ $2341 = 0,
+ $2342 = 0,
+ $2343 = 0,
+ $2344 = 0,
+ $2345 = 0,
+ $2346 = 0,
+ $2347 = 0,
+ $2348 = 0;
+ var $2349 = 0,
+ $235 = 0,
+ $2350 = 0,
+ $2351 = 0,
+ $2352 = 0,
+ $2353 = 0,
+ $2354 = 0,
+ $2355 = 0,
+ $2356 = 0,
+ $2357 = 0,
+ $2358 = 0,
+ $2359 = 0,
+ $236 = 0,
+ $2360 = 0,
+ $2361 = 0,
+ $2362 = 0,
+ $2363 = 0,
+ $2364 = 0,
+ $2365 = 0,
+ $2366 = 0;
+ var $2367 = 0,
+ $2368 = 0,
+ $2369 = 0,
+ $237 = 0,
+ $2370 = 0,
+ $2371 = 0,
+ $2372 = 0,
+ $2373 = 0,
+ $2374 = 0,
+ $2375 = 0,
+ $2376 = 0,
+ $2377 = 0,
+ $2378 = 0,
+ $2379 = 0,
+ $238 = 0,
+ $2380 = 0,
+ $2381 = 0,
+ $2382 = 0,
+ $2383 = 0,
+ $2384 = 0;
+ var $2385 = 0,
+ $2386 = 0,
+ $2387 = 0,
+ $2388 = 0,
+ $2389 = 0,
+ $239 = 0,
+ $2390 = 0,
+ $2391 = 0,
+ $2392 = 0,
+ $2393 = 0,
+ $2394 = 0,
+ $2395 = 0,
+ $2396 = 0,
+ $2397 = 0,
+ $2398 = 0,
+ $2399 = 0,
+ $24 = 0,
+ $240 = 0,
+ $2400 = 0,
+ $2401 = 0;
+ var $2402 = 0,
+ $2403 = 0,
+ $2404 = 0,
+ $2405 = 0,
+ $2406 = 0,
+ $2407 = 0,
+ $2408 = 0,
+ $2409 = 0,
+ $241 = 0,
+ $2410 = 0,
+ $2411 = 0,
+ $2412 = 0,
+ $2413 = 0,
+ $2414 = 0,
+ $2415 = 0,
+ $2416 = 0,
+ $2417 = 0,
+ $2418 = 0,
+ $2419 = 0,
+ $242 = 0;
+ var $2420 = 0,
+ $2421 = 0,
+ $2422 = 0,
+ $2423 = 0,
+ $2424 = 0,
+ $2425 = 0,
+ $2426 = 0,
+ $2427 = 0,
+ $2428 = 0,
+ $2429 = 0,
+ $243 = 0,
+ $2430 = 0,
+ $2431 = 0,
+ $2432 = 0,
+ $2433 = 0,
+ $2434 = 0,
+ $2435 = 0,
+ $2436 = 0,
+ $2437 = 0,
+ $2438 = 0;
+ var $2439 = 0,
+ $244 = 0,
+ $2440 = 0,
+ $2441 = 0,
+ $2442 = 0,
+ $2443 = 0,
+ $2444 = 0,
+ $2445 = 0,
+ $2446 = 0,
+ $2447 = 0,
+ $2448 = 0,
+ $2449 = 0,
+ $245 = 0,
+ $2450 = 0,
+ $2451 = 0,
+ $2452 = 0,
+ $2453 = 0,
+ $2454 = 0,
+ $2455 = 0,
+ $2456 = 0;
+ var $2457 = 0,
+ $2458 = 0,
+ $2459 = 0,
+ $246 = 0,
+ $2460 = 0,
+ $2461 = 0,
+ $2462 = 0,
+ $2463 = 0,
+ $2464 = 0,
+ $2465 = 0,
+ $2466 = 0,
+ $2467 = 0,
+ $2468 = 0,
+ $2469 = 0,
+ $247 = 0,
+ $2470 = 0,
+ $2471 = 0,
+ $2472 = 0,
+ $2473 = 0,
+ $2474 = 0;
+ var $2475 = 0,
+ $2476 = 0,
+ $2477 = 0,
+ $2478 = 0,
+ $2479 = 0,
+ $248 = 0,
+ $2480 = 0,
+ $2481 = 0,
+ $2482 = 0,
+ $2483 = 0,
+ $2484 = 0,
+ $2485 = 0,
+ $2486 = 0,
+ $2487 = 0,
+ $2488 = 0,
+ $2489 = 0,
+ $249 = 0,
+ $2490 = 0,
+ $2491 = 0,
+ $2492 = 0;
+ var $2493 = 0,
+ $2494 = 0,
+ $2495 = 0,
+ $2496 = 0,
+ $2497 = 0,
+ $2498 = 0,
+ $2499 = 0,
+ $25 = 0,
+ $250 = 0,
+ $2500 = 0,
+ $2501 = 0,
+ $2502 = 0,
+ $2503 = 0,
+ $2504 = 0,
+ $2505 = 0,
+ $2506 = 0,
+ $2507 = 0,
+ $2508 = 0,
+ $2509 = 0,
+ $251 = 0;
+ var $2510 = 0,
+ $2511 = 0,
+ $2512 = 0,
+ $2513 = 0,
+ $2514 = 0,
+ $2515 = 0,
+ $2516 = 0,
+ $2517 = 0,
+ $2518 = 0,
+ $2519 = 0,
+ $252 = 0,
+ $2520 = 0,
+ $2521 = 0,
+ $2522 = 0,
+ $2523 = 0,
+ $2524 = 0,
+ $2525 = 0,
+ $2526 = 0,
+ $2527 = 0,
+ $2528 = 0;
+ var $2529 = 0,
+ $253 = 0,
+ $2530 = 0,
+ $2531 = 0,
+ $2532 = 0,
+ $2533 = 0,
+ $2534 = 0,
+ $2535 = 0,
+ $2536 = 0,
+ $2537 = 0,
+ $2538 = 0,
+ $2539 = 0,
+ $254 = 0,
+ $2540 = 0,
+ $2541 = 0,
+ $2542 = 0,
+ $2543 = 0,
+ $2544 = 0,
+ $2545 = 0,
+ $2546 = 0;
+ var $2547 = 0,
+ $2548 = 0,
+ $2549 = 0,
+ $255 = 0,
+ $2550 = 0,
+ $2551 = 0,
+ $2552 = 0,
+ $2553 = 0,
+ $2554 = 0,
+ $2555 = 0,
+ $2556 = 0,
+ $2557 = 0,
+ $2558 = 0,
+ $2559 = 0,
+ $256 = 0,
+ $2560 = 0,
+ $2561 = 0,
+ $2562 = 0,
+ $2563 = 0,
+ $2564 = 0;
+ var $2565 = 0,
+ $2566 = 0,
+ $2567 = 0,
+ $2568 = 0,
+ $2569 = 0,
+ $257 = 0,
+ $2570 = 0,
+ $2571 = 0,
+ $2572 = 0,
+ $2573 = 0,
+ $2574 = 0,
+ $2575 = 0,
+ $2576 = 0,
+ $2577 = 0,
+ $2578 = 0,
+ $2579 = 0,
+ $258 = 0,
+ $2580 = 0,
+ $2581 = 0,
+ $2582 = 0;
+ var $2583 = 0,
+ $2584 = 0,
+ $2585 = 0,
+ $2586 = 0,
+ $2587 = 0,
+ $2588 = 0,
+ $2589 = 0,
+ $259 = 0,
+ $2590 = 0,
+ $2591 = 0,
+ $2592 = 0,
+ $2593 = 0,
+ $2594 = 0,
+ $2595 = 0,
+ $2596 = 0,
+ $2597 = 0,
+ $2598 = 0,
+ $2599 = 0,
+ $26 = 0,
+ $260 = 0;
+ var $2600 = 0,
+ $2601 = 0,
+ $2602 = 0,
+ $2603 = 0,
+ $2604 = 0,
+ $2605 = 0,
+ $2606 = 0,
+ $2607 = 0,
+ $2608 = 0,
+ $2609 = 0,
+ $261 = 0,
+ $2610 = 0,
+ $2611 = 0,
+ $2612 = 0,
+ $2613 = 0,
+ $2614 = 0,
+ $2615 = 0,
+ $262 = 0,
+ $263 = 0,
+ $264 = 0;
+ var $265 = 0,
+ $266 = 0,
+ $267 = 0,
+ $268 = 0,
+ $269 = 0,
+ $27 = 0,
+ $270 = 0,
+ $271 = 0,
+ $272 = 0,
+ $273 = 0,
+ $274 = 0,
+ $275 = 0,
+ $276 = 0,
+ $277 = 0,
+ $278 = 0,
+ $279 = 0,
+ $28 = 0,
+ $280 = 0,
+ $281 = 0,
+ $282 = 0;
+ var $283 = 0,
+ $284 = 0,
+ $285 = 0,
+ $286 = 0,
+ $287 = 0,
+ $288 = 0,
+ $289 = 0,
+ $29 = 0,
+ $290 = 0,
+ $291 = 0,
+ $292 = 0,
+ $293 = 0,
+ $294 = 0,
+ $295 = 0,
+ $296 = 0,
+ $297 = 0,
+ $298 = 0,
+ $299 = 0,
+ $3 = 0,
+ $30 = 0;
+ var $300 = 0,
+ $301 = 0,
+ $302 = 0,
+ $303 = 0,
+ $304 = 0,
+ $305 = 0,
+ $306 = 0,
+ $307 = 0,
+ $308 = 0,
+ $309 = 0,
+ $31 = 0,
+ $310 = 0,
+ $311 = 0,
+ $312 = 0,
+ $313 = 0,
+ $314 = 0,
+ $315 = 0,
+ $316 = 0,
+ $317 = 0,
+ $318 = 0;
+ var $319 = 0,
+ $32 = 0,
+ $320 = 0,
+ $321 = 0,
+ $322 = 0,
+ $323 = 0,
+ $324 = 0,
+ $325 = 0,
+ $326 = 0,
+ $327 = 0,
+ $328 = 0,
+ $329 = 0,
+ $33 = 0,
+ $330 = 0,
+ $331 = 0,
+ $332 = 0,
+ $333 = 0,
+ $334 = 0,
+ $335 = 0,
+ $336 = 0;
+ var $337 = 0,
+ $338 = 0,
+ $339 = 0,
+ $34 = 0,
+ $340 = 0,
+ $341 = 0,
+ $342 = 0,
+ $343 = 0,
+ $344 = 0,
+ $345 = 0,
+ $346 = 0,
+ $347 = 0,
+ $348 = 0,
+ $349 = 0,
+ $35 = 0,
+ $350 = 0,
+ $351 = 0,
+ $352 = 0,
+ $353 = 0,
+ $354 = 0;
+ var $355 = 0,
+ $356 = 0,
+ $357 = 0,
+ $358 = 0,
+ $359 = 0,
+ $36 = 0,
+ $360 = 0,
+ $361 = 0,
+ $362 = 0,
+ $363 = 0,
+ $364 = 0,
+ $365 = 0,
+ $366 = 0,
+ $367 = 0,
+ $368 = 0,
+ $369 = 0,
+ $37 = 0,
+ $370 = 0,
+ $371 = 0,
+ $372 = 0;
+ var $373 = 0,
+ $374 = 0,
+ $375 = 0,
+ $376 = 0,
+ $377 = 0,
+ $378 = 0,
+ $379 = 0,
+ $38 = 0,
+ $380 = 0,
+ $381 = 0,
+ $382 = 0,
+ $383 = 0,
+ $384 = 0,
+ $385 = 0,
+ $386 = 0,
+ $387 = 0,
+ $388 = 0,
+ $389 = 0,
+ $39 = 0,
+ $390 = 0;
+ var $391 = 0,
+ $392 = 0,
+ $393 = 0,
+ $394 = 0,
+ $395 = 0,
+ $396 = 0,
+ $397 = 0,
+ $398 = 0,
+ $399 = 0,
+ $4 = 0,
+ $40 = 0,
+ $400 = 0,
+ $401 = 0,
+ $402 = 0,
+ $403 = 0,
+ $404 = 0,
+ $405 = 0,
+ $406 = 0,
+ $407 = 0,
+ $408 = 0;
+ var $409 = 0,
+ $41 = 0,
+ $410 = 0,
+ $411 = 0,
+ $412 = 0,
+ $413 = 0,
+ $414 = 0,
+ $415 = 0,
+ $416 = 0,
+ $417 = 0,
+ $418 = 0,
+ $419 = 0,
+ $42 = 0,
+ $420 = 0,
+ $421 = 0,
+ $422 = 0,
+ $423 = 0,
+ $424 = 0,
+ $425 = 0,
+ $426 = 0;
+ var $427 = 0,
+ $428 = 0,
+ $429 = 0,
+ $43 = 0,
+ $430 = 0,
+ $431 = 0,
+ $432 = 0,
+ $433 = 0,
+ $434 = 0,
+ $435 = 0,
+ $436 = 0,
+ $437 = 0,
+ $438 = 0,
+ $439 = 0,
+ $44 = 0,
+ $440 = 0,
+ $441 = 0,
+ $442 = 0,
+ $443 = 0,
+ $444 = 0;
+ var $445 = 0,
+ $446 = 0,
+ $447 = 0,
+ $448 = 0,
+ $449 = 0,
+ $45 = 0,
+ $450 = 0,
+ $451 = 0,
+ $452 = 0,
+ $453 = 0,
+ $454 = 0,
+ $455 = 0,
+ $456 = 0,
+ $457 = 0,
+ $458 = 0,
+ $459 = 0,
+ $46 = 0,
+ $460 = 0,
+ $461 = 0,
+ $462 = 0;
+ var $463 = 0,
+ $464 = 0,
+ $465 = 0,
+ $466 = 0,
+ $467 = 0,
+ $468 = 0,
+ $469 = 0,
+ $47 = 0,
+ $470 = 0,
+ $471 = 0,
+ $472 = 0,
+ $473 = 0,
+ $474 = 0,
+ $475 = 0,
+ $476 = 0,
+ $477 = 0,
+ $478 = 0,
+ $479 = 0,
+ $48 = 0,
+ $480 = 0;
+ var $481 = 0,
+ $482 = 0,
+ $483 = 0,
+ $484 = 0,
+ $485 = 0,
+ $486 = 0,
+ $487 = 0,
+ $488 = 0,
+ $489 = 0,
+ $49 = 0,
+ $490 = 0,
+ $491 = 0,
+ $492 = 0,
+ $493 = 0,
+ $494 = 0,
+ $495 = 0,
+ $496 = 0,
+ $497 = 0,
+ $498 = 0,
+ $499 = 0;
+ var $5 = 0,
+ $50 = 0,
+ $500 = 0,
+ $501 = 0,
+ $502 = 0,
+ $503 = 0,
+ $504 = 0,
+ $505 = 0,
+ $506 = 0,
+ $507 = 0,
+ $508 = 0,
+ $509 = 0,
+ $51 = 0,
+ $510 = 0,
+ $511 = 0,
+ $512 = 0,
+ $513 = 0,
+ $514 = 0,
+ $515 = 0,
+ $516 = 0;
+ var $517 = 0,
+ $518 = 0,
+ $519 = 0,
+ $52 = 0,
+ $520 = 0,
+ $521 = 0,
+ $522 = 0,
+ $523 = 0,
+ $524 = 0,
+ $525 = 0,
+ $526 = 0,
+ $527 = 0,
+ $528 = 0,
+ $529 = 0,
+ $53 = 0,
+ $530 = 0,
+ $531 = 0,
+ $532 = 0,
+ $533 = 0,
+ $534 = 0;
+ var $535 = 0,
+ $536 = 0,
+ $537 = 0,
+ $538 = 0,
+ $539 = 0,
+ $54 = 0,
+ $540 = 0,
+ $541 = 0,
+ $542 = 0,
+ $543 = 0,
+ $544 = 0,
+ $545 = 0,
+ $546 = 0,
+ $547 = 0,
+ $548 = 0,
+ $549 = 0,
+ $55 = 0,
+ $550 = 0,
+ $551 = 0,
+ $552 = 0;
+ var $553 = 0,
+ $554 = 0,
+ $555 = 0,
+ $556 = 0,
+ $557 = 0,
+ $558 = 0,
+ $559 = 0,
+ $56 = 0,
+ $560 = 0,
+ $561 = 0,
+ $562 = 0,
+ $563 = 0,
+ $564 = 0,
+ $565 = 0,
+ $566 = 0,
+ $567 = 0,
+ $568 = 0,
+ $569 = 0,
+ $57 = 0,
+ $570 = 0;
+ var $571 = 0,
+ $572 = 0,
+ $573 = 0,
+ $574 = 0,
+ $575 = 0,
+ $576 = 0,
+ $577 = 0,
+ $578 = 0,
+ $579 = 0,
+ $58 = 0,
+ $580 = 0,
+ $581 = 0,
+ $582 = 0,
+ $583 = 0,
+ $584 = 0,
+ $585 = 0,
+ $586 = 0,
+ $587 = 0,
+ $588 = 0,
+ $589 = 0;
+ var $59 = 0,
+ $590 = 0,
+ $591 = 0,
+ $592 = 0,
+ $593 = 0,
+ $594 = 0,
+ $595 = 0,
+ $596 = 0,
+ $597 = 0,
+ $598 = 0,
+ $599 = 0,
+ $6 = 0,
+ $60 = 0,
+ $600 = 0,
+ $601 = 0,
+ $602 = 0,
+ $603 = 0,
+ $604 = 0,
+ $605 = 0,
+ $606 = 0;
+ var $607 = 0,
+ $608 = 0,
+ $609 = 0,
+ $61 = 0,
+ $610 = 0,
+ $611 = 0,
+ $612 = 0,
+ $613 = 0,
+ $614 = 0,
+ $615 = 0,
+ $616 = 0,
+ $617 = 0,
+ $618 = 0,
+ $619 = 0,
+ $62 = 0,
+ $620 = 0,
+ $621 = 0,
+ $622 = 0,
+ $623 = 0,
+ $624 = 0;
+ var $625 = 0,
+ $626 = 0,
+ $627 = 0,
+ $628 = 0,
+ $629 = 0,
+ $63 = 0,
+ $630 = 0,
+ $631 = 0,
+ $632 = 0,
+ $633 = 0,
+ $634 = 0,
+ $635 = 0,
+ $636 = 0,
+ $637 = 0,
+ $638 = 0,
+ $639 = 0,
+ $64 = 0,
+ $640 = 0,
+ $641 = 0,
+ $642 = 0;
+ var $643 = 0,
+ $644 = 0,
+ $645 = 0,
+ $646 = 0,
+ $647 = 0,
+ $648 = 0,
+ $649 = 0,
+ $65 = 0,
+ $650 = 0,
+ $651 = 0,
+ $652 = 0,
+ $653 = 0,
+ $654 = 0,
+ $655 = 0,
+ $656 = 0,
+ $657 = 0,
+ $658 = 0,
+ $659 = 0,
+ $66 = 0,
+ $660 = 0;
+ var $661 = 0,
+ $662 = 0,
+ $663 = 0,
+ $664 = 0,
+ $665 = 0,
+ $666 = 0,
+ $667 = 0,
+ $668 = 0,
+ $669 = 0,
+ $67 = 0,
+ $670 = 0,
+ $671 = 0,
+ $672 = 0,
+ $673 = 0,
+ $674 = 0,
+ $675 = 0,
+ $676 = 0,
+ $677 = 0,
+ $678 = 0,
+ $679 = 0;
+ var $68 = 0,
+ $680 = 0,
+ $681 = 0,
+ $682 = 0,
+ $683 = 0,
+ $684 = 0,
+ $685 = 0,
+ $686 = 0,
+ $687 = 0,
+ $688 = 0,
+ $689 = 0,
+ $69 = 0,
+ $690 = 0,
+ $691 = 0,
+ $692 = 0,
+ $693 = 0,
+ $694 = 0,
+ $695 = 0,
+ $696 = 0,
+ $697 = 0;
+ var $698 = 0,
+ $699 = 0,
+ $7 = 0,
+ $70 = 0,
+ $700 = 0,
+ $701 = 0,
+ $702 = 0,
+ $703 = 0,
+ $704 = 0,
+ $705 = 0,
+ $706 = 0,
+ $707 = 0,
+ $708 = 0,
+ $709 = 0,
+ $71 = 0,
+ $710 = 0,
+ $711 = 0,
+ $712 = 0,
+ $713 = 0,
+ $714 = 0;
+ var $715 = 0,
+ $716 = 0,
+ $717 = 0,
+ $718 = 0,
+ $719 = 0,
+ $72 = 0,
+ $720 = 0,
+ $721 = 0,
+ $722 = 0,
+ $723 = 0,
+ $724 = 0,
+ $725 = 0,
+ $726 = 0,
+ $727 = 0,
+ $728 = 0,
+ $729 = 0,
+ $73 = 0,
+ $730 = 0,
+ $731 = 0,
+ $732 = 0;
+ var $733 = 0,
+ $734 = 0,
+ $735 = 0,
+ $736 = 0,
+ $737 = 0,
+ $738 = 0,
+ $739 = 0,
+ $74 = 0,
+ $740 = 0,
+ $741 = 0,
+ $742 = 0,
+ $743 = 0,
+ $744 = 0,
+ $745 = 0,
+ $746 = 0,
+ $747 = 0,
+ $748 = 0,
+ $749 = 0,
+ $75 = 0,
+ $750 = 0;
+ var $751 = 0,
+ $752 = 0,
+ $753 = 0,
+ $754 = 0,
+ $755 = 0,
+ $756 = 0,
+ $757 = 0,
+ $758 = 0,
+ $759 = 0,
+ $76 = 0,
+ $760 = 0,
+ $761 = 0,
+ $762 = 0,
+ $763 = 0,
+ $764 = 0,
+ $765 = 0,
+ $766 = 0,
+ $767 = 0,
+ $768 = 0,
+ $769 = 0;
+ var $77 = 0,
+ $770 = 0,
+ $771 = 0,
+ $772 = 0,
+ $773 = 0,
+ $774 = 0,
+ $775 = 0,
+ $776 = 0,
+ $777 = 0,
+ $778 = 0,
+ $779 = 0,
+ $78 = 0,
+ $780 = 0,
+ $781 = 0,
+ $782 = 0,
+ $783 = 0,
+ $784 = 0,
+ $785 = 0,
+ $786 = 0,
+ $787 = 0;
+ var $788 = 0,
+ $789 = 0,
+ $79 = 0,
+ $790 = 0,
+ $791 = 0,
+ $792 = 0,
+ $793 = 0,
+ $794 = 0,
+ $795 = 0,
+ $796 = 0,
+ $797 = 0,
+ $798 = 0,
+ $799 = 0,
+ $8 = 0,
+ $80 = 0,
+ $800 = 0,
+ $801 = 0,
+ $802 = 0,
+ $803 = 0,
+ $804 = 0;
+ var $805 = 0,
+ $806 = 0,
+ $807 = 0,
+ $808 = 0,
+ $809 = 0,
+ $81 = 0,
+ $810 = 0,
+ $811 = 0,
+ $812 = 0,
+ $813 = 0,
+ $814 = 0,
+ $815 = 0,
+ $816 = 0,
+ $817 = 0,
+ $818 = 0,
+ $819 = 0,
+ $82 = 0,
+ $820 = 0,
+ $821 = 0,
+ $822 = 0;
+ var $823 = 0,
+ $824 = 0,
+ $825 = 0,
+ $826 = 0,
+ $827 = 0,
+ $828 = 0,
+ $829 = 0,
+ $83 = 0,
+ $830 = 0,
+ $831 = 0,
+ $832 = 0,
+ $833 = 0,
+ $834 = 0,
+ $835 = 0,
+ $836 = 0,
+ $837 = 0,
+ $838 = 0,
+ $839 = 0,
+ $84 = 0,
+ $840 = 0;
+ var $841 = 0,
+ $842 = 0,
+ $843 = 0,
+ $844 = 0,
+ $845 = 0,
+ $846 = 0,
+ $847 = 0,
+ $848 = 0,
+ $849 = 0,
+ $85 = 0,
+ $850 = 0,
+ $851 = 0,
+ $852 = 0,
+ $853 = 0,
+ $854 = 0,
+ $855 = 0,
+ $856 = 0,
+ $857 = 0,
+ $858 = 0,
+ $859 = 0;
+ var $86 = 0,
+ $860 = 0,
+ $861 = 0,
+ $862 = 0,
+ $863 = 0,
+ $864 = 0,
+ $865 = 0,
+ $866 = 0,
+ $867 = 0,
+ $868 = 0,
+ $869 = 0,
+ $87 = 0,
+ $870 = 0,
+ $871 = 0,
+ $872 = 0,
+ $873 = 0,
+ $874 = 0,
+ $875 = 0,
+ $876 = 0,
+ $877 = 0;
+ var $878 = 0,
+ $879 = 0,
+ $88 = 0,
+ $880 = 0,
+ $881 = 0,
+ $882 = 0,
+ $883 = 0,
+ $884 = 0,
+ $885 = 0,
+ $886 = 0,
+ $887 = 0,
+ $888 = 0,
+ $889 = 0,
+ $89 = 0,
+ $890 = 0,
+ $891 = 0,
+ $892 = 0,
+ $893 = 0,
+ $894 = 0,
+ $895 = 0;
+ var $896 = 0,
+ $897 = 0,
+ $898 = 0,
+ $899 = 0,
+ $9 = 0,
+ $90 = 0,
+ $900 = 0,
+ $901 = 0,
+ $902 = 0,
+ $903 = 0,
+ $904 = 0,
+ $905 = 0,
+ $906 = 0,
+ $907 = 0,
+ $908 = 0,
+ $909 = 0,
+ $91 = 0,
+ $910 = 0,
+ $911 = 0,
+ $912 = 0;
+ var $913 = 0,
+ $914 = 0,
+ $915 = 0,
+ $916 = 0,
+ $917 = 0,
+ $918 = 0,
+ $919 = 0,
+ $92 = 0,
+ $920 = 0,
+ $921 = 0,
+ $922 = 0,
+ $923 = 0,
+ $924 = 0,
+ $925 = 0,
+ $926 = 0,
+ $927 = 0,
+ $928 = 0,
+ $929 = 0,
+ $93 = 0,
+ $930 = 0;
+ var $931 = 0,
+ $932 = 0,
+ $933 = 0,
+ $934 = 0,
+ $935 = 0,
+ $936 = 0,
+ $937 = 0,
+ $938 = 0,
+ $939 = 0,
+ $94 = 0,
+ $940 = 0,
+ $941 = 0,
+ $942 = 0,
+ $943 = 0,
+ $944 = 0,
+ $945 = 0,
+ $946 = 0,
+ $947 = 0,
+ $948 = 0,
+ $949 = 0;
+ var $95 = 0,
+ $950 = 0,
+ $951 = 0,
+ $952 = 0,
+ $953 = 0,
+ $954 = 0,
+ $955 = 0,
+ $956 = 0,
+ $957 = 0,
+ $958 = 0,
+ $959 = 0,
+ $96 = 0,
+ $960 = 0,
+ $961 = 0,
+ $962 = 0,
+ $963 = 0,
+ $964 = 0,
+ $965 = 0,
+ $966 = 0,
+ $967 = 0;
+ var $968 = 0,
+ $969 = 0,
+ $97 = 0,
+ $970 = 0,
+ $971 = 0,
+ $972 = 0,
+ $973 = 0,
+ $974 = 0,
+ $975 = 0,
+ $976 = 0,
+ $977 = 0,
+ $978 = 0,
+ $979 = 0,
+ $98 = 0,
+ $980 = 0,
+ $981 = 0,
+ $982 = 0,
+ $983 = 0,
+ $984 = 0,
+ $985 = 0;
+ var $986 = 0,
+ $987 = 0,
+ $988 = 0,
+ $989 = 0,
+ $99 = 0,
+ $990 = 0,
+ $991 = 0,
+ $992 = 0,
+ $993 = 0,
+ $994 = 0,
+ $995 = 0,
+ $996 = 0,
+ $997 = 0,
+ $998 = 0,
+ $999 = 0,
+ label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ STACKTOP = (STACKTOP + 208) | 0;
+ if ((STACKTOP | 0) >= (STACK_MAX | 0)) abortStackOverflow(208 | 0);
+ $2 = (sp + 192) | 0;
+ $3 = (sp + 184) | 0;
+ $4 = (sp + 176) | 0;
+ $5 = (sp + 168) | 0;
+ $6 = (sp + 160) | 0;
+ $7 = (sp + 152) | 0;
+ $8 = (sp + 144) | 0;
+ $9 = (sp + 136) | 0;
+ $10 = (sp + 128) | 0;
+ $11 = (sp + 120) | 0;
+ $12 = (sp + 112) | 0;
+ $13 = (sp + 104) | 0;
+ $14 = (sp + 96) | 0;
+ $15 = (sp + 88) | 0;
+ $16 = (sp + 80) | 0;
+ $17 = (sp + 72) | 0;
+ $18 = (sp + 64) | 0;
+ $19 = (sp + 56) | 0;
+ $20 = (sp + 48) | 0;
+ $21 = (sp + 40) | 0;
+ $22 = (sp + 32) | 0;
+ $23 = (sp + 24) | 0;
+ $24 = (sp + 16) | 0;
+ $25 = (sp + 8) | 0;
+ $26 = sp;
+ $1 = $0;
+ $27 = $1;
+ $28 = _load_3($27) | 0;
+ $29 = tempRet0;
+ $30 = 2097151 & $28;
+ $31 = $2;
+ $32 = $31;
+ HEAP32[$32 >> 2] = $30;
+ $33 = ($31 + 4) | 0;
+ $34 = $33;
+ HEAP32[$34 >> 2] = 0;
+ $35 = $1;
+ $36 = ($35 + 2) | 0;
+ $37 = _load_4($36) | 0;
+ $38 = tempRet0;
+ $39 = _bitshift64Lshr($37 | 0, $38 | 0, 5) | 0;
+ $40 = tempRet0;
+ $41 = 2097151 & $39;
+ $42 = $3;
+ $43 = $42;
+ HEAP32[$43 >> 2] = $41;
+ $44 = ($42 + 4) | 0;
+ $45 = $44;
+ HEAP32[$45 >> 2] = 0;
+ $46 = $1;
+ $47 = ($46 + 5) | 0;
+ $48 = _load_3($47) | 0;
+ $49 = tempRet0;
+ $50 = _bitshift64Lshr($48 | 0, $49 | 0, 2) | 0;
+ $51 = tempRet0;
+ $52 = 2097151 & $50;
+ $53 = $4;
+ $54 = $53;
+ HEAP32[$54 >> 2] = $52;
+ $55 = ($53 + 4) | 0;
+ $56 = $55;
+ HEAP32[$56 >> 2] = 0;
+ $57 = $1;
+ $58 = ($57 + 7) | 0;
+ $59 = _load_4($58) | 0;
+ $60 = tempRet0;
+ $61 = _bitshift64Lshr($59 | 0, $60 | 0, 7) | 0;
+ $62 = tempRet0;
+ $63 = 2097151 & $61;
+ $64 = $5;
+ $65 = $64;
+ HEAP32[$65 >> 2] = $63;
+ $66 = ($64 + 4) | 0;
+ $67 = $66;
+ HEAP32[$67 >> 2] = 0;
+ $68 = $1;
+ $69 = ($68 + 10) | 0;
+ $70 = _load_4($69) | 0;
+ $71 = tempRet0;
+ $72 = _bitshift64Lshr($70 | 0, $71 | 0, 4) | 0;
+ $73 = tempRet0;
+ $74 = 2097151 & $72;
+ $75 = $6;
+ $76 = $75;
+ HEAP32[$76 >> 2] = $74;
+ $77 = ($75 + 4) | 0;
+ $78 = $77;
+ HEAP32[$78 >> 2] = 0;
+ $79 = $1;
+ $80 = ($79 + 13) | 0;
+ $81 = _load_3($80) | 0;
+ $82 = tempRet0;
+ $83 = _bitshift64Lshr($81 | 0, $82 | 0, 1) | 0;
+ $84 = tempRet0;
+ $85 = 2097151 & $83;
+ $86 = $7;
+ $87 = $86;
+ HEAP32[$87 >> 2] = $85;
+ $88 = ($86 + 4) | 0;
+ $89 = $88;
+ HEAP32[$89 >> 2] = 0;
+ $90 = $1;
+ $91 = ($90 + 15) | 0;
+ $92 = _load_4($91) | 0;
+ $93 = tempRet0;
+ $94 = _bitshift64Lshr($92 | 0, $93 | 0, 6) | 0;
+ $95 = tempRet0;
+ $96 = 2097151 & $94;
+ $97 = $8;
+ $98 = $97;
+ HEAP32[$98 >> 2] = $96;
+ $99 = ($97 + 4) | 0;
+ $100 = $99;
+ HEAP32[$100 >> 2] = 0;
+ $101 = $1;
+ $102 = ($101 + 18) | 0;
+ $103 = _load_3($102) | 0;
+ $104 = tempRet0;
+ $105 = _bitshift64Lshr($103 | 0, $104 | 0, 3) | 0;
+ $106 = tempRet0;
+ $107 = 2097151 & $105;
+ $108 = $9;
+ $109 = $108;
+ HEAP32[$109 >> 2] = $107;
+ $110 = ($108 + 4) | 0;
+ $111 = $110;
+ HEAP32[$111 >> 2] = 0;
+ $112 = $1;
+ $113 = ($112 + 21) | 0;
+ $114 = _load_3($113) | 0;
+ $115 = tempRet0;
+ $116 = 2097151 & $114;
+ $117 = $10;
+ $118 = $117;
+ HEAP32[$118 >> 2] = $116;
+ $119 = ($117 + 4) | 0;
+ $120 = $119;
+ HEAP32[$120 >> 2] = 0;
+ $121 = $1;
+ $122 = ($121 + 23) | 0;
+ $123 = _load_4($122) | 0;
+ $124 = tempRet0;
+ $125 = _bitshift64Lshr($123 | 0, $124 | 0, 5) | 0;
+ $126 = tempRet0;
+ $127 = 2097151 & $125;
+ $128 = $11;
+ $129 = $128;
+ HEAP32[$129 >> 2] = $127;
+ $130 = ($128 + 4) | 0;
+ $131 = $130;
+ HEAP32[$131 >> 2] = 0;
+ $132 = $1;
+ $133 = ($132 + 26) | 0;
+ $134 = _load_3($133) | 0;
+ $135 = tempRet0;
+ $136 = _bitshift64Lshr($134 | 0, $135 | 0, 2) | 0;
+ $137 = tempRet0;
+ $138 = 2097151 & $136;
+ $139 = $12;
+ $140 = $139;
+ HEAP32[$140 >> 2] = $138;
+ $141 = ($139 + 4) | 0;
+ $142 = $141;
+ HEAP32[$142 >> 2] = 0;
+ $143 = $1;
+ $144 = ($143 + 28) | 0;
+ $145 = _load_4($144) | 0;
+ $146 = tempRet0;
+ $147 = _bitshift64Lshr($145 | 0, $146 | 0, 7) | 0;
+ $148 = tempRet0;
+ $149 = $13;
+ $150 = $149;
+ HEAP32[$150 >> 2] = $147;
+ $151 = ($149 + 4) | 0;
+ $152 = $151;
+ HEAP32[$152 >> 2] = $148;
+ $153 = $14;
+ $154 = $153;
+ HEAP32[$154 >> 2] = 0;
+ $155 = ($153 + 4) | 0;
+ $156 = $155;
+ HEAP32[$156 >> 2] = 0;
+ $157 = $2;
+ $158 = $157;
+ $159 = HEAP32[$158 >> 2] | 0;
+ $160 = ($157 + 4) | 0;
+ $161 = $160;
+ $162 = HEAP32[$161 >> 2] | 0;
+ $163 = _i64Add($159 | 0, $162 | 0, 1048576, 0) | 0;
+ $164 = tempRet0;
+ $165 = _bitshift64Ashr($163 | 0, $164 | 0, 21) | 0;
+ $166 = tempRet0;
+ $167 = $15;
+ $168 = $167;
+ HEAP32[$168 >> 2] = $165;
+ $169 = ($167 + 4) | 0;
+ $170 = $169;
+ HEAP32[$170 >> 2] = $166;
+ $171 = $15;
+ $172 = $171;
+ $173 = HEAP32[$172 >> 2] | 0;
+ $174 = ($171 + 4) | 0;
+ $175 = $174;
+ $176 = HEAP32[$175 >> 2] | 0;
+ $177 = $3;
+ $178 = $177;
+ $179 = HEAP32[$178 >> 2] | 0;
+ $180 = ($177 + 4) | 0;
+ $181 = $180;
+ $182 = HEAP32[$181 >> 2] | 0;
+ $183 = _i64Add($179 | 0, $182 | 0, $173 | 0, $176 | 0) | 0;
+ $184 = tempRet0;
+ $185 = $3;
+ $186 = $185;
+ HEAP32[$186 >> 2] = $183;
+ $187 = ($185 + 4) | 0;
+ $188 = $187;
+ HEAP32[$188 >> 2] = $184;
+ $189 = $15;
+ $190 = $189;
+ $191 = HEAP32[$190 >> 2] | 0;
+ $192 = ($189 + 4) | 0;
+ $193 = $192;
+ $194 = HEAP32[$193 >> 2] | 0;
+ $195 = _bitshift64Shl($191 | 0, $194 | 0, 21) | 0;
+ $196 = tempRet0;
+ $197 = $2;
+ $198 = $197;
+ $199 = HEAP32[$198 >> 2] | 0;
+ $200 = ($197 + 4) | 0;
+ $201 = $200;
+ $202 = HEAP32[$201 >> 2] | 0;
+ $203 = _i64Subtract($199 | 0, $202 | 0, $195 | 0, $196 | 0) | 0;
+ $204 = tempRet0;
+ $205 = $2;
+ $206 = $205;
+ HEAP32[$206 >> 2] = $203;
+ $207 = ($205 + 4) | 0;
+ $208 = $207;
+ HEAP32[$208 >> 2] = $204;
+ $209 = $4;
+ $210 = $209;
+ $211 = HEAP32[$210 >> 2] | 0;
+ $212 = ($209 + 4) | 0;
+ $213 = $212;
+ $214 = HEAP32[$213 >> 2] | 0;
+ $215 = _i64Add($211 | 0, $214 | 0, 1048576, 0) | 0;
+ $216 = tempRet0;
+ $217 = _bitshift64Ashr($215 | 0, $216 | 0, 21) | 0;
+ $218 = tempRet0;
+ $219 = $17;
+ $220 = $219;
+ HEAP32[$220 >> 2] = $217;
+ $221 = ($219 + 4) | 0;
+ $222 = $221;
+ HEAP32[$222 >> 2] = $218;
+ $223 = $17;
+ $224 = $223;
+ $225 = HEAP32[$224 >> 2] | 0;
+ $226 = ($223 + 4) | 0;
+ $227 = $226;
+ $228 = HEAP32[$227 >> 2] | 0;
+ $229 = $5;
+ $230 = $229;
+ $231 = HEAP32[$230 >> 2] | 0;
+ $232 = ($229 + 4) | 0;
+ $233 = $232;
+ $234 = HEAP32[$233 >> 2] | 0;
+ $235 = _i64Add($231 | 0, $234 | 0, $225 | 0, $228 | 0) | 0;
+ $236 = tempRet0;
+ $237 = $5;
+ $238 = $237;
+ HEAP32[$238 >> 2] = $235;
+ $239 = ($237 + 4) | 0;
+ $240 = $239;
+ HEAP32[$240 >> 2] = $236;
+ $241 = $17;
+ $242 = $241;
+ $243 = HEAP32[$242 >> 2] | 0;
+ $244 = ($241 + 4) | 0;
+ $245 = $244;
+ $246 = HEAP32[$245 >> 2] | 0;
+ $247 = _bitshift64Shl($243 | 0, $246 | 0, 21) | 0;
+ $248 = tempRet0;
+ $249 = $4;
+ $250 = $249;
+ $251 = HEAP32[$250 >> 2] | 0;
+ $252 = ($249 + 4) | 0;
+ $253 = $252;
+ $254 = HEAP32[$253 >> 2] | 0;
+ $255 = _i64Subtract($251 | 0, $254 | 0, $247 | 0, $248 | 0) | 0;
+ $256 = tempRet0;
+ $257 = $4;
+ $258 = $257;
+ HEAP32[$258 >> 2] = $255;
+ $259 = ($257 + 4) | 0;
+ $260 = $259;
+ HEAP32[$260 >> 2] = $256;
+ $261 = $6;
+ $262 = $261;
+ $263 = HEAP32[$262 >> 2] | 0;
+ $264 = ($261 + 4) | 0;
+ $265 = $264;
+ $266 = HEAP32[$265 >> 2] | 0;
+ $267 = _i64Add($263 | 0, $266 | 0, 1048576, 0) | 0;
+ $268 = tempRet0;
+ $269 = _bitshift64Ashr($267 | 0, $268 | 0, 21) | 0;
+ $270 = tempRet0;
+ $271 = $19;
+ $272 = $271;
+ HEAP32[$272 >> 2] = $269;
+ $273 = ($271 + 4) | 0;
+ $274 = $273;
+ HEAP32[$274 >> 2] = $270;
+ $275 = $19;
+ $276 = $275;
+ $277 = HEAP32[$276 >> 2] | 0;
+ $278 = ($275 + 4) | 0;
+ $279 = $278;
+ $280 = HEAP32[$279 >> 2] | 0;
+ $281 = $7;
+ $282 = $281;
+ $283 = HEAP32[$282 >> 2] | 0;
+ $284 = ($281 + 4) | 0;
+ $285 = $284;
+ $286 = HEAP32[$285 >> 2] | 0;
+ $287 = _i64Add($283 | 0, $286 | 0, $277 | 0, $280 | 0) | 0;
+ $288 = tempRet0;
+ $289 = $7;
+ $290 = $289;
+ HEAP32[$290 >> 2] = $287;
+ $291 = ($289 + 4) | 0;
+ $292 = $291;
+ HEAP32[$292 >> 2] = $288;
+ $293 = $19;
+ $294 = $293;
+ $295 = HEAP32[$294 >> 2] | 0;
+ $296 = ($293 + 4) | 0;
+ $297 = $296;
+ $298 = HEAP32[$297 >> 2] | 0;
+ $299 = _bitshift64Shl($295 | 0, $298 | 0, 21) | 0;
+ $300 = tempRet0;
+ $301 = $6;
+ $302 = $301;
+ $303 = HEAP32[$302 >> 2] | 0;
+ $304 = ($301 + 4) | 0;
+ $305 = $304;
+ $306 = HEAP32[$305 >> 2] | 0;
+ $307 = _i64Subtract($303 | 0, $306 | 0, $299 | 0, $300 | 0) | 0;
+ $308 = tempRet0;
+ $309 = $6;
+ $310 = $309;
+ HEAP32[$310 >> 2] = $307;
+ $311 = ($309 + 4) | 0;
+ $312 = $311;
+ HEAP32[$312 >> 2] = $308;
+ $313 = $8;
+ $314 = $313;
+ $315 = HEAP32[$314 >> 2] | 0;
+ $316 = ($313 + 4) | 0;
+ $317 = $316;
+ $318 = HEAP32[$317 >> 2] | 0;
+ $319 = _i64Add($315 | 0, $318 | 0, 1048576, 0) | 0;
+ $320 = tempRet0;
+ $321 = _bitshift64Ashr($319 | 0, $320 | 0, 21) | 0;
+ $322 = tempRet0;
+ $323 = $21;
+ $324 = $323;
+ HEAP32[$324 >> 2] = $321;
+ $325 = ($323 + 4) | 0;
+ $326 = $325;
+ HEAP32[$326 >> 2] = $322;
+ $327 = $21;
+ $328 = $327;
+ $329 = HEAP32[$328 >> 2] | 0;
+ $330 = ($327 + 4) | 0;
+ $331 = $330;
+ $332 = HEAP32[$331 >> 2] | 0;
+ $333 = $9;
+ $334 = $333;
+ $335 = HEAP32[$334 >> 2] | 0;
+ $336 = ($333 + 4) | 0;
+ $337 = $336;
+ $338 = HEAP32[$337 >> 2] | 0;
+ $339 = _i64Add($335 | 0, $338 | 0, $329 | 0, $332 | 0) | 0;
+ $340 = tempRet0;
+ $341 = $9;
+ $342 = $341;
+ HEAP32[$342 >> 2] = $339;
+ $343 = ($341 + 4) | 0;
+ $344 = $343;
+ HEAP32[$344 >> 2] = $340;
+ $345 = $21;
+ $346 = $345;
+ $347 = HEAP32[$346 >> 2] | 0;
+ $348 = ($345 + 4) | 0;
+ $349 = $348;
+ $350 = HEAP32[$349 >> 2] | 0;
+ $351 = _bitshift64Shl($347 | 0, $350 | 0, 21) | 0;
+ $352 = tempRet0;
+ $353 = $8;
+ $354 = $353;
+ $355 = HEAP32[$354 >> 2] | 0;
+ $356 = ($353 + 4) | 0;
+ $357 = $356;
+ $358 = HEAP32[$357 >> 2] | 0;
+ $359 = _i64Subtract($355 | 0, $358 | 0, $351 | 0, $352 | 0) | 0;
+ $360 = tempRet0;
+ $361 = $8;
+ $362 = $361;
+ HEAP32[$362 >> 2] = $359;
+ $363 = ($361 + 4) | 0;
+ $364 = $363;
+ HEAP32[$364 >> 2] = $360;
+ $365 = $10;
+ $366 = $365;
+ $367 = HEAP32[$366 >> 2] | 0;
+ $368 = ($365 + 4) | 0;
+ $369 = $368;
+ $370 = HEAP32[$369 >> 2] | 0;
+ $371 = _i64Add($367 | 0, $370 | 0, 1048576, 0) | 0;
+ $372 = tempRet0;
+ $373 = _bitshift64Ashr($371 | 0, $372 | 0, 21) | 0;
+ $374 = tempRet0;
+ $375 = $23;
+ $376 = $375;
+ HEAP32[$376 >> 2] = $373;
+ $377 = ($375 + 4) | 0;
+ $378 = $377;
+ HEAP32[$378 >> 2] = $374;
+ $379 = $23;
+ $380 = $379;
+ $381 = HEAP32[$380 >> 2] | 0;
+ $382 = ($379 + 4) | 0;
+ $383 = $382;
+ $384 = HEAP32[$383 >> 2] | 0;
+ $385 = $11;
+ $386 = $385;
+ $387 = HEAP32[$386 >> 2] | 0;
+ $388 = ($385 + 4) | 0;
+ $389 = $388;
+ $390 = HEAP32[$389 >> 2] | 0;
+ $391 = _i64Add($387 | 0, $390 | 0, $381 | 0, $384 | 0) | 0;
+ $392 = tempRet0;
+ $393 = $11;
+ $394 = $393;
+ HEAP32[$394 >> 2] = $391;
+ $395 = ($393 + 4) | 0;
+ $396 = $395;
+ HEAP32[$396 >> 2] = $392;
+ $397 = $23;
+ $398 = $397;
+ $399 = HEAP32[$398 >> 2] | 0;
+ $400 = ($397 + 4) | 0;
+ $401 = $400;
+ $402 = HEAP32[$401 >> 2] | 0;
+ $403 = _bitshift64Shl($399 | 0, $402 | 0, 21) | 0;
+ $404 = tempRet0;
+ $405 = $10;
+ $406 = $405;
+ $407 = HEAP32[$406 >> 2] | 0;
+ $408 = ($405 + 4) | 0;
+ $409 = $408;
+ $410 = HEAP32[$409 >> 2] | 0;
+ $411 = _i64Subtract($407 | 0, $410 | 0, $403 | 0, $404 | 0) | 0;
+ $412 = tempRet0;
+ $413 = $10;
+ $414 = $413;
+ HEAP32[$414 >> 2] = $411;
+ $415 = ($413 + 4) | 0;
+ $416 = $415;
+ HEAP32[$416 >> 2] = $412;
+ $417 = $12;
+ $418 = $417;
+ $419 = HEAP32[$418 >> 2] | 0;
+ $420 = ($417 + 4) | 0;
+ $421 = $420;
+ $422 = HEAP32[$421 >> 2] | 0;
+ $423 = _i64Add($419 | 0, $422 | 0, 1048576, 0) | 0;
+ $424 = tempRet0;
+ $425 = _bitshift64Ashr($423 | 0, $424 | 0, 21) | 0;
+ $426 = tempRet0;
+ $427 = $25;
+ $428 = $427;
+ HEAP32[$428 >> 2] = $425;
+ $429 = ($427 + 4) | 0;
+ $430 = $429;
+ HEAP32[$430 >> 2] = $426;
+ $431 = $25;
+ $432 = $431;
+ $433 = HEAP32[$432 >> 2] | 0;
+ $434 = ($431 + 4) | 0;
+ $435 = $434;
+ $436 = HEAP32[$435 >> 2] | 0;
+ $437 = $13;
+ $438 = $437;
+ $439 = HEAP32[$438 >> 2] | 0;
+ $440 = ($437 + 4) | 0;
+ $441 = $440;
+ $442 = HEAP32[$441 >> 2] | 0;
+ $443 = _i64Add($439 | 0, $442 | 0, $433 | 0, $436 | 0) | 0;
+ $444 = tempRet0;
+ $445 = $13;
+ $446 = $445;
+ HEAP32[$446 >> 2] = $443;
+ $447 = ($445 + 4) | 0;
+ $448 = $447;
+ HEAP32[$448 >> 2] = $444;
+ $449 = $25;
+ $450 = $449;
+ $451 = HEAP32[$450 >> 2] | 0;
+ $452 = ($449 + 4) | 0;
+ $453 = $452;
+ $454 = HEAP32[$453 >> 2] | 0;
+ $455 = _bitshift64Shl($451 | 0, $454 | 0, 21) | 0;
+ $456 = tempRet0;
+ $457 = $12;
+ $458 = $457;
+ $459 = HEAP32[$458 >> 2] | 0;
+ $460 = ($457 + 4) | 0;
+ $461 = $460;
+ $462 = HEAP32[$461 >> 2] | 0;
+ $463 = _i64Subtract($459 | 0, $462 | 0, $455 | 0, $456 | 0) | 0;
+ $464 = tempRet0;
+ $465 = $12;
+ $466 = $465;
+ HEAP32[$466 >> 2] = $463;
+ $467 = ($465 + 4) | 0;
+ $468 = $467;
+ HEAP32[$468 >> 2] = $464;
+ $469 = $3;
+ $470 = $469;
+ $471 = HEAP32[$470 >> 2] | 0;
+ $472 = ($469 + 4) | 0;
+ $473 = $472;
+ $474 = HEAP32[$473 >> 2] | 0;
+ $475 = _i64Add($471 | 0, $474 | 0, 1048576, 0) | 0;
+ $476 = tempRet0;
+ $477 = _bitshift64Ashr($475 | 0, $476 | 0, 21) | 0;
+ $478 = tempRet0;
+ $479 = $16;
+ $480 = $479;
+ HEAP32[$480 >> 2] = $477;
+ $481 = ($479 + 4) | 0;
+ $482 = $481;
+ HEAP32[$482 >> 2] = $478;
+ $483 = $16;
+ $484 = $483;
+ $485 = HEAP32[$484 >> 2] | 0;
+ $486 = ($483 + 4) | 0;
+ $487 = $486;
+ $488 = HEAP32[$487 >> 2] | 0;
+ $489 = $4;
+ $490 = $489;
+ $491 = HEAP32[$490 >> 2] | 0;
+ $492 = ($489 + 4) | 0;
+ $493 = $492;
+ $494 = HEAP32[$493 >> 2] | 0;
+ $495 = _i64Add($491 | 0, $494 | 0, $485 | 0, $488 | 0) | 0;
+ $496 = tempRet0;
+ $497 = $4;
+ $498 = $497;
+ HEAP32[$498 >> 2] = $495;
+ $499 = ($497 + 4) | 0;
+ $500 = $499;
+ HEAP32[$500 >> 2] = $496;
+ $501 = $16;
+ $502 = $501;
+ $503 = HEAP32[$502 >> 2] | 0;
+ $504 = ($501 + 4) | 0;
+ $505 = $504;
+ $506 = HEAP32[$505 >> 2] | 0;
+ $507 = _bitshift64Shl($503 | 0, $506 | 0, 21) | 0;
+ $508 = tempRet0;
+ $509 = $3;
+ $510 = $509;
+ $511 = HEAP32[$510 >> 2] | 0;
+ $512 = ($509 + 4) | 0;
+ $513 = $512;
+ $514 = HEAP32[$513 >> 2] | 0;
+ $515 = _i64Subtract($511 | 0, $514 | 0, $507 | 0, $508 | 0) | 0;
+ $516 = tempRet0;
+ $517 = $3;
+ $518 = $517;
+ HEAP32[$518 >> 2] = $515;
+ $519 = ($517 + 4) | 0;
+ $520 = $519;
+ HEAP32[$520 >> 2] = $516;
+ $521 = $5;
+ $522 = $521;
+ $523 = HEAP32[$522 >> 2] | 0;
+ $524 = ($521 + 4) | 0;
+ $525 = $524;
+ $526 = HEAP32[$525 >> 2] | 0;
+ $527 = _i64Add($523 | 0, $526 | 0, 1048576, 0) | 0;
+ $528 = tempRet0;
+ $529 = _bitshift64Ashr($527 | 0, $528 | 0, 21) | 0;
+ $530 = tempRet0;
+ $531 = $18;
+ $532 = $531;
+ HEAP32[$532 >> 2] = $529;
+ $533 = ($531 + 4) | 0;
+ $534 = $533;
+ HEAP32[$534 >> 2] = $530;
+ $535 = $18;
+ $536 = $535;
+ $537 = HEAP32[$536 >> 2] | 0;
+ $538 = ($535 + 4) | 0;
+ $539 = $538;
+ $540 = HEAP32[$539 >> 2] | 0;
+ $541 = $6;
+ $542 = $541;
+ $543 = HEAP32[$542 >> 2] | 0;
+ $544 = ($541 + 4) | 0;
+ $545 = $544;
+ $546 = HEAP32[$545 >> 2] | 0;
+ $547 = _i64Add($543 | 0, $546 | 0, $537 | 0, $540 | 0) | 0;
+ $548 = tempRet0;
+ $549 = $6;
+ $550 = $549;
+ HEAP32[$550 >> 2] = $547;
+ $551 = ($549 + 4) | 0;
+ $552 = $551;
+ HEAP32[$552 >> 2] = $548;
+ $553 = $18;
+ $554 = $553;
+ $555 = HEAP32[$554 >> 2] | 0;
+ $556 = ($553 + 4) | 0;
+ $557 = $556;
+ $558 = HEAP32[$557 >> 2] | 0;
+ $559 = _bitshift64Shl($555 | 0, $558 | 0, 21) | 0;
+ $560 = tempRet0;
+ $561 = $5;
+ $562 = $561;
+ $563 = HEAP32[$562 >> 2] | 0;
+ $564 = ($561 + 4) | 0;
+ $565 = $564;
+ $566 = HEAP32[$565 >> 2] | 0;
+ $567 = _i64Subtract($563 | 0, $566 | 0, $559 | 0, $560 | 0) | 0;
+ $568 = tempRet0;
+ $569 = $5;
+ $570 = $569;
+ HEAP32[$570 >> 2] = $567;
+ $571 = ($569 + 4) | 0;
+ $572 = $571;
+ HEAP32[$572 >> 2] = $568;
+ $573 = $7;
+ $574 = $573;
+ $575 = HEAP32[$574 >> 2] | 0;
+ $576 = ($573 + 4) | 0;
+ $577 = $576;
+ $578 = HEAP32[$577 >> 2] | 0;
+ $579 = _i64Add($575 | 0, $578 | 0, 1048576, 0) | 0;
+ $580 = tempRet0;
+ $581 = _bitshift64Ashr($579 | 0, $580 | 0, 21) | 0;
+ $582 = tempRet0;
+ $583 = $20;
+ $584 = $583;
+ HEAP32[$584 >> 2] = $581;
+ $585 = ($583 + 4) | 0;
+ $586 = $585;
+ HEAP32[$586 >> 2] = $582;
+ $587 = $20;
+ $588 = $587;
+ $589 = HEAP32[$588 >> 2] | 0;
+ $590 = ($587 + 4) | 0;
+ $591 = $590;
+ $592 = HEAP32[$591 >> 2] | 0;
+ $593 = $8;
+ $594 = $593;
+ $595 = HEAP32[$594 >> 2] | 0;
+ $596 = ($593 + 4) | 0;
+ $597 = $596;
+ $598 = HEAP32[$597 >> 2] | 0;
+ $599 = _i64Add($595 | 0, $598 | 0, $589 | 0, $592 | 0) | 0;
+ $600 = tempRet0;
+ $601 = $8;
+ $602 = $601;
+ HEAP32[$602 >> 2] = $599;
+ $603 = ($601 + 4) | 0;
+ $604 = $603;
+ HEAP32[$604 >> 2] = $600;
+ $605 = $20;
+ $606 = $605;
+ $607 = HEAP32[$606 >> 2] | 0;
+ $608 = ($605 + 4) | 0;
+ $609 = $608;
+ $610 = HEAP32[$609 >> 2] | 0;
+ $611 = _bitshift64Shl($607 | 0, $610 | 0, 21) | 0;
+ $612 = tempRet0;
+ $613 = $7;
+ $614 = $613;
+ $615 = HEAP32[$614 >> 2] | 0;
+ $616 = ($613 + 4) | 0;
+ $617 = $616;
+ $618 = HEAP32[$617 >> 2] | 0;
+ $619 = _i64Subtract($615 | 0, $618 | 0, $611 | 0, $612 | 0) | 0;
+ $620 = tempRet0;
+ $621 = $7;
+ $622 = $621;
+ HEAP32[$622 >> 2] = $619;
+ $623 = ($621 + 4) | 0;
+ $624 = $623;
+ HEAP32[$624 >> 2] = $620;
+ $625 = $9;
+ $626 = $625;
+ $627 = HEAP32[$626 >> 2] | 0;
+ $628 = ($625 + 4) | 0;
+ $629 = $628;
+ $630 = HEAP32[$629 >> 2] | 0;
+ $631 = _i64Add($627 | 0, $630 | 0, 1048576, 0) | 0;
+ $632 = tempRet0;
+ $633 = _bitshift64Ashr($631 | 0, $632 | 0, 21) | 0;
+ $634 = tempRet0;
+ $635 = $22;
+ $636 = $635;
+ HEAP32[$636 >> 2] = $633;
+ $637 = ($635 + 4) | 0;
+ $638 = $637;
+ HEAP32[$638 >> 2] = $634;
+ $639 = $22;
+ $640 = $639;
+ $641 = HEAP32[$640 >> 2] | 0;
+ $642 = ($639 + 4) | 0;
+ $643 = $642;
+ $644 = HEAP32[$643 >> 2] | 0;
+ $645 = $10;
+ $646 = $645;
+ $647 = HEAP32[$646 >> 2] | 0;
+ $648 = ($645 + 4) | 0;
+ $649 = $648;
+ $650 = HEAP32[$649 >> 2] | 0;
+ $651 = _i64Add($647 | 0, $650 | 0, $641 | 0, $644 | 0) | 0;
+ $652 = tempRet0;
+ $653 = $10;
+ $654 = $653;
+ HEAP32[$654 >> 2] = $651;
+ $655 = ($653 + 4) | 0;
+ $656 = $655;
+ HEAP32[$656 >> 2] = $652;
+ $657 = $22;
+ $658 = $657;
+ $659 = HEAP32[$658 >> 2] | 0;
+ $660 = ($657 + 4) | 0;
+ $661 = $660;
+ $662 = HEAP32[$661 >> 2] | 0;
+ $663 = _bitshift64Shl($659 | 0, $662 | 0, 21) | 0;
+ $664 = tempRet0;
+ $665 = $9;
+ $666 = $665;
+ $667 = HEAP32[$666 >> 2] | 0;
+ $668 = ($665 + 4) | 0;
+ $669 = $668;
+ $670 = HEAP32[$669 >> 2] | 0;
+ $671 = _i64Subtract($667 | 0, $670 | 0, $663 | 0, $664 | 0) | 0;
+ $672 = tempRet0;
+ $673 = $9;
+ $674 = $673;
+ HEAP32[$674 >> 2] = $671;
+ $675 = ($673 + 4) | 0;
+ $676 = $675;
+ HEAP32[$676 >> 2] = $672;
+ $677 = $11;
+ $678 = $677;
+ $679 = HEAP32[$678 >> 2] | 0;
+ $680 = ($677 + 4) | 0;
+ $681 = $680;
+ $682 = HEAP32[$681 >> 2] | 0;
+ $683 = _i64Add($679 | 0, $682 | 0, 1048576, 0) | 0;
+ $684 = tempRet0;
+ $685 = _bitshift64Ashr($683 | 0, $684 | 0, 21) | 0;
+ $686 = tempRet0;
+ $687 = $24;
+ $688 = $687;
+ HEAP32[$688 >> 2] = $685;
+ $689 = ($687 + 4) | 0;
+ $690 = $689;
+ HEAP32[$690 >> 2] = $686;
+ $691 = $24;
+ $692 = $691;
+ $693 = HEAP32[$692 >> 2] | 0;
+ $694 = ($691 + 4) | 0;
+ $695 = $694;
+ $696 = HEAP32[$695 >> 2] | 0;
+ $697 = $12;
+ $698 = $697;
+ $699 = HEAP32[$698 >> 2] | 0;
+ $700 = ($697 + 4) | 0;
+ $701 = $700;
+ $702 = HEAP32[$701 >> 2] | 0;
+ $703 = _i64Add($699 | 0, $702 | 0, $693 | 0, $696 | 0) | 0;
+ $704 = tempRet0;
+ $705 = $12;
+ $706 = $705;
+ HEAP32[$706 >> 2] = $703;
+ $707 = ($705 + 4) | 0;
+ $708 = $707;
+ HEAP32[$708 >> 2] = $704;
+ $709 = $24;
+ $710 = $709;
+ $711 = HEAP32[$710 >> 2] | 0;
+ $712 = ($709 + 4) | 0;
+ $713 = $712;
+ $714 = HEAP32[$713 >> 2] | 0;
+ $715 = _bitshift64Shl($711 | 0, $714 | 0, 21) | 0;
+ $716 = tempRet0;
+ $717 = $11;
+ $718 = $717;
+ $719 = HEAP32[$718 >> 2] | 0;
+ $720 = ($717 + 4) | 0;
+ $721 = $720;
+ $722 = HEAP32[$721 >> 2] | 0;
+ $723 = _i64Subtract($719 | 0, $722 | 0, $715 | 0, $716 | 0) | 0;
+ $724 = tempRet0;
+ $725 = $11;
+ $726 = $725;
+ HEAP32[$726 >> 2] = $723;
+ $727 = ($725 + 4) | 0;
+ $728 = $727;
+ HEAP32[$728 >> 2] = $724;
+ $729 = $13;
+ $730 = $729;
+ $731 = HEAP32[$730 >> 2] | 0;
+ $732 = ($729 + 4) | 0;
+ $733 = $732;
+ $734 = HEAP32[$733 >> 2] | 0;
+ $735 = _i64Add($731 | 0, $734 | 0, 1048576, 0) | 0;
+ $736 = tempRet0;
+ $737 = _bitshift64Ashr($735 | 0, $736 | 0, 21) | 0;
+ $738 = tempRet0;
+ $739 = $26;
+ $740 = $739;
+ HEAP32[$740 >> 2] = $737;
+ $741 = ($739 + 4) | 0;
+ $742 = $741;
+ HEAP32[$742 >> 2] = $738;
+ $743 = $26;
+ $744 = $743;
+ $745 = HEAP32[$744 >> 2] | 0;
+ $746 = ($743 + 4) | 0;
+ $747 = $746;
+ $748 = HEAP32[$747 >> 2] | 0;
+ $749 = $14;
+ $750 = $749;
+ $751 = HEAP32[$750 >> 2] | 0;
+ $752 = ($749 + 4) | 0;
+ $753 = $752;
+ $754 = HEAP32[$753 >> 2] | 0;
+ $755 = _i64Add($751 | 0, $754 | 0, $745 | 0, $748 | 0) | 0;
+ $756 = tempRet0;
+ $757 = $14;
+ $758 = $757;
+ HEAP32[$758 >> 2] = $755;
+ $759 = ($757 + 4) | 0;
+ $760 = $759;
+ HEAP32[$760 >> 2] = $756;
+ $761 = $26;
+ $762 = $761;
+ $763 = HEAP32[$762 >> 2] | 0;
+ $764 = ($761 + 4) | 0;
+ $765 = $764;
+ $766 = HEAP32[$765 >> 2] | 0;
+ $767 = _bitshift64Shl($763 | 0, $766 | 0, 21) | 0;
+ $768 = tempRet0;
+ $769 = $13;
+ $770 = $769;
+ $771 = HEAP32[$770 >> 2] | 0;
+ $772 = ($769 + 4) | 0;
+ $773 = $772;
+ $774 = HEAP32[$773 >> 2] | 0;
+ $775 = _i64Subtract($771 | 0, $774 | 0, $767 | 0, $768 | 0) | 0;
+ $776 = tempRet0;
+ $777 = $13;
+ $778 = $777;
+ HEAP32[$778 >> 2] = $775;
+ $779 = ($777 + 4) | 0;
+ $780 = $779;
+ HEAP32[$780 >> 2] = $776;
+ $781 = $14;
+ $782 = $781;
+ $783 = HEAP32[$782 >> 2] | 0;
+ $784 = ($781 + 4) | 0;
+ $785 = $784;
+ $786 = HEAP32[$785 >> 2] | 0;
+ $787 = ___muldi3($783 | 0, $786 | 0, 666643, 0) | 0;
+ $788 = tempRet0;
+ $789 = $2;
+ $790 = $789;
+ $791 = HEAP32[$790 >> 2] | 0;
+ $792 = ($789 + 4) | 0;
+ $793 = $792;
+ $794 = HEAP32[$793 >> 2] | 0;
+ $795 = _i64Add($791 | 0, $794 | 0, $787 | 0, $788 | 0) | 0;
+ $796 = tempRet0;
+ $797 = $2;
+ $798 = $797;
+ HEAP32[$798 >> 2] = $795;
+ $799 = ($797 + 4) | 0;
+ $800 = $799;
+ HEAP32[$800 >> 2] = $796;
+ $801 = $14;
+ $802 = $801;
+ $803 = HEAP32[$802 >> 2] | 0;
+ $804 = ($801 + 4) | 0;
+ $805 = $804;
+ $806 = HEAP32[$805 >> 2] | 0;
+ $807 = ___muldi3($803 | 0, $806 | 0, 470296, 0) | 0;
+ $808 = tempRet0;
+ $809 = $3;
+ $810 = $809;
+ $811 = HEAP32[$810 >> 2] | 0;
+ $812 = ($809 + 4) | 0;
+ $813 = $812;
+ $814 = HEAP32[$813 >> 2] | 0;
+ $815 = _i64Add($811 | 0, $814 | 0, $807 | 0, $808 | 0) | 0;
+ $816 = tempRet0;
+ $817 = $3;
+ $818 = $817;
+ HEAP32[$818 >> 2] = $815;
+ $819 = ($817 + 4) | 0;
+ $820 = $819;
+ HEAP32[$820 >> 2] = $816;
+ $821 = $14;
+ $822 = $821;
+ $823 = HEAP32[$822 >> 2] | 0;
+ $824 = ($821 + 4) | 0;
+ $825 = $824;
+ $826 = HEAP32[$825 >> 2] | 0;
+ $827 = ___muldi3($823 | 0, $826 | 0, 654183, 0) | 0;
+ $828 = tempRet0;
+ $829 = $4;
+ $830 = $829;
+ $831 = HEAP32[$830 >> 2] | 0;
+ $832 = ($829 + 4) | 0;
+ $833 = $832;
+ $834 = HEAP32[$833 >> 2] | 0;
+ $835 = _i64Add($831 | 0, $834 | 0, $827 | 0, $828 | 0) | 0;
+ $836 = tempRet0;
+ $837 = $4;
+ $838 = $837;
+ HEAP32[$838 >> 2] = $835;
+ $839 = ($837 + 4) | 0;
+ $840 = $839;
+ HEAP32[$840 >> 2] = $836;
+ $841 = $14;
+ $842 = $841;
+ $843 = HEAP32[$842 >> 2] | 0;
+ $844 = ($841 + 4) | 0;
+ $845 = $844;
+ $846 = HEAP32[$845 >> 2] | 0;
+ $847 = ___muldi3($843 | 0, $846 | 0, 997805, 0) | 0;
+ $848 = tempRet0;
+ $849 = $5;
$850 = $849;
- $851 = $850 & 7;
- $852 = ($851|0)==(0);
- $853 = (0 - ($850))|0;
- $854 = $853 & 7;
- $855 = $852 ? 0 : $854;
- $856 = (($848) + ($855)|0);
- $857 = ((($585)) + 16|0);
- $858 = ($856>>>0)<($857>>>0);
- $859 = $858 ? $585 : $856;
- $860 = ((($859)) + 8|0);
- $861 = ((($859)) + 24|0);
- $862 = (($$723947$i) + -40)|0;
- $863 = ((($$748$i)) + 8|0);
- $864 = $863;
- $865 = $864 & 7;
- $866 = ($865|0)==(0);
- $867 = (0 - ($864))|0;
- $868 = $867 & 7;
- $869 = $866 ? 0 : $868;
- $870 = (($$748$i) + ($869)|0);
- $871 = (($862) - ($869))|0;
- HEAP32[(1208)>>2] = $870;
- HEAP32[(1196)>>2] = $871;
- $872 = $871 | 1;
- $873 = ((($870)) + 4|0);
- HEAP32[$873>>2] = $872;
- $874 = (($$748$i) + ($862)|0);
- $875 = ((($874)) + 4|0);
- HEAP32[$875>>2] = 40;
- $876 = HEAP32[(1672)>>2]|0;
- HEAP32[(1212)>>2] = $876;
- $877 = ((($859)) + 4|0);
- HEAP32[$877>>2] = 27;
- ;HEAP32[$860>>2]=HEAP32[(1632)>>2]|0;HEAP32[$860+4>>2]=HEAP32[(1632)+4>>2]|0;HEAP32[$860+8>>2]=HEAP32[(1632)+8>>2]|0;HEAP32[$860+12>>2]=HEAP32[(1632)+12>>2]|0;
- HEAP32[(1632)>>2] = $$748$i;
- HEAP32[(1636)>>2] = $$723947$i;
- HEAP32[(1644)>>2] = 0;
- HEAP32[(1640)>>2] = $860;
- $879 = $861;
- while(1) {
- $878 = ((($879)) + 4|0);
- HEAP32[$878>>2] = 7;
- $880 = ((($879)) + 8|0);
- $881 = ($880>>>0)<($844>>>0);
- if ($881) {
- $879 = $878;
- } else {
- break;
- }
- }
- $882 = ($859|0)==($585|0);
- if (!($882)) {
- $883 = $859;
- $884 = $585;
- $885 = (($883) - ($884))|0;
- $886 = HEAP32[$877>>2]|0;
- $887 = $886 & -2;
- HEAP32[$877>>2] = $887;
- $888 = $885 | 1;
- $889 = ((($585)) + 4|0);
- HEAP32[$889>>2] = $888;
- HEAP32[$859>>2] = $885;
- $890 = $885 >>> 3;
- $891 = ($885>>>0)<(256);
- if ($891) {
- $892 = $890 << 1;
- $893 = (1224 + ($892<<2)|0);
- $894 = HEAP32[296]|0;
- $895 = 1 << $890;
- $896 = $894 & $895;
- $897 = ($896|0)==(0);
- if ($897) {
- $898 = $894 | $895;
- HEAP32[296] = $898;
- $$pre$i$i = ((($893)) + 8|0);
- $$0206$i$i = $893;$$pre$phi$i$iZ2D = $$pre$i$i;
- } else {
- $899 = ((($893)) + 8|0);
- $900 = HEAP32[$899>>2]|0;
- $$0206$i$i = $900;$$pre$phi$i$iZ2D = $899;
- }
- HEAP32[$$pre$phi$i$iZ2D>>2] = $585;
- $901 = ((($$0206$i$i)) + 12|0);
- HEAP32[$901>>2] = $585;
- $902 = ((($585)) + 8|0);
- HEAP32[$902>>2] = $$0206$i$i;
- $903 = ((($585)) + 12|0);
- HEAP32[$903>>2] = $893;
- break;
- }
- $904 = $885 >>> 8;
- $905 = ($904|0)==(0);
- if ($905) {
- $$0207$i$i = 0;
- } else {
- $906 = ($885>>>0)>(16777215);
- if ($906) {
- $$0207$i$i = 31;
- } else {
- $907 = (($904) + 1048320)|0;
- $908 = $907 >>> 16;
- $909 = $908 & 8;
- $910 = $904 << $909;
- $911 = (($910) + 520192)|0;
- $912 = $911 >>> 16;
- $913 = $912 & 4;
- $914 = $913 | $909;
- $915 = $910 << $913;
- $916 = (($915) + 245760)|0;
- $917 = $916 >>> 16;
- $918 = $917 & 2;
- $919 = $914 | $918;
- $920 = (14 - ($919))|0;
- $921 = $915 << $918;
- $922 = $921 >>> 15;
- $923 = (($920) + ($922))|0;
- $924 = $923 << 1;
- $925 = (($923) + 7)|0;
- $926 = $885 >>> $925;
- $927 = $926 & 1;
- $928 = $927 | $924;
- $$0207$i$i = $928;
- }
- }
- $929 = (1488 + ($$0207$i$i<<2)|0);
- $930 = ((($585)) + 28|0);
- HEAP32[$930>>2] = $$0207$i$i;
- $931 = ((($585)) + 20|0);
- HEAP32[$931>>2] = 0;
- HEAP32[$857>>2] = 0;
- $932 = HEAP32[(1188)>>2]|0;
- $933 = 1 << $$0207$i$i;
- $934 = $932 & $933;
- $935 = ($934|0)==(0);
- if ($935) {
- $936 = $932 | $933;
- HEAP32[(1188)>>2] = $936;
- HEAP32[$929>>2] = $585;
- $937 = ((($585)) + 24|0);
- HEAP32[$937>>2] = $929;
- $938 = ((($585)) + 12|0);
- HEAP32[$938>>2] = $585;
- $939 = ((($585)) + 8|0);
- HEAP32[$939>>2] = $585;
- break;
- }
- $940 = HEAP32[$929>>2]|0;
- $941 = ((($940)) + 4|0);
- $942 = HEAP32[$941>>2]|0;
- $943 = $942 & -8;
- $944 = ($943|0)==($885|0);
- L325: do {
- if ($944) {
- $$0202$lcssa$i$i = $940;
- } else {
- $945 = ($$0207$i$i|0)==(31);
- $946 = $$0207$i$i >>> 1;
- $947 = (25 - ($946))|0;
- $948 = $945 ? 0 : $947;
- $949 = $885 << $948;
- $$02014$i$i = $949;$$02023$i$i = $940;
- while(1) {
- $956 = $$02014$i$i >>> 31;
- $957 = (((($$02023$i$i)) + 16|0) + ($956<<2)|0);
- $952 = HEAP32[$957>>2]|0;
- $958 = ($952|0)==(0|0);
- if ($958) {
- break;
- }
- $950 = $$02014$i$i << 1;
- $951 = ((($952)) + 4|0);
- $953 = HEAP32[$951>>2]|0;
- $954 = $953 & -8;
- $955 = ($954|0)==($885|0);
- if ($955) {
- $$0202$lcssa$i$i = $952;
- break L325;
- } else {
- $$02014$i$i = $950;$$02023$i$i = $952;
- }
- }
- HEAP32[$957>>2] = $585;
- $959 = ((($585)) + 24|0);
- HEAP32[$959>>2] = $$02023$i$i;
- $960 = ((($585)) + 12|0);
- HEAP32[$960>>2] = $585;
- $961 = ((($585)) + 8|0);
- HEAP32[$961>>2] = $585;
- break L215;
- }
- } while(0);
- $962 = ((($$0202$lcssa$i$i)) + 8|0);
- $963 = HEAP32[$962>>2]|0;
- $964 = ((($963)) + 12|0);
- HEAP32[$964>>2] = $585;
- HEAP32[$962>>2] = $585;
- $965 = ((($585)) + 8|0);
- HEAP32[$965>>2] = $963;
- $966 = ((($585)) + 12|0);
- HEAP32[$966>>2] = $$0202$lcssa$i$i;
- $967 = ((($585)) + 24|0);
- HEAP32[$967>>2] = 0;
- }
- }
- } while(0);
- $969 = HEAP32[(1196)>>2]|0;
- $970 = ($969>>>0)>($$0192>>>0);
- if ($970) {
- $971 = (($969) - ($$0192))|0;
- HEAP32[(1196)>>2] = $971;
- $972 = HEAP32[(1208)>>2]|0;
- $973 = (($972) + ($$0192)|0);
- HEAP32[(1208)>>2] = $973;
- $974 = $971 | 1;
- $975 = ((($973)) + 4|0);
- HEAP32[$975>>2] = $974;
- $976 = $$0192 | 3;
- $977 = ((($972)) + 4|0);
- HEAP32[$977>>2] = $976;
- $978 = ((($972)) + 8|0);
- $$0 = $978;
- STACKTOP = sp;return ($$0|0);
- }
- }
- $979 = (___errno_location()|0);
- HEAP32[$979>>2] = 12;
- $$0 = 0;
- STACKTOP = sp;return ($$0|0);
-}
-function _free($0) {
- $0 = $0|0;
- var $$0194$i = 0, $$0194$in$i = 0, $$0346381 = 0, $$0347$lcssa = 0, $$0347380 = 0, $$0359 = 0, $$0366 = 0, $$1 = 0, $$1345 = 0, $$1350 = 0, $$1350$be = 0, $$1350$ph = 0, $$1353 = 0, $$1353$be = 0, $$1353$ph = 0, $$1361 = 0, $$1361$be = 0, $$1361$ph = 0, $$1365 = 0, $$1365$be = 0;
- var $$1365$ph = 0, $$2 = 0, $$3 = 0, $$3363 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$sink = 0, $$sink395 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0;
- var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0;
- var $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0;
- var $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0;
- var $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0;
- var $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0;
- var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0;
- var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0;
- var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0;
- var $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0;
- var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0;
- var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0;
- var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0;
- var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond371 = 0, $cond372 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $1 = ($0|0)==(0|0);
- if ($1) {
- return;
- }
- $2 = ((($0)) + -8|0);
- $3 = HEAP32[(1200)>>2]|0;
- $4 = ((($0)) + -4|0);
- $5 = HEAP32[$4>>2]|0;
- $6 = $5 & -8;
- $7 = (($2) + ($6)|0);
- $8 = $5 & 1;
- $9 = ($8|0)==(0);
- do {
- if ($9) {
- $10 = HEAP32[$2>>2]|0;
- $11 = $5 & 3;
- $12 = ($11|0)==(0);
- if ($12) {
+ $851 = HEAP32[$850 >> 2] | 0;
+ $852 = ($849 + 4) | 0;
+ $853 = $852;
+ $854 = HEAP32[$853 >> 2] | 0;
+ $855 = _i64Subtract($851 | 0, $854 | 0, $847 | 0, $848 | 0) | 0;
+ $856 = tempRet0;
+ $857 = $5;
+ $858 = $857;
+ HEAP32[$858 >> 2] = $855;
+ $859 = ($857 + 4) | 0;
+ $860 = $859;
+ HEAP32[$860 >> 2] = $856;
+ $861 = $14;
+ $862 = $861;
+ $863 = HEAP32[$862 >> 2] | 0;
+ $864 = ($861 + 4) | 0;
+ $865 = $864;
+ $866 = HEAP32[$865 >> 2] | 0;
+ $867 = ___muldi3($863 | 0, $866 | 0, 136657, 0) | 0;
+ $868 = tempRet0;
+ $869 = $6;
+ $870 = $869;
+ $871 = HEAP32[$870 >> 2] | 0;
+ $872 = ($869 + 4) | 0;
+ $873 = $872;
+ $874 = HEAP32[$873 >> 2] | 0;
+ $875 = _i64Add($871 | 0, $874 | 0, $867 | 0, $868 | 0) | 0;
+ $876 = tempRet0;
+ $877 = $6;
+ $878 = $877;
+ HEAP32[$878 >> 2] = $875;
+ $879 = ($877 + 4) | 0;
+ $880 = $879;
+ HEAP32[$880 >> 2] = $876;
+ $881 = $14;
+ $882 = $881;
+ $883 = HEAP32[$882 >> 2] | 0;
+ $884 = ($881 + 4) | 0;
+ $885 = $884;
+ $886 = HEAP32[$885 >> 2] | 0;
+ $887 = ___muldi3($883 | 0, $886 | 0, 683901, 0) | 0;
+ $888 = tempRet0;
+ $889 = $7;
+ $890 = $889;
+ $891 = HEAP32[$890 >> 2] | 0;
+ $892 = ($889 + 4) | 0;
+ $893 = $892;
+ $894 = HEAP32[$893 >> 2] | 0;
+ $895 = _i64Subtract($891 | 0, $894 | 0, $887 | 0, $888 | 0) | 0;
+ $896 = tempRet0;
+ $897 = $7;
+ $898 = $897;
+ HEAP32[$898 >> 2] = $895;
+ $899 = ($897 + 4) | 0;
+ $900 = $899;
+ HEAP32[$900 >> 2] = $896;
+ $901 = $14;
+ $902 = $901;
+ HEAP32[$902 >> 2] = 0;
+ $903 = ($901 + 4) | 0;
+ $904 = $903;
+ HEAP32[$904 >> 2] = 0;
+ $905 = $2;
+ $906 = $905;
+ $907 = HEAP32[$906 >> 2] | 0;
+ $908 = ($905 + 4) | 0;
+ $909 = $908;
+ $910 = HEAP32[$909 >> 2] | 0;
+ $911 = _bitshift64Ashr($907 | 0, $910 | 0, 21) | 0;
+ $912 = tempRet0;
+ $913 = $15;
+ $914 = $913;
+ HEAP32[$914 >> 2] = $911;
+ $915 = ($913 + 4) | 0;
+ $916 = $915;
+ HEAP32[$916 >> 2] = $912;
+ $917 = $15;
+ $918 = $917;
+ $919 = HEAP32[$918 >> 2] | 0;
+ $920 = ($917 + 4) | 0;
+ $921 = $920;
+ $922 = HEAP32[$921 >> 2] | 0;
+ $923 = $3;
+ $924 = $923;
+ $925 = HEAP32[$924 >> 2] | 0;
+ $926 = ($923 + 4) | 0;
+ $927 = $926;
+ $928 = HEAP32[$927 >> 2] | 0;
+ $929 = _i64Add($925 | 0, $928 | 0, $919 | 0, $922 | 0) | 0;
+ $930 = tempRet0;
+ $931 = $3;
+ $932 = $931;
+ HEAP32[$932 >> 2] = $929;
+ $933 = ($931 + 4) | 0;
+ $934 = $933;
+ HEAP32[$934 >> 2] = $930;
+ $935 = $15;
+ $936 = $935;
+ $937 = HEAP32[$936 >> 2] | 0;
+ $938 = ($935 + 4) | 0;
+ $939 = $938;
+ $940 = HEAP32[$939 >> 2] | 0;
+ $941 = _bitshift64Shl($937 | 0, $940 | 0, 21) | 0;
+ $942 = tempRet0;
+ $943 = $2;
+ $944 = $943;
+ $945 = HEAP32[$944 >> 2] | 0;
+ $946 = ($943 + 4) | 0;
+ $947 = $946;
+ $948 = HEAP32[$947 >> 2] | 0;
+ $949 = _i64Subtract($945 | 0, $948 | 0, $941 | 0, $942 | 0) | 0;
+ $950 = tempRet0;
+ $951 = $2;
+ $952 = $951;
+ HEAP32[$952 >> 2] = $949;
+ $953 = ($951 + 4) | 0;
+ $954 = $953;
+ HEAP32[$954 >> 2] = $950;
+ $955 = $3;
+ $956 = $955;
+ $957 = HEAP32[$956 >> 2] | 0;
+ $958 = ($955 + 4) | 0;
+ $959 = $958;
+ $960 = HEAP32[$959 >> 2] | 0;
+ $961 = _bitshift64Ashr($957 | 0, $960 | 0, 21) | 0;
+ $962 = tempRet0;
+ $963 = $16;
+ $964 = $963;
+ HEAP32[$964 >> 2] = $961;
+ $965 = ($963 + 4) | 0;
+ $966 = $965;
+ HEAP32[$966 >> 2] = $962;
+ $967 = $16;
+ $968 = $967;
+ $969 = HEAP32[$968 >> 2] | 0;
+ $970 = ($967 + 4) | 0;
+ $971 = $970;
+ $972 = HEAP32[$971 >> 2] | 0;
+ $973 = $4;
+ $974 = $973;
+ $975 = HEAP32[$974 >> 2] | 0;
+ $976 = ($973 + 4) | 0;
+ $977 = $976;
+ $978 = HEAP32[$977 >> 2] | 0;
+ $979 = _i64Add($975 | 0, $978 | 0, $969 | 0, $972 | 0) | 0;
+ $980 = tempRet0;
+ $981 = $4;
+ $982 = $981;
+ HEAP32[$982 >> 2] = $979;
+ $983 = ($981 + 4) | 0;
+ $984 = $983;
+ HEAP32[$984 >> 2] = $980;
+ $985 = $16;
+ $986 = $985;
+ $987 = HEAP32[$986 >> 2] | 0;
+ $988 = ($985 + 4) | 0;
+ $989 = $988;
+ $990 = HEAP32[$989 >> 2] | 0;
+ $991 = _bitshift64Shl($987 | 0, $990 | 0, 21) | 0;
+ $992 = tempRet0;
+ $993 = $3;
+ $994 = $993;
+ $995 = HEAP32[$994 >> 2] | 0;
+ $996 = ($993 + 4) | 0;
+ $997 = $996;
+ $998 = HEAP32[$997 >> 2] | 0;
+ $999 = _i64Subtract($995 | 0, $998 | 0, $991 | 0, $992 | 0) | 0;
+ $1000 = tempRet0;
+ $1001 = $3;
+ $1002 = $1001;
+ HEAP32[$1002 >> 2] = $999;
+ $1003 = ($1001 + 4) | 0;
+ $1004 = $1003;
+ HEAP32[$1004 >> 2] = $1000;
+ $1005 = $4;
+ $1006 = $1005;
+ $1007 = HEAP32[$1006 >> 2] | 0;
+ $1008 = ($1005 + 4) | 0;
+ $1009 = $1008;
+ $1010 = HEAP32[$1009 >> 2] | 0;
+ $1011 = _bitshift64Ashr($1007 | 0, $1010 | 0, 21) | 0;
+ $1012 = tempRet0;
+ $1013 = $17;
+ $1014 = $1013;
+ HEAP32[$1014 >> 2] = $1011;
+ $1015 = ($1013 + 4) | 0;
+ $1016 = $1015;
+ HEAP32[$1016 >> 2] = $1012;
+ $1017 = $17;
+ $1018 = $1017;
+ $1019 = HEAP32[$1018 >> 2] | 0;
+ $1020 = ($1017 + 4) | 0;
+ $1021 = $1020;
+ $1022 = HEAP32[$1021 >> 2] | 0;
+ $1023 = $5;
+ $1024 = $1023;
+ $1025 = HEAP32[$1024 >> 2] | 0;
+ $1026 = ($1023 + 4) | 0;
+ $1027 = $1026;
+ $1028 = HEAP32[$1027 >> 2] | 0;
+ $1029 = _i64Add($1025 | 0, $1028 | 0, $1019 | 0, $1022 | 0) | 0;
+ $1030 = tempRet0;
+ $1031 = $5;
+ $1032 = $1031;
+ HEAP32[$1032 >> 2] = $1029;
+ $1033 = ($1031 + 4) | 0;
+ $1034 = $1033;
+ HEAP32[$1034 >> 2] = $1030;
+ $1035 = $17;
+ $1036 = $1035;
+ $1037 = HEAP32[$1036 >> 2] | 0;
+ $1038 = ($1035 + 4) | 0;
+ $1039 = $1038;
+ $1040 = HEAP32[$1039 >> 2] | 0;
+ $1041 = _bitshift64Shl($1037 | 0, $1040 | 0, 21) | 0;
+ $1042 = tempRet0;
+ $1043 = $4;
+ $1044 = $1043;
+ $1045 = HEAP32[$1044 >> 2] | 0;
+ $1046 = ($1043 + 4) | 0;
+ $1047 = $1046;
+ $1048 = HEAP32[$1047 >> 2] | 0;
+ $1049 = _i64Subtract($1045 | 0, $1048 | 0, $1041 | 0, $1042 | 0) | 0;
+ $1050 = tempRet0;
+ $1051 = $4;
+ $1052 = $1051;
+ HEAP32[$1052 >> 2] = $1049;
+ $1053 = ($1051 + 4) | 0;
+ $1054 = $1053;
+ HEAP32[$1054 >> 2] = $1050;
+ $1055 = $5;
+ $1056 = $1055;
+ $1057 = HEAP32[$1056 >> 2] | 0;
+ $1058 = ($1055 + 4) | 0;
+ $1059 = $1058;
+ $1060 = HEAP32[$1059 >> 2] | 0;
+ $1061 = _bitshift64Ashr($1057 | 0, $1060 | 0, 21) | 0;
+ $1062 = tempRet0;
+ $1063 = $18;
+ $1064 = $1063;
+ HEAP32[$1064 >> 2] = $1061;
+ $1065 = ($1063 + 4) | 0;
+ $1066 = $1065;
+ HEAP32[$1066 >> 2] = $1062;
+ $1067 = $18;
+ $1068 = $1067;
+ $1069 = HEAP32[$1068 >> 2] | 0;
+ $1070 = ($1067 + 4) | 0;
+ $1071 = $1070;
+ $1072 = HEAP32[$1071 >> 2] | 0;
+ $1073 = $6;
+ $1074 = $1073;
+ $1075 = HEAP32[$1074 >> 2] | 0;
+ $1076 = ($1073 + 4) | 0;
+ $1077 = $1076;
+ $1078 = HEAP32[$1077 >> 2] | 0;
+ $1079 = _i64Add($1075 | 0, $1078 | 0, $1069 | 0, $1072 | 0) | 0;
+ $1080 = tempRet0;
+ $1081 = $6;
+ $1082 = $1081;
+ HEAP32[$1082 >> 2] = $1079;
+ $1083 = ($1081 + 4) | 0;
+ $1084 = $1083;
+ HEAP32[$1084 >> 2] = $1080;
+ $1085 = $18;
+ $1086 = $1085;
+ $1087 = HEAP32[$1086 >> 2] | 0;
+ $1088 = ($1085 + 4) | 0;
+ $1089 = $1088;
+ $1090 = HEAP32[$1089 >> 2] | 0;
+ $1091 = _bitshift64Shl($1087 | 0, $1090 | 0, 21) | 0;
+ $1092 = tempRet0;
+ $1093 = $5;
+ $1094 = $1093;
+ $1095 = HEAP32[$1094 >> 2] | 0;
+ $1096 = ($1093 + 4) | 0;
+ $1097 = $1096;
+ $1098 = HEAP32[$1097 >> 2] | 0;
+ $1099 = _i64Subtract($1095 | 0, $1098 | 0, $1091 | 0, $1092 | 0) | 0;
+ $1100 = tempRet0;
+ $1101 = $5;
+ $1102 = $1101;
+ HEAP32[$1102 >> 2] = $1099;
+ $1103 = ($1101 + 4) | 0;
+ $1104 = $1103;
+ HEAP32[$1104 >> 2] = $1100;
+ $1105 = $6;
+ $1106 = $1105;
+ $1107 = HEAP32[$1106 >> 2] | 0;
+ $1108 = ($1105 + 4) | 0;
+ $1109 = $1108;
+ $1110 = HEAP32[$1109 >> 2] | 0;
+ $1111 = _bitshift64Ashr($1107 | 0, $1110 | 0, 21) | 0;
+ $1112 = tempRet0;
+ $1113 = $19;
+ $1114 = $1113;
+ HEAP32[$1114 >> 2] = $1111;
+ $1115 = ($1113 + 4) | 0;
+ $1116 = $1115;
+ HEAP32[$1116 >> 2] = $1112;
+ $1117 = $19;
+ $1118 = $1117;
+ $1119 = HEAP32[$1118 >> 2] | 0;
+ $1120 = ($1117 + 4) | 0;
+ $1121 = $1120;
+ $1122 = HEAP32[$1121 >> 2] | 0;
+ $1123 = $7;
+ $1124 = $1123;
+ $1125 = HEAP32[$1124 >> 2] | 0;
+ $1126 = ($1123 + 4) | 0;
+ $1127 = $1126;
+ $1128 = HEAP32[$1127 >> 2] | 0;
+ $1129 = _i64Add($1125 | 0, $1128 | 0, $1119 | 0, $1122 | 0) | 0;
+ $1130 = tempRet0;
+ $1131 = $7;
+ $1132 = $1131;
+ HEAP32[$1132 >> 2] = $1129;
+ $1133 = ($1131 + 4) | 0;
+ $1134 = $1133;
+ HEAP32[$1134 >> 2] = $1130;
+ $1135 = $19;
+ $1136 = $1135;
+ $1137 = HEAP32[$1136 >> 2] | 0;
+ $1138 = ($1135 + 4) | 0;
+ $1139 = $1138;
+ $1140 = HEAP32[$1139 >> 2] | 0;
+ $1141 = _bitshift64Shl($1137 | 0, $1140 | 0, 21) | 0;
+ $1142 = tempRet0;
+ $1143 = $6;
+ $1144 = $1143;
+ $1145 = HEAP32[$1144 >> 2] | 0;
+ $1146 = ($1143 + 4) | 0;
+ $1147 = $1146;
+ $1148 = HEAP32[$1147 >> 2] | 0;
+ $1149 = _i64Subtract($1145 | 0, $1148 | 0, $1141 | 0, $1142 | 0) | 0;
+ $1150 = tempRet0;
+ $1151 = $6;
+ $1152 = $1151;
+ HEAP32[$1152 >> 2] = $1149;
+ $1153 = ($1151 + 4) | 0;
+ $1154 = $1153;
+ HEAP32[$1154 >> 2] = $1150;
+ $1155 = $7;
+ $1156 = $1155;
+ $1157 = HEAP32[$1156 >> 2] | 0;
+ $1158 = ($1155 + 4) | 0;
+ $1159 = $1158;
+ $1160 = HEAP32[$1159 >> 2] | 0;
+ $1161 = _bitshift64Ashr($1157 | 0, $1160 | 0, 21) | 0;
+ $1162 = tempRet0;
+ $1163 = $20;
+ $1164 = $1163;
+ HEAP32[$1164 >> 2] = $1161;
+ $1165 = ($1163 + 4) | 0;
+ $1166 = $1165;
+ HEAP32[$1166 >> 2] = $1162;
+ $1167 = $20;
+ $1168 = $1167;
+ $1169 = HEAP32[$1168 >> 2] | 0;
+ $1170 = ($1167 + 4) | 0;
+ $1171 = $1170;
+ $1172 = HEAP32[$1171 >> 2] | 0;
+ $1173 = $8;
+ $1174 = $1173;
+ $1175 = HEAP32[$1174 >> 2] | 0;
+ $1176 = ($1173 + 4) | 0;
+ $1177 = $1176;
+ $1178 = HEAP32[$1177 >> 2] | 0;
+ $1179 = _i64Add($1175 | 0, $1178 | 0, $1169 | 0, $1172 | 0) | 0;
+ $1180 = tempRet0;
+ $1181 = $8;
+ $1182 = $1181;
+ HEAP32[$1182 >> 2] = $1179;
+ $1183 = ($1181 + 4) | 0;
+ $1184 = $1183;
+ HEAP32[$1184 >> 2] = $1180;
+ $1185 = $20;
+ $1186 = $1185;
+ $1187 = HEAP32[$1186 >> 2] | 0;
+ $1188 = ($1185 + 4) | 0;
+ $1189 = $1188;
+ $1190 = HEAP32[$1189 >> 2] | 0;
+ $1191 = _bitshift64Shl($1187 | 0, $1190 | 0, 21) | 0;
+ $1192 = tempRet0;
+ $1193 = $7;
+ $1194 = $1193;
+ $1195 = HEAP32[$1194 >> 2] | 0;
+ $1196 = ($1193 + 4) | 0;
+ $1197 = $1196;
+ $1198 = HEAP32[$1197 >> 2] | 0;
+ $1199 = _i64Subtract($1195 | 0, $1198 | 0, $1191 | 0, $1192 | 0) | 0;
+ $1200 = tempRet0;
+ $1201 = $7;
+ $1202 = $1201;
+ HEAP32[$1202 >> 2] = $1199;
+ $1203 = ($1201 + 4) | 0;
+ $1204 = $1203;
+ HEAP32[$1204 >> 2] = $1200;
+ $1205 = $8;
+ $1206 = $1205;
+ $1207 = HEAP32[$1206 >> 2] | 0;
+ $1208 = ($1205 + 4) | 0;
+ $1209 = $1208;
+ $1210 = HEAP32[$1209 >> 2] | 0;
+ $1211 = _bitshift64Ashr($1207 | 0, $1210 | 0, 21) | 0;
+ $1212 = tempRet0;
+ $1213 = $21;
+ $1214 = $1213;
+ HEAP32[$1214 >> 2] = $1211;
+ $1215 = ($1213 + 4) | 0;
+ $1216 = $1215;
+ HEAP32[$1216 >> 2] = $1212;
+ $1217 = $21;
+ $1218 = $1217;
+ $1219 = HEAP32[$1218 >> 2] | 0;
+ $1220 = ($1217 + 4) | 0;
+ $1221 = $1220;
+ $1222 = HEAP32[$1221 >> 2] | 0;
+ $1223 = $9;
+ $1224 = $1223;
+ $1225 = HEAP32[$1224 >> 2] | 0;
+ $1226 = ($1223 + 4) | 0;
+ $1227 = $1226;
+ $1228 = HEAP32[$1227 >> 2] | 0;
+ $1229 = _i64Add($1225 | 0, $1228 | 0, $1219 | 0, $1222 | 0) | 0;
+ $1230 = tempRet0;
+ $1231 = $9;
+ $1232 = $1231;
+ HEAP32[$1232 >> 2] = $1229;
+ $1233 = ($1231 + 4) | 0;
+ $1234 = $1233;
+ HEAP32[$1234 >> 2] = $1230;
+ $1235 = $21;
+ $1236 = $1235;
+ $1237 = HEAP32[$1236 >> 2] | 0;
+ $1238 = ($1235 + 4) | 0;
+ $1239 = $1238;
+ $1240 = HEAP32[$1239 >> 2] | 0;
+ $1241 = _bitshift64Shl($1237 | 0, $1240 | 0, 21) | 0;
+ $1242 = tempRet0;
+ $1243 = $8;
+ $1244 = $1243;
+ $1245 = HEAP32[$1244 >> 2] | 0;
+ $1246 = ($1243 + 4) | 0;
+ $1247 = $1246;
+ $1248 = HEAP32[$1247 >> 2] | 0;
+ $1249 = _i64Subtract($1245 | 0, $1248 | 0, $1241 | 0, $1242 | 0) | 0;
+ $1250 = tempRet0;
+ $1251 = $8;
+ $1252 = $1251;
+ HEAP32[$1252 >> 2] = $1249;
+ $1253 = ($1251 + 4) | 0;
+ $1254 = $1253;
+ HEAP32[$1254 >> 2] = $1250;
+ $1255 = $9;
+ $1256 = $1255;
+ $1257 = HEAP32[$1256 >> 2] | 0;
+ $1258 = ($1255 + 4) | 0;
+ $1259 = $1258;
+ $1260 = HEAP32[$1259 >> 2] | 0;
+ $1261 = _bitshift64Ashr($1257 | 0, $1260 | 0, 21) | 0;
+ $1262 = tempRet0;
+ $1263 = $22;
+ $1264 = $1263;
+ HEAP32[$1264 >> 2] = $1261;
+ $1265 = ($1263 + 4) | 0;
+ $1266 = $1265;
+ HEAP32[$1266 >> 2] = $1262;
+ $1267 = $22;
+ $1268 = $1267;
+ $1269 = HEAP32[$1268 >> 2] | 0;
+ $1270 = ($1267 + 4) | 0;
+ $1271 = $1270;
+ $1272 = HEAP32[$1271 >> 2] | 0;
+ $1273 = $10;
+ $1274 = $1273;
+ $1275 = HEAP32[$1274 >> 2] | 0;
+ $1276 = ($1273 + 4) | 0;
+ $1277 = $1276;
+ $1278 = HEAP32[$1277 >> 2] | 0;
+ $1279 = _i64Add($1275 | 0, $1278 | 0, $1269 | 0, $1272 | 0) | 0;
+ $1280 = tempRet0;
+ $1281 = $10;
+ $1282 = $1281;
+ HEAP32[$1282 >> 2] = $1279;
+ $1283 = ($1281 + 4) | 0;
+ $1284 = $1283;
+ HEAP32[$1284 >> 2] = $1280;
+ $1285 = $22;
+ $1286 = $1285;
+ $1287 = HEAP32[$1286 >> 2] | 0;
+ $1288 = ($1285 + 4) | 0;
+ $1289 = $1288;
+ $1290 = HEAP32[$1289 >> 2] | 0;
+ $1291 = _bitshift64Shl($1287 | 0, $1290 | 0, 21) | 0;
+ $1292 = tempRet0;
+ $1293 = $9;
+ $1294 = $1293;
+ $1295 = HEAP32[$1294 >> 2] | 0;
+ $1296 = ($1293 + 4) | 0;
+ $1297 = $1296;
+ $1298 = HEAP32[$1297 >> 2] | 0;
+ $1299 = _i64Subtract($1295 | 0, $1298 | 0, $1291 | 0, $1292 | 0) | 0;
+ $1300 = tempRet0;
+ $1301 = $9;
+ $1302 = $1301;
+ HEAP32[$1302 >> 2] = $1299;
+ $1303 = ($1301 + 4) | 0;
+ $1304 = $1303;
+ HEAP32[$1304 >> 2] = $1300;
+ $1305 = $10;
+ $1306 = $1305;
+ $1307 = HEAP32[$1306 >> 2] | 0;
+ $1308 = ($1305 + 4) | 0;
+ $1309 = $1308;
+ $1310 = HEAP32[$1309 >> 2] | 0;
+ $1311 = _bitshift64Ashr($1307 | 0, $1310 | 0, 21) | 0;
+ $1312 = tempRet0;
+ $1313 = $23;
+ $1314 = $1313;
+ HEAP32[$1314 >> 2] = $1311;
+ $1315 = ($1313 + 4) | 0;
+ $1316 = $1315;
+ HEAP32[$1316 >> 2] = $1312;
+ $1317 = $23;
+ $1318 = $1317;
+ $1319 = HEAP32[$1318 >> 2] | 0;
+ $1320 = ($1317 + 4) | 0;
+ $1321 = $1320;
+ $1322 = HEAP32[$1321 >> 2] | 0;
+ $1323 = $11;
+ $1324 = $1323;
+ $1325 = HEAP32[$1324 >> 2] | 0;
+ $1326 = ($1323 + 4) | 0;
+ $1327 = $1326;
+ $1328 = HEAP32[$1327 >> 2] | 0;
+ $1329 = _i64Add($1325 | 0, $1328 | 0, $1319 | 0, $1322 | 0) | 0;
+ $1330 = tempRet0;
+ $1331 = $11;
+ $1332 = $1331;
+ HEAP32[$1332 >> 2] = $1329;
+ $1333 = ($1331 + 4) | 0;
+ $1334 = $1333;
+ HEAP32[$1334 >> 2] = $1330;
+ $1335 = $23;
+ $1336 = $1335;
+ $1337 = HEAP32[$1336 >> 2] | 0;
+ $1338 = ($1335 + 4) | 0;
+ $1339 = $1338;
+ $1340 = HEAP32[$1339 >> 2] | 0;
+ $1341 = _bitshift64Shl($1337 | 0, $1340 | 0, 21) | 0;
+ $1342 = tempRet0;
+ $1343 = $10;
+ $1344 = $1343;
+ $1345 = HEAP32[$1344 >> 2] | 0;
+ $1346 = ($1343 + 4) | 0;
+ $1347 = $1346;
+ $1348 = HEAP32[$1347 >> 2] | 0;
+ $1349 = _i64Subtract($1345 | 0, $1348 | 0, $1341 | 0, $1342 | 0) | 0;
+ $1350 = tempRet0;
+ $1351 = $10;
+ $1352 = $1351;
+ HEAP32[$1352 >> 2] = $1349;
+ $1353 = ($1351 + 4) | 0;
+ $1354 = $1353;
+ HEAP32[$1354 >> 2] = $1350;
+ $1355 = $11;
+ $1356 = $1355;
+ $1357 = HEAP32[$1356 >> 2] | 0;
+ $1358 = ($1355 + 4) | 0;
+ $1359 = $1358;
+ $1360 = HEAP32[$1359 >> 2] | 0;
+ $1361 = _bitshift64Ashr($1357 | 0, $1360 | 0, 21) | 0;
+ $1362 = tempRet0;
+ $1363 = $24;
+ $1364 = $1363;
+ HEAP32[$1364 >> 2] = $1361;
+ $1365 = ($1363 + 4) | 0;
+ $1366 = $1365;
+ HEAP32[$1366 >> 2] = $1362;
+ $1367 = $24;
+ $1368 = $1367;
+ $1369 = HEAP32[$1368 >> 2] | 0;
+ $1370 = ($1367 + 4) | 0;
+ $1371 = $1370;
+ $1372 = HEAP32[$1371 >> 2] | 0;
+ $1373 = $12;
+ $1374 = $1373;
+ $1375 = HEAP32[$1374 >> 2] | 0;
+ $1376 = ($1373 + 4) | 0;
+ $1377 = $1376;
+ $1378 = HEAP32[$1377 >> 2] | 0;
+ $1379 = _i64Add($1375 | 0, $1378 | 0, $1369 | 0, $1372 | 0) | 0;
+ $1380 = tempRet0;
+ $1381 = $12;
+ $1382 = $1381;
+ HEAP32[$1382 >> 2] = $1379;
+ $1383 = ($1381 + 4) | 0;
+ $1384 = $1383;
+ HEAP32[$1384 >> 2] = $1380;
+ $1385 = $24;
+ $1386 = $1385;
+ $1387 = HEAP32[$1386 >> 2] | 0;
+ $1388 = ($1385 + 4) | 0;
+ $1389 = $1388;
+ $1390 = HEAP32[$1389 >> 2] | 0;
+ $1391 = _bitshift64Shl($1387 | 0, $1390 | 0, 21) | 0;
+ $1392 = tempRet0;
+ $1393 = $11;
+ $1394 = $1393;
+ $1395 = HEAP32[$1394 >> 2] | 0;
+ $1396 = ($1393 + 4) | 0;
+ $1397 = $1396;
+ $1398 = HEAP32[$1397 >> 2] | 0;
+ $1399 = _i64Subtract($1395 | 0, $1398 | 0, $1391 | 0, $1392 | 0) | 0;
+ $1400 = tempRet0;
+ $1401 = $11;
+ $1402 = $1401;
+ HEAP32[$1402 >> 2] = $1399;
+ $1403 = ($1401 + 4) | 0;
+ $1404 = $1403;
+ HEAP32[$1404 >> 2] = $1400;
+ $1405 = $12;
+ $1406 = $1405;
+ $1407 = HEAP32[$1406 >> 2] | 0;
+ $1408 = ($1405 + 4) | 0;
+ $1409 = $1408;
+ $1410 = HEAP32[$1409 >> 2] | 0;
+ $1411 = _bitshift64Ashr($1407 | 0, $1410 | 0, 21) | 0;
+ $1412 = tempRet0;
+ $1413 = $25;
+ $1414 = $1413;
+ HEAP32[$1414 >> 2] = $1411;
+ $1415 = ($1413 + 4) | 0;
+ $1416 = $1415;
+ HEAP32[$1416 >> 2] = $1412;
+ $1417 = $25;
+ $1418 = $1417;
+ $1419 = HEAP32[$1418 >> 2] | 0;
+ $1420 = ($1417 + 4) | 0;
+ $1421 = $1420;
+ $1422 = HEAP32[$1421 >> 2] | 0;
+ $1423 = $13;
+ $1424 = $1423;
+ $1425 = HEAP32[$1424 >> 2] | 0;
+ $1426 = ($1423 + 4) | 0;
+ $1427 = $1426;
+ $1428 = HEAP32[$1427 >> 2] | 0;
+ $1429 = _i64Add($1425 | 0, $1428 | 0, $1419 | 0, $1422 | 0) | 0;
+ $1430 = tempRet0;
+ $1431 = $13;
+ $1432 = $1431;
+ HEAP32[$1432 >> 2] = $1429;
+ $1433 = ($1431 + 4) | 0;
+ $1434 = $1433;
+ HEAP32[$1434 >> 2] = $1430;
+ $1435 = $25;
+ $1436 = $1435;
+ $1437 = HEAP32[$1436 >> 2] | 0;
+ $1438 = ($1435 + 4) | 0;
+ $1439 = $1438;
+ $1440 = HEAP32[$1439 >> 2] | 0;
+ $1441 = _bitshift64Shl($1437 | 0, $1440 | 0, 21) | 0;
+ $1442 = tempRet0;
+ $1443 = $12;
+ $1444 = $1443;
+ $1445 = HEAP32[$1444 >> 2] | 0;
+ $1446 = ($1443 + 4) | 0;
+ $1447 = $1446;
+ $1448 = HEAP32[$1447 >> 2] | 0;
+ $1449 = _i64Subtract($1445 | 0, $1448 | 0, $1441 | 0, $1442 | 0) | 0;
+ $1450 = tempRet0;
+ $1451 = $12;
+ $1452 = $1451;
+ HEAP32[$1452 >> 2] = $1449;
+ $1453 = ($1451 + 4) | 0;
+ $1454 = $1453;
+ HEAP32[$1454 >> 2] = $1450;
+ $1455 = $13;
+ $1456 = $1455;
+ $1457 = HEAP32[$1456 >> 2] | 0;
+ $1458 = ($1455 + 4) | 0;
+ $1459 = $1458;
+ $1460 = HEAP32[$1459 >> 2] | 0;
+ $1461 = _bitshift64Ashr($1457 | 0, $1460 | 0, 21) | 0;
+ $1462 = tempRet0;
+ $1463 = $26;
+ $1464 = $1463;
+ HEAP32[$1464 >> 2] = $1461;
+ $1465 = ($1463 + 4) | 0;
+ $1466 = $1465;
+ HEAP32[$1466 >> 2] = $1462;
+ $1467 = $26;
+ $1468 = $1467;
+ $1469 = HEAP32[$1468 >> 2] | 0;
+ $1470 = ($1467 + 4) | 0;
+ $1471 = $1470;
+ $1472 = HEAP32[$1471 >> 2] | 0;
+ $1473 = $14;
+ $1474 = $1473;
+ $1475 = HEAP32[$1474 >> 2] | 0;
+ $1476 = ($1473 + 4) | 0;
+ $1477 = $1476;
+ $1478 = HEAP32[$1477 >> 2] | 0;
+ $1479 = _i64Add($1475 | 0, $1478 | 0, $1469 | 0, $1472 | 0) | 0;
+ $1480 = tempRet0;
+ $1481 = $14;
+ $1482 = $1481;
+ HEAP32[$1482 >> 2] = $1479;
+ $1483 = ($1481 + 4) | 0;
+ $1484 = $1483;
+ HEAP32[$1484 >> 2] = $1480;
+ $1485 = $26;
+ $1486 = $1485;
+ $1487 = HEAP32[$1486 >> 2] | 0;
+ $1488 = ($1485 + 4) | 0;
+ $1489 = $1488;
+ $1490 = HEAP32[$1489 >> 2] | 0;
+ $1491 = _bitshift64Shl($1487 | 0, $1490 | 0, 21) | 0;
+ $1492 = tempRet0;
+ $1493 = $13;
+ $1494 = $1493;
+ $1495 = HEAP32[$1494 >> 2] | 0;
+ $1496 = ($1493 + 4) | 0;
+ $1497 = $1496;
+ $1498 = HEAP32[$1497 >> 2] | 0;
+ $1499 = _i64Subtract($1495 | 0, $1498 | 0, $1491 | 0, $1492 | 0) | 0;
+ $1500 = tempRet0;
+ $1501 = $13;
+ $1502 = $1501;
+ HEAP32[$1502 >> 2] = $1499;
+ $1503 = ($1501 + 4) | 0;
+ $1504 = $1503;
+ HEAP32[$1504 >> 2] = $1500;
+ $1505 = $14;
+ $1506 = $1505;
+ $1507 = HEAP32[$1506 >> 2] | 0;
+ $1508 = ($1505 + 4) | 0;
+ $1509 = $1508;
+ $1510 = HEAP32[$1509 >> 2] | 0;
+ $1511 = ___muldi3($1507 | 0, $1510 | 0, 666643, 0) | 0;
+ $1512 = tempRet0;
+ $1513 = $2;
+ $1514 = $1513;
+ $1515 = HEAP32[$1514 >> 2] | 0;
+ $1516 = ($1513 + 4) | 0;
+ $1517 = $1516;
+ $1518 = HEAP32[$1517 >> 2] | 0;
+ $1519 = _i64Add($1515 | 0, $1518 | 0, $1511 | 0, $1512 | 0) | 0;
+ $1520 = tempRet0;
+ $1521 = $2;
+ $1522 = $1521;
+ HEAP32[$1522 >> 2] = $1519;
+ $1523 = ($1521 + 4) | 0;
+ $1524 = $1523;
+ HEAP32[$1524 >> 2] = $1520;
+ $1525 = $14;
+ $1526 = $1525;
+ $1527 = HEAP32[$1526 >> 2] | 0;
+ $1528 = ($1525 + 4) | 0;
+ $1529 = $1528;
+ $1530 = HEAP32[$1529 >> 2] | 0;
+ $1531 = ___muldi3($1527 | 0, $1530 | 0, 470296, 0) | 0;
+ $1532 = tempRet0;
+ $1533 = $3;
+ $1534 = $1533;
+ $1535 = HEAP32[$1534 >> 2] | 0;
+ $1536 = ($1533 + 4) | 0;
+ $1537 = $1536;
+ $1538 = HEAP32[$1537 >> 2] | 0;
+ $1539 = _i64Add($1535 | 0, $1538 | 0, $1531 | 0, $1532 | 0) | 0;
+ $1540 = tempRet0;
+ $1541 = $3;
+ $1542 = $1541;
+ HEAP32[$1542 >> 2] = $1539;
+ $1543 = ($1541 + 4) | 0;
+ $1544 = $1543;
+ HEAP32[$1544 >> 2] = $1540;
+ $1545 = $14;
+ $1546 = $1545;
+ $1547 = HEAP32[$1546 >> 2] | 0;
+ $1548 = ($1545 + 4) | 0;
+ $1549 = $1548;
+ $1550 = HEAP32[$1549 >> 2] | 0;
+ $1551 = ___muldi3($1547 | 0, $1550 | 0, 654183, 0) | 0;
+ $1552 = tempRet0;
+ $1553 = $4;
+ $1554 = $1553;
+ $1555 = HEAP32[$1554 >> 2] | 0;
+ $1556 = ($1553 + 4) | 0;
+ $1557 = $1556;
+ $1558 = HEAP32[$1557 >> 2] | 0;
+ $1559 = _i64Add($1555 | 0, $1558 | 0, $1551 | 0, $1552 | 0) | 0;
+ $1560 = tempRet0;
+ $1561 = $4;
+ $1562 = $1561;
+ HEAP32[$1562 >> 2] = $1559;
+ $1563 = ($1561 + 4) | 0;
+ $1564 = $1563;
+ HEAP32[$1564 >> 2] = $1560;
+ $1565 = $14;
+ $1566 = $1565;
+ $1567 = HEAP32[$1566 >> 2] | 0;
+ $1568 = ($1565 + 4) | 0;
+ $1569 = $1568;
+ $1570 = HEAP32[$1569 >> 2] | 0;
+ $1571 = ___muldi3($1567 | 0, $1570 | 0, 997805, 0) | 0;
+ $1572 = tempRet0;
+ $1573 = $5;
+ $1574 = $1573;
+ $1575 = HEAP32[$1574 >> 2] | 0;
+ $1576 = ($1573 + 4) | 0;
+ $1577 = $1576;
+ $1578 = HEAP32[$1577 >> 2] | 0;
+ $1579 = _i64Subtract($1575 | 0, $1578 | 0, $1571 | 0, $1572 | 0) | 0;
+ $1580 = tempRet0;
+ $1581 = $5;
+ $1582 = $1581;
+ HEAP32[$1582 >> 2] = $1579;
+ $1583 = ($1581 + 4) | 0;
+ $1584 = $1583;
+ HEAP32[$1584 >> 2] = $1580;
+ $1585 = $14;
+ $1586 = $1585;
+ $1587 = HEAP32[$1586 >> 2] | 0;
+ $1588 = ($1585 + 4) | 0;
+ $1589 = $1588;
+ $1590 = HEAP32[$1589 >> 2] | 0;
+ $1591 = ___muldi3($1587 | 0, $1590 | 0, 136657, 0) | 0;
+ $1592 = tempRet0;
+ $1593 = $6;
+ $1594 = $1593;
+ $1595 = HEAP32[$1594 >> 2] | 0;
+ $1596 = ($1593 + 4) | 0;
+ $1597 = $1596;
+ $1598 = HEAP32[$1597 >> 2] | 0;
+ $1599 = _i64Add($1595 | 0, $1598 | 0, $1591 | 0, $1592 | 0) | 0;
+ $1600 = tempRet0;
+ $1601 = $6;
+ $1602 = $1601;
+ HEAP32[$1602 >> 2] = $1599;
+ $1603 = ($1601 + 4) | 0;
+ $1604 = $1603;
+ HEAP32[$1604 >> 2] = $1600;
+ $1605 = $14;
+ $1606 = $1605;
+ $1607 = HEAP32[$1606 >> 2] | 0;
+ $1608 = ($1605 + 4) | 0;
+ $1609 = $1608;
+ $1610 = HEAP32[$1609 >> 2] | 0;
+ $1611 = ___muldi3($1607 | 0, $1610 | 0, 683901, 0) | 0;
+ $1612 = tempRet0;
+ $1613 = $7;
+ $1614 = $1613;
+ $1615 = HEAP32[$1614 >> 2] | 0;
+ $1616 = ($1613 + 4) | 0;
+ $1617 = $1616;
+ $1618 = HEAP32[$1617 >> 2] | 0;
+ $1619 = _i64Subtract($1615 | 0, $1618 | 0, $1611 | 0, $1612 | 0) | 0;
+ $1620 = tempRet0;
+ $1621 = $7;
+ $1622 = $1621;
+ HEAP32[$1622 >> 2] = $1619;
+ $1623 = ($1621 + 4) | 0;
+ $1624 = $1623;
+ HEAP32[$1624 >> 2] = $1620;
+ $1625 = $2;
+ $1626 = $1625;
+ $1627 = HEAP32[$1626 >> 2] | 0;
+ $1628 = ($1625 + 4) | 0;
+ $1629 = $1628;
+ $1630 = HEAP32[$1629 >> 2] | 0;
+ $1631 = _bitshift64Ashr($1627 | 0, $1630 | 0, 21) | 0;
+ $1632 = tempRet0;
+ $1633 = $15;
+ $1634 = $1633;
+ HEAP32[$1634 >> 2] = $1631;
+ $1635 = ($1633 + 4) | 0;
+ $1636 = $1635;
+ HEAP32[$1636 >> 2] = $1632;
+ $1637 = $15;
+ $1638 = $1637;
+ $1639 = HEAP32[$1638 >> 2] | 0;
+ $1640 = ($1637 + 4) | 0;
+ $1641 = $1640;
+ $1642 = HEAP32[$1641 >> 2] | 0;
+ $1643 = $3;
+ $1644 = $1643;
+ $1645 = HEAP32[$1644 >> 2] | 0;
+ $1646 = ($1643 + 4) | 0;
+ $1647 = $1646;
+ $1648 = HEAP32[$1647 >> 2] | 0;
+ $1649 = _i64Add($1645 | 0, $1648 | 0, $1639 | 0, $1642 | 0) | 0;
+ $1650 = tempRet0;
+ $1651 = $3;
+ $1652 = $1651;
+ HEAP32[$1652 >> 2] = $1649;
+ $1653 = ($1651 + 4) | 0;
+ $1654 = $1653;
+ HEAP32[$1654 >> 2] = $1650;
+ $1655 = $15;
+ $1656 = $1655;
+ $1657 = HEAP32[$1656 >> 2] | 0;
+ $1658 = ($1655 + 4) | 0;
+ $1659 = $1658;
+ $1660 = HEAP32[$1659 >> 2] | 0;
+ $1661 = _bitshift64Shl($1657 | 0, $1660 | 0, 21) | 0;
+ $1662 = tempRet0;
+ $1663 = $2;
+ $1664 = $1663;
+ $1665 = HEAP32[$1664 >> 2] | 0;
+ $1666 = ($1663 + 4) | 0;
+ $1667 = $1666;
+ $1668 = HEAP32[$1667 >> 2] | 0;
+ $1669 = _i64Subtract($1665 | 0, $1668 | 0, $1661 | 0, $1662 | 0) | 0;
+ $1670 = tempRet0;
+ $1671 = $2;
+ $1672 = $1671;
+ HEAP32[$1672 >> 2] = $1669;
+ $1673 = ($1671 + 4) | 0;
+ $1674 = $1673;
+ HEAP32[$1674 >> 2] = $1670;
+ $1675 = $3;
+ $1676 = $1675;
+ $1677 = HEAP32[$1676 >> 2] | 0;
+ $1678 = ($1675 + 4) | 0;
+ $1679 = $1678;
+ $1680 = HEAP32[$1679 >> 2] | 0;
+ $1681 = _bitshift64Ashr($1677 | 0, $1680 | 0, 21) | 0;
+ $1682 = tempRet0;
+ $1683 = $16;
+ $1684 = $1683;
+ HEAP32[$1684 >> 2] = $1681;
+ $1685 = ($1683 + 4) | 0;
+ $1686 = $1685;
+ HEAP32[$1686 >> 2] = $1682;
+ $1687 = $16;
+ $1688 = $1687;
+ $1689 = HEAP32[$1688 >> 2] | 0;
+ $1690 = ($1687 + 4) | 0;
+ $1691 = $1690;
+ $1692 = HEAP32[$1691 >> 2] | 0;
+ $1693 = $4;
+ $1694 = $1693;
+ $1695 = HEAP32[$1694 >> 2] | 0;
+ $1696 = ($1693 + 4) | 0;
+ $1697 = $1696;
+ $1698 = HEAP32[$1697 >> 2] | 0;
+ $1699 = _i64Add($1695 | 0, $1698 | 0, $1689 | 0, $1692 | 0) | 0;
+ $1700 = tempRet0;
+ $1701 = $4;
+ $1702 = $1701;
+ HEAP32[$1702 >> 2] = $1699;
+ $1703 = ($1701 + 4) | 0;
+ $1704 = $1703;
+ HEAP32[$1704 >> 2] = $1700;
+ $1705 = $16;
+ $1706 = $1705;
+ $1707 = HEAP32[$1706 >> 2] | 0;
+ $1708 = ($1705 + 4) | 0;
+ $1709 = $1708;
+ $1710 = HEAP32[$1709 >> 2] | 0;
+ $1711 = _bitshift64Shl($1707 | 0, $1710 | 0, 21) | 0;
+ $1712 = tempRet0;
+ $1713 = $3;
+ $1714 = $1713;
+ $1715 = HEAP32[$1714 >> 2] | 0;
+ $1716 = ($1713 + 4) | 0;
+ $1717 = $1716;
+ $1718 = HEAP32[$1717 >> 2] | 0;
+ $1719 = _i64Subtract($1715 | 0, $1718 | 0, $1711 | 0, $1712 | 0) | 0;
+ $1720 = tempRet0;
+ $1721 = $3;
+ $1722 = $1721;
+ HEAP32[$1722 >> 2] = $1719;
+ $1723 = ($1721 + 4) | 0;
+ $1724 = $1723;
+ HEAP32[$1724 >> 2] = $1720;
+ $1725 = $4;
+ $1726 = $1725;
+ $1727 = HEAP32[$1726 >> 2] | 0;
+ $1728 = ($1725 + 4) | 0;
+ $1729 = $1728;
+ $1730 = HEAP32[$1729 >> 2] | 0;
+ $1731 = _bitshift64Ashr($1727 | 0, $1730 | 0, 21) | 0;
+ $1732 = tempRet0;
+ $1733 = $17;
+ $1734 = $1733;
+ HEAP32[$1734 >> 2] = $1731;
+ $1735 = ($1733 + 4) | 0;
+ $1736 = $1735;
+ HEAP32[$1736 >> 2] = $1732;
+ $1737 = $17;
+ $1738 = $1737;
+ $1739 = HEAP32[$1738 >> 2] | 0;
+ $1740 = ($1737 + 4) | 0;
+ $1741 = $1740;
+ $1742 = HEAP32[$1741 >> 2] | 0;
+ $1743 = $5;
+ $1744 = $1743;
+ $1745 = HEAP32[$1744 >> 2] | 0;
+ $1746 = ($1743 + 4) | 0;
+ $1747 = $1746;
+ $1748 = HEAP32[$1747 >> 2] | 0;
+ $1749 = _i64Add($1745 | 0, $1748 | 0, $1739 | 0, $1742 | 0) | 0;
+ $1750 = tempRet0;
+ $1751 = $5;
+ $1752 = $1751;
+ HEAP32[$1752 >> 2] = $1749;
+ $1753 = ($1751 + 4) | 0;
+ $1754 = $1753;
+ HEAP32[$1754 >> 2] = $1750;
+ $1755 = $17;
+ $1756 = $1755;
+ $1757 = HEAP32[$1756 >> 2] | 0;
+ $1758 = ($1755 + 4) | 0;
+ $1759 = $1758;
+ $1760 = HEAP32[$1759 >> 2] | 0;
+ $1761 = _bitshift64Shl($1757 | 0, $1760 | 0, 21) | 0;
+ $1762 = tempRet0;
+ $1763 = $4;
+ $1764 = $1763;
+ $1765 = HEAP32[$1764 >> 2] | 0;
+ $1766 = ($1763 + 4) | 0;
+ $1767 = $1766;
+ $1768 = HEAP32[$1767 >> 2] | 0;
+ $1769 = _i64Subtract($1765 | 0, $1768 | 0, $1761 | 0, $1762 | 0) | 0;
+ $1770 = tempRet0;
+ $1771 = $4;
+ $1772 = $1771;
+ HEAP32[$1772 >> 2] = $1769;
+ $1773 = ($1771 + 4) | 0;
+ $1774 = $1773;
+ HEAP32[$1774 >> 2] = $1770;
+ $1775 = $5;
+ $1776 = $1775;
+ $1777 = HEAP32[$1776 >> 2] | 0;
+ $1778 = ($1775 + 4) | 0;
+ $1779 = $1778;
+ $1780 = HEAP32[$1779 >> 2] | 0;
+ $1781 = _bitshift64Ashr($1777 | 0, $1780 | 0, 21) | 0;
+ $1782 = tempRet0;
+ $1783 = $18;
+ $1784 = $1783;
+ HEAP32[$1784 >> 2] = $1781;
+ $1785 = ($1783 + 4) | 0;
+ $1786 = $1785;
+ HEAP32[$1786 >> 2] = $1782;
+ $1787 = $18;
+ $1788 = $1787;
+ $1789 = HEAP32[$1788 >> 2] | 0;
+ $1790 = ($1787 + 4) | 0;
+ $1791 = $1790;
+ $1792 = HEAP32[$1791 >> 2] | 0;
+ $1793 = $6;
+ $1794 = $1793;
+ $1795 = HEAP32[$1794 >> 2] | 0;
+ $1796 = ($1793 + 4) | 0;
+ $1797 = $1796;
+ $1798 = HEAP32[$1797 >> 2] | 0;
+ $1799 = _i64Add($1795 | 0, $1798 | 0, $1789 | 0, $1792 | 0) | 0;
+ $1800 = tempRet0;
+ $1801 = $6;
+ $1802 = $1801;
+ HEAP32[$1802 >> 2] = $1799;
+ $1803 = ($1801 + 4) | 0;
+ $1804 = $1803;
+ HEAP32[$1804 >> 2] = $1800;
+ $1805 = $18;
+ $1806 = $1805;
+ $1807 = HEAP32[$1806 >> 2] | 0;
+ $1808 = ($1805 + 4) | 0;
+ $1809 = $1808;
+ $1810 = HEAP32[$1809 >> 2] | 0;
+ $1811 = _bitshift64Shl($1807 | 0, $1810 | 0, 21) | 0;
+ $1812 = tempRet0;
+ $1813 = $5;
+ $1814 = $1813;
+ $1815 = HEAP32[$1814 >> 2] | 0;
+ $1816 = ($1813 + 4) | 0;
+ $1817 = $1816;
+ $1818 = HEAP32[$1817 >> 2] | 0;
+ $1819 = _i64Subtract($1815 | 0, $1818 | 0, $1811 | 0, $1812 | 0) | 0;
+ $1820 = tempRet0;
+ $1821 = $5;
+ $1822 = $1821;
+ HEAP32[$1822 >> 2] = $1819;
+ $1823 = ($1821 + 4) | 0;
+ $1824 = $1823;
+ HEAP32[$1824 >> 2] = $1820;
+ $1825 = $6;
+ $1826 = $1825;
+ $1827 = HEAP32[$1826 >> 2] | 0;
+ $1828 = ($1825 + 4) | 0;
+ $1829 = $1828;
+ $1830 = HEAP32[$1829 >> 2] | 0;
+ $1831 = _bitshift64Ashr($1827 | 0, $1830 | 0, 21) | 0;
+ $1832 = tempRet0;
+ $1833 = $19;
+ $1834 = $1833;
+ HEAP32[$1834 >> 2] = $1831;
+ $1835 = ($1833 + 4) | 0;
+ $1836 = $1835;
+ HEAP32[$1836 >> 2] = $1832;
+ $1837 = $19;
+ $1838 = $1837;
+ $1839 = HEAP32[$1838 >> 2] | 0;
+ $1840 = ($1837 + 4) | 0;
+ $1841 = $1840;
+ $1842 = HEAP32[$1841 >> 2] | 0;
+ $1843 = $7;
+ $1844 = $1843;
+ $1845 = HEAP32[$1844 >> 2] | 0;
+ $1846 = ($1843 + 4) | 0;
+ $1847 = $1846;
+ $1848 = HEAP32[$1847 >> 2] | 0;
+ $1849 = _i64Add($1845 | 0, $1848 | 0, $1839 | 0, $1842 | 0) | 0;
+ $1850 = tempRet0;
+ $1851 = $7;
+ $1852 = $1851;
+ HEAP32[$1852 >> 2] = $1849;
+ $1853 = ($1851 + 4) | 0;
+ $1854 = $1853;
+ HEAP32[$1854 >> 2] = $1850;
+ $1855 = $19;
+ $1856 = $1855;
+ $1857 = HEAP32[$1856 >> 2] | 0;
+ $1858 = ($1855 + 4) | 0;
+ $1859 = $1858;
+ $1860 = HEAP32[$1859 >> 2] | 0;
+ $1861 = _bitshift64Shl($1857 | 0, $1860 | 0, 21) | 0;
+ $1862 = tempRet0;
+ $1863 = $6;
+ $1864 = $1863;
+ $1865 = HEAP32[$1864 >> 2] | 0;
+ $1866 = ($1863 + 4) | 0;
+ $1867 = $1866;
+ $1868 = HEAP32[$1867 >> 2] | 0;
+ $1869 = _i64Subtract($1865 | 0, $1868 | 0, $1861 | 0, $1862 | 0) | 0;
+ $1870 = tempRet0;
+ $1871 = $6;
+ $1872 = $1871;
+ HEAP32[$1872 >> 2] = $1869;
+ $1873 = ($1871 + 4) | 0;
+ $1874 = $1873;
+ HEAP32[$1874 >> 2] = $1870;
+ $1875 = $7;
+ $1876 = $1875;
+ $1877 = HEAP32[$1876 >> 2] | 0;
+ $1878 = ($1875 + 4) | 0;
+ $1879 = $1878;
+ $1880 = HEAP32[$1879 >> 2] | 0;
+ $1881 = _bitshift64Ashr($1877 | 0, $1880 | 0, 21) | 0;
+ $1882 = tempRet0;
+ $1883 = $20;
+ $1884 = $1883;
+ HEAP32[$1884 >> 2] = $1881;
+ $1885 = ($1883 + 4) | 0;
+ $1886 = $1885;
+ HEAP32[$1886 >> 2] = $1882;
+ $1887 = $20;
+ $1888 = $1887;
+ $1889 = HEAP32[$1888 >> 2] | 0;
+ $1890 = ($1887 + 4) | 0;
+ $1891 = $1890;
+ $1892 = HEAP32[$1891 >> 2] | 0;
+ $1893 = $8;
+ $1894 = $1893;
+ $1895 = HEAP32[$1894 >> 2] | 0;
+ $1896 = ($1893 + 4) | 0;
+ $1897 = $1896;
+ $1898 = HEAP32[$1897 >> 2] | 0;
+ $1899 = _i64Add($1895 | 0, $1898 | 0, $1889 | 0, $1892 | 0) | 0;
+ $1900 = tempRet0;
+ $1901 = $8;
+ $1902 = $1901;
+ HEAP32[$1902 >> 2] = $1899;
+ $1903 = ($1901 + 4) | 0;
+ $1904 = $1903;
+ HEAP32[$1904 >> 2] = $1900;
+ $1905 = $20;
+ $1906 = $1905;
+ $1907 = HEAP32[$1906 >> 2] | 0;
+ $1908 = ($1905 + 4) | 0;
+ $1909 = $1908;
+ $1910 = HEAP32[$1909 >> 2] | 0;
+ $1911 = _bitshift64Shl($1907 | 0, $1910 | 0, 21) | 0;
+ $1912 = tempRet0;
+ $1913 = $7;
+ $1914 = $1913;
+ $1915 = HEAP32[$1914 >> 2] | 0;
+ $1916 = ($1913 + 4) | 0;
+ $1917 = $1916;
+ $1918 = HEAP32[$1917 >> 2] | 0;
+ $1919 = _i64Subtract($1915 | 0, $1918 | 0, $1911 | 0, $1912 | 0) | 0;
+ $1920 = tempRet0;
+ $1921 = $7;
+ $1922 = $1921;
+ HEAP32[$1922 >> 2] = $1919;
+ $1923 = ($1921 + 4) | 0;
+ $1924 = $1923;
+ HEAP32[$1924 >> 2] = $1920;
+ $1925 = $8;
+ $1926 = $1925;
+ $1927 = HEAP32[$1926 >> 2] | 0;
+ $1928 = ($1925 + 4) | 0;
+ $1929 = $1928;
+ $1930 = HEAP32[$1929 >> 2] | 0;
+ $1931 = _bitshift64Ashr($1927 | 0, $1930 | 0, 21) | 0;
+ $1932 = tempRet0;
+ $1933 = $21;
+ $1934 = $1933;
+ HEAP32[$1934 >> 2] = $1931;
+ $1935 = ($1933 + 4) | 0;
+ $1936 = $1935;
+ HEAP32[$1936 >> 2] = $1932;
+ $1937 = $21;
+ $1938 = $1937;
+ $1939 = HEAP32[$1938 >> 2] | 0;
+ $1940 = ($1937 + 4) | 0;
+ $1941 = $1940;
+ $1942 = HEAP32[$1941 >> 2] | 0;
+ $1943 = $9;
+ $1944 = $1943;
+ $1945 = HEAP32[$1944 >> 2] | 0;
+ $1946 = ($1943 + 4) | 0;
+ $1947 = $1946;
+ $1948 = HEAP32[$1947 >> 2] | 0;
+ $1949 = _i64Add($1945 | 0, $1948 | 0, $1939 | 0, $1942 | 0) | 0;
+ $1950 = tempRet0;
+ $1951 = $9;
+ $1952 = $1951;
+ HEAP32[$1952 >> 2] = $1949;
+ $1953 = ($1951 + 4) | 0;
+ $1954 = $1953;
+ HEAP32[$1954 >> 2] = $1950;
+ $1955 = $21;
+ $1956 = $1955;
+ $1957 = HEAP32[$1956 >> 2] | 0;
+ $1958 = ($1955 + 4) | 0;
+ $1959 = $1958;
+ $1960 = HEAP32[$1959 >> 2] | 0;
+ $1961 = _bitshift64Shl($1957 | 0, $1960 | 0, 21) | 0;
+ $1962 = tempRet0;
+ $1963 = $8;
+ $1964 = $1963;
+ $1965 = HEAP32[$1964 >> 2] | 0;
+ $1966 = ($1963 + 4) | 0;
+ $1967 = $1966;
+ $1968 = HEAP32[$1967 >> 2] | 0;
+ $1969 = _i64Subtract($1965 | 0, $1968 | 0, $1961 | 0, $1962 | 0) | 0;
+ $1970 = tempRet0;
+ $1971 = $8;
+ $1972 = $1971;
+ HEAP32[$1972 >> 2] = $1969;
+ $1973 = ($1971 + 4) | 0;
+ $1974 = $1973;
+ HEAP32[$1974 >> 2] = $1970;
+ $1975 = $9;
+ $1976 = $1975;
+ $1977 = HEAP32[$1976 >> 2] | 0;
+ $1978 = ($1975 + 4) | 0;
+ $1979 = $1978;
+ $1980 = HEAP32[$1979 >> 2] | 0;
+ $1981 = _bitshift64Ashr($1977 | 0, $1980 | 0, 21) | 0;
+ $1982 = tempRet0;
+ $1983 = $22;
+ $1984 = $1983;
+ HEAP32[$1984 >> 2] = $1981;
+ $1985 = ($1983 + 4) | 0;
+ $1986 = $1985;
+ HEAP32[$1986 >> 2] = $1982;
+ $1987 = $22;
+ $1988 = $1987;
+ $1989 = HEAP32[$1988 >> 2] | 0;
+ $1990 = ($1987 + 4) | 0;
+ $1991 = $1990;
+ $1992 = HEAP32[$1991 >> 2] | 0;
+ $1993 = $10;
+ $1994 = $1993;
+ $1995 = HEAP32[$1994 >> 2] | 0;
+ $1996 = ($1993 + 4) | 0;
+ $1997 = $1996;
+ $1998 = HEAP32[$1997 >> 2] | 0;
+ $1999 = _i64Add($1995 | 0, $1998 | 0, $1989 | 0, $1992 | 0) | 0;
+ $2000 = tempRet0;
+ $2001 = $10;
+ $2002 = $2001;
+ HEAP32[$2002 >> 2] = $1999;
+ $2003 = ($2001 + 4) | 0;
+ $2004 = $2003;
+ HEAP32[$2004 >> 2] = $2000;
+ $2005 = $22;
+ $2006 = $2005;
+ $2007 = HEAP32[$2006 >> 2] | 0;
+ $2008 = ($2005 + 4) | 0;
+ $2009 = $2008;
+ $2010 = HEAP32[$2009 >> 2] | 0;
+ $2011 = _bitshift64Shl($2007 | 0, $2010 | 0, 21) | 0;
+ $2012 = tempRet0;
+ $2013 = $9;
+ $2014 = $2013;
+ $2015 = HEAP32[$2014 >> 2] | 0;
+ $2016 = ($2013 + 4) | 0;
+ $2017 = $2016;
+ $2018 = HEAP32[$2017 >> 2] | 0;
+ $2019 = _i64Subtract($2015 | 0, $2018 | 0, $2011 | 0, $2012 | 0) | 0;
+ $2020 = tempRet0;
+ $2021 = $9;
+ $2022 = $2021;
+ HEAP32[$2022 >> 2] = $2019;
+ $2023 = ($2021 + 4) | 0;
+ $2024 = $2023;
+ HEAP32[$2024 >> 2] = $2020;
+ $2025 = $10;
+ $2026 = $2025;
+ $2027 = HEAP32[$2026 >> 2] | 0;
+ $2028 = ($2025 + 4) | 0;
+ $2029 = $2028;
+ $2030 = HEAP32[$2029 >> 2] | 0;
+ $2031 = _bitshift64Ashr($2027 | 0, $2030 | 0, 21) | 0;
+ $2032 = tempRet0;
+ $2033 = $23;
+ $2034 = $2033;
+ HEAP32[$2034 >> 2] = $2031;
+ $2035 = ($2033 + 4) | 0;
+ $2036 = $2035;
+ HEAP32[$2036 >> 2] = $2032;
+ $2037 = $23;
+ $2038 = $2037;
+ $2039 = HEAP32[$2038 >> 2] | 0;
+ $2040 = ($2037 + 4) | 0;
+ $2041 = $2040;
+ $2042 = HEAP32[$2041 >> 2] | 0;
+ $2043 = $11;
+ $2044 = $2043;
+ $2045 = HEAP32[$2044 >> 2] | 0;
+ $2046 = ($2043 + 4) | 0;
+ $2047 = $2046;
+ $2048 = HEAP32[$2047 >> 2] | 0;
+ $2049 = _i64Add($2045 | 0, $2048 | 0, $2039 | 0, $2042 | 0) | 0;
+ $2050 = tempRet0;
+ $2051 = $11;
+ $2052 = $2051;
+ HEAP32[$2052 >> 2] = $2049;
+ $2053 = ($2051 + 4) | 0;
+ $2054 = $2053;
+ HEAP32[$2054 >> 2] = $2050;
+ $2055 = $23;
+ $2056 = $2055;
+ $2057 = HEAP32[$2056 >> 2] | 0;
+ $2058 = ($2055 + 4) | 0;
+ $2059 = $2058;
+ $2060 = HEAP32[$2059 >> 2] | 0;
+ $2061 = _bitshift64Shl($2057 | 0, $2060 | 0, 21) | 0;
+ $2062 = tempRet0;
+ $2063 = $10;
+ $2064 = $2063;
+ $2065 = HEAP32[$2064 >> 2] | 0;
+ $2066 = ($2063 + 4) | 0;
+ $2067 = $2066;
+ $2068 = HEAP32[$2067 >> 2] | 0;
+ $2069 = _i64Subtract($2065 | 0, $2068 | 0, $2061 | 0, $2062 | 0) | 0;
+ $2070 = tempRet0;
+ $2071 = $10;
+ $2072 = $2071;
+ HEAP32[$2072 >> 2] = $2069;
+ $2073 = ($2071 + 4) | 0;
+ $2074 = $2073;
+ HEAP32[$2074 >> 2] = $2070;
+ $2075 = $11;
+ $2076 = $2075;
+ $2077 = HEAP32[$2076 >> 2] | 0;
+ $2078 = ($2075 + 4) | 0;
+ $2079 = $2078;
+ $2080 = HEAP32[$2079 >> 2] | 0;
+ $2081 = _bitshift64Ashr($2077 | 0, $2080 | 0, 21) | 0;
+ $2082 = tempRet0;
+ $2083 = $24;
+ $2084 = $2083;
+ HEAP32[$2084 >> 2] = $2081;
+ $2085 = ($2083 + 4) | 0;
+ $2086 = $2085;
+ HEAP32[$2086 >> 2] = $2082;
+ $2087 = $24;
+ $2088 = $2087;
+ $2089 = HEAP32[$2088 >> 2] | 0;
+ $2090 = ($2087 + 4) | 0;
+ $2091 = $2090;
+ $2092 = HEAP32[$2091 >> 2] | 0;
+ $2093 = $12;
+ $2094 = $2093;
+ $2095 = HEAP32[$2094 >> 2] | 0;
+ $2096 = ($2093 + 4) | 0;
+ $2097 = $2096;
+ $2098 = HEAP32[$2097 >> 2] | 0;
+ $2099 = _i64Add($2095 | 0, $2098 | 0, $2089 | 0, $2092 | 0) | 0;
+ $2100 = tempRet0;
+ $2101 = $12;
+ $2102 = $2101;
+ HEAP32[$2102 >> 2] = $2099;
+ $2103 = ($2101 + 4) | 0;
+ $2104 = $2103;
+ HEAP32[$2104 >> 2] = $2100;
+ $2105 = $24;
+ $2106 = $2105;
+ $2107 = HEAP32[$2106 >> 2] | 0;
+ $2108 = ($2105 + 4) | 0;
+ $2109 = $2108;
+ $2110 = HEAP32[$2109 >> 2] | 0;
+ $2111 = _bitshift64Shl($2107 | 0, $2110 | 0, 21) | 0;
+ $2112 = tempRet0;
+ $2113 = $11;
+ $2114 = $2113;
+ $2115 = HEAP32[$2114 >> 2] | 0;
+ $2116 = ($2113 + 4) | 0;
+ $2117 = $2116;
+ $2118 = HEAP32[$2117 >> 2] | 0;
+ $2119 = _i64Subtract($2115 | 0, $2118 | 0, $2111 | 0, $2112 | 0) | 0;
+ $2120 = tempRet0;
+ $2121 = $11;
+ $2122 = $2121;
+ HEAP32[$2122 >> 2] = $2119;
+ $2123 = ($2121 + 4) | 0;
+ $2124 = $2123;
+ HEAP32[$2124 >> 2] = $2120;
+ $2125 = $12;
+ $2126 = $2125;
+ $2127 = HEAP32[$2126 >> 2] | 0;
+ $2128 = ($2125 + 4) | 0;
+ $2129 = $2128;
+ $2130 = HEAP32[$2129 >> 2] | 0;
+ $2131 = _bitshift64Ashr($2127 | 0, $2130 | 0, 21) | 0;
+ $2132 = tempRet0;
+ $2133 = $25;
+ $2134 = $2133;
+ HEAP32[$2134 >> 2] = $2131;
+ $2135 = ($2133 + 4) | 0;
+ $2136 = $2135;
+ HEAP32[$2136 >> 2] = $2132;
+ $2137 = $25;
+ $2138 = $2137;
+ $2139 = HEAP32[$2138 >> 2] | 0;
+ $2140 = ($2137 + 4) | 0;
+ $2141 = $2140;
+ $2142 = HEAP32[$2141 >> 2] | 0;
+ $2143 = $13;
+ $2144 = $2143;
+ $2145 = HEAP32[$2144 >> 2] | 0;
+ $2146 = ($2143 + 4) | 0;
+ $2147 = $2146;
+ $2148 = HEAP32[$2147 >> 2] | 0;
+ $2149 = _i64Add($2145 | 0, $2148 | 0, $2139 | 0, $2142 | 0) | 0;
+ $2150 = tempRet0;
+ $2151 = $13;
+ $2152 = $2151;
+ HEAP32[$2152 >> 2] = $2149;
+ $2153 = ($2151 + 4) | 0;
+ $2154 = $2153;
+ HEAP32[$2154 >> 2] = $2150;
+ $2155 = $25;
+ $2156 = $2155;
+ $2157 = HEAP32[$2156 >> 2] | 0;
+ $2158 = ($2155 + 4) | 0;
+ $2159 = $2158;
+ $2160 = HEAP32[$2159 >> 2] | 0;
+ $2161 = _bitshift64Shl($2157 | 0, $2160 | 0, 21) | 0;
+ $2162 = tempRet0;
+ $2163 = $12;
+ $2164 = $2163;
+ $2165 = HEAP32[$2164 >> 2] | 0;
+ $2166 = ($2163 + 4) | 0;
+ $2167 = $2166;
+ $2168 = HEAP32[$2167 >> 2] | 0;
+ $2169 = _i64Subtract($2165 | 0, $2168 | 0, $2161 | 0, $2162 | 0) | 0;
+ $2170 = tempRet0;
+ $2171 = $12;
+ $2172 = $2171;
+ HEAP32[$2172 >> 2] = $2169;
+ $2173 = ($2171 + 4) | 0;
+ $2174 = $2173;
+ HEAP32[$2174 >> 2] = $2170;
+ $2175 = $2;
+ $2176 = $2175;
+ $2177 = HEAP32[$2176 >> 2] | 0;
+ $2178 = ($2175 + 4) | 0;
+ $2179 = $2178;
+ $2180 = HEAP32[$2179 >> 2] | 0;
+ $2181 = _bitshift64Ashr($2177 | 0, $2180 | 0, 0) | 0;
+ $2182 = tempRet0;
+ $2183 = $2181 & 255;
+ $2184 = $1;
+ HEAP8[$2184 >> 0] = $2183;
+ $2185 = $2;
+ $2186 = $2185;
+ $2187 = HEAP32[$2186 >> 2] | 0;
+ $2188 = ($2185 + 4) | 0;
+ $2189 = $2188;
+ $2190 = HEAP32[$2189 >> 2] | 0;
+ $2191 = _bitshift64Ashr($2187 | 0, $2190 | 0, 8) | 0;
+ $2192 = tempRet0;
+ $2193 = $2191 & 255;
+ $2194 = $1;
+ $2195 = ($2194 + 1) | 0;
+ HEAP8[$2195 >> 0] = $2193;
+ $2196 = $2;
+ $2197 = $2196;
+ $2198 = HEAP32[$2197 >> 2] | 0;
+ $2199 = ($2196 + 4) | 0;
+ $2200 = $2199;
+ $2201 = HEAP32[$2200 >> 2] | 0;
+ $2202 = _bitshift64Ashr($2198 | 0, $2201 | 0, 16) | 0;
+ $2203 = tempRet0;
+ $2204 = $3;
+ $2205 = $2204;
+ $2206 = HEAP32[$2205 >> 2] | 0;
+ $2207 = ($2204 + 4) | 0;
+ $2208 = $2207;
+ $2209 = HEAP32[$2208 >> 2] | 0;
+ $2210 = _bitshift64Shl($2206 | 0, $2209 | 0, 5) | 0;
+ $2211 = tempRet0;
+ $2212 = $2202 | $2210;
+ $2203 | $2211;
+ $2213 = $2212 & 255;
+ $2214 = $1;
+ $2215 = ($2214 + 2) | 0;
+ HEAP8[$2215 >> 0] = $2213;
+ $2216 = $3;
+ $2217 = $2216;
+ $2218 = HEAP32[$2217 >> 2] | 0;
+ $2219 = ($2216 + 4) | 0;
+ $2220 = $2219;
+ $2221 = HEAP32[$2220 >> 2] | 0;
+ $2222 = _bitshift64Ashr($2218 | 0, $2221 | 0, 3) | 0;
+ $2223 = tempRet0;
+ $2224 = $2222 & 255;
+ $2225 = $1;
+ $2226 = ($2225 + 3) | 0;
+ HEAP8[$2226 >> 0] = $2224;
+ $2227 = $3;
+ $2228 = $2227;
+ $2229 = HEAP32[$2228 >> 2] | 0;
+ $2230 = ($2227 + 4) | 0;
+ $2231 = $2230;
+ $2232 = HEAP32[$2231 >> 2] | 0;
+ $2233 = _bitshift64Ashr($2229 | 0, $2232 | 0, 11) | 0;
+ $2234 = tempRet0;
+ $2235 = $2233 & 255;
+ $2236 = $1;
+ $2237 = ($2236 + 4) | 0;
+ HEAP8[$2237 >> 0] = $2235;
+ $2238 = $3;
+ $2239 = $2238;
+ $2240 = HEAP32[$2239 >> 2] | 0;
+ $2241 = ($2238 + 4) | 0;
+ $2242 = $2241;
+ $2243 = HEAP32[$2242 >> 2] | 0;
+ $2244 = _bitshift64Ashr($2240 | 0, $2243 | 0, 19) | 0;
+ $2245 = tempRet0;
+ $2246 = $4;
+ $2247 = $2246;
+ $2248 = HEAP32[$2247 >> 2] | 0;
+ $2249 = ($2246 + 4) | 0;
+ $2250 = $2249;
+ $2251 = HEAP32[$2250 >> 2] | 0;
+ $2252 = _bitshift64Shl($2248 | 0, $2251 | 0, 2) | 0;
+ $2253 = tempRet0;
+ $2254 = $2244 | $2252;
+ $2245 | $2253;
+ $2255 = $2254 & 255;
+ $2256 = $1;
+ $2257 = ($2256 + 5) | 0;
+ HEAP8[$2257 >> 0] = $2255;
+ $2258 = $4;
+ $2259 = $2258;
+ $2260 = HEAP32[$2259 >> 2] | 0;
+ $2261 = ($2258 + 4) | 0;
+ $2262 = $2261;
+ $2263 = HEAP32[$2262 >> 2] | 0;
+ $2264 = _bitshift64Ashr($2260 | 0, $2263 | 0, 6) | 0;
+ $2265 = tempRet0;
+ $2266 = $2264 & 255;
+ $2267 = $1;
+ $2268 = ($2267 + 6) | 0;
+ HEAP8[$2268 >> 0] = $2266;
+ $2269 = $4;
+ $2270 = $2269;
+ $2271 = HEAP32[$2270 >> 2] | 0;
+ $2272 = ($2269 + 4) | 0;
+ $2273 = $2272;
+ $2274 = HEAP32[$2273 >> 2] | 0;
+ $2275 = _bitshift64Ashr($2271 | 0, $2274 | 0, 14) | 0;
+ $2276 = tempRet0;
+ $2277 = $5;
+ $2278 = $2277;
+ $2279 = HEAP32[$2278 >> 2] | 0;
+ $2280 = ($2277 + 4) | 0;
+ $2281 = $2280;
+ $2282 = HEAP32[$2281 >> 2] | 0;
+ $2283 = _bitshift64Shl($2279 | 0, $2282 | 0, 7) | 0;
+ $2284 = tempRet0;
+ $2285 = $2275 | $2283;
+ $2276 | $2284;
+ $2286 = $2285 & 255;
+ $2287 = $1;
+ $2288 = ($2287 + 7) | 0;
+ HEAP8[$2288 >> 0] = $2286;
+ $2289 = $5;
+ $2290 = $2289;
+ $2291 = HEAP32[$2290 >> 2] | 0;
+ $2292 = ($2289 + 4) | 0;
+ $2293 = $2292;
+ $2294 = HEAP32[$2293 >> 2] | 0;
+ $2295 = _bitshift64Ashr($2291 | 0, $2294 | 0, 1) | 0;
+ $2296 = tempRet0;
+ $2297 = $2295 & 255;
+ $2298 = $1;
+ $2299 = ($2298 + 8) | 0;
+ HEAP8[$2299 >> 0] = $2297;
+ $2300 = $5;
+ $2301 = $2300;
+ $2302 = HEAP32[$2301 >> 2] | 0;
+ $2303 = ($2300 + 4) | 0;
+ $2304 = $2303;
+ $2305 = HEAP32[$2304 >> 2] | 0;
+ $2306 = _bitshift64Ashr($2302 | 0, $2305 | 0, 9) | 0;
+ $2307 = tempRet0;
+ $2308 = $2306 & 255;
+ $2309 = $1;
+ $2310 = ($2309 + 9) | 0;
+ HEAP8[$2310 >> 0] = $2308;
+ $2311 = $5;
+ $2312 = $2311;
+ $2313 = HEAP32[$2312 >> 2] | 0;
+ $2314 = ($2311 + 4) | 0;
+ $2315 = $2314;
+ $2316 = HEAP32[$2315 >> 2] | 0;
+ $2317 = _bitshift64Ashr($2313 | 0, $2316 | 0, 17) | 0;
+ $2318 = tempRet0;
+ $2319 = $6;
+ $2320 = $2319;
+ $2321 = HEAP32[$2320 >> 2] | 0;
+ $2322 = ($2319 + 4) | 0;
+ $2323 = $2322;
+ $2324 = HEAP32[$2323 >> 2] | 0;
+ $2325 = _bitshift64Shl($2321 | 0, $2324 | 0, 4) | 0;
+ $2326 = tempRet0;
+ $2327 = $2317 | $2325;
+ $2318 | $2326;
+ $2328 = $2327 & 255;
+ $2329 = $1;
+ $2330 = ($2329 + 10) | 0;
+ HEAP8[$2330 >> 0] = $2328;
+ $2331 = $6;
+ $2332 = $2331;
+ $2333 = HEAP32[$2332 >> 2] | 0;
+ $2334 = ($2331 + 4) | 0;
+ $2335 = $2334;
+ $2336 = HEAP32[$2335 >> 2] | 0;
+ $2337 = _bitshift64Ashr($2333 | 0, $2336 | 0, 4) | 0;
+ $2338 = tempRet0;
+ $2339 = $2337 & 255;
+ $2340 = $1;
+ $2341 = ($2340 + 11) | 0;
+ HEAP8[$2341 >> 0] = $2339;
+ $2342 = $6;
+ $2343 = $2342;
+ $2344 = HEAP32[$2343 >> 2] | 0;
+ $2345 = ($2342 + 4) | 0;
+ $2346 = $2345;
+ $2347 = HEAP32[$2346 >> 2] | 0;
+ $2348 = _bitshift64Ashr($2344 | 0, $2347 | 0, 12) | 0;
+ $2349 = tempRet0;
+ $2350 = $2348 & 255;
+ $2351 = $1;
+ $2352 = ($2351 + 12) | 0;
+ HEAP8[$2352 >> 0] = $2350;
+ $2353 = $6;
+ $2354 = $2353;
+ $2355 = HEAP32[$2354 >> 2] | 0;
+ $2356 = ($2353 + 4) | 0;
+ $2357 = $2356;
+ $2358 = HEAP32[$2357 >> 2] | 0;
+ $2359 = _bitshift64Ashr($2355 | 0, $2358 | 0, 20) | 0;
+ $2360 = tempRet0;
+ $2361 = $7;
+ $2362 = $2361;
+ $2363 = HEAP32[$2362 >> 2] | 0;
+ $2364 = ($2361 + 4) | 0;
+ $2365 = $2364;
+ $2366 = HEAP32[$2365 >> 2] | 0;
+ $2367 = _bitshift64Shl($2363 | 0, $2366 | 0, 1) | 0;
+ $2368 = tempRet0;
+ $2369 = $2359 | $2367;
+ $2360 | $2368;
+ $2370 = $2369 & 255;
+ $2371 = $1;
+ $2372 = ($2371 + 13) | 0;
+ HEAP8[$2372 >> 0] = $2370;
+ $2373 = $7;
+ $2374 = $2373;
+ $2375 = HEAP32[$2374 >> 2] | 0;
+ $2376 = ($2373 + 4) | 0;
+ $2377 = $2376;
+ $2378 = HEAP32[$2377 >> 2] | 0;
+ $2379 = _bitshift64Ashr($2375 | 0, $2378 | 0, 7) | 0;
+ $2380 = tempRet0;
+ $2381 = $2379 & 255;
+ $2382 = $1;
+ $2383 = ($2382 + 14) | 0;
+ HEAP8[$2383 >> 0] = $2381;
+ $2384 = $7;
+ $2385 = $2384;
+ $2386 = HEAP32[$2385 >> 2] | 0;
+ $2387 = ($2384 + 4) | 0;
+ $2388 = $2387;
+ $2389 = HEAP32[$2388 >> 2] | 0;
+ $2390 = _bitshift64Ashr($2386 | 0, $2389 | 0, 15) | 0;
+ $2391 = tempRet0;
+ $2392 = $8;
+ $2393 = $2392;
+ $2394 = HEAP32[$2393 >> 2] | 0;
+ $2395 = ($2392 + 4) | 0;
+ $2396 = $2395;
+ $2397 = HEAP32[$2396 >> 2] | 0;
+ $2398 = _bitshift64Shl($2394 | 0, $2397 | 0, 6) | 0;
+ $2399 = tempRet0;
+ $2400 = $2390 | $2398;
+ $2391 | $2399;
+ $2401 = $2400 & 255;
+ $2402 = $1;
+ $2403 = ($2402 + 15) | 0;
+ HEAP8[$2403 >> 0] = $2401;
+ $2404 = $8;
+ $2405 = $2404;
+ $2406 = HEAP32[$2405 >> 2] | 0;
+ $2407 = ($2404 + 4) | 0;
+ $2408 = $2407;
+ $2409 = HEAP32[$2408 >> 2] | 0;
+ $2410 = _bitshift64Ashr($2406 | 0, $2409 | 0, 2) | 0;
+ $2411 = tempRet0;
+ $2412 = $2410 & 255;
+ $2413 = $1;
+ $2414 = ($2413 + 16) | 0;
+ HEAP8[$2414 >> 0] = $2412;
+ $2415 = $8;
+ $2416 = $2415;
+ $2417 = HEAP32[$2416 >> 2] | 0;
+ $2418 = ($2415 + 4) | 0;
+ $2419 = $2418;
+ $2420 = HEAP32[$2419 >> 2] | 0;
+ $2421 = _bitshift64Ashr($2417 | 0, $2420 | 0, 10) | 0;
+ $2422 = tempRet0;
+ $2423 = $2421 & 255;
+ $2424 = $1;
+ $2425 = ($2424 + 17) | 0;
+ HEAP8[$2425 >> 0] = $2423;
+ $2426 = $8;
+ $2427 = $2426;
+ $2428 = HEAP32[$2427 >> 2] | 0;
+ $2429 = ($2426 + 4) | 0;
+ $2430 = $2429;
+ $2431 = HEAP32[$2430 >> 2] | 0;
+ $2432 = _bitshift64Ashr($2428 | 0, $2431 | 0, 18) | 0;
+ $2433 = tempRet0;
+ $2434 = $9;
+ $2435 = $2434;
+ $2436 = HEAP32[$2435 >> 2] | 0;
+ $2437 = ($2434 + 4) | 0;
+ $2438 = $2437;
+ $2439 = HEAP32[$2438 >> 2] | 0;
+ $2440 = _bitshift64Shl($2436 | 0, $2439 | 0, 3) | 0;
+ $2441 = tempRet0;
+ $2442 = $2432 | $2440;
+ $2433 | $2441;
+ $2443 = $2442 & 255;
+ $2444 = $1;
+ $2445 = ($2444 + 18) | 0;
+ HEAP8[$2445 >> 0] = $2443;
+ $2446 = $9;
+ $2447 = $2446;
+ $2448 = HEAP32[$2447 >> 2] | 0;
+ $2449 = ($2446 + 4) | 0;
+ $2450 = $2449;
+ $2451 = HEAP32[$2450 >> 2] | 0;
+ $2452 = _bitshift64Ashr($2448 | 0, $2451 | 0, 5) | 0;
+ $2453 = tempRet0;
+ $2454 = $2452 & 255;
+ $2455 = $1;
+ $2456 = ($2455 + 19) | 0;
+ HEAP8[$2456 >> 0] = $2454;
+ $2457 = $9;
+ $2458 = $2457;
+ $2459 = HEAP32[$2458 >> 2] | 0;
+ $2460 = ($2457 + 4) | 0;
+ $2461 = $2460;
+ $2462 = HEAP32[$2461 >> 2] | 0;
+ $2463 = _bitshift64Ashr($2459 | 0, $2462 | 0, 13) | 0;
+ $2464 = tempRet0;
+ $2465 = $2463 & 255;
+ $2466 = $1;
+ $2467 = ($2466 + 20) | 0;
+ HEAP8[$2467 >> 0] = $2465;
+ $2468 = $10;
+ $2469 = $2468;
+ $2470 = HEAP32[$2469 >> 2] | 0;
+ $2471 = ($2468 + 4) | 0;
+ $2472 = $2471;
+ $2473 = HEAP32[$2472 >> 2] | 0;
+ $2474 = _bitshift64Ashr($2470 | 0, $2473 | 0, 0) | 0;
+ $2475 = tempRet0;
+ $2476 = $2474 & 255;
+ $2477 = $1;
+ $2478 = ($2477 + 21) | 0;
+ HEAP8[$2478 >> 0] = $2476;
+ $2479 = $10;
+ $2480 = $2479;
+ $2481 = HEAP32[$2480 >> 2] | 0;
+ $2482 = ($2479 + 4) | 0;
+ $2483 = $2482;
+ $2484 = HEAP32[$2483 >> 2] | 0;
+ $2485 = _bitshift64Ashr($2481 | 0, $2484 | 0, 8) | 0;
+ $2486 = tempRet0;
+ $2487 = $2485 & 255;
+ $2488 = $1;
+ $2489 = ($2488 + 22) | 0;
+ HEAP8[$2489 >> 0] = $2487;
+ $2490 = $10;
+ $2491 = $2490;
+ $2492 = HEAP32[$2491 >> 2] | 0;
+ $2493 = ($2490 + 4) | 0;
+ $2494 = $2493;
+ $2495 = HEAP32[$2494 >> 2] | 0;
+ $2496 = _bitshift64Ashr($2492 | 0, $2495 | 0, 16) | 0;
+ $2497 = tempRet0;
+ $2498 = $11;
+ $2499 = $2498;
+ $2500 = HEAP32[$2499 >> 2] | 0;
+ $2501 = ($2498 + 4) | 0;
+ $2502 = $2501;
+ $2503 = HEAP32[$2502 >> 2] | 0;
+ $2504 = _bitshift64Shl($2500 | 0, $2503 | 0, 5) | 0;
+ $2505 = tempRet0;
+ $2506 = $2496 | $2504;
+ $2497 | $2505;
+ $2507 = $2506 & 255;
+ $2508 = $1;
+ $2509 = ($2508 + 23) | 0;
+ HEAP8[$2509 >> 0] = $2507;
+ $2510 = $11;
+ $2511 = $2510;
+ $2512 = HEAP32[$2511 >> 2] | 0;
+ $2513 = ($2510 + 4) | 0;
+ $2514 = $2513;
+ $2515 = HEAP32[$2514 >> 2] | 0;
+ $2516 = _bitshift64Ashr($2512 | 0, $2515 | 0, 3) | 0;
+ $2517 = tempRet0;
+ $2518 = $2516 & 255;
+ $2519 = $1;
+ $2520 = ($2519 + 24) | 0;
+ HEAP8[$2520 >> 0] = $2518;
+ $2521 = $11;
+ $2522 = $2521;
+ $2523 = HEAP32[$2522 >> 2] | 0;
+ $2524 = ($2521 + 4) | 0;
+ $2525 = $2524;
+ $2526 = HEAP32[$2525 >> 2] | 0;
+ $2527 = _bitshift64Ashr($2523 | 0, $2526 | 0, 11) | 0;
+ $2528 = tempRet0;
+ $2529 = $2527 & 255;
+ $2530 = $1;
+ $2531 = ($2530 + 25) | 0;
+ HEAP8[$2531 >> 0] = $2529;
+ $2532 = $11;
+ $2533 = $2532;
+ $2534 = HEAP32[$2533 >> 2] | 0;
+ $2535 = ($2532 + 4) | 0;
+ $2536 = $2535;
+ $2537 = HEAP32[$2536 >> 2] | 0;
+ $2538 = _bitshift64Ashr($2534 | 0, $2537 | 0, 19) | 0;
+ $2539 = tempRet0;
+ $2540 = $12;
+ $2541 = $2540;
+ $2542 = HEAP32[$2541 >> 2] | 0;
+ $2543 = ($2540 + 4) | 0;
+ $2544 = $2543;
+ $2545 = HEAP32[$2544 >> 2] | 0;
+ $2546 = _bitshift64Shl($2542 | 0, $2545 | 0, 2) | 0;
+ $2547 = tempRet0;
+ $2548 = $2538 | $2546;
+ $2539 | $2547;
+ $2549 = $2548 & 255;
+ $2550 = $1;
+ $2551 = ($2550 + 26) | 0;
+ HEAP8[$2551 >> 0] = $2549;
+ $2552 = $12;
+ $2553 = $2552;
+ $2554 = HEAP32[$2553 >> 2] | 0;
+ $2555 = ($2552 + 4) | 0;
+ $2556 = $2555;
+ $2557 = HEAP32[$2556 >> 2] | 0;
+ $2558 = _bitshift64Ashr($2554 | 0, $2557 | 0, 6) | 0;
+ $2559 = tempRet0;
+ $2560 = $2558 & 255;
+ $2561 = $1;
+ $2562 = ($2561 + 27) | 0;
+ HEAP8[$2562 >> 0] = $2560;
+ $2563 = $12;
+ $2564 = $2563;
+ $2565 = HEAP32[$2564 >> 2] | 0;
+ $2566 = ($2563 + 4) | 0;
+ $2567 = $2566;
+ $2568 = HEAP32[$2567 >> 2] | 0;
+ $2569 = _bitshift64Ashr($2565 | 0, $2568 | 0, 14) | 0;
+ $2570 = tempRet0;
+ $2571 = $13;
+ $2572 = $2571;
+ $2573 = HEAP32[$2572 >> 2] | 0;
+ $2574 = ($2571 + 4) | 0;
+ $2575 = $2574;
+ $2576 = HEAP32[$2575 >> 2] | 0;
+ $2577 = _bitshift64Shl($2573 | 0, $2576 | 0, 7) | 0;
+ $2578 = tempRet0;
+ $2579 = $2569 | $2577;
+ $2570 | $2578;
+ $2580 = $2579 & 255;
+ $2581 = $1;
+ $2582 = ($2581 + 28) | 0;
+ HEAP8[$2582 >> 0] = $2580;
+ $2583 = $13;
+ $2584 = $2583;
+ $2585 = HEAP32[$2584 >> 2] | 0;
+ $2586 = ($2583 + 4) | 0;
+ $2587 = $2586;
+ $2588 = HEAP32[$2587 >> 2] | 0;
+ $2589 = _bitshift64Ashr($2585 | 0, $2588 | 0, 1) | 0;
+ $2590 = tempRet0;
+ $2591 = $2589 & 255;
+ $2592 = $1;
+ $2593 = ($2592 + 29) | 0;
+ HEAP8[$2593 >> 0] = $2591;
+ $2594 = $13;
+ $2595 = $2594;
+ $2596 = HEAP32[$2595 >> 2] | 0;
+ $2597 = ($2594 + 4) | 0;
+ $2598 = $2597;
+ $2599 = HEAP32[$2598 >> 2] | 0;
+ $2600 = _bitshift64Ashr($2596 | 0, $2599 | 0, 9) | 0;
+ $2601 = tempRet0;
+ $2602 = $2600 & 255;
+ $2603 = $1;
+ $2604 = ($2603 + 30) | 0;
+ HEAP8[$2604 >> 0] = $2602;
+ $2605 = $13;
+ $2606 = $2605;
+ $2607 = HEAP32[$2606 >> 2] | 0;
+ $2608 = ($2605 + 4) | 0;
+ $2609 = $2608;
+ $2610 = HEAP32[$2609 >> 2] | 0;
+ $2611 = _bitshift64Ashr($2607 | 0, $2610 | 0, 17) | 0;
+ $2612 = tempRet0;
+ $2613 = $2611 & 255;
+ $2614 = $1;
+ $2615 = ($2614 + 31) | 0;
+ HEAP8[$2615 >> 0] = $2613;
+ STACKTOP = sp;
return;
- }
- $13 = (0 - ($10))|0;
- $14 = (($2) + ($13)|0);
- $15 = (($10) + ($6))|0;
- $16 = ($14>>>0)<($3>>>0);
- if ($16) {
- return;
- }
- $17 = HEAP32[(1204)>>2]|0;
- $18 = ($17|0)==($14|0);
- if ($18) {
- $79 = ((($7)) + 4|0);
- $80 = HEAP32[$79>>2]|0;
- $81 = $80 & 3;
- $82 = ($81|0)==(3);
- if (!($82)) {
- $$1 = $14;$$1345 = $15;$88 = $14;
- break;
- }
- $83 = (($14) + ($15)|0);
- $84 = ((($14)) + 4|0);
- $85 = $15 | 1;
- $86 = $80 & -2;
- HEAP32[(1192)>>2] = $15;
- HEAP32[$79>>2] = $86;
- HEAP32[$84>>2] = $85;
- HEAP32[$83>>2] = $15;
- return;
- }
- $19 = $10 >>> 3;
- $20 = ($10>>>0)<(256);
- if ($20) {
- $21 = ((($14)) + 8|0);
- $22 = HEAP32[$21>>2]|0;
- $23 = ((($14)) + 12|0);
- $24 = HEAP32[$23>>2]|0;
- $25 = ($24|0)==($22|0);
- if ($25) {
- $26 = 1 << $19;
- $27 = $26 ^ -1;
- $28 = HEAP32[296]|0;
- $29 = $28 & $27;
- HEAP32[296] = $29;
- $$1 = $14;$$1345 = $15;$88 = $14;
- break;
- } else {
- $30 = ((($22)) + 12|0);
- HEAP32[$30>>2] = $24;
- $31 = ((($24)) + 8|0);
- HEAP32[$31>>2] = $22;
- $$1 = $14;$$1345 = $15;$88 = $14;
- break;
- }
- }
- $32 = ((($14)) + 24|0);
- $33 = HEAP32[$32>>2]|0;
- $34 = ((($14)) + 12|0);
- $35 = HEAP32[$34>>2]|0;
- $36 = ($35|0)==($14|0);
- do {
- if ($36) {
- $41 = ((($14)) + 16|0);
- $42 = ((($41)) + 4|0);
- $43 = HEAP32[$42>>2]|0;
- $44 = ($43|0)==(0|0);
- if ($44) {
- $45 = HEAP32[$41>>2]|0;
- $46 = ($45|0)==(0|0);
- if ($46) {
- $$3 = 0;
- break;
- } else {
- $$1350$ph = $45;$$1353$ph = $41;
- }
- } else {
- $$1350$ph = $43;$$1353$ph = $42;
- }
- $$1350 = $$1350$ph;$$1353 = $$1353$ph;
- while(1) {
- $47 = ((($$1350)) + 20|0);
- $48 = HEAP32[$47>>2]|0;
- $49 = ($48|0)==(0|0);
- if ($49) {
- $50 = ((($$1350)) + 16|0);
- $51 = HEAP32[$50>>2]|0;
- $52 = ($51|0)==(0|0);
- if ($52) {
- break;
- } else {
- $$1350$be = $51;$$1353$be = $50;
- }
- } else {
- $$1350$be = $48;$$1353$be = $47;
- }
- $$1350 = $$1350$be;$$1353 = $$1353$be;
- }
- HEAP32[$$1353>>2] = 0;
- $$3 = $$1350;
- } else {
- $37 = ((($14)) + 8|0);
- $38 = HEAP32[$37>>2]|0;
- $39 = ((($38)) + 12|0);
- HEAP32[$39>>2] = $35;
- $40 = ((($35)) + 8|0);
- HEAP32[$40>>2] = $38;
- $$3 = $35;
- }
- } while(0);
- $53 = ($33|0)==(0|0);
- if ($53) {
- $$1 = $14;$$1345 = $15;$88 = $14;
- } else {
- $54 = ((($14)) + 28|0);
- $55 = HEAP32[$54>>2]|0;
- $56 = (1488 + ($55<<2)|0);
- $57 = HEAP32[$56>>2]|0;
- $58 = ($57|0)==($14|0);
- if ($58) {
- HEAP32[$56>>2] = $$3;
- $cond371 = ($$3|0)==(0|0);
- if ($cond371) {
- $59 = 1 << $55;
- $60 = $59 ^ -1;
- $61 = HEAP32[(1188)>>2]|0;
- $62 = $61 & $60;
- HEAP32[(1188)>>2] = $62;
- $$1 = $14;$$1345 = $15;$88 = $14;
- break;
- }
- } else {
- $63 = ((($33)) + 16|0);
- $64 = HEAP32[$63>>2]|0;
- $65 = ($64|0)==($14|0);
- $66 = ((($33)) + 20|0);
- $$sink = $65 ? $63 : $66;
- HEAP32[$$sink>>2] = $$3;
- $67 = ($$3|0)==(0|0);
- if ($67) {
- $$1 = $14;$$1345 = $15;$88 = $14;
- break;
- }
- }
- $68 = ((($$3)) + 24|0);
- HEAP32[$68>>2] = $33;
- $69 = ((($14)) + 16|0);
- $70 = HEAP32[$69>>2]|0;
- $71 = ($70|0)==(0|0);
- if (!($71)) {
- $72 = ((($$3)) + 16|0);
- HEAP32[$72>>2] = $70;
- $73 = ((($70)) + 24|0);
- HEAP32[$73>>2] = $$3;
- }
- $74 = ((($69)) + 4|0);
- $75 = HEAP32[$74>>2]|0;
- $76 = ($75|0)==(0|0);
- if ($76) {
- $$1 = $14;$$1345 = $15;$88 = $14;
- } else {
- $77 = ((($$3)) + 20|0);
- HEAP32[$77>>2] = $75;
- $78 = ((($75)) + 24|0);
- HEAP32[$78>>2] = $$3;
- $$1 = $14;$$1345 = $15;$88 = $14;
- }
- }
- } else {
- $$1 = $2;$$1345 = $6;$88 = $2;
}
- } while(0);
- $87 = ($88>>>0)<($7>>>0);
- if (!($87)) {
- return;
- }
- $89 = ((($7)) + 4|0);
- $90 = HEAP32[$89>>2]|0;
- $91 = $90 & 1;
- $92 = ($91|0)==(0);
- if ($92) {
- return;
- }
- $93 = $90 & 2;
- $94 = ($93|0)==(0);
- if ($94) {
- $95 = HEAP32[(1208)>>2]|0;
- $96 = ($95|0)==($7|0);
- if ($96) {
- $97 = HEAP32[(1196)>>2]|0;
- $98 = (($97) + ($$1345))|0;
- HEAP32[(1196)>>2] = $98;
- HEAP32[(1208)>>2] = $$1;
- $99 = $98 | 1;
- $100 = ((($$1)) + 4|0);
- HEAP32[$100>>2] = $99;
- $101 = HEAP32[(1204)>>2]|0;
- $102 = ($$1|0)==($101|0);
- if (!($102)) {
- return;
- }
- HEAP32[(1204)>>2] = 0;
- HEAP32[(1192)>>2] = 0;
- return;
- }
- $103 = HEAP32[(1204)>>2]|0;
- $104 = ($103|0)==($7|0);
- if ($104) {
- $105 = HEAP32[(1192)>>2]|0;
- $106 = (($105) + ($$1345))|0;
- HEAP32[(1192)>>2] = $106;
- HEAP32[(1204)>>2] = $88;
- $107 = $106 | 1;
- $108 = ((($$1)) + 4|0);
- HEAP32[$108>>2] = $107;
- $109 = (($88) + ($106)|0);
- HEAP32[$109>>2] = $106;
- return;
- }
- $110 = $90 & -8;
- $111 = (($110) + ($$1345))|0;
- $112 = $90 >>> 3;
- $113 = ($90>>>0)<(256);
- do {
- if ($113) {
- $114 = ((($7)) + 8|0);
- $115 = HEAP32[$114>>2]|0;
- $116 = ((($7)) + 12|0);
- $117 = HEAP32[$116>>2]|0;
- $118 = ($117|0)==($115|0);
- if ($118) {
- $119 = 1 << $112;
- $120 = $119 ^ -1;
- $121 = HEAP32[296]|0;
- $122 = $121 & $120;
- HEAP32[296] = $122;
- break;
- } else {
- $123 = ((($115)) + 12|0);
- HEAP32[$123>>2] = $117;
- $124 = ((($117)) + 8|0);
- HEAP32[$124>>2] = $115;
- break;
- }
- } else {
- $125 = ((($7)) + 24|0);
- $126 = HEAP32[$125>>2]|0;
- $127 = ((($7)) + 12|0);
- $128 = HEAP32[$127>>2]|0;
- $129 = ($128|0)==($7|0);
+ function _malloc($0) {
+ $0 = $0 | 0;
+ var $$0 = 0,
+ $$0$i = 0,
+ $$0$i$i = 0,
+ $$0$i$i$i = 0,
+ $$0$i20$i = 0,
+ $$0169$i = 0,
+ $$0170$i = 0,
+ $$0171$i = 0,
+ $$0192 = 0,
+ $$0194 = 0,
+ $$02014$i$i = 0,
+ $$0202$lcssa$i$i = 0,
+ $$02023$i$i = 0,
+ $$0206$i$i = 0,
+ $$0207$i$i = 0,
+ $$024372$i = 0,
+ $$0259$i$i = 0,
+ $$02604$i$i = 0,
+ $$0261$lcssa$i$i = 0,
+ $$02613$i$i = 0;
+ var $$0267$i$i = 0,
+ $$0268$i$i = 0,
+ $$0318$i = 0,
+ $$032012$i = 0,
+ $$0321$lcssa$i = 0,
+ $$032111$i = 0,
+ $$0323$i = 0,
+ $$0329$i = 0,
+ $$0335$i = 0,
+ $$0336$i = 0,
+ $$0338$i = 0,
+ $$0339$i = 0,
+ $$0344$i = 0,
+ $$1174$i = 0,
+ $$1174$i$be = 0,
+ $$1174$i$ph = 0,
+ $$1176$i = 0,
+ $$1176$i$be = 0,
+ $$1176$i$ph = 0,
+ $$124471$i = 0;
+ var $$1263$i$i = 0,
+ $$1263$i$i$be = 0,
+ $$1263$i$i$ph = 0,
+ $$1265$i$i = 0,
+ $$1265$i$i$be = 0,
+ $$1265$i$i$ph = 0,
+ $$1319$i = 0,
+ $$1324$i = 0,
+ $$1340$i = 0,
+ $$1346$i = 0,
+ $$1346$i$be = 0,
+ $$1346$i$ph = 0,
+ $$1350$i = 0,
+ $$1350$i$be = 0,
+ $$1350$i$ph = 0,
+ $$2234243136$i = 0,
+ $$2247$ph$i = 0,
+ $$2253$ph$i = 0,
+ $$2331$i = 0,
+ $$3$i = 0;
+ var $$3$i$i = 0,
+ $$3$i198 = 0,
+ $$3$i198211 = 0,
+ $$3326$i = 0,
+ $$3348$i = 0,
+ $$4$lcssa$i = 0,
+ $$415$i = 0,
+ $$415$i$ph = 0,
+ $$4236$i = 0,
+ $$4327$lcssa$i = 0,
+ $$432714$i = 0,
+ $$432714$i$ph = 0,
+ $$4333$i = 0,
+ $$533413$i = 0,
+ $$533413$i$ph = 0,
+ $$723947$i = 0,
+ $$748$i = 0,
+ $$pre = 0,
+ $$pre$i = 0,
+ $$pre$i$i = 0;
+ var $$pre$i16$i = 0,
+ $$pre$i195 = 0,
+ $$pre$i204 = 0,
+ $$pre$phi$i$iZ2D = 0,
+ $$pre$phi$i17$iZ2D = 0,
+ $$pre$phi$i205Z2D = 0,
+ $$pre$phi$iZ2D = 0,
+ $$pre$phiZ2D = 0,
+ $$sink = 0,
+ $$sink320 = 0,
+ $$sink321 = 0,
+ $1 = 0,
+ $10 = 0,
+ $100 = 0,
+ $101 = 0,
+ $102 = 0,
+ $103 = 0,
+ $104 = 0,
+ $105 = 0,
+ $106 = 0;
+ var $107 = 0,
+ $108 = 0,
+ $109 = 0,
+ $11 = 0,
+ $110 = 0,
+ $111 = 0,
+ $112 = 0,
+ $113 = 0,
+ $114 = 0,
+ $115 = 0,
+ $116 = 0,
+ $117 = 0,
+ $118 = 0,
+ $119 = 0,
+ $12 = 0,
+ $120 = 0,
+ $121 = 0,
+ $122 = 0,
+ $123 = 0,
+ $124 = 0;
+ var $125 = 0,
+ $126 = 0,
+ $127 = 0,
+ $128 = 0,
+ $129 = 0,
+ $13 = 0,
+ $130 = 0,
+ $131 = 0,
+ $132 = 0,
+ $133 = 0,
+ $134 = 0,
+ $135 = 0,
+ $136 = 0,
+ $137 = 0,
+ $138 = 0,
+ $139 = 0,
+ $14 = 0,
+ $140 = 0,
+ $141 = 0,
+ $142 = 0;
+ var $143 = 0,
+ $144 = 0,
+ $145 = 0,
+ $146 = 0,
+ $147 = 0,
+ $148 = 0,
+ $149 = 0,
+ $15 = 0,
+ $150 = 0,
+ $151 = 0,
+ $152 = 0,
+ $153 = 0,
+ $154 = 0,
+ $155 = 0,
+ $156 = 0,
+ $157 = 0,
+ $158 = 0,
+ $159 = 0,
+ $16 = 0,
+ $160 = 0;
+ var $161 = 0,
+ $162 = 0,
+ $163 = 0,
+ $164 = 0,
+ $165 = 0,
+ $166 = 0,
+ $167 = 0,
+ $168 = 0,
+ $169 = 0,
+ $17 = 0,
+ $170 = 0,
+ $171 = 0,
+ $172 = 0,
+ $173 = 0,
+ $174 = 0,
+ $175 = 0,
+ $176 = 0,
+ $177 = 0,
+ $178 = 0,
+ $179 = 0;
+ var $18 = 0,
+ $180 = 0,
+ $181 = 0,
+ $182 = 0,
+ $183 = 0,
+ $184 = 0,
+ $185 = 0,
+ $186 = 0,
+ $187 = 0,
+ $188 = 0,
+ $189 = 0,
+ $19 = 0,
+ $190 = 0,
+ $191 = 0,
+ $192 = 0,
+ $193 = 0,
+ $194 = 0,
+ $195 = 0,
+ $196 = 0,
+ $197 = 0;
+ var $198 = 0,
+ $199 = 0,
+ $2 = 0,
+ $20 = 0,
+ $200 = 0,
+ $201 = 0,
+ $202 = 0,
+ $203 = 0,
+ $204 = 0,
+ $205 = 0,
+ $206 = 0,
+ $207 = 0,
+ $208 = 0,
+ $209 = 0,
+ $21 = 0,
+ $210 = 0,
+ $211 = 0,
+ $212 = 0,
+ $213 = 0,
+ $214 = 0;
+ var $215 = 0,
+ $216 = 0,
+ $217 = 0,
+ $218 = 0,
+ $219 = 0,
+ $22 = 0,
+ $220 = 0,
+ $221 = 0,
+ $222 = 0,
+ $223 = 0,
+ $224 = 0,
+ $225 = 0,
+ $226 = 0,
+ $227 = 0,
+ $228 = 0,
+ $229 = 0,
+ $23 = 0,
+ $230 = 0,
+ $231 = 0,
+ $232 = 0;
+ var $233 = 0,
+ $234 = 0,
+ $235 = 0,
+ $236 = 0,
+ $237 = 0,
+ $238 = 0,
+ $239 = 0,
+ $24 = 0,
+ $240 = 0,
+ $241 = 0,
+ $242 = 0,
+ $243 = 0,
+ $244 = 0,
+ $245 = 0,
+ $246 = 0,
+ $247 = 0,
+ $248 = 0,
+ $249 = 0,
+ $25 = 0,
+ $250 = 0;
+ var $251 = 0,
+ $252 = 0,
+ $253 = 0,
+ $254 = 0,
+ $255 = 0,
+ $256 = 0,
+ $257 = 0,
+ $258 = 0,
+ $259 = 0,
+ $26 = 0,
+ $260 = 0,
+ $261 = 0,
+ $262 = 0,
+ $263 = 0,
+ $264 = 0,
+ $265 = 0,
+ $266 = 0,
+ $267 = 0,
+ $268 = 0,
+ $269 = 0;
+ var $27 = 0,
+ $270 = 0,
+ $271 = 0,
+ $272 = 0,
+ $273 = 0,
+ $274 = 0,
+ $275 = 0,
+ $276 = 0,
+ $277 = 0,
+ $278 = 0,
+ $279 = 0,
+ $28 = 0,
+ $280 = 0,
+ $281 = 0,
+ $282 = 0,
+ $283 = 0,
+ $284 = 0,
+ $285 = 0,
+ $286 = 0,
+ $287 = 0;
+ var $288 = 0,
+ $289 = 0,
+ $29 = 0,
+ $290 = 0,
+ $291 = 0,
+ $292 = 0,
+ $293 = 0,
+ $294 = 0,
+ $295 = 0,
+ $296 = 0,
+ $297 = 0,
+ $298 = 0,
+ $299 = 0,
+ $3 = 0,
+ $30 = 0,
+ $300 = 0,
+ $301 = 0,
+ $302 = 0,
+ $303 = 0,
+ $304 = 0;
+ var $305 = 0,
+ $306 = 0,
+ $307 = 0,
+ $308 = 0,
+ $309 = 0,
+ $31 = 0,
+ $310 = 0,
+ $311 = 0,
+ $312 = 0,
+ $313 = 0,
+ $314 = 0,
+ $315 = 0,
+ $316 = 0,
+ $317 = 0,
+ $318 = 0,
+ $319 = 0,
+ $32 = 0,
+ $320 = 0,
+ $321 = 0,
+ $322 = 0;
+ var $323 = 0,
+ $324 = 0,
+ $325 = 0,
+ $326 = 0,
+ $327 = 0,
+ $328 = 0,
+ $329 = 0,
+ $33 = 0,
+ $330 = 0,
+ $331 = 0,
+ $332 = 0,
+ $333 = 0,
+ $334 = 0,
+ $335 = 0,
+ $336 = 0,
+ $337 = 0,
+ $338 = 0,
+ $339 = 0,
+ $34 = 0,
+ $340 = 0;
+ var $341 = 0,
+ $342 = 0,
+ $343 = 0,
+ $344 = 0,
+ $345 = 0,
+ $346 = 0,
+ $347 = 0,
+ $348 = 0,
+ $349 = 0,
+ $35 = 0,
+ $350 = 0,
+ $351 = 0,
+ $352 = 0,
+ $353 = 0,
+ $354 = 0,
+ $355 = 0,
+ $356 = 0,
+ $357 = 0,
+ $358 = 0,
+ $359 = 0;
+ var $36 = 0,
+ $360 = 0,
+ $361 = 0,
+ $362 = 0,
+ $363 = 0,
+ $364 = 0,
+ $365 = 0,
+ $366 = 0,
+ $367 = 0,
+ $368 = 0,
+ $369 = 0,
+ $37 = 0,
+ $370 = 0,
+ $371 = 0,
+ $372 = 0,
+ $373 = 0,
+ $374 = 0,
+ $375 = 0,
+ $376 = 0,
+ $377 = 0;
+ var $378 = 0,
+ $379 = 0,
+ $38 = 0,
+ $380 = 0,
+ $381 = 0,
+ $382 = 0,
+ $383 = 0,
+ $384 = 0,
+ $385 = 0,
+ $386 = 0,
+ $387 = 0,
+ $388 = 0,
+ $389 = 0,
+ $39 = 0,
+ $390 = 0,
+ $391 = 0,
+ $392 = 0,
+ $393 = 0,
+ $394 = 0,
+ $395 = 0;
+ var $396 = 0,
+ $397 = 0,
+ $398 = 0,
+ $399 = 0,
+ $4 = 0,
+ $40 = 0,
+ $400 = 0,
+ $401 = 0,
+ $402 = 0,
+ $403 = 0,
+ $404 = 0,
+ $405 = 0,
+ $406 = 0,
+ $407 = 0,
+ $408 = 0,
+ $409 = 0,
+ $41 = 0,
+ $410 = 0,
+ $411 = 0,
+ $412 = 0;
+ var $413 = 0,
+ $414 = 0,
+ $415 = 0,
+ $416 = 0,
+ $417 = 0,
+ $418 = 0,
+ $419 = 0,
+ $42 = 0,
+ $420 = 0,
+ $421 = 0,
+ $422 = 0,
+ $423 = 0,
+ $424 = 0,
+ $425 = 0,
+ $426 = 0,
+ $427 = 0,
+ $428 = 0,
+ $429 = 0,
+ $43 = 0,
+ $430 = 0;
+ var $431 = 0,
+ $432 = 0,
+ $433 = 0,
+ $434 = 0,
+ $435 = 0,
+ $436 = 0,
+ $437 = 0,
+ $438 = 0,
+ $439 = 0,
+ $44 = 0,
+ $440 = 0,
+ $441 = 0,
+ $442 = 0,
+ $443 = 0,
+ $444 = 0,
+ $445 = 0,
+ $446 = 0,
+ $447 = 0,
+ $448 = 0,
+ $449 = 0;
+ var $45 = 0,
+ $450 = 0,
+ $451 = 0,
+ $452 = 0,
+ $453 = 0,
+ $454 = 0,
+ $455 = 0,
+ $456 = 0,
+ $457 = 0,
+ $458 = 0,
+ $459 = 0,
+ $46 = 0,
+ $460 = 0,
+ $461 = 0,
+ $462 = 0,
+ $463 = 0,
+ $464 = 0,
+ $465 = 0,
+ $466 = 0,
+ $467 = 0;
+ var $468 = 0,
+ $469 = 0,
+ $47 = 0,
+ $470 = 0,
+ $471 = 0,
+ $472 = 0,
+ $473 = 0,
+ $474 = 0,
+ $475 = 0,
+ $476 = 0,
+ $477 = 0,
+ $478 = 0,
+ $479 = 0,
+ $48 = 0,
+ $480 = 0,
+ $481 = 0,
+ $482 = 0,
+ $483 = 0,
+ $484 = 0,
+ $485 = 0;
+ var $486 = 0,
+ $487 = 0,
+ $488 = 0,
+ $489 = 0,
+ $49 = 0,
+ $490 = 0,
+ $491 = 0,
+ $492 = 0,
+ $493 = 0,
+ $494 = 0,
+ $495 = 0,
+ $496 = 0,
+ $497 = 0,
+ $498 = 0,
+ $499 = 0,
+ $5 = 0,
+ $50 = 0,
+ $500 = 0,
+ $501 = 0,
+ $502 = 0;
+ var $503 = 0,
+ $504 = 0,
+ $505 = 0,
+ $506 = 0,
+ $507 = 0,
+ $508 = 0,
+ $509 = 0,
+ $51 = 0,
+ $510 = 0,
+ $511 = 0,
+ $512 = 0,
+ $513 = 0,
+ $514 = 0,
+ $515 = 0,
+ $516 = 0,
+ $517 = 0,
+ $518 = 0,
+ $519 = 0,
+ $52 = 0,
+ $520 = 0;
+ var $521 = 0,
+ $522 = 0,
+ $523 = 0,
+ $524 = 0,
+ $525 = 0,
+ $526 = 0,
+ $527 = 0,
+ $528 = 0,
+ $529 = 0,
+ $53 = 0,
+ $530 = 0,
+ $531 = 0,
+ $532 = 0,
+ $533 = 0,
+ $534 = 0,
+ $535 = 0,
+ $536 = 0,
+ $537 = 0,
+ $538 = 0,
+ $539 = 0;
+ var $54 = 0,
+ $540 = 0,
+ $541 = 0,
+ $542 = 0,
+ $543 = 0,
+ $544 = 0,
+ $545 = 0,
+ $546 = 0,
+ $547 = 0,
+ $548 = 0,
+ $549 = 0,
+ $55 = 0,
+ $550 = 0,
+ $551 = 0,
+ $552 = 0,
+ $553 = 0,
+ $554 = 0,
+ $555 = 0,
+ $556 = 0,
+ $557 = 0;
+ var $558 = 0,
+ $559 = 0,
+ $56 = 0,
+ $560 = 0,
+ $561 = 0,
+ $562 = 0,
+ $563 = 0,
+ $564 = 0,
+ $565 = 0,
+ $566 = 0,
+ $567 = 0,
+ $568 = 0,
+ $569 = 0,
+ $57 = 0,
+ $570 = 0,
+ $571 = 0,
+ $572 = 0,
+ $573 = 0,
+ $574 = 0,
+ $575 = 0;
+ var $576 = 0,
+ $577 = 0,
+ $578 = 0,
+ $579 = 0,
+ $58 = 0,
+ $580 = 0,
+ $581 = 0,
+ $582 = 0,
+ $583 = 0,
+ $584 = 0,
+ $585 = 0,
+ $586 = 0,
+ $587 = 0,
+ $588 = 0,
+ $589 = 0,
+ $59 = 0,
+ $590 = 0,
+ $591 = 0,
+ $592 = 0,
+ $593 = 0;
+ var $594 = 0,
+ $595 = 0,
+ $596 = 0,
+ $597 = 0,
+ $598 = 0,
+ $599 = 0,
+ $6 = 0,
+ $60 = 0,
+ $600 = 0,
+ $601 = 0,
+ $602 = 0,
+ $603 = 0,
+ $604 = 0,
+ $605 = 0,
+ $606 = 0,
+ $607 = 0,
+ $608 = 0,
+ $609 = 0,
+ $61 = 0,
+ $610 = 0;
+ var $611 = 0,
+ $612 = 0,
+ $613 = 0,
+ $614 = 0,
+ $615 = 0,
+ $616 = 0,
+ $617 = 0,
+ $618 = 0,
+ $619 = 0,
+ $62 = 0,
+ $620 = 0,
+ $621 = 0,
+ $622 = 0,
+ $623 = 0,
+ $624 = 0,
+ $625 = 0,
+ $626 = 0,
+ $627 = 0,
+ $628 = 0,
+ $629 = 0;
+ var $63 = 0,
+ $630 = 0,
+ $631 = 0,
+ $632 = 0,
+ $633 = 0,
+ $634 = 0,
+ $635 = 0,
+ $636 = 0,
+ $637 = 0,
+ $638 = 0,
+ $639 = 0,
+ $64 = 0,
+ $640 = 0,
+ $641 = 0,
+ $642 = 0,
+ $643 = 0,
+ $644 = 0,
+ $645 = 0,
+ $646 = 0,
+ $647 = 0;
+ var $648 = 0,
+ $649 = 0,
+ $65 = 0,
+ $650 = 0,
+ $651 = 0,
+ $652 = 0,
+ $653 = 0,
+ $654 = 0,
+ $655 = 0,
+ $656 = 0,
+ $657 = 0,
+ $658 = 0,
+ $659 = 0,
+ $66 = 0,
+ $660 = 0,
+ $661 = 0,
+ $662 = 0,
+ $663 = 0,
+ $664 = 0,
+ $665 = 0;
+ var $666 = 0,
+ $667 = 0,
+ $668 = 0,
+ $669 = 0,
+ $67 = 0,
+ $670 = 0,
+ $671 = 0,
+ $672 = 0,
+ $673 = 0,
+ $674 = 0,
+ $675 = 0,
+ $676 = 0,
+ $677 = 0,
+ $678 = 0,
+ $679 = 0,
+ $68 = 0,
+ $680 = 0,
+ $681 = 0,
+ $682 = 0,
+ $683 = 0;
+ var $684 = 0,
+ $685 = 0,
+ $686 = 0,
+ $687 = 0,
+ $688 = 0,
+ $689 = 0,
+ $69 = 0,
+ $690 = 0,
+ $691 = 0,
+ $692 = 0,
+ $693 = 0,
+ $694 = 0,
+ $695 = 0,
+ $696 = 0,
+ $697 = 0,
+ $698 = 0,
+ $699 = 0,
+ $7 = 0,
+ $70 = 0,
+ $700 = 0;
+ var $701 = 0,
+ $702 = 0,
+ $703 = 0,
+ $704 = 0,
+ $705 = 0,
+ $706 = 0,
+ $707 = 0,
+ $708 = 0,
+ $709 = 0,
+ $71 = 0,
+ $710 = 0,
+ $711 = 0,
+ $712 = 0,
+ $713 = 0,
+ $714 = 0,
+ $715 = 0,
+ $716 = 0,
+ $717 = 0,
+ $718 = 0,
+ $719 = 0;
+ var $72 = 0,
+ $720 = 0,
+ $721 = 0,
+ $722 = 0,
+ $723 = 0,
+ $724 = 0,
+ $725 = 0,
+ $726 = 0,
+ $727 = 0,
+ $728 = 0,
+ $729 = 0,
+ $73 = 0,
+ $730 = 0,
+ $731 = 0,
+ $732 = 0,
+ $733 = 0,
+ $734 = 0,
+ $735 = 0,
+ $736 = 0,
+ $737 = 0;
+ var $738 = 0,
+ $739 = 0,
+ $74 = 0,
+ $740 = 0,
+ $741 = 0,
+ $742 = 0,
+ $743 = 0,
+ $744 = 0,
+ $745 = 0,
+ $746 = 0,
+ $747 = 0,
+ $748 = 0,
+ $749 = 0,
+ $75 = 0,
+ $750 = 0,
+ $751 = 0,
+ $752 = 0,
+ $753 = 0,
+ $754 = 0,
+ $755 = 0;
+ var $756 = 0,
+ $757 = 0,
+ $758 = 0,
+ $759 = 0,
+ $76 = 0,
+ $760 = 0,
+ $761 = 0,
+ $762 = 0,
+ $763 = 0,
+ $764 = 0,
+ $765 = 0,
+ $766 = 0,
+ $767 = 0,
+ $768 = 0,
+ $769 = 0,
+ $77 = 0,
+ $770 = 0,
+ $771 = 0,
+ $772 = 0,
+ $773 = 0;
+ var $774 = 0,
+ $775 = 0,
+ $776 = 0,
+ $777 = 0,
+ $778 = 0,
+ $779 = 0,
+ $78 = 0,
+ $780 = 0,
+ $781 = 0,
+ $782 = 0,
+ $783 = 0,
+ $784 = 0,
+ $785 = 0,
+ $786 = 0,
+ $787 = 0,
+ $788 = 0,
+ $789 = 0,
+ $79 = 0,
+ $790 = 0,
+ $791 = 0;
+ var $792 = 0,
+ $793 = 0,
+ $794 = 0,
+ $795 = 0,
+ $796 = 0,
+ $797 = 0,
+ $798 = 0,
+ $799 = 0,
+ $8 = 0,
+ $80 = 0,
+ $800 = 0,
+ $801 = 0,
+ $802 = 0,
+ $803 = 0,
+ $804 = 0,
+ $805 = 0,
+ $806 = 0,
+ $807 = 0,
+ $808 = 0,
+ $809 = 0;
+ var $81 = 0,
+ $810 = 0,
+ $811 = 0,
+ $812 = 0,
+ $813 = 0,
+ $814 = 0,
+ $815 = 0,
+ $816 = 0,
+ $817 = 0,
+ $818 = 0,
+ $819 = 0,
+ $82 = 0,
+ $820 = 0,
+ $821 = 0,
+ $822 = 0,
+ $823 = 0,
+ $824 = 0,
+ $825 = 0,
+ $826 = 0,
+ $827 = 0;
+ var $828 = 0,
+ $829 = 0,
+ $83 = 0,
+ $830 = 0,
+ $831 = 0,
+ $832 = 0,
+ $833 = 0,
+ $834 = 0,
+ $835 = 0,
+ $836 = 0,
+ $837 = 0,
+ $838 = 0,
+ $839 = 0,
+ $84 = 0,
+ $840 = 0,
+ $841 = 0,
+ $842 = 0,
+ $843 = 0,
+ $844 = 0,
+ $845 = 0;
+ var $846 = 0,
+ $847 = 0,
+ $848 = 0,
+ $849 = 0,
+ $85 = 0,
+ $850 = 0,
+ $851 = 0,
+ $852 = 0,
+ $853 = 0,
+ $854 = 0,
+ $855 = 0,
+ $856 = 0,
+ $857 = 0,
+ $858 = 0,
+ $859 = 0,
+ $86 = 0,
+ $860 = 0,
+ $861 = 0,
+ $862 = 0,
+ $863 = 0;
+ var $864 = 0,
+ $865 = 0,
+ $866 = 0,
+ $867 = 0,
+ $868 = 0,
+ $869 = 0,
+ $87 = 0,
+ $870 = 0,
+ $871 = 0,
+ $872 = 0,
+ $873 = 0,
+ $874 = 0,
+ $875 = 0,
+ $876 = 0,
+ $877 = 0,
+ $878 = 0,
+ $879 = 0,
+ $88 = 0,
+ $880 = 0,
+ $881 = 0;
+ var $882 = 0,
+ $883 = 0,
+ $884 = 0,
+ $885 = 0,
+ $886 = 0,
+ $887 = 0,
+ $888 = 0,
+ $889 = 0,
+ $89 = 0,
+ $890 = 0,
+ $891 = 0,
+ $892 = 0,
+ $893 = 0,
+ $894 = 0,
+ $895 = 0,
+ $896 = 0,
+ $897 = 0,
+ $898 = 0,
+ $899 = 0,
+ $9 = 0;
+ var $90 = 0,
+ $900 = 0,
+ $901 = 0,
+ $902 = 0,
+ $903 = 0,
+ $904 = 0,
+ $905 = 0,
+ $906 = 0,
+ $907 = 0,
+ $908 = 0,
+ $909 = 0,
+ $91 = 0,
+ $910 = 0,
+ $911 = 0,
+ $912 = 0,
+ $913 = 0,
+ $914 = 0,
+ $915 = 0,
+ $916 = 0,
+ $917 = 0;
+ var $918 = 0,
+ $919 = 0,
+ $92 = 0,
+ $920 = 0,
+ $921 = 0,
+ $922 = 0,
+ $923 = 0,
+ $924 = 0,
+ $925 = 0,
+ $926 = 0,
+ $927 = 0,
+ $928 = 0,
+ $929 = 0,
+ $93 = 0,
+ $930 = 0,
+ $931 = 0,
+ $932 = 0,
+ $933 = 0,
+ $934 = 0,
+ $935 = 0;
+ var $936 = 0,
+ $937 = 0,
+ $938 = 0,
+ $939 = 0,
+ $94 = 0,
+ $940 = 0,
+ $941 = 0,
+ $942 = 0,
+ $943 = 0,
+ $944 = 0,
+ $945 = 0,
+ $946 = 0,
+ $947 = 0,
+ $948 = 0,
+ $949 = 0,
+ $95 = 0,
+ $950 = 0,
+ $951 = 0,
+ $952 = 0,
+ $953 = 0;
+ var $954 = 0,
+ $955 = 0,
+ $956 = 0,
+ $957 = 0,
+ $958 = 0,
+ $959 = 0,
+ $96 = 0,
+ $960 = 0,
+ $961 = 0,
+ $962 = 0,
+ $963 = 0,
+ $964 = 0,
+ $965 = 0,
+ $966 = 0,
+ $967 = 0,
+ $968 = 0,
+ $969 = 0,
+ $97 = 0,
+ $970 = 0,
+ $971 = 0;
+ var $972 = 0,
+ $973 = 0,
+ $974 = 0,
+ $975 = 0,
+ $976 = 0,
+ $977 = 0,
+ $978 = 0,
+ $979 = 0,
+ $98 = 0,
+ $99 = 0,
+ $cond$i = 0,
+ $cond$i$i = 0,
+ $cond$i203 = 0,
+ $not$$i = 0,
+ $or$cond$i = 0,
+ $or$cond$i199 = 0,
+ $or$cond1$i = 0,
+ $or$cond1$i197 = 0,
+ $or$cond11$i = 0,
+ $or$cond2$i = 0;
+ var $or$cond5$i = 0,
+ $or$cond50$i = 0,
+ $or$cond51$i = 0,
+ $or$cond6$i = 0,
+ $or$cond7$i = 0,
+ $or$cond8$i = 0,
+ $or$cond8$not$i = 0,
+ $spec$select$i = 0,
+ $spec$select$i201 = 0,
+ $spec$select1$i = 0,
+ $spec$select2$i = 0,
+ $spec$select4$i = 0,
+ $spec$select49$i = 0,
+ $spec$select9$i = 0,
+ label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ STACKTOP = (STACKTOP + 16) | 0;
+ if ((STACKTOP | 0) >= (STACK_MAX | 0)) abortStackOverflow(16 | 0);
+ $1 = sp;
+ $2 = $0 >>> 0 < 245;
do {
- if ($129) {
- $134 = ((($7)) + 16|0);
- $135 = ((($134)) + 4|0);
- $136 = HEAP32[$135>>2]|0;
- $137 = ($136|0)==(0|0);
- if ($137) {
- $138 = HEAP32[$134>>2]|0;
- $139 = ($138|0)==(0|0);
- if ($139) {
- $$3363 = 0;
- break;
- } else {
- $$1361$ph = $138;$$1365$ph = $134;
- }
- } else {
- $$1361$ph = $136;$$1365$ph = $135;
- }
- $$1361 = $$1361$ph;$$1365 = $$1365$ph;
- while(1) {
- $140 = ((($$1361)) + 20|0);
- $141 = HEAP32[$140>>2]|0;
- $142 = ($141|0)==(0|0);
- if ($142) {
- $143 = ((($$1361)) + 16|0);
- $144 = HEAP32[$143>>2]|0;
- $145 = ($144|0)==(0|0);
- if ($145) {
- break;
- } else {
- $$1361$be = $144;$$1365$be = $143;
+ if ($2) {
+ $3 = $0 >>> 0 < 11;
+ $4 = ($0 + 11) | 0;
+ $5 = $4 & -8;
+ $6 = $3 ? 16 : $5;
+ $7 = $6 >>> 3;
+ $8 = HEAP32[296] | 0;
+ $9 = $8 >>> $7;
+ $10 = $9 & 3;
+ $11 = ($10 | 0) == 0;
+ if (!$11) {
+ $12 = $9 & 1;
+ $13 = $12 ^ 1;
+ $14 = ($13 + $7) | 0;
+ $15 = $14 << 1;
+ $16 = (1224 + ($15 << 2)) | 0;
+ $17 = ($16 + 8) | 0;
+ $18 = HEAP32[$17 >> 2] | 0;
+ $19 = ($18 + 8) | 0;
+ $20 = HEAP32[$19 >> 2] | 0;
+ $21 = ($20 | 0) == ($16 | 0);
+ if ($21) {
+ $22 = 1 << $14;
+ $23 = $22 ^ -1;
+ $24 = $8 & $23;
+ HEAP32[296] = $24;
+ } else {
+ $25 = ($20 + 12) | 0;
+ HEAP32[$25 >> 2] = $16;
+ HEAP32[$17 >> 2] = $20;
+ }
+ $26 = $14 << 3;
+ $27 = $26 | 3;
+ $28 = ($18 + 4) | 0;
+ HEAP32[$28 >> 2] = $27;
+ $29 = ($18 + $26) | 0;
+ $30 = ($29 + 4) | 0;
+ $31 = HEAP32[$30 >> 2] | 0;
+ $32 = $31 | 1;
+ HEAP32[$30 >> 2] = $32;
+ $$0 = $19;
+ STACKTOP = sp;
+ return $$0 | 0;
+ }
+ $33 = HEAP32[1192 >> 2] | 0;
+ $34 = $6 >>> 0 > $33 >>> 0;
+ if ($34) {
+ $35 = ($9 | 0) == 0;
+ if (!$35) {
+ $36 = $9 << $7;
+ $37 = 2 << $7;
+ $38 = (0 - $37) | 0;
+ $39 = $37 | $38;
+ $40 = $36 & $39;
+ $41 = (0 - $40) | 0;
+ $42 = $40 & $41;
+ $43 = ($42 + -1) | 0;
+ $44 = $43 >>> 12;
+ $45 = $44 & 16;
+ $46 = $43 >>> $45;
+ $47 = $46 >>> 5;
+ $48 = $47 & 8;
+ $49 = $48 | $45;
+ $50 = $46 >>> $48;
+ $51 = $50 >>> 2;
+ $52 = $51 & 4;
+ $53 = $49 | $52;
+ $54 = $50 >>> $52;
+ $55 = $54 >>> 1;
+ $56 = $55 & 2;
+ $57 = $53 | $56;
+ $58 = $54 >>> $56;
+ $59 = $58 >>> 1;
+ $60 = $59 & 1;
+ $61 = $57 | $60;
+ $62 = $58 >>> $60;
+ $63 = ($61 + $62) | 0;
+ $64 = $63 << 1;
+ $65 = (1224 + ($64 << 2)) | 0;
+ $66 = ($65 + 8) | 0;
+ $67 = HEAP32[$66 >> 2] | 0;
+ $68 = ($67 + 8) | 0;
+ $69 = HEAP32[$68 >> 2] | 0;
+ $70 = ($69 | 0) == ($65 | 0);
+ if ($70) {
+ $71 = 1 << $63;
+ $72 = $71 ^ -1;
+ $73 = $8 & $72;
+ HEAP32[296] = $73;
+ $90 = $73;
+ } else {
+ $74 = ($69 + 12) | 0;
+ HEAP32[$74 >> 2] = $65;
+ HEAP32[$66 >> 2] = $69;
+ $90 = $8;
+ }
+ $75 = $63 << 3;
+ $76 = ($75 - $6) | 0;
+ $77 = $6 | 3;
+ $78 = ($67 + 4) | 0;
+ HEAP32[$78 >> 2] = $77;
+ $79 = ($67 + $6) | 0;
+ $80 = $76 | 1;
+ $81 = ($79 + 4) | 0;
+ HEAP32[$81 >> 2] = $80;
+ $82 = ($67 + $75) | 0;
+ HEAP32[$82 >> 2] = $76;
+ $83 = ($33 | 0) == 0;
+ if (!$83) {
+ $84 = HEAP32[1204 >> 2] | 0;
+ $85 = $33 >>> 3;
+ $86 = $85 << 1;
+ $87 = (1224 + ($86 << 2)) | 0;
+ $88 = 1 << $85;
+ $89 = $90 & $88;
+ $91 = ($89 | 0) == 0;
+ if ($91) {
+ $92 = $90 | $88;
+ HEAP32[296] = $92;
+ $$pre = ($87 + 8) | 0;
+ $$0194 = $87;
+ $$pre$phiZ2D = $$pre;
+ } else {
+ $93 = ($87 + 8) | 0;
+ $94 = HEAP32[$93 >> 2] | 0;
+ $$0194 = $94;
+ $$pre$phiZ2D = $93;
+ }
+ HEAP32[$$pre$phiZ2D >> 2] = $84;
+ $95 = ($$0194 + 12) | 0;
+ HEAP32[$95 >> 2] = $84;
+ $96 = ($84 + 8) | 0;
+ HEAP32[$96 >> 2] = $$0194;
+ $97 = ($84 + 12) | 0;
+ HEAP32[$97 >> 2] = $87;
+ }
+ HEAP32[1192 >> 2] = $76;
+ HEAP32[1204 >> 2] = $79;
+ $$0 = $68;
+ STACKTOP = sp;
+ return $$0 | 0;
+ }
+ $98 = HEAP32[1188 >> 2] | 0;
+ $99 = ($98 | 0) == 0;
+ if ($99) {
+ $$0192 = $6;
+ } else {
+ $100 = (0 - $98) | 0;
+ $101 = $98 & $100;
+ $102 = ($101 + -1) | 0;
+ $103 = $102 >>> 12;
+ $104 = $103 & 16;
+ $105 = $102 >>> $104;
+ $106 = $105 >>> 5;
+ $107 = $106 & 8;
+ $108 = $107 | $104;
+ $109 = $105 >>> $107;
+ $110 = $109 >>> 2;
+ $111 = $110 & 4;
+ $112 = $108 | $111;
+ $113 = $109 >>> $111;
+ $114 = $113 >>> 1;
+ $115 = $114 & 2;
+ $116 = $112 | $115;
+ $117 = $113 >>> $115;
+ $118 = $117 >>> 1;
+ $119 = $118 & 1;
+ $120 = $116 | $119;
+ $121 = $117 >>> $119;
+ $122 = ($120 + $121) | 0;
+ $123 = (1488 + ($122 << 2)) | 0;
+ $124 = HEAP32[$123 >> 2] | 0;
+ $125 = ($124 + 4) | 0;
+ $126 = HEAP32[$125 >> 2] | 0;
+ $127 = $126 & -8;
+ $128 = ($127 - $6) | 0;
+ $$0169$i = $124;
+ $$0170$i = $124;
+ $$0171$i = $128;
+ while (1) {
+ $129 = ($$0169$i + 16) | 0;
+ $130 = HEAP32[$129 >> 2] | 0;
+ $131 = ($130 | 0) == (0 | 0);
+ if ($131) {
+ $132 = ($$0169$i + 20) | 0;
+ $133 = HEAP32[$132 >> 2] | 0;
+ $134 = ($133 | 0) == (0 | 0);
+ if ($134) {
+ break;
+ } else {
+ $136 = $133;
+ }
+ } else {
+ $136 = $130;
+ }
+ $135 = ($136 + 4) | 0;
+ $137 = HEAP32[$135 >> 2] | 0;
+ $138 = $137 & -8;
+ $139 = ($138 - $6) | 0;
+ $140 = $139 >>> 0 < $$0171$i >>> 0;
+ $spec$select$i = $140 ? $139 : $$0171$i;
+ $spec$select1$i = $140 ? $136 : $$0170$i;
+ $$0169$i = $136;
+ $$0170$i = $spec$select1$i;
+ $$0171$i = $spec$select$i;
+ }
+ $141 = ($$0170$i + $6) | 0;
+ $142 = $141 >>> 0 > $$0170$i >>> 0;
+ if ($142) {
+ $143 = ($$0170$i + 24) | 0;
+ $144 = HEAP32[$143 >> 2] | 0;
+ $145 = ($$0170$i + 12) | 0;
+ $146 = HEAP32[$145 >> 2] | 0;
+ $147 = ($146 | 0) == ($$0170$i | 0);
+ do {
+ if ($147) {
+ $152 = ($$0170$i + 20) | 0;
+ $153 = HEAP32[$152 >> 2] | 0;
+ $154 = ($153 | 0) == (0 | 0);
+ if ($154) {
+ $155 = ($$0170$i + 16) | 0;
+ $156 = HEAP32[$155 >> 2] | 0;
+ $157 = ($156 | 0) == (0 | 0);
+ if ($157) {
+ $$3$i = 0;
+ break;
+ } else {
+ $$1174$i$ph = $156;
+ $$1176$i$ph = $155;
+ }
+ } else {
+ $$1174$i$ph = $153;
+ $$1176$i$ph = $152;
+ }
+ $$1174$i = $$1174$i$ph;
+ $$1176$i = $$1176$i$ph;
+ while (1) {
+ $158 = ($$1174$i + 20) | 0;
+ $159 = HEAP32[$158 >> 2] | 0;
+ $160 = ($159 | 0) == (0 | 0);
+ if ($160) {
+ $161 = ($$1174$i + 16) | 0;
+ $162 = HEAP32[$161 >> 2] | 0;
+ $163 = ($162 | 0) == (0 | 0);
+ if ($163) {
+ break;
+ } else {
+ $$1174$i$be = $162;
+ $$1176$i$be = $161;
+ }
+ } else {
+ $$1174$i$be = $159;
+ $$1176$i$be = $158;
+ }
+ $$1174$i = $$1174$i$be;
+ $$1176$i = $$1176$i$be;
+ }
+ HEAP32[$$1176$i >> 2] = 0;
+ $$3$i = $$1174$i;
+ } else {
+ $148 = ($$0170$i + 8) | 0;
+ $149 = HEAP32[$148 >> 2] | 0;
+ $150 = ($149 + 12) | 0;
+ HEAP32[$150 >> 2] = $146;
+ $151 = ($146 + 8) | 0;
+ HEAP32[$151 >> 2] = $149;
+ $$3$i = $146;
+ }
+ } while (0);
+ $164 = ($144 | 0) == (0 | 0);
+ do {
+ if (!$164) {
+ $165 = ($$0170$i + 28) | 0;
+ $166 = HEAP32[$165 >> 2] | 0;
+ $167 = (1488 + ($166 << 2)) | 0;
+ $168 = HEAP32[$167 >> 2] | 0;
+ $169 = ($$0170$i | 0) == ($168 | 0);
+ if ($169) {
+ HEAP32[$167 >> 2] = $$3$i;
+ $cond$i = ($$3$i | 0) == (0 | 0);
+ if ($cond$i) {
+ $170 = 1 << $166;
+ $171 = $170 ^ -1;
+ $172 = $98 & $171;
+ HEAP32[1188 >> 2] = $172;
+ break;
+ }
+ } else {
+ $173 = ($144 + 16) | 0;
+ $174 = HEAP32[$173 >> 2] | 0;
+ $175 = ($174 | 0) == ($$0170$i | 0);
+ $176 = ($144 + 20) | 0;
+ $$sink = $175 ? $173 : $176;
+ HEAP32[$$sink >> 2] = $$3$i;
+ $177 = ($$3$i | 0) == (0 | 0);
+ if ($177) {
+ break;
+ }
+ }
+ $178 = ($$3$i + 24) | 0;
+ HEAP32[$178 >> 2] = $144;
+ $179 = ($$0170$i + 16) | 0;
+ $180 = HEAP32[$179 >> 2] | 0;
+ $181 = ($180 | 0) == (0 | 0);
+ if (!$181) {
+ $182 = ($$3$i + 16) | 0;
+ HEAP32[$182 >> 2] = $180;
+ $183 = ($180 + 24) | 0;
+ HEAP32[$183 >> 2] = $$3$i;
+ }
+ $184 = ($$0170$i + 20) | 0;
+ $185 = HEAP32[$184 >> 2] | 0;
+ $186 = ($185 | 0) == (0 | 0);
+ if (!$186) {
+ $187 = ($$3$i + 20) | 0;
+ HEAP32[$187 >> 2] = $185;
+ $188 = ($185 + 24) | 0;
+ HEAP32[$188 >> 2] = $$3$i;
+ }
+ }
+ } while (0);
+ $189 = $$0171$i >>> 0 < 16;
+ if ($189) {
+ $190 = ($$0171$i + $6) | 0;
+ $191 = $190 | 3;
+ $192 = ($$0170$i + 4) | 0;
+ HEAP32[$192 >> 2] = $191;
+ $193 = ($$0170$i + $190) | 0;
+ $194 = ($193 + 4) | 0;
+ $195 = HEAP32[$194 >> 2] | 0;
+ $196 = $195 | 1;
+ HEAP32[$194 >> 2] = $196;
+ } else {
+ $197 = $6 | 3;
+ $198 = ($$0170$i + 4) | 0;
+ HEAP32[$198 >> 2] = $197;
+ $199 = $$0171$i | 1;
+ $200 = ($141 + 4) | 0;
+ HEAP32[$200 >> 2] = $199;
+ $201 = ($141 + $$0171$i) | 0;
+ HEAP32[$201 >> 2] = $$0171$i;
+ $202 = ($33 | 0) == 0;
+ if (!$202) {
+ $203 = HEAP32[1204 >> 2] | 0;
+ $204 = $33 >>> 3;
+ $205 = $204 << 1;
+ $206 = (1224 + ($205 << 2)) | 0;
+ $207 = 1 << $204;
+ $208 = $207 & $8;
+ $209 = ($208 | 0) == 0;
+ if ($209) {
+ $210 = $207 | $8;
+ HEAP32[296] = $210;
+ $$pre$i = ($206 + 8) | 0;
+ $$0$i = $206;
+ $$pre$phi$iZ2D = $$pre$i;
+ } else {
+ $211 = ($206 + 8) | 0;
+ $212 = HEAP32[$211 >> 2] | 0;
+ $$0$i = $212;
+ $$pre$phi$iZ2D = $211;
+ }
+ HEAP32[$$pre$phi$iZ2D >> 2] = $203;
+ $213 = ($$0$i + 12) | 0;
+ HEAP32[$213 >> 2] = $203;
+ $214 = ($203 + 8) | 0;
+ HEAP32[$214 >> 2] = $$0$i;
+ $215 = ($203 + 12) | 0;
+ HEAP32[$215 >> 2] = $206;
+ }
+ HEAP32[1192 >> 2] = $$0171$i;
+ HEAP32[1204 >> 2] = $141;
+ }
+ $216 = ($$0170$i + 8) | 0;
+ $$0 = $216;
+ STACKTOP = sp;
+ return $$0 | 0;
+ } else {
+ $$0192 = $6;
+ }
+ }
+ } else {
+ $$0192 = $6;
}
- } else {
- $$1361$be = $141;$$1365$be = $140;
- }
- $$1361 = $$1361$be;$$1365 = $$1365$be;
- }
- HEAP32[$$1365>>2] = 0;
- $$3363 = $$1361;
- } else {
- $130 = ((($7)) + 8|0);
- $131 = HEAP32[$130>>2]|0;
- $132 = ((($131)) + 12|0);
- HEAP32[$132>>2] = $128;
- $133 = ((($128)) + 8|0);
- HEAP32[$133>>2] = $131;
- $$3363 = $128;
- }
- } while(0);
- $146 = ($126|0)==(0|0);
- if (!($146)) {
- $147 = ((($7)) + 28|0);
- $148 = HEAP32[$147>>2]|0;
- $149 = (1488 + ($148<<2)|0);
- $150 = HEAP32[$149>>2]|0;
- $151 = ($150|0)==($7|0);
- if ($151) {
- HEAP32[$149>>2] = $$3363;
- $cond372 = ($$3363|0)==(0|0);
- if ($cond372) {
- $152 = 1 << $148;
- $153 = $152 ^ -1;
- $154 = HEAP32[(1188)>>2]|0;
- $155 = $154 & $153;
- HEAP32[(1188)>>2] = $155;
- break;
- }
- } else {
- $156 = ((($126)) + 16|0);
- $157 = HEAP32[$156>>2]|0;
- $158 = ($157|0)==($7|0);
- $159 = ((($126)) + 20|0);
- $$sink395 = $158 ? $156 : $159;
- HEAP32[$$sink395>>2] = $$3363;
- $160 = ($$3363|0)==(0|0);
- if ($160) {
- break;
- }
- }
- $161 = ((($$3363)) + 24|0);
- HEAP32[$161>>2] = $126;
- $162 = ((($7)) + 16|0);
- $163 = HEAP32[$162>>2]|0;
- $164 = ($163|0)==(0|0);
- if (!($164)) {
- $165 = ((($$3363)) + 16|0);
- HEAP32[$165>>2] = $163;
- $166 = ((($163)) + 24|0);
- HEAP32[$166>>2] = $$3363;
- }
- $167 = ((($162)) + 4|0);
- $168 = HEAP32[$167>>2]|0;
- $169 = ($168|0)==(0|0);
- if (!($169)) {
- $170 = ((($$3363)) + 20|0);
- HEAP32[$170>>2] = $168;
- $171 = ((($168)) + 24|0);
- HEAP32[$171>>2] = $$3363;
- }
- }
- }
- } while(0);
- $172 = $111 | 1;
- $173 = ((($$1)) + 4|0);
- HEAP32[$173>>2] = $172;
- $174 = (($88) + ($111)|0);
- HEAP32[$174>>2] = $111;
- $175 = HEAP32[(1204)>>2]|0;
- $176 = ($$1|0)==($175|0);
- if ($176) {
- HEAP32[(1192)>>2] = $111;
- return;
- } else {
- $$2 = $111;
- }
- } else {
- $177 = $90 & -2;
- HEAP32[$89>>2] = $177;
- $178 = $$1345 | 1;
- $179 = ((($$1)) + 4|0);
- HEAP32[$179>>2] = $178;
- $180 = (($88) + ($$1345)|0);
- HEAP32[$180>>2] = $$1345;
- $$2 = $$1345;
- }
- $181 = $$2 >>> 3;
- $182 = ($$2>>>0)<(256);
- if ($182) {
- $183 = $181 << 1;
- $184 = (1224 + ($183<<2)|0);
- $185 = HEAP32[296]|0;
- $186 = 1 << $181;
- $187 = $185 & $186;
- $188 = ($187|0)==(0);
- if ($188) {
- $189 = $185 | $186;
- HEAP32[296] = $189;
- $$pre = ((($184)) + 8|0);
- $$0366 = $184;$$pre$phiZ2D = $$pre;
- } else {
- $190 = ((($184)) + 8|0);
- $191 = HEAP32[$190>>2]|0;
- $$0366 = $191;$$pre$phiZ2D = $190;
- }
- HEAP32[$$pre$phiZ2D>>2] = $$1;
- $192 = ((($$0366)) + 12|0);
- HEAP32[$192>>2] = $$1;
- $193 = ((($$1)) + 8|0);
- HEAP32[$193>>2] = $$0366;
- $194 = ((($$1)) + 12|0);
- HEAP32[$194>>2] = $184;
- return;
- }
- $195 = $$2 >>> 8;
- $196 = ($195|0)==(0);
- if ($196) {
- $$0359 = 0;
- } else {
- $197 = ($$2>>>0)>(16777215);
- if ($197) {
- $$0359 = 31;
- } else {
- $198 = (($195) + 1048320)|0;
- $199 = $198 >>> 16;
- $200 = $199 & 8;
- $201 = $195 << $200;
- $202 = (($201) + 520192)|0;
- $203 = $202 >>> 16;
- $204 = $203 & 4;
- $205 = $204 | $200;
- $206 = $201 << $204;
- $207 = (($206) + 245760)|0;
- $208 = $207 >>> 16;
- $209 = $208 & 2;
- $210 = $205 | $209;
- $211 = (14 - ($210))|0;
- $212 = $206 << $209;
- $213 = $212 >>> 15;
- $214 = (($211) + ($213))|0;
- $215 = $214 << 1;
- $216 = (($214) + 7)|0;
- $217 = $$2 >>> $216;
- $218 = $217 & 1;
- $219 = $218 | $215;
- $$0359 = $219;
- }
- }
- $220 = (1488 + ($$0359<<2)|0);
- $221 = ((($$1)) + 28|0);
- HEAP32[$221>>2] = $$0359;
- $222 = ((($$1)) + 16|0);
- $223 = ((($$1)) + 20|0);
- HEAP32[$223>>2] = 0;
- HEAP32[$222>>2] = 0;
- $224 = HEAP32[(1188)>>2]|0;
- $225 = 1 << $$0359;
- $226 = $224 & $225;
- $227 = ($226|0)==(0);
- L112: do {
- if ($227) {
- $228 = $224 | $225;
- HEAP32[(1188)>>2] = $228;
- HEAP32[$220>>2] = $$1;
- $229 = ((($$1)) + 24|0);
- HEAP32[$229>>2] = $220;
- $230 = ((($$1)) + 12|0);
- HEAP32[$230>>2] = $$1;
- $231 = ((($$1)) + 8|0);
- HEAP32[$231>>2] = $$1;
- } else {
- $232 = HEAP32[$220>>2]|0;
- $233 = ((($232)) + 4|0);
- $234 = HEAP32[$233>>2]|0;
- $235 = $234 & -8;
- $236 = ($235|0)==($$2|0);
- L115: do {
- if ($236) {
- $$0347$lcssa = $232;
- } else {
- $237 = ($$0359|0)==(31);
- $238 = $$0359 >>> 1;
- $239 = (25 - ($238))|0;
- $240 = $237 ? 0 : $239;
- $241 = $$2 << $240;
- $$0346381 = $241;$$0347380 = $232;
- while(1) {
- $248 = $$0346381 >>> 31;
- $249 = (((($$0347380)) + 16|0) + ($248<<2)|0);
- $244 = HEAP32[$249>>2]|0;
- $250 = ($244|0)==(0|0);
- if ($250) {
- break;
- }
- $242 = $$0346381 << 1;
- $243 = ((($244)) + 4|0);
- $245 = HEAP32[$243>>2]|0;
- $246 = $245 & -8;
- $247 = ($246|0)==($$2|0);
- if ($247) {
- $$0347$lcssa = $244;
- break L115;
} else {
- $$0346381 = $242;$$0347380 = $244;
+ $217 = $0 >>> 0 > 4294967231;
+ if ($217) {
+ $$0192 = -1;
+ } else {
+ $218 = ($0 + 11) | 0;
+ $219 = $218 & -8;
+ $220 = HEAP32[1188 >> 2] | 0;
+ $221 = ($220 | 0) == 0;
+ if ($221) {
+ $$0192 = $219;
+ } else {
+ $222 = (0 - $219) | 0;
+ $223 = $218 >>> 8;
+ $224 = ($223 | 0) == 0;
+ if ($224) {
+ $$0335$i = 0;
+ } else {
+ $225 = $219 >>> 0 > 16777215;
+ if ($225) {
+ $$0335$i = 31;
+ } else {
+ $226 = ($223 + 1048320) | 0;
+ $227 = $226 >>> 16;
+ $228 = $227 & 8;
+ $229 = $223 << $228;
+ $230 = ($229 + 520192) | 0;
+ $231 = $230 >>> 16;
+ $232 = $231 & 4;
+ $233 = $232 | $228;
+ $234 = $229 << $232;
+ $235 = ($234 + 245760) | 0;
+ $236 = $235 >>> 16;
+ $237 = $236 & 2;
+ $238 = $233 | $237;
+ $239 = (14 - $238) | 0;
+ $240 = $234 << $237;
+ $241 = $240 >>> 15;
+ $242 = ($239 + $241) | 0;
+ $243 = $242 << 1;
+ $244 = ($242 + 7) | 0;
+ $245 = $219 >>> $244;
+ $246 = $245 & 1;
+ $247 = $246 | $243;
+ $$0335$i = $247;
+ }
+ }
+ $248 = (1488 + ($$0335$i << 2)) | 0;
+ $249 = HEAP32[$248 >> 2] | 0;
+ $250 = ($249 | 0) == (0 | 0);
+ L79: do {
+ if ($250) {
+ $$2331$i = 0;
+ $$3$i198 = 0;
+ $$3326$i = $222;
+ label = 61;
+ } else {
+ $251 = ($$0335$i | 0) == 31;
+ $252 = $$0335$i >>> 1;
+ $253 = (25 - $252) | 0;
+ $254 = $251 ? 0 : $253;
+ $255 = $219 << $254;
+ $$0318$i = 0;
+ $$0323$i = $222;
+ $$0329$i = $249;
+ $$0336$i = $255;
+ $$0339$i = 0;
+ while (1) {
+ $256 = ($$0329$i + 4) | 0;
+ $257 = HEAP32[$256 >> 2] | 0;
+ $258 = $257 & -8;
+ $259 = ($258 - $219) | 0;
+ $260 = $259 >>> 0 < $$0323$i >>> 0;
+ if ($260) {
+ $261 = ($259 | 0) == 0;
+ if ($261) {
+ $$415$i$ph = $$0329$i;
+ $$432714$i$ph = 0;
+ $$533413$i$ph = $$0329$i;
+ label = 65;
+ break L79;
+ } else {
+ $$1319$i = $$0329$i;
+ $$1324$i = $259;
+ }
+ } else {
+ $$1319$i = $$0318$i;
+ $$1324$i = $$0323$i;
+ }
+ $262 = ($$0329$i + 20) | 0;
+ $263 = HEAP32[$262 >> 2] | 0;
+ $264 = $$0336$i >>> 31;
+ $265 = ((($$0329$i + 16) | 0) + ($264 << 2)) | 0;
+ $266 = HEAP32[$265 >> 2] | 0;
+ $267 = ($263 | 0) == (0 | 0);
+ $268 = ($263 | 0) == ($266 | 0);
+ $or$cond1$i197 = $267 | $268;
+ $$1340$i = $or$cond1$i197 ? $$0339$i : $263;
+ $269 = ($266 | 0) == (0 | 0);
+ $spec$select4$i = $$0336$i << 1;
+ if ($269) {
+ $$2331$i = $$1340$i;
+ $$3$i198 = $$1319$i;
+ $$3326$i = $$1324$i;
+ label = 61;
+ break;
+ } else {
+ $$0318$i = $$1319$i;
+ $$0323$i = $$1324$i;
+ $$0329$i = $266;
+ $$0336$i = $spec$select4$i;
+ $$0339$i = $$1340$i;
+ }
+ }
+ }
+ } while (0);
+ if ((label | 0) == 61) {
+ $270 = ($$2331$i | 0) == (0 | 0);
+ $271 = ($$3$i198 | 0) == (0 | 0);
+ $or$cond$i199 = $270 & $271;
+ if ($or$cond$i199) {
+ $272 = 2 << $$0335$i;
+ $273 = (0 - $272) | 0;
+ $274 = $272 | $273;
+ $275 = $274 & $220;
+ $276 = ($275 | 0) == 0;
+ if ($276) {
+ $$0192 = $219;
+ break;
+ }
+ $277 = (0 - $275) | 0;
+ $278 = $275 & $277;
+ $279 = ($278 + -1) | 0;
+ $280 = $279 >>> 12;
+ $281 = $280 & 16;
+ $282 = $279 >>> $281;
+ $283 = $282 >>> 5;
+ $284 = $283 & 8;
+ $285 = $284 | $281;
+ $286 = $282 >>> $284;
+ $287 = $286 >>> 2;
+ $288 = $287 & 4;
+ $289 = $285 | $288;
+ $290 = $286 >>> $288;
+ $291 = $290 >>> 1;
+ $292 = $291 & 2;
+ $293 = $289 | $292;
+ $294 = $290 >>> $292;
+ $295 = $294 >>> 1;
+ $296 = $295 & 1;
+ $297 = $293 | $296;
+ $298 = $294 >>> $296;
+ $299 = ($297 + $298) | 0;
+ $300 = (1488 + ($299 << 2)) | 0;
+ $301 = HEAP32[$300 >> 2] | 0;
+ $$3$i198211 = 0;
+ $$4333$i = $301;
+ } else {
+ $$3$i198211 = $$3$i198;
+ $$4333$i = $$2331$i;
+ }
+ $302 = ($$4333$i | 0) == (0 | 0);
+ if ($302) {
+ $$4$lcssa$i = $$3$i198211;
+ $$4327$lcssa$i = $$3326$i;
+ } else {
+ $$415$i$ph = $$3$i198211;
+ $$432714$i$ph = $$3326$i;
+ $$533413$i$ph = $$4333$i;
+ label = 65;
+ }
+ }
+ if ((label | 0) == 65) {
+ $$415$i = $$415$i$ph;
+ $$432714$i = $$432714$i$ph;
+ $$533413$i = $$533413$i$ph;
+ while (1) {
+ $303 = ($$533413$i + 4) | 0;
+ $304 = HEAP32[$303 >> 2] | 0;
+ $305 = $304 & -8;
+ $306 = ($305 - $219) | 0;
+ $307 = $306 >>> 0 < $$432714$i >>> 0;
+ $spec$select$i201 = $307 ? $306 : $$432714$i;
+ $spec$select2$i = $307 ? $$533413$i : $$415$i;
+ $308 = ($$533413$i + 16) | 0;
+ $309 = HEAP32[$308 >> 2] | 0;
+ $310 = ($309 | 0) == (0 | 0);
+ if ($310) {
+ $311 = ($$533413$i + 20) | 0;
+ $312 = HEAP32[$311 >> 2] | 0;
+ $314 = $312;
+ } else {
+ $314 = $309;
+ }
+ $313 = ($314 | 0) == (0 | 0);
+ if ($313) {
+ $$4$lcssa$i = $spec$select2$i;
+ $$4327$lcssa$i = $spec$select$i201;
+ break;
+ } else {
+ $$415$i = $spec$select2$i;
+ $$432714$i = $spec$select$i201;
+ $$533413$i = $314;
+ }
+ }
+ }
+ $315 = ($$4$lcssa$i | 0) == (0 | 0);
+ if ($315) {
+ $$0192 = $219;
+ } else {
+ $316 = HEAP32[1192 >> 2] | 0;
+ $317 = ($316 - $219) | 0;
+ $318 = $$4327$lcssa$i >>> 0 < $317 >>> 0;
+ if ($318) {
+ $319 = ($$4$lcssa$i + $219) | 0;
+ $320 = $319 >>> 0 > $$4$lcssa$i >>> 0;
+ if ($320) {
+ $321 = ($$4$lcssa$i + 24) | 0;
+ $322 = HEAP32[$321 >> 2] | 0;
+ $323 = ($$4$lcssa$i + 12) | 0;
+ $324 = HEAP32[$323 >> 2] | 0;
+ $325 = ($324 | 0) == ($$4$lcssa$i | 0);
+ do {
+ if ($325) {
+ $330 = ($$4$lcssa$i + 20) | 0;
+ $331 = HEAP32[$330 >> 2] | 0;
+ $332 = ($331 | 0) == (0 | 0);
+ if ($332) {
+ $333 = ($$4$lcssa$i + 16) | 0;
+ $334 = HEAP32[$333 >> 2] | 0;
+ $335 = ($334 | 0) == (0 | 0);
+ if ($335) {
+ $$3348$i = 0;
+ break;
+ } else {
+ $$1346$i$ph = $334;
+ $$1350$i$ph = $333;
+ }
+ } else {
+ $$1346$i$ph = $331;
+ $$1350$i$ph = $330;
+ }
+ $$1346$i = $$1346$i$ph;
+ $$1350$i = $$1350$i$ph;
+ while (1) {
+ $336 = ($$1346$i + 20) | 0;
+ $337 = HEAP32[$336 >> 2] | 0;
+ $338 = ($337 | 0) == (0 | 0);
+ if ($338) {
+ $339 = ($$1346$i + 16) | 0;
+ $340 = HEAP32[$339 >> 2] | 0;
+ $341 = ($340 | 0) == (0 | 0);
+ if ($341) {
+ break;
+ } else {
+ $$1346$i$be = $340;
+ $$1350$i$be = $339;
+ }
+ } else {
+ $$1346$i$be = $337;
+ $$1350$i$be = $336;
+ }
+ $$1346$i = $$1346$i$be;
+ $$1350$i = $$1350$i$be;
+ }
+ HEAP32[$$1350$i >> 2] = 0;
+ $$3348$i = $$1346$i;
+ } else {
+ $326 = ($$4$lcssa$i + 8) | 0;
+ $327 = HEAP32[$326 >> 2] | 0;
+ $328 = ($327 + 12) | 0;
+ HEAP32[$328 >> 2] = $324;
+ $329 = ($324 + 8) | 0;
+ HEAP32[$329 >> 2] = $327;
+ $$3348$i = $324;
+ }
+ } while (0);
+ $342 = ($322 | 0) == (0 | 0);
+ do {
+ if ($342) {
+ $425 = $220;
+ } else {
+ $343 = ($$4$lcssa$i + 28) | 0;
+ $344 = HEAP32[$343 >> 2] | 0;
+ $345 = (1488 + ($344 << 2)) | 0;
+ $346 = HEAP32[$345 >> 2] | 0;
+ $347 = ($$4$lcssa$i | 0) == ($346 | 0);
+ if ($347) {
+ HEAP32[$345 >> 2] = $$3348$i;
+ $cond$i203 = ($$3348$i | 0) == (0 | 0);
+ if ($cond$i203) {
+ $348 = 1 << $344;
+ $349 = $348 ^ -1;
+ $350 = $220 & $349;
+ HEAP32[1188 >> 2] = $350;
+ $425 = $350;
+ break;
+ }
+ } else {
+ $351 = ($322 + 16) | 0;
+ $352 = HEAP32[$351 >> 2] | 0;
+ $353 = ($352 | 0) == ($$4$lcssa$i | 0);
+ $354 = ($322 + 20) | 0;
+ $$sink320 = $353 ? $351 : $354;
+ HEAP32[$$sink320 >> 2] = $$3348$i;
+ $355 = ($$3348$i | 0) == (0 | 0);
+ if ($355) {
+ $425 = $220;
+ break;
+ }
+ }
+ $356 = ($$3348$i + 24) | 0;
+ HEAP32[$356 >> 2] = $322;
+ $357 = ($$4$lcssa$i + 16) | 0;
+ $358 = HEAP32[$357 >> 2] | 0;
+ $359 = ($358 | 0) == (0 | 0);
+ if (!$359) {
+ $360 = ($$3348$i + 16) | 0;
+ HEAP32[$360 >> 2] = $358;
+ $361 = ($358 + 24) | 0;
+ HEAP32[$361 >> 2] = $$3348$i;
+ }
+ $362 = ($$4$lcssa$i + 20) | 0;
+ $363 = HEAP32[$362 >> 2] | 0;
+ $364 = ($363 | 0) == (0 | 0);
+ if ($364) {
+ $425 = $220;
+ } else {
+ $365 = ($$3348$i + 20) | 0;
+ HEAP32[$365 >> 2] = $363;
+ $366 = ($363 + 24) | 0;
+ HEAP32[$366 >> 2] = $$3348$i;
+ $425 = $220;
+ }
+ }
+ } while (0);
+ $367 = $$4327$lcssa$i >>> 0 < 16;
+ L128: do {
+ if ($367) {
+ $368 = ($$4327$lcssa$i + $219) | 0;
+ $369 = $368 | 3;
+ $370 = ($$4$lcssa$i + 4) | 0;
+ HEAP32[$370 >> 2] = $369;
+ $371 = ($$4$lcssa$i + $368) | 0;
+ $372 = ($371 + 4) | 0;
+ $373 = HEAP32[$372 >> 2] | 0;
+ $374 = $373 | 1;
+ HEAP32[$372 >> 2] = $374;
+ } else {
+ $375 = $219 | 3;
+ $376 = ($$4$lcssa$i + 4) | 0;
+ HEAP32[$376 >> 2] = $375;
+ $377 = $$4327$lcssa$i | 1;
+ $378 = ($319 + 4) | 0;
+ HEAP32[$378 >> 2] = $377;
+ $379 = ($319 + $$4327$lcssa$i) | 0;
+ HEAP32[$379 >> 2] = $$4327$lcssa$i;
+ $380 = $$4327$lcssa$i >>> 3;
+ $381 = $$4327$lcssa$i >>> 0 < 256;
+ if ($381) {
+ $382 = $380 << 1;
+ $383 = (1224 + ($382 << 2)) | 0;
+ $384 = HEAP32[296] | 0;
+ $385 = 1 << $380;
+ $386 = $384 & $385;
+ $387 = ($386 | 0) == 0;
+ if ($387) {
+ $388 = $384 | $385;
+ HEAP32[296] = $388;
+ $$pre$i204 = ($383 + 8) | 0;
+ $$0344$i = $383;
+ $$pre$phi$i205Z2D = $$pre$i204;
+ } else {
+ $389 = ($383 + 8) | 0;
+ $390 = HEAP32[$389 >> 2] | 0;
+ $$0344$i = $390;
+ $$pre$phi$i205Z2D = $389;
+ }
+ HEAP32[$$pre$phi$i205Z2D >> 2] = $319;
+ $391 = ($$0344$i + 12) | 0;
+ HEAP32[$391 >> 2] = $319;
+ $392 = ($319 + 8) | 0;
+ HEAP32[$392 >> 2] = $$0344$i;
+ $393 = ($319 + 12) | 0;
+ HEAP32[$393 >> 2] = $383;
+ break;
+ }
+ $394 = $$4327$lcssa$i >>> 8;
+ $395 = ($394 | 0) == 0;
+ if ($395) {
+ $$0338$i = 0;
+ } else {
+ $396 = $$4327$lcssa$i >>> 0 > 16777215;
+ if ($396) {
+ $$0338$i = 31;
+ } else {
+ $397 = ($394 + 1048320) | 0;
+ $398 = $397 >>> 16;
+ $399 = $398 & 8;
+ $400 = $394 << $399;
+ $401 = ($400 + 520192) | 0;
+ $402 = $401 >>> 16;
+ $403 = $402 & 4;
+ $404 = $403 | $399;
+ $405 = $400 << $403;
+ $406 = ($405 + 245760) | 0;
+ $407 = $406 >>> 16;
+ $408 = $407 & 2;
+ $409 = $404 | $408;
+ $410 = (14 - $409) | 0;
+ $411 = $405 << $408;
+ $412 = $411 >>> 15;
+ $413 = ($410 + $412) | 0;
+ $414 = $413 << 1;
+ $415 = ($413 + 7) | 0;
+ $416 = $$4327$lcssa$i >>> $415;
+ $417 = $416 & 1;
+ $418 = $417 | $414;
+ $$0338$i = $418;
+ }
+ }
+ $419 = (1488 + ($$0338$i << 2)) | 0;
+ $420 = ($319 + 28) | 0;
+ HEAP32[$420 >> 2] = $$0338$i;
+ $421 = ($319 + 16) | 0;
+ $422 = ($421 + 4) | 0;
+ HEAP32[$422 >> 2] = 0;
+ HEAP32[$421 >> 2] = 0;
+ $423 = 1 << $$0338$i;
+ $424 = $425 & $423;
+ $426 = ($424 | 0) == 0;
+ if ($426) {
+ $427 = $425 | $423;
+ HEAP32[1188 >> 2] = $427;
+ HEAP32[$419 >> 2] = $319;
+ $428 = ($319 + 24) | 0;
+ HEAP32[$428 >> 2] = $419;
+ $429 = ($319 + 12) | 0;
+ HEAP32[$429 >> 2] = $319;
+ $430 = ($319 + 8) | 0;
+ HEAP32[$430 >> 2] = $319;
+ break;
+ }
+ $431 = HEAP32[$419 >> 2] | 0;
+ $432 = ($431 + 4) | 0;
+ $433 = HEAP32[$432 >> 2] | 0;
+ $434 = $433 & -8;
+ $435 = ($434 | 0) == ($$4327$lcssa$i | 0);
+ L145: do {
+ if ($435) {
+ $$0321$lcssa$i = $431;
+ } else {
+ $436 = ($$0338$i | 0) == 31;
+ $437 = $$0338$i >>> 1;
+ $438 = (25 - $437) | 0;
+ $439 = $436 ? 0 : $438;
+ $440 = $$4327$lcssa$i << $439;
+ $$032012$i = $440;
+ $$032111$i = $431;
+ while (1) {
+ $447 = $$032012$i >>> 31;
+ $448 = ((($$032111$i + 16) | 0) + ($447 << 2)) | 0;
+ $443 = HEAP32[$448 >> 2] | 0;
+ $449 = ($443 | 0) == (0 | 0);
+ if ($449) {
+ break;
+ }
+ $441 = $$032012$i << 1;
+ $442 = ($443 + 4) | 0;
+ $444 = HEAP32[$442 >> 2] | 0;
+ $445 = $444 & -8;
+ $446 = ($445 | 0) == ($$4327$lcssa$i | 0);
+ if ($446) {
+ $$0321$lcssa$i = $443;
+ break L145;
+ } else {
+ $$032012$i = $441;
+ $$032111$i = $443;
+ }
+ }
+ HEAP32[$448 >> 2] = $319;
+ $450 = ($319 + 24) | 0;
+ HEAP32[$450 >> 2] = $$032111$i;
+ $451 = ($319 + 12) | 0;
+ HEAP32[$451 >> 2] = $319;
+ $452 = ($319 + 8) | 0;
+ HEAP32[$452 >> 2] = $319;
+ break L128;
+ }
+ } while (0);
+ $453 = ($$0321$lcssa$i + 8) | 0;
+ $454 = HEAP32[$453 >> 2] | 0;
+ $455 = ($454 + 12) | 0;
+ HEAP32[$455 >> 2] = $319;
+ HEAP32[$453 >> 2] = $319;
+ $456 = ($319 + 8) | 0;
+ HEAP32[$456 >> 2] = $454;
+ $457 = ($319 + 12) | 0;
+ HEAP32[$457 >> 2] = $$0321$lcssa$i;
+ $458 = ($319 + 24) | 0;
+ HEAP32[$458 >> 2] = 0;
+ }
+ } while (0);
+ $459 = ($$4$lcssa$i + 8) | 0;
+ $$0 = $459;
+ STACKTOP = sp;
+ return $$0 | 0;
+ } else {
+ $$0192 = $219;
+ }
+ } else {
+ $$0192 = $219;
+ }
+ }
+ }
+ }
}
- }
- HEAP32[$249>>2] = $$1;
- $251 = ((($$1)) + 24|0);
- HEAP32[$251>>2] = $$0347380;
- $252 = ((($$1)) + 12|0);
- HEAP32[$252>>2] = $$1;
- $253 = ((($$1)) + 8|0);
- HEAP32[$253>>2] = $$1;
- break L112;
+ } while (0);
+ $460 = HEAP32[1192 >> 2] | 0;
+ $461 = $460 >>> 0 < $$0192 >>> 0;
+ if (!$461) {
+ $462 = ($460 - $$0192) | 0;
+ $463 = HEAP32[1204 >> 2] | 0;
+ $464 = $462 >>> 0 > 15;
+ if ($464) {
+ $465 = ($463 + $$0192) | 0;
+ HEAP32[1204 >> 2] = $465;
+ HEAP32[1192 >> 2] = $462;
+ $466 = $462 | 1;
+ $467 = ($465 + 4) | 0;
+ HEAP32[$467 >> 2] = $466;
+ $468 = ($463 + $460) | 0;
+ HEAP32[$468 >> 2] = $462;
+ $469 = $$0192 | 3;
+ $470 = ($463 + 4) | 0;
+ HEAP32[$470 >> 2] = $469;
+ } else {
+ HEAP32[1192 >> 2] = 0;
+ HEAP32[1204 >> 2] = 0;
+ $471 = $460 | 3;
+ $472 = ($463 + 4) | 0;
+ HEAP32[$472 >> 2] = $471;
+ $473 = ($463 + $460) | 0;
+ $474 = ($473 + 4) | 0;
+ $475 = HEAP32[$474 >> 2] | 0;
+ $476 = $475 | 1;
+ HEAP32[$474 >> 2] = $476;
+ }
+ $477 = ($463 + 8) | 0;
+ $$0 = $477;
+ STACKTOP = sp;
+ return $$0 | 0;
}
- } while(0);
- $254 = ((($$0347$lcssa)) + 8|0);
- $255 = HEAP32[$254>>2]|0;
- $256 = ((($255)) + 12|0);
- HEAP32[$256>>2] = $$1;
- HEAP32[$254>>2] = $$1;
- $257 = ((($$1)) + 8|0);
- HEAP32[$257>>2] = $255;
- $258 = ((($$1)) + 12|0);
- HEAP32[$258>>2] = $$0347$lcssa;
- $259 = ((($$1)) + 24|0);
- HEAP32[$259>>2] = 0;
- }
- } while(0);
- $260 = HEAP32[(1216)>>2]|0;
- $261 = (($260) + -1)|0;
- HEAP32[(1216)>>2] = $261;
- $262 = ($261|0)==(0);
- if (!($262)) {
- return;
- }
- $$0194$in$i = (1640);
- while(1) {
- $$0194$i = HEAP32[$$0194$in$i>>2]|0;
- $263 = ($$0194$i|0)==(0|0);
- $264 = ((($$0194$i)) + 8|0);
- if ($263) {
- break;
- } else {
- $$0194$in$i = $264;
- }
- }
- HEAP32[(1216)>>2] = -1;
- return;
-}
-function ___stdio_close($0) {
- $0 = $0|0;
- var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
- $vararg_buffer = sp;
- $1 = ((($0)) + 60|0);
- $2 = HEAP32[$1>>2]|0;
- $3 = (_dummy($2)|0);
- HEAP32[$vararg_buffer>>2] = $3;
- $4 = (___syscall6(6,($vararg_buffer|0))|0);
- $5 = (___syscall_ret($4)|0);
- STACKTOP = sp;return ($5|0);
-}
-function ___stdio_write($0,$1,$2) {
- $0 = $0|0;
- $1 = $1|0;
- $2 = $2|0;
- var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0;
- var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0;
- var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0;
- var $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0);
- $vararg_buffer3 = sp + 32|0;
- $vararg_buffer = sp + 16|0;
- $3 = sp;
- $4 = ((($0)) + 28|0);
- $5 = HEAP32[$4>>2]|0;
- HEAP32[$3>>2] = $5;
- $6 = ((($3)) + 4|0);
- $7 = ((($0)) + 20|0);
- $8 = HEAP32[$7>>2]|0;
- $9 = (($8) - ($5))|0;
- HEAP32[$6>>2] = $9;
- $10 = ((($3)) + 8|0);
- HEAP32[$10>>2] = $1;
- $11 = ((($3)) + 12|0);
- HEAP32[$11>>2] = $2;
- $12 = (($9) + ($2))|0;
- $13 = ((($0)) + 60|0);
- $14 = HEAP32[$13>>2]|0;
- $15 = $3;
- HEAP32[$vararg_buffer>>2] = $14;
- $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
- HEAP32[$vararg_ptr1>>2] = $15;
- $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
- HEAP32[$vararg_ptr2>>2] = 2;
- $16 = (___syscall146(146,($vararg_buffer|0))|0);
- $17 = (___syscall_ret($16)|0);
- $18 = ($12|0)==($17|0);
- L1: do {
- if ($18) {
- label = 3;
- } else {
- $$04756 = 2;$$04855 = $12;$$04954 = $3;$27 = $17;
- while(1) {
- $26 = ($27|0)<(0);
- if ($26) {
- break;
+ $478 = HEAP32[1196 >> 2] | 0;
+ $479 = $478 >>> 0 > $$0192 >>> 0;
+ if ($479) {
+ $480 = ($478 - $$0192) | 0;
+ HEAP32[1196 >> 2] = $480;
+ $481 = HEAP32[1208 >> 2] | 0;
+ $482 = ($481 + $$0192) | 0;
+ HEAP32[1208 >> 2] = $482;
+ $483 = $480 | 1;
+ $484 = ($482 + 4) | 0;
+ HEAP32[$484 >> 2] = $483;
+ $485 = $$0192 | 3;
+ $486 = ($481 + 4) | 0;
+ HEAP32[$486 >> 2] = $485;
+ $487 = ($481 + 8) | 0;
+ $$0 = $487;
+ STACKTOP = sp;
+ return $$0 | 0;
}
- $35 = (($$04855) - ($27))|0;
- $36 = ((($$04954)) + 4|0);
- $37 = HEAP32[$36>>2]|0;
- $38 = ($27>>>0)>($37>>>0);
- $39 = ((($$04954)) + 8|0);
- $$150 = $38 ? $39 : $$04954;
- $40 = $38 << 31 >> 31;
- $$1 = (($$04756) + ($40))|0;
- $41 = $38 ? $37 : 0;
- $$0 = (($27) - ($41))|0;
- $42 = HEAP32[$$150>>2]|0;
- $43 = (($42) + ($$0)|0);
- HEAP32[$$150>>2] = $43;
- $44 = ((($$150)) + 4|0);
- $45 = HEAP32[$44>>2]|0;
- $46 = (($45) - ($$0))|0;
- HEAP32[$44>>2] = $46;
- $47 = HEAP32[$13>>2]|0;
- $48 = $$150;
- HEAP32[$vararg_buffer3>>2] = $47;
- $vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
- HEAP32[$vararg_ptr6>>2] = $48;
- $vararg_ptr7 = ((($vararg_buffer3)) + 8|0);
- HEAP32[$vararg_ptr7>>2] = $$1;
- $49 = (___syscall146(146,($vararg_buffer3|0))|0);
- $50 = (___syscall_ret($49)|0);
- $51 = ($35|0)==($50|0);
- if ($51) {
- label = 3;
- break L1;
+ $488 = HEAP32[414] | 0;
+ $489 = ($488 | 0) == 0;
+ if ($489) {
+ HEAP32[1664 >> 2] = 4096;
+ HEAP32[1660 >> 2] = 4096;
+ HEAP32[1668 >> 2] = -1;
+ HEAP32[1672 >> 2] = -1;
+ HEAP32[1676 >> 2] = 0;
+ HEAP32[1628 >> 2] = 0;
+ $490 = $1;
+ $491 = $490 & -16;
+ $492 = $491 ^ 1431655768;
+ HEAP32[414] = $492;
+ $496 = 4096;
} else {
- $$04756 = $$1;$$04855 = $35;$$04954 = $$150;$27 = $50;
+ $$pre$i195 = HEAP32[1664 >> 2] | 0;
+ $496 = $$pre$i195;
}
- }
- $28 = ((($0)) + 16|0);
- HEAP32[$28>>2] = 0;
- HEAP32[$4>>2] = 0;
- HEAP32[$7>>2] = 0;
- $29 = HEAP32[$0>>2]|0;
- $30 = $29 | 32;
- HEAP32[$0>>2] = $30;
- $31 = ($$04756|0)==(2);
- if ($31) {
- $$051 = 0;
- } else {
- $32 = ((($$04954)) + 4|0);
- $33 = HEAP32[$32>>2]|0;
- $34 = (($2) - ($33))|0;
- $$051 = $34;
- }
- }
- } while(0);
- if ((label|0) == 3) {
- $19 = ((($0)) + 44|0);
- $20 = HEAP32[$19>>2]|0;
- $21 = ((($0)) + 48|0);
- $22 = HEAP32[$21>>2]|0;
- $23 = (($20) + ($22)|0);
- $24 = ((($0)) + 16|0);
- HEAP32[$24>>2] = $23;
- $25 = $20;
- HEAP32[$4>>2] = $25;
- HEAP32[$7>>2] = $25;
- $$051 = $2;
- }
- STACKTOP = sp;return ($$051|0);
-}
-function ___stdio_seek($0,$1,$2) {
- $0 = $0|0;
- $1 = $1|0;
- $2 = $2|0;
- var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0);
- $vararg_buffer = sp;
- $3 = sp + 20|0;
- $4 = ((($0)) + 60|0);
- $5 = HEAP32[$4>>2]|0;
- $6 = $3;
- HEAP32[$vararg_buffer>>2] = $5;
- $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
- HEAP32[$vararg_ptr1>>2] = 0;
- $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
- HEAP32[$vararg_ptr2>>2] = $1;
- $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
- HEAP32[$vararg_ptr3>>2] = $6;
- $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
- HEAP32[$vararg_ptr4>>2] = $2;
- $7 = (___syscall140(140,($vararg_buffer|0))|0);
- $8 = (___syscall_ret($7)|0);
- $9 = ($8|0)<(0);
- if ($9) {
- HEAP32[$3>>2] = -1;
- $10 = -1;
- } else {
- $$pre = HEAP32[$3>>2]|0;
- $10 = $$pre;
- }
- STACKTOP = sp;return ($10|0);
-}
-function ___syscall_ret($0) {
- $0 = $0|0;
- var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $1 = ($0>>>0)>(4294963200);
- if ($1) {
- $2 = (0 - ($0))|0;
- $3 = (___errno_location()|0);
- HEAP32[$3>>2] = $2;
- $$0 = -1;
- } else {
- $$0 = $0;
- }
- return ($$0|0);
-}
-function ___errno_location() {
- var label = 0, sp = 0;
- sp = STACKTOP;
- return (1680|0);
-}
-function _dummy($0) {
- $0 = $0|0;
- var label = 0, sp = 0;
- sp = STACKTOP;
- return ($0|0);
-}
-function ___stdout_write($0,$1,$2) {
- $0 = $0|0;
- $1 = $1|0;
- $2 = $2|0;
- var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0);
- $vararg_buffer = sp;
- $3 = sp + 16|0;
- $4 = ((($0)) + 36|0);
- HEAP32[$4>>2] = 4;
- $5 = HEAP32[$0>>2]|0;
- $6 = $5 & 64;
- $7 = ($6|0)==(0);
- if ($7) {
- $8 = ((($0)) + 60|0);
- $9 = HEAP32[$8>>2]|0;
- $10 = $3;
- HEAP32[$vararg_buffer>>2] = $9;
- $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
- HEAP32[$vararg_ptr1>>2] = 21523;
- $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
- HEAP32[$vararg_ptr2>>2] = $10;
- $11 = (___syscall54(54,($vararg_buffer|0))|0);
- $12 = ($11|0)==(0);
- if (!($12)) {
- $13 = ((($0)) + 75|0);
- HEAP8[$13>>0] = -1;
- }
- }
- $14 = (___stdio_write($0,$1,$2)|0);
- STACKTOP = sp;return ($14|0);
-}
-function ___unlockfile($0) {
- $0 = $0|0;
- var label = 0, sp = 0;
- sp = STACKTOP;
- return;
-}
-function ___lockfile($0) {
- $0 = $0|0;
- var label = 0, sp = 0;
- sp = STACKTOP;
- return 0;
-}
-function ___ofl_lock() {
- var label = 0, sp = 0;
- sp = STACKTOP;
- ___lock((1684|0));
- return (1692|0);
-}
-function ___ofl_unlock() {
- var label = 0, sp = 0;
- sp = STACKTOP;
- ___unlock((1684|0));
- return;
-}
-function _fflush($0) {
- $0 = $0|0;
- var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
- var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $1 = ($0|0)==(0|0);
- do {
- if ($1) {
- $8 = HEAP32[35]|0;
- $9 = ($8|0)==(0|0);
- if ($9) {
- $29 = 0;
- } else {
- $10 = HEAP32[35]|0;
- $11 = (_fflush($10)|0);
- $29 = $11;
- }
- $12 = (___ofl_lock()|0);
- $$02325 = HEAP32[$12>>2]|0;
- $13 = ($$02325|0)==(0|0);
- if ($13) {
- $$024$lcssa = $29;
- } else {
- $$02327 = $$02325;$$02426 = $29;
- while(1) {
- $14 = ((($$02327)) + 76|0);
- $15 = HEAP32[$14>>2]|0;
- $16 = ($15|0)>(-1);
- if ($16) {
- $17 = (___lockfile($$02327)|0);
- $26 = $17;
- } else {
- $26 = 0;
- }
- $18 = ((($$02327)) + 20|0);
- $19 = HEAP32[$18>>2]|0;
- $20 = ((($$02327)) + 28|0);
- $21 = HEAP32[$20>>2]|0;
- $22 = ($19>>>0)>($21>>>0);
- if ($22) {
- $23 = (___fflush_unlocked($$02327)|0);
- $24 = $23 | $$02426;
- $$1 = $24;
- } else {
- $$1 = $$02426;
- }
- $25 = ($26|0)==(0);
- if (!($25)) {
- ___unlockfile($$02327);
- }
- $27 = ((($$02327)) + 56|0);
- $$023 = HEAP32[$27>>2]|0;
- $28 = ($$023|0)==(0|0);
- if ($28) {
- $$024$lcssa = $$1;
- break;
- } else {
- $$02327 = $$023;$$02426 = $$1;
- }
+ $493 = ($$0192 + 48) | 0;
+ $494 = ($$0192 + 47) | 0;
+ $495 = ($496 + $494) | 0;
+ $497 = (0 - $496) | 0;
+ $498 = $495 & $497;
+ $499 = $498 >>> 0 > $$0192 >>> 0;
+ if (!$499) {
+ $$0 = 0;
+ STACKTOP = sp;
+ return $$0 | 0;
}
- }
- ___ofl_unlock();
- $$0 = $$024$lcssa;
- } else {
- $2 = ((($0)) + 76|0);
- $3 = HEAP32[$2>>2]|0;
- $4 = ($3|0)>(-1);
- if (!($4)) {
- $5 = (___fflush_unlocked($0)|0);
- $$0 = $5;
- break;
- }
- $6 = (___lockfile($0)|0);
- $phitmp = ($6|0)==(0);
- $7 = (___fflush_unlocked($0)|0);
- if ($phitmp) {
- $$0 = $7;
- } else {
- ___unlockfile($0);
- $$0 = $7;
- }
+ $500 = HEAP32[1624 >> 2] | 0;
+ $501 = ($500 | 0) == 0;
+ if (!$501) {
+ $502 = HEAP32[1616 >> 2] | 0;
+ $503 = ($502 + $498) | 0;
+ $504 = $503 >>> 0 <= $502 >>> 0;
+ $505 = $503 >>> 0 > $500 >>> 0;
+ $or$cond1$i = $504 | $505;
+ if ($or$cond1$i) {
+ $$0 = 0;
+ STACKTOP = sp;
+ return $$0 | 0;
+ }
+ }
+ $506 = HEAP32[1628 >> 2] | 0;
+ $507 = $506 & 4;
+ $508 = ($507 | 0) == 0;
+ L178: do {
+ if ($508) {
+ $509 = HEAP32[1208 >> 2] | 0;
+ $510 = ($509 | 0) == (0 | 0);
+ L180: do {
+ if ($510) {
+ label = 128;
+ } else {
+ $$0$i20$i = 1632;
+ while (1) {
+ $511 = HEAP32[$$0$i20$i >> 2] | 0;
+ $512 = $511 >>> 0 > $509 >>> 0;
+ if (!$512) {
+ $513 = ($$0$i20$i + 4) | 0;
+ $514 = HEAP32[$513 >> 2] | 0;
+ $515 = ($511 + $514) | 0;
+ $516 = $515 >>> 0 > $509 >>> 0;
+ if ($516) {
+ break;
+ }
+ }
+ $517 = ($$0$i20$i + 8) | 0;
+ $518 = HEAP32[$517 >> 2] | 0;
+ $519 = ($518 | 0) == (0 | 0);
+ if ($519) {
+ label = 128;
+ break L180;
+ } else {
+ $$0$i20$i = $518;
+ }
+ }
+ $542 = ($495 - $478) | 0;
+ $543 = $542 & $497;
+ $544 = $543 >>> 0 < 2147483647;
+ if ($544) {
+ $545 = ($$0$i20$i + 4) | 0;
+ $546 = _sbrk($543 | 0) | 0;
+ $547 = HEAP32[$$0$i20$i >> 2] | 0;
+ $548 = HEAP32[$545 >> 2] | 0;
+ $549 = ($547 + $548) | 0;
+ $550 = ($546 | 0) == ($549 | 0);
+ if ($550) {
+ $551 = ($546 | 0) == (-1 | 0);
+ if ($551) {
+ $$2234243136$i = $543;
+ } else {
+ $$723947$i = $543;
+ $$748$i = $546;
+ label = 145;
+ break L178;
+ }
+ } else {
+ $$2247$ph$i = $546;
+ $$2253$ph$i = $543;
+ label = 136;
+ }
+ } else {
+ $$2234243136$i = 0;
+ }
+ }
+ } while (0);
+ do {
+ if ((label | 0) == 128) {
+ $520 = _sbrk(0) | 0;
+ $521 = ($520 | 0) == (-1 | 0);
+ if ($521) {
+ $$2234243136$i = 0;
+ } else {
+ $522 = $520;
+ $523 = HEAP32[1660 >> 2] | 0;
+ $524 = ($523 + -1) | 0;
+ $525 = $524 & $522;
+ $526 = ($525 | 0) == 0;
+ $527 = ($524 + $522) | 0;
+ $528 = (0 - $523) | 0;
+ $529 = $527 & $528;
+ $530 = ($529 - $522) | 0;
+ $531 = $526 ? 0 : $530;
+ $spec$select49$i = ($531 + $498) | 0;
+ $532 = HEAP32[1616 >> 2] | 0;
+ $533 = ($spec$select49$i + $532) | 0;
+ $534 = $spec$select49$i >>> 0 > $$0192 >>> 0;
+ $535 = $spec$select49$i >>> 0 < 2147483647;
+ $or$cond$i = $534 & $535;
+ if ($or$cond$i) {
+ $536 = HEAP32[1624 >> 2] | 0;
+ $537 = ($536 | 0) == 0;
+ if (!$537) {
+ $538 = $533 >>> 0 <= $532 >>> 0;
+ $539 = $533 >>> 0 > $536 >>> 0;
+ $or$cond2$i = $538 | $539;
+ if ($or$cond2$i) {
+ $$2234243136$i = 0;
+ break;
+ }
+ }
+ $540 = _sbrk($spec$select49$i | 0) | 0;
+ $541 = ($540 | 0) == ($520 | 0);
+ if ($541) {
+ $$723947$i = $spec$select49$i;
+ $$748$i = $520;
+ label = 145;
+ break L178;
+ } else {
+ $$2247$ph$i = $540;
+ $$2253$ph$i = $spec$select49$i;
+ label = 136;
+ }
+ } else {
+ $$2234243136$i = 0;
+ }
+ }
+ }
+ } while (0);
+ do {
+ if ((label | 0) == 136) {
+ $552 = (0 - $$2253$ph$i) | 0;
+ $553 = ($$2247$ph$i | 0) != (-1 | 0);
+ $554 = $$2253$ph$i >>> 0 < 2147483647;
+ $or$cond7$i = $554 & $553;
+ $555 = $493 >>> 0 > $$2253$ph$i >>> 0;
+ $or$cond6$i = $555 & $or$cond7$i;
+ if (!$or$cond6$i) {
+ $565 = ($$2247$ph$i | 0) == (-1 | 0);
+ if ($565) {
+ $$2234243136$i = 0;
+ break;
+ } else {
+ $$723947$i = $$2253$ph$i;
+ $$748$i = $$2247$ph$i;
+ label = 145;
+ break L178;
+ }
+ }
+ $556 = HEAP32[1664 >> 2] | 0;
+ $557 = ($494 - $$2253$ph$i) | 0;
+ $558 = ($557 + $556) | 0;
+ $559 = (0 - $556) | 0;
+ $560 = $558 & $559;
+ $561 = $560 >>> 0 < 2147483647;
+ if (!$561) {
+ $$723947$i = $$2253$ph$i;
+ $$748$i = $$2247$ph$i;
+ label = 145;
+ break L178;
+ }
+ $562 = _sbrk($560 | 0) | 0;
+ $563 = ($562 | 0) == (-1 | 0);
+ if ($563) {
+ _sbrk($552 | 0) | 0;
+ $$2234243136$i = 0;
+ break;
+ } else {
+ $564 = ($560 + $$2253$ph$i) | 0;
+ $$723947$i = $564;
+ $$748$i = $$2247$ph$i;
+ label = 145;
+ break L178;
+ }
+ }
+ } while (0);
+ $566 = HEAP32[1628 >> 2] | 0;
+ $567 = $566 | 4;
+ HEAP32[1628 >> 2] = $567;
+ $$4236$i = $$2234243136$i;
+ label = 143;
+ } else {
+ $$4236$i = 0;
+ label = 143;
+ }
+ } while (0);
+ if ((label | 0) == 143) {
+ $568 = $498 >>> 0 < 2147483647;
+ if ($568) {
+ $569 = _sbrk($498 | 0) | 0;
+ $570 = _sbrk(0) | 0;
+ $571 = ($569 | 0) != (-1 | 0);
+ $572 = ($570 | 0) != (-1 | 0);
+ $or$cond5$i = $571 & $572;
+ $573 = $569 >>> 0 < $570 >>> 0;
+ $or$cond8$i = $573 & $or$cond5$i;
+ $574 = $570;
+ $575 = $569;
+ $576 = ($574 - $575) | 0;
+ $577 = ($$0192 + 40) | 0;
+ $578 = $576 >>> 0 > $577 >>> 0;
+ $spec$select9$i = $578 ? $576 : $$4236$i;
+ $or$cond8$not$i = $or$cond8$i ^ 1;
+ $579 = ($569 | 0) == (-1 | 0);
+ $not$$i = $578 ^ 1;
+ $580 = $579 | $not$$i;
+ $or$cond50$i = $580 | $or$cond8$not$i;
+ if (!$or$cond50$i) {
+ $$723947$i = $spec$select9$i;
+ $$748$i = $569;
+ label = 145;
+ }
+ }
+ }
+ if ((label | 0) == 145) {
+ $581 = HEAP32[1616 >> 2] | 0;
+ $582 = ($581 + $$723947$i) | 0;
+ HEAP32[1616 >> 2] = $582;
+ $583 = HEAP32[1620 >> 2] | 0;
+ $584 = $582 >>> 0 > $583 >>> 0;
+ if ($584) {
+ HEAP32[1620 >> 2] = $582;
+ }
+ $585 = HEAP32[1208 >> 2] | 0;
+ $586 = ($585 | 0) == (0 | 0);
+ L215: do {
+ if ($586) {
+ $587 = HEAP32[1200 >> 2] | 0;
+ $588 = ($587 | 0) == (0 | 0);
+ $589 = $$748$i >>> 0 < $587 >>> 0;
+ $or$cond11$i = $588 | $589;
+ if ($or$cond11$i) {
+ HEAP32[1200 >> 2] = $$748$i;
+ }
+ HEAP32[1632 >> 2] = $$748$i;
+ HEAP32[1636 >> 2] = $$723947$i;
+ HEAP32[1644 >> 2] = 0;
+ $590 = HEAP32[414] | 0;
+ HEAP32[1220 >> 2] = $590;
+ HEAP32[1216 >> 2] = -1;
+ HEAP32[1236 >> 2] = 1224;
+ HEAP32[1232 >> 2] = 1224;
+ HEAP32[1244 >> 2] = 1232;
+ HEAP32[1240 >> 2] = 1232;
+ HEAP32[1252 >> 2] = 1240;
+ HEAP32[1248 >> 2] = 1240;
+ HEAP32[1260 >> 2] = 1248;
+ HEAP32[1256 >> 2] = 1248;
+ HEAP32[1268 >> 2] = 1256;
+ HEAP32[1264 >> 2] = 1256;
+ HEAP32[1276 >> 2] = 1264;
+ HEAP32[1272 >> 2] = 1264;
+ HEAP32[1284 >> 2] = 1272;
+ HEAP32[1280 >> 2] = 1272;
+ HEAP32[1292 >> 2] = 1280;
+ HEAP32[1288 >> 2] = 1280;
+ HEAP32[1300 >> 2] = 1288;
+ HEAP32[1296 >> 2] = 1288;
+ HEAP32[1308 >> 2] = 1296;
+ HEAP32[1304 >> 2] = 1296;
+ HEAP32[1316 >> 2] = 1304;
+ HEAP32[1312 >> 2] = 1304;
+ HEAP32[1324 >> 2] = 1312;
+ HEAP32[1320 >> 2] = 1312;
+ HEAP32[1332 >> 2] = 1320;
+ HEAP32[1328 >> 2] = 1320;
+ HEAP32[1340 >> 2] = 1328;
+ HEAP32[1336 >> 2] = 1328;
+ HEAP32[1348 >> 2] = 1336;
+ HEAP32[1344 >> 2] = 1336;
+ HEAP32[1356 >> 2] = 1344;
+ HEAP32[1352 >> 2] = 1344;
+ HEAP32[1364 >> 2] = 1352;
+ HEAP32[1360 >> 2] = 1352;
+ HEAP32[1372 >> 2] = 1360;
+ HEAP32[1368 >> 2] = 1360;
+ HEAP32[1380 >> 2] = 1368;
+ HEAP32[1376 >> 2] = 1368;
+ HEAP32[1388 >> 2] = 1376;
+ HEAP32[1384 >> 2] = 1376;
+ HEAP32[1396 >> 2] = 1384;
+ HEAP32[1392 >> 2] = 1384;
+ HEAP32[1404 >> 2] = 1392;
+ HEAP32[1400 >> 2] = 1392;
+ HEAP32[1412 >> 2] = 1400;
+ HEAP32[1408 >> 2] = 1400;
+ HEAP32[1420 >> 2] = 1408;
+ HEAP32[1416 >> 2] = 1408;
+ HEAP32[1428 >> 2] = 1416;
+ HEAP32[1424 >> 2] = 1416;
+ HEAP32[1436 >> 2] = 1424;
+ HEAP32[1432 >> 2] = 1424;
+ HEAP32[1444 >> 2] = 1432;
+ HEAP32[1440 >> 2] = 1432;
+ HEAP32[1452 >> 2] = 1440;
+ HEAP32[1448 >> 2] = 1440;
+ HEAP32[1460 >> 2] = 1448;
+ HEAP32[1456 >> 2] = 1448;
+ HEAP32[1468 >> 2] = 1456;
+ HEAP32[1464 >> 2] = 1456;
+ HEAP32[1476 >> 2] = 1464;
+ HEAP32[1472 >> 2] = 1464;
+ HEAP32[1484 >> 2] = 1472;
+ HEAP32[1480 >> 2] = 1472;
+ $591 = ($$723947$i + -40) | 0;
+ $592 = ($$748$i + 8) | 0;
+ $593 = $592;
+ $594 = $593 & 7;
+ $595 = ($594 | 0) == 0;
+ $596 = (0 - $593) | 0;
+ $597 = $596 & 7;
+ $598 = $595 ? 0 : $597;
+ $599 = ($$748$i + $598) | 0;
+ $600 = ($591 - $598) | 0;
+ HEAP32[1208 >> 2] = $599;
+ HEAP32[1196 >> 2] = $600;
+ $601 = $600 | 1;
+ $602 = ($599 + 4) | 0;
+ HEAP32[$602 >> 2] = $601;
+ $603 = ($$748$i + $591) | 0;
+ $604 = ($603 + 4) | 0;
+ HEAP32[$604 >> 2] = 40;
+ $605 = HEAP32[1672 >> 2] | 0;
+ HEAP32[1212 >> 2] = $605;
+ } else {
+ $$024372$i = 1632;
+ while (1) {
+ $606 = HEAP32[$$024372$i >> 2] | 0;
+ $607 = ($$024372$i + 4) | 0;
+ $608 = HEAP32[$607 >> 2] | 0;
+ $609 = ($606 + $608) | 0;
+ $610 = ($$748$i | 0) == ($609 | 0);
+ if ($610) {
+ label = 154;
+ break;
+ }
+ $611 = ($$024372$i + 8) | 0;
+ $612 = HEAP32[$611 >> 2] | 0;
+ $613 = ($612 | 0) == (0 | 0);
+ if ($613) {
+ break;
+ } else {
+ $$024372$i = $612;
+ }
+ }
+ if ((label | 0) == 154) {
+ $614 = ($$024372$i + 4) | 0;
+ $615 = ($$024372$i + 12) | 0;
+ $616 = HEAP32[$615 >> 2] | 0;
+ $617 = $616 & 8;
+ $618 = ($617 | 0) == 0;
+ if ($618) {
+ $619 = $606 >>> 0 <= $585 >>> 0;
+ $620 = $$748$i >>> 0 > $585 >>> 0;
+ $or$cond51$i = $620 & $619;
+ if ($or$cond51$i) {
+ $621 = ($608 + $$723947$i) | 0;
+ HEAP32[$614 >> 2] = $621;
+ $622 = HEAP32[1196 >> 2] | 0;
+ $623 = ($622 + $$723947$i) | 0;
+ $624 = ($585 + 8) | 0;
+ $625 = $624;
+ $626 = $625 & 7;
+ $627 = ($626 | 0) == 0;
+ $628 = (0 - $625) | 0;
+ $629 = $628 & 7;
+ $630 = $627 ? 0 : $629;
+ $631 = ($585 + $630) | 0;
+ $632 = ($623 - $630) | 0;
+ HEAP32[1208 >> 2] = $631;
+ HEAP32[1196 >> 2] = $632;
+ $633 = $632 | 1;
+ $634 = ($631 + 4) | 0;
+ HEAP32[$634 >> 2] = $633;
+ $635 = ($585 + $623) | 0;
+ $636 = ($635 + 4) | 0;
+ HEAP32[$636 >> 2] = 40;
+ $637 = HEAP32[1672 >> 2] | 0;
+ HEAP32[1212 >> 2] = $637;
+ break;
+ }
+ }
+ }
+ $638 = HEAP32[1200 >> 2] | 0;
+ $639 = $$748$i >>> 0 < $638 >>> 0;
+ if ($639) {
+ HEAP32[1200 >> 2] = $$748$i;
+ }
+ $640 = ($$748$i + $$723947$i) | 0;
+ $$124471$i = 1632;
+ while (1) {
+ $641 = HEAP32[$$124471$i >> 2] | 0;
+ $642 = ($641 | 0) == ($640 | 0);
+ if ($642) {
+ label = 162;
+ break;
+ }
+ $643 = ($$124471$i + 8) | 0;
+ $644 = HEAP32[$643 >> 2] | 0;
+ $645 = ($644 | 0) == (0 | 0);
+ if ($645) {
+ break;
+ } else {
+ $$124471$i = $644;
+ }
+ }
+ if ((label | 0) == 162) {
+ $646 = ($$124471$i + 12) | 0;
+ $647 = HEAP32[$646 >> 2] | 0;
+ $648 = $647 & 8;
+ $649 = ($648 | 0) == 0;
+ if ($649) {
+ HEAP32[$$124471$i >> 2] = $$748$i;
+ $650 = ($$124471$i + 4) | 0;
+ $651 = HEAP32[$650 >> 2] | 0;
+ $652 = ($651 + $$723947$i) | 0;
+ HEAP32[$650 >> 2] = $652;
+ $653 = ($$748$i + 8) | 0;
+ $654 = $653;
+ $655 = $654 & 7;
+ $656 = ($655 | 0) == 0;
+ $657 = (0 - $654) | 0;
+ $658 = $657 & 7;
+ $659 = $656 ? 0 : $658;
+ $660 = ($$748$i + $659) | 0;
+ $661 = ($640 + 8) | 0;
+ $662 = $661;
+ $663 = $662 & 7;
+ $664 = ($663 | 0) == 0;
+ $665 = (0 - $662) | 0;
+ $666 = $665 & 7;
+ $667 = $664 ? 0 : $666;
+ $668 = ($640 + $667) | 0;
+ $669 = $668;
+ $670 = $660;
+ $671 = ($669 - $670) | 0;
+ $672 = ($660 + $$0192) | 0;
+ $673 = ($671 - $$0192) | 0;
+ $674 = $$0192 | 3;
+ $675 = ($660 + 4) | 0;
+ HEAP32[$675 >> 2] = $674;
+ $676 = ($585 | 0) == ($668 | 0);
+ L238: do {
+ if ($676) {
+ $677 = HEAP32[1196 >> 2] | 0;
+ $678 = ($677 + $673) | 0;
+ HEAP32[1196 >> 2] = $678;
+ HEAP32[1208 >> 2] = $672;
+ $679 = $678 | 1;
+ $680 = ($672 + 4) | 0;
+ HEAP32[$680 >> 2] = $679;
+ } else {
+ $681 = HEAP32[1204 >> 2] | 0;
+ $682 = ($681 | 0) == ($668 | 0);
+ if ($682) {
+ $683 = HEAP32[1192 >> 2] | 0;
+ $684 = ($683 + $673) | 0;
+ HEAP32[1192 >> 2] = $684;
+ HEAP32[1204 >> 2] = $672;
+ $685 = $684 | 1;
+ $686 = ($672 + 4) | 0;
+ HEAP32[$686 >> 2] = $685;
+ $687 = ($672 + $684) | 0;
+ HEAP32[$687 >> 2] = $684;
+ break;
+ }
+ $688 = ($668 + 4) | 0;
+ $689 = HEAP32[$688 >> 2] | 0;
+ $690 = $689 & 3;
+ $691 = ($690 | 0) == 1;
+ if ($691) {
+ $692 = $689 & -8;
+ $693 = $689 >>> 3;
+ $694 = $689 >>> 0 < 256;
+ L246: do {
+ if ($694) {
+ $695 = ($668 + 8) | 0;
+ $696 = HEAP32[$695 >> 2] | 0;
+ $697 = ($668 + 12) | 0;
+ $698 = HEAP32[$697 >> 2] | 0;
+ $699 = ($698 | 0) == ($696 | 0);
+ if ($699) {
+ $700 = 1 << $693;
+ $701 = $700 ^ -1;
+ $702 = HEAP32[296] | 0;
+ $703 = $702 & $701;
+ HEAP32[296] = $703;
+ break;
+ } else {
+ $704 = ($696 + 12) | 0;
+ HEAP32[$704 >> 2] = $698;
+ $705 = ($698 + 8) | 0;
+ HEAP32[$705 >> 2] = $696;
+ break;
+ }
+ } else {
+ $706 = ($668 + 24) | 0;
+ $707 = HEAP32[$706 >> 2] | 0;
+ $708 = ($668 + 12) | 0;
+ $709 = HEAP32[$708 >> 2] | 0;
+ $710 = ($709 | 0) == ($668 | 0);
+ do {
+ if ($710) {
+ $715 = ($668 + 16) | 0;
+ $716 = ($715 + 4) | 0;
+ $717 = HEAP32[$716 >> 2] | 0;
+ $718 = ($717 | 0) == (0 | 0);
+ if ($718) {
+ $719 = HEAP32[$715 >> 2] | 0;
+ $720 = ($719 | 0) == (0 | 0);
+ if ($720) {
+ $$3$i$i = 0;
+ break;
+ } else {
+ $$1263$i$i$ph = $719;
+ $$1265$i$i$ph = $715;
+ }
+ } else {
+ $$1263$i$i$ph = $717;
+ $$1265$i$i$ph = $716;
+ }
+ $$1263$i$i = $$1263$i$i$ph;
+ $$1265$i$i = $$1265$i$i$ph;
+ while (1) {
+ $721 = ($$1263$i$i + 20) | 0;
+ $722 = HEAP32[$721 >> 2] | 0;
+ $723 = ($722 | 0) == (0 | 0);
+ if ($723) {
+ $724 = ($$1263$i$i + 16) | 0;
+ $725 = HEAP32[$724 >> 2] | 0;
+ $726 = ($725 | 0) == (0 | 0);
+ if ($726) {
+ break;
+ } else {
+ $$1263$i$i$be = $725;
+ $$1265$i$i$be = $724;
+ }
+ } else {
+ $$1263$i$i$be = $722;
+ $$1265$i$i$be = $721;
+ }
+ $$1263$i$i = $$1263$i$i$be;
+ $$1265$i$i = $$1265$i$i$be;
+ }
+ HEAP32[$$1265$i$i >> 2] = 0;
+ $$3$i$i = $$1263$i$i;
+ } else {
+ $711 = ($668 + 8) | 0;
+ $712 = HEAP32[$711 >> 2] | 0;
+ $713 = ($712 + 12) | 0;
+ HEAP32[$713 >> 2] = $709;
+ $714 = ($709 + 8) | 0;
+ HEAP32[$714 >> 2] = $712;
+ $$3$i$i = $709;
+ }
+ } while (0);
+ $727 = ($707 | 0) == (0 | 0);
+ if ($727) {
+ break;
+ }
+ $728 = ($668 + 28) | 0;
+ $729 = HEAP32[$728 >> 2] | 0;
+ $730 = (1488 + ($729 << 2)) | 0;
+ $731 = HEAP32[$730 >> 2] | 0;
+ $732 = ($731 | 0) == ($668 | 0);
+ do {
+ if ($732) {
+ HEAP32[$730 >> 2] = $$3$i$i;
+ $cond$i$i = ($$3$i$i | 0) == (0 | 0);
+ if (!$cond$i$i) {
+ break;
+ }
+ $733 = 1 << $729;
+ $734 = $733 ^ -1;
+ $735 = HEAP32[1188 >> 2] | 0;
+ $736 = $735 & $734;
+ HEAP32[1188 >> 2] = $736;
+ break L246;
+ } else {
+ $737 = ($707 + 16) | 0;
+ $738 = HEAP32[$737 >> 2] | 0;
+ $739 = ($738 | 0) == ($668 | 0);
+ $740 = ($707 + 20) | 0;
+ $$sink321 = $739 ? $737 : $740;
+ HEAP32[$$sink321 >> 2] = $$3$i$i;
+ $741 = ($$3$i$i | 0) == (0 | 0);
+ if ($741) {
+ break L246;
+ }
+ }
+ } while (0);
+ $742 = ($$3$i$i + 24) | 0;
+ HEAP32[$742 >> 2] = $707;
+ $743 = ($668 + 16) | 0;
+ $744 = HEAP32[$743 >> 2] | 0;
+ $745 = ($744 | 0) == (0 | 0);
+ if (!$745) {
+ $746 = ($$3$i$i + 16) | 0;
+ HEAP32[$746 >> 2] = $744;
+ $747 = ($744 + 24) | 0;
+ HEAP32[$747 >> 2] = $$3$i$i;
+ }
+ $748 = ($743 + 4) | 0;
+ $749 = HEAP32[$748 >> 2] | 0;
+ $750 = ($749 | 0) == (0 | 0);
+ if ($750) {
+ break;
+ }
+ $751 = ($$3$i$i + 20) | 0;
+ HEAP32[$751 >> 2] = $749;
+ $752 = ($749 + 24) | 0;
+ HEAP32[$752 >> 2] = $$3$i$i;
+ }
+ } while (0);
+ $753 = ($668 + $692) | 0;
+ $754 = ($692 + $673) | 0;
+ $$0$i$i = $753;
+ $$0259$i$i = $754;
+ } else {
+ $$0$i$i = $668;
+ $$0259$i$i = $673;
+ }
+ $755 = ($$0$i$i + 4) | 0;
+ $756 = HEAP32[$755 >> 2] | 0;
+ $757 = $756 & -2;
+ HEAP32[$755 >> 2] = $757;
+ $758 = $$0259$i$i | 1;
+ $759 = ($672 + 4) | 0;
+ HEAP32[$759 >> 2] = $758;
+ $760 = ($672 + $$0259$i$i) | 0;
+ HEAP32[$760 >> 2] = $$0259$i$i;
+ $761 = $$0259$i$i >>> 3;
+ $762 = $$0259$i$i >>> 0 < 256;
+ if ($762) {
+ $763 = $761 << 1;
+ $764 = (1224 + ($763 << 2)) | 0;
+ $765 = HEAP32[296] | 0;
+ $766 = 1 << $761;
+ $767 = $765 & $766;
+ $768 = ($767 | 0) == 0;
+ if ($768) {
+ $769 = $765 | $766;
+ HEAP32[296] = $769;
+ $$pre$i16$i = ($764 + 8) | 0;
+ $$0267$i$i = $764;
+ $$pre$phi$i17$iZ2D = $$pre$i16$i;
+ } else {
+ $770 = ($764 + 8) | 0;
+ $771 = HEAP32[$770 >> 2] | 0;
+ $$0267$i$i = $771;
+ $$pre$phi$i17$iZ2D = $770;
+ }
+ HEAP32[$$pre$phi$i17$iZ2D >> 2] = $672;
+ $772 = ($$0267$i$i + 12) | 0;
+ HEAP32[$772 >> 2] = $672;
+ $773 = ($672 + 8) | 0;
+ HEAP32[$773 >> 2] = $$0267$i$i;
+ $774 = ($672 + 12) | 0;
+ HEAP32[$774 >> 2] = $764;
+ break;
+ }
+ $775 = $$0259$i$i >>> 8;
+ $776 = ($775 | 0) == 0;
+ do {
+ if ($776) {
+ $$0268$i$i = 0;
+ } else {
+ $777 = $$0259$i$i >>> 0 > 16777215;
+ if ($777) {
+ $$0268$i$i = 31;
+ break;
+ }
+ $778 = ($775 + 1048320) | 0;
+ $779 = $778 >>> 16;
+ $780 = $779 & 8;
+ $781 = $775 << $780;
+ $782 = ($781 + 520192) | 0;
+ $783 = $782 >>> 16;
+ $784 = $783 & 4;
+ $785 = $784 | $780;
+ $786 = $781 << $784;
+ $787 = ($786 + 245760) | 0;
+ $788 = $787 >>> 16;
+ $789 = $788 & 2;
+ $790 = $785 | $789;
+ $791 = (14 - $790) | 0;
+ $792 = $786 << $789;
+ $793 = $792 >>> 15;
+ $794 = ($791 + $793) | 0;
+ $795 = $794 << 1;
+ $796 = ($794 + 7) | 0;
+ $797 = $$0259$i$i >>> $796;
+ $798 = $797 & 1;
+ $799 = $798 | $795;
+ $$0268$i$i = $799;
+ }
+ } while (0);
+ $800 = (1488 + ($$0268$i$i << 2)) | 0;
+ $801 = ($672 + 28) | 0;
+ HEAP32[$801 >> 2] = $$0268$i$i;
+ $802 = ($672 + 16) | 0;
+ $803 = ($802 + 4) | 0;
+ HEAP32[$803 >> 2] = 0;
+ HEAP32[$802 >> 2] = 0;
+ $804 = HEAP32[1188 >> 2] | 0;
+ $805 = 1 << $$0268$i$i;
+ $806 = $804 & $805;
+ $807 = ($806 | 0) == 0;
+ if ($807) {
+ $808 = $804 | $805;
+ HEAP32[1188 >> 2] = $808;
+ HEAP32[$800 >> 2] = $672;
+ $809 = ($672 + 24) | 0;
+ HEAP32[$809 >> 2] = $800;
+ $810 = ($672 + 12) | 0;
+ HEAP32[$810 >> 2] = $672;
+ $811 = ($672 + 8) | 0;
+ HEAP32[$811 >> 2] = $672;
+ break;
+ }
+ $812 = HEAP32[$800 >> 2] | 0;
+ $813 = ($812 + 4) | 0;
+ $814 = HEAP32[$813 >> 2] | 0;
+ $815 = $814 & -8;
+ $816 = ($815 | 0) == ($$0259$i$i | 0);
+ L291: do {
+ if ($816) {
+ $$0261$lcssa$i$i = $812;
+ } else {
+ $817 = ($$0268$i$i | 0) == 31;
+ $818 = $$0268$i$i >>> 1;
+ $819 = (25 - $818) | 0;
+ $820 = $817 ? 0 : $819;
+ $821 = $$0259$i$i << $820;
+ $$02604$i$i = $821;
+ $$02613$i$i = $812;
+ while (1) {
+ $828 = $$02604$i$i >>> 31;
+ $829 = ((($$02613$i$i + 16) | 0) + ($828 << 2)) | 0;
+ $824 = HEAP32[$829 >> 2] | 0;
+ $830 = ($824 | 0) == (0 | 0);
+ if ($830) {
+ break;
+ }
+ $822 = $$02604$i$i << 1;
+ $823 = ($824 + 4) | 0;
+ $825 = HEAP32[$823 >> 2] | 0;
+ $826 = $825 & -8;
+ $827 = ($826 | 0) == ($$0259$i$i | 0);
+ if ($827) {
+ $$0261$lcssa$i$i = $824;
+ break L291;
+ } else {
+ $$02604$i$i = $822;
+ $$02613$i$i = $824;
+ }
+ }
+ HEAP32[$829 >> 2] = $672;
+ $831 = ($672 + 24) | 0;
+ HEAP32[$831 >> 2] = $$02613$i$i;
+ $832 = ($672 + 12) | 0;
+ HEAP32[$832 >> 2] = $672;
+ $833 = ($672 + 8) | 0;
+ HEAP32[$833 >> 2] = $672;
+ break L238;
+ }
+ } while (0);
+ $834 = ($$0261$lcssa$i$i + 8) | 0;
+ $835 = HEAP32[$834 >> 2] | 0;
+ $836 = ($835 + 12) | 0;
+ HEAP32[$836 >> 2] = $672;
+ HEAP32[$834 >> 2] = $672;
+ $837 = ($672 + 8) | 0;
+ HEAP32[$837 >> 2] = $835;
+ $838 = ($672 + 12) | 0;
+ HEAP32[$838 >> 2] = $$0261$lcssa$i$i;
+ $839 = ($672 + 24) | 0;
+ HEAP32[$839 >> 2] = 0;
+ }
+ } while (0);
+ $968 = ($660 + 8) | 0;
+ $$0 = $968;
+ STACKTOP = sp;
+ return $$0 | 0;
+ }
+ }
+ $$0$i$i$i = 1632;
+ while (1) {
+ $840 = HEAP32[$$0$i$i$i >> 2] | 0;
+ $841 = $840 >>> 0 > $585 >>> 0;
+ if (!$841) {
+ $842 = ($$0$i$i$i + 4) | 0;
+ $843 = HEAP32[$842 >> 2] | 0;
+ $844 = ($840 + $843) | 0;
+ $845 = $844 >>> 0 > $585 >>> 0;
+ if ($845) {
+ break;
+ }
+ }
+ $846 = ($$0$i$i$i + 8) | 0;
+ $847 = HEAP32[$846 >> 2] | 0;
+ $$0$i$i$i = $847;
+ }
+ $848 = ($844 + -47) | 0;
+ $849 = ($848 + 8) | 0;
+ $850 = $849;
+ $851 = $850 & 7;
+ $852 = ($851 | 0) == 0;
+ $853 = (0 - $850) | 0;
+ $854 = $853 & 7;
+ $855 = $852 ? 0 : $854;
+ $856 = ($848 + $855) | 0;
+ $857 = ($585 + 16) | 0;
+ $858 = $856 >>> 0 < $857 >>> 0;
+ $859 = $858 ? $585 : $856;
+ $860 = ($859 + 8) | 0;
+ $861 = ($859 + 24) | 0;
+ $862 = ($$723947$i + -40) | 0;
+ $863 = ($$748$i + 8) | 0;
+ $864 = $863;
+ $865 = $864 & 7;
+ $866 = ($865 | 0) == 0;
+ $867 = (0 - $864) | 0;
+ $868 = $867 & 7;
+ $869 = $866 ? 0 : $868;
+ $870 = ($$748$i + $869) | 0;
+ $871 = ($862 - $869) | 0;
+ HEAP32[1208 >> 2] = $870;
+ HEAP32[1196 >> 2] = $871;
+ $872 = $871 | 1;
+ $873 = ($870 + 4) | 0;
+ HEAP32[$873 >> 2] = $872;
+ $874 = ($$748$i + $862) | 0;
+ $875 = ($874 + 4) | 0;
+ HEAP32[$875 >> 2] = 40;
+ $876 = HEAP32[1672 >> 2] | 0;
+ HEAP32[1212 >> 2] = $876;
+ $877 = ($859 + 4) | 0;
+ HEAP32[$877 >> 2] = 27;
+ HEAP32[$860 >> 2] = HEAP32[1632 >> 2] | 0;
+ HEAP32[($860 + 4) >> 2] = HEAP32[(1632 + 4) >> 2] | 0;
+ HEAP32[($860 + 8) >> 2] = HEAP32[(1632 + 8) >> 2] | 0;
+ HEAP32[($860 + 12) >> 2] = HEAP32[(1632 + 12) >> 2] | 0;
+ HEAP32[1632 >> 2] = $$748$i;
+ HEAP32[1636 >> 2] = $$723947$i;
+ HEAP32[1644 >> 2] = 0;
+ HEAP32[1640 >> 2] = $860;
+ $879 = $861;
+ while (1) {
+ $878 = ($879 + 4) | 0;
+ HEAP32[$878 >> 2] = 7;
+ $880 = ($879 + 8) | 0;
+ $881 = $880 >>> 0 < $844 >>> 0;
+ if ($881) {
+ $879 = $878;
+ } else {
+ break;
+ }
+ }
+ $882 = ($859 | 0) == ($585 | 0);
+ if (!$882) {
+ $883 = $859;
+ $884 = $585;
+ $885 = ($883 - $884) | 0;
+ $886 = HEAP32[$877 >> 2] | 0;
+ $887 = $886 & -2;
+ HEAP32[$877 >> 2] = $887;
+ $888 = $885 | 1;
+ $889 = ($585 + 4) | 0;
+ HEAP32[$889 >> 2] = $888;
+ HEAP32[$859 >> 2] = $885;
+ $890 = $885 >>> 3;
+ $891 = $885 >>> 0 < 256;
+ if ($891) {
+ $892 = $890 << 1;
+ $893 = (1224 + ($892 << 2)) | 0;
+ $894 = HEAP32[296] | 0;
+ $895 = 1 << $890;
+ $896 = $894 & $895;
+ $897 = ($896 | 0) == 0;
+ if ($897) {
+ $898 = $894 | $895;
+ HEAP32[296] = $898;
+ $$pre$i$i = ($893 + 8) | 0;
+ $$0206$i$i = $893;
+ $$pre$phi$i$iZ2D = $$pre$i$i;
+ } else {
+ $899 = ($893 + 8) | 0;
+ $900 = HEAP32[$899 >> 2] | 0;
+ $$0206$i$i = $900;
+ $$pre$phi$i$iZ2D = $899;
+ }
+ HEAP32[$$pre$phi$i$iZ2D >> 2] = $585;
+ $901 = ($$0206$i$i + 12) | 0;
+ HEAP32[$901 >> 2] = $585;
+ $902 = ($585 + 8) | 0;
+ HEAP32[$902 >> 2] = $$0206$i$i;
+ $903 = ($585 + 12) | 0;
+ HEAP32[$903 >> 2] = $893;
+ break;
+ }
+ $904 = $885 >>> 8;
+ $905 = ($904 | 0) == 0;
+ if ($905) {
+ $$0207$i$i = 0;
+ } else {
+ $906 = $885 >>> 0 > 16777215;
+ if ($906) {
+ $$0207$i$i = 31;
+ } else {
+ $907 = ($904 + 1048320) | 0;
+ $908 = $907 >>> 16;
+ $909 = $908 & 8;
+ $910 = $904 << $909;
+ $911 = ($910 + 520192) | 0;
+ $912 = $911 >>> 16;
+ $913 = $912 & 4;
+ $914 = $913 | $909;
+ $915 = $910 << $913;
+ $916 = ($915 + 245760) | 0;
+ $917 = $916 >>> 16;
+ $918 = $917 & 2;
+ $919 = $914 | $918;
+ $920 = (14 - $919) | 0;
+ $921 = $915 << $918;
+ $922 = $921 >>> 15;
+ $923 = ($920 + $922) | 0;
+ $924 = $923 << 1;
+ $925 = ($923 + 7) | 0;
+ $926 = $885 >>> $925;
+ $927 = $926 & 1;
+ $928 = $927 | $924;
+ $$0207$i$i = $928;
+ }
+ }
+ $929 = (1488 + ($$0207$i$i << 2)) | 0;
+ $930 = ($585 + 28) | 0;
+ HEAP32[$930 >> 2] = $$0207$i$i;
+ $931 = ($585 + 20) | 0;
+ HEAP32[$931 >> 2] = 0;
+ HEAP32[$857 >> 2] = 0;
+ $932 = HEAP32[1188 >> 2] | 0;
+ $933 = 1 << $$0207$i$i;
+ $934 = $932 & $933;
+ $935 = ($934 | 0) == 0;
+ if ($935) {
+ $936 = $932 | $933;
+ HEAP32[1188 >> 2] = $936;
+ HEAP32[$929 >> 2] = $585;
+ $937 = ($585 + 24) | 0;
+ HEAP32[$937 >> 2] = $929;
+ $938 = ($585 + 12) | 0;
+ HEAP32[$938 >> 2] = $585;
+ $939 = ($585 + 8) | 0;
+ HEAP32[$939 >> 2] = $585;
+ break;
+ }
+ $940 = HEAP32[$929 >> 2] | 0;
+ $941 = ($940 + 4) | 0;
+ $942 = HEAP32[$941 >> 2] | 0;
+ $943 = $942 & -8;
+ $944 = ($943 | 0) == ($885 | 0);
+ L325: do {
+ if ($944) {
+ $$0202$lcssa$i$i = $940;
+ } else {
+ $945 = ($$0207$i$i | 0) == 31;
+ $946 = $$0207$i$i >>> 1;
+ $947 = (25 - $946) | 0;
+ $948 = $945 ? 0 : $947;
+ $949 = $885 << $948;
+ $$02014$i$i = $949;
+ $$02023$i$i = $940;
+ while (1) {
+ $956 = $$02014$i$i >>> 31;
+ $957 = ((($$02023$i$i + 16) | 0) + ($956 << 2)) | 0;
+ $952 = HEAP32[$957 >> 2] | 0;
+ $958 = ($952 | 0) == (0 | 0);
+ if ($958) {
+ break;
+ }
+ $950 = $$02014$i$i << 1;
+ $951 = ($952 + 4) | 0;
+ $953 = HEAP32[$951 >> 2] | 0;
+ $954 = $953 & -8;
+ $955 = ($954 | 0) == ($885 | 0);
+ if ($955) {
+ $$0202$lcssa$i$i = $952;
+ break L325;
+ } else {
+ $$02014$i$i = $950;
+ $$02023$i$i = $952;
+ }
+ }
+ HEAP32[$957 >> 2] = $585;
+ $959 = ($585 + 24) | 0;
+ HEAP32[$959 >> 2] = $$02023$i$i;
+ $960 = ($585 + 12) | 0;
+ HEAP32[$960 >> 2] = $585;
+ $961 = ($585 + 8) | 0;
+ HEAP32[$961 >> 2] = $585;
+ break L215;
+ }
+ } while (0);
+ $962 = ($$0202$lcssa$i$i + 8) | 0;
+ $963 = HEAP32[$962 >> 2] | 0;
+ $964 = ($963 + 12) | 0;
+ HEAP32[$964 >> 2] = $585;
+ HEAP32[$962 >> 2] = $585;
+ $965 = ($585 + 8) | 0;
+ HEAP32[$965 >> 2] = $963;
+ $966 = ($585 + 12) | 0;
+ HEAP32[$966 >> 2] = $$0202$lcssa$i$i;
+ $967 = ($585 + 24) | 0;
+ HEAP32[$967 >> 2] = 0;
+ }
+ }
+ } while (0);
+ $969 = HEAP32[1196 >> 2] | 0;
+ $970 = $969 >>> 0 > $$0192 >>> 0;
+ if ($970) {
+ $971 = ($969 - $$0192) | 0;
+ HEAP32[1196 >> 2] = $971;
+ $972 = HEAP32[1208 >> 2] | 0;
+ $973 = ($972 + $$0192) | 0;
+ HEAP32[1208 >> 2] = $973;
+ $974 = $971 | 1;
+ $975 = ($973 + 4) | 0;
+ HEAP32[$975 >> 2] = $974;
+ $976 = $$0192 | 3;
+ $977 = ($972 + 4) | 0;
+ HEAP32[$977 >> 2] = $976;
+ $978 = ($972 + 8) | 0;
+ $$0 = $978;
+ STACKTOP = sp;
+ return $$0 | 0;
+ }
+ }
+ $979 = ___errno_location() | 0;
+ HEAP32[$979 >> 2] = 12;
+ $$0 = 0;
+ STACKTOP = sp;
+ return $$0 | 0;
}
- } while(0);
- return ($$0|0);
-}
-function ___fflush_unlocked($0) {
- $0 = $0|0;
- var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
- var $9 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $1 = ((($0)) + 20|0);
- $2 = HEAP32[$1>>2]|0;
- $3 = ((($0)) + 28|0);
- $4 = HEAP32[$3>>2]|0;
- $5 = ($2>>>0)>($4>>>0);
- if ($5) {
- $6 = ((($0)) + 36|0);
- $7 = HEAP32[$6>>2]|0;
- (FUNCTION_TABLE_iiii[$7 & 7]($0,0,0)|0);
- $8 = HEAP32[$1>>2]|0;
- $9 = ($8|0)==(0|0);
- if ($9) {
- $$0 = -1;
- } else {
- label = 3;
+ function _free($0) {
+ $0 = $0 | 0;
+ var $$0194$i = 0,
+ $$0194$in$i = 0,
+ $$0346381 = 0,
+ $$0347$lcssa = 0,
+ $$0347380 = 0,
+ $$0359 = 0,
+ $$0366 = 0,
+ $$1 = 0,
+ $$1345 = 0,
+ $$1350 = 0,
+ $$1350$be = 0,
+ $$1350$ph = 0,
+ $$1353 = 0,
+ $$1353$be = 0,
+ $$1353$ph = 0,
+ $$1361 = 0,
+ $$1361$be = 0,
+ $$1361$ph = 0,
+ $$1365 = 0,
+ $$1365$be = 0;
+ var $$1365$ph = 0,
+ $$2 = 0,
+ $$3 = 0,
+ $$3363 = 0,
+ $$pre = 0,
+ $$pre$phiZ2D = 0,
+ $$sink = 0,
+ $$sink395 = 0,
+ $1 = 0,
+ $10 = 0,
+ $100 = 0,
+ $101 = 0,
+ $102 = 0,
+ $103 = 0,
+ $104 = 0,
+ $105 = 0,
+ $106 = 0,
+ $107 = 0,
+ $108 = 0,
+ $109 = 0;
+ var $11 = 0,
+ $110 = 0,
+ $111 = 0,
+ $112 = 0,
+ $113 = 0,
+ $114 = 0,
+ $115 = 0,
+ $116 = 0,
+ $117 = 0,
+ $118 = 0,
+ $119 = 0,
+ $12 = 0,
+ $120 = 0,
+ $121 = 0,
+ $122 = 0,
+ $123 = 0,
+ $124 = 0,
+ $125 = 0,
+ $126 = 0,
+ $127 = 0;
+ var $128 = 0,
+ $129 = 0,
+ $13 = 0,
+ $130 = 0,
+ $131 = 0,
+ $132 = 0,
+ $133 = 0,
+ $134 = 0,
+ $135 = 0,
+ $136 = 0,
+ $137 = 0,
+ $138 = 0,
+ $139 = 0,
+ $14 = 0,
+ $140 = 0,
+ $141 = 0,
+ $142 = 0,
+ $143 = 0,
+ $144 = 0,
+ $145 = 0;
+ var $146 = 0,
+ $147 = 0,
+ $148 = 0,
+ $149 = 0,
+ $15 = 0,
+ $150 = 0,
+ $151 = 0,
+ $152 = 0,
+ $153 = 0,
+ $154 = 0,
+ $155 = 0,
+ $156 = 0,
+ $157 = 0,
+ $158 = 0,
+ $159 = 0,
+ $16 = 0,
+ $160 = 0,
+ $161 = 0,
+ $162 = 0,
+ $163 = 0;
+ var $164 = 0,
+ $165 = 0,
+ $166 = 0,
+ $167 = 0,
+ $168 = 0,
+ $169 = 0,
+ $17 = 0,
+ $170 = 0,
+ $171 = 0,
+ $172 = 0,
+ $173 = 0,
+ $174 = 0,
+ $175 = 0,
+ $176 = 0,
+ $177 = 0,
+ $178 = 0,
+ $179 = 0,
+ $18 = 0,
+ $180 = 0,
+ $181 = 0;
+ var $182 = 0,
+ $183 = 0,
+ $184 = 0,
+ $185 = 0,
+ $186 = 0,
+ $187 = 0,
+ $188 = 0,
+ $189 = 0,
+ $19 = 0,
+ $190 = 0,
+ $191 = 0,
+ $192 = 0,
+ $193 = 0,
+ $194 = 0,
+ $195 = 0,
+ $196 = 0,
+ $197 = 0,
+ $198 = 0,
+ $199 = 0,
+ $2 = 0;
+ var $20 = 0,
+ $200 = 0,
+ $201 = 0,
+ $202 = 0,
+ $203 = 0,
+ $204 = 0,
+ $205 = 0,
+ $206 = 0,
+ $207 = 0,
+ $208 = 0,
+ $209 = 0,
+ $21 = 0,
+ $210 = 0,
+ $211 = 0,
+ $212 = 0,
+ $213 = 0,
+ $214 = 0,
+ $215 = 0,
+ $216 = 0,
+ $217 = 0;
+ var $218 = 0,
+ $219 = 0,
+ $22 = 0,
+ $220 = 0,
+ $221 = 0,
+ $222 = 0,
+ $223 = 0,
+ $224 = 0,
+ $225 = 0,
+ $226 = 0,
+ $227 = 0,
+ $228 = 0,
+ $229 = 0,
+ $23 = 0,
+ $230 = 0,
+ $231 = 0,
+ $232 = 0,
+ $233 = 0,
+ $234 = 0,
+ $235 = 0;
+ var $236 = 0,
+ $237 = 0,
+ $238 = 0,
+ $239 = 0,
+ $24 = 0,
+ $240 = 0,
+ $241 = 0,
+ $242 = 0,
+ $243 = 0,
+ $244 = 0,
+ $245 = 0,
+ $246 = 0,
+ $247 = 0,
+ $248 = 0,
+ $249 = 0,
+ $25 = 0,
+ $250 = 0,
+ $251 = 0,
+ $252 = 0,
+ $253 = 0;
+ var $254 = 0,
+ $255 = 0,
+ $256 = 0,
+ $257 = 0,
+ $258 = 0,
+ $259 = 0,
+ $26 = 0,
+ $260 = 0,
+ $261 = 0,
+ $262 = 0,
+ $263 = 0,
+ $264 = 0,
+ $27 = 0,
+ $28 = 0,
+ $29 = 0,
+ $3 = 0,
+ $30 = 0,
+ $31 = 0,
+ $32 = 0,
+ $33 = 0;
+ var $34 = 0,
+ $35 = 0,
+ $36 = 0,
+ $37 = 0,
+ $38 = 0,
+ $39 = 0,
+ $4 = 0,
+ $40 = 0,
+ $41 = 0,
+ $42 = 0,
+ $43 = 0,
+ $44 = 0,
+ $45 = 0,
+ $46 = 0,
+ $47 = 0,
+ $48 = 0,
+ $49 = 0,
+ $5 = 0,
+ $50 = 0,
+ $51 = 0;
+ var $52 = 0,
+ $53 = 0,
+ $54 = 0,
+ $55 = 0,
+ $56 = 0,
+ $57 = 0,
+ $58 = 0,
+ $59 = 0,
+ $6 = 0,
+ $60 = 0,
+ $61 = 0,
+ $62 = 0,
+ $63 = 0,
+ $64 = 0,
+ $65 = 0,
+ $66 = 0,
+ $67 = 0,
+ $68 = 0,
+ $69 = 0,
+ $7 = 0;
+ var $70 = 0,
+ $71 = 0,
+ $72 = 0,
+ $73 = 0,
+ $74 = 0,
+ $75 = 0,
+ $76 = 0,
+ $77 = 0,
+ $78 = 0,
+ $79 = 0,
+ $8 = 0,
+ $80 = 0,
+ $81 = 0,
+ $82 = 0,
+ $83 = 0,
+ $84 = 0,
+ $85 = 0,
+ $86 = 0,
+ $87 = 0,
+ $88 = 0;
+ var $89 = 0,
+ $9 = 0,
+ $90 = 0,
+ $91 = 0,
+ $92 = 0,
+ $93 = 0,
+ $94 = 0,
+ $95 = 0,
+ $96 = 0,
+ $97 = 0,
+ $98 = 0,
+ $99 = 0,
+ $cond371 = 0,
+ $cond372 = 0,
+ label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ $1 = ($0 | 0) == (0 | 0);
+ if ($1) {
+ return;
+ }
+ $2 = ($0 + -8) | 0;
+ $3 = HEAP32[1200 >> 2] | 0;
+ $4 = ($0 + -4) | 0;
+ $5 = HEAP32[$4 >> 2] | 0;
+ $6 = $5 & -8;
+ $7 = ($2 + $6) | 0;
+ $8 = $5 & 1;
+ $9 = ($8 | 0) == 0;
+ do {
+ if ($9) {
+ $10 = HEAP32[$2 >> 2] | 0;
+ $11 = $5 & 3;
+ $12 = ($11 | 0) == 0;
+ if ($12) {
+ return;
+ }
+ $13 = (0 - $10) | 0;
+ $14 = ($2 + $13) | 0;
+ $15 = ($10 + $6) | 0;
+ $16 = $14 >>> 0 < $3 >>> 0;
+ if ($16) {
+ return;
+ }
+ $17 = HEAP32[1204 >> 2] | 0;
+ $18 = ($17 | 0) == ($14 | 0);
+ if ($18) {
+ $79 = ($7 + 4) | 0;
+ $80 = HEAP32[$79 >> 2] | 0;
+ $81 = $80 & 3;
+ $82 = ($81 | 0) == 3;
+ if (!$82) {
+ $$1 = $14;
+ $$1345 = $15;
+ $88 = $14;
+ break;
+ }
+ $83 = ($14 + $15) | 0;
+ $84 = ($14 + 4) | 0;
+ $85 = $15 | 1;
+ $86 = $80 & -2;
+ HEAP32[1192 >> 2] = $15;
+ HEAP32[$79 >> 2] = $86;
+ HEAP32[$84 >> 2] = $85;
+ HEAP32[$83 >> 2] = $15;
+ return;
+ }
+ $19 = $10 >>> 3;
+ $20 = $10 >>> 0 < 256;
+ if ($20) {
+ $21 = ($14 + 8) | 0;
+ $22 = HEAP32[$21 >> 2] | 0;
+ $23 = ($14 + 12) | 0;
+ $24 = HEAP32[$23 >> 2] | 0;
+ $25 = ($24 | 0) == ($22 | 0);
+ if ($25) {
+ $26 = 1 << $19;
+ $27 = $26 ^ -1;
+ $28 = HEAP32[296] | 0;
+ $29 = $28 & $27;
+ HEAP32[296] = $29;
+ $$1 = $14;
+ $$1345 = $15;
+ $88 = $14;
+ break;
+ } else {
+ $30 = ($22 + 12) | 0;
+ HEAP32[$30 >> 2] = $24;
+ $31 = ($24 + 8) | 0;
+ HEAP32[$31 >> 2] = $22;
+ $$1 = $14;
+ $$1345 = $15;
+ $88 = $14;
+ break;
+ }
+ }
+ $32 = ($14 + 24) | 0;
+ $33 = HEAP32[$32 >> 2] | 0;
+ $34 = ($14 + 12) | 0;
+ $35 = HEAP32[$34 >> 2] | 0;
+ $36 = ($35 | 0) == ($14 | 0);
+ do {
+ if ($36) {
+ $41 = ($14 + 16) | 0;
+ $42 = ($41 + 4) | 0;
+ $43 = HEAP32[$42 >> 2] | 0;
+ $44 = ($43 | 0) == (0 | 0);
+ if ($44) {
+ $45 = HEAP32[$41 >> 2] | 0;
+ $46 = ($45 | 0) == (0 | 0);
+ if ($46) {
+ $$3 = 0;
+ break;
+ } else {
+ $$1350$ph = $45;
+ $$1353$ph = $41;
+ }
+ } else {
+ $$1350$ph = $43;
+ $$1353$ph = $42;
+ }
+ $$1350 = $$1350$ph;
+ $$1353 = $$1353$ph;
+ while (1) {
+ $47 = ($$1350 + 20) | 0;
+ $48 = HEAP32[$47 >> 2] | 0;
+ $49 = ($48 | 0) == (0 | 0);
+ if ($49) {
+ $50 = ($$1350 + 16) | 0;
+ $51 = HEAP32[$50 >> 2] | 0;
+ $52 = ($51 | 0) == (0 | 0);
+ if ($52) {
+ break;
+ } else {
+ $$1350$be = $51;
+ $$1353$be = $50;
+ }
+ } else {
+ $$1350$be = $48;
+ $$1353$be = $47;
+ }
+ $$1350 = $$1350$be;
+ $$1353 = $$1353$be;
+ }
+ HEAP32[$$1353 >> 2] = 0;
+ $$3 = $$1350;
+ } else {
+ $37 = ($14 + 8) | 0;
+ $38 = HEAP32[$37 >> 2] | 0;
+ $39 = ($38 + 12) | 0;
+ HEAP32[$39 >> 2] = $35;
+ $40 = ($35 + 8) | 0;
+ HEAP32[$40 >> 2] = $38;
+ $$3 = $35;
+ }
+ } while (0);
+ $53 = ($33 | 0) == (0 | 0);
+ if ($53) {
+ $$1 = $14;
+ $$1345 = $15;
+ $88 = $14;
+ } else {
+ $54 = ($14 + 28) | 0;
+ $55 = HEAP32[$54 >> 2] | 0;
+ $56 = (1488 + ($55 << 2)) | 0;
+ $57 = HEAP32[$56 >> 2] | 0;
+ $58 = ($57 | 0) == ($14 | 0);
+ if ($58) {
+ HEAP32[$56 >> 2] = $$3;
+ $cond371 = ($$3 | 0) == (0 | 0);
+ if ($cond371) {
+ $59 = 1 << $55;
+ $60 = $59 ^ -1;
+ $61 = HEAP32[1188 >> 2] | 0;
+ $62 = $61 & $60;
+ HEAP32[1188 >> 2] = $62;
+ $$1 = $14;
+ $$1345 = $15;
+ $88 = $14;
+ break;
+ }
+ } else {
+ $63 = ($33 + 16) | 0;
+ $64 = HEAP32[$63 >> 2] | 0;
+ $65 = ($64 | 0) == ($14 | 0);
+ $66 = ($33 + 20) | 0;
+ $$sink = $65 ? $63 : $66;
+ HEAP32[$$sink >> 2] = $$3;
+ $67 = ($$3 | 0) == (0 | 0);
+ if ($67) {
+ $$1 = $14;
+ $$1345 = $15;
+ $88 = $14;
+ break;
+ }
+ }
+ $68 = ($$3 + 24) | 0;
+ HEAP32[$68 >> 2] = $33;
+ $69 = ($14 + 16) | 0;
+ $70 = HEAP32[$69 >> 2] | 0;
+ $71 = ($70 | 0) == (0 | 0);
+ if (!$71) {
+ $72 = ($$3 + 16) | 0;
+ HEAP32[$72 >> 2] = $70;
+ $73 = ($70 + 24) | 0;
+ HEAP32[$73 >> 2] = $$3;
+ }
+ $74 = ($69 + 4) | 0;
+ $75 = HEAP32[$74 >> 2] | 0;
+ $76 = ($75 | 0) == (0 | 0);
+ if ($76) {
+ $$1 = $14;
+ $$1345 = $15;
+ $88 = $14;
+ } else {
+ $77 = ($$3 + 20) | 0;
+ HEAP32[$77 >> 2] = $75;
+ $78 = ($75 + 24) | 0;
+ HEAP32[$78 >> 2] = $$3;
+ $$1 = $14;
+ $$1345 = $15;
+ $88 = $14;
+ }
+ }
+ } else {
+ $$1 = $2;
+ $$1345 = $6;
+ $88 = $2;
+ }
+ } while (0);
+ $87 = $88 >>> 0 < $7 >>> 0;
+ if (!$87) {
+ return;
+ }
+ $89 = ($7 + 4) | 0;
+ $90 = HEAP32[$89 >> 2] | 0;
+ $91 = $90 & 1;
+ $92 = ($91 | 0) == 0;
+ if ($92) {
+ return;
+ }
+ $93 = $90 & 2;
+ $94 = ($93 | 0) == 0;
+ if ($94) {
+ $95 = HEAP32[1208 >> 2] | 0;
+ $96 = ($95 | 0) == ($7 | 0);
+ if ($96) {
+ $97 = HEAP32[1196 >> 2] | 0;
+ $98 = ($97 + $$1345) | 0;
+ HEAP32[1196 >> 2] = $98;
+ HEAP32[1208 >> 2] = $$1;
+ $99 = $98 | 1;
+ $100 = ($$1 + 4) | 0;
+ HEAP32[$100 >> 2] = $99;
+ $101 = HEAP32[1204 >> 2] | 0;
+ $102 = ($$1 | 0) == ($101 | 0);
+ if (!$102) {
+ return;
+ }
+ HEAP32[1204 >> 2] = 0;
+ HEAP32[1192 >> 2] = 0;
+ return;
+ }
+ $103 = HEAP32[1204 >> 2] | 0;
+ $104 = ($103 | 0) == ($7 | 0);
+ if ($104) {
+ $105 = HEAP32[1192 >> 2] | 0;
+ $106 = ($105 + $$1345) | 0;
+ HEAP32[1192 >> 2] = $106;
+ HEAP32[1204 >> 2] = $88;
+ $107 = $106 | 1;
+ $108 = ($$1 + 4) | 0;
+ HEAP32[$108 >> 2] = $107;
+ $109 = ($88 + $106) | 0;
+ HEAP32[$109 >> 2] = $106;
+ return;
+ }
+ $110 = $90 & -8;
+ $111 = ($110 + $$1345) | 0;
+ $112 = $90 >>> 3;
+ $113 = $90 >>> 0 < 256;
+ do {
+ if ($113) {
+ $114 = ($7 + 8) | 0;
+ $115 = HEAP32[$114 >> 2] | 0;
+ $116 = ($7 + 12) | 0;
+ $117 = HEAP32[$116 >> 2] | 0;
+ $118 = ($117 | 0) == ($115 | 0);
+ if ($118) {
+ $119 = 1 << $112;
+ $120 = $119 ^ -1;
+ $121 = HEAP32[296] | 0;
+ $122 = $121 & $120;
+ HEAP32[296] = $122;
+ break;
+ } else {
+ $123 = ($115 + 12) | 0;
+ HEAP32[$123 >> 2] = $117;
+ $124 = ($117 + 8) | 0;
+ HEAP32[$124 >> 2] = $115;
+ break;
+ }
+ } else {
+ $125 = ($7 + 24) | 0;
+ $126 = HEAP32[$125 >> 2] | 0;
+ $127 = ($7 + 12) | 0;
+ $128 = HEAP32[$127 >> 2] | 0;
+ $129 = ($128 | 0) == ($7 | 0);
+ do {
+ if ($129) {
+ $134 = ($7 + 16) | 0;
+ $135 = ($134 + 4) | 0;
+ $136 = HEAP32[$135 >> 2] | 0;
+ $137 = ($136 | 0) == (0 | 0);
+ if ($137) {
+ $138 = HEAP32[$134 >> 2] | 0;
+ $139 = ($138 | 0) == (0 | 0);
+ if ($139) {
+ $$3363 = 0;
+ break;
+ } else {
+ $$1361$ph = $138;
+ $$1365$ph = $134;
+ }
+ } else {
+ $$1361$ph = $136;
+ $$1365$ph = $135;
+ }
+ $$1361 = $$1361$ph;
+ $$1365 = $$1365$ph;
+ while (1) {
+ $140 = ($$1361 + 20) | 0;
+ $141 = HEAP32[$140 >> 2] | 0;
+ $142 = ($141 | 0) == (0 | 0);
+ if ($142) {
+ $143 = ($$1361 + 16) | 0;
+ $144 = HEAP32[$143 >> 2] | 0;
+ $145 = ($144 | 0) == (0 | 0);
+ if ($145) {
+ break;
+ } else {
+ $$1361$be = $144;
+ $$1365$be = $143;
+ }
+ } else {
+ $$1361$be = $141;
+ $$1365$be = $140;
+ }
+ $$1361 = $$1361$be;
+ $$1365 = $$1365$be;
+ }
+ HEAP32[$$1365 >> 2] = 0;
+ $$3363 = $$1361;
+ } else {
+ $130 = ($7 + 8) | 0;
+ $131 = HEAP32[$130 >> 2] | 0;
+ $132 = ($131 + 12) | 0;
+ HEAP32[$132 >> 2] = $128;
+ $133 = ($128 + 8) | 0;
+ HEAP32[$133 >> 2] = $131;
+ $$3363 = $128;
+ }
+ } while (0);
+ $146 = ($126 | 0) == (0 | 0);
+ if (!$146) {
+ $147 = ($7 + 28) | 0;
+ $148 = HEAP32[$147 >> 2] | 0;
+ $149 = (1488 + ($148 << 2)) | 0;
+ $150 = HEAP32[$149 >> 2] | 0;
+ $151 = ($150 | 0) == ($7 | 0);
+ if ($151) {
+ HEAP32[$149 >> 2] = $$3363;
+ $cond372 = ($$3363 | 0) == (0 | 0);
+ if ($cond372) {
+ $152 = 1 << $148;
+ $153 = $152 ^ -1;
+ $154 = HEAP32[1188 >> 2] | 0;
+ $155 = $154 & $153;
+ HEAP32[1188 >> 2] = $155;
+ break;
+ }
+ } else {
+ $156 = ($126 + 16) | 0;
+ $157 = HEAP32[$156 >> 2] | 0;
+ $158 = ($157 | 0) == ($7 | 0);
+ $159 = ($126 + 20) | 0;
+ $$sink395 = $158 ? $156 : $159;
+ HEAP32[$$sink395 >> 2] = $$3363;
+ $160 = ($$3363 | 0) == (0 | 0);
+ if ($160) {
+ break;
+ }
+ }
+ $161 = ($$3363 + 24) | 0;
+ HEAP32[$161 >> 2] = $126;
+ $162 = ($7 + 16) | 0;
+ $163 = HEAP32[$162 >> 2] | 0;
+ $164 = ($163 | 0) == (0 | 0);
+ if (!$164) {
+ $165 = ($$3363 + 16) | 0;
+ HEAP32[$165 >> 2] = $163;
+ $166 = ($163 + 24) | 0;
+ HEAP32[$166 >> 2] = $$3363;
+ }
+ $167 = ($162 + 4) | 0;
+ $168 = HEAP32[$167 >> 2] | 0;
+ $169 = ($168 | 0) == (0 | 0);
+ if (!$169) {
+ $170 = ($$3363 + 20) | 0;
+ HEAP32[$170 >> 2] = $168;
+ $171 = ($168 + 24) | 0;
+ HEAP32[$171 >> 2] = $$3363;
+ }
+ }
+ }
+ } while (0);
+ $172 = $111 | 1;
+ $173 = ($$1 + 4) | 0;
+ HEAP32[$173 >> 2] = $172;
+ $174 = ($88 + $111) | 0;
+ HEAP32[$174 >> 2] = $111;
+ $175 = HEAP32[1204 >> 2] | 0;
+ $176 = ($$1 | 0) == ($175 | 0);
+ if ($176) {
+ HEAP32[1192 >> 2] = $111;
+ return;
+ } else {
+ $$2 = $111;
+ }
+ } else {
+ $177 = $90 & -2;
+ HEAP32[$89 >> 2] = $177;
+ $178 = $$1345 | 1;
+ $179 = ($$1 + 4) | 0;
+ HEAP32[$179 >> 2] = $178;
+ $180 = ($88 + $$1345) | 0;
+ HEAP32[$180 >> 2] = $$1345;
+ $$2 = $$1345;
+ }
+ $181 = $$2 >>> 3;
+ $182 = $$2 >>> 0 < 256;
+ if ($182) {
+ $183 = $181 << 1;
+ $184 = (1224 + ($183 << 2)) | 0;
+ $185 = HEAP32[296] | 0;
+ $186 = 1 << $181;
+ $187 = $185 & $186;
+ $188 = ($187 | 0) == 0;
+ if ($188) {
+ $189 = $185 | $186;
+ HEAP32[296] = $189;
+ $$pre = ($184 + 8) | 0;
+ $$0366 = $184;
+ $$pre$phiZ2D = $$pre;
+ } else {
+ $190 = ($184 + 8) | 0;
+ $191 = HEAP32[$190 >> 2] | 0;
+ $$0366 = $191;
+ $$pre$phiZ2D = $190;
+ }
+ HEAP32[$$pre$phiZ2D >> 2] = $$1;
+ $192 = ($$0366 + 12) | 0;
+ HEAP32[$192 >> 2] = $$1;
+ $193 = ($$1 + 8) | 0;
+ HEAP32[$193 >> 2] = $$0366;
+ $194 = ($$1 + 12) | 0;
+ HEAP32[$194 >> 2] = $184;
+ return;
+ }
+ $195 = $$2 >>> 8;
+ $196 = ($195 | 0) == 0;
+ if ($196) {
+ $$0359 = 0;
+ } else {
+ $197 = $$2 >>> 0 > 16777215;
+ if ($197) {
+ $$0359 = 31;
+ } else {
+ $198 = ($195 + 1048320) | 0;
+ $199 = $198 >>> 16;
+ $200 = $199 & 8;
+ $201 = $195 << $200;
+ $202 = ($201 + 520192) | 0;
+ $203 = $202 >>> 16;
+ $204 = $203 & 4;
+ $205 = $204 | $200;
+ $206 = $201 << $204;
+ $207 = ($206 + 245760) | 0;
+ $208 = $207 >>> 16;
+ $209 = $208 & 2;
+ $210 = $205 | $209;
+ $211 = (14 - $210) | 0;
+ $212 = $206 << $209;
+ $213 = $212 >>> 15;
+ $214 = ($211 + $213) | 0;
+ $215 = $214 << 1;
+ $216 = ($214 + 7) | 0;
+ $217 = $$2 >>> $216;
+ $218 = $217 & 1;
+ $219 = $218 | $215;
+ $$0359 = $219;
+ }
+ }
+ $220 = (1488 + ($$0359 << 2)) | 0;
+ $221 = ($$1 + 28) | 0;
+ HEAP32[$221 >> 2] = $$0359;
+ $222 = ($$1 + 16) | 0;
+ $223 = ($$1 + 20) | 0;
+ HEAP32[$223 >> 2] = 0;
+ HEAP32[$222 >> 2] = 0;
+ $224 = HEAP32[1188 >> 2] | 0;
+ $225 = 1 << $$0359;
+ $226 = $224 & $225;
+ $227 = ($226 | 0) == 0;
+ L112: do {
+ if ($227) {
+ $228 = $224 | $225;
+ HEAP32[1188 >> 2] = $228;
+ HEAP32[$220 >> 2] = $$1;
+ $229 = ($$1 + 24) | 0;
+ HEAP32[$229 >> 2] = $220;
+ $230 = ($$1 + 12) | 0;
+ HEAP32[$230 >> 2] = $$1;
+ $231 = ($$1 + 8) | 0;
+ HEAP32[$231 >> 2] = $$1;
+ } else {
+ $232 = HEAP32[$220 >> 2] | 0;
+ $233 = ($232 + 4) | 0;
+ $234 = HEAP32[$233 >> 2] | 0;
+ $235 = $234 & -8;
+ $236 = ($235 | 0) == ($$2 | 0);
+ L115: do {
+ if ($236) {
+ $$0347$lcssa = $232;
+ } else {
+ $237 = ($$0359 | 0) == 31;
+ $238 = $$0359 >>> 1;
+ $239 = (25 - $238) | 0;
+ $240 = $237 ? 0 : $239;
+ $241 = $$2 << $240;
+ $$0346381 = $241;
+ $$0347380 = $232;
+ while (1) {
+ $248 = $$0346381 >>> 31;
+ $249 = ((($$0347380 + 16) | 0) + ($248 << 2)) | 0;
+ $244 = HEAP32[$249 >> 2] | 0;
+ $250 = ($244 | 0) == (0 | 0);
+ if ($250) {
+ break;
+ }
+ $242 = $$0346381 << 1;
+ $243 = ($244 + 4) | 0;
+ $245 = HEAP32[$243 >> 2] | 0;
+ $246 = $245 & -8;
+ $247 = ($246 | 0) == ($$2 | 0);
+ if ($247) {
+ $$0347$lcssa = $244;
+ break L115;
+ } else {
+ $$0346381 = $242;
+ $$0347380 = $244;
+ }
+ }
+ HEAP32[$249 >> 2] = $$1;
+ $251 = ($$1 + 24) | 0;
+ HEAP32[$251 >> 2] = $$0347380;
+ $252 = ($$1 + 12) | 0;
+ HEAP32[$252 >> 2] = $$1;
+ $253 = ($$1 + 8) | 0;
+ HEAP32[$253 >> 2] = $$1;
+ break L112;
+ }
+ } while (0);
+ $254 = ($$0347$lcssa + 8) | 0;
+ $255 = HEAP32[$254 >> 2] | 0;
+ $256 = ($255 + 12) | 0;
+ HEAP32[$256 >> 2] = $$1;
+ HEAP32[$254 >> 2] = $$1;
+ $257 = ($$1 + 8) | 0;
+ HEAP32[$257 >> 2] = $255;
+ $258 = ($$1 + 12) | 0;
+ HEAP32[$258 >> 2] = $$0347$lcssa;
+ $259 = ($$1 + 24) | 0;
+ HEAP32[$259 >> 2] = 0;
+ }
+ } while (0);
+ $260 = HEAP32[1216 >> 2] | 0;
+ $261 = ($260 + -1) | 0;
+ HEAP32[1216 >> 2] = $261;
+ $262 = ($261 | 0) == 0;
+ if (!$262) {
+ return;
+ }
+ $$0194$in$i = 1640;
+ while (1) {
+ $$0194$i = HEAP32[$$0194$in$i >> 2] | 0;
+ $263 = ($$0194$i | 0) == (0 | 0);
+ $264 = ($$0194$i + 8) | 0;
+ if ($263) {
+ break;
+ } else {
+ $$0194$in$i = $264;
+ }
+ }
+ HEAP32[1216 >> 2] = -1;
+ return;
}
- } else {
- label = 3;
- }
- if ((label|0) == 3) {
- $10 = ((($0)) + 4|0);
- $11 = HEAP32[$10>>2]|0;
- $12 = ((($0)) + 8|0);
- $13 = HEAP32[$12>>2]|0;
- $14 = ($11>>>0)<($13>>>0);
- if ($14) {
- $15 = $11;
- $16 = $13;
- $17 = (($15) - ($16))|0;
- $18 = ((($0)) + 40|0);
- $19 = HEAP32[$18>>2]|0;
- (FUNCTION_TABLE_iiii[$19 & 7]($0,$17,1)|0);
+ function ___stdio_close($0) {
+ $0 = $0 | 0;
+ var $1 = 0,
+ $2 = 0,
+ $3 = 0,
+ $4 = 0,
+ $5 = 0,
+ $vararg_buffer = 0,
+ label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ STACKTOP = (STACKTOP + 16) | 0;
+ if ((STACKTOP | 0) >= (STACK_MAX | 0)) abortStackOverflow(16 | 0);
+ $vararg_buffer = sp;
+ $1 = ($0 + 60) | 0;
+ $2 = HEAP32[$1 >> 2] | 0;
+ $3 = _dummy($2) | 0;
+ HEAP32[$vararg_buffer >> 2] = $3;
+ $4 = ___syscall6(6, $vararg_buffer | 0) | 0;
+ $5 = ___syscall_ret($4) | 0;
+ STACKTOP = sp;
+ return $5 | 0;
}
- $20 = ((($0)) + 16|0);
- HEAP32[$20>>2] = 0;
- HEAP32[$3>>2] = 0;
- HEAP32[$1>>2] = 0;
- HEAP32[$12>>2] = 0;
- HEAP32[$10>>2] = 0;
- $$0 = 0;
- }
- return ($$0|0);
-}
-function runPostSets() {
-}
-function ___muldsi3($a, $b) {
+ function ___stdio_write($0, $1, $2) {
+ $0 = $0 | 0;
+ $1 = $1 | 0;
+ $2 = $2 | 0;
+ var $$0 = 0,
+ $$04756 = 0,
+ $$04855 = 0,
+ $$04954 = 0,
+ $$051 = 0,
+ $$1 = 0,
+ $$150 = 0,
+ $10 = 0,
+ $11 = 0,
+ $12 = 0,
+ $13 = 0,
+ $14 = 0,
+ $15 = 0,
+ $16 = 0,
+ $17 = 0,
+ $18 = 0,
+ $19 = 0,
+ $20 = 0,
+ $21 = 0,
+ $22 = 0;
+ var $23 = 0,
+ $24 = 0,
+ $25 = 0,
+ $26 = 0,
+ $27 = 0,
+ $28 = 0,
+ $29 = 0,
+ $3 = 0,
+ $30 = 0,
+ $31 = 0,
+ $32 = 0,
+ $33 = 0,
+ $34 = 0,
+ $35 = 0,
+ $36 = 0,
+ $37 = 0,
+ $38 = 0,
+ $39 = 0,
+ $4 = 0,
+ $40 = 0;
+ var $41 = 0,
+ $42 = 0,
+ $43 = 0,
+ $44 = 0,
+ $45 = 0,
+ $46 = 0,
+ $47 = 0,
+ $48 = 0,
+ $49 = 0,
+ $5 = 0,
+ $50 = 0,
+ $51 = 0,
+ $6 = 0,
+ $7 = 0,
+ $8 = 0,
+ $9 = 0,
+ $vararg_buffer = 0,
+ $vararg_buffer3 = 0,
+ $vararg_ptr1 = 0,
+ $vararg_ptr2 = 0;
+ var $vararg_ptr6 = 0,
+ $vararg_ptr7 = 0,
+ label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ STACKTOP = (STACKTOP + 48) | 0;
+ if ((STACKTOP | 0) >= (STACK_MAX | 0)) abortStackOverflow(48 | 0);
+ $vararg_buffer3 = (sp + 32) | 0;
+ $vararg_buffer = (sp + 16) | 0;
+ $3 = sp;
+ $4 = ($0 + 28) | 0;
+ $5 = HEAP32[$4 >> 2] | 0;
+ HEAP32[$3 >> 2] = $5;
+ $6 = ($3 + 4) | 0;
+ $7 = ($0 + 20) | 0;
+ $8 = HEAP32[$7 >> 2] | 0;
+ $9 = ($8 - $5) | 0;
+ HEAP32[$6 >> 2] = $9;
+ $10 = ($3 + 8) | 0;
+ HEAP32[$10 >> 2] = $1;
+ $11 = ($3 + 12) | 0;
+ HEAP32[$11 >> 2] = $2;
+ $12 = ($9 + $2) | 0;
+ $13 = ($0 + 60) | 0;
+ $14 = HEAP32[$13 >> 2] | 0;
+ $15 = $3;
+ HEAP32[$vararg_buffer >> 2] = $14;
+ $vararg_ptr1 = ($vararg_buffer + 4) | 0;
+ HEAP32[$vararg_ptr1 >> 2] = $15;
+ $vararg_ptr2 = ($vararg_buffer + 8) | 0;
+ HEAP32[$vararg_ptr2 >> 2] = 2;
+ $16 = ___syscall146(146, $vararg_buffer | 0) | 0;
+ $17 = ___syscall_ret($16) | 0;
+ $18 = ($12 | 0) == ($17 | 0);
+ L1: do {
+ if ($18) {
+ label = 3;
+ } else {
+ $$04756 = 2;
+ $$04855 = $12;
+ $$04954 = $3;
+ $27 = $17;
+ while (1) {
+ $26 = ($27 | 0) < 0;
+ if ($26) {
+ break;
+ }
+ $35 = ($$04855 - $27) | 0;
+ $36 = ($$04954 + 4) | 0;
+ $37 = HEAP32[$36 >> 2] | 0;
+ $38 = $27 >>> 0 > $37 >>> 0;
+ $39 = ($$04954 + 8) | 0;
+ $$150 = $38 ? $39 : $$04954;
+ $40 = ($38 << 31) >> 31;
+ $$1 = ($$04756 + $40) | 0;
+ $41 = $38 ? $37 : 0;
+ $$0 = ($27 - $41) | 0;
+ $42 = HEAP32[$$150 >> 2] | 0;
+ $43 = ($42 + $$0) | 0;
+ HEAP32[$$150 >> 2] = $43;
+ $44 = ($$150 + 4) | 0;
+ $45 = HEAP32[$44 >> 2] | 0;
+ $46 = ($45 - $$0) | 0;
+ HEAP32[$44 >> 2] = $46;
+ $47 = HEAP32[$13 >> 2] | 0;
+ $48 = $$150;
+ HEAP32[$vararg_buffer3 >> 2] = $47;
+ $vararg_ptr6 = ($vararg_buffer3 + 4) | 0;
+ HEAP32[$vararg_ptr6 >> 2] = $48;
+ $vararg_ptr7 = ($vararg_buffer3 + 8) | 0;
+ HEAP32[$vararg_ptr7 >> 2] = $$1;
+ $49 = ___syscall146(146, $vararg_buffer3 | 0) | 0;
+ $50 = ___syscall_ret($49) | 0;
+ $51 = ($35 | 0) == ($50 | 0);
+ if ($51) {
+ label = 3;
+ break L1;
+ } else {
+ $$04756 = $$1;
+ $$04855 = $35;
+ $$04954 = $$150;
+ $27 = $50;
+ }
+ }
+ $28 = ($0 + 16) | 0;
+ HEAP32[$28 >> 2] = 0;
+ HEAP32[$4 >> 2] = 0;
+ HEAP32[$7 >> 2] = 0;
+ $29 = HEAP32[$0 >> 2] | 0;
+ $30 = $29 | 32;
+ HEAP32[$0 >> 2] = $30;
+ $31 = ($$04756 | 0) == 2;
+ if ($31) {
+ $$051 = 0;
+ } else {
+ $32 = ($$04954 + 4) | 0;
+ $33 = HEAP32[$32 >> 2] | 0;
+ $34 = ($2 - $33) | 0;
+ $$051 = $34;
+ }
+ }
+ } while (0);
+ if ((label | 0) == 3) {
+ $19 = ($0 + 44) | 0;
+ $20 = HEAP32[$19 >> 2] | 0;
+ $21 = ($0 + 48) | 0;
+ $22 = HEAP32[$21 >> 2] | 0;
+ $23 = ($20 + $22) | 0;
+ $24 = ($0 + 16) | 0;
+ HEAP32[$24 >> 2] = $23;
+ $25 = $20;
+ HEAP32[$4 >> 2] = $25;
+ HEAP32[$7 >> 2] = $25;
+ $$051 = $2;
+ }
+ STACKTOP = sp;
+ return $$051 | 0;
+ }
+ function ___stdio_seek($0, $1, $2) {
+ $0 = $0 | 0;
+ $1 = $1 | 0;
+ $2 = $2 | 0;
+ var $$pre = 0,
+ $10 = 0,
+ $3 = 0,
+ $4 = 0,
+ $5 = 0,
+ $6 = 0,
+ $7 = 0,
+ $8 = 0,
+ $9 = 0,
+ $vararg_buffer = 0,
+ $vararg_ptr1 = 0,
+ $vararg_ptr2 = 0,
+ $vararg_ptr3 = 0,
+ $vararg_ptr4 = 0,
+ label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ STACKTOP = (STACKTOP + 32) | 0;
+ if ((STACKTOP | 0) >= (STACK_MAX | 0)) abortStackOverflow(32 | 0);
+ $vararg_buffer = sp;
+ $3 = (sp + 20) | 0;
+ $4 = ($0 + 60) | 0;
+ $5 = HEAP32[$4 >> 2] | 0;
+ $6 = $3;
+ HEAP32[$vararg_buffer >> 2] = $5;
+ $vararg_ptr1 = ($vararg_buffer + 4) | 0;
+ HEAP32[$vararg_ptr1 >> 2] = 0;
+ $vararg_ptr2 = ($vararg_buffer + 8) | 0;
+ HEAP32[$vararg_ptr2 >> 2] = $1;
+ $vararg_ptr3 = ($vararg_buffer + 12) | 0;
+ HEAP32[$vararg_ptr3 >> 2] = $6;
+ $vararg_ptr4 = ($vararg_buffer + 16) | 0;
+ HEAP32[$vararg_ptr4 >> 2] = $2;
+ $7 = ___syscall140(140, $vararg_buffer | 0) | 0;
+ $8 = ___syscall_ret($7) | 0;
+ $9 = ($8 | 0) < 0;
+ if ($9) {
+ HEAP32[$3 >> 2] = -1;
+ $10 = -1;
+ } else {
+ $$pre = HEAP32[$3 >> 2] | 0;
+ $10 = $$pre;
+ }
+ STACKTOP = sp;
+ return $10 | 0;
+ }
+ function ___syscall_ret($0) {
+ $0 = $0 | 0;
+ var $$0 = 0,
+ $1 = 0,
+ $2 = 0,
+ $3 = 0,
+ label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ $1 = $0 >>> 0 > 4294963200;
+ if ($1) {
+ $2 = (0 - $0) | 0;
+ $3 = ___errno_location() | 0;
+ HEAP32[$3 >> 2] = $2;
+ $$0 = -1;
+ } else {
+ $$0 = $0;
+ }
+ return $$0 | 0;
+ }
+ function ___errno_location() {
+ var label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ return 1680 | 0;
+ }
+ function _dummy($0) {
+ $0 = $0 | 0;
+ var label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ return $0 | 0;
+ }
+ function ___stdout_write($0, $1, $2) {
+ $0 = $0 | 0;
+ $1 = $1 | 0;
+ $2 = $2 | 0;
+ var $10 = 0,
+ $11 = 0,
+ $12 = 0,
+ $13 = 0,
+ $14 = 0,
+ $3 = 0,
+ $4 = 0,
+ $5 = 0,
+ $6 = 0,
+ $7 = 0,
+ $8 = 0,
+ $9 = 0,
+ $vararg_buffer = 0,
+ $vararg_ptr1 = 0,
+ $vararg_ptr2 = 0,
+ label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ STACKTOP = (STACKTOP + 32) | 0;
+ if ((STACKTOP | 0) >= (STACK_MAX | 0)) abortStackOverflow(32 | 0);
+ $vararg_buffer = sp;
+ $3 = (sp + 16) | 0;
+ $4 = ($0 + 36) | 0;
+ HEAP32[$4 >> 2] = 4;
+ $5 = HEAP32[$0 >> 2] | 0;
+ $6 = $5 & 64;
+ $7 = ($6 | 0) == 0;
+ if ($7) {
+ $8 = ($0 + 60) | 0;
+ $9 = HEAP32[$8 >> 2] | 0;
+ $10 = $3;
+ HEAP32[$vararg_buffer >> 2] = $9;
+ $vararg_ptr1 = ($vararg_buffer + 4) | 0;
+ HEAP32[$vararg_ptr1 >> 2] = 21523;
+ $vararg_ptr2 = ($vararg_buffer + 8) | 0;
+ HEAP32[$vararg_ptr2 >> 2] = $10;
+ $11 = ___syscall54(54, $vararg_buffer | 0) | 0;
+ $12 = ($11 | 0) == 0;
+ if (!$12) {
+ $13 = ($0 + 75) | 0;
+ HEAP8[$13 >> 0] = -1;
+ }
+ }
+ $14 = ___stdio_write($0, $1, $2) | 0;
+ STACKTOP = sp;
+ return $14 | 0;
+ }
+ function ___unlockfile($0) {
+ $0 = $0 | 0;
+ var label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ return;
+ }
+ function ___lockfile($0) {
+ $0 = $0 | 0;
+ var label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ return 0;
+ }
+ function ___ofl_lock() {
+ var label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ ___lock(1684 | 0);
+ return 1692 | 0;
+ }
+ function ___ofl_unlock() {
+ var label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ ___unlock(1684 | 0);
+ return;
+ }
+ function _fflush($0) {
+ $0 = $0 | 0;
+ var $$0 = 0,
+ $$023 = 0,
+ $$02325 = 0,
+ $$02327 = 0,
+ $$024$lcssa = 0,
+ $$02426 = 0,
+ $$1 = 0,
+ $1 = 0,
+ $10 = 0,
+ $11 = 0,
+ $12 = 0,
+ $13 = 0,
+ $14 = 0,
+ $15 = 0,
+ $16 = 0,
+ $17 = 0,
+ $18 = 0,
+ $19 = 0,
+ $2 = 0,
+ $20 = 0;
+ var $21 = 0,
+ $22 = 0,
+ $23 = 0,
+ $24 = 0,
+ $25 = 0,
+ $26 = 0,
+ $27 = 0,
+ $28 = 0,
+ $29 = 0,
+ $3 = 0,
+ $4 = 0,
+ $5 = 0,
+ $6 = 0,
+ $7 = 0,
+ $8 = 0,
+ $9 = 0,
+ $phitmp = 0,
+ label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ $1 = ($0 | 0) == (0 | 0);
+ do {
+ if ($1) {
+ $8 = HEAP32[35] | 0;
+ $9 = ($8 | 0) == (0 | 0);
+ if ($9) {
+ $29 = 0;
+ } else {
+ $10 = HEAP32[35] | 0;
+ $11 = _fflush($10) | 0;
+ $29 = $11;
+ }
+ $12 = ___ofl_lock() | 0;
+ $$02325 = HEAP32[$12 >> 2] | 0;
+ $13 = ($$02325 | 0) == (0 | 0);
+ if ($13) {
+ $$024$lcssa = $29;
+ } else {
+ $$02327 = $$02325;
+ $$02426 = $29;
+ while (1) {
+ $14 = ($$02327 + 76) | 0;
+ $15 = HEAP32[$14 >> 2] | 0;
+ $16 = ($15 | 0) > -1;
+ if ($16) {
+ $17 = ___lockfile($$02327) | 0;
+ $26 = $17;
+ } else {
+ $26 = 0;
+ }
+ $18 = ($$02327 + 20) | 0;
+ $19 = HEAP32[$18 >> 2] | 0;
+ $20 = ($$02327 + 28) | 0;
+ $21 = HEAP32[$20 >> 2] | 0;
+ $22 = $19 >>> 0 > $21 >>> 0;
+ if ($22) {
+ $23 = ___fflush_unlocked($$02327) | 0;
+ $24 = $23 | $$02426;
+ $$1 = $24;
+ } else {
+ $$1 = $$02426;
+ }
+ $25 = ($26 | 0) == 0;
+ if (!$25) {
+ ___unlockfile($$02327);
+ }
+ $27 = ($$02327 + 56) | 0;
+ $$023 = HEAP32[$27 >> 2] | 0;
+ $28 = ($$023 | 0) == (0 | 0);
+ if ($28) {
+ $$024$lcssa = $$1;
+ break;
+ } else {
+ $$02327 = $$023;
+ $$02426 = $$1;
+ }
+ }
+ }
+ ___ofl_unlock();
+ $$0 = $$024$lcssa;
+ } else {
+ $2 = ($0 + 76) | 0;
+ $3 = HEAP32[$2 >> 2] | 0;
+ $4 = ($3 | 0) > -1;
+ if (!$4) {
+ $5 = ___fflush_unlocked($0) | 0;
+ $$0 = $5;
+ break;
+ }
+ $6 = ___lockfile($0) | 0;
+ $phitmp = ($6 | 0) == 0;
+ $7 = ___fflush_unlocked($0) | 0;
+ if ($phitmp) {
+ $$0 = $7;
+ } else {
+ ___unlockfile($0);
+ $$0 = $7;
+ }
+ }
+ } while (0);
+ return $$0 | 0;
+ }
+ function ___fflush_unlocked($0) {
+ $0 = $0 | 0;
+ var $$0 = 0,
+ $1 = 0,
+ $10 = 0,
+ $11 = 0,
+ $12 = 0,
+ $13 = 0,
+ $14 = 0,
+ $15 = 0,
+ $16 = 0,
+ $17 = 0,
+ $18 = 0,
+ $19 = 0,
+ $2 = 0,
+ $20 = 0,
+ $3 = 0,
+ $4 = 0,
+ $5 = 0,
+ $6 = 0,
+ $7 = 0,
+ $8 = 0;
+ var $9 = 0,
+ label = 0,
+ sp = 0;
+ sp = STACKTOP;
+ $1 = ($0 + 20) | 0;
+ $2 = HEAP32[$1 >> 2] | 0;
+ $3 = ($0 + 28) | 0;
+ $4 = HEAP32[$3 >> 2] | 0;
+ $5 = $2 >>> 0 > $4 >>> 0;
+ if ($5) {
+ $6 = ($0 + 36) | 0;
+ $7 = HEAP32[$6 >> 2] | 0;
+ FUNCTION_TABLE_iiii[$7 & 7]($0, 0, 0) | 0;
+ $8 = HEAP32[$1 >> 2] | 0;
+ $9 = ($8 | 0) == (0 | 0);
+ if ($9) {
+ $$0 = -1;
+ } else {
+ label = 3;
+ }
+ } else {
+ label = 3;
+ }
+ if ((label | 0) == 3) {
+ $10 = ($0 + 4) | 0;
+ $11 = HEAP32[$10 >> 2] | 0;
+ $12 = ($0 + 8) | 0;
+ $13 = HEAP32[$12 >> 2] | 0;
+ $14 = $11 >>> 0 < $13 >>> 0;
+ if ($14) {
+ $15 = $11;
+ $16 = $13;
+ $17 = ($15 - $16) | 0;
+ $18 = ($0 + 40) | 0;
+ $19 = HEAP32[$18 >> 2] | 0;
+ FUNCTION_TABLE_iiii[$19 & 7]($0, $17, 1) | 0;
+ }
+ $20 = ($0 + 16) | 0;
+ HEAP32[$20 >> 2] = 0;
+ HEAP32[$3 >> 2] = 0;
+ HEAP32[$1 >> 2] = 0;
+ HEAP32[$12 >> 2] = 0;
+ HEAP32[$10 >> 2] = 0;
+ $$0 = 0;
+ }
+ return $$0 | 0;
+ }
+ function runPostSets() {}
+ function ___muldsi3($a, $b) {
$a = $a | 0;
$b = $b | 0;
- var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0;
+ var $1 = 0,
+ $2 = 0,
+ $3 = 0,
+ $6 = 0,
+ $8 = 0,
+ $11 = 0,
+ $12 = 0;
$1 = $a & 65535;
$2 = $b & 65535;
$3 = Math_imul($2, $1) | 0;
$6 = $a >>> 16;
- $8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0;
+ $8 = (($3 >>> 16) + (Math_imul($2, $6) | 0)) | 0;
$11 = $b >>> 16;
$12 = Math_imul($11, $1) | 0;
- return (tempRet0 = (($8 >>> 16) + (Math_imul($11, $6) | 0) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0, 0 | ($8 + $12 << 16 | $3 & 65535)) | 0;
-}
-function ___muldi3($a$0, $a$1, $b$0, $b$1) {
+ return (
+ ((tempRet0 =
+ (((($8 >>> 16) + (Math_imul($11, $6) | 0)) | 0) +
+ (((($8 & 65535) + $12) | 0) >>> 16)) |
+ 0),
+ 0 | ((($8 + $12) << 16) | ($3 & 65535))) | 0
+ );
+ }
+ function ___muldi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
- var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0, $2 = 0;
+ var $x_sroa_0_0_extract_trunc = 0,
+ $y_sroa_0_0_extract_trunc = 0,
+ $1$0 = 0,
+ $1$1 = 0,
+ $2 = 0;
$x_sroa_0_0_extract_trunc = $a$0;
$y_sroa_0_0_extract_trunc = $b$0;
$1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0;
$1$1 = tempRet0;
$2 = Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0;
- return (tempRet0 = ((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2 | 0) + $1$1 | $1$1 & 0, 0 | $1$0 & -1) | 0;
-}
-function _bitshift64Ashr(low, high, bits) {
- low = low|0; high = high|0; bits = bits|0;
+ return (
+ ((tempRet0 =
+ ((((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2) | 0) + $1$1) |
+ ($1$1 & 0)),
+ 0 | ($1$0 & -1)) | 0
+ );
+ }
+ function _bitshift64Ashr(low, high, bits) {
+ low = low | 0;
+ high = high | 0;
+ bits = bits | 0;
var ander = 0;
- if ((bits|0) < 32) {
- ander = ((1 << bits) - 1)|0;
+ if ((bits | 0) < 32) {
+ ander = ((1 << bits) - 1) | 0;
tempRet0 = high >> bits;
- return (low >>> bits) | ((high&ander) << (32 - bits));
+ return (low >>> bits) | ((high & ander) << (32 - bits));
}
- tempRet0 = (high|0) < 0 ? -1 : 0;
- return (high >> (bits - 32))|0;
-}
-function _bitshift64Lshr(low, high, bits) {
- low = low|0; high = high|0; bits = bits|0;
+ tempRet0 = (high | 0) < 0 ? -1 : 0;
+ return (high >> (bits - 32)) | 0;
+ }
+ function _bitshift64Lshr(low, high, bits) {
+ low = low | 0;
+ high = high | 0;
+ bits = bits | 0;
var ander = 0;
- if ((bits|0) < 32) {
- ander = ((1 << bits) - 1)|0;
+ if ((bits | 0) < 32) {
+ ander = ((1 << bits) - 1) | 0;
tempRet0 = high >>> bits;
- return (low >>> bits) | ((high&ander) << (32 - bits));
+ return (low >>> bits) | ((high & ander) << (32 - bits));
}
tempRet0 = 0;
- return (high >>> (bits - 32))|0;
-}
-function _bitshift64Shl(low, high, bits) {
- low = low|0; high = high|0; bits = bits|0;
+ return (high >>> (bits - 32)) | 0;
+ }
+ function _bitshift64Shl(low, high, bits) {
+ low = low | 0;
+ high = high | 0;
+ bits = bits | 0;
var ander = 0;
- if ((bits|0) < 32) {
- ander = ((1 << bits) - 1)|0;
- tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits));
+ if ((bits | 0) < 32) {
+ ander = ((1 << bits) - 1) | 0;
+ tempRet0 =
+ (high << bits) | ((low & (ander << (32 - bits))) >>> (32 - bits));
return low << bits;
}
tempRet0 = low << (bits - 32);
return 0;
-}
-function _i64Add(a, b, c, d) {
+ }
+ function _i64Add(a, b, c, d) {
/*
x = a + b*2^32
y = c + d*2^32
result = l + h*2^32
*/
- a = a|0; b = b|0; c = c|0; d = d|0;
- var l = 0, h = 0;
- l = (a + c)>>>0;
- h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow.
- return ((tempRet0 = h,l|0)|0);
-}
-function _i64Subtract(a, b, c, d) {
- a = a|0; b = b|0; c = c|0; d = d|0;
- var l = 0, h = 0;
- l = (a - c)>>>0;
- h = (b - d)>>>0;
- h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow.
- return ((tempRet0 = h,l|0)|0);
-}
-function _memcpy(dest, src, num) {
- dest = dest|0; src = src|0; num = num|0;
+ a = a | 0;
+ b = b | 0;
+ c = c | 0;
+ d = d | 0;
+ var l = 0,
+ h = 0;
+ l = (a + c) >>> 0;
+ h = (b + d + ((l >>> 0 < a >>> 0) | 0)) >>> 0; // Add carry from low word to high word on overflow.
+ return ((tempRet0 = h), l | 0) | 0;
+ }
+ function _i64Subtract(a, b, c, d) {
+ a = a | 0;
+ b = b | 0;
+ c = c | 0;
+ d = d | 0;
+ var l = 0,
+ h = 0;
+ l = (a - c) >>> 0;
+ h = (b - d) >>> 0;
+ h = (b - d - ((c >>> 0 > a >>> 0) | 0)) >>> 0; // Borrow one from high word to low word on underflow.
+ return ((tempRet0 = h), l | 0) | 0;
+ }
+ function _memcpy(dest, src, num) {
+ dest = dest | 0;
+ src = src | 0;
+ num = num | 0;
var ret = 0;
var aligned_dest_end = 0;
var block_aligned_dest_end = 0;
var dest_end = 0;
// Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use.
- if ((num|0) >=
- 8192
- ) {
- return _emscripten_memcpy_big(dest|0, src|0, num|0)|0;
+ if ((num | 0) >= 8192) {
+ return _emscripten_memcpy_big(dest | 0, src | 0, num | 0) | 0;
}
- ret = dest|0;
- dest_end = (dest + num)|0;
- if ((dest&3) == (src&3)) {
+ ret = dest | 0;
+ dest_end = (dest + num) | 0;
+ if ((dest & 3) == (src & 3)) {
// The initial unaligned < 4-byte front.
while (dest & 3) {
- if ((num|0) == 0) return ret|0;
- HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
- dest = (dest+1)|0;
- src = (src+1)|0;
- num = (num-1)|0;
+ if ((num | 0) == 0) return ret | 0;
+ HEAP8[dest >> 0] = HEAP8[src >> 0] | 0;
+ dest = (dest + 1) | 0;
+ src = (src + 1) | 0;
+ num = (num - 1) | 0;
}
- aligned_dest_end = (dest_end & -4)|0;
- block_aligned_dest_end = (aligned_dest_end - 64)|0;
- while ((dest|0) <= (block_aligned_dest_end|0) ) {
- HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0);
- HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0);
- HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0);
- HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0);
- HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0);
- HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0);
- HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0);
- HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0);
- HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0);
- HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0);
- HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0);
- HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0);
- HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0);
- HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0);
- HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0);
- HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0);
- dest = (dest+64)|0;
- src = (src+64)|0;
+ aligned_dest_end = (dest_end & -4) | 0;
+ block_aligned_dest_end = (aligned_dest_end - 64) | 0;
+ while ((dest | 0) <= (block_aligned_dest_end | 0)) {
+ HEAP32[dest >> 2] = HEAP32[src >> 2] | 0;
+ HEAP32[(dest + 4) >> 2] = HEAP32[(src + 4) >> 2] | 0;
+ HEAP32[(dest + 8) >> 2] = HEAP32[(src + 8) >> 2] | 0;
+ HEAP32[(dest + 12) >> 2] = HEAP32[(src + 12) >> 2] | 0;
+ HEAP32[(dest + 16) >> 2] = HEAP32[(src + 16) >> 2] | 0;
+ HEAP32[(dest + 20) >> 2] = HEAP32[(src + 20) >> 2] | 0;
+ HEAP32[(dest + 24) >> 2] = HEAP32[(src + 24) >> 2] | 0;
+ HEAP32[(dest + 28) >> 2] = HEAP32[(src + 28) >> 2] | 0;
+ HEAP32[(dest + 32) >> 2] = HEAP32[(src + 32) >> 2] | 0;
+ HEAP32[(dest + 36) >> 2] = HEAP32[(src + 36) >> 2] | 0;
+ HEAP32[(dest + 40) >> 2] = HEAP32[(src + 40) >> 2] | 0;
+ HEAP32[(dest + 44) >> 2] = HEAP32[(src + 44) >> 2] | 0;
+ HEAP32[(dest + 48) >> 2] = HEAP32[(src + 48) >> 2] | 0;
+ HEAP32[(dest + 52) >> 2] = HEAP32[(src + 52) >> 2] | 0;
+ HEAP32[(dest + 56) >> 2] = HEAP32[(src + 56) >> 2] | 0;
+ HEAP32[(dest + 60) >> 2] = HEAP32[(src + 60) >> 2] | 0;
+ dest = (dest + 64) | 0;
+ src = (src + 64) | 0;
}
- while ((dest|0) < (aligned_dest_end|0) ) {
- HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0);
- dest = (dest+4)|0;
- src = (src+4)|0;
+ while ((dest | 0) < (aligned_dest_end | 0)) {
+ HEAP32[dest >> 2] = HEAP32[src >> 2] | 0;
+ dest = (dest + 4) | 0;
+ src = (src + 4) | 0;
}
} else {
// In the unaligned copy case, unroll a bit as well.
- aligned_dest_end = (dest_end - 4)|0;
- while ((dest|0) < (aligned_dest_end|0) ) {
- HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
- HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0);
- HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0);
- HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0);
- dest = (dest+4)|0;
- src = (src+4)|0;
+ aligned_dest_end = (dest_end - 4) | 0;
+ while ((dest | 0) < (aligned_dest_end | 0)) {
+ HEAP8[dest >> 0] = HEAP8[src >> 0] | 0;
+ HEAP8[(dest + 1) >> 0] = HEAP8[(src + 1) >> 0] | 0;
+ HEAP8[(dest + 2) >> 0] = HEAP8[(src + 2) >> 0] | 0;
+ HEAP8[(dest + 3) >> 0] = HEAP8[(src + 3) >> 0] | 0;
+ dest = (dest + 4) | 0;
+ src = (src + 4) | 0;
}
}
// The remaining unaligned < 4 byte tail.
- while ((dest|0) < (dest_end|0)) {
- HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
- dest = (dest+1)|0;
- src = (src+1)|0;
+ while ((dest | 0) < (dest_end | 0)) {
+ HEAP8[dest >> 0] = HEAP8[src >> 0] | 0;
+ dest = (dest + 1) | 0;
+ src = (src + 1) | 0;
}
- return ret|0;
-}
-function _memset(ptr, value, num) {
- ptr = ptr|0; value = value|0; num = num|0;
- var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0;
- end = (ptr + num)|0;
+ return ret | 0;
+ }
+ function _memset(ptr, value, num) {
+ ptr = ptr | 0;
+ value = value | 0;
+ num = num | 0;
+ var end = 0,
+ aligned_end = 0,
+ block_aligned_end = 0,
+ value4 = 0;
+ end = (ptr + num) | 0;
value = value & 0xff;
- if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) {
- while ((ptr&3) != 0) {
- HEAP8[((ptr)>>0)]=value;
- ptr = (ptr+1)|0;
+ if (
+ (num | 0) >=
+ 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/
+ ) {
+ while ((ptr & 3) != 0) {
+ HEAP8[ptr >> 0] = value;
+ ptr = (ptr + 1) | 0;
}
- aligned_end = (end & -4)|0;
- block_aligned_end = (aligned_end - 64)|0;
+ aligned_end = (end & -4) | 0;
+ block_aligned_end = (aligned_end - 64) | 0;
value4 = value | (value << 8) | (value << 16) | (value << 24);
- while((ptr|0) <= (block_aligned_end|0)) {
- HEAP32[((ptr)>>2)]=value4;
- HEAP32[(((ptr)+(4))>>2)]=value4;
- HEAP32[(((ptr)+(8))>>2)]=value4;
- HEAP32[(((ptr)+(12))>>2)]=value4;
- HEAP32[(((ptr)+(16))>>2)]=value4;
- HEAP32[(((ptr)+(20))>>2)]=value4;
- HEAP32[(((ptr)+(24))>>2)]=value4;
- HEAP32[(((ptr)+(28))>>2)]=value4;
- HEAP32[(((ptr)+(32))>>2)]=value4;
- HEAP32[(((ptr)+(36))>>2)]=value4;
- HEAP32[(((ptr)+(40))>>2)]=value4;
- HEAP32[(((ptr)+(44))>>2)]=value4;
- HEAP32[(((ptr)+(48))>>2)]=value4;
- HEAP32[(((ptr)+(52))>>2)]=value4;
- HEAP32[(((ptr)+(56))>>2)]=value4;
- HEAP32[(((ptr)+(60))>>2)]=value4;
- ptr = (ptr + 64)|0;
+ while ((ptr | 0) <= (block_aligned_end | 0)) {
+ HEAP32[ptr >> 2] = value4;
+ HEAP32[(ptr + 4) >> 2] = value4;
+ HEAP32[(ptr + 8) >> 2] = value4;
+ HEAP32[(ptr + 12) >> 2] = value4;
+ HEAP32[(ptr + 16) >> 2] = value4;
+ HEAP32[(ptr + 20) >> 2] = value4;
+ HEAP32[(ptr + 24) >> 2] = value4;
+ HEAP32[(ptr + 28) >> 2] = value4;
+ HEAP32[(ptr + 32) >> 2] = value4;
+ HEAP32[(ptr + 36) >> 2] = value4;
+ HEAP32[(ptr + 40) >> 2] = value4;
+ HEAP32[(ptr + 44) >> 2] = value4;
+ HEAP32[(ptr + 48) >> 2] = value4;
+ HEAP32[(ptr + 52) >> 2] = value4;
+ HEAP32[(ptr + 56) >> 2] = value4;
+ HEAP32[(ptr + 60) >> 2] = value4;
+ ptr = (ptr + 64) | 0;
}
- while ((ptr|0) < (aligned_end|0) ) {
- HEAP32[((ptr)>>2)]=value4;
- ptr = (ptr+4)|0;
+ while ((ptr | 0) < (aligned_end | 0)) {
+ HEAP32[ptr >> 2] = value4;
+ ptr = (ptr + 4) | 0;
}
}
// The remaining bytes.
- while ((ptr|0) < (end|0)) {
- HEAP8[((ptr)>>0)]=value;
- ptr = (ptr+1)|0;
+ while ((ptr | 0) < (end | 0)) {
+ HEAP8[ptr >> 0] = value;
+ ptr = (ptr + 1) | 0;
}
- return (end-num)|0;
-}
-function _sbrk(increment) {
- increment = increment|0;
+ return (end - num) | 0;
+ }
+ function _sbrk(increment) {
+ increment = increment | 0;
var oldDynamicTop = 0;
var oldDynamicTopOnChange = 0;
var newDynamicTop = 0;
var totalMemory = 0;
- oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0;
- newDynamicTop = oldDynamicTop + increment | 0;
+ oldDynamicTop = HEAP32[DYNAMICTOP_PTR >> 2] | 0;
+ newDynamicTop = (oldDynamicTop + increment) | 0;
- if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int.
- | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract.
- abortOnCannotGrowMemory()|0;
+ if (
+ (((increment | 0) > 0) & ((newDynamicTop | 0) < (oldDynamicTop | 0))) | // Detect and fail if we would wrap around signed 32-bit int.
+ ((newDynamicTop | 0) < 0)
+ ) {
+ // Also underflow, sbrk() should be able to be used to subtract.
+ abortOnCannotGrowMemory() | 0;
___setErrNo(12);
return -1;
}
- HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop;
- totalMemory = getTotalMemory()|0;
- if ((newDynamicTop|0) > (totalMemory|0)) {
- if ((enlargeMemory()|0) == 0) {
- HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop;
+ HEAP32[DYNAMICTOP_PTR >> 2] = newDynamicTop;
+ totalMemory = getTotalMemory() | 0;
+ if ((newDynamicTop | 0) > (totalMemory | 0)) {
+ if ((enlargeMemory() | 0) == 0) {
+ HEAP32[DYNAMICTOP_PTR >> 2] = oldDynamicTop;
___setErrNo(12);
return -1;
}
}
- return oldDynamicTop|0;
-}
+ return oldDynamicTop | 0;
+ }
-
-function dynCall_ii(index,a1) {
- index = index|0;
- a1=a1|0;
- return FUNCTION_TABLE_ii[index&1](a1|0)|0;
-}
+ function dynCall_ii(index, a1) {
+ index = index | 0;
+ a1 = a1 | 0;
+ return FUNCTION_TABLE_ii[index & 1](a1 | 0) | 0;
+ }
+ function dynCall_iiii(index, a1, a2, a3) {
+ index = index | 0;
+ a1 = a1 | 0;
+ a2 = a2 | 0;
+ a3 = a3 | 0;
+ return FUNCTION_TABLE_iiii[index & 7](a1 | 0, a2 | 0, a3 | 0) | 0;
+ }
-function dynCall_iiii(index,a1,a2,a3) {
- index = index|0;
- a1=a1|0; a2=a2|0; a3=a3|0;
- return FUNCTION_TABLE_iiii[index&7](a1|0,a2|0,a3|0)|0;
-}
+ function b0(p0) {
+ p0 = p0 | 0;
+ nullFunc_ii(0);
+ return 0;
+ }
+ function b1(p0, p1, p2) {
+ p0 = p0 | 0;
+ p1 = p1 | 0;
+ p2 = p2 | 0;
+ nullFunc_iiii(1);
+ return 0;
+ }
-function b0(p0) {
- p0 = p0|0; nullFunc_ii(0);return 0;
-}
-function b1(p0,p1,p2) {
- p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(1);return 0;
-}
+ // EMSCRIPTEN_END_FUNCS
+ var FUNCTION_TABLE_ii = [b0, ___stdio_close];
+ var FUNCTION_TABLE_iiii = [
+ b1,
+ b1,
+ ___stdout_write,
+ ___stdio_seek,
+ ___stdio_write,
+ b1,
+ b1,
+ b1,
+ ];
-// EMSCRIPTEN_END_FUNCS
-var FUNCTION_TABLE_ii = [b0,___stdio_close];
-var FUNCTION_TABLE_iiii = [b1,b1,___stdout_write,___stdio_seek,___stdio_write,b1,b1,b1];
+ return {
+ ___errno_location: ___errno_location,
+ ___muldi3: ___muldi3,
+ _bitshift64Ashr: _bitshift64Ashr,
+ _bitshift64Lshr: _bitshift64Lshr,
+ _bitshift64Shl: _bitshift64Shl,
+ _fflush: _fflush,
+ _free: _free,
+ _i64Add: _i64Add,
+ _i64Subtract: _i64Subtract,
+ _malloc: _malloc,
+ _memcpy: _memcpy,
+ _memset: _memset,
+ _sbrk: _sbrk,
+ _sc_reduce32: _sc_reduce32,
+ dynCall_ii: dynCall_ii,
+ dynCall_iiii: dynCall_iiii,
+ establishStackSpace: establishStackSpace,
+ getTempRet0: getTempRet0,
+ runPostSets: runPostSets,
+ setTempRet0: setTempRet0,
+ setThrew: setThrew,
+ stackAlloc: stackAlloc,
+ stackRestore: stackRestore,
+ stackSave: stackSave,
+ };
+})(
+ // EMSCRIPTEN_END_ASM
+ Module.asmGlobalArg,
+ Module.asmLibraryArg,
+ buffer
+);
- return { ___errno_location: ___errno_location, ___muldi3: ___muldi3, _bitshift64Ashr: _bitshift64Ashr, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, _free: _free, _i64Add: _i64Add, _i64Subtract: _i64Subtract, _malloc: _malloc, _memcpy: _memcpy, _memset: _memset, _sbrk: _sbrk, _sc_reduce32: _sc_reduce32, dynCall_ii: dynCall_ii, dynCall_iiii: dynCall_iiii, establishStackSpace: establishStackSpace, getTempRet0: getTempRet0, runPostSets: runPostSets, setTempRet0: setTempRet0, setThrew: setThrew, stackAlloc: stackAlloc, stackRestore: stackRestore, stackSave: stackSave };
-})
-// EMSCRIPTEN_END_ASM
-(Module.asmGlobalArg, Module.asmLibraryArg, buffer);
-
-var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real____errno_location = asm['___errno_location'];
+asm['___errno_location'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real____errno_location.apply(null, arguments);
};
-var real____muldi3 = asm["___muldi3"]; asm["___muldi3"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real____muldi3 = asm['___muldi3'];
+asm['___muldi3'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real____muldi3.apply(null, arguments);
};
-var real__bitshift64Ashr = asm["_bitshift64Ashr"]; asm["_bitshift64Ashr"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real__bitshift64Ashr = asm['_bitshift64Ashr'];
+asm['_bitshift64Ashr'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real__bitshift64Ashr.apply(null, arguments);
};
-var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real__bitshift64Lshr = asm['_bitshift64Lshr'];
+asm['_bitshift64Lshr'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real__bitshift64Lshr.apply(null, arguments);
};
-var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real__bitshift64Shl = asm['_bitshift64Shl'];
+asm['_bitshift64Shl'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real__bitshift64Shl.apply(null, arguments);
};
-var real__fflush = asm["_fflush"]; asm["_fflush"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real__fflush = asm['_fflush'];
+asm['_fflush'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real__fflush.apply(null, arguments);
};
-var real__free = asm["_free"]; asm["_free"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real__free = asm['_free'];
+asm['_free'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real__free.apply(null, arguments);
};
-var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real__i64Add = asm['_i64Add'];
+asm['_i64Add'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real__i64Add.apply(null, arguments);
};
-var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real__i64Subtract = asm['_i64Subtract'];
+asm['_i64Subtract'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real__i64Subtract.apply(null, arguments);
};
-var real__malloc = asm["_malloc"]; asm["_malloc"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real__malloc = asm['_malloc'];
+asm['_malloc'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real__malloc.apply(null, arguments);
};
-var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real__sbrk = asm['_sbrk'];
+asm['_sbrk'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real__sbrk.apply(null, arguments);
};
-var real__sc_reduce32 = asm["_sc_reduce32"]; asm["_sc_reduce32"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real__sc_reduce32 = asm['_sc_reduce32'];
+asm['_sc_reduce32'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real__sc_reduce32.apply(null, arguments);
};
-var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real_establishStackSpace = asm['establishStackSpace'];
+asm['establishStackSpace'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real_establishStackSpace.apply(null, arguments);
};
-var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real_getTempRet0 = asm['getTempRet0'];
+asm['getTempRet0'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real_getTempRet0.apply(null, arguments);
};
-var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real_setTempRet0 = asm['setTempRet0'];
+asm['setTempRet0'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real_setTempRet0.apply(null, arguments);
};
-var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real_setThrew = asm['setThrew'];
+asm['setThrew'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real_setThrew.apply(null, arguments);
};
-var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real_stackAlloc = asm['stackAlloc'];
+asm['stackAlloc'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real_stackAlloc.apply(null, arguments);
};
-var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real_stackRestore = asm['stackRestore'];
+asm['stackRestore'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real_stackRestore.apply(null, arguments);
};
-var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() {
- assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
- assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
+var real_stackSave = asm['stackSave'];
+asm['stackSave'] = function() {
+ assert(
+ runtimeInitialized,
+ 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'
+ );
+ assert(
+ !runtimeExited,
+ 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'
+ );
return real_stackSave.apply(null, arguments);
};
-var ___errno_location = Module["___errno_location"] = asm["___errno_location"];
-var ___muldi3 = Module["___muldi3"] = asm["___muldi3"];
-var _bitshift64Ashr = Module["_bitshift64Ashr"] = asm["_bitshift64Ashr"];
-var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"];
-var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"];
-var _fflush = Module["_fflush"] = asm["_fflush"];
-var _free = Module["_free"] = asm["_free"];
-var _i64Add = Module["_i64Add"] = asm["_i64Add"];
-var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"];
-var _malloc = Module["_malloc"] = asm["_malloc"];
-var _memcpy = Module["_memcpy"] = asm["_memcpy"];
-var _memset = Module["_memset"] = asm["_memset"];
-var _sbrk = Module["_sbrk"] = asm["_sbrk"];
-var _sc_reduce32 = Module["_sc_reduce32"] = asm["_sc_reduce32"];
-var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"];
-var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"];
-var runPostSets = Module["runPostSets"] = asm["runPostSets"];
-var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"];
-var setThrew = Module["setThrew"] = asm["setThrew"];
-var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"];
-var stackRestore = Module["stackRestore"] = asm["stackRestore"];
-var stackSave = Module["stackSave"] = asm["stackSave"];
-var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"];
-var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"];
-;
-
-
-
+var ___errno_location = (Module['___errno_location'] =
+ asm['___errno_location']);
+var ___muldi3 = (Module['___muldi3'] = asm['___muldi3']);
+var _bitshift64Ashr = (Module['_bitshift64Ashr'] = asm['_bitshift64Ashr']);
+var _bitshift64Lshr = (Module['_bitshift64Lshr'] = asm['_bitshift64Lshr']);
+var _bitshift64Shl = (Module['_bitshift64Shl'] = asm['_bitshift64Shl']);
+var _fflush = (Module['_fflush'] = asm['_fflush']);
+var _free = (Module['_free'] = asm['_free']);
+var _i64Add = (Module['_i64Add'] = asm['_i64Add']);
+var _i64Subtract = (Module['_i64Subtract'] = asm['_i64Subtract']);
+var _malloc = (Module['_malloc'] = asm['_malloc']);
+var _memcpy = (Module['_memcpy'] = asm['_memcpy']);
+var _memset = (Module['_memset'] = asm['_memset']);
+var _sbrk = (Module['_sbrk'] = asm['_sbrk']);
+var _sc_reduce32 = (Module['_sc_reduce32'] = asm['_sc_reduce32']);
+var establishStackSpace = (Module['establishStackSpace'] =
+ asm['establishStackSpace']);
+var getTempRet0 = (Module['getTempRet0'] = asm['getTempRet0']);
+var runPostSets = (Module['runPostSets'] = asm['runPostSets']);
+var setTempRet0 = (Module['setTempRet0'] = asm['setTempRet0']);
+var setThrew = (Module['setThrew'] = asm['setThrew']);
+var stackAlloc = (Module['stackAlloc'] = asm['stackAlloc']);
+var stackRestore = (Module['stackRestore'] = asm['stackRestore']);
+var stackSave = (Module['stackSave'] = asm['stackSave']);
+var dynCall_ii = (Module['dynCall_ii'] = asm['dynCall_ii']);
+var dynCall_iiii = (Module['dynCall_iiii'] = asm['dynCall_iiii']);
// === Auto-generated postamble setup entry stuff ===
Module['asm'] = asm;
-if (!Module["intArrayFromString"]) Module["intArrayFromString"] = function() { abort("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["intArrayToString"]) Module["intArrayToString"] = function() { abort("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-Module["ccall"] = ccall;
-if (!Module["cwrap"]) Module["cwrap"] = function() { abort("'cwrap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["setValue"]) Module["setValue"] = function() { abort("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["getValue"]) Module["getValue"] = function() { abort("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["allocate"]) Module["allocate"] = function() { abort("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["getMemory"]) Module["getMemory"] = function() { abort("'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
-if (!Module["Pointer_stringify"]) Module["Pointer_stringify"] = function() { abort("'Pointer_stringify' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["AsciiToString"]) Module["AsciiToString"] = function() { abort("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["stringToAscii"]) Module["stringToAscii"] = function() { abort("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["UTF8ArrayToString"]) Module["UTF8ArrayToString"] = function() { abort("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["UTF8ToString"]) Module["UTF8ToString"] = function() { abort("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["stringToUTF8Array"]) Module["stringToUTF8Array"] = function() { abort("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["stringToUTF8"]) Module["stringToUTF8"] = function() { abort("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["lengthBytesUTF8"]) Module["lengthBytesUTF8"] = function() { abort("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["UTF16ToString"]) Module["UTF16ToString"] = function() { abort("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["stringToUTF16"]) Module["stringToUTF16"] = function() { abort("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["lengthBytesUTF16"]) Module["lengthBytesUTF16"] = function() { abort("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["UTF32ToString"]) Module["UTF32ToString"] = function() { abort("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["stringToUTF32"]) Module["stringToUTF32"] = function() { abort("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["lengthBytesUTF32"]) Module["lengthBytesUTF32"] = function() { abort("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["allocateUTF8"]) Module["allocateUTF8"] = function() { abort("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["stackTrace"]) Module["stackTrace"] = function() { abort("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["addOnPreRun"]) Module["addOnPreRun"] = function() { abort("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["addOnInit"]) Module["addOnInit"] = function() { abort("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["addOnPreMain"]) Module["addOnPreMain"] = function() { abort("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["addOnExit"]) Module["addOnExit"] = function() { abort("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["addOnPostRun"]) Module["addOnPostRun"] = function() { abort("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["writeStringToMemory"]) Module["writeStringToMemory"] = function() { abort("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["writeArrayToMemory"]) Module["writeArrayToMemory"] = function() { abort("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["writeAsciiToMemory"]) Module["writeAsciiToMemory"] = function() { abort("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["addRunDependency"]) Module["addRunDependency"] = function() { abort("'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
-if (!Module["removeRunDependency"]) Module["removeRunDependency"] = function() { abort("'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
-if (!Module["ENV"]) Module["ENV"] = function() { abort("'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["FS"]) Module["FS"] = function() { abort("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["FS_createFolder"]) Module["FS_createFolder"] = function() { abort("'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
-if (!Module["FS_createPath"]) Module["FS_createPath"] = function() { abort("'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
-if (!Module["FS_createDataFile"]) Module["FS_createDataFile"] = function() { abort("'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
-if (!Module["FS_createPreloadedFile"]) Module["FS_createPreloadedFile"] = function() { abort("'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
-if (!Module["FS_createLazyFile"]) Module["FS_createLazyFile"] = function() { abort("'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
-if (!Module["FS_createLink"]) Module["FS_createLink"] = function() { abort("'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
-if (!Module["FS_createDevice"]) Module["FS_createDevice"] = function() { abort("'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
-if (!Module["FS_unlink"]) Module["FS_unlink"] = function() { abort("'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
-if (!Module["GL"]) Module["GL"] = function() { abort("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["staticAlloc"]) Module["staticAlloc"] = function() { abort("'staticAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["dynamicAlloc"]) Module["dynamicAlloc"] = function() { abort("'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["warnOnce"]) Module["warnOnce"] = function() { abort("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["loadDynamicLibrary"]) Module["loadDynamicLibrary"] = function() { abort("'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["loadWebAssemblyModule"]) Module["loadWebAssemblyModule"] = function() { abort("'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["getLEB"]) Module["getLEB"] = function() { abort("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["getFunctionTables"]) Module["getFunctionTables"] = function() { abort("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["alignFunctionTables"]) Module["alignFunctionTables"] = function() { abort("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["registerFunctions"]) Module["registerFunctions"] = function() { abort("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["addFunction"]) Module["addFunction"] = function() { abort("'addFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["removeFunction"]) Module["removeFunction"] = function() { abort("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["getFuncWrapper"]) Module["getFuncWrapper"] = function() { abort("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["prettyPrint"]) Module["prettyPrint"] = function() { abort("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["makeBigInt"]) Module["makeBigInt"] = function() { abort("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["dynCall"]) Module["dynCall"] = function() { abort("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["getCompilerSetting"]) Module["getCompilerSetting"] = function() { abort("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["stackSave"]) Module["stackSave"] = function() { abort("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["stackRestore"]) Module["stackRestore"] = function() { abort("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["stackAlloc"]) Module["stackAlloc"] = function() { abort("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["establishStackSpace"]) Module["establishStackSpace"] = function() { abort("'establishStackSpace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["print"]) Module["print"] = function() { abort("'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["printErr"]) Module["printErr"] = function() { abort("'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["intArrayFromBase64"]) Module["intArrayFromBase64"] = function() { abort("'intArrayFromBase64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
-if (!Module["tryParseAsDataURI"]) Module["tryParseAsDataURI"] = function() { abort("'tryParseAsDataURI' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };if (!Module["ALLOC_NORMAL"]) Object.defineProperty(Module, "ALLOC_NORMAL", { get: function() { abort("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
-if (!Module["ALLOC_STACK"]) Object.defineProperty(Module, "ALLOC_STACK", { get: function() { abort("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
-if (!Module["ALLOC_STATIC"]) Object.defineProperty(Module, "ALLOC_STATIC", { get: function() { abort("'ALLOC_STATIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
-if (!Module["ALLOC_DYNAMIC"]) Object.defineProperty(Module, "ALLOC_DYNAMIC", { get: function() { abort("'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
-if (!Module["ALLOC_NONE"]) Object.defineProperty(Module, "ALLOC_NONE", { get: function() { abort("'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
+if (!Module['intArrayFromString'])
+ Module['intArrayFromString'] = function() {
+ abort(
+ "'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['intArrayToString'])
+ Module['intArrayToString'] = function() {
+ abort(
+ "'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+Module['ccall'] = ccall;
+if (!Module['cwrap'])
+ Module['cwrap'] = function() {
+ abort(
+ "'cwrap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['setValue'])
+ Module['setValue'] = function() {
+ abort(
+ "'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['getValue'])
+ Module['getValue'] = function() {
+ abort(
+ "'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['allocate'])
+ Module['allocate'] = function() {
+ abort(
+ "'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['getMemory'])
+ Module['getMemory'] = function() {
+ abort(
+ "'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you"
+ );
+ };
+if (!Module['Pointer_stringify'])
+ Module['Pointer_stringify'] = function() {
+ abort(
+ "'Pointer_stringify' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['AsciiToString'])
+ Module['AsciiToString'] = function() {
+ abort(
+ "'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['stringToAscii'])
+ Module['stringToAscii'] = function() {
+ abort(
+ "'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['UTF8ArrayToString'])
+ Module['UTF8ArrayToString'] = function() {
+ abort(
+ "'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['UTF8ToString'])
+ Module['UTF8ToString'] = function() {
+ abort(
+ "'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['stringToUTF8Array'])
+ Module['stringToUTF8Array'] = function() {
+ abort(
+ "'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['stringToUTF8'])
+ Module['stringToUTF8'] = function() {
+ abort(
+ "'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['lengthBytesUTF8'])
+ Module['lengthBytesUTF8'] = function() {
+ abort(
+ "'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['UTF16ToString'])
+ Module['UTF16ToString'] = function() {
+ abort(
+ "'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['stringToUTF16'])
+ Module['stringToUTF16'] = function() {
+ abort(
+ "'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['lengthBytesUTF16'])
+ Module['lengthBytesUTF16'] = function() {
+ abort(
+ "'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['UTF32ToString'])
+ Module['UTF32ToString'] = function() {
+ abort(
+ "'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['stringToUTF32'])
+ Module['stringToUTF32'] = function() {
+ abort(
+ "'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['lengthBytesUTF32'])
+ Module['lengthBytesUTF32'] = function() {
+ abort(
+ "'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['allocateUTF8'])
+ Module['allocateUTF8'] = function() {
+ abort(
+ "'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['stackTrace'])
+ Module['stackTrace'] = function() {
+ abort(
+ "'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['addOnPreRun'])
+ Module['addOnPreRun'] = function() {
+ abort(
+ "'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['addOnInit'])
+ Module['addOnInit'] = function() {
+ abort(
+ "'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['addOnPreMain'])
+ Module['addOnPreMain'] = function() {
+ abort(
+ "'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['addOnExit'])
+ Module['addOnExit'] = function() {
+ abort(
+ "'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['addOnPostRun'])
+ Module['addOnPostRun'] = function() {
+ abort(
+ "'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['writeStringToMemory'])
+ Module['writeStringToMemory'] = function() {
+ abort(
+ "'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['writeArrayToMemory'])
+ Module['writeArrayToMemory'] = function() {
+ abort(
+ "'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['writeAsciiToMemory'])
+ Module['writeAsciiToMemory'] = function() {
+ abort(
+ "'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['addRunDependency'])
+ Module['addRunDependency'] = function() {
+ abort(
+ "'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you"
+ );
+ };
+if (!Module['removeRunDependency'])
+ Module['removeRunDependency'] = function() {
+ abort(
+ "'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you"
+ );
+ };
+if (!Module['ENV'])
+ Module['ENV'] = function() {
+ abort(
+ "'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['FS'])
+ Module['FS'] = function() {
+ abort(
+ "'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['FS_createFolder'])
+ Module['FS_createFolder'] = function() {
+ abort(
+ "'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you"
+ );
+ };
+if (!Module['FS_createPath'])
+ Module['FS_createPath'] = function() {
+ abort(
+ "'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you"
+ );
+ };
+if (!Module['FS_createDataFile'])
+ Module['FS_createDataFile'] = function() {
+ abort(
+ "'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you"
+ );
+ };
+if (!Module['FS_createPreloadedFile'])
+ Module['FS_createPreloadedFile'] = function() {
+ abort(
+ "'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you"
+ );
+ };
+if (!Module['FS_createLazyFile'])
+ Module['FS_createLazyFile'] = function() {
+ abort(
+ "'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you"
+ );
+ };
+if (!Module['FS_createLink'])
+ Module['FS_createLink'] = function() {
+ abort(
+ "'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you"
+ );
+ };
+if (!Module['FS_createDevice'])
+ Module['FS_createDevice'] = function() {
+ abort(
+ "'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you"
+ );
+ };
+if (!Module['FS_unlink'])
+ Module['FS_unlink'] = function() {
+ abort(
+ "'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you"
+ );
+ };
+if (!Module['GL'])
+ Module['GL'] = function() {
+ abort(
+ "'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['staticAlloc'])
+ Module['staticAlloc'] = function() {
+ abort(
+ "'staticAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['dynamicAlloc'])
+ Module['dynamicAlloc'] = function() {
+ abort(
+ "'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['warnOnce'])
+ Module['warnOnce'] = function() {
+ abort(
+ "'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['loadDynamicLibrary'])
+ Module['loadDynamicLibrary'] = function() {
+ abort(
+ "'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['loadWebAssemblyModule'])
+ Module['loadWebAssemblyModule'] = function() {
+ abort(
+ "'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['getLEB'])
+ Module['getLEB'] = function() {
+ abort(
+ "'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['getFunctionTables'])
+ Module['getFunctionTables'] = function() {
+ abort(
+ "'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['alignFunctionTables'])
+ Module['alignFunctionTables'] = function() {
+ abort(
+ "'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['registerFunctions'])
+ Module['registerFunctions'] = function() {
+ abort(
+ "'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['addFunction'])
+ Module['addFunction'] = function() {
+ abort(
+ "'addFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['removeFunction'])
+ Module['removeFunction'] = function() {
+ abort(
+ "'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['getFuncWrapper'])
+ Module['getFuncWrapper'] = function() {
+ abort(
+ "'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['prettyPrint'])
+ Module['prettyPrint'] = function() {
+ abort(
+ "'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['makeBigInt'])
+ Module['makeBigInt'] = function() {
+ abort(
+ "'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['dynCall'])
+ Module['dynCall'] = function() {
+ abort(
+ "'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['getCompilerSetting'])
+ Module['getCompilerSetting'] = function() {
+ abort(
+ "'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['stackSave'])
+ Module['stackSave'] = function() {
+ abort(
+ "'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['stackRestore'])
+ Module['stackRestore'] = function() {
+ abort(
+ "'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['stackAlloc'])
+ Module['stackAlloc'] = function() {
+ abort(
+ "'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['establishStackSpace'])
+ Module['establishStackSpace'] = function() {
+ abort(
+ "'establishStackSpace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['print'])
+ Module['print'] = function() {
+ abort(
+ "'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['printErr'])
+ Module['printErr'] = function() {
+ abort(
+ "'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['intArrayFromBase64'])
+ Module['intArrayFromBase64'] = function() {
+ abort(
+ "'intArrayFromBase64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['tryParseAsDataURI'])
+ Module['tryParseAsDataURI'] = function() {
+ abort(
+ "'tryParseAsDataURI' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ };
+if (!Module['ALLOC_NORMAL'])
+ Object.defineProperty(Module, 'ALLOC_NORMAL', {
+ get: function() {
+ abort(
+ "'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ },
+ });
+if (!Module['ALLOC_STACK'])
+ Object.defineProperty(Module, 'ALLOC_STACK', {
+ get: function() {
+ abort(
+ "'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ },
+ });
+if (!Module['ALLOC_STATIC'])
+ Object.defineProperty(Module, 'ALLOC_STATIC', {
+ get: function() {
+ abort(
+ "'ALLOC_STATIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ },
+ });
+if (!Module['ALLOC_DYNAMIC'])
+ Object.defineProperty(Module, 'ALLOC_DYNAMIC', {
+ get: function() {
+ abort(
+ "'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ },
+ });
+if (!Module['ALLOC_NONE'])
+ Object.defineProperty(Module, 'ALLOC_NONE', {
+ get: function() {
+ abort(
+ "'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)"
+ );
+ },
+ });
if (memoryInitializer) {
if (!isDataURI(memoryInitializer)) {
@@ -8504,25 +13594,32 @@ if (memoryInitializer) {
var applyMemoryInitializer = function(data) {
if (data.byteLength) data = new Uint8Array(data);
for (var i = 0; i < data.length; i++) {
- assert(HEAPU8[GLOBAL_BASE + i] === 0, "area for memory initializer should not have been touched before it's loaded");
+ assert(
+ HEAPU8[GLOBAL_BASE + i] === 0,
+ "area for memory initializer should not have been touched before it's loaded"
+ );
}
HEAPU8.set(data, GLOBAL_BASE);
// Delete the typed array that contains the large blob of the memory initializer request response so that
// we won't keep unnecessary memory lying around. However, keep the XHR object itself alive so that e.g.
// its .status field can still be accessed later.
- if (Module['memoryInitializerRequest']) delete Module['memoryInitializerRequest'].response;
+ if (Module['memoryInitializerRequest'])
+ delete Module['memoryInitializerRequest'].response;
removeRunDependency('memory initializer');
- }
+ };
function doBrowserLoad() {
- Module['readAsync'](memoryInitializer, applyMemoryInitializer, function() {
- throw 'could not load memory initializer ' + memoryInitializer;
- });
+ Module['readAsync'](
+ memoryInitializer,
+ applyMemoryInitializer,
+ function() {
+ throw 'could not load memory initializer ' + memoryInitializer;
+ }
+ );
}
var memoryInitializerBytes = tryParseAsDataURI(memoryInitializer);
if (memoryInitializerBytes) {
applyMemoryInitializer(memoryInitializerBytes.buffer);
- } else
- if (Module['memoryInitializerRequest']) {
+ } else if (Module['memoryInitializerRequest']) {
// a network request has already been created, just use that
function useRequest() {
var request = Module['memoryInitializerRequest'];
@@ -8535,7 +13632,12 @@ if (memoryInitializer) {
// If you see this warning, the issue may be that you are using locateFile and defining it in JS. That
// means that the HTML file doesn't know about it, and when it tries to create the mem init request early, does it to the wrong place.
// Look in your browser's devtools network console to see what's going on.
- console.warn('a problem seems to have happened with Module.memoryInitializerRequest, status: ' + request.status + ', retrying ' + memoryInitializer);
+ console.warn(
+ 'a problem seems to have happened with Module.memoryInitializerRequest, status: ' +
+ request.status +
+ ', retrying ' +
+ memoryInitializer
+ );
doBrowserLoad();
return;
}
@@ -8554,18 +13656,16 @@ if (memoryInitializer) {
}
}
-
-
/**
* @constructor
* @extends {Error}
* @this {ExitStatus}
*/
function ExitStatus(status) {
- this.name = "ExitStatus";
- this.message = "Program terminated with exit(" + status + ")";
+ this.name = 'ExitStatus';
+ this.message = 'Program terminated with exit(' + status + ')';
this.status = status;
-};
+}
ExitStatus.prototype = new Error();
ExitStatus.prototype.constructor = ExitStatus;
@@ -8576,11 +13676,7 @@ dependenciesFulfilled = function runCaller() {
// If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
if (!Module['calledRun']) run();
if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled
-}
-
-
-
-
+};
/** @type {function(Array=)} */
function run(args) {
@@ -8609,7 +13705,10 @@ function run(args) {
if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();
- assert(!Module['_main'], 'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');
+ assert(
+ !Module['_main'],
+ 'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'
+ );
postRun();
}
@@ -8646,15 +13745,18 @@ function checkUnflushedContent() {
var has = false;
out = err = function(x) {
has = true;
- }
- try { // it doesn't matter if it fails
+ };
+ try {
+ // it doesn't matter if it fails
var flush = flush_NO_FILESYSTEM;
if (flush) flush(0);
- } catch(e) {}
+ } catch (e) {}
out = print;
err = printErr;
if (has) {
- warnOnce('stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.');
+ warnOnce(
+ 'stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.'
+ );
}
}
@@ -8672,10 +13774,13 @@ function exit(status, implicit) {
if (Module['noExitRuntime']) {
// if exit() was called, we may warn the user if the runtime isn't actually being shut down
if (!implicit) {
- err('exit(' + status + ') called, but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)');
+ err(
+ 'exit(' +
+ status +
+ ') called, but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)'
+ );
}
} else {
-
ABORT = true;
EXITSTATUS = status;
STACKTOP = initialStackTop;
@@ -8698,7 +13803,7 @@ function abort(what) {
if (what !== undefined) {
out(what);
err(what);
- what = JSON.stringify(what)
+ what = JSON.stringify(what);
} else {
what = '';
}
@@ -8718,22 +13823,15 @@ function abort(what) {
Module['abort'] = abort;
if (Module['preInit']) {
- if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
+ if (typeof Module['preInit'] == 'function')
+ Module['preInit'] = [Module['preInit']];
while (Module['preInit'].length > 0) {
Module['preInit'].pop()();
}
}
-
-Module["noExitRuntime"] = true;
+Module['noExitRuntime'] = true;
run();
-
-
-
-
// {{MODULE_ADDITIONS}}
-
-
-
diff --git a/libloki/service_nodes.js b/libloki/service_nodes.js
index 1c0ff8aaf..a6bb793d1 100644
--- a/libloki/service_nodes.js
+++ b/libloki/service_nodes.js
@@ -1,10 +1,10 @@
/* global window */
// eslint-disable-next-line func-names
-(function () {
+(function() {
window.libloki = window.libloki || {};
- function consolidateLists(lists, threshold, selector = (x) => x){
+ function consolidateLists(lists, threshold, selector = x => x) {
if (typeof threshold !== 'number') {
throw Error('Provided threshold is not a number');
}
diff --git a/libloki/storage.js b/libloki/storage.js
index a71676698..e8870795c 100644
--- a/libloki/storage.js
+++ b/libloki/storage.js
@@ -1,7 +1,7 @@
/* global window, libsignal, textsecure */
// eslint-disable-next-line func-names
-(function () {
+(function() {
window.libloki = window.libloki || {};
async function getPreKeyBundleForContact(pubKey) {
@@ -107,14 +107,16 @@
};
store.loadContactPreKey = async pubKey => {
- const preKey = await window.Signal.Data.getContactPreKeyByIdentityKey(pubKey);
+ const preKey = await window.Signal.Data.getContactPreKeyByIdentityKey(
+ pubKey
+ );
if (preKey) {
return {
id: preKey.id,
keyId: preKey.keyId,
publicKey: preKey.publicKey,
identityKeyString: preKey.identityKeyString,
- }
+ };
}
window.log.warn('Failed to fetch contact prekey:', pubKey);
@@ -123,7 +125,10 @@
store.loadContactPreKeys = async filters => {
const { keyId, identityKeyString } = filters;
- const keys = await window.Signal.Data.getContactPreKeys(keyId, identityKeyString);
+ const keys = await window.Signal.Data.getContactPreKeys(
+ keyId,
+ identityKeyString
+ );
if (keys) {
return keys.map(preKey => ({
id: preKey.id,
@@ -133,10 +138,7 @@
}));
}
- window.log.warn(
- 'Failed to fetch signed prekey with filters',
- filters
- );
+ window.log.warn('Failed to fetch signed prekey with filters', filters);
return undefined;
};
@@ -162,7 +164,9 @@
};
store.loadContactSignedPreKey = async pubKey => {
- const preKey = await window.Signal.Data.getContactSignedPreKeyByIdentityKey(pubKey);
+ const preKey = await window.Signal.Data.getContactSignedPreKeyByIdentityKey(
+ pubKey
+ );
if (preKey) {
return {
id: preKey.id,
@@ -180,7 +184,10 @@
store.loadContactSignedPreKeys = async filters => {
const { keyId, identityKeyString } = filters;
- const keys = await window.Signal.Data.getContactSignedPreKeys(keyId, identityKeyString);
+ const keys = await window.Signal.Data.getContactSignedPreKeys(
+ keyId,
+ identityKeyString
+ );
if (keys) {
return keys.map(preKey => ({
id: preKey.id,
diff --git a/libloki/test/crypto_test.js b/libloki/test/crypto_test.js
index 15dfa02f0..0a6210368 100644
--- a/libloki/test/crypto_test.js
+++ b/libloki/test/crypto_test.js
@@ -15,21 +15,21 @@ describe('Crypto', () => {
store.put('identityKey', identityKey);
const key = libsignal.crypto.getRandomBytes(32);
const pubKeyString = StringView.arrayBufferToHex(key);
- address = new libsignal.SignalProtocolAddress(
- pubKeyString,
- 1
- );
+ address = new libsignal.SignalProtocolAddress(pubKeyString, 1);
fallbackCipher = new libloki.crypto.FallBackSessionCipher(address);
});
it('should encrypt fallback cipher messages as friend requests', async () => {
const buffer = new ArrayBuffer(10);
const { type } = await fallbackCipher.encrypt(buffer);
- assert.strictEqual(type, textsecure.protobuf.Envelope.Type.FRIEND_REQUEST);
+ assert.strictEqual(
+ type,
+ textsecure.protobuf.Envelope.Type.FRIEND_REQUEST
+ );
});
it('should encrypt and then decrypt a message with the same result', async () => {
- const arr = new Uint8Array([1,2,3,4,5]);
+ const arr = new Uint8Array([1, 2, 3, 4, 5]);
const { body } = await fallbackCipher.encrypt(arr.buffer);
const result = await fallbackCipher.decrypt(body);
assert.deepEqual(result, arr.buffer);
diff --git a/libloki/test/metrics.js b/libloki/test/metrics.js
index 2cbe75d9c..9614a54ef 100644
--- a/libloki/test/metrics.js
+++ b/libloki/test/metrics.js
@@ -1,13 +1,17 @@
/* global dcodeIO, Plotly */
let jobId = 0;
-let currentTrace = 0
+let currentTrace = 0;
let plotlyDiv;
const workers = [];
async function run(messageLength, numWorkers = 1, nonceTrials = 100, ttl = 72) {
const timestamp = Math.floor(Date.now() / 1000);
- const pubKey = '05ec8635a07a13743516c7c9b3412f3e8252efb7fcaf67eb1615ffba62bebc6802';
+ const pubKey =
+ '05ec8635a07a13743516c7c9b3412f3e8252efb7fcaf67eb1615ffba62bebc6802';
const message = randomString(messageLength);
- const messageBuffer = dcodeIO.ByteBuffer.wrap(message, 'utf8').toArrayBuffer();
+ const messageBuffer = dcodeIO.ByteBuffer.wrap(
+ message,
+ 'utf8'
+ ).toArrayBuffer();
const data = dcodeIO.ByteBuffer.wrap(messageBuffer).toString('base64');
const promises = [];
const t0 = performance.now();
@@ -17,9 +21,20 @@ async function run(messageLength, numWorkers = 1, nonceTrials = 100, ttl = 72) {
jobId += 1;
const increment = numWorkers;
const index = w;
- worker.postMessage([jobId, 'calcPoW', timestamp, ttl * 60 * 60, pubKey, data, false, nonceTrials, increment, index]);
+ worker.postMessage([
+ jobId,
+ 'calcPoW',
+ timestamp,
+ ttl * 60 * 60,
+ pubKey,
+ data,
+ false,
+ nonceTrials,
+ increment,
+ index,
+ ]);
const p = new Promise(resolve => {
- worker.onmessage = (nonce) => {
+ worker.onmessage = nonce => {
resolve(nonce);
};
});
@@ -33,9 +48,15 @@ async function run(messageLength, numWorkers = 1, nonceTrials = 100, ttl = 72) {
workers.forEach(worker => worker.terminate());
}
-async function runPoW({ iteration, nonceTrials, numWorkers, messageLength = 50, ttl = 72 }) {
+async function runPoW({
+ iteration,
+ nonceTrials,
+ numWorkers,
+ messageLength = 50,
+ ttl = 72,
+}) {
const name = `W:${numWorkers} - NT: ${nonceTrials} - L:${messageLength} - TTL:${ttl}`;
- Plotly.addTraces(plotlyDiv ,{
+ Plotly.addTraces(plotlyDiv, {
y: [],
type: 'box',
boxpoints: 'all',
@@ -46,84 +67,148 @@ async function runPoW({ iteration, nonceTrials, numWorkers, messageLength = 50,
await run(messageLength, numWorkers, nonceTrials, ttl);
}
currentTrace += 1;
+
+ // eslint-disable-next-line
console.log(`done for ${name}`);
}
-
function randomString(length) {
let text = '';
- const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
+ const possible =
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
for (let i = 0; i < length; i += 1)
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}
function addPoint(duration) {
- Plotly.extendTraces(plotlyDiv, {y: [[duration]]}, [currentTrace]);
+ Plotly.extendTraces(plotlyDiv, { y: [[duration]] }, [currentTrace]);
}
async function startMessageLengthRun() {
const iteration0 = parseFloat(document.getElementById('iteration0').value);
- const nonceTrials0 = parseFloat(document.getElementById('nonceTrials0').value);
+ const nonceTrials0 = parseFloat(
+ document.getElementById('nonceTrials0').value
+ );
const numWorkers0 = parseFloat(document.getElementById('numWorkers0').value);
- const messageLengthStart0 = parseFloat(document.getElementById('messageLengthStart0').value);
- const messageLengthStop0 = parseFloat(document.getElementById('messageLengthStop0').value);
- const messageLengthStep0 = parseFloat(document.getElementById('messageLengthStep0').value);
+ const messageLengthStart0 = parseFloat(
+ document.getElementById('messageLengthStart0').value
+ );
+ const messageLengthStop0 = parseFloat(
+ document.getElementById('messageLengthStop0').value
+ );
+ const messageLengthStep0 = parseFloat(
+ document.getElementById('messageLengthStep0').value
+ );
const TTL0 = parseFloat(document.getElementById('TTL0').value);
- for (let l = messageLengthStart0; l < messageLengthStop0; l += messageLengthStep0) {
+ for (
+ let l = messageLengthStart0;
+ l < messageLengthStop0;
+ l += messageLengthStep0
+ ) {
// eslint-disable-next-line no-await-in-loop
- await runPoW({ iteration: iteration0, nonceTrials: nonceTrials0, numWorkers: numWorkers0, messageLength: l, ttl: TTL0 });
+ await runPoW({
+ iteration: iteration0,
+ nonceTrials: nonceTrials0,
+ numWorkers: numWorkers0,
+ messageLength: l,
+ ttl: TTL0,
+ });
}
}
async function startNumWorkerRun() {
const iteration1 = parseFloat(document.getElementById('iteration1').value);
- const nonceTrials1 = parseFloat(document.getElementById('nonceTrials1').value);
- const numWorkersStart1 = parseFloat(document.getElementById('numWorkersStart1').value);
- const numWorkersEnd1 = parseFloat(document.getElementById('numWorkersEnd1').value);
- const messageLength1 = parseFloat(document.getElementById('messageLength1').value);
+ const nonceTrials1 = parseFloat(
+ document.getElementById('nonceTrials1').value
+ );
+ const numWorkersStart1 = parseFloat(
+ document.getElementById('numWorkersStart1').value
+ );
+ const numWorkersEnd1 = parseFloat(
+ document.getElementById('numWorkersEnd1').value
+ );
+ const messageLength1 = parseFloat(
+ document.getElementById('messageLength1').value
+ );
const TTL1 = parseFloat(document.getElementById('TTL1').value);
- for (let numWorkers = numWorkersStart1; numWorkers <= numWorkersEnd1; numWorkers +=1) {
+ for (
+ let numWorkers = numWorkersStart1;
+ numWorkers <= numWorkersEnd1;
+ numWorkers += 1
+ ) {
// eslint-disable-next-line no-await-in-loop
- await runPoW({ iteration: iteration1, nonceTrials: nonceTrials1, numWorkers, messageLength: messageLength1, ttl: TTL1 });
+ await runPoW({
+ iteration: iteration1,
+ nonceTrials: nonceTrials1,
+ numWorkers,
+ messageLength: messageLength1,
+ ttl: TTL1,
+ });
}
}
async function startNonceTrialsRun() {
const iteration2 = parseFloat(document.getElementById('iteration2').value);
- const messageLength2 = parseFloat(document.getElementById('messageLength2').value);
+ const messageLength2 = parseFloat(
+ document.getElementById('messageLength2').value
+ );
const numWorkers2 = parseFloat(document.getElementById('numWorkers2').value);
- const nonceTrialsStart2 = parseFloat(document.getElementById('nonceTrialsStart2').value);
- const nonceTrialsStop2 = parseFloat(document.getElementById('nonceTrialsStop2').value);
- const nonceTrialsStep2 = parseFloat(document.getElementById('nonceTrialsStep2').value);
+ const nonceTrialsStart2 = parseFloat(
+ document.getElementById('nonceTrialsStart2').value
+ );
+ const nonceTrialsStop2 = parseFloat(
+ document.getElementById('nonceTrialsStop2').value
+ );
+ const nonceTrialsStep2 = parseFloat(
+ document.getElementById('nonceTrialsStep2').value
+ );
const TTL2 = parseFloat(document.getElementById('TTL2').value);
for (let n = nonceTrialsStart2; n < nonceTrialsStop2; n += nonceTrialsStep2) {
// eslint-disable-next-line no-await-in-loop
- await runPoW({ iteration: iteration2, nonceTrials: n, numWorkers: numWorkers2, messageLength: messageLength2, ttl: TTL2 });
+ await runPoW({
+ iteration: iteration2,
+ nonceTrials: n,
+ numWorkers: numWorkers2,
+ messageLength: messageLength2,
+ ttl: TTL2,
+ });
}
}
async function starTTLRun() {
const iteration3 = parseFloat(document.getElementById('iteration3').value);
- const nonceTrials3 = parseFloat(document.getElementById('nonceTrials3').value);
- const messageLength3 = parseFloat(document.getElementById('messageLength3').value);
+ const nonceTrials3 = parseFloat(
+ document.getElementById('nonceTrials3').value
+ );
+ const messageLength3 = parseFloat(
+ document.getElementById('messageLength3').value
+ );
const numWorkers3 = parseFloat(document.getElementById('numWorkers3').value);
const TTLStart3 = parseFloat(document.getElementById('TTLStart3').value);
const TTLStop3 = parseFloat(document.getElementById('TTLStop3').value);
const TTLStep3 = parseFloat(document.getElementById('TTLStep3').value);
for (let ttl = TTLStart3; ttl < TTLStop3; ttl += TTLStep3) {
// eslint-disable-next-line no-await-in-loop
- await runPoW({ iteration: iteration3, nonceTrials: nonceTrials3, numWorkers: numWorkers3, messageLength: messageLength3, ttl });
+ await runPoW({
+ iteration: iteration3,
+ nonceTrials: nonceTrials3,
+ numWorkers: numWorkers3,
+ messageLength: messageLength3,
+ ttl,
+ });
}
}
+
+// eslint-disable-next-line no-unused-vars
async function start(index) {
const data = [];
const layout = {};
const options = {
responsive: true,
};
- plotlyDiv =`plotly${index}`;
+ plotlyDiv = `plotly${index}`;
currentTrace = 0;
window.chart = Plotly.newPlot(plotlyDiv, data, layout, options);
workers.forEach(worker => worker.terminate());
- switch(index) {
+ switch (index) {
case 0:
await startMessageLengthRun();
break;
diff --git a/libloki/test/proof-of-work_test.js b/libloki/test/proof-of-work_test.js
index 68a85ea19..06ec6bc38 100644
--- a/libloki/test/proof-of-work_test.js
+++ b/libloki/test/proof-of-work_test.js
@@ -11,7 +11,7 @@ const {
describe('Proof of Work', () => {
describe('#incrementNonce', () => {
it('should increment a Uint8Array nonce correctly', () => {
- const arr1Before = new Uint8Array([0,0,0,0,0,0,0,0]);
+ const arr1Before = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]);
const arr1After = incrementNonce(arr1Before);
assert.strictEqual(arr1After[0], 0);
assert.strictEqual(arr1After[1], 0);
@@ -24,15 +24,21 @@ describe('Proof of Work', () => {
});
it('should increment a Uint8Array nonce correctly in a loop', () => {
- let arr = new Uint8Array([0,0,0,0,0,0,0,0]);
- assert.deepEqual(incrementNonce(arr), new Uint8Array([0,0,0,0,0,0,0,1]));
- arr = new Uint8Array([0,0,0,0,0,0,0,0]);
- for(let i = 0; i <= 255; i += 1) {
+ let arr = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]);
+ assert.deepEqual(
+ incrementNonce(arr),
+ new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1])
+ );
+ arr = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]);
+ for (let i = 0; i <= 255; i += 1) {
arr = incrementNonce(arr);
}
- assert.deepEqual(arr, new Uint8Array([0,0,0,0,0,0,1,0]));
- arr = new Uint8Array([255,255,255,255,255,255,255,255]);
- assert.deepEqual(incrementNonce(arr), new Uint8Array([0,0,0,0,0,0,0,0]));
+ assert.deepEqual(arr, new Uint8Array([0, 0, 0, 0, 0, 0, 1, 0]));
+ arr = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255]);
+ assert.deepEqual(
+ incrementNonce(arr),
+ new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0])
+ );
});
});
@@ -41,12 +47,12 @@ describe('Proof of Work', () => {
// These values will need to be updated if we adjust the difficulty settings
let payloadLen = 625;
const ttl = 86400;
- let expectedTarget = new Uint8Array([0,4,119,164,35,224,222,64]);
+ let expectedTarget = new Uint8Array([0, 4, 119, 164, 35, 224, 222, 64]);
let actualTarget = calcTarget(ttl, payloadLen, 10);
assert.deepEqual(actualTarget, expectedTarget);
payloadLen = 6597;
- expectedTarget = new Uint8Array([0,0,109,145,174,146,124,3]);
+ expectedTarget = new Uint8Array([0, 0, 109, 145, 174, 146, 124, 3]);
actualTarget = calcTarget(ttl, payloadLen, 10);
assert.deepEqual(actualTarget, expectedTarget);
});
@@ -54,30 +60,30 @@ describe('Proof of Work', () => {
describe('#greaterThan', () => {
it('should correclty compare two Uint8Arrays', () => {
- let arr1 = new Uint8Array([0,0,0,0,0,0,0,0,0,1]);
- let arr2 = new Uint8Array([0,0,0,0,0,0,0,0,0,1]);
- assert.isFalse(greaterThan(arr1, arr2))
- arr1 = new Uint8Array([0,0,0,0,0,0,0,0,0,2]);
- arr2 = new Uint8Array([0,0,0,0,0,0,0,0,0,1]);
- assert.isTrue(greaterThan(arr1, arr2))
- arr1 = new Uint8Array([255,255,255,255,255,255,255,255,255,255]);
- arr2 = new Uint8Array([255,255,255,255,255,255,255,255,255,254]);
- assert.isTrue(greaterThan(arr1, arr2))
- arr1 = new Uint8Array([254,255,255,255,255,255,255,255,255,255]);
- arr2 = new Uint8Array([255,255,255,255,255,255,255,255,255,255]);
+ let arr1 = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
+ let arr2 = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
+ assert.isFalse(greaterThan(arr1, arr2));
+ arr1 = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 2]);
+ arr2 = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
+ assert.isTrue(greaterThan(arr1, arr2));
+ arr1 = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255, 255, 255]);
+ arr2 = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255, 255, 254]);
+ assert.isTrue(greaterThan(arr1, arr2));
+ arr1 = new Uint8Array([254, 255, 255, 255, 255, 255, 255, 255, 255, 255]);
+ arr2 = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255, 255, 255]);
assert.isFalse(greaterThan(arr1, arr2));
arr1 = new Uint8Array([0]);
- arr2 = new Uint8Array([0,0]);
- assert.isFalse(greaterThan(arr1, arr2))
+ arr2 = new Uint8Array([0, 0]);
+ assert.isFalse(greaterThan(arr1, arr2));
});
});
describe('#bufferToBase64', () => {
it('should correclty convert a Uint8Array to a base64 string', () => {
- let arr = new Uint8Array([1,2,3]);
+ let arr = new Uint8Array([1, 2, 3]);
let expected = 'AQID';
assert.strictEqual(bufferToBase64(arr), expected);
- arr = new Uint8Array([123,25,3,121,45,87,24,111]);
+ arr = new Uint8Array([123, 25, 3, 121, 45, 87, 24, 111]);
expected = 'exkDeS1XGG8=';
assert.strictEqual(bufferToBase64(arr), expected);
arr = new Uint8Array([]);
diff --git a/libloki/test/service_nodes_test.js b/libloki/test/service_nodes_test.js
index 59636743a..be0d0a1a0 100644
--- a/libloki/test/service_nodes_test.js
+++ b/libloki/test/service_nodes_test.js
@@ -3,11 +3,17 @@
describe('ServiceNodes', () => {
describe('#consolidateLists', () => {
it('should throw when provided a non-iterable list', () => {
- assert.throws(() => libloki.serviceNodes.consolidateLists(null, 1), Error);
+ assert.throws(
+ () => libloki.serviceNodes.consolidateLists(null, 1),
+ Error
+ );
});
it('should throw when provided a non-iterable item in the list', () => {
- assert.throws(() => libloki.serviceNodes.consolidateLists([1, 2, 3], 1), Error);
+ assert.throws(
+ () => libloki.serviceNodes.consolidateLists([1, 2, 3], 1),
+ Error
+ );
});
it('should throw when provided a non-number threshold', () => {
@@ -19,10 +25,10 @@ describe('ServiceNodes', () => {
it('should throw when provided a non-function selector', () => {
[1, 'a', 0xffffffff, { really: 'not a function' }].forEach(x => {
- assert.throws(() =>
- libloki.serviceNodes.consolidateLists([], 1, x),
+ assert.throws(
+ () => libloki.serviceNodes.consolidateLists([], 1, x),
'Provided selector is not a function'
- )
+ );
});
});
@@ -32,64 +38,85 @@ describe('ServiceNodes', () => {
});
it('should return the input when only 1 list is provided', () => {
- const result = libloki.serviceNodes.consolidateLists([['a', 'b', 'c']], 1);
+ const result = libloki.serviceNodes.consolidateLists(
+ [['a', 'b', 'c']],
+ 1
+ );
assert.deepEqual(result, ['a', 'b', 'c']);
});
it('should return the union of all lists when threshold is 0', () => {
- const result = libloki.serviceNodes.consolidateLists([
- ['a', 'b', 'c', 'h'],
- ['d', 'e', 'f', 'g'],
- ['g', 'h'],
- ], 0);
+ const result = libloki.serviceNodes.consolidateLists(
+ [['a', 'b', 'c', 'h'], ['d', 'e', 'f', 'g'], ['g', 'h']],
+ 0
+ );
assert.deepEqual(result.sort(), ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']);
});
it('should use the selector to identify the elements', () => {
- const result = libloki.serviceNodes.consolidateLists([
- [{ id: 1, val: 'a'}, { id: 2, val: 'b'}, { id: 3, val: 'c'}, { id: 8, val: 'h'}],
- [{ id: 4, val: 'd'}, { id: 5, val: 'e'}, { id: 6, val: 'f'}, { id: 7, val: 'g'}],
- [{ id: 7, val: 'g'}, { id: 8, val: 'h'}],
- ], 0, x => x.id);
+ const result = libloki.serviceNodes.consolidateLists(
+ [
+ [
+ { id: 1, val: 'a' },
+ { id: 2, val: 'b' },
+ { id: 3, val: 'c' },
+ { id: 8, val: 'h' },
+ ],
+ [
+ { id: 4, val: 'd' },
+ { id: 5, val: 'e' },
+ { id: 6, val: 'f' },
+ { id: 7, val: 'g' },
+ ],
+ [{ id: 7, val: 'g' }, { id: 8, val: 'h' }],
+ ],
+ 0,
+ x => x.id
+ );
const expected = [
- { id: 1, val: 'a'},
- { id: 2, val: 'b'},
- { id: 3, val: 'c'},
- { id: 4, val: 'd'},
- { id: 5, val: 'e'},
- { id: 6, val: 'f'},
- { id: 7, val: 'g'},
- { id: 8, val: 'h'},
+ { id: 1, val: 'a' },
+ { id: 2, val: 'b' },
+ { id: 3, val: 'c' },
+ { id: 4, val: 'd' },
+ { id: 5, val: 'e' },
+ { id: 6, val: 'f' },
+ { id: 7, val: 'g' },
+ { id: 8, val: 'h' },
];
assert.deepEqual(result.sort((a, b) => a.val > b.val), expected);
});
it('should return the intersection of all lists when threshold is 1', () => {
- const result = libloki.serviceNodes.consolidateLists([
- ['a', 'b', 'c', 'd'],
- ['a', 'e', 'f', 'g'],
- ['a', 'h'],
- ], 1);
+ const result = libloki.serviceNodes.consolidateLists(
+ [['a', 'b', 'c', 'd'], ['a', 'e', 'f', 'g'], ['a', 'h']],
+ 1
+ );
assert.deepEqual(result, ['a']);
});
it('should return the elements that have an occurence >= the provided threshold', () => {
- const result = libloki.serviceNodes.consolidateLists([
- ['a', 'b', 'c', 'd', 'e', 'f', 'g'],
- ['a', 'b', 'c', 'd', 'e', 'f', 'h'],
- ['a', 'b', 'c', 'd', 'e', 'f', 'g'],
- ['a', 'b', 'c', 'd', 'e', 'g', 'h'],
- ], 3/4);
+ const result = libloki.serviceNodes.consolidateLists(
+ [
+ ['a', 'b', 'c', 'd', 'e', 'f', 'g'],
+ ['a', 'b', 'c', 'd', 'e', 'f', 'h'],
+ ['a', 'b', 'c', 'd', 'e', 'f', 'g'],
+ ['a', 'b', 'c', 'd', 'e', 'g', 'h'],
+ ],
+ 3 / 4
+ );
assert.deepEqual(result, ['a', 'b', 'c', 'd', 'e', 'f', 'g']);
});
it('should work with sets as well', () => {
- const result = libloki.serviceNodes.consolidateLists(new Set([
- new Set(['a', 'b', 'c', 'd', 'e', 'f', 'g']),
- new Set(['a', 'b', 'c', 'd', 'e', 'f', 'h']),
- new Set(['a', 'b', 'c', 'd', 'e', 'f', 'g']),
- new Set(['a', 'b', 'c', 'd', 'e', 'g', 'h']),
- ]), 3/4);
+ const result = libloki.serviceNodes.consolidateLists(
+ new Set([
+ new Set(['a', 'b', 'c', 'd', 'e', 'f', 'g']),
+ new Set(['a', 'b', 'c', 'd', 'e', 'f', 'h']),
+ new Set(['a', 'b', 'c', 'd', 'e', 'f', 'g']),
+ new Set(['a', 'b', 'c', 'd', 'e', 'g', 'h']),
+ ]),
+ 3 / 4
+ );
assert.deepEqual(result, ['a', 'b', 'c', 'd', 'e', 'f', 'g']);
});
});
diff --git a/libloki/test/storage_test.js b/libloki/test/storage_test.js
index dc883f06b..0af07a2bd 100644
--- a/libloki/test/storage_test.js
+++ b/libloki/test/storage_test.js
@@ -21,7 +21,9 @@ describe('Storage', () => {
const pubKey = libsignal.crypto.getRandomBytes(32);
const pubKeyString = StringView.arrayBufferToHex(pubKey);
const preKeyIdBefore = textsecure.storage.get('maxPreKeyId', 1);
- const newBundle = await libloki.storage.getPreKeyBundleForContact(pubKeyString);
+ const newBundle = await libloki.storage.getPreKeyBundleForContact(
+ pubKeyString
+ );
const preKeyIdAfter = textsecure.storage.get('maxPreKeyId', 1);
assert.strictEqual(preKeyIdAfter, preKeyIdBefore + 1);
@@ -34,16 +36,23 @@ describe('Storage', () => {
assert.isDefined(newBundle.preKey);
assert.isDefined(newBundle.signedKey);
assert.isDefined(newBundle.signature);
- assert.strictEqual(testKeyArray.byteLength, newBundle.signedKey.byteLength);
- for (let i = 0 ; i !== testKeyArray.byteLength; i += 1)
+ assert.strictEqual(
+ testKeyArray.byteLength,
+ newBundle.signedKey.byteLength
+ );
+ for (let i = 0; i !== testKeyArray.byteLength; i += 1)
assert.strictEqual(testKeyArray[i], newBundle.signedKey[i]);
});
it('should return the same prekey bundle after creating a contact', async () => {
const pubKey = libsignal.crypto.getRandomBytes(32);
const pubKeyString = StringView.arrayBufferToHex(pubKey);
- const bundle1 = await libloki.storage.getPreKeyBundleForContact(pubKeyString);
- const bundle2 = await libloki.storage.getPreKeyBundleForContact(pubKeyString);
+ const bundle1 = await libloki.storage.getPreKeyBundleForContact(
+ pubKeyString
+ );
+ const bundle2 = await libloki.storage.getPreKeyBundleForContact(
+ pubKeyString
+ );
assert.isDefined(bundle1);
assert.isDefined(bundle2);
assert.deepEqual(bundle1, bundle2);
@@ -53,7 +62,9 @@ describe('Storage', () => {
const pubKey = libsignal.crypto.getRandomBytes(32);
const pubKeyString = StringView.arrayBufferToHex(pubKey);
const preKeyIdBefore = textsecure.storage.get('maxPreKeyId', 1);
- const newBundle = await libloki.storage.getPreKeyBundleForContact(pubKeyString);
+ const newBundle = await libloki.storage.getPreKeyBundleForContact(
+ pubKeyString
+ );
const preKeyIdAfter = textsecure.storage.get('maxPreKeyId', 1);
assert.strictEqual(preKeyIdAfter, preKeyIdBefore + 1);
diff --git a/libtextsecure/account_manager.js b/libtextsecure/account_manager.js
index 99bad2969..427744cc3 100644
--- a/libtextsecure/account_manager.js
+++ b/libtextsecure/account_manager.js
@@ -15,6 +15,8 @@
*/
/* eslint-disable more/no-then */
+/* eslint-disable no-unused-vars */
+/* eslint-disable no-await-in-loop */
// eslint-disable-next-line func-names
(function() {
@@ -70,17 +72,18 @@
generateKeypair = libsignal.KeyHelper.generateIdentityKeyPair;
}
return this.queueTask(() =>
- generateKeypair().then(async identityKeyPair => {
- return createAccount(identityKeyPair)
- .then(() => this.saveMnemonic(mnemonic))
- .then(clearSessionsAndPreKeys)
- .then(generateKeys)
- .then(confirmKeys)
- .then(() => {
- const pubKeyString = StringView.arrayBufferToHex(identityKeyPair.pubKey);
- registrationDone(pubKeyString, profileName);
- });
- }
+ generateKeypair().then(async identityKeyPair =>
+ createAccount(identityKeyPair)
+ .then(() => this.saveMnemonic(mnemonic))
+ .then(clearSessionsAndPreKeys)
+ .then(generateKeys)
+ .then(confirmKeys)
+ .then(() => {
+ const pubKeyString = StringView.arrayBufferToHex(
+ identityKeyPair.pubKey
+ );
+ registrationDone(pubKeyString, profileName);
+ })
)
);
},
@@ -138,12 +141,13 @@
log.info('Added mock contact');
},
registerSecondDevice(setProvisioningUrl, confirmNumber, progressCallback) {
- throw new Error('account_manager: registerSecondDevice has not been implemented!');
+ throw new Error(
+ 'account_manager: registerSecondDevice has not been implemented!'
+ );
},
refreshPreKeys() {
// const generateKeys = this.generateKeys.bind(this, 0);
// const registerKeys = this.server.registerKeys.bind(this.server);
-
// return this.queueTask(() =>
// this.server.getMyKeys().then(preKeyCount => {
// window.log.info(`prekey count ${preKeyCount}`);
@@ -312,50 +316,51 @@
password = password.substring(0, password.length - 2);
const registrationId = libsignal.KeyHelper.generateRegistrationId();
- // update our own identity key, which may have changed
- // if we're relinking after a reinstall on the master device
- const pubKeyString = StringView.arrayBufferToHex(
- identityKeyPair.pubKey
- );
+ // update our own identity key, which may have changed
+ // if we're relinking after a reinstall on the master device
+ const pubKeyString = StringView.arrayBufferToHex(identityKeyPair.pubKey);
return Promise.resolve().then(async () => {
- await Promise.all([
- textsecure.storage.remove('identityKey'),
- textsecure.storage.remove('signaling_key'),
- textsecure.storage.remove('password'),
- textsecure.storage.remove('registrationId'),
- textsecure.storage.remove('number_id'),
- textsecure.storage.remove('device_name'),
- textsecure.storage.remove('userAgent'),
- textsecure.storage.remove('read-receipts-setting'),
- ]);
+ await Promise.all([
+ textsecure.storage.remove('identityKey'),
+ textsecure.storage.remove('signaling_key'),
+ textsecure.storage.remove('password'),
+ textsecure.storage.remove('registrationId'),
+ textsecure.storage.remove('number_id'),
+ textsecure.storage.remove('device_name'),
+ textsecure.storage.remove('userAgent'),
+ textsecure.storage.remove('read-receipts-setting'),
+ ]);
- // update our own identity key, which may have changed
- // if we're relinking after a reinstall on the master device
- await textsecure.storage.protocol.saveIdentityWithAttributes(pubKeyString, {
+ // update our own identity key, which may have changed
+ // if we're relinking after a reinstall on the master device
+ await textsecure.storage.protocol.saveIdentityWithAttributes(
+ pubKeyString,
+ {
id: pubKeyString,
publicKey: identityKeyPair.pubKey,
firstUse: true,
timestamp: Date.now(),
verified: textsecure.storage.protocol.VerifiedStatus.VERIFIED,
nonblockingApproval: true,
- });
-
- await textsecure.storage.put('identityKey', identityKeyPair);
- await textsecure.storage.put('signaling_key', signalingKey);
- await textsecure.storage.put('password', password);
- await textsecure.storage.put('registrationId', registrationId);
- if (userAgent) {
- await textsecure.storage.put('userAgent', userAgent);
}
+ );
- await textsecure.storage.put(
- 'read-receipt-setting',
- Boolean(readReceipts)
- );
+ await textsecure.storage.put('identityKey', identityKeyPair);
+ await textsecure.storage.put('signaling_key', signalingKey);
+ await textsecure.storage.put('password', password);
+ await textsecure.storage.put('registrationId', registrationId);
+ if (userAgent) {
+ await textsecure.storage.put('userAgent', userAgent);
+ }
- await textsecure.storage.user.setNumberAndDeviceId(pubKeyString, 1);
- });
+ await textsecure.storage.put(
+ 'read-receipt-setting',
+ Boolean(readReceipts)
+ );
+
+ await textsecure.storage.user.setNumberAndDeviceId(pubKeyString, 1);
+ });
},
clearSessionsAndPreKeys() {
const store = textsecure.storage.protocol;
@@ -462,7 +467,10 @@
window.log.info('registration done');
// Ensure that we always have a conversation for ourself
- const conversation = await ConversationController.getOrCreateAndWait(number, 'private');
+ const conversation = await ConversationController.getOrCreateAndWait(
+ number,
+ 'private'
+ );
await storage.setProfileName(profileName);
diff --git a/libtextsecure/errors.js b/libtextsecure/errors.js
index f98b28b61..51c879afe 100644
--- a/libtextsecure/errors.js
+++ b/libtextsecure/errors.js
@@ -128,17 +128,17 @@
inherit(Error, UnregisteredUserError);
function PoWError(number, error) {
- // eslint-disable-next-line prefer-destructuring
- this.number = number.split('.')[0];
+ // eslint-disable-next-line prefer-destructuring
+ this.number = number.split('.')[0];
- ReplayableError.call(this, {
- name: 'PoWError',
- message: 'Failed to calculate PoW',
- });
+ ReplayableError.call(this, {
+ name: 'PoWError',
+ message: 'Failed to calculate PoW',
+ });
- if (error) {
- appendStack(this, error);
- }
+ if (error) {
+ appendStack(this, error);
+ }
}
inherit(ReplayableError, PoWError);
diff --git a/libtextsecure/http-resources.js b/libtextsecure/http-resources.js
index df98603bd..071d0ad32 100644
--- a/libtextsecure/http-resources.js
+++ b/libtextsecure/http-resources.js
@@ -1,9 +1,9 @@
/* global window, dcodeIO, textsecure */
// eslint-disable-next-line func-names
-(function () {
+(function() {
let server;
- const development = (window.getEnvironment() !== 'production');
+ const development = window.getEnvironment() !== 'production';
const pollTime = development ? 100 : 5000;
function stringToArrayBufferBase64(string) {
@@ -42,9 +42,13 @@
};
};
- const filterIncomingMessages = async function filterIncomingMessages(messages) {
+ const filterIncomingMessages = async function filterIncomingMessages(
+ messages
+ ) {
const incomingHashes = messages.map(m => m.hash);
- const dupHashes = await window.Signal.Data.getSeenMessagesByHashList(incomingHashes);
+ const dupHashes = await window.Signal.Data.getSeenMessagesByHashList(
+ incomingHashes
+ );
const newMessages = messages.filter(m => !dupHashes.includes(m.hash));
const newHashes = newMessages.map(m => ({
expiresAt: m.expiration,
@@ -59,7 +63,7 @@
let { handleRequest } = opts;
if (typeof handleRequest !== 'function') {
handleRequest = request => request.respond(404, 'Not found');
- };
+ }
let connected = false;
const processMessages = async messages => {
@@ -67,8 +71,12 @@
newMessages.forEach(async message => {
const { data } = message;
const dataPlaintext = stringToArrayBufferBase64(data);
- const messageBuf = textsecure.protobuf.WebSocketMessage.decode(dataPlaintext);
- if (messageBuf.type === textsecure.protobuf.WebSocketMessage.Type.REQUEST) {
+ const messageBuf = textsecure.protobuf.WebSocketMessage.decode(
+ dataPlaintext
+ );
+ if (
+ messageBuf.type === textsecure.protobuf.WebSocketMessage.Type.REQUEST
+ ) {
handleRequest(
new IncomingHttpResponse({
verb: messageBuf.request.verb,
@@ -79,7 +87,7 @@
);
}
});
- }
+ };
this.startPolling = async function pollServer(callback) {
try {
@@ -89,11 +97,13 @@
connected = false;
}
callback(connected);
- setTimeout(() => { pollServer(callback); }, pollTime);
+ setTimeout(() => {
+ pollServer(callback);
+ }, pollTime);
};
this.isConnected = function isConnected() {
return connected;
- }
+ };
};
})();
diff --git a/libtextsecure/message_receiver.js b/libtextsecure/message_receiver.js
index d0492ab30..c9325707f 100644
--- a/libtextsecure/message_receiver.js
+++ b/libtextsecure/message_receiver.js
@@ -70,7 +70,7 @@ MessageReceiver.prototype.extend({
this.httpPollingResource = new HttpResource(this.lokiMessageAPI, {
handleRequest: this.handleRequest.bind(this),
});
- this.httpPollingResource.startPolling((connected) => {
+ this.httpPollingResource.startPolling(connected => {
// Emulate receiving an 'empty' websocket messages from the server.
// This is required to update the internal logic that checks
// if we are connected to the server. Without this, for example,
@@ -328,7 +328,8 @@ MessageReceiver.prototype.extend({
envelope.sourceDevice = envelope.sourceDevice || item.sourceDevice;
envelope.serverTimestamp =
envelope.serverTimestamp || item.serverTimestamp;
- envelope.preKeyBundleMessage = envelope.preKeyBundleMessage || item.preKeyBundleMessage;
+ envelope.preKeyBundleMessage =
+ envelope.preKeyBundleMessage || item.preKeyBundleMessage;
const { decrypted } = item;
if (decrypted) {
@@ -381,7 +382,7 @@ MessageReceiver.prototype.extend({
if (envelope.source) {
return `${envelope.source}.${
envelope.sourceDevice
- } ${envelope.timestamp.toNumber()} (${envelope.id})`;
+ } ${envelope.timestamp.toNumber()} (${envelope.id})`;
}
return envelope.id;
@@ -540,7 +541,9 @@ MessageReceiver.prototype.extend({
},
getStatus() {
if (this.httpPollingResource) {
- return this.httpPollingResource.isConnected() ? WebSocket.OPEN : WebSocket.CLOSED;
+ return this.httpPollingResource.isConnected()
+ ? WebSocket.OPEN
+ : WebSocket.CLOSED;
}
if (this.socket) {
return this.socket.readyState;
@@ -616,47 +619,57 @@ MessageReceiver.prototype.extend({
let conversation;
try {
- conversation = await window.ConversationController.getOrCreateAndWait(envelope.source, 'private');
+ conversation = await window.ConversationController.getOrCreateAndWait(
+ envelope.source,
+ 'private'
+ );
} catch (e) {
window.log.info('Error getting conversation: ', envelope.source);
}
const getCurrentSessionBaseKey = async () => {
const record = await sessionCipher.getRecord(address.toString());
- if (!record)
- return null;
+ if (!record) return null;
const openSession = record.getOpenSession();
- if (!openSession)
- return null;
+ if (!openSession) return null;
const { baseKey } = openSession.indexInfo;
- return baseKey
+ return baseKey;
};
const captureActiveSession = async () => {
this.activeSessionBaseKey = await getCurrentSessionBaseKey(sessionCipher);
};
const restoreActiveSession = async () => {
const record = await sessionCipher.getRecord(address.toString());
- if (!record)
- return
+ if (!record) return;
record.archiveCurrentState();
const sessionToRestore = record.sessions[this.activeSessionBaseKey];
record.promoteState(sessionToRestore);
record.updateSessionState(sessionToRestore);
- await textsecure.storage.protocol.storeSession(address.toString(), record.serialize());
+ await textsecure.storage.protocol.storeSession(
+ address.toString(),
+ record.serialize()
+ );
};
- const deleteAllSessionExcept = async (sessionBaseKey) => {
+ const deleteAllSessionExcept = async sessionBaseKey => {
const record = await sessionCipher.getRecord(address.toString());
- if (!record)
- return
+ if (!record) return;
const sessionToKeep = record.sessions[sessionBaseKey];
- record.sessions = {}
+ record.sessions = {};
record.updateSessionState(sessionToKeep);
- await textsecure.storage.protocol.storeSession(address.toString(), record.serialize());
+ await textsecure.storage.protocol.storeSession(
+ address.toString(),
+ record.serialize()
+ );
};
let handleSessionReset;
if (conversation.isSessionResetOngoing()) {
- handleSessionReset = async (result) => {
- const currentSessionBaseKey = await getCurrentSessionBaseKey(sessionCipher);
- if (this.activeSessionBaseKey && currentSessionBaseKey !== this.activeSessionBaseKey) {
+ handleSessionReset = async result => {
+ const currentSessionBaseKey = await getCurrentSessionBaseKey(
+ sessionCipher
+ );
+ if (
+ this.activeSessionBaseKey &&
+ currentSessionBaseKey !== this.activeSessionBaseKey
+ ) {
if (conversation.isSessionResetReceived()) {
await restoreActiveSession();
} else {
@@ -670,7 +683,7 @@ MessageReceiver.prototype.extend({
return result;
};
} else {
- handleSessionReset = async (result) => result;
+ handleSessionReset = async result => result;
}
switch (envelope.type) {
@@ -683,18 +696,17 @@ MessageReceiver.prototype.extend({
break;
case textsecure.protobuf.Envelope.Type.FRIEND_REQUEST: {
window.log.info('friend-request message from ', envelope.source);
- promise = fallBackSessionCipher.decrypt(ciphertext.toArrayBuffer())
+ promise = fallBackSessionCipher
+ .decrypt(ciphertext.toArrayBuffer())
.then(this.unpad);
break;
}
case textsecure.protobuf.Envelope.Type.PREKEY_BUNDLE:
window.log.info('prekey message from', this.getEnvelopeId(envelope));
promise = captureActiveSession(sessionCipher)
- .then(() => this.decryptPreKeyWhisperMessage(
- ciphertext,
- sessionCipher,
- address
- ))
+ .then(() =>
+ this.decryptPreKeyWhisperMessage(ciphertext, sessionCipher, address)
+ )
.then(handleSessionReset);
break;
case textsecure.protobuf.Envelope.Type.UNIDENTIFIED_SENDER:
@@ -840,7 +852,7 @@ MessageReceiver.prototype.extend({
const isMe = envelope.source === textsecure.storage.user.getNumber();
const isLeavingGroup = Boolean(
message.group &&
- message.group.type === textsecure.protobuf.GroupContext.Type.QUIT
+ message.group.type === textsecure.protobuf.GroupContext.Type.QUIT
);
if (groupId && isBlocked && !(isMe && isLeavingGroup)) {
@@ -883,7 +895,7 @@ MessageReceiver.prototype.extend({
const conversation = window.ConversationController.get(envelope.source);
const isLeavingGroup = Boolean(
message.group &&
- message.group.type === textsecure.protobuf.GroupContext.Type.QUIT
+ message.group.type === textsecure.protobuf.GroupContext.Type.QUIT
);
const friendRequest =
envelope.type === textsecure.protobuf.Envelope.Type.FRIEND_REQUEST;
@@ -900,10 +912,8 @@ MessageReceiver.prototype.extend({
}
if (friendRequest && isMe) {
- window.log.info(
- 'refusing to add a friend request to ourselves'
- );
- throw new Error('Cannot add a friend request for ourselves!')
+ window.log.info('refusing to add a friend request to ourselves');
+ throw new Error('Cannot add a friend request for ourselves!');
}
if (groupId && isBlocked && !(isMe && isLeavingGroup)) {
@@ -1227,10 +1237,7 @@ MessageReceiver.prototype.extend({
preKeyBundleMessage.signature,
].map(k => dcodeIO.ByteBuffer.wrap(k).toArrayBuffer());
- const {
- preKeyId,
- signedKeyId,
- } = preKeyBundleMessage;
+ const { preKeyId, signedKeyId } = preKeyBundleMessage;
if (pubKey !== StringView.arrayBufferToHex(identityKey)) {
throw new Error(
@@ -1312,7 +1319,13 @@ MessageReceiver.prototype.extend({
if (preKey === undefined || signedPreKey === undefined) {
return;
}
- const device = { identityKey, deviceId, preKey, signedPreKey, registrationId: 0 }
+ const device = {
+ identityKey,
+ deviceId,
+ preKey,
+ signedPreKey,
+ registrationId: 0,
+ };
const builder = new libsignal.SessionBuilder(
textsecure.storage.protocol,
address
@@ -1513,7 +1526,9 @@ textsecure.MessageReceiver = function MessageReceiverWrapper(
);
this.getStatus = messageReceiver.getStatus.bind(messageReceiver);
this.close = messageReceiver.close.bind(messageReceiver);
- this.savePreKeyBundleMessage = messageReceiver.savePreKeyBundleMessage.bind(messageReceiver);
+ this.savePreKeyBundleMessage = messageReceiver.savePreKeyBundleMessage.bind(
+ messageReceiver
+ );
messageReceiver.connect();
};
diff --git a/libtextsecure/outgoing_message.js b/libtextsecure/outgoing_message.js
index 4a33d9a10..0e7e8b242 100644
--- a/libtextsecure/outgoing_message.js
+++ b/libtextsecure/outgoing_message.js
@@ -119,22 +119,24 @@ OutgoingMessage.prototype = {
if (device.registrationId === 0) {
window.log.info('device registrationId 0!');
}
- return builder.processPreKey(device).then(async () => {
- // TODO: only remove the keys that were used above!
- await window.libloki.storage.removeContactPreKeyBundle(number);
- return true;
- }
- ).catch(error => {
- if (error.message === 'Identity key changed') {
- // eslint-disable-next-line no-param-reassign
- error.timestamp = this.timestamp;
- // eslint-disable-next-line no-param-reassign
- error.originalMessage = this.message.toArrayBuffer();
- // eslint-disable-next-line no-param-reassign
- error.identityKey = device.identityKey;
- }
- throw error;
- });
+ return builder
+ .processPreKey(device)
+ .then(async () => {
+ // TODO: only remove the keys that were used above!
+ await window.libloki.storage.removeContactPreKeyBundle(number);
+ return true;
+ })
+ .catch(error => {
+ if (error.message === 'Identity key changed') {
+ // eslint-disable-next-line no-param-reassign
+ error.timestamp = this.timestamp;
+ // eslint-disable-next-line no-param-reassign
+ error.originalMessage = this.message.toArrayBuffer();
+ // eslint-disable-next-line no-param-reassign
+ error.identityKey = device.identityKey;
+ }
+ throw error;
+ });
}
return false;
@@ -184,7 +186,12 @@ OutgoingMessage.prototype = {
async transmitMessage(number, data, timestamp, ttl = 24 * 60 * 60) {
const pubKey = number;
try {
- const result = await this.lokiMessageAPI.sendMessage(pubKey, data, timestamp, ttl);
+ const result = await this.lokiMessageAPI.sendMessage(
+ pubKey,
+ data,
+ timestamp,
+ ttl
+ );
return result;
} catch (e) {
if (e.name === 'HTTPError' && (e.code !== 409 && e.code !== 410)) {
@@ -288,17 +295,24 @@ OutgoingMessage.prototype = {
const address = new libsignal.SignalProtocolAddress(number, deviceId);
const ourKey = textsecure.storage.user.getNumber();
const options = {};
- const fallBackCipher = new libloki.crypto.FallBackSessionCipher(address);
+ const fallBackCipher = new libloki.crypto.FallBackSessionCipher(
+ address
+ );
// Check if we need to attach the preKeys
let sessionCipher;
const isFriendRequest = this.messageType === 'friend-request';
- const flags = this.message.dataMessage ? this.message.dataMessage.get_flags() : null;
- const isEndSession = flags === textsecure.protobuf.DataMessage.Flags.END_SESSION;
+ const flags = this.message.dataMessage
+ ? this.message.dataMessage.get_flags()
+ : null;
+ const isEndSession =
+ flags === textsecure.protobuf.DataMessage.Flags.END_SESSION;
if (isFriendRequest || isEndSession) {
// Encrypt them with the fallback
const pkb = await libloki.storage.getPreKeyBundleForContact(number);
- const preKeyBundleMessage = new textsecure.protobuf.PreKeyBundleMessage(pkb);
+ const preKeyBundleMessage = new textsecure.protobuf.PreKeyBundleMessage(
+ pkb
+ );
this.message.preKeyBundleMessage = preKeyBundleMessage;
window.log.info('attaching prekeys to outgoing message');
}
@@ -325,10 +339,7 @@ OutgoingMessage.prototype = {
if (!this.fallBackEncryption) {
// eslint-disable-next-line no-param-reassign
ciphertext.body = new Uint8Array(
- dcodeIO.ByteBuffer.wrap(
- ciphertext.body,
- 'binary'
- ).toArrayBuffer()
+ dcodeIO.ByteBuffer.wrap(ciphertext.body, 'binary').toArrayBuffer()
);
}
return {
@@ -345,7 +356,10 @@ OutgoingMessage.prototype = {
const outgoingObject = outgoingObjects[0];
const socketMessage = await this.wrapInWebsocketMessage(outgoingObject);
let ttl;
- if (outgoingObject.type === textsecure.protobuf.Envelope.Type.FRIEND_REQUEST) {
+ if (
+ outgoingObject.type ===
+ textsecure.protobuf.Envelope.Type.FRIEND_REQUEST
+ ) {
ttl = 4 * 24 * 60 * 60; // 4 days for friend request message
} else {
const hours = window.getMessageTTL() || 24; // 1 day default for any other message
diff --git a/libtextsecure/stringview.js b/libtextsecure/stringview.js
index 266ddc10d..75b00aefd 100644
--- a/libtextsecure/stringview.js
+++ b/libtextsecure/stringview.js
@@ -1,6 +1,6 @@
/* global window, StringView */
-/* eslint-disable no-bitwise, no-nested-ternary */
+/* eslint-disable no-bitwise, no-nested-ternary, */
// eslint-disable-next-line func-names
(function() {
@@ -102,16 +102,14 @@
arrayBufferToHex(aArrayBuffer) {
return Array.prototype.map
.call(new Uint8Array(aArrayBuffer), x =>
- ('00' + x.toString(16)).slice(-2)
+ `00${x.toString(16)}`.slice(-2)
)
.join('');
},
hexToArrayBuffer(aString) {
return new Uint8Array(
- aString.match(/[\da-f]{2}/gi).map(function(h) {
- return parseInt(h, 16);
- })
+ aString.match(/[\da-f]{2}/gi).map(h => parseInt(h, 16))
).buffer;
},
};
diff --git a/main.js b/main.js
index 9bf782da2..b24402768 100644
--- a/main.js
+++ b/main.js
@@ -453,11 +453,11 @@ function showPasswordWindow() {
captureClicks(passwordWindow);
passwordWindow.on('close', e => {
- // If the application is terminating, just do the default
- if (
+ // If the application is terminating, just do the default
+ if (
config.environment === 'test' ||
config.environment === 'test-lib' ||
- (windowState.shouldQuit())
+ windowState.shouldQuit()
) {
return;
}
@@ -965,7 +965,8 @@ ipc.on('update-tray-icon', (event, unreadCount) => {
// Password screen related IPC calls
ipc.on('password-window-login', async (event, passPhrase) => {
- const sendResponse = (e) => event.sender.send('password-window-login-response', e);
+ const sendResponse = e =>
+ event.sender.send('password-window-login-response', e);
try {
await showMainWindow(passPhrase);
@@ -981,7 +982,7 @@ ipc.on('password-window-login', async (event, passPhrase) => {
});
ipc.on('set-password', async (event, passPhrase, oldPhrase) => {
- const sendResponse = (e) => event.sender.send('set-password-response', e);
+ const sendResponse = e => event.sender.send('set-password-response', e);
try {
// Check if the hash we have stored matches the hash of the old passphrase.
@@ -989,7 +990,10 @@ ipc.on('set-password', async (event, passPhrase, oldPhrase) => {
const hashMatches = oldPhrase && passwordUtil.matchesHash(oldPhrase, hash);
if (hash && !hashMatches) {
const incorrectOldPassword = locale.messages.invalidOldPassword.message;
- sendResponse(incorrectOldPassword || 'Failed to set password: Old password provided is invalid');
+ sendResponse(
+ incorrectOldPassword ||
+ 'Failed to set password: Old password provided is invalid'
+ );
return;
}
diff --git a/metrics_app.js b/metrics_app.js
index d934787f7..2f9c0f18d 100644
--- a/metrics_app.js
+++ b/metrics_app.js
@@ -20,42 +20,48 @@ const mimeType = {
'.pdf': 'application/pdf',
'.doc': 'application/msword',
'.eot': 'appliaction/vnd.ms-fontobject',
- '.ttf': 'aplication/font-sfnt'
+ '.ttf': 'aplication/font-sfnt',
};
-http.createServer(function (req, res) {
-// console.log(`${req.method} ${req.url}`);
- // parse URL
- const parsedUrl = url.parse(req.url);
- // extract URL path
- // Avoid https://en.wikipedia.org/wiki/Directory_traversal_attack
- // e.g curl --path-as-is http://localhost:9000/../fileInDanger.txt
- // by limiting the path to current directory only
- const sanitizePath = path.normalize(parsedUrl.pathname).replace(/^(\.\.[\/\\])+/, '');
- let pathname = path.join(__dirname, sanitizePath);
- fs.exists(pathname, function (exist) {
- if(!exist) {
- // if the file is not found, return 404
- res.statusCode = 404;
- res.end(`File ${pathname} not found!`);
- return;
- }
- // if is a directory, then look for index.html
- if (fs.statSync(pathname).isDirectory()) {
- pathname += '/index.html';
- }
- // read file from file system
- fs.readFile(pathname, function(err, data){
- if(err){
- res.statusCode = 500;
- res.end(`Error getting the file: ${err}.`);
- } else {
- // based on the URL path, extract the file extention. e.g. .js, .doc, ...
- const ext = path.parse(pathname).ext;
- // if the file is found, set Content-type and send data
- res.setHeader('Content-type', mimeType[ext] || 'text/plain' );
- res.end(data);
+http
+ .createServer((req, res) => {
+ // console.log(`${req.method} ${req.url}`);
+ // parse URL
+ const parsedUrl = url.parse(req.url);
+ // extract URL path
+ // Avoid https://en.wikipedia.org/wiki/Directory_traversal_attack
+ // e.g curl --path-as-is http://localhost:9000/../fileInDanger.txt
+ // by limiting the path to current directory only
+ const sanitizePath = path
+ .normalize(parsedUrl.pathname)
+ .replace(/^(\.\.[/\\])+/, '');
+ let pathname = path.join(__dirname, sanitizePath);
+ fs.exists(pathname, exist => {
+ if (!exist) {
+ // if the file is not found, return 404
+ res.statusCode = 404;
+ res.end(`File ${pathname} not found!`);
+ return;
}
+ // if is a directory, then look for index.html
+ if (fs.statSync(pathname).isDirectory()) {
+ pathname += '/index.html';
+ }
+ // read file from file system
+ fs.readFile(pathname, (err, data) => {
+ if (err) {
+ res.statusCode = 500;
+ res.end(`Error getting the file: ${err}.`);
+ } else {
+ // based on the URL path, extract the file extention. e.g. .js, .doc, ...
+ const { ext } = path.parse(pathname);
+ // if the file is found, set Content-type and send data
+ res.setHeader('Content-type', mimeType[ext] || 'text/plain');
+ res.end(data);
+ }
+ });
});
- });
-}).listen(parseInt(port), hostname);
-console.log(`metrics running on http://${hostname}:${port}/metrics.html`);
\ No newline at end of file
+ })
+ .listen(parseInt(port, 10), hostname);
+
+// eslint-disable-next-line
+console.log(`metrics running on http://${hostname}:${port}/metrics.html`);
diff --git a/password_preload.js b/password_preload.js
index 1a857a58e..e1f076016 100644
--- a/password_preload.js
+++ b/password_preload.js
@@ -26,14 +26,15 @@ window.getAppInstance = () => config.appInstance;
window.passwordUtil = require('./app/password_util');
-window.onLogin = (passPhrase) => new Promise((resolve, reject) => {
- ipcRenderer.once('password-window-login-response', (event, error) => {
- if (error) {
- return reject(error);
- }
- return resolve();
+window.onLogin = passPhrase =>
+ new Promise((resolve, reject) => {
+ ipcRenderer.once('password-window-login-response', (event, error) => {
+ if (error) {
+ return reject(error);
+ }
+ return resolve();
+ });
+ ipcRenderer.send('password-window-login', passPhrase);
});
- ipcRenderer.send('password-window-login', passPhrase);
-});
require('./js/logging');
diff --git a/preload.js b/preload.js
index 7e4ecf73f..11a951517 100644
--- a/preload.js
+++ b/preload.js
@@ -50,16 +50,17 @@ const localeMessages = ipc.sendSync('locale-data');
window.setBadgeCount = count => ipc.send('set-badge-count', count);
// Set the password for the database
-window.setPassword = (passPhrase, oldPhrase) => new Promise((resolve, reject) => {
- ipc.once('set-password-response', (event, error) => {
- if (error) {
- return reject(error);
- }
- Whisper.events.trigger('password-updated');
- return resolve();
+window.setPassword = (passPhrase, oldPhrase) =>
+ new Promise((resolve, reject) => {
+ ipc.once('set-password-response', (event, error) => {
+ if (error) {
+ return reject(error);
+ }
+ Whisper.events.trigger('password-updated');
+ return resolve();
+ });
+ ipc.send('set-password', passPhrase, oldPhrase);
});
- ipc.send('set-password', passPhrase, oldPhrase);
-});
// We never do these in our code, so we'll prevent it everywhere
window.open = () => null;
@@ -107,7 +108,10 @@ ipc.on('on-unblock-number', (event, number) => {
const conversation = window.ConversationController.get(number);
conversation.unblock();
} catch (e) {
- window.log.info('IPC on unblock: failed to fetch conversation for number: ', number);
+ window.log.info(
+ 'IPC on unblock: failed to fetch conversation for number: ',
+ number
+ );
}
}
});
@@ -155,7 +159,7 @@ installGetter('hide-menu-bar', 'getHideMenuBar');
installSetter('hide-menu-bar', 'setHideMenuBar');
// Get the message TTL setting
-window.getMessageTTL = () => window.storage.get('message-ttl', 24)
+window.getMessageTTL = () => window.storage.get('message-ttl', 24);
installGetter('message-ttl', 'getMessageTTL');
installSetter('message-ttl', 'setMessageTTL');
@@ -289,7 +293,7 @@ window.callWorker = (fnName, ...args) => utilWorker.callWorker(fnName, ...args);
// Linux seems to periodically let the event loop stop, so this is a global workaround
setInterval(() => {
- window.nodeSetImmediate(() => { });
+ window.nodeSetImmediate(() => {});
}, 1000);
const { autoOrientImage } = require('./js/modules/auto_orient_image');
diff --git a/settings_preload.js b/settings_preload.js
index d772fec4e..69704d53e 100644
--- a/settings_preload.js
+++ b/settings_preload.js
@@ -29,7 +29,8 @@ window.closeSettings = () => ipcRenderer.send('close-settings');
// Events for updating block number states across different windows.
// In this case we need these to update the blocked number
// collection on the main window from the settings window.
-window.onUnblockNumber = number => ipcRenderer.send('on-unblock-number', number);
+window.onUnblockNumber = number =>
+ ipcRenderer.send('on-unblock-number', number);
window.getDeviceName = makeGetter('device-name');
diff --git a/stylesheets/_conversation.scss b/stylesheets/_conversation.scss
index 8d01b517d..e9797db1a 100644
--- a/stylesheets/_conversation.scss
+++ b/stylesheets/_conversation.scss
@@ -382,7 +382,8 @@
color: white;
outline: none;
- &:hover, &:disabled {
+ &:hover,
+ &:disabled {
background-color: $color-loki-green-dark;
border-color: $color-loki-green-dark;
}
diff --git a/stylesheets/_global.scss b/stylesheets/_global.scss
index 51240b787..c98d6451d 100644
--- a/stylesheets/_global.scss
+++ b/stylesheets/_global.scss
@@ -925,7 +925,8 @@ textarea {
font-size: 14px;
}
- #generate-mnemonic, #copy-mnemonic {
+ #generate-mnemonic,
+ #copy-mnemonic {
background: $grey;
}
@@ -936,7 +937,7 @@ textarea {
line-height: 2.8;
background: white;
overflow: hidden;
- border-radius: .25em;
+ border-radius: 0.25em;
select {
// Reset select
@@ -954,7 +955,7 @@ textarea {
width: 100%;
height: 100%;
margin: 0;
- padding: 0 0 0 .5em;
+ padding: 0 0 0 0.5em;
color: black;
cursor: pointer;
@@ -972,9 +973,9 @@ textarea {
padding: 0 1em;
background: $color-dark-85;
pointer-events: none;
- -webkit-transition: .25s all ease;
- -o-transition: .25s all ease;
- transition: .25s all ease;
+ -webkit-transition: 0.25s all ease;
+ -o-transition: 0.25s all ease;
+ transition: 0.25s all ease;
}
}
diff --git a/stylesheets/_index.scss b/stylesheets/_index.scss
index c7dc074e4..b5176e98e 100644
--- a/stylesheets/_index.scss
+++ b/stylesheets/_index.scss
@@ -92,7 +92,8 @@
user-select: none;
}
-h4.section-toggle, .section-toggle h4 {
+h4.section-toggle,
+.section-toggle h4 {
margin-top: 1px;
margin-bottom: 1px;
}
@@ -106,10 +107,10 @@ h4.section-toggle, .section-toggle h4 {
height: 3em;
line-height: 3;
text-align: center;
- -webkit-transition: all .35s;
- -o-transition: all .35s;
- transition: all .35s;
- content: "+";
+ -webkit-transition: all 0.35s;
+ -o-transition: all 0.35s;
+ transition: all 0.35s;
+ content: '+';
}
.section-toggle-visible::after {
@@ -123,7 +124,7 @@ h4.section-toggle, .section-toggle h4 {
align-items: center;
h4 {
- flex: 1,
+ flex: 1;
}
.section-conversations-unread-counter {
diff --git a/stylesheets/_modules.scss b/stylesheets/_modules.scss
index f4145b75f..4177d7cdf 100644
--- a/stylesheets/_modules.scss
+++ b/stylesheets/_modules.scss
@@ -974,7 +974,7 @@
}
.module-message-friend-request__container {
- flex: 1,
+ flex: 1;
}
.module-friend-request__buttonContainer {
@@ -994,7 +994,7 @@
background-color: transparent;
border: 0;
overflow: hidden;
- outline:none;
+ outline: none;
color: $color-gray-90;
}
@@ -1028,7 +1028,6 @@
color: $color-white-08;
}
-
// Module: Contact Detail
.module-contact-detail {
@@ -2156,9 +2155,9 @@
text-align: center;
&:after {
- -webkit-transition: all .35s;
- -o-transition: all .35s;
- transition: all .35s;
+ -webkit-transition: all 0.35s;
+ -o-transition: all 0.35s;
+ transition: all 0.35s;
width: 3em;
line-height: 3em;
height: 3em;
@@ -2171,7 +2170,6 @@
transform: rotate(180deg);
}
-
.module-main-header__app-name {
font-size: 16px;
line-height: 24px;
diff --git a/stylesheets/_password.scss b/stylesheets/_password.scss
index 23c7dd372..10f9b1103 100644
--- a/stylesheets/_password.scss
+++ b/stylesheets/_password.scss
@@ -26,4 +26,4 @@
font-size: 16px;
margin-top: 1em;
}
-}
\ No newline at end of file
+}
diff --git a/stylesheets/_settings.scss b/stylesheets/_settings.scss
index f8d55493a..aabfbd220 100644
--- a/stylesheets/_settings.scss
+++ b/stylesheets/_settings.scss
@@ -67,12 +67,12 @@
}
.wordwrap {
- white-space: pre-wrap; /* CSS3 */
+ white-space: pre-wrap; /* CSS3 */
white-space: -moz-pre-wrap; /* Firefox */
- white-space: -pre-wrap; /* Opera <7 */
- white-space: -o-pre-wrap; /* Opera 7 */
- word-wrap: break-word; /* IE */
- }
+ white-space: -pre-wrap; /* Opera <7 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ word-wrap: break-word; /* IE */
+ }
.restart-needed {
margin-top: 1em;
@@ -103,7 +103,11 @@
color: red;
}
- input { flex: 1; }
- label { padding-left: 12px; }
+ input {
+ flex: 1;
+ }
+ label {
+ padding-left: 12px;
+ }
}
}
diff --git a/stylesheets/_variables.scss b/stylesheets/_variables.scss
index 2d35849df..2f589ae87 100644
--- a/stylesheets/_variables.scss
+++ b/stylesheets/_variables.scss
@@ -31,7 +31,11 @@ $color-loki-dark-gray: #323232;
$color-loki-extra-dark-gray: #101010;
$color-loki-green: #3bd110;
$color-loki-green-dark: #32b10e;
-$color-loki-green-gradient: linear-gradient(to right, rgb(120, 190, 32) 0%, rgb(0, 133, 34) 100%);
+$color-loki-green-gradient: linear-gradient(
+ to right,
+ rgb(120, 190, 32) 0%,
+ rgb(0, 133, 34) 100%
+);
// New colors
diff --git a/test/app/password_util_test.js b/test/app/password_util_test.js
index 06293261e..700b99c74 100644
--- a/test/app/password_util_test.js
+++ b/test/app/password_util_test.js
@@ -49,28 +49,22 @@ describe('Password Util', () => {
});
it('should return an error if password is not a string', () => {
- const invalid = [
- 0,
- 123456,
- [],
- {},
- null,
- undefined,
- ];
+ const invalid = [0, 123456, [], {}, null, undefined];
invalid.forEach(pass => {
- assert.strictEqual(passwordUtil.validatePassword(pass), 'Password must be a string');
+ assert.strictEqual(
+ passwordUtil.validatePassword(pass),
+ 'Password must be a string'
+ );
});
});
- it('should return an error if password is not between 6 and 50 characters',() => {
- const invalid = [
- 'a',
- 'abcde',
- '#'.repeat(51),
- '#'.repeat(100),
- ];
+ it('should return an error if password is not between 6 and 50 characters', () => {
+ const invalid = ['a', 'abcde', '#'.repeat(51), '#'.repeat(100)];
invalid.forEach(pass => {
- assert.strictEqual(passwordUtil.validatePassword(pass), 'Password must be between 6 and 50 characters long');
+ assert.strictEqual(
+ passwordUtil.validatePassword(pass),
+ 'Password must be between 6 and 50 characters long'
+ );
});
});
@@ -87,7 +81,10 @@ describe('Password Util', () => {
'<@ȦƘΉوۉaҋ<',
];
invalid.forEach(pass => {
- assert.strictEqual(passwordUtil.validatePassword(pass), 'Password must only contain letters, numbers and symbols');
+ assert.strictEqual(
+ passwordUtil.validatePassword(pass),
+ 'Password must only contain letters, numbers and symbols'
+ );
});
});
});
diff --git a/test/backup_test.js b/test/backup_test.js
index 16b52721d..2ac94cea9 100644
--- a/test/backup_test.js
+++ b/test/backup_test.js
@@ -366,12 +366,12 @@ describe('Backup', () => {
(message.contact || []).map(async contact => {
return contact && contact.avatar && contact.avatar.avatar
? Object.assign({}, contact, {
- avatar: Object.assign({}, contact.avatar, {
- avatar: await wrappedLoadAttachment(
- contact.avatar.avatar
- ),
- }),
- })
+ avatar: Object.assign({}, contact.avatar, {
+ avatar: await wrappedLoadAttachment(
+ contact.avatar.avatar
+ ),
+ }),
+ })
: contact;
})
),
diff --git a/test/blocked_number_controller_test.js b/test/blocked_number_controller_test.js
index 8df157d31..1c904065f 100644
--- a/test/blocked_number_controller_test.js
+++ b/test/blocked_number_controller_test.js
@@ -3,7 +3,6 @@
'use strict';
describe('Blocked Number Controller', () => {
-
beforeEach(async () => {
// Purge everything manually
const numbers = storage.getBlockedNumbers();
@@ -43,18 +42,25 @@ describe('Blocked Number Controller', () => {
storage.addBlockedNumber('1');
BlockedNumberController.refresh();
- assert.isNotEmpty(window.getBlockedNumbers().find(m => m.get('number') === '1'));
+ assert.isNotEmpty(
+ window.getBlockedNumbers().find(m => m.get('number') === '1')
+ );
storage.removeBlockedNumber('1');
storage.addBlockedNumber('2');
BlockedNumberController.refresh();
- assert.isNotEmpty(window.getBlockedNumbers().find(m => m.get('number') === '2'));
+ assert.isNotEmpty(
+ window.getBlockedNumbers().find(m => m.get('number') === '2')
+ );
});
it('throws if storage is invalid', () => {
const _storage = window.storage;
window.storage = null;
- assert.throws(() => BlockedNumberController.refresh(), 'BlockedNumberController: Could not load blocked numbers');
+ assert.throws(
+ () => BlockedNumberController.refresh(),
+ 'BlockedNumberController: Could not load blocked numbers'
+ );
window.storage = _storage;
});
});
@@ -71,7 +77,7 @@ describe('Blocked Number Controller', () => {
const numbers = window.getBlockedNumbers().models;
assert.lengthOf(numbers, 1);
- assert.strictEqual('1', numbers[0].get('number'))
+ assert.strictEqual('1', numbers[0].get('number'));
assert.deepEqual(['1'], storage.getBlockedNumbers());
});
diff --git a/test/models/conversations_test.js b/test/models/conversations_test.js
index de8798a97..51bb11aab 100644
--- a/test/models/conversations_test.js
+++ b/test/models/conversations_test.js
@@ -29,7 +29,10 @@ describe('ConversationCollection', () => {
});
describe('Conversation', () => {
- const attributes = { type: 'private', id: '051d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab' };
+ const attributes = {
+ type: 'private',
+ id: '051d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab',
+ };
before(async () => {
const convo = new Whisper.ConversationCollection().add(attributes);
await window.Signal.Data.saveConversation(convo.attributes, {
@@ -50,7 +53,9 @@ describe('Conversation', () => {
after(clearDatabase);
it('sorts its contacts in an intl-friendly way', () => {
- const convo = new Whisper.Conversation({ id: '051d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab' });
+ const convo = new Whisper.Conversation({
+ id: '051d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab',
+ });
convo.contactCollection.add(
new Whisper.Conversation({
name: 'C',
@@ -100,7 +105,10 @@ describe('Conversation', () => {
it('has a title', () => {
const convos = new Whisper.ConversationCollection();
let convo = convos.add(attributes);
- assert.equal(convo.getTitle(), '051d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab');
+ assert.equal(
+ convo.getTitle(),
+ '051d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab'
+ );
convo = convos.add({ type: '' });
assert.equal(convo.getTitle(), 'Unknown group');
@@ -112,7 +120,10 @@ describe('Conversation', () => {
it('returns the number', () => {
const convos = new Whisper.ConversationCollection();
let convo = convos.add(attributes);
- assert.equal(convo.getNumber(), '051d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab');
+ assert.equal(
+ convo.getNumber(),
+ '051d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab'
+ );
convo = convos.add({ type: '' });
assert.equal(convo.getNumber(), '');
@@ -127,17 +138,39 @@ describe('Conversation', () => {
describe('when set to private', () => {
it('correctly validates hex numbers', () => {
- const regularId = new Whisper.Conversation({ type: 'private', id: '051d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab' });
- const invalidId = new Whisper.Conversation({ type: 'private', id: 'j71d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab' });
+ const regularId = new Whisper.Conversation({
+ type: 'private',
+ id:
+ '051d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab',
+ });
+ const invalidId = new Whisper.Conversation({
+ type: 'private',
+ id:
+ 'j71d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab',
+ });
assert.ok(regularId.isValid());
assert.notOk(invalidId.isValid());
});
it('correctly validates length', () => {
- const regularId33 = new Whisper.Conversation({ type: 'private', id: '051d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab' });
- const regularId32 = new Whisper.Conversation({ type: 'private', id: '1d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab' });
- const shortId = new Whisper.Conversation({ type: 'private', id: '771d11d' });
- const longId = new Whisper.Conversation({ type: 'private', id: '771d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94abaa' });
+ const regularId33 = new Whisper.Conversation({
+ type: 'private',
+ id:
+ '051d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab',
+ });
+ const regularId32 = new Whisper.Conversation({
+ type: 'private',
+ id: '1d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab',
+ });
+ const shortId = new Whisper.Conversation({
+ type: 'private',
+ id: '771d11d',
+ });
+ const longId = new Whisper.Conversation({
+ type: 'private',
+ id:
+ '771d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94abaa',
+ });
assert.ok(regularId33.isValid());
assert.ok(regularId32.isValid());
assert.notOk(shortId.isValid());
@@ -152,7 +185,8 @@ describe('Conversation', () => {
beforeEach(async () => {
convo = new Whisper.ConversationCollection().add({
- id: '771d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab',
+ id:
+ '771d11d01e56d9bfc3d74115c33225a632321b509ac17a13fdeac71165d09b94ab',
type: 'private',
name: 'John Doe',
});
@@ -169,7 +203,10 @@ describe('Conversation', () => {
const collection = new Whisper.ConversationCollection();
await collection.search(query);
- assert.isDefined(collection.get(convo.id), `no result for "${query}"`);
+ assert.isDefined(
+ collection.get(convo.id),
+ `no result for "${query}"`
+ );
})
);
}
diff --git a/test/models/profile_test.js b/test/models/profile_test.js
index b30d8dfc8..11112f62c 100644
--- a/test/models/profile_test.js
+++ b/test/models/profile_test.js
@@ -15,7 +15,7 @@ describe('Profile', () => {
describe('getLocalProfile', () => {
it('returns the local profile', async () => {
const values = [null, 'hello', { a: 'b' }];
- for(let i = 0; i < values.length; i += 1) {
+ for (let i = 0; i < values.length; i += 1) {
await storage.put(PROFILE_ID, values[i]);
assert.strictEqual(values[i], storage.getLocalProfile());
}
@@ -25,7 +25,7 @@ describe('Profile', () => {
describe('saveLocalProfile', () => {
it('saves a profile', async () => {
const values = [null, 'hello', { a: 'b' }];
- for(let i = 0; i < values.length; i += 1) {
+ for (let i = 0; i < values.length; i += 1) {
await storage.saveLocalProfile(values[i]);
assert.strictEqual(values[i], storage.get(PROFILE_ID));
}
@@ -44,20 +44,24 @@ describe('Profile', () => {
describe('setProfileName', () => {
it('throws if a name is not a string', async () => {
- const values = [0, { a: 'b'}, [1, 2]];
- for(let i = 0; i < values.length; i += 1) {
+ const values = [0, { a: 'b' }, [1, 2]];
+ for (let i = 0; i < values.length; i += 1) {
try {
await storage.setProfileName(values[i]);
- assert.fail(`setProfileName did not throw an error for ${typeof values[i]}`);
+ assert.fail(
+ `setProfileName did not throw an error for ${typeof values[i]}`
+ );
} catch (e) {
- assert.throws(() => { throw e; }, 'Name must be a string!');
+ assert.throws(() => {
+ throw e;
+ }, 'Name must be a string!');
}
}
});
it('does not throw if we pass a string or null', async () => {
const values = [null, '1'];
- for(let i = 0; i < values.length; i += 1) {
+ for (let i = 0; i < values.length; i += 1) {
try {
await storage.setProfileName(values[i]);
} catch (e) {
diff --git a/test/modules/types/message_test.js b/test/modules/types/message_test.js
index 98af1e77f..40f258570 100644
--- a/test/modules/types/message_test.js
+++ b/test/modules/types/message_test.js
@@ -23,7 +23,7 @@ describe('Message', () => {
body: 'Imagine there is no heaven…',
schemaVersion: 2,
};
- const writeExistingAttachmentData = () => { };
+ const writeExistingAttachmentData = () => {};
const actual = await Message.createAttachmentDataWriter({
writeExistingAttachmentData,
@@ -43,7 +43,7 @@ describe('Message', () => {
schemaVersion: 4,
attachments: [],
};
- const writeExistingAttachmentData = () => { };
+ const writeExistingAttachmentData = () => {};
const actual = await Message.createAttachmentDataWriter({
writeExistingAttachmentData,
@@ -432,7 +432,7 @@ describe('Message', () => {
describe('_withSchemaVersion', () => {
it('should require a version number', () => {
- const toVersionX = () => { };
+ const toVersionX = () => {};
assert.throws(
() =>
Message._withSchemaVersion({ schemaVersion: toVersionX, upgrade: 2 }),
diff --git a/test/storage_test.js b/test/storage_test.js
index 49370e298..ac3bc142f 100644
--- a/test/storage_test.js
+++ b/test/storage_test.js
@@ -19,7 +19,8 @@ describe('SignalProtocolStore', () => {
privKey: libsignal.crypto.getRandomBytes(32),
};
- storage.put('registrationId', 1337)
+ storage
+ .put('registrationId', 1337)
.then(() => storage.put('identityKey', identityKey))
.then(() => storage.fetch())
.then(done, done);
diff --git a/test/views/inbox_view_test.js b/test/views/inbox_view_test.js
index 5bcd0445c..1c1147dd8 100644
--- a/test/views/inbox_view_test.js
+++ b/test/views/inbox_view_test.js
@@ -20,7 +20,7 @@ describe('InboxView', () => {
inboxView = new Whisper.InboxView({
model: {},
window,
- initialLoadComplete() { },
+ initialLoadComplete() {},
}).render();
conversation = new Whisper.Conversation({
diff --git a/test/views/network_status_view_test.js b/test/views/network_status_view_test.js
index 29c56112e..a3daa7883 100644
--- a/test/views/network_status_view_test.js
+++ b/test/views/network_status_view_test.js
@@ -174,7 +174,7 @@ describe('NetworkStatusView', () => {
/Attempting reconnect/
);
});
- it('should be reset by changing the socketStatus to CONNECTING', () => { });
+ it('should be reset by changing the socketStatus to CONNECTING', () => {});
});
});
});
diff --git a/ts/components/ConversationListItem.tsx b/ts/components/ConversationListItem.tsx
index fcfa3c532..a30359479 100644
--- a/ts/components/ConversationListItem.tsx
+++ b/ts/components/ConversationListItem.tsx
@@ -165,7 +165,13 @@ export class ConversationListItem extends React.Component {
}
public render() {
- const { unreadCount, onClick, isSelected, showFriendRequestIndicator, isBlocked } = this.props;
+ const {
+ unreadCount,
+ onClick,
+ isSelected,
+ showFriendRequestIndicator,
+ isBlocked,
+ } = this.props;
return (
{
'module-conversation-list-item',
unreadCount > 0 ? 'module-conversation-list-item--has-unread' : null,
isSelected ? 'module-conversation-list-item--is-selected' : null,
- showFriendRequestIndicator ? 'module-conversation-list-item--has-friend-request' : null,
- isBlocked ? 'module-conversation-list-item--is-blocked' : null,
+ showFriendRequestIndicator
+ ? 'module-conversation-list-item--has-friend-request'
+ : null,
+ isBlocked ? 'module-conversation-list-item--is-blocked' : null
)}
>
{this.renderAvatar()}
diff --git a/ts/components/MainHeader.tsx b/ts/components/MainHeader.tsx
index 0f81533bb..6d9175ae9 100644
--- a/ts/components/MainHeader.tsx
+++ b/ts/components/MainHeader.tsx
@@ -26,11 +26,11 @@ export class MainHeader extends React.Component
{
name,
phoneNumber,
profileName,
- onClick
+ onClick,
} = this.props;
return (
-
+
{
return (
{profileElement}
-
+
diff --git a/ts/components/conversation/ConversationHeader.tsx b/ts/components/conversation/ConversationHeader.tsx
index 1efd9f93f..e4c2c3973 100644
--- a/ts/components/conversation/ConversationHeader.tsx
+++ b/ts/components/conversation/ConversationHeader.tsx
@@ -95,12 +95,7 @@ export class ConversationHeader extends React.Component {
}
public renderTitle() {
- const {
- phoneNumber,
- i18n,
- profileName,
- isKeysPending,
- } = this.props;
+ const { phoneNumber, i18n, profileName, isKeysPending } = this.props;
return (
@@ -236,7 +231,9 @@ export class ConversationHeader extends React.Component
{
) : null}
{!isMe ? (
-
+
) : null}
{!isMe && hasNickname ? (
diff --git a/ts/components/conversation/FriendRequest.md b/ts/components/conversation/FriendRequest.md
index 650e50bdb..fccc5a6d1 100644
--- a/ts/components/conversation/FriendRequest.md
+++ b/ts/components/conversation/FriendRequest.md
@@ -1,9 +1,10 @@
### Friend Requests
#### Parameters
+
| Name | Values |
| -------------------- | -------------------------------------------- |
-| text | string |
+| text | string |
| direction | 'outgoing' \| 'incoming |
| status | 'sending' \| 'sent' \| 'read' \| 'delivered' |
| friendStatus | 'pending' \| 'accepted' \| 'declined' |
@@ -13,8 +14,8 @@
| onDeleteConversation | function |
| onRetrySend | function |
-
#### Example
+
```jsx
diff --git a/ts/components/conversation/FriendRequest.tsx b/ts/components/conversation/FriendRequest.tsx
index f515c91e2..9a1cb9436 100644
--- a/ts/components/conversation/FriendRequest.tsx
+++ b/ts/components/conversation/FriendRequest.tsx
@@ -31,7 +31,7 @@ export class FriendRequest extends React.Component {
case 'declined':
return 'friendRequestDeclined';
case 'expired':
- return 'friendRequestExpired'
+ return 'friendRequestExpired';
default:
throw new Error(`Invalid friend request status: ${friendStatus}`);
}
@@ -43,7 +43,9 @@ export class FriendRequest extends React.Component {
return (
-
+
{i18n(id)}
@@ -54,55 +56,69 @@ export class FriendRequest extends React.Component
{
}
public renderButtons() {
- const { i18n, friendStatus, direction, status, onAccept, onDecline, onDeleteConversation, onRetrySend, isBlocked, onBlockUser, onUnblockUser } = this.props;
+ const {
+ i18n,
+ friendStatus,
+ direction,
+ status,
+ onAccept,
+ onDecline,
+ onDeleteConversation,
+ onRetrySend,
+ isBlocked,
+ onBlockUser,
+ onUnblockUser,
+ } = this.props;
- if (direction === 'incoming') {
- if (friendStatus === 'pending') {
- return (
-
-
-
-
- );
- } else if (friendStatus === 'declined') {
- const blockTitle = isBlocked ? i18n('unblockUser') : i18n('blockUser');
- const blockHandler = isBlocked ? onUnblockUser : onBlockUser;
- return (
-
-
-
-
- );
- }
- } else {
- // Render the retry button if we errored
- if (status === 'error' && friendStatus === 'pending') {
- return (
-
-
-
- );
- }
+ if (direction === 'incoming') {
+ if (friendStatus === 'pending') {
+ return (
+
+
+
+
+ );
+ } else if (friendStatus === 'declined') {
+ const blockTitle = isBlocked ? i18n('unblockUser') : i18n('blockUser');
+ const blockHandler = isBlocked ? onUnblockUser : onBlockUser;
+
+ return (
+
+
+
+
+ );
}
- return null;
+ } else {
+ // Render the retry button if we errored
+ if (status === 'error' && friendStatus === 'pending') {
+ return (
+
+
+
+ );
+ }
+ }
+
+ return null;
}
public renderError(isCorrectSide: boolean) {
@@ -127,7 +143,9 @@ export class FriendRequest extends React.Component {
// Renders 'sending', 'read' icons
public renderStatusIndicator() {
const { direction, status } = this.props;
- if (direction !== 'outgoing' || status === 'error') return null;
+ if (direction !== 'outgoing' || status === 'error') {
+ return null;
+ }
return (
@@ -135,7 +153,7 @@ export class FriendRequest extends React.Component
{
@@ -149,27 +167,27 @@ export class FriendRequest extends React.Component {
- {this.renderError(direction === 'incoming')}
+ {this.renderError(direction === 'incoming')}
-
- {this.renderContents()}
- {this.renderStatusIndicator()}
- {this.renderButtons()}
-
+
+ {this.renderContents()}
+ {this.renderStatusIndicator()}
+ {this.renderButtons()}
+
{this.renderError(direction === 'outgoing')}
diff --git a/ts/components/conversation/ResetSessionNotification.tsx b/ts/components/conversation/ResetSessionNotification.tsx
index f964a629a..72ef2f975 100644
--- a/ts/components/conversation/ResetSessionNotification.tsx
+++ b/ts/components/conversation/ResetSessionNotification.tsx
@@ -13,7 +13,7 @@ export class ResetSessionNotification extends React.Component {
return (
- { i18n(sessionResetMessageKey) }
+ {i18n(sessionResetMessageKey)}
);
}
diff --git a/ts/test/types/Attachment_test.ts b/ts/test/types/Attachment_test.ts
index 83a46a620..cf438e2a7 100644
--- a/ts/test/types/Attachment_test.ts
+++ b/ts/test/types/Attachment_test.ts
@@ -46,7 +46,9 @@ describe('Attachment', () => {
contentType: MIME.VIDEO_QUICKTIME,
};
// Unix timestamp of start of year 2000 to fix odd sudo timezone bug
- const timestamp = new Date(946684800000 - moment().utcOffset() * 60 * 1000);
+ const timestamp = new Date(
+ 946684800000 - moment().utcOffset() * 60 * 1000
+ );
const actual = Attachment.getSuggestedFilename({
attachment,
timestamp,